
/* WARNING: Function: __x86.get_pc_thunk.dx replaced with injection: get_pc_thunk_dx */

void __do_global_ctors_aux(void)

{
  code *pcVar1;
  int *piVar2;
  
  if (__CTOR_LIST__ != (code *)0xffffffff) {
    piVar2 = (int *)&__CTOR_LIST__;
    pcVar1 = __CTOR_LIST__;
    do {
      (*pcVar1)();
      piVar2 = piVar2 + -1;
      pcVar1 = (code *)*piVar2;
    } while (pcVar1 != (code *)0xffffffff);
    return;
  }
  return;
}



/* WARNING: Function: __i686.get_pc_thunk.dx replaced with injection: get_pc_thunk_dx */

void FUN_00016460(void)

{
  code *pcVar1;
  int *piVar2;
  
  if (DAT_0001be10 != (code *)0xffffffff) {
    piVar2 = (int *)&DAT_0001be10;
    pcVar1 = DAT_0001be10;
    do {
      (*pcVar1)();
      piVar2 = piVar2 + -1;
      pcVar1 = (code *)*piVar2;
    } while (pcVar1 != (code *)0xffffffff);
    return;
  }
  return;
}


CALL 0x000121d5
ADD EDX,0x5b9b
MOV EAX,dword ptr [EDX + 0xfffffe10]
CMP EAX,-0x1
JZ 0x000164a0
PUSH EBP
MOV EBP,ESP
PUSH EBX
LEA EBX,[EDX + 0xfffffe10]
SUB ESP,0x4
LEA ESI,[ESI]
NOP
CALL EAX
SUB EBX,0x4
MOV EAX,dword ptr [EBX]
CMP EAX,-0x1
JNZ 0x00016488
ADD ESP,0x4
POP EBX
POP EBP
RET
RET
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.dx replaced with injection: get_pc_thunk_dx */\n\nvoid FUN_00016460(void)\n\n{\n  code *pcVar1;\n  int *piVar2;\n  \n  if (DAT_0001be10 != (code *)0xffffffff) {\n    piVar2 = (int *)&DAT_0001be10;\n    pcVar1 = DAT_0001be10;\n    do {\n      (*pcVar1)();\n      piVar2 = piVar2 + -1;\n      pcVar1 = (code *)*piVar2;\n    } while (pcVar1 != (code *)0xffffffff);\n    return;\n  }\n  return;\n}\n\n" comment (function_definition "void FUN_00016460(void)\n\n{\n  code *pcVar1;\n  int *piVar2;\n  \n  if (DAT_0001be10 != (code *)0xffffffff) {\n    piVar2 = (int *)&DAT_0001be10;\n    pcVar1 = DAT_0001be10;\n    do {\n      (*pcVar1)();\n      piVar2 = piVar2 + -1;\n      pcVar1 = (code *)*piVar2;\n    } while (pcVar1 != (code *)0xffffffff);\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00016460(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  code *pcVar1;\n  int *piVar2;\n  \n  if (DAT_0001be10 != (code *)0xffffffff) {\n    piVar2 = (int *)&DAT_0001be10;\n    pcVar1 = DAT_0001be10;\n    do {\n      (*pcVar1)();\n      piVar2 = piVar2 + -1;\n      pcVar1 = (code *)*piVar2;\n    } while (pcVar1 != (code *)0xffffffff);\n    return;\n  }\n  return;\n}" { (declaration "code *pcVar1;" type_identifier (pointer_declarator "*pcVar1" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (if_statement "if (DAT_0001be10 != (code *)0xffffffff) {\n    piVar2 = (int *)&DAT_0001be10;\n    pcVar1 = DAT_0001be10;\n    do {\n      (*pcVar1)();\n      piVar2 = piVar2 + -1;\n      pcVar1 = (code *)*piVar2;\n    } while (pcVar1 != (code *)0xffffffff);\n    return;\n  }" if (parenthesized_expression "(DAT_0001be10 != (code *)0xffffffff)" ( (binary_expression "DAT_0001be10 != (code *)0xffffffff" identifier != (cast_expression "(code *)0xffffffff" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    piVar2 = (int *)&DAT_0001be10;\n    pcVar1 = DAT_0001be10;\n    do {\n      (*pcVar1)();\n      piVar2 = piVar2 + -1;\n      pcVar1 = (code *)*piVar2;\n    } while (pcVar1 != (code *)0xffffffff);\n    return;\n  }" { (expression_statement "piVar2 = (int *)&DAT_0001be10;" (assignment_expression "piVar2 = (int *)&DAT_0001be10" identifier = (cast_expression "(int *)&DAT_0001be10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0001be10" & identifier))) ;) (expression_statement "pcVar1 = DAT_0001be10;" (assignment_expression "pcVar1 = DAT_0001be10" identifier = identifier) ;) (do_statement "do {\n      (*pcVar1)();\n      piVar2 = piVar2 + -1;\n      pcVar1 = (code *)*piVar2;\n    } while (pcVar1 != (code *)0xffffffff);" do (compound_statement "{\n      (*pcVar1)();\n      piVar2 = piVar2 + -1;\n      pcVar1 = (code *)*piVar2;\n    }" { (expression_statement "(*pcVar1)();" (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar2 = piVar2 + -1;" (assignment_expression "piVar2 = piVar2 + -1" identifier = (binary_expression "piVar2 + -1" identifier + number_literal)) ;) (expression_statement "pcVar1 = (code *)*piVar2;" (assignment_expression "pcVar1 = (code *)*piVar2" identifier = (cast_expression "(code *)*piVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar2" * identifier))) ;) }) while (parenthesized_expression "(pcVar1 != (code *)0xffffffff)" ( (binary_expression "pcVar1 != (code *)0xffffffff" identifier != (cast_expression "(code *)0xffffffff" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.dx replaced with injection: get_pc_thunk_dx */\n\nvoid __do_global_ctors_aux(void)\n\n{\n  code *pcVar1;\n  int *piVar2;\n  \n  if (__CTOR_LIST__ != (code *)0xffffffff) {\n    piVar2 = (int *)&__CTOR_LIST__;\n    pcVar1 = __CTOR_LIST__;\n    do {\n      (*pcVar1)();\n      piVar2 = piVar2 + -1;\n      pcVar1 = (code *)*piVar2;\n    } while (pcVar1 != (code *)0xffffffff);\n    return;\n  }\n  return;\n}\n\n" comment (function_definition "void __do_global_ctors_aux(void)\n\n{\n  code *pcVar1;\n  int *piVar2;\n  \n  if (__CTOR_LIST__ != (code *)0xffffffff) {\n    piVar2 = (int *)&__CTOR_LIST__;\n    pcVar1 = __CTOR_LIST__;\n    do {\n      (*pcVar1)();\n      piVar2 = piVar2 + -1;\n      pcVar1 = (code *)*piVar2;\n    } while (pcVar1 != (code *)0xffffffff);\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "__do_global_ctors_aux(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  code *pcVar1;\n  int *piVar2;\n  \n  if (__CTOR_LIST__ != (code *)0xffffffff) {\n    piVar2 = (int *)&__CTOR_LIST__;\n    pcVar1 = __CTOR_LIST__;\n    do {\n      (*pcVar1)();\n      piVar2 = piVar2 + -1;\n      pcVar1 = (code *)*piVar2;\n    } while (pcVar1 != (code *)0xffffffff);\n    return;\n  }\n  return;\n}" { (declaration "code *pcVar1;" type_identifier (pointer_declarator "*pcVar1" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (if_statement "if (__CTOR_LIST__ != (code *)0xffffffff) {\n    piVar2 = (int *)&__CTOR_LIST__;\n    pcVar1 = __CTOR_LIST__;\n    do {\n      (*pcVar1)();\n      piVar2 = piVar2 + -1;\n      pcVar1 = (code *)*piVar2;\n    } while (pcVar1 != (code *)0xffffffff);\n    return;\n  }" if (parenthesized_expression "(__CTOR_LIST__ != (code *)0xffffffff)" ( (binary_expression "__CTOR_LIST__ != (code *)0xffffffff" identifier != (cast_expression "(code *)0xffffffff" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    piVar2 = (int *)&__CTOR_LIST__;\n    pcVar1 = __CTOR_LIST__;\n    do {\n      (*pcVar1)();\n      piVar2 = piVar2 + -1;\n      pcVar1 = (code *)*piVar2;\n    } while (pcVar1 != (code *)0xffffffff);\n    return;\n  }" { (expression_statement "piVar2 = (int *)&__CTOR_LIST__;" (assignment_expression "piVar2 = (int *)&__CTOR_LIST__" identifier = (cast_expression "(int *)&__CTOR_LIST__" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&__CTOR_LIST__" & identifier))) ;) (expression_statement "pcVar1 = __CTOR_LIST__;" (assignment_expression "pcVar1 = __CTOR_LIST__" identifier = identifier) ;) (do_statement "do {\n      (*pcVar1)();\n      piVar2 = piVar2 + -1;\n      pcVar1 = (code *)*piVar2;\n    } while (pcVar1 != (code *)0xffffffff);" do (compound_statement "{\n      (*pcVar1)();\n      piVar2 = piVar2 + -1;\n      pcVar1 = (code *)*piVar2;\n    }" { (expression_statement "(*pcVar1)();" (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar2 = piVar2 + -1;" (assignment_expression "piVar2 = piVar2 + -1" identifier = (binary_expression "piVar2 + -1" identifier + number_literal)) ;) (expression_statement "pcVar1 = (code *)*piVar2;" (assignment_expression "pcVar1 = (code *)*piVar2" identifier = (cast_expression "(code *)*piVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar2" * identifier))) ;) }) while (parenthesized_expression "(pcVar1 != (code *)0xffffffff)" ( (binary_expression "pcVar1 != (code *)0xffffffff" identifier != (cast_expression "(code *)0xffffffff" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00016460(void)\n\n{\n  code *pcVar1;\n  int *piVar2;\n  \n  if (DAT_0001be10 != (code *)0xffffffff) {\n    piVar2 = (int *)&DAT_0001be10;\n    pcVar1 = DAT_0001be10;\n    do {\n      (*pcVar1)();\n      piVar2 = piVar2 + -1;\n      pcVar1 = (code *)*piVar2;\n    } while (pcVar1 != (code *)0xffffffff);\n    return;\n  }\n  return;\n}\n\n" (function_definition "void FUN_00016460(void)\n\n{\n  code *pcVar1;\n  int *piVar2;\n  \n  if (DAT_0001be10 != (code *)0xffffffff) {\n    piVar2 = (int *)&DAT_0001be10;\n    pcVar1 = DAT_0001be10;\n    do {\n      (*pcVar1)();\n      piVar2 = piVar2 + -1;\n      pcVar1 = (code *)*piVar2;\n    } while (pcVar1 != (code *)0xffffffff);\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00016460(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  code *pcVar1;\n  int *piVar2;\n  \n  if (DAT_0001be10 != (code *)0xffffffff) {\n    piVar2 = (int *)&DAT_0001be10;\n    pcVar1 = DAT_0001be10;\n    do {\n      (*pcVar1)();\n      piVar2 = piVar2 + -1;\n      pcVar1 = (code *)*piVar2;\n    } while (pcVar1 != (code *)0xffffffff);\n    return;\n  }\n  return;\n}" { (declaration "code *pcVar1;" type_identifier (pointer_declarator "*pcVar1" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (if_statement "if (DAT_0001be10 != (code *)0xffffffff) {\n    piVar2 = (int *)&DAT_0001be10;\n    pcVar1 = DAT_0001be10;\n    do {\n      (*pcVar1)();\n      piVar2 = piVar2 + -1;\n      pcVar1 = (code *)*piVar2;\n    } while (pcVar1 != (code *)0xffffffff);\n    return;\n  }" if (parenthesized_expression "(DAT_0001be10 != (code *)0xffffffff)" ( (binary_expression "DAT_0001be10 != (code *)0xffffffff" identifier != (cast_expression "(code *)0xffffffff" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    piVar2 = (int *)&DAT_0001be10;\n    pcVar1 = DAT_0001be10;\n    do {\n      (*pcVar1)();\n      piVar2 = piVar2 + -1;\n      pcVar1 = (code *)*piVar2;\n    } while (pcVar1 != (code *)0xffffffff);\n    return;\n  }" { (expression_statement "piVar2 = (int *)&DAT_0001be10;" (assignment_expression "piVar2 = (int *)&DAT_0001be10" identifier = (cast_expression "(int *)&DAT_0001be10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0001be10" & identifier))) ;) (expression_statement "pcVar1 = DAT_0001be10;" (assignment_expression "pcVar1 = DAT_0001be10" identifier = identifier) ;) (do_statement "do {\n      (*pcVar1)();\n      piVar2 = piVar2 + -1;\n      pcVar1 = (code *)*piVar2;\n    } while (pcVar1 != (code *)0xffffffff);" do (compound_statement "{\n      (*pcVar1)();\n      piVar2 = piVar2 + -1;\n      pcVar1 = (code *)*piVar2;\n    }" { (expression_statement "(*pcVar1)();" (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar2 = piVar2 + -1;" (assignment_expression "piVar2 = piVar2 + -1" identifier = (binary_expression "piVar2 + -1" identifier + number_literal)) ;) (expression_statement "pcVar1 = (code *)*piVar2;" (assignment_expression "pcVar1 = (code *)*piVar2" identifier = (cast_expression "(code *)*piVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar2" * identifier))) ;) }) while (parenthesized_expression "(pcVar1 != (code *)0xffffffff)" ( (binary_expression "pcVar1 != (code *)0xffffffff" identifier != (cast_expression "(code *)0xffffffff" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (return_statement return ;) })) (return_statement return ;) })))
(function_definition "void FUN_00016460(void)\n\n{\n  code *pcVar1;\n  int *piVar2;\n  \n  if (DAT_0001be10 != (code *)0xffffffff) {\n    piVar2 = (int *)&DAT_0001be10;\n    pcVar1 = DAT_0001be10;\n    do {\n      (*pcVar1)();\n      piVar2 = piVar2 + -1;\n      pcVar1 = (code *)*piVar2;\n    } while (pcVar1 != (code *)0xffffffff);\n    return;\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00016460(void)" (identifier "FUN_00016460") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  code *pcVar1;\n  int *piVar2;\n  \n  if (DAT_0001be10 != (code *)0xffffffff) {\n    piVar2 = (int *)&DAT_0001be10;\n    pcVar1 = DAT_0001be10;\n    do {\n      (*pcVar1)();\n      piVar2 = piVar2 + -1;\n      pcVar1 = (code *)*piVar2;\n    } while (pcVar1 != (code *)0xffffffff);\n    return;\n  }\n  return;\n}" ({ "{") (declaration "code *pcVar1;" (type_identifier "code") (pointer_declarator "*pcVar1" (* "*") (identifier "pcVar1")) (; ";")) (declaration "int *piVar2;" (primitive_type "int") (pointer_declarator "*piVar2" (* "*") (identifier "piVar2")) (; ";")) (if_statement "if (DAT_0001be10 != (code *)0xffffffff) {\n    piVar2 = (int *)&DAT_0001be10;\n    pcVar1 = DAT_0001be10;\n    do {\n      (*pcVar1)();\n      piVar2 = piVar2 + -1;\n      pcVar1 = (code *)*piVar2;\n    } while (pcVar1 != (code *)0xffffffff);\n    return;\n  }" (if "if") (parenthesized_expression "(DAT_0001be10 != (code *)0xffffffff)" (( "(") (binary_expression "DAT_0001be10 != (code *)0xffffffff" (identifier "DAT_0001be10") (!= "!=") (cast_expression "(code *)0xffffffff" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) () ")")) (compound_statement "{\n    piVar2 = (int *)&DAT_0001be10;\n    pcVar1 = DAT_0001be10;\n    do {\n      (*pcVar1)();\n      piVar2 = piVar2 + -1;\n      pcVar1 = (code *)*piVar2;\n    } while (pcVar1 != (code *)0xffffffff);\n    return;\n  }" ({ "{") (expression_statement "piVar2 = (int *)&DAT_0001be10;" (assignment_expression "piVar2 = (int *)&DAT_0001be10" (identifier "piVar2") (= "=") (cast_expression "(int *)&DAT_0001be10" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_0001be10" (& "&") (identifier "DAT_0001be10")))) (; ";")) (expression_statement "pcVar1 = DAT_0001be10;" (assignment_expression "pcVar1 = DAT_0001be10" (identifier "pcVar1") (= "=") (identifier "DAT_0001be10")) (; ";")) (do_statement "do {\n      (*pcVar1)();\n      piVar2 = piVar2 + -1;\n      pcVar1 = (code *)*piVar2;\n    } while (pcVar1 != (code *)0xffffffff);" (do "do") (compound_statement "{\n      (*pcVar1)();\n      piVar2 = piVar2 + -1;\n      pcVar1 = (code *)*piVar2;\n    }" ({ "{") (expression_statement "(*pcVar1)();" (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" (( "(") (pointer_expression "*pcVar1" (* "*") (identifier "pcVar1")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar2 = piVar2 + -1;" (assignment_expression "piVar2 = piVar2 + -1" (identifier "piVar2") (= "=") (binary_expression "piVar2 + -1" (identifier "piVar2") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "pcVar1 = (code *)*piVar2;" (assignment_expression "pcVar1 = (code *)*piVar2" (identifier "pcVar1") (= "=") (cast_expression "(code *)*piVar2" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar2" (* "*") (identifier "piVar2")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pcVar1 != (code *)0xffffffff)" (( "(") (binary_expression "pcVar1 != (code *)0xffffffff" (identifier "pcVar1") (!= "!=") (cast_expression "(code *)0xffffffff" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) () ")")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.dx replaced with injection: get_pc_thunk_dx */

void function_1(void)

{
  type_1 *var_3;
  int *var_2;
  
  if (var_1 != (type_1 *)0xffffffff) {
    var_2 = (int *)&var_1;
    var_3 = var_1;
    do {
      (*var_3)();
      var_2 = var_2 + -1;
      var_3 = (type_1 *)*var_2;
    } while (var_3 != (type_1 *)0xffffffff);
    return;
  }
  return;
}


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

/* WARNING: Function: __i686.get_pc_thunk.dx replaced with injection: get_pc_thunk_dx */

void MASKED(void)

{
  code *pcVar1;
  int *piVar2;
  
  if (DAT_0001be10 != (code *)0xffffffff) {
    piVar2 = (int *)&DAT_0001be10;
    pcVar1 = DAT_0001be10;
    do {
      (*pcVar1)();
      piVar2 = piVar2 + -1;
      pcVar1 = (code *)*piVar2;
    } while (pcVar1 != (code *)0xffffffff);
    return;
  }
  return;
}

