
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */

Object * __thiscall
gold::make_elf_object
          (gold *this,string *name,Input_file *input_file,off_t offset,uchar *p,
          section_offset_type bytes,bool *punconfigured)

{
  ushort uVar1;
  Target *pTVar2;
  undefined4 uVar3;
  _Alloc_hider _Var4;
  bool bVar5;
  Target *pTVar6;
  int iVar7;
  char *pcVar8;
  int unaff_EDI;
  string *in_stack_ffffff9c;
  Object *local_54;
  bool big_endian;
  int size;
  Ehdr<32,_false> ehdr;
  string error;
  
  __x86_get_pc_thunk_di();
  if (bytes != 0) {
    *(undefined1 *)bytes = 0;
  }
  error._M_string_length = 0;
  error.field_2._M_local_buf[0] = '\0';
  big_endian = false;
  size = 0;
  error._M_dataplus._M_p = (pointer)&error.field_2;
                    /* try { // try from 000bf8f1 to 000bfbd7 has its CatchHandler @ 000bfbd8 */
  bVar5 = elfcpp::Elf_recognizer::is_valid_header
                    ((Elf_recognizer *)offset._4_4_,p,CONCAT44(&size,(int)p >> 0x1f),
                     (int *)&big_endian,(bool *)&error,in_stack_ffffff9c);
  _Var4._M_p = error._M_dataplus._M_p;
  if (bVar5) {
    if (size == 0x20) {
      if (big_endian == false) {
        ehdr.p_ = offset._4_4_;
        pTVar6 = select_target((Input_file *)name,CONCAT44((undefined4)offset,input_file),
                               (uint)(offset._4_4_)->e_machine,0x20,false,
                               (uint)(offset._4_4_)->e_ident[7],(uint)(offset._4_4_)->e_ident[8]);
        if (pTVar6 == (Target *)0x0) {
          uVar1 = (ehdr.p_)->e_machine;
          uVar3 = *(undefined4 *)this;
          pcVar8 = (char *)gettext(unaff_EDI + 0x1972f7);
                    /* WARNING: Subroutine does not return */
          gold_fatal(pcVar8,uVar3,(uint)uVar1);
        }
        pTVar2 = *(Target **)
                  (*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);
        if (pTVar2 == (Target *)0x0) {
          set_parameters_target(pTVar6);
        }
        else if (pTVar6 != pTVar2) goto LAB_000bfac0;
        local_54 = (Object *)
                   (*pTVar6->_vptr_Target[0x17])
                             (pTVar6,this,name,input_file,(undefined4)offset,&ehdr);
        goto LAB_000bf930;
      }
      if (bytes == 0) {
        local_54 = *(Object **)this;
        iVar7 = unaff_EDI + 0x1972bf;
        goto LAB_000bfb11;
      }
    }
    else {
      if (size != 0x40) {
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable((char *)(unaff_EDI + 0x19719f),0xd94,(char *)(unaff_EDI + 0x198253));
      }
      if (big_endian == false) {
        ehdr.p_ = offset._4_4_;
        pTVar6 = select_target((Input_file *)name,CONCAT44((undefined4)offset,input_file),
                               (uint)(offset._4_4_)->e_machine,0x40,false,
                               (uint)(offset._4_4_)->e_ident[7],(uint)(offset._4_4_)->e_ident[8]);
        if (pTVar6 == (Target *)0x0) {
          uVar1 = (ehdr.p_)->e_machine;
          uVar3 = *(undefined4 *)this;
          pcVar8 = (char *)gettext(unaff_EDI + 0x1972f7);
                    /* WARNING: Subroutine does not return */
          gold_fatal(pcVar8,uVar3,(uint)uVar1);
        }
        pTVar2 = *(Target **)
                  (*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);
        if (pTVar2 == (Target *)0x0) {
          set_parameters_target(pTVar6);
        }
        else if (pTVar6 != pTVar2) {
LAB_000bfac0:
          if (bytes == 0) {
            uVar3 = *(undefined4 *)this;
            pcVar8 = (char *)gettext(unaff_EDI + 0x1942ca);
            gold_error(pcVar8,uVar3);
            local_54 = (Object *)0x0;
            goto LAB_000bf930;
          }
          goto LAB_000bf923;
        }
        local_54 = (Object *)
                   (*pTVar6->_vptr_Target[0x18])
                             (pTVar6,this,name,input_file,(undefined4)offset,&ehdr);
        goto LAB_000bf930;
      }
      if (bytes == 0) {
        local_54 = *(Object **)this;
        iVar7 = unaff_EDI + 0x19731f;
LAB_000bfb11:
        pcVar8 = (char *)gettext(iVar7);
        gold_error(pcVar8,local_54);
        goto LAB_000bfaa7;
      }
    }
LAB_000bf923:
    local_54 = (Object *)0x0;
    *(undefined1 *)bytes = 1;
  }
  else {
    uVar3 = *(undefined4 *)this;
    pcVar8 = (char *)gettext(unaff_EDI + 0x196f9c);
    gold_error(pcVar8,uVar3,_Var4._M_p);
LAB_000bfaa7:
    local_54 = (Object *)0x0;
  }
LAB_000bf930:
  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
       *)error._M_dataplus._M_p != &error.field_2) {
    operator_delete(error._M_dataplus._M_p);
  }
  return local_54;
}



undefined4
FUN_000bf890(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,
            int param_5,int param_6,undefined1 *param_7)

{
  undefined2 uVar1;
  int *piVar2;
  undefined1 *puVar3;
  char cVar4;
  int *piVar5;
  undefined4 uVar6;
  int iVar7;
  undefined4 uVar8;
  int unaff_EDI;
  undefined4 local_54;
  char local_3d;
  int local_3c;
  int local_38;
  undefined1 *local_34;
  undefined4 local_30;
  undefined1 local_2c [28];
  
  FUN_00058c4a();
  if (param_7 != (undefined1 *)0x0) {
    *param_7 = 0;
  }
  local_30 = 0;
  local_2c[0] = 0;
  local_3d = '\0';
  local_3c = 0;
  local_34 = local_2c;
                    /* try { // try from 000bf8f1 to 000bfbd7 has its CatchHandler @ 000bfbd8 */
  cVar4 = FUN_000991b0(param_5,param_6,param_6 >> 0x1f,&local_3c,&local_3d,&local_34);
  puVar3 = local_34;
  if (cVar4 == '\0') {
    uVar8 = *param_1;
    uVar6 = gettext(unaff_EDI + 0x196f9c);
    FUN_000828d0(uVar6,uVar8,puVar3);
LAB_000bfaa7:
    local_54 = 0;
  }
  else {
    if (local_3c == 0x20) {
      if (local_3d == '\0') {
        local_38 = param_5;
        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x20,0,
                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));
        if (piVar5 == (int *)0x0) {
          uVar1 = *(undefined2 *)(local_38 + 0x12);
          uVar8 = *param_1;
          uVar6 = gettext(unaff_EDI + 0x1972f7);
                    /* WARNING: Subroutine does not return */
          FUN_00082870(uVar6,uVar8,uVar1);
        }
        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);
        if (piVar2 == (int *)0x0) {
          FUN_0011a510(piVar5);
        }
        else if (piVar5 != piVar2) goto LAB_000bfac0;
        local_54 = (**(code **)(*piVar5 + 0x5c))(piVar5,param_1,param_2,param_3,param_4,&local_38);
        goto LAB_000bf930;
      }
      if (param_7 == (undefined1 *)0x0) {
        local_54 = *param_1;
        iVar7 = unaff_EDI + 0x1972bf;
        goto LAB_000bfb11;
      }
    }
    else {
      if (local_3c != 0x40) {
                    /* WARNING: Subroutine does not return */
        FUN_0008b620(unaff_EDI + 0x19719f,0xd94,&UNK_00198253 + unaff_EDI,local_3c);
      }
      if (local_3d == '\0') {
        local_38 = param_5;
        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x40,0,
                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));
        if (piVar5 == (int *)0x0) {
          uVar1 = *(undefined2 *)(local_38 + 0x12);
          uVar8 = *param_1;
          uVar6 = gettext(unaff_EDI + 0x1972f7);
                    /* WARNING: Subroutine does not return */
          FUN_00082870(uVar6,uVar8,uVar1);
        }
        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);
        if (piVar2 == (int *)0x0) {
          FUN_0011a510(piVar5);
        }
        else if (piVar5 != piVar2) {
LAB_000bfac0:
          if (param_7 == (undefined1 *)0x0) {
            uVar8 = *param_1;
            uVar6 = gettext(unaff_EDI + 0x1942ca);
            FUN_000828d0(uVar6,uVar8);
            local_54 = 0;
            goto LAB_000bf930;
          }
          goto LAB_000bf923;
        }
        local_54 = (**(code **)(*piVar5 + 0x60))(piVar5,param_1,param_2,param_3,param_4,&local_38);
        goto LAB_000bf930;
      }
      if (param_7 == (undefined1 *)0x0) {
        local_54 = *param_1;
        iVar7 = unaff_EDI + 0x19731f;
LAB_000bfb11:
        uVar8 = gettext(iVar7);
        FUN_000828d0(uVar8,local_54);
        goto LAB_000bfaa7;
      }
    }
LAB_000bf923:
    local_54 = 0;
    *param_7 = 1;
  }
LAB_000bf930:
  if (local_34 != local_2c) {
    FUN_001ac470(local_34);
  }
  return local_54;
}


