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

void s_irp(int irpc)

{
  char *file;
  char *pcVar1;
  uint *linep;
  uint line;
  sb s;
  sb out;
  
  linep = &line;
  file = as_where(linep);
  pcVar1 = _find_end_of_line(input_line_pointer,0,0,(int)linep);
  sb_build(&s,(int)pcVar1 - (int)input_line_pointer);
  sb_add_buffer(&s,input_line_pointer,(int)pcVar1 - (int)input_line_pointer);
  input_line_pointer = pcVar1;
  sb_new(&out);
  pcVar1 = expand_irp(irpc,0,&s,&out,get_non_macro_line_sb);
  if (pcVar1 != (char *)0x0) {
    as_bad_where(file,line,"%s",pcVar1);
  }
  sb_kill(&s);
  input_scrub_include_sb(&out,input_line_pointer,1);
  sb_kill(&out);
  buffer_limit = input_scrub_next_buffer(&input_line_pointer);
  return;
}



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

void FUN_0002bb80(undefined4 param_1)

{
  undefined4 uVar1;
  int iVar2;
  undefined4 local_38;
  undefined1 local_34 [12];
  undefined1 local_28 [20];
  undefined4 uStack_14;
  
  uStack_14 = 0x2bb89;
  uVar1 = FUN_000251c0(&local_38);
  iVar2 = FUN_0002b960();
  FUN_00033b70(local_34,iVar2 - DAT_000848f0);
  FUN_00033d50(local_34,DAT_000848f0,iVar2 - DAT_000848f0);
  DAT_000848f0 = iVar2;
  FUN_00033bb0(local_28);
  iVar2 = FUN_0002a180(param_1,0,local_34,local_28,FUN_0002bb60);
  if (iVar2 != 0) {
    FUN_0002a9d0(uVar1,local_38,"%s",iVar2);
  }
  FUN_00033bf0(local_34);
  FUN_00024c40(local_28,DAT_000848f0,1);
  FUN_00033bf0(local_28);
  DAT_00083c68 = FUN_00024d70(&DAT_000848f0);
  return;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00016020
ADD EBX,0x4f477
SUB ESP,0x48
LEA EAX,[ESP + 0x20]
PUSH EAX
CALL 0x000251c0
LEA ESI,[EBX + 0x98f0]
XOR ECX,ECX
XOR EDX,EDX
MOV dword ptr [ESP + 0x1c],EAX
MOV EAX,dword ptr [ESI]
CALL 0x0002b960
POP EDX
POP ECX
MOV EDI,EAX
SUB EAX,dword ptr [ESI]
PUSH EAX
LEA EBP,[ESP + 0x24]
PUSH EBP
CALL 0x00033b70
MOV EAX,dword ptr [ESI]
MOV EDX,EDI
ADD ESP,0xc
SUB EDX,EAX
PUSH EDX
PUSH EAX
PUSH EBP
CALL 0x00033d50
MOV dword ptr [ESI],EDI
POP EDI
LEA EDI,[ESP + 0x30]
PUSH EDI
CALL 0x00033bb0
LEA EAX,[EBX + 0xfffb0b60]
MOV dword ptr [ESP],EAX
PUSH EDI
PUSH EBP
PUSH 0x0
PUSH dword ptr [ESP + 0x6c]
CALL 0x0002a180
ADD ESP,0x20
TEST EAX,EAX
JZ 0x0002bc15
PUSH EAX
LEA EAX,[EBX + 0xfffdfd08]
PUSH EAX
PUSH dword ptr [ESP + 0x1c]
PUSH dword ptr [ESP + 0x18]
CALL 0x0002a9d0
ADD ESP,0x10
SUB ESP,0xc
PUSH EBP
CALL 0x00033bf0
ADD ESP,0xc
PUSH 0x1
PUSH dword ptr [ESI]
PUSH EDI
CALL 0x00024c40
MOV dword ptr [ESP],EDI
CALL 0x00033bf0
MOV dword ptr [ESP],ESI
CALL 0x00024d70
MOV dword ptr [EBX + 0x8c68],EAX
ADD ESP,0x4c
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 FUN_0002bb80(undefined4 param_1)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  undefined4 local_38;\n  undefined1 local_34 [12];\n  undefined1 local_28 [20];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2bb89;\n  uVar1 = FUN_000251c0(&local_38);\n  iVar2 = FUN_0002b960();\n  FUN_00033b70(local_34,iVar2 - DAT_000848f0);\n  FUN_00033d50(local_34,DAT_000848f0,iVar2 - DAT_000848f0);\n  DAT_000848f0 = iVar2;\n  FUN_00033bb0(local_28);\n  iVar2 = FUN_0002a180(param_1,0,local_34,local_28,FUN_0002bb60);\n  if (iVar2 != 0) {\n    FUN_0002a9d0(uVar1,local_38,"%s",iVar2);\n  }\n  FUN_00033bf0(local_34);\n  FUN_00024c40(local_28,DAT_000848f0,1);\n  FUN_00033bf0(local_28);\n  DAT_00083c68 = FUN_00024d70(&DAT_000848f0);\n  return;\n}\n\n" comment (function_definition "void FUN_0002bb80(undefined4 param_1)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  undefined4 local_38;\n  undefined1 local_34 [12];\n  undefined1 local_28 [20];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2bb89;\n  uVar1 = FUN_000251c0(&local_38);\n  iVar2 = FUN_0002b960();\n  FUN_00033b70(local_34,iVar2 - DAT_000848f0);\n  FUN_00033d50(local_34,DAT_000848f0,iVar2 - DAT_000848f0);\n  DAT_000848f0 = iVar2;\n  FUN_00033bb0(local_28);\n  iVar2 = FUN_0002a180(param_1,0,local_34,local_28,FUN_0002bb60);\n  if (iVar2 != 0) {\n    FUN_0002a9d0(uVar1,local_38,"%s",iVar2);\n  }\n  FUN_00033bf0(local_34);\n  FUN_00024c40(local_28,DAT_000848f0,1);\n  FUN_00033bf0(local_28);\n  DAT_00083c68 = FUN_00024d70(&DAT_000848f0);\n  return;\n}" primitive_type (function_declarator "FUN_0002bb80(undefined4 param_1)" identifier (parameter_list "(undefined4 param_1)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  int iVar2;\n  undefined4 local_38;\n  undefined1 local_34 [12];\n  undefined1 local_28 [20];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2bb89;\n  uVar1 = FUN_000251c0(&local_38);\n  iVar2 = FUN_0002b960();\n  FUN_00033b70(local_34,iVar2 - DAT_000848f0);\n  FUN_00033d50(local_34,DAT_000848f0,iVar2 - DAT_000848f0);\n  DAT_000848f0 = iVar2;\n  FUN_00033bb0(local_28);\n  iVar2 = FUN_0002a180(param_1,0,local_34,local_28,FUN_0002bb60);\n  if (iVar2 != 0) {\n    FUN_0002a9d0(uVar1,local_38,"%s",iVar2);\n  }\n  FUN_00033bf0(local_34);\n  FUN_00024c40(local_28,DAT_000848f0,1);\n  FUN_00033bf0(local_28);\n  DAT_00083c68 = FUN_00024d70(&DAT_000848f0);\n  return;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "undefined1 local_34 [12];" type_identifier (array_declarator "local_34 [12]" identifier [ number_literal ]) ;) (declaration "undefined1 local_28 [20];" type_identifier (array_declarator "local_28 [20]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x2bb89;" (assignment_expression "uStack_14 = 0x2bb89" identifier = number_literal) ;) (expression_statement "uVar1 = FUN_000251c0(&local_38);" (assignment_expression "uVar1 = FUN_000251c0(&local_38)" identifier = (call_expression "FUN_000251c0(&local_38)" identifier (argument_list "(&local_38)" ( (pointer_expression "&local_38" & identifier) )))) ;) (expression_statement "iVar2 = FUN_0002b960();" (assignment_expression "iVar2 = FUN_0002b960()" identifier = (call_expression "FUN_0002b960()" identifier (argument_list "()" ( )))) ;) (expression_statement "FUN_00033b70(local_34,iVar2 - DAT_000848f0);" (call_expression "FUN_00033b70(local_34,iVar2 - DAT_000848f0)" identifier (argument_list "(local_34,iVar2 - DAT_000848f0)" ( identifier , (binary_expression "iVar2 - DAT_000848f0" identifier - identifier) ))) ;) (expression_statement "FUN_00033d50(local_34,DAT_000848f0,iVar2 - DAT_000848f0);" (call_expression "FUN_00033d50(local_34,DAT_000848f0,iVar2 - DAT_000848f0)" identifier (argument_list "(local_34,DAT_000848f0,iVar2 - DAT_000848f0)" ( identifier , identifier , (binary_expression "iVar2 - DAT_000848f0" identifier - identifier) ))) ;) (expression_statement "DAT_000848f0 = iVar2;" (assignment_expression "DAT_000848f0 = iVar2" identifier = identifier) ;) (expression_statement "FUN_00033bb0(local_28);" (call_expression "FUN_00033bb0(local_28)" identifier (argument_list "(local_28)" ( identifier ))) ;) (expression_statement "iVar2 = FUN_0002a180(param_1,0,local_34,local_28,FUN_0002bb60);" (assignment_expression "iVar2 = FUN_0002a180(param_1,0,local_34,local_28,FUN_0002bb60)" identifier = (call_expression "FUN_0002a180(param_1,0,local_34,local_28,FUN_0002bb60)" identifier (argument_list "(param_1,0,local_34,local_28,FUN_0002bb60)" ( identifier , number_literal , identifier , identifier , identifier )))) ;) (if_statement "if (iVar2 != 0) {\n    FUN_0002a9d0(uVar1,local_38,"%s",iVar2);\n  }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_0002a9d0(uVar1,local_38,"%s",iVar2);\n  }" { (expression_statement "FUN_0002a9d0(uVar1,local_38,"%s",iVar2);" (call_expression "FUN_0002a9d0(uVar1,local_38,"%s",iVar2)" identifier (argument_list "(uVar1,local_38,"%s",iVar2)" ( identifier , identifier , (string_literal ""%s"" " string_content ") , identifier ))) ;) })) (expression_statement "FUN_00033bf0(local_34);" (call_expression "FUN_00033bf0(local_34)" identifier (argument_list "(local_34)" ( identifier ))) ;) (expression_statement "FUN_00024c40(local_28,DAT_000848f0,1);" (call_expression "FUN_00024c40(local_28,DAT_000848f0,1)" identifier (argument_list "(local_28,DAT_000848f0,1)" ( identifier , identifier , number_literal ))) ;) (expression_statement "FUN_00033bf0(local_28);" (call_expression "FUN_00033bf0(local_28)" identifier (argument_list "(local_28)" ( identifier ))) ;) (expression_statement "DAT_00083c68 = FUN_00024d70(&DAT_000848f0);" (assignment_expression "DAT_00083c68 = FUN_00024d70(&DAT_000848f0)" identifier = (call_expression "FUN_00024d70(&DAT_000848f0)" identifier (argument_list "(&DAT_000848f0)" ( (pointer_expression "&DAT_000848f0" & 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 s_irp(int irpc)\n\n{\n  char *file;\n  char *pcVar1;\n  uint *linep;\n  uint line;\n  sb s;\n  sb out;\n  \n  linep = &line;\n  file = as_where(linep);\n  pcVar1 = _find_end_of_line(input_line_pointer,0,0,(int)linep);\n  sb_build(&s,(int)pcVar1 - (int)input_line_pointer);\n  sb_add_buffer(&s,input_line_pointer,(int)pcVar1 - (int)input_line_pointer);\n  input_line_pointer = pcVar1;\n  sb_new(&out);\n  pcVar1 = expand_irp(irpc,0,&s,&out,get_non_macro_line_sb);\n  if (pcVar1 != (char *)0x0) {\n    as_bad_where(file,line,"%s",pcVar1);\n  }\n  sb_kill(&s);\n  input_scrub_include_sb(&out,input_line_pointer,1);\n  sb_kill(&out);\n  buffer_limit = input_scrub_next_buffer(&input_line_pointer);\n  return;\n}\n\n" comment comment (function_definition "void s_irp(int irpc)\n\n{\n  char *file;\n  char *pcVar1;\n  uint *linep;\n  uint line;\n  sb s;\n  sb out;\n  \n  linep = &line;\n  file = as_where(linep);\n  pcVar1 = _find_end_of_line(input_line_pointer,0,0,(int)linep);\n  sb_build(&s,(int)pcVar1 - (int)input_line_pointer);\n  sb_add_buffer(&s,input_line_pointer,(int)pcVar1 - (int)input_line_pointer);\n  input_line_pointer = pcVar1;\n  sb_new(&out);\n  pcVar1 = expand_irp(irpc,0,&s,&out,get_non_macro_line_sb);\n  if (pcVar1 != (char *)0x0) {\n    as_bad_where(file,line,"%s",pcVar1);\n  }\n  sb_kill(&s);\n  input_scrub_include_sb(&out,input_line_pointer,1);\n  sb_kill(&out);\n  buffer_limit = input_scrub_next_buffer(&input_line_pointer);\n  return;\n}" primitive_type (function_declarator "s_irp(int irpc)" identifier (parameter_list "(int irpc)" ( (parameter_declaration "int irpc" primitive_type identifier) ))) (compound_statement "{\n  char *file;\n  char *pcVar1;\n  uint *linep;\n  uint line;\n  sb s;\n  sb out;\n  \n  linep = &line;\n  file = as_where(linep);\n  pcVar1 = _find_end_of_line(input_line_pointer,0,0,(int)linep);\n  sb_build(&s,(int)pcVar1 - (int)input_line_pointer);\n  sb_add_buffer(&s,input_line_pointer,(int)pcVar1 - (int)input_line_pointer);\n  input_line_pointer = pcVar1;\n  sb_new(&out);\n  pcVar1 = expand_irp(irpc,0,&s,&out,get_non_macro_line_sb);\n  if (pcVar1 != (char *)0x0) {\n    as_bad_where(file,line,"%s",pcVar1);\n  }\n  sb_kill(&s);\n  input_scrub_include_sb(&out,input_line_pointer,1);\n  sb_kill(&out);\n  buffer_limit = input_scrub_next_buffer(&input_line_pointer);\n  return;\n}" { (declaration "char *file;" primitive_type (pointer_declarator "*file" * identifier) ;) (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "uint *linep;" type_identifier (pointer_declarator "*linep" * identifier) ;) (declaration "uint line;" type_identifier identifier ;) (declaration "sb s;" type_identifier identifier ;) (declaration "sb out;" type_identifier identifier ;) (expression_statement "linep = &line;" (assignment_expression "linep = &line" identifier = (pointer_expression "&line" & identifier)) ;) (expression_statement "file = as_where(linep);" (assignment_expression "file = as_where(linep)" identifier = (call_expression "as_where(linep)" identifier (argument_list "(linep)" ( identifier )))) ;) (expression_statement "pcVar1 = _find_end_of_line(input_line_pointer,0,0,(int)linep);" (assignment_expression "pcVar1 = _find_end_of_line(input_line_pointer,0,0,(int)linep)" identifier = (call_expression "_find_end_of_line(input_line_pointer,0,0,(int)linep)" identifier (argument_list "(input_line_pointer,0,0,(int)linep)" ( identifier , number_literal , number_literal , (cast_expression "(int)linep" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (expression_statement "sb_build(&s,(int)pcVar1 - (int)input_line_pointer);" (call_expression "sb_build(&s,(int)pcVar1 - (int)input_line_pointer)" identifier (argument_list "(&s,(int)pcVar1 - (int)input_line_pointer)" ( (pointer_expression "&s" & identifier) , (binary_expression "(int)pcVar1 - (int)input_line_pointer" (cast_expression "(int)pcVar1" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)input_line_pointer" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ;) (expression_statement "sb_add_buffer(&s,input_line_pointer,(int)pcVar1 - (int)input_line_pointer);" (call_expression "sb_add_buffer(&s,input_line_pointer,(int)pcVar1 - (int)input_line_pointer)" identifier (argument_list "(&s,input_line_pointer,(int)pcVar1 - (int)input_line_pointer)" ( (pointer_expression "&s" & identifier) , identifier , (binary_expression "(int)pcVar1 - (int)input_line_pointer" (cast_expression "(int)pcVar1" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)input_line_pointer" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ;) (expression_statement "input_line_pointer = pcVar1;" (assignment_expression "input_line_pointer = pcVar1" identifier = identifier) ;) (expression_statement "sb_new(&out);" (call_expression "sb_new(&out)" identifier (argument_list "(&out)" ( (pointer_expression "&out" & identifier) ))) ;) (expression_statement "pcVar1 = expand_irp(irpc,0,&s,&out,get_non_macro_line_sb);" (assignment_expression "pcVar1 = expand_irp(irpc,0,&s,&out,get_non_macro_line_sb)" identifier = (call_expression "expand_irp(irpc,0,&s,&out,get_non_macro_line_sb)" identifier (argument_list "(irpc,0,&s,&out,get_non_macro_line_sb)" ( identifier , number_literal , (pointer_expression "&s" & identifier) , (pointer_expression "&out" & identifier) , identifier )))) ;) (if_statement "if (pcVar1 != (char *)0x0) {\n    as_bad_where(file,line,"%s",pcVar1);\n  }" if (parenthesized_expression "(pcVar1 != (char *)0x0)" ( (binary_expression "pcVar1 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    as_bad_where(file,line,"%s",pcVar1);\n  }" { (expression_statement "as_bad_where(file,line,"%s",pcVar1);" (call_expression "as_bad_where(file,line,"%s",pcVar1)" identifier (argument_list "(file,line,"%s",pcVar1)" ( identifier , identifier , (string_literal ""%s"" " string_content ") , identifier ))) ;) })) (expression_statement "sb_kill(&s);" (call_expression "sb_kill(&s)" identifier (argument_list "(&s)" ( (pointer_expression "&s" & identifier) ))) ;) (expression_statement "input_scrub_include_sb(&out,input_line_pointer,1);" (call_expression "input_scrub_include_sb(&out,input_line_pointer,1)" identifier (argument_list "(&out,input_line_pointer,1)" ( (pointer_expression "&out" & identifier) , identifier , number_literal ))) ;) (expression_statement "sb_kill(&out);" (call_expression "sb_kill(&out)" identifier (argument_list "(&out)" ( (pointer_expression "&out" & identifier) ))) ;) (expression_statement "buffer_limit = input_scrub_next_buffer(&input_line_pointer);" (assignment_expression "buffer_limit = input_scrub_next_buffer(&input_line_pointer)" identifier = (call_expression "input_scrub_next_buffer(&input_line_pointer)" identifier (argument_list "(&input_line_pointer)" ( (pointer_expression "&input_line_pointer" & identifier) )))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0002bb80(undefined4 param_1)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  undefined4 local_38;\n  undefined1 local_34 [12];\n  undefined1 local_28 [20];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2bb89;\n  uVar1 = FUN_000251c0(&local_38);\n  iVar2 = FUN_0002b960();\n  FUN_00033b70(local_34,iVar2 - DAT_000848f0);\n  FUN_00033d50(local_34,DAT_000848f0,iVar2 - DAT_000848f0);\n  DAT_000848f0 = iVar2;\n  FUN_00033bb0(local_28);\n  iVar2 = FUN_0002a180(param_1,0,local_34,local_28,FUN_0002bb60);\n  if (iVar2 != 0) {\n    FUN_0002a9d0(uVar1,local_38,"%s",iVar2);\n  }\n  FUN_00033bf0(local_34);\n  FUN_00024c40(local_28,DAT_000848f0,1);\n  FUN_00033bf0(local_28);\n  DAT_00083c68 = FUN_00024d70(&DAT_000848f0);\n  return;\n}\n\n" (function_definition "void FUN_0002bb80(undefined4 param_1)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  undefined4 local_38;\n  undefined1 local_34 [12];\n  undefined1 local_28 [20];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2bb89;\n  uVar1 = FUN_000251c0(&local_38);\n  iVar2 = FUN_0002b960();\n  FUN_00033b70(local_34,iVar2 - DAT_000848f0);\n  FUN_00033d50(local_34,DAT_000848f0,iVar2 - DAT_000848f0);\n  DAT_000848f0 = iVar2;\n  FUN_00033bb0(local_28);\n  iVar2 = FUN_0002a180(param_1,0,local_34,local_28,FUN_0002bb60);\n  if (iVar2 != 0) {\n    FUN_0002a9d0(uVar1,local_38,"%s",iVar2);\n  }\n  FUN_00033bf0(local_34);\n  FUN_00024c40(local_28,DAT_000848f0,1);\n  FUN_00033bf0(local_28);\n  DAT_00083c68 = FUN_00024d70(&DAT_000848f0);\n  return;\n}" primitive_type (function_declarator "FUN_0002bb80(undefined4 param_1)" identifier (parameter_list "(undefined4 param_1)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  int iVar2;\n  undefined4 local_38;\n  undefined1 local_34 [12];\n  undefined1 local_28 [20];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2bb89;\n  uVar1 = FUN_000251c0(&local_38);\n  iVar2 = FUN_0002b960();\n  FUN_00033b70(local_34,iVar2 - DAT_000848f0);\n  FUN_00033d50(local_34,DAT_000848f0,iVar2 - DAT_000848f0);\n  DAT_000848f0 = iVar2;\n  FUN_00033bb0(local_28);\n  iVar2 = FUN_0002a180(param_1,0,local_34,local_28,FUN_0002bb60);\n  if (iVar2 != 0) {\n    FUN_0002a9d0(uVar1,local_38,"%s",iVar2);\n  }\n  FUN_00033bf0(local_34);\n  FUN_00024c40(local_28,DAT_000848f0,1);\n  FUN_00033bf0(local_28);\n  DAT_00083c68 = FUN_00024d70(&DAT_000848f0);\n  return;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "undefined1 local_34 [12];" type_identifier (array_declarator "local_34 [12]" identifier [ number_literal ]) ;) (declaration "undefined1 local_28 [20];" type_identifier (array_declarator "local_28 [20]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x2bb89;" (assignment_expression "uStack_14 = 0x2bb89" identifier = number_literal) ;) (expression_statement "uVar1 = FUN_000251c0(&local_38);" (assignment_expression "uVar1 = FUN_000251c0(&local_38)" identifier = (call_expression "FUN_000251c0(&local_38)" identifier (argument_list "(&local_38)" ( (pointer_expression "&local_38" & identifier) )))) ;) (expression_statement "iVar2 = FUN_0002b960();" (assignment_expression "iVar2 = FUN_0002b960()" identifier = (call_expression "FUN_0002b960()" identifier (argument_list "()" ( )))) ;) (expression_statement "FUN_00033b70(local_34,iVar2 - DAT_000848f0);" (call_expression "FUN_00033b70(local_34,iVar2 - DAT_000848f0)" identifier (argument_list "(local_34,iVar2 - DAT_000848f0)" ( identifier , (binary_expression "iVar2 - DAT_000848f0" identifier - identifier) ))) ;) (expression_statement "FUN_00033d50(local_34,DAT_000848f0,iVar2 - DAT_000848f0);" (call_expression "FUN_00033d50(local_34,DAT_000848f0,iVar2 - DAT_000848f0)" identifier (argument_list "(local_34,DAT_000848f0,iVar2 - DAT_000848f0)" ( identifier , identifier , (binary_expression "iVar2 - DAT_000848f0" identifier - identifier) ))) ;) (expression_statement "DAT_000848f0 = iVar2;" (assignment_expression "DAT_000848f0 = iVar2" identifier = identifier) ;) (expression_statement "FUN_00033bb0(local_28);" (call_expression "FUN_00033bb0(local_28)" identifier (argument_list "(local_28)" ( identifier ))) ;) (expression_statement "iVar2 = FUN_0002a180(param_1,0,local_34,local_28,FUN_0002bb60);" (assignment_expression "iVar2 = FUN_0002a180(param_1,0,local_34,local_28,FUN_0002bb60)" identifier = (call_expression "FUN_0002a180(param_1,0,local_34,local_28,FUN_0002bb60)" identifier (argument_list "(param_1,0,local_34,local_28,FUN_0002bb60)" ( identifier , number_literal , identifier , identifier , identifier )))) ;) (if_statement "if (iVar2 != 0) {\n    FUN_0002a9d0(uVar1,local_38,"%s",iVar2);\n  }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_0002a9d0(uVar1,local_38,"%s",iVar2);\n  }" { (expression_statement "FUN_0002a9d0(uVar1,local_38,"%s",iVar2);" (call_expression "FUN_0002a9d0(uVar1,local_38,"%s",iVar2)" identifier (argument_list "(uVar1,local_38,"%s",iVar2)" ( identifier , identifier , (string_literal ""%s"" " string_content ") , identifier ))) ;) })) (expression_statement "FUN_00033bf0(local_34);" (call_expression "FUN_00033bf0(local_34)" identifier (argument_list "(local_34)" ( identifier ))) ;) (expression_statement "FUN_00024c40(local_28,DAT_000848f0,1);" (call_expression "FUN_00024c40(local_28,DAT_000848f0,1)" identifier (argument_list "(local_28,DAT_000848f0,1)" ( identifier , identifier , number_literal ))) ;) (expression_statement "FUN_00033bf0(local_28);" (call_expression "FUN_00033bf0(local_28)" identifier (argument_list "(local_28)" ( identifier ))) ;) (expression_statement "DAT_00083c68 = FUN_00024d70(&DAT_000848f0);" (assignment_expression "DAT_00083c68 = FUN_00024d70(&DAT_000848f0)" identifier = (call_expression "FUN_00024d70(&DAT_000848f0)" identifier (argument_list "(&DAT_000848f0)" ( (pointer_expression "&DAT_000848f0" & identifier) )))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT - IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT - IDENT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (string_literal " string_content ") , IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) ;) (return_statement return ;) })))
(function_definition "void FUN_0002bb80(undefined4 param_1)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  undefined4 local_38;\n  undefined1 local_34 [12];\n  undefined1 local_28 [20];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2bb89;\n  uVar1 = FUN_000251c0(&local_38);\n  iVar2 = FUN_0002b960();\n  FUN_00033b70(local_34,iVar2 - DAT_000848f0);\n  FUN_00033d50(local_34,DAT_000848f0,iVar2 - DAT_000848f0);\n  DAT_000848f0 = iVar2;\n  FUN_00033bb0(local_28);\n  iVar2 = FUN_0002a180(param_1,0,local_34,local_28,FUN_0002bb60);\n  if (iVar2 != 0) {\n    FUN_0002a9d0(uVar1,local_38,"%s",iVar2);\n  }\n  FUN_00033bf0(local_34);\n  FUN_00024c40(local_28,DAT_000848f0,1);\n  FUN_00033bf0(local_28);\n  DAT_00083c68 = FUN_00024d70(&DAT_000848f0);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0002bb80(undefined4 param_1)" (identifier "FUN_0002bb80") (parameter_list "(undefined4 param_1)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) () ")"))) (compound_statement "{\n  undefined4 uVar1;\n  int iVar2;\n  undefined4 local_38;\n  undefined1 local_34 [12];\n  undefined1 local_28 [20];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2bb89;\n  uVar1 = FUN_000251c0(&local_38);\n  iVar2 = FUN_0002b960();\n  FUN_00033b70(local_34,iVar2 - DAT_000848f0);\n  FUN_00033d50(local_34,DAT_000848f0,iVar2 - DAT_000848f0);\n  DAT_000848f0 = iVar2;\n  FUN_00033bb0(local_28);\n  iVar2 = FUN_0002a180(param_1,0,local_34,local_28,FUN_0002bb60);\n  if (iVar2 != 0) {\n    FUN_0002a9d0(uVar1,local_38,"%s",iVar2);\n  }\n  FUN_00033bf0(local_34);\n  FUN_00024c40(local_28,DAT_000848f0,1);\n  FUN_00033bf0(local_28);\n  DAT_00083c68 = FUN_00024d70(&DAT_000848f0);\n  return;\n}" ({ "{") (declaration "undefined4 uVar1;" (type_identifier "undefined4") (identifier "uVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "undefined4 local_38;" (type_identifier "undefined4") (identifier "local_38") (; ";")) (declaration "undefined1 local_34 [12];" (type_identifier "undefined1") (array_declarator "local_34 [12]" (identifier "local_34") ([ "[") (number_literal "12") (] "]")) (; ";")) (declaration "undefined1 local_28 [20];" (type_identifier "undefined1") (array_declarator "local_28 [20]" (identifier "local_28") ([ "[") (number_literal "20") (] "]")) (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x2bb89;" (assignment_expression "uStack_14 = 0x2bb89" (identifier "uStack_14") (= "=") (number_literal "0x2bb89")) (; ";")) (expression_statement "uVar1 = FUN_000251c0(&local_38);" (assignment_expression "uVar1 = FUN_000251c0(&local_38)" (identifier "uVar1") (= "=") (call_expression "FUN_000251c0(&local_38)" (identifier "FUN_000251c0") (argument_list "(&local_38)" (( "(") (pointer_expression "&local_38" (& "&") (identifier "local_38")) () ")")))) (; ";")) (expression_statement "iVar2 = FUN_0002b960();" (assignment_expression "iVar2 = FUN_0002b960()" (identifier "iVar2") (= "=") (call_expression "FUN_0002b960()" (identifier "FUN_0002b960") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "FUN_00033b70(local_34,iVar2 - DAT_000848f0);" (call_expression "FUN_00033b70(local_34,iVar2 - DAT_000848f0)" (identifier "FUN_00033b70") (argument_list "(local_34,iVar2 - DAT_000848f0)" (( "(") (identifier "local_34") (, ",") (binary_expression "iVar2 - DAT_000848f0" (identifier "iVar2") (- "-") (identifier "DAT_000848f0")) () ")"))) (; ";")) (expression_statement "FUN_00033d50(local_34,DAT_000848f0,iVar2 - DAT_000848f0);" (call_expression "FUN_00033d50(local_34,DAT_000848f0,iVar2 - DAT_000848f0)" (identifier "FUN_00033d50") (argument_list "(local_34,DAT_000848f0,iVar2 - DAT_000848f0)" (( "(") (identifier "local_34") (, ",") (identifier "DAT_000848f0") (, ",") (binary_expression "iVar2 - DAT_000848f0" (identifier "iVar2") (- "-") (identifier "DAT_000848f0")) () ")"))) (; ";")) (expression_statement "DAT_000848f0 = iVar2;" (assignment_expression "DAT_000848f0 = iVar2" (identifier "DAT_000848f0") (= "=") (identifier "iVar2")) (; ";")) (expression_statement "FUN_00033bb0(local_28);" (call_expression "FUN_00033bb0(local_28)" (identifier "FUN_00033bb0") (argument_list "(local_28)" (( "(") (identifier "local_28") () ")"))) (; ";")) (expression_statement "iVar2 = FUN_0002a180(param_1,0,local_34,local_28,FUN_0002bb60);" (assignment_expression "iVar2 = FUN_0002a180(param_1,0,local_34,local_28,FUN_0002bb60)" (identifier "iVar2") (= "=") (call_expression "FUN_0002a180(param_1,0,local_34,local_28,FUN_0002bb60)" (identifier "FUN_0002a180") (argument_list "(param_1,0,local_34,local_28,FUN_0002bb60)" (( "(") (identifier "param_1") (, ",") (number_literal "0") (, ",") (identifier "local_34") (, ",") (identifier "local_28") (, ",") (identifier "FUN_0002bb60") () ")")))) (; ";")) (if_statement "if (iVar2 != 0) {\n    FUN_0002a9d0(uVar1,local_38,"%s",iVar2);\n  }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_0002a9d0(uVar1,local_38,"%s",iVar2);\n  }" ({ "{") (expression_statement "FUN_0002a9d0(uVar1,local_38,"%s",iVar2);" (call_expression "FUN_0002a9d0(uVar1,local_38,"%s",iVar2)" (identifier "FUN_0002a9d0") (argument_list "(uVar1,local_38,"%s",iVar2)" (( "(") (identifier "uVar1") (, ",") (identifier "local_38") (, ",") (string_literal ""%s"" (" """) (string_content "%s") (" """)) (, ",") (identifier "iVar2") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_00033bf0(local_34);" (call_expression "FUN_00033bf0(local_34)" (identifier "FUN_00033bf0") (argument_list "(local_34)" (( "(") (identifier "local_34") () ")"))) (; ";")) (expression_statement "FUN_00024c40(local_28,DAT_000848f0,1);" (call_expression "FUN_00024c40(local_28,DAT_000848f0,1)" (identifier "FUN_00024c40") (argument_list "(local_28,DAT_000848f0,1)" (( "(") (identifier "local_28") (, ",") (identifier "DAT_000848f0") (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "FUN_00033bf0(local_28);" (call_expression "FUN_00033bf0(local_28)" (identifier "FUN_00033bf0") (argument_list "(local_28)" (( "(") (identifier "local_28") () ")"))) (; ";")) (expression_statement "DAT_00083c68 = FUN_00024d70(&DAT_000848f0);" (assignment_expression "DAT_00083c68 = FUN_00024d70(&DAT_000848f0)" (identifier "DAT_00083c68") (= "=") (call_expression "FUN_00024d70(&DAT_000848f0)" (identifier "FUN_00024d70") (argument_list "(&DAT_000848f0)" (( "(") (pointer_expression "&DAT_000848f0" (& "&") (identifier "DAT_000848f0")) () ")")))) (; ";")) (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(int irpc)

{
  char *file;
  char *var_7;
  type_1 *linep;
  type_1 line;
  type_2 s;
  type_2 out;
  
  linep = &line;
  file = var_1(linep);
  var_7 = var_2(input_line_pointer,0,0,(int)linep);
  var_3(&s,(int)var_7 - (int)input_line_pointer);
  var_4(&s,input_line_pointer,(int)var_7 - (int)input_line_pointer);
  input_line_pointer = var_7;
  var_5(&out);
  var_7 = var_6(irpc,0,&s,&out,get_non_macro_line_sb);
  if (var_7 != (char *)0x0) {
    var_8(file,line,"%s",var_7);
  }
  var_9(&s);
  var_10(&out,input_line_pointer,1);
  var_9(&out);
  buffer_limit = var_11(&input_line_pointer);
  return;
}


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

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

void MASKED(undefined4 param_1)

{
  undefined4 uVar1;
  int iVar2;
  undefined4 local_38;
  undefined1 local_34 [12];
  undefined1 local_28 [20];
  undefined4 uStack_14;
  
  uStack_14 = 0x2bb89;
  uVar1 = FUN_000251c0(&local_38);
  iVar2 = FUN_0002b960();
  FUN_00033b70(local_34,iVar2 - DAT_000848f0);
  FUN_00033d50(local_34,DAT_000848f0,iVar2 - DAT_000848f0);
  DAT_000848f0 = iVar2;
  FUN_00033bb0(local_28);
  iVar2 = FUN_0002a180(param_1,0,local_34,local_28,FUN_0002bb60);
  if (iVar2 != 0) {
    FUN_0002a9d0(uVar1,local_38,"%s",iVar2);
  }
  FUN_00033bf0(local_34);
  FUN_00024c40(local_28,DAT_000848f0,1);
  FUN_00033bf0(local_28);
  DAT_00083c68 = FUN_00024d70(&DAT_000848f0);
  return;
}

