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

char * dwarf2_directive_filename(void)

{
  int iVar1;
  char cVar2;
  uint num;
  char *filename;
  char *pcVar3;
  int iVar4;
  offsetT oVar5;
  int filename_len;
  undefined4 uStack_14;
  
  uStack_14 = 0x1b2f9;
  cVar2 = *input_line_pointer;
  if (cVar2 == ' ') {
    cVar2 = input_line_pointer[1];
    input_line_pointer = input_line_pointer + 1;
  }
  if (cVar2 == '\"') {
    filename = (char *)0x0;
    s_app_file(0);
  }
  else {
    oVar5 = get_absolute_expression();
    iVar4 = (int)((ulonglong)oVar5 >> 0x20);
    num = (uint)oVar5;
    filename = demand_copy_C_string(&filename_len);
    if (filename != (char *)0x0) {
      demand_empty_rest_of_line();
      if (-iVar4 < (int)(uint)(num != 0)) {
        debug_type = DEBUG_NONE;
        iVar1 = iVar4 - ((int)files_in_use >> 0x1f);
        if (((SBORROW4(iVar4,(int)files_in_use >> 0x1f) !=
             SBORROW4(iVar1,(uint)(num < files_in_use))) ==
             (int)(iVar1 - (uint)(num < files_in_use)) < 0) || (files[num].filename == (char *)0x0))
        {
          get_filenum(filename,num);
        }
        else {
          filename = (char *)0x0;
          pcVar3 = (char *)dcgettext(0,"file number %ld already allocated",5);
          as_bad(pcVar3,num);
        }
      }
      else {
        filename = (char *)0x0;
        pcVar3 = (char *)dcgettext(0,"file number less than one",5);
        as_bad(pcVar3);
      }
    }
  }
  return filename;
}



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

int FUN_0001b2f0(void)

{
  int iVar1;
  char cVar2;
  uint uVar3;
  int iVar4;
  undefined4 uVar5;
  int iVar6;
  undefined8 uVar7;
  undefined1 local_20 [12];
  undefined4 uStack_14;
  
  uStack_14 = 0x1b2f9;
  cVar2 = *DAT_00089978;
  if (cVar2 == ' ') {
    cVar2 = DAT_00089978[1];
    DAT_00089978 = DAT_00089978 + 1;
  }
  if (cVar2 == '\"') {
    iVar4 = 0;
    FUN_00033ac0(0);
  }
  else {
    uVar7 = FUN_0002d860();
    iVar6 = (int)((ulonglong)uVar7 >> 0x20);
    uVar3 = (uint)uVar7;
    iVar4 = FUN_00033cf0(local_20);
    if (iVar4 != 0) {
      FUN_0002e4e0();
      if (-iVar6 < (int)(uint)(uVar3 != 0)) {
        DAT_000888d8 = 1;
        iVar1 = iVar6 - ((int)DAT_0008896c >> 0x1f);
        if (((SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f) !=
             SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c))) ==
             (int)(iVar1 - (uint)(uVar3 < DAT_0008896c)) < 0) ||
           (*(int *)(DAT_00088970 + uVar3 * 8) == 0)) {
          FUN_00019ec0();
        }
        else {
          iVar4 = 0;
          uVar5 = dcgettext(0,"file number %ld already allocated",5);
          FUN_0002bd60(uVar5,uVar3);
        }
      }
      else {
        iVar4 = 0;
        uVar5 = dcgettext(0,"file number less than one",5);
        FUN_0002bd60(uVar5);
      }
    }
  }
  return iVar4;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00016000
