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

void __regparm3 dwarf2_gen_line_info_1(symbolS *label,dwarf2_line_info *loc)

{
  subsegT subseg;
  line_entry *plVar1;
  line_subseg *plVar2;
  line_entry *h;
  
  plVar1 = (line_entry *)xmalloc(0x24);
  plVar1->next = (line_entry *)0x0;
  plVar1->label = label;
  subseg = now_subseg;
  (plVar1->loc).filenum = loc->filenum;
  (plVar1->loc).line = loc->line;
  (plVar1->loc).column = loc->column;
  (plVar1->loc).isa = loc->isa;
  (plVar1->loc).flags = loc->flags;
  (plVar1->loc).discriminator = loc->discriminator;
  (plVar1->loc).view = loc->view;
  plVar2 = get_line_subseg(now_seg,subseg,1);
  if (loc->view != (symbolS *)0x0) {
    h = (line_entry *)0x0;
    if (plVar2->head != (line_entry *)0x0) {
      h = (line_entry *)plVar2->ptail;
    }
    set_or_check_view((line_entry *)&plVar1->label,(line_entry *)&(plVar1->loc).view,h,plVar2->head)
    ;
  }
  *plVar2->ptail = plVar1;
  plVar2->ptail = (line_entry **)plVar1;
  return;
}



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

void __regparm3 FUN_0001ac30(undefined4 param_1,undefined4 *param_2)

{
  undefined4 *puVar1;
  int iVar2;
  
  puVar1 = (undefined4 *)xmalloc(0x24);
  *puVar1 = 0;
  puVar1[1] = param_1;
  puVar1[2] = *param_2;
  puVar1[3] = param_2[1];
  puVar1[4] = param_2[2];
  puVar1[5] = param_2[3];
  puVar1[6] = param_2[4];
  puVar1[7] = param_2[5];
  puVar1[8] = param_2[6];
  iVar2 = FUN_00019de0();
  if (param_2[6] != 0) {
    FUN_0001a730(*(undefined4 *)(iVar2 + 8));
  }
  **(undefined4 **)(iVar2 + 0xc) = puVar1;
  *(undefined4 **)(iVar2 + 0xc) = puVar1;
  return;
}