PUSH EBP
MOV EBP,ESP
PUSH EDI
CALL 0x00058c4a
ADD EDI,0x27f767
PUSH ESI
PUSH EBX
SUB ESP,0x4c
MOV EAX,dword ptr [EBP + 0x10]
MOV EDX,dword ptr [EBP + 0x14]
MOV dword ptr [EBP + -0x50],EAX
MOV EAX,dword ptr [EBP + 0x20]
MOV dword ptr [EBP + -0x4c],EDX
TEST EAX,EAX
JZ 0x000bf8bd
MOV EAX,dword ptr [EBP + 0x20]
MOV byte ptr [EAX],0x0
SUB ESP,0x8
LEA EAX,[EBP + -0x30]
LEA ESI,[EBP + -0x28]
MOV dword ptr [EBP + -0x2c],0x0
PUSH EAX
LEA EAX,[EBP + -0x39]
PUSH EAX
LEA EAX,[EBP + -0x38]
PUSH EAX
MOV EAX,dword ptr [EBP + 0x1c]
MOV dword ptr [EBP + -0x30],ESI
CDQ
MOV byte ptr [EBP + -0x28],0x0
PUSH EDX
PUSH EAX
PUSH dword ptr [EBP + 0x18]
MOV byte ptr [EBP + -0x39],0x0
MOV dword ptr [EBP + -0x38],0x0
CALL 0x000991b0
ADD ESP,0x20
TEST AL,AL
JZ 0x000bfa78
MOV EAX,dword ptr [EBP + -0x38]
CMP EAX,0x20
JZ 0x000bf950
CMP EAX,0x40
JNZ 0x000bfb5b
CMP byte ptr [EBP + -0x39],0x0
JZ 0x000bf980
MOV EBX,dword ptr [EBP + 0x20]
TEST EBX,EBX
JZ 0x000bfb00
MOV EAX,dword ptr [EBP + 0x20]
MOV dword ptr [EBP + -0x50],0x0
MOV byte ptr [EAX],0x1
MOV EDX,dword ptr [EBP + -0x30]
CMP EDX,ESI
JZ 0x000bf945
SUB ESP,0xc
MOV EBX,EDI
PUSH EDX
CALL 0x001ac470
ADD ESP,0x10
MOV EAX,dword ptr [EBP + -0x50]
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
CMP byte ptr [EBP + -0x39],0x0
JZ 0x000bfa00
MOV EAX,dword ptr [EBP + 0x20]
TEST EAX,EAX
JNZ 0x000bf923
MOV EAX,dword ptr [EBP + 0x8]
SUB ESP,0xc
MOV EAX,dword ptr [EAX]
MOV dword ptr [EBP + -0x50],EAX
LEA EAX,[EDI + 0xfff17b58]
JMP 0x000bfb11
MOV EAX,dword ptr [EBP + 0x18]
MOV EBX,EDI
MOV dword ptr [EBP + -0x34],EAX
MOVZX EAX,byte ptr [EAX + 0x8]
PUSH EAX
MOV EAX,dword ptr [EBP + 0x18]
MOVZX EAX,byte ptr [EAX + 0x7]
PUSH EAX
MOV EAX,dword ptr [EBP + 0x18]
PUSH 0x0
PUSH 0x40
MOVZX EAX,word ptr [EAX + 0x12]
PUSH EAX
PUSH dword ptr [EBP + -0x4c]
PUSH dword ptr [EBP + -0x50]
PUSH dword ptr [EBP + 0xc]
CALL 0x00160240
MOV dword ptr [EBP + -0x54],EAX
ADD ESP,0x20
TEST EAX,EAX
JZ 0x000bfb76
LEA EAX,[EDI + 0x2f0]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JZ 0x000bfb30
CMP dword ptr [EBP + -0x54],EAX
JNZ 0x000bfac0
MOV ECX,dword ptr [EBP + -0x54]
SUB ESP,0x8
LEA EDX,[EBP + -0x34]
MOV EAX,dword ptr [ECX]
PUSH EDX
PUSH dword ptr [EBP + -0x4c]
PUSH dword ptr [EBP + -0x50]
PUSH dword ptr [EBP + 0xc]
PUSH dword ptr [EBP + 0x8]
PUSH ECX
CALL dword ptr [EAX + 0x60]
MOV dword ptr [EBP + -0x50],EAX
ADD ESP,0x20
JMP 0x000bf930
MOV EAX,dword ptr [EBP + 0x18]
MOV EBX,EDI
MOV dword ptr [EBP + -0x34],EAX
MOVZX EAX,byte ptr [EAX + 0x8]
PUSH EAX
MOV EAX,dword ptr [EBP + 0x18]
MOVZX EAX,byte ptr [EAX + 0x7]
PUSH EAX
MOV EAX,dword ptr [EBP + 0x18]
PUSH 0x0
PUSH 0x20
MOVZX EAX,word ptr [EAX + 0x12]
PUSH EAX
PUSH dword ptr [EBP + -0x4c]
PUSH dword ptr [EBP + -0x50]
PUSH dword ptr [EBP + 0xc]
CALL 0x00160240
MOV dword ptr [EBP + -0x54],EAX
ADD ESP,0x20
TEST EAX,EAX
JZ 0x000bfba7
LEA EAX,[EDI + 0x2f0]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JZ 0x000bfb48
CMP dword ptr [EBP + -0x54],EAX
JNZ 0x000bfac0
MOV ECX,dword ptr [EBP + -0x54]
SUB ESP,0x8
LEA EDX,[EBP + -0x34]
MOV EAX,dword ptr [ECX]
PUSH EDX
PUSH dword ptr [EBP + -0x4c]
PUSH dword ptr [EBP + -0x50]
PUSH dword ptr [EBP + 0xc]
PUSH dword ptr [EBP + 0x8]
PUSH ECX
CALL dword ptr [EAX + 0x5c]
JMP 0x000bf9f5
MOV EAX,dword ptr [EBP + 0x8]
SUB ESP,0xc
MOV EDX,dword ptr [EBP + -0x30]
MOV EBX,EDI
MOV EAX,dword ptr [EAX]
MOV dword ptr [EBP + -0x54],EDX
MOV dword ptr [EBP + -0x50],EAX
LEA EAX,[EDI + 0xfff17835]
PUSH EAX
CALL 0x000283c0
MOV EDX,dword ptr [EBP + -0x54]
ADD ESP,0xc
PUSH EDX
PUSH dword ptr [EBP + -0x50]
PUSH EAX
CALL 0x000828d0
ADD ESP,0x10
MOV dword ptr [EBP + -0x50],0x0
JMP 0x000bf930
MOV EBX,dword ptr [EBP + 0x20]
TEST EBX,EBX
JNZ 0x000bf923
MOV EAX,dword ptr [EBP + 0x8]
SUB ESP,0xc
MOV EBX,EDI
MOV EAX,dword ptr [EAX]
MOV dword ptr [EBP + -0x50],EAX
LEA EAX,[EDI + 0xfff14b63]
PUSH EAX
CALL 0x000283c0
POP EDX
POP ECX
PUSH dword ptr [EBP + -0x50]
PUSH EAX
CALL 0x000828d0
ADD ESP,0x10
MOV dword ptr [EBP + -0x50],0x0
JMP 0x000bf930
MOV EAX,dword ptr [EBP + 0x8]
SUB ESP,0xc
MOV EAX,dword ptr [EAX]
MOV dword ptr [EBP + -0x50],EAX
LEA EAX,[EDI + 0xfff17bb8]
PUSH EAX
MOV EBX,EDI
CALL 0x000283c0
POP EDX
POP ECX
PUSH dword ptr [EBP + -0x50]
PUSH EAX
CALL 0x000828d0
JMP 0x000bfaa7
SUB ESP,0xc
PUSH dword ptr [EBP + -0x54]
CALL 0x0011a510
ADD ESP,0x10
JMP 0x000bf9d9
SUB ESP,0xc
PUSH dword ptr [EBP + -0x54]
CALL 0x0011a510
ADD ESP,0x10
JMP 0x000bfa55
PUSH EAX
LEA EAX,[EDI + 0xfff18aec]
MOV EBX,EDI
PUSH EAX
LEA EAX,[EDI + 0xfff17a38]
PUSH 0xd94
PUSH EAX
CALL 0x0008b620
MOV EAX,dword ptr [EBP + -0x34]
SUB ESP,0xc
MOVZX EDX,word ptr [EAX + 0x12]
MOV EAX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EAX]
MOV dword ptr [EBP + -0x54],EDX
MOV dword ptr [EBP + -0x50],EAX
LEA EAX,[EDI + 0xfff17b90]
PUSH EAX
CALL 0x000283c0
MOV EDX,dword ptr [EBP + -0x54]
ADD ESP,0xc
PUSH EDX
PUSH dword ptr [EBP + -0x50]
PUSH EAX
CALL 0x00082870
MOV EAX,dword ptr [EBP + -0x34]
SUB ESP,0xc
MOVZX EDX,word ptr [EAX + 0x12]
MOV EAX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EAX]
MOV dword ptr [EBP + -0x54],EDX
MOV dword ptr [EBP + -0x50],EAX
LEA EAX,[EDI + 0xfff17b90]
PUSH EAX
CALL 0x000283c0
MOV EDX,dword ptr [EBP + -0x54]
ADD ESP,0xc
PUSH EDX
PUSH dword ptr [EBP + -0x50]
PUSH EAX
CALL 0x00082870
(translation_unit "undefined4\nFUN_000bf890(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n            int param_5,int param_6,undefined1 *param_7)\n\n{\n  undefined2 uVar1;\n  int *piVar2;\n  undefined1 *puVar3;\n  char cVar4;\n  int *piVar5;\n  undefined4 uVar6;\n  int iVar7;\n  undefined4 uVar8;\n  int unaff_EDI;\n  undefined4 local_54;\n  char local_3d;\n  int local_3c;\n  int local_38;\n  undefined1 *local_34;\n  undefined4 local_30;\n  undefined1 local_2c [28];\n  \n  FUN_00058c4a();\n  if (param_7 != (undefined1 *)0x0) {\n    *param_7 = 0;\n  }\n  local_30 = 0;\n  local_2c[0] = 0;\n  local_3d = '\0';\n  local_3c = 0;\n  local_34 = local_2c;\n                    /* try { // try from 000bf8f1 to 000bfbd7 has its CatchHandler @ 000bfbd8 */\n  cVar4 = FUN_000991b0(param_5,param_6,param_6 >> 0x1f,&local_3c,&local_3d,&local_34);\n  puVar3 = local_34;\n  if (cVar4 == '\0') {\n    uVar8 = *param_1;\n    uVar6 = gettext(unaff_EDI + 0x196f9c);\n    FUN_000828d0(uVar6,uVar8,puVar3);\nLAB_000bfaa7:\n    local_54 = 0;\n  }\n  else {\n    if (local_3c == 0x20) {\n      if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x20,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    /* WARNING: Subroutine does not return */\n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) goto LAB_000bfac0;\n        local_54 = (**(code **)(*piVar5 + 0x5c))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }\n      if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x1972bf;\n        goto LAB_000bfb11;\n      }\n    }\n    else {\n      if (local_3c != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620(unaff_EDI + 0x19719f,0xd94,&UNK_00198253 + unaff_EDI,local_3c);\n      }\n      if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x40,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    /* WARNING: Subroutine does not return */\n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) {\nLAB_000bfac0:\n          if (param_7 == (undefined1 *)0x0) {\n            uVar8 = *param_1;\n            uVar6 = gettext(unaff_EDI + 0x1942ca);\n            FUN_000828d0(uVar6,uVar8);\n            local_54 = 0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }\n        local_54 = (**(code **)(*piVar5 + 0x60))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }\n      if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x19731f;\nLAB_000bfb11:\n        uVar8 = gettext(iVar7);\n        FUN_000828d0(uVar8,local_54);\n        goto LAB_000bfaa7;\n      }\n    }\nLAB_000bf923:\n    local_54 = 0;\n    *param_7 = 1;\n  }\nLAB_000bf930:\n  if (local_34 != local_2c) {\n    FUN_001ac470(local_34);\n  }\n  return local_54;\n}\n\n" (function_definition "undefined4\nFUN_000bf890(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n            int param_5,int param_6,undefined1 *param_7)\n\n{\n  undefined2 uVar1;\n  int *piVar2;\n  undefined1 *puVar3;\n  char cVar4;\n  int *piVar5;\n  undefined4 uVar6;\n  int iVar7;\n  undefined4 uVar8;\n  int unaff_EDI;\n  undefined4 local_54;\n  char local_3d;\n  int local_3c;\n  int local_38;\n  undefined1 *local_34;\n  undefined4 local_30;\n  undefined1 local_2c [28];\n  \n  FUN_00058c4a();\n  if (param_7 != (undefined1 *)0x0) {\n    *param_7 = 0;\n  }\n  local_30 = 0;\n  local_2c[0] = 0;\n  local_3d = '\0';\n  local_3c = 0;\n  local_34 = local_2c;\n                    /* try { // try from 000bf8f1 to 000bfbd7 has its CatchHandler @ 000bfbd8 */\n  cVar4 = FUN_000991b0(param_5,param_6,param_6 >> 0x1f,&local_3c,&local_3d,&local_34);\n  puVar3 = local_34;\n  if (cVar4 == '\0') {\n    uVar8 = *param_1;\n    uVar6 = gettext(unaff_EDI + 0x196f9c);\n    FUN_000828d0(uVar6,uVar8,puVar3);\nLAB_000bfaa7:\n    local_54 = 0;\n  }\n  else {\n    if (local_3c == 0x20) {\n      if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x20,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    /* WARNING: Subroutine does not return */\n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) goto LAB_000bfac0;\n        local_54 = (**(code **)(*piVar5 + 0x5c))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }\n      if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x1972bf;\n        goto LAB_000bfb11;\n      }\n    }\n    else {\n      if (local_3c != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620(unaff_EDI + 0x19719f,0xd94,&UNK_00198253 + unaff_EDI,local_3c);\n      }\n      if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x40,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    /* WARNING: Subroutine does not return */\n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) {\nLAB_000bfac0:\n          if (param_7 == (undefined1 *)0x0) {\n            uVar8 = *param_1;\n            uVar6 = gettext(unaff_EDI + 0x1942ca);\n            FUN_000828d0(uVar6,uVar8);\n            local_54 = 0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }\n        local_54 = (**(code **)(*piVar5 + 0x60))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }\n      if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x19731f;\nLAB_000bfb11:\n        uVar8 = gettext(iVar7);\n        FUN_000828d0(uVar8,local_54);\n        goto LAB_000bfaa7;\n      }\n    }\nLAB_000bf923:\n    local_54 = 0;\n    *param_7 = 1;\n  }\nLAB_000bf930:\n  if (local_34 != local_2c) {\n    FUN_001ac470(local_34);\n  }\n  return local_54;\n}" type_identifier (function_declarator "FUN_000bf890(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n            int param_5,int param_6,undefined1 *param_7)" identifier (parameter_list "(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n            int param_5,int param_6,undefined1 *param_7)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "int param_6" primitive_type identifier) , (parameter_declaration "undefined1 *param_7" type_identifier (pointer_declarator "*param_7" * identifier)) ))) (compound_statement "{\n  undefined2 uVar1;\n  int *piVar2;\n  undefined1 *puVar3;\n  char cVar4;\n  int *piVar5;\n  undefined4 uVar6;\n  int iVar7;\n  undefined4 uVar8;\n  int unaff_EDI;\n  undefined4 local_54;\n  char local_3d;\n  int local_3c;\n  int local_38;\n  undefined1 *local_34;\n  undefined4 local_30;\n  undefined1 local_2c [28];\n  \n  FUN_00058c4a();\n  if (param_7 != (undefined1 *)0x0) {\n    *param_7 = 0;\n  }\n  local_30 = 0;\n  local_2c[0] = 0;\n  local_3d = '\0';\n  local_3c = 0;\n  local_34 = local_2c;\n                    /* try { // try from 000bf8f1 to 000bfbd7 has its CatchHandler @ 000bfbd8 */\n  cVar4 = FUN_000991b0(param_5,param_6,param_6 >> 0x1f,&local_3c,&local_3d,&local_34);\n  puVar3 = local_34;\n  if (cVar4 == '\0') {\n    uVar8 = *param_1;\n    uVar6 = gettext(unaff_EDI + 0x196f9c);\n    FUN_000828d0(uVar6,uVar8,puVar3);\nLAB_000bfaa7:\n    local_54 = 0;\n  }\n  else {\n    if (local_3c == 0x20) {\n      if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x20,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    /* WARNING: Subroutine does not return */\n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) goto LAB_000bfac0;\n        local_54 = (**(code **)(*piVar5 + 0x5c))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }\n      if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x1972bf;\n        goto LAB_000bfb11;\n      }\n    }\n    else {\n      if (local_3c != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620(unaff_EDI + 0x19719f,0xd94,&UNK_00198253 + unaff_EDI,local_3c);\n      }\n      if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x40,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    /* WARNING: Subroutine does not return */\n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) {\nLAB_000bfac0:\n          if (param_7 == (undefined1 *)0x0) {\n            uVar8 = *param_1;\n            uVar6 = gettext(unaff_EDI + 0x1942ca);\n            FUN_000828d0(uVar6,uVar8);\n            local_54 = 0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }\n        local_54 = (**(code **)(*piVar5 + 0x60))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }\n      if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x19731f;\nLAB_000bfb11:\n        uVar8 = gettext(iVar7);\n        FUN_000828d0(uVar8,local_54);\n        goto LAB_000bfaa7;\n      }\n    }\nLAB_000bf923:\n    local_54 = 0;\n    *param_7 = 1;\n  }\nLAB_000bf930:\n  if (local_34 != local_2c) {\n    FUN_001ac470(local_34);\n  }\n  return local_54;\n}" { (declaration "undefined2 uVar1;" type_identifier identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "undefined1 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "undefined4 local_54;" type_identifier identifier ;) (declaration "char local_3d;" primitive_type identifier ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "int local_38;" primitive_type identifier ;) (declaration "undefined1 *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "undefined1 local_2c [28];" type_identifier (array_declarator "local_2c [28]" identifier [ number_literal ]) ;) (expression_statement "FUN_00058c4a();" (call_expression "FUN_00058c4a()" identifier (argument_list "()" ( ))) ;) (if_statement "if (param_7 != (undefined1 *)0x0) {\n    *param_7 = 0;\n  }" if (parenthesized_expression "(param_7 != (undefined1 *)0x0)" ( (binary_expression "param_7 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *param_7 = 0;\n  }" { (expression_statement "*param_7 = 0;" (assignment_expression "*param_7 = 0" (pointer_expression "*param_7" * identifier) = number_literal) ;) })) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "local_2c[0] = 0;" (assignment_expression "local_2c[0] = 0" (subscript_expression "local_2c[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_3d = '\0';" (assignment_expression "local_3d = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" identifier = number_literal) ;) (expression_statement "local_34 = local_2c;" (assignment_expression "local_34 = local_2c" identifier = identifier) ;) comment (expression_statement "cVar4 = FUN_000991b0(param_5,param_6,param_6 >> 0x1f,&local_3c,&local_3d,&local_34);" (assignment_expression "cVar4 = FUN_000991b0(param_5,param_6,param_6 >> 0x1f,&local_3c,&local_3d,&local_34)" identifier = (call_expression "FUN_000991b0(param_5,param_6,param_6 >> 0x1f,&local_3c,&local_3d,&local_34)" identifier (argument_list "(param_5,param_6,param_6 >> 0x1f,&local_3c,&local_3d,&local_34)" ( identifier , identifier , (binary_expression "param_6 >> 0x1f" identifier >> number_literal) , (pointer_expression "&local_3c" & identifier) , (pointer_expression "&local_3d" & identifier) , (pointer_expression "&local_34" & identifier) )))) ;) (expression_statement "puVar3 = local_34;" (assignment_expression "puVar3 = local_34" identifier = identifier) ;) (if_statement "if (cVar4 == '\0') {\n    uVar8 = *param_1;\n    uVar6 = gettext(unaff_EDI + 0x196f9c);\n    FUN_000828d0(uVar6,uVar8,puVar3);\nLAB_000bfaa7:\n    local_54 = 0;\n  }\n  else {\n    if (local_3c == 0x20) {\n      if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x20,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    /* WARNING: Subroutine does not return */\n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) goto LAB_000bfac0;\n        local_54 = (**(code **)(*piVar5 + 0x5c))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }\n      if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x1972bf;\n        goto LAB_000bfb11;\n      }\n    }\n    else {\n      if (local_3c != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620(unaff_EDI + 0x19719f,0xd94,&UNK_00198253 + unaff_EDI,local_3c);\n      }\n      if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x40,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    /* WARNING: Subroutine does not return */\n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) {\nLAB_000bfac0:\n          if (param_7 == (undefined1 *)0x0) {\n            uVar8 = *param_1;\n            uVar6 = gettext(unaff_EDI + 0x1942ca);\n            FUN_000828d0(uVar6,uVar8);\n            local_54 = 0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }\n        local_54 = (**(code **)(*piVar5 + 0x60))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }\n      if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x19731f;\nLAB_000bfb11:\n        uVar8 = gettext(iVar7);\n        FUN_000828d0(uVar8,local_54);\n        goto LAB_000bfaa7;\n      }\n    }\nLAB_000bf923:\n    local_54 = 0;\n    *param_7 = 1;\n  }" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    uVar8 = *param_1;\n    uVar6 = gettext(unaff_EDI + 0x196f9c);\n    FUN_000828d0(uVar6,uVar8,puVar3);\nLAB_000bfaa7:\n    local_54 = 0;\n  }" { (expression_statement "uVar8 = *param_1;" (assignment_expression "uVar8 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar6 = gettext(unaff_EDI + 0x196f9c);" (assignment_expression "uVar6 = gettext(unaff_EDI + 0x196f9c)" identifier = (call_expression "gettext(unaff_EDI + 0x196f9c)" identifier (argument_list "(unaff_EDI + 0x196f9c)" ( (binary_expression "unaff_EDI + 0x196f9c" identifier + number_literal) )))) ;) (expression_statement "FUN_000828d0(uVar6,uVar8,puVar3);" (call_expression "FUN_000828d0(uVar6,uVar8,puVar3)" identifier (argument_list "(uVar6,uVar8,puVar3)" ( identifier , identifier , identifier ))) ;) (labeled_statement "LAB_000bfaa7:\n    local_54 = 0;" statement_identifier : (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;)) }) (else_clause "else {\n    if (local_3c == 0x20) {\n      if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x20,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    /* WARNING: Subroutine does not return */\n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) goto LAB_000bfac0;\n        local_54 = (**(code **)(*piVar5 + 0x5c))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }\n      if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x1972bf;\n        goto LAB_000bfb11;\n      }\n    }\n    else {\n      if (local_3c != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620(unaff_EDI + 0x19719f,0xd94,&UNK_00198253 + unaff_EDI,local_3c);\n      }\n      if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x40,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    /* WARNING: Subroutine does not return */\n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) {\nLAB_000bfac0:\n          if (param_7 == (undefined1 *)0x0) {\n            uVar8 = *param_1;\n            uVar6 = gettext(unaff_EDI + 0x1942ca);\n            FUN_000828d0(uVar6,uVar8);\n            local_54 = 0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }\n        local_54 = (**(code **)(*piVar5 + 0x60))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }\n      if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x19731f;\nLAB_000bfb11:\n        uVar8 = gettext(iVar7);\n        FUN_000828d0(uVar8,local_54);\n        goto LAB_000bfaa7;\n      }\n    }\nLAB_000bf923:\n    local_54 = 0;\n    *param_7 = 1;\n  }" else (compound_statement "{\n    if (local_3c == 0x20) {\n      if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x20,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    /* WARNING: Subroutine does not return */\n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) goto LAB_000bfac0;\n        local_54 = (**(code **)(*piVar5 + 0x5c))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }\n      if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x1972bf;\n        goto LAB_000bfb11;\n      }\n    }\n    else {\n      if (local_3c != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620(unaff_EDI + 0x19719f,0xd94,&UNK_00198253 + unaff_EDI,local_3c);\n      }\n      if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x40,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    /* WARNING: Subroutine does not return */\n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) {\nLAB_000bfac0:\n          if (param_7 == (undefined1 *)0x0) {\n            uVar8 = *param_1;\n            uVar6 = gettext(unaff_EDI + 0x1942ca);\n            FUN_000828d0(uVar6,uVar8);\n            local_54 = 0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }\n        local_54 = (**(code **)(*piVar5 + 0x60))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }\n      if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x19731f;\nLAB_000bfb11:\n        uVar8 = gettext(iVar7);\n        FUN_000828d0(uVar8,local_54);\n        goto LAB_000bfaa7;\n      }\n    }\nLAB_000bf923:\n    local_54 = 0;\n    *param_7 = 1;\n  }" { (if_statement "if (local_3c == 0x20) {\n      if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x20,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    /* WARNING: Subroutine does not return */\n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) goto LAB_000bfac0;\n        local_54 = (**(code **)(*piVar5 + 0x5c))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }\n      if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x1972bf;\n        goto LAB_000bfb11;\n      }\n    }\n    else {\n      if (local_3c != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620(unaff_EDI + 0x19719f,0xd94,&UNK_00198253 + unaff_EDI,local_3c);\n      }\n      if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x40,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    /* WARNING: Subroutine does not return */\n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) {\nLAB_000bfac0:\n          if (param_7 == (undefined1 *)0x0) {\n            uVar8 = *param_1;\n            uVar6 = gettext(unaff_EDI + 0x1942ca);\n            FUN_000828d0(uVar6,uVar8);\n            local_54 = 0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }\n        local_54 = (**(code **)(*piVar5 + 0x60))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }\n      if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x19731f;\nLAB_000bfb11:\n        uVar8 = gettext(iVar7);\n        FUN_000828d0(uVar8,local_54);\n        goto LAB_000bfaa7;\n      }\n    }" if (parenthesized_expression "(local_3c == 0x20)" ( (binary_expression "local_3c == 0x20" identifier == number_literal) )) (compound_statement "{\n      if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x20,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    /* WARNING: Subroutine does not return */\n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) goto LAB_000bfac0;\n        local_54 = (**(code **)(*piVar5 + 0x5c))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }\n      if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x1972bf;\n        goto LAB_000bfb11;\n      }\n    }" { (if_statement "if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x20,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    /* WARNING: Subroutine does not return */\n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) goto LAB_000bfac0;\n        local_54 = (**(code **)(*piVar5 + 0x5c))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }" if (parenthesized_expression "(local_3d == '\0')" ( (binary_expression "local_3d == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x20,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    /* WARNING: Subroutine does not return */\n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) goto LAB_000bfac0;\n        local_54 = (**(code **)(*piVar5 + 0x5c))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }" { (expression_statement "local_38 = param_5;" (assignment_expression "local_38 = param_5" identifier = identifier) ;) (expression_statement "piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x20,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));" (assignment_expression "piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x20,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8))" identifier = (cast_expression "(int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x20,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x20,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8))" identifier (argument_list "(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x20,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8))" ( identifier , identifier , identifier , (pointer_expression "*(undefined2 *)(param_5 + 0x12)" * (cast_expression "(undefined2 *)(param_5 + 0x12)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x12)" ( (binary_expression "param_5 + 0x12" identifier + number_literal) )))) , number_literal , number_literal , (pointer_expression "*(undefined1 *)(param_5 + 7)" * (cast_expression "(undefined1 *)(param_5 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 7)" ( (binary_expression "param_5 + 7" identifier + number_literal) )))) , (pointer_expression "*(undefined1 *)(param_5 + 8)" * (cast_expression "(undefined1 *)(param_5 + 8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 8)" ( (binary_expression "param_5 + 8" identifier + number_literal) )))) ))))) ;) (if_statement "if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    /* WARNING: Subroutine does not return */\n          FUN_00082870(uVar6,uVar8,uVar1);\n        }" if (parenthesized_expression "(piVar5 == (int *)0x0)" ( (binary_expression "piVar5 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    /* WARNING: Subroutine does not return */\n          FUN_00082870(uVar6,uVar8,uVar1);\n        }" { (expression_statement "uVar1 = *(undefined2 *)(local_38 + 0x12);" (assignment_expression "uVar1 = *(undefined2 *)(local_38 + 0x12)" identifier = (pointer_expression "*(undefined2 *)(local_38 + 0x12)" * (cast_expression "(undefined2 *)(local_38 + 0x12)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_38 + 0x12)" ( (binary_expression "local_38 + 0x12" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = *param_1;" (assignment_expression "uVar8 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar6 = gettext(unaff_EDI + 0x1972f7);" (assignment_expression "uVar6 = gettext(unaff_EDI + 0x1972f7)" identifier = (call_expression "gettext(unaff_EDI + 0x1972f7)" identifier (argument_list "(unaff_EDI + 0x1972f7)" ( (binary_expression "unaff_EDI + 0x1972f7" identifier + number_literal) )))) ;) comment (expression_statement "FUN_00082870(uVar6,uVar8,uVar1);" (call_expression "FUN_00082870(uVar6,uVar8,uVar1)" identifier (argument_list "(uVar6,uVar8,uVar1)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);" (assignment_expression "piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc)" identifier = (pointer_expression "*(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc)" * (cast_expression "(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc)" ( (binary_expression "*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc" (pointer_expression "*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3)" * (cast_expression "(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3)" ( (binary_expression "(int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3" (binary_expression "(int)&fde_table_entry_0027fa50.data_loc + unaff_EDI" (cast_expression "(int)&fde_table_entry_0027fa50.data_loc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&fde_table_entry_0027fa50.data_loc" & (field_expression "fde_table_entry_0027fa50.data_loc" identifier . field_identifier))) + identifier) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) goto LAB_000bfac0;" if (parenthesized_expression "(piVar2 == (int *)0x0)" ( (binary_expression "piVar2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          FUN_0011a510(piVar5);\n        }" { (expression_statement "FUN_0011a510(piVar5);" (call_expression "FUN_0011a510(piVar5)" identifier (argument_list "(piVar5)" ( identifier ))) ;) }) (else_clause "else if (piVar5 != piVar2) goto LAB_000bfac0;" else (if_statement "if (piVar5 != piVar2) goto LAB_000bfac0;" if (parenthesized_expression "(piVar5 != piVar2)" ( (binary_expression "piVar5 != piVar2" identifier != identifier) )) (goto_statement "goto LAB_000bfac0;" goto statement_identifier ;)))) (expression_statement "local_54 = (**(code **)(*piVar5 + 0x5c))(piVar5,param_1,param_2,param_3,param_4,&local_38);" (assignment_expression "local_54 = (**(code **)(*piVar5 + 0x5c))(piVar5,param_1,param_2,param_3,param_4,&local_38)" identifier = (call_expression "(**(code **)(*piVar5 + 0x5c))(piVar5,param_1,param_2,param_3,param_4,&local_38)" (parenthesized_expression "(**(code **)(*piVar5 + 0x5c))" ( (pointer_expression "**(code **)(*piVar5 + 0x5c)" * (pointer_expression "*(code **)(*piVar5 + 0x5c)" * (cast_expression "(code **)(*piVar5 + 0x5c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar5 + 0x5c)" ( (binary_expression "*piVar5 + 0x5c" (pointer_expression "*piVar5" * identifier) + number_literal) ))))) )) (argument_list "(piVar5,param_1,param_2,param_3,param_4,&local_38)" ( identifier , identifier , identifier , identifier , identifier , (pointer_expression "&local_38" & identifier) )))) ;) (goto_statement "goto LAB_000bf930;" goto statement_identifier ;) })) (if_statement "if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x1972bf;\n        goto LAB_000bfb11;\n      }" if (parenthesized_expression "(param_7 == (undefined1 *)0x0)" ( (binary_expression "param_7 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x1972bf;\n        goto LAB_000bfb11;\n      }" { (expression_statement "local_54 = *param_1;" (assignment_expression "local_54 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "iVar7 = unaff_EDI + 0x1972bf;" (assignment_expression "iVar7 = unaff_EDI + 0x1972bf" identifier = (binary_expression "unaff_EDI + 0x1972bf" identifier + number_literal)) ;) (goto_statement "goto LAB_000bfb11;" goto statement_identifier ;) })) }) (else_clause "else {\n      if (local_3c != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620(unaff_EDI + 0x19719f,0xd94,&UNK_00198253 + unaff_EDI,local_3c);\n      }\n      if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x40,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    /* WARNING: Subroutine does not return */\n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) {\nLAB_000bfac0:\n          if (param_7 == (undefined1 *)0x0) {\n            uVar8 = *param_1;\n            uVar6 = gettext(unaff_EDI + 0x1942ca);\n            FUN_000828d0(uVar6,uVar8);\n            local_54 = 0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }\n        local_54 = (**(code **)(*piVar5 + 0x60))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }\n      if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x19731f;\nLAB_000bfb11:\n        uVar8 = gettext(iVar7);\n        FUN_000828d0(uVar8,local_54);\n        goto LAB_000bfaa7;\n      }\n    }" else (compound_statement "{\n      if (local_3c != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620(unaff_EDI + 0x19719f,0xd94,&UNK_00198253 + unaff_EDI,local_3c);\n      }\n      if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x40,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    /* WARNING: Subroutine does not return */\n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) {\nLAB_000bfac0:\n          if (param_7 == (undefined1 *)0x0) {\n            uVar8 = *param_1;\n            uVar6 = gettext(unaff_EDI + 0x1942ca);\n            FUN_000828d0(uVar6,uVar8);\n            local_54 = 0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }\n        local_54 = (**(code **)(*piVar5 + 0x60))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }\n      if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x19731f;\nLAB_000bfb11:\n        uVar8 = gettext(iVar7);\n        FUN_000828d0(uVar8,local_54);\n        goto LAB_000bfaa7;\n      }\n    }" { (if_statement "if (local_3c != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620(unaff_EDI + 0x19719f,0xd94,&UNK_00198253 + unaff_EDI,local_3c);\n      }" if (parenthesized_expression "(local_3c != 0x40)" ( (binary_expression "local_3c != 0x40" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620(unaff_EDI + 0x19719f,0xd94,&UNK_00198253 + unaff_EDI,local_3c);\n      }" { comment (expression_statement "FUN_0008b620(unaff_EDI + 0x19719f,0xd94,&UNK_00198253 + unaff_EDI,local_3c);" (call_expression "FUN_0008b620(unaff_EDI + 0x19719f,0xd94,&UNK_00198253 + unaff_EDI,local_3c)" identifier (argument_list "(unaff_EDI + 0x19719f,0xd94,&UNK_00198253 + unaff_EDI,local_3c)" ( (binary_expression "unaff_EDI + 0x19719f" identifier + number_literal) , number_literal , (binary_expression "&UNK_00198253 + unaff_EDI" (pointer_expression "&UNK_00198253" & identifier) + identifier) , identifier ))) ;) })) (if_statement "if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x40,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    /* WARNING: Subroutine does not return */\n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) {\nLAB_000bfac0:\n          if (param_7 == (undefined1 *)0x0) {\n            uVar8 = *param_1;\n            uVar6 = gettext(unaff_EDI + 0x1942ca);\n            FUN_000828d0(uVar6,uVar8);\n            local_54 = 0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }\n        local_54 = (**(code **)(*piVar5 + 0x60))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }" if (parenthesized_expression "(local_3d == '\0')" ( (binary_expression "local_3d == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x40,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    /* WARNING: Subroutine does not return */\n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) {\nLAB_000bfac0:\n          if (param_7 == (undefined1 *)0x0) {\n            uVar8 = *param_1;\n            uVar6 = gettext(unaff_EDI + 0x1942ca);\n            FUN_000828d0(uVar6,uVar8);\n            local_54 = 0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }\n        local_54 = (**(code **)(*piVar5 + 0x60))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }" { (expression_statement "local_38 = param_5;" (assignment_expression "local_38 = param_5" identifier = identifier) ;) (expression_statement "piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x40,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));" (assignment_expression "piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x40,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8))" identifier = (cast_expression "(int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x40,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x40,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8))" identifier (argument_list "(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x40,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8))" ( identifier , identifier , identifier , (pointer_expression "*(undefined2 *)(param_5 + 0x12)" * (cast_expression "(undefined2 *)(param_5 + 0x12)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x12)" ( (binary_expression "param_5 + 0x12" identifier + number_literal) )))) , number_literal , number_literal , (pointer_expression "*(undefined1 *)(param_5 + 7)" * (cast_expression "(undefined1 *)(param_5 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 7)" ( (binary_expression "param_5 + 7" identifier + number_literal) )))) , (pointer_expression "*(undefined1 *)(param_5 + 8)" * (cast_expression "(undefined1 *)(param_5 + 8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 8)" ( (binary_expression "param_5 + 8" identifier + number_literal) )))) ))))) ;) (if_statement "if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    /* WARNING: Subroutine does not return */\n          FUN_00082870(uVar6,uVar8,uVar1);\n        }" if (parenthesized_expression "(piVar5 == (int *)0x0)" ( (binary_expression "piVar5 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    /* WARNING: Subroutine does not return */\n          FUN_00082870(uVar6,uVar8,uVar1);\n        }" { (expression_statement "uVar1 = *(undefined2 *)(local_38 + 0x12);" (assignment_expression "uVar1 = *(undefined2 *)(local_38 + 0x12)" identifier = (pointer_expression "*(undefined2 *)(local_38 + 0x12)" * (cast_expression "(undefined2 *)(local_38 + 0x12)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_38 + 0x12)" ( (binary_expression "local_38 + 0x12" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = *param_1;" (assignment_expression "uVar8 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar6 = gettext(unaff_EDI + 0x1972f7);" (assignment_expression "uVar6 = gettext(unaff_EDI + 0x1972f7)" identifier = (call_expression "gettext(unaff_EDI + 0x1972f7)" identifier (argument_list "(unaff_EDI + 0x1972f7)" ( (binary_expression "unaff_EDI + 0x1972f7" identifier + number_literal) )))) ;) comment (expression_statement "FUN_00082870(uVar6,uVar8,uVar1);" (call_expression "FUN_00082870(uVar6,uVar8,uVar1)" identifier (argument_list "(uVar6,uVar8,uVar1)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);" (assignment_expression "piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc)" identifier = (pointer_expression "*(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc)" * (cast_expression "(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc)" ( (binary_expression "*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc" (pointer_expression "*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3)" * (cast_expression "(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3)" ( (binary_expression "(int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3" (binary_expression "(int)&fde_table_entry_0027fa50.data_loc + unaff_EDI" (cast_expression "(int)&fde_table_entry_0027fa50.data_loc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&fde_table_entry_0027fa50.data_loc" & (field_expression "fde_table_entry_0027fa50.data_loc" identifier . field_identifier))) + identifier) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) {\nLAB_000bfac0:\n          if (param_7 == (undefined1 *)0x0) {\n            uVar8 = *param_1;\n            uVar6 = gettext(unaff_EDI + 0x1942ca);\n            FUN_000828d0(uVar6,uVar8);\n            local_54 = 0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }" if (parenthesized_expression "(piVar2 == (int *)0x0)" ( (binary_expression "piVar2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          FUN_0011a510(piVar5);\n        }" { (expression_statement "FUN_0011a510(piVar5);" (call_expression "FUN_0011a510(piVar5)" identifier (argument_list "(piVar5)" ( identifier ))) ;) }) (else_clause "else if (piVar5 != piVar2) {\nLAB_000bfac0:\n          if (param_7 == (undefined1 *)0x0) {\n            uVar8 = *param_1;\n            uVar6 = gettext(unaff_EDI + 0x1942ca);\n            FUN_000828d0(uVar6,uVar8);\n            local_54 = 0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }" else (if_statement "if (piVar5 != piVar2) {\nLAB_000bfac0:\n          if (param_7 == (undefined1 *)0x0) {\n            uVar8 = *param_1;\n            uVar6 = gettext(unaff_EDI + 0x1942ca);\n            FUN_000828d0(uVar6,uVar8);\n            local_54 = 0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }" if (parenthesized_expression "(piVar5 != piVar2)" ( (binary_expression "piVar5 != piVar2" identifier != identifier) )) (compound_statement "{\nLAB_000bfac0:\n          if (param_7 == (undefined1 *)0x0) {\n            uVar8 = *param_1;\n            uVar6 = gettext(unaff_EDI + 0x1942ca);\n            FUN_000828d0(uVar6,uVar8);\n            local_54 = 0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }" { (labeled_statement "LAB_000bfac0:\n          if (param_7 == (undefined1 *)0x0) {\n            uVar8 = *param_1;\n            uVar6 = gettext(unaff_EDI + 0x1942ca);\n            FUN_000828d0(uVar6,uVar8);\n            local_54 = 0;\n            goto LAB_000bf930;\n          }" statement_identifier : (if_statement "if (param_7 == (undefined1 *)0x0) {\n            uVar8 = *param_1;\n            uVar6 = gettext(unaff_EDI + 0x1942ca);\n            FUN_000828d0(uVar6,uVar8);\n            local_54 = 0;\n            goto LAB_000bf930;\n          }" if (parenthesized_expression "(param_7 == (undefined1 *)0x0)" ( (binary_expression "param_7 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar8 = *param_1;\n            uVar6 = gettext(unaff_EDI + 0x1942ca);\n            FUN_000828d0(uVar6,uVar8);\n            local_54 = 0;\n            goto LAB_000bf930;\n          }" { (expression_statement "uVar8 = *param_1;" (assignment_expression "uVar8 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar6 = gettext(unaff_EDI + 0x1942ca);" (assignment_expression "uVar6 = gettext(unaff_EDI + 0x1942ca)" identifier = (call_expression "gettext(unaff_EDI + 0x1942ca)" identifier (argument_list "(unaff_EDI + 0x1942ca)" ( (binary_expression "unaff_EDI + 0x1942ca" identifier + number_literal) )))) ;) (expression_statement "FUN_000828d0(uVar6,uVar8);" (call_expression "FUN_000828d0(uVar6,uVar8)" identifier (argument_list "(uVar6,uVar8)" ( identifier , identifier ))) ;) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_000bf930;" goto statement_identifier ;) }))) (goto_statement "goto LAB_000bf923;" goto statement_identifier ;) })))) (expression_statement "local_54 = (**(code **)(*piVar5 + 0x60))(piVar5,param_1,param_2,param_3,param_4,&local_38);" (assignment_expression "local_54 = (**(code **)(*piVar5 + 0x60))(piVar5,param_1,param_2,param_3,param_4,&local_38)" identifier = (call_expression "(**(code **)(*piVar5 + 0x60))(piVar5,param_1,param_2,param_3,param_4,&local_38)" (parenthesized_expression "(**(code **)(*piVar5 + 0x60))" ( (pointer_expression "**(code **)(*piVar5 + 0x60)" * (pointer_expression "*(code **)(*piVar5 + 0x60)" * (cast_expression "(code **)(*piVar5 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar5 + 0x60)" ( (binary_expression "*piVar5 + 0x60" (pointer_expression "*piVar5" * identifier) + number_literal) ))))) )) (argument_list "(piVar5,param_1,param_2,param_3,param_4,&local_38)" ( identifier , identifier , identifier , identifier , identifier , (pointer_expression "&local_38" & identifier) )))) ;) (goto_statement "goto LAB_000bf930;" goto statement_identifier ;) })) (if_statement "if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x19731f;\nLAB_000bfb11:\n        uVar8 = gettext(iVar7);\n        FUN_000828d0(uVar8,local_54);\n        goto LAB_000bfaa7;\n      }" if (parenthesized_expression "(param_7 == (undefined1 *)0x0)" ( (binary_expression "param_7 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x19731f;\nLAB_000bfb11:\n        uVar8 = gettext(iVar7);\n        FUN_000828d0(uVar8,local_54);\n        goto LAB_000bfaa7;\n      }" { (expression_statement "local_54 = *param_1;" (assignment_expression "local_54 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "iVar7 = unaff_EDI + 0x19731f;" (assignment_expression "iVar7 = unaff_EDI + 0x19731f" identifier = (binary_expression "unaff_EDI + 0x19731f" identifier + number_literal)) ;) (labeled_statement "LAB_000bfb11:\n        uVar8 = gettext(iVar7);" statement_identifier : (expression_statement "uVar8 = gettext(iVar7);" (assignment_expression "uVar8 = gettext(iVar7)" identifier = (call_expression "gettext(iVar7)" identifier (argument_list "(iVar7)" ( identifier )))) ;)) (expression_statement "FUN_000828d0(uVar8,local_54);" (call_expression "FUN_000828d0(uVar8,local_54)" identifier (argument_list "(uVar8,local_54)" ( identifier , identifier ))) ;) (goto_statement "goto LAB_000bfaa7;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_000bf923:\n    local_54 = 0;" statement_identifier : (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;)) (expression_statement "*param_7 = 1;" (assignment_expression "*param_7 = 1" (pointer_expression "*param_7" * identifier) = number_literal) ;) }))) (labeled_statement "LAB_000bf930:\n  if (local_34 != local_2c) {\n    FUN_001ac470(local_34);\n  }" statement_identifier : (if_statement "if (local_34 != local_2c) {\n    FUN_001ac470(local_34);\n  }" if (parenthesized_expression "(local_34 != local_2c)" ( (binary_expression "local_34 != local_2c" identifier != identifier) )) (compound_statement "{\n    FUN_001ac470(local_34);\n  }" { (expression_statement "FUN_001ac470(local_34);" (call_expression "FUN_001ac470(local_34)" identifier (argument_list "(local_34)" ( identifier ))) ;) }))) (return_statement "return local_54;" return identifier ;) })))
(translation_unit "/* WARNING: Enum "ELFOSABI": Some values do not have unique names */\n\nObject * __thiscall\ngold::make_elf_object\n          (gold *this,string *name,Input_file *input_file,off_t offset,uchar *p,\n          section_offset_type bytes,bool *punconfigured)\n\n{\n  ushort uVar1;\n  Target *pTVar2;\n  undefined4 uVar3;\n  _Alloc_hider _Var4;\n  bool bVar5;\n  Target *pTVar6;\n  int iVar7;\n  char *pcVar8;\n  int unaff_EDI;\n  string *in_stack_ffffff9c;\n  Object *local_54;\n  bool big_endian;\n  int size;\n  Ehdr<32,_false> ehdr;\n  string error;\n  \n  __x86_get_pc_thunk_di();\n  if (bytes != 0) {\n    *(undefined1 *)bytes = 0;\n  }\n  error._M_string_length = 0;\n  error.field_2._M_local_buf[0] = '\0';\n  big_endian = false;\n  size = 0;\n  error._M_dataplus._M_p = (pointer)&error.field_2;\n                    /* try { // try from 000bf8f1 to 000bfbd7 has its CatchHandler @ 000bfbd8 */\n  bVar5 = elfcpp::Elf_recognizer::is_valid_header\n                    ((Elf_recognizer *)offset._4_4_,p,CONCAT44(&size,(int)p >> 0x1f),\n                     (int *)&big_endian,(bool *)&error,in_stack_ffffff9c);\n  _Var4._M_p = error._M_dataplus._M_p;\n  if (bVar5) {\n    if (size == 0x20) {\n      if (big_endian == false) {\n        ehdr.p_ = offset._4_4_;\n        pTVar6 = select_target((Input_file *)name,CONCAT44((undefined4)offset,input_file),\n                               (uint)(offset._4_4_)->e_machine,0x20,false,\n                               (uint)(offset._4_4_)->e_ident[7],(uint)(offset._4_4_)->e_ident[8]);\n        if (pTVar6 == (Target *)0x0) {\n          uVar1 = (ehdr.p_)->e_machine;\n          uVar3 = *(undefined4 *)this;\n          pcVar8 = (char *)gettext(unaff_EDI + 0x1972f7);\n                    /* WARNING: Subroutine does not return */\n          gold_fatal(pcVar8,uVar3,(uint)uVar1);\n        }\n        pTVar2 = *(Target **)\n                  (*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (pTVar2 == (Target *)0x0) {\n          set_parameters_target(pTVar6);\n        }\n        else if (pTVar6 != pTVar2) goto LAB_000bfac0;\n        local_54 = (Object *)\n                   (*pTVar6->_vptr_Target[0x17])\n                             (pTVar6,this,name,input_file,(undefined4)offset,&ehdr);\n        goto LAB_000bf930;\n      }\n      if (bytes == 0) {\n        local_54 = *(Object **)this;\n        iVar7 = unaff_EDI + 0x1972bf;\n        goto LAB_000bfb11;\n      }\n    }\n    else {\n      if (size != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable((char *)(unaff_EDI + 0x19719f),0xd94,(char *)(unaff_EDI + 0x198253));\n      }\n      if (big_endian == false) {\n        ehdr.p_ = offset._4_4_;\n        pTVar6 = select_target((Input_file *)name,CONCAT44((undefined4)offset,input_file),\n                               (uint)(offset._4_4_)->e_machine,0x40,false,\n                               (uint)(offset._4_4_)->e_ident[7],(uint)(offset._4_4_)->e_ident[8]);\n        if (pTVar6 == (Target *)0x0) {\n          uVar1 = (ehdr.p_)->e_machine;\n          uVar3 = *(undefined4 *)this;\n          pcVar8 = (char *)gettext(unaff_EDI + 0x1972f7);\n                    /* WARNING: Subroutine does not return */\n          gold_fatal(pcVar8,uVar3,(uint)uVar1);\n        }\n        pTVar2 = *(Target **)\n                  (*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (pTVar2 == (Target *)0x0) {\n          set_parameters_target(pTVar6);\n        }\n        else if (pTVar6 != pTVar2) {\nLAB_000bfac0:\n          if (bytes == 0) {\n            uVar3 = *(undefined4 *)this;\n            pcVar8 = (char *)gettext(unaff_EDI + 0x1942ca);\n            gold_error(pcVar8,uVar3);\n            local_54 = (Object *)0x0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }\n        local_54 = (Object *)\n                   (*pTVar6->_vptr_Target[0x18])\n                             (pTVar6,this,name,input_file,(undefined4)offset,&ehdr);\n        goto LAB_000bf930;\n      }\n      if (bytes == 0) {\n        local_54 = *(Object **)this;\n        iVar7 = unaff_EDI + 0x19731f;\nLAB_000bfb11:\n        pcVar8 = (char *)gettext(iVar7);\n        gold_error(pcVar8,local_54);\n        goto LAB_000bfaa7;\n      }\n    }\nLAB_000bf923:\n    local_54 = (Object *)0x0;\n    *(undefined1 *)bytes = 1;\n  }\n  else {\n    uVar3 = *(undefined4 *)this;\n    pcVar8 = (char *)gettext(unaff_EDI + 0x196f9c);\n    gold_error(pcVar8,uVar3,_Var4._M_p);\nLAB_000bfaa7:\n    local_54 = (Object *)0x0;\n  }\nLAB_000bf930:\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)error._M_dataplus._M_p != &error.field_2) {\n    operator_delete(error._M_dataplus._M_p);\n  }\n  return local_54;\n}\n\n" comment (ERROR "Object * __thiscall\ngold::make_elf_object\n          (gold *this,string *name,Input_file *input_file,off_t offset,uchar *p,\n          section_offset_type bytes,bool *punconfigured)" (binary_expression "Object * __thiscall\ngold::make_elf_object\n          (gold *this,string *name,Input_file *input_file,off_t offset,uchar *p,\n          section_offset_type bytes,bool *punconfigured)" identifier * (call_expression "__thiscall\ngold::make_elf_object\n          (gold *this,string *name,Input_file *input_file,off_t offset,uchar *p,\n          section_offset_type bytes,bool *punconfigured)" identifier (ERROR "gold::make_elf_object" identifier : : identifier) (argument_list "(gold *this,string *name,Input_file *input_file,off_t offset,uchar *p,\n          section_offset_type bytes,bool *punconfigured)" ( (binary_expression "gold *this" identifier * identifier) , (binary_expression "string *name" identifier * identifier) , (binary_expression "Input_file *input_file" identifier * identifier) , (ERROR "off_t" identifier) identifier , (binary_expression "uchar *p" identifier * identifier) , identifier (ERROR "bytes" identifier) , (binary_expression "bool *punconfigured" identifier * identifier) ))))) (compound_statement "{\n  ushort uVar1;\n  Target *pTVar2;\n  undefined4 uVar3;\n  _Alloc_hider _Var4;\n  bool bVar5;\n  Target *pTVar6;\n  int iVar7;\n  char *pcVar8;\n  int unaff_EDI;\n  string *in_stack_ffffff9c;\n  Object *local_54;\n  bool big_endian;\n  int size;\n  Ehdr<32,_false> ehdr;\n  string error;\n  \n  __x86_get_pc_thunk_di();\n  if (bytes != 0) {\n    *(undefined1 *)bytes = 0;\n  }\n  error._M_string_length = 0;\n  error.field_2._M_local_buf[0] = '\0';\n  big_endian = false;\n  size = 0;\n  error._M_dataplus._M_p = (pointer)&error.field_2;\n                    /* try { // try from 000bf8f1 to 000bfbd7 has its CatchHandler @ 000bfbd8 */\n  bVar5 = elfcpp::Elf_recognizer::is_valid_header\n                    ((Elf_recognizer *)offset._4_4_,p,CONCAT44(&size,(int)p >> 0x1f),\n                     (int *)&big_endian,(bool *)&error,in_stack_ffffff9c);\n  _Var4._M_p = error._M_dataplus._M_p;\n  if (bVar5) {\n    if (size == 0x20) {\n      if (big_endian == false) {\n        ehdr.p_ = offset._4_4_;\n        pTVar6 = select_target((Input_file *)name,CONCAT44((undefined4)offset,input_file),\n                               (uint)(offset._4_4_)->e_machine,0x20,false,\n                               (uint)(offset._4_4_)->e_ident[7],(uint)(offset._4_4_)->e_ident[8]);\n        if (pTVar6 == (Target *)0x0) {\n          uVar1 = (ehdr.p_)->e_machine;\n          uVar3 = *(undefined4 *)this;\n          pcVar8 = (char *)gettext(unaff_EDI + 0x1972f7);\n                    /* WARNING: Subroutine does not return */\n          gold_fatal(pcVar8,uVar3,(uint)uVar1);\n        }\n        pTVar2 = *(Target **)\n                  (*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (pTVar2 == (Target *)0x0) {\n          set_parameters_target(pTVar6);\n        }\n        else if (pTVar6 != pTVar2) goto LAB_000bfac0;\n        local_54 = (Object *)\n                   (*pTVar6->_vptr_Target[0x17])\n                             (pTVar6,this,name,input_file,(undefined4)offset,&ehdr);\n        goto LAB_000bf930;\n      }\n      if (bytes == 0) {\n        local_54 = *(Object **)this;\n        iVar7 = unaff_EDI + 0x1972bf;\n        goto LAB_000bfb11;\n      }\n    }\n    else {\n      if (size != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable((char *)(unaff_EDI + 0x19719f),0xd94,(char *)(unaff_EDI + 0x198253));\n      }\n      if (big_endian == false) {\n        ehdr.p_ = offset._4_4_;\n        pTVar6 = select_target((Input_file *)name,CONCAT44((undefined4)offset,input_file),\n                               (uint)(offset._4_4_)->e_machine,0x40,false,\n                               (uint)(offset._4_4_)->e_ident[7],(uint)(offset._4_4_)->e_ident[8]);\n        if (pTVar6 == (Target *)0x0) {\n          uVar1 = (ehdr.p_)->e_machine;\n          uVar3 = *(undefined4 *)this;\n          pcVar8 = (char *)gettext(unaff_EDI + 0x1972f7);\n                    /* WARNING: Subroutine does not return */\n          gold_fatal(pcVar8,uVar3,(uint)uVar1);\n        }\n        pTVar2 = *(Target **)\n                  (*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (pTVar2 == (Target *)0x0) {\n          set_parameters_target(pTVar6);\n        }\n        else if (pTVar6 != pTVar2) {\nLAB_000bfac0:\n          if (bytes == 0) {\n            uVar3 = *(undefined4 *)this;\n            pcVar8 = (char *)gettext(unaff_EDI + 0x1942ca);\n            gold_error(pcVar8,uVar3);\n            local_54 = (Object *)0x0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }\n        local_54 = (Object *)\n                   (*pTVar6->_vptr_Target[0x18])\n                             (pTVar6,this,name,input_file,(undefined4)offset,&ehdr);\n        goto LAB_000bf930;\n      }\n      if (bytes == 0) {\n        local_54 = *(Object **)this;\n        iVar7 = unaff_EDI + 0x19731f;\nLAB_000bfb11:\n        pcVar8 = (char *)gettext(iVar7);\n        gold_error(pcVar8,local_54);\n        goto LAB_000bfaa7;\n      }\n    }\nLAB_000bf923:\n    local_54 = (Object *)0x0;\n    *(undefined1 *)bytes = 1;\n  }\n  else {\n    uVar3 = *(undefined4 *)this;\n    pcVar8 = (char *)gettext(unaff_EDI + 0x196f9c);\n    gold_error(pcVar8,uVar3,_Var4._M_p);\nLAB_000bfaa7:\n    local_54 = (Object *)0x0;\n  }\nLAB_000bf930:\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)error._M_dataplus._M_p != &error.field_2) {\n    operator_delete(error._M_dataplus._M_p);\n  }\n  return local_54;\n}" { (declaration "ushort uVar1;" type_identifier identifier ;) (declaration "Target *pTVar2;" type_identifier (pointer_declarator "*pTVar2" * identifier) ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "_Alloc_hider _Var4;" type_identifier identifier ;) (declaration "bool bVar5;" primitive_type identifier ;) (declaration "Target *pTVar6;" type_identifier (pointer_declarator "*pTVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "string *in_stack_ffffff9c;" type_identifier (pointer_declarator "*in_stack_ffffff9c" * identifier) ;) (declaration "Object *local_54;" type_identifier (pointer_declarator "*local_54" * identifier) ;) (declaration "bool big_endian;" primitive_type identifier ;) (declaration "int size;" primitive_type identifier ;) (expression_statement "Ehdr<32,_false> ehdr;" (comma_expression "Ehdr<32,_false> ehdr" (binary_expression "Ehdr<32" identifier < number_literal) , (binary_expression "_false> ehdr" identifier > identifier)) ;) (declaration "string error;" type_identifier identifier ;) (expression_statement "__x86_get_pc_thunk_di();" (call_expression "__x86_get_pc_thunk_di()" identifier (argument_list "()" ( ))) ;) (if_statement "if (bytes != 0) {\n    *(undefined1 *)bytes = 0;\n  }" if (parenthesized_expression "(bytes != 0)" ( (binary_expression "bytes != 0" identifier != number_literal) )) (compound_statement "{\n    *(undefined1 *)bytes = 0;\n  }" { (expression_statement "*(undefined1 *)bytes = 0;" (assignment_expression "*(undefined1 *)bytes = 0" (pointer_expression "*(undefined1 *)bytes" * (cast_expression "(undefined1 *)bytes" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) })) (expression_statement "error._M_string_length = 0;" (assignment_expression "error._M_string_length = 0" (field_expression "error._M_string_length" identifier . field_identifier) = number_literal) ;) (expression_statement "error.field_2._M_local_buf[0] = '\0';" (assignment_expression "error.field_2._M_local_buf[0] = '\0'" (subscript_expression "error.field_2._M_local_buf[0]" (field_expression "error.field_2._M_local_buf" (field_expression "error.field_2" identifier . field_identifier) . field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "big_endian = false;" (assignment_expression "big_endian = false" identifier = false) ;) (expression_statement "size = 0;" (assignment_expression "size = 0" identifier = number_literal) ;) (expression_statement "error._M_dataplus._M_p = (pointer)&error.field_2;" (assignment_expression "error._M_dataplus._M_p = (pointer)&error.field_2" (field_expression "error._M_dataplus._M_p" (field_expression "error._M_dataplus" identifier . field_identifier) . field_identifier) = (binary_expression "(pointer)&error.field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "error.field_2" identifier . field_identifier))) ;) comment (ERROR "bVar5 = elfcpp::" (assignment_expression "bVar5 = elfcpp" identifier = identifier) : :) (labeled_statement "Elf_recognizer::is_valid_header\n                    ((Elf_recognizer *)offset._4_4_,p,CONCAT44(&size,(int)p >> 0x1f),\n                     (int *)&big_endian,(bool *)&error,in_stack_ffffff9c);" statement_identifier : (ERROR ":" :) (expression_statement "is_valid_header\n                    ((Elf_recognizer *)offset._4_4_,p,CONCAT44(&size,(int)p >> 0x1f),\n                     (int *)&big_endian,(bool *)&error,in_stack_ffffff9c);" (call_expression "is_valid_header\n                    ((Elf_recognizer *)offset._4_4_,p,CONCAT44(&size,(int)p >> 0x1f),\n                     (int *)&big_endian,(bool *)&error,in_stack_ffffff9c)" identifier (argument_list "((Elf_recognizer *)offset._4_4_,p,CONCAT44(&size,(int)p >> 0x1f),\n                     (int *)&big_endian,(bool *)&error,in_stack_ffffff9c)" ( (cast_expression "(Elf_recognizer *)offset._4_4_" ( (type_descriptor "Elf_recognizer *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "offset._4_4_" identifier . field_identifier)) , identifier , (call_expression "CONCAT44(&size,(int)p >> 0x1f)" identifier (argument_list "(&size,(int)p >> 0x1f)" ( (pointer_expression "&size" & identifier) , (binary_expression "(int)p >> 0x1f" (cast_expression "(int)p" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) , (cast_expression "(int *)&big_endian" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&big_endian" & identifier)) , (cast_expression "(bool *)&error" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&error" & identifier)) , identifier ))) ;)) (expression_statement "_Var4._M_p = error._M_dataplus._M_p;" (assignment_expression "_Var4._M_p = error._M_dataplus._M_p" (field_expression "_Var4._M_p" identifier . field_identifier) = (field_expression "error._M_dataplus._M_p" (field_expression "error._M_dataplus" identifier . field_identifier) . field_identifier)) ;) (if_statement "if (bVar5) {\n    if (size == 0x20) {\n      if (big_endian == false) {\n        ehdr.p_ = offset._4_4_;\n        pTVar6 = select_target((Input_file *)name,CONCAT44((undefined4)offset,input_file),\n                               (uint)(offset._4_4_)->e_machine,0x20,false,\n                               (uint)(offset._4_4_)->e_ident[7],(uint)(offset._4_4_)->e_ident[8]);\n        if (pTVar6 == (Target *)0x0) {\n          uVar1 = (ehdr.p_)->e_machine;\n          uVar3 = *(undefined4 *)this;\n          pcVar8 = (char *)gettext(unaff_EDI + 0x1972f7);\n                    /* WARNING: Subroutine does not return */\n          gold_fatal(pcVar8,uVar3,(uint)uVar1);\n        }\n        pTVar2 = *(Target **)\n                  (*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (pTVar2 == (Target *)0x0) {\n          set_parameters_target(pTVar6);\n        }\n        else if (pTVar6 != pTVar2) goto LAB_000bfac0;\n        local_54 = (Object *)\n                   (*pTVar6->_vptr_Target[0x17])\n                             (pTVar6,this,name,input_file,(undefined4)offset,&ehdr);\n        goto LAB_000bf930;\n      }\n      if (bytes == 0) {\n        local_54 = *(Object **)this;\n        iVar7 = unaff_EDI + 0x1972bf;\n        goto LAB_000bfb11;\n      }\n    }\n    else {\n      if (size != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable((char *)(unaff_EDI + 0x19719f),0xd94,(char *)(unaff_EDI + 0x198253));\n      }\n      if (big_endian == false) {\n        ehdr.p_ = offset._4_4_;\n        pTVar6 = select_target((Input_file *)name,CONCAT44((undefined4)offset,input_file),\n                               (uint)(offset._4_4_)->e_machine,0x40,false,\n                               (uint)(offset._4_4_)->e_ident[7],(uint)(offset._4_4_)->e_ident[8]);\n        if (pTVar6 == (Target *)0x0) {\n          uVar1 = (ehdr.p_)->e_machine;\n          uVar3 = *(undefined4 *)this;\n          pcVar8 = (char *)gettext(unaff_EDI + 0x1972f7);\n                    /* WARNING: Subroutine does not return */\n          gold_fatal(pcVar8,uVar3,(uint)uVar1);\n        }\n        pTVar2 = *(Target **)\n                  (*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (pTVar2 == (Target *)0x0) {\n          set_parameters_target(pTVar6);\n        }\n        else if (pTVar6 != pTVar2) {\nLAB_000bfac0:\n          if (bytes == 0) {\n            uVar3 = *(undefined4 *)this;\n            pcVar8 = (char *)gettext(unaff_EDI + 0x1942ca);\n            gold_error(pcVar8,uVar3);\n            local_54 = (Object *)0x0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }\n        local_54 = (Object *)\n                   (*pTVar6->_vptr_Target[0x18])\n                             (pTVar6,this,name,input_file,(undefined4)offset,&ehdr);\n        goto LAB_000bf930;\n      }\n      if (bytes == 0) {\n        local_54 = *(Object **)this;\n        iVar7 = unaff_EDI + 0x19731f;\nLAB_000bfb11:\n        pcVar8 = (char *)gettext(iVar7);\n        gold_error(pcVar8,local_54);\n        goto LAB_000bfaa7;\n      }\n    }\nLAB_000bf923:\n    local_54 = (Object *)0x0;\n    *(undefined1 *)bytes = 1;\n  }\n  else {\n    uVar3 = *(undefined4 *)this;\n    pcVar8 = (char *)gettext(unaff_EDI + 0x196f9c);\n    gold_error(pcVar8,uVar3,_Var4._M_p);\nLAB_000bfaa7:\n    local_54 = (Object *)0x0;\n  }" if (parenthesized_expression "(bVar5)" ( identifier )) (compound_statement "{\n    if (size == 0x20) {\n      if (big_endian == false) {\n        ehdr.p_ = offset._4_4_;\n        pTVar6 = select_target((Input_file *)name,CONCAT44((undefined4)offset,input_file),\n                               (uint)(offset._4_4_)->e_machine,0x20,false,\n                               (uint)(offset._4_4_)->e_ident[7],(uint)(offset._4_4_)->e_ident[8]);\n        if (pTVar6 == (Target *)0x0) {\n          uVar1 = (ehdr.p_)->e_machine;\n          uVar3 = *(undefined4 *)this;\n          pcVar8 = (char *)gettext(unaff_EDI + 0x1972f7);\n                    /* WARNING: Subroutine does not return */\n          gold_fatal(pcVar8,uVar3,(uint)uVar1);\n        }\n        pTVar2 = *(Target **)\n                  (*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (pTVar2 == (Target *)0x0) {\n          set_parameters_target(pTVar6);\n        }\n        else if (pTVar6 != pTVar2) goto LAB_000bfac0;\n        local_54 = (Object *)\n                   (*pTVar6->_vptr_Target[0x17])\n                             (pTVar6,this,name,input_file,(undefined4)offset,&ehdr);\n        goto LAB_000bf930;\n      }\n      if (bytes == 0) {\n        local_54 = *(Object **)this;\n        iVar7 = unaff_EDI + 0x1972bf;\n        goto LAB_000bfb11;\n      }\n    }\n    else {\n      if (size != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable((char *)(unaff_EDI + 0x19719f),0xd94,(char *)(unaff_EDI + 0x198253));\n      }\n      if (big_endian == false) {\n        ehdr.p_ = offset._4_4_;\n        pTVar6 = select_target((Input_file *)name,CONCAT44((undefined4)offset,input_file),\n                               (uint)(offset._4_4_)->e_machine,0x40,false,\n                               (uint)(offset._4_4_)->e_ident[7],(uint)(offset._4_4_)->e_ident[8]);\n        if (pTVar6 == (Target *)0x0) {\n          uVar1 = (ehdr.p_)->e_machine;\n          uVar3 = *(undefined4 *)this;\n          pcVar8 = (char *)gettext(unaff_EDI + 0x1972f7);\n                    /* WARNING: Subroutine does not return */\n          gold_fatal(pcVar8,uVar3,(uint)uVar1);\n        }\n        pTVar2 = *(Target **)\n                  (*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (pTVar2 == (Target *)0x0) {\n          set_parameters_target(pTVar6);\n        }\n        else if (pTVar6 != pTVar2) {\nLAB_000bfac0:\n          if (bytes == 0) {\n            uVar3 = *(undefined4 *)this;\n            pcVar8 = (char *)gettext(unaff_EDI + 0x1942ca);\n            gold_error(pcVar8,uVar3);\n            local_54 = (Object *)0x0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }\n        local_54 = (Object *)\n                   (*pTVar6->_vptr_Target[0x18])\n                             (pTVar6,this,name,input_file,(undefined4)offset,&ehdr);\n        goto LAB_000bf930;\n      }\n      if (bytes == 0) {\n        local_54 = *(Object **)this;\n        iVar7 = unaff_EDI + 0x19731f;\nLAB_000bfb11:\n        pcVar8 = (char *)gettext(iVar7);\n        gold_error(pcVar8,local_54);\n        goto LAB_000bfaa7;\n      }\n    }\nLAB_000bf923:\n    local_54 = (Object *)0x0;\n    *(undefined1 *)bytes = 1;\n  }" { (if_statement "if (size == 0x20) {\n      if (big_endian == false) {\n        ehdr.p_ = offset._4_4_;\n        pTVar6 = select_target((Input_file *)name,CONCAT44((undefined4)offset,input_file),\n                               (uint)(offset._4_4_)->e_machine,0x20,false,\n                               (uint)(offset._4_4_)->e_ident[7],(uint)(offset._4_4_)->e_ident[8]);\n        if (pTVar6 == (Target *)0x0) {\n          uVar1 = (ehdr.p_)->e_machine;\n          uVar3 = *(undefined4 *)this;\n          pcVar8 = (char *)gettext(unaff_EDI + 0x1972f7);\n                    /* WARNING: Subroutine does not return */\n          gold_fatal(pcVar8,uVar3,(uint)uVar1);\n        }\n        pTVar2 = *(Target **)\n                  (*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (pTVar2 == (Target *)0x0) {\n          set_parameters_target(pTVar6);\n        }\n        else if (pTVar6 != pTVar2) goto LAB_000bfac0;\n        local_54 = (Object *)\n                   (*pTVar6->_vptr_Target[0x17])\n                             (pTVar6,this,name,input_file,(undefined4)offset,&ehdr);\n        goto LAB_000bf930;\n      }\n      if (bytes == 0) {\n        local_54 = *(Object **)this;\n        iVar7 = unaff_EDI + 0x1972bf;\n        goto LAB_000bfb11;\n      }\n    }\n    else {\n      if (size != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable((char *)(unaff_EDI + 0x19719f),0xd94,(char *)(unaff_EDI + 0x198253));\n      }\n      if (big_endian == false) {\n        ehdr.p_ = offset._4_4_;\n        pTVar6 = select_target((Input_file *)name,CONCAT44((undefined4)offset,input_file),\n                               (uint)(offset._4_4_)->e_machine,0x40,false,\n                               (uint)(offset._4_4_)->e_ident[7],(uint)(offset._4_4_)->e_ident[8]);\n        if (pTVar6 == (Target *)0x0) {\n          uVar1 = (ehdr.p_)->e_machine;\n          uVar3 = *(undefined4 *)this;\n          pcVar8 = (char *)gettext(unaff_EDI + 0x1972f7);\n                    /* WARNING: Subroutine does not return */\n          gold_fatal(pcVar8,uVar3,(uint)uVar1);\n        }\n        pTVar2 = *(Target **)\n                  (*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (pTVar2 == (Target *)0x0) {\n          set_parameters_target(pTVar6);\n        }\n        else if (pTVar6 != pTVar2) {\nLAB_000bfac0:\n          if (bytes == 0) {\n            uVar3 = *(undefined4 *)this;\n            pcVar8 = (char *)gettext(unaff_EDI + 0x1942ca);\n            gold_error(pcVar8,uVar3);\n            local_54 = (Object *)0x0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }\n        local_54 = (Object *)\n                   (*pTVar6->_vptr_Target[0x18])\n                             (pTVar6,this,name,input_file,(undefined4)offset,&ehdr);\n        goto LAB_000bf930;\n      }\n      if (bytes == 0) {\n        local_54 = *(Object **)this;\n        iVar7 = unaff_EDI + 0x19731f;\nLAB_000bfb11:\n        pcVar8 = (char *)gettext(iVar7);\n        gold_error(pcVar8,local_54);\n        goto LAB_000bfaa7;\n      }\n    }" if (parenthesized_expression "(size == 0x20)" ( (binary_expression "size == 0x20" identifier == number_literal) )) (compound_statement "{\n      if (big_endian == false) {\n        ehdr.p_ = offset._4_4_;\n        pTVar6 = select_target((Input_file *)name,CONCAT44((undefined4)offset,input_file),\n                               (uint)(offset._4_4_)->e_machine,0x20,false,\n                               (uint)(offset._4_4_)->e_ident[7],(uint)(offset._4_4_)->e_ident[8]);\n        if (pTVar6 == (Target *)0x0) {\n          uVar1 = (ehdr.p_)->e_machine;\n          uVar3 = *(undefined4 *)this;\n          pcVar8 = (char *)gettext(unaff_EDI + 0x1972f7);\n                    /* WARNING: Subroutine does not return */\n          gold_fatal(pcVar8,uVar3,(uint)uVar1);\n        }\n        pTVar2 = *(Target **)\n                  (*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (pTVar2 == (Target *)0x0) {\n          set_parameters_target(pTVar6);\n        }\n        else if (pTVar6 != pTVar2) goto LAB_000bfac0;\n        local_54 = (Object *)\n                   (*pTVar6->_vptr_Target[0x17])\n                             (pTVar6,this,name,input_file,(undefined4)offset,&ehdr);\n        goto LAB_000bf930;\n      }\n      if (bytes == 0) {\n        local_54 = *(Object **)this;\n        iVar7 = unaff_EDI + 0x1972bf;\n        goto LAB_000bfb11;\n      }\n    }" { (if_statement "if (big_endian == false) {\n        ehdr.p_ = offset._4_4_;\n        pTVar6 = select_target((Input_file *)name,CONCAT44((undefined4)offset,input_file),\n                               (uint)(offset._4_4_)->e_machine,0x20,false,\n                               (uint)(offset._4_4_)->e_ident[7],(uint)(offset._4_4_)->e_ident[8]);\n        if (pTVar6 == (Target *)0x0) {\n          uVar1 = (ehdr.p_)->e_machine;\n          uVar3 = *(undefined4 *)this;\n          pcVar8 = (char *)gettext(unaff_EDI + 0x1972f7);\n                    /* WARNING: Subroutine does not return */\n          gold_fatal(pcVar8,uVar3,(uint)uVar1);\n        }\n        pTVar2 = *(Target **)\n                  (*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (pTVar2 == (Target *)0x0) {\n          set_parameters_target(pTVar6);\n        }\n        else if (pTVar6 != pTVar2) goto LAB_000bfac0;\n        local_54 = (Object *)\n                   (*pTVar6->_vptr_Target[0x17])\n                             (pTVar6,this,name,input_file,(undefined4)offset,&ehdr);\n        goto LAB_000bf930;\n      }" if (parenthesized_expression "(big_endian == false)" ( (binary_expression "big_endian == false" identifier == false) )) (compound_statement "{\n        ehdr.p_ = offset._4_4_;\n        pTVar6 = select_target((Input_file *)name,CONCAT44((undefined4)offset,input_file),\n                               (uint)(offset._4_4_)->e_machine,0x20,false,\n                               (uint)(offset._4_4_)->e_ident[7],(uint)(offset._4_4_)->e_ident[8]);\n        if (pTVar6 == (Target *)0x0) {\n          uVar1 = (ehdr.p_)->e_machine;\n          uVar3 = *(undefined4 *)this;\n          pcVar8 = (char *)gettext(unaff_EDI + 0x1972f7);\n                    /* WARNING: Subroutine does not return */\n          gold_fatal(pcVar8,uVar3,(uint)uVar1);\n        }\n        pTVar2 = *(Target **)\n                  (*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (pTVar2 == (Target *)0x0) {\n          set_parameters_target(pTVar6);\n        }\n        else if (pTVar6 != pTVar2) goto LAB_000bfac0;\n        local_54 = (Object *)\n                   (*pTVar6->_vptr_Target[0x17])\n                             (pTVar6,this,name,input_file,(undefined4)offset,&ehdr);\n        goto LAB_000bf930;\n      }" { (expression_statement "ehdr.p_ = offset._4_4_;" (assignment_expression "ehdr.p_ = offset._4_4_" (field_expression "ehdr.p_" identifier . field_identifier) = (field_expression "offset._4_4_" identifier . field_identifier)) ;) (expression_statement "pTVar6 = select_target((Input_file *)name,CONCAT44((undefined4)offset,input_file),\n                               (uint)(offset._4_4_)->e_machine,0x20,false,\n                               (uint)(offset._4_4_)->e_ident[7],(uint)(offset._4_4_)->e_ident[8]);" (assignment_expression "pTVar6 = select_target((Input_file *)name,CONCAT44((undefined4)offset,input_file),\n                               (uint)(offset._4_4_)->e_machine,0x20,false,\n                               (uint)(offset._4_4_)->e_ident[7],(uint)(offset._4_4_)->e_ident[8])" identifier = (call_expression "select_target((Input_file *)name,CONCAT44((undefined4)offset,input_file),\n                               (uint)(offset._4_4_)->e_machine,0x20,false,\n                               (uint)(offset._4_4_)->e_ident[7],(uint)(offset._4_4_)->e_ident[8])" identifier (argument_list "((Input_file *)name,CONCAT44((undefined4)offset,input_file),\n                               (uint)(offset._4_4_)->e_machine,0x20,false,\n                               (uint)(offset._4_4_)->e_ident[7],(uint)(offset._4_4_)->e_ident[8])" ( (cast_expression "(Input_file *)name" ( (type_descriptor "Input_file *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (call_expression "CONCAT44((undefined4)offset,input_file)" identifier (argument_list "((undefined4)offset,input_file)" ( (cast_expression "(undefined4)offset" ( (type_descriptor "undefined4" type_identifier) ) identifier) , identifier ))) , (field_expression "(uint)(offset._4_4_)->e_machine" (call_expression "(uint)(offset._4_4_)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(offset._4_4_)" ( (field_expression "offset._4_4_" identifier . field_identifier) ))) -> field_identifier) , number_literal , false , (subscript_expression "(uint)(offset._4_4_)->e_ident[7]" (field_expression "(uint)(offset._4_4_)->e_ident" (call_expression "(uint)(offset._4_4_)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(offset._4_4_)" ( (field_expression "offset._4_4_" identifier . field_identifier) ))) -> field_identifier) [ number_literal ]) , (subscript_expression "(uint)(offset._4_4_)->e_ident[8]" (field_expression "(uint)(offset._4_4_)->e_ident" (call_expression "(uint)(offset._4_4_)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(offset._4_4_)" ( (field_expression "offset._4_4_" identifier . field_identifier) ))) -> field_identifier) [ number_literal ]) )))) ;) (if_statement "if (pTVar6 == (Target *)0x0) {\n          uVar1 = (ehdr.p_)->e_machine;\n          uVar3 = *(undefined4 *)this;\n          pcVar8 = (char *)gettext(unaff_EDI + 0x1972f7);\n                    /* WARNING: Subroutine does not return */\n          gold_fatal(pcVar8,uVar3,(uint)uVar1);\n        }" if (parenthesized_expression "(pTVar6 == (Target *)0x0)" ( (binary_expression "pTVar6 == (Target *)0x0" identifier == (cast_expression "(Target *)0x0" ( (type_descriptor "Target *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          uVar1 = (ehdr.p_)->e_machine;\n          uVar3 = *(undefined4 *)this;\n          pcVar8 = (char *)gettext(unaff_EDI + 0x1972f7);\n                    /* WARNING: Subroutine does not return */\n          gold_fatal(pcVar8,uVar3,(uint)uVar1);\n        }" { (expression_statement "uVar1 = (ehdr.p_)->e_machine;" (assignment_expression "uVar1 = (ehdr.p_)->e_machine" identifier = (field_expression "(ehdr.p_)->e_machine" (parenthesized_expression "(ehdr.p_)" ( (field_expression "ehdr.p_" identifier . field_identifier) )) -> field_identifier)) ;) (expression_statement "uVar3 = *(undefined4 *)this;" (assignment_expression "uVar3 = *(undefined4 *)this" identifier = (pointer_expression "*(undefined4 *)this" * (cast_expression "(undefined4 *)this" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pcVar8 = (char *)gettext(unaff_EDI + 0x1972f7);" (assignment_expression "pcVar8 = (char *)gettext(unaff_EDI + 0x1972f7)" identifier = (cast_expression "(char *)gettext(unaff_EDI + 0x1972f7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext(unaff_EDI + 0x1972f7)" identifier (argument_list "(unaff_EDI + 0x1972f7)" ( (binary_expression "unaff_EDI + 0x1972f7" identifier + number_literal) ))))) ;) comment (expression_statement "gold_fatal(pcVar8,uVar3,(uint)uVar1);" (call_expression "gold_fatal(pcVar8,uVar3,(uint)uVar1)" identifier (argument_list "(pcVar8,uVar3,(uint)uVar1)" ( identifier , identifier , (cast_expression "(uint)uVar1" ( (type_descriptor "uint" type_identifier) ) identifier) ))) ;) })) (expression_statement "pTVar2 = *(Target **)\n                  (*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);" (assignment_expression "pTVar2 = *(Target **)\n                  (*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc)" identifier = (pointer_expression "*(Target **)\n                  (*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc)" * (cast_expression "(Target **)\n                  (*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc)" ( (type_descriptor "Target **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc)" ( (binary_expression "*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc" (pointer_expression "*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3)" * (cast_expression "(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3)" ( (binary_expression "(int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3" (binary_expression "(int)&fde_table_entry_0027fa50.data_loc + unaff_EDI" (cast_expression "(int)&fde_table_entry_0027fa50.data_loc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&fde_table_entry_0027fa50.data_loc" & (field_expression "fde_table_entry_0027fa50.data_loc" identifier . field_identifier))) + identifier) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (pTVar2 == (Target *)0x0) {\n          set_parameters_target(pTVar6);\n        }\n        else if (pTVar6 != pTVar2) goto LAB_000bfac0;" if (parenthesized_expression "(pTVar2 == (Target *)0x0)" ( (binary_expression "pTVar2 == (Target *)0x0" identifier == (cast_expression "(Target *)0x0" ( (type_descriptor "Target *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          set_parameters_target(pTVar6);\n        }" { (expression_statement "set_parameters_target(pTVar6);" (call_expression "set_parameters_target(pTVar6)" identifier (argument_list "(pTVar6)" ( identifier ))) ;) }) (else_clause "else if (pTVar6 != pTVar2) goto LAB_000bfac0;" else (if_statement "if (pTVar6 != pTVar2) goto LAB_000bfac0;" if (parenthesized_expression "(pTVar6 != pTVar2)" ( (binary_expression "pTVar6 != pTVar2" identifier != identifier) )) (goto_statement "goto LAB_000bfac0;" goto statement_identifier ;)))) (expression_statement "local_54 = (Object *)\n                   (*pTVar6->_vptr_Target[0x17])\n                             (pTVar6,this,name,input_file,(undefined4)offset,&ehdr);" (assignment_expression "local_54 = (Object *)\n                   (*pTVar6->_vptr_Target[0x17])\n                             (pTVar6,this,name,input_file,(undefined4)offset,&ehdr)" identifier = (cast_expression "(Object *)\n                   (*pTVar6->_vptr_Target[0x17])\n                             (pTVar6,this,name,input_file,(undefined4)offset,&ehdr)" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pTVar6->_vptr_Target[0x17])\n                             (pTVar6,this,name,input_file,(undefined4)offset,&ehdr)" (parenthesized_expression "(*pTVar6->_vptr_Target[0x17])" ( (pointer_expression "*pTVar6->_vptr_Target[0x17]" * (subscript_expression "pTVar6->_vptr_Target[0x17]" (field_expression "pTVar6->_vptr_Target" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(pTVar6,this,name,input_file,(undefined4)offset,&ehdr)" ( identifier , identifier , identifier , identifier , (cast_expression "(undefined4)offset" ( (type_descriptor "undefined4" type_identifier) ) identifier) , (pointer_expression "&ehdr" & identifier) ))))) ;) (goto_statement "goto LAB_000bf930;" goto statement_identifier ;) })) (if_statement "if (bytes == 0) {\n        local_54 = *(Object **)this;\n        iVar7 = unaff_EDI + 0x1972bf;\n        goto LAB_000bfb11;\n      }" if (parenthesized_expression "(bytes == 0)" ( (binary_expression "bytes == 0" identifier == number_literal) )) (compound_statement "{\n        local_54 = *(Object **)this;\n        iVar7 = unaff_EDI + 0x1972bf;\n        goto LAB_000bfb11;\n      }" { (expression_statement "local_54 = *(Object **)this;" (assignment_expression "local_54 = *(Object **)this" identifier = (pointer_expression "*(Object **)this" * (cast_expression "(Object **)this" ( (type_descriptor "Object **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "iVar7 = unaff_EDI + 0x1972bf;" (assignment_expression "iVar7 = unaff_EDI + 0x1972bf" identifier = (binary_expression "unaff_EDI + 0x1972bf" identifier + number_literal)) ;) (goto_statement "goto LAB_000bfb11;" goto statement_identifier ;) })) }) (else_clause "else {\n      if (size != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable((char *)(unaff_EDI + 0x19719f),0xd94,(char *)(unaff_EDI + 0x198253));\n      }\n      if (big_endian == false) {\n        ehdr.p_ = offset._4_4_;\n        pTVar6 = select_target((Input_file *)name,CONCAT44((undefined4)offset,input_file),\n                               (uint)(offset._4_4_)->e_machine,0x40,false,\n                               (uint)(offset._4_4_)->e_ident[7],(uint)(offset._4_4_)->e_ident[8]);\n        if (pTVar6 == (Target *)0x0) {\n          uVar1 = (ehdr.p_)->e_machine;\n          uVar3 = *(undefined4 *)this;\n          pcVar8 = (char *)gettext(unaff_EDI + 0x1972f7);\n                    /* WARNING: Subroutine does not return */\n          gold_fatal(pcVar8,uVar3,(uint)uVar1);\n        }\n        pTVar2 = *(Target **)\n                  (*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (pTVar2 == (Target *)0x0) {\n          set_parameters_target(pTVar6);\n        }\n        else if (pTVar6 != pTVar2) {\nLAB_000bfac0:\n          if (bytes == 0) {\n            uVar3 = *(undefined4 *)this;\n            pcVar8 = (char *)gettext(unaff_EDI + 0x1942ca);\n            gold_error(pcVar8,uVar3);\n            local_54 = (Object *)0x0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }\n        local_54 = (Object *)\n                   (*pTVar6->_vptr_Target[0x18])\n                             (pTVar6,this,name,input_file,(undefined4)offset,&ehdr);\n        goto LAB_000bf930;\n      }\n      if (bytes == 0) {\n        local_54 = *(Object **)this;\n        iVar7 = unaff_EDI + 0x19731f;\nLAB_000bfb11:\n        pcVar8 = (char *)gettext(iVar7);\n        gold_error(pcVar8,local_54);\n        goto LAB_000bfaa7;\n      }\n    }" else (compound_statement "{\n      if (size != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable((char *)(unaff_EDI + 0x19719f),0xd94,(char *)(unaff_EDI + 0x198253));\n      }\n      if (big_endian == false) {\n        ehdr.p_ = offset._4_4_;\n        pTVar6 = select_target((Input_file *)name,CONCAT44((undefined4)offset,input_file),\n                               (uint)(offset._4_4_)->e_machine,0x40,false,\n                               (uint)(offset._4_4_)->e_ident[7],(uint)(offset._4_4_)->e_ident[8]);\n        if (pTVar6 == (Target *)0x0) {\n          uVar1 = (ehdr.p_)->e_machine;\n          uVar3 = *(undefined4 *)this;\n          pcVar8 = (char *)gettext(unaff_EDI + 0x1972f7);\n                    /* WARNING: Subroutine does not return */\n          gold_fatal(pcVar8,uVar3,(uint)uVar1);\n        }\n        pTVar2 = *(Target **)\n                  (*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (pTVar2 == (Target *)0x0) {\n          set_parameters_target(pTVar6);\n        }\n        else if (pTVar6 != pTVar2) {\nLAB_000bfac0:\n          if (bytes == 0) {\n            uVar3 = *(undefined4 *)this;\n            pcVar8 = (char *)gettext(unaff_EDI + 0x1942ca);\n            gold_error(pcVar8,uVar3);\n            local_54 = (Object *)0x0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }\n        local_54 = (Object *)\n                   (*pTVar6->_vptr_Target[0x18])\n                             (pTVar6,this,name,input_file,(undefined4)offset,&ehdr);\n        goto LAB_000bf930;\n      }\n      if (bytes == 0) {\n        local_54 = *(Object **)this;\n        iVar7 = unaff_EDI + 0x19731f;\nLAB_000bfb11:\n        pcVar8 = (char *)gettext(iVar7);\n        gold_error(pcVar8,local_54);\n        goto LAB_000bfaa7;\n      }\n    }" { (if_statement "if (size != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable((char *)(unaff_EDI + 0x19719f),0xd94,(char *)(unaff_EDI + 0x198253));\n      }" if (parenthesized_expression "(size != 0x40)" ( (binary_expression "size != 0x40" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable((char *)(unaff_EDI + 0x19719f),0xd94,(char *)(unaff_EDI + 0x198253));\n      }" { comment (expression_statement "do_gold_unreachable((char *)(unaff_EDI + 0x19719f),0xd94,(char *)(unaff_EDI + 0x198253));" (call_expression "do_gold_unreachable((char *)(unaff_EDI + 0x19719f),0xd94,(char *)(unaff_EDI + 0x198253))" identifier (argument_list "((char *)(unaff_EDI + 0x19719f),0xd94,(char *)(unaff_EDI + 0x198253))" ( (cast_expression "(char *)(unaff_EDI + 0x19719f)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x19719f)" ( (binary_expression "unaff_EDI + 0x19719f" identifier + number_literal) ))) , number_literal , (cast_expression "(char *)(unaff_EDI + 0x198253)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x198253)" ( (binary_expression "unaff_EDI + 0x198253" identifier + number_literal) ))) ))) ;) })) (if_statement "if (big_endian == false) {\n        ehdr.p_ = offset._4_4_;\n        pTVar6 = select_target((Input_file *)name,CONCAT44((undefined4)offset,input_file),\n                               (uint)(offset._4_4_)->e_machine,0x40,false,\n                               (uint)(offset._4_4_)->e_ident[7],(uint)(offset._4_4_)->e_ident[8]);\n        if (pTVar6 == (Target *)0x0) {\n          uVar1 = (ehdr.p_)->e_machine;\n          uVar3 = *(undefined4 *)this;\n          pcVar8 = (char *)gettext(unaff_EDI + 0x1972f7);\n                    /* WARNING: Subroutine does not return */\n          gold_fatal(pcVar8,uVar3,(uint)uVar1);\n        }\n        pTVar2 = *(Target **)\n                  (*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (pTVar2 == (Target *)0x0) {\n          set_parameters_target(pTVar6);\n        }\n        else if (pTVar6 != pTVar2) {\nLAB_000bfac0:\n          if (bytes == 0) {\n            uVar3 = *(undefined4 *)this;\n            pcVar8 = (char *)gettext(unaff_EDI + 0x1942ca);\n            gold_error(pcVar8,uVar3);\n            local_54 = (Object *)0x0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }\n        local_54 = (Object *)\n                   (*pTVar6->_vptr_Target[0x18])\n                             (pTVar6,this,name,input_file,(undefined4)offset,&ehdr);\n        goto LAB_000bf930;\n      }" if (parenthesized_expression "(big_endian == false)" ( (binary_expression "big_endian == false" identifier == false) )) (compound_statement "{\n        ehdr.p_ = offset._4_4_;\n        pTVar6 = select_target((Input_file *)name,CONCAT44((undefined4)offset,input_file),\n                               (uint)(offset._4_4_)->e_machine,0x40,false,\n                               (uint)(offset._4_4_)->e_ident[7],(uint)(offset._4_4_)->e_ident[8]);\n        if (pTVar6 == (Target *)0x0) {\n          uVar1 = (ehdr.p_)->e_machine;\n          uVar3 = *(undefined4 *)this;\n          pcVar8 = (char *)gettext(unaff_EDI + 0x1972f7);\n                    /* WARNING: Subroutine does not return */\n          gold_fatal(pcVar8,uVar3,(uint)uVar1);\n        }\n        pTVar2 = *(Target **)\n                  (*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (pTVar2 == (Target *)0x0) {\n          set_parameters_target(pTVar6);\n        }\n        else if (pTVar6 != pTVar2) {\nLAB_000bfac0:\n          if (bytes == 0) {\n            uVar3 = *(undefined4 *)this;\n            pcVar8 = (char *)gettext(unaff_EDI + 0x1942ca);\n            gold_error(pcVar8,uVar3);\n            local_54 = (Object *)0x0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }\n        local_54 = (Object *)\n                   (*pTVar6->_vptr_Target[0x18])\n                             (pTVar6,this,name,input_file,(undefined4)offset,&ehdr);\n        goto LAB_000bf930;\n      }" { (expression_statement "ehdr.p_ = offset._4_4_;" (assignment_expression "ehdr.p_ = offset._4_4_" (field_expression "ehdr.p_" identifier . field_identifier) = (field_expression "offset._4_4_" identifier . field_identifier)) ;) (expression_statement "pTVar6 = select_target((Input_file *)name,CONCAT44((undefined4)offset,input_file),\n                               (uint)(offset._4_4_)->e_machine,0x40,false,\n                               (uint)(offset._4_4_)->e_ident[7],(uint)(offset._4_4_)->e_ident[8]);" (assignment_expression "pTVar6 = select_target((Input_file *)name,CONCAT44((undefined4)offset,input_file),\n                               (uint)(offset._4_4_)->e_machine,0x40,false,\n                               (uint)(offset._4_4_)->e_ident[7],(uint)(offset._4_4_)->e_ident[8])" identifier = (call_expression "select_target((Input_file *)name,CONCAT44((undefined4)offset,input_file),\n                               (uint)(offset._4_4_)->e_machine,0x40,false,\n                               (uint)(offset._4_4_)->e_ident[7],(uint)(offset._4_4_)->e_ident[8])" identifier (argument_list "((Input_file *)name,CONCAT44((undefined4)offset,input_file),\n                               (uint)(offset._4_4_)->e_machine,0x40,false,\n                               (uint)(offset._4_4_)->e_ident[7],(uint)(offset._4_4_)->e_ident[8])" ( (cast_expression "(Input_file *)name" ( (type_descriptor "Input_file *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (call_expression "CONCAT44((undefined4)offset,input_file)" identifier (argument_list "((undefined4)offset,input_file)" ( (cast_expression "(undefined4)offset" ( (type_descriptor "undefined4" type_identifier) ) identifier) , identifier ))) , (field_expression "(uint)(offset._4_4_)->e_machine" (call_expression "(uint)(offset._4_4_)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(offset._4_4_)" ( (field_expression "offset._4_4_" identifier . field_identifier) ))) -> field_identifier) , number_literal , false , (subscript_expression "(uint)(offset._4_4_)->e_ident[7]" (field_expression "(uint)(offset._4_4_)->e_ident" (call_expression "(uint)(offset._4_4_)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(offset._4_4_)" ( (field_expression "offset._4_4_" identifier . field_identifier) ))) -> field_identifier) [ number_literal ]) , (subscript_expression "(uint)(offset._4_4_)->e_ident[8]" (field_expression "(uint)(offset._4_4_)->e_ident" (call_expression "(uint)(offset._4_4_)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(offset._4_4_)" ( (field_expression "offset._4_4_" identifier . field_identifier) ))) -> field_identifier) [ number_literal ]) )))) ;) (if_statement "if (pTVar6 == (Target *)0x0) {\n          uVar1 = (ehdr.p_)->e_machine;\n          uVar3 = *(undefined4 *)this;\n          pcVar8 = (char *)gettext(unaff_EDI + 0x1972f7);\n                    /* WARNING: Subroutine does not return */\n          gold_fatal(pcVar8,uVar3,(uint)uVar1);\n        }" if (parenthesized_expression "(pTVar6 == (Target *)0x0)" ( (binary_expression "pTVar6 == (Target *)0x0" identifier == (cast_expression "(Target *)0x0" ( (type_descriptor "Target *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          uVar1 = (ehdr.p_)->e_machine;\n          uVar3 = *(undefined4 *)this;\n          pcVar8 = (char *)gettext(unaff_EDI + 0x1972f7);\n                    /* WARNING: Subroutine does not return */\n          gold_fatal(pcVar8,uVar3,(uint)uVar1);\n        }" { (expression_statement "uVar1 = (ehdr.p_)->e_machine;" (assignment_expression "uVar1 = (ehdr.p_)->e_machine" identifier = (field_expression "(ehdr.p_)->e_machine" (parenthesized_expression "(ehdr.p_)" ( (field_expression "ehdr.p_" identifier . field_identifier) )) -> field_identifier)) ;) (expression_statement "uVar3 = *(undefined4 *)this;" (assignment_expression "uVar3 = *(undefined4 *)this" identifier = (pointer_expression "*(undefined4 *)this" * (cast_expression "(undefined4 *)this" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pcVar8 = (char *)gettext(unaff_EDI + 0x1972f7);" (assignment_expression "pcVar8 = (char *)gettext(unaff_EDI + 0x1972f7)" identifier = (cast_expression "(char *)gettext(unaff_EDI + 0x1972f7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext(unaff_EDI + 0x1972f7)" identifier (argument_list "(unaff_EDI + 0x1972f7)" ( (binary_expression "unaff_EDI + 0x1972f7" identifier + number_literal) ))))) ;) comment (expression_statement "gold_fatal(pcVar8,uVar3,(uint)uVar1);" (call_expression "gold_fatal(pcVar8,uVar3,(uint)uVar1)" identifier (argument_list "(pcVar8,uVar3,(uint)uVar1)" ( identifier , identifier , (cast_expression "(uint)uVar1" ( (type_descriptor "uint" type_identifier) ) identifier) ))) ;) })) (expression_statement "pTVar2 = *(Target **)\n                  (*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);" (assignment_expression "pTVar2 = *(Target **)\n                  (*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc)" identifier = (pointer_expression "*(Target **)\n                  (*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc)" * (cast_expression "(Target **)\n                  (*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc)" ( (type_descriptor "Target **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc)" ( (binary_expression "*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc" (pointer_expression "*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3)" * (cast_expression "(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3)" ( (binary_expression "(int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3" (binary_expression "(int)&fde_table_entry_0027fa50.data_loc + unaff_EDI" (cast_expression "(int)&fde_table_entry_0027fa50.data_loc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&fde_table_entry_0027fa50.data_loc" & (field_expression "fde_table_entry_0027fa50.data_loc" identifier . field_identifier))) + identifier) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (pTVar2 == (Target *)0x0) {\n          set_parameters_target(pTVar6);\n        }\n        else if (pTVar6 != pTVar2) {\nLAB_000bfac0:\n          if (bytes == 0) {\n            uVar3 = *(undefined4 *)this;\n            pcVar8 = (char *)gettext(unaff_EDI + 0x1942ca);\n            gold_error(pcVar8,uVar3);\n            local_54 = (Object *)0x0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }" if (parenthesized_expression "(pTVar2 == (Target *)0x0)" ( (binary_expression "pTVar2 == (Target *)0x0" identifier == (cast_expression "(Target *)0x0" ( (type_descriptor "Target *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          set_parameters_target(pTVar6);\n        }" { (expression_statement "set_parameters_target(pTVar6);" (call_expression "set_parameters_target(pTVar6)" identifier (argument_list "(pTVar6)" ( identifier ))) ;) }) (else_clause "else if (pTVar6 != pTVar2) {\nLAB_000bfac0:\n          if (bytes == 0) {\n            uVar3 = *(undefined4 *)this;\n            pcVar8 = (char *)gettext(unaff_EDI + 0x1942ca);\n            gold_error(pcVar8,uVar3);\n            local_54 = (Object *)0x0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }" else (if_statement "if (pTVar6 != pTVar2) {\nLAB_000bfac0:\n          if (bytes == 0) {\n            uVar3 = *(undefined4 *)this;\n            pcVar8 = (char *)gettext(unaff_EDI + 0x1942ca);\n            gold_error(pcVar8,uVar3);\n            local_54 = (Object *)0x0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }" if (parenthesized_expression "(pTVar6 != pTVar2)" ( (binary_expression "pTVar6 != pTVar2" identifier != identifier) )) (compound_statement "{\nLAB_000bfac0:\n          if (bytes == 0) {\n            uVar3 = *(undefined4 *)this;\n            pcVar8 = (char *)gettext(unaff_EDI + 0x1942ca);\n            gold_error(pcVar8,uVar3);\n            local_54 = (Object *)0x0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }" { (labeled_statement "LAB_000bfac0:\n          if (bytes == 0) {\n            uVar3 = *(undefined4 *)this;\n            pcVar8 = (char *)gettext(unaff_EDI + 0x1942ca);\n            gold_error(pcVar8,uVar3);\n            local_54 = (Object *)0x0;\n            goto LAB_000bf930;\n          }" statement_identifier : (if_statement "if (bytes == 0) {\n            uVar3 = *(undefined4 *)this;\n            pcVar8 = (char *)gettext(unaff_EDI + 0x1942ca);\n            gold_error(pcVar8,uVar3);\n            local_54 = (Object *)0x0;\n            goto LAB_000bf930;\n          }" if (parenthesized_expression "(bytes == 0)" ( (binary_expression "bytes == 0" identifier == number_literal) )) (compound_statement "{\n            uVar3 = *(undefined4 *)this;\n            pcVar8 = (char *)gettext(unaff_EDI + 0x1942ca);\n            gold_error(pcVar8,uVar3);\n            local_54 = (Object *)0x0;\n            goto LAB_000bf930;\n          }" { (expression_statement "uVar3 = *(undefined4 *)this;" (assignment_expression "uVar3 = *(undefined4 *)this" identifier = (pointer_expression "*(undefined4 *)this" * (cast_expression "(undefined4 *)this" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pcVar8 = (char *)gettext(unaff_EDI + 0x1942ca);" (assignment_expression "pcVar8 = (char *)gettext(unaff_EDI + 0x1942ca)" identifier = (cast_expression "(char *)gettext(unaff_EDI + 0x1942ca)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext(unaff_EDI + 0x1942ca)" identifier (argument_list "(unaff_EDI + 0x1942ca)" ( (binary_expression "unaff_EDI + 0x1942ca" identifier + number_literal) ))))) ;) (expression_statement "gold_error(pcVar8,uVar3);" (call_expression "gold_error(pcVar8,uVar3)" identifier (argument_list "(pcVar8,uVar3)" ( identifier , identifier ))) ;) (expression_statement "local_54 = (Object *)0x0;" (assignment_expression "local_54 = (Object *)0x0" identifier = (cast_expression "(Object *)0x0" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000bf930;" goto statement_identifier ;) }))) (goto_statement "goto LAB_000bf923;" goto statement_identifier ;) })))) (expression_statement "local_54 = (Object *)\n                   (*pTVar6->_vptr_Target[0x18])\n                             (pTVar6,this,name,input_file,(undefined4)offset,&ehdr);" (assignment_expression "local_54 = (Object *)\n                   (*pTVar6->_vptr_Target[0x18])\n                             (pTVar6,this,name,input_file,(undefined4)offset,&ehdr)" identifier = (cast_expression "(Object *)\n                   (*pTVar6->_vptr_Target[0x18])\n                             (pTVar6,this,name,input_file,(undefined4)offset,&ehdr)" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pTVar6->_vptr_Target[0x18])\n                             (pTVar6,this,name,input_file,(undefined4)offset,&ehdr)" (parenthesized_expression "(*pTVar6->_vptr_Target[0x18])" ( (pointer_expression "*pTVar6->_vptr_Target[0x18]" * (subscript_expression "pTVar6->_vptr_Target[0x18]" (field_expression "pTVar6->_vptr_Target" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(pTVar6,this,name,input_file,(undefined4)offset,&ehdr)" ( identifier , identifier , identifier , identifier , (cast_expression "(undefined4)offset" ( (type_descriptor "undefined4" type_identifier) ) identifier) , (pointer_expression "&ehdr" & identifier) ))))) ;) (goto_statement "goto LAB_000bf930;" goto statement_identifier ;) })) (if_statement "if (bytes == 0) {\n        local_54 = *(Object **)this;\n        iVar7 = unaff_EDI + 0x19731f;\nLAB_000bfb11:\n        pcVar8 = (char *)gettext(iVar7);\n        gold_error(pcVar8,local_54);\n        goto LAB_000bfaa7;\n      }" if (parenthesized_expression "(bytes == 0)" ( (binary_expression "bytes == 0" identifier == number_literal) )) (compound_statement "{\n        local_54 = *(Object **)this;\n        iVar7 = unaff_EDI + 0x19731f;\nLAB_000bfb11:\n        pcVar8 = (char *)gettext(iVar7);\n        gold_error(pcVar8,local_54);\n        goto LAB_000bfaa7;\n      }" { (expression_statement "local_54 = *(Object **)this;" (assignment_expression "local_54 = *(Object **)this" identifier = (pointer_expression "*(Object **)this" * (cast_expression "(Object **)this" ( (type_descriptor "Object **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "iVar7 = unaff_EDI + 0x19731f;" (assignment_expression "iVar7 = unaff_EDI + 0x19731f" identifier = (binary_expression "unaff_EDI + 0x19731f" identifier + number_literal)) ;) (labeled_statement "LAB_000bfb11:\n        pcVar8 = (char *)gettext(iVar7);" statement_identifier : (expression_statement "pcVar8 = (char *)gettext(iVar7);" (assignment_expression "pcVar8 = (char *)gettext(iVar7)" identifier = (cast_expression "(char *)gettext(iVar7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext(iVar7)" identifier (argument_list "(iVar7)" ( identifier ))))) ;)) (expression_statement "gold_error(pcVar8,local_54);" (call_expression "gold_error(pcVar8,local_54)" identifier (argument_list "(pcVar8,local_54)" ( identifier , identifier ))) ;) (goto_statement "goto LAB_000bfaa7;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_000bf923:\n    local_54 = (Object *)0x0;" statement_identifier : (expression_statement "local_54 = (Object *)0x0;" (assignment_expression "local_54 = (Object *)0x0" identifier = (cast_expression "(Object *)0x0" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "*(undefined1 *)bytes = 1;" (assignment_expression "*(undefined1 *)bytes = 1" (pointer_expression "*(undefined1 *)bytes" * (cast_expression "(undefined1 *)bytes" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) }) (else_clause "else {\n    uVar3 = *(undefined4 *)this;\n    pcVar8 = (char *)gettext(unaff_EDI + 0x196f9c);\n    gold_error(pcVar8,uVar3,_Var4._M_p);\nLAB_000bfaa7:\n    local_54 = (Object *)0x0;\n  }" else (compound_statement "{\n    uVar3 = *(undefined4 *)this;\n    pcVar8 = (char *)gettext(unaff_EDI + 0x196f9c);\n    gold_error(pcVar8,uVar3,_Var4._M_p);\nLAB_000bfaa7:\n    local_54 = (Object *)0x0;\n  }" { (expression_statement "uVar3 = *(undefined4 *)this;" (assignment_expression "uVar3 = *(undefined4 *)this" identifier = (pointer_expression "*(undefined4 *)this" * (cast_expression "(undefined4 *)this" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pcVar8 = (char *)gettext(unaff_EDI + 0x196f9c);" (assignment_expression "pcVar8 = (char *)gettext(unaff_EDI + 0x196f9c)" identifier = (cast_expression "(char *)gettext(unaff_EDI + 0x196f9c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext(unaff_EDI + 0x196f9c)" identifier (argument_list "(unaff_EDI + 0x196f9c)" ( (binary_expression "unaff_EDI + 0x196f9c" identifier + number_literal) ))))) ;) (expression_statement "gold_error(pcVar8,uVar3,_Var4._M_p);" (call_expression "gold_error(pcVar8,uVar3,_Var4._M_p)" identifier (argument_list "(pcVar8,uVar3,_Var4._M_p)" ( identifier , identifier , (field_expression "_Var4._M_p" identifier . field_identifier) ))) ;) (labeled_statement "LAB_000bfaa7:\n    local_54 = (Object *)0x0;" statement_identifier : (expression_statement "local_54 = (Object *)0x0;" (assignment_expression "local_54 = (Object *)0x0" identifier = (cast_expression "(Object *)0x0" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) }))) (labeled_statement "LAB_000bf930:\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)error._M_dataplus._M_p != &error.field_2) {\n    operator_delete(error._M_dataplus._M_p);\n  }" statement_identifier : (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)error._M_dataplus._M_p != &error.field_2) {\n    operator_delete(error._M_dataplus._M_p);\n  }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)error._M_dataplus._M_p != &error.field_2)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)error._M_dataplus._M_p != &error.field_2)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n       *)error._M_dataplus._M_p != &error.field_2" (binary_expression "allocator<char>_>_9\n       *)error._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n       *)error._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "error._M_dataplus._M_p" (field_expression "error._M_dataplus" identifier . field_identifier) . field_identifier))) != (pointer_expression "&error.field_2" & (field_expression "error.field_2" identifier . field_identifier))) )) )) (compound_statement "{\n    operator_delete(error._M_dataplus._M_p);\n  }" { (expression_statement "operator_delete(error._M_dataplus._M_p);" (call_expression "operator_delete(error._M_dataplus._M_p)" identifier (argument_list "(error._M_dataplus._M_p)" ( (field_expression "error._M_dataplus._M_p" (field_expression "error._M_dataplus" identifier . field_identifier) . field_identifier) ))) ;) }))) (return_statement "return local_54;" return identifier ;) }))
(translation_unit "undefined4\nFUN_000bf890(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n            int param_5,int param_6,undefined1 *param_7)\n\n{\n  undefined2 uVar1;\n  int *piVar2;\n  undefined1 *puVar3;\n  char cVar4;\n  int *piVar5;\n  undefined4 uVar6;\n  int iVar7;\n  undefined4 uVar8;\n  int unaff_EDI;\n  undefined4 local_54;\n  char local_3d;\n  int local_3c;\n  int local_38;\n  undefined1 *local_34;\n  undefined4 local_30;\n  undefined1 local_2c [28];\n  \n  FUN_00058c4a();\n  if (param_7 != (undefined1 *)0x0) {\n    *param_7 = 0;\n  }\n  local_30 = 0;\n  local_2c[0] = 0;\n  local_3d = '\0';\n  local_3c = 0;\n  local_34 = local_2c;\n                    \n  cVar4 = FUN_000991b0(param_5,param_6,param_6 >> 0x1f,&local_3c,&local_3d,&local_34);\n  puVar3 = local_34;\n  if (cVar4 == '\0') {\n    uVar8 = *param_1;\n    uVar6 = gettext(unaff_EDI + 0x196f9c);\n    FUN_000828d0(uVar6,uVar8,puVar3);\nLAB_000bfaa7:\n    local_54 = 0;\n  }\n  else {\n    if (local_3c == 0x20) {\n      if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x20,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    \n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) goto LAB_000bfac0;\n        local_54 = (**(code **)(*piVar5 + 0x5c))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }\n      if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x1972bf;\n        goto LAB_000bfb11;\n      }\n    }\n    else {\n      if (local_3c != 0x40) {\n                    \n        FUN_0008b620(unaff_EDI + 0x19719f,0xd94,&UNK_00198253 + unaff_EDI,local_3c);\n      }\n      if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x40,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    \n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) {\nLAB_000bfac0:\n          if (param_7 == (undefined1 *)0x0) {\n            uVar8 = *param_1;\n            uVar6 = gettext(unaff_EDI + 0x1942ca);\n            FUN_000828d0(uVar6,uVar8);\n            local_54 = 0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }\n        local_54 = (**(code **)(*piVar5 + 0x60))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }\n      if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x19731f;\nLAB_000bfb11:\n        uVar8 = gettext(iVar7);\n        FUN_000828d0(uVar8,local_54);\n        goto LAB_000bfaa7;\n      }\n    }\nLAB_000bf923:\n    local_54 = 0;\n    *param_7 = 1;\n  }\nLAB_000bf930:\n  if (local_34 != local_2c) {\n    FUN_001ac470(local_34);\n  }\n  return local_54;\n}\n\n" (function_definition "undefined4\nFUN_000bf890(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n            int param_5,int param_6,undefined1 *param_7)\n\n{\n  undefined2 uVar1;\n  int *piVar2;\n  undefined1 *puVar3;\n  char cVar4;\n  int *piVar5;\n  undefined4 uVar6;\n  int iVar7;\n  undefined4 uVar8;\n  int unaff_EDI;\n  undefined4 local_54;\n  char local_3d;\n  int local_3c;\n  int local_38;\n  undefined1 *local_34;\n  undefined4 local_30;\n  undefined1 local_2c [28];\n  \n  FUN_00058c4a();\n  if (param_7 != (undefined1 *)0x0) {\n    *param_7 = 0;\n  }\n  local_30 = 0;\n  local_2c[0] = 0;\n  local_3d = '\0';\n  local_3c = 0;\n  local_34 = local_2c;\n                    \n  cVar4 = FUN_000991b0(param_5,param_6,param_6 >> 0x1f,&local_3c,&local_3d,&local_34);\n  puVar3 = local_34;\n  if (cVar4 == '\0') {\n    uVar8 = *param_1;\n    uVar6 = gettext(unaff_EDI + 0x196f9c);\n    FUN_000828d0(uVar6,uVar8,puVar3);\nLAB_000bfaa7:\n    local_54 = 0;\n  }\n  else {\n    if (local_3c == 0x20) {\n      if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x20,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    \n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) goto LAB_000bfac0;\n        local_54 = (**(code **)(*piVar5 + 0x5c))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }\n      if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x1972bf;\n        goto LAB_000bfb11;\n      }\n    }\n    else {\n      if (local_3c != 0x40) {\n                    \n        FUN_0008b620(unaff_EDI + 0x19719f,0xd94,&UNK_00198253 + unaff_EDI,local_3c);\n      }\n      if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x40,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    \n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) {\nLAB_000bfac0:\n          if (param_7 == (undefined1 *)0x0) {\n            uVar8 = *param_1;\n            uVar6 = gettext(unaff_EDI + 0x1942ca);\n            FUN_000828d0(uVar6,uVar8);\n            local_54 = 0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }\n        local_54 = (**(code **)(*piVar5 + 0x60))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }\n      if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x19731f;\nLAB_000bfb11:\n        uVar8 = gettext(iVar7);\n        FUN_000828d0(uVar8,local_54);\n        goto LAB_000bfaa7;\n      }\n    }\nLAB_000bf923:\n    local_54 = 0;\n    *param_7 = 1;\n  }\nLAB_000bf930:\n  if (local_34 != local_2c) {\n    FUN_001ac470(local_34);\n  }\n  return local_54;\n}" type_identifier (function_declarator "FUN_000bf890(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n            int param_5,int param_6,undefined1 *param_7)" identifier (parameter_list "(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n            int param_5,int param_6,undefined1 *param_7)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "int param_6" primitive_type identifier) , (parameter_declaration "undefined1 *param_7" type_identifier (pointer_declarator "*param_7" * identifier)) ))) (compound_statement "{\n  undefined2 uVar1;\n  int *piVar2;\n  undefined1 *puVar3;\n  char cVar4;\n  int *piVar5;\n  undefined4 uVar6;\n  int iVar7;\n  undefined4 uVar8;\n  int unaff_EDI;\n  undefined4 local_54;\n  char local_3d;\n  int local_3c;\n  int local_38;\n  undefined1 *local_34;\n  undefined4 local_30;\n  undefined1 local_2c [28];\n  \n  FUN_00058c4a();\n  if (param_7 != (undefined1 *)0x0) {\n    *param_7 = 0;\n  }\n  local_30 = 0;\n  local_2c[0] = 0;\n  local_3d = '\0';\n  local_3c = 0;\n  local_34 = local_2c;\n                    \n  cVar4 = FUN_000991b0(param_5,param_6,param_6 >> 0x1f,&local_3c,&local_3d,&local_34);\n  puVar3 = local_34;\n  if (cVar4 == '\0') {\n    uVar8 = *param_1;\n    uVar6 = gettext(unaff_EDI + 0x196f9c);\n    FUN_000828d0(uVar6,uVar8,puVar3);\nLAB_000bfaa7:\n    local_54 = 0;\n  }\n  else {\n    if (local_3c == 0x20) {\n      if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x20,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    \n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) goto LAB_000bfac0;\n        local_54 = (**(code **)(*piVar5 + 0x5c))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }\n      if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x1972bf;\n        goto LAB_000bfb11;\n      }\n    }\n    else {\n      if (local_3c != 0x40) {\n                    \n        FUN_0008b620(unaff_EDI + 0x19719f,0xd94,&UNK_00198253 + unaff_EDI,local_3c);\n      }\n      if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x40,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    \n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) {\nLAB_000bfac0:\n          if (param_7 == (undefined1 *)0x0) {\n            uVar8 = *param_1;\n            uVar6 = gettext(unaff_EDI + 0x1942ca);\n            FUN_000828d0(uVar6,uVar8);\n            local_54 = 0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }\n        local_54 = (**(code **)(*piVar5 + 0x60))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }\n      if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x19731f;\nLAB_000bfb11:\n        uVar8 = gettext(iVar7);\n        FUN_000828d0(uVar8,local_54);\n        goto LAB_000bfaa7;\n      }\n    }\nLAB_000bf923:\n    local_54 = 0;\n    *param_7 = 1;\n  }\nLAB_000bf930:\n  if (local_34 != local_2c) {\n    FUN_001ac470(local_34);\n  }\n  return local_54;\n}" { (declaration "undefined2 uVar1;" type_identifier identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "undefined1 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "undefined4 local_54;" type_identifier identifier ;) (declaration "char local_3d;" primitive_type identifier ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "int local_38;" primitive_type identifier ;) (declaration "undefined1 *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "undefined1 local_2c [28];" type_identifier (array_declarator "local_2c [28]" identifier [ number_literal ]) ;) (expression_statement "FUN_00058c4a();" (call_expression "FUN_00058c4a()" identifier (argument_list "()" ( ))) ;) (if_statement "if (param_7 != (undefined1 *)0x0) {\n    *param_7 = 0;\n  }" if (parenthesized_expression "(param_7 != (undefined1 *)0x0)" ( (binary_expression "param_7 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *param_7 = 0;\n  }" { (expression_statement "*param_7 = 0;" (assignment_expression "*param_7 = 0" (pointer_expression "*param_7" * identifier) = number_literal) ;) })) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "local_2c[0] = 0;" (assignment_expression "local_2c[0] = 0" (subscript_expression "local_2c[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_3d = '\0';" (assignment_expression "local_3d = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" identifier = number_literal) ;) (expression_statement "local_34 = local_2c;" (assignment_expression "local_34 = local_2c" identifier = identifier) ;) (expression_statement "cVar4 = FUN_000991b0(param_5,param_6,param_6 >> 0x1f,&local_3c,&local_3d,&local_34);" (assignment_expression "cVar4 = FUN_000991b0(param_5,param_6,param_6 >> 0x1f,&local_3c,&local_3d,&local_34)" identifier = (call_expression "FUN_000991b0(param_5,param_6,param_6 >> 0x1f,&local_3c,&local_3d,&local_34)" identifier (argument_list "(param_5,param_6,param_6 >> 0x1f,&local_3c,&local_3d,&local_34)" ( identifier , identifier , (binary_expression "param_6 >> 0x1f" identifier >> number_literal) , (pointer_expression "&local_3c" & identifier) , (pointer_expression "&local_3d" & identifier) , (pointer_expression "&local_34" & identifier) )))) ;) (expression_statement "puVar3 = local_34;" (assignment_expression "puVar3 = local_34" identifier = identifier) ;) (if_statement "if (cVar4 == '\0') {\n    uVar8 = *param_1;\n    uVar6 = gettext(unaff_EDI + 0x196f9c);\n    FUN_000828d0(uVar6,uVar8,puVar3);\nLAB_000bfaa7:\n    local_54 = 0;\n  }\n  else {\n    if (local_3c == 0x20) {\n      if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x20,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    \n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) goto LAB_000bfac0;\n        local_54 = (**(code **)(*piVar5 + 0x5c))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }\n      if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x1972bf;\n        goto LAB_000bfb11;\n      }\n    }\n    else {\n      if (local_3c != 0x40) {\n                    \n        FUN_0008b620(unaff_EDI + 0x19719f,0xd94,&UNK_00198253 + unaff_EDI,local_3c);\n      }\n      if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x40,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    \n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) {\nLAB_000bfac0:\n          if (param_7 == (undefined1 *)0x0) {\n            uVar8 = *param_1;\n            uVar6 = gettext(unaff_EDI + 0x1942ca);\n            FUN_000828d0(uVar6,uVar8);\n            local_54 = 0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }\n        local_54 = (**(code **)(*piVar5 + 0x60))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }\n      if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x19731f;\nLAB_000bfb11:\n        uVar8 = gettext(iVar7);\n        FUN_000828d0(uVar8,local_54);\n        goto LAB_000bfaa7;\n      }\n    }\nLAB_000bf923:\n    local_54 = 0;\n    *param_7 = 1;\n  }" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    uVar8 = *param_1;\n    uVar6 = gettext(unaff_EDI + 0x196f9c);\n    FUN_000828d0(uVar6,uVar8,puVar3);\nLAB_000bfaa7:\n    local_54 = 0;\n  }" { (expression_statement "uVar8 = *param_1;" (assignment_expression "uVar8 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar6 = gettext(unaff_EDI + 0x196f9c);" (assignment_expression "uVar6 = gettext(unaff_EDI + 0x196f9c)" identifier = (call_expression "gettext(unaff_EDI + 0x196f9c)" identifier (argument_list "(unaff_EDI + 0x196f9c)" ( (binary_expression "unaff_EDI + 0x196f9c" identifier + number_literal) )))) ;) (expression_statement "FUN_000828d0(uVar6,uVar8,puVar3);" (call_expression "FUN_000828d0(uVar6,uVar8,puVar3)" identifier (argument_list "(uVar6,uVar8,puVar3)" ( identifier , identifier , identifier ))) ;) (labeled_statement "LAB_000bfaa7:\n    local_54 = 0;" statement_identifier : (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;)) }) (else_clause "else {\n    if (local_3c == 0x20) {\n      if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x20,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    \n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) goto LAB_000bfac0;\n        local_54 = (**(code **)(*piVar5 + 0x5c))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }\n      if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x1972bf;\n        goto LAB_000bfb11;\n      }\n    }\n    else {\n      if (local_3c != 0x40) {\n                    \n        FUN_0008b620(unaff_EDI + 0x19719f,0xd94,&UNK_00198253 + unaff_EDI,local_3c);\n      }\n      if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x40,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    \n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) {\nLAB_000bfac0:\n          if (param_7 == (undefined1 *)0x0) {\n            uVar8 = *param_1;\n            uVar6 = gettext(unaff_EDI + 0x1942ca);\n            FUN_000828d0(uVar6,uVar8);\n            local_54 = 0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }\n        local_54 = (**(code **)(*piVar5 + 0x60))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }\n      if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x19731f;\nLAB_000bfb11:\n        uVar8 = gettext(iVar7);\n        FUN_000828d0(uVar8,local_54);\n        goto LAB_000bfaa7;\n      }\n    }\nLAB_000bf923:\n    local_54 = 0;\n    *param_7 = 1;\n  }" else (compound_statement "{\n    if (local_3c == 0x20) {\n      if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x20,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    \n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) goto LAB_000bfac0;\n        local_54 = (**(code **)(*piVar5 + 0x5c))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }\n      if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x1972bf;\n        goto LAB_000bfb11;\n      }\n    }\n    else {\n      if (local_3c != 0x40) {\n                    \n        FUN_0008b620(unaff_EDI + 0x19719f,0xd94,&UNK_00198253 + unaff_EDI,local_3c);\n      }\n      if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x40,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    \n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) {\nLAB_000bfac0:\n          if (param_7 == (undefined1 *)0x0) {\n            uVar8 = *param_1;\n            uVar6 = gettext(unaff_EDI + 0x1942ca);\n            FUN_000828d0(uVar6,uVar8);\n            local_54 = 0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }\n        local_54 = (**(code **)(*piVar5 + 0x60))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }\n      if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x19731f;\nLAB_000bfb11:\n        uVar8 = gettext(iVar7);\n        FUN_000828d0(uVar8,local_54);\n        goto LAB_000bfaa7;\n      }\n    }\nLAB_000bf923:\n    local_54 = 0;\n    *param_7 = 1;\n  }" { (if_statement "if (local_3c == 0x20) {\n      if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x20,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    \n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) goto LAB_000bfac0;\n        local_54 = (**(code **)(*piVar5 + 0x5c))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }\n      if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x1972bf;\n        goto LAB_000bfb11;\n      }\n    }\n    else {\n      if (local_3c != 0x40) {\n                    \n        FUN_0008b620(unaff_EDI + 0x19719f,0xd94,&UNK_00198253 + unaff_EDI,local_3c);\n      }\n      if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x40,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    \n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) {\nLAB_000bfac0:\n          if (param_7 == (undefined1 *)0x0) {\n            uVar8 = *param_1;\n            uVar6 = gettext(unaff_EDI + 0x1942ca);\n            FUN_000828d0(uVar6,uVar8);\n            local_54 = 0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }\n        local_54 = (**(code **)(*piVar5 + 0x60))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }\n      if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x19731f;\nLAB_000bfb11:\n        uVar8 = gettext(iVar7);\n        FUN_000828d0(uVar8,local_54);\n        goto LAB_000bfaa7;\n      }\n    }" if (parenthesized_expression "(local_3c == 0x20)" ( (binary_expression "local_3c == 0x20" identifier == number_literal) )) (compound_statement "{\n      if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x20,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    \n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) goto LAB_000bfac0;\n        local_54 = (**(code **)(*piVar5 + 0x5c))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }\n      if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x1972bf;\n        goto LAB_000bfb11;\n      }\n    }" { (if_statement "if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x20,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    \n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) goto LAB_000bfac0;\n        local_54 = (**(code **)(*piVar5 + 0x5c))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }" if (parenthesized_expression "(local_3d == '\0')" ( (binary_expression "local_3d == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x20,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    \n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) goto LAB_000bfac0;\n        local_54 = (**(code **)(*piVar5 + 0x5c))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }" { (expression_statement "local_38 = param_5;" (assignment_expression "local_38 = param_5" identifier = identifier) ;) (expression_statement "piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x20,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));" (assignment_expression "piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x20,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8))" identifier = (cast_expression "(int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x20,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x20,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8))" identifier (argument_list "(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x20,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8))" ( identifier , identifier , identifier , (pointer_expression "*(undefined2 *)(param_5 + 0x12)" * (cast_expression "(undefined2 *)(param_5 + 0x12)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x12)" ( (binary_expression "param_5 + 0x12" identifier + number_literal) )))) , number_literal , number_literal , (pointer_expression "*(undefined1 *)(param_5 + 7)" * (cast_expression "(undefined1 *)(param_5 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 7)" ( (binary_expression "param_5 + 7" identifier + number_literal) )))) , (pointer_expression "*(undefined1 *)(param_5 + 8)" * (cast_expression "(undefined1 *)(param_5 + 8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 8)" ( (binary_expression "param_5 + 8" identifier + number_literal) )))) ))))) ;) (if_statement "if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    \n          FUN_00082870(uVar6,uVar8,uVar1);\n        }" if (parenthesized_expression "(piVar5 == (int *)0x0)" ( (binary_expression "piVar5 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    \n          FUN_00082870(uVar6,uVar8,uVar1);\n        }" { (expression_statement "uVar1 = *(undefined2 *)(local_38 + 0x12);" (assignment_expression "uVar1 = *(undefined2 *)(local_38 + 0x12)" identifier = (pointer_expression "*(undefined2 *)(local_38 + 0x12)" * (cast_expression "(undefined2 *)(local_38 + 0x12)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_38 + 0x12)" ( (binary_expression "local_38 + 0x12" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = *param_1;" (assignment_expression "uVar8 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar6 = gettext(unaff_EDI + 0x1972f7);" (assignment_expression "uVar6 = gettext(unaff_EDI + 0x1972f7)" identifier = (call_expression "gettext(unaff_EDI + 0x1972f7)" identifier (argument_list "(unaff_EDI + 0x1972f7)" ( (binary_expression "unaff_EDI + 0x1972f7" identifier + number_literal) )))) ;) (expression_statement "FUN_00082870(uVar6,uVar8,uVar1);" (call_expression "FUN_00082870(uVar6,uVar8,uVar1)" identifier (argument_list "(uVar6,uVar8,uVar1)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);" (assignment_expression "piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc)" identifier = (pointer_expression "*(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc)" * (cast_expression "(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc)" ( (binary_expression "*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc" (pointer_expression "*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3)" * (cast_expression "(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3)" ( (binary_expression "(int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3" (binary_expression "(int)&fde_table_entry_0027fa50.data_loc + unaff_EDI" (cast_expression "(int)&fde_table_entry_0027fa50.data_loc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&fde_table_entry_0027fa50.data_loc" & (field_expression "fde_table_entry_0027fa50.data_loc" identifier . field_identifier))) + identifier) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) goto LAB_000bfac0;" if (parenthesized_expression "(piVar2 == (int *)0x0)" ( (binary_expression "piVar2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          FUN_0011a510(piVar5);\n        }" { (expression_statement "FUN_0011a510(piVar5);" (call_expression "FUN_0011a510(piVar5)" identifier (argument_list "(piVar5)" ( identifier ))) ;) }) (else_clause "else if (piVar5 != piVar2) goto LAB_000bfac0;" else (if_statement "if (piVar5 != piVar2) goto LAB_000bfac0;" if (parenthesized_expression "(piVar5 != piVar2)" ( (binary_expression "piVar5 != piVar2" identifier != identifier) )) (goto_statement "goto LAB_000bfac0;" goto statement_identifier ;)))) (expression_statement "local_54 = (**(code **)(*piVar5 + 0x5c))(piVar5,param_1,param_2,param_3,param_4,&local_38);" (assignment_expression "local_54 = (**(code **)(*piVar5 + 0x5c))(piVar5,param_1,param_2,param_3,param_4,&local_38)" identifier = (call_expression "(**(code **)(*piVar5 + 0x5c))(piVar5,param_1,param_2,param_3,param_4,&local_38)" (parenthesized_expression "(**(code **)(*piVar5 + 0x5c))" ( (pointer_expression "**(code **)(*piVar5 + 0x5c)" * (pointer_expression "*(code **)(*piVar5 + 0x5c)" * (cast_expression "(code **)(*piVar5 + 0x5c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar5 + 0x5c)" ( (binary_expression "*piVar5 + 0x5c" (pointer_expression "*piVar5" * identifier) + number_literal) ))))) )) (argument_list "(piVar5,param_1,param_2,param_3,param_4,&local_38)" ( identifier , identifier , identifier , identifier , identifier , (pointer_expression "&local_38" & identifier) )))) ;) (goto_statement "goto LAB_000bf930;" goto statement_identifier ;) })) (if_statement "if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x1972bf;\n        goto LAB_000bfb11;\n      }" if (parenthesized_expression "(param_7 == (undefined1 *)0x0)" ( (binary_expression "param_7 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x1972bf;\n        goto LAB_000bfb11;\n      }" { (expression_statement "local_54 = *param_1;" (assignment_expression "local_54 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "iVar7 = unaff_EDI + 0x1972bf;" (assignment_expression "iVar7 = unaff_EDI + 0x1972bf" identifier = (binary_expression "unaff_EDI + 0x1972bf" identifier + number_literal)) ;) (goto_statement "goto LAB_000bfb11;" goto statement_identifier ;) })) }) (else_clause "else {\n      if (local_3c != 0x40) {\n                    \n        FUN_0008b620(unaff_EDI + 0x19719f,0xd94,&UNK_00198253 + unaff_EDI,local_3c);\n      }\n      if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x40,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    \n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) {\nLAB_000bfac0:\n          if (param_7 == (undefined1 *)0x0) {\n            uVar8 = *param_1;\n            uVar6 = gettext(unaff_EDI + 0x1942ca);\n            FUN_000828d0(uVar6,uVar8);\n            local_54 = 0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }\n        local_54 = (**(code **)(*piVar5 + 0x60))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }\n      if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x19731f;\nLAB_000bfb11:\n        uVar8 = gettext(iVar7);\n        FUN_000828d0(uVar8,local_54);\n        goto LAB_000bfaa7;\n      }\n    }" else (compound_statement "{\n      if (local_3c != 0x40) {\n                    \n        FUN_0008b620(unaff_EDI + 0x19719f,0xd94,&UNK_00198253 + unaff_EDI,local_3c);\n      }\n      if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x40,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    \n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) {\nLAB_000bfac0:\n          if (param_7 == (undefined1 *)0x0) {\n            uVar8 = *param_1;\n            uVar6 = gettext(unaff_EDI + 0x1942ca);\n            FUN_000828d0(uVar6,uVar8);\n            local_54 = 0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }\n        local_54 = (**(code **)(*piVar5 + 0x60))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }\n      if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x19731f;\nLAB_000bfb11:\n        uVar8 = gettext(iVar7);\n        FUN_000828d0(uVar8,local_54);\n        goto LAB_000bfaa7;\n      }\n    }" { (if_statement "if (local_3c != 0x40) {\n                    \n        FUN_0008b620(unaff_EDI + 0x19719f,0xd94,&UNK_00198253 + unaff_EDI,local_3c);\n      }" if (parenthesized_expression "(local_3c != 0x40)" ( (binary_expression "local_3c != 0x40" identifier != number_literal) )) (compound_statement "{\n                    \n        FUN_0008b620(unaff_EDI + 0x19719f,0xd94,&UNK_00198253 + unaff_EDI,local_3c);\n      }" { (expression_statement "FUN_0008b620(unaff_EDI + 0x19719f,0xd94,&UNK_00198253 + unaff_EDI,local_3c);" (call_expression "FUN_0008b620(unaff_EDI + 0x19719f,0xd94,&UNK_00198253 + unaff_EDI,local_3c)" identifier (argument_list "(unaff_EDI + 0x19719f,0xd94,&UNK_00198253 + unaff_EDI,local_3c)" ( (binary_expression "unaff_EDI + 0x19719f" identifier + number_literal) , number_literal , (binary_expression "&UNK_00198253 + unaff_EDI" (pointer_expression "&UNK_00198253" & identifier) + identifier) , identifier ))) ;) })) (if_statement "if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x40,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    \n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) {\nLAB_000bfac0:\n          if (param_7 == (undefined1 *)0x0) {\n            uVar8 = *param_1;\n            uVar6 = gettext(unaff_EDI + 0x1942ca);\n            FUN_000828d0(uVar6,uVar8);\n            local_54 = 0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }\n        local_54 = (**(code **)(*piVar5 + 0x60))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }" if (parenthesized_expression "(local_3d == '\0')" ( (binary_expression "local_3d == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x40,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    \n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) {\nLAB_000bfac0:\n          if (param_7 == (undefined1 *)0x0) {\n            uVar8 = *param_1;\n            uVar6 = gettext(unaff_EDI + 0x1942ca);\n            FUN_000828d0(uVar6,uVar8);\n            local_54 = 0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }\n        local_54 = (**(code **)(*piVar5 + 0x60))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }" { (expression_statement "local_38 = param_5;" (assignment_expression "local_38 = param_5" identifier = identifier) ;) (expression_statement "piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x40,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));" (assignment_expression "piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x40,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8))" identifier = (cast_expression "(int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x40,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x40,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8))" identifier (argument_list "(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x40,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8))" ( identifier , identifier , identifier , (pointer_expression "*(undefined2 *)(param_5 + 0x12)" * (cast_expression "(undefined2 *)(param_5 + 0x12)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x12)" ( (binary_expression "param_5 + 0x12" identifier + number_literal) )))) , number_literal , number_literal , (pointer_expression "*(undefined1 *)(param_5 + 7)" * (cast_expression "(undefined1 *)(param_5 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 7)" ( (binary_expression "param_5 + 7" identifier + number_literal) )))) , (pointer_expression "*(undefined1 *)(param_5 + 8)" * (cast_expression "(undefined1 *)(param_5 + 8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 8)" ( (binary_expression "param_5 + 8" identifier + number_literal) )))) ))))) ;) (if_statement "if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    \n          FUN_00082870(uVar6,uVar8,uVar1);\n        }" if (parenthesized_expression "(piVar5 == (int *)0x0)" ( (binary_expression "piVar5 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    \n          FUN_00082870(uVar6,uVar8,uVar1);\n        }" { (expression_statement "uVar1 = *(undefined2 *)(local_38 + 0x12);" (assignment_expression "uVar1 = *(undefined2 *)(local_38 + 0x12)" identifier = (pointer_expression "*(undefined2 *)(local_38 + 0x12)" * (cast_expression "(undefined2 *)(local_38 + 0x12)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_38 + 0x12)" ( (binary_expression "local_38 + 0x12" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = *param_1;" (assignment_expression "uVar8 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar6 = gettext(unaff_EDI + 0x1972f7);" (assignment_expression "uVar6 = gettext(unaff_EDI + 0x1972f7)" identifier = (call_expression "gettext(unaff_EDI + 0x1972f7)" identifier (argument_list "(unaff_EDI + 0x1972f7)" ( (binary_expression "unaff_EDI + 0x1972f7" identifier + number_literal) )))) ;) (expression_statement "FUN_00082870(uVar6,uVar8,uVar1);" (call_expression "FUN_00082870(uVar6,uVar8,uVar1)" identifier (argument_list "(uVar6,uVar8,uVar1)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);" (assignment_expression "piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc)" identifier = (pointer_expression "*(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc)" * (cast_expression "(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc)" ( (binary_expression "*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc" (pointer_expression "*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3)" * (cast_expression "(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3)" ( (binary_expression "(int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3" (binary_expression "(int)&fde_table_entry_0027fa50.data_loc + unaff_EDI" (cast_expression "(int)&fde_table_entry_0027fa50.data_loc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&fde_table_entry_0027fa50.data_loc" & (field_expression "fde_table_entry_0027fa50.data_loc" identifier . field_identifier))) + identifier) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) {\nLAB_000bfac0:\n          if (param_7 == (undefined1 *)0x0) {\n            uVar8 = *param_1;\n            uVar6 = gettext(unaff_EDI + 0x1942ca);\n            FUN_000828d0(uVar6,uVar8);\n            local_54 = 0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }" if (parenthesized_expression "(piVar2 == (int *)0x0)" ( (binary_expression "piVar2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          FUN_0011a510(piVar5);\n        }" { (expression_statement "FUN_0011a510(piVar5);" (call_expression "FUN_0011a510(piVar5)" identifier (argument_list "(piVar5)" ( identifier ))) ;) }) (else_clause "else if (piVar5 != piVar2) {\nLAB_000bfac0:\n          if (param_7 == (undefined1 *)0x0) {\n            uVar8 = *param_1;\n            uVar6 = gettext(unaff_EDI + 0x1942ca);\n            FUN_000828d0(uVar6,uVar8);\n            local_54 = 0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }" else (if_statement "if (piVar5 != piVar2) {\nLAB_000bfac0:\n          if (param_7 == (undefined1 *)0x0) {\n            uVar8 = *param_1;\n            uVar6 = gettext(unaff_EDI + 0x1942ca);\n            FUN_000828d0(uVar6,uVar8);\n            local_54 = 0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }" if (parenthesized_expression "(piVar5 != piVar2)" ( (binary_expression "piVar5 != piVar2" identifier != identifier) )) (compound_statement "{\nLAB_000bfac0:\n          if (param_7 == (undefined1 *)0x0) {\n            uVar8 = *param_1;\n            uVar6 = gettext(unaff_EDI + 0x1942ca);\n            FUN_000828d0(uVar6,uVar8);\n            local_54 = 0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }" { (labeled_statement "LAB_000bfac0:\n          if (param_7 == (undefined1 *)0x0) {\n            uVar8 = *param_1;\n            uVar6 = gettext(unaff_EDI + 0x1942ca);\n            FUN_000828d0(uVar6,uVar8);\n            local_54 = 0;\n            goto LAB_000bf930;\n          }" statement_identifier : (if_statement "if (param_7 == (undefined1 *)0x0) {\n            uVar8 = *param_1;\n            uVar6 = gettext(unaff_EDI + 0x1942ca);\n            FUN_000828d0(uVar6,uVar8);\n            local_54 = 0;\n            goto LAB_000bf930;\n          }" if (parenthesized_expression "(param_7 == (undefined1 *)0x0)" ( (binary_expression "param_7 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar8 = *param_1;\n            uVar6 = gettext(unaff_EDI + 0x1942ca);\n            FUN_000828d0(uVar6,uVar8);\n            local_54 = 0;\n            goto LAB_000bf930;\n          }" { (expression_statement "uVar8 = *param_1;" (assignment_expression "uVar8 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar6 = gettext(unaff_EDI + 0x1942ca);" (assignment_expression "uVar6 = gettext(unaff_EDI + 0x1942ca)" identifier = (call_expression "gettext(unaff_EDI + 0x1942ca)" identifier (argument_list "(unaff_EDI + 0x1942ca)" ( (binary_expression "unaff_EDI + 0x1942ca" identifier + number_literal) )))) ;) (expression_statement "FUN_000828d0(uVar6,uVar8);" (call_expression "FUN_000828d0(uVar6,uVar8)" identifier (argument_list "(uVar6,uVar8)" ( identifier , identifier ))) ;) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_000bf930;" goto statement_identifier ;) }))) (goto_statement "goto LAB_000bf923;" goto statement_identifier ;) })))) (expression_statement "local_54 = (**(code **)(*piVar5 + 0x60))(piVar5,param_1,param_2,param_3,param_4,&local_38);" (assignment_expression "local_54 = (**(code **)(*piVar5 + 0x60))(piVar5,param_1,param_2,param_3,param_4,&local_38)" identifier = (call_expression "(**(code **)(*piVar5 + 0x60))(piVar5,param_1,param_2,param_3,param_4,&local_38)" (parenthesized_expression "(**(code **)(*piVar5 + 0x60))" ( (pointer_expression "**(code **)(*piVar5 + 0x60)" * (pointer_expression "*(code **)(*piVar5 + 0x60)" * (cast_expression "(code **)(*piVar5 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar5 + 0x60)" ( (binary_expression "*piVar5 + 0x60" (pointer_expression "*piVar5" * identifier) + number_literal) ))))) )) (argument_list "(piVar5,param_1,param_2,param_3,param_4,&local_38)" ( identifier , identifier , identifier , identifier , identifier , (pointer_expression "&local_38" & identifier) )))) ;) (goto_statement "goto LAB_000bf930;" goto statement_identifier ;) })) (if_statement "if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x19731f;\nLAB_000bfb11:\n        uVar8 = gettext(iVar7);\n        FUN_000828d0(uVar8,local_54);\n        goto LAB_000bfaa7;\n      }" if (parenthesized_expression "(param_7 == (undefined1 *)0x0)" ( (binary_expression "param_7 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x19731f;\nLAB_000bfb11:\n        uVar8 = gettext(iVar7);\n        FUN_000828d0(uVar8,local_54);\n        goto LAB_000bfaa7;\n      }" { (expression_statement "local_54 = *param_1;" (assignment_expression "local_54 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "iVar7 = unaff_EDI + 0x19731f;" (assignment_expression "iVar7 = unaff_EDI + 0x19731f" identifier = (binary_expression "unaff_EDI + 0x19731f" identifier + number_literal)) ;) (labeled_statement "LAB_000bfb11:\n        uVar8 = gettext(iVar7);" statement_identifier : (expression_statement "uVar8 = gettext(iVar7);" (assignment_expression "uVar8 = gettext(iVar7)" identifier = (call_expression "gettext(iVar7)" identifier (argument_list "(iVar7)" ( identifier )))) ;)) (expression_statement "FUN_000828d0(uVar8,local_54);" (call_expression "FUN_000828d0(uVar8,local_54)" identifier (argument_list "(uVar8,local_54)" ( identifier , identifier ))) ;) (goto_statement "goto LAB_000bfaa7;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_000bf923:\n    local_54 = 0;" statement_identifier : (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;)) (expression_statement "*param_7 = 1;" (assignment_expression "*param_7 = 1" (pointer_expression "*param_7" * identifier) = number_literal) ;) }))) (labeled_statement "LAB_000bf930:\n  if (local_34 != local_2c) {\n    FUN_001ac470(local_34);\n  }" statement_identifier : (if_statement "if (local_34 != local_2c) {\n    FUN_001ac470(local_34);\n  }" if (parenthesized_expression "(local_34 != local_2c)" ( (binary_expression "local_34 != local_2c" identifier != identifier) )) (compound_statement "{\n    FUN_001ac470(local_34);\n  }" { (expression_statement "FUN_001ac470(local_34);" (call_expression "FUN_001ac470(local_34)" identifier (argument_list "(local_34)" ( identifier ))) ;) }))) (return_statement "return local_54;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT >> LIT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression IDENT . field_identifier))) + IDENT) + LIT) )))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (goto_statement goto statement_identifier ;)))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , (pointer_expression & IDENT) )))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression (pointer_expression & IDENT) + IDENT) , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression IDENT . field_identifier))) + IDENT) + LIT) )))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) }))) (goto_statement goto statement_identifier ;) })))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , (pointer_expression & IDENT) )))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))) (return_statement return IDENT ;) })))
(function_definition "undefined4\nFUN_000bf890(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n            int param_5,int param_6,undefined1 *param_7)\n\n{\n  undefined2 uVar1;\n  int *piVar2;\n  undefined1 *puVar3;\n  char cVar4;\n  int *piVar5;\n  undefined4 uVar6;\n  int iVar7;\n  undefined4 uVar8;\n  int unaff_EDI;\n  undefined4 local_54;\n  char local_3d;\n  int local_3c;\n  int local_38;\n  undefined1 *local_34;\n  undefined4 local_30;\n  undefined1 local_2c [28];\n  \n  FUN_00058c4a();\n  if (param_7 != (undefined1 *)0x0) {\n    *param_7 = 0;\n  }\n  local_30 = 0;\n  local_2c[0] = 0;\n  local_3d = '\0';\n  local_3c = 0;\n  local_34 = local_2c;\n                    \n  cVar4 = FUN_000991b0(param_5,param_6,param_6 >> 0x1f,&local_3c,&local_3d,&local_34);\n  puVar3 = local_34;\n  if (cVar4 == '\0') {\n    uVar8 = *param_1;\n    uVar6 = gettext(unaff_EDI + 0x196f9c);\n    FUN_000828d0(uVar6,uVar8,puVar3);\nLAB_000bfaa7:\n    local_54 = 0;\n  }\n  else {\n    if (local_3c == 0x20) {\n      if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x20,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    \n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) goto LAB_000bfac0;\n        local_54 = (**(code **)(*piVar5 + 0x5c))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }\n      if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x1972bf;\n        goto LAB_000bfb11;\n      }\n    }\n    else {\n      if (local_3c != 0x40) {\n                    \n        FUN_0008b620(unaff_EDI + 0x19719f,0xd94,&UNK_00198253 + unaff_EDI,local_3c);\n      }\n      if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x40,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    \n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) {\nLAB_000bfac0:\n          if (param_7 == (undefined1 *)0x0) {\n            uVar8 = *param_1;\n            uVar6 = gettext(unaff_EDI + 0x1942ca);\n            FUN_000828d0(uVar6,uVar8);\n            local_54 = 0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }\n        local_54 = (**(code **)(*piVar5 + 0x60))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }\n      if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x19731f;\nLAB_000bfb11:\n        uVar8 = gettext(iVar7);\n        FUN_000828d0(uVar8,local_54);\n        goto LAB_000bfaa7;\n      }\n    }\nLAB_000bf923:\n    local_54 = 0;\n    *param_7 = 1;\n  }\nLAB_000bf930:\n  if (local_34 != local_2c) {\n    FUN_001ac470(local_34);\n  }\n  return local_54;\n}" (type_identifier "undefined4") (function_declarator "FUN_000bf890(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n            int param_5,int param_6,undefined1 *param_7)" (identifier "FUN_000bf890") (parameter_list "(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n            int param_5,int param_6,undefined1 *param_7)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) (, ",") (parameter_declaration "int param_5" (primitive_type "int") (identifier "param_5")) (, ",") (parameter_declaration "int param_6" (primitive_type "int") (identifier "param_6")) (, ",") (parameter_declaration "undefined1 *param_7" (type_identifier "undefined1") (pointer_declarator "*param_7" (* "*") (identifier "param_7"))) () ")"))) (compound_statement "{\n  undefined2 uVar1;\n  int *piVar2;\n  undefined1 *puVar3;\n  char cVar4;\n  int *piVar5;\n  undefined4 uVar6;\n  int iVar7;\n  undefined4 uVar8;\n  int unaff_EDI;\n  undefined4 local_54;\n  char local_3d;\n  int local_3c;\n  int local_38;\n  undefined1 *local_34;\n  undefined4 local_30;\n  undefined1 local_2c [28];\n  \n  FUN_00058c4a();\n  if (param_7 != (undefined1 *)0x0) {\n    *param_7 = 0;\n  }\n  local_30 = 0;\n  local_2c[0] = 0;\n  local_3d = '\0';\n  local_3c = 0;\n  local_34 = local_2c;\n                    \n  cVar4 = FUN_000991b0(param_5,param_6,param_6 >> 0x1f,&local_3c,&local_3d,&local_34);\n  puVar3 = local_34;\n  if (cVar4 == '\0') {\n    uVar8 = *param_1;\n    uVar6 = gettext(unaff_EDI + 0x196f9c);\n    FUN_000828d0(uVar6,uVar8,puVar3);\nLAB_000bfaa7:\n    local_54 = 0;\n  }\n  else {\n    if (local_3c == 0x20) {\n      if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x20,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    \n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) goto LAB_000bfac0;\n        local_54 = (**(code **)(*piVar5 + 0x5c))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }\n      if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x1972bf;\n        goto LAB_000bfb11;\n      }\n    }\n    else {\n      if (local_3c != 0x40) {\n                    \n        FUN_0008b620(unaff_EDI + 0x19719f,0xd94,&UNK_00198253 + unaff_EDI,local_3c);\n      }\n      if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x40,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    \n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) {\nLAB_000bfac0:\n          if (param_7 == (undefined1 *)0x0) {\n            uVar8 = *param_1;\n            uVar6 = gettext(unaff_EDI + 0x1942ca);\n            FUN_000828d0(uVar6,uVar8);\n            local_54 = 0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }\n        local_54 = (**(code **)(*piVar5 + 0x60))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }\n      if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x19731f;\nLAB_000bfb11:\n        uVar8 = gettext(iVar7);\n        FUN_000828d0(uVar8,local_54);\n        goto LAB_000bfaa7;\n      }\n    }\nLAB_000bf923:\n    local_54 = 0;\n    *param_7 = 1;\n  }\nLAB_000bf930:\n  if (local_34 != local_2c) {\n    FUN_001ac470(local_34);\n  }\n  return local_54;\n}" ({ "{") (declaration "undefined2 uVar1;" (type_identifier "undefined2") (identifier "uVar1") (; ";")) (declaration "int *piVar2;" (primitive_type "int") (pointer_declarator "*piVar2" (* "*") (identifier "piVar2")) (; ";")) (declaration "undefined1 *puVar3;" (type_identifier "undefined1") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "char cVar4;" (primitive_type "char") (identifier "cVar4") (; ";")) (declaration "int *piVar5;" (primitive_type "int") (pointer_declarator "*piVar5" (* "*") (identifier "piVar5")) (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "undefined4 uVar8;" (type_identifier "undefined4") (identifier "uVar8") (; ";")) (declaration "int unaff_EDI;" (primitive_type "int") (identifier "unaff_EDI") (; ";")) (declaration "undefined4 local_54;" (type_identifier "undefined4") (identifier "local_54") (; ";")) (declaration "char local_3d;" (primitive_type "char") (identifier "local_3d") (; ";")) (declaration "int local_3c;" (primitive_type "int") (identifier "local_3c") (; ";")) (declaration "int local_38;" (primitive_type "int") (identifier "local_38") (; ";")) (declaration "undefined1 *local_34;" (type_identifier "undefined1") (pointer_declarator "*local_34" (* "*") (identifier "local_34")) (; ";")) (declaration "undefined4 local_30;" (type_identifier "undefined4") (identifier "local_30") (; ";")) (declaration "undefined1 local_2c [28];" (type_identifier "undefined1") (array_declarator "local_2c [28]" (identifier "local_2c") ([ "[") (number_literal "28") (] "]")) (; ";")) (expression_statement "FUN_00058c4a();" (call_expression "FUN_00058c4a()" (identifier "FUN_00058c4a") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (param_7 != (undefined1 *)0x0) {\n    *param_7 = 0;\n  }" (if "if") (parenthesized_expression "(param_7 != (undefined1 *)0x0)" (( "(") (binary_expression "param_7 != (undefined1 *)0x0" (identifier "param_7") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    *param_7 = 0;\n  }" ({ "{") (expression_statement "*param_7 = 0;" (assignment_expression "*param_7 = 0" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" (identifier "local_30") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_2c[0] = 0;" (assignment_expression "local_2c[0] = 0" (subscript_expression "local_2c[0]" (identifier "local_2c") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_3d = '\0';" (assignment_expression "local_3d = '\0'" (identifier "local_3d") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" (identifier "local_3c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_34 = local_2c;" (assignment_expression "local_34 = local_2c" (identifier "local_34") (= "=") (identifier "local_2c")) (; ";")) (expression_statement "cVar4 = FUN_000991b0(param_5,param_6,param_6 >> 0x1f,&local_3c,&local_3d,&local_34);" (assignment_expression "cVar4 = FUN_000991b0(param_5,param_6,param_6 >> 0x1f,&local_3c,&local_3d,&local_34)" (identifier "cVar4") (= "=") (call_expression "FUN_000991b0(param_5,param_6,param_6 >> 0x1f,&local_3c,&local_3d,&local_34)" (identifier "FUN_000991b0") (argument_list "(param_5,param_6,param_6 >> 0x1f,&local_3c,&local_3d,&local_34)" (( "(") (identifier "param_5") (, ",") (identifier "param_6") (, ",") (binary_expression "param_6 >> 0x1f" (identifier "param_6") (>> ">>") (number_literal "0x1f")) (, ",") (pointer_expression "&local_3c" (& "&") (identifier "local_3c")) (, ",") (pointer_expression "&local_3d" (& "&") (identifier "local_3d")) (, ",") (pointer_expression "&local_34" (& "&") (identifier "local_34")) () ")")))) (; ";")) (expression_statement "puVar3 = local_34;" (assignment_expression "puVar3 = local_34" (identifier "puVar3") (= "=") (identifier "local_34")) (; ";")) (if_statement "if (cVar4 == '\0') {\n    uVar8 = *param_1;\n    uVar6 = gettext(unaff_EDI + 0x196f9c);\n    FUN_000828d0(uVar6,uVar8,puVar3);\nLAB_000bfaa7:\n    local_54 = 0;\n  }\n  else {\n    if (local_3c == 0x20) {\n      if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x20,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    \n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) goto LAB_000bfac0;\n        local_54 = (**(code **)(*piVar5 + 0x5c))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }\n      if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x1972bf;\n        goto LAB_000bfb11;\n      }\n    }\n    else {\n      if (local_3c != 0x40) {\n                    \n        FUN_0008b620(unaff_EDI + 0x19719f,0xd94,&UNK_00198253 + unaff_EDI,local_3c);\n      }\n      if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x40,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    \n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) {\nLAB_000bfac0:\n          if (param_7 == (undefined1 *)0x0) {\n            uVar8 = *param_1;\n            uVar6 = gettext(unaff_EDI + 0x1942ca);\n            FUN_000828d0(uVar6,uVar8);\n            local_54 = 0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }\n        local_54 = (**(code **)(*piVar5 + 0x60))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }\n      if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x19731f;\nLAB_000bfb11:\n        uVar8 = gettext(iVar7);\n        FUN_000828d0(uVar8,local_54);\n        goto LAB_000bfaa7;\n      }\n    }\nLAB_000bf923:\n    local_54 = 0;\n    *param_7 = 1;\n  }" (if "if") (parenthesized_expression "(cVar4 == '\0')" (( "(") (binary_expression "cVar4 == '\0'" (identifier "cVar4") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    uVar8 = *param_1;\n    uVar6 = gettext(unaff_EDI + 0x196f9c);\n    FUN_000828d0(uVar6,uVar8,puVar3);\nLAB_000bfaa7:\n    local_54 = 0;\n  }" ({ "{") (expression_statement "uVar8 = *param_1;" (assignment_expression "uVar8 = *param_1" (identifier "uVar8") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "uVar6 = gettext(unaff_EDI + 0x196f9c);" (assignment_expression "uVar6 = gettext(unaff_EDI + 0x196f9c)" (identifier "uVar6") (= "=") (call_expression "gettext(unaff_EDI + 0x196f9c)" (identifier "gettext") (argument_list "(unaff_EDI + 0x196f9c)" (( "(") (binary_expression "unaff_EDI + 0x196f9c" (identifier "unaff_EDI") (+ "+") (number_literal "0x196f9c")) () ")")))) (; ";")) (expression_statement "FUN_000828d0(uVar6,uVar8,puVar3);" (call_expression "FUN_000828d0(uVar6,uVar8,puVar3)" (identifier "FUN_000828d0") (argument_list "(uVar6,uVar8,puVar3)" (( "(") (identifier "uVar6") (, ",") (identifier "uVar8") (, ",") (identifier "puVar3") () ")"))) (; ";")) (labeled_statement "LAB_000bfaa7:\n    local_54 = 0;" (statement_identifier "LAB_000bfaa7") (: ":") (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" (identifier "local_54") (= "=") (number_literal "0")) (; ";"))) (} "}")) (else_clause "else {\n    if (local_3c == 0x20) {\n      if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x20,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    \n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) goto LAB_000bfac0;\n        local_54 = (**(code **)(*piVar5 + 0x5c))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }\n      if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x1972bf;\n        goto LAB_000bfb11;\n      }\n    }\n    else {\n      if (local_3c != 0x40) {\n                    \n        FUN_0008b620(unaff_EDI + 0x19719f,0xd94,&UNK_00198253 + unaff_EDI,local_3c);\n      }\n      if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x40,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    \n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) {\nLAB_000bfac0:\n          if (param_7 == (undefined1 *)0x0) {\n            uVar8 = *param_1;\n            uVar6 = gettext(unaff_EDI + 0x1942ca);\n            FUN_000828d0(uVar6,uVar8);\n            local_54 = 0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }\n        local_54 = (**(code **)(*piVar5 + 0x60))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }\n      if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x19731f;\nLAB_000bfb11:\n        uVar8 = gettext(iVar7);\n        FUN_000828d0(uVar8,local_54);\n        goto LAB_000bfaa7;\n      }\n    }\nLAB_000bf923:\n    local_54 = 0;\n    *param_7 = 1;\n  }" (else "else") (compound_statement "{\n    if (local_3c == 0x20) {\n      if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x20,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    \n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) goto LAB_000bfac0;\n        local_54 = (**(code **)(*piVar5 + 0x5c))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }\n      if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x1972bf;\n        goto LAB_000bfb11;\n      }\n    }\n    else {\n      if (local_3c != 0x40) {\n                    \n        FUN_0008b620(unaff_EDI + 0x19719f,0xd94,&UNK_00198253 + unaff_EDI,local_3c);\n      }\n      if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x40,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    \n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) {\nLAB_000bfac0:\n          if (param_7 == (undefined1 *)0x0) {\n            uVar8 = *param_1;\n            uVar6 = gettext(unaff_EDI + 0x1942ca);\n            FUN_000828d0(uVar6,uVar8);\n            local_54 = 0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }\n        local_54 = (**(code **)(*piVar5 + 0x60))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }\n      if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x19731f;\nLAB_000bfb11:\n        uVar8 = gettext(iVar7);\n        FUN_000828d0(uVar8,local_54);\n        goto LAB_000bfaa7;\n      }\n    }\nLAB_000bf923:\n    local_54 = 0;\n    *param_7 = 1;\n  }" ({ "{") (if_statement "if (local_3c == 0x20) {\n      if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x20,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    \n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) goto LAB_000bfac0;\n        local_54 = (**(code **)(*piVar5 + 0x5c))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }\n      if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x1972bf;\n        goto LAB_000bfb11;\n      }\n    }\n    else {\n      if (local_3c != 0x40) {\n                    \n        FUN_0008b620(unaff_EDI + 0x19719f,0xd94,&UNK_00198253 + unaff_EDI,local_3c);\n      }\n      if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x40,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    \n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) {\nLAB_000bfac0:\n          if (param_7 == (undefined1 *)0x0) {\n            uVar8 = *param_1;\n            uVar6 = gettext(unaff_EDI + 0x1942ca);\n            FUN_000828d0(uVar6,uVar8);\n            local_54 = 0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }\n        local_54 = (**(code **)(*piVar5 + 0x60))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }\n      if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x19731f;\nLAB_000bfb11:\n        uVar8 = gettext(iVar7);\n        FUN_000828d0(uVar8,local_54);\n        goto LAB_000bfaa7;\n      }\n    }" (if "if") (parenthesized_expression "(local_3c == 0x20)" (( "(") (binary_expression "local_3c == 0x20" (identifier "local_3c") (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n      if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x20,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    \n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) goto LAB_000bfac0;\n        local_54 = (**(code **)(*piVar5 + 0x5c))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }\n      if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x1972bf;\n        goto LAB_000bfb11;\n      }\n    }" ({ "{") (if_statement "if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x20,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    \n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) goto LAB_000bfac0;\n        local_54 = (**(code **)(*piVar5 + 0x5c))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }" (if "if") (parenthesized_expression "(local_3d == '\0')" (( "(") (binary_expression "local_3d == '\0'" (identifier "local_3d") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x20,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    \n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) goto LAB_000bfac0;\n        local_54 = (**(code **)(*piVar5 + 0x5c))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }" ({ "{") (expression_statement "local_38 = param_5;" (assignment_expression "local_38 = param_5" (identifier "local_38") (= "=") (identifier "param_5")) (; ";")) (expression_statement "piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x20,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));" (assignment_expression "piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x20,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8))" (identifier "piVar5") (= "=") (cast_expression "(int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x20,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8))" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x20,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8))" (identifier "FUN_00160240") (argument_list "(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x20,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8))" (( "(") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "param_4") (, ",") (pointer_expression "*(undefined2 *)(param_5 + 0x12)" (* "*") (cast_expression "(undefined2 *)(param_5 + 0x12)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0x12)" (( "(") (binary_expression "param_5 + 0x12" (identifier "param_5") (+ "+") (number_literal "0x12")) () ")")))) (, ",") (number_literal "0x20") (, ",") (number_literal "0") (, ",") (pointer_expression "*(undefined1 *)(param_5 + 7)" (* "*") (cast_expression "(undefined1 *)(param_5 + 7)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 7)" (( "(") (binary_expression "param_5 + 7" (identifier "param_5") (+ "+") (number_literal "7")) () ")")))) (, ",") (pointer_expression "*(undefined1 *)(param_5 + 8)" (* "*") (cast_expression "(undefined1 *)(param_5 + 8)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 8)" (( "(") (binary_expression "param_5 + 8" (identifier "param_5") (+ "+") (number_literal "8")) () ")")))) () ")"))))) (; ";")) (if_statement "if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    \n          FUN_00082870(uVar6,uVar8,uVar1);\n        }" (if "if") (parenthesized_expression "(piVar5 == (int *)0x0)" (( "(") (binary_expression "piVar5 == (int *)0x0" (identifier "piVar5") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    \n          FUN_00082870(uVar6,uVar8,uVar1);\n        }" ({ "{") (expression_statement "uVar1 = *(undefined2 *)(local_38 + 0x12);" (assignment_expression "uVar1 = *(undefined2 *)(local_38 + 0x12)" (identifier "uVar1") (= "=") (pointer_expression "*(undefined2 *)(local_38 + 0x12)" (* "*") (cast_expression "(undefined2 *)(local_38 + 0x12)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_38 + 0x12)" (( "(") (binary_expression "local_38 + 0x12" (identifier "local_38") (+ "+") (number_literal "0x12")) () ")"))))) (; ";")) (expression_statement "uVar8 = *param_1;" (assignment_expression "uVar8 = *param_1" (identifier "uVar8") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "uVar6 = gettext(unaff_EDI + 0x1972f7);" (assignment_expression "uVar6 = gettext(unaff_EDI + 0x1972f7)" (identifier "uVar6") (= "=") (call_expression "gettext(unaff_EDI + 0x1972f7)" (identifier "gettext") (argument_list "(unaff_EDI + 0x1972f7)" (( "(") (binary_expression "unaff_EDI + 0x1972f7" (identifier "unaff_EDI") (+ "+") (number_literal "0x1972f7")) () ")")))) (; ";")) (expression_statement "FUN_00082870(uVar6,uVar8,uVar1);" (call_expression "FUN_00082870(uVar6,uVar8,uVar1)" (identifier "FUN_00082870") (argument_list "(uVar6,uVar8,uVar1)" (( "(") (identifier "uVar6") (, ",") (identifier "uVar8") (, ",") (identifier "uVar1") () ")"))) (; ";")) (} "}"))) (expression_statement "piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);" (assignment_expression "piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc)" (identifier "piVar2") (= "=") (pointer_expression "*(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc)" (* "*") (cast_expression "(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc)" (( "(") (binary_expression "*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc" (pointer_expression "*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3)" (* "*") (cast_expression "(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3)" (( "(") (binary_expression "(int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3" (binary_expression "(int)&fde_table_entry_0027fa50.data_loc + unaff_EDI" (cast_expression "(int)&fde_table_entry_0027fa50.data_loc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&fde_table_entry_0027fa50.data_loc" (& "&") (field_expression "fde_table_entry_0027fa50.data_loc" (identifier "fde_table_entry_0027fa50") (. ".") (field_identifier "data_loc")))) (+ "+") (identifier "unaff_EDI")) (+ "+") (number_literal "3")) () ")")))) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) goto LAB_000bfac0;" (if "if") (parenthesized_expression "(piVar2 == (int *)0x0)" (( "(") (binary_expression "piVar2 == (int *)0x0" (identifier "piVar2") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          FUN_0011a510(piVar5);\n        }" ({ "{") (expression_statement "FUN_0011a510(piVar5);" (call_expression "FUN_0011a510(piVar5)" (identifier "FUN_0011a510") (argument_list "(piVar5)" (( "(") (identifier "piVar5") () ")"))) (; ";")) (} "}")) (else_clause "else if (piVar5 != piVar2) goto LAB_000bfac0;" (else "else") (if_statement "if (piVar5 != piVar2) goto LAB_000bfac0;" (if "if") (parenthesized_expression "(piVar5 != piVar2)" (( "(") (binary_expression "piVar5 != piVar2" (identifier "piVar5") (!= "!=") (identifier "piVar2")) () ")")) (goto_statement "goto LAB_000bfac0;" (goto "goto") (statement_identifier "LAB_000bfac0") (; ";"))))) (expression_statement "local_54 = (**(code **)(*piVar5 + 0x5c))(piVar5,param_1,param_2,param_3,param_4,&local_38);" (assignment_expression "local_54 = (**(code **)(*piVar5 + 0x5c))(piVar5,param_1,param_2,param_3,param_4,&local_38)" (identifier "local_54") (= "=") (call_expression "(**(code **)(*piVar5 + 0x5c))(piVar5,param_1,param_2,param_3,param_4,&local_38)" (parenthesized_expression "(**(code **)(*piVar5 + 0x5c))" (( "(") (pointer_expression "**(code **)(*piVar5 + 0x5c)" (* "*") (pointer_expression "*(code **)(*piVar5 + 0x5c)" (* "*") (cast_expression "(code **)(*piVar5 + 0x5c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar5 + 0x5c)" (( "(") (binary_expression "*piVar5 + 0x5c" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (+ "+") (number_literal "0x5c")) () ")"))))) () ")")) (argument_list "(piVar5,param_1,param_2,param_3,param_4,&local_38)" (( "(") (identifier "piVar5") (, ",") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "param_4") (, ",") (pointer_expression "&local_38" (& "&") (identifier "local_38")) () ")")))) (; ";")) (goto_statement "goto LAB_000bf930;" (goto "goto") (statement_identifier "LAB_000bf930") (; ";")) (} "}"))) (if_statement "if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x1972bf;\n        goto LAB_000bfb11;\n      }" (if "if") (parenthesized_expression "(param_7 == (undefined1 *)0x0)" (( "(") (binary_expression "param_7 == (undefined1 *)0x0" (identifier "param_7") (== "==") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x1972bf;\n        goto LAB_000bfb11;\n      }" ({ "{") (expression_statement "local_54 = *param_1;" (assignment_expression "local_54 = *param_1" (identifier "local_54") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "iVar7 = unaff_EDI + 0x1972bf;" (assignment_expression "iVar7 = unaff_EDI + 0x1972bf" (identifier "iVar7") (= "=") (binary_expression "unaff_EDI + 0x1972bf" (identifier "unaff_EDI") (+ "+") (number_literal "0x1972bf"))) (; ";")) (goto_statement "goto LAB_000bfb11;" (goto "goto") (statement_identifier "LAB_000bfb11") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      if (local_3c != 0x40) {\n                    \n        FUN_0008b620(unaff_EDI + 0x19719f,0xd94,&UNK_00198253 + unaff_EDI,local_3c);\n      }\n      if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x40,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    \n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) {\nLAB_000bfac0:\n          if (param_7 == (undefined1 *)0x0) {\n            uVar8 = *param_1;\n            uVar6 = gettext(unaff_EDI + 0x1942ca);\n            FUN_000828d0(uVar6,uVar8);\n            local_54 = 0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }\n        local_54 = (**(code **)(*piVar5 + 0x60))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }\n      if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x19731f;\nLAB_000bfb11:\n        uVar8 = gettext(iVar7);\n        FUN_000828d0(uVar8,local_54);\n        goto LAB_000bfaa7;\n      }\n    }" (else "else") (compound_statement "{\n      if (local_3c != 0x40) {\n                    \n        FUN_0008b620(unaff_EDI + 0x19719f,0xd94,&UNK_00198253 + unaff_EDI,local_3c);\n      }\n      if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x40,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    \n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) {\nLAB_000bfac0:\n          if (param_7 == (undefined1 *)0x0) {\n            uVar8 = *param_1;\n            uVar6 = gettext(unaff_EDI + 0x1942ca);\n            FUN_000828d0(uVar6,uVar8);\n            local_54 = 0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }\n        local_54 = (**(code **)(*piVar5 + 0x60))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }\n      if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x19731f;\nLAB_000bfb11:\n        uVar8 = gettext(iVar7);\n        FUN_000828d0(uVar8,local_54);\n        goto LAB_000bfaa7;\n      }\n    }" ({ "{") (if_statement "if (local_3c != 0x40) {\n                    \n        FUN_0008b620(unaff_EDI + 0x19719f,0xd94,&UNK_00198253 + unaff_EDI,local_3c);\n      }" (if "if") (parenthesized_expression "(local_3c != 0x40)" (( "(") (binary_expression "local_3c != 0x40" (identifier "local_3c") (!= "!=") (number_literal "0x40")) () ")")) (compound_statement "{\n                    \n        FUN_0008b620(unaff_EDI + 0x19719f,0xd94,&UNK_00198253 + unaff_EDI,local_3c);\n      }" ({ "{") (expression_statement "FUN_0008b620(unaff_EDI + 0x19719f,0xd94,&UNK_00198253 + unaff_EDI,local_3c);" (call_expression "FUN_0008b620(unaff_EDI + 0x19719f,0xd94,&UNK_00198253 + unaff_EDI,local_3c)" (identifier "FUN_0008b620") (argument_list "(unaff_EDI + 0x19719f,0xd94,&UNK_00198253 + unaff_EDI,local_3c)" (( "(") (binary_expression "unaff_EDI + 0x19719f" (identifier "unaff_EDI") (+ "+") (number_literal "0x19719f")) (, ",") (number_literal "0xd94") (, ",") (binary_expression "&UNK_00198253 + unaff_EDI" (pointer_expression "&UNK_00198253" (& "&") (identifier "UNK_00198253")) (+ "+") (identifier "unaff_EDI")) (, ",") (identifier "local_3c") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_3d == '\0') {\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x40,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    \n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) {\nLAB_000bfac0:\n          if (param_7 == (undefined1 *)0x0) {\n            uVar8 = *param_1;\n            uVar6 = gettext(unaff_EDI + 0x1942ca);\n            FUN_000828d0(uVar6,uVar8);\n            local_54 = 0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }\n        local_54 = (**(code **)(*piVar5 + 0x60))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }" (if "if") (parenthesized_expression "(local_3d == '\0')" (( "(") (binary_expression "local_3d == '\0'" (identifier "local_3d") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        local_38 = param_5;\n        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x40,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));\n        if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    \n          FUN_00082870(uVar6,uVar8,uVar1);\n        }\n        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);\n        if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) {\nLAB_000bfac0:\n          if (param_7 == (undefined1 *)0x0) {\n            uVar8 = *param_1;\n            uVar6 = gettext(unaff_EDI + 0x1942ca);\n            FUN_000828d0(uVar6,uVar8);\n            local_54 = 0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }\n        local_54 = (**(code **)(*piVar5 + 0x60))(piVar5,param_1,param_2,param_3,param_4,&local_38);\n        goto LAB_000bf930;\n      }" ({ "{") (expression_statement "local_38 = param_5;" (assignment_expression "local_38 = param_5" (identifier "local_38") (= "=") (identifier "param_5")) (; ";")) (expression_statement "piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x40,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));" (assignment_expression "piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x40,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8))" (identifier "piVar5") (= "=") (cast_expression "(int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x40,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8))" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x40,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8))" (identifier "FUN_00160240") (argument_list "(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x40,0,\n                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8))" (( "(") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "param_4") (, ",") (pointer_expression "*(undefined2 *)(param_5 + 0x12)" (* "*") (cast_expression "(undefined2 *)(param_5 + 0x12)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0x12)" (( "(") (binary_expression "param_5 + 0x12" (identifier "param_5") (+ "+") (number_literal "0x12")) () ")")))) (, ",") (number_literal "0x40") (, ",") (number_literal "0") (, ",") (pointer_expression "*(undefined1 *)(param_5 + 7)" (* "*") (cast_expression "(undefined1 *)(param_5 + 7)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 7)" (( "(") (binary_expression "param_5 + 7" (identifier "param_5") (+ "+") (number_literal "7")) () ")")))) (, ",") (pointer_expression "*(undefined1 *)(param_5 + 8)" (* "*") (cast_expression "(undefined1 *)(param_5 + 8)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 8)" (( "(") (binary_expression "param_5 + 8" (identifier "param_5") (+ "+") (number_literal "8")) () ")")))) () ")"))))) (; ";")) (if_statement "if (piVar5 == (int *)0x0) {\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    \n          FUN_00082870(uVar6,uVar8,uVar1);\n        }" (if "if") (parenthesized_expression "(piVar5 == (int *)0x0)" (( "(") (binary_expression "piVar5 == (int *)0x0" (identifier "piVar5") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          uVar1 = *(undefined2 *)(local_38 + 0x12);\n          uVar8 = *param_1;\n          uVar6 = gettext(unaff_EDI + 0x1972f7);\n                    \n          FUN_00082870(uVar6,uVar8,uVar1);\n        }" ({ "{") (expression_statement "uVar1 = *(undefined2 *)(local_38 + 0x12);" (assignment_expression "uVar1 = *(undefined2 *)(local_38 + 0x12)" (identifier "uVar1") (= "=") (pointer_expression "*(undefined2 *)(local_38 + 0x12)" (* "*") (cast_expression "(undefined2 *)(local_38 + 0x12)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_38 + 0x12)" (( "(") (binary_expression "local_38 + 0x12" (identifier "local_38") (+ "+") (number_literal "0x12")) () ")"))))) (; ";")) (expression_statement "uVar8 = *param_1;" (assignment_expression "uVar8 = *param_1" (identifier "uVar8") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "uVar6 = gettext(unaff_EDI + 0x1972f7);" (assignment_expression "uVar6 = gettext(unaff_EDI + 0x1972f7)" (identifier "uVar6") (= "=") (call_expression "gettext(unaff_EDI + 0x1972f7)" (identifier "gettext") (argument_list "(unaff_EDI + 0x1972f7)" (( "(") (binary_expression "unaff_EDI + 0x1972f7" (identifier "unaff_EDI") (+ "+") (number_literal "0x1972f7")) () ")")))) (; ";")) (expression_statement "FUN_00082870(uVar6,uVar8,uVar1);" (call_expression "FUN_00082870(uVar6,uVar8,uVar1)" (identifier "FUN_00082870") (argument_list "(uVar6,uVar8,uVar1)" (( "(") (identifier "uVar6") (, ",") (identifier "uVar8") (, ",") (identifier "uVar1") () ")"))) (; ";")) (} "}"))) (expression_statement "piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);" (assignment_expression "piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc)" (identifier "piVar2") (= "=") (pointer_expression "*(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc)" (* "*") (cast_expression "(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc)" (( "(") (binary_expression "*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc" (pointer_expression "*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3)" (* "*") (cast_expression "(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3)" (( "(") (binary_expression "(int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3" (binary_expression "(int)&fde_table_entry_0027fa50.data_loc + unaff_EDI" (cast_expression "(int)&fde_table_entry_0027fa50.data_loc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&fde_table_entry_0027fa50.data_loc" (& "&") (field_expression "fde_table_entry_0027fa50.data_loc" (identifier "fde_table_entry_0027fa50") (. ".") (field_identifier "data_loc")))) (+ "+") (identifier "unaff_EDI")) (+ "+") (number_literal "3")) () ")")))) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (piVar2 == (int *)0x0) {\n          FUN_0011a510(piVar5);\n        }\n        else if (piVar5 != piVar2) {\nLAB_000bfac0:\n          if (param_7 == (undefined1 *)0x0) {\n            uVar8 = *param_1;\n            uVar6 = gettext(unaff_EDI + 0x1942ca);\n            FUN_000828d0(uVar6,uVar8);\n            local_54 = 0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }" (if "if") (parenthesized_expression "(piVar2 == (int *)0x0)" (( "(") (binary_expression "piVar2 == (int *)0x0" (identifier "piVar2") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          FUN_0011a510(piVar5);\n        }" ({ "{") (expression_statement "FUN_0011a510(piVar5);" (call_expression "FUN_0011a510(piVar5)" (identifier "FUN_0011a510") (argument_list "(piVar5)" (( "(") (identifier "piVar5") () ")"))) (; ";")) (} "}")) (else_clause "else if (piVar5 != piVar2) {\nLAB_000bfac0:\n          if (param_7 == (undefined1 *)0x0) {\n            uVar8 = *param_1;\n            uVar6 = gettext(unaff_EDI + 0x1942ca);\n            FUN_000828d0(uVar6,uVar8);\n            local_54 = 0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }" (else "else") (if_statement "if (piVar5 != piVar2) {\nLAB_000bfac0:\n          if (param_7 == (undefined1 *)0x0) {\n            uVar8 = *param_1;\n            uVar6 = gettext(unaff_EDI + 0x1942ca);\n            FUN_000828d0(uVar6,uVar8);\n            local_54 = 0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }" (if "if") (parenthesized_expression "(piVar5 != piVar2)" (( "(") (binary_expression "piVar5 != piVar2" (identifier "piVar5") (!= "!=") (identifier "piVar2")) () ")")) (compound_statement "{\nLAB_000bfac0:\n          if (param_7 == (undefined1 *)0x0) {\n            uVar8 = *param_1;\n            uVar6 = gettext(unaff_EDI + 0x1942ca);\n            FUN_000828d0(uVar6,uVar8);\n            local_54 = 0;\n            goto LAB_000bf930;\n          }\n          goto LAB_000bf923;\n        }" ({ "{") (labeled_statement "LAB_000bfac0:\n          if (param_7 == (undefined1 *)0x0) {\n            uVar8 = *param_1;\n            uVar6 = gettext(unaff_EDI + 0x1942ca);\n            FUN_000828d0(uVar6,uVar8);\n            local_54 = 0;\n            goto LAB_000bf930;\n          }" (statement_identifier "LAB_000bfac0") (: ":") (if_statement "if (param_7 == (undefined1 *)0x0) {\n            uVar8 = *param_1;\n            uVar6 = gettext(unaff_EDI + 0x1942ca);\n            FUN_000828d0(uVar6,uVar8);\n            local_54 = 0;\n            goto LAB_000bf930;\n          }" (if "if") (parenthesized_expression "(param_7 == (undefined1 *)0x0)" (( "(") (binary_expression "param_7 == (undefined1 *)0x0" (identifier "param_7") (== "==") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            uVar8 = *param_1;\n            uVar6 = gettext(unaff_EDI + 0x1942ca);\n            FUN_000828d0(uVar6,uVar8);\n            local_54 = 0;\n            goto LAB_000bf930;\n          }" ({ "{") (expression_statement "uVar8 = *param_1;" (assignment_expression "uVar8 = *param_1" (identifier "uVar8") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "uVar6 = gettext(unaff_EDI + 0x1942ca);" (assignment_expression "uVar6 = gettext(unaff_EDI + 0x1942ca)" (identifier "uVar6") (= "=") (call_expression "gettext(unaff_EDI + 0x1942ca)" (identifier "gettext") (argument_list "(unaff_EDI + 0x1942ca)" (( "(") (binary_expression "unaff_EDI + 0x1942ca" (identifier "unaff_EDI") (+ "+") (number_literal "0x1942ca")) () ")")))) (; ";")) (expression_statement "FUN_000828d0(uVar6,uVar8);" (call_expression "FUN_000828d0(uVar6,uVar8)" (identifier "FUN_000828d0") (argument_list "(uVar6,uVar8)" (( "(") (identifier "uVar6") (, ",") (identifier "uVar8") () ")"))) (; ";")) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" (identifier "local_54") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_000bf930;" (goto "goto") (statement_identifier "LAB_000bf930") (; ";")) (} "}")))) (goto_statement "goto LAB_000bf923;" (goto "goto") (statement_identifier "LAB_000bf923") (; ";")) (} "}"))))) (expression_statement "local_54 = (**(code **)(*piVar5 + 0x60))(piVar5,param_1,param_2,param_3,param_4,&local_38);" (assignment_expression "local_54 = (**(code **)(*piVar5 + 0x60))(piVar5,param_1,param_2,param_3,param_4,&local_38)" (identifier "local_54") (= "=") (call_expression "(**(code **)(*piVar5 + 0x60))(piVar5,param_1,param_2,param_3,param_4,&local_38)" (parenthesized_expression "(**(code **)(*piVar5 + 0x60))" (( "(") (pointer_expression "**(code **)(*piVar5 + 0x60)" (* "*") (pointer_expression "*(code **)(*piVar5 + 0x60)" (* "*") (cast_expression "(code **)(*piVar5 + 0x60)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar5 + 0x60)" (( "(") (binary_expression "*piVar5 + 0x60" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (+ "+") (number_literal "0x60")) () ")"))))) () ")")) (argument_list "(piVar5,param_1,param_2,param_3,param_4,&local_38)" (( "(") (identifier "piVar5") (, ",") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "param_4") (, ",") (pointer_expression "&local_38" (& "&") (identifier "local_38")) () ")")))) (; ";")) (goto_statement "goto LAB_000bf930;" (goto "goto") (statement_identifier "LAB_000bf930") (; ";")) (} "}"))) (if_statement "if (param_7 == (undefined1 *)0x0) {\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x19731f;\nLAB_000bfb11:\n        uVar8 = gettext(iVar7);\n        FUN_000828d0(uVar8,local_54);\n        goto LAB_000bfaa7;\n      }" (if "if") (parenthesized_expression "(param_7 == (undefined1 *)0x0)" (( "(") (binary_expression "param_7 == (undefined1 *)0x0" (identifier "param_7") (== "==") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        local_54 = *param_1;\n        iVar7 = unaff_EDI + 0x19731f;\nLAB_000bfb11:\n        uVar8 = gettext(iVar7);\n        FUN_000828d0(uVar8,local_54);\n        goto LAB_000bfaa7;\n      }" ({ "{") (expression_statement "local_54 = *param_1;" (assignment_expression "local_54 = *param_1" (identifier "local_54") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "iVar7 = unaff_EDI + 0x19731f;" (assignment_expression "iVar7 = unaff_EDI + 0x19731f" (identifier "iVar7") (= "=") (binary_expression "unaff_EDI + 0x19731f" (identifier "unaff_EDI") (+ "+") (number_literal "0x19731f"))) (; ";")) (labeled_statement "LAB_000bfb11:\n        uVar8 = gettext(iVar7);" (statement_identifier "LAB_000bfb11") (: ":") (expression_statement "uVar8 = gettext(iVar7);" (assignment_expression "uVar8 = gettext(iVar7)" (identifier "uVar8") (= "=") (call_expression "gettext(iVar7)" (identifier "gettext") (argument_list "(iVar7)" (( "(") (identifier "iVar7") () ")")))) (; ";"))) (expression_statement "FUN_000828d0(uVar8,local_54);" (call_expression "FUN_000828d0(uVar8,local_54)" (identifier "FUN_000828d0") (argument_list "(uVar8,local_54)" (( "(") (identifier "uVar8") (, ",") (identifier "local_54") () ")"))) (; ";")) (goto_statement "goto LAB_000bfaa7;" (goto "goto") (statement_identifier "LAB_000bfaa7") (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_000bf923:\n    local_54 = 0;" (statement_identifier "LAB_000bf923") (: ":") (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" (identifier "local_54") (= "=") (number_literal "0")) (; ";"))) (expression_statement "*param_7 = 1;" (assignment_expression "*param_7 = 1" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (= "=") (number_literal "1")) (; ";")) (} "}")))) (labeled_statement "LAB_000bf930:\n  if (local_34 != local_2c) {\n    FUN_001ac470(local_34);\n  }" (statement_identifier "LAB_000bf930") (: ":") (if_statement "if (local_34 != local_2c) {\n    FUN_001ac470(local_34);\n  }" (if "if") (parenthesized_expression "(local_34 != local_2c)" (( "(") (binary_expression "local_34 != local_2c" (identifier "local_34") (!= "!=") (identifier "local_2c")) () ")")) (compound_statement "{\n    FUN_001ac470(local_34);\n  }" ({ "{") (expression_statement "FUN_001ac470(local_34);" (call_expression "FUN_001ac470(local_34)" (identifier "FUN_001ac470") (argument_list "(local_34)" (( "(") (identifier "local_34") () ")"))) (; ";")) (} "}")))) (return_statement "return local_54;" (return "return") (identifier "local_54") (; ";")) (} "}")))

/* WARNING: Enum "ELFOSABI": Some values do not have unique names */

type_6 * __thiscall
gold::make_elf_object
          (gold *this,type_5 *name,type_9 *input_file,off_t offset,uchar *p,
          section_offset_type var_5,bool *punconfigured)

{
  type_1 uVar1;
  type_2 *var_15;
  type_3 uVar3;
  type_4 _Var4;
  bool bVar5;
  type_2 *var_11;
  int iVar7;
  char *pcVar8;
  int var_13;
  type_5 *in_stack_ffffff9c;
  type_6 *local_54;
  bool var_9;
  int var_8;
  var_1<32,var_2> var_3;
  type_5 error;
  
  var_4();
  if (var_5 != 0) {
    *(type_7 *)var_5 = 0;
  }
  error._M_string_length = 0;
  error.field_2._M_local_buf[0] = '\0';
  var_9 = false;
  var_8 = 0;
  error._M_dataplus._M_p = (pointer)&error.field_2;
                    /* try { // try from 000bf8f1 to 000bfbd7 has its CatchHandler @ 000bfbd8 */
  bVar5 = elfcpp::Elf_recognizer::var_6
                    ((type_8 *)offset._4_4_,p,var_7(&var_8,(int)p >> 0x1f),
                     (int *)&var_9,(bool *)&error,in_stack_ffffff9c);
  _Var4._M_p = error._M_dataplus._M_p;
  if (bVar5) {
    if (var_8 == 0x20) {
      if (var_9 == false) {
        var_3.p_ = offset._4_4_;
        var_11 = var_10((type_9 *)name,var_7((type_3)offset,input_file),
                               (type_10)(offset._4_4_)->e_machine,0x20,false,
                               (type_10)(offset._4_4_)->e_ident[7],(type_10)(offset._4_4_)->e_ident[8]);
        if (var_11 == (type_2 *)0x0) {
          uVar1 = (var_3.p_)->e_machine;
          uVar3 = *(type_3 *)this;
          pcVar8 = (char *)var_12(var_13 + 0x1972f7);
                    /* WARNING: Subroutine does not return */
          var_14(pcVar8,uVar3,(type_10)uVar1);
        }
        var_15 = *(type_2 **)
                  (*(int *)((int)&fde_table_entry_0027fa50.data_loc + var_13 + 3) + 0xc);
        if (var_15 == (type_2 *)0x0) {
          var_16(var_11);
        }
        else if (var_11 != var_15) goto LAB_000bfac0;
        local_54 = (type_6 *)
                   (*var_11->_vptr_Target[0x17])
                             (var_11,this,name,input_file,(type_3)offset,&var_3);
        goto LAB_000bf930;
      }
      if (var_5 == 0) {
        local_54 = *(type_6 **)this;
        iVar7 = var_13 + 0x1972bf;
        goto LAB_000bfb11;
      }
    }
    else {
      if (var_8 != 0x40) {
                    /* WARNING: Subroutine does not return */
        var_17((char *)(var_13 + 0x19719f),0xd94,(char *)(var_13 + 0x198253));
      }
      if (var_9 == false) {
        var_3.p_ = offset._4_4_;
        var_11 = var_10((type_9 *)name,var_7((type_3)offset,input_file),
                               (type_10)(offset._4_4_)->e_machine,0x40,false,
                               (type_10)(offset._4_4_)->e_ident[7],(type_10)(offset._4_4_)->e_ident[8]);
        if (var_11 == (type_2 *)0x0) {
          uVar1 = (var_3.p_)->e_machine;
          uVar3 = *(type_3 *)this;
          pcVar8 = (char *)var_12(var_13 + 0x1972f7);
                    /* WARNING: Subroutine does not return */
          var_14(pcVar8,uVar3,(type_10)uVar1);
        }
        var_15 = *(type_2 **)
                  (*(int *)((int)&fde_table_entry_0027fa50.data_loc + var_13 + 3) + 0xc);
        if (var_15 == (type_2 *)0x0) {
          var_16(var_11);
        }
        else if (var_11 != var_15) {
LAB_000bfac0:
          if (var_5 == 0) {
            uVar3 = *(type_3 *)this;
            pcVar8 = (char *)var_12(var_13 + 0x1942ca);
            var_18(pcVar8,uVar3);
            local_54 = (type_6 *)0x0;
            goto LAB_000bf930;
          }
          goto LAB_000bf923;
        }
        local_54 = (type_6 *)
                   (*var_11->_vptr_Target[0x18])
                             (var_11,this,name,input_file,(type_3)offset,&var_3);
        goto LAB_000bf930;
      }
      if (var_5 == 0) {
        local_54 = *(type_6 **)this;
        iVar7 = var_13 + 0x19731f;
LAB_000bfb11:
        pcVar8 = (char *)var_12(iVar7);
        var_18(pcVar8,local_54);
        goto LAB_000bfaa7;
      }
    }
LAB_000bf923:
    local_54 = (type_6 *)0x0;
    *(type_7 *)var_5 = 1;
  }
  else {
    uVar3 = *(type_3 *)this;
    pcVar8 = (char *)var_12(var_13 + 0x196f9c);
    var_18(pcVar8,uVar3,_Var4._M_p);
LAB_000bfaa7:
    local_54 = (type_6 *)0x0;
  }
LAB_000bf930:
  if ((anon_union_16_2_edb7204a_for_basic_string<var_20,_std::char_traits<var_20>,_std::var_19<var_20>var_21>var_22
       *)error._M_dataplus._M_p != &error.field_2) {
    var_23(error._M_dataplus._M_p);
  }
  return local_54;
}


(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator 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: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (binary_expression left: (identifier) right: (number_literal)) (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (number_literal) (number_literal) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (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: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (field_expression argument: (identifier) field: (field_identifier)))) right: (identifier)) right: (number_literal))))) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (identifier) (pointer_expression argument: (identifier)))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier)) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (number_literal) (number_literal) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (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: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (field_expression argument: (identifier) field: (field_identifier)))) right: (identifier)) right: (number_literal))))) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier))))) (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (identifier) (pointer_expression argument: (identifier)))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (goto_statement label: (statement_identifier))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))))) (return_statement (identifier)))))