ADD EBX,0x64d07
SUB ESP,0x1c
LEA ECX,[EBX + 0x9978]
MOV EDX,dword ptr [ECX]
MOVZX EAX,byte ptr [EDX]
CMP AL,0x20
JNZ 0x0001b31a
LEA EAX,[EDX + 0x1]
MOV dword ptr [ECX],EAX
MOVZX EAX,byte ptr [EDX + 0x1]
CMP AL,0x22
JZ 0x0001b3b8
CALL 0x0002d860
SUB ESP,0xc
MOV ESI,EAX
LEA EAX,[ESP + 0x18]
MOV EDI,EDX
PUSH EAX
CALL 0x00033cf0
ADD ESP,0x10
MOV EBP,EAX
TEST EAX,EAX
JZ 0x0001b383
CALL 0x0002e4e0
XOR EAX,EAX
CMP EAX,ESI
SBB EAX,EDI
JGE 0x0001b3d0
LEA EAX,[EBX + 0x88d8]
MOV ECX,dword ptr [EBX + 0x896c]
MOV dword ptr [EAX],0x1
MOV EAX,ECX
CDQ
CMP ESI,ECX
SBB EDI,EDX
JGE 0x0001b37a
MOV EAX,dword ptr [EBX + 0x8970]
MOV EDI,dword ptr [EAX + ESI*0x8]
TEST EDI,EDI
JNZ 0x0001b390
MOV EDX,ESI
MOV EAX,EBP
CALL 0x00019ec0
ADD ESP,0x1c
MOV EAX,EBP
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x4
LEA EAX,[EBX + 0xfffdd304]
XOR EBP,EBP
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
POP EDX
POP ECX
PUSH ESI
PUSH EAX
CALL 0x0002bd60
ADD ESP,0x10
JMP 0x0001b383
SUB ESP,0xc
XOR EBP,EBP
PUSH 0x0
CALL 0x00033ac0
ADD ESP,0x10
JMP 0x0001b383
SUB ESP,0x4
LEA EAX,[EBX + 0xfffdd1bd]
XOR EBP,EBP
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
MOV dword ptr [ESP],EAX
CALL 0x0002bd60
ADD ESP,0x10
JMP 0x0001b383
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint FUN_0001b2f0(void)\n\n{\n  int iVar1;\n  char cVar2;\n  uint uVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined8 uVar7;\n  undefined1 local_20 [12];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1b2f9;\n  cVar2 = *DAT_00089978;\n  if (cVar2 == ' ') {\n    cVar2 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }\n  if (cVar2 == '\"') {\n    iVar4 = 0;\n    FUN_00033ac0(0);\n  }\n  else {\n    uVar7 = FUN_0002d860();\n    iVar6 = (int)((ulonglong)uVar7 >> 0x20);\n    uVar3 = (uint)uVar7;\n    iVar4 = FUN_00033cf0(local_20);\n    if (iVar4 != 0) {\n      FUN_0002e4e0();\n      if (-iVar6 < (int)(uint)(uVar3 != 0)) {\n        DAT_000888d8 = 1;\n        iVar1 = iVar6 - ((int)DAT_0008896c >> 0x1f);\n        if (((SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c))) ==\n             (int)(iVar1 - (uint)(uVar3 < DAT_0008896c)) < 0) ||\n           (*(int *)(DAT_00088970 + uVar3 * 8) == 0)) {\n          FUN_00019ec0();\n        }\n        else {\n          iVar4 = 0;\n          uVar5 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002bd60(uVar5,uVar3);\n        }\n      }\n      else {\n        iVar4 = 0;\n        uVar5 = dcgettext(0,"file number less than one",5);\n        FUN_0002bd60(uVar5);\n      }\n    }\n  }\n  return iVar4;\n}\n\n" comment (function_definition "int FUN_0001b2f0(void)\n\n{\n  int iVar1;\n  char cVar2;\n  uint uVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined8 uVar7;\n  undefined1 local_20 [12];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1b2f9;\n  cVar2 = *DAT_00089978;\n  if (cVar2 == ' ') {\n    cVar2 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }\n  if (cVar2 == '\"') {\n    iVar4 = 0;\n    FUN_00033ac0(0);\n  }\n  else {\n    uVar7 = FUN_0002d860();\n    iVar6 = (int)((ulonglong)uVar7 >> 0x20);\n    uVar3 = (uint)uVar7;\n    iVar4 = FUN_00033cf0(local_20);\n    if (iVar4 != 0) {\n      FUN_0002e4e0();\n      if (-iVar6 < (int)(uint)(uVar3 != 0)) {\n        DAT_000888d8 = 1;\n        iVar1 = iVar6 - ((int)DAT_0008896c >> 0x1f);\n        if (((SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c))) ==\n             (int)(iVar1 - (uint)(uVar3 < DAT_0008896c)) < 0) ||\n           (*(int *)(DAT_00088970 + uVar3 * 8) == 0)) {\n          FUN_00019ec0();\n        }\n        else {\n          iVar4 = 0;\n          uVar5 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002bd60(uVar5,uVar3);\n        }\n      }\n      else {\n        iVar4 = 0;\n        uVar5 = dcgettext(0,"file number less than one",5);\n        FUN_0002bd60(uVar5);\n      }\n    }\n  }\n  return iVar4;\n}" primitive_type (function_declarator "FUN_0001b2f0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int iVar1;\n  char cVar2;\n  uint uVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined8 uVar7;\n  undefined1 local_20 [12];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1b2f9;\n  cVar2 = *DAT_00089978;\n  if (cVar2 == ' ') {\n    cVar2 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }\n  if (cVar2 == '\"') {\n    iVar4 = 0;\n    FUN_00033ac0(0);\n  }\n  else {\n    uVar7 = FUN_0002d860();\n    iVar6 = (int)((ulonglong)uVar7 >> 0x20);\n    uVar3 = (uint)uVar7;\n    iVar4 = FUN_00033cf0(local_20);\n    if (iVar4 != 0) {\n      FUN_0002e4e0();\n      if (-iVar6 < (int)(uint)(uVar3 != 0)) {\n        DAT_000888d8 = 1;\n        iVar1 = iVar6 - ((int)DAT_0008896c >> 0x1f);\n        if (((SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c))) ==\n             (int)(iVar1 - (uint)(uVar3 < DAT_0008896c)) < 0) ||\n           (*(int *)(DAT_00088970 + uVar3 * 8) == 0)) {\n          FUN_00019ec0();\n        }\n        else {\n          iVar4 = 0;\n          uVar5 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002bd60(uVar5,uVar3);\n        }\n      }\n      else {\n        iVar4 = 0;\n        uVar5 = dcgettext(0,"file number less than one",5);\n        FUN_0002bd60(uVar5);\n      }\n    }\n  }\n  return iVar4;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined8 uVar7;" type_identifier identifier ;) (declaration "undefined1 local_20 [12];" type_identifier (array_declarator "local_20 [12]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x1b2f9;" (assignment_expression "uStack_14 = 0x1b2f9" identifier = number_literal) ;) (expression_statement "cVar2 = *DAT_00089978;" (assignment_expression "cVar2 = *DAT_00089978" identifier = (pointer_expression "*DAT_00089978" * identifier)) ;) (if_statement "if (cVar2 == ' ') {\n    cVar2 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }" if (parenthesized_expression "(cVar2 == ' ')" ( (binary_expression "cVar2 == ' '" identifier == (char_literal "' '" ' character ')) )) (compound_statement "{\n    cVar2 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }" { (expression_statement "cVar2 = DAT_00089978[1];" (assignment_expression "cVar2 = DAT_00089978[1]" identifier = (subscript_expression "DAT_00089978[1]" identifier [ number_literal ])) ;) (expression_statement "DAT_00089978 = DAT_00089978 + 1;" (assignment_expression "DAT_00089978 = DAT_00089978 + 1" identifier = (binary_expression "DAT_00089978 + 1" identifier + number_literal)) ;) })) (if_statement "if (cVar2 == '\"') {\n    iVar4 = 0;\n    FUN_00033ac0(0);\n  }\n  else {\n    uVar7 = FUN_0002d860();\n    iVar6 = (int)((ulonglong)uVar7 >> 0x20);\n    uVar3 = (uint)uVar7;\n    iVar4 = FUN_00033cf0(local_20);\n    if (iVar4 != 0) {\n      FUN_0002e4e0();\n      if (-iVar6 < (int)(uint)(uVar3 != 0)) {\n        DAT_000888d8 = 1;\n        iVar1 = iVar6 - ((int)DAT_0008896c >> 0x1f);\n        if (((SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c))) ==\n             (int)(iVar1 - (uint)(uVar3 < DAT_0008896c)) < 0) ||\n           (*(int *)(DAT_00088970 + uVar3 * 8) == 0)) {\n          FUN_00019ec0();\n        }\n        else {\n          iVar4 = 0;\n          uVar5 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002bd60(uVar5,uVar3);\n        }\n      }\n      else {\n        iVar4 = 0;\n        uVar5 = dcgettext(0,"file number less than one",5);\n        FUN_0002bd60(uVar5);\n      }\n    }\n  }" if (parenthesized_expression "(cVar2 == '\"')" ( (binary_expression "cVar2 == '\"'" identifier == (char_literal "'\"'" ' escape_sequence ')) )) (compound_statement "{\n    iVar4 = 0;\n    FUN_00033ac0(0);\n  }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (expression_statement "FUN_00033ac0(0);" (call_expression "FUN_00033ac0(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }) (else_clause "else {\n    uVar7 = FUN_0002d860();\n    iVar6 = (int)((ulonglong)uVar7 >> 0x20);\n    uVar3 = (uint)uVar7;\n    iVar4 = FUN_00033cf0(local_20);\n    if (iVar4 != 0) {\n      FUN_0002e4e0();\n      if (-iVar6 < (int)(uint)(uVar3 != 0)) {\n        DAT_000888d8 = 1;\n        iVar1 = iVar6 - ((int)DAT_0008896c >> 0x1f);\n        if (((SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c))) ==\n             (int)(iVar1 - (uint)(uVar3 < DAT_0008896c)) < 0) ||\n           (*(int *)(DAT_00088970 + uVar3 * 8) == 0)) {\n          FUN_00019ec0();\n        }\n        else {\n          iVar4 = 0;\n          uVar5 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002bd60(uVar5,uVar3);\n        }\n      }\n      else {\n        iVar4 = 0;\n        uVar5 = dcgettext(0,"file number less than one",5);\n        FUN_0002bd60(uVar5);\n      }\n    }\n  }" else (compound_statement "{\n    uVar7 = FUN_0002d860();\n    iVar6 = (int)((ulonglong)uVar7 >> 0x20);\n    uVar3 = (uint)uVar7;\n    iVar4 = FUN_00033cf0(local_20);\n    if (iVar4 != 0) {\n      FUN_0002e4e0();\n      if (-iVar6 < (int)(uint)(uVar3 != 0)) {\n        DAT_000888d8 = 1;\n        iVar1 = iVar6 - ((int)DAT_0008896c >> 0x1f);\n        if (((SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c))) ==\n             (int)(iVar1 - (uint)(uVar3 < DAT_0008896c)) < 0) ||\n           (*(int *)(DAT_00088970 + uVar3 * 8) == 0)) {\n          FUN_00019ec0();\n        }\n        else {\n          iVar4 = 0;\n          uVar5 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002bd60(uVar5,uVar3);\n        }\n      }\n      else {\n        iVar4 = 0;\n        uVar5 = dcgettext(0,"file number less than one",5);\n        FUN_0002bd60(uVar5);\n      }\n    }\n  }" { (expression_statement "uVar7 = FUN_0002d860();" (assignment_expression "uVar7 = FUN_0002d860()" identifier = (call_expression "FUN_0002d860()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar6 = (int)((ulonglong)uVar7 >> 0x20);" (assignment_expression "iVar6 = (int)((ulonglong)uVar7 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)uVar7 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar7 >> 0x20)" ( (binary_expression "(ulonglong)uVar7 >> 0x20" (cast_expression "(ulonglong)uVar7" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar3 = (uint)uVar7;" (assignment_expression "uVar3 = (uint)uVar7" identifier = (cast_expression "(uint)uVar7" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "iVar4 = FUN_00033cf0(local_20);" (assignment_expression "iVar4 = FUN_00033cf0(local_20)" identifier = (call_expression "FUN_00033cf0(local_20)" identifier (argument_list "(local_20)" ( identifier )))) ;) (if_statement "if (iVar4 != 0) {\n      FUN_0002e4e0();\n      if (-iVar6 < (int)(uint)(uVar3 != 0)) {\n        DAT_000888d8 = 1;\n        iVar1 = iVar6 - ((int)DAT_0008896c >> 0x1f);\n        if (((SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c))) ==\n             (int)(iVar1 - (uint)(uVar3 < DAT_0008896c)) < 0) ||\n           (*(int *)(DAT_00088970 + uVar3 * 8) == 0)) {\n          FUN_00019ec0();\n        }\n        else {\n          iVar4 = 0;\n          uVar5 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002bd60(uVar5,uVar3);\n        }\n      }\n      else {\n        iVar4 = 0;\n        uVar5 = dcgettext(0,"file number less than one",5);\n        FUN_0002bd60(uVar5);\n      }\n    }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_0002e4e0();\n      if (-iVar6 < (int)(uint)(uVar3 != 0)) {\n        DAT_000888d8 = 1;\n        iVar1 = iVar6 - ((int)DAT_0008896c >> 0x1f);\n        if (((SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c))) ==\n             (int)(iVar1 - (uint)(uVar3 < DAT_0008896c)) < 0) ||\n           (*(int *)(DAT_00088970 + uVar3 * 8) == 0)) {\n          FUN_00019ec0();\n        }\n        else {\n          iVar4 = 0;\n          uVar5 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002bd60(uVar5,uVar3);\n        }\n      }\n      else {\n        iVar4 = 0;\n        uVar5 = dcgettext(0,"file number less than one",5);\n        FUN_0002bd60(uVar5);\n      }\n    }" { (expression_statement "FUN_0002e4e0();" (call_expression "FUN_0002e4e0()" identifier (argument_list "()" ( ))) ;) (if_statement "if (-iVar6 < (int)(uint)(uVar3 != 0)) {\n        DAT_000888d8 = 1;\n        iVar1 = iVar6 - ((int)DAT_0008896c >> 0x1f);\n        if (((SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c))) ==\n             (int)(iVar1 - (uint)(uVar3 < DAT_0008896c)) < 0) ||\n           (*(int *)(DAT_00088970 + uVar3 * 8) == 0)) {\n          FUN_00019ec0();\n        }\n        else {\n          iVar4 = 0;\n          uVar5 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002bd60(uVar5,uVar3);\n        }\n      }\n      else {\n        iVar4 = 0;\n        uVar5 = dcgettext(0,"file number less than one",5);\n        FUN_0002bd60(uVar5);\n      }" if (parenthesized_expression "(-iVar6 < (int)(uint)(uVar3 != 0))" ( (binary_expression "-iVar6 < (int)(uint)(uVar3 != 0)" (unary_expression "-iVar6" - identifier) < (cast_expression "(int)(uint)(uVar3 != 0)" ( (type_descriptor "int" primitive_type) ) (call_expression "(uint)(uVar3 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) ))))) )) (compound_statement "{\n        DAT_000888d8 = 1;\n        iVar1 = iVar6 - ((int)DAT_0008896c >> 0x1f);\n        if (((SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c))) ==\n             (int)(iVar1 - (uint)(uVar3 < DAT_0008896c)) < 0) ||\n           (*(int *)(DAT_00088970 + uVar3 * 8) == 0)) {\n          FUN_00019ec0();\n        }\n        else {\n          iVar4 = 0;\n          uVar5 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002bd60(uVar5,uVar3);\n        }\n      }" { (expression_statement "DAT_000888d8 = 1;" (assignment_expression "DAT_000888d8 = 1" identifier = number_literal) ;) (expression_statement "iVar1 = iVar6 - ((int)DAT_0008896c >> 0x1f);" (assignment_expression "iVar1 = iVar6 - ((int)DAT_0008896c >> 0x1f)" identifier = (binary_expression "iVar6 - ((int)DAT_0008896c >> 0x1f)" identifier - (parenthesized_expression "((int)DAT_0008896c >> 0x1f)" ( (binary_expression "(int)DAT_0008896c >> 0x1f" (cast_expression "(int)DAT_0008896c" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (if_statement "if (((SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c))) ==\n             (int)(iVar1 - (uint)(uVar3 < DAT_0008896c)) < 0) ||\n           (*(int *)(DAT_00088970 + uVar3 * 8) == 0)) {\n          FUN_00019ec0();\n        }\n        else {\n          iVar4 = 0;\n          uVar5 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002bd60(uVar5,uVar3);\n        }" if (parenthesized_expression "(((SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c))) ==\n             (int)(iVar1 - (uint)(uVar3 < DAT_0008896c)) < 0) ||\n           (*(int *)(DAT_00088970 + uVar3 * 8) == 0))" ( (binary_expression "((SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c))) ==\n             (int)(iVar1 - (uint)(uVar3 < DAT_0008896c)) < 0) ||\n           (*(int *)(DAT_00088970 + uVar3 * 8) == 0)" (parenthesized_expression "((SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c))) ==\n             (int)(iVar1 - (uint)(uVar3 < DAT_0008896c)) < 0)" ( (binary_expression "(SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c))) ==\n             (int)(iVar1 - (uint)(uVar3 < DAT_0008896c)) < 0" (parenthesized_expression "(SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c)))" ( (binary_expression "SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c))" (call_expression "SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f)" identifier (argument_list "(iVar6,(int)DAT_0008896c >> 0x1f)" ( identifier , (binary_expression "(int)DAT_0008896c >> 0x1f" (cast_expression "(int)DAT_0008896c" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) != (call_expression "SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c))" identifier (argument_list "(iVar1,(uint)(uVar3 < DAT_0008896c))" ( identifier , (call_expression "(uint)(uVar3 < DAT_0008896c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar3 < DAT_0008896c)" ( (binary_expression "uVar3 < DAT_0008896c" identifier < identifier) ))) )))) )) == (binary_expression "(int)(iVar1 - (uint)(uVar3 < DAT_0008896c)) < 0" (cast_expression "(int)(iVar1 - (uint)(uVar3 < DAT_0008896c))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar1 - (uint)(uVar3 < DAT_0008896c))" ( (binary_expression "iVar1 - (uint)(uVar3 < DAT_0008896c)" identifier - (call_expression "(uint)(uVar3 < DAT_0008896c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar3 < DAT_0008896c)" ( (binary_expression "uVar3 < DAT_0008896c" identifier < identifier) )))) ))) < number_literal)) )) || (parenthesized_expression "(*(int *)(DAT_00088970 + uVar3 * 8) == 0)" ( (binary_expression "*(int *)(DAT_00088970 + uVar3 * 8) == 0" (pointer_expression "*(int *)(DAT_00088970 + uVar3 * 8)" * (cast_expression "(int *)(DAT_00088970 + uVar3 * 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00088970 + uVar3 * 8)" ( (binary_expression "DAT_00088970 + uVar3 * 8" identifier + (binary_expression "uVar3 * 8" identifier * number_literal)) )))) == number_literal) ))) )) (compound_statement "{\n          FUN_00019ec0();\n        }" { (expression_statement "FUN_00019ec0();" (call_expression "FUN_00019ec0()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n          iVar4 = 0;\n          uVar5 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002bd60(uVar5,uVar3);\n        }" else (compound_statement "{\n          iVar4 = 0;\n          uVar5 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002bd60(uVar5,uVar3);\n        }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (expression_statement "uVar5 = dcgettext(0,"file number %ld already allocated",5);" (assignment_expression "uVar5 = 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_0002bd60(uVar5,uVar3);" (call_expression "FUN_0002bd60(uVar5,uVar3)" identifier (argument_list "(uVar5,uVar3)" ( identifier , identifier ))) ;) }))) }) (else_clause "else {\n        iVar4 = 0;\n        uVar5 = dcgettext(0,"file number less than one",5);\n        FUN_0002bd60(uVar5);\n      }" else (compound_statement "{\n        iVar4 = 0;\n        uVar5 = dcgettext(0,"file number less than one",5);\n        FUN_0002bd60(uVar5);\n      }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (expression_statement "uVar5 = dcgettext(0,"file number less than one",5);" (assignment_expression "uVar5 = 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_0002bd60(uVar5);" (call_expression "FUN_0002bd60(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;) }))) })) }))) (return_statement "return iVar4;" 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  int iVar1;\n  char cVar2;\n  uint num;\n  char *filename;\n  char *pcVar3;\n  int iVar4;\n  offsetT oVar5;\n  int filename_len;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1b2f9;\n  cVar2 = *input_line_pointer;\n  if (cVar2 == ' ') {\n    cVar2 = input_line_pointer[1];\n    input_line_pointer = input_line_pointer + 1;\n  }\n  if (cVar2 == '\"') {\n    filename = (char *)0x0;\n    s_app_file(0);\n  }\n  else {\n    oVar5 = get_absolute_expression();\n    iVar4 = (int)((ulonglong)oVar5 >> 0x20);\n    num = (uint)oVar5;\n    filename = demand_copy_C_string(&filename_len);\n    if (filename != (char *)0x0) {\n      demand_empty_rest_of_line();\n      if (-iVar4 < (int)(uint)(num != 0)) {\n        debug_type = DEBUG_NONE;\n        iVar1 = iVar4 - ((int)files_in_use >> 0x1f);\n        if (((SBORROW4(iVar4,(int)files_in_use >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(num < files_in_use))) ==\n             (int)(iVar1 - (uint)(num < files_in_use)) < 0) || (files[num].filename == (char *)0x0))\n        {\n          get_filenum(filename,num);\n        }\n        else {\n          filename = (char *)0x0;\n          pcVar3 = (char *)dcgettext(0,"file number %ld already allocated",5);\n          as_bad(pcVar3,num);\n        }\n      }\n      else {\n        filename = (char *)0x0;\n        pcVar3 = (char *)dcgettext(0,"file number less than one",5);\n        as_bad(pcVar3);\n      }\n    }\n  }\n  return filename;\n}\n\n" comment comment (function_definition "char * dwarf2_directive_filename(void)\n\n{\n  int iVar1;\n  char cVar2;\n  uint num;\n  char *filename;\n  char *pcVar3;\n  int iVar4;\n  offsetT oVar5;\n  int filename_len;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1b2f9;\n  cVar2 = *input_line_pointer;\n  if (cVar2 == ' ') {\n    cVar2 = input_line_pointer[1];\n    input_line_pointer = input_line_pointer + 1;\n  }\n  if (cVar2 == '\"') {\n    filename = (char *)0x0;\n    s_app_file(0);\n  }\n  else {\n    oVar5 = get_absolute_expression();\n    iVar4 = (int)((ulonglong)oVar5 >> 0x20);\n    num = (uint)oVar5;\n    filename = demand_copy_C_string(&filename_len);\n    if (filename != (char *)0x0) {\n      demand_empty_rest_of_line();\n      if (-iVar4 < (int)(uint)(num != 0)) {\n        debug_type = DEBUG_NONE;\n        iVar1 = iVar4 - ((int)files_in_use >> 0x1f);\n        if (((SBORROW4(iVar4,(int)files_in_use >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(num < files_in_use))) ==\n             (int)(iVar1 - (uint)(num < files_in_use)) < 0) || (files[num].filename == (char *)0x0))\n        {\n          get_filenum(filename,num);\n        }\n        else {\n          filename = (char *)0x0;\n          pcVar3 = (char *)dcgettext(0,"file number %ld already allocated",5);\n          as_bad(pcVar3,num);\n        }\n      }\n      else {\n        filename = (char *)0x0;\n        pcVar3 = (char *)dcgettext(0,"file number less than one",5);\n        as_bad(pcVar3);\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  int iVar1;\n  char cVar2;\n  uint num;\n  char *filename;\n  char *pcVar3;\n  int iVar4;\n  offsetT oVar5;\n  int filename_len;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1b2f9;\n  cVar2 = *input_line_pointer;\n  if (cVar2 == ' ') {\n    cVar2 = input_line_pointer[1];\n    input_line_pointer = input_line_pointer + 1;\n  }\n  if (cVar2 == '\"') {\n    filename = (char *)0x0;\n    s_app_file(0);\n  }\n  else {\n    oVar5 = get_absolute_expression();\n    iVar4 = (int)((ulonglong)oVar5 >> 0x20);\n    num = (uint)oVar5;\n    filename = demand_copy_C_string(&filename_len);\n    if (filename != (char *)0x0) {\n      demand_empty_rest_of_line();\n      if (-iVar4 < (int)(uint)(num != 0)) {\n        debug_type = DEBUG_NONE;\n        iVar1 = iVar4 - ((int)files_in_use >> 0x1f);\n        if (((SBORROW4(iVar4,(int)files_in_use >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(num < files_in_use))) ==\n             (int)(iVar1 - (uint)(num < files_in_use)) < 0) || (files[num].filename == (char *)0x0))\n        {\n          get_filenum(filename,num);\n        }\n        else {\n          filename = (char *)0x0;\n          pcVar3 = (char *)dcgettext(0,"file number %ld already allocated",5);\n          as_bad(pcVar3,num);\n        }\n      }\n      else {\n        filename = (char *)0x0;\n        pcVar3 = (char *)dcgettext(0,"file number less than one",5);\n        as_bad(pcVar3);\n      }\n    }\n  }\n  return filename;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "uint num;" type_identifier identifier ;) (declaration "char *filename;" primitive_type (pointer_declarator "*filename" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "offsetT oVar5;" type_identifier identifier ;) (declaration "int filename_len;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x1b2f9;" (assignment_expression "uStack_14 = 0x1b2f9" identifier = number_literal) ;) (expression_statement "cVar2 = *input_line_pointer;" (assignment_expression "cVar2 = *input_line_pointer" identifier = (pointer_expression "*input_line_pointer" * identifier)) ;) (if_statement "if (cVar2 == ' ') {\n    cVar2 = input_line_pointer[1];\n    input_line_pointer = input_line_pointer + 1;\n  }" if (parenthesized_expression "(cVar2 == ' ')" ( (binary_expression "cVar2 == ' '" identifier == (char_literal "' '" ' character ')) )) (compound_statement "{\n    cVar2 = input_line_pointer[1];\n    input_line_pointer = input_line_pointer + 1;\n  }" { (expression_statement "cVar2 = input_line_pointer[1];" (assignment_expression "cVar2 = 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 (cVar2 == '\"') {\n    filename = (char *)0x0;\n    s_app_file(0);\n  }\n  else {\n    oVar5 = get_absolute_expression();\n    iVar4 = (int)((ulonglong)oVar5 >> 0x20);\n    num = (uint)oVar5;\n    filename = demand_copy_C_string(&filename_len);\n    if (filename != (char *)0x0) {\n      demand_empty_rest_of_line();\n      if (-iVar4 < (int)(uint)(num != 0)) {\n        debug_type = DEBUG_NONE;\n        iVar1 = iVar4 - ((int)files_in_use >> 0x1f);\n        if (((SBORROW4(iVar4,(int)files_in_use >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(num < files_in_use))) ==\n             (int)(iVar1 - (uint)(num < files_in_use)) < 0) || (files[num].filename == (char *)0x0))\n        {\n          get_filenum(filename,num);\n        }\n        else {\n          filename = (char *)0x0;\n          pcVar3 = (char *)dcgettext(0,"file number %ld already allocated",5);\n          as_bad(pcVar3,num);\n        }\n      }\n      else {\n        filename = (char *)0x0;\n        pcVar3 = (char *)dcgettext(0,"file number less than one",5);\n        as_bad(pcVar3);\n      }\n    }\n  }" if (parenthesized_expression "(cVar2 == '\"')" ( (binary_expression "cVar2 == '\"'" 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    oVar5 = get_absolute_expression();\n    iVar4 = (int)((ulonglong)oVar5 >> 0x20);\n    num = (uint)oVar5;\n    filename = demand_copy_C_string(&filename_len);\n    if (filename != (char *)0x0) {\n      demand_empty_rest_of_line();\n      if (-iVar4 < (int)(uint)(num != 0)) {\n        debug_type = DEBUG_NONE;\n        iVar1 = iVar4 - ((int)files_in_use >> 0x1f);\n        if (((SBORROW4(iVar4,(int)files_in_use >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(num < files_in_use))) ==\n             (int)(iVar1 - (uint)(num < files_in_use)) < 0) || (files[num].filename == (char *)0x0))\n        {\n          get_filenum(filename,num);\n        }\n        else {\n          filename = (char *)0x0;\n          pcVar3 = (char *)dcgettext(0,"file number %ld already allocated",5);\n          as_bad(pcVar3,num);\n        }\n      }\n      else {\n        filename = (char *)0x0;\n        pcVar3 = (char *)dcgettext(0,"file number less than one",5);\n        as_bad(pcVar3);\n      }\n    }\n  }" else (compound_statement "{\n    oVar5 = get_absolute_expression();\n    iVar4 = (int)((ulonglong)oVar5 >> 0x20);\n    num = (uint)oVar5;\n    filename = demand_copy_C_string(&filename_len);\n    if (filename != (char *)0x0) {\n      demand_empty_rest_of_line();\n      if (-iVar4 < (int)(uint)(num != 0)) {\n        debug_type = DEBUG_NONE;\n        iVar1 = iVar4 - ((int)files_in_use >> 0x1f);\n        if (((SBORROW4(iVar4,(int)files_in_use >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(num < files_in_use))) ==\n             (int)(iVar1 - (uint)(num < files_in_use)) < 0) || (files[num].filename == (char *)0x0))\n        {\n          get_filenum(filename,num);\n        }\n        else {\n          filename = (char *)0x0;\n          pcVar3 = (char *)dcgettext(0,"file number %ld already allocated",5);\n          as_bad(pcVar3,num);\n        }\n      }\n      else {\n        filename = (char *)0x0;\n        pcVar3 = (char *)dcgettext(0,"file number less than one",5);\n        as_bad(pcVar3);\n      }\n    }\n  }" { (expression_statement "oVar5 = get_absolute_expression();" (assignment_expression "oVar5 = get_absolute_expression()" identifier = (call_expression "get_absolute_expression()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar4 = (int)((ulonglong)oVar5 >> 0x20);" (assignment_expression "iVar4 = (int)((ulonglong)oVar5 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)oVar5 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)oVar5 >> 0x20)" ( (binary_expression "(ulonglong)oVar5 >> 0x20" (cast_expression "(ulonglong)oVar5" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "num = (uint)oVar5;" (assignment_expression "num = (uint)oVar5" identifier = (cast_expression "(uint)oVar5" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (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 (-iVar4 < (int)(uint)(num != 0)) {\n        debug_type = DEBUG_NONE;\n        iVar1 = iVar4 - ((int)files_in_use >> 0x1f);\n        if (((SBORROW4(iVar4,(int)files_in_use >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(num < files_in_use))) ==\n             (int)(iVar1 - (uint)(num < files_in_use)) < 0) || (files[num].filename == (char *)0x0))\n        {\n          get_filenum(filename,num);\n        }\n        else {\n          filename = (char *)0x0;\n          pcVar3 = (char *)dcgettext(0,"file number %ld already allocated",5);\n          as_bad(pcVar3,num);\n        }\n      }\n      else {\n        filename = (char *)0x0;\n        pcVar3 = (char *)dcgettext(0,"file number less than one",5);\n        as_bad(pcVar3);\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 (-iVar4 < (int)(uint)(num != 0)) {\n        debug_type = DEBUG_NONE;\n        iVar1 = iVar4 - ((int)files_in_use >> 0x1f);\n        if (((SBORROW4(iVar4,(int)files_in_use >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(num < files_in_use))) ==\n             (int)(iVar1 - (uint)(num < files_in_use)) < 0) || (files[num].filename == (char *)0x0))\n        {\n          get_filenum(filename,num);\n        }\n        else {\n          filename = (char *)0x0;\n          pcVar3 = (char *)dcgettext(0,"file number %ld already allocated",5);\n          as_bad(pcVar3,num);\n        }\n      }\n      else {\n        filename = (char *)0x0;\n        pcVar3 = (char *)dcgettext(0,"file number less than one",5);\n        as_bad(pcVar3);\n      }\n    }" { (expression_statement "demand_empty_rest_of_line();" (call_expression "demand_empty_rest_of_line()" identifier (argument_list "()" ( ))) ;) (if_statement "if (-iVar4 < (int)(uint)(num != 0)) {\n        debug_type = DEBUG_NONE;\n        iVar1 = iVar4 - ((int)files_in_use >> 0x1f);\n        if (((SBORROW4(iVar4,(int)files_in_use >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(num < files_in_use))) ==\n             (int)(iVar1 - (uint)(num < files_in_use)) < 0) || (files[num].filename == (char *)0x0))\n        {\n          get_filenum(filename,num);\n        }\n        else {\n          filename = (char *)0x0;\n          pcVar3 = (char *)dcgettext(0,"file number %ld already allocated",5);\n          as_bad(pcVar3,num);\n        }\n      }\n      else {\n        filename = (char *)0x0;\n        pcVar3 = (char *)dcgettext(0,"file number less than one",5);\n        as_bad(pcVar3);\n      }" if (parenthesized_expression "(-iVar4 < (int)(uint)(num != 0))" ( (binary_expression "-iVar4 < (int)(uint)(num != 0)" (unary_expression "-iVar4" - identifier) < (cast_expression "(int)(uint)(num != 0)" ( (type_descriptor "int" primitive_type) ) (call_expression "(uint)(num != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(num != 0)" ( (binary_expression "num != 0" identifier != number_literal) ))))) )) (compound_statement "{\n        debug_type = DEBUG_NONE;\n        iVar1 = iVar4 - ((int)files_in_use >> 0x1f);\n        if (((SBORROW4(iVar4,(int)files_in_use >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(num < files_in_use))) ==\n             (int)(iVar1 - (uint)(num < files_in_use)) < 0) || (files[num].filename == (char *)0x0))\n        {\n          get_filenum(filename,num);\n        }\n        else {\n          filename = (char *)0x0;\n          pcVar3 = (char *)dcgettext(0,"file number %ld already allocated",5);\n          as_bad(pcVar3,num);\n        }\n      }" { (expression_statement "debug_type = DEBUG_NONE;" (assignment_expression "debug_type = DEBUG_NONE" identifier = identifier) ;) (expression_statement "iVar1 = iVar4 - ((int)files_in_use >> 0x1f);" (assignment_expression "iVar1 = iVar4 - ((int)files_in_use >> 0x1f)" identifier = (binary_expression "iVar4 - ((int)files_in_use >> 0x1f)" identifier - (parenthesized_expression "((int)files_in_use >> 0x1f)" ( (binary_expression "(int)files_in_use >> 0x1f" (cast_expression "(int)files_in_use" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (if_statement "if (((SBORROW4(iVar4,(int)files_in_use >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(num < files_in_use))) ==\n             (int)(iVar1 - (uint)(num < files_in_use)) < 0) || (files[num].filename == (char *)0x0))\n        {\n          get_filenum(filename,num);\n        }\n        else {\n          filename = (char *)0x0;\n          pcVar3 = (char *)dcgettext(0,"file number %ld already allocated",5);\n          as_bad(pcVar3,num);\n        }" if (parenthesized_expression "(((SBORROW4(iVar4,(int)files_in_use >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(num < files_in_use))) ==\n             (int)(iVar1 - (uint)(num < files_in_use)) < 0) || (files[num].filename == (char *)0x0))" ( (binary_expression "((SBORROW4(iVar4,(int)files_in_use >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(num < files_in_use))) ==\n             (int)(iVar1 - (uint)(num < files_in_use)) < 0) || (files[num].filename == (char *)0x0)" (parenthesized_expression "((SBORROW4(iVar4,(int)files_in_use >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(num < files_in_use))) ==\n             (int)(iVar1 - (uint)(num < files_in_use)) < 0)" ( (binary_expression "(SBORROW4(iVar4,(int)files_in_use >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(num < files_in_use))) ==\n             (int)(iVar1 - (uint)(num < files_in_use)) < 0" (parenthesized_expression "(SBORROW4(iVar4,(int)files_in_use >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(num < files_in_use)))" ( (binary_expression "SBORROW4(iVar4,(int)files_in_use >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(num < files_in_use))" (call_expression "SBORROW4(iVar4,(int)files_in_use >> 0x1f)" identifier (argument_list "(iVar4,(int)files_in_use >> 0x1f)" ( identifier , (binary_expression "(int)files_in_use >> 0x1f" (cast_expression "(int)files_in_use" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) != (call_expression "SBORROW4(iVar1,(uint)(num < files_in_use))" identifier (argument_list "(iVar1,(uint)(num < files_in_use))" ( identifier , (call_expression "(uint)(num < files_in_use)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(num < files_in_use)" ( (binary_expression "num < files_in_use" identifier < identifier) ))) )))) )) == (binary_expression "(int)(iVar1 - (uint)(num < files_in_use)) < 0" (cast_expression "(int)(iVar1 - (uint)(num < files_in_use))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar1 - (uint)(num < files_in_use))" ( (binary_expression "iVar1 - (uint)(num < files_in_use)" identifier - (call_expression "(uint)(num < files_in_use)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(num < files_in_use)" ( (binary_expression "num < files_in_use" identifier < identifier) )))) ))) < number_literal)) )) || (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          get_filenum(filename,num);\n        }" { (expression_statement "get_filenum(filename,num);" (call_expression "get_filenum(filename,num)" identifier (argument_list "(filename,num)" ( identifier , identifier ))) ;) }) (else_clause "else {\n          filename = (char *)0x0;\n          pcVar3 = (char *)dcgettext(0,"file number %ld already allocated",5);\n          as_bad(pcVar3,num);\n        }" else (compound_statement "{\n          filename = (char *)0x0;\n          pcVar3 = (char *)dcgettext(0,"file number %ld already allocated",5);\n          as_bad(pcVar3,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 "pcVar3 = (char *)dcgettext(0,"file number %ld already allocated",5);" (assignment_expression "pcVar3 = (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(pcVar3,num);" (call_expression "as_bad(pcVar3,num)" identifier (argument_list "(pcVar3,num)" ( identifier , identifier ))) ;) }))) }) (else_clause "else {\n        filename = (char *)0x0;\n        pcVar3 = (char *)dcgettext(0,"file number less than one",5);\n        as_bad(pcVar3);\n      }" else (compound_statement "{\n        filename = (char *)0x0;\n        pcVar3 = (char *)dcgettext(0,"file number less than one",5);\n        as_bad(pcVar3);\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 "pcVar3 = (char *)dcgettext(0,"file number less than one",5);" (assignment_expression "pcVar3 = (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(pcVar3);" (call_expression "as_bad(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier ))) ;) }))) })) }))) (return_statement "return filename;" return identifier ;) })))
(translation_unit "int FUN_0001b2f0(void)\n\n{\n  int iVar1;\n  char cVar2;\n  uint uVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined8 uVar7;\n  undefined1 local_20 [12];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1b2f9;\n  cVar2 = *DAT_00089978;\n  if (cVar2 == ' ') {\n    cVar2 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }\n  if (cVar2 == '\"') {\n    iVar4 = 0;\n    FUN_00033ac0(0);\n  }\n  else {\n    uVar7 = FUN_0002d860();\n    iVar6 = (int)((ulonglong)uVar7 >> 0x20);\n    uVar3 = (uint)uVar7;\n    iVar4 = FUN_00033cf0(local_20);\n    if (iVar4 != 0) {\n      FUN_0002e4e0();\n      if (-iVar6 < (int)(uint)(uVar3 != 0)) {\n        DAT_000888d8 = 1;\n        iVar1 = iVar6 - ((int)DAT_0008896c >> 0x1f);\n        if (((SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c))) ==\n             (int)(iVar1 - (uint)(uVar3 < DAT_0008896c)) < 0) ||\n           (*(int *)(DAT_00088970 + uVar3 * 8) == 0)) {\n          FUN_00019ec0();\n        }\n        else {\n          iVar4 = 0;\n          uVar5 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002bd60(uVar5,uVar3);\n        }\n      }\n      else {\n        iVar4 = 0;\n        uVar5 = dcgettext(0,"file number less than one",5);\n        FUN_0002bd60(uVar5);\n      }\n    }\n  }\n  return iVar4;\n}\n\n" (function_definition "int FUN_0001b2f0(void)\n\n{\n  int iVar1;\n  char cVar2;\n  uint uVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined8 uVar7;\n  undefined1 local_20 [12];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1b2f9;\n  cVar2 = *DAT_00089978;\n  if (cVar2 == ' ') {\n    cVar2 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }\n  if (cVar2 == '\"') {\n    iVar4 = 0;\n    FUN_00033ac0(0);\n  }\n  else {\n    uVar7 = FUN_0002d860();\n    iVar6 = (int)((ulonglong)uVar7 >> 0x20);\n    uVar3 = (uint)uVar7;\n    iVar4 = FUN_00033cf0(local_20);\n    if (iVar4 != 0) {\n      FUN_0002e4e0();\n      if (-iVar6 < (int)(uint)(uVar3 != 0)) {\n        DAT_000888d8 = 1;\n        iVar1 = iVar6 - ((int)DAT_0008896c >> 0x1f);\n        if (((SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c))) ==\n             (int)(iVar1 - (uint)(uVar3 < DAT_0008896c)) < 0) ||\n           (*(int *)(DAT_00088970 + uVar3 * 8) == 0)) {\n          FUN_00019ec0();\n        }\n        else {\n          iVar4 = 0;\n          uVar5 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002bd60(uVar5,uVar3);\n        }\n      }\n      else {\n        iVar4 = 0;\n        uVar5 = dcgettext(0,"file number less than one",5);\n        FUN_0002bd60(uVar5);\n      }\n    }\n  }\n  return iVar4;\n}" primitive_type (function_declarator "FUN_0001b2f0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int iVar1;\n  char cVar2;\n  uint uVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined8 uVar7;\n  undefined1 local_20 [12];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1b2f9;\n  cVar2 = *DAT_00089978;\n  if (cVar2 == ' ') {\n    cVar2 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }\n  if (cVar2 == '\"') {\n    iVar4 = 0;\n    FUN_00033ac0(0);\n  }\n  else {\n    uVar7 = FUN_0002d860();\n    iVar6 = (int)((ulonglong)uVar7 >> 0x20);\n    uVar3 = (uint)uVar7;\n    iVar4 = FUN_00033cf0(local_20);\n    if (iVar4 != 0) {\n      FUN_0002e4e0();\n      if (-iVar6 < (int)(uint)(uVar3 != 0)) {\n        DAT_000888d8 = 1;\n        iVar1 = iVar6 - ((int)DAT_0008896c >> 0x1f);\n        if (((SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c))) ==\n             (int)(iVar1 - (uint)(uVar3 < DAT_0008896c)) < 0) ||\n           (*(int *)(DAT_00088970 + uVar3 * 8) == 0)) {\n          FUN_00019ec0();\n        }\n        else {\n          iVar4 = 0;\n          uVar5 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002bd60(uVar5,uVar3);\n        }\n      }\n      else {\n        iVar4 = 0;\n        uVar5 = dcgettext(0,"file number less than one",5);\n        FUN_0002bd60(uVar5);\n      }\n    }\n  }\n  return iVar4;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined8 uVar7;" type_identifier identifier ;) (declaration "undefined1 local_20 [12];" type_identifier (array_declarator "local_20 [12]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x1b2f9;" (assignment_expression "uStack_14 = 0x1b2f9" identifier = number_literal) ;) (expression_statement "cVar2 = *DAT_00089978;" (assignment_expression "cVar2 = *DAT_00089978" identifier = (pointer_expression "*DAT_00089978" * identifier)) ;) (if_statement "if (cVar2 == ' ') {\n    cVar2 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }" if (parenthesized_expression "(cVar2 == ' ')" ( (binary_expression "cVar2 == ' '" identifier == (char_literal "' '" ' character ')) )) (compound_statement "{\n    cVar2 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }" { (expression_statement "cVar2 = DAT_00089978[1];" (assignment_expression "cVar2 = DAT_00089978[1]" identifier = (subscript_expression "DAT_00089978[1]" identifier [ number_literal ])) ;) (expression_statement "DAT_00089978 = DAT_00089978 + 1;" (assignment_expression "DAT_00089978 = DAT_00089978 + 1" identifier = (binary_expression "DAT_00089978 + 1" identifier + number_literal)) ;) })) (if_statement "if (cVar2 == '\"') {\n    iVar4 = 0;\n    FUN_00033ac0(0);\n  }\n  else {\n    uVar7 = FUN_0002d860();\n    iVar6 = (int)((ulonglong)uVar7 >> 0x20);\n    uVar3 = (uint)uVar7;\n    iVar4 = FUN_00033cf0(local_20);\n    if (iVar4 != 0) {\n      FUN_0002e4e0();\n      if (-iVar6 < (int)(uint)(uVar3 != 0)) {\n        DAT_000888d8 = 1;\n        iVar1 = iVar6 - ((int)DAT_0008896c >> 0x1f);\n        if (((SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c))) ==\n             (int)(iVar1 - (uint)(uVar3 < DAT_0008896c)) < 0) ||\n           (*(int *)(DAT_00088970 + uVar3 * 8) == 0)) {\n          FUN_00019ec0();\n        }\n        else {\n          iVar4 = 0;\n          uVar5 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002bd60(uVar5,uVar3);\n        }\n      }\n      else {\n        iVar4 = 0;\n        uVar5 = dcgettext(0,"file number less than one",5);\n        FUN_0002bd60(uVar5);\n      }\n    }\n  }" if (parenthesized_expression "(cVar2 == '\"')" ( (binary_expression "cVar2 == '\"'" identifier == (char_literal "'\"'" ' escape_sequence ')) )) (compound_statement "{\n    iVar4 = 0;\n    FUN_00033ac0(0);\n  }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (expression_statement "FUN_00033ac0(0);" (call_expression "FUN_00033ac0(0)" identifier (argument_list "(0)" ( number_literal ))) ;) }) (else_clause "else {\n    uVar7 = FUN_0002d860();\n    iVar6 = (int)((ulonglong)uVar7 >> 0x20);\n    uVar3 = (uint)uVar7;\n    iVar4 = FUN_00033cf0(local_20);\n    if (iVar4 != 0) {\n      FUN_0002e4e0();\n      if (-iVar6 < (int)(uint)(uVar3 != 0)) {\n        DAT_000888d8 = 1;\n        iVar1 = iVar6 - ((int)DAT_0008896c >> 0x1f);\n        if (((SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c))) ==\n             (int)(iVar1 - (uint)(uVar3 < DAT_0008896c)) < 0) ||\n           (*(int *)(DAT_00088970 + uVar3 * 8) == 0)) {\n          FUN_00019ec0();\n        }\n        else {\n          iVar4 = 0;\n          uVar5 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002bd60(uVar5,uVar3);\n        }\n      }\n      else {\n        iVar4 = 0;\n        uVar5 = dcgettext(0,"file number less than one",5);\n        FUN_0002bd60(uVar5);\n      }\n    }\n  }" else (compound_statement "{\n    uVar7 = FUN_0002d860();\n    iVar6 = (int)((ulonglong)uVar7 >> 0x20);\n    uVar3 = (uint)uVar7;\n    iVar4 = FUN_00033cf0(local_20);\n    if (iVar4 != 0) {\n      FUN_0002e4e0();\n      if (-iVar6 < (int)(uint)(uVar3 != 0)) {\n        DAT_000888d8 = 1;\n        iVar1 = iVar6 - ((int)DAT_0008896c >> 0x1f);\n        if (((SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c))) ==\n             (int)(iVar1 - (uint)(uVar3 < DAT_0008896c)) < 0) ||\n           (*(int *)(DAT_00088970 + uVar3 * 8) == 0)) {\n          FUN_00019ec0();\n        }\n        else {\n          iVar4 = 0;\n          uVar5 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002bd60(uVar5,uVar3);\n        }\n      }\n      else {\n        iVar4 = 0;\n        uVar5 = dcgettext(0,"file number less than one",5);\n        FUN_0002bd60(uVar5);\n      }\n    }\n  }" { (expression_statement "uVar7 = FUN_0002d860();" (assignment_expression "uVar7 = FUN_0002d860()" identifier = (call_expression "FUN_0002d860()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar6 = (int)((ulonglong)uVar7 >> 0x20);" (assignment_expression "iVar6 = (int)((ulonglong)uVar7 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)uVar7 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar7 >> 0x20)" ( (binary_expression "(ulonglong)uVar7 >> 0x20" (cast_expression "(ulonglong)uVar7" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar3 = (uint)uVar7;" (assignment_expression "uVar3 = (uint)uVar7" identifier = (cast_expression "(uint)uVar7" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "iVar4 = FUN_00033cf0(local_20);" (assignment_expression "iVar4 = FUN_00033cf0(local_20)" identifier = (call_expression "FUN_00033cf0(local_20)" identifier (argument_list "(local_20)" ( identifier )))) ;) (if_statement "if (iVar4 != 0) {\n      FUN_0002e4e0();\n      if (-iVar6 < (int)(uint)(uVar3 != 0)) {\n        DAT_000888d8 = 1;\n        iVar1 = iVar6 - ((int)DAT_0008896c >> 0x1f);\n        if (((SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c))) ==\n             (int)(iVar1 - (uint)(uVar3 < DAT_0008896c)) < 0) ||\n           (*(int *)(DAT_00088970 + uVar3 * 8) == 0)) {\n          FUN_00019ec0();\n        }\n        else {\n          iVar4 = 0;\n          uVar5 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002bd60(uVar5,uVar3);\n        }\n      }\n      else {\n        iVar4 = 0;\n        uVar5 = dcgettext(0,"file number less than one",5);\n        FUN_0002bd60(uVar5);\n      }\n    }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_0002e4e0();\n      if (-iVar6 < (int)(uint)(uVar3 != 0)) {\n        DAT_000888d8 = 1;\n        iVar1 = iVar6 - ((int)DAT_0008896c >> 0x1f);\n        if (((SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c))) ==\n             (int)(iVar1 - (uint)(uVar3 < DAT_0008896c)) < 0) ||\n           (*(int *)(DAT_00088970 + uVar3 * 8) == 0)) {\n          FUN_00019ec0();\n        }\n        else {\n          iVar4 = 0;\n          uVar5 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002bd60(uVar5,uVar3);\n        }\n      }\n      else {\n        iVar4 = 0;\n        uVar5 = dcgettext(0,"file number less than one",5);\n        FUN_0002bd60(uVar5);\n      }\n    }" { (expression_statement "FUN_0002e4e0();" (call_expression "FUN_0002e4e0()" identifier (argument_list "()" ( ))) ;) (if_statement "if (-iVar6 < (int)(uint)(uVar3 != 0)) {\n        DAT_000888d8 = 1;\n        iVar1 = iVar6 - ((int)DAT_0008896c >> 0x1f);\n        if (((SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c))) ==\n             (int)(iVar1 - (uint)(uVar3 < DAT_0008896c)) < 0) ||\n           (*(int *)(DAT_00088970 + uVar3 * 8) == 0)) {\n          FUN_00019ec0();\n        }\n        else {\n          iVar4 = 0;\n          uVar5 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002bd60(uVar5,uVar3);\n        }\n      }\n      else {\n        iVar4 = 0;\n        uVar5 = dcgettext(0,"file number less than one",5);\n        FUN_0002bd60(uVar5);\n      }" if (parenthesized_expression "(-iVar6 < (int)(uint)(uVar3 != 0))" ( (binary_expression "-iVar6 < (int)(uint)(uVar3 != 0)" (unary_expression "-iVar6" - identifier) < (cast_expression "(int)(uint)(uVar3 != 0)" ( (type_descriptor "int" primitive_type) ) (call_expression "(uint)(uVar3 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) ))))) )) (compound_statement "{\n        DAT_000888d8 = 1;\n        iVar1 = iVar6 - ((int)DAT_0008896c >> 0x1f);\n        if (((SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c))) ==\n             (int)(iVar1 - (uint)(uVar3 < DAT_0008896c)) < 0) ||\n           (*(int *)(DAT_00088970 + uVar3 * 8) == 0)) {\n          FUN_00019ec0();\n        }\n        else {\n          iVar4 = 0;\n          uVar5 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002bd60(uVar5,uVar3);\n        }\n      }" { (expression_statement "DAT_000888d8 = 1;" (assignment_expression "DAT_000888d8 = 1" identifier = number_literal) ;) (expression_statement "iVar1 = iVar6 - ((int)DAT_0008896c >> 0x1f);" (assignment_expression "iVar1 = iVar6 - ((int)DAT_0008896c >> 0x1f)" identifier = (binary_expression "iVar6 - ((int)DAT_0008896c >> 0x1f)" identifier - (parenthesized_expression "((int)DAT_0008896c >> 0x1f)" ( (binary_expression "(int)DAT_0008896c >> 0x1f" (cast_expression "(int)DAT_0008896c" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (if_statement "if (((SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c))) ==\n             (int)(iVar1 - (uint)(uVar3 < DAT_0008896c)) < 0) ||\n           (*(int *)(DAT_00088970 + uVar3 * 8) == 0)) {\n          FUN_00019ec0();\n        }\n        else {\n          iVar4 = 0;\n          uVar5 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002bd60(uVar5,uVar3);\n        }" if (parenthesized_expression "(((SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c))) ==\n             (int)(iVar1 - (uint)(uVar3 < DAT_0008896c)) < 0) ||\n           (*(int *)(DAT_00088970 + uVar3 * 8) == 0))" ( (binary_expression "((SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c))) ==\n             (int)(iVar1 - (uint)(uVar3 < DAT_0008896c)) < 0) ||\n           (*(int *)(DAT_00088970 + uVar3 * 8) == 0)" (parenthesized_expression "((SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c))) ==\n             (int)(iVar1 - (uint)(uVar3 < DAT_0008896c)) < 0)" ( (binary_expression "(SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c))) ==\n             (int)(iVar1 - (uint)(uVar3 < DAT_0008896c)) < 0" (parenthesized_expression "(SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c)))" ( (binary_expression "SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c))" (call_expression "SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f)" identifier (argument_list "(iVar6,(int)DAT_0008896c >> 0x1f)" ( identifier , (binary_expression "(int)DAT_0008896c >> 0x1f" (cast_expression "(int)DAT_0008896c" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) != (call_expression "SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c))" identifier (argument_list "(iVar1,(uint)(uVar3 < DAT_0008896c))" ( identifier , (call_expression "(uint)(uVar3 < DAT_0008896c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar3 < DAT_0008896c)" ( (binary_expression "uVar3 < DAT_0008896c" identifier < identifier) ))) )))) )) == (binary_expression "(int)(iVar1 - (uint)(uVar3 < DAT_0008896c)) < 0" (cast_expression "(int)(iVar1 - (uint)(uVar3 < DAT_0008896c))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar1 - (uint)(uVar3 < DAT_0008896c))" ( (binary_expression "iVar1 - (uint)(uVar3 < DAT_0008896c)" identifier - (call_expression "(uint)(uVar3 < DAT_0008896c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar3 < DAT_0008896c)" ( (binary_expression "uVar3 < DAT_0008896c" identifier < identifier) )))) ))) < number_literal)) )) || (parenthesized_expression "(*(int *)(DAT_00088970 + uVar3 * 8) == 0)" ( (binary_expression "*(int *)(DAT_00088970 + uVar3 * 8) == 0" (pointer_expression "*(int *)(DAT_00088970 + uVar3 * 8)" * (cast_expression "(int *)(DAT_00088970 + uVar3 * 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00088970 + uVar3 * 8)" ( (binary_expression "DAT_00088970 + uVar3 * 8" identifier + (binary_expression "uVar3 * 8" identifier * number_literal)) )))) == number_literal) ))) )) (compound_statement "{\n          FUN_00019ec0();\n        }" { (expression_statement "FUN_00019ec0();" (call_expression "FUN_00019ec0()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n          iVar4 = 0;\n          uVar5 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002bd60(uVar5,uVar3);\n        }" else (compound_statement "{\n          iVar4 = 0;\n          uVar5 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002bd60(uVar5,uVar3);\n        }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (expression_statement "uVar5 = dcgettext(0,"file number %ld already allocated",5);" (assignment_expression "uVar5 = 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_0002bd60(uVar5,uVar3);" (call_expression "FUN_0002bd60(uVar5,uVar3)" identifier (argument_list "(uVar5,uVar3)" ( identifier , identifier ))) ;) }))) }) (else_clause "else {\n        iVar4 = 0;\n        uVar5 = dcgettext(0,"file number less than one",5);\n        FUN_0002bd60(uVar5);\n      }" else (compound_statement "{\n        iVar4 = 0;\n        uVar5 = dcgettext(0,"file number less than one",5);\n        FUN_0002bd60(uVar5);\n      }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (expression_statement "uVar5 = dcgettext(0,"file number less than one",5);" (assignment_expression "uVar5 = 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_0002bd60(uVar5);" (call_expression "FUN_0002bd60(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;) }))) })) }))) (return_statement "return iVar4;" 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 ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (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 = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( 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 (unary_expression - IDENT) < (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (call_expression IDENT (argument_list ( IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) != (call_expression IDENT (argument_list ( IDENT , (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) )))) )) == (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) )))) ))) < LIT)) )) || (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 (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (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 (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 ))) ;) }))) })) }))) (return_statement return IDENT ;) })))
(function_definition "int FUN_0001b2f0(void)\n\n{\n  int iVar1;\n  char cVar2;\n  uint uVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined8 uVar7;\n  undefined1 local_20 [12];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1b2f9;\n  cVar2 = *DAT_00089978;\n  if (cVar2 == ' ') {\n    cVar2 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }\n  if (cVar2 == '\"') {\n    iVar4 = 0;\n    FUN_00033ac0(0);\n  }\n  else {\n    uVar7 = FUN_0002d860();\n    iVar6 = (int)((ulonglong)uVar7 >> 0x20);\n    uVar3 = (uint)uVar7;\n    iVar4 = FUN_00033cf0(local_20);\n    if (iVar4 != 0) {\n      FUN_0002e4e0();\n      if (-iVar6 < (int)(uint)(uVar3 != 0)) {\n        DAT_000888d8 = 1;\n        iVar1 = iVar6 - ((int)DAT_0008896c >> 0x1f);\n        if (((SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c))) ==\n             (int)(iVar1 - (uint)(uVar3 < DAT_0008896c)) < 0) ||\n           (*(int *)(DAT_00088970 + uVar3 * 8) == 0)) {\n          FUN_00019ec0();\n        }\n        else {\n          iVar4 = 0;\n          uVar5 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002bd60(uVar5,uVar3);\n        }\n      }\n      else {\n        iVar4 = 0;\n        uVar5 = dcgettext(0,"file number less than one",5);\n        FUN_0002bd60(uVar5);\n      }\n    }\n  }\n  return iVar4;\n}" (primitive_type "int") (function_declarator "FUN_0001b2f0(void)" (identifier "FUN_0001b2f0") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  int iVar1;\n  char cVar2;\n  uint uVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined8 uVar7;\n  undefined1 local_20 [12];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1b2f9;\n  cVar2 = *DAT_00089978;\n  if (cVar2 == ' ') {\n    cVar2 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }\n  if (cVar2 == '\"') {\n    iVar4 = 0;\n    FUN_00033ac0(0);\n  }\n  else {\n    uVar7 = FUN_0002d860();\n    iVar6 = (int)((ulonglong)uVar7 >> 0x20);\n    uVar3 = (uint)uVar7;\n    iVar4 = FUN_00033cf0(local_20);\n    if (iVar4 != 0) {\n      FUN_0002e4e0();\n      if (-iVar6 < (int)(uint)(uVar3 != 0)) {\n        DAT_000888d8 = 1;\n        iVar1 = iVar6 - ((int)DAT_0008896c >> 0x1f);\n        if (((SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c))) ==\n             (int)(iVar1 - (uint)(uVar3 < DAT_0008896c)) < 0) ||\n           (*(int *)(DAT_00088970 + uVar3 * 8) == 0)) {\n          FUN_00019ec0();\n        }\n        else {\n          iVar4 = 0;\n          uVar5 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002bd60(uVar5,uVar3);\n        }\n      }\n      else {\n        iVar4 = 0;\n        uVar5 = dcgettext(0,"file number less than one",5);\n        FUN_0002bd60(uVar5);\n      }\n    }\n  }\n  return iVar4;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "char cVar2;" (primitive_type "char") (identifier "cVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "undefined8 uVar7;" (type_identifier "undefined8") (identifier "uVar7") (; ";")) (declaration "undefined1 local_20 [12];" (type_identifier "undefined1") (array_declarator "local_20 [12]" (identifier "local_20") ([ "[") (number_literal "12") (] "]")) (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x1b2f9;" (assignment_expression "uStack_14 = 0x1b2f9" (identifier "uStack_14") (= "=") (number_literal "0x1b2f9")) (; ";")) (expression_statement "cVar2 = *DAT_00089978;" (assignment_expression "cVar2 = *DAT_00089978" (identifier "cVar2") (= "=") (pointer_expression "*DAT_00089978" (* "*") (identifier "DAT_00089978"))) (; ";")) (if_statement "if (cVar2 == ' ') {\n    cVar2 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }" (if "if") (parenthesized_expression "(cVar2 == ' ')" (( "(") (binary_expression "cVar2 == ' '" (identifier "cVar2") (== "==") (char_literal "' '" (' "'") (character " ") (' "'"))) () ")")) (compound_statement "{\n    cVar2 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }" ({ "{") (expression_statement "cVar2 = DAT_00089978[1];" (assignment_expression "cVar2 = DAT_00089978[1]" (identifier "cVar2") (= "=") (subscript_expression "DAT_00089978[1]" (identifier "DAT_00089978") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "DAT_00089978 = DAT_00089978 + 1;" (assignment_expression "DAT_00089978 = DAT_00089978 + 1" (identifier "DAT_00089978") (= "=") (binary_expression "DAT_00089978 + 1" (identifier "DAT_00089978") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if (cVar2 == '\"') {\n    iVar4 = 0;\n    FUN_00033ac0(0);\n  }\n  else {\n    uVar7 = FUN_0002d860();\n    iVar6 = (int)((ulonglong)uVar7 >> 0x20);\n    uVar3 = (uint)uVar7;\n    iVar4 = FUN_00033cf0(local_20);\n    if (iVar4 != 0) {\n      FUN_0002e4e0();\n      if (-iVar6 < (int)(uint)(uVar3 != 0)) {\n        DAT_000888d8 = 1;\n        iVar1 = iVar6 - ((int)DAT_0008896c >> 0x1f);\n        if (((SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c))) ==\n             (int)(iVar1 - (uint)(uVar3 < DAT_0008896c)) < 0) ||\n           (*(int *)(DAT_00088970 + uVar3 * 8) == 0)) {\n          FUN_00019ec0();\n        }\n        else {\n          iVar4 = 0;\n          uVar5 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002bd60(uVar5,uVar3);\n        }\n      }\n      else {\n        iVar4 = 0;\n        uVar5 = dcgettext(0,"file number less than one",5);\n        FUN_0002bd60(uVar5);\n      }\n    }\n  }" (if "if") (parenthesized_expression "(cVar2 == '\"')" (( "(") (binary_expression "cVar2 == '\"'" (identifier "cVar2") (== "==") (char_literal "'\"'" (' "'") (escape_sequence "\"") (' "'"))) () ")")) (compound_statement "{\n    iVar4 = 0;\n    FUN_00033ac0(0);\n  }" ({ "{") (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" (identifier "iVar4") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_00033ac0(0);" (call_expression "FUN_00033ac0(0)" (identifier "FUN_00033ac0") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (} "}")) (else_clause "else {\n    uVar7 = FUN_0002d860();\n    iVar6 = (int)((ulonglong)uVar7 >> 0x20);\n    uVar3 = (uint)uVar7;\n    iVar4 = FUN_00033cf0(local_20);\n    if (iVar4 != 0) {\n      FUN_0002e4e0();\n      if (-iVar6 < (int)(uint)(uVar3 != 0)) {\n        DAT_000888d8 = 1;\n        iVar1 = iVar6 - ((int)DAT_0008896c >> 0x1f);\n        if (((SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c))) ==\n             (int)(iVar1 - (uint)(uVar3 < DAT_0008896c)) < 0) ||\n           (*(int *)(DAT_00088970 + uVar3 * 8) == 0)) {\n          FUN_00019ec0();\n        }\n        else {\n          iVar4 = 0;\n          uVar5 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002bd60(uVar5,uVar3);\n        }\n      }\n      else {\n        iVar4 = 0;\n        uVar5 = dcgettext(0,"file number less than one",5);\n        FUN_0002bd60(uVar5);\n      }\n    }\n  }" (else "else") (compound_statement "{\n    uVar7 = FUN_0002d860();\n    iVar6 = (int)((ulonglong)uVar7 >> 0x20);\n    uVar3 = (uint)uVar7;\n    iVar4 = FUN_00033cf0(local_20);\n    if (iVar4 != 0) {\n      FUN_0002e4e0();\n      if (-iVar6 < (int)(uint)(uVar3 != 0)) {\n        DAT_000888d8 = 1;\n        iVar1 = iVar6 - ((int)DAT_0008896c >> 0x1f);\n        if (((SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c))) ==\n             (int)(iVar1 - (uint)(uVar3 < DAT_0008896c)) < 0) ||\n           (*(int *)(DAT_00088970 + uVar3 * 8) == 0)) {\n          FUN_00019ec0();\n        }\n        else {\n          iVar4 = 0;\n          uVar5 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002bd60(uVar5,uVar3);\n        }\n      }\n      else {\n        iVar4 = 0;\n        uVar5 = dcgettext(0,"file number less than one",5);\n        FUN_0002bd60(uVar5);\n      }\n    }\n  }" ({ "{") (expression_statement "uVar7 = FUN_0002d860();" (assignment_expression "uVar7 = FUN_0002d860()" (identifier "uVar7") (= "=") (call_expression "FUN_0002d860()" (identifier "FUN_0002d860") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar6 = (int)((ulonglong)uVar7 >> 0x20);" (assignment_expression "iVar6 = (int)((ulonglong)uVar7 >> 0x20)" (identifier "iVar6") (= "=") (cast_expression "(int)((ulonglong)uVar7 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar7 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar7 >> 0x20" (cast_expression "(ulonglong)uVar7" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar7")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uVar3 = (uint)uVar7;" (assignment_expression "uVar3 = (uint)uVar7" (identifier "uVar3") (= "=") (cast_expression "(uint)uVar7" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar7"))) (; ";")) (expression_statement "iVar4 = FUN_00033cf0(local_20);" (assignment_expression "iVar4 = FUN_00033cf0(local_20)" (identifier "iVar4") (= "=") (call_expression "FUN_00033cf0(local_20)" (identifier "FUN_00033cf0") (argument_list "(local_20)" (( "(") (identifier "local_20") () ")")))) (; ";")) (if_statement "if (iVar4 != 0) {\n      FUN_0002e4e0();\n      if (-iVar6 < (int)(uint)(uVar3 != 0)) {\n        DAT_000888d8 = 1;\n        iVar1 = iVar6 - ((int)DAT_0008896c >> 0x1f);\n        if (((SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c))) ==\n             (int)(iVar1 - (uint)(uVar3 < DAT_0008896c)) < 0) ||\n           (*(int *)(DAT_00088970 + uVar3 * 8) == 0)) {\n          FUN_00019ec0();\n        }\n        else {\n          iVar4 = 0;\n          uVar5 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002bd60(uVar5,uVar3);\n        }\n      }\n      else {\n        iVar4 = 0;\n        uVar5 = dcgettext(0,"file number less than one",5);\n        FUN_0002bd60(uVar5);\n      }\n    }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_0002e4e0();\n      if (-iVar6 < (int)(uint)(uVar3 != 0)) {\n        DAT_000888d8 = 1;\n        iVar1 = iVar6 - ((int)DAT_0008896c >> 0x1f);\n        if (((SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c))) ==\n             (int)(iVar1 - (uint)(uVar3 < DAT_0008896c)) < 0) ||\n           (*(int *)(DAT_00088970 + uVar3 * 8) == 0)) {\n          FUN_00019ec0();\n        }\n        else {\n          iVar4 = 0;\n          uVar5 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002bd60(uVar5,uVar3);\n        }\n      }\n      else {\n        iVar4 = 0;\n        uVar5 = dcgettext(0,"file number less than one",5);\n        FUN_0002bd60(uVar5);\n      }\n    }" ({ "{") (expression_statement "FUN_0002e4e0();" (call_expression "FUN_0002e4e0()" (identifier "FUN_0002e4e0") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (-iVar6 < (int)(uint)(uVar3 != 0)) {\n        DAT_000888d8 = 1;\n        iVar1 = iVar6 - ((int)DAT_0008896c >> 0x1f);\n        if (((SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c))) ==\n             (int)(iVar1 - (uint)(uVar3 < DAT_0008896c)) < 0) ||\n           (*(int *)(DAT_00088970 + uVar3 * 8) == 0)) {\n          FUN_00019ec0();\n        }\n        else {\n          iVar4 = 0;\n          uVar5 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002bd60(uVar5,uVar3);\n        }\n      }\n      else {\n        iVar4 = 0;\n        uVar5 = dcgettext(0,"file number less than one",5);\n        FUN_0002bd60(uVar5);\n      }" (if "if") (parenthesized_expression "(-iVar6 < (int)(uint)(uVar3 != 0))" (( "(") (binary_expression "-iVar6 < (int)(uint)(uVar3 != 0)" (unary_expression "-iVar6" (- "-") (identifier "iVar6")) (< "<") (cast_expression "(int)(uint)(uVar3 != 0)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (call_expression "(uint)(uVar3 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar3 != 0)" (( "(") (binary_expression "uVar3 != 0" (identifier "uVar3") (!= "!=") (number_literal "0")) () ")"))))) () ")")) (compound_statement "{\n        DAT_000888d8 = 1;\n        iVar1 = iVar6 - ((int)DAT_0008896c >> 0x1f);\n        if (((SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c))) ==\n             (int)(iVar1 - (uint)(uVar3 < DAT_0008896c)) < 0) ||\n           (*(int *)(DAT_00088970 + uVar3 * 8) == 0)) {\n          FUN_00019ec0();\n        }\n        else {\n          iVar4 = 0;\n          uVar5 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002bd60(uVar5,uVar3);\n        }\n      }" ({ "{") (expression_statement "DAT_000888d8 = 1;" (assignment_expression "DAT_000888d8 = 1" (identifier "DAT_000888d8") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar1 = iVar6 - ((int)DAT_0008896c >> 0x1f);" (assignment_expression "iVar1 = iVar6 - ((int)DAT_0008896c >> 0x1f)" (identifier "iVar1") (= "=") (binary_expression "iVar6 - ((int)DAT_0008896c >> 0x1f)" (identifier "iVar6") (- "-") (parenthesized_expression "((int)DAT_0008896c >> 0x1f)" (( "(") (binary_expression "(int)DAT_0008896c >> 0x1f" (cast_expression "(int)DAT_0008896c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "DAT_0008896c")) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (if_statement "if (((SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c))) ==\n             (int)(iVar1 - (uint)(uVar3 < DAT_0008896c)) < 0) ||\n           (*(int *)(DAT_00088970 + uVar3 * 8) == 0)) {\n          FUN_00019ec0();\n        }\n        else {\n          iVar4 = 0;\n          uVar5 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002bd60(uVar5,uVar3);\n        }" (if "if") (parenthesized_expression "(((SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c))) ==\n             (int)(iVar1 - (uint)(uVar3 < DAT_0008896c)) < 0) ||\n           (*(int *)(DAT_00088970 + uVar3 * 8) == 0))" (( "(") (binary_expression "((SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c))) ==\n             (int)(iVar1 - (uint)(uVar3 < DAT_0008896c)) < 0) ||\n           (*(int *)(DAT_00088970 + uVar3 * 8) == 0)" (parenthesized_expression "((SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c))) ==\n             (int)(iVar1 - (uint)(uVar3 < DAT_0008896c)) < 0)" (( "(") (binary_expression "(SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c))) ==\n             (int)(iVar1 - (uint)(uVar3 < DAT_0008896c)) < 0" (parenthesized_expression "(SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c)))" (( "(") (binary_expression "SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f) !=\n             SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c))" (call_expression "SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f)" (identifier "SBORROW4") (argument_list "(iVar6,(int)DAT_0008896c >> 0x1f)" (( "(") (identifier "iVar6") (, ",") (binary_expression "(int)DAT_0008896c >> 0x1f" (cast_expression "(int)DAT_0008896c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "DAT_0008896c")) (>> ">>") (number_literal "0x1f")) () ")"))) (!= "!=") (call_expression "SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c))" (identifier "SBORROW4") (argument_list "(iVar1,(uint)(uVar3 < DAT_0008896c))" (( "(") (identifier "iVar1") (, ",") (call_expression "(uint)(uVar3 < DAT_0008896c)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar3 < DAT_0008896c)" (( "(") (binary_expression "uVar3 < DAT_0008896c" (identifier "uVar3") (< "<") (identifier "DAT_0008896c")) () ")"))) () ")")))) () ")")) (== "==") (binary_expression "(int)(iVar1 - (uint)(uVar3 < DAT_0008896c)) < 0" (cast_expression "(int)(iVar1 - (uint)(uVar3 < DAT_0008896c))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(iVar1 - (uint)(uVar3 < DAT_0008896c))" (( "(") (binary_expression "iVar1 - (uint)(uVar3 < DAT_0008896c)" (identifier "iVar1") (- "-") (call_expression "(uint)(uVar3 < DAT_0008896c)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar3 < DAT_0008896c)" (( "(") (binary_expression "uVar3 < DAT_0008896c" (identifier "uVar3") (< "<") (identifier "DAT_0008896c")) () ")")))) () ")"))) (< "<") (number_literal "0"))) () ")")) (|| "||") (parenthesized_expression "(*(int *)(DAT_00088970 + uVar3 * 8) == 0)" (( "(") (binary_expression "*(int *)(DAT_00088970 + uVar3 * 8) == 0" (pointer_expression "*(int *)(DAT_00088970 + uVar3 * 8)" (* "*") (cast_expression "(int *)(DAT_00088970 + uVar3 * 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00088970 + uVar3 * 8)" (( "(") (binary_expression "DAT_00088970 + uVar3 * 8" (identifier "DAT_00088970") (+ "+") (binary_expression "uVar3 * 8" (identifier "uVar3") (* "*") (number_literal "8"))) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          FUN_00019ec0();\n        }" ({ "{") (expression_statement "FUN_00019ec0();" (call_expression "FUN_00019ec0()" (identifier "FUN_00019ec0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n          iVar4 = 0;\n          uVar5 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002bd60(uVar5,uVar3);\n        }" (else "else") (compound_statement "{\n          iVar4 = 0;\n          uVar5 = dcgettext(0,"file number %ld already allocated",5);\n          FUN_0002bd60(uVar5,uVar3);\n        }" ({ "{") (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" (identifier "iVar4") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar5 = dcgettext(0,"file number %ld already allocated",5);" (assignment_expression "uVar5 = dcgettext(0,"file number %ld already allocated",5)" (identifier "uVar5") (= "=") (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_0002bd60(uVar5,uVar3);" (call_expression "FUN_0002bd60(uVar5,uVar3)" (identifier "FUN_0002bd60") (argument_list "(uVar5,uVar3)" (( "(") (identifier "uVar5") (, ",") (identifier "uVar3") () ")"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n        iVar4 = 0;\n        uVar5 = dcgettext(0,"file number less than one",5);\n        FUN_0002bd60(uVar5);\n      }" (else "else") (compound_statement "{\n        iVar4 = 0;\n        uVar5 = dcgettext(0,"file number less than one",5);\n        FUN_0002bd60(uVar5);\n      }" ({ "{") (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" (identifier "iVar4") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar5 = dcgettext(0,"file number less than one",5);" (assignment_expression "uVar5 = dcgettext(0,"file number less than one",5)" (identifier "uVar5") (= "=") (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_0002bd60(uVar5);" (call_expression "FUN_0002bd60(uVar5)" (identifier "FUN_0002bd60") (argument_list "(uVar5)" (( "(") (identifier "uVar5") () ")"))) (; ";")) (} "}")))) (} "}"))) (} "}")))) (return_statement "return iVar4;" (return "return") (identifier "iVar4") (; ";")) (} "}")))

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