PUSH EBP
MOV EBP,EAX
PUSH EDI
MOV EDI,EDX
PUSH ESI
PUSH EBX
CALL 0x00016000
ADD EBX,0x653c3
SUB ESP,0x18
PUSH 0x24
CALL 0x00014790
LEA EDX,[EBX + 0x989c]
MOV ECX,0x1
MOV dword ptr [EAX],0x0
MOV ESI,EAX
MOV dword ptr [EAX + 0x4],EBP
MOV EAX,dword ptr [EDI]
MOV EDX,dword ptr [EDX]
MOV dword ptr [ESI + 0x8],EAX
MOV EAX,dword ptr [EDI + 0x4]
MOV dword ptr [ESI + 0xc],EAX
MOV EAX,dword ptr [EDI + 0x8]
MOV dword ptr [ESI + 0x10],EAX
MOV EAX,dword ptr [EDI + 0xc]
MOV dword ptr [ESI + 0x14],EAX
MOV EAX,dword ptr [EDI + 0x10]
MOV dword ptr [ESI + 0x18],EAX
MOV EAX,dword ptr [EDI + 0x14]
MOV dword ptr [ESI + 0x1c],EAX
MOV EAX,dword ptr [EDI + 0x18]
MOV dword ptr [ESI + 0x20],EAX
LEA EAX,[EBX + 0x973c]
MOV EAX,dword ptr [EAX]
CALL 0x00019de0
ADD ESP,0x10
MOV EBX,EAX
MOV EAX,dword ptr [EDI + 0x18]
TEST EAX,EAX
JZ 0x0001acc5
MOV EDI,dword ptr [EBX + 0x8]
XOR ECX,ECX
TEST EDI,EDI
JZ 0x0001acb3
MOV ECX,dword ptr [EBX + 0xc]
SUB ESP,0xc
LEA EDX,[ESI + 0x20]
LEA EAX,[ESI + 0x4]
PUSH EDI
CALL 0x0001a730
ADD ESP,0x10
MOV EAX,dword ptr [EBX + 0xc]
MOV dword ptr [EAX],ESI
MOV dword ptr [EBX + 0xc],ESI
ADD ESP,0xc
POP EBX
POP ESI
POP EDI
POP EBP
RET
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid __regparm3 FUN_0001ac30(undefined4 param_1,undefined4 *param_2)\n\n{\n  undefined4 *puVar1;\n  int iVar2;\n  \n  puVar1 = (undefined4 *)xmalloc(0x24);\n  *puVar1 = 0;\n  puVar1[1] = param_1;\n  puVar1[2] = *param_2;\n  puVar1[3] = param_2[1];\n  puVar1[4] = param_2[2];\n  puVar1[5] = param_2[3];\n  puVar1[6] = param_2[4];\n  puVar1[7] = param_2[5];\n  puVar1[8] = param_2[6];\n  iVar2 = FUN_00019de0();\n  if (param_2[6] != 0) {\n    FUN_0001a730(*(undefined4 *)(iVar2 + 8));\n  }\n  **(undefined4 **)(iVar2 + 0xc) = puVar1;\n  *(undefined4 **)(iVar2 + 0xc) = puVar1;\n  return;\n}\n\n" comment (function_definition "void __regparm3 FUN_0001ac30(undefined4 param_1,undefined4 *param_2)\n\n{\n  undefined4 *puVar1;\n  int iVar2;\n  \n  puVar1 = (undefined4 *)xmalloc(0x24);\n  *puVar1 = 0;\n  puVar1[1] = param_1;\n  puVar1[2] = *param_2;\n  puVar1[3] = param_2[1];\n  puVar1[4] = param_2[2];\n  puVar1[5] = param_2[3];\n  puVar1[6] = param_2[4];\n  puVar1[7] = param_2[5];\n  puVar1[8] = param_2[6];\n  iVar2 = FUN_00019de0();\n  if (param_2[6] != 0) {\n    FUN_0001a730(*(undefined4 *)(iVar2 + 8));\n  }\n  **(undefined4 **)(iVar2 + 0xc) = puVar1;\n  *(undefined4 **)(iVar2 + 0xc) = puVar1;\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0001ac30(undefined4 param_1,undefined4 *param_2)" identifier (parameter_list "(undefined4 param_1,undefined4 *param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  undefined4 *puVar1;\n  int iVar2;\n  \n  puVar1 = (undefined4 *)xmalloc(0x24);\n  *puVar1 = 0;\n  puVar1[1] = param_1;\n  puVar1[2] = *param_2;\n  puVar1[3] = param_2[1];\n  puVar1[4] = param_2[2];\n  puVar1[5] = param_2[3];\n  puVar1[6] = param_2[4];\n  puVar1[7] = param_2[5];\n  puVar1[8] = param_2[6];\n  iVar2 = FUN_00019de0();\n  if (param_2[6] != 0) {\n    FUN_0001a730(*(undefined4 *)(iVar2 + 8));\n  }\n  **(undefined4 **)(iVar2 + 0xc) = puVar1;\n  *(undefined4 **)(iVar2 + 0xc) = puVar1;\n  return;\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (expression_statement "puVar1 = (undefined4 *)xmalloc(0x24);" (assignment_expression "puVar1 = (undefined4 *)xmalloc(0x24)" identifier = (cast_expression "(undefined4 *)xmalloc(0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x24)" identifier (argument_list "(0x24)" ( number_literal ))))) ;) (expression_statement "*puVar1 = 0;" (assignment_expression "*puVar1 = 0" (pointer_expression "*puVar1" * identifier) = number_literal) ;) (expression_statement "puVar1[1] = param_1;" (assignment_expression "puVar1[1] = param_1" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1[2] = *param_2;" (assignment_expression "puVar1[2] = *param_2" (subscript_expression "puVar1[2]" identifier [ number_literal ]) = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "puVar1[3] = param_2[1];" (assignment_expression "puVar1[3] = param_2[1]" (subscript_expression "puVar1[3]" identifier [ number_literal ]) = (subscript_expression "param_2[1]" identifier [ number_literal ])) ;) (expression_statement "puVar1[4] = param_2[2];" (assignment_expression "puVar1[4] = param_2[2]" (subscript_expression "puVar1[4]" identifier [ number_literal ]) = (subscript_expression "param_2[2]" identifier [ number_literal ])) ;) (expression_statement "puVar1[5] = param_2[3];" (assignment_expression "puVar1[5] = param_2[3]" (subscript_expression "puVar1[5]" identifier [ number_literal ]) = (subscript_expression "param_2[3]" identifier [ number_literal ])) ;) (expression_statement "puVar1[6] = param_2[4];" (assignment_expression "puVar1[6] = param_2[4]" (subscript_expression "puVar1[6]" identifier [ number_literal ]) = (subscript_expression "param_2[4]" identifier [ number_literal ])) ;) (expression_statement "puVar1[7] = param_2[5];" (assignment_expression "puVar1[7] = param_2[5]" (subscript_expression "puVar1[7]" identifier [ number_literal ]) = (subscript_expression "param_2[5]" identifier [ number_literal ])) ;) (expression_statement "puVar1[8] = param_2[6];" (assignment_expression "puVar1[8] = param_2[6]" (subscript_expression "puVar1[8]" identifier [ number_literal ]) = (subscript_expression "param_2[6]" identifier [ number_literal ])) ;) (expression_statement "iVar2 = FUN_00019de0();" (assignment_expression "iVar2 = FUN_00019de0()" identifier = (call_expression "FUN_00019de0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (param_2[6] != 0) {\n    FUN_0001a730(*(undefined4 *)(iVar2 + 8));\n  }" if (parenthesized_expression "(param_2[6] != 0)" ( (binary_expression "param_2[6] != 0" (subscript_expression "param_2[6]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    FUN_0001a730(*(undefined4 *)(iVar2 + 8));\n  }" { (expression_statement "FUN_0001a730(*(undefined4 *)(iVar2 + 8));" (call_expression "FUN_0001a730(*(undefined4 *)(iVar2 + 8))" identifier (argument_list "(*(undefined4 *)(iVar2 + 8))" ( (pointer_expression "*(undefined4 *)(iVar2 + 8)" * (cast_expression "(undefined4 *)(iVar2 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) )))) ))) ;) })) (expression_statement "**(undefined4 **)(iVar2 + 0xc) = puVar1;" (assignment_expression "**(undefined4 **)(iVar2 + 0xc) = puVar1" (pointer_expression "**(undefined4 **)(iVar2 + 0xc)" * (pointer_expression "*(undefined4 **)(iVar2 + 0xc)" * (cast_expression "(undefined4 **)(iVar2 + 0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) ))))) = identifier) ;) (expression_statement "*(undefined4 **)(iVar2 + 0xc) = puVar1;" (assignment_expression "*(undefined4 **)(iVar2 + 0xc) = puVar1" (pointer_expression "*(undefined4 **)(iVar2 + 0xc)" * (cast_expression "(undefined4 **)(iVar2 + 0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid __regparm3 dwarf2_gen_line_info_1(symbolS *label,dwarf2_line_info *loc)\n\n{\n  subsegT subseg;\n  line_entry *plVar1;\n  line_subseg *plVar2;\n  line_entry *h;\n  \n  plVar1 = (line_entry *)xmalloc(0x24);\n  plVar1->next = (line_entry *)0x0;\n  plVar1->label = label;\n  subseg = now_subseg;\n  (plVar1->loc).filenum = loc->filenum;\n  (plVar1->loc).line = loc->line;\n  (plVar1->loc).column = loc->column;\n  (plVar1->loc).isa = loc->isa;\n  (plVar1->loc).flags = loc->flags;\n  (plVar1->loc).discriminator = loc->discriminator;\n  (plVar1->loc).view = loc->view;\n  plVar2 = get_line_subseg(now_seg,subseg,1);\n  if (loc->view != (symbolS *)0x0) {\n    h = (line_entry *)0x0;\n    if (plVar2->head != (line_entry *)0x0) {\n      h = (line_entry *)plVar2->ptail;\n    }\n    set_or_check_view((line_entry *)&plVar1->label,(line_entry *)&(plVar1->loc).view,h,plVar2->head)\n    ;\n  }\n  *plVar2->ptail = plVar1;\n  plVar2->ptail = (line_entry **)plVar1;\n  return;\n}\n\n" comment (function_definition "void __regparm3 dwarf2_gen_line_info_1(symbolS *label,dwarf2_line_info *loc)\n\n{\n  subsegT subseg;\n  line_entry *plVar1;\n  line_subseg *plVar2;\n  line_entry *h;\n  \n  plVar1 = (line_entry *)xmalloc(0x24);\n  plVar1->next = (line_entry *)0x0;\n  plVar1->label = label;\n  subseg = now_subseg;\n  (plVar1->loc).filenum = loc->filenum;\n  (plVar1->loc).line = loc->line;\n  (plVar1->loc).column = loc->column;\n  (plVar1->loc).isa = loc->isa;\n  (plVar1->loc).flags = loc->flags;\n  (plVar1->loc).discriminator = loc->discriminator;\n  (plVar1->loc).view = loc->view;\n  plVar2 = get_line_subseg(now_seg,subseg,1);\n  if (loc->view != (symbolS *)0x0) {\n    h = (line_entry *)0x0;\n    if (plVar2->head != (line_entry *)0x0) {\n      h = (line_entry *)plVar2->ptail;\n    }\n    set_or_check_view((line_entry *)&plVar1->label,(line_entry *)&(plVar1->loc).view,h,plVar2->head)\n    ;\n  }\n  *plVar2->ptail = plVar1;\n  plVar2->ptail = (line_entry **)plVar1;\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "dwarf2_gen_line_info_1(symbolS *label,dwarf2_line_info *loc)" identifier (parameter_list "(symbolS *label,dwarf2_line_info *loc)" ( (parameter_declaration "symbolS *label" type_identifier (pointer_declarator "*label" * identifier)) , (parameter_declaration "dwarf2_line_info *loc" type_identifier (pointer_declarator "*loc" * identifier)) ))) (compound_statement "{\n  subsegT subseg;\n  line_entry *plVar1;\n  line_subseg *plVar2;\n  line_entry *h;\n  \n  plVar1 = (line_entry *)xmalloc(0x24);\n  plVar1->next = (line_entry *)0x0;\n  plVar1->label = label;\n  subseg = now_subseg;\n  (plVar1->loc).filenum = loc->filenum;\n  (plVar1->loc).line = loc->line;\n  (plVar1->loc).column = loc->column;\n  (plVar1->loc).isa = loc->isa;\n  (plVar1->loc).flags = loc->flags;\n  (plVar1->loc).discriminator = loc->discriminator;\n  (plVar1->loc).view = loc->view;\n  plVar2 = get_line_subseg(now_seg,subseg,1);\n  if (loc->view != (symbolS *)0x0) {\n    h = (line_entry *)0x0;\n    if (plVar2->head != (line_entry *)0x0) {\n      h = (line_entry *)plVar2->ptail;\n    }\n    set_or_check_view((line_entry *)&plVar1->label,(line_entry *)&(plVar1->loc).view,h,plVar2->head)\n    ;\n  }\n  *plVar2->ptail = plVar1;\n  plVar2->ptail = (line_entry **)plVar1;\n  return;\n}" { (declaration "subsegT subseg;" type_identifier identifier ;) (declaration "line_entry *plVar1;" type_identifier (pointer_declarator "*plVar1" * identifier) ;) (declaration "line_subseg *plVar2;" type_identifier (pointer_declarator "*plVar2" * identifier) ;) (declaration "line_entry *h;" type_identifier (pointer_declarator "*h" * identifier) ;) (expression_statement "plVar1 = (line_entry *)xmalloc(0x24);" (assignment_expression "plVar1 = (line_entry *)xmalloc(0x24)" identifier = (cast_expression "(line_entry *)xmalloc(0x24)" ( (type_descriptor "line_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x24)" identifier (argument_list "(0x24)" ( number_literal ))))) ;) (expression_statement "plVar1->next = (line_entry *)0x0;" (assignment_expression "plVar1->next = (line_entry *)0x0" (field_expression "plVar1->next" identifier -> field_identifier) = (cast_expression "(line_entry *)0x0" ( (type_descriptor "line_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "plVar1->label = label;" (assignment_expression "plVar1->label = label" (field_expression "plVar1->label" identifier -> field_identifier) = identifier) ;) (expression_statement "subseg = now_subseg;" (assignment_expression "subseg = now_subseg" identifier = identifier) ;) (expression_statement "(plVar1->loc).filenum = loc->filenum;" (assignment_expression "(plVar1->loc).filenum = loc->filenum" (field_expression "(plVar1->loc).filenum" (parenthesized_expression "(plVar1->loc)" ( (field_expression "plVar1->loc" identifier -> field_identifier) )) . field_identifier) = (field_expression "loc->filenum" identifier -> field_identifier)) ;) (expression_statement "(plVar1->loc).line = loc->line;" (assignment_expression "(plVar1->loc).line = loc->line" (field_expression "(plVar1->loc).line" (parenthesized_expression "(plVar1->loc)" ( (field_expression "plVar1->loc" identifier -> field_identifier) )) . field_identifier) = (field_expression "loc->line" identifier -> field_identifier)) ;) (expression_statement "(plVar1->loc).column = loc->column;" (assignment_expression "(plVar1->loc).column = loc->column" (field_expression "(plVar1->loc).column" (parenthesized_expression "(plVar1->loc)" ( (field_expression "plVar1->loc" identifier -> field_identifier) )) . field_identifier) = (field_expression "loc->column" identifier -> field_identifier)) ;) (expression_statement "(plVar1->loc).isa = loc->isa;" (assignment_expression "(plVar1->loc).isa = loc->isa" (field_expression "(plVar1->loc).isa" (parenthesized_expression "(plVar1->loc)" ( (field_expression "plVar1->loc" identifier -> field_identifier) )) . field_identifier) = (field_expression "loc->isa" identifier -> field_identifier)) ;) (expression_statement "(plVar1->loc).flags = loc->flags;" (assignment_expression "(plVar1->loc).flags = loc->flags" (field_expression "(plVar1->loc).flags" (parenthesized_expression "(plVar1->loc)" ( (field_expression "plVar1->loc" identifier -> field_identifier) )) . field_identifier) = (field_expression "loc->flags" identifier -> field_identifier)) ;) (expression_statement "(plVar1->loc).discriminator = loc->discriminator;" (assignment_expression "(plVar1->loc).discriminator = loc->discriminator" (field_expression "(plVar1->loc).discriminator" (parenthesized_expression "(plVar1->loc)" ( (field_expression "plVar1->loc" identifier -> field_identifier) )) . field_identifier) = (field_expression "loc->discriminator" identifier -> field_identifier)) ;) (expression_statement "(plVar1->loc).view = loc->view;" (assignment_expression "(plVar1->loc).view = loc->view" (field_expression "(plVar1->loc).view" (parenthesized_expression "(plVar1->loc)" ( (field_expression "plVar1->loc" identifier -> field_identifier) )) . field_identifier) = (field_expression "loc->view" identifier -> field_identifier)) ;) (expression_statement "plVar2 = get_line_subseg(now_seg,subseg,1);" (assignment_expression "plVar2 = get_line_subseg(now_seg,subseg,1)" identifier = (call_expression "get_line_subseg(now_seg,subseg,1)" identifier (argument_list "(now_seg,subseg,1)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (loc->view != (symbolS *)0x0) {\n    h = (line_entry *)0x0;\n    if (plVar2->head != (line_entry *)0x0) {\n      h = (line_entry *)plVar2->ptail;\n    }\n    set_or_check_view((line_entry *)&plVar1->label,(line_entry *)&(plVar1->loc).view,h,plVar2->head)\n    ;\n  }" if (parenthesized_expression "(loc->view != (symbolS *)0x0)" ( (binary_expression "loc->view != (symbolS *)0x0" (field_expression "loc->view" identifier -> field_identifier) != (cast_expression "(symbolS *)0x0" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    h = (line_entry *)0x0;\n    if (plVar2->head != (line_entry *)0x0) {\n      h = (line_entry *)plVar2->ptail;\n    }\n    set_or_check_view((line_entry *)&plVar1->label,(line_entry *)&(plVar1->loc).view,h,plVar2->head)\n    ;\n  }" { (expression_statement "h = (line_entry *)0x0;" (assignment_expression "h = (line_entry *)0x0" identifier = (cast_expression "(line_entry *)0x0" ( (type_descriptor "line_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (plVar2->head != (line_entry *)0x0) {\n      h = (line_entry *)plVar2->ptail;\n    }" if (parenthesized_expression "(plVar2->head != (line_entry *)0x0)" ( (binary_expression "plVar2->head != (line_entry *)0x0" (field_expression "plVar2->head" identifier -> field_identifier) != (cast_expression "(line_entry *)0x0" ( (type_descriptor "line_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      h = (line_entry *)plVar2->ptail;\n    }" { (expression_statement "h = (line_entry *)plVar2->ptail;" (assignment_expression "h = (line_entry *)plVar2->ptail" identifier = (cast_expression "(line_entry *)plVar2->ptail" ( (type_descriptor "line_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "plVar2->ptail" identifier -> field_identifier))) ;) })) (expression_statement "set_or_check_view((line_entry *)&plVar1->label,(line_entry *)&(plVar1->loc).view,h,plVar2->head)\n    ;" (call_expression "set_or_check_view((line_entry *)&plVar1->label,(line_entry *)&(plVar1->loc).view,h,plVar2->head)" identifier (argument_list "((line_entry *)&plVar1->label,(line_entry *)&(plVar1->loc).view,h,plVar2->head)" ( (cast_expression "(line_entry *)&plVar1->label" ( (type_descriptor "line_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&plVar1->label" & (field_expression "plVar1->label" identifier -> field_identifier))) , (cast_expression "(line_entry *)&(plVar1->loc).view" ( (type_descriptor "line_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(plVar1->loc).view" & (field_expression "(plVar1->loc).view" (parenthesized_expression "(plVar1->loc)" ( (field_expression "plVar1->loc" identifier -> field_identifier) )) . field_identifier))) , identifier , (field_expression "plVar2->head" identifier -> field_identifier) ))) ;) })) (expression_statement "*plVar2->ptail = plVar1;" (assignment_expression "*plVar2->ptail = plVar1" (pointer_expression "*plVar2->ptail" * (field_expression "plVar2->ptail" identifier -> field_identifier)) = identifier) ;) (expression_statement "plVar2->ptail = (line_entry **)plVar1;" (assignment_expression "plVar2->ptail = (line_entry **)plVar1" (field_expression "plVar2->ptail" identifier -> field_identifier) = (cast_expression "(line_entry **)plVar1" ( (type_descriptor "line_entry **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (return_statement "return;" return ;) })))
(translation_unit "void __regparm3 FUN_0001ac30(undefined4 param_1,undefined4 *param_2)\n\n{\n  undefined4 *puVar1;\n  int iVar2;\n  \n  puVar1 = (undefined4 *)xmalloc(0x24);\n  *puVar1 = 0;\n  puVar1[1] = param_1;\n  puVar1[2] = *param_2;\n  puVar1[3] = param_2[1];\n  puVar1[4] = param_2[2];\n  puVar1[5] = param_2[3];\n  puVar1[6] = param_2[4];\n  puVar1[7] = param_2[5];\n  puVar1[8] = param_2[6];\n  iVar2 = FUN_00019de0();\n  if (param_2[6] != 0) {\n    FUN_0001a730(*(undefined4 *)(iVar2 + 8));\n  }\n  **(undefined4 **)(iVar2 + 0xc) = puVar1;\n  *(undefined4 **)(iVar2 + 0xc) = puVar1;\n  return;\n}\n\n" (function_definition "void __regparm3 FUN_0001ac30(undefined4 param_1,undefined4 *param_2)\n\n{\n  undefined4 *puVar1;\n  int iVar2;\n  \n  puVar1 = (undefined4 *)xmalloc(0x24);\n  *puVar1 = 0;\n  puVar1[1] = param_1;\n  puVar1[2] = *param_2;\n  puVar1[3] = param_2[1];\n  puVar1[4] = param_2[2];\n  puVar1[5] = param_2[3];\n  puVar1[6] = param_2[4];\n  puVar1[7] = param_2[5];\n  puVar1[8] = param_2[6];\n  iVar2 = FUN_00019de0();\n  if (param_2[6] != 0) {\n    FUN_0001a730(*(undefined4 *)(iVar2 + 8));\n  }\n  **(undefined4 **)(iVar2 + 0xc) = puVar1;\n  *(undefined4 **)(iVar2 + 0xc) = puVar1;\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0001ac30(undefined4 param_1,undefined4 *param_2)" identifier (parameter_list "(undefined4 param_1,undefined4 *param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  undefined4 *puVar1;\n  int iVar2;\n  \n  puVar1 = (undefined4 *)xmalloc(0x24);\n  *puVar1 = 0;\n  puVar1[1] = param_1;\n  puVar1[2] = *param_2;\n  puVar1[3] = param_2[1];\n  puVar1[4] = param_2[2];\n  puVar1[5] = param_2[3];\n  puVar1[6] = param_2[4];\n  puVar1[7] = param_2[5];\n  puVar1[8] = param_2[6];\n  iVar2 = FUN_00019de0();\n  if (param_2[6] != 0) {\n    FUN_0001a730(*(undefined4 *)(iVar2 + 8));\n  }\n  **(undefined4 **)(iVar2 + 0xc) = puVar1;\n  *(undefined4 **)(iVar2 + 0xc) = puVar1;\n  return;\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (expression_statement "puVar1 = (undefined4 *)xmalloc(0x24);" (assignment_expression "puVar1 = (undefined4 *)xmalloc(0x24)" identifier = (cast_expression "(undefined4 *)xmalloc(0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x24)" identifier (argument_list "(0x24)" ( number_literal ))))) ;) (expression_statement "*puVar1 = 0;" (assignment_expression "*puVar1 = 0" (pointer_expression "*puVar1" * identifier) = number_literal) ;) (expression_statement "puVar1[1] = param_1;" (assignment_expression "puVar1[1] = param_1" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1[2] = *param_2;" (assignment_expression "puVar1[2] = *param_2" (subscript_expression "puVar1[2]" identifier [ number_literal ]) = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "puVar1[3] = param_2[1];" (assignment_expression "puVar1[3] = param_2[1]" (subscript_expression "puVar1[3]" identifier [ number_literal ]) = (subscript_expression "param_2[1]" identifier [ number_literal ])) ;) (expression_statement "puVar1[4] = param_2[2];" (assignment_expression "puVar1[4] = param_2[2]" (subscript_expression "puVar1[4]" identifier [ number_literal ]) = (subscript_expression "param_2[2]" identifier [ number_literal ])) ;) (expression_statement "puVar1[5] = param_2[3];" (assignment_expression "puVar1[5] = param_2[3]" (subscript_expression "puVar1[5]" identifier [ number_literal ]) = (subscript_expression "param_2[3]" identifier [ number_literal ])) ;) (expression_statement "puVar1[6] = param_2[4];" (assignment_expression "puVar1[6] = param_2[4]" (subscript_expression "puVar1[6]" identifier [ number_literal ]) = (subscript_expression "param_2[4]" identifier [ number_literal ])) ;) (expression_statement "puVar1[7] = param_2[5];" (assignment_expression "puVar1[7] = param_2[5]" (subscript_expression "puVar1[7]" identifier [ number_literal ]) = (subscript_expression "param_2[5]" identifier [ number_literal ])) ;) (expression_statement "puVar1[8] = param_2[6];" (assignment_expression "puVar1[8] = param_2[6]" (subscript_expression "puVar1[8]" identifier [ number_literal ]) = (subscript_expression "param_2[6]" identifier [ number_literal ])) ;) (expression_statement "iVar2 = FUN_00019de0();" (assignment_expression "iVar2 = FUN_00019de0()" identifier = (call_expression "FUN_00019de0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (param_2[6] != 0) {\n    FUN_0001a730(*(undefined4 *)(iVar2 + 8));\n  }" if (parenthesized_expression "(param_2[6] != 0)" ( (binary_expression "param_2[6] != 0" (subscript_expression "param_2[6]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    FUN_0001a730(*(undefined4 *)(iVar2 + 8));\n  }" { (expression_statement "FUN_0001a730(*(undefined4 *)(iVar2 + 8));" (call_expression "FUN_0001a730(*(undefined4 *)(iVar2 + 8))" identifier (argument_list "(*(undefined4 *)(iVar2 + 8))" ( (pointer_expression "*(undefined4 *)(iVar2 + 8)" * (cast_expression "(undefined4 *)(iVar2 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) )))) ))) ;) })) (expression_statement "**(undefined4 **)(iVar2 + 0xc) = puVar1;" (assignment_expression "**(undefined4 **)(iVar2 + 0xc) = puVar1" (pointer_expression "**(undefined4 **)(iVar2 + 0xc)" * (pointer_expression "*(undefined4 **)(iVar2 + 0xc)" * (cast_expression "(undefined4 **)(iVar2 + 0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) ))))) = identifier) ;) (expression_statement "*(undefined4 **)(iVar2 + 0xc) = puVar1;" (assignment_expression "*(undefined4 **)(iVar2 + 0xc) = puVar1" (pointer_expression "*(undefined4 **)(iVar2 + 0xc)" * (cast_expression "(undefined4 **)(iVar2 + 0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE 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) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) })) (expression_statement (assignment_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (return_statement return ;) })))
(function_definition "void __regparm3 FUN_0001ac30(undefined4 param_1,undefined4 *param_2)\n\n{\n  undefined4 *puVar1;\n  int iVar2;\n  \n  puVar1 = (undefined4 *)xmalloc(0x24);\n  *puVar1 = 0;\n  puVar1[1] = param_1;\n  puVar1[2] = *param_2;\n  puVar1[3] = param_2[1];\n  puVar1[4] = param_2[2];\n  puVar1[5] = param_2[3];\n  puVar1[6] = param_2[4];\n  puVar1[7] = param_2[5];\n  puVar1[8] = param_2[6];\n  iVar2 = FUN_00019de0();\n  if (param_2[6] != 0) {\n    FUN_0001a730(*(undefined4 *)(iVar2 + 8));\n  }\n  **(undefined4 **)(iVar2 + 0xc) = puVar1;\n  *(undefined4 **)(iVar2 + 0xc) = puVar1;\n  return;\n}" (primitive_type "void") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_0001ac30(undefined4 param_1,undefined4 *param_2)" (identifier "FUN_0001ac30") (parameter_list "(undefined4 param_1,undefined4 *param_2)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 *param_2" (type_identifier "undefined4") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  undefined4 *puVar1;\n  int iVar2;\n  \n  puVar1 = (undefined4 *)xmalloc(0x24);\n  *puVar1 = 0;\n  puVar1[1] = param_1;\n  puVar1[2] = *param_2;\n  puVar1[3] = param_2[1];\n  puVar1[4] = param_2[2];\n  puVar1[5] = param_2[3];\n  puVar1[6] = param_2[4];\n  puVar1[7] = param_2[5];\n  puVar1[8] = param_2[6];\n  iVar2 = FUN_00019de0();\n  if (param_2[6] != 0) {\n    FUN_0001a730(*(undefined4 *)(iVar2 + 8));\n  }\n  **(undefined4 **)(iVar2 + 0xc) = puVar1;\n  *(undefined4 **)(iVar2 + 0xc) = puVar1;\n  return;\n}" ({ "{") (declaration "undefined4 *puVar1;" (type_identifier "undefined4") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (expression_statement "puVar1 = (undefined4 *)xmalloc(0x24);" (assignment_expression "puVar1 = (undefined4 *)xmalloc(0x24)" (identifier "puVar1") (= "=") (cast_expression "(undefined4 *)xmalloc(0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(0x24)" (identifier "xmalloc") (argument_list "(0x24)" (( "(") (number_literal "0x24") () ")"))))) (; ";")) (expression_statement "*puVar1 = 0;" (assignment_expression "*puVar1 = 0" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar1[1] = param_1;" (assignment_expression "puVar1[1] = param_1" (subscript_expression "puVar1[1]" (identifier "puVar1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "param_1")) (; ";")) (expression_statement "puVar1[2] = *param_2;" (assignment_expression "puVar1[2] = *param_2" (subscript_expression "puVar1[2]" (identifier "puVar1") ([ "[") (number_literal "2") (] "]")) (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (expression_statement "puVar1[3] = param_2[1];" (assignment_expression "puVar1[3] = param_2[1]" (subscript_expression "puVar1[3]" (identifier "puVar1") ([ "[") (number_literal "3") (] "]")) (= "=") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar1[4] = param_2[2];" (assignment_expression "puVar1[4] = param_2[2]" (subscript_expression "puVar1[4]" (identifier "puVar1") ([ "[") (number_literal "4") (] "]")) (= "=") (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "puVar1[5] = param_2[3];" (assignment_expression "puVar1[5] = param_2[3]" (subscript_expression "puVar1[5]" (identifier "puVar1") ([ "[") (number_literal "5") (] "]")) (= "=") (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar1[6] = param_2[4];" (assignment_expression "puVar1[6] = param_2[4]" (subscript_expression "puVar1[6]" (identifier "puVar1") ([ "[") (number_literal "6") (] "]")) (= "=") (subscript_expression "param_2[4]" (identifier "param_2") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "puVar1[7] = param_2[5];" (assignment_expression "puVar1[7] = param_2[5]" (subscript_expression "puVar1[7]" (identifier "puVar1") ([ "[") (number_literal "7") (] "]")) (= "=") (subscript_expression "param_2[5]" (identifier "param_2") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "puVar1[8] = param_2[6];" (assignment_expression "puVar1[8] = param_2[6]" (subscript_expression "puVar1[8]" (identifier "puVar1") ([ "[") (number_literal "8") (] "]")) (= "=") (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "iVar2 = FUN_00019de0();" (assignment_expression "iVar2 = FUN_00019de0()" (identifier "iVar2") (= "=") (call_expression "FUN_00019de0()" (identifier "FUN_00019de0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (param_2[6] != 0) {\n    FUN_0001a730(*(undefined4 *)(iVar2 + 8));\n  }" (if "if") (parenthesized_expression "(param_2[6] != 0)" (( "(") (binary_expression "param_2[6] != 0" (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_0001a730(*(undefined4 *)(iVar2 + 8));\n  }" ({ "{") (expression_statement "FUN_0001a730(*(undefined4 *)(iVar2 + 8));" (call_expression "FUN_0001a730(*(undefined4 *)(iVar2 + 8))" (identifier "FUN_0001a730") (argument_list "(*(undefined4 *)(iVar2 + 8))" (( "(") (pointer_expression "*(undefined4 *)(iVar2 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 8)" (( "(") (binary_expression "iVar2 + 8" (identifier "iVar2") (+ "+") (number_literal "8")) () ")")))) () ")"))) (; ";")) (} "}"))) (expression_statement "**(undefined4 **)(iVar2 + 0xc) = puVar1;" (assignment_expression "**(undefined4 **)(iVar2 + 0xc) = puVar1" (pointer_expression "**(undefined4 **)(iVar2 + 0xc)" (* "*") (pointer_expression "*(undefined4 **)(iVar2 + 0xc)" (* "*") (cast_expression "(undefined4 **)(iVar2 + 0xc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 0xc)" (( "(") (binary_expression "iVar2 + 0xc" (identifier "iVar2") (+ "+") (number_literal "0xc")) () ")"))))) (= "=") (identifier "puVar1")) (; ";")) (expression_statement "*(undefined4 **)(iVar2 + 0xc) = puVar1;" (assignment_expression "*(undefined4 **)(iVar2 + 0xc) = puVar1" (pointer_expression "*(undefined4 **)(iVar2 + 0xc)" (* "*") (cast_expression "(undefined4 **)(iVar2 + 0xc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 0xc)" (( "(") (binary_expression "iVar2 + 0xc" (identifier "iVar2") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "puVar1")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

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

void __regparm3 function_1(type_1 *label,type_2 *loc)

{
  type_3 subseg;
  type_4 *plVar1;
  type_5 *plVar2;
  type_4 *h;
  
  plVar1 = (type_4 *)var_1(0x24);
  plVar1->next = (type_4 *)0x0;
  plVar1->label = label;
  subseg = now_subseg;
  (plVar1->loc).filenum = loc->filenum;
  (plVar1->loc).line = loc->line;
  (plVar1->loc).column = loc->column;
  (plVar1->loc).isa = loc->isa;
  (plVar1->loc).flags = loc->flags;
  (plVar1->loc).discriminator = loc->discriminator;
  (plVar1->loc).view = loc->view;
  plVar2 = var_2(now_seg,subseg,1);
  if (loc->view != (type_1 *)0x0) {
    h = (type_4 *)0x0;
    if (plVar2->head != (type_4 *)0x0) {
      h = (type_4 *)plVar2->ptail;
    }
    var_3((type_4 *)&plVar1->label,(type_4 *)&(plVar1->loc).view,h,plVar2->head)
    ;
  }
  *plVar2->ptail = plVar1;
  plVar2->ptail = (type_4 **)plVar1;
  return;
}


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

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

void __regparm3 MASKED(undefined4 param_1,undefined4 *param_2)

{
  undefined4 *puVar1;
  int iVar2;
  
  puVar1 = (undefined4 *)xmalloc(0x24);
  *puVar1 = 0;
  puVar1[1] = param_1;
  puVar1[2] = *param_2;
  puVar1[3] = param_2[1];
  puVar1[4] = param_2[2];
  puVar1[5] = param_2[3];
  puVar1[6] = param_2[4];
  puVar1[7] = param_2[5];
  puVar1[8] = param_2[6];
  iVar2 = FUN_00019de0();
  if (param_2[6] != 0) {
    FUN_0001a730(*(undefined4 *)(iVar2 + 8));
  }
  **(undefined4 **)(iVar2 + 0xc) = puVar1;
  *(undefined4 **)(iVar2 + 0xc) = puVar1;
  return;
}

