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

void script_start_group(void *closurev)

{
}



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

void FUN_0033ffe0(int param_1)

{
  undefined4 *puVar1;
  
  if (*(char *)(param_1 + 0x15) != '\0') {
    return;
  }
  puVar1 = *(undefined4 **)(param_1 + 0x4c);
  if (puVar1 == (undefined4 *)0x0) {
    puVar1 = (undefined4 *)FUN_003ac4d0(0x14);
    *puVar1 = 0;
    puVar1[1] = 0;
    puVar1[2] = 0;
    *(undefined2 *)(puVar1 + 3) = 0;
    puVar1[4] = 0;
    *(undefined4 **)(param_1 + 0x4c) = puVar1;
  }
  FUN_002b6430(puVar1);
  return;
}


PUSH ESI
PUSH EBX
CALL 0x00050b50
ADD EBX,0x2aa019
SUB ESP,0x4
MOV ESI,dword ptr [ESP + 0x10]
CMP byte ptr [ESI + 0x15],0x0
JZ 0x00340000
ADD ESP,0x4
POP EBX
POP ESI
RET
MOV EAX,dword ptr [ESI + 0x4c]
TEST EAX,EAX
JZ 0x00340020
SUB ESP,0xc
PUSH EAX
CALL 0x002b6430
ADD ESP,0x10
ADD ESP,0x4
POP EBX
POP ESI
RET
SUB ESP,0xc
PUSH 0x14
CALL 0x003ac4d0
XOR EDX,EDX
ADD ESP,0x10
MOV dword ptr [EAX],0x0
MOV dword ptr [EAX + 0x4],0x0
MOV dword ptr [EAX + 0x8],0x0
MOV word ptr [EAX + 0xc],DX
MOV dword ptr [EAX + 0x10],0x0
MOV dword ptr [ESI + 0x4c],EAX
JMP 0x00340007
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_0033ffe0(int param_1)\n\n{\n  undefined4 *puVar1;\n  \n  if (*(char *)(param_1 + 0x15) != '\0') {\n    return;\n  }\n  puVar1 = *(undefined4 **)(param_1 + 0x4c);\n  if (puVar1 == (undefined4 *)0x0) {\n    puVar1 = (undefined4 *)FUN_003ac4d0(0x14);\n    *puVar1 = 0;\n    puVar1[1] = 0;\n    puVar1[2] = 0;\n    *(undefined2 *)(puVar1 + 3) = 0;\n    puVar1[4] = 0;\n    *(undefined4 **)(param_1 + 0x4c) = puVar1;\n  }\n  FUN_002b6430(puVar1);\n  return;\n}\n\n" comment (function_definition "void FUN_0033ffe0(int param_1)\n\n{\n  undefined4 *puVar1;\n  \n  if (*(char *)(param_1 + 0x15) != '\0') {\n    return;\n  }\n  puVar1 = *(undefined4 **)(param_1 + 0x4c);\n  if (puVar1 == (undefined4 *)0x0) {\n    puVar1 = (undefined4 *)FUN_003ac4d0(0x14);\n    *puVar1 = 0;\n    puVar1[1] = 0;\n    puVar1[2] = 0;\n    *(undefined2 *)(puVar1 + 3) = 0;\n    puVar1[4] = 0;\n    *(undefined4 **)(param_1 + 0x4c) = puVar1;\n  }\n  FUN_002b6430(puVar1);\n  return;\n}" primitive_type (function_declarator "FUN_0033ffe0(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  undefined4 *puVar1;\n  \n  if (*(char *)(param_1 + 0x15) != '\0') {\n    return;\n  }\n  puVar1 = *(undefined4 **)(param_1 + 0x4c);\n  if (puVar1 == (undefined4 *)0x0) {\n    puVar1 = (undefined4 *)FUN_003ac4d0(0x14);\n    *puVar1 = 0;\n    puVar1[1] = 0;\n    puVar1[2] = 0;\n    *(undefined2 *)(puVar1 + 3) = 0;\n    puVar1[4] = 0;\n    *(undefined4 **)(param_1 + 0x4c) = puVar1;\n  }\n  FUN_002b6430(puVar1);\n  return;\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (if_statement "if (*(char *)(param_1 + 0x15) != '\0') {\n    return;\n  }" if (parenthesized_expression "(*(char *)(param_1 + 0x15) != '\0')" ( (binary_expression "*(char *)(param_1 + 0x15) != '\0'" (pointer_expression "*(char *)(param_1 + 0x15)" * (cast_expression "(char *)(param_1 + 0x15)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x15)" ( (binary_expression "param_1 + 0x15" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "puVar1 = *(undefined4 **)(param_1 + 0x4c);" (assignment_expression "puVar1 = *(undefined4 **)(param_1 + 0x4c)" identifier = (pointer_expression "*(undefined4 **)(param_1 + 0x4c)" * (cast_expression "(undefined4 **)(param_1 + 0x4c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) ))))) ;) (if_statement "if (puVar1 == (undefined4 *)0x0) {\n    puVar1 = (undefined4 *)FUN_003ac4d0(0x14);\n    *puVar1 = 0;\n    puVar1[1] = 0;\n    puVar1[2] = 0;\n    *(undefined2 *)(puVar1 + 3) = 0;\n    puVar1[4] = 0;\n    *(undefined4 **)(param_1 + 0x4c) = puVar1;\n  }" if (parenthesized_expression "(puVar1 == (undefined4 *)0x0)" ( (binary_expression "puVar1 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar1 = (undefined4 *)FUN_003ac4d0(0x14);\n    *puVar1 = 0;\n    puVar1[1] = 0;\n    puVar1[2] = 0;\n    *(undefined2 *)(puVar1 + 3) = 0;\n    puVar1[4] = 0;\n    *(undefined4 **)(param_1 + 0x4c) = puVar1;\n  }" { (expression_statement "puVar1 = (undefined4 *)FUN_003ac4d0(0x14);" (assignment_expression "puVar1 = (undefined4 *)FUN_003ac4d0(0x14)" identifier = (cast_expression "(undefined4 *)FUN_003ac4d0(0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_003ac4d0(0x14)" identifier (argument_list "(0x14)" ( number_literal ))))) ;) (expression_statement "*puVar1 = 0;" (assignment_expression "*puVar1 = 0" (pointer_expression "*puVar1" * identifier) = number_literal) ;) (expression_statement "puVar1[1] = 0;" (assignment_expression "puVar1[1] = 0" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[2] = 0;" (assignment_expression "puVar1[2] = 0" (subscript_expression "puVar1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined2 *)(puVar1 + 3) = 0;" (assignment_expression "*(undefined2 *)(puVar1 + 3) = 0" (pointer_expression "*(undefined2 *)(puVar1 + 3)" * (cast_expression "(undefined2 *)(puVar1 + 3)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 3)" ( (binary_expression "puVar1 + 3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar1[4] = 0;" (assignment_expression "puVar1[4] = 0" (subscript_expression "puVar1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 **)(param_1 + 0x4c) = puVar1;" (assignment_expression "*(undefined4 **)(param_1 + 0x4c) = puVar1" (pointer_expression "*(undefined4 **)(param_1 + 0x4c)" * (cast_expression "(undefined4 **)(param_1 + 0x4c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "FUN_002b6430(puVar1);" (call_expression "FUN_002b6430(puVar1)" identifier (argument_list "(puVar1)" ( 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 script_start_group(void *closurev)\n\n{\n}\n\n" comment comment (function_definition "void script_start_group(void *closurev)\n\n{\n}" primitive_type (function_declarator "script_start_group(void *closurev)" identifier (parameter_list "(void *closurev)" ( (parameter_declaration "void *closurev" primitive_type (pointer_declarator "*closurev" * identifier)) ))) (compound_statement "{\n}" { })))
(translation_unit "void FUN_0033ffe0(int param_1)\n\n{\n  undefined4 *puVar1;\n  \n  if (*(char *)(param_1 + 0x15) != '\0') {\n    return;\n  }\n  puVar1 = *(undefined4 **)(param_1 + 0x4c);\n  if (puVar1 == (undefined4 *)0x0) {\n    puVar1 = (undefined4 *)FUN_003ac4d0(0x14);\n    *puVar1 = 0;\n    puVar1[1] = 0;\n    puVar1[2] = 0;\n    *(undefined2 *)(puVar1 + 3) = 0;\n    puVar1[4] = 0;\n    *(undefined4 **)(param_1 + 0x4c) = puVar1;\n  }\n  FUN_002b6430(puVar1);\n  return;\n}\n\n" (function_definition "void FUN_0033ffe0(int param_1)\n\n{\n  undefined4 *puVar1;\n  \n  if (*(char *)(param_1 + 0x15) != '\0') {\n    return;\n  }\n  puVar1 = *(undefined4 **)(param_1 + 0x4c);\n  if (puVar1 == (undefined4 *)0x0) {\n    puVar1 = (undefined4 *)FUN_003ac4d0(0x14);\n    *puVar1 = 0;\n    puVar1[1] = 0;\n    puVar1[2] = 0;\n    *(undefined2 *)(puVar1 + 3) = 0;\n    puVar1[4] = 0;\n    *(undefined4 **)(param_1 + 0x4c) = puVar1;\n  }\n  FUN_002b6430(puVar1);\n  return;\n}" primitive_type (function_declarator "FUN_0033ffe0(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  undefined4 *puVar1;\n  \n  if (*(char *)(param_1 + 0x15) != '\0') {\n    return;\n  }\n  puVar1 = *(undefined4 **)(param_1 + 0x4c);\n  if (puVar1 == (undefined4 *)0x0) {\n    puVar1 = (undefined4 *)FUN_003ac4d0(0x14);\n    *puVar1 = 0;\n    puVar1[1] = 0;\n    puVar1[2] = 0;\n    *(undefined2 *)(puVar1 + 3) = 0;\n    puVar1[4] = 0;\n    *(undefined4 **)(param_1 + 0x4c) = puVar1;\n  }\n  FUN_002b6430(puVar1);\n  return;\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (if_statement "if (*(char *)(param_1 + 0x15) != '\0') {\n    return;\n  }" if (parenthesized_expression "(*(char *)(param_1 + 0x15) != '\0')" ( (binary_expression "*(char *)(param_1 + 0x15) != '\0'" (pointer_expression "*(char *)(param_1 + 0x15)" * (cast_expression "(char *)(param_1 + 0x15)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x15)" ( (binary_expression "param_1 + 0x15" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "puVar1 = *(undefined4 **)(param_1 + 0x4c);" (assignment_expression "puVar1 = *(undefined4 **)(param_1 + 0x4c)" identifier = (pointer_expression "*(undefined4 **)(param_1 + 0x4c)" * (cast_expression "(undefined4 **)(param_1 + 0x4c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) ))))) ;) (if_statement "if (puVar1 == (undefined4 *)0x0) {\n    puVar1 = (undefined4 *)FUN_003ac4d0(0x14);\n    *puVar1 = 0;\n    puVar1[1] = 0;\n    puVar1[2] = 0;\n    *(undefined2 *)(puVar1 + 3) = 0;\n    puVar1[4] = 0;\n    *(undefined4 **)(param_1 + 0x4c) = puVar1;\n  }" if (parenthesized_expression "(puVar1 == (undefined4 *)0x0)" ( (binary_expression "puVar1 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar1 = (undefined4 *)FUN_003ac4d0(0x14);\n    *puVar1 = 0;\n    puVar1[1] = 0;\n    puVar1[2] = 0;\n    *(undefined2 *)(puVar1 + 3) = 0;\n    puVar1[4] = 0;\n    *(undefined4 **)(param_1 + 0x4c) = puVar1;\n  }" { (expression_statement "puVar1 = (undefined4 *)FUN_003ac4d0(0x14);" (assignment_expression "puVar1 = (undefined4 *)FUN_003ac4d0(0x14)" identifier = (cast_expression "(undefined4 *)FUN_003ac4d0(0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_003ac4d0(0x14)" identifier (argument_list "(0x14)" ( number_literal ))))) ;) (expression_statement "*puVar1 = 0;" (assignment_expression "*puVar1 = 0" (pointer_expression "*puVar1" * identifier) = number_literal) ;) (expression_statement "puVar1[1] = 0;" (assignment_expression "puVar1[1] = 0" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[2] = 0;" (assignment_expression "puVar1[2] = 0" (subscript_expression "puVar1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined2 *)(puVar1 + 3) = 0;" (assignment_expression "*(undefined2 *)(puVar1 + 3) = 0" (pointer_expression "*(undefined2 *)(puVar1 + 3)" * (cast_expression "(undefined2 *)(puVar1 + 3)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 3)" ( (binary_expression "puVar1 + 3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar1[4] = 0;" (assignment_expression "puVar1[4] = 0" (subscript_expression "puVar1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 **)(param_1 + 0x4c) = puVar1;" (assignment_expression "*(undefined4 **)(param_1 + 0x4c) = puVar1" (pointer_expression "*(undefined4 **)(param_1 + 0x4c)" * (cast_expression "(undefined4 **)(param_1 + 0x4c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "FUN_002b6430(puVar1);" (call_expression "FUN_002b6430(puVar1)" identifier (argument_list "(puVar1)" ( identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return ;) })))
(function_definition "void FUN_0033ffe0(int param_1)\n\n{\n  undefined4 *puVar1;\n  \n  if (*(char *)(param_1 + 0x15) != '\0') {\n    return;\n  }\n  puVar1 = *(undefined4 **)(param_1 + 0x4c);\n  if (puVar1 == (undefined4 *)0x0) {\n    puVar1 = (undefined4 *)FUN_003ac4d0(0x14);\n    *puVar1 = 0;\n    puVar1[1] = 0;\n    puVar1[2] = 0;\n    *(undefined2 *)(puVar1 + 3) = 0;\n    puVar1[4] = 0;\n    *(undefined4 **)(param_1 + 0x4c) = puVar1;\n  }\n  FUN_002b6430(puVar1);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0033ffe0(int param_1)" (identifier "FUN_0033ffe0") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  undefined4 *puVar1;\n  \n  if (*(char *)(param_1 + 0x15) != '\0') {\n    return;\n  }\n  puVar1 = *(undefined4 **)(param_1 + 0x4c);\n  if (puVar1 == (undefined4 *)0x0) {\n    puVar1 = (undefined4 *)FUN_003ac4d0(0x14);\n    *puVar1 = 0;\n    puVar1[1] = 0;\n    puVar1[2] = 0;\n    *(undefined2 *)(puVar1 + 3) = 0;\n    puVar1[4] = 0;\n    *(undefined4 **)(param_1 + 0x4c) = puVar1;\n  }\n  FUN_002b6430(puVar1);\n  return;\n}" ({ "{") (declaration "undefined4 *puVar1;" (type_identifier "undefined4") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (if_statement "if (*(char *)(param_1 + 0x15) != '\0') {\n    return;\n  }" (if "if") (parenthesized_expression "(*(char *)(param_1 + 0x15) != '\0')" (( "(") (binary_expression "*(char *)(param_1 + 0x15) != '\0'" (pointer_expression "*(char *)(param_1 + 0x15)" (* "*") (cast_expression "(char *)(param_1 + 0x15)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x15)" (( "(") (binary_expression "param_1 + 0x15" (identifier "param_1") (+ "+") (number_literal "0x15")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "puVar1 = *(undefined4 **)(param_1 + 0x4c);" (assignment_expression "puVar1 = *(undefined4 **)(param_1 + 0x4c)" (identifier "puVar1") (= "=") (pointer_expression "*(undefined4 **)(param_1 + 0x4c)" (* "*") (cast_expression "(undefined4 **)(param_1 + 0x4c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x4c)" (( "(") (binary_expression "param_1 + 0x4c" (identifier "param_1") (+ "+") (number_literal "0x4c")) () ")"))))) (; ";")) (if_statement "if (puVar1 == (undefined4 *)0x0) {\n    puVar1 = (undefined4 *)FUN_003ac4d0(0x14);\n    *puVar1 = 0;\n    puVar1[1] = 0;\n    puVar1[2] = 0;\n    *(undefined2 *)(puVar1 + 3) = 0;\n    puVar1[4] = 0;\n    *(undefined4 **)(param_1 + 0x4c) = puVar1;\n  }" (if "if") (parenthesized_expression "(puVar1 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar1 == (undefined4 *)0x0" (identifier "puVar1") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    puVar1 = (undefined4 *)FUN_003ac4d0(0x14);\n    *puVar1 = 0;\n    puVar1[1] = 0;\n    puVar1[2] = 0;\n    *(undefined2 *)(puVar1 + 3) = 0;\n    puVar1[4] = 0;\n    *(undefined4 **)(param_1 + 0x4c) = puVar1;\n  }" ({ "{") (expression_statement "puVar1 = (undefined4 *)FUN_003ac4d0(0x14);" (assignment_expression "puVar1 = (undefined4 *)FUN_003ac4d0(0x14)" (identifier "puVar1") (= "=") (cast_expression "(undefined4 *)FUN_003ac4d0(0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_003ac4d0(0x14)" (identifier "FUN_003ac4d0") (argument_list "(0x14)" (( "(") (number_literal "0x14") () ")"))))) (; ";")) (expression_statement "*puVar1 = 0;" (assignment_expression "*puVar1 = 0" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar1[1] = 0;" (assignment_expression "puVar1[1] = 0" (subscript_expression "puVar1[1]" (identifier "puVar1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar1[2] = 0;" (assignment_expression "puVar1[2] = 0" (subscript_expression "puVar1[2]" (identifier "puVar1") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined2 *)(puVar1 + 3) = 0;" (assignment_expression "*(undefined2 *)(puVar1 + 3) = 0" (pointer_expression "*(undefined2 *)(puVar1 + 3)" (* "*") (cast_expression "(undefined2 *)(puVar1 + 3)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + 3)" (( "(") (binary_expression "puVar1 + 3" (identifier "puVar1") (+ "+") (number_literal "3")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar1[4] = 0;" (assignment_expression "puVar1[4] = 0" (subscript_expression "puVar1[4]" (identifier "puVar1") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 **)(param_1 + 0x4c) = puVar1;" (assignment_expression "*(undefined4 **)(param_1 + 0x4c) = puVar1" (pointer_expression "*(undefined4 **)(param_1 + 0x4c)" (* "*") (cast_expression "(undefined4 **)(param_1 + 0x4c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x4c)" (( "(") (binary_expression "param_1 + 0x4c" (identifier "param_1") (+ "+") (number_literal "0x4c")) () ")")))) (= "=") (identifier "puVar1")) (; ";")) (} "}"))) (expression_statement "FUN_002b6430(puVar1);" (call_expression "FUN_002b6430(puVar1)" (identifier "FUN_002b6430") (argument_list "(puVar1)" (( "(") (identifier "puVar1") () ")"))) (; ";")) (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(void *closurev)

{
}


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

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

void MASKED(int param_1)

{
  undefined4 *puVar1;
  
  if (*(char *)(param_1 + 0x15) != '\0') {
    return;
  }
  puVar1 = *(undefined4 **)(param_1 + 0x4c);
  if (puVar1 == (undefined4 *)0x0) {
    puVar1 = (undefined4 *)FUN_003ac4d0(0x14);
    *puVar1 = 0;
    puVar1[1] = 0;
    puVar1[2] = 0;
    *(undefined2 *)(puVar1 + 3) = 0;
    puVar1[4] = 0;
    *(undefined4 **)(param_1 + 0x4c) = puVar1;
  }
  FUN_002b6430(puVar1);
  return;
}