undefined4
MASKED(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,
            int param_5,int param_6,undefined1 *param_7)

{
  undefined2 uVar1;
  int *piVar2;
  undefined1 *puVar3;
  char cVar4;
  int *piVar5;
  undefined4 uVar6;
  int iVar7;
  undefined4 uVar8;
  int unaff_EDI;
  undefined4 local_54;
  char local_3d;
  int local_3c;
  int local_38;
  undefined1 *local_34;
  undefined4 local_30;
  undefined1 local_2c [28];
  
  FUN_00058c4a();
  if (param_7 != (undefined1 *)0x0) {
    *param_7 = 0;
  }
  local_30 = 0;
  local_2c[0] = 0;
  local_3d = '\0';
  local_3c = 0;
  local_34 = local_2c;
                    /* try { // try from 000bf8f1 to 000bfbd7 has its CatchHandler @ 000bfbd8 */
  cVar4 = FUN_000991b0(param_5,param_6,param_6 >> 0x1f,&local_3c,&local_3d,&local_34);
  puVar3 = local_34;
  if (cVar4 == '\0') {
    uVar8 = *param_1;
    uVar6 = gettext(unaff_EDI + 0x196f9c);
    FUN_000828d0(uVar6,uVar8,puVar3);
LAB_000bfaa7:
    local_54 = 0;
  }
  else {
    if (local_3c == 0x20) {
      if (local_3d == '\0') {
        local_38 = param_5;
        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x20,0,
                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));
        if (piVar5 == (int *)0x0) {
          uVar1 = *(undefined2 *)(local_38 + 0x12);
          uVar8 = *param_1;
          uVar6 = gettext(unaff_EDI + 0x1972f7);
                    /* WARNING: Subroutine does not return */
          FUN_00082870(uVar6,uVar8,uVar1);
        }
        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);
        if (piVar2 == (int *)0x0) {
          FUN_0011a510(piVar5);
        }
        else if (piVar5 != piVar2) goto LAB_000bfac0;
        local_54 = (**(code **)(*piVar5 + 0x5c))(piVar5,param_1,param_2,param_3,param_4,&local_38);
        goto LAB_000bf930;
      }
      if (param_7 == (undefined1 *)0x0) {
        local_54 = *param_1;
        iVar7 = unaff_EDI + 0x1972bf;
        goto LAB_000bfb11;
      }
    }
    else {
      if (local_3c != 0x40) {
                    /* WARNING: Subroutine does not return */
        FUN_0008b620(unaff_EDI + 0x19719f,0xd94,&UNK_00198253 + unaff_EDI,local_3c);
      }
      if (local_3d == '\0') {
        local_38 = param_5;
        piVar5 = (int *)FUN_00160240(param_2,param_3,param_4,*(undefined2 *)(param_5 + 0x12),0x40,0,
                                     *(undefined1 *)(param_5 + 7),*(undefined1 *)(param_5 + 8));
        if (piVar5 == (int *)0x0) {
          uVar1 = *(undefined2 *)(local_38 + 0x12);
          uVar8 = *param_1;
          uVar6 = gettext(unaff_EDI + 0x1972f7);
                    /* WARNING: Subroutine does not return */
          FUN_00082870(uVar6,uVar8,uVar1);
        }
        piVar2 = *(int **)(*(int *)((int)&fde_table_entry_0027fa50.data_loc + unaff_EDI + 3) + 0xc);
        if (piVar2 == (int *)0x0) {
          FUN_0011a510(piVar5);
        }
        else if (piVar5 != piVar2) {
LAB_000bfac0:
          if (param_7 == (undefined1 *)0x0) {
            uVar8 = *param_1;
            uVar6 = gettext(unaff_EDI + 0x1942ca);
            FUN_000828d0(uVar6,uVar8);
            local_54 = 0;
            goto LAB_000bf930;
          }
          goto LAB_000bf923;
        }
        local_54 = (**(code **)(*piVar5 + 0x60))(piVar5,param_1,param_2,param_3,param_4,&local_38);
        goto LAB_000bf930;
      }
      if (param_7 == (undefined1 *)0x0) {
        local_54 = *param_1;
        iVar7 = unaff_EDI + 0x19731f;
LAB_000bfb11:
        uVar8 = gettext(iVar7);
        FUN_000828d0(uVar8,local_54);
        goto LAB_000bfaa7;
      }
    }
LAB_000bf923:
    local_54 = 0;
    *param_7 = 1;
  }
LAB_000bf930:
  if (local_34 != local_2c) {
    FUN_001ac470(local_34);
  }
  return local_54;
}