char * function_1(void)

{
  int var_12;
  char var_1;
  type_1 var_8;
  char *var_6;
  char *pcVar3;
  int var_9;
  type_2 oVar5;
  int filename_len;
  type_3 uStack_14;
  
  uStack_14 = 0x1b2f9;
  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 {
    oVar5 = var_4();
    var_9 = (int)((type_4)oVar5 >> 0x20);
    var_8 = (type_1)oVar5;
    var_6 = var_5(&filename_len);
    if (var_6 != (char *)0x0) {
      var_7();
      if (-var_9 < (int)(type_1)(var_8 != 0)) {
        debug_type = DEBUG_NONE;
        var_12 = var_9 - ((int)var_11 >> 0x1f);
        if (((var_10(var_9,(int)var_11 >> 0x1f) !=
             var_10(var_12,(type_1)(var_8 < var_11))) ==
             (int)(var_12 - (type_1)(var_8 < var_11)) < 0) || (files[var_8].var_6 == (char *)0x0))
        {
          var_13(var_6,var_8);
        }
        else {
          var_6 = (char *)0x0;
          pcVar3 = (char *)var_14(0,"file number %ld already allocated",5);
          var_15(pcVar3,var_8);
        }
      }
      else {
        var_6 = (char *)0x0;
        pcVar3 = (char *)var_14(0,"file number less than one",5);
        var_15(pcVar3);
      }
    }
  }
  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: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (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 (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (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: (unary_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (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: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))))))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))))) right: (number_literal)))) 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 (call_expression function: (identifier) arguments: (argument_list)))) alternative: (else_clause (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 (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)))))))))))) (return_statement (identifier)))))

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

