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

void s_struct(int ignore)

{
  char cVar1;
  byte bVar2;
  byte *stop;
  expressionS exp;
  
  if (flag_mri == 0) {
    bVar2 = 0;
    stop = (byte *)0x0;
  }
  else {
    bVar2 = *input_line_pointer;
    cVar1 = is_end_of_line[bVar2];
    stop = (byte *)input_line_pointer;
    while (cVar1 == '\0') {
      stop = stop + 1;
      bVar2 = *stop;
      cVar1 = is_end_of_line[bVar2];
    }
    *stop = 0;
  }
  abs_section_offset = get_absolute_expr(&exp);
  obj_elf_section_change_hook();
  subseg_set((segT)(PTR__bfd_std_section_0006efb4 + 0x180),0);
  demand_empty_rest_of_line();
  if (flag_mri == 0) {
    return;
  }
  mri_comment_end((char *)stop,(int)(char)bVar2);
  return;
}



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

void FUN_0002f250(void)

{
  char cVar1;
  byte bVar2;
  byte *pbVar3;
  undefined8 uVar4;
  
  if (DAT_00077e28 == 0) {
    bVar2 = 0;
    pbVar3 = (byte *)0x0;
  }
  else {
    bVar2 = *DAT_00077ef8;
    cVar1 = (&DAT_0006f2e0)[bVar2];
    pbVar3 = DAT_00077ef8;
    while (cVar1 == '\0') {
      pbVar3 = pbVar3 + 1;
      bVar2 = *pbVar3;
      cVar1 = (&DAT_0006f2e0)[bVar2];
    }
    *pbVar3 = 0;
  }
  uVar4 = FUN_0002c480();
  DAT_00077ef4 = (undefined4)((ulonglong)uVar4 >> 0x20);
  DAT_00077ef0 = (undefined4)uVar4;
  FUN_0004afd0();
  FUN_00036710(PTR__bfd_std_section_0006efb4 + 0x180,0);
  FUN_0002e290();
  if (DAT_00077e28 == 0) {
    return;
  }
  FUN_0002da40(pbVar3,(int)(char)bVar2);
  return;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00016090
ADD EBX,0x3fda7
SUB ESP,0x3c
LEA EDI,[EBX + 0x8e28]
MOV EDX,dword ptr [EDI]
TEST EDX,EDX
JZ 0x0002f2f0
LEA EAX,[EBX + 0x8ef8]
MOV ESI,dword ptr [EAX]
MOVZX EAX,byte ptr [ESI]
CMP byte ptr [EBX + EAX*0x1 + 0x2e0],0x0
MOV ECX,EAX
JNZ 0x0002f29e
LEA EDX,[EBX + 0x2e0]
NOP
ADD ESI,0x1
MOVZX EAX,byte ptr [ESI]
CMP byte ptr [EDX + EAX*0x1],0x0
MOV ECX,EAX
JZ 0x0002f290
MOV byte ptr [ESI],0x0
LEA EAX,[ESP + 0x1c]
MOV byte ptr [ESP + 0xf],CL
CALL 0x0002c480
LEA EBP,[EBX + 0x8ef0]
MOV dword ptr [EBP + 0x4],EDX
MOV dword ptr [EBP],EAX
CALL 0x0004afd0
MOV EAX,dword ptr [EBX + 0xffffffb4]
SUB ESP,0x8
PUSH 0x0
ADD EAX,0x180
PUSH EAX
CALL 0x00036710
CALL 0x0002e290
MOV EAX,dword ptr [EDI]
ADD ESP,0x10
MOVSX ECX,byte ptr [ESP + 0xf]
TEST EAX,EAX
JNZ 0x0002f300
ADD ESP,0x3c
POP EBX
POP ESI
POP EDI
POP EBP
RET
XOR ECX,ECX
XOR ESI,ESI
JMP 0x0002f2a1
SUB ESP,0x8
PUSH ECX
PUSH ESI
CALL 0x0002da40
ADD ESP,0x10
ADD ESP,0x3c
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_0002f250(void)\n\n{\n  char cVar1;\n  byte bVar2;\n  byte *pbVar3;\n  undefined8 uVar4;\n  \n  if (DAT_00077e28 == 0) {\n    bVar2 = 0;\n    pbVar3 = (byte *)0x0;\n  }\n  else {\n    bVar2 = *DAT_00077ef8;\n    cVar1 = (&DAT_0006f2e0)[bVar2];\n    pbVar3 = DAT_00077ef8;\n    while (cVar1 == '\0') {\n      pbVar3 = pbVar3 + 1;\n      bVar2 = *pbVar3;\n      cVar1 = (&DAT_0006f2e0)[bVar2];\n    }\n    *pbVar3 = 0;\n  }\n  uVar4 = FUN_0002c480();\n  DAT_00077ef4 = (undefined4)((ulonglong)uVar4 >> 0x20);\n  DAT_00077ef0 = (undefined4)uVar4;\n  FUN_0004afd0();\n  FUN_00036710(PTR__bfd_std_section_0006efb4 + 0x180,0);\n  FUN_0002e290();\n  if (DAT_00077e28 == 0) {\n    return;\n  }\n  FUN_0002da40(pbVar3,(int)(char)bVar2);\n  return;\n}\n\n" comment (function_definition "void FUN_0002f250(void)\n\n{\n  char cVar1;\n  byte bVar2;\n  byte *pbVar3;\n  undefined8 uVar4;\n  \n  if (DAT_00077e28 == 0) {\n    bVar2 = 0;\n    pbVar3 = (byte *)0x0;\n  }\n  else {\n    bVar2 = *DAT_00077ef8;\n    cVar1 = (&DAT_0006f2e0)[bVar2];\n    pbVar3 = DAT_00077ef8;\n    while (cVar1 == '\0') {\n      pbVar3 = pbVar3 + 1;\n      bVar2 = *pbVar3;\n      cVar1 = (&DAT_0006f2e0)[bVar2];\n    }\n    *pbVar3 = 0;\n  }\n  uVar4 = FUN_0002c480();\n  DAT_00077ef4 = (undefined4)((ulonglong)uVar4 >> 0x20);\n  DAT_00077ef0 = (undefined4)uVar4;\n  FUN_0004afd0();\n  FUN_00036710(PTR__bfd_std_section_0006efb4 + 0x180,0);\n  FUN_0002e290();\n  if (DAT_00077e28 == 0) {\n    return;\n  }\n  FUN_0002da40(pbVar3,(int)(char)bVar2);\n  return;\n}" primitive_type (function_declarator "FUN_0002f250(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  char cVar1;\n  byte bVar2;\n  byte *pbVar3;\n  undefined8 uVar4;\n  \n  if (DAT_00077e28 == 0) {\n    bVar2 = 0;\n    pbVar3 = (byte *)0x0;\n  }\n  else {\n    bVar2 = *DAT_00077ef8;\n    cVar1 = (&DAT_0006f2e0)[bVar2];\n    pbVar3 = DAT_00077ef8;\n    while (cVar1 == '\0') {\n      pbVar3 = pbVar3 + 1;\n      bVar2 = *pbVar3;\n      cVar1 = (&DAT_0006f2e0)[bVar2];\n    }\n    *pbVar3 = 0;\n  }\n  uVar4 = FUN_0002c480();\n  DAT_00077ef4 = (undefined4)((ulonglong)uVar4 >> 0x20);\n  DAT_00077ef0 = (undefined4)uVar4;\n  FUN_0004afd0();\n  FUN_00036710(PTR__bfd_std_section_0006efb4 + 0x180,0);\n  FUN_0002e290();\n  if (DAT_00077e28 == 0) {\n    return;\n  }\n  FUN_0002da40(pbVar3,(int)(char)bVar2);\n  return;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "byte *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (if_statement "if (DAT_00077e28 == 0) {\n    bVar2 = 0;\n    pbVar3 = (byte *)0x0;\n  }\n  else {\n    bVar2 = *DAT_00077ef8;\n    cVar1 = (&DAT_0006f2e0)[bVar2];\n    pbVar3 = DAT_00077ef8;\n    while (cVar1 == '\0') {\n      pbVar3 = pbVar3 + 1;\n      bVar2 = *pbVar3;\n      cVar1 = (&DAT_0006f2e0)[bVar2];\n    }\n    *pbVar3 = 0;\n  }" if (parenthesized_expression "(DAT_00077e28 == 0)" ( (binary_expression "DAT_00077e28 == 0" identifier == number_literal) )) (compound_statement "{\n    bVar2 = 0;\n    pbVar3 = (byte *)0x0;\n  }" { (expression_statement "bVar2 = 0;" (assignment_expression "bVar2 = 0" identifier = number_literal) ;) (expression_statement "pbVar3 = (byte *)0x0;" (assignment_expression "pbVar3 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    bVar2 = *DAT_00077ef8;\n    cVar1 = (&DAT_0006f2e0)[bVar2];\n    pbVar3 = DAT_00077ef8;\n    while (cVar1 == '\0') {\n      pbVar3 = pbVar3 + 1;\n      bVar2 = *pbVar3;\n      cVar1 = (&DAT_0006f2e0)[bVar2];\n    }\n    *pbVar3 = 0;\n  }" else (compound_statement "{\n    bVar2 = *DAT_00077ef8;\n    cVar1 = (&DAT_0006f2e0)[bVar2];\n    pbVar3 = DAT_00077ef8;\n    while (cVar1 == '\0') {\n      pbVar3 = pbVar3 + 1;\n      bVar2 = *pbVar3;\n      cVar1 = (&DAT_0006f2e0)[bVar2];\n    }\n    *pbVar3 = 0;\n  }" { (expression_statement "bVar2 = *DAT_00077ef8;" (assignment_expression "bVar2 = *DAT_00077ef8" identifier = (pointer_expression "*DAT_00077ef8" * identifier)) ;) (expression_statement "cVar1 = (&DAT_0006f2e0)[bVar2];" (assignment_expression "cVar1 = (&DAT_0006f2e0)[bVar2]" identifier = (subscript_expression "(&DAT_0006f2e0)[bVar2]" (parenthesized_expression "(&DAT_0006f2e0)" ( (pointer_expression "&DAT_0006f2e0" & identifier) )) [ identifier ])) ;) (expression_statement "pbVar3 = DAT_00077ef8;" (assignment_expression "pbVar3 = DAT_00077ef8" identifier = identifier) ;) (while_statement "while (cVar1 == '\0') {\n      pbVar3 = pbVar3 + 1;\n      bVar2 = *pbVar3;\n      cVar1 = (&DAT_0006f2e0)[bVar2];\n    }" while (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      pbVar3 = pbVar3 + 1;\n      bVar2 = *pbVar3;\n      cVar1 = (&DAT_0006f2e0)[bVar2];\n    }" { (expression_statement "pbVar3 = pbVar3 + 1;" (assignment_expression "pbVar3 = pbVar3 + 1" identifier = (binary_expression "pbVar3 + 1" identifier + number_literal)) ;) (expression_statement "bVar2 = *pbVar3;" (assignment_expression "bVar2 = *pbVar3" identifier = (pointer_expression "*pbVar3" * identifier)) ;) (expression_statement "cVar1 = (&DAT_0006f2e0)[bVar2];" (assignment_expression "cVar1 = (&DAT_0006f2e0)[bVar2]" identifier = (subscript_expression "(&DAT_0006f2e0)[bVar2]" (parenthesized_expression "(&DAT_0006f2e0)" ( (pointer_expression "&DAT_0006f2e0" & identifier) )) [ identifier ])) ;) })) (expression_statement "*pbVar3 = 0;" (assignment_expression "*pbVar3 = 0" (pointer_expression "*pbVar3" * identifier) = number_literal) ;) }))) (expression_statement "uVar4 = FUN_0002c480();" (assignment_expression "uVar4 = FUN_0002c480()" identifier = (call_expression "FUN_0002c480()" identifier (argument_list "()" ( )))) ;) (expression_statement "DAT_00077ef4 = (undefined4)((ulonglong)uVar4 >> 0x20);" (assignment_expression "DAT_00077ef4 = (undefined4)((ulonglong)uVar4 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)uVar4 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)uVar4 >> 0x20)" ( (binary_expression "(ulonglong)uVar4 >> 0x20" (cast_expression "(ulonglong)uVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "DAT_00077ef0 = (undefined4)uVar4;" (assignment_expression "DAT_00077ef0 = (undefined4)uVar4" identifier = (cast_expression "(undefined4)uVar4" ( (type_descriptor "undefined4" type_identifier) ) identifier)) ;) (expression_statement "FUN_0004afd0();" (call_expression "FUN_0004afd0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00036710(PTR__bfd_std_section_0006efb4 + 0x180,0);" (call_expression "FUN_00036710(PTR__bfd_std_section_0006efb4 + 0x180,0)" identifier (argument_list "(PTR__bfd_std_section_0006efb4 + 0x180,0)" ( (binary_expression "PTR__bfd_std_section_0006efb4 + 0x180" identifier + number_literal) , number_literal ))) ;) (expression_statement "FUN_0002e290();" (call_expression "FUN_0002e290()" identifier (argument_list "()" ( ))) ;) (if_statement "if (DAT_00077e28 == 0) {\n    return;\n  }" if (parenthesized_expression "(DAT_00077e28 == 0)" ( (binary_expression "DAT_00077e28 == 0" identifier == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "FUN_0002da40(pbVar3,(int)(char)bVar2);" (call_expression "FUN_0002da40(pbVar3,(int)(char)bVar2)" identifier (argument_list "(pbVar3,(int)(char)bVar2)" ( identifier , (cast_expression "(int)(char)bVar2" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar2" ( (type_descriptor "char" primitive_type) ) 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_struct(int ignore)\n\n{\n  char cVar1;\n  byte bVar2;\n  byte *stop;\n  expressionS exp;\n  \n  if (flag_mri == 0) {\n    bVar2 = 0;\n    stop = (byte *)0x0;\n  }\n  else {\n    bVar2 = *input_line_pointer;\n    cVar1 = is_end_of_line[bVar2];\n    stop = (byte *)input_line_pointer;\n    while (cVar1 == '\0') {\n      stop = stop + 1;\n      bVar2 = *stop;\n      cVar1 = is_end_of_line[bVar2];\n    }\n    *stop = 0;\n  }\n  abs_section_offset = get_absolute_expr(&exp);\n  obj_elf_section_change_hook();\n  subseg_set((segT)(PTR__bfd_std_section_0006efb4 + 0x180),0);\n  demand_empty_rest_of_line();\n  if (flag_mri == 0) {\n    return;\n  }\n  mri_comment_end((char *)stop,(int)(char)bVar2);\n  return;\n}\n\n" comment comment (function_definition "void s_struct(int ignore)\n\n{\n  char cVar1;\n  byte bVar2;\n  byte *stop;\n  expressionS exp;\n  \n  if (flag_mri == 0) {\n    bVar2 = 0;\n    stop = (byte *)0x0;\n  }\n  else {\n    bVar2 = *input_line_pointer;\n    cVar1 = is_end_of_line[bVar2];\n    stop = (byte *)input_line_pointer;\n    while (cVar1 == '\0') {\n      stop = stop + 1;\n      bVar2 = *stop;\n      cVar1 = is_end_of_line[bVar2];\n    }\n    *stop = 0;\n  }\n  abs_section_offset = get_absolute_expr(&exp);\n  obj_elf_section_change_hook();\n  subseg_set((segT)(PTR__bfd_std_section_0006efb4 + 0x180),0);\n  demand_empty_rest_of_line();\n  if (flag_mri == 0) {\n    return;\n  }\n  mri_comment_end((char *)stop,(int)(char)bVar2);\n  return;\n}" primitive_type (function_declarator "s_struct(int ignore)" identifier (parameter_list "(int ignore)" ( (parameter_declaration "int ignore" primitive_type identifier) ))) (compound_statement "{\n  char cVar1;\n  byte bVar2;\n  byte *stop;\n  expressionS exp;\n  \n  if (flag_mri == 0) {\n    bVar2 = 0;\n    stop = (byte *)0x0;\n  }\n  else {\n    bVar2 = *input_line_pointer;\n    cVar1 = is_end_of_line[bVar2];\n    stop = (byte *)input_line_pointer;\n    while (cVar1 == '\0') {\n      stop = stop + 1;\n      bVar2 = *stop;\n      cVar1 = is_end_of_line[bVar2];\n    }\n    *stop = 0;\n  }\n  abs_section_offset = get_absolute_expr(&exp);\n  obj_elf_section_change_hook();\n  subseg_set((segT)(PTR__bfd_std_section_0006efb4 + 0x180),0);\n  demand_empty_rest_of_line();\n  if (flag_mri == 0) {\n    return;\n  }\n  mri_comment_end((char *)stop,(int)(char)bVar2);\n  return;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "byte *stop;" type_identifier (pointer_declarator "*stop" * identifier) ;) (declaration "expressionS exp;" type_identifier identifier ;) (if_statement "if (flag_mri == 0) {\n    bVar2 = 0;\n    stop = (byte *)0x0;\n  }\n  else {\n    bVar2 = *input_line_pointer;\n    cVar1 = is_end_of_line[bVar2];\n    stop = (byte *)input_line_pointer;\n    while (cVar1 == '\0') {\n      stop = stop + 1;\n      bVar2 = *stop;\n      cVar1 = is_end_of_line[bVar2];\n    }\n    *stop = 0;\n  }" if (parenthesized_expression "(flag_mri == 0)" ( (binary_expression "flag_mri == 0" identifier == number_literal) )) (compound_statement "{\n    bVar2 = 0;\n    stop = (byte *)0x0;\n  }" { (expression_statement "bVar2 = 0;" (assignment_expression "bVar2 = 0" identifier = number_literal) ;) (expression_statement "stop = (byte *)0x0;" (assignment_expression "stop = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    bVar2 = *input_line_pointer;\n    cVar1 = is_end_of_line[bVar2];\n    stop = (byte *)input_line_pointer;\n    while (cVar1 == '\0') {\n      stop = stop + 1;\n      bVar2 = *stop;\n      cVar1 = is_end_of_line[bVar2];\n    }\n    *stop = 0;\n  }" else (compound_statement "{\n    bVar2 = *input_line_pointer;\n    cVar1 = is_end_of_line[bVar2];\n    stop = (byte *)input_line_pointer;\n    while (cVar1 == '\0') {\n      stop = stop + 1;\n      bVar2 = *stop;\n      cVar1 = is_end_of_line[bVar2];\n    }\n    *stop = 0;\n  }" { (expression_statement "bVar2 = *input_line_pointer;" (assignment_expression "bVar2 = *input_line_pointer" identifier = (pointer_expression "*input_line_pointer" * identifier)) ;) (expression_statement "cVar1 = is_end_of_line[bVar2];" (assignment_expression "cVar1 = is_end_of_line[bVar2]" identifier = (subscript_expression "is_end_of_line[bVar2]" identifier [ identifier ])) ;) (expression_statement "stop = (byte *)input_line_pointer;" (assignment_expression "stop = (byte *)input_line_pointer" identifier = (cast_expression "(byte *)input_line_pointer" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (while_statement "while (cVar1 == '\0') {\n      stop = stop + 1;\n      bVar2 = *stop;\n      cVar1 = is_end_of_line[bVar2];\n    }" while (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      stop = stop + 1;\n      bVar2 = *stop;\n      cVar1 = is_end_of_line[bVar2];\n    }" { (expression_statement "stop = stop + 1;" (assignment_expression "stop = stop + 1" identifier = (binary_expression "stop + 1" identifier + number_literal)) ;) (expression_statement "bVar2 = *stop;" (assignment_expression "bVar2 = *stop" identifier = (pointer_expression "*stop" * identifier)) ;) (expression_statement "cVar1 = is_end_of_line[bVar2];" (assignment_expression "cVar1 = is_end_of_line[bVar2]" identifier = (subscript_expression "is_end_of_line[bVar2]" identifier [ identifier ])) ;) })) (expression_statement "*stop = 0;" (assignment_expression "*stop = 0" (pointer_expression "*stop" * identifier) = number_literal) ;) }))) (expression_statement "abs_section_offset = get_absolute_expr(&exp);" (assignment_expression "abs_section_offset = get_absolute_expr(&exp)" identifier = (call_expression "get_absolute_expr(&exp)" identifier (argument_list "(&exp)" ( (pointer_expression "&exp" & identifier) )))) ;) (expression_statement "obj_elf_section_change_hook();" (call_expression "obj_elf_section_change_hook()" identifier (argument_list "()" ( ))) ;) (expression_statement "subseg_set((segT)(PTR__bfd_std_section_0006efb4 + 0x180),0);" (call_expression "subseg_set((segT)(PTR__bfd_std_section_0006efb4 + 0x180),0)" identifier (argument_list "((segT)(PTR__bfd_std_section_0006efb4 + 0x180),0)" ( (call_expression "(segT)(PTR__bfd_std_section_0006efb4 + 0x180)" (parenthesized_expression "(segT)" ( identifier )) (argument_list "(PTR__bfd_std_section_0006efb4 + 0x180)" ( (binary_expression "PTR__bfd_std_section_0006efb4 + 0x180" identifier + number_literal) ))) , number_literal ))) ;) (expression_statement "demand_empty_rest_of_line();" (call_expression "demand_empty_rest_of_line()" identifier (argument_list "()" ( ))) ;) (if_statement "if (flag_mri == 0) {\n    return;\n  }" if (parenthesized_expression "(flag_mri == 0)" ( (binary_expression "flag_mri == 0" identifier == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "mri_comment_end((char *)stop,(int)(char)bVar2);" (call_expression "mri_comment_end((char *)stop,(int)(char)bVar2)" identifier (argument_list "((char *)stop,(int)(char)bVar2)" ( (cast_expression "(char *)stop" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(int)(char)bVar2" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar2" ( (type_descriptor "char" primitive_type) ) identifier)) ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0002f250(void)\n\n{\n  char cVar1;\n  byte bVar2;\n  byte *pbVar3;\n  undefined8 uVar4;\n  \n  if (DAT_00077e28 == 0) {\n    bVar2 = 0;\n    pbVar3 = (byte *)0x0;\n  }\n  else {\n    bVar2 = *DAT_00077ef8;\n    cVar1 = (&DAT_0006f2e0)[bVar2];\n    pbVar3 = DAT_00077ef8;\n    while (cVar1 == '\0') {\n      pbVar3 = pbVar3 + 1;\n      bVar2 = *pbVar3;\n      cVar1 = (&DAT_0006f2e0)[bVar2];\n    }\n    *pbVar3 = 0;\n  }\n  uVar4 = FUN_0002c480();\n  DAT_00077ef4 = (undefined4)((ulonglong)uVar4 >> 0x20);\n  DAT_00077ef0 = (undefined4)uVar4;\n  FUN_0004afd0();\n  FUN_00036710(PTR__bfd_std_section_0006efb4 + 0x180,0);\n  FUN_0002e290();\n  if (DAT_00077e28 == 0) {\n    return;\n  }\n  FUN_0002da40(pbVar3,(int)(char)bVar2);\n  return;\n}\n\n" (function_definition "void FUN_0002f250(void)\n\n{\n  char cVar1;\n  byte bVar2;\n  byte *pbVar3;\n  undefined8 uVar4;\n  \n  if (DAT_00077e28 == 0) {\n    bVar2 = 0;\n    pbVar3 = (byte *)0x0;\n  }\n  else {\n    bVar2 = *DAT_00077ef8;\n    cVar1 = (&DAT_0006f2e0)[bVar2];\n    pbVar3 = DAT_00077ef8;\n    while (cVar1 == '\0') {\n      pbVar3 = pbVar3 + 1;\n      bVar2 = *pbVar3;\n      cVar1 = (&DAT_0006f2e0)[bVar2];\n    }\n    *pbVar3 = 0;\n  }\n  uVar4 = FUN_0002c480();\n  DAT_00077ef4 = (undefined4)((ulonglong)uVar4 >> 0x20);\n  DAT_00077ef0 = (undefined4)uVar4;\n  FUN_0004afd0();\n  FUN_00036710(PTR__bfd_std_section_0006efb4 + 0x180,0);\n  FUN_0002e290();\n  if (DAT_00077e28 == 0) {\n    return;\n  }\n  FUN_0002da40(pbVar3,(int)(char)bVar2);\n  return;\n}" primitive_type (function_declarator "FUN_0002f250(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  char cVar1;\n  byte bVar2;\n  byte *pbVar3;\n  undefined8 uVar4;\n  \n  if (DAT_00077e28 == 0) {\n    bVar2 = 0;\n    pbVar3 = (byte *)0x0;\n  }\n  else {\n    bVar2 = *DAT_00077ef8;\n    cVar1 = (&DAT_0006f2e0)[bVar2];\n    pbVar3 = DAT_00077ef8;\n    while (cVar1 == '\0') {\n      pbVar3 = pbVar3 + 1;\n      bVar2 = *pbVar3;\n      cVar1 = (&DAT_0006f2e0)[bVar2];\n    }\n    *pbVar3 = 0;\n  }\n  uVar4 = FUN_0002c480();\n  DAT_00077ef4 = (undefined4)((ulonglong)uVar4 >> 0x20);\n  DAT_00077ef0 = (undefined4)uVar4;\n  FUN_0004afd0();\n  FUN_00036710(PTR__bfd_std_section_0006efb4 + 0x180,0);\n  FUN_0002e290();\n  if (DAT_00077e28 == 0) {\n    return;\n  }\n  FUN_0002da40(pbVar3,(int)(char)bVar2);\n  return;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "byte *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (if_statement "if (DAT_00077e28 == 0) {\n    bVar2 = 0;\n    pbVar3 = (byte *)0x0;\n  }\n  else {\n    bVar2 = *DAT_00077ef8;\n    cVar1 = (&DAT_0006f2e0)[bVar2];\n    pbVar3 = DAT_00077ef8;\n    while (cVar1 == '\0') {\n      pbVar3 = pbVar3 + 1;\n      bVar2 = *pbVar3;\n      cVar1 = (&DAT_0006f2e0)[bVar2];\n    }\n    *pbVar3 = 0;\n  }" if (parenthesized_expression "(DAT_00077e28 == 0)" ( (binary_expression "DAT_00077e28 == 0" identifier == number_literal) )) (compound_statement "{\n    bVar2 = 0;\n    pbVar3 = (byte *)0x0;\n  }" { (expression_statement "bVar2 = 0;" (assignment_expression "bVar2 = 0" identifier = number_literal) ;) (expression_statement "pbVar3 = (byte *)0x0;" (assignment_expression "pbVar3 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    bVar2 = *DAT_00077ef8;\n    cVar1 = (&DAT_0006f2e0)[bVar2];\n    pbVar3 = DAT_00077ef8;\n    while (cVar1 == '\0') {\n      pbVar3 = pbVar3 + 1;\n      bVar2 = *pbVar3;\n      cVar1 = (&DAT_0006f2e0)[bVar2];\n    }\n    *pbVar3 = 0;\n  }" else (compound_statement "{\n    bVar2 = *DAT_00077ef8;\n    cVar1 = (&DAT_0006f2e0)[bVar2];\n    pbVar3 = DAT_00077ef8;\n    while (cVar1 == '\0') {\n      pbVar3 = pbVar3 + 1;\n      bVar2 = *pbVar3;\n      cVar1 = (&DAT_0006f2e0)[bVar2];\n    }\n    *pbVar3 = 0;\n  }" { (expression_statement "bVar2 = *DAT_00077ef8;" (assignment_expression "bVar2 = *DAT_00077ef8" identifier = (pointer_expression "*DAT_00077ef8" * identifier)) ;) (expression_statement "cVar1 = (&DAT_0006f2e0)[bVar2];" (assignment_expression "cVar1 = (&DAT_0006f2e0)[bVar2]" identifier = (subscript_expression "(&DAT_0006f2e0)[bVar2]" (parenthesized_expression "(&DAT_0006f2e0)" ( (pointer_expression "&DAT_0006f2e0" & identifier) )) [ identifier ])) ;) (expression_statement "pbVar3 = DAT_00077ef8;" (assignment_expression "pbVar3 = DAT_00077ef8" identifier = identifier) ;) (while_statement "while (cVar1 == '\0') {\n      pbVar3 = pbVar3 + 1;\n      bVar2 = *pbVar3;\n      cVar1 = (&DAT_0006f2e0)[bVar2];\n    }" while (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      pbVar3 = pbVar3 + 1;\n      bVar2 = *pbVar3;\n      cVar1 = (&DAT_0006f2e0)[bVar2];\n    }" { (expression_statement "pbVar3 = pbVar3 + 1;" (assignment_expression "pbVar3 = pbVar3 + 1" identifier = (binary_expression "pbVar3 + 1" identifier + number_literal)) ;) (expression_statement "bVar2 = *pbVar3;" (assignment_expression "bVar2 = *pbVar3" identifier = (pointer_expression "*pbVar3" * identifier)) ;) (expression_statement "cVar1 = (&DAT_0006f2e0)[bVar2];" (assignment_expression "cVar1 = (&DAT_0006f2e0)[bVar2]" identifier = (subscript_expression "(&DAT_0006f2e0)[bVar2]" (parenthesized_expression "(&DAT_0006f2e0)" ( (pointer_expression "&DAT_0006f2e0" & identifier) )) [ identifier ])) ;) })) (expression_statement "*pbVar3 = 0;" (assignment_expression "*pbVar3 = 0" (pointer_expression "*pbVar3" * identifier) = number_literal) ;) }))) (expression_statement "uVar4 = FUN_0002c480();" (assignment_expression "uVar4 = FUN_0002c480()" identifier = (call_expression "FUN_0002c480()" identifier (argument_list "()" ( )))) ;) (expression_statement "DAT_00077ef4 = (undefined4)((ulonglong)uVar4 >> 0x20);" (assignment_expression "DAT_00077ef4 = (undefined4)((ulonglong)uVar4 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)uVar4 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)uVar4 >> 0x20)" ( (binary_expression "(ulonglong)uVar4 >> 0x20" (cast_expression "(ulonglong)uVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "DAT_00077ef0 = (undefined4)uVar4;" (assignment_expression "DAT_00077ef0 = (undefined4)uVar4" identifier = (cast_expression "(undefined4)uVar4" ( (type_descriptor "undefined4" type_identifier) ) identifier)) ;) (expression_statement "FUN_0004afd0();" (call_expression "FUN_0004afd0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00036710(PTR__bfd_std_section_0006efb4 + 0x180,0);" (call_expression "FUN_00036710(PTR__bfd_std_section_0006efb4 + 0x180,0)" identifier (argument_list "(PTR__bfd_std_section_0006efb4 + 0x180,0)" ( (binary_expression "PTR__bfd_std_section_0006efb4 + 0x180" identifier + number_literal) , number_literal ))) ;) (expression_statement "FUN_0002e290();" (call_expression "FUN_0002e290()" identifier (argument_list "()" ( ))) ;) (if_statement "if (DAT_00077e28 == 0) {\n    return;\n  }" if (parenthesized_expression "(DAT_00077e28 == 0)" ( (binary_expression "DAT_00077e28 == 0" identifier == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "FUN_0002da40(pbVar3,(int)(char)bVar2);" (call_expression "FUN_0002da40(pbVar3,(int)(char)bVar2)" identifier (argument_list "(pbVar3,(int)(char)bVar2)" ( identifier , (cast_expression "(int)(char)bVar2" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar2" ( (type_descriptor "char" primitive_type) ) identifier)) ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ])) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) ;) (return_statement return ;) })))
(function_definition "void FUN_0002f250(void)\n\n{\n  char cVar1;\n  byte bVar2;\n  byte *pbVar3;\n  undefined8 uVar4;\n  \n  if (DAT_00077e28 == 0) {\n    bVar2 = 0;\n    pbVar3 = (byte *)0x0;\n  }\n  else {\n    bVar2 = *DAT_00077ef8;\n    cVar1 = (&DAT_0006f2e0)[bVar2];\n    pbVar3 = DAT_00077ef8;\n    while (cVar1 == '\0') {\n      pbVar3 = pbVar3 + 1;\n      bVar2 = *pbVar3;\n      cVar1 = (&DAT_0006f2e0)[bVar2];\n    }\n    *pbVar3 = 0;\n  }\n  uVar4 = FUN_0002c480();\n  DAT_00077ef4 = (undefined4)((ulonglong)uVar4 >> 0x20);\n  DAT_00077ef0 = (undefined4)uVar4;\n  FUN_0004afd0();\n  FUN_00036710(PTR__bfd_std_section_0006efb4 + 0x180,0);\n  FUN_0002e290();\n  if (DAT_00077e28 == 0) {\n    return;\n  }\n  FUN_0002da40(pbVar3,(int)(char)bVar2);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0002f250(void)" (identifier "FUN_0002f250") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  char cVar1;\n  byte bVar2;\n  byte *pbVar3;\n  undefined8 uVar4;\n  \n  if (DAT_00077e28 == 0) {\n    bVar2 = 0;\n    pbVar3 = (byte *)0x0;\n  }\n  else {\n    bVar2 = *DAT_00077ef8;\n    cVar1 = (&DAT_0006f2e0)[bVar2];\n    pbVar3 = DAT_00077ef8;\n    while (cVar1 == '\0') {\n      pbVar3 = pbVar3 + 1;\n      bVar2 = *pbVar3;\n      cVar1 = (&DAT_0006f2e0)[bVar2];\n    }\n    *pbVar3 = 0;\n  }\n  uVar4 = FUN_0002c480();\n  DAT_00077ef4 = (undefined4)((ulonglong)uVar4 >> 0x20);\n  DAT_00077ef0 = (undefined4)uVar4;\n  FUN_0004afd0();\n  FUN_00036710(PTR__bfd_std_section_0006efb4 + 0x180,0);\n  FUN_0002e290();\n  if (DAT_00077e28 == 0) {\n    return;\n  }\n  FUN_0002da40(pbVar3,(int)(char)bVar2);\n  return;\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "byte bVar2;" (type_identifier "byte") (identifier "bVar2") (; ";")) (declaration "byte *pbVar3;" (type_identifier "byte") (pointer_declarator "*pbVar3" (* "*") (identifier "pbVar3")) (; ";")) (declaration "undefined8 uVar4;" (type_identifier "undefined8") (identifier "uVar4") (; ";")) (if_statement "if (DAT_00077e28 == 0) {\n    bVar2 = 0;\n    pbVar3 = (byte *)0x0;\n  }\n  else {\n    bVar2 = *DAT_00077ef8;\n    cVar1 = (&DAT_0006f2e0)[bVar2];\n    pbVar3 = DAT_00077ef8;\n    while (cVar1 == '\0') {\n      pbVar3 = pbVar3 + 1;\n      bVar2 = *pbVar3;\n      cVar1 = (&DAT_0006f2e0)[bVar2];\n    }\n    *pbVar3 = 0;\n  }" (if "if") (parenthesized_expression "(DAT_00077e28 == 0)" (( "(") (binary_expression "DAT_00077e28 == 0" (identifier "DAT_00077e28") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    bVar2 = 0;\n    pbVar3 = (byte *)0x0;\n  }" ({ "{") (expression_statement "bVar2 = 0;" (assignment_expression "bVar2 = 0" (identifier "bVar2") (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar3 = (byte *)0x0;" (assignment_expression "pbVar3 = (byte *)0x0" (identifier "pbVar3") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n    bVar2 = *DAT_00077ef8;\n    cVar1 = (&DAT_0006f2e0)[bVar2];\n    pbVar3 = DAT_00077ef8;\n    while (cVar1 == '\0') {\n      pbVar3 = pbVar3 + 1;\n      bVar2 = *pbVar3;\n      cVar1 = (&DAT_0006f2e0)[bVar2];\n    }\n    *pbVar3 = 0;\n  }" (else "else") (compound_statement "{\n    bVar2 = *DAT_00077ef8;\n    cVar1 = (&DAT_0006f2e0)[bVar2];\n    pbVar3 = DAT_00077ef8;\n    while (cVar1 == '\0') {\n      pbVar3 = pbVar3 + 1;\n      bVar2 = *pbVar3;\n      cVar1 = (&DAT_0006f2e0)[bVar2];\n    }\n    *pbVar3 = 0;\n  }" ({ "{") (expression_statement "bVar2 = *DAT_00077ef8;" (assignment_expression "bVar2 = *DAT_00077ef8" (identifier "bVar2") (= "=") (pointer_expression "*DAT_00077ef8" (* "*") (identifier "DAT_00077ef8"))) (; ";")) (expression_statement "cVar1 = (&DAT_0006f2e0)[bVar2];" (assignment_expression "cVar1 = (&DAT_0006f2e0)[bVar2]" (identifier "cVar1") (= "=") (subscript_expression "(&DAT_0006f2e0)[bVar2]" (parenthesized_expression "(&DAT_0006f2e0)" (( "(") (pointer_expression "&DAT_0006f2e0" (& "&") (identifier "DAT_0006f2e0")) () ")")) ([ "[") (identifier "bVar2") (] "]"))) (; ";")) (expression_statement "pbVar3 = DAT_00077ef8;" (assignment_expression "pbVar3 = DAT_00077ef8" (identifier "pbVar3") (= "=") (identifier "DAT_00077ef8")) (; ";")) (while_statement "while (cVar1 == '\0') {\n      pbVar3 = pbVar3 + 1;\n      bVar2 = *pbVar3;\n      cVar1 = (&DAT_0006f2e0)[bVar2];\n    }" (while "while") (parenthesized_expression "(cVar1 == '\0')" (( "(") (binary_expression "cVar1 == '\0'" (identifier "cVar1") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      pbVar3 = pbVar3 + 1;\n      bVar2 = *pbVar3;\n      cVar1 = (&DAT_0006f2e0)[bVar2];\n    }" ({ "{") (expression_statement "pbVar3 = pbVar3 + 1;" (assignment_expression "pbVar3 = pbVar3 + 1" (identifier "pbVar3") (= "=") (binary_expression "pbVar3 + 1" (identifier "pbVar3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar2 = *pbVar3;" (assignment_expression "bVar2 = *pbVar3" (identifier "bVar2") (= "=") (pointer_expression "*pbVar3" (* "*") (identifier "pbVar3"))) (; ";")) (expression_statement "cVar1 = (&DAT_0006f2e0)[bVar2];" (assignment_expression "cVar1 = (&DAT_0006f2e0)[bVar2]" (identifier "cVar1") (= "=") (subscript_expression "(&DAT_0006f2e0)[bVar2]" (parenthesized_expression "(&DAT_0006f2e0)" (( "(") (pointer_expression "&DAT_0006f2e0" (& "&") (identifier "DAT_0006f2e0")) () ")")) ([ "[") (identifier "bVar2") (] "]"))) (; ";")) (} "}"))) (expression_statement "*pbVar3 = 0;" (assignment_expression "*pbVar3 = 0" (pointer_expression "*pbVar3" (* "*") (identifier "pbVar3")) (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "uVar4 = FUN_0002c480();" (assignment_expression "uVar4 = FUN_0002c480()" (identifier "uVar4") (= "=") (call_expression "FUN_0002c480()" (identifier "FUN_0002c480") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "DAT_00077ef4 = (undefined4)((ulonglong)uVar4 >> 0x20);" (assignment_expression "DAT_00077ef4 = (undefined4)((ulonglong)uVar4 >> 0x20)" (identifier "DAT_00077ef4") (= "=") (call_expression "(undefined4)((ulonglong)uVar4 >> 0x20)" (parenthesized_expression "(undefined4)" (( "(") (identifier "undefined4") () ")")) (argument_list "((ulonglong)uVar4 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar4 >> 0x20" (cast_expression "(ulonglong)uVar4" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar4")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "DAT_00077ef0 = (undefined4)uVar4;" (assignment_expression "DAT_00077ef0 = (undefined4)uVar4" (identifier "DAT_00077ef0") (= "=") (cast_expression "(undefined4)uVar4" (( "(") (type_descriptor "undefined4" (type_identifier "undefined4")) () ")") (identifier "uVar4"))) (; ";")) (expression_statement "FUN_0004afd0();" (call_expression "FUN_0004afd0()" (identifier "FUN_0004afd0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00036710(PTR__bfd_std_section_0006efb4 + 0x180,0);" (call_expression "FUN_00036710(PTR__bfd_std_section_0006efb4 + 0x180,0)" (identifier "FUN_00036710") (argument_list "(PTR__bfd_std_section_0006efb4 + 0x180,0)" (( "(") (binary_expression "PTR__bfd_std_section_0006efb4 + 0x180" (identifier "PTR__bfd_std_section_0006efb4") (+ "+") (number_literal "0x180")) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "FUN_0002e290();" (call_expression "FUN_0002e290()" (identifier "FUN_0002e290") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (DAT_00077e28 == 0) {\n    return;\n  }" (if "if") (parenthesized_expression "(DAT_00077e28 == 0)" (( "(") (binary_expression "DAT_00077e28 == 0" (identifier "DAT_00077e28") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_0002da40(pbVar3,(int)(char)bVar2);" (call_expression "FUN_0002da40(pbVar3,(int)(char)bVar2)" (identifier "FUN_0002da40") (argument_list "(pbVar3,(int)(char)bVar2)" (( "(") (identifier "pbVar3") (, ",") (cast_expression "(int)(char)bVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)bVar2" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar2"))) () ")"))) (; ";")) (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 ignore)

{
  char var_2;
  type_1 bVar2;
  type_1 *var_3;
  type_2 exp;
  
  if (var_1 == 0) {
    bVar2 = 0;
    var_3 = (type_1 *)0x0;
  }
  else {
    bVar2 = *input_line_pointer;
    var_2 = is_end_of_line[bVar2];
    var_3 = (type_1 *)input_line_pointer;
    while (var_2 == '\0') {
      var_3 = var_3 + 1;
      bVar2 = *var_3;
      var_2 = is_end_of_line[bVar2];
    }
    *var_3 = 0;
  }
  abs_section_offset = var_4(&exp);
  var_5();
  var_6((segT)(var_7 + 0x180),0);
  var_8();
  if (var_1 == 0) {
    return;
  }
  var_9((char *)var_3,(int)(char)bVar2);
  return;
}


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

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

void MASKED(void)

{
  char cVar1;
  byte bVar2;
  byte *pbVar3;
  undefined8 uVar4;
  
  if (DAT_00077e28 == 0) {
    bVar2 = 0;
    pbVar3 = (byte *)0x0;
  }
  else {
    bVar2 = *DAT_00077ef8;
    cVar1 = (&DAT_0006f2e0)[bVar2];
    pbVar3 = DAT_00077ef8;
    while (cVar1 == '\0') {
      pbVar3 = pbVar3 + 1;
      bVar2 = *pbVar3;
      cVar1 = (&DAT_0006f2e0)[bVar2];
    }
    *pbVar3 = 0;
  }
  uVar4 = FUN_0002c480();
  DAT_00077ef4 = (undefined4)((ulonglong)uVar4 >> 0x20);
  DAT_00077ef0 = (undefined4)uVar4;
  FUN_0004afd0();
  FUN_00036710(PTR__bfd_std_section_0006efb4 + 0x180,0);
  FUN_0002e290();
  if (DAT_00077e28 == 0) {
    return;
  }
  FUN_0002da40(pbVar3,(int)(char)bVar2);
  return;
}

