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

etree_type * exp_unop(int code,etree_type *child)

{
  uint uVar1;
  node_tree_enum nVar2;
  etree_type *tree;
  
  tree = (etree_type *)stat_alloc(0x18);
  (tree->type).node_code = code;
  (tree->type).filename = (child->type).filename;
  uVar1 = (child->type).lineno;
  (tree->type).node_class = etree_unary;
  nVar2 = (child->type).node_class;
  (tree->type).lineno = uVar1;
  (tree->binary).lhs = child;
  if ((((nVar2 == etree_value) && (code != 0x117)) && ((code & 0xffffffdfU) != 0x140)) &&
     (code != 0x126)) {
    exp_value_fold(tree);
  }
  return tree;
}



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

uint * FUN_0002f600(uint param_1,uint param_2)

{
  uint uVar1;
  int iVar2;
  uint *puVar3;
  
  puVar3 = (uint *)FUN_000211e0(0x18);
  *puVar3 = param_1;
  puVar3[2] = *(uint *)(param_2 + 8);
  uVar1 = *(uint *)(param_2 + 4);
  puVar3[3] = 2;
  iVar2 = *(int *)(param_2 + 0xc);
  puVar3[1] = uVar1;
  puVar3[4] = param_2;
  if ((((iVar2 == 7) && (param_1 != 0x117)) && ((param_1 & 0xffffffdf) != 0x140)) &&
     (param_1 != 0x126)) {
    FUN_0002f320();
  }
  return puVar3;
}