int MASKED(void)

{
  int iVar1;
  char cVar2;
  uint uVar3;
  int iVar4;
  undefined4 uVar5;
  int iVar6;
  undefined8 uVar7;
  undefined1 local_20 [12];
  undefined4 uStack_14;
  
  uStack_14 = 0x1b2f9;
  cVar2 = *DAT_00089978;
  if (cVar2 == ' ') {
    cVar2 = DAT_00089978[1];
    DAT_00089978 = DAT_00089978 + 1;
  }
  if (cVar2 == '\"') {
    iVar4 = 0;
    FUN_00033ac0(0);
  }
  else {
    uVar7 = FUN_0002d860();
    iVar6 = (int)((ulonglong)uVar7 >> 0x20);
    uVar3 = (uint)uVar7;
    iVar4 = FUN_00033cf0(local_20);
    if (iVar4 != 0) {
      FUN_0002e4e0();
      if (-iVar6 < (int)(uint)(uVar3 != 0)) {
        DAT_000888d8 = 1;
        iVar1 = iVar6 - ((int)DAT_0008896c >> 0x1f);
        if (((SBORROW4(iVar6,(int)DAT_0008896c >> 0x1f) !=
             SBORROW4(iVar1,(uint)(uVar3 < DAT_0008896c))) ==
             (int)(iVar1 - (uint)(uVar3 < DAT_0008896c)) < 0) ||
           (*(int *)(DAT_00088970 + uVar3 * 8) == 0)) {
          FUN_00019ec0();
        }
        else {
          iVar4 = 0;
          uVar5 = dcgettext(0,"file number %ld already allocated",5);
          FUN_0002bd60(uVar5,uVar3);
        }
      }
      else {
        iVar4 = 0;
        uVar5 = dcgettext(0,"file number less than one",5);
        FUN_0002bd60(uVar5);
      }
    }
  }
  return iVar4;
}

