
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */

void * stat_alloc(size_t size)

{
  char *pcVar1;
  
  if ((uint)((int)stat_obstack.chunk_limit - (int)stat_obstack.next_free) < size) {
    _obstack_newchunk(&stat_obstack,size);
  }
  pcVar1 = stat_obstack.object_base;
  if (stat_obstack.next_free + size == stat_obstack.object_base) {
    stat_obstack._40_1_ = stat_obstack._40_1_ | 2;
  }
  stat_obstack.object_base =
       (char *)((uint)(stat_obstack.next_free + size + stat_obstack.alignment_mask) &
               ~stat_obstack.alignment_mask);
  if ((uint)((int)stat_obstack.chunk_limit - (int)stat_obstack.chunk) <
      (uint)((int)stat_obstack.object_base - (int)stat_obstack.chunk)) {
    stat_obstack.object_base = stat_obstack.chunk_limit;
  }
  stat_obstack.next_free = stat_obstack.object_base;
  return pcVar1;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void FUN_000211e0(uint param_1)

{
  if (DAT_000bba10 - DAT_000bba0c < param_1) {
    _obstack_newchunk(&DAT_000bba00,param_1);
  }
  if (DAT_000bba0c + param_1 == DAT_000bba08) {
    DAT_000bba28 = DAT_000bba28 | 2;
  }
  DAT_000bba08 = DAT_000bba0c + param_1 + DAT_000bba18 & ~DAT_000bba18;
  if (DAT_000bba10 - DAT_000bba04 < DAT_000bba08 - DAT_000bba04) {
    DAT_000bba08 = DAT_000bba10;
  }
  DAT_000bba0c = DAT_000bba08;
  return;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00015a10
ADD EBX,0x99e17
SUB ESP,0xc
MOV ESI,dword ptr [ESP + 0x20]
MOV EDI,dword ptr [EBX + 0xa10]
MOV ECX,dword ptr [EBX + 0xa0c]
MOV EAX,EDI
SUB EAX,ECX
CMP ESI,EAX
JA 0x00021260
MOV EAX,dword ptr [EBX + 0xa08]
ADD ECX,ESI
MOV dword ptr [EBX + 0xa0c],ECX
CMP ECX,EAX
JZ 0x00021288
MOV ESI,dword ptr [EBX + 0xa18]
MOV EBP,EDI
LEA EDX,[ECX + ESI*0x1]
NOT ESI
MOV ECX,dword ptr [EBX + 0xa04]
AND EDX,ESI
MOV ESI,EDX
SUB EBP,ECX
MOV dword ptr [EBX + 0xa0c],EDX
SUB ESI,ECX
CMP ESI,EBP
JBE 0x00021249
MOV dword ptr [EBX + 0xa0c],EDI
MOV EDX,EDI
MOV dword ptr [EBX + 0xa08],EDX
ADD ESP,0xc
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x8
LEA EAX,[EBX + 0xa00]
PUSH ESI
PUSH EAX
CALL 0x000142d0
MOV ECX,dword ptr [EBX + 0xa0c]
MOV EDI,dword ptr [EBX + 0xa10]
ADD ESP,0x10
JMP 0x0002120a
OR byte ptr [EBX + 0xa28],0x2
JMP 0x0002121c
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_000211e0(uint param_1)\n\n{\n  if (DAT_000bba10 - DAT_000bba0c < param_1) {\n    _obstack_newchunk(&DAT_000bba00,param_1);\n  }\n  if (DAT_000bba0c + param_1 == DAT_000bba08) {\n    DAT_000bba28 = DAT_000bba28 | 2;\n  }\n  DAT_000bba08 = DAT_000bba0c + param_1 + DAT_000bba18 & ~DAT_000bba18;\n  if (DAT_000bba10 - DAT_000bba04 < DAT_000bba08 - DAT_000bba04) {\n    DAT_000bba08 = DAT_000bba10;\n  }\n  DAT_000bba0c = DAT_000bba08;\n  return;\n}\n\n" comment (function_definition "void FUN_000211e0(uint param_1)\n\n{\n  if (DAT_000bba10 - DAT_000bba0c < param_1) {\n    _obstack_newchunk(&DAT_000bba00,param_1);\n  }\n  if (DAT_000bba0c + param_1 == DAT_000bba08) {\n    DAT_000bba28 = DAT_000bba28 | 2;\n  }\n  DAT_000bba08 = DAT_000bba0c + param_1 + DAT_000bba18 & ~DAT_000bba18;\n  if (DAT_000bba10 - DAT_000bba04 < DAT_000bba08 - DAT_000bba04) {\n    DAT_000bba08 = DAT_000bba10;\n  }\n  DAT_000bba0c = DAT_000bba08;\n  return;\n}" primitive_type (function_declarator "FUN_000211e0(uint param_1)" identifier (parameter_list "(uint param_1)" ( (parameter_declaration "uint param_1" type_identifier identifier) ))) (compound_statement "{\n  if (DAT_000bba10 - DAT_000bba0c < param_1) {\n    _obstack_newchunk(&DAT_000bba00,param_1);\n  }\n  if (DAT_000bba0c + param_1 == DAT_000bba08) {\n    DAT_000bba28 = DAT_000bba28 | 2;\n  }\n  DAT_000bba08 = DAT_000bba0c + param_1 + DAT_000bba18 & ~DAT_000bba18;\n  if (DAT_000bba10 - DAT_000bba04 < DAT_000bba08 - DAT_000bba04) {\n    DAT_000bba08 = DAT_000bba10;\n  }\n  DAT_000bba0c = DAT_000bba08;\n  return;\n}" { (if_statement "if (DAT_000bba10 - DAT_000bba0c < param_1) {\n    _obstack_newchunk(&DAT_000bba00,param_1);\n  }" if (parenthesized_expression "(DAT_000bba10 - DAT_000bba0c < param_1)" ( (binary_expression "DAT_000bba10 - DAT_000bba0c < param_1" (binary_expression "DAT_000bba10 - DAT_000bba0c" identifier - identifier) < identifier) )) (compound_statement "{\n    _obstack_newchunk(&DAT_000bba00,param_1);\n  }" { (expression_statement "_obstack_newchunk(&DAT_000bba00,param_1);" (call_expression "_obstack_newchunk(&DAT_000bba00,param_1)" identifier (argument_list "(&DAT_000bba00,param_1)" ( (pointer_expression "&DAT_000bba00" & identifier) , identifier ))) ;) })) (if_statement "if (DAT_000bba0c + param_1 == DAT_000bba08) {\n    DAT_000bba28 = DAT_000bba28 | 2;\n  }" if (parenthesized_expression "(DAT_000bba0c + param_1 == DAT_000bba08)" ( (binary_expression "DAT_000bba0c + param_1 == DAT_000bba08" (binary_expression "DAT_000bba0c + param_1" identifier + identifier) == identifier) )) (compound_statement "{\n    DAT_000bba28 = DAT_000bba28 | 2;\n  }" { (expression_statement "DAT_000bba28 = DAT_000bba28 | 2;" (assignment_expression "DAT_000bba28 = DAT_000bba28 | 2" identifier = (binary_expression "DAT_000bba28 | 2" identifier | number_literal)) ;) })) (expression_statement "DAT_000bba08 = DAT_000bba0c + param_1 + DAT_000bba18 & ~DAT_000bba18;" (assignment_expression "DAT_000bba08 = DAT_000bba0c + param_1 + DAT_000bba18 & ~DAT_000bba18" identifier = (binary_expression "DAT_000bba0c + param_1 + DAT_000bba18 & ~DAT_000bba18" (binary_expression "DAT_000bba0c + param_1 + DAT_000bba18" (binary_expression "DAT_000bba0c + param_1" identifier + identifier) + identifier) & (unary_expression "~DAT_000bba18" ~ identifier))) ;) (if_statement "if (DAT_000bba10 - DAT_000bba04 < DAT_000bba08 - DAT_000bba04) {\n    DAT_000bba08 = DAT_000bba10;\n  }" if (parenthesized_expression "(DAT_000bba10 - DAT_000bba04 < DAT_000bba08 - DAT_000bba04)" ( (binary_expression "DAT_000bba10 - DAT_000bba04 < DAT_000bba08 - DAT_000bba04" (binary_expression "DAT_000bba10 - DAT_000bba04" identifier - identifier) < (binary_expression "DAT_000bba08 - DAT_000bba04" identifier - identifier)) )) (compound_statement "{\n    DAT_000bba08 = DAT_000bba10;\n  }" { (expression_statement "DAT_000bba08 = DAT_000bba10;" (assignment_expression "DAT_000bba08 = DAT_000bba10" identifier = identifier) ;) })) (expression_statement "DAT_000bba0c = DAT_000bba08;" (assignment_expression "DAT_000bba0c = DAT_000bba08" identifier = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n\nvoid * stat_alloc(size_t size)\n\n{\n  char *pcVar1;\n  \n  if ((uint)((int)stat_obstack.chunk_limit - (int)stat_obstack.next_free) < size) {\n    _obstack_newchunk(&stat_obstack,size);\n  }\n  pcVar1 = stat_obstack.object_base;\n  if (stat_obstack.next_free + size == stat_obstack.object_base) {\n    stat_obstack._40_1_ = stat_obstack._40_1_ | 2;\n  }\n  stat_obstack.object_base =\n       (char *)((uint)(stat_obstack.next_free + size + stat_obstack.alignment_mask) &\n               ~stat_obstack.alignment_mask);\n  if ((uint)((int)stat_obstack.chunk_limit - (int)stat_obstack.chunk) <\n      (uint)((int)stat_obstack.object_base - (int)stat_obstack.chunk)) {\n    stat_obstack.object_base = stat_obstack.chunk_limit;\n  }\n  stat_obstack.next_free = stat_obstack.object_base;\n  return pcVar1;\n}\n\n" comment comment (function_definition "void * stat_alloc(size_t size)\n\n{\n  char *pcVar1;\n  \n  if ((uint)((int)stat_obstack.chunk_limit - (int)stat_obstack.next_free) < size) {\n    _obstack_newchunk(&stat_obstack,size);\n  }\n  pcVar1 = stat_obstack.object_base;\n  if (stat_obstack.next_free + size == stat_obstack.object_base) {\n    stat_obstack._40_1_ = stat_obstack._40_1_ | 2;\n  }\n  stat_obstack.object_base =\n       (char *)((uint)(stat_obstack.next_free + size + stat_obstack.alignment_mask) &\n               ~stat_obstack.alignment_mask);\n  if ((uint)((int)stat_obstack.chunk_limit - (int)stat_obstack.chunk) <\n      (uint)((int)stat_obstack.object_base - (int)stat_obstack.chunk)) {\n    stat_obstack.object_base = stat_obstack.chunk_limit;\n  }\n  stat_obstack.next_free = stat_obstack.object_base;\n  return pcVar1;\n}" primitive_type (pointer_declarator "* stat_alloc(size_t size)" * (function_declarator "stat_alloc(size_t size)" identifier (parameter_list "(size_t size)" ( (parameter_declaration "size_t size" primitive_type identifier) )))) (compound_statement "{\n  char *pcVar1;\n  \n  if ((uint)((int)stat_obstack.chunk_limit - (int)stat_obstack.next_free) < size) {\n    _obstack_newchunk(&stat_obstack,size);\n  }\n  pcVar1 = stat_obstack.object_base;\n  if (stat_obstack.next_free + size == stat_obstack.object_base) {\n    stat_obstack._40_1_ = stat_obstack._40_1_ | 2;\n  }\n  stat_obstack.object_base =\n       (char *)((uint)(stat_obstack.next_free + size + stat_obstack.alignment_mask) &\n               ~stat_obstack.alignment_mask);\n  if ((uint)((int)stat_obstack.chunk_limit - (int)stat_obstack.chunk) <\n      (uint)((int)stat_obstack.object_base - (int)stat_obstack.chunk)) {\n    stat_obstack.object_base = stat_obstack.chunk_limit;\n  }\n  stat_obstack.next_free = stat_obstack.object_base;\n  return pcVar1;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (if_statement "if ((uint)((int)stat_obstack.chunk_limit - (int)stat_obstack.next_free) < size) {\n    _obstack_newchunk(&stat_obstack,size);\n  }" if (parenthesized_expression "((uint)((int)stat_obstack.chunk_limit - (int)stat_obstack.next_free) < size)" ( (binary_expression "(uint)((int)stat_obstack.chunk_limit - (int)stat_obstack.next_free) < size" (call_expression "(uint)((int)stat_obstack.chunk_limit - (int)stat_obstack.next_free)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)stat_obstack.chunk_limit - (int)stat_obstack.next_free)" ( (binary_expression "(int)stat_obstack.chunk_limit - (int)stat_obstack.next_free" (cast_expression "(int)stat_obstack.chunk_limit" ( (type_descriptor "int" primitive_type) ) (field_expression "stat_obstack.chunk_limit" identifier . field_identifier)) - (cast_expression "(int)stat_obstack.next_free" ( (type_descriptor "int" primitive_type) ) (field_expression "stat_obstack.next_free" identifier . field_identifier))) ))) < identifier) )) (compound_statement "{\n    _obstack_newchunk(&stat_obstack,size);\n  }" { (expression_statement "_obstack_newchunk(&stat_obstack,size);" (call_expression "_obstack_newchunk(&stat_obstack,size)" identifier (argument_list "(&stat_obstack,size)" ( (pointer_expression "&stat_obstack" & identifier) , identifier ))) ;) })) (expression_statement "pcVar1 = stat_obstack.object_base;" (assignment_expression "pcVar1 = stat_obstack.object_base" identifier = (field_expression "stat_obstack.object_base" identifier . field_identifier)) ;) (if_statement "if (stat_obstack.next_free + size == stat_obstack.object_base) {\n    stat_obstack._40_1_ = stat_obstack._40_1_ | 2;\n  }" if (parenthesized_expression "(stat_obstack.next_free + size == stat_obstack.object_base)" ( (binary_expression "stat_obstack.next_free + size == stat_obstack.object_base" (binary_expression "stat_obstack.next_free + size" (field_expression "stat_obstack.next_free" identifier . field_identifier) + identifier) == (field_expression "stat_obstack.object_base" identifier . field_identifier)) )) (compound_statement "{\n    stat_obstack._40_1_ = stat_obstack._40_1_ | 2;\n  }" { (expression_statement "stat_obstack._40_1_ = stat_obstack._40_1_ | 2;" (assignment_expression "stat_obstack._40_1_ = stat_obstack._40_1_ | 2" (field_expression "stat_obstack._40_1_" identifier . field_identifier) = (binary_expression "stat_obstack._40_1_ | 2" (field_expression "stat_obstack._40_1_" identifier . field_identifier) | number_literal)) ;) })) (expression_statement "stat_obstack.object_base =\n       (char *)((uint)(stat_obstack.next_free + size + stat_obstack.alignment_mask) &\n               ~stat_obstack.alignment_mask);" (assignment_expression "stat_obstack.object_base =\n       (char *)((uint)(stat_obstack.next_free + size + stat_obstack.alignment_mask) &\n               ~stat_obstack.alignment_mask)" (field_expression "stat_obstack.object_base" identifier . field_identifier) = (cast_expression "(char *)((uint)(stat_obstack.next_free + size + stat_obstack.alignment_mask) &\n               ~stat_obstack.alignment_mask)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)(stat_obstack.next_free + size + stat_obstack.alignment_mask) &\n               ~stat_obstack.alignment_mask)" ( (binary_expression "(uint)(stat_obstack.next_free + size + stat_obstack.alignment_mask) &\n               ~stat_obstack.alignment_mask" (call_expression "(uint)(stat_obstack.next_free + size + stat_obstack.alignment_mask)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(stat_obstack.next_free + size + stat_obstack.alignment_mask)" ( (binary_expression "stat_obstack.next_free + size + stat_obstack.alignment_mask" (binary_expression "stat_obstack.next_free + size" (field_expression "stat_obstack.next_free" identifier . field_identifier) + identifier) + (field_expression "stat_obstack.alignment_mask" identifier . field_identifier)) ))) & (unary_expression "~stat_obstack.alignment_mask" ~ (field_expression "stat_obstack.alignment_mask" identifier . field_identifier))) )))) ;) (if_statement "if ((uint)((int)stat_obstack.chunk_limit - (int)stat_obstack.chunk) <\n      (uint)((int)stat_obstack.object_base - (int)stat_obstack.chunk)) {\n    stat_obstack.object_base = stat_obstack.chunk_limit;\n  }" if (parenthesized_expression "((uint)((int)stat_obstack.chunk_limit - (int)stat_obstack.chunk) <\n      (uint)((int)stat_obstack.object_base - (int)stat_obstack.chunk))" ( (binary_expression "(uint)((int)stat_obstack.chunk_limit - (int)stat_obstack.chunk) <\n      (uint)((int)stat_obstack.object_base - (int)stat_obstack.chunk)" (call_expression "(uint)((int)stat_obstack.chunk_limit - (int)stat_obstack.chunk)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)stat_obstack.chunk_limit - (int)stat_obstack.chunk)" ( (binary_expression "(int)stat_obstack.chunk_limit - (int)stat_obstack.chunk" (cast_expression "(int)stat_obstack.chunk_limit" ( (type_descriptor "int" primitive_type) ) (field_expression "stat_obstack.chunk_limit" identifier . field_identifier)) - (cast_expression "(int)stat_obstack.chunk" ( (type_descriptor "int" primitive_type) ) (field_expression "stat_obstack.chunk" identifier . field_identifier))) ))) < (call_expression "(uint)((int)stat_obstack.object_base - (int)stat_obstack.chunk)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)stat_obstack.object_base - (int)stat_obstack.chunk)" ( (binary_expression "(int)stat_obstack.object_base - (int)stat_obstack.chunk" (cast_expression "(int)stat_obstack.object_base" ( (type_descriptor "int" primitive_type) ) (field_expression "stat_obstack.object_base" identifier . field_identifier)) - (cast_expression "(int)stat_obstack.chunk" ( (type_descriptor "int" primitive_type) ) (field_expression "stat_obstack.chunk" identifier . field_identifier))) )))) )) (compound_statement "{\n    stat_obstack.object_base = stat_obstack.chunk_limit;\n  }" { (expression_statement "stat_obstack.object_base = stat_obstack.chunk_limit;" (assignment_expression "stat_obstack.object_base = stat_obstack.chunk_limit" (field_expression "stat_obstack.object_base" identifier . field_identifier) = (field_expression "stat_obstack.chunk_limit" identifier . field_identifier)) ;) })) (expression_statement "stat_obstack.next_free = stat_obstack.object_base;" (assignment_expression "stat_obstack.next_free = stat_obstack.object_base" (field_expression "stat_obstack.next_free" identifier . field_identifier) = (field_expression "stat_obstack.object_base" identifier . field_identifier)) ;) (return_statement "return pcVar1;" return identifier ;) })))
(translation_unit "void FUN_000211e0(uint param_1)\n\n{\n  if (DAT_000bba10 - DAT_000bba0c < param_1) {\n    _obstack_newchunk(&DAT_000bba00,param_1);\n  }\n  if (DAT_000bba0c + param_1 == DAT_000bba08) {\n    DAT_000bba28 = DAT_000bba28 | 2;\n  }\n  DAT_000bba08 = DAT_000bba0c + param_1 + DAT_000bba18 & ~DAT_000bba18;\n  if (DAT_000bba10 - DAT_000bba04 < DAT_000bba08 - DAT_000bba04) {\n    DAT_000bba08 = DAT_000bba10;\n  }\n  DAT_000bba0c = DAT_000bba08;\n  return;\n}\n\n" (function_definition "void FUN_000211e0(uint param_1)\n\n{\n  if (DAT_000bba10 - DAT_000bba0c < param_1) {\n    _obstack_newchunk(&DAT_000bba00,param_1);\n  }\n  if (DAT_000bba0c + param_1 == DAT_000bba08) {\n    DAT_000bba28 = DAT_000bba28 | 2;\n  }\n  DAT_000bba08 = DAT_000bba0c + param_1 + DAT_000bba18 & ~DAT_000bba18;\n  if (DAT_000bba10 - DAT_000bba04 < DAT_000bba08 - DAT_000bba04) {\n    DAT_000bba08 = DAT_000bba10;\n  }\n  DAT_000bba0c = DAT_000bba08;\n  return;\n}" primitive_type (function_declarator "FUN_000211e0(uint param_1)" identifier (parameter_list "(uint param_1)" ( (parameter_declaration "uint param_1" type_identifier identifier) ))) (compound_statement "{\n  if (DAT_000bba10 - DAT_000bba0c < param_1) {\n    _obstack_newchunk(&DAT_000bba00,param_1);\n  }\n  if (DAT_000bba0c + param_1 == DAT_000bba08) {\n    DAT_000bba28 = DAT_000bba28 | 2;\n  }\n  DAT_000bba08 = DAT_000bba0c + param_1 + DAT_000bba18 & ~DAT_000bba18;\n  if (DAT_000bba10 - DAT_000bba04 < DAT_000bba08 - DAT_000bba04) {\n    DAT_000bba08 = DAT_000bba10;\n  }\n  DAT_000bba0c = DAT_000bba08;\n  return;\n}" { (if_statement "if (DAT_000bba10 - DAT_000bba0c < param_1) {\n    _obstack_newchunk(&DAT_000bba00,param_1);\n  }" if (parenthesized_expression "(DAT_000bba10 - DAT_000bba0c < param_1)" ( (binary_expression "DAT_000bba10 - DAT_000bba0c < param_1" (binary_expression "DAT_000bba10 - DAT_000bba0c" identifier - identifier) < identifier) )) (compound_statement "{\n    _obstack_newchunk(&DAT_000bba00,param_1);\n  }" { (expression_statement "_obstack_newchunk(&DAT_000bba00,param_1);" (call_expression "_obstack_newchunk(&DAT_000bba00,param_1)" identifier (argument_list "(&DAT_000bba00,param_1)" ( (pointer_expression "&DAT_000bba00" & identifier) , identifier ))) ;) })) (if_statement "if (DAT_000bba0c + param_1 == DAT_000bba08) {\n    DAT_000bba28 = DAT_000bba28 | 2;\n  }" if (parenthesized_expression "(DAT_000bba0c + param_1 == DAT_000bba08)" ( (binary_expression "DAT_000bba0c + param_1 == DAT_000bba08" (binary_expression "DAT_000bba0c + param_1" identifier + identifier) == identifier) )) (compound_statement "{\n    DAT_000bba28 = DAT_000bba28 | 2;\n  }" { (expression_statement "DAT_000bba28 = DAT_000bba28 | 2;" (assignment_expression "DAT_000bba28 = DAT_000bba28 | 2" identifier = (binary_expression "DAT_000bba28 | 2" identifier | number_literal)) ;) })) (expression_statement "DAT_000bba08 = DAT_000bba0c + param_1 + DAT_000bba18 & ~DAT_000bba18;" (assignment_expression "DAT_000bba08 = DAT_000bba0c + param_1 + DAT_000bba18 & ~DAT_000bba18" identifier = (binary_expression "DAT_000bba0c + param_1 + DAT_000bba18 & ~DAT_000bba18" (binary_expression "DAT_000bba0c + param_1 + DAT_000bba18" (binary_expression "DAT_000bba0c + param_1" identifier + identifier) + identifier) & (unary_expression "~DAT_000bba18" ~ identifier))) ;) (if_statement "if (DAT_000bba10 - DAT_000bba04 < DAT_000bba08 - DAT_000bba04) {\n    DAT_000bba08 = DAT_000bba10;\n  }" if (parenthesized_expression "(DAT_000bba10 - DAT_000bba04 < DAT_000bba08 - DAT_000bba04)" ( (binary_expression "DAT_000bba10 - DAT_000bba04 < DAT_000bba08 - DAT_000bba04" (binary_expression "DAT_000bba10 - DAT_000bba04" identifier - identifier) < (binary_expression "DAT_000bba08 - DAT_000bba04" identifier - identifier)) )) (compound_statement "{\n    DAT_000bba08 = DAT_000bba10;\n  }" { (expression_statement "DAT_000bba08 = DAT_000bba10;" (assignment_expression "DAT_000bba08 = DAT_000bba10" identifier = identifier) ;) })) (expression_statement "DAT_000bba0c = DAT_000bba08;" (assignment_expression "DAT_000bba0c = DAT_000bba08" identifier = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - IDENT) < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression IDENT + IDENT) + IDENT) & (unary_expression ~ IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - IDENT) < (binary_expression IDENT - IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (return_statement return ;) })))
(function_definition "void FUN_000211e0(uint param_1)\n\n{\n  if (DAT_000bba10 - DAT_000bba0c < param_1) {\n    _obstack_newchunk(&DAT_000bba00,param_1);\n  }\n  if (DAT_000bba0c + param_1 == DAT_000bba08) {\n    DAT_000bba28 = DAT_000bba28 | 2;\n  }\n  DAT_000bba08 = DAT_000bba0c + param_1 + DAT_000bba18 & ~DAT_000bba18;\n  if (DAT_000bba10 - DAT_000bba04 < DAT_000bba08 - DAT_000bba04) {\n    DAT_000bba08 = DAT_000bba10;\n  }\n  DAT_000bba0c = DAT_000bba08;\n  return;\n}" (primitive_type "void") (function_declarator "FUN_000211e0(uint param_1)" (identifier "FUN_000211e0") (parameter_list "(uint param_1)" (( "(") (parameter_declaration "uint param_1" (type_identifier "uint") (identifier "param_1")) () ")"))) (compound_statement "{\n  if (DAT_000bba10 - DAT_000bba0c < param_1) {\n    _obstack_newchunk(&DAT_000bba00,param_1);\n  }\n  if (DAT_000bba0c + param_1 == DAT_000bba08) {\n    DAT_000bba28 = DAT_000bba28 | 2;\n  }\n  DAT_000bba08 = DAT_000bba0c + param_1 + DAT_000bba18 & ~DAT_000bba18;\n  if (DAT_000bba10 - DAT_000bba04 < DAT_000bba08 - DAT_000bba04) {\n    DAT_000bba08 = DAT_000bba10;\n  }\n  DAT_000bba0c = DAT_000bba08;\n  return;\n}" ({ "{") (if_statement "if (DAT_000bba10 - DAT_000bba0c < param_1) {\n    _obstack_newchunk(&DAT_000bba00,param_1);\n  }" (if "if") (parenthesized_expression "(DAT_000bba10 - DAT_000bba0c < param_1)" (( "(") (binary_expression "DAT_000bba10 - DAT_000bba0c < param_1" (binary_expression "DAT_000bba10 - DAT_000bba0c" (identifier "DAT_000bba10") (- "-") (identifier "DAT_000bba0c")) (< "<") (identifier "param_1")) () ")")) (compound_statement "{\n    _obstack_newchunk(&DAT_000bba00,param_1);\n  }" ({ "{") (expression_statement "_obstack_newchunk(&DAT_000bba00,param_1);" (call_expression "_obstack_newchunk(&DAT_000bba00,param_1)" (identifier "_obstack_newchunk") (argument_list "(&DAT_000bba00,param_1)" (( "(") (pointer_expression "&DAT_000bba00" (& "&") (identifier "DAT_000bba00")) (, ",") (identifier "param_1") () ")"))) (; ";")) (} "}"))) (if_statement "if (DAT_000bba0c + param_1 == DAT_000bba08) {\n    DAT_000bba28 = DAT_000bba28 | 2;\n  }" (if "if") (parenthesized_expression "(DAT_000bba0c + param_1 == DAT_000bba08)" (( "(") (binary_expression "DAT_000bba0c + param_1 == DAT_000bba08" (binary_expression "DAT_000bba0c + param_1" (identifier "DAT_000bba0c") (+ "+") (identifier "param_1")) (== "==") (identifier "DAT_000bba08")) () ")")) (compound_statement "{\n    DAT_000bba28 = DAT_000bba28 | 2;\n  }" ({ "{") (expression_statement "DAT_000bba28 = DAT_000bba28 | 2;" (assignment_expression "DAT_000bba28 = DAT_000bba28 | 2" (identifier "DAT_000bba28") (= "=") (binary_expression "DAT_000bba28 | 2" (identifier "DAT_000bba28") (| "|") (number_literal "2"))) (; ";")) (} "}"))) (expression_statement "DAT_000bba08 = DAT_000bba0c + param_1 + DAT_000bba18 & ~DAT_000bba18;" (assignment_expression "DAT_000bba08 = DAT_000bba0c + param_1 + DAT_000bba18 & ~DAT_000bba18" (identifier "DAT_000bba08") (= "=") (binary_expression "DAT_000bba0c + param_1 + DAT_000bba18 & ~DAT_000bba18" (binary_expression "DAT_000bba0c + param_1 + DAT_000bba18" (binary_expression "DAT_000bba0c + param_1" (identifier "DAT_000bba0c") (+ "+") (identifier "param_1")) (+ "+") (identifier "DAT_000bba18")) (& "&") (unary_expression "~DAT_000bba18" (~ "~") (identifier "DAT_000bba18")))) (; ";")) (if_statement "if (DAT_000bba10 - DAT_000bba04 < DAT_000bba08 - DAT_000bba04) {\n    DAT_000bba08 = DAT_000bba10;\n  }" (if "if") (parenthesized_expression "(DAT_000bba10 - DAT_000bba04 < DAT_000bba08 - DAT_000bba04)" (( "(") (binary_expression "DAT_000bba10 - DAT_000bba04 < DAT_000bba08 - DAT_000bba04" (binary_expression "DAT_000bba10 - DAT_000bba04" (identifier "DAT_000bba10") (- "-") (identifier "DAT_000bba04")) (< "<") (binary_expression "DAT_000bba08 - DAT_000bba04" (identifier "DAT_000bba08") (- "-") (identifier "DAT_000bba04"))) () ")")) (compound_statement "{\n    DAT_000bba08 = DAT_000bba10;\n  }" ({ "{") (expression_statement "DAT_000bba08 = DAT_000bba10;" (assignment_expression "DAT_000bba08 = DAT_000bba10" (identifier "DAT_000bba08") (= "=") (identifier "DAT_000bba10")) (; ";")) (} "}"))) (expression_statement "DAT_000bba0c = DAT_000bba08;" (assignment_expression "DAT_000bba0c = DAT_000bba08" (identifier "DAT_000bba0c") (= "=") (identifier "DAT_000bba08")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */

void * function_1(size_t var_1)

{
  char *pcVar1;
  
  if ((uint)((int)stat_obstack.chunk_limit - (int)stat_obstack.next_free) < var_1) {
    var_2(&stat_obstack,var_1);
  }
  pcVar1 = stat_obstack.object_base;
  if (stat_obstack.next_free + var_1 == stat_obstack.object_base) {
    stat_obstack._40_1_ = stat_obstack._40_1_ | 2;
  }
  stat_obstack.object_base =
       (char *)((uint)(stat_obstack.next_free + var_1 + stat_obstack.alignment_mask) &
               ~stat_obstack.alignment_mask);
  if ((uint)((int)stat_obstack.chunk_limit - (int)stat_obstack.chunk) <
      (uint)((int)stat_obstack.object_base - (int)stat_obstack.chunk)) {
    stat_obstack.object_base = stat_obstack.chunk_limit;
  }
  stat_obstack.next_free = stat_obstack.object_base;
  return pcVar1;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)) right: (unary_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (return_statement))))

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void MASKED(uint param_1)

{
  if (DAT_000bba10 - DAT_000bba0c < param_1) {
    _obstack_newchunk(&DAT_000bba00,param_1);
  }
  if (DAT_000bba0c + param_1 == DAT_000bba08) {
    DAT_000bba28 = DAT_000bba28 | 2;
  }
  DAT_000bba08 = DAT_000bba0c + param_1 + DAT_000bba18 & ~DAT_000bba18;
  if (DAT_000bba10 - DAT_000bba04 < DAT_000bba08 - DAT_000bba04) {
    DAT_000bba08 = DAT_000bba10;
  }
  DAT_000bba0c = DAT_000bba08;
  return;
}