PUSH EDI
PUSH ESI
PUSH EBX
MOV ESI,dword ptr [ESP + 0x14]
CALL 0x00015a10
ADD EBX,0x8b9f4
MOV EDI,dword ptr [ESP + 0x10]
SUB ESP,0xc
PUSH 0x18
CALL 0x000211e0
ADD ESP,0x10
MOV EBX,EAX
MOV dword ptr [EAX],EDI
MOV EAX,dword ptr [ESI + 0x8]
MOV dword ptr [EBX + 0x8],EAX
MOV EAX,dword ptr [ESI + 0x4]
MOV dword ptr [EBX + 0xc],0x2
CMP dword ptr [ESI + 0xc],0x7
MOV dword ptr [EBX + 0x4],EAX
MOV dword ptr [EBX + 0x10],ESI
JZ 0x0002f650
MOV EAX,EBX
POP EBX
POP ESI
POP EDI
RET
CMP EDI,0x117
JZ 0x0002f643
MOV EAX,EDI
AND EAX,0xffffffdf
CMP EAX,0x140
JZ 0x0002f643
CMP EDI,0x126
JZ 0x0002f643
MOV EAX,EBX
CALL 0x0002f320
JMP 0x0002f643
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nuint * FUN_0002f600(uint param_1,uint param_2)\n\n{\n  uint uVar1;\n  int iVar2;\n  uint *puVar3;\n  \n  puVar3 = (uint *)FUN_000211e0(0x18);\n  *puVar3 = param_1;\n  puVar3[2] = *(uint *)(param_2 + 8);\n  uVar1 = *(uint *)(param_2 + 4);\n  puVar3[3] = 2;\n  iVar2 = *(int *)(param_2 + 0xc);\n  puVar3[1] = uVar1;\n  puVar3[4] = param_2;\n  if ((((iVar2 == 7) && (param_1 != 0x117)) && ((param_1 & 0xffffffdf) != 0x140)) &&\n     (param_1 != 0x126)) {\n    FUN_0002f320();\n  }\n  return puVar3;\n}\n\n" comment (function_definition "uint * FUN_0002f600(uint param_1,uint param_2)\n\n{\n  uint uVar1;\n  int iVar2;\n  uint *puVar3;\n  \n  puVar3 = (uint *)FUN_000211e0(0x18);\n  *puVar3 = param_1;\n  puVar3[2] = *(uint *)(param_2 + 8);\n  uVar1 = *(uint *)(param_2 + 4);\n  puVar3[3] = 2;\n  iVar2 = *(int *)(param_2 + 0xc);\n  puVar3[1] = uVar1;\n  puVar3[4] = param_2;\n  if ((((iVar2 == 7) && (param_1 != 0x117)) && ((param_1 & 0xffffffdf) != 0x140)) &&\n     (param_1 != 0x126)) {\n    FUN_0002f320();\n  }\n  return puVar3;\n}" type_identifier (pointer_declarator "* FUN_0002f600(uint param_1,uint param_2)" * (function_declarator "FUN_0002f600(uint param_1,uint param_2)" identifier (parameter_list "(uint param_1,uint param_2)" ( (parameter_declaration "uint param_1" type_identifier identifier) , (parameter_declaration "uint param_2" type_identifier identifier) )))) (compound_statement "{\n  uint uVar1;\n  int iVar2;\n  uint *puVar3;\n  \n  puVar3 = (uint *)FUN_000211e0(0x18);\n  *puVar3 = param_1;\n  puVar3[2] = *(uint *)(param_2 + 8);\n  uVar1 = *(uint *)(param_2 + 4);\n  puVar3[3] = 2;\n  iVar2 = *(int *)(param_2 + 0xc);\n  puVar3[1] = uVar1;\n  puVar3[4] = param_2;\n  if ((((iVar2 == 7) && (param_1 != 0x117)) && ((param_1 & 0xffffffdf) != 0x140)) &&\n     (param_1 != 0x126)) {\n    FUN_0002f320();\n  }\n  return puVar3;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (expression_statement "puVar3 = (uint *)FUN_000211e0(0x18);" (assignment_expression "puVar3 = (uint *)FUN_000211e0(0x18)" identifier = (cast_expression "(uint *)FUN_000211e0(0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000211e0(0x18)" identifier (argument_list "(0x18)" ( number_literal ))))) ;) (expression_statement "*puVar3 = param_1;" (assignment_expression "*puVar3 = param_1" (pointer_expression "*puVar3" * identifier) = identifier) ;) (expression_statement "puVar3[2] = *(uint *)(param_2 + 8);" (assignment_expression "puVar3[2] = *(uint *)(param_2 + 8)" (subscript_expression "puVar3[2]" identifier [ number_literal ]) = (pointer_expression "*(uint *)(param_2 + 8)" * (cast_expression "(uint *)(param_2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar1 = *(uint *)(param_2 + 4);" (assignment_expression "uVar1 = *(uint *)(param_2 + 4)" identifier = (pointer_expression "*(uint *)(param_2 + 4)" * (cast_expression "(uint *)(param_2 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) ))))) ;) (expression_statement "puVar3[3] = 2;" (assignment_expression "puVar3[3] = 2" (subscript_expression "puVar3[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = *(int *)(param_2 + 0xc);" (assignment_expression "iVar2 = *(int *)(param_2 + 0xc)" identifier = (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "puVar3[1] = uVar1;" (assignment_expression "puVar3[1] = uVar1" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[4] = param_2;" (assignment_expression "puVar3[4] = param_2" (subscript_expression "puVar3[4]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((((iVar2 == 7) && (param_1 != 0x117)) && ((param_1 & 0xffffffdf) != 0x140)) &&\n     (param_1 != 0x126)) {\n    FUN_0002f320();\n  }" if (parenthesized_expression "((((iVar2 == 7) && (param_1 != 0x117)) && ((param_1 & 0xffffffdf) != 0x140)) &&\n     (param_1 != 0x126))" ( (binary_expression "(((iVar2 == 7) && (param_1 != 0x117)) && ((param_1 & 0xffffffdf) != 0x140)) &&\n     (param_1 != 0x126)" (parenthesized_expression "(((iVar2 == 7) && (param_1 != 0x117)) && ((param_1 & 0xffffffdf) != 0x140))" ( (binary_expression "((iVar2 == 7) && (param_1 != 0x117)) && ((param_1 & 0xffffffdf) != 0x140)" (parenthesized_expression "((iVar2 == 7) && (param_1 != 0x117))" ( (binary_expression "(iVar2 == 7) && (param_1 != 0x117)" (parenthesized_expression "(iVar2 == 7)" ( (binary_expression "iVar2 == 7" identifier == number_literal) )) && (parenthesized_expression "(param_1 != 0x117)" ( (binary_expression "param_1 != 0x117" identifier != number_literal) ))) )) && (parenthesized_expression "((param_1 & 0xffffffdf) != 0x140)" ( (binary_expression "(param_1 & 0xffffffdf) != 0x140" (parenthesized_expression "(param_1 & 0xffffffdf)" ( (binary_expression "param_1 & 0xffffffdf" identifier & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "(param_1 != 0x126)" ( (binary_expression "param_1 != 0x126" identifier != number_literal) ))) )) (compound_statement "{\n    FUN_0002f320();\n  }" { (expression_statement "FUN_0002f320();" (call_expression "FUN_0002f320()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return puVar3;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n\netree_type * exp_unop(int code,etree_type *child)\n\n{\n  uint uVar1;\n  node_tree_enum nVar2;\n  etree_type *tree;\n  \n  tree = (etree_type *)stat_alloc(0x18);\n  (tree->type).node_code = code;\n  (tree->type).filename = (child->type).filename;\n  uVar1 = (child->type).lineno;\n  (tree->type).node_class = etree_unary;\n  nVar2 = (child->type).node_class;\n  (tree->type).lineno = uVar1;\n  (tree->binary).lhs = child;\n  if ((((nVar2 == etree_value) && (code != 0x117)) && ((code & 0xffffffdfU) != 0x140)) &&\n     (code != 0x126)) {\n    exp_value_fold(tree);\n  }\n  return tree;\n}\n\n" comment comment (function_definition "etree_type * exp_unop(int code,etree_type *child)\n\n{\n  uint uVar1;\n  node_tree_enum nVar2;\n  etree_type *tree;\n  \n  tree = (etree_type *)stat_alloc(0x18);\n  (tree->type).node_code = code;\n  (tree->type).filename = (child->type).filename;\n  uVar1 = (child->type).lineno;\n  (tree->type).node_class = etree_unary;\n  nVar2 = (child->type).node_class;\n  (tree->type).lineno = uVar1;\n  (tree->binary).lhs = child;\n  if ((((nVar2 == etree_value) && (code != 0x117)) && ((code & 0xffffffdfU) != 0x140)) &&\n     (code != 0x126)) {\n    exp_value_fold(tree);\n  }\n  return tree;\n}" type_identifier (pointer_declarator "* exp_unop(int code,etree_type *child)" * (function_declarator "exp_unop(int code,etree_type *child)" identifier (parameter_list "(int code,etree_type *child)" ( (parameter_declaration "int code" primitive_type identifier) , (parameter_declaration "etree_type *child" type_identifier (pointer_declarator "*child" * identifier)) )))) (compound_statement "{\n  uint uVar1;\n  node_tree_enum nVar2;\n  etree_type *tree;\n  \n  tree = (etree_type *)stat_alloc(0x18);\n  (tree->type).node_code = code;\n  (tree->type).filename = (child->type).filename;\n  uVar1 = (child->type).lineno;\n  (tree->type).node_class = etree_unary;\n  nVar2 = (child->type).node_class;\n  (tree->type).lineno = uVar1;\n  (tree->binary).lhs = child;\n  if ((((nVar2 == etree_value) && (code != 0x117)) && ((code & 0xffffffdfU) != 0x140)) &&\n     (code != 0x126)) {\n    exp_value_fold(tree);\n  }\n  return tree;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "node_tree_enum nVar2;" type_identifier identifier ;) (declaration "etree_type *tree;" type_identifier (pointer_declarator "*tree" * identifier) ;) (expression_statement "tree = (etree_type *)stat_alloc(0x18);" (assignment_expression "tree = (etree_type *)stat_alloc(0x18)" identifier = (cast_expression "(etree_type *)stat_alloc(0x18)" ( (type_descriptor "etree_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "stat_alloc(0x18)" identifier (argument_list "(0x18)" ( number_literal ))))) ;) (expression_statement "(tree->type).node_code = code;" (assignment_expression "(tree->type).node_code = code" (field_expression "(tree->type).node_code" (parenthesized_expression "(tree->type)" ( (field_expression "tree->type" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(tree->type).filename = (child->type).filename;" (assignment_expression "(tree->type).filename = (child->type).filename" (field_expression "(tree->type).filename" (parenthesized_expression "(tree->type)" ( (field_expression "tree->type" identifier -> field_identifier) )) . field_identifier) = (field_expression "(child->type).filename" (parenthesized_expression "(child->type)" ( (field_expression "child->type" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar1 = (child->type).lineno;" (assignment_expression "uVar1 = (child->type).lineno" identifier = (field_expression "(child->type).lineno" (parenthesized_expression "(child->type)" ( (field_expression "child->type" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "(tree->type).node_class = etree_unary;" (assignment_expression "(tree->type).node_class = etree_unary" (field_expression "(tree->type).node_class" (parenthesized_expression "(tree->type)" ( (field_expression "tree->type" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "nVar2 = (child->type).node_class;" (assignment_expression "nVar2 = (child->type).node_class" identifier = (field_expression "(child->type).node_class" (parenthesized_expression "(child->type)" ( (field_expression "child->type" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "(tree->type).lineno = uVar1;" (assignment_expression "(tree->type).lineno = uVar1" (field_expression "(tree->type).lineno" (parenthesized_expression "(tree->type)" ( (field_expression "tree->type" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(tree->binary).lhs = child;" (assignment_expression "(tree->binary).lhs = child" (field_expression "(tree->binary).lhs" (parenthesized_expression "(tree->binary)" ( (field_expression "tree->binary" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (if_statement "if ((((nVar2 == etree_value) && (code != 0x117)) && ((code & 0xffffffdfU) != 0x140)) &&\n     (code != 0x126)) {\n    exp_value_fold(tree);\n  }" if (parenthesized_expression "((((nVar2 == etree_value) && (code != 0x117)) && ((code & 0xffffffdfU) != 0x140)) &&\n     (code != 0x126))" ( (binary_expression "(((nVar2 == etree_value) && (code != 0x117)) && ((code & 0xffffffdfU) != 0x140)) &&\n     (code != 0x126)" (parenthesized_expression "(((nVar2 == etree_value) && (code != 0x117)) && ((code & 0xffffffdfU) != 0x140))" ( (binary_expression "((nVar2 == etree_value) && (code != 0x117)) && ((code & 0xffffffdfU) != 0x140)" (parenthesized_expression "((nVar2 == etree_value) && (code != 0x117))" ( (binary_expression "(nVar2 == etree_value) && (code != 0x117)" (parenthesized_expression "(nVar2 == etree_value)" ( (binary_expression "nVar2 == etree_value" identifier == identifier) )) && (parenthesized_expression "(code != 0x117)" ( (binary_expression "code != 0x117" identifier != number_literal) ))) )) && (parenthesized_expression "((code & 0xffffffdfU) != 0x140)" ( (binary_expression "(code & 0xffffffdfU) != 0x140" (parenthesized_expression "(code & 0xffffffdfU)" ( (binary_expression "code & 0xffffffdfU" identifier & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "(code != 0x126)" ( (binary_expression "code != 0x126" identifier != number_literal) ))) )) (compound_statement "{\n    exp_value_fold(tree);\n  }" { (expression_statement "exp_value_fold(tree);" (call_expression "exp_value_fold(tree)" identifier (argument_list "(tree)" ( identifier ))) ;) })) (return_statement "return tree;" return identifier ;) })))
(translation_unit "uint * FUN_0002f600(uint param_1,uint param_2)\n\n{\n  uint uVar1;\n  int iVar2;\n  uint *puVar3;\n  \n  puVar3 = (uint *)FUN_000211e0(0x18);\n  *puVar3 = param_1;\n  puVar3[2] = *(uint *)(param_2 + 8);\n  uVar1 = *(uint *)(param_2 + 4);\n  puVar3[3] = 2;\n  iVar2 = *(int *)(param_2 + 0xc);\n  puVar3[1] = uVar1;\n  puVar3[4] = param_2;\n  if ((((iVar2 == 7) && (param_1 != 0x117)) && ((param_1 & 0xffffffdf) != 0x140)) &&\n     (param_1 != 0x126)) {\n    FUN_0002f320();\n  }\n  return puVar3;\n}\n\n" (function_definition "uint * FUN_0002f600(uint param_1,uint param_2)\n\n{\n  uint uVar1;\n  int iVar2;\n  uint *puVar3;\n  \n  puVar3 = (uint *)FUN_000211e0(0x18);\n  *puVar3 = param_1;\n  puVar3[2] = *(uint *)(param_2 + 8);\n  uVar1 = *(uint *)(param_2 + 4);\n  puVar3[3] = 2;\n  iVar2 = *(int *)(param_2 + 0xc);\n  puVar3[1] = uVar1;\n  puVar3[4] = param_2;\n  if ((((iVar2 == 7) && (param_1 != 0x117)) && ((param_1 & 0xffffffdf) != 0x140)) &&\n     (param_1 != 0x126)) {\n    FUN_0002f320();\n  }\n  return puVar3;\n}" type_identifier (pointer_declarator "* FUN_0002f600(uint param_1,uint param_2)" * (function_declarator "FUN_0002f600(uint param_1,uint param_2)" identifier (parameter_list "(uint param_1,uint param_2)" ( (parameter_declaration "uint param_1" type_identifier identifier) , (parameter_declaration "uint param_2" type_identifier identifier) )))) (compound_statement "{\n  uint uVar1;\n  int iVar2;\n  uint *puVar3;\n  \n  puVar3 = (uint *)FUN_000211e0(0x18);\n  *puVar3 = param_1;\n  puVar3[2] = *(uint *)(param_2 + 8);\n  uVar1 = *(uint *)(param_2 + 4);\n  puVar3[3] = 2;\n  iVar2 = *(int *)(param_2 + 0xc);\n  puVar3[1] = uVar1;\n  puVar3[4] = param_2;\n  if ((((iVar2 == 7) && (param_1 != 0x117)) && ((param_1 & 0xffffffdf) != 0x140)) &&\n     (param_1 != 0x126)) {\n    FUN_0002f320();\n  }\n  return puVar3;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (expression_statement "puVar3 = (uint *)FUN_000211e0(0x18);" (assignment_expression "puVar3 = (uint *)FUN_000211e0(0x18)" identifier = (cast_expression "(uint *)FUN_000211e0(0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000211e0(0x18)" identifier (argument_list "(0x18)" ( number_literal ))))) ;) (expression_statement "*puVar3 = param_1;" (assignment_expression "*puVar3 = param_1" (pointer_expression "*puVar3" * identifier) = identifier) ;) (expression_statement "puVar3[2] = *(uint *)(param_2 + 8);" (assignment_expression "puVar3[2] = *(uint *)(param_2 + 8)" (subscript_expression "puVar3[2]" identifier [ number_literal ]) = (pointer_expression "*(uint *)(param_2 + 8)" * (cast_expression "(uint *)(param_2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar1 = *(uint *)(param_2 + 4);" (assignment_expression "uVar1 = *(uint *)(param_2 + 4)" identifier = (pointer_expression "*(uint *)(param_2 + 4)" * (cast_expression "(uint *)(param_2 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) ))))) ;) (expression_statement "puVar3[3] = 2;" (assignment_expression "puVar3[3] = 2" (subscript_expression "puVar3[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = *(int *)(param_2 + 0xc);" (assignment_expression "iVar2 = *(int *)(param_2 + 0xc)" identifier = (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "puVar3[1] = uVar1;" (assignment_expression "puVar3[1] = uVar1" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[4] = param_2;" (assignment_expression "puVar3[4] = param_2" (subscript_expression "puVar3[4]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((((iVar2 == 7) && (param_1 != 0x117)) && ((param_1 & 0xffffffdf) != 0x140)) &&\n     (param_1 != 0x126)) {\n    FUN_0002f320();\n  }" if (parenthesized_expression "((((iVar2 == 7) && (param_1 != 0x117)) && ((param_1 & 0xffffffdf) != 0x140)) &&\n     (param_1 != 0x126))" ( (binary_expression "(((iVar2 == 7) && (param_1 != 0x117)) && ((param_1 & 0xffffffdf) != 0x140)) &&\n     (param_1 != 0x126)" (parenthesized_expression "(((iVar2 == 7) && (param_1 != 0x117)) && ((param_1 & 0xffffffdf) != 0x140))" ( (binary_expression "((iVar2 == 7) && (param_1 != 0x117)) && ((param_1 & 0xffffffdf) != 0x140)" (parenthesized_expression "((iVar2 == 7) && (param_1 != 0x117))" ( (binary_expression "(iVar2 == 7) && (param_1 != 0x117)" (parenthesized_expression "(iVar2 == 7)" ( (binary_expression "iVar2 == 7" identifier == number_literal) )) && (parenthesized_expression "(param_1 != 0x117)" ( (binary_expression "param_1 != 0x117" identifier != number_literal) ))) )) && (parenthesized_expression "((param_1 & 0xffffffdf) != 0x140)" ( (binary_expression "(param_1 & 0xffffffdf) != 0x140" (parenthesized_expression "(param_1 & 0xffffffdf)" ( (binary_expression "param_1 & 0xffffffdf" identifier & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "(param_1 != 0x126)" ( (binary_expression "param_1 != 0x126" identifier != number_literal) ))) )) (compound_statement "{\n    FUN_0002f320();\n  }" { (expression_statement "FUN_0002f320();" (call_expression "FUN_0002f320()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return puVar3;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) ))) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (return_statement return IDENT ;) })))
(function_definition "uint * FUN_0002f600(uint param_1,uint param_2)\n\n{\n  uint uVar1;\n  int iVar2;\n  uint *puVar3;\n  \n  puVar3 = (uint *)FUN_000211e0(0x18);\n  *puVar3 = param_1;\n  puVar3[2] = *(uint *)(param_2 + 8);\n  uVar1 = *(uint *)(param_2 + 4);\n  puVar3[3] = 2;\n  iVar2 = *(int *)(param_2 + 0xc);\n  puVar3[1] = uVar1;\n  puVar3[4] = param_2;\n  if ((((iVar2 == 7) && (param_1 != 0x117)) && ((param_1 & 0xffffffdf) != 0x140)) &&\n     (param_1 != 0x126)) {\n    FUN_0002f320();\n  }\n  return puVar3;\n}" (type_identifier "uint") (pointer_declarator "* FUN_0002f600(uint param_1,uint param_2)" (* "*") (function_declarator "FUN_0002f600(uint param_1,uint param_2)" (identifier "FUN_0002f600") (parameter_list "(uint param_1,uint param_2)" (( "(") (parameter_declaration "uint param_1" (type_identifier "uint") (identifier "param_1")) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) () ")")))) (compound_statement "{\n  uint uVar1;\n  int iVar2;\n  uint *puVar3;\n  \n  puVar3 = (uint *)FUN_000211e0(0x18);\n  *puVar3 = param_1;\n  puVar3[2] = *(uint *)(param_2 + 8);\n  uVar1 = *(uint *)(param_2 + 4);\n  puVar3[3] = 2;\n  iVar2 = *(int *)(param_2 + 0xc);\n  puVar3[1] = uVar1;\n  puVar3[4] = param_2;\n  if ((((iVar2 == 7) && (param_1 != 0x117)) && ((param_1 & 0xffffffdf) != 0x140)) &&\n     (param_1 != 0x126)) {\n    FUN_0002f320();\n  }\n  return puVar3;\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "uint *puVar3;" (type_identifier "uint") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (expression_statement "puVar3 = (uint *)FUN_000211e0(0x18);" (assignment_expression "puVar3 = (uint *)FUN_000211e0(0x18)" (identifier "puVar3") (= "=") (cast_expression "(uint *)FUN_000211e0(0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000211e0(0x18)" (identifier "FUN_000211e0") (argument_list "(0x18)" (( "(") (number_literal "0x18") () ")"))))) (; ";")) (expression_statement "*puVar3 = param_1;" (assignment_expression "*puVar3 = param_1" (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) (= "=") (identifier "param_1")) (; ";")) (expression_statement "puVar3[2] = *(uint *)(param_2 + 8);" (assignment_expression "puVar3[2] = *(uint *)(param_2 + 8)" (subscript_expression "puVar3[2]" (identifier "puVar3") ([ "[") (number_literal "2") (] "]")) (= "=") (pointer_expression "*(uint *)(param_2 + 8)" (* "*") (cast_expression "(uint *)(param_2 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar1 = *(uint *)(param_2 + 4);" (assignment_expression "uVar1 = *(uint *)(param_2 + 4)" (identifier "uVar1") (= "=") (pointer_expression "*(uint *)(param_2 + 4)" (* "*") (cast_expression "(uint *)(param_2 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 4)" (( "(") (binary_expression "param_2 + 4" (identifier "param_2") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "puVar3[3] = 2;" (assignment_expression "puVar3[3] = 2" (subscript_expression "puVar3[3]" (identifier "puVar3") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "2")) (; ";")) (expression_statement "iVar2 = *(int *)(param_2 + 0xc);" (assignment_expression "iVar2 = *(int *)(param_2 + 0xc)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(param_2 + 0xc)" (* "*") (cast_expression "(int *)(param_2 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "puVar3[1] = uVar1;" (assignment_expression "puVar3[1] = uVar1" (subscript_expression "puVar3[1]" (identifier "puVar3") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "puVar3[4] = param_2;" (assignment_expression "puVar3[4] = param_2" (subscript_expression "puVar3[4]" (identifier "puVar3") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "param_2")) (; ";")) (if_statement "if ((((iVar2 == 7) && (param_1 != 0x117)) && ((param_1 & 0xffffffdf) != 0x140)) &&\n     (param_1 != 0x126)) {\n    FUN_0002f320();\n  }" (if "if") (parenthesized_expression "((((iVar2 == 7) && (param_1 != 0x117)) && ((param_1 & 0xffffffdf) != 0x140)) &&\n     (param_1 != 0x126))" (( "(") (binary_expression "(((iVar2 == 7) && (param_1 != 0x117)) && ((param_1 & 0xffffffdf) != 0x140)) &&\n     (param_1 != 0x126)" (parenthesized_expression "(((iVar2 == 7) && (param_1 != 0x117)) && ((param_1 & 0xffffffdf) != 0x140))" (( "(") (binary_expression "((iVar2 == 7) && (param_1 != 0x117)) && ((param_1 & 0xffffffdf) != 0x140)" (parenthesized_expression "((iVar2 == 7) && (param_1 != 0x117))" (( "(") (binary_expression "(iVar2 == 7) && (param_1 != 0x117)" (parenthesized_expression "(iVar2 == 7)" (( "(") (binary_expression "iVar2 == 7" (identifier "iVar2") (== "==") (number_literal "7")) () ")")) (&& "&&") (parenthesized_expression "(param_1 != 0x117)" (( "(") (binary_expression "param_1 != 0x117" (identifier "param_1") (!= "!=") (number_literal "0x117")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((param_1 & 0xffffffdf) != 0x140)" (( "(") (binary_expression "(param_1 & 0xffffffdf) != 0x140" (parenthesized_expression "(param_1 & 0xffffffdf)" (( "(") (binary_expression "param_1 & 0xffffffdf" (identifier "param_1") (& "&") (number_literal "0xffffffdf")) () ")")) (!= "!=") (number_literal "0x140")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(param_1 != 0x126)" (( "(") (binary_expression "param_1 != 0x126" (identifier "param_1") (!= "!=") (number_literal "0x126")) () ")"))) () ")")) (compound_statement "{\n    FUN_0002f320();\n  }" ({ "{") (expression_statement "FUN_0002f320();" (call_expression "FUN_0002f320()" (identifier "FUN_0002f320") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return puVar3;" (return "return") (identifier "puVar3") (; ";")) (} "}")))

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

type_1 * function_1(int var_4,type_1 *child)

{
  type_2 uVar1;
  type_3 var_2;
  type_1 *tree;
  
  tree = (type_1 *)var_1(0x18);
  (tree->type).node_code = var_4;
  (tree->type).filename = (child->type).filename;
  uVar1 = (child->type).lineno;
  (tree->type).node_class = etree_unary;
  var_2 = (child->type).node_class;
  (tree->type).lineno = uVar1;
  (tree->binary).lhs = child;
  if ((((var_2 == var_3) && (var_4 != 0x117)) && ((var_4 & 0xffffffdfU) != 0x140)) &&
     (var_4 != 0x126)) {
    var_5(tree);
  }
  return tree;
}


(translation_unit (function_definition type: (type_identifier) declarator: (pointer_declarator declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (return_statement (identifier)))))

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

uint * MASKED(uint param_1,uint param_2)

{
  uint uVar1;
  int iVar2;
  uint *puVar3;
  
  puVar3 = (uint *)FUN_000211e0(0x18);
  *puVar3 = param_1;
  puVar3[2] = *(uint *)(param_2 + 8);
  uVar1 = *(uint *)(param_2 + 4);
  puVar3[3] = 2;
  iVar2 = *(int *)(param_2 + 0xc);
  puVar3[1] = uVar1;
  puVar3[4] = param_2;
  if ((((iVar2 == 7) && (param_1 != 0x117)) && ((param_1 & 0xffffffdf) != 0x140)) &&
     (param_1 != 0x126)) {
    FUN_0002f320();
  }
  return puVar3;
}

