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

char * dwarf2_directive_filename(void)

{
  char cVar1;
  uint num;
  char *filename;
  char *pcVar2;
  int filename_len;
  
  filename_len = 0x1b3c8;
  cVar1 = *input_line_pointer;
  if (cVar1 == ' ') {
    cVar1 = input_line_pointer[1];
    input_line_pointer = input_line_pointer + 1;
  }
  if (cVar1 == '\"') {
    filename = (char *)0x0;
    s_app_file(0);
  }
  else {
    num = get_absolute_expression();
    filename = demand_copy_C_string(&filename_len);
    if (filename != (char *)0x0) {
      demand_empty_rest_of_line();
      if ((int)num < 1) {
        filename = (char *)0x0;
        pcVar2 = (char *)dcgettext(0,"file number less than one",5);
        as_bad(pcVar2);
      }
      else {
        debug_type = DEBUG_NONE;
        if (((int)num < (int)files_in_use) && (files[num].filename != (char *)0x0)) {
          filename = (char *)0x0;
          pcVar2 = (char *)dcgettext(0,"file number %ld already allocated",5);
          as_bad(pcVar2,num);
        }
        else {
          get_filenum(filename,num);
        }
      }
    }
  }
  return filename;
}



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

int FUN_0001b3c0(void)

{
  char cVar1;
  int iVar2;
  int iVar3;
  undefined4 uVar4;
  undefined4 local_10;
  
  local_10 = 0x1b3c8;
  cVar1 = *DAT_0007cf30;
  if (cVar1 == ' ') {
    cVar1 = DAT_0007cf30[1];
    DAT_0007cf30 = DAT_0007cf30 + 1;
  }
  if (cVar1 == '\"') {
    iVar3 = 0;
    FUN_000319b0(0);
  }
  else {
    iVar2 = FUN_0002bec0();
    iVar3 = FUN_00031be0(&local_10);
    if (iVar3 != 0) {
      FUN_0002cab0();
      if (iVar2 < 1) {
        iVar3 = 0;
        uVar4 = dcgettext(0,"file number less than one",5);
        FUN_0002a7b0(uVar4);
      }
      else {
        DAT_0007c758 = 1;
        if ((iVar2 < DAT_0007c7f0) && (*(int *)(DAT_0007c7f4 + iVar2 * 8) != 0)) {
          iVar3 = 0;
          uVar4 = dcgettext(0,"file number %ld already allocated",5);
          FUN_0002a7b0(uVar4,iVar2);
        }
        else {
          FUN_0001a0b0();
        }
      }
    }
  }
  return iVar3;
}


PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00016030
ADD EBX,0x58c38
SUB ESP,0x10
LEA ECX,[EBX + 0x8f30]
MOV EDX,dword ptr [ECX]
MOVZX EAX,byte ptr [EDX]
CMP AL,0x20
JNZ 0x0001b3e9
LEA EAX,[EDX + 0x1]
MOV dword ptr [ECX],EAX
MOVZX EAX,byte ptr [EDX + 0x1]
CMP AL,0x22
JZ 0x0001b478
CALL 0x0002bec0
SUB ESP,0xc
MOV EDI,EAX
LEA EAX,[ESP + 0x18]
PUSH EAX
CALL 0x00031be0
ADD ESP,0x10
MOV ESI,EAX
TEST EAX,EAX
JZ 0x0001b441
CALL 0x0002cab0
TEST EDI,EDI
JLE 0x0001b490
LEA EAX,[EBX + 0x8758]
MOV dword ptr [EAX],0x1
CMP dword ptr [EBX + 0x87f0],EDI
JLE 0x0001b438
MOV EAX,dword ptr [EBX + 0x87f4]
MOV EAX,dword ptr [EAX + EDI*0x8]
TEST EAX,EAX
JNZ 0x0001b450
MOV EDX,EDI
MOV EAX,ESI
CALL 0x0001a0b0
ADD ESP,0x10
MOV EAX,ESI
POP EBX
POP ESI
POP EDI
RET
SUB ESP,0x4
LEA EAX,[EBX + 0xfffdd370]
XOR ESI,ESI
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
POP EDX
POP ECX
PUSH EDI
PUSH EAX
CALL 0x0002a7b0
ADD ESP,0x10
JMP 0x0001b441
SUB ESP,0xc
XOR ESI,ESI
PUSH 0x0
CALL 0x000319b0
ADD ESP,0x10
JMP 0x0001b441
SUB ESP,0x4
LEA EAX,[EBX + 0xfffdd1f5]
XOR ESI,ESI
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
MOV dword ptr [ESP],EAX
CALL 0x0002a7b0
ADD ESP,0x10
JMP 0x0001b441
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint FUN_0001b3c0(void)\n\n{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 local_10;\n  \n  local_10 = 0x1b3c8;\n  cVar1 = *DAT_0007cf30;\n  if (cVar1 == ' ') {\n    cVar1 = DAT_0007cf30[1];\n    DAT_0007cf30 = DAT_0007cf30 + 1;\n  }\n  if (cVar1 == '\"') {\n    iVar3 = 0;\n    FUN_000319b0(0);\n  }\n  else {\n    iVar2 = FUN_0002bec0();\n    iVar3 = FUN_00031be0(&local_10);\n    if (iVar3 != 0) {\n      FUN_0002cab0();\n      if (iVar2 < 1) {\n        iVar3 = 0;\n        uVar4 = dcgettext(0,"file number less than one",5);\n        FUN_0002a7b0(uVar4);\n      }\n      else {\n        DAT_0007c758 = 1;\n        if ((iVar2 < DAT_0007c7f0) && (*(int *)(DAT_0007c7f4 + iVar2 * 8) != 0)) {\n          iVar3 = 0;\n          uVar4 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002a7b0(uVar4,iVar2);\n        }\n        else {\n          FUN_0001a0b0();\n        }\n      }\n    }\n  }\n  return iVar3;\n}\n\n" comment (function_definition "int FUN_0001b3c0(void)\n\n{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 local_10;\n  \n  local_10 = 0x1b3c8;\n  cVar1 = *DAT_0007cf30;\n  if (cVar1 == ' ') {\n    cVar1 = DAT_0007cf30[1];\n    DAT_0007cf30 = DAT_0007cf30 + 1;\n  }\n  if (cVar1 == '\"') {\n    iVar3 = 0;\n    FUN_000319b0(0);\n  }\n  else {\n    iVar2 = FUN_0002bec0();\n    iVar3 = FUN_00031be0(&local_10);\n    if (iVar3 != 0) {\n      FUN_0002cab0();\n      if (iVar2 < 1) {\n        iVar3 = 0;\n        uVar4 = dcgettext(0,"file number less than one",5);\n        FUN_0002a7b0(uVar4);\n      }\n      else {\n        DAT_0007c758 = 1;\n        if ((iVar2 < DAT_0007c7f0) && (*(int *)(DAT_0007c7f4 + iVar2 * 8) != 0)) {\n          iVar3 = 0;\n          uVar4 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002a7b0(uVar4,iVar2);\n        }\n        else {\n          FUN_0001a0b0();\n        }\n      }\n    }\n  }\n  return iVar3;\n}" primitive_type (function_declarator "FUN_0001b3c0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 local_10;\n  \n  local_10 = 0x1b3c8;\n  cVar1 = *DAT_0007cf30;\n  if (cVar1 == ' ') {\n    cVar1 = DAT_0007cf30[1];\n    DAT_0007cf30 = DAT_0007cf30 + 1;\n  }\n  if (cVar1 == '\"') {\n    iVar3 = 0;\n    FUN_000319b0(0);\n  }\n  else {\n    iVar2 = FUN_0002bec0();\n    iVar3 = FUN_00031be0(&local_10);\n    if (iVar3 != 0) {\n      FUN_0002cab0();\n      if (iVar2 < 1) {\n        iVar3 = 0;\n        uVar4 = dcgettext(0,"file number less than one",5);\n        FUN_0002a7b0(uVar4);\n      }\n      else {\n        DAT_0007c758 = 1;\n        if ((iVar2 < DAT_0007c7f0) && (*(int *)(DAT_0007c7f4 + iVar2 * 8) != 0)) {\n          iVar3 = 0;\n          uVar4 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002a7b0(uVar4,iVar2);\n        }\n        else {\n          FUN_0001a0b0();\n        }\n      }\n    }\n  }\n  return iVar3;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined4 local_10;" type_identifier identifier ;) (expression_statement "local_10 = 0x1b3c8;" (assignment_expression "local_10 = 0x1b3c8" identifier = number_literal) ;) (expression_statement "cVar1 = *DAT_0007cf30;" (assignment_expression "cVar1 = *DAT_0007cf30" identifier = (pointer_expression "*DAT_0007cf30" * identifier)) ;) (if_statement "if (cVar1 == ' ') {\n    cVar1 = DAT_0007cf30[1];\n    DAT_0007cf30 = DAT_0007cf30 + 1;\n  }" if (parenthesized_expression "(cVar1 == ' ')" ( (binary_expression "cVar1 == ' '" identifier == (char_literal "' '" ' character ')) )) (compound_statement "{\n    cVar1 = DAT_0007cf30[1];\n    DAT_0007cf30 = DAT_0007cf30 + 1;\n  }" { (expression_statement "cVar1 = DAT_0007cf30[1];" (assignment_expression "cVar1 = DAT_0007cf30[1]" identifier = (subscript_expression "DAT_0007cf30[1]" identifier [ number_literal ])) ;) (expression_statement "DAT_0007cf30 = DAT_0007cf30 + 1;" (assignment_expression "DAT_0007cf30 = DAT_0007cf30 + 1" identifier = (binary_expression "DAT_0007cf30 + 1" identifier + number_literal)) ;) })) (if_statement "if (cVar1 == '\"') {\n    iVar3 = 0;\n    FUN_000319b0(0);\n  }\n  else {\n    iVar2 = FUN_0002bec0();\n    iVar3 = FUN_00031be0(&local_10);\n    if (iVar3 != 0) {\n      FUN_0002cab0();\n      if (iVar2 < 1) {\n        iVar3 = 0;\n        uVar4 = dcgettext(0,"file number less than one",5);\n        FUN_0002a7b0(uVar4);\n      }\n      else {\n        DAT_0007c758 = 1;\n        if ((iVar2 < DAT_0007c7f0) && (*(int *)(DAT_0007c7f4 + iVar2 * 8) != 0)) {\n          iVar3 = 0;\n          uVar4 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002a7b0(uVar4,iVar2);\n        }\n        else {\n          FUN_0001a0b0();\n        }\n      }\n    }\n  }" if (parenthesized_expression "(cVar1 == '\"')" ( (binary_expression "cVar1 == '\"'" identifier == (char_literal "'\"'" ' escape_sequence ')) )) (compound_statement "{\n    iVar3 = 0;\n    FUN_000319b0(0);\n  }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "FUN_000319b0(0);" (call_expression "FUN_000319b0(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }) (else_clause "else {\n    iVar2 = FUN_0002bec0();\n    iVar3 = FUN_00031be0(&local_10);\n    if (iVar3 != 0) {\n      FUN_0002cab0();\n      if (iVar2 < 1) {\n        iVar3 = 0;\n        uVar4 = dcgettext(0,"file number less than one",5);\n        FUN_0002a7b0(uVar4);\n      }\n      else {\n        DAT_0007c758 = 1;\n        if ((iVar2 < DAT_0007c7f0) && (*(int *)(DAT_0007c7f4 + iVar2 * 8) != 0)) {\n          iVar3 = 0;\n          uVar4 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002a7b0(uVar4,iVar2);\n        }\n        else {\n          FUN_0001a0b0();\n        }\n      }\n    }\n  }" else (compound_statement "{\n    iVar2 = FUN_0002bec0();\n    iVar3 = FUN_00031be0(&local_10);\n    if (iVar3 != 0) {\n      FUN_0002cab0();\n      if (iVar2 < 1) {\n        iVar3 = 0;\n        uVar4 = dcgettext(0,"file number less than one",5);\n        FUN_0002a7b0(uVar4);\n      }\n      else {\n        DAT_0007c758 = 1;\n        if ((iVar2 < DAT_0007c7f0) && (*(int *)(DAT_0007c7f4 + iVar2 * 8) != 0)) {\n          iVar3 = 0;\n          uVar4 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002a7b0(uVar4,iVar2);\n        }\n        else {\n          FUN_0001a0b0();\n        }\n      }\n    }\n  }" { (expression_statement "iVar2 = FUN_0002bec0();" (assignment_expression "iVar2 = FUN_0002bec0()" identifier = (call_expression "FUN_0002bec0()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar3 = FUN_00031be0(&local_10);" (assignment_expression "iVar3 = FUN_00031be0(&local_10)" identifier = (call_expression "FUN_00031be0(&local_10)" identifier (argument_list "(&local_10)" ( (pointer_expression "&local_10" & identifier) )))) ;) (if_statement "if (iVar3 != 0) {\n      FUN_0002cab0();\n      if (iVar2 < 1) {\n        iVar3 = 0;\n        uVar4 = dcgettext(0,"file number less than one",5);\n        FUN_0002a7b0(uVar4);\n      }\n      else {\n        DAT_0007c758 = 1;\n        if ((iVar2 < DAT_0007c7f0) && (*(int *)(DAT_0007c7f4 + iVar2 * 8) != 0)) {\n          iVar3 = 0;\n          uVar4 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002a7b0(uVar4,iVar2);\n        }\n        else {\n          FUN_0001a0b0();\n        }\n      }\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_0002cab0();\n      if (iVar2 < 1) {\n        iVar3 = 0;\n        uVar4 = dcgettext(0,"file number less than one",5);\n        FUN_0002a7b0(uVar4);\n      }\n      else {\n        DAT_0007c758 = 1;\n        if ((iVar2 < DAT_0007c7f0) && (*(int *)(DAT_0007c7f4 + iVar2 * 8) != 0)) {\n          iVar3 = 0;\n          uVar4 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002a7b0(uVar4,iVar2);\n        }\n        else {\n          FUN_0001a0b0();\n        }\n      }\n    }" { (expression_statement "FUN_0002cab0();" (call_expression "FUN_0002cab0()" identifier (argument_list "()" ( ))) ;) (if_statement "if (iVar2 < 1) {\n        iVar3 = 0;\n        uVar4 = dcgettext(0,"file number less than one",5);\n        FUN_0002a7b0(uVar4);\n      }\n      else {\n        DAT_0007c758 = 1;\n        if ((iVar2 < DAT_0007c7f0) && (*(int *)(DAT_0007c7f4 + iVar2 * 8) != 0)) {\n          iVar3 = 0;\n          uVar4 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002a7b0(uVar4,iVar2);\n        }\n        else {\n          FUN_0001a0b0();\n        }\n      }" if (parenthesized_expression "(iVar2 < 1)" ( (binary_expression "iVar2 < 1" identifier < number_literal) )) (compound_statement "{\n        iVar3 = 0;\n        uVar4 = dcgettext(0,"file number less than one",5);\n        FUN_0002a7b0(uVar4);\n      }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "uVar4 = dcgettext(0,"file number less than one",5);" (assignment_expression "uVar4 = dcgettext(0,"file number less than one",5)" identifier = (call_expression "dcgettext(0,"file number less than one",5)" identifier (argument_list "(0,"file number less than one",5)" ( number_literal , (string_literal ""file number less than one"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002a7b0(uVar4);" (call_expression "FUN_0002a7b0(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) }) (else_clause "else {\n        DAT_0007c758 = 1;\n        if ((iVar2 < DAT_0007c7f0) && (*(int *)(DAT_0007c7f4 + iVar2 * 8) != 0)) {\n          iVar3 = 0;\n          uVar4 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002a7b0(uVar4,iVar2);\n        }\n        else {\n          FUN_0001a0b0();\n        }\n      }" else (compound_statement "{\n        DAT_0007c758 = 1;\n        if ((iVar2 < DAT_0007c7f0) && (*(int *)(DAT_0007c7f4 + iVar2 * 8) != 0)) {\n          iVar3 = 0;\n          uVar4 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002a7b0(uVar4,iVar2);\n        }\n        else {\n          FUN_0001a0b0();\n        }\n      }" { (expression_statement "DAT_0007c758 = 1;" (assignment_expression "DAT_0007c758 = 1" identifier = number_literal) ;) (if_statement "if ((iVar2 < DAT_0007c7f0) && (*(int *)(DAT_0007c7f4 + iVar2 * 8) != 0)) {\n          iVar3 = 0;\n          uVar4 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002a7b0(uVar4,iVar2);\n        }\n        else {\n          FUN_0001a0b0();\n        }" if (parenthesized_expression "((iVar2 < DAT_0007c7f0) && (*(int *)(DAT_0007c7f4 + iVar2 * 8) != 0))" ( (binary_expression "(iVar2 < DAT_0007c7f0) && (*(int *)(DAT_0007c7f4 + iVar2 * 8) != 0)" (parenthesized_expression "(iVar2 < DAT_0007c7f0)" ( (binary_expression "iVar2 < DAT_0007c7f0" identifier < identifier) )) && (parenthesized_expression "(*(int *)(DAT_0007c7f4 + iVar2 * 8) != 0)" ( (binary_expression "*(int *)(DAT_0007c7f4 + iVar2 * 8) != 0" (pointer_expression "*(int *)(DAT_0007c7f4 + iVar2 * 8)" * (cast_expression "(int *)(DAT_0007c7f4 + iVar2 * 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0007c7f4 + iVar2 * 8)" ( (binary_expression "DAT_0007c7f4 + iVar2 * 8" identifier + (binary_expression "iVar2 * 8" identifier * number_literal)) )))) != number_literal) ))) )) (compound_statement "{\n          iVar3 = 0;\n          uVar4 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002a7b0(uVar4,iVar2);\n        }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "uVar4 = dcgettext(0,"file number %ld already allocated",5);" (assignment_expression "uVar4 = dcgettext(0,"file number %ld already allocated",5)" identifier = (call_expression "dcgettext(0,"file number %ld already allocated",5)" identifier (argument_list "(0,"file number %ld already allocated",5)" ( number_literal , (string_literal ""file number %ld already allocated"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002a7b0(uVar4,iVar2);" (call_expression "FUN_0002a7b0(uVar4,iVar2)" identifier (argument_list "(uVar4,iVar2)" ( identifier , identifier ))) ;) }) (else_clause "else {\n          FUN_0001a0b0();\n        }" else (compound_statement "{\n          FUN_0001a0b0();\n        }" { (expression_statement "FUN_0001a0b0();" (call_expression "FUN_0001a0b0()" identifier (argument_list "()" ( ))) ;) }))) }))) })) }))) (return_statement "return iVar3;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n\nchar * dwarf2_directive_filename(void)\n\n{\n  char cVar1;\n  uint num;\n  char *filename;\n  char *pcVar2;\n  int filename_len;\n  \n  filename_len = 0x1b3c8;\n  cVar1 = *input_line_pointer;\n  if (cVar1 == ' ') {\n    cVar1 = input_line_pointer[1];\n    input_line_pointer = input_line_pointer + 1;\n  }\n  if (cVar1 == '\"') {\n    filename = (char *)0x0;\n    s_app_file(0);\n  }\n  else {\n    num = get_absolute_expression();\n    filename = demand_copy_C_string(&filename_len);\n    if (filename != (char *)0x0) {\n      demand_empty_rest_of_line();\n      if ((int)num < 1) {\n        filename = (char *)0x0;\n        pcVar2 = (char *)dcgettext(0,"file number less than one",5);\n        as_bad(pcVar2);\n      }\n      else {\n        debug_type = DEBUG_NONE;\n        if (((int)num < (int)files_in_use) && (files[num].filename != (char *)0x0)) {\n          filename = (char *)0x0;\n          pcVar2 = (char *)dcgettext(0,"file number %ld already allocated",5);\n          as_bad(pcVar2,num);\n        }\n        else {\n          get_filenum(filename,num);\n        }\n      }\n    }\n  }\n  return filename;\n}\n\n" comment comment (function_definition "char * dwarf2_directive_filename(void)\n\n{\n  char cVar1;\n  uint num;\n  char *filename;\n  char *pcVar2;\n  int filename_len;\n  \n  filename_len = 0x1b3c8;\n  cVar1 = *input_line_pointer;\n  if (cVar1 == ' ') {\n    cVar1 = input_line_pointer[1];\n    input_line_pointer = input_line_pointer + 1;\n  }\n  if (cVar1 == '\"') {\n    filename = (char *)0x0;\n    s_app_file(0);\n  }\n  else {\n    num = get_absolute_expression();\n    filename = demand_copy_C_string(&filename_len);\n    if (filename != (char *)0x0) {\n      demand_empty_rest_of_line();\n      if ((int)num < 1) {\n        filename = (char *)0x0;\n        pcVar2 = (char *)dcgettext(0,"file number less than one",5);\n        as_bad(pcVar2);\n      }\n      else {\n        debug_type = DEBUG_NONE;\n        if (((int)num < (int)files_in_use) && (files[num].filename != (char *)0x0)) {\n          filename = (char *)0x0;\n          pcVar2 = (char *)dcgettext(0,"file number %ld already allocated",5);\n          as_bad(pcVar2,num);\n        }\n        else {\n          get_filenum(filename,num);\n        }\n      }\n    }\n  }\n  return filename;\n}" primitive_type (pointer_declarator "* dwarf2_directive_filename(void)" * (function_declarator "dwarf2_directive_filename(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) )))) (compound_statement "{\n  char cVar1;\n  uint num;\n  char *filename;\n  char *pcVar2;\n  int filename_len;\n  \n  filename_len = 0x1b3c8;\n  cVar1 = *input_line_pointer;\n  if (cVar1 == ' ') {\n    cVar1 = input_line_pointer[1];\n    input_line_pointer = input_line_pointer + 1;\n  }\n  if (cVar1 == '\"') {\n    filename = (char *)0x0;\n    s_app_file(0);\n  }\n  else {\n    num = get_absolute_expression();\n    filename = demand_copy_C_string(&filename_len);\n    if (filename != (char *)0x0) {\n      demand_empty_rest_of_line();\n      if ((int)num < 1) {\n        filename = (char *)0x0;\n        pcVar2 = (char *)dcgettext(0,"file number less than one",5);\n        as_bad(pcVar2);\n      }\n      else {\n        debug_type = DEBUG_NONE;\n        if (((int)num < (int)files_in_use) && (files[num].filename != (char *)0x0)) {\n          filename = (char *)0x0;\n          pcVar2 = (char *)dcgettext(0,"file number %ld already allocated",5);\n          as_bad(pcVar2,num);\n        }\n        else {\n          get_filenum(filename,num);\n        }\n      }\n    }\n  }\n  return filename;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "uint num;" type_identifier identifier ;) (declaration "char *filename;" primitive_type (pointer_declarator "*filename" * identifier) ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "int filename_len;" primitive_type identifier ;) (expression_statement "filename_len = 0x1b3c8;" (assignment_expression "filename_len = 0x1b3c8" identifier = number_literal) ;) (expression_statement "cVar1 = *input_line_pointer;" (assignment_expression "cVar1 = *input_line_pointer" identifier = (pointer_expression "*input_line_pointer" * identifier)) ;) (if_statement "if (cVar1 == ' ') {\n    cVar1 = input_line_pointer[1];\n    input_line_pointer = input_line_pointer + 1;\n  }" if (parenthesized_expression "(cVar1 == ' ')" ( (binary_expression "cVar1 == ' '" identifier == (char_literal "' '" ' character ')) )) (compound_statement "{\n    cVar1 = input_line_pointer[1];\n    input_line_pointer = input_line_pointer + 1;\n  }" { (expression_statement "cVar1 = input_line_pointer[1];" (assignment_expression "cVar1 = input_line_pointer[1]" identifier = (subscript_expression "input_line_pointer[1]" identifier [ number_literal ])) ;) (expression_statement "input_line_pointer = input_line_pointer + 1;" (assignment_expression "input_line_pointer = input_line_pointer + 1" identifier = (binary_expression "input_line_pointer + 1" identifier + number_literal)) ;) })) (if_statement "if (cVar1 == '\"') {\n    filename = (char *)0x0;\n    s_app_file(0);\n  }\n  else {\n    num = get_absolute_expression();\n    filename = demand_copy_C_string(&filename_len);\n    if (filename != (char *)0x0) {\n      demand_empty_rest_of_line();\n      if ((int)num < 1) {\n        filename = (char *)0x0;\n        pcVar2 = (char *)dcgettext(0,"file number less than one",5);\n        as_bad(pcVar2);\n      }\n      else {\n        debug_type = DEBUG_NONE;\n        if (((int)num < (int)files_in_use) && (files[num].filename != (char *)0x0)) {\n          filename = (char *)0x0;\n          pcVar2 = (char *)dcgettext(0,"file number %ld already allocated",5);\n          as_bad(pcVar2,num);\n        }\n        else {\n          get_filenum(filename,num);\n        }\n      }\n    }\n  }" if (parenthesized_expression "(cVar1 == '\"')" ( (binary_expression "cVar1 == '\"'" identifier == (char_literal "'\"'" ' escape_sequence ')) )) (compound_statement "{\n    filename = (char *)0x0;\n    s_app_file(0);\n  }" { (expression_statement "filename = (char *)0x0;" (assignment_expression "filename = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "s_app_file(0);" (call_expression "s_app_file(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }) (else_clause "else {\n    num = get_absolute_expression();\n    filename = demand_copy_C_string(&filename_len);\n    if (filename != (char *)0x0) {\n      demand_empty_rest_of_line();\n      if ((int)num < 1) {\n        filename = (char *)0x0;\n        pcVar2 = (char *)dcgettext(0,"file number less than one",5);\n        as_bad(pcVar2);\n      }\n      else {\n        debug_type = DEBUG_NONE;\n        if (((int)num < (int)files_in_use) && (files[num].filename != (char *)0x0)) {\n          filename = (char *)0x0;\n          pcVar2 = (char *)dcgettext(0,"file number %ld already allocated",5);\n          as_bad(pcVar2,num);\n        }\n        else {\n          get_filenum(filename,num);\n        }\n      }\n    }\n  }" else (compound_statement "{\n    num = get_absolute_expression();\n    filename = demand_copy_C_string(&filename_len);\n    if (filename != (char *)0x0) {\n      demand_empty_rest_of_line();\n      if ((int)num < 1) {\n        filename = (char *)0x0;\n        pcVar2 = (char *)dcgettext(0,"file number less than one",5);\n        as_bad(pcVar2);\n      }\n      else {\n        debug_type = DEBUG_NONE;\n        if (((int)num < (int)files_in_use) && (files[num].filename != (char *)0x0)) {\n          filename = (char *)0x0;\n          pcVar2 = (char *)dcgettext(0,"file number %ld already allocated",5);\n          as_bad(pcVar2,num);\n        }\n        else {\n          get_filenum(filename,num);\n        }\n      }\n    }\n  }" { (expression_statement "num = get_absolute_expression();" (assignment_expression "num = get_absolute_expression()" identifier = (call_expression "get_absolute_expression()" identifier (argument_list "()" ( )))) ;) (expression_statement "filename = demand_copy_C_string(&filename_len);" (assignment_expression "filename = demand_copy_C_string(&filename_len)" identifier = (call_expression "demand_copy_C_string(&filename_len)" identifier (argument_list "(&filename_len)" ( (pointer_expression "&filename_len" & identifier) )))) ;) (if_statement "if (filename != (char *)0x0) {\n      demand_empty_rest_of_line();\n      if ((int)num < 1) {\n        filename = (char *)0x0;\n        pcVar2 = (char *)dcgettext(0,"file number less than one",5);\n        as_bad(pcVar2);\n      }\n      else {\n        debug_type = DEBUG_NONE;\n        if (((int)num < (int)files_in_use) && (files[num].filename != (char *)0x0)) {\n          filename = (char *)0x0;\n          pcVar2 = (char *)dcgettext(0,"file number %ld already allocated",5);\n          as_bad(pcVar2,num);\n        }\n        else {\n          get_filenum(filename,num);\n        }\n      }\n    }" if (parenthesized_expression "(filename != (char *)0x0)" ( (binary_expression "filename != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      demand_empty_rest_of_line();\n      if ((int)num < 1) {\n        filename = (char *)0x0;\n        pcVar2 = (char *)dcgettext(0,"file number less than one",5);\n        as_bad(pcVar2);\n      }\n      else {\n        debug_type = DEBUG_NONE;\n        if (((int)num < (int)files_in_use) && (files[num].filename != (char *)0x0)) {\n          filename = (char *)0x0;\n          pcVar2 = (char *)dcgettext(0,"file number %ld already allocated",5);\n          as_bad(pcVar2,num);\n        }\n        else {\n          get_filenum(filename,num);\n        }\n      }\n    }" { (expression_statement "demand_empty_rest_of_line();" (call_expression "demand_empty_rest_of_line()" identifier (argument_list "()" ( ))) ;) (if_statement "if ((int)num < 1) {\n        filename = (char *)0x0;\n        pcVar2 = (char *)dcgettext(0,"file number less than one",5);\n        as_bad(pcVar2);\n      }\n      else {\n        debug_type = DEBUG_NONE;\n        if (((int)num < (int)files_in_use) && (files[num].filename != (char *)0x0)) {\n          filename = (char *)0x0;\n          pcVar2 = (char *)dcgettext(0,"file number %ld already allocated",5);\n          as_bad(pcVar2,num);\n        }\n        else {\n          get_filenum(filename,num);\n        }\n      }" if (parenthesized_expression "((int)num < 1)" ( (binary_expression "(int)num < 1" (cast_expression "(int)num" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        filename = (char *)0x0;\n        pcVar2 = (char *)dcgettext(0,"file number less than one",5);\n        as_bad(pcVar2);\n      }" { (expression_statement "filename = (char *)0x0;" (assignment_expression "filename = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar2 = (char *)dcgettext(0,"file number less than one",5);" (assignment_expression "pcVar2 = (char *)dcgettext(0,"file number less than one",5)" identifier = (cast_expression "(char *)dcgettext(0,"file number less than one",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"file number less than one",5)" identifier (argument_list "(0,"file number less than one",5)" ( number_literal , (string_literal ""file number less than one"" " string_content ") , number_literal ))))) ;) (expression_statement "as_bad(pcVar2);" (call_expression "as_bad(pcVar2)" identifier (argument_list "(pcVar2)" ( identifier ))) ;) }) (else_clause "else {\n        debug_type = DEBUG_NONE;\n        if (((int)num < (int)files_in_use) && (files[num].filename != (char *)0x0)) {\n          filename = (char *)0x0;\n          pcVar2 = (char *)dcgettext(0,"file number %ld already allocated",5);\n          as_bad(pcVar2,num);\n        }\n        else {\n          get_filenum(filename,num);\n        }\n      }" else (compound_statement "{\n        debug_type = DEBUG_NONE;\n        if (((int)num < (int)files_in_use) && (files[num].filename != (char *)0x0)) {\n          filename = (char *)0x0;\n          pcVar2 = (char *)dcgettext(0,"file number %ld already allocated",5);\n          as_bad(pcVar2,num);\n        }\n        else {\n          get_filenum(filename,num);\n        }\n      }" { (expression_statement "debug_type = DEBUG_NONE;" (assignment_expression "debug_type = DEBUG_NONE" identifier = identifier) ;) (if_statement "if (((int)num < (int)files_in_use) && (files[num].filename != (char *)0x0)) {\n          filename = (char *)0x0;\n          pcVar2 = (char *)dcgettext(0,"file number %ld already allocated",5);\n          as_bad(pcVar2,num);\n        }\n        else {\n          get_filenum(filename,num);\n        }" if (parenthesized_expression "(((int)num < (int)files_in_use) && (files[num].filename != (char *)0x0))" ( (binary_expression "((int)num < (int)files_in_use) && (files[num].filename != (char *)0x0)" (parenthesized_expression "((int)num < (int)files_in_use)" ( (binary_expression "(int)num < (int)files_in_use" (cast_expression "(int)num" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)files_in_use" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(files[num].filename != (char *)0x0)" ( (binary_expression "files[num].filename != (char *)0x0" (field_expression "files[num].filename" (subscript_expression "files[num]" identifier [ identifier ]) . field_identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n          filename = (char *)0x0;\n          pcVar2 = (char *)dcgettext(0,"file number %ld already allocated",5);\n          as_bad(pcVar2,num);\n        }" { (expression_statement "filename = (char *)0x0;" (assignment_expression "filename = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar2 = (char *)dcgettext(0,"file number %ld already allocated",5);" (assignment_expression "pcVar2 = (char *)dcgettext(0,"file number %ld already allocated",5)" identifier = (cast_expression "(char *)dcgettext(0,"file number %ld already allocated",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"file number %ld already allocated",5)" identifier (argument_list "(0,"file number %ld already allocated",5)" ( number_literal , (string_literal ""file number %ld already allocated"" " string_content ") , number_literal ))))) ;) (expression_statement "as_bad(pcVar2,num);" (call_expression "as_bad(pcVar2,num)" identifier (argument_list "(pcVar2,num)" ( identifier , identifier ))) ;) }) (else_clause "else {\n          get_filenum(filename,num);\n        }" else (compound_statement "{\n          get_filenum(filename,num);\n        }" { (expression_statement "get_filenum(filename,num);" (call_expression "get_filenum(filename,num)" identifier (argument_list "(filename,num)" ( identifier , identifier ))) ;) }))) }))) })) }))) (return_statement "return filename;" return identifier ;) })))
(translation_unit "int FUN_0001b3c0(void)\n\n{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 local_10;\n  \n  local_10 = 0x1b3c8;\n  cVar1 = *DAT_0007cf30;\n  if (cVar1 == ' ') {\n    cVar1 = DAT_0007cf30[1];\n    DAT_0007cf30 = DAT_0007cf30 + 1;\n  }\n  if (cVar1 == '\"') {\n    iVar3 = 0;\n    FUN_000319b0(0);\n  }\n  else {\n    iVar2 = FUN_0002bec0();\n    iVar3 = FUN_00031be0(&local_10);\n    if (iVar3 != 0) {\n      FUN_0002cab0();\n      if (iVar2 < 1) {\n        iVar3 = 0;\n        uVar4 = dcgettext(0,"file number less than one",5);\n        FUN_0002a7b0(uVar4);\n      }\n      else {\n        DAT_0007c758 = 1;\n        if ((iVar2 < DAT_0007c7f0) && (*(int *)(DAT_0007c7f4 + iVar2 * 8) != 0)) {\n          iVar3 = 0;\n          uVar4 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002a7b0(uVar4,iVar2);\n        }\n        else {\n          FUN_0001a0b0();\n        }\n      }\n    }\n  }\n  return iVar3;\n}\n\n" (function_definition "int FUN_0001b3c0(void)\n\n{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 local_10;\n  \n  local_10 = 0x1b3c8;\n  cVar1 = *DAT_0007cf30;\n  if (cVar1 == ' ') {\n    cVar1 = DAT_0007cf30[1];\n    DAT_0007cf30 = DAT_0007cf30 + 1;\n  }\n  if (cVar1 == '\"') {\n    iVar3 = 0;\n    FUN_000319b0(0);\n  }\n  else {\n    iVar2 = FUN_0002bec0();\n    iVar3 = FUN_00031be0(&local_10);\n    if (iVar3 != 0) {\n      FUN_0002cab0();\n      if (iVar2 < 1) {\n        iVar3 = 0;\n        uVar4 = dcgettext(0,"file number less than one",5);\n        FUN_0002a7b0(uVar4);\n      }\n      else {\n        DAT_0007c758 = 1;\n        if ((iVar2 < DAT_0007c7f0) && (*(int *)(DAT_0007c7f4 + iVar2 * 8) != 0)) {\n          iVar3 = 0;\n          uVar4 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002a7b0(uVar4,iVar2);\n        }\n        else {\n          FUN_0001a0b0();\n        }\n      }\n    }\n  }\n  return iVar3;\n}" primitive_type (function_declarator "FUN_0001b3c0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 local_10;\n  \n  local_10 = 0x1b3c8;\n  cVar1 = *DAT_0007cf30;\n  if (cVar1 == ' ') {\n    cVar1 = DAT_0007cf30[1];\n    DAT_0007cf30 = DAT_0007cf30 + 1;\n  }\n  if (cVar1 == '\"') {\n    iVar3 = 0;\n    FUN_000319b0(0);\n  }\n  else {\n    iVar2 = FUN_0002bec0();\n    iVar3 = FUN_00031be0(&local_10);\n    if (iVar3 != 0) {\n      FUN_0002cab0();\n      if (iVar2 < 1) {\n        iVar3 = 0;\n        uVar4 = dcgettext(0,"file number less than one",5);\n        FUN_0002a7b0(uVar4);\n      }\n      else {\n        DAT_0007c758 = 1;\n        if ((iVar2 < DAT_0007c7f0) && (*(int *)(DAT_0007c7f4 + iVar2 * 8) != 0)) {\n          iVar3 = 0;\n          uVar4 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002a7b0(uVar4,iVar2);\n        }\n        else {\n          FUN_0001a0b0();\n        }\n      }\n    }\n  }\n  return iVar3;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined4 local_10;" type_identifier identifier ;) (expression_statement "local_10 = 0x1b3c8;" (assignment_expression "local_10 = 0x1b3c8" identifier = number_literal) ;) (expression_statement "cVar1 = *DAT_0007cf30;" (assignment_expression "cVar1 = *DAT_0007cf30" identifier = (pointer_expression "*DAT_0007cf30" * identifier)) ;) (if_statement "if (cVar1 == ' ') {\n    cVar1 = DAT_0007cf30[1];\n    DAT_0007cf30 = DAT_0007cf30 + 1;\n  }" if (parenthesized_expression "(cVar1 == ' ')" ( (binary_expression "cVar1 == ' '" identifier == (char_literal "' '" ' character ')) )) (compound_statement "{\n    cVar1 = DAT_0007cf30[1];\n    DAT_0007cf30 = DAT_0007cf30 + 1;\n  }" { (expression_statement "cVar1 = DAT_0007cf30[1];" (assignment_expression "cVar1 = DAT_0007cf30[1]" identifier = (subscript_expression "DAT_0007cf30[1]" identifier [ number_literal ])) ;) (expression_statement "DAT_0007cf30 = DAT_0007cf30 + 1;" (assignment_expression "DAT_0007cf30 = DAT_0007cf30 + 1" identifier = (binary_expression "DAT_0007cf30 + 1" identifier + number_literal)) ;) })) (if_statement "if (cVar1 == '\"') {\n    iVar3 = 0;\n    FUN_000319b0(0);\n  }\n  else {\n    iVar2 = FUN_0002bec0();\n    iVar3 = FUN_00031be0(&local_10);\n    if (iVar3 != 0) {\n      FUN_0002cab0();\n      if (iVar2 < 1) {\n        iVar3 = 0;\n        uVar4 = dcgettext(0,"file number less than one",5);\n        FUN_0002a7b0(uVar4);\n      }\n      else {\n        DAT_0007c758 = 1;\n        if ((iVar2 < DAT_0007c7f0) && (*(int *)(DAT_0007c7f4 + iVar2 * 8) != 0)) {\n          iVar3 = 0;\n          uVar4 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002a7b0(uVar4,iVar2);\n        }\n        else {\n          FUN_0001a0b0();\n        }\n      }\n    }\n  }" if (parenthesized_expression "(cVar1 == '\"')" ( (binary_expression "cVar1 == '\"'" identifier == (char_literal "'\"'" ' escape_sequence ')) )) (compound_statement "{\n    iVar3 = 0;\n    FUN_000319b0(0);\n  }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "FUN_000319b0(0);" (call_expression "FUN_000319b0(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }) (else_clause "else {\n    iVar2 = FUN_0002bec0();\n    iVar3 = FUN_00031be0(&local_10);\n    if (iVar3 != 0) {\n      FUN_0002cab0();\n      if (iVar2 < 1) {\n        iVar3 = 0;\n        uVar4 = dcgettext(0,"file number less than one",5);\n        FUN_0002a7b0(uVar4);\n      }\n      else {\n        DAT_0007c758 = 1;\n        if ((iVar2 < DAT_0007c7f0) && (*(int *)(DAT_0007c7f4 + iVar2 * 8) != 0)) {\n          iVar3 = 0;\n          uVar4 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002a7b0(uVar4,iVar2);\n        }\n        else {\n          FUN_0001a0b0();\n        }\n      }\n    }\n  }" else (compound_statement "{\n    iVar2 = FUN_0002bec0();\n    iVar3 = FUN_00031be0(&local_10);\n    if (iVar3 != 0) {\n      FUN_0002cab0();\n      if (iVar2 < 1) {\n        iVar3 = 0;\n        uVar4 = dcgettext(0,"file number less than one",5);\n        FUN_0002a7b0(uVar4);\n      }\n      else {\n        DAT_0007c758 = 1;\n        if ((iVar2 < DAT_0007c7f0) && (*(int *)(DAT_0007c7f4 + iVar2 * 8) != 0)) {\n          iVar3 = 0;\n          uVar4 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002a7b0(uVar4,iVar2);\n        }\n        else {\n          FUN_0001a0b0();\n        }\n      }\n    }\n  }" { (expression_statement "iVar2 = FUN_0002bec0();" (assignment_expression "iVar2 = FUN_0002bec0()" identifier = (call_expression "FUN_0002bec0()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar3 = FUN_00031be0(&local_10);" (assignment_expression "iVar3 = FUN_00031be0(&local_10)" identifier = (call_expression "FUN_00031be0(&local_10)" identifier (argument_list "(&local_10)" ( (pointer_expression "&local_10" & identifier) )))) ;) (if_statement "if (iVar3 != 0) {\n      FUN_0002cab0();\n      if (iVar2 < 1) {\n        iVar3 = 0;\n        uVar4 = dcgettext(0,"file number less than one",5);\n        FUN_0002a7b0(uVar4);\n      }\n      else {\n        DAT_0007c758 = 1;\n        if ((iVar2 < DAT_0007c7f0) && (*(int *)(DAT_0007c7f4 + iVar2 * 8) != 0)) {\n          iVar3 = 0;\n          uVar4 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002a7b0(uVar4,iVar2);\n        }\n        else {\n          FUN_0001a0b0();\n        }\n      }\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_0002cab0();\n      if (iVar2 < 1) {\n        iVar3 = 0;\n        uVar4 = dcgettext(0,"file number less than one",5);\n        FUN_0002a7b0(uVar4);\n      }\n      else {\n        DAT_0007c758 = 1;\n        if ((iVar2 < DAT_0007c7f0) && (*(int *)(DAT_0007c7f4 + iVar2 * 8) != 0)) {\n          iVar3 = 0;\n          uVar4 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002a7b0(uVar4,iVar2);\n        }\n        else {\n          FUN_0001a0b0();\n        }\n      }\n    }" { (expression_statement "FUN_0002cab0();" (call_expression "FUN_0002cab0()" identifier (argument_list "()" ( ))) ;) (if_statement "if (iVar2 < 1) {\n        iVar3 = 0;\n        uVar4 = dcgettext(0,"file number less than one",5);\n        FUN_0002a7b0(uVar4);\n      }\n      else {\n        DAT_0007c758 = 1;\n        if ((iVar2 < DAT_0007c7f0) && (*(int *)(DAT_0007c7f4 + iVar2 * 8) != 0)) {\n          iVar3 = 0;\n          uVar4 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002a7b0(uVar4,iVar2);\n        }\n        else {\n          FUN_0001a0b0();\n        }\n      }" if (parenthesized_expression "(iVar2 < 1)" ( (binary_expression "iVar2 < 1" identifier < number_literal) )) (compound_statement "{\n        iVar3 = 0;\n        uVar4 = dcgettext(0,"file number less than one",5);\n        FUN_0002a7b0(uVar4);\n      }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "uVar4 = dcgettext(0,"file number less than one",5);" (assignment_expression "uVar4 = dcgettext(0,"file number less than one",5)" identifier = (call_expression "dcgettext(0,"file number less than one",5)" identifier (argument_list "(0,"file number less than one",5)" ( number_literal , (string_literal ""file number less than one"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002a7b0(uVar4);" (call_expression "FUN_0002a7b0(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) }) (else_clause "else {\n        DAT_0007c758 = 1;\n        if ((iVar2 < DAT_0007c7f0) && (*(int *)(DAT_0007c7f4 + iVar2 * 8) != 0)) {\n          iVar3 = 0;\n          uVar4 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002a7b0(uVar4,iVar2);\n        }\n        else {\n          FUN_0001a0b0();\n        }\n      }" else (compound_statement "{\n        DAT_0007c758 = 1;\n        if ((iVar2 < DAT_0007c7f0) && (*(int *)(DAT_0007c7f4 + iVar2 * 8) != 0)) {\n          iVar3 = 0;\n          uVar4 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002a7b0(uVar4,iVar2);\n        }\n        else {\n          FUN_0001a0b0();\n        }\n      }" { (expression_statement "DAT_0007c758 = 1;" (assignment_expression "DAT_0007c758 = 1" identifier = number_literal) ;) (if_statement "if ((iVar2 < DAT_0007c7f0) && (*(int *)(DAT_0007c7f4 + iVar2 * 8) != 0)) {\n          iVar3 = 0;\n          uVar4 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002a7b0(uVar4,iVar2);\n        }\n        else {\n          FUN_0001a0b0();\n        }" if (parenthesized_expression "((iVar2 < DAT_0007c7f0) && (*(int *)(DAT_0007c7f4 + iVar2 * 8) != 0))" ( (binary_expression "(iVar2 < DAT_0007c7f0) && (*(int *)(DAT_0007c7f4 + iVar2 * 8) != 0)" (parenthesized_expression "(iVar2 < DAT_0007c7f0)" ( (binary_expression "iVar2 < DAT_0007c7f0" identifier < identifier) )) && (parenthesized_expression "(*(int *)(DAT_0007c7f4 + iVar2 * 8) != 0)" ( (binary_expression "*(int *)(DAT_0007c7f4 + iVar2 * 8) != 0" (pointer_expression "*(int *)(DAT_0007c7f4 + iVar2 * 8)" * (cast_expression "(int *)(DAT_0007c7f4 + iVar2 * 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0007c7f4 + iVar2 * 8)" ( (binary_expression "DAT_0007c7f4 + iVar2 * 8" identifier + (binary_expression "iVar2 * 8" identifier * number_literal)) )))) != number_literal) ))) )) (compound_statement "{\n          iVar3 = 0;\n          uVar4 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002a7b0(uVar4,iVar2);\n        }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "uVar4 = dcgettext(0,"file number %ld already allocated",5);" (assignment_expression "uVar4 = dcgettext(0,"file number %ld already allocated",5)" identifier = (call_expression "dcgettext(0,"file number %ld already allocated",5)" identifier (argument_list "(0,"file number %ld already allocated",5)" ( number_literal , (string_literal ""file number %ld already allocated"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002a7b0(uVar4,iVar2);" (call_expression "FUN_0002a7b0(uVar4,iVar2)" identifier (argument_list "(uVar4,iVar2)" ( identifier , identifier ))) ;) }) (else_clause "else {\n          FUN_0001a0b0();\n        }" else (compound_statement "{\n          FUN_0001a0b0();\n        }" { (expression_statement "FUN_0001a0b0();" (call_expression "FUN_0001a0b0()" identifier (argument_list "()" ( ))) ;) }))) }))) })) }))) (return_statement "return iVar3;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) }))) })) }))) (return_statement return IDENT ;) })))
(function_definition "int FUN_0001b3c0(void)\n\n{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 local_10;\n  \n  local_10 = 0x1b3c8;\n  cVar1 = *DAT_0007cf30;\n  if (cVar1 == ' ') {\n    cVar1 = DAT_0007cf30[1];\n    DAT_0007cf30 = DAT_0007cf30 + 1;\n  }\n  if (cVar1 == '\"') {\n    iVar3 = 0;\n    FUN_000319b0(0);\n  }\n  else {\n    iVar2 = FUN_0002bec0();\n    iVar3 = FUN_00031be0(&local_10);\n    if (iVar3 != 0) {\n      FUN_0002cab0();\n      if (iVar2 < 1) {\n        iVar3 = 0;\n        uVar4 = dcgettext(0,"file number less than one",5);\n        FUN_0002a7b0(uVar4);\n      }\n      else {\n        DAT_0007c758 = 1;\n        if ((iVar2 < DAT_0007c7f0) && (*(int *)(DAT_0007c7f4 + iVar2 * 8) != 0)) {\n          iVar3 = 0;\n          uVar4 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002a7b0(uVar4,iVar2);\n        }\n        else {\n          FUN_0001a0b0();\n        }\n      }\n    }\n  }\n  return iVar3;\n}" (primitive_type "int") (function_declarator "FUN_0001b3c0(void)" (identifier "FUN_0001b3c0") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 local_10;\n  \n  local_10 = 0x1b3c8;\n  cVar1 = *DAT_0007cf30;\n  if (cVar1 == ' ') {\n    cVar1 = DAT_0007cf30[1];\n    DAT_0007cf30 = DAT_0007cf30 + 1;\n  }\n  if (cVar1 == '\"') {\n    iVar3 = 0;\n    FUN_000319b0(0);\n  }\n  else {\n    iVar2 = FUN_0002bec0();\n    iVar3 = FUN_00031be0(&local_10);\n    if (iVar3 != 0) {\n      FUN_0002cab0();\n      if (iVar2 < 1) {\n        iVar3 = 0;\n        uVar4 = dcgettext(0,"file number less than one",5);\n        FUN_0002a7b0(uVar4);\n      }\n      else {\n        DAT_0007c758 = 1;\n        if ((iVar2 < DAT_0007c7f0) && (*(int *)(DAT_0007c7f4 + iVar2 * 8) != 0)) {\n          iVar3 = 0;\n          uVar4 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002a7b0(uVar4,iVar2);\n        }\n        else {\n          FUN_0001a0b0();\n        }\n      }\n    }\n  }\n  return iVar3;\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "undefined4 local_10;" (type_identifier "undefined4") (identifier "local_10") (; ";")) (expression_statement "local_10 = 0x1b3c8;" (assignment_expression "local_10 = 0x1b3c8" (identifier "local_10") (= "=") (number_literal "0x1b3c8")) (; ";")) (expression_statement "cVar1 = *DAT_0007cf30;" (assignment_expression "cVar1 = *DAT_0007cf30" (identifier "cVar1") (= "=") (pointer_expression "*DAT_0007cf30" (* "*") (identifier "DAT_0007cf30"))) (; ";")) (if_statement "if (cVar1 == ' ') {\n    cVar1 = DAT_0007cf30[1];\n    DAT_0007cf30 = DAT_0007cf30 + 1;\n  }" (if "if") (parenthesized_expression "(cVar1 == ' ')" (( "(") (binary_expression "cVar1 == ' '" (identifier "cVar1") (== "==") (char_literal "' '" (' "'") (character " ") (' "'"))) () ")")) (compound_statement "{\n    cVar1 = DAT_0007cf30[1];\n    DAT_0007cf30 = DAT_0007cf30 + 1;\n  }" ({ "{") (expression_statement "cVar1 = DAT_0007cf30[1];" (assignment_expression "cVar1 = DAT_0007cf30[1]" (identifier "cVar1") (= "=") (subscript_expression "DAT_0007cf30[1]" (identifier "DAT_0007cf30") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "DAT_0007cf30 = DAT_0007cf30 + 1;" (assignment_expression "DAT_0007cf30 = DAT_0007cf30 + 1" (identifier "DAT_0007cf30") (= "=") (binary_expression "DAT_0007cf30 + 1" (identifier "DAT_0007cf30") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if (cVar1 == '\"') {\n    iVar3 = 0;\n    FUN_000319b0(0);\n  }\n  else {\n    iVar2 = FUN_0002bec0();\n    iVar3 = FUN_00031be0(&local_10);\n    if (iVar3 != 0) {\n      FUN_0002cab0();\n      if (iVar2 < 1) {\n        iVar3 = 0;\n        uVar4 = dcgettext(0,"file number less than one",5);\n        FUN_0002a7b0(uVar4);\n      }\n      else {\n        DAT_0007c758 = 1;\n        if ((iVar2 < DAT_0007c7f0) && (*(int *)(DAT_0007c7f4 + iVar2 * 8) != 0)) {\n          iVar3 = 0;\n          uVar4 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002a7b0(uVar4,iVar2);\n        }\n        else {\n          FUN_0001a0b0();\n        }\n      }\n    }\n  }" (if "if") (parenthesized_expression "(cVar1 == '\"')" (( "(") (binary_expression "cVar1 == '\"'" (identifier "cVar1") (== "==") (char_literal "'\"'" (' "'") (escape_sequence "\"") (' "'"))) () ")")) (compound_statement "{\n    iVar3 = 0;\n    FUN_000319b0(0);\n  }" ({ "{") (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_000319b0(0);" (call_expression "FUN_000319b0(0)" (identifier "FUN_000319b0") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (} "}")) (else_clause "else {\n    iVar2 = FUN_0002bec0();\n    iVar3 = FUN_00031be0(&local_10);\n    if (iVar3 != 0) {\n      FUN_0002cab0();\n      if (iVar2 < 1) {\n        iVar3 = 0;\n        uVar4 = dcgettext(0,"file number less than one",5);\n        FUN_0002a7b0(uVar4);\n      }\n      else {\n        DAT_0007c758 = 1;\n        if ((iVar2 < DAT_0007c7f0) && (*(int *)(DAT_0007c7f4 + iVar2 * 8) != 0)) {\n          iVar3 = 0;\n          uVar4 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002a7b0(uVar4,iVar2);\n        }\n        else {\n          FUN_0001a0b0();\n        }\n      }\n    }\n  }" (else "else") (compound_statement "{\n    iVar2 = FUN_0002bec0();\n    iVar3 = FUN_00031be0(&local_10);\n    if (iVar3 != 0) {\n      FUN_0002cab0();\n      if (iVar2 < 1) {\n        iVar3 = 0;\n        uVar4 = dcgettext(0,"file number less than one",5);\n        FUN_0002a7b0(uVar4);\n      }\n      else {\n        DAT_0007c758 = 1;\n        if ((iVar2 < DAT_0007c7f0) && (*(int *)(DAT_0007c7f4 + iVar2 * 8) != 0)) {\n          iVar3 = 0;\n          uVar4 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002a7b0(uVar4,iVar2);\n        }\n        else {\n          FUN_0001a0b0();\n        }\n      }\n    }\n  }" ({ "{") (expression_statement "iVar2 = FUN_0002bec0();" (assignment_expression "iVar2 = FUN_0002bec0()" (identifier "iVar2") (= "=") (call_expression "FUN_0002bec0()" (identifier "FUN_0002bec0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar3 = FUN_00031be0(&local_10);" (assignment_expression "iVar3 = FUN_00031be0(&local_10)" (identifier "iVar3") (= "=") (call_expression "FUN_00031be0(&local_10)" (identifier "FUN_00031be0") (argument_list "(&local_10)" (( "(") (pointer_expression "&local_10" (& "&") (identifier "local_10")) () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n      FUN_0002cab0();\n      if (iVar2 < 1) {\n        iVar3 = 0;\n        uVar4 = dcgettext(0,"file number less than one",5);\n        FUN_0002a7b0(uVar4);\n      }\n      else {\n        DAT_0007c758 = 1;\n        if ((iVar2 < DAT_0007c7f0) && (*(int *)(DAT_0007c7f4 + iVar2 * 8) != 0)) {\n          iVar3 = 0;\n          uVar4 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002a7b0(uVar4,iVar2);\n        }\n        else {\n          FUN_0001a0b0();\n        }\n      }\n    }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_0002cab0();\n      if (iVar2 < 1) {\n        iVar3 = 0;\n        uVar4 = dcgettext(0,"file number less than one",5);\n        FUN_0002a7b0(uVar4);\n      }\n      else {\n        DAT_0007c758 = 1;\n        if ((iVar2 < DAT_0007c7f0) && (*(int *)(DAT_0007c7f4 + iVar2 * 8) != 0)) {\n          iVar3 = 0;\n          uVar4 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002a7b0(uVar4,iVar2);\n        }\n        else {\n          FUN_0001a0b0();\n        }\n      }\n    }" ({ "{") (expression_statement "FUN_0002cab0();" (call_expression "FUN_0002cab0()" (identifier "FUN_0002cab0") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (iVar2 < 1) {\n        iVar3 = 0;\n        uVar4 = dcgettext(0,"file number less than one",5);\n        FUN_0002a7b0(uVar4);\n      }\n      else {\n        DAT_0007c758 = 1;\n        if ((iVar2 < DAT_0007c7f0) && (*(int *)(DAT_0007c7f4 + iVar2 * 8) != 0)) {\n          iVar3 = 0;\n          uVar4 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002a7b0(uVar4,iVar2);\n        }\n        else {\n          FUN_0001a0b0();\n        }\n      }" (if "if") (parenthesized_expression "(iVar2 < 1)" (( "(") (binary_expression "iVar2 < 1" (identifier "iVar2") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n        iVar3 = 0;\n        uVar4 = dcgettext(0,"file number less than one",5);\n        FUN_0002a7b0(uVar4);\n      }" ({ "{") (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar4 = dcgettext(0,"file number less than one",5);" (assignment_expression "uVar4 = dcgettext(0,"file number less than one",5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,"file number less than one",5)" (identifier "dcgettext") (argument_list "(0,"file number less than one",5)" (( "(") (number_literal "0") (, ",") (string_literal ""file number less than one"" (" """) (string_content "file number less than one") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002a7b0(uVar4);" (call_expression "FUN_0002a7b0(uVar4)" (identifier "FUN_0002a7b0") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")"))) (; ";")) (} "}")) (else_clause "else {\n        DAT_0007c758 = 1;\n        if ((iVar2 < DAT_0007c7f0) && (*(int *)(DAT_0007c7f4 + iVar2 * 8) != 0)) {\n          iVar3 = 0;\n          uVar4 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002a7b0(uVar4,iVar2);\n        }\n        else {\n          FUN_0001a0b0();\n        }\n      }" (else "else") (compound_statement "{\n        DAT_0007c758 = 1;\n        if ((iVar2 < DAT_0007c7f0) && (*(int *)(DAT_0007c7f4 + iVar2 * 8) != 0)) {\n          iVar3 = 0;\n          uVar4 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002a7b0(uVar4,iVar2);\n        }\n        else {\n          FUN_0001a0b0();\n        }\n      }" ({ "{") (expression_statement "DAT_0007c758 = 1;" (assignment_expression "DAT_0007c758 = 1" (identifier "DAT_0007c758") (= "=") (number_literal "1")) (; ";")) (if_statement "if ((iVar2 < DAT_0007c7f0) && (*(int *)(DAT_0007c7f4 + iVar2 * 8) != 0)) {\n          iVar3 = 0;\n          uVar4 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002a7b0(uVar4,iVar2);\n        }\n        else {\n          FUN_0001a0b0();\n        }" (if "if") (parenthesized_expression "((iVar2 < DAT_0007c7f0) && (*(int *)(DAT_0007c7f4 + iVar2 * 8) != 0))" (( "(") (binary_expression "(iVar2 < DAT_0007c7f0) && (*(int *)(DAT_0007c7f4 + iVar2 * 8) != 0)" (parenthesized_expression "(iVar2 < DAT_0007c7f0)" (( "(") (binary_expression "iVar2 < DAT_0007c7f0" (identifier "iVar2") (< "<") (identifier "DAT_0007c7f0")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(DAT_0007c7f4 + iVar2 * 8) != 0)" (( "(") (binary_expression "*(int *)(DAT_0007c7f4 + iVar2 * 8) != 0" (pointer_expression "*(int *)(DAT_0007c7f4 + iVar2 * 8)" (* "*") (cast_expression "(int *)(DAT_0007c7f4 + iVar2 * 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0007c7f4 + iVar2 * 8)" (( "(") (binary_expression "DAT_0007c7f4 + iVar2 * 8" (identifier "DAT_0007c7f4") (+ "+") (binary_expression "iVar2 * 8" (identifier "iVar2") (* "*") (number_literal "8"))) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          iVar3 = 0;\n          uVar4 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002a7b0(uVar4,iVar2);\n        }" ({ "{") (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar4 = dcgettext(0,"file number %ld already allocated",5);" (assignment_expression "uVar4 = dcgettext(0,"file number %ld already allocated",5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,"file number %ld already allocated",5)" (identifier "dcgettext") (argument_list "(0,"file number %ld already allocated",5)" (( "(") (number_literal "0") (, ",") (string_literal ""file number %ld already allocated"" (" """) (string_content "file number %ld already allocated") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002a7b0(uVar4,iVar2);" (call_expression "FUN_0002a7b0(uVar4,iVar2)" (identifier "FUN_0002a7b0") (argument_list "(uVar4,iVar2)" (( "(") (identifier "uVar4") (, ",") (identifier "iVar2") () ")"))) (; ";")) (} "}")) (else_clause "else {\n          FUN_0001a0b0();\n        }" (else "else") (compound_statement "{\n          FUN_0001a0b0();\n        }" ({ "{") (expression_statement "FUN_0001a0b0();" (call_expression "FUN_0001a0b0()" (identifier "FUN_0001a0b0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (} "}")))) (} "}"))) (} "}")))) (return_statement "return iVar3;" (return "return") (identifier "iVar3") (; ";")) (} "}")))

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

char * function_1(void)

{
  char var_1;
  type_1 num;
  char *var_6;
  char *pcVar2;
  int filename_len;
  
  filename_len = 0x1b3c8;
  var_1 = *var_2;
  if (var_1 == ' ') {
    var_1 = var_2[1];
    var_2 = var_2 + 1;
  }
  if (var_1 == '\"') {
    var_6 = (char *)0x0;
    var_3(0);
  }
  else {
    num = var_4();
    var_6 = var_5(&filename_len);
    if (var_6 != (char *)0x0) {
      var_7();
      if ((int)num < 1) {
        var_6 = (char *)0x0;
        pcVar2 = (char *)var_8(0,"file number less than one",5);
        var_9(pcVar2);
      }
      else {
        debug_type = DEBUG_NONE;
        if (((int)num < (int)files_in_use) && (files[num].var_6 != (char *)0x0)) {
          var_6 = (char *)0x0;
          pcVar2 = (char *)var_8(0,"file number %ld already allocated",5);
          var_9(pcVar2,num);
        }
        else {
          var_10(var_6,num);
        }
      }
    }
  }
  return var_6;
}


(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: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (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))) (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: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list)))))))))))))) (return_statement (identifier)))))

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

int MASKED(void)

{
  char cVar1;
  int iVar2;
  int iVar3;
  undefined4 uVar4;
  undefined4 local_10;
  
  local_10 = 0x1b3c8;
  cVar1 = *DAT_0007cf30;
  if (cVar1 == ' ') {
    cVar1 = DAT_0007cf30[1];
    DAT_0007cf30 = DAT_0007cf30 + 1;
  }
  if (cVar1 == '\"') {
    iVar3 = 0;
    FUN_000319b0(0);
  }
  else {
    iVar2 = FUN_0002bec0();
    iVar3 = FUN_00031be0(&local_10);
    if (iVar3 != 0) {
      FUN_0002cab0();
      if (iVar2 < 1) {
        iVar3 = 0;
        uVar4 = dcgettext(0,"file number less than one",5);
        FUN_0002a7b0(uVar4);
      }
      else {
        DAT_0007c758 = 1;
        if ((iVar2 < DAT_0007c7f0) && (*(int *)(DAT_0007c7f4 + iVar2 * 8) != 0)) {
          iVar3 = 0;
          uVar4 = dcgettext(0,"file number %ld already allocated",5);
          FUN_0002a7b0(uVar4,iVar2);
        }
        else {
          FUN_0001a0b0();
        }
      }
    }
  }
  return iVar3;
}

