
/* WARNING: Function: __x86.get_pc_thunk.bp replaced with injection: get_pc_thunk.bp */
/* WARNING: Enum "STT": Some values do not have unique names */
/* WARNING: Enum "STB": Some values do not have unique names */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* DWARF original prototype: Sized_symbol<32> * do_define_as_constant<32>(Symbol_table * this, char
   * name, char * version, Defined defined, Elf_Addr value, Elf_WXword symsize, STT type, STB
   binding, STV visibility, uchar nonvis, bool only_if_ref, bool force_override) */

Sized_symbol<32> * __thiscall
gold::Symbol_table::do_define_as_constant<32>
          (Symbol_table *this,char *name,char *version,Defined defined,Elf_Addr value,
          Elf_WXword symsize,STT type,STB binding,STV visibility,uchar nonvis,bool only_if_ref,
          bool force_override)

{
  undefined1 *puVar1;
  Got_offset_list *pGVar2;
  Got_offset_list *pGVar3;
  Got_offset_list *pGVar4;
  Got_offset_list *pGVar5;
  Got_offset_list *pGVar6;
  Got_offset_list *this_00;
  uchar nonvis_00;
  bool bVar7;
  Sized_symbol<32> *this_01;
  undefined3 in_stack_00000029;
  undefined3 in_stack_0000002d;
  undefined3 in_stack_00000031;
  Sized_symbol<32> *__in_chrg;
  bool resolve_oldsym;
  bool is_global;
  Sized_symbol<32> *oldsym;
  
  bVar7 = force_override;
  nonvis_00 = nonvis;
  if (parameters->target_ != (Target *)0x0) {
    if (parameters->target_->pti_->is_big_endian == false) {
      this_01 = define_special_symbol<32,_false>
                          (this,&name,&version,only_if_ref,visibility,&oldsym,&resolve_oldsym,
                           binding == STB_LOCAL);
    }
    else {
      this_01 = define_special_symbol<32,_true>
                          (this,&name,&version,only_if_ref,visibility,&oldsym,&resolve_oldsym,
                           binding == STB_LOCAL);
    }
    if (this_01 != (Sized_symbol<32> *)0x0) {
      Sized_symbol<32>::init_constant
                (this_01,name,version,value,symsize,type,binding,visibility,nonvis_00,
                 defined == PREDEFINED);
      if (oldsym == (Sized_symbol<32> *)0x0) {
        if (((version == (char *)0x0) || (name != version)) || (value != 0)) {
          if ((binding == STB_LOCAL) ||
             ((bVar7 = Version_script_info::get_symbol_version
                                 (this->version_script_,name,(string *)0x0,&is_global), bVar7 &&
              (is_global == false)))) {
            force_local(this,&this_01->super_Symbol);
          }
          else if ((version != (char *)0x0) && ((name != version || (value != 0)))) {
            puVar1 = &(this_01->super_Symbol).field_0x2a;
            *puVar1 = *puVar1 | 8;
          }
        }
      }
      else {
        if ((bVar7) ||
           (bVar7 = should_override_with_special(&oldsym->super_Symbol,type,defined), bVar7)) {
          override_with_special<32>(this,oldsym,this_01);
        }
        if (resolve_oldsym == false) {
          if ((binding == STB_LOCAL) ||
             ((__in_chrg = (Sized_symbol<32> *)name,
              bVar7 = Version_script_info::get_symbol_version
                                (this->version_script_,name,(string *)0x0,&is_global), bVar7 &&
              (is_global == false)))) {
            __in_chrg = oldsym;
            force_local(this,&oldsym->super_Symbol);
          }
          pGVar2 = (this_01->super_Symbol).got_offsets_.got_next_;
          if (pGVar2 != (Got_offset_list *)0x0) {
            pGVar3 = pGVar2->got_next_;
            if (pGVar3 != (Got_offset_list *)0x0) {
              pGVar4 = pGVar3->got_next_;
              if (pGVar4 != (Got_offset_list *)0x0) {
                pGVar5 = pGVar4->got_next_;
                if (pGVar5 != (Got_offset_list *)0x0) {
                  pGVar6 = pGVar5->got_next_;
                  if (pGVar6 != (Got_offset_list *)0x0) {
                    this_00 = pGVar6->got_next_;
                    if (this_00 != (Got_offset_list *)0x0) {
                      Got_offset_list::~Got_offset_list(this_00,(int)__in_chrg);
                      operator_delete(this_00,0xc);
                    }
                    operator_delete(pGVar6,0xc);
                  }
                  operator_delete(pGVar5,0xc);
                }
                operator_delete(pGVar4,0xc);
              }
              operator_delete(pGVar3,0xc);
            }
            operator_delete(pGVar2,0xc);
          }
          operator_delete(this_01,0x38);
          this_01 = oldsym;
        }
      }
    }
    return this_01;
  }
                    /* WARNING: Subroutine does not return */
  do_gold_unreachable("../../gold/parameters.h",0x69,"target");
}



int FUN_001f4970(int param_1,int param_2,int param_3,int param_4,int param_5,undefined4 param_6,
                undefined4 param_7,int param_8,undefined4 param_9,uint param_10,uint param_11,
                undefined4 param_12)

{
  int iVar1;
  int iVar2;
  int iVar3;
  uint uVar4;
  undefined4 uVar5;
  char cVar6;
  int iVar7;
  int iVar8;
  int iVar9;
  char *pcVar10;
  int unaff_EBP;
  int iVar11;
  int iVar12;
  char local_22;
  char local_21;
  int local_20 [4];
  
  FUN_000b4852();
  uVar5 = param_12;
  uVar4 = param_10;
  iVar7 = *(int *)(*(int *)(unaff_EBP + 0x21fb72) + 0xc);
  if (iVar7 == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_000da200(unaff_EBP + 0xed8f7,0x69,&UNK_00118c1a + unaff_EBP,param_11);
  }
  pcVar10 = (char *)(uint)(param_8 == 0);
  if (*(char *)(*(int *)(iVar7 + 4) + 4) == '\0') {
    iVar7 = FUN_001f3d70(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,
                         pcVar10);
  }
  else {
    iVar7 = FUN_001f2110(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,
                         pcVar10);
  }
  if (iVar7 == 0) {
    return 0;
  }
  FUN_001ea6f0(iVar7,param_2,param_3,param_5,param_6,param_7,param_8,param_9,uVar4 & 0xff,
               param_4 == 5);
  if (local_20[0] == 0) {
    if (((param_3 != 0) && (param_2 == param_3)) && (param_5 == 0)) {
      return iVar7;
    }
    if ((param_8 != 0) &&
       ((cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,&local_21), cVar6 == '\0'
        || (local_21 != '\0')))) {
      if (param_3 == 0) {
        return iVar7;
      }
      if ((param_2 == param_3) && (param_5 == 0)) {
        return iVar7;
      }
      *(byte *)(iVar7 + 0x2a) = *(byte *)(iVar7 + 0x2a) | 8;
      return iVar7;
    }
    FUN_001e7570(param_1,iVar7);
    return iVar7;
  }
  if (((char)uVar5 != '\0') ||
     (iVar11 = param_4, cVar6 = FUN_001c60d0(local_20[0],param_7,param_4), cVar6 != '\0')) {
    iVar11 = iVar7;
    FUN_001c7460(param_1,local_20[0],iVar7);
  }
  if (local_22 != '\0') {
    return iVar7;
  }
  if (param_8 != 0) {
    pcVar10 = &local_21;
    iVar11 = 0;
    cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,pcVar10);
    if ((cVar6 == '\0') || (local_21 != '\0')) goto LAB_001f4a82;
  }
  FUN_001e7570(param_1,local_20[0]);
LAB_001f4a82:
  iVar1 = *(int *)(iVar7 + 0x24);
  if (iVar1 != 0) {
    iVar9 = *(int *)(iVar1 + 8);
    if (iVar9 != 0) {
      iVar8 = *(int *)(iVar9 + 8);
      if (iVar8 != 0) {
        iVar2 = *(int *)(iVar8 + 8);
        if (iVar2 != 0) {
          iVar12 = *(int *)(iVar2 + 8);
          if (iVar12 != 0) {
            iVar3 = *(int *)(iVar12 + 8);
            if (iVar3 != 0) {
              FUN_001ea5b0(iVar3);
              FUN_00248200(iVar3,0xc);
            }
            FUN_00248200(iVar12,0xc);
          }
          FUN_00248200(iVar2,0xc,iVar11,pcVar10,iVar9,iVar8);
        }
        FUN_00248200(iVar8,0xc,iVar11,pcVar10,iVar9);
      }
      FUN_00248200(iVar9,0xc);
    }
    FUN_00248200(iVar1,0xc);
  }
  FUN_00248200(iVar7,0x38);
  return local_20[0];
}


PUSH EBP
CALL 0x000b4852
ADD EBP,0x21f68a
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x2c
LEA ECX,[EBP + 0x4e8]
MOV EDX,dword ptr [ESP + 0x5c]
MOV EBX,dword ptr [ESP + 0x64]
MOV EAX,dword ptr [ESP + 0x68]
MOV ECX,dword ptr [ECX]
TEST EDX,EDX
MOV EDI,dword ptr [ESP + 0x6c]
SETZ DL
MOV ECX,dword ptr [ECX + 0xc]
TEST ECX,ECX
JZ 0x001f4caf
MOV ECX,dword ptr [ECX + 0x4]
MOVZX EDX,DL
MOVZX EAX,AL
CMP byte ptr [ECX + 0x4],0x0
JNZ 0x001f4b90
PUSH EDX
LEA EDX,[ESP + 0x1e]
PUSH EDX
LEA EDX,[ESP + 0x24]
PUSH EDX
PUSH dword ptr [ESP + 0x6c]
PUSH EAX
LEA EAX,[ESP + 0x5c]
PUSH EAX
LEA EAX,[ESP + 0x5c]
PUSH EAX
PUSH dword ptr [ESP + 0x5c]
CALL 0x001f3d70
ADD ESP,0x20
MOV ESI,EAX
TEST ESI,ESI
JZ 0x001f4b83
SUB ESP,0x8
XOR EAX,EAX
MOVZX EBX,BL
CMP dword ptr [ESP + 0x54],0x5
SETZ AL
PUSH EAX
PUSH EBX
PUSH dword ptr [ESP + 0x70]
PUSH dword ptr [ESP + 0x70]
PUSH dword ptr [ESP + 0x70]
PUSH dword ptr [ESP + 0x70]
PUSH dword ptr [ESP + 0x70]
PUSH dword ptr [ESP + 0x6c]
PUSH dword ptr [ESP + 0x6c]
PUSH ESI
CALL 0x001ea6f0
MOV EAX,dword ptr [ESP + 0x4c]
ADD ESP,0x30
TEST EAX,EAX
JZ 0x001f4c20
MOV EBX,EDI
TEST BL,BL
JNZ 0x001f4bc4
SUB ESP,0x4
MOV EBX,EBP
PUSH dword ptr [ESP + 0x50]
PUSH dword ptr [ESP + 0x60]
PUSH EAX
CALL 0x001c60d0
ADD ESP,0x10
TEST AL,AL
JNZ 0x001f4bc0
CMP byte ptr [ESP + 0x1a],0x0
JNZ 0x001f4b83
MOV ECX,dword ptr [ESP + 0x5c]
TEST ECX,ECX
JNZ 0x001f4be0
SUB ESP,0x8
PUSH dword ptr [ESP + 0x24]
PUSH dword ptr [ESP + 0x4c]
CALL 0x001e7570
ADD ESP,0x10
MOV EDI,dword ptr [ESI + 0x24]
TEST EDI,EDI
JZ 0x001f4b6f
MOV ECX,dword ptr [EDI + 0x8]
TEST ECX,ECX
JZ 0x001f4b5f
MOV EAX,dword ptr [ECX + 0x8]
TEST EAX,EAX
JZ 0x001f4b4f
MOV EDX,dword ptr [EAX + 0x8]
TEST EDX,EDX
JZ 0x001f4b39
MOV EBX,dword ptr [EDX + 0x8]
MOV dword ptr [ESP],EBX
TEST EBX,EBX
JZ 0x001f4b1a
MOV EBX,dword ptr [EBX + 0x8]
TEST EBX,EBX
JZ 0x001f4aef
MOV dword ptr [ESP + 0xc],EDX
SUB ESP,0xc
MOV dword ptr [ESP + 0x14],EAX
MOV dword ptr [ESP + 0x10],ECX
PUSH EBX
CALL 0x001ea5b0
POP EAX
POP EDX
PUSH 0xc
PUSH EBX
MOV EBX,EBP
CALL 0x00248200
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [ESP + 0x8]
MOV ECX,dword ptr [ESP + 0x4]
MOV dword ptr [ESP + 0xc],EDX
SUB ESP,0x8
MOV EBX,EBP
MOV dword ptr [ESP + 0x10],EAX
MOV dword ptr [ESP + 0xc],ECX
PUSH 0xc
PUSH dword ptr [ESP + 0xc]
CALL 0x00248200
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [ESP + 0x8]
MOV ECX,dword ptr [ESP + 0x4]
MOV dword ptr [ESP + 0x4],EAX
SUB ESP,0x8
MOV EBX,EBP
MOV dword ptr [ESP + 0x8],ECX
PUSH 0xc
PUSH EDX
CALL 0x00248200
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x4]
MOV ECX,dword ptr [ESP]
MOV dword ptr [ESP],ECX
SUB ESP,0x8
MOV EBX,EBP
PUSH 0xc
PUSH EAX
CALL 0x00248200
ADD ESP,0x10
MOV ECX,dword ptr [ESP]
SUB ESP,0x8
MOV EBX,EBP
PUSH 0xc
PUSH ECX
CALL 0x00248200
ADD ESP,0x10
SUB ESP,0x8
MOV EBX,EBP
PUSH 0xc
PUSH EDI
CALL 0x00248200
ADD ESP,0x10
SUB ESP,0x8
MOV EBX,EBP
PUSH 0x38
PUSH ESI
CALL 0x00248200
MOV ESI,dword ptr [ESP + 0x2c]
ADD ESP,0x10
ADD ESP,0x2c
MOV EAX,ESI
POP EBX
POP ESI
POP EDI
POP EBP
RET
PUSH EDX
LEA EDX,[ESP + 0x1e]
PUSH EDX
LEA EDX,[ESP + 0x24]
PUSH EDX
PUSH dword ptr [ESP + 0x6c]
PUSH EAX
LEA EAX,[ESP + 0x5c]
PUSH EAX
LEA EAX,[ESP + 0x5c]
PUSH EAX
PUSH dword ptr [ESP + 0x5c]
CALL 0x001f2110
ADD ESP,0x20
MOV ESI,EAX
JMP 0x001f49e5
MOV EAX,dword ptr [ESP + 0x1c]
SUB ESP,0x4
MOV EBX,EBP
PUSH ESI
PUSH EAX
PUSH dword ptr [ESP + 0x4c]
CALL 0x001c7460
ADD ESP,0x10
JMP 0x001f4a58
LEA EAX,[ESP + 0x1b]
MOV EBX,EBP
PUSH EAX
PUSH 0x0
PUSH dword ptr [ESP + 0x4c]
MOV EAX,dword ptr [ESP + 0x4c]
PUSH dword ptr [EAX + 0x154]
CALL 0x001dd670
ADD ESP,0x10
TEST AL,AL
JZ 0x001f4a82
CMP byte ptr [ESP + 0x1b],0x0
JNZ 0x001f4a82
JMP 0x001f4a6f
MOV EAX,dword ptr [ESP + 0x48]
TEST EAX,EAX
JZ 0x001f4c3a
CMP dword ptr [ESP + 0x44],EAX
JNZ 0x001f4c3a
MOV EAX,dword ptr [ESP + 0x50]
TEST EAX,EAX
JZ 0x001f4b83
MOV EDI,dword ptr [ESP + 0x5c]
TEST EDI,EDI
JZ 0x001f4c6c
LEA EAX,[ESP + 0x1b]
MOV EBX,EBP
PUSH EAX
PUSH 0x0
PUSH dword ptr [ESP + 0x4c]
MOV EAX,dword ptr [ESP + 0x4c]
PUSH dword ptr [EAX + 0x154]
CALL 0x001dd670
ADD ESP,0x10
TEST AL,AL
JZ 0x001f4c88
CMP byte ptr [ESP + 0x1b],0x0
JNZ 0x001f4c88
SUB ESP,0x8
PUSH ESI
PUSH dword ptr [ESP + 0x4c]
CALL 0x001e7570
ADD ESP,0x10
JMP 0x001f4b83
MOV EAX,dword ptr [ESP + 0x48]
TEST EAX,EAX
JZ 0x001f4b83
CMP dword ptr [ESP + 0x44],EAX
JNZ 0x001f4ca6
MOV EBX,dword ptr [ESP + 0x50]
TEST EBX,EBX
JZ 0x001f4b83
OR byte ptr [ESI + 0x2a],0x8
JMP 0x001f4b83
PUSH EAX
LEA EAX,[EBP + 0xffef9590]
MOV EBX,EBP
PUSH EAX
LEA EAX,[EBP + 0xffece26d]
PUSH 0x69
PUSH EAX
CALL 0x000da200
(translation_unit "int FUN_001f4970(int param_1,int param_2,int param_3,int param_4,int param_5,undefined4 param_6,\n                undefined4 param_7,int param_8,undefined4 param_9,uint param_10,uint param_11,\n                undefined4 param_12)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  uint uVar4;\n  undefined4 uVar5;\n  char cVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  char *pcVar10;\n  int unaff_EBP;\n  int iVar11;\n  int iVar12;\n  char local_22;\n  char local_21;\n  int local_20 [4];\n  \n  FUN_000b4852();\n  uVar5 = param_12;\n  uVar4 = param_10;\n  iVar7 = *(int *)(*(int *)(unaff_EBP + 0x21fb72) + 0xc);\n  if (iVar7 == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200(unaff_EBP + 0xed8f7,0x69,&UNK_00118c1a + unaff_EBP,param_11);\n  }\n  pcVar10 = (char *)(uint)(param_8 == 0);\n  if (*(char *)(*(int *)(iVar7 + 4) + 4) == '\0') {\n    iVar7 = FUN_001f3d70(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10);\n  }\n  else {\n    iVar7 = FUN_001f2110(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10);\n  }\n  if (iVar7 == 0) {\n    return 0;\n  }\n  FUN_001ea6f0(iVar7,param_2,param_3,param_5,param_6,param_7,param_8,param_9,uVar4 & 0xff,\n               param_4 == 5);\n  if (local_20[0] == 0) {\n    if (((param_3 != 0) && (param_2 == param_3)) && (param_5 == 0)) {\n      return iVar7;\n    }\n    if ((param_8 != 0) &&\n       ((cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,&local_21), cVar6 == '\0'\n        || (local_21 != '\0')))) {\n      if (param_3 == 0) {\n        return iVar7;\n      }\n      if ((param_2 == param_3) && (param_5 == 0)) {\n        return iVar7;\n      }\n      *(byte *)(iVar7 + 0x2a) = *(byte *)(iVar7 + 0x2a) | 8;\n      return iVar7;\n    }\n    FUN_001e7570(param_1,iVar7);\n    return iVar7;\n  }\n  if (((char)uVar5 != '\0') ||\n     (iVar11 = param_4, cVar6 = FUN_001c60d0(local_20[0],param_7,param_4), cVar6 != '\0')) {\n    iVar11 = iVar7;\n    FUN_001c7460(param_1,local_20[0],iVar7);\n  }\n  if (local_22 != '\0') {\n    return iVar7;\n  }\n  if (param_8 != 0) {\n    pcVar10 = &local_21;\n    iVar11 = 0;\n    cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,pcVar10);\n    if ((cVar6 == '\0') || (local_21 != '\0')) goto LAB_001f4a82;\n  }\n  FUN_001e7570(param_1,local_20[0]);\nLAB_001f4a82:\n  iVar1 = *(int *)(iVar7 + 0x24);\n  if (iVar1 != 0) {\n    iVar9 = *(int *)(iVar1 + 8);\n    if (iVar9 != 0) {\n      iVar8 = *(int *)(iVar9 + 8);\n      if (iVar8 != 0) {\n        iVar2 = *(int *)(iVar8 + 8);\n        if (iVar2 != 0) {\n          iVar12 = *(int *)(iVar2 + 8);\n          if (iVar12 != 0) {\n            iVar3 = *(int *)(iVar12 + 8);\n            if (iVar3 != 0) {\n              FUN_001ea5b0(iVar3);\n              FUN_00248200(iVar3,0xc);\n            }\n            FUN_00248200(iVar12,0xc);\n          }\n          FUN_00248200(iVar2,0xc,iVar11,pcVar10,iVar9,iVar8);\n        }\n        FUN_00248200(iVar8,0xc,iVar11,pcVar10,iVar9);\n      }\n      FUN_00248200(iVar9,0xc);\n    }\n    FUN_00248200(iVar1,0xc);\n  }\n  FUN_00248200(iVar7,0x38);\n  return local_20[0];\n}\n\n" (function_definition "int FUN_001f4970(int param_1,int param_2,int param_3,int param_4,int param_5,undefined4 param_6,\n                undefined4 param_7,int param_8,undefined4 param_9,uint param_10,uint param_11,\n                undefined4 param_12)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  uint uVar4;\n  undefined4 uVar5;\n  char cVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  char *pcVar10;\n  int unaff_EBP;\n  int iVar11;\n  int iVar12;\n  char local_22;\n  char local_21;\n  int local_20 [4];\n  \n  FUN_000b4852();\n  uVar5 = param_12;\n  uVar4 = param_10;\n  iVar7 = *(int *)(*(int *)(unaff_EBP + 0x21fb72) + 0xc);\n  if (iVar7 == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200(unaff_EBP + 0xed8f7,0x69,&UNK_00118c1a + unaff_EBP,param_11);\n  }\n  pcVar10 = (char *)(uint)(param_8 == 0);\n  if (*(char *)(*(int *)(iVar7 + 4) + 4) == '\0') {\n    iVar7 = FUN_001f3d70(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10);\n  }\n  else {\n    iVar7 = FUN_001f2110(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10);\n  }\n  if (iVar7 == 0) {\n    return 0;\n  }\n  FUN_001ea6f0(iVar7,param_2,param_3,param_5,param_6,param_7,param_8,param_9,uVar4 & 0xff,\n               param_4 == 5);\n  if (local_20[0] == 0) {\n    if (((param_3 != 0) && (param_2 == param_3)) && (param_5 == 0)) {\n      return iVar7;\n    }\n    if ((param_8 != 0) &&\n       ((cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,&local_21), cVar6 == '\0'\n        || (local_21 != '\0')))) {\n      if (param_3 == 0) {\n        return iVar7;\n      }\n      if ((param_2 == param_3) && (param_5 == 0)) {\n        return iVar7;\n      }\n      *(byte *)(iVar7 + 0x2a) = *(byte *)(iVar7 + 0x2a) | 8;\n      return iVar7;\n    }\n    FUN_001e7570(param_1,iVar7);\n    return iVar7;\n  }\n  if (((char)uVar5 != '\0') ||\n     (iVar11 = param_4, cVar6 = FUN_001c60d0(local_20[0],param_7,param_4), cVar6 != '\0')) {\n    iVar11 = iVar7;\n    FUN_001c7460(param_1,local_20[0],iVar7);\n  }\n  if (local_22 != '\0') {\n    return iVar7;\n  }\n  if (param_8 != 0) {\n    pcVar10 = &local_21;\n    iVar11 = 0;\n    cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,pcVar10);\n    if ((cVar6 == '\0') || (local_21 != '\0')) goto LAB_001f4a82;\n  }\n  FUN_001e7570(param_1,local_20[0]);\nLAB_001f4a82:\n  iVar1 = *(int *)(iVar7 + 0x24);\n  if (iVar1 != 0) {\n    iVar9 = *(int *)(iVar1 + 8);\n    if (iVar9 != 0) {\n      iVar8 = *(int *)(iVar9 + 8);\n      if (iVar8 != 0) {\n        iVar2 = *(int *)(iVar8 + 8);\n        if (iVar2 != 0) {\n          iVar12 = *(int *)(iVar2 + 8);\n          if (iVar12 != 0) {\n            iVar3 = *(int *)(iVar12 + 8);\n            if (iVar3 != 0) {\n              FUN_001ea5b0(iVar3);\n              FUN_00248200(iVar3,0xc);\n            }\n            FUN_00248200(iVar12,0xc);\n          }\n          FUN_00248200(iVar2,0xc,iVar11,pcVar10,iVar9,iVar8);\n        }\n        FUN_00248200(iVar8,0xc,iVar11,pcVar10,iVar9);\n      }\n      FUN_00248200(iVar9,0xc);\n    }\n    FUN_00248200(iVar1,0xc);\n  }\n  FUN_00248200(iVar7,0x38);\n  return local_20[0];\n}" primitive_type (function_declarator "FUN_001f4970(int param_1,int param_2,int param_3,int param_4,int param_5,undefined4 param_6,\n                undefined4 param_7,int param_8,undefined4 param_9,uint param_10,uint param_11,\n                undefined4 param_12)" identifier (parameter_list "(int param_1,int param_2,int param_3,int param_4,int param_5,undefined4 param_6,\n                undefined4 param_7,int param_8,undefined4 param_9,uint param_10,uint param_11,\n                undefined4 param_12)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "undefined4 param_6" type_identifier identifier) , (parameter_declaration "undefined4 param_7" type_identifier identifier) , (parameter_declaration "int param_8" primitive_type identifier) , (parameter_declaration "undefined4 param_9" type_identifier identifier) , (parameter_declaration "uint param_10" type_identifier identifier) , (parameter_declaration "uint param_11" type_identifier identifier) , (parameter_declaration "undefined4 param_12" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  uint uVar4;\n  undefined4 uVar5;\n  char cVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  char *pcVar10;\n  int unaff_EBP;\n  int iVar11;\n  int iVar12;\n  char local_22;\n  char local_21;\n  int local_20 [4];\n  \n  FUN_000b4852();\n  uVar5 = param_12;\n  uVar4 = param_10;\n  iVar7 = *(int *)(*(int *)(unaff_EBP + 0x21fb72) + 0xc);\n  if (iVar7 == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200(unaff_EBP + 0xed8f7,0x69,&UNK_00118c1a + unaff_EBP,param_11);\n  }\n  pcVar10 = (char *)(uint)(param_8 == 0);\n  if (*(char *)(*(int *)(iVar7 + 4) + 4) == '\0') {\n    iVar7 = FUN_001f3d70(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10);\n  }\n  else {\n    iVar7 = FUN_001f2110(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10);\n  }\n  if (iVar7 == 0) {\n    return 0;\n  }\n  FUN_001ea6f0(iVar7,param_2,param_3,param_5,param_6,param_7,param_8,param_9,uVar4 & 0xff,\n               param_4 == 5);\n  if (local_20[0] == 0) {\n    if (((param_3 != 0) && (param_2 == param_3)) && (param_5 == 0)) {\n      return iVar7;\n    }\n    if ((param_8 != 0) &&\n       ((cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,&local_21), cVar6 == '\0'\n        || (local_21 != '\0')))) {\n      if (param_3 == 0) {\n        return iVar7;\n      }\n      if ((param_2 == param_3) && (param_5 == 0)) {\n        return iVar7;\n      }\n      *(byte *)(iVar7 + 0x2a) = *(byte *)(iVar7 + 0x2a) | 8;\n      return iVar7;\n    }\n    FUN_001e7570(param_1,iVar7);\n    return iVar7;\n  }\n  if (((char)uVar5 != '\0') ||\n     (iVar11 = param_4, cVar6 = FUN_001c60d0(local_20[0],param_7,param_4), cVar6 != '\0')) {\n    iVar11 = iVar7;\n    FUN_001c7460(param_1,local_20[0],iVar7);\n  }\n  if (local_22 != '\0') {\n    return iVar7;\n  }\n  if (param_8 != 0) {\n    pcVar10 = &local_21;\n    iVar11 = 0;\n    cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,pcVar10);\n    if ((cVar6 == '\0') || (local_21 != '\0')) goto LAB_001f4a82;\n  }\n  FUN_001e7570(param_1,local_20[0]);\nLAB_001f4a82:\n  iVar1 = *(int *)(iVar7 + 0x24);\n  if (iVar1 != 0) {\n    iVar9 = *(int *)(iVar1 + 8);\n    if (iVar9 != 0) {\n      iVar8 = *(int *)(iVar9 + 8);\n      if (iVar8 != 0) {\n        iVar2 = *(int *)(iVar8 + 8);\n        if (iVar2 != 0) {\n          iVar12 = *(int *)(iVar2 + 8);\n          if (iVar12 != 0) {\n            iVar3 = *(int *)(iVar12 + 8);\n            if (iVar3 != 0) {\n              FUN_001ea5b0(iVar3);\n              FUN_00248200(iVar3,0xc);\n            }\n            FUN_00248200(iVar12,0xc);\n          }\n          FUN_00248200(iVar2,0xc,iVar11,pcVar10,iVar9,iVar8);\n        }\n        FUN_00248200(iVar8,0xc,iVar11,pcVar10,iVar9);\n      }\n      FUN_00248200(iVar9,0xc);\n    }\n    FUN_00248200(iVar1,0xc);\n  }\n  FUN_00248200(iVar7,0x38);\n  return local_20[0];\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "char cVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "int unaff_EBP;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "char local_22;" primitive_type identifier ;) (declaration "char local_21;" primitive_type identifier ;) (declaration "int local_20 [4];" primitive_type (array_declarator "local_20 [4]" identifier [ number_literal ]) ;) (expression_statement "FUN_000b4852();" (call_expression "FUN_000b4852()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar5 = param_12;" (assignment_expression "uVar5 = param_12" identifier = identifier) ;) (expression_statement "uVar4 = param_10;" (assignment_expression "uVar4 = param_10" identifier = identifier) ;) (expression_statement "iVar7 = *(int *)(*(int *)(unaff_EBP + 0x21fb72) + 0xc);" (assignment_expression "iVar7 = *(int *)(*(int *)(unaff_EBP + 0x21fb72) + 0xc)" identifier = (pointer_expression "*(int *)(*(int *)(unaff_EBP + 0x21fb72) + 0xc)" * (cast_expression "(int *)(*(int *)(unaff_EBP + 0x21fb72) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(unaff_EBP + 0x21fb72) + 0xc)" ( (binary_expression "*(int *)(unaff_EBP + 0x21fb72) + 0xc" (pointer_expression "*(int *)(unaff_EBP + 0x21fb72)" * (cast_expression "(int *)(unaff_EBP + 0x21fb72)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x21fb72)" ( (binary_expression "unaff_EBP + 0x21fb72" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (iVar7 == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200(unaff_EBP + 0xed8f7,0x69,&UNK_00118c1a + unaff_EBP,param_11);\n  }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200(unaff_EBP + 0xed8f7,0x69,&UNK_00118c1a + unaff_EBP,param_11);\n  }" { comment (expression_statement "FUN_000da200(unaff_EBP + 0xed8f7,0x69,&UNK_00118c1a + unaff_EBP,param_11);" (call_expression "FUN_000da200(unaff_EBP + 0xed8f7,0x69,&UNK_00118c1a + unaff_EBP,param_11)" identifier (argument_list "(unaff_EBP + 0xed8f7,0x69,&UNK_00118c1a + unaff_EBP,param_11)" ( (binary_expression "unaff_EBP + 0xed8f7" identifier + number_literal) , number_literal , (binary_expression "&UNK_00118c1a + unaff_EBP" (pointer_expression "&UNK_00118c1a" & identifier) + identifier) , identifier ))) ;) })) (expression_statement "pcVar10 = (char *)(uint)(param_8 == 0);" (assignment_expression "pcVar10 = (char *)(uint)(param_8 == 0)" identifier = (cast_expression "(char *)(uint)(param_8 == 0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(param_8 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_8 == 0)" ( (binary_expression "param_8 == 0" identifier == number_literal) ))))) ;) (if_statement "if (*(char *)(*(int *)(iVar7 + 4) + 4) == '\0') {\n    iVar7 = FUN_001f3d70(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10);\n  }\n  else {\n    iVar7 = FUN_001f2110(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10);\n  }" if (parenthesized_expression "(*(char *)(*(int *)(iVar7 + 4) + 4) == '\0')" ( (binary_expression "*(char *)(*(int *)(iVar7 + 4) + 4) == '\0'" (pointer_expression "*(char *)(*(int *)(iVar7 + 4) + 4)" * (cast_expression "(char *)(*(int *)(iVar7 + 4) + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar7 + 4) + 4)" ( (binary_expression "*(int *)(iVar7 + 4) + 4" (pointer_expression "*(int *)(iVar7 + 4)" * (cast_expression "(int *)(iVar7 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar7 = FUN_001f3d70(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10);\n  }" { (expression_statement "iVar7 = FUN_001f3d70(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10);" (assignment_expression "iVar7 = FUN_001f3d70(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10)" identifier = (call_expression "FUN_001f3d70(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10)" identifier (argument_list "(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10)" ( identifier , (pointer_expression "&param_2" & identifier) , (pointer_expression "&param_3" & identifier) , (binary_expression "param_11 & 0xff" identifier & number_literal) , identifier , identifier , (pointer_expression "&local_22" & identifier) , identifier )))) ;) }) (else_clause "else {\n    iVar7 = FUN_001f2110(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10);\n  }" else (compound_statement "{\n    iVar7 = FUN_001f2110(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10);\n  }" { (expression_statement "iVar7 = FUN_001f2110(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10);" (assignment_expression "iVar7 = FUN_001f2110(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10)" identifier = (call_expression "FUN_001f2110(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10)" identifier (argument_list "(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10)" ( identifier , (pointer_expression "&param_2" & identifier) , (pointer_expression "&param_3" & identifier) , (binary_expression "param_11 & 0xff" identifier & number_literal) , identifier , identifier , (pointer_expression "&local_22" & identifier) , identifier )))) ;) }))) (if_statement "if (iVar7 == 0) {\n    return 0;\n  }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "FUN_001ea6f0(iVar7,param_2,param_3,param_5,param_6,param_7,param_8,param_9,uVar4 & 0xff,\n               param_4 == 5);" (call_expression "FUN_001ea6f0(iVar7,param_2,param_3,param_5,param_6,param_7,param_8,param_9,uVar4 & 0xff,\n               param_4 == 5)" identifier (argument_list "(iVar7,param_2,param_3,param_5,param_6,param_7,param_8,param_9,uVar4 & 0xff,\n               param_4 == 5)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , (binary_expression "uVar4 & 0xff" identifier & number_literal) , (binary_expression "param_4 == 5" identifier == number_literal) ))) ;) (if_statement "if (local_20[0] == 0) {\n    if (((param_3 != 0) && (param_2 == param_3)) && (param_5 == 0)) {\n      return iVar7;\n    }\n    if ((param_8 != 0) &&\n       ((cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,&local_21), cVar6 == '\0'\n        || (local_21 != '\0')))) {\n      if (param_3 == 0) {\n        return iVar7;\n      }\n      if ((param_2 == param_3) && (param_5 == 0)) {\n        return iVar7;\n      }\n      *(byte *)(iVar7 + 0x2a) = *(byte *)(iVar7 + 0x2a) | 8;\n      return iVar7;\n    }\n    FUN_001e7570(param_1,iVar7);\n    return iVar7;\n  }" if (parenthesized_expression "(local_20[0] == 0)" ( (binary_expression "local_20[0] == 0" (subscript_expression "local_20[0]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    if (((param_3 != 0) && (param_2 == param_3)) && (param_5 == 0)) {\n      return iVar7;\n    }\n    if ((param_8 != 0) &&\n       ((cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,&local_21), cVar6 == '\0'\n        || (local_21 != '\0')))) {\n      if (param_3 == 0) {\n        return iVar7;\n      }\n      if ((param_2 == param_3) && (param_5 == 0)) {\n        return iVar7;\n      }\n      *(byte *)(iVar7 + 0x2a) = *(byte *)(iVar7 + 0x2a) | 8;\n      return iVar7;\n    }\n    FUN_001e7570(param_1,iVar7);\n    return iVar7;\n  }" { (if_statement "if (((param_3 != 0) && (param_2 == param_3)) && (param_5 == 0)) {\n      return iVar7;\n    }" if (parenthesized_expression "(((param_3 != 0) && (param_2 == param_3)) && (param_5 == 0))" ( (binary_expression "((param_3 != 0) && (param_2 == param_3)) && (param_5 == 0)" (parenthesized_expression "((param_3 != 0) && (param_2 == param_3))" ( (binary_expression "(param_3 != 0) && (param_2 == param_3)" (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) && (parenthesized_expression "(param_2 == param_3)" ( (binary_expression "param_2 == param_3" identifier == identifier) ))) )) && (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) ))) )) (compound_statement "{\n      return iVar7;\n    }" { (return_statement "return iVar7;" return identifier ;) })) (if_statement "if ((param_8 != 0) &&\n       ((cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,&local_21), cVar6 == '\0'\n        || (local_21 != '\0')))) {\n      if (param_3 == 0) {\n        return iVar7;\n      }\n      if ((param_2 == param_3) && (param_5 == 0)) {\n        return iVar7;\n      }\n      *(byte *)(iVar7 + 0x2a) = *(byte *)(iVar7 + 0x2a) | 8;\n      return iVar7;\n    }" if (parenthesized_expression "((param_8 != 0) &&\n       ((cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,&local_21), cVar6 == '\0'\n        || (local_21 != '\0'))))" ( (binary_expression "(param_8 != 0) &&\n       ((cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,&local_21), cVar6 == '\0'\n        || (local_21 != '\0')))" (parenthesized_expression "(param_8 != 0)" ( (binary_expression "param_8 != 0" identifier != number_literal) )) && (parenthesized_expression "((cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,&local_21), cVar6 == '\0'\n        || (local_21 != '\0')))" ( (parenthesized_expression "(cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,&local_21), cVar6 == '\0'\n        || (local_21 != '\0'))" ( (comma_expression "cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,&local_21), cVar6 == '\0'\n        || (local_21 != '\0')" (assignment_expression "cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,&local_21)" identifier = (call_expression "FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,&local_21)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x154),param_2,0,&local_21)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x154)" * (cast_expression "(undefined4 *)(param_1 + 0x154)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x154)" ( (binary_expression "param_1 + 0x154" identifier + number_literal) )))) , identifier , number_literal , (pointer_expression "&local_21" & identifier) )))) , (binary_expression "cVar6 == '\0'\n        || (local_21 != '\0')" (binary_expression "cVar6 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "(local_21 != '\0')" ( (binary_expression "local_21 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )))) )) ))) )) (compound_statement "{\n      if (param_3 == 0) {\n        return iVar7;\n      }\n      if ((param_2 == param_3) && (param_5 == 0)) {\n        return iVar7;\n      }\n      *(byte *)(iVar7 + 0x2a) = *(byte *)(iVar7 + 0x2a) | 8;\n      return iVar7;\n    }" { (if_statement "if (param_3 == 0) {\n        return iVar7;\n      }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n        return iVar7;\n      }" { (return_statement "return iVar7;" return identifier ;) })) (if_statement "if ((param_2 == param_3) && (param_5 == 0)) {\n        return iVar7;\n      }" if (parenthesized_expression "((param_2 == param_3) && (param_5 == 0))" ( (binary_expression "(param_2 == param_3) && (param_5 == 0)" (parenthesized_expression "(param_2 == param_3)" ( (binary_expression "param_2 == param_3" identifier == identifier) )) && (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) ))) )) (compound_statement "{\n        return iVar7;\n      }" { (return_statement "return iVar7;" return identifier ;) })) (expression_statement "*(byte *)(iVar7 + 0x2a) = *(byte *)(iVar7 + 0x2a) | 8;" (assignment_expression "*(byte *)(iVar7 + 0x2a) = *(byte *)(iVar7 + 0x2a) | 8" (pointer_expression "*(byte *)(iVar7 + 0x2a)" * (cast_expression "(byte *)(iVar7 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x2a)" ( (binary_expression "iVar7 + 0x2a" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar7 + 0x2a) | 8" (pointer_expression "*(byte *)(iVar7 + 0x2a)" * (cast_expression "(byte *)(iVar7 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x2a)" ( (binary_expression "iVar7 + 0x2a" identifier + number_literal) )))) | number_literal)) ;) (return_statement "return iVar7;" return identifier ;) })) (expression_statement "FUN_001e7570(param_1,iVar7);" (call_expression "FUN_001e7570(param_1,iVar7)" identifier (argument_list "(param_1,iVar7)" ( identifier , identifier ))) ;) (return_statement "return iVar7;" return identifier ;) })) (if_statement "if (((char)uVar5 != '\0') ||\n     (iVar11 = param_4, cVar6 = FUN_001c60d0(local_20[0],param_7,param_4), cVar6 != '\0')) {\n    iVar11 = iVar7;\n    FUN_001c7460(param_1,local_20[0],iVar7);\n  }" if (parenthesized_expression "(((char)uVar5 != '\0') ||\n     (iVar11 = param_4, cVar6 = FUN_001c60d0(local_20[0],param_7,param_4), cVar6 != '\0'))" ( (binary_expression "((char)uVar5 != '\0') ||\n     (iVar11 = param_4, cVar6 = FUN_001c60d0(local_20[0],param_7,param_4), cVar6 != '\0')" (parenthesized_expression "((char)uVar5 != '\0')" ( (binary_expression "(char)uVar5 != '\0'" (cast_expression "(char)uVar5" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(iVar11 = param_4, cVar6 = FUN_001c60d0(local_20[0],param_7,param_4), cVar6 != '\0')" ( (comma_expression "iVar11 = param_4, cVar6 = FUN_001c60d0(local_20[0],param_7,param_4), cVar6 != '\0'" (assignment_expression "iVar11 = param_4" identifier = identifier) , (comma_expression "cVar6 = FUN_001c60d0(local_20[0],param_7,param_4), cVar6 != '\0'" (assignment_expression "cVar6 = FUN_001c60d0(local_20[0],param_7,param_4)" identifier = (call_expression "FUN_001c60d0(local_20[0],param_7,param_4)" identifier (argument_list "(local_20[0],param_7,param_4)" ( (subscript_expression "local_20[0]" identifier [ number_literal ]) , identifier , identifier )))) , (binary_expression "cVar6 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')))) ))) )) (compound_statement "{\n    iVar11 = iVar7;\n    FUN_001c7460(param_1,local_20[0],iVar7);\n  }" { (expression_statement "iVar11 = iVar7;" (assignment_expression "iVar11 = iVar7" identifier = identifier) ;) (expression_statement "FUN_001c7460(param_1,local_20[0],iVar7);" (call_expression "FUN_001c7460(param_1,local_20[0],iVar7)" identifier (argument_list "(param_1,local_20[0],iVar7)" ( identifier , (subscript_expression "local_20[0]" identifier [ number_literal ]) , identifier ))) ;) })) (if_statement "if (local_22 != '\0') {\n    return iVar7;\n  }" if (parenthesized_expression "(local_22 != '\0')" ( (binary_expression "local_22 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    return iVar7;\n  }" { (return_statement "return iVar7;" return identifier ;) })) (if_statement "if (param_8 != 0) {\n    pcVar10 = &local_21;\n    iVar11 = 0;\n    cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,pcVar10);\n    if ((cVar6 == '\0') || (local_21 != '\0')) goto LAB_001f4a82;\n  }" if (parenthesized_expression "(param_8 != 0)" ( (binary_expression "param_8 != 0" identifier != number_literal) )) (compound_statement "{\n    pcVar10 = &local_21;\n    iVar11 = 0;\n    cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,pcVar10);\n    if ((cVar6 == '\0') || (local_21 != '\0')) goto LAB_001f4a82;\n  }" { (expression_statement "pcVar10 = &local_21;" (assignment_expression "pcVar10 = &local_21" identifier = (pointer_expression "&local_21" & identifier)) ;) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (expression_statement "cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,pcVar10);" (assignment_expression "cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,pcVar10)" identifier = (call_expression "FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,pcVar10)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x154),param_2,0,pcVar10)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x154)" * (cast_expression "(undefined4 *)(param_1 + 0x154)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x154)" ( (binary_expression "param_1 + 0x154" identifier + number_literal) )))) , identifier , number_literal , identifier )))) ;) (if_statement "if ((cVar6 == '\0') || (local_21 != '\0')) goto LAB_001f4a82;" if (parenthesized_expression "((cVar6 == '\0') || (local_21 != '\0'))" ( (binary_expression "(cVar6 == '\0') || (local_21 != '\0')" (parenthesized_expression "(cVar6 == '\0')" ( (binary_expression "cVar6 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(local_21 != '\0')" ( (binary_expression "local_21 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_001f4a82;" goto statement_identifier ;)) })) (expression_statement "FUN_001e7570(param_1,local_20[0]);" (call_expression "FUN_001e7570(param_1,local_20[0])" identifier (argument_list "(param_1,local_20[0])" ( identifier , (subscript_expression "local_20[0]" identifier [ number_literal ]) ))) ;) (labeled_statement "LAB_001f4a82:\n  iVar1 = *(int *)(iVar7 + 0x24);" statement_identifier : (expression_statement "iVar1 = *(int *)(iVar7 + 0x24);" (assignment_expression "iVar1 = *(int *)(iVar7 + 0x24)" identifier = (pointer_expression "*(int *)(iVar7 + 0x24)" * (cast_expression "(int *)(iVar7 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x24)" ( (binary_expression "iVar7 + 0x24" identifier + number_literal) ))))) ;)) (if_statement "if (iVar1 != 0) {\n    iVar9 = *(int *)(iVar1 + 8);\n    if (iVar9 != 0) {\n      iVar8 = *(int *)(iVar9 + 8);\n      if (iVar8 != 0) {\n        iVar2 = *(int *)(iVar8 + 8);\n        if (iVar2 != 0) {\n          iVar12 = *(int *)(iVar2 + 8);\n          if (iVar12 != 0) {\n            iVar3 = *(int *)(iVar12 + 8);\n            if (iVar3 != 0) {\n              FUN_001ea5b0(iVar3);\n              FUN_00248200(iVar3,0xc);\n            }\n            FUN_00248200(iVar12,0xc);\n          }\n          FUN_00248200(iVar2,0xc,iVar11,pcVar10,iVar9,iVar8);\n        }\n        FUN_00248200(iVar8,0xc,iVar11,pcVar10,iVar9);\n      }\n      FUN_00248200(iVar9,0xc);\n    }\n    FUN_00248200(iVar1,0xc);\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar9 = *(int *)(iVar1 + 8);\n    if (iVar9 != 0) {\n      iVar8 = *(int *)(iVar9 + 8);\n      if (iVar8 != 0) {\n        iVar2 = *(int *)(iVar8 + 8);\n        if (iVar2 != 0) {\n          iVar12 = *(int *)(iVar2 + 8);\n          if (iVar12 != 0) {\n            iVar3 = *(int *)(iVar12 + 8);\n            if (iVar3 != 0) {\n              FUN_001ea5b0(iVar3);\n              FUN_00248200(iVar3,0xc);\n            }\n            FUN_00248200(iVar12,0xc);\n          }\n          FUN_00248200(iVar2,0xc,iVar11,pcVar10,iVar9,iVar8);\n        }\n        FUN_00248200(iVar8,0xc,iVar11,pcVar10,iVar9);\n      }\n      FUN_00248200(iVar9,0xc);\n    }\n    FUN_00248200(iVar1,0xc);\n  }" { (expression_statement "iVar9 = *(int *)(iVar1 + 8);" (assignment_expression "iVar9 = *(int *)(iVar1 + 8)" identifier = (pointer_expression "*(int *)(iVar1 + 8)" * (cast_expression "(int *)(iVar1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 8)" ( (binary_expression "iVar1 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar9 != 0) {\n      iVar8 = *(int *)(iVar9 + 8);\n      if (iVar8 != 0) {\n        iVar2 = *(int *)(iVar8 + 8);\n        if (iVar2 != 0) {\n          iVar12 = *(int *)(iVar2 + 8);\n          if (iVar12 != 0) {\n            iVar3 = *(int *)(iVar12 + 8);\n            if (iVar3 != 0) {\n              FUN_001ea5b0(iVar3);\n              FUN_00248200(iVar3,0xc);\n            }\n            FUN_00248200(iVar12,0xc);\n          }\n          FUN_00248200(iVar2,0xc,iVar11,pcVar10,iVar9,iVar8);\n        }\n        FUN_00248200(iVar8,0xc,iVar11,pcVar10,iVar9);\n      }\n      FUN_00248200(iVar9,0xc);\n    }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar8 = *(int *)(iVar9 + 8);\n      if (iVar8 != 0) {\n        iVar2 = *(int *)(iVar8 + 8);\n        if (iVar2 != 0) {\n          iVar12 = *(int *)(iVar2 + 8);\n          if (iVar12 != 0) {\n            iVar3 = *(int *)(iVar12 + 8);\n            if (iVar3 != 0) {\n              FUN_001ea5b0(iVar3);\n              FUN_00248200(iVar3,0xc);\n            }\n            FUN_00248200(iVar12,0xc);\n          }\n          FUN_00248200(iVar2,0xc,iVar11,pcVar10,iVar9,iVar8);\n        }\n        FUN_00248200(iVar8,0xc,iVar11,pcVar10,iVar9);\n      }\n      FUN_00248200(iVar9,0xc);\n    }" { (expression_statement "iVar8 = *(int *)(iVar9 + 8);" (assignment_expression "iVar8 = *(int *)(iVar9 + 8)" identifier = (pointer_expression "*(int *)(iVar9 + 8)" * (cast_expression "(int *)(iVar9 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 8)" ( (binary_expression "iVar9 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 != 0) {\n        iVar2 = *(int *)(iVar8 + 8);\n        if (iVar2 != 0) {\n          iVar12 = *(int *)(iVar2 + 8);\n          if (iVar12 != 0) {\n            iVar3 = *(int *)(iVar12 + 8);\n            if (iVar3 != 0) {\n              FUN_001ea5b0(iVar3);\n              FUN_00248200(iVar3,0xc);\n            }\n            FUN_00248200(iVar12,0xc);\n          }\n          FUN_00248200(iVar2,0xc,iVar11,pcVar10,iVar9,iVar8);\n        }\n        FUN_00248200(iVar8,0xc,iVar11,pcVar10,iVar9);\n      }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar2 = *(int *)(iVar8 + 8);\n        if (iVar2 != 0) {\n          iVar12 = *(int *)(iVar2 + 8);\n          if (iVar12 != 0) {\n            iVar3 = *(int *)(iVar12 + 8);\n            if (iVar3 != 0) {\n              FUN_001ea5b0(iVar3);\n              FUN_00248200(iVar3,0xc);\n            }\n            FUN_00248200(iVar12,0xc);\n          }\n          FUN_00248200(iVar2,0xc,iVar11,pcVar10,iVar9,iVar8);\n        }\n        FUN_00248200(iVar8,0xc,iVar11,pcVar10,iVar9);\n      }" { (expression_statement "iVar2 = *(int *)(iVar8 + 8);" (assignment_expression "iVar2 = *(int *)(iVar8 + 8)" identifier = (pointer_expression "*(int *)(iVar8 + 8)" * (cast_expression "(int *)(iVar8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar2 != 0) {\n          iVar12 = *(int *)(iVar2 + 8);\n          if (iVar12 != 0) {\n            iVar3 = *(int *)(iVar12 + 8);\n            if (iVar3 != 0) {\n              FUN_001ea5b0(iVar3);\n              FUN_00248200(iVar3,0xc);\n            }\n            FUN_00248200(iVar12,0xc);\n          }\n          FUN_00248200(iVar2,0xc,iVar11,pcVar10,iVar9,iVar8);\n        }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar12 = *(int *)(iVar2 + 8);\n          if (iVar12 != 0) {\n            iVar3 = *(int *)(iVar12 + 8);\n            if (iVar3 != 0) {\n              FUN_001ea5b0(iVar3);\n              FUN_00248200(iVar3,0xc);\n            }\n            FUN_00248200(iVar12,0xc);\n          }\n          FUN_00248200(iVar2,0xc,iVar11,pcVar10,iVar9,iVar8);\n        }" { (expression_statement "iVar12 = *(int *)(iVar2 + 8);" (assignment_expression "iVar12 = *(int *)(iVar2 + 8)" identifier = (pointer_expression "*(int *)(iVar2 + 8)" * (cast_expression "(int *)(iVar2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar12 != 0) {\n            iVar3 = *(int *)(iVar12 + 8);\n            if (iVar3 != 0) {\n              FUN_001ea5b0(iVar3);\n              FUN_00248200(iVar3,0xc);\n            }\n            FUN_00248200(iVar12,0xc);\n          }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n            iVar3 = *(int *)(iVar12 + 8);\n            if (iVar3 != 0) {\n              FUN_001ea5b0(iVar3);\n              FUN_00248200(iVar3,0xc);\n            }\n            FUN_00248200(iVar12,0xc);\n          }" { (expression_statement "iVar3 = *(int *)(iVar12 + 8);" (assignment_expression "iVar3 = *(int *)(iVar12 + 8)" identifier = (pointer_expression "*(int *)(iVar12 + 8)" * (cast_expression "(int *)(iVar12 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 8)" ( (binary_expression "iVar12 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 != 0) {\n              FUN_001ea5b0(iVar3);\n              FUN_00248200(iVar3,0xc);\n            }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n              FUN_001ea5b0(iVar3);\n              FUN_00248200(iVar3,0xc);\n            }" { (expression_statement "FUN_001ea5b0(iVar3);" (call_expression "FUN_001ea5b0(iVar3)" identifier (argument_list "(iVar3)" ( identifier ))) ;) (expression_statement "FUN_00248200(iVar3,0xc);" (call_expression "FUN_00248200(iVar3,0xc)" identifier (argument_list "(iVar3,0xc)" ( identifier , number_literal ))) ;) })) (expression_statement "FUN_00248200(iVar12,0xc);" (call_expression "FUN_00248200(iVar12,0xc)" identifier (argument_list "(iVar12,0xc)" ( identifier , number_literal ))) ;) })) (expression_statement "FUN_00248200(iVar2,0xc,iVar11,pcVar10,iVar9,iVar8);" (call_expression "FUN_00248200(iVar2,0xc,iVar11,pcVar10,iVar9,iVar8)" identifier (argument_list "(iVar2,0xc,iVar11,pcVar10,iVar9,iVar8)" ( identifier , number_literal , identifier , identifier , identifier , identifier ))) ;) })) (expression_statement "FUN_00248200(iVar8,0xc,iVar11,pcVar10,iVar9);" (call_expression "FUN_00248200(iVar8,0xc,iVar11,pcVar10,iVar9)" identifier (argument_list "(iVar8,0xc,iVar11,pcVar10,iVar9)" ( identifier , number_literal , identifier , identifier , identifier ))) ;) })) (expression_statement "FUN_00248200(iVar9,0xc);" (call_expression "FUN_00248200(iVar9,0xc)" identifier (argument_list "(iVar9,0xc)" ( identifier , number_literal ))) ;) })) (expression_statement "FUN_00248200(iVar1,0xc);" (call_expression "FUN_00248200(iVar1,0xc)" identifier (argument_list "(iVar1,0xc)" ( identifier , number_literal ))) ;) })) (expression_statement "FUN_00248200(iVar7,0x38);" (call_expression "FUN_00248200(iVar7,0x38)" identifier (argument_list "(iVar7,0x38)" ( identifier , number_literal ))) ;) (return_statement "return local_20[0];" return (subscript_expression "local_20[0]" identifier [ number_literal ]) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bp replaced with injection: get_pc_thunk.bp */\n/* WARNING: Enum "STT": Some values do not have unique names */\n/* WARNING: Enum "STB": Some values do not have unique names */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* WARNING: Enum "ELFOSABI": Some values do not have unique names */\n/* DWARF original prototype: Sized_symbol<32> * do_define_as_constant<32>(Symbol_table * this, char\n   * name, char * version, Defined defined, Elf_Addr value, Elf_WXword symsize, STT type, STB\n   binding, STV visibility, uchar nonvis, bool only_if_ref, bool force_override) */\n\nSized_symbol<32> * __thiscall\ngold::Symbol_table::do_define_as_constant<32>\n          (Symbol_table *this,char *name,char *version,Defined defined,Elf_Addr value,\n          Elf_WXword symsize,STT type,STB binding,STV visibility,uchar nonvis,bool only_if_ref,\n          bool force_override)\n\n{\n  undefined1 *puVar1;\n  Got_offset_list *pGVar2;\n  Got_offset_list *pGVar3;\n  Got_offset_list *pGVar4;\n  Got_offset_list *pGVar5;\n  Got_offset_list *pGVar6;\n  Got_offset_list *this_00;\n  uchar nonvis_00;\n  bool bVar7;\n  Sized_symbol<32> *this_01;\n  undefined3 in_stack_00000029;\n  undefined3 in_stack_0000002d;\n  undefined3 in_stack_00000031;\n  Sized_symbol<32> *__in_chrg;\n  bool resolve_oldsym;\n  bool is_global;\n  Sized_symbol<32> *oldsym;\n  \n  bVar7 = force_override;\n  nonvis_00 = nonvis;\n  if (parameters->target_ != (Target *)0x0) {\n    if (parameters->target_->pti_->is_big_endian == false) {\n      this_01 = define_special_symbol<32,_false>\n                          (this,&name,&version,only_if_ref,visibility,&oldsym,&resolve_oldsym,\n                           binding == STB_LOCAL);\n    }\n    else {\n      this_01 = define_special_symbol<32,_true>\n                          (this,&name,&version,only_if_ref,visibility,&oldsym,&resolve_oldsym,\n                           binding == STB_LOCAL);\n    }\n    if (this_01 != (Sized_symbol<32> *)0x0) {\n      Sized_symbol<32>::init_constant\n                (this_01,name,version,value,symsize,type,binding,visibility,nonvis_00,\n                 defined == PREDEFINED);\n      if (oldsym == (Sized_symbol<32> *)0x0) {\n        if (((version == (char *)0x0) || (name != version)) || (value != 0)) {\n          if ((binding == STB_LOCAL) ||\n             ((bVar7 = Version_script_info::get_symbol_version\n                                 (this->version_script_,name,(string *)0x0,&is_global), bVar7 &&\n              (is_global == false)))) {\n            force_local(this,&this_01->super_Symbol);\n          }\n          else if ((version != (char *)0x0) && ((name != version || (value != 0)))) {\n            puVar1 = &(this_01->super_Symbol).field_0x2a;\n            *puVar1 = *puVar1 | 8;\n          }\n        }\n      }\n      else {\n        if ((bVar7) ||\n           (bVar7 = should_override_with_special(&oldsym->super_Symbol,type,defined), bVar7)) {\n          override_with_special<32>(this,oldsym,this_01);\n        }\n        if (resolve_oldsym == false) {\n          if ((binding == STB_LOCAL) ||\n             ((__in_chrg = (Sized_symbol<32> *)name,\n              bVar7 = Version_script_info::get_symbol_version\n                                (this->version_script_,name,(string *)0x0,&is_global), bVar7 &&\n              (is_global == false)))) {\n            __in_chrg = oldsym;\n            force_local(this,&oldsym->super_Symbol);\n          }\n          pGVar2 = (this_01->super_Symbol).got_offsets_.got_next_;\n          if (pGVar2 != (Got_offset_list *)0x0) {\n            pGVar3 = pGVar2->got_next_;\n            if (pGVar3 != (Got_offset_list *)0x0) {\n              pGVar4 = pGVar3->got_next_;\n              if (pGVar4 != (Got_offset_list *)0x0) {\n                pGVar5 = pGVar4->got_next_;\n                if (pGVar5 != (Got_offset_list *)0x0) {\n                  pGVar6 = pGVar5->got_next_;\n                  if (pGVar6 != (Got_offset_list *)0x0) {\n                    this_00 = pGVar6->got_next_;\n                    if (this_00 != (Got_offset_list *)0x0) {\n                      Got_offset_list::~Got_offset_list(this_00,(int)__in_chrg);\n                      operator_delete(this_00,0xc);\n                    }\n                    operator_delete(pGVar6,0xc);\n                  }\n                  operator_delete(pGVar5,0xc);\n                }\n                operator_delete(pGVar4,0xc);\n              }\n              operator_delete(pGVar3,0xc);\n            }\n            operator_delete(pGVar2,0xc);\n          }\n          operator_delete(this_01,0x38);\n          this_01 = oldsym;\n        }\n      }\n    }\n    return this_01;\n  }\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n}\n\n" comment comment comment comment comment comment (ERROR "Sized_symbol<32> * __thiscall\ngold::Symbol_table::do_define_as_constant<32>\n          (Symbol_table *this,char *name,char *version,Defined defined,Elf_Addr value,\n          Elf_WXword symsize,STT type,STB binding,STV visibility,uchar nonvis,bool only_if_ref,\n          bool force_override)" (binary_expression "Sized_symbol<32> * __thiscall\ngold::Symbol_table::do_define_as_constant<32>\n          (Symbol_table *this,char *name,char *version,Defined defined,Elf_Addr value,\n          Elf_WXword symsize,STT type,STB binding,STV visibility,uchar nonvis,bool only_if_ref,\n          bool force_override)" (binary_expression "Sized_symbol<32> * __thiscall\ngold::Symbol_table::do_define_as_constant<32" (binary_expression "Sized_symbol<32> * __thiscall" (binary_expression "Sized_symbol<32" identifier < number_literal) > (pointer_expression "* __thiscall" * identifier)) (ERROR "gold::Symbol_table::do_define_as_constant" identifier : : identifier : : identifier) < number_literal) > (parenthesized_expression "(Symbol_table *this,char *name,char *version,Defined defined,Elf_Addr value,\n          Elf_WXword symsize,STT type,STB binding,STV visibility,uchar nonvis,bool only_if_ref,\n          bool force_override)" ( (comma_expression "Symbol_table *this,char *name,char *version,Defined defined,Elf_Addr value,\n          Elf_WXword symsize,STT type,STB binding,STV visibility,uchar nonvis,bool only_if_ref,\n          bool force_override" (binary_expression "Symbol_table *this" identifier * identifier) , (comma_expression "char *name,char *version,Defined defined,Elf_Addr value,\n          Elf_WXword symsize,STT type,STB binding,STV visibility,uchar nonvis,bool only_if_ref,\n          bool force_override" (binary_expression "char *name" identifier * identifier) , (comma_expression "char *version,Defined defined,Elf_Addr value,\n          Elf_WXword symsize,STT type,STB binding,STV visibility,uchar nonvis,bool only_if_ref,\n          bool force_override" (binary_expression "char *version" identifier * identifier) , (ERROR "Defined defined,Elf_Addr value,\n          Elf_WXword symsize,STT type,STB binding,STV" identifier (comma_expression "defined,Elf_Addr value,\n          Elf_WXword symsize,STT type,STB binding,STV" identifier , (comma_expression "Elf_Addr value,\n          Elf_WXword symsize,STT type,STB binding,STV" identifier (ERROR "value" identifier) , (comma_expression "Elf_WXword symsize,STT type,STB binding,STV" identifier (ERROR "symsize" identifier) , (ERROR "STT" identifier) (comma_expression "type,STB binding,STV" identifier , (ERROR "STB" identifier) (comma_expression "binding,STV" identifier , identifier)))))) (comma_expression "visibility,uchar nonvis,bool only_if_ref,\n          bool force_override" identifier , (ERROR "uchar" identifier) (comma_expression "nonvis,bool only_if_ref,\n          bool force_override" identifier , (ERROR "bool" identifier) (comma_expression "only_if_ref,\n          bool force_override" identifier , (ERROR "bool" identifier) identifier)))))) )))) (compound_statement "{\n  undefined1 *puVar1;\n  Got_offset_list *pGVar2;\n  Got_offset_list *pGVar3;\n  Got_offset_list *pGVar4;\n  Got_offset_list *pGVar5;\n  Got_offset_list *pGVar6;\n  Got_offset_list *this_00;\n  uchar nonvis_00;\n  bool bVar7;\n  Sized_symbol<32> *this_01;\n  undefined3 in_stack_00000029;\n  undefined3 in_stack_0000002d;\n  undefined3 in_stack_00000031;\n  Sized_symbol<32> *__in_chrg;\n  bool resolve_oldsym;\n  bool is_global;\n  Sized_symbol<32> *oldsym;\n  \n  bVar7 = force_override;\n  nonvis_00 = nonvis;\n  if (parameters->target_ != (Target *)0x0) {\n    if (parameters->target_->pti_->is_big_endian == false) {\n      this_01 = define_special_symbol<32,_false>\n                          (this,&name,&version,only_if_ref,visibility,&oldsym,&resolve_oldsym,\n                           binding == STB_LOCAL);\n    }\n    else {\n      this_01 = define_special_symbol<32,_true>\n                          (this,&name,&version,only_if_ref,visibility,&oldsym,&resolve_oldsym,\n                           binding == STB_LOCAL);\n    }\n    if (this_01 != (Sized_symbol<32> *)0x0) {\n      Sized_symbol<32>::init_constant\n                (this_01,name,version,value,symsize,type,binding,visibility,nonvis_00,\n                 defined == PREDEFINED);\n      if (oldsym == (Sized_symbol<32> *)0x0) {\n        if (((version == (char *)0x0) || (name != version)) || (value != 0)) {\n          if ((binding == STB_LOCAL) ||\n             ((bVar7 = Version_script_info::get_symbol_version\n                                 (this->version_script_,name,(string *)0x0,&is_global), bVar7 &&\n              (is_global == false)))) {\n            force_local(this,&this_01->super_Symbol);\n          }\n          else if ((version != (char *)0x0) && ((name != version || (value != 0)))) {\n            puVar1 = &(this_01->super_Symbol).field_0x2a;\n            *puVar1 = *puVar1 | 8;\n          }\n        }\n      }\n      else {\n        if ((bVar7) ||\n           (bVar7 = should_override_with_special(&oldsym->super_Symbol,type,defined), bVar7)) {\n          override_with_special<32>(this,oldsym,this_01);\n        }\n        if (resolve_oldsym == false) {\n          if ((binding == STB_LOCAL) ||\n             ((__in_chrg = (Sized_symbol<32> *)name,\n              bVar7 = Version_script_info::get_symbol_version\n                                (this->version_script_,name,(string *)0x0,&is_global), bVar7 &&\n              (is_global == false)))) {\n            __in_chrg = oldsym;\n            force_local(this,&oldsym->super_Symbol);\n          }\n          pGVar2 = (this_01->super_Symbol).got_offsets_.got_next_;\n          if (pGVar2 != (Got_offset_list *)0x0) {\n            pGVar3 = pGVar2->got_next_;\n            if (pGVar3 != (Got_offset_list *)0x0) {\n              pGVar4 = pGVar3->got_next_;\n              if (pGVar4 != (Got_offset_list *)0x0) {\n                pGVar5 = pGVar4->got_next_;\n                if (pGVar5 != (Got_offset_list *)0x0) {\n                  pGVar6 = pGVar5->got_next_;\n                  if (pGVar6 != (Got_offset_list *)0x0) {\n                    this_00 = pGVar6->got_next_;\n                    if (this_00 != (Got_offset_list *)0x0) {\n                      Got_offset_list::~Got_offset_list(this_00,(int)__in_chrg);\n                      operator_delete(this_00,0xc);\n                    }\n                    operator_delete(pGVar6,0xc);\n                  }\n                  operator_delete(pGVar5,0xc);\n                }\n                operator_delete(pGVar4,0xc);\n              }\n              operator_delete(pGVar3,0xc);\n            }\n            operator_delete(pGVar2,0xc);\n          }\n          operator_delete(this_01,0x38);\n          this_01 = oldsym;\n        }\n      }\n    }\n    return this_01;\n  }\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n}" { (declaration "undefined1 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "Got_offset_list *pGVar2;" type_identifier (pointer_declarator "*pGVar2" * identifier) ;) (declaration "Got_offset_list *pGVar3;" type_identifier (pointer_declarator "*pGVar3" * identifier) ;) (declaration "Got_offset_list *pGVar4;" type_identifier (pointer_declarator "*pGVar4" * identifier) ;) (declaration "Got_offset_list *pGVar5;" type_identifier (pointer_declarator "*pGVar5" * identifier) ;) (declaration "Got_offset_list *pGVar6;" type_identifier (pointer_declarator "*pGVar6" * identifier) ;) (declaration "Got_offset_list *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (declaration "uchar nonvis_00;" type_identifier identifier ;) (declaration "bool bVar7;" primitive_type identifier ;) (expression_statement "Sized_symbol<32> *this_01;" (binary_expression "Sized_symbol<32> *this_01" (binary_expression "Sized_symbol<32" identifier < number_literal) > (pointer_expression "*this_01" * identifier)) ;) (declaration "undefined3 in_stack_00000029;" type_identifier identifier ;) (declaration "undefined3 in_stack_0000002d;" type_identifier identifier ;) (declaration "undefined3 in_stack_00000031;" type_identifier identifier ;) (expression_statement "Sized_symbol<32> *__in_chrg;" (binary_expression "Sized_symbol<32> *__in_chrg" (binary_expression "Sized_symbol<32" identifier < number_literal) > (pointer_expression "*__in_chrg" * identifier)) ;) (declaration "bool resolve_oldsym;" primitive_type identifier ;) (declaration "bool is_global;" primitive_type identifier ;) (expression_statement "Sized_symbol<32> *oldsym;" (binary_expression "Sized_symbol<32> *oldsym" (binary_expression "Sized_symbol<32" identifier < number_literal) > (pointer_expression "*oldsym" * identifier)) ;) (expression_statement "bVar7 = force_override;" (assignment_expression "bVar7 = force_override" identifier = identifier) ;) (expression_statement "nonvis_00 = nonvis;" (assignment_expression "nonvis_00 = nonvis" identifier = identifier) ;) (if_statement "if (parameters->target_ != (Target *)0x0) {\n    if (parameters->target_->pti_->is_big_endian == false) {\n      this_01 = define_special_symbol<32,_false>\n                          (this,&name,&version,only_if_ref,visibility,&oldsym,&resolve_oldsym,\n                           binding == STB_LOCAL);\n    }\n    else {\n      this_01 = define_special_symbol<32,_true>\n                          (this,&name,&version,only_if_ref,visibility,&oldsym,&resolve_oldsym,\n                           binding == STB_LOCAL);\n    }\n    if (this_01 != (Sized_symbol<32> *)0x0) {\n      Sized_symbol<32>::init_constant\n                (this_01,name,version,value,symsize,type,binding,visibility,nonvis_00,\n                 defined == PREDEFINED);\n      if (oldsym == (Sized_symbol<32> *)0x0) {\n        if (((version == (char *)0x0) || (name != version)) || (value != 0)) {\n          if ((binding == STB_LOCAL) ||\n             ((bVar7 = Version_script_info::get_symbol_version\n                                 (this->version_script_,name,(string *)0x0,&is_global), bVar7 &&\n              (is_global == false)))) {\n            force_local(this,&this_01->super_Symbol);\n          }\n          else if ((version != (char *)0x0) && ((name != version || (value != 0)))) {\n            puVar1 = &(this_01->super_Symbol).field_0x2a;\n            *puVar1 = *puVar1 | 8;\n          }\n        }\n      }\n      else {\n        if ((bVar7) ||\n           (bVar7 = should_override_with_special(&oldsym->super_Symbol,type,defined), bVar7)) {\n          override_with_special<32>(this,oldsym,this_01);\n        }\n        if (resolve_oldsym == false) {\n          if ((binding == STB_LOCAL) ||\n             ((__in_chrg = (Sized_symbol<32> *)name,\n              bVar7 = Version_script_info::get_symbol_version\n                                (this->version_script_,name,(string *)0x0,&is_global), bVar7 &&\n              (is_global == false)))) {\n            __in_chrg = oldsym;\n            force_local(this,&oldsym->super_Symbol);\n          }\n          pGVar2 = (this_01->super_Symbol).got_offsets_.got_next_;\n          if (pGVar2 != (Got_offset_list *)0x0) {\n            pGVar3 = pGVar2->got_next_;\n            if (pGVar3 != (Got_offset_list *)0x0) {\n              pGVar4 = pGVar3->got_next_;\n              if (pGVar4 != (Got_offset_list *)0x0) {\n                pGVar5 = pGVar4->got_next_;\n                if (pGVar5 != (Got_offset_list *)0x0) {\n                  pGVar6 = pGVar5->got_next_;\n                  if (pGVar6 != (Got_offset_list *)0x0) {\n                    this_00 = pGVar6->got_next_;\n                    if (this_00 != (Got_offset_list *)0x0) {\n                      Got_offset_list::~Got_offset_list(this_00,(int)__in_chrg);\n                      operator_delete(this_00,0xc);\n                    }\n                    operator_delete(pGVar6,0xc);\n                  }\n                  operator_delete(pGVar5,0xc);\n                }\n                operator_delete(pGVar4,0xc);\n              }\n              operator_delete(pGVar3,0xc);\n            }\n            operator_delete(pGVar2,0xc);\n          }\n          operator_delete(this_01,0x38);\n          this_01 = oldsym;\n        }\n      }\n    }\n    return this_01;\n  }" if (parenthesized_expression "(parameters->target_ != (Target *)0x0)" ( (binary_expression "parameters->target_ != (Target *)0x0" (field_expression "parameters->target_" identifier -> field_identifier) != (cast_expression "(Target *)0x0" ( (type_descriptor "Target *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (parameters->target_->pti_->is_big_endian == false) {\n      this_01 = define_special_symbol<32,_false>\n                          (this,&name,&version,only_if_ref,visibility,&oldsym,&resolve_oldsym,\n                           binding == STB_LOCAL);\n    }\n    else {\n      this_01 = define_special_symbol<32,_true>\n                          (this,&name,&version,only_if_ref,visibility,&oldsym,&resolve_oldsym,\n                           binding == STB_LOCAL);\n    }\n    if (this_01 != (Sized_symbol<32> *)0x0) {\n      Sized_symbol<32>::init_constant\n                (this_01,name,version,value,symsize,type,binding,visibility,nonvis_00,\n                 defined == PREDEFINED);\n      if (oldsym == (Sized_symbol<32> *)0x0) {\n        if (((version == (char *)0x0) || (name != version)) || (value != 0)) {\n          if ((binding == STB_LOCAL) ||\n             ((bVar7 = Version_script_info::get_symbol_version\n                                 (this->version_script_,name,(string *)0x0,&is_global), bVar7 &&\n              (is_global == false)))) {\n            force_local(this,&this_01->super_Symbol);\n          }\n          else if ((version != (char *)0x0) && ((name != version || (value != 0)))) {\n            puVar1 = &(this_01->super_Symbol).field_0x2a;\n            *puVar1 = *puVar1 | 8;\n          }\n        }\n      }\n      else {\n        if ((bVar7) ||\n           (bVar7 = should_override_with_special(&oldsym->super_Symbol,type,defined), bVar7)) {\n          override_with_special<32>(this,oldsym,this_01);\n        }\n        if (resolve_oldsym == false) {\n          if ((binding == STB_LOCAL) ||\n             ((__in_chrg = (Sized_symbol<32> *)name,\n              bVar7 = Version_script_info::get_symbol_version\n                                (this->version_script_,name,(string *)0x0,&is_global), bVar7 &&\n              (is_global == false)))) {\n            __in_chrg = oldsym;\n            force_local(this,&oldsym->super_Symbol);\n          }\n          pGVar2 = (this_01->super_Symbol).got_offsets_.got_next_;\n          if (pGVar2 != (Got_offset_list *)0x0) {\n            pGVar3 = pGVar2->got_next_;\n            if (pGVar3 != (Got_offset_list *)0x0) {\n              pGVar4 = pGVar3->got_next_;\n              if (pGVar4 != (Got_offset_list *)0x0) {\n                pGVar5 = pGVar4->got_next_;\n                if (pGVar5 != (Got_offset_list *)0x0) {\n                  pGVar6 = pGVar5->got_next_;\n                  if (pGVar6 != (Got_offset_list *)0x0) {\n                    this_00 = pGVar6->got_next_;\n                    if (this_00 != (Got_offset_list *)0x0) {\n                      Got_offset_list::~Got_offset_list(this_00,(int)__in_chrg);\n                      operator_delete(this_00,0xc);\n                    }\n                    operator_delete(pGVar6,0xc);\n                  }\n                  operator_delete(pGVar5,0xc);\n                }\n                operator_delete(pGVar4,0xc);\n              }\n              operator_delete(pGVar3,0xc);\n            }\n            operator_delete(pGVar2,0xc);\n          }\n          operator_delete(this_01,0x38);\n          this_01 = oldsym;\n        }\n      }\n    }\n    return this_01;\n  }" { (if_statement "if (parameters->target_->pti_->is_big_endian == false) {\n      this_01 = define_special_symbol<32,_false>\n                          (this,&name,&version,only_if_ref,visibility,&oldsym,&resolve_oldsym,\n                           binding == STB_LOCAL);\n    }\n    else {\n      this_01 = define_special_symbol<32,_true>\n                          (this,&name,&version,only_if_ref,visibility,&oldsym,&resolve_oldsym,\n                           binding == STB_LOCAL);\n    }" if (parenthesized_expression "(parameters->target_->pti_->is_big_endian == false)" ( (binary_expression "parameters->target_->pti_->is_big_endian == false" (field_expression "parameters->target_->pti_->is_big_endian" (field_expression "parameters->target_->pti_" (field_expression "parameters->target_" identifier -> field_identifier) -> field_identifier) -> field_identifier) == false) )) (compound_statement "{\n      this_01 = define_special_symbol<32,_false>\n                          (this,&name,&version,only_if_ref,visibility,&oldsym,&resolve_oldsym,\n                           binding == STB_LOCAL);\n    }" { (expression_statement "this_01 = define_special_symbol<32,_false>\n                          (this,&name,&version,only_if_ref,visibility,&oldsym,&resolve_oldsym,\n                           binding == STB_LOCAL);" (comma_expression "this_01 = define_special_symbol<32,_false>\n                          (this,&name,&version,only_if_ref,visibility,&oldsym,&resolve_oldsym,\n                           binding == STB_LOCAL)" (assignment_expression "this_01 = define_special_symbol<32" identifier = (binary_expression "define_special_symbol<32" identifier < number_literal)) , (binary_expression "_false>\n                          (this,&name,&version,only_if_ref,visibility,&oldsym,&resolve_oldsym,\n                           binding == STB_LOCAL)" identifier > (parenthesized_expression "(this,&name,&version,only_if_ref,visibility,&oldsym,&resolve_oldsym,\n                           binding == STB_LOCAL)" ( (comma_expression "this,&name,&version,only_if_ref,visibility,&oldsym,&resolve_oldsym,\n                           binding == STB_LOCAL" identifier , (comma_expression "&name,&version,only_if_ref,visibility,&oldsym,&resolve_oldsym,\n                           binding == STB_LOCAL" (pointer_expression "&name" & identifier) , (comma_expression "&version,only_if_ref,visibility,&oldsym,&resolve_oldsym,\n                           binding == STB_LOCAL" (pointer_expression "&version" & identifier) , (comma_expression "only_if_ref,visibility,&oldsym,&resolve_oldsym,\n                           binding == STB_LOCAL" identifier , (comma_expression "visibility,&oldsym,&resolve_oldsym,\n                           binding == STB_LOCAL" identifier , (comma_expression "&oldsym,&resolve_oldsym,\n                           binding == STB_LOCAL" (pointer_expression "&oldsym" & identifier) , (comma_expression "&resolve_oldsym,\n                           binding == STB_LOCAL" (pointer_expression "&resolve_oldsym" & identifier) , (binary_expression "binding == STB_LOCAL" identifier == identifier)))))))) )))) ;) }) (else_clause "else {\n      this_01 = define_special_symbol<32,_true>\n                          (this,&name,&version,only_if_ref,visibility,&oldsym,&resolve_oldsym,\n                           binding == STB_LOCAL);\n    }" else (compound_statement "{\n      this_01 = define_special_symbol<32,_true>\n                          (this,&name,&version,only_if_ref,visibility,&oldsym,&resolve_oldsym,\n                           binding == STB_LOCAL);\n    }" { (expression_statement "this_01 = define_special_symbol<32,_true>\n                          (this,&name,&version,only_if_ref,visibility,&oldsym,&resolve_oldsym,\n                           binding == STB_LOCAL);" (comma_expression "this_01 = define_special_symbol<32,_true>\n                          (this,&name,&version,only_if_ref,visibility,&oldsym,&resolve_oldsym,\n                           binding == STB_LOCAL)" (assignment_expression "this_01 = define_special_symbol<32" identifier = (binary_expression "define_special_symbol<32" identifier < number_literal)) , (binary_expression "_true>\n                          (this,&name,&version,only_if_ref,visibility,&oldsym,&resolve_oldsym,\n                           binding == STB_LOCAL)" identifier > (parenthesized_expression "(this,&name,&version,only_if_ref,visibility,&oldsym,&resolve_oldsym,\n                           binding == STB_LOCAL)" ( (comma_expression "this,&name,&version,only_if_ref,visibility,&oldsym,&resolve_oldsym,\n                           binding == STB_LOCAL" identifier , (comma_expression "&name,&version,only_if_ref,visibility,&oldsym,&resolve_oldsym,\n                           binding == STB_LOCAL" (pointer_expression "&name" & identifier) , (comma_expression "&version,only_if_ref,visibility,&oldsym,&resolve_oldsym,\n                           binding == STB_LOCAL" (pointer_expression "&version" & identifier) , (comma_expression "only_if_ref,visibility,&oldsym,&resolve_oldsym,\n                           binding == STB_LOCAL" identifier , (comma_expression "visibility,&oldsym,&resolve_oldsym,\n                           binding == STB_LOCAL" identifier , (comma_expression "&oldsym,&resolve_oldsym,\n                           binding == STB_LOCAL" (pointer_expression "&oldsym" & identifier) , (comma_expression "&resolve_oldsym,\n                           binding == STB_LOCAL" (pointer_expression "&resolve_oldsym" & identifier) , (binary_expression "binding == STB_LOCAL" identifier == identifier)))))))) )))) ;) }))) (if_statement "if (this_01 != (Sized_symbol<32> *)0x0) {\n      Sized_symbol<32>::init_constant\n                (this_01,name,version,value,symsize,type,binding,visibility,nonvis_00,\n                 defined == PREDEFINED);\n      if (oldsym == (Sized_symbol<32> *)0x0) {\n        if (((version == (char *)0x0) || (name != version)) || (value != 0)) {\n          if ((binding == STB_LOCAL) ||\n             ((bVar7 = Version_script_info::get_symbol_version\n                                 (this->version_script_,name,(string *)0x0,&is_global), bVar7 &&\n              (is_global == false)))) {\n            force_local(this,&this_01->super_Symbol);\n          }\n          else if ((version != (char *)0x0) && ((name != version || (value != 0)))) {\n            puVar1 = &(this_01->super_Symbol).field_0x2a;\n            *puVar1 = *puVar1 | 8;\n          }\n        }\n      }\n      else {\n        if ((bVar7) ||\n           (bVar7 = should_override_with_special(&oldsym->super_Symbol,type,defined), bVar7)) {\n          override_with_special<32>(this,oldsym,this_01);\n        }\n        if (resolve_oldsym == false) {\n          if ((binding == STB_LOCAL) ||\n             ((__in_chrg = (Sized_symbol<32> *)name,\n              bVar7 = Version_script_info::get_symbol_version\n                                (this->version_script_,name,(string *)0x0,&is_global), bVar7 &&\n              (is_global == false)))) {\n            __in_chrg = oldsym;\n            force_local(this,&oldsym->super_Symbol);\n          }\n          pGVar2 = (this_01->super_Symbol).got_offsets_.got_next_;\n          if (pGVar2 != (Got_offset_list *)0x0) {\n            pGVar3 = pGVar2->got_next_;\n            if (pGVar3 != (Got_offset_list *)0x0) {\n              pGVar4 = pGVar3->got_next_;\n              if (pGVar4 != (Got_offset_list *)0x0) {\n                pGVar5 = pGVar4->got_next_;\n                if (pGVar5 != (Got_offset_list *)0x0) {\n                  pGVar6 = pGVar5->got_next_;\n                  if (pGVar6 != (Got_offset_list *)0x0) {\n                    this_00 = pGVar6->got_next_;\n                    if (this_00 != (Got_offset_list *)0x0) {\n                      Got_offset_list::~Got_offset_list(this_00,(int)__in_chrg);\n                      operator_delete(this_00,0xc);\n                    }\n                    operator_delete(pGVar6,0xc);\n                  }\n                  operator_delete(pGVar5,0xc);\n                }\n                operator_delete(pGVar4,0xc);\n              }\n              operator_delete(pGVar3,0xc);\n            }\n            operator_delete(pGVar2,0xc);\n          }\n          operator_delete(this_01,0x38);\n          this_01 = oldsym;\n        }\n      }\n    }" if (parenthesized_expression "(this_01 != (Sized_symbol<32> *)0x0)" ( (binary_expression "this_01 != (Sized_symbol<32> *)0x0)" identifier != (parenthesized_expression "(Sized_symbol<32> *)0x0)" ( (binary_expression "Sized_symbol<32> *)0x0" (binary_expression "Sized_symbol<32" identifier < number_literal) > (pointer_expression "*)0x0" * (ERROR ")" )) number_literal)) ))) )) (compound_statement "{\n      Sized_symbol<32>::init_constant\n                (this_01,name,version,value,symsize,type,binding,visibility,nonvis_00,\n                 defined == PREDEFINED);\n      if (oldsym == (Sized_symbol<32> *)0x0) {\n        if (((version == (char *)0x0) || (name != version)) || (value != 0)) {\n          if ((binding == STB_LOCAL) ||\n             ((bVar7 = Version_script_info::get_symbol_version\n                                 (this->version_script_,name,(string *)0x0,&is_global), bVar7 &&\n              (is_global == false)))) {\n            force_local(this,&this_01->super_Symbol);\n          }\n          else if ((version != (char *)0x0) && ((name != version || (value != 0)))) {\n            puVar1 = &(this_01->super_Symbol).field_0x2a;\n            *puVar1 = *puVar1 | 8;\n          }\n        }\n      }\n      else {\n        if ((bVar7) ||\n           (bVar7 = should_override_with_special(&oldsym->super_Symbol,type,defined), bVar7)) {\n          override_with_special<32>(this,oldsym,this_01);\n        }\n        if (resolve_oldsym == false) {\n          if ((binding == STB_LOCAL) ||\n             ((__in_chrg = (Sized_symbol<32> *)name,\n              bVar7 = Version_script_info::get_symbol_version\n                                (this->version_script_,name,(string *)0x0,&is_global), bVar7 &&\n              (is_global == false)))) {\n            __in_chrg = oldsym;\n            force_local(this,&oldsym->super_Symbol);\n          }\n          pGVar2 = (this_01->super_Symbol).got_offsets_.got_next_;\n          if (pGVar2 != (Got_offset_list *)0x0) {\n            pGVar3 = pGVar2->got_next_;\n            if (pGVar3 != (Got_offset_list *)0x0) {\n              pGVar4 = pGVar3->got_next_;\n              if (pGVar4 != (Got_offset_list *)0x0) {\n                pGVar5 = pGVar4->got_next_;\n                if (pGVar5 != (Got_offset_list *)0x0) {\n                  pGVar6 = pGVar5->got_next_;\n                  if (pGVar6 != (Got_offset_list *)0x0) {\n                    this_00 = pGVar6->got_next_;\n                    if (this_00 != (Got_offset_list *)0x0) {\n                      Got_offset_list::~Got_offset_list(this_00,(int)__in_chrg);\n                      operator_delete(this_00,0xc);\n                    }\n                    operator_delete(pGVar6,0xc);\n                  }\n                  operator_delete(pGVar5,0xc);\n                }\n                operator_delete(pGVar4,0xc);\n              }\n              operator_delete(pGVar3,0xc);\n            }\n            operator_delete(pGVar2,0xc);\n          }\n          operator_delete(this_01,0x38);\n          this_01 = oldsym;\n        }\n      }\n    }" { (expression_statement "Sized_symbol<32>::init_constant\n                (this_01,name,version,value,symsize,type,binding,visibility,nonvis_00,\n                 defined == PREDEFINED);" (binary_expression "Sized_symbol<32>::init_constant\n                (this_01,name,version,value,symsize,type,binding,visibility,nonvis_00,\n                 defined == PREDEFINED)" (binary_expression "Sized_symbol<32" identifier < number_literal) > (ERROR "::" : :) (call_expression "init_constant\n                (this_01,name,version,value,symsize,type,binding,visibility,nonvis_00,\n                 defined == PREDEFINED)" identifier (argument_list "(this_01,name,version,value,symsize,type,binding,visibility,nonvis_00,\n                 defined == PREDEFINED)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , (binary_expression "defined == PREDEFINED" identifier == identifier) )))) ;) (if_statement "if (oldsym == (Sized_symbol<32> *)0x0) {\n        if (((version == (char *)0x0) || (name != version)) || (value != 0)) {\n          if ((binding == STB_LOCAL) ||\n             ((bVar7 = Version_script_info::get_symbol_version\n                                 (this->version_script_,name,(string *)0x0,&is_global), bVar7 &&\n              (is_global == false)))) {\n            force_local(this,&this_01->super_Symbol);\n          }\n          else if ((version != (char *)0x0) && ((name != version || (value != 0)))) {\n            puVar1 = &(this_01->super_Symbol).field_0x2a;\n            *puVar1 = *puVar1 | 8;\n          }\n        }\n      }\n      else {\n        if ((bVar7) ||\n           (bVar7 = should_override_with_special(&oldsym->super_Symbol,type,defined), bVar7)) {\n          override_with_special<32>(this,oldsym,this_01);\n        }\n        if (resolve_oldsym == false) {\n          if ((binding == STB_LOCAL) ||\n             ((__in_chrg = (Sized_symbol<32> *)name,\n              bVar7 = Version_script_info::get_symbol_version\n                                (this->version_script_,name,(string *)0x0,&is_global), bVar7 &&\n              (is_global == false)))) {\n            __in_chrg = oldsym;\n            force_local(this,&oldsym->super_Symbol);\n          }\n          pGVar2 = (this_01->super_Symbol).got_offsets_.got_next_;\n          if (pGVar2 != (Got_offset_list *)0x0) {\n            pGVar3 = pGVar2->got_next_;\n            if (pGVar3 != (Got_offset_list *)0x0) {\n              pGVar4 = pGVar3->got_next_;\n              if (pGVar4 != (Got_offset_list *)0x0) {\n                pGVar5 = pGVar4->got_next_;\n                if (pGVar5 != (Got_offset_list *)0x0) {\n                  pGVar6 = pGVar5->got_next_;\n                  if (pGVar6 != (Got_offset_list *)0x0) {\n                    this_00 = pGVar6->got_next_;\n                    if (this_00 != (Got_offset_list *)0x0) {\n                      Got_offset_list::~Got_offset_list(this_00,(int)__in_chrg);\n                      operator_delete(this_00,0xc);\n                    }\n                    operator_delete(pGVar6,0xc);\n                  }\n                  operator_delete(pGVar5,0xc);\n                }\n                operator_delete(pGVar4,0xc);\n              }\n              operator_delete(pGVar3,0xc);\n            }\n            operator_delete(pGVar2,0xc);\n          }\n          operator_delete(this_01,0x38);\n          this_01 = oldsym;\n        }\n      }" if (parenthesized_expression "(oldsym == (Sized_symbol<32> *)0x0)" ( (binary_expression "oldsym == (Sized_symbol<32> *)0x0)" identifier == (parenthesized_expression "(Sized_symbol<32> *)0x0)" ( (binary_expression "Sized_symbol<32> *)0x0" (binary_expression "Sized_symbol<32" identifier < number_literal) > (pointer_expression "*)0x0" * (ERROR ")" )) number_literal)) ))) )) (compound_statement "{\n        if (((version == (char *)0x0) || (name != version)) || (value != 0)) {\n          if ((binding == STB_LOCAL) ||\n             ((bVar7 = Version_script_info::get_symbol_version\n                                 (this->version_script_,name,(string *)0x0,&is_global), bVar7 &&\n              (is_global == false)))) {\n            force_local(this,&this_01->super_Symbol);\n          }\n          else if ((version != (char *)0x0) && ((name != version || (value != 0)))) {\n            puVar1 = &(this_01->super_Symbol).field_0x2a;\n            *puVar1 = *puVar1 | 8;\n          }\n        }\n      }" { (if_statement "if (((version == (char *)0x0) || (name != version)) || (value != 0)) {\n          if ((binding == STB_LOCAL) ||\n             ((bVar7 = Version_script_info::get_symbol_version\n                                 (this->version_script_,name,(string *)0x0,&is_global), bVar7 &&\n              (is_global == false)))) {\n            force_local(this,&this_01->super_Symbol);\n          }\n          else if ((version != (char *)0x0) && ((name != version || (value != 0)))) {\n            puVar1 = &(this_01->super_Symbol).field_0x2a;\n            *puVar1 = *puVar1 | 8;\n          }\n        }" if (parenthesized_expression "(((version == (char *)0x0) || (name != version)) || (value != 0))" ( (binary_expression "((version == (char *)0x0) || (name != version)) || (value != 0)" (parenthesized_expression "((version == (char *)0x0) || (name != version))" ( (binary_expression "(version == (char *)0x0) || (name != version)" (parenthesized_expression "(version == (char *)0x0)" ( (binary_expression "version == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(name != version)" ( (binary_expression "name != version" identifier != identifier) ))) )) || (parenthesized_expression "(value != 0)" ( (binary_expression "value != 0" identifier != number_literal) ))) )) (compound_statement "{\n          if ((binding == STB_LOCAL) ||\n             ((bVar7 = Version_script_info::get_symbol_version\n                                 (this->version_script_,name,(string *)0x0,&is_global), bVar7 &&\n              (is_global == false)))) {\n            force_local(this,&this_01->super_Symbol);\n          }\n          else if ((version != (char *)0x0) && ((name != version || (value != 0)))) {\n            puVar1 = &(this_01->super_Symbol).field_0x2a;\n            *puVar1 = *puVar1 | 8;\n          }\n        }" { (if_statement "if ((binding == STB_LOCAL) ||\n             ((bVar7 = Version_script_info::get_symbol_version\n                                 (this->version_script_,name,(string *)0x0,&is_global), bVar7 &&\n              (is_global == false)))) {\n            force_local(this,&this_01->super_Symbol);\n          }\n          else if ((version != (char *)0x0) && ((name != version || (value != 0)))) {\n            puVar1 = &(this_01->super_Symbol).field_0x2a;\n            *puVar1 = *puVar1 | 8;\n          }" if (parenthesized_expression "((binding == STB_LOCAL) ||\n             ((bVar7 = Version_script_info::get_symbol_version\n                                 (this->version_script_,name,(string *)0x0,&is_global), bVar7 &&\n              (is_global == false))))" ( (binary_expression "(binding == STB_LOCAL) ||\n             ((bVar7 = Version_script_info::get_symbol_version\n                                 (this->version_script_,name,(string *)0x0,&is_global), bVar7 &&\n              (is_global == false)))" (parenthesized_expression "(binding == STB_LOCAL)" ( (binary_expression "binding == STB_LOCAL" identifier == identifier) )) || (parenthesized_expression "((bVar7 = Version_script_info::get_symbol_version\n                                 (this->version_script_,name,(string *)0x0,&is_global), bVar7 &&\n              (is_global == false)))" ( (parenthesized_expression "(bVar7 = Version_script_info::get_symbol_version\n                                 (this->version_script_,name,(string *)0x0,&is_global), bVar7 &&\n              (is_global == false))" ( (ERROR "bVar7 = Version_script_info::" (assignment_expression "bVar7 = Version_script_info" identifier = identifier) : :) (comma_expression "get_symbol_version\n                                 (this->version_script_,name,(string *)0x0,&is_global), bVar7 &&\n              (is_global == false)" (call_expression "get_symbol_version\n                                 (this->version_script_,name,(string *)0x0,&is_global)" identifier (argument_list "(this->version_script_,name,(string *)0x0,&is_global)" ( (field_expression "this->version_script_" identifier -> field_identifier) , identifier , (cast_expression "(string *)0x0" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (pointer_expression "&is_global" & identifier) ))) , (binary_expression "bVar7 &&\n              (is_global == false)" identifier && (parenthesized_expression "(is_global == false)" ( (binary_expression "is_global == false" identifier == false) )))) )) ))) )) (compound_statement "{\n            force_local(this,&this_01->super_Symbol);\n          }" { (expression_statement "force_local(this,&this_01->super_Symbol);" (call_expression "force_local(this,&this_01->super_Symbol)" identifier (argument_list "(this,&this_01->super_Symbol)" ( identifier , (pointer_expression "&this_01->super_Symbol" & (field_expression "this_01->super_Symbol" identifier -> field_identifier)) ))) ;) }) (else_clause "else if ((version != (char *)0x0) && ((name != version || (value != 0)))) {\n            puVar1 = &(this_01->super_Symbol).field_0x2a;\n            *puVar1 = *puVar1 | 8;\n          }" else (if_statement "if ((version != (char *)0x0) && ((name != version || (value != 0)))) {\n            puVar1 = &(this_01->super_Symbol).field_0x2a;\n            *puVar1 = *puVar1 | 8;\n          }" if (parenthesized_expression "((version != (char *)0x0) && ((name != version || (value != 0))))" ( (binary_expression "(version != (char *)0x0) && ((name != version || (value != 0)))" (parenthesized_expression "(version != (char *)0x0)" ( (binary_expression "version != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((name != version || (value != 0)))" ( (parenthesized_expression "(name != version || (value != 0))" ( (binary_expression "name != version || (value != 0)" (binary_expression "name != version" identifier != identifier) || (parenthesized_expression "(value != 0)" ( (binary_expression "value != 0" identifier != number_literal) ))) )) ))) )) (compound_statement "{\n            puVar1 = &(this_01->super_Symbol).field_0x2a;\n            *puVar1 = *puVar1 | 8;\n          }" { (expression_statement "puVar1 = &(this_01->super_Symbol).field_0x2a;" (assignment_expression "puVar1 = &(this_01->super_Symbol).field_0x2a" identifier = (pointer_expression "&(this_01->super_Symbol).field_0x2a" & (field_expression "(this_01->super_Symbol).field_0x2a" (parenthesized_expression "(this_01->super_Symbol)" ( (field_expression "this_01->super_Symbol" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "*puVar1 = *puVar1 | 8;" (assignment_expression "*puVar1 = *puVar1 | 8" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 | 8" (pointer_expression "*puVar1" * identifier) | number_literal)) ;) })))) })) }) (else_clause "else {\n        if ((bVar7) ||\n           (bVar7 = should_override_with_special(&oldsym->super_Symbol,type,defined), bVar7)) {\n          override_with_special<32>(this,oldsym,this_01);\n        }\n        if (resolve_oldsym == false) {\n          if ((binding == STB_LOCAL) ||\n             ((__in_chrg = (Sized_symbol<32> *)name,\n              bVar7 = Version_script_info::get_symbol_version\n                                (this->version_script_,name,(string *)0x0,&is_global), bVar7 &&\n              (is_global == false)))) {\n            __in_chrg = oldsym;\n            force_local(this,&oldsym->super_Symbol);\n          }\n          pGVar2 = (this_01->super_Symbol).got_offsets_.got_next_;\n          if (pGVar2 != (Got_offset_list *)0x0) {\n            pGVar3 = pGVar2->got_next_;\n            if (pGVar3 != (Got_offset_list *)0x0) {\n              pGVar4 = pGVar3->got_next_;\n              if (pGVar4 != (Got_offset_list *)0x0) {\n                pGVar5 = pGVar4->got_next_;\n                if (pGVar5 != (Got_offset_list *)0x0) {\n                  pGVar6 = pGVar5->got_next_;\n                  if (pGVar6 != (Got_offset_list *)0x0) {\n                    this_00 = pGVar6->got_next_;\n                    if (this_00 != (Got_offset_list *)0x0) {\n                      Got_offset_list::~Got_offset_list(this_00,(int)__in_chrg);\n                      operator_delete(this_00,0xc);\n                    }\n                    operator_delete(pGVar6,0xc);\n                  }\n                  operator_delete(pGVar5,0xc);\n                }\n                operator_delete(pGVar4,0xc);\n              }\n              operator_delete(pGVar3,0xc);\n            }\n            operator_delete(pGVar2,0xc);\n          }\n          operator_delete(this_01,0x38);\n          this_01 = oldsym;\n        }\n      }" else (compound_statement "{\n        if ((bVar7) ||\n           (bVar7 = should_override_with_special(&oldsym->super_Symbol,type,defined), bVar7)) {\n          override_with_special<32>(this,oldsym,this_01);\n        }\n        if (resolve_oldsym == false) {\n          if ((binding == STB_LOCAL) ||\n             ((__in_chrg = (Sized_symbol<32> *)name,\n              bVar7 = Version_script_info::get_symbol_version\n                                (this->version_script_,name,(string *)0x0,&is_global), bVar7 &&\n              (is_global == false)))) {\n            __in_chrg = oldsym;\n            force_local(this,&oldsym->super_Symbol);\n          }\n          pGVar2 = (this_01->super_Symbol).got_offsets_.got_next_;\n          if (pGVar2 != (Got_offset_list *)0x0) {\n            pGVar3 = pGVar2->got_next_;\n            if (pGVar3 != (Got_offset_list *)0x0) {\n              pGVar4 = pGVar3->got_next_;\n              if (pGVar4 != (Got_offset_list *)0x0) {\n                pGVar5 = pGVar4->got_next_;\n                if (pGVar5 != (Got_offset_list *)0x0) {\n                  pGVar6 = pGVar5->got_next_;\n                  if (pGVar6 != (Got_offset_list *)0x0) {\n                    this_00 = pGVar6->got_next_;\n                    if (this_00 != (Got_offset_list *)0x0) {\n                      Got_offset_list::~Got_offset_list(this_00,(int)__in_chrg);\n                      operator_delete(this_00,0xc);\n                    }\n                    operator_delete(pGVar6,0xc);\n                  }\n                  operator_delete(pGVar5,0xc);\n                }\n                operator_delete(pGVar4,0xc);\n              }\n              operator_delete(pGVar3,0xc);\n            }\n            operator_delete(pGVar2,0xc);\n          }\n          operator_delete(this_01,0x38);\n          this_01 = oldsym;\n        }\n      }" { (if_statement "if ((bVar7) ||\n           (bVar7 = should_override_with_special(&oldsym->super_Symbol,type,defined), bVar7)) {\n          override_with_special<32>(this,oldsym,this_01);\n        }" if (parenthesized_expression "((bVar7) ||\n           (bVar7 = should_override_with_special(&oldsym->super_Symbol,type,defined), bVar7))" ( (binary_expression "(bVar7) ||\n           (bVar7 = should_override_with_special(&oldsym->super_Symbol,type,defined), bVar7)" (parenthesized_expression "(bVar7)" ( identifier )) || (parenthesized_expression "(bVar7 = should_override_with_special(&oldsym->super_Symbol,type,defined), bVar7)" ( (comma_expression "bVar7 = should_override_with_special(&oldsym->super_Symbol,type,defined), bVar7" (assignment_expression "bVar7 = should_override_with_special(&oldsym->super_Symbol,type,defined)" identifier = (call_expression "should_override_with_special(&oldsym->super_Symbol,type,defined)" identifier (argument_list "(&oldsym->super_Symbol,type,defined)" ( (pointer_expression "&oldsym->super_Symbol" & (field_expression "oldsym->super_Symbol" identifier -> field_identifier)) , identifier , identifier )))) , identifier) ))) )) (compound_statement "{\n          override_with_special<32>(this,oldsym,this_01);\n        }" { (expression_statement "override_with_special<32>(this,oldsym,this_01);" (binary_expression "override_with_special<32>(this,oldsym,this_01)" (binary_expression "override_with_special<32" identifier < number_literal) > (parenthesized_expression "(this,oldsym,this_01)" ( (comma_expression "this,oldsym,this_01" identifier , (comma_expression "oldsym,this_01" identifier , identifier)) ))) ;) })) (if_statement "if (resolve_oldsym == false) {\n          if ((binding == STB_LOCAL) ||\n             ((__in_chrg = (Sized_symbol<32> *)name,\n              bVar7 = Version_script_info::get_symbol_version\n                                (this->version_script_,name,(string *)0x0,&is_global), bVar7 &&\n              (is_global == false)))) {\n            __in_chrg = oldsym;\n            force_local(this,&oldsym->super_Symbol);\n          }\n          pGVar2 = (this_01->super_Symbol).got_offsets_.got_next_;\n          if (pGVar2 != (Got_offset_list *)0x0) {\n            pGVar3 = pGVar2->got_next_;\n            if (pGVar3 != (Got_offset_list *)0x0) {\n              pGVar4 = pGVar3->got_next_;\n              if (pGVar4 != (Got_offset_list *)0x0) {\n                pGVar5 = pGVar4->got_next_;\n                if (pGVar5 != (Got_offset_list *)0x0) {\n                  pGVar6 = pGVar5->got_next_;\n                  if (pGVar6 != (Got_offset_list *)0x0) {\n                    this_00 = pGVar6->got_next_;\n                    if (this_00 != (Got_offset_list *)0x0) {\n                      Got_offset_list::~Got_offset_list(this_00,(int)__in_chrg);\n                      operator_delete(this_00,0xc);\n                    }\n                    operator_delete(pGVar6,0xc);\n                  }\n                  operator_delete(pGVar5,0xc);\n                }\n                operator_delete(pGVar4,0xc);\n              }\n              operator_delete(pGVar3,0xc);\n            }\n            operator_delete(pGVar2,0xc);\n          }\n          operator_delete(this_01,0x38);\n          this_01 = oldsym;\n        }" if (parenthesized_expression "(resolve_oldsym == false)" ( (binary_expression "resolve_oldsym == false" identifier == false) )) (compound_statement "{\n          if ((binding == STB_LOCAL) ||\n             ((__in_chrg = (Sized_symbol<32> *)name,\n              bVar7 = Version_script_info::get_symbol_version\n                                (this->version_script_,name,(string *)0x0,&is_global), bVar7 &&\n              (is_global == false)))) {\n            __in_chrg = oldsym;\n            force_local(this,&oldsym->super_Symbol);\n          }\n          pGVar2 = (this_01->super_Symbol).got_offsets_.got_next_;\n          if (pGVar2 != (Got_offset_list *)0x0) {\n            pGVar3 = pGVar2->got_next_;\n            if (pGVar3 != (Got_offset_list *)0x0) {\n              pGVar4 = pGVar3->got_next_;\n              if (pGVar4 != (Got_offset_list *)0x0) {\n                pGVar5 = pGVar4->got_next_;\n                if (pGVar5 != (Got_offset_list *)0x0) {\n                  pGVar6 = pGVar5->got_next_;\n                  if (pGVar6 != (Got_offset_list *)0x0) {\n                    this_00 = pGVar6->got_next_;\n                    if (this_00 != (Got_offset_list *)0x0) {\n                      Got_offset_list::~Got_offset_list(this_00,(int)__in_chrg);\n                      operator_delete(this_00,0xc);\n                    }\n                    operator_delete(pGVar6,0xc);\n                  }\n                  operator_delete(pGVar5,0xc);\n                }\n                operator_delete(pGVar4,0xc);\n              }\n              operator_delete(pGVar3,0xc);\n            }\n            operator_delete(pGVar2,0xc);\n          }\n          operator_delete(this_01,0x38);\n          this_01 = oldsym;\n        }" { (if_statement "if ((binding == STB_LOCAL) ||\n             ((__in_chrg = (Sized_symbol<32> *)name,\n              bVar7 = Version_script_info::get_symbol_version\n                                (this->version_script_,name,(string *)0x0,&is_global), bVar7 &&\n              (is_global == false)))) {\n            __in_chrg = oldsym;\n            force_local(this,&oldsym->super_Symbol);\n          }" if (parenthesized_expression "((binding == STB_LOCAL) ||\n             ((__in_chrg = (Sized_symbol<32> *)name,\n              bVar7 = Version_script_info::get_symbol_version\n                                (this->version_script_,name,(string *)0x0,&is_global), bVar7 &&\n              (is_global == false))))" ( (binary_expression "(binding == STB_LOCAL) ||\n             ((__in_chrg = (Sized_symbol<32> *)name,\n              bVar7 = Version_script_info::get_symbol_version\n                                (this->version_script_,name,(string *)0x0,&is_global), bVar7 &&\n              (is_global == false))))" (parenthesized_expression "(binding == STB_LOCAL)" ( (binary_expression "binding == STB_LOCAL" identifier == identifier) )) || (parenthesized_expression "((__in_chrg = (Sized_symbol<32> *)name,\n              bVar7 = Version_script_info::get_symbol_version\n                                (this->version_script_,name,(string *)0x0,&is_global), bVar7 &&\n              (is_global == false))))" ( (parenthesized_expression "(__in_chrg = (Sized_symbol<32> *)name,\n              bVar7 = Version_script_info::get_symbol_version\n                                (this->version_script_,name,(string *)0x0,&is_global), bVar7 &&\n              (is_global == false)))" ( (assignment_expression "__in_chrg = (Sized_symbol<32> *)name,\n              bVar7 = Version_script_info::get_symbol_version\n                                (this->version_script_,name,(string *)0x0,&is_global), bVar7 &&\n              (is_global == false))" identifier = (parenthesized_expression "(Sized_symbol<32> *)name,\n              bVar7 = Version_script_info::get_symbol_version\n                                (this->version_script_,name,(string *)0x0,&is_global), bVar7 &&\n              (is_global == false))" ( (ERROR "Sized_symbol<32> *)name,\n              bVar7 = Version_script_info::" (comma_expression "Sized_symbol<32> *)name,\n              bVar7 = Version_script_info" (binary_expression "Sized_symbol<32> *)name" (binary_expression "Sized_symbol<32" identifier < number_literal) > (pointer_expression "*)name" * (ERROR ")" )) identifier)) , (assignment_expression "bVar7 = Version_script_info" identifier = identifier)) : :) (comma_expression "get_symbol_version\n                                (this->version_script_,name,(string *)0x0,&is_global), bVar7 &&\n              (is_global == false)" (call_expression "get_symbol_version\n                                (this->version_script_,name,(string *)0x0,&is_global)" identifier (argument_list "(this->version_script_,name,(string *)0x0,&is_global)" ( (field_expression "this->version_script_" identifier -> field_identifier) , identifier , (cast_expression "(string *)0x0" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (pointer_expression "&is_global" & identifier) ))) , (binary_expression "bVar7 &&\n              (is_global == false)" identifier && (parenthesized_expression "(is_global == false)" ( (binary_expression "is_global == false" identifier == false) )))) ))) )) ))) )) (compound_statement "{\n            __in_chrg = oldsym;\n            force_local(this,&oldsym->super_Symbol);\n          }" { (expression_statement "__in_chrg = oldsym;" (assignment_expression "__in_chrg = oldsym" identifier = identifier) ;) (expression_statement "force_local(this,&oldsym->super_Symbol);" (call_expression "force_local(this,&oldsym->super_Symbol)" identifier (argument_list "(this,&oldsym->super_Symbol)" ( identifier , (pointer_expression "&oldsym->super_Symbol" & (field_expression "oldsym->super_Symbol" identifier -> field_identifier)) ))) ;) })) (expression_statement "pGVar2 = (this_01->super_Symbol).got_offsets_.got_next_;" (assignment_expression "pGVar2 = (this_01->super_Symbol).got_offsets_.got_next_" identifier = (field_expression "(this_01->super_Symbol).got_offsets_.got_next_" (field_expression "(this_01->super_Symbol).got_offsets_" (parenthesized_expression "(this_01->super_Symbol)" ( (field_expression "this_01->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if (pGVar2 != (Got_offset_list *)0x0) {\n            pGVar3 = pGVar2->got_next_;\n            if (pGVar3 != (Got_offset_list *)0x0) {\n              pGVar4 = pGVar3->got_next_;\n              if (pGVar4 != (Got_offset_list *)0x0) {\n                pGVar5 = pGVar4->got_next_;\n                if (pGVar5 != (Got_offset_list *)0x0) {\n                  pGVar6 = pGVar5->got_next_;\n                  if (pGVar6 != (Got_offset_list *)0x0) {\n                    this_00 = pGVar6->got_next_;\n                    if (this_00 != (Got_offset_list *)0x0) {\n                      Got_offset_list::~Got_offset_list(this_00,(int)__in_chrg);\n                      operator_delete(this_00,0xc);\n                    }\n                    operator_delete(pGVar6,0xc);\n                  }\n                  operator_delete(pGVar5,0xc);\n                }\n                operator_delete(pGVar4,0xc);\n              }\n              operator_delete(pGVar3,0xc);\n            }\n            operator_delete(pGVar2,0xc);\n          }" if (parenthesized_expression "(pGVar2 != (Got_offset_list *)0x0)" ( (binary_expression "pGVar2 != (Got_offset_list *)0x0" identifier != (cast_expression "(Got_offset_list *)0x0" ( (type_descriptor "Got_offset_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pGVar3 = pGVar2->got_next_;\n            if (pGVar3 != (Got_offset_list *)0x0) {\n              pGVar4 = pGVar3->got_next_;\n              if (pGVar4 != (Got_offset_list *)0x0) {\n                pGVar5 = pGVar4->got_next_;\n                if (pGVar5 != (Got_offset_list *)0x0) {\n                  pGVar6 = pGVar5->got_next_;\n                  if (pGVar6 != (Got_offset_list *)0x0) {\n                    this_00 = pGVar6->got_next_;\n                    if (this_00 != (Got_offset_list *)0x0) {\n                      Got_offset_list::~Got_offset_list(this_00,(int)__in_chrg);\n                      operator_delete(this_00,0xc);\n                    }\n                    operator_delete(pGVar6,0xc);\n                  }\n                  operator_delete(pGVar5,0xc);\n                }\n                operator_delete(pGVar4,0xc);\n              }\n              operator_delete(pGVar3,0xc);\n            }\n            operator_delete(pGVar2,0xc);\n          }" { (expression_statement "pGVar3 = pGVar2->got_next_;" (assignment_expression "pGVar3 = pGVar2->got_next_" identifier = (field_expression "pGVar2->got_next_" identifier -> field_identifier)) ;) (if_statement "if (pGVar3 != (Got_offset_list *)0x0) {\n              pGVar4 = pGVar3->got_next_;\n              if (pGVar4 != (Got_offset_list *)0x0) {\n                pGVar5 = pGVar4->got_next_;\n                if (pGVar5 != (Got_offset_list *)0x0) {\n                  pGVar6 = pGVar5->got_next_;\n                  if (pGVar6 != (Got_offset_list *)0x0) {\n                    this_00 = pGVar6->got_next_;\n                    if (this_00 != (Got_offset_list *)0x0) {\n                      Got_offset_list::~Got_offset_list(this_00,(int)__in_chrg);\n                      operator_delete(this_00,0xc);\n                    }\n                    operator_delete(pGVar6,0xc);\n                  }\n                  operator_delete(pGVar5,0xc);\n                }\n                operator_delete(pGVar4,0xc);\n              }\n              operator_delete(pGVar3,0xc);\n            }" if (parenthesized_expression "(pGVar3 != (Got_offset_list *)0x0)" ( (binary_expression "pGVar3 != (Got_offset_list *)0x0" identifier != (cast_expression "(Got_offset_list *)0x0" ( (type_descriptor "Got_offset_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pGVar4 = pGVar3->got_next_;\n              if (pGVar4 != (Got_offset_list *)0x0) {\n                pGVar5 = pGVar4->got_next_;\n                if (pGVar5 != (Got_offset_list *)0x0) {\n                  pGVar6 = pGVar5->got_next_;\n                  if (pGVar6 != (Got_offset_list *)0x0) {\n                    this_00 = pGVar6->got_next_;\n                    if (this_00 != (Got_offset_list *)0x0) {\n                      Got_offset_list::~Got_offset_list(this_00,(int)__in_chrg);\n                      operator_delete(this_00,0xc);\n                    }\n                    operator_delete(pGVar6,0xc);\n                  }\n                  operator_delete(pGVar5,0xc);\n                }\n                operator_delete(pGVar4,0xc);\n              }\n              operator_delete(pGVar3,0xc);\n            }" { (expression_statement "pGVar4 = pGVar3->got_next_;" (assignment_expression "pGVar4 = pGVar3->got_next_" identifier = (field_expression "pGVar3->got_next_" identifier -> field_identifier)) ;) (if_statement "if (pGVar4 != (Got_offset_list *)0x0) {\n                pGVar5 = pGVar4->got_next_;\n                if (pGVar5 != (Got_offset_list *)0x0) {\n                  pGVar6 = pGVar5->got_next_;\n                  if (pGVar6 != (Got_offset_list *)0x0) {\n                    this_00 = pGVar6->got_next_;\n                    if (this_00 != (Got_offset_list *)0x0) {\n                      Got_offset_list::~Got_offset_list(this_00,(int)__in_chrg);\n                      operator_delete(this_00,0xc);\n                    }\n                    operator_delete(pGVar6,0xc);\n                  }\n                  operator_delete(pGVar5,0xc);\n                }\n                operator_delete(pGVar4,0xc);\n              }" if (parenthesized_expression "(pGVar4 != (Got_offset_list *)0x0)" ( (binary_expression "pGVar4 != (Got_offset_list *)0x0" identifier != (cast_expression "(Got_offset_list *)0x0" ( (type_descriptor "Got_offset_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                pGVar5 = pGVar4->got_next_;\n                if (pGVar5 != (Got_offset_list *)0x0) {\n                  pGVar6 = pGVar5->got_next_;\n                  if (pGVar6 != (Got_offset_list *)0x0) {\n                    this_00 = pGVar6->got_next_;\n                    if (this_00 != (Got_offset_list *)0x0) {\n                      Got_offset_list::~Got_offset_list(this_00,(int)__in_chrg);\n                      operator_delete(this_00,0xc);\n                    }\n                    operator_delete(pGVar6,0xc);\n                  }\n                  operator_delete(pGVar5,0xc);\n                }\n                operator_delete(pGVar4,0xc);\n              }" { (expression_statement "pGVar5 = pGVar4->got_next_;" (assignment_expression "pGVar5 = pGVar4->got_next_" identifier = (field_expression "pGVar4->got_next_" identifier -> field_identifier)) ;) (if_statement "if (pGVar5 != (Got_offset_list *)0x0) {\n                  pGVar6 = pGVar5->got_next_;\n                  if (pGVar6 != (Got_offset_list *)0x0) {\n                    this_00 = pGVar6->got_next_;\n                    if (this_00 != (Got_offset_list *)0x0) {\n                      Got_offset_list::~Got_offset_list(this_00,(int)__in_chrg);\n                      operator_delete(this_00,0xc);\n                    }\n                    operator_delete(pGVar6,0xc);\n                  }\n                  operator_delete(pGVar5,0xc);\n                }" if (parenthesized_expression "(pGVar5 != (Got_offset_list *)0x0)" ( (binary_expression "pGVar5 != (Got_offset_list *)0x0" identifier != (cast_expression "(Got_offset_list *)0x0" ( (type_descriptor "Got_offset_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  pGVar6 = pGVar5->got_next_;\n                  if (pGVar6 != (Got_offset_list *)0x0) {\n                    this_00 = pGVar6->got_next_;\n                    if (this_00 != (Got_offset_list *)0x0) {\n                      Got_offset_list::~Got_offset_list(this_00,(int)__in_chrg);\n                      operator_delete(this_00,0xc);\n                    }\n                    operator_delete(pGVar6,0xc);\n                  }\n                  operator_delete(pGVar5,0xc);\n                }" { (expression_statement "pGVar6 = pGVar5->got_next_;" (assignment_expression "pGVar6 = pGVar5->got_next_" identifier = (field_expression "pGVar5->got_next_" identifier -> field_identifier)) ;) (if_statement "if (pGVar6 != (Got_offset_list *)0x0) {\n                    this_00 = pGVar6->got_next_;\n                    if (this_00 != (Got_offset_list *)0x0) {\n                      Got_offset_list::~Got_offset_list(this_00,(int)__in_chrg);\n                      operator_delete(this_00,0xc);\n                    }\n                    operator_delete(pGVar6,0xc);\n                  }" if (parenthesized_expression "(pGVar6 != (Got_offset_list *)0x0)" ( (binary_expression "pGVar6 != (Got_offset_list *)0x0" identifier != (cast_expression "(Got_offset_list *)0x0" ( (type_descriptor "Got_offset_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    this_00 = pGVar6->got_next_;\n                    if (this_00 != (Got_offset_list *)0x0) {\n                      Got_offset_list::~Got_offset_list(this_00,(int)__in_chrg);\n                      operator_delete(this_00,0xc);\n                    }\n                    operator_delete(pGVar6,0xc);\n                  }" { (expression_statement "this_00 = pGVar6->got_next_;" (assignment_expression "this_00 = pGVar6->got_next_" identifier = (field_expression "pGVar6->got_next_" identifier -> field_identifier)) ;) (if_statement "if (this_00 != (Got_offset_list *)0x0) {\n                      Got_offset_list::~Got_offset_list(this_00,(int)__in_chrg);\n                      operator_delete(this_00,0xc);\n                    }" if (parenthesized_expression "(this_00 != (Got_offset_list *)0x0)" ( (binary_expression "this_00 != (Got_offset_list *)0x0" identifier != (cast_expression "(Got_offset_list *)0x0" ( (type_descriptor "Got_offset_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                      Got_offset_list::~Got_offset_list(this_00,(int)__in_chrg);\n                      operator_delete(this_00,0xc);\n                    }" { (labeled_statement "Got_offset_list::~Got_offset_list(this_00,(int)__in_chrg);" statement_identifier : (ERROR ":" :) (expression_statement "~Got_offset_list(this_00,(int)__in_chrg);" (unary_expression "~Got_offset_list(this_00,(int)__in_chrg)" ~ (call_expression "Got_offset_list(this_00,(int)__in_chrg)" identifier (argument_list "(this_00,(int)__in_chrg)" ( identifier , (cast_expression "(int)__in_chrg" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;)) (expression_statement "operator_delete(this_00,0xc);" (call_expression "operator_delete(this_00,0xc)" identifier (argument_list "(this_00,0xc)" ( identifier , number_literal ))) ;) })) (expression_statement "operator_delete(pGVar6,0xc);" (call_expression "operator_delete(pGVar6,0xc)" identifier (argument_list "(pGVar6,0xc)" ( identifier , number_literal ))) ;) })) (expression_statement "operator_delete(pGVar5,0xc);" (call_expression "operator_delete(pGVar5,0xc)" identifier (argument_list "(pGVar5,0xc)" ( identifier , number_literal ))) ;) })) (expression_statement "operator_delete(pGVar4,0xc);" (call_expression "operator_delete(pGVar4,0xc)" identifier (argument_list "(pGVar4,0xc)" ( identifier , number_literal ))) ;) })) (expression_statement "operator_delete(pGVar3,0xc);" (call_expression "operator_delete(pGVar3,0xc)" identifier (argument_list "(pGVar3,0xc)" ( identifier , number_literal ))) ;) })) (expression_statement "operator_delete(pGVar2,0xc);" (call_expression "operator_delete(pGVar2,0xc)" identifier (argument_list "(pGVar2,0xc)" ( identifier , number_literal ))) ;) })) (expression_statement "operator_delete(this_01,0x38);" (call_expression "operator_delete(this_01,0x38)" identifier (argument_list "(this_01,0x38)" ( identifier , number_literal ))) ;) (expression_statement "this_01 = oldsym;" (assignment_expression "this_01 = oldsym" identifier = identifier) ;) })) }))) })) (return_statement "return this_01;" return identifier ;) })) comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x69,"target");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x69,"target")" identifier (argument_list "("../../gold/parameters.h",0x69,"target")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""target"" " string_content ") ))) ;) }))
(translation_unit "int FUN_001f4970(int param_1,int param_2,int param_3,int param_4,int param_5,undefined4 param_6,\n                undefined4 param_7,int param_8,undefined4 param_9,uint param_10,uint param_11,\n                undefined4 param_12)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  uint uVar4;\n  undefined4 uVar5;\n  char cVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  char *pcVar10;\n  int unaff_EBP;\n  int iVar11;\n  int iVar12;\n  char local_22;\n  char local_21;\n  int local_20 [4];\n  \n  FUN_000b4852();\n  uVar5 = param_12;\n  uVar4 = param_10;\n  iVar7 = *(int *)(*(int *)(unaff_EBP + 0x21fb72) + 0xc);\n  if (iVar7 == 0) {\n                    \n    FUN_000da200(unaff_EBP + 0xed8f7,0x69,&UNK_00118c1a + unaff_EBP,param_11);\n  }\n  pcVar10 = (char *)(uint)(param_8 == 0);\n  if (*(char *)(*(int *)(iVar7 + 4) + 4) == '\0') {\n    iVar7 = FUN_001f3d70(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10);\n  }\n  else {\n    iVar7 = FUN_001f2110(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10);\n  }\n  if (iVar7 == 0) {\n    return 0;\n  }\n  FUN_001ea6f0(iVar7,param_2,param_3,param_5,param_6,param_7,param_8,param_9,uVar4 & 0xff,\n               param_4 == 5);\n  if (local_20[0] == 0) {\n    if (((param_3 != 0) && (param_2 == param_3)) && (param_5 == 0)) {\n      return iVar7;\n    }\n    if ((param_8 != 0) &&\n       ((cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,&local_21), cVar6 == '\0'\n        || (local_21 != '\0')))) {\n      if (param_3 == 0) {\n        return iVar7;\n      }\n      if ((param_2 == param_3) && (param_5 == 0)) {\n        return iVar7;\n      }\n      *(byte *)(iVar7 + 0x2a) = *(byte *)(iVar7 + 0x2a) | 8;\n      return iVar7;\n    }\n    FUN_001e7570(param_1,iVar7);\n    return iVar7;\n  }\n  if (((char)uVar5 != '\0') ||\n     (iVar11 = param_4, cVar6 = FUN_001c60d0(local_20[0],param_7,param_4), cVar6 != '\0')) {\n    iVar11 = iVar7;\n    FUN_001c7460(param_1,local_20[0],iVar7);\n  }\n  if (local_22 != '\0') {\n    return iVar7;\n  }\n  if (param_8 != 0) {\n    pcVar10 = &local_21;\n    iVar11 = 0;\n    cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,pcVar10);\n    if ((cVar6 == '\0') || (local_21 != '\0')) goto LAB_001f4a82;\n  }\n  FUN_001e7570(param_1,local_20[0]);\nLAB_001f4a82:\n  iVar1 = *(int *)(iVar7 + 0x24);\n  if (iVar1 != 0) {\n    iVar9 = *(int *)(iVar1 + 8);\n    if (iVar9 != 0) {\n      iVar8 = *(int *)(iVar9 + 8);\n      if (iVar8 != 0) {\n        iVar2 = *(int *)(iVar8 + 8);\n        if (iVar2 != 0) {\n          iVar12 = *(int *)(iVar2 + 8);\n          if (iVar12 != 0) {\n            iVar3 = *(int *)(iVar12 + 8);\n            if (iVar3 != 0) {\n              FUN_001ea5b0(iVar3);\n              FUN_00248200(iVar3,0xc);\n            }\n            FUN_00248200(iVar12,0xc);\n          }\n          FUN_00248200(iVar2,0xc,iVar11,pcVar10,iVar9,iVar8);\n        }\n        FUN_00248200(iVar8,0xc,iVar11,pcVar10,iVar9);\n      }\n      FUN_00248200(iVar9,0xc);\n    }\n    FUN_00248200(iVar1,0xc);\n  }\n  FUN_00248200(iVar7,0x38);\n  return local_20[0];\n}\n\n" (function_definition "int FUN_001f4970(int param_1,int param_2,int param_3,int param_4,int param_5,undefined4 param_6,\n                undefined4 param_7,int param_8,undefined4 param_9,uint param_10,uint param_11,\n                undefined4 param_12)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  uint uVar4;\n  undefined4 uVar5;\n  char cVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  char *pcVar10;\n  int unaff_EBP;\n  int iVar11;\n  int iVar12;\n  char local_22;\n  char local_21;\n  int local_20 [4];\n  \n  FUN_000b4852();\n  uVar5 = param_12;\n  uVar4 = param_10;\n  iVar7 = *(int *)(*(int *)(unaff_EBP + 0x21fb72) + 0xc);\n  if (iVar7 == 0) {\n                    \n    FUN_000da200(unaff_EBP + 0xed8f7,0x69,&UNK_00118c1a + unaff_EBP,param_11);\n  }\n  pcVar10 = (char *)(uint)(param_8 == 0);\n  if (*(char *)(*(int *)(iVar7 + 4) + 4) == '\0') {\n    iVar7 = FUN_001f3d70(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10);\n  }\n  else {\n    iVar7 = FUN_001f2110(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10);\n  }\n  if (iVar7 == 0) {\n    return 0;\n  }\n  FUN_001ea6f0(iVar7,param_2,param_3,param_5,param_6,param_7,param_8,param_9,uVar4 & 0xff,\n               param_4 == 5);\n  if (local_20[0] == 0) {\n    if (((param_3 != 0) && (param_2 == param_3)) && (param_5 == 0)) {\n      return iVar7;\n    }\n    if ((param_8 != 0) &&\n       ((cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,&local_21), cVar6 == '\0'\n        || (local_21 != '\0')))) {\n      if (param_3 == 0) {\n        return iVar7;\n      }\n      if ((param_2 == param_3) && (param_5 == 0)) {\n        return iVar7;\n      }\n      *(byte *)(iVar7 + 0x2a) = *(byte *)(iVar7 + 0x2a) | 8;\n      return iVar7;\n    }\n    FUN_001e7570(param_1,iVar7);\n    return iVar7;\n  }\n  if (((char)uVar5 != '\0') ||\n     (iVar11 = param_4, cVar6 = FUN_001c60d0(local_20[0],param_7,param_4), cVar6 != '\0')) {\n    iVar11 = iVar7;\n    FUN_001c7460(param_1,local_20[0],iVar7);\n  }\n  if (local_22 != '\0') {\n    return iVar7;\n  }\n  if (param_8 != 0) {\n    pcVar10 = &local_21;\n    iVar11 = 0;\n    cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,pcVar10);\n    if ((cVar6 == '\0') || (local_21 != '\0')) goto LAB_001f4a82;\n  }\n  FUN_001e7570(param_1,local_20[0]);\nLAB_001f4a82:\n  iVar1 = *(int *)(iVar7 + 0x24);\n  if (iVar1 != 0) {\n    iVar9 = *(int *)(iVar1 + 8);\n    if (iVar9 != 0) {\n      iVar8 = *(int *)(iVar9 + 8);\n      if (iVar8 != 0) {\n        iVar2 = *(int *)(iVar8 + 8);\n        if (iVar2 != 0) {\n          iVar12 = *(int *)(iVar2 + 8);\n          if (iVar12 != 0) {\n            iVar3 = *(int *)(iVar12 + 8);\n            if (iVar3 != 0) {\n              FUN_001ea5b0(iVar3);\n              FUN_00248200(iVar3,0xc);\n            }\n            FUN_00248200(iVar12,0xc);\n          }\n          FUN_00248200(iVar2,0xc,iVar11,pcVar10,iVar9,iVar8);\n        }\n        FUN_00248200(iVar8,0xc,iVar11,pcVar10,iVar9);\n      }\n      FUN_00248200(iVar9,0xc);\n    }\n    FUN_00248200(iVar1,0xc);\n  }\n  FUN_00248200(iVar7,0x38);\n  return local_20[0];\n}" primitive_type (function_declarator "FUN_001f4970(int param_1,int param_2,int param_3,int param_4,int param_5,undefined4 param_6,\n                undefined4 param_7,int param_8,undefined4 param_9,uint param_10,uint param_11,\n                undefined4 param_12)" identifier (parameter_list "(int param_1,int param_2,int param_3,int param_4,int param_5,undefined4 param_6,\n                undefined4 param_7,int param_8,undefined4 param_9,uint param_10,uint param_11,\n                undefined4 param_12)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "undefined4 param_6" type_identifier identifier) , (parameter_declaration "undefined4 param_7" type_identifier identifier) , (parameter_declaration "int param_8" primitive_type identifier) , (parameter_declaration "undefined4 param_9" type_identifier identifier) , (parameter_declaration "uint param_10" type_identifier identifier) , (parameter_declaration "uint param_11" type_identifier identifier) , (parameter_declaration "undefined4 param_12" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  uint uVar4;\n  undefined4 uVar5;\n  char cVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  char *pcVar10;\n  int unaff_EBP;\n  int iVar11;\n  int iVar12;\n  char local_22;\n  char local_21;\n  int local_20 [4];\n  \n  FUN_000b4852();\n  uVar5 = param_12;\n  uVar4 = param_10;\n  iVar7 = *(int *)(*(int *)(unaff_EBP + 0x21fb72) + 0xc);\n  if (iVar7 == 0) {\n                    \n    FUN_000da200(unaff_EBP + 0xed8f7,0x69,&UNK_00118c1a + unaff_EBP,param_11);\n  }\n  pcVar10 = (char *)(uint)(param_8 == 0);\n  if (*(char *)(*(int *)(iVar7 + 4) + 4) == '\0') {\n    iVar7 = FUN_001f3d70(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10);\n  }\n  else {\n    iVar7 = FUN_001f2110(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10);\n  }\n  if (iVar7 == 0) {\n    return 0;\n  }\n  FUN_001ea6f0(iVar7,param_2,param_3,param_5,param_6,param_7,param_8,param_9,uVar4 & 0xff,\n               param_4 == 5);\n  if (local_20[0] == 0) {\n    if (((param_3 != 0) && (param_2 == param_3)) && (param_5 == 0)) {\n      return iVar7;\n    }\n    if ((param_8 != 0) &&\n       ((cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,&local_21), cVar6 == '\0'\n        || (local_21 != '\0')))) {\n      if (param_3 == 0) {\n        return iVar7;\n      }\n      if ((param_2 == param_3) && (param_5 == 0)) {\n        return iVar7;\n      }\n      *(byte *)(iVar7 + 0x2a) = *(byte *)(iVar7 + 0x2a) | 8;\n      return iVar7;\n    }\n    FUN_001e7570(param_1,iVar7);\n    return iVar7;\n  }\n  if (((char)uVar5 != '\0') ||\n     (iVar11 = param_4, cVar6 = FUN_001c60d0(local_20[0],param_7,param_4), cVar6 != '\0')) {\n    iVar11 = iVar7;\n    FUN_001c7460(param_1,local_20[0],iVar7);\n  }\n  if (local_22 != '\0') {\n    return iVar7;\n  }\n  if (param_8 != 0) {\n    pcVar10 = &local_21;\n    iVar11 = 0;\n    cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,pcVar10);\n    if ((cVar6 == '\0') || (local_21 != '\0')) goto LAB_001f4a82;\n  }\n  FUN_001e7570(param_1,local_20[0]);\nLAB_001f4a82:\n  iVar1 = *(int *)(iVar7 + 0x24);\n  if (iVar1 != 0) {\n    iVar9 = *(int *)(iVar1 + 8);\n    if (iVar9 != 0) {\n      iVar8 = *(int *)(iVar9 + 8);\n      if (iVar8 != 0) {\n        iVar2 = *(int *)(iVar8 + 8);\n        if (iVar2 != 0) {\n          iVar12 = *(int *)(iVar2 + 8);\n          if (iVar12 != 0) {\n            iVar3 = *(int *)(iVar12 + 8);\n            if (iVar3 != 0) {\n              FUN_001ea5b0(iVar3);\n              FUN_00248200(iVar3,0xc);\n            }\n            FUN_00248200(iVar12,0xc);\n          }\n          FUN_00248200(iVar2,0xc,iVar11,pcVar10,iVar9,iVar8);\n        }\n        FUN_00248200(iVar8,0xc,iVar11,pcVar10,iVar9);\n      }\n      FUN_00248200(iVar9,0xc);\n    }\n    FUN_00248200(iVar1,0xc);\n  }\n  FUN_00248200(iVar7,0x38);\n  return local_20[0];\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "char cVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "int unaff_EBP;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "char local_22;" primitive_type identifier ;) (declaration "char local_21;" primitive_type identifier ;) (declaration "int local_20 [4];" primitive_type (array_declarator "local_20 [4]" identifier [ number_literal ]) ;) (expression_statement "FUN_000b4852();" (call_expression "FUN_000b4852()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar5 = param_12;" (assignment_expression "uVar5 = param_12" identifier = identifier) ;) (expression_statement "uVar4 = param_10;" (assignment_expression "uVar4 = param_10" identifier = identifier) ;) (expression_statement "iVar7 = *(int *)(*(int *)(unaff_EBP + 0x21fb72) + 0xc);" (assignment_expression "iVar7 = *(int *)(*(int *)(unaff_EBP + 0x21fb72) + 0xc)" identifier = (pointer_expression "*(int *)(*(int *)(unaff_EBP + 0x21fb72) + 0xc)" * (cast_expression "(int *)(*(int *)(unaff_EBP + 0x21fb72) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(unaff_EBP + 0x21fb72) + 0xc)" ( (binary_expression "*(int *)(unaff_EBP + 0x21fb72) + 0xc" (pointer_expression "*(int *)(unaff_EBP + 0x21fb72)" * (cast_expression "(int *)(unaff_EBP + 0x21fb72)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x21fb72)" ( (binary_expression "unaff_EBP + 0x21fb72" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (iVar7 == 0) {\n                    \n    FUN_000da200(unaff_EBP + 0xed8f7,0x69,&UNK_00118c1a + unaff_EBP,param_11);\n  }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    FUN_000da200(unaff_EBP + 0xed8f7,0x69,&UNK_00118c1a + unaff_EBP,param_11);\n  }" { (expression_statement "FUN_000da200(unaff_EBP + 0xed8f7,0x69,&UNK_00118c1a + unaff_EBP,param_11);" (call_expression "FUN_000da200(unaff_EBP + 0xed8f7,0x69,&UNK_00118c1a + unaff_EBP,param_11)" identifier (argument_list "(unaff_EBP + 0xed8f7,0x69,&UNK_00118c1a + unaff_EBP,param_11)" ( (binary_expression "unaff_EBP + 0xed8f7" identifier + number_literal) , number_literal , (binary_expression "&UNK_00118c1a + unaff_EBP" (pointer_expression "&UNK_00118c1a" & identifier) + identifier) , identifier ))) ;) })) (expression_statement "pcVar10 = (char *)(uint)(param_8 == 0);" (assignment_expression "pcVar10 = (char *)(uint)(param_8 == 0)" identifier = (cast_expression "(char *)(uint)(param_8 == 0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(param_8 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_8 == 0)" ( (binary_expression "param_8 == 0" identifier == number_literal) ))))) ;) (if_statement "if (*(char *)(*(int *)(iVar7 + 4) + 4) == '\0') {\n    iVar7 = FUN_001f3d70(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10);\n  }\n  else {\n    iVar7 = FUN_001f2110(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10);\n  }" if (parenthesized_expression "(*(char *)(*(int *)(iVar7 + 4) + 4) == '\0')" ( (binary_expression "*(char *)(*(int *)(iVar7 + 4) + 4) == '\0'" (pointer_expression "*(char *)(*(int *)(iVar7 + 4) + 4)" * (cast_expression "(char *)(*(int *)(iVar7 + 4) + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar7 + 4) + 4)" ( (binary_expression "*(int *)(iVar7 + 4) + 4" (pointer_expression "*(int *)(iVar7 + 4)" * (cast_expression "(int *)(iVar7 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar7 = FUN_001f3d70(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10);\n  }" { (expression_statement "iVar7 = FUN_001f3d70(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10);" (assignment_expression "iVar7 = FUN_001f3d70(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10)" identifier = (call_expression "FUN_001f3d70(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10)" identifier (argument_list "(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10)" ( identifier , (pointer_expression "&param_2" & identifier) , (pointer_expression "&param_3" & identifier) , (binary_expression "param_11 & 0xff" identifier & number_literal) , identifier , identifier , (pointer_expression "&local_22" & identifier) , identifier )))) ;) }) (else_clause "else {\n    iVar7 = FUN_001f2110(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10);\n  }" else (compound_statement "{\n    iVar7 = FUN_001f2110(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10);\n  }" { (expression_statement "iVar7 = FUN_001f2110(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10);" (assignment_expression "iVar7 = FUN_001f2110(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10)" identifier = (call_expression "FUN_001f2110(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10)" identifier (argument_list "(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10)" ( identifier , (pointer_expression "&param_2" & identifier) , (pointer_expression "&param_3" & identifier) , (binary_expression "param_11 & 0xff" identifier & number_literal) , identifier , identifier , (pointer_expression "&local_22" & identifier) , identifier )))) ;) }))) (if_statement "if (iVar7 == 0) {\n    return 0;\n  }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "FUN_001ea6f0(iVar7,param_2,param_3,param_5,param_6,param_7,param_8,param_9,uVar4 & 0xff,\n               param_4 == 5);" (call_expression "FUN_001ea6f0(iVar7,param_2,param_3,param_5,param_6,param_7,param_8,param_9,uVar4 & 0xff,\n               param_4 == 5)" identifier (argument_list "(iVar7,param_2,param_3,param_5,param_6,param_7,param_8,param_9,uVar4 & 0xff,\n               param_4 == 5)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , (binary_expression "uVar4 & 0xff" identifier & number_literal) , (binary_expression "param_4 == 5" identifier == number_literal) ))) ;) (if_statement "if (local_20[0] == 0) {\n    if (((param_3 != 0) && (param_2 == param_3)) && (param_5 == 0)) {\n      return iVar7;\n    }\n    if ((param_8 != 0) &&\n       ((cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,&local_21), cVar6 == '\0'\n        || (local_21 != '\0')))) {\n      if (param_3 == 0) {\n        return iVar7;\n      }\n      if ((param_2 == param_3) && (param_5 == 0)) {\n        return iVar7;\n      }\n      *(byte *)(iVar7 + 0x2a) = *(byte *)(iVar7 + 0x2a) | 8;\n      return iVar7;\n    }\n    FUN_001e7570(param_1,iVar7);\n    return iVar7;\n  }" if (parenthesized_expression "(local_20[0] == 0)" ( (binary_expression "local_20[0] == 0" (subscript_expression "local_20[0]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    if (((param_3 != 0) && (param_2 == param_3)) && (param_5 == 0)) {\n      return iVar7;\n    }\n    if ((param_8 != 0) &&\n       ((cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,&local_21), cVar6 == '\0'\n        || (local_21 != '\0')))) {\n      if (param_3 == 0) {\n        return iVar7;\n      }\n      if ((param_2 == param_3) && (param_5 == 0)) {\n        return iVar7;\n      }\n      *(byte *)(iVar7 + 0x2a) = *(byte *)(iVar7 + 0x2a) | 8;\n      return iVar7;\n    }\n    FUN_001e7570(param_1,iVar7);\n    return iVar7;\n  }" { (if_statement "if (((param_3 != 0) && (param_2 == param_3)) && (param_5 == 0)) {\n      return iVar7;\n    }" if (parenthesized_expression "(((param_3 != 0) && (param_2 == param_3)) && (param_5 == 0))" ( (binary_expression "((param_3 != 0) && (param_2 == param_3)) && (param_5 == 0)" (parenthesized_expression "((param_3 != 0) && (param_2 == param_3))" ( (binary_expression "(param_3 != 0) && (param_2 == param_3)" (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) && (parenthesized_expression "(param_2 == param_3)" ( (binary_expression "param_2 == param_3" identifier == identifier) ))) )) && (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) ))) )) (compound_statement "{\n      return iVar7;\n    }" { (return_statement "return iVar7;" return identifier ;) })) (if_statement "if ((param_8 != 0) &&\n       ((cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,&local_21), cVar6 == '\0'\n        || (local_21 != '\0')))) {\n      if (param_3 == 0) {\n        return iVar7;\n      }\n      if ((param_2 == param_3) && (param_5 == 0)) {\n        return iVar7;\n      }\n      *(byte *)(iVar7 + 0x2a) = *(byte *)(iVar7 + 0x2a) | 8;\n      return iVar7;\n    }" if (parenthesized_expression "((param_8 != 0) &&\n       ((cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,&local_21), cVar6 == '\0'\n        || (local_21 != '\0'))))" ( (binary_expression "(param_8 != 0) &&\n       ((cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,&local_21), cVar6 == '\0'\n        || (local_21 != '\0')))" (parenthesized_expression "(param_8 != 0)" ( (binary_expression "param_8 != 0" identifier != number_literal) )) && (parenthesized_expression "((cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,&local_21), cVar6 == '\0'\n        || (local_21 != '\0')))" ( (parenthesized_expression "(cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,&local_21), cVar6 == '\0'\n        || (local_21 != '\0'))" ( (comma_expression "cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,&local_21), cVar6 == '\0'\n        || (local_21 != '\0')" (assignment_expression "cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,&local_21)" identifier = (call_expression "FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,&local_21)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x154),param_2,0,&local_21)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x154)" * (cast_expression "(undefined4 *)(param_1 + 0x154)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x154)" ( (binary_expression "param_1 + 0x154" identifier + number_literal) )))) , identifier , number_literal , (pointer_expression "&local_21" & identifier) )))) , (binary_expression "cVar6 == '\0'\n        || (local_21 != '\0')" (binary_expression "cVar6 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "(local_21 != '\0')" ( (binary_expression "local_21 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )))) )) ))) )) (compound_statement "{\n      if (param_3 == 0) {\n        return iVar7;\n      }\n      if ((param_2 == param_3) && (param_5 == 0)) {\n        return iVar7;\n      }\n      *(byte *)(iVar7 + 0x2a) = *(byte *)(iVar7 + 0x2a) | 8;\n      return iVar7;\n    }" { (if_statement "if (param_3 == 0) {\n        return iVar7;\n      }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n        return iVar7;\n      }" { (return_statement "return iVar7;" return identifier ;) })) (if_statement "if ((param_2 == param_3) && (param_5 == 0)) {\n        return iVar7;\n      }" if (parenthesized_expression "((param_2 == param_3) && (param_5 == 0))" ( (binary_expression "(param_2 == param_3) && (param_5 == 0)" (parenthesized_expression "(param_2 == param_3)" ( (binary_expression "param_2 == param_3" identifier == identifier) )) && (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) ))) )) (compound_statement "{\n        return iVar7;\n      }" { (return_statement "return iVar7;" return identifier ;) })) (expression_statement "*(byte *)(iVar7 + 0x2a) = *(byte *)(iVar7 + 0x2a) | 8;" (assignment_expression "*(byte *)(iVar7 + 0x2a) = *(byte *)(iVar7 + 0x2a) | 8" (pointer_expression "*(byte *)(iVar7 + 0x2a)" * (cast_expression "(byte *)(iVar7 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x2a)" ( (binary_expression "iVar7 + 0x2a" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar7 + 0x2a) | 8" (pointer_expression "*(byte *)(iVar7 + 0x2a)" * (cast_expression "(byte *)(iVar7 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x2a)" ( (binary_expression "iVar7 + 0x2a" identifier + number_literal) )))) | number_literal)) ;) (return_statement "return iVar7;" return identifier ;) })) (expression_statement "FUN_001e7570(param_1,iVar7);" (call_expression "FUN_001e7570(param_1,iVar7)" identifier (argument_list "(param_1,iVar7)" ( identifier , identifier ))) ;) (return_statement "return iVar7;" return identifier ;) })) (if_statement "if (((char)uVar5 != '\0') ||\n     (iVar11 = param_4, cVar6 = FUN_001c60d0(local_20[0],param_7,param_4), cVar6 != '\0')) {\n    iVar11 = iVar7;\n    FUN_001c7460(param_1,local_20[0],iVar7);\n  }" if (parenthesized_expression "(((char)uVar5 != '\0') ||\n     (iVar11 = param_4, cVar6 = FUN_001c60d0(local_20[0],param_7,param_4), cVar6 != '\0'))" ( (binary_expression "((char)uVar5 != '\0') ||\n     (iVar11 = param_4, cVar6 = FUN_001c60d0(local_20[0],param_7,param_4), cVar6 != '\0')" (parenthesized_expression "((char)uVar5 != '\0')" ( (binary_expression "(char)uVar5 != '\0'" (cast_expression "(char)uVar5" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(iVar11 = param_4, cVar6 = FUN_001c60d0(local_20[0],param_7,param_4), cVar6 != '\0')" ( (comma_expression "iVar11 = param_4, cVar6 = FUN_001c60d0(local_20[0],param_7,param_4), cVar6 != '\0'" (assignment_expression "iVar11 = param_4" identifier = identifier) , (comma_expression "cVar6 = FUN_001c60d0(local_20[0],param_7,param_4), cVar6 != '\0'" (assignment_expression "cVar6 = FUN_001c60d0(local_20[0],param_7,param_4)" identifier = (call_expression "FUN_001c60d0(local_20[0],param_7,param_4)" identifier (argument_list "(local_20[0],param_7,param_4)" ( (subscript_expression "local_20[0]" identifier [ number_literal ]) , identifier , identifier )))) , (binary_expression "cVar6 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')))) ))) )) (compound_statement "{\n    iVar11 = iVar7;\n    FUN_001c7460(param_1,local_20[0],iVar7);\n  }" { (expression_statement "iVar11 = iVar7;" (assignment_expression "iVar11 = iVar7" identifier = identifier) ;) (expression_statement "FUN_001c7460(param_1,local_20[0],iVar7);" (call_expression "FUN_001c7460(param_1,local_20[0],iVar7)" identifier (argument_list "(param_1,local_20[0],iVar7)" ( identifier , (subscript_expression "local_20[0]" identifier [ number_literal ]) , identifier ))) ;) })) (if_statement "if (local_22 != '\0') {\n    return iVar7;\n  }" if (parenthesized_expression "(local_22 != '\0')" ( (binary_expression "local_22 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    return iVar7;\n  }" { (return_statement "return iVar7;" return identifier ;) })) (if_statement "if (param_8 != 0) {\n    pcVar10 = &local_21;\n    iVar11 = 0;\n    cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,pcVar10);\n    if ((cVar6 == '\0') || (local_21 != '\0')) goto LAB_001f4a82;\n  }" if (parenthesized_expression "(param_8 != 0)" ( (binary_expression "param_8 != 0" identifier != number_literal) )) (compound_statement "{\n    pcVar10 = &local_21;\n    iVar11 = 0;\n    cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,pcVar10);\n    if ((cVar6 == '\0') || (local_21 != '\0')) goto LAB_001f4a82;\n  }" { (expression_statement "pcVar10 = &local_21;" (assignment_expression "pcVar10 = &local_21" identifier = (pointer_expression "&local_21" & identifier)) ;) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (expression_statement "cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,pcVar10);" (assignment_expression "cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,pcVar10)" identifier = (call_expression "FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,pcVar10)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x154),param_2,0,pcVar10)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x154)" * (cast_expression "(undefined4 *)(param_1 + 0x154)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x154)" ( (binary_expression "param_1 + 0x154" identifier + number_literal) )))) , identifier , number_literal , identifier )))) ;) (if_statement "if ((cVar6 == '\0') || (local_21 != '\0')) goto LAB_001f4a82;" if (parenthesized_expression "((cVar6 == '\0') || (local_21 != '\0'))" ( (binary_expression "(cVar6 == '\0') || (local_21 != '\0')" (parenthesized_expression "(cVar6 == '\0')" ( (binary_expression "cVar6 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(local_21 != '\0')" ( (binary_expression "local_21 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_001f4a82;" goto statement_identifier ;)) })) (expression_statement "FUN_001e7570(param_1,local_20[0]);" (call_expression "FUN_001e7570(param_1,local_20[0])" identifier (argument_list "(param_1,local_20[0])" ( identifier , (subscript_expression "local_20[0]" identifier [ number_literal ]) ))) ;) (labeled_statement "LAB_001f4a82:\n  iVar1 = *(int *)(iVar7 + 0x24);" statement_identifier : (expression_statement "iVar1 = *(int *)(iVar7 + 0x24);" (assignment_expression "iVar1 = *(int *)(iVar7 + 0x24)" identifier = (pointer_expression "*(int *)(iVar7 + 0x24)" * (cast_expression "(int *)(iVar7 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x24)" ( (binary_expression "iVar7 + 0x24" identifier + number_literal) ))))) ;)) (if_statement "if (iVar1 != 0) {\n    iVar9 = *(int *)(iVar1 + 8);\n    if (iVar9 != 0) {\n      iVar8 = *(int *)(iVar9 + 8);\n      if (iVar8 != 0) {\n        iVar2 = *(int *)(iVar8 + 8);\n        if (iVar2 != 0) {\n          iVar12 = *(int *)(iVar2 + 8);\n          if (iVar12 != 0) {\n            iVar3 = *(int *)(iVar12 + 8);\n            if (iVar3 != 0) {\n              FUN_001ea5b0(iVar3);\n              FUN_00248200(iVar3,0xc);\n            }\n            FUN_00248200(iVar12,0xc);\n          }\n          FUN_00248200(iVar2,0xc,iVar11,pcVar10,iVar9,iVar8);\n        }\n        FUN_00248200(iVar8,0xc,iVar11,pcVar10,iVar9);\n      }\n      FUN_00248200(iVar9,0xc);\n    }\n    FUN_00248200(iVar1,0xc);\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar9 = *(int *)(iVar1 + 8);\n    if (iVar9 != 0) {\n      iVar8 = *(int *)(iVar9 + 8);\n      if (iVar8 != 0) {\n        iVar2 = *(int *)(iVar8 + 8);\n        if (iVar2 != 0) {\n          iVar12 = *(int *)(iVar2 + 8);\n          if (iVar12 != 0) {\n            iVar3 = *(int *)(iVar12 + 8);\n            if (iVar3 != 0) {\n              FUN_001ea5b0(iVar3);\n              FUN_00248200(iVar3,0xc);\n            }\n            FUN_00248200(iVar12,0xc);\n          }\n          FUN_00248200(iVar2,0xc,iVar11,pcVar10,iVar9,iVar8);\n        }\n        FUN_00248200(iVar8,0xc,iVar11,pcVar10,iVar9);\n      }\n      FUN_00248200(iVar9,0xc);\n    }\n    FUN_00248200(iVar1,0xc);\n  }" { (expression_statement "iVar9 = *(int *)(iVar1 + 8);" (assignment_expression "iVar9 = *(int *)(iVar1 + 8)" identifier = (pointer_expression "*(int *)(iVar1 + 8)" * (cast_expression "(int *)(iVar1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 8)" ( (binary_expression "iVar1 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar9 != 0) {\n      iVar8 = *(int *)(iVar9 + 8);\n      if (iVar8 != 0) {\n        iVar2 = *(int *)(iVar8 + 8);\n        if (iVar2 != 0) {\n          iVar12 = *(int *)(iVar2 + 8);\n          if (iVar12 != 0) {\n            iVar3 = *(int *)(iVar12 + 8);\n            if (iVar3 != 0) {\n              FUN_001ea5b0(iVar3);\n              FUN_00248200(iVar3,0xc);\n            }\n            FUN_00248200(iVar12,0xc);\n          }\n          FUN_00248200(iVar2,0xc,iVar11,pcVar10,iVar9,iVar8);\n        }\n        FUN_00248200(iVar8,0xc,iVar11,pcVar10,iVar9);\n      }\n      FUN_00248200(iVar9,0xc);\n    }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar8 = *(int *)(iVar9 + 8);\n      if (iVar8 != 0) {\n        iVar2 = *(int *)(iVar8 + 8);\n        if (iVar2 != 0) {\n          iVar12 = *(int *)(iVar2 + 8);\n          if (iVar12 != 0) {\n            iVar3 = *(int *)(iVar12 + 8);\n            if (iVar3 != 0) {\n              FUN_001ea5b0(iVar3);\n              FUN_00248200(iVar3,0xc);\n            }\n            FUN_00248200(iVar12,0xc);\n          }\n          FUN_00248200(iVar2,0xc,iVar11,pcVar10,iVar9,iVar8);\n        }\n        FUN_00248200(iVar8,0xc,iVar11,pcVar10,iVar9);\n      }\n      FUN_00248200(iVar9,0xc);\n    }" { (expression_statement "iVar8 = *(int *)(iVar9 + 8);" (assignment_expression "iVar8 = *(int *)(iVar9 + 8)" identifier = (pointer_expression "*(int *)(iVar9 + 8)" * (cast_expression "(int *)(iVar9 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 8)" ( (binary_expression "iVar9 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 != 0) {\n        iVar2 = *(int *)(iVar8 + 8);\n        if (iVar2 != 0) {\n          iVar12 = *(int *)(iVar2 + 8);\n          if (iVar12 != 0) {\n            iVar3 = *(int *)(iVar12 + 8);\n            if (iVar3 != 0) {\n              FUN_001ea5b0(iVar3);\n              FUN_00248200(iVar3,0xc);\n            }\n            FUN_00248200(iVar12,0xc);\n          }\n          FUN_00248200(iVar2,0xc,iVar11,pcVar10,iVar9,iVar8);\n        }\n        FUN_00248200(iVar8,0xc,iVar11,pcVar10,iVar9);\n      }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar2 = *(int *)(iVar8 + 8);\n        if (iVar2 != 0) {\n          iVar12 = *(int *)(iVar2 + 8);\n          if (iVar12 != 0) {\n            iVar3 = *(int *)(iVar12 + 8);\n            if (iVar3 != 0) {\n              FUN_001ea5b0(iVar3);\n              FUN_00248200(iVar3,0xc);\n            }\n            FUN_00248200(iVar12,0xc);\n          }\n          FUN_00248200(iVar2,0xc,iVar11,pcVar10,iVar9,iVar8);\n        }\n        FUN_00248200(iVar8,0xc,iVar11,pcVar10,iVar9);\n      }" { (expression_statement "iVar2 = *(int *)(iVar8 + 8);" (assignment_expression "iVar2 = *(int *)(iVar8 + 8)" identifier = (pointer_expression "*(int *)(iVar8 + 8)" * (cast_expression "(int *)(iVar8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar2 != 0) {\n          iVar12 = *(int *)(iVar2 + 8);\n          if (iVar12 != 0) {\n            iVar3 = *(int *)(iVar12 + 8);\n            if (iVar3 != 0) {\n              FUN_001ea5b0(iVar3);\n              FUN_00248200(iVar3,0xc);\n            }\n            FUN_00248200(iVar12,0xc);\n          }\n          FUN_00248200(iVar2,0xc,iVar11,pcVar10,iVar9,iVar8);\n        }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar12 = *(int *)(iVar2 + 8);\n          if (iVar12 != 0) {\n            iVar3 = *(int *)(iVar12 + 8);\n            if (iVar3 != 0) {\n              FUN_001ea5b0(iVar3);\n              FUN_00248200(iVar3,0xc);\n            }\n            FUN_00248200(iVar12,0xc);\n          }\n          FUN_00248200(iVar2,0xc,iVar11,pcVar10,iVar9,iVar8);\n        }" { (expression_statement "iVar12 = *(int *)(iVar2 + 8);" (assignment_expression "iVar12 = *(int *)(iVar2 + 8)" identifier = (pointer_expression "*(int *)(iVar2 + 8)" * (cast_expression "(int *)(iVar2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar12 != 0) {\n            iVar3 = *(int *)(iVar12 + 8);\n            if (iVar3 != 0) {\n              FUN_001ea5b0(iVar3);\n              FUN_00248200(iVar3,0xc);\n            }\n            FUN_00248200(iVar12,0xc);\n          }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n            iVar3 = *(int *)(iVar12 + 8);\n            if (iVar3 != 0) {\n              FUN_001ea5b0(iVar3);\n              FUN_00248200(iVar3,0xc);\n            }\n            FUN_00248200(iVar12,0xc);\n          }" { (expression_statement "iVar3 = *(int *)(iVar12 + 8);" (assignment_expression "iVar3 = *(int *)(iVar12 + 8)" identifier = (pointer_expression "*(int *)(iVar12 + 8)" * (cast_expression "(int *)(iVar12 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 8)" ( (binary_expression "iVar12 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 != 0) {\n              FUN_001ea5b0(iVar3);\n              FUN_00248200(iVar3,0xc);\n            }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n              FUN_001ea5b0(iVar3);\n              FUN_00248200(iVar3,0xc);\n            }" { (expression_statement "FUN_001ea5b0(iVar3);" (call_expression "FUN_001ea5b0(iVar3)" identifier (argument_list "(iVar3)" ( identifier ))) ;) (expression_statement "FUN_00248200(iVar3,0xc);" (call_expression "FUN_00248200(iVar3,0xc)" identifier (argument_list "(iVar3,0xc)" ( identifier , number_literal ))) ;) })) (expression_statement "FUN_00248200(iVar12,0xc);" (call_expression "FUN_00248200(iVar12,0xc)" identifier (argument_list "(iVar12,0xc)" ( identifier , number_literal ))) ;) })) (expression_statement "FUN_00248200(iVar2,0xc,iVar11,pcVar10,iVar9,iVar8);" (call_expression "FUN_00248200(iVar2,0xc,iVar11,pcVar10,iVar9,iVar8)" identifier (argument_list "(iVar2,0xc,iVar11,pcVar10,iVar9,iVar8)" ( identifier , number_literal , identifier , identifier , identifier , identifier ))) ;) })) (expression_statement "FUN_00248200(iVar8,0xc,iVar11,pcVar10,iVar9);" (call_expression "FUN_00248200(iVar8,0xc,iVar11,pcVar10,iVar9)" identifier (argument_list "(iVar8,0xc,iVar11,pcVar10,iVar9)" ( identifier , number_literal , identifier , identifier , identifier ))) ;) })) (expression_statement "FUN_00248200(iVar9,0xc);" (call_expression "FUN_00248200(iVar9,0xc)" identifier (argument_list "(iVar9,0xc)" ( identifier , number_literal ))) ;) })) (expression_statement "FUN_00248200(iVar1,0xc);" (call_expression "FUN_00248200(iVar1,0xc)" identifier (argument_list "(iVar1,0xc)" ( identifier , number_literal ))) ;) })) (expression_statement "FUN_00248200(iVar7,0x38);" (call_expression "FUN_00248200(iVar7,0x38)" identifier (argument_list "(iVar7,0x38)" ( identifier , number_literal ))) ;) (return_statement "return local_20[0];" return (subscript_expression "local_20[0]" identifier [ number_literal ]) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE 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 (array_declarator IDENT [ LIT ]) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (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 ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , (pointer_expression & IDENT) , (binary_expression IDENT & LIT) , IDENT , IDENT , (pointer_expression & IDENT) , IDENT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , (pointer_expression & IDENT) , (binary_expression IDENT & LIT) , IDENT , IDENT , (pointer_expression & IDENT) , IDENT )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , (binary_expression IDENT & LIT) , (binary_expression IDENT == LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT == IDENT) ))) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , LIT , (pointer_expression & IDENT) )))) , (binary_expression (binary_expression IDENT == (char_literal ' escape_sequence ')) || (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )))) )) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) (return_statement return IDENT ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , IDENT )))) , (binary_expression IDENT != (char_literal ' escape_sequence ')))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) ))) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , IDENT , IDENT , IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , IDENT , IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (return_statement return (subscript_expression IDENT [ LIT ]) ;) })))
(function_definition "int FUN_001f4970(int param_1,int param_2,int param_3,int param_4,int param_5,undefined4 param_6,\n                undefined4 param_7,int param_8,undefined4 param_9,uint param_10,uint param_11,\n                undefined4 param_12)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  uint uVar4;\n  undefined4 uVar5;\n  char cVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  char *pcVar10;\n  int unaff_EBP;\n  int iVar11;\n  int iVar12;\n  char local_22;\n  char local_21;\n  int local_20 [4];\n  \n  FUN_000b4852();\n  uVar5 = param_12;\n  uVar4 = param_10;\n  iVar7 = *(int *)(*(int *)(unaff_EBP + 0x21fb72) + 0xc);\n  if (iVar7 == 0) {\n                    \n    FUN_000da200(unaff_EBP + 0xed8f7,0x69,&UNK_00118c1a + unaff_EBP,param_11);\n  }\n  pcVar10 = (char *)(uint)(param_8 == 0);\n  if (*(char *)(*(int *)(iVar7 + 4) + 4) == '\0') {\n    iVar7 = FUN_001f3d70(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10);\n  }\n  else {\n    iVar7 = FUN_001f2110(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10);\n  }\n  if (iVar7 == 0) {\n    return 0;\n  }\n  FUN_001ea6f0(iVar7,param_2,param_3,param_5,param_6,param_7,param_8,param_9,uVar4 & 0xff,\n               param_4 == 5);\n  if (local_20[0] == 0) {\n    if (((param_3 != 0) && (param_2 == param_3)) && (param_5 == 0)) {\n      return iVar7;\n    }\n    if ((param_8 != 0) &&\n       ((cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,&local_21), cVar6 == '\0'\n        || (local_21 != '\0')))) {\n      if (param_3 == 0) {\n        return iVar7;\n      }\n      if ((param_2 == param_3) && (param_5 == 0)) {\n        return iVar7;\n      }\n      *(byte *)(iVar7 + 0x2a) = *(byte *)(iVar7 + 0x2a) | 8;\n      return iVar7;\n    }\n    FUN_001e7570(param_1,iVar7);\n    return iVar7;\n  }\n  if (((char)uVar5 != '\0') ||\n     (iVar11 = param_4, cVar6 = FUN_001c60d0(local_20[0],param_7,param_4), cVar6 != '\0')) {\n    iVar11 = iVar7;\n    FUN_001c7460(param_1,local_20[0],iVar7);\n  }\n  if (local_22 != '\0') {\n    return iVar7;\n  }\n  if (param_8 != 0) {\n    pcVar10 = &local_21;\n    iVar11 = 0;\n    cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,pcVar10);\n    if ((cVar6 == '\0') || (local_21 != '\0')) goto LAB_001f4a82;\n  }\n  FUN_001e7570(param_1,local_20[0]);\nLAB_001f4a82:\n  iVar1 = *(int *)(iVar7 + 0x24);\n  if (iVar1 != 0) {\n    iVar9 = *(int *)(iVar1 + 8);\n    if (iVar9 != 0) {\n      iVar8 = *(int *)(iVar9 + 8);\n      if (iVar8 != 0) {\n        iVar2 = *(int *)(iVar8 + 8);\n        if (iVar2 != 0) {\n          iVar12 = *(int *)(iVar2 + 8);\n          if (iVar12 != 0) {\n            iVar3 = *(int *)(iVar12 + 8);\n            if (iVar3 != 0) {\n              FUN_001ea5b0(iVar3);\n              FUN_00248200(iVar3,0xc);\n            }\n            FUN_00248200(iVar12,0xc);\n          }\n          FUN_00248200(iVar2,0xc,iVar11,pcVar10,iVar9,iVar8);\n        }\n        FUN_00248200(iVar8,0xc,iVar11,pcVar10,iVar9);\n      }\n      FUN_00248200(iVar9,0xc);\n    }\n    FUN_00248200(iVar1,0xc);\n  }\n  FUN_00248200(iVar7,0x38);\n  return local_20[0];\n}" (primitive_type "int") (function_declarator "FUN_001f4970(int param_1,int param_2,int param_3,int param_4,int param_5,undefined4 param_6,\n                undefined4 param_7,int param_8,undefined4 param_9,uint param_10,uint param_11,\n                undefined4 param_12)" (identifier "FUN_001f4970") (parameter_list "(int param_1,int param_2,int param_3,int param_4,int param_5,undefined4 param_6,\n                undefined4 param_7,int param_8,undefined4 param_9,uint param_10,uint param_11,\n                undefined4 param_12)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) (, ",") (parameter_declaration "int param_5" (primitive_type "int") (identifier "param_5")) (, ",") (parameter_declaration "undefined4 param_6" (type_identifier "undefined4") (identifier "param_6")) (, ",") (parameter_declaration "undefined4 param_7" (type_identifier "undefined4") (identifier "param_7")) (, ",") (parameter_declaration "int param_8" (primitive_type "int") (identifier "param_8")) (, ",") (parameter_declaration "undefined4 param_9" (type_identifier "undefined4") (identifier "param_9")) (, ",") (parameter_declaration "uint param_10" (type_identifier "uint") (identifier "param_10")) (, ",") (parameter_declaration "uint param_11" (type_identifier "uint") (identifier "param_11")) (, ",") (parameter_declaration "undefined4 param_12" (type_identifier "undefined4") (identifier "param_12")) () ")"))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  uint uVar4;\n  undefined4 uVar5;\n  char cVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  char *pcVar10;\n  int unaff_EBP;\n  int iVar11;\n  int iVar12;\n  char local_22;\n  char local_21;\n  int local_20 [4];\n  \n  FUN_000b4852();\n  uVar5 = param_12;\n  uVar4 = param_10;\n  iVar7 = *(int *)(*(int *)(unaff_EBP + 0x21fb72) + 0xc);\n  if (iVar7 == 0) {\n                    \n    FUN_000da200(unaff_EBP + 0xed8f7,0x69,&UNK_00118c1a + unaff_EBP,param_11);\n  }\n  pcVar10 = (char *)(uint)(param_8 == 0);\n  if (*(char *)(*(int *)(iVar7 + 4) + 4) == '\0') {\n    iVar7 = FUN_001f3d70(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10);\n  }\n  else {\n    iVar7 = FUN_001f2110(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10);\n  }\n  if (iVar7 == 0) {\n    return 0;\n  }\n  FUN_001ea6f0(iVar7,param_2,param_3,param_5,param_6,param_7,param_8,param_9,uVar4 & 0xff,\n               param_4 == 5);\n  if (local_20[0] == 0) {\n    if (((param_3 != 0) && (param_2 == param_3)) && (param_5 == 0)) {\n      return iVar7;\n    }\n    if ((param_8 != 0) &&\n       ((cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,&local_21), cVar6 == '\0'\n        || (local_21 != '\0')))) {\n      if (param_3 == 0) {\n        return iVar7;\n      }\n      if ((param_2 == param_3) && (param_5 == 0)) {\n        return iVar7;\n      }\n      *(byte *)(iVar7 + 0x2a) = *(byte *)(iVar7 + 0x2a) | 8;\n      return iVar7;\n    }\n    FUN_001e7570(param_1,iVar7);\n    return iVar7;\n  }\n  if (((char)uVar5 != '\0') ||\n     (iVar11 = param_4, cVar6 = FUN_001c60d0(local_20[0],param_7,param_4), cVar6 != '\0')) {\n    iVar11 = iVar7;\n    FUN_001c7460(param_1,local_20[0],iVar7);\n  }\n  if (local_22 != '\0') {\n    return iVar7;\n  }\n  if (param_8 != 0) {\n    pcVar10 = &local_21;\n    iVar11 = 0;\n    cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,pcVar10);\n    if ((cVar6 == '\0') || (local_21 != '\0')) goto LAB_001f4a82;\n  }\n  FUN_001e7570(param_1,local_20[0]);\nLAB_001f4a82:\n  iVar1 = *(int *)(iVar7 + 0x24);\n  if (iVar1 != 0) {\n    iVar9 = *(int *)(iVar1 + 8);\n    if (iVar9 != 0) {\n      iVar8 = *(int *)(iVar9 + 8);\n      if (iVar8 != 0) {\n        iVar2 = *(int *)(iVar8 + 8);\n        if (iVar2 != 0) {\n          iVar12 = *(int *)(iVar2 + 8);\n          if (iVar12 != 0) {\n            iVar3 = *(int *)(iVar12 + 8);\n            if (iVar3 != 0) {\n              FUN_001ea5b0(iVar3);\n              FUN_00248200(iVar3,0xc);\n            }\n            FUN_00248200(iVar12,0xc);\n          }\n          FUN_00248200(iVar2,0xc,iVar11,pcVar10,iVar9,iVar8);\n        }\n        FUN_00248200(iVar8,0xc,iVar11,pcVar10,iVar9);\n      }\n      FUN_00248200(iVar9,0xc);\n    }\n    FUN_00248200(iVar1,0xc);\n  }\n  FUN_00248200(iVar7,0x38);\n  return local_20[0];\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "char cVar6;" (primitive_type "char") (identifier "cVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "char *pcVar10;" (primitive_type "char") (pointer_declarator "*pcVar10" (* "*") (identifier "pcVar10")) (; ";")) (declaration "int unaff_EBP;" (primitive_type "int") (identifier "unaff_EBP") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "char local_22;" (primitive_type "char") (identifier "local_22") (; ";")) (declaration "char local_21;" (primitive_type "char") (identifier "local_21") (; ";")) (declaration "int local_20 [4];" (primitive_type "int") (array_declarator "local_20 [4]" (identifier "local_20") ([ "[") (number_literal "4") (] "]")) (; ";")) (expression_statement "FUN_000b4852();" (call_expression "FUN_000b4852()" (identifier "FUN_000b4852") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar5 = param_12;" (assignment_expression "uVar5 = param_12" (identifier "uVar5") (= "=") (identifier "param_12")) (; ";")) (expression_statement "uVar4 = param_10;" (assignment_expression "uVar4 = param_10" (identifier "uVar4") (= "=") (identifier "param_10")) (; ";")) (expression_statement "iVar7 = *(int *)(*(int *)(unaff_EBP + 0x21fb72) + 0xc);" (assignment_expression "iVar7 = *(int *)(*(int *)(unaff_EBP + 0x21fb72) + 0xc)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(*(int *)(unaff_EBP + 0x21fb72) + 0xc)" (* "*") (cast_expression "(int *)(*(int *)(unaff_EBP + 0x21fb72) + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(unaff_EBP + 0x21fb72) + 0xc)" (( "(") (binary_expression "*(int *)(unaff_EBP + 0x21fb72) + 0xc" (pointer_expression "*(int *)(unaff_EBP + 0x21fb72)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x21fb72)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x21fb72)" (( "(") (binary_expression "unaff_EBP + 0x21fb72" (identifier "unaff_EBP") (+ "+") (number_literal "0x21fb72")) () ")")))) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (iVar7 == 0) {\n                    \n    FUN_000da200(unaff_EBP + 0xed8f7,0x69,&UNK_00118c1a + unaff_EBP,param_11);\n  }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_000da200(unaff_EBP + 0xed8f7,0x69,&UNK_00118c1a + unaff_EBP,param_11);\n  }" ({ "{") (expression_statement "FUN_000da200(unaff_EBP + 0xed8f7,0x69,&UNK_00118c1a + unaff_EBP,param_11);" (call_expression "FUN_000da200(unaff_EBP + 0xed8f7,0x69,&UNK_00118c1a + unaff_EBP,param_11)" (identifier "FUN_000da200") (argument_list "(unaff_EBP + 0xed8f7,0x69,&UNK_00118c1a + unaff_EBP,param_11)" (( "(") (binary_expression "unaff_EBP + 0xed8f7" (identifier "unaff_EBP") (+ "+") (number_literal "0xed8f7")) (, ",") (number_literal "0x69") (, ",") (binary_expression "&UNK_00118c1a + unaff_EBP" (pointer_expression "&UNK_00118c1a" (& "&") (identifier "UNK_00118c1a")) (+ "+") (identifier "unaff_EBP")) (, ",") (identifier "param_11") () ")"))) (; ";")) (} "}"))) (expression_statement "pcVar10 = (char *)(uint)(param_8 == 0);" (assignment_expression "pcVar10 = (char *)(uint)(param_8 == 0)" (identifier "pcVar10") (= "=") (cast_expression "(char *)(uint)(param_8 == 0)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(uint)(param_8 == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_8 == 0)" (( "(") (binary_expression "param_8 == 0" (identifier "param_8") (== "==") (number_literal "0")) () ")"))))) (; ";")) (if_statement "if (*(char *)(*(int *)(iVar7 + 4) + 4) == '\0') {\n    iVar7 = FUN_001f3d70(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10);\n  }\n  else {\n    iVar7 = FUN_001f2110(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10);\n  }" (if "if") (parenthesized_expression "(*(char *)(*(int *)(iVar7 + 4) + 4) == '\0')" (( "(") (binary_expression "*(char *)(*(int *)(iVar7 + 4) + 4) == '\0'" (pointer_expression "*(char *)(*(int *)(iVar7 + 4) + 4)" (* "*") (cast_expression "(char *)(*(int *)(iVar7 + 4) + 4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar7 + 4) + 4)" (( "(") (binary_expression "*(int *)(iVar7 + 4) + 4" (pointer_expression "*(int *)(iVar7 + 4)" (* "*") (cast_expression "(int *)(iVar7 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 4)" (( "(") (binary_expression "iVar7 + 4" (identifier "iVar7") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    iVar7 = FUN_001f3d70(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10);\n  }" ({ "{") (expression_statement "iVar7 = FUN_001f3d70(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10);" (assignment_expression "iVar7 = FUN_001f3d70(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10)" (identifier "iVar7") (= "=") (call_expression "FUN_001f3d70(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10)" (identifier "FUN_001f3d70") (argument_list "(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10)" (( "(") (identifier "param_1") (, ",") (pointer_expression "&param_2" (& "&") (identifier "param_2")) (, ",") (pointer_expression "&param_3" (& "&") (identifier "param_3")) (, ",") (binary_expression "param_11 & 0xff" (identifier "param_11") (& "&") (number_literal "0xff")) (, ",") (identifier "param_9") (, ",") (identifier "local_20") (, ",") (pointer_expression "&local_22" (& "&") (identifier "local_22")) (, ",") (identifier "pcVar10") () ")")))) (; ";")) (} "}")) (else_clause "else {\n    iVar7 = FUN_001f2110(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10);\n  }" (else "else") (compound_statement "{\n    iVar7 = FUN_001f2110(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10);\n  }" ({ "{") (expression_statement "iVar7 = FUN_001f2110(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10);" (assignment_expression "iVar7 = FUN_001f2110(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10)" (identifier "iVar7") (= "=") (call_expression "FUN_001f2110(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10)" (identifier "FUN_001f2110") (argument_list "(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,\n                         pcVar10)" (( "(") (identifier "param_1") (, ",") (pointer_expression "&param_2" (& "&") (identifier "param_2")) (, ",") (pointer_expression "&param_3" (& "&") (identifier "param_3")) (, ",") (binary_expression "param_11 & 0xff" (identifier "param_11") (& "&") (number_literal "0xff")) (, ",") (identifier "param_9") (, ",") (identifier "local_20") (, ",") (pointer_expression "&local_22" (& "&") (identifier "local_22")) (, ",") (identifier "pcVar10") () ")")))) (; ";")) (} "}")))) (if_statement "if (iVar7 == 0) {\n    return 0;\n  }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "FUN_001ea6f0(iVar7,param_2,param_3,param_5,param_6,param_7,param_8,param_9,uVar4 & 0xff,\n               param_4 == 5);" (call_expression "FUN_001ea6f0(iVar7,param_2,param_3,param_5,param_6,param_7,param_8,param_9,uVar4 & 0xff,\n               param_4 == 5)" (identifier "FUN_001ea6f0") (argument_list "(iVar7,param_2,param_3,param_5,param_6,param_7,param_8,param_9,uVar4 & 0xff,\n               param_4 == 5)" (( "(") (identifier "iVar7") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "param_5") (, ",") (identifier "param_6") (, ",") (identifier "param_7") (, ",") (identifier "param_8") (, ",") (identifier "param_9") (, ",") (binary_expression "uVar4 & 0xff" (identifier "uVar4") (& "&") (number_literal "0xff")) (, ",") (binary_expression "param_4 == 5" (identifier "param_4") (== "==") (number_literal "5")) () ")"))) (; ";")) (if_statement "if (local_20[0] == 0) {\n    if (((param_3 != 0) && (param_2 == param_3)) && (param_5 == 0)) {\n      return iVar7;\n    }\n    if ((param_8 != 0) &&\n       ((cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,&local_21), cVar6 == '\0'\n        || (local_21 != '\0')))) {\n      if (param_3 == 0) {\n        return iVar7;\n      }\n      if ((param_2 == param_3) && (param_5 == 0)) {\n        return iVar7;\n      }\n      *(byte *)(iVar7 + 0x2a) = *(byte *)(iVar7 + 0x2a) | 8;\n      return iVar7;\n    }\n    FUN_001e7570(param_1,iVar7);\n    return iVar7;\n  }" (if "if") (parenthesized_expression "(local_20[0] == 0)" (( "(") (binary_expression "local_20[0] == 0" (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if (((param_3 != 0) && (param_2 == param_3)) && (param_5 == 0)) {\n      return iVar7;\n    }\n    if ((param_8 != 0) &&\n       ((cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,&local_21), cVar6 == '\0'\n        || (local_21 != '\0')))) {\n      if (param_3 == 0) {\n        return iVar7;\n      }\n      if ((param_2 == param_3) && (param_5 == 0)) {\n        return iVar7;\n      }\n      *(byte *)(iVar7 + 0x2a) = *(byte *)(iVar7 + 0x2a) | 8;\n      return iVar7;\n    }\n    FUN_001e7570(param_1,iVar7);\n    return iVar7;\n  }" ({ "{") (if_statement "if (((param_3 != 0) && (param_2 == param_3)) && (param_5 == 0)) {\n      return iVar7;\n    }" (if "if") (parenthesized_expression "(((param_3 != 0) && (param_2 == param_3)) && (param_5 == 0))" (( "(") (binary_expression "((param_3 != 0) && (param_2 == param_3)) && (param_5 == 0)" (parenthesized_expression "((param_3 != 0) && (param_2 == param_3))" (( "(") (binary_expression "(param_3 != 0) && (param_2 == param_3)" (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(param_2 == param_3)" (( "(") (binary_expression "param_2 == param_3" (identifier "param_2") (== "==") (identifier "param_3")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(param_5 == 0)" (( "(") (binary_expression "param_5 == 0" (identifier "param_5") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      return iVar7;\n    }" ({ "{") (return_statement "return iVar7;" (return "return") (identifier "iVar7") (; ";")) (} "}"))) (if_statement "if ((param_8 != 0) &&\n       ((cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,&local_21), cVar6 == '\0'\n        || (local_21 != '\0')))) {\n      if (param_3 == 0) {\n        return iVar7;\n      }\n      if ((param_2 == param_3) && (param_5 == 0)) {\n        return iVar7;\n      }\n      *(byte *)(iVar7 + 0x2a) = *(byte *)(iVar7 + 0x2a) | 8;\n      return iVar7;\n    }" (if "if") (parenthesized_expression "((param_8 != 0) &&\n       ((cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,&local_21), cVar6 == '\0'\n        || (local_21 != '\0'))))" (( "(") (binary_expression "(param_8 != 0) &&\n       ((cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,&local_21), cVar6 == '\0'\n        || (local_21 != '\0')))" (parenthesized_expression "(param_8 != 0)" (( "(") (binary_expression "param_8 != 0" (identifier "param_8") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,&local_21), cVar6 == '\0'\n        || (local_21 != '\0')))" (( "(") (parenthesized_expression "(cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,&local_21), cVar6 == '\0'\n        || (local_21 != '\0'))" (( "(") (comma_expression "cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,&local_21), cVar6 == '\0'\n        || (local_21 != '\0')" (assignment_expression "cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,&local_21)" (identifier "cVar6") (= "=") (call_expression "FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,&local_21)" (identifier "FUN_001dd670") (argument_list "(*(undefined4 *)(param_1 + 0x154),param_2,0,&local_21)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x154)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x154)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x154)" (( "(") (binary_expression "param_1 + 0x154" (identifier "param_1") (+ "+") (number_literal "0x154")) () ")")))) (, ",") (identifier "param_2") (, ",") (number_literal "0") (, ",") (pointer_expression "&local_21" (& "&") (identifier "local_21")) () ")")))) (, ",") (binary_expression "cVar6 == '\0'\n        || (local_21 != '\0')" (binary_expression "cVar6 == '\0'" (identifier "cVar6") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (|| "||") (parenthesized_expression "(local_21 != '\0')" (( "(") (binary_expression "local_21 != '\0'" (identifier "local_21") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n      if (param_3 == 0) {\n        return iVar7;\n      }\n      if ((param_2 == param_3) && (param_5 == 0)) {\n        return iVar7;\n      }\n      *(byte *)(iVar7 + 0x2a) = *(byte *)(iVar7 + 0x2a) | 8;\n      return iVar7;\n    }" ({ "{") (if_statement "if (param_3 == 0) {\n        return iVar7;\n      }" (if "if") (parenthesized_expression "(param_3 == 0)" (( "(") (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        return iVar7;\n      }" ({ "{") (return_statement "return iVar7;" (return "return") (identifier "iVar7") (; ";")) (} "}"))) (if_statement "if ((param_2 == param_3) && (param_5 == 0)) {\n        return iVar7;\n      }" (if "if") (parenthesized_expression "((param_2 == param_3) && (param_5 == 0))" (( "(") (binary_expression "(param_2 == param_3) && (param_5 == 0)" (parenthesized_expression "(param_2 == param_3)" (( "(") (binary_expression "param_2 == param_3" (identifier "param_2") (== "==") (identifier "param_3")) () ")")) (&& "&&") (parenthesized_expression "(param_5 == 0)" (( "(") (binary_expression "param_5 == 0" (identifier "param_5") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        return iVar7;\n      }" ({ "{") (return_statement "return iVar7;" (return "return") (identifier "iVar7") (; ";")) (} "}"))) (expression_statement "*(byte *)(iVar7 + 0x2a) = *(byte *)(iVar7 + 0x2a) | 8;" (assignment_expression "*(byte *)(iVar7 + 0x2a) = *(byte *)(iVar7 + 0x2a) | 8" (pointer_expression "*(byte *)(iVar7 + 0x2a)" (* "*") (cast_expression "(byte *)(iVar7 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x2a)" (( "(") (binary_expression "iVar7 + 0x2a" (identifier "iVar7") (+ "+") (number_literal "0x2a")) () ")")))) (= "=") (binary_expression "*(byte *)(iVar7 + 0x2a) | 8" (pointer_expression "*(byte *)(iVar7 + 0x2a)" (* "*") (cast_expression "(byte *)(iVar7 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x2a)" (( "(") (binary_expression "iVar7 + 0x2a" (identifier "iVar7") (+ "+") (number_literal "0x2a")) () ")")))) (| "|") (number_literal "8"))) (; ";")) (return_statement "return iVar7;" (return "return") (identifier "iVar7") (; ";")) (} "}"))) (expression_statement "FUN_001e7570(param_1,iVar7);" (call_expression "FUN_001e7570(param_1,iVar7)" (identifier "FUN_001e7570") (argument_list "(param_1,iVar7)" (( "(") (identifier "param_1") (, ",") (identifier "iVar7") () ")"))) (; ";")) (return_statement "return iVar7;" (return "return") (identifier "iVar7") (; ";")) (} "}"))) (if_statement "if (((char)uVar5 != '\0') ||\n     (iVar11 = param_4, cVar6 = FUN_001c60d0(local_20[0],param_7,param_4), cVar6 != '\0')) {\n    iVar11 = iVar7;\n    FUN_001c7460(param_1,local_20[0],iVar7);\n  }" (if "if") (parenthesized_expression "(((char)uVar5 != '\0') ||\n     (iVar11 = param_4, cVar6 = FUN_001c60d0(local_20[0],param_7,param_4), cVar6 != '\0'))" (( "(") (binary_expression "((char)uVar5 != '\0') ||\n     (iVar11 = param_4, cVar6 = FUN_001c60d0(local_20[0],param_7,param_4), cVar6 != '\0')" (parenthesized_expression "((char)uVar5 != '\0')" (( "(") (binary_expression "(char)uVar5 != '\0'" (cast_expression "(char)uVar5" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar5")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(iVar11 = param_4, cVar6 = FUN_001c60d0(local_20[0],param_7,param_4), cVar6 != '\0')" (( "(") (comma_expression "iVar11 = param_4, cVar6 = FUN_001c60d0(local_20[0],param_7,param_4), cVar6 != '\0'" (assignment_expression "iVar11 = param_4" (identifier "iVar11") (= "=") (identifier "param_4")) (, ",") (comma_expression "cVar6 = FUN_001c60d0(local_20[0],param_7,param_4), cVar6 != '\0'" (assignment_expression "cVar6 = FUN_001c60d0(local_20[0],param_7,param_4)" (identifier "cVar6") (= "=") (call_expression "FUN_001c60d0(local_20[0],param_7,param_4)" (identifier "FUN_001c60d0") (argument_list "(local_20[0],param_7,param_4)" (( "(") (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")) (, ",") (identifier "param_7") (, ",") (identifier "param_4") () ")")))) (, ",") (binary_expression "cVar6 != '\0'" (identifier "cVar6") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))))) () ")"))) () ")")) (compound_statement "{\n    iVar11 = iVar7;\n    FUN_001c7460(param_1,local_20[0],iVar7);\n  }" ({ "{") (expression_statement "iVar11 = iVar7;" (assignment_expression "iVar11 = iVar7" (identifier "iVar11") (= "=") (identifier "iVar7")) (; ";")) (expression_statement "FUN_001c7460(param_1,local_20[0],iVar7);" (call_expression "FUN_001c7460(param_1,local_20[0],iVar7)" (identifier "FUN_001c7460") (argument_list "(param_1,local_20[0],iVar7)" (( "(") (identifier "param_1") (, ",") (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")) (, ",") (identifier "iVar7") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_22 != '\0') {\n    return iVar7;\n  }" (if "if") (parenthesized_expression "(local_22 != '\0')" (( "(") (binary_expression "local_22 != '\0'" (identifier "local_22") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    return iVar7;\n  }" ({ "{") (return_statement "return iVar7;" (return "return") (identifier "iVar7") (; ";")) (} "}"))) (if_statement "if (param_8 != 0) {\n    pcVar10 = &local_21;\n    iVar11 = 0;\n    cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,pcVar10);\n    if ((cVar6 == '\0') || (local_21 != '\0')) goto LAB_001f4a82;\n  }" (if "if") (parenthesized_expression "(param_8 != 0)" (( "(") (binary_expression "param_8 != 0" (identifier "param_8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    pcVar10 = &local_21;\n    iVar11 = 0;\n    cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,pcVar10);\n    if ((cVar6 == '\0') || (local_21 != '\0')) goto LAB_001f4a82;\n  }" ({ "{") (expression_statement "pcVar10 = &local_21;" (assignment_expression "pcVar10 = &local_21" (identifier "pcVar10") (= "=") (pointer_expression "&local_21" (& "&") (identifier "local_21"))) (; ";")) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" (identifier "iVar11") (= "=") (number_literal "0")) (; ";")) (expression_statement "cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,pcVar10);" (assignment_expression "cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,pcVar10)" (identifier "cVar6") (= "=") (call_expression "FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,pcVar10)" (identifier "FUN_001dd670") (argument_list "(*(undefined4 *)(param_1 + 0x154),param_2,0,pcVar10)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x154)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x154)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x154)" (( "(") (binary_expression "param_1 + 0x154" (identifier "param_1") (+ "+") (number_literal "0x154")) () ")")))) (, ",") (identifier "param_2") (, ",") (number_literal "0") (, ",") (identifier "pcVar10") () ")")))) (; ";")) (if_statement "if ((cVar6 == '\0') || (local_21 != '\0')) goto LAB_001f4a82;" (if "if") (parenthesized_expression "((cVar6 == '\0') || (local_21 != '\0'))" (( "(") (binary_expression "(cVar6 == '\0') || (local_21 != '\0')" (parenthesized_expression "(cVar6 == '\0')" (( "(") (binary_expression "cVar6 == '\0'" (identifier "cVar6") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(local_21 != '\0')" (( "(") (binary_expression "local_21 != '\0'" (identifier "local_21") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (goto_statement "goto LAB_001f4a82;" (goto "goto") (statement_identifier "LAB_001f4a82") (; ";"))) (} "}"))) (expression_statement "FUN_001e7570(param_1,local_20[0]);" (call_expression "FUN_001e7570(param_1,local_20[0])" (identifier "FUN_001e7570") (argument_list "(param_1,local_20[0])" (( "(") (identifier "param_1") (, ",") (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")) () ")"))) (; ";")) (labeled_statement "LAB_001f4a82:\n  iVar1 = *(int *)(iVar7 + 0x24);" (statement_identifier "LAB_001f4a82") (: ":") (expression_statement "iVar1 = *(int *)(iVar7 + 0x24);" (assignment_expression "iVar1 = *(int *)(iVar7 + 0x24)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(iVar7 + 0x24)" (* "*") (cast_expression "(int *)(iVar7 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x24)" (( "(") (binary_expression "iVar7 + 0x24" (identifier "iVar7") (+ "+") (number_literal "0x24")) () ")"))))) (; ";"))) (if_statement "if (iVar1 != 0) {\n    iVar9 = *(int *)(iVar1 + 8);\n    if (iVar9 != 0) {\n      iVar8 = *(int *)(iVar9 + 8);\n      if (iVar8 != 0) {\n        iVar2 = *(int *)(iVar8 + 8);\n        if (iVar2 != 0) {\n          iVar12 = *(int *)(iVar2 + 8);\n          if (iVar12 != 0) {\n            iVar3 = *(int *)(iVar12 + 8);\n            if (iVar3 != 0) {\n              FUN_001ea5b0(iVar3);\n              FUN_00248200(iVar3,0xc);\n            }\n            FUN_00248200(iVar12,0xc);\n          }\n          FUN_00248200(iVar2,0xc,iVar11,pcVar10,iVar9,iVar8);\n        }\n        FUN_00248200(iVar8,0xc,iVar11,pcVar10,iVar9);\n      }\n      FUN_00248200(iVar9,0xc);\n    }\n    FUN_00248200(iVar1,0xc);\n  }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar9 = *(int *)(iVar1 + 8);\n    if (iVar9 != 0) {\n      iVar8 = *(int *)(iVar9 + 8);\n      if (iVar8 != 0) {\n        iVar2 = *(int *)(iVar8 + 8);\n        if (iVar2 != 0) {\n          iVar12 = *(int *)(iVar2 + 8);\n          if (iVar12 != 0) {\n            iVar3 = *(int *)(iVar12 + 8);\n            if (iVar3 != 0) {\n              FUN_001ea5b0(iVar3);\n              FUN_00248200(iVar3,0xc);\n            }\n            FUN_00248200(iVar12,0xc);\n          }\n          FUN_00248200(iVar2,0xc,iVar11,pcVar10,iVar9,iVar8);\n        }\n        FUN_00248200(iVar8,0xc,iVar11,pcVar10,iVar9);\n      }\n      FUN_00248200(iVar9,0xc);\n    }\n    FUN_00248200(iVar1,0xc);\n  }" ({ "{") (expression_statement "iVar9 = *(int *)(iVar1 + 8);" (assignment_expression "iVar9 = *(int *)(iVar1 + 8)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(iVar1 + 8)" (* "*") (cast_expression "(int *)(iVar1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 8)" (( "(") (binary_expression "iVar1 + 8" (identifier "iVar1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar9 != 0) {\n      iVar8 = *(int *)(iVar9 + 8);\n      if (iVar8 != 0) {\n        iVar2 = *(int *)(iVar8 + 8);\n        if (iVar2 != 0) {\n          iVar12 = *(int *)(iVar2 + 8);\n          if (iVar12 != 0) {\n            iVar3 = *(int *)(iVar12 + 8);\n            if (iVar3 != 0) {\n              FUN_001ea5b0(iVar3);\n              FUN_00248200(iVar3,0xc);\n            }\n            FUN_00248200(iVar12,0xc);\n          }\n          FUN_00248200(iVar2,0xc,iVar11,pcVar10,iVar9,iVar8);\n        }\n        FUN_00248200(iVar8,0xc,iVar11,pcVar10,iVar9);\n      }\n      FUN_00248200(iVar9,0xc);\n    }" (if "if") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar8 = *(int *)(iVar9 + 8);\n      if (iVar8 != 0) {\n        iVar2 = *(int *)(iVar8 + 8);\n        if (iVar2 != 0) {\n          iVar12 = *(int *)(iVar2 + 8);\n          if (iVar12 != 0) {\n            iVar3 = *(int *)(iVar12 + 8);\n            if (iVar3 != 0) {\n              FUN_001ea5b0(iVar3);\n              FUN_00248200(iVar3,0xc);\n            }\n            FUN_00248200(iVar12,0xc);\n          }\n          FUN_00248200(iVar2,0xc,iVar11,pcVar10,iVar9,iVar8);\n        }\n        FUN_00248200(iVar8,0xc,iVar11,pcVar10,iVar9);\n      }\n      FUN_00248200(iVar9,0xc);\n    }" ({ "{") (expression_statement "iVar8 = *(int *)(iVar9 + 8);" (assignment_expression "iVar8 = *(int *)(iVar9 + 8)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(iVar9 + 8)" (* "*") (cast_expression "(int *)(iVar9 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 8)" (( "(") (binary_expression "iVar9 + 8" (identifier "iVar9") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar8 != 0) {\n        iVar2 = *(int *)(iVar8 + 8);\n        if (iVar2 != 0) {\n          iVar12 = *(int *)(iVar2 + 8);\n          if (iVar12 != 0) {\n            iVar3 = *(int *)(iVar12 + 8);\n            if (iVar3 != 0) {\n              FUN_001ea5b0(iVar3);\n              FUN_00248200(iVar3,0xc);\n            }\n            FUN_00248200(iVar12,0xc);\n          }\n          FUN_00248200(iVar2,0xc,iVar11,pcVar10,iVar9,iVar8);\n        }\n        FUN_00248200(iVar8,0xc,iVar11,pcVar10,iVar9);\n      }" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar2 = *(int *)(iVar8 + 8);\n        if (iVar2 != 0) {\n          iVar12 = *(int *)(iVar2 + 8);\n          if (iVar12 != 0) {\n            iVar3 = *(int *)(iVar12 + 8);\n            if (iVar3 != 0) {\n              FUN_001ea5b0(iVar3);\n              FUN_00248200(iVar3,0xc);\n            }\n            FUN_00248200(iVar12,0xc);\n          }\n          FUN_00248200(iVar2,0xc,iVar11,pcVar10,iVar9,iVar8);\n        }\n        FUN_00248200(iVar8,0xc,iVar11,pcVar10,iVar9);\n      }" ({ "{") (expression_statement "iVar2 = *(int *)(iVar8 + 8);" (assignment_expression "iVar2 = *(int *)(iVar8 + 8)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(iVar8 + 8)" (* "*") (cast_expression "(int *)(iVar8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 8)" (( "(") (binary_expression "iVar8 + 8" (identifier "iVar8") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar2 != 0) {\n          iVar12 = *(int *)(iVar2 + 8);\n          if (iVar12 != 0) {\n            iVar3 = *(int *)(iVar12 + 8);\n            if (iVar3 != 0) {\n              FUN_001ea5b0(iVar3);\n              FUN_00248200(iVar3,0xc);\n            }\n            FUN_00248200(iVar12,0xc);\n          }\n          FUN_00248200(iVar2,0xc,iVar11,pcVar10,iVar9,iVar8);\n        }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          iVar12 = *(int *)(iVar2 + 8);\n          if (iVar12 != 0) {\n            iVar3 = *(int *)(iVar12 + 8);\n            if (iVar3 != 0) {\n              FUN_001ea5b0(iVar3);\n              FUN_00248200(iVar3,0xc);\n            }\n            FUN_00248200(iVar12,0xc);\n          }\n          FUN_00248200(iVar2,0xc,iVar11,pcVar10,iVar9,iVar8);\n        }" ({ "{") (expression_statement "iVar12 = *(int *)(iVar2 + 8);" (assignment_expression "iVar12 = *(int *)(iVar2 + 8)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)(iVar2 + 8)" (* "*") (cast_expression "(int *)(iVar2 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 8)" (( "(") (binary_expression "iVar2 + 8" (identifier "iVar2") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar12 != 0) {\n            iVar3 = *(int *)(iVar12 + 8);\n            if (iVar3 != 0) {\n              FUN_001ea5b0(iVar3);\n              FUN_00248200(iVar3,0xc);\n            }\n            FUN_00248200(iVar12,0xc);\n          }" (if "if") (parenthesized_expression "(iVar12 != 0)" (( "(") (binary_expression "iVar12 != 0" (identifier "iVar12") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            iVar3 = *(int *)(iVar12 + 8);\n            if (iVar3 != 0) {\n              FUN_001ea5b0(iVar3);\n              FUN_00248200(iVar3,0xc);\n            }\n            FUN_00248200(iVar12,0xc);\n          }" ({ "{") (expression_statement "iVar3 = *(int *)(iVar12 + 8);" (assignment_expression "iVar3 = *(int *)(iVar12 + 8)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(iVar12 + 8)" (* "*") (cast_expression "(int *)(iVar12 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 8)" (( "(") (binary_expression "iVar12 + 8" (identifier "iVar12") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar3 != 0) {\n              FUN_001ea5b0(iVar3);\n              FUN_00248200(iVar3,0xc);\n            }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              FUN_001ea5b0(iVar3);\n              FUN_00248200(iVar3,0xc);\n            }" ({ "{") (expression_statement "FUN_001ea5b0(iVar3);" (call_expression "FUN_001ea5b0(iVar3)" (identifier "FUN_001ea5b0") (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")"))) (; ";")) (expression_statement "FUN_00248200(iVar3,0xc);" (call_expression "FUN_00248200(iVar3,0xc)" (identifier "FUN_00248200") (argument_list "(iVar3,0xc)" (( "(") (identifier "iVar3") (, ",") (number_literal "0xc") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_00248200(iVar12,0xc);" (call_expression "FUN_00248200(iVar12,0xc)" (identifier "FUN_00248200") (argument_list "(iVar12,0xc)" (( "(") (identifier "iVar12") (, ",") (number_literal "0xc") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_00248200(iVar2,0xc,iVar11,pcVar10,iVar9,iVar8);" (call_expression "FUN_00248200(iVar2,0xc,iVar11,pcVar10,iVar9,iVar8)" (identifier "FUN_00248200") (argument_list "(iVar2,0xc,iVar11,pcVar10,iVar9,iVar8)" (( "(") (identifier "iVar2") (, ",") (number_literal "0xc") (, ",") (identifier "iVar11") (, ",") (identifier "pcVar10") (, ",") (identifier "iVar9") (, ",") (identifier "iVar8") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_00248200(iVar8,0xc,iVar11,pcVar10,iVar9);" (call_expression "FUN_00248200(iVar8,0xc,iVar11,pcVar10,iVar9)" (identifier "FUN_00248200") (argument_list "(iVar8,0xc,iVar11,pcVar10,iVar9)" (( "(") (identifier "iVar8") (, ",") (number_literal "0xc") (, ",") (identifier "iVar11") (, ",") (identifier "pcVar10") (, ",") (identifier "iVar9") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_00248200(iVar9,0xc);" (call_expression "FUN_00248200(iVar9,0xc)" (identifier "FUN_00248200") (argument_list "(iVar9,0xc)" (( "(") (identifier "iVar9") (, ",") (number_literal "0xc") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_00248200(iVar1,0xc);" (call_expression "FUN_00248200(iVar1,0xc)" (identifier "FUN_00248200") (argument_list "(iVar1,0xc)" (( "(") (identifier "iVar1") (, ",") (number_literal "0xc") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_00248200(iVar7,0x38);" (call_expression "FUN_00248200(iVar7,0x38)" (identifier "FUN_00248200") (argument_list "(iVar7,0x38)" (( "(") (identifier "iVar7") (, ",") (number_literal "0x38") () ")"))) (; ";")) (return_statement "return local_20[0];" (return "return") (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")) (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bp replaced with injection: get_pc_thunk.bp */
/* WARNING: Enum "STT": Some values do not have unique names */
/* WARNING: Enum "STB": Some values do not have unique names */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* DWARF original prototype: Sized_symbol<32> * do_define_as_constant<32>(Symbol_table * this, char
   * name, char * version, Defined defined, Elf_Addr value, Elf_WXword symsize, STT type, STB
   binding, STV visibility, uchar nonvis, bool only_if_ref, bool force_override) */

var_1<32> * __thiscall
gold::Symbol_table::do_define_as_constant<32>
          (Symbol_table *this,char *var_13,char *var_12,Defined var_9,Elf_Addr var_14,
          Elf_WXword symsize,STT type,STB var_4,STV visibility,type_3 nonvis,bool only_if_ref,
          bool force_override)

{
  type_1 *puVar1;
  type_2 *var_22;
  type_2 *var_23;
  type_2 *var_24;
  type_2 *var_25;
  type_2 *var_26;
  type_2 *var_27;
  type_3 nonvis_00;
  bool var_16;
  var_1<32> *var_7;
  type_4 in_stack_00000029;
  type_4 in_stack_0000002d;
  type_4 in_stack_00000031;
  var_1<32> *__in_chrg;
  bool var_21;
  bool var_17;
  var_1<32> *var_11;
  
  var_16 = force_override;
  nonvis_00 = nonvis;
  if (parameters->target_ != (type_5 *)0x0) {
    if (parameters->target_->pti_->is_big_endian == false) {
      var_7 = var_2<32,var_3>
                          (this,&var_13,&var_12,only_if_ref,visibility,&var_11,&var_21,
                           var_4 == var_5);
    }
    else {
      var_7 = var_2<32,var_6>
                          (this,&var_13,&var_12,only_if_ref,visibility,&var_11,&var_21,
                           var_4 == var_5);
    }
    if (var_7 != (var_1<32> *)0x0) {
      var_1<32>::var_8
                (var_7,var_13,var_12,var_14,symsize,type,var_4,visibility,nonvis_00,
                 var_9 == var_10);
      if (var_11 == (var_1<32> *)0x0) {
        if (((var_12 == (char *)0x0) || (var_13 != var_12)) || (var_14 != 0)) {
          if ((var_4 == var_5) ||
             ((var_16 = Version_script_info::var_15
                                 (this->version_script_,var_13,(type_6 *)0x0,&var_17), var_16 &&
              (var_17 == false)))) {
            var_18(this,&var_7->super_Symbol);
          }
          else if ((var_12 != (char *)0x0) && ((var_13 != var_12 || (var_14 != 0)))) {
            puVar1 = &(var_7->super_Symbol).field_0x2a;
            *puVar1 = *puVar1 | 8;
          }
        }
      }
      else {
        if ((var_16) ||
           (var_16 = var_19(&var_11->super_Symbol,type,var_9), var_16)) {
          var_20<32>(this,var_11,var_7);
        }
        if (var_21 == false) {
          if ((var_4 == var_5) ||
             ((__in_chrg = (var_1<32> *)var_13,
              var_16 = Version_script_info::var_15
                                (this->version_script_,var_13,(type_6 *)0x0,&var_17), var_16 &&
              (var_17 == false)))) {
            __in_chrg = var_11;
            var_18(this,&var_11->super_Symbol);
          }
          var_22 = (var_7->super_Symbol).got_offsets_.got_next_;
          if (var_22 != (type_2 *)0x0) {
            var_23 = var_22->got_next_;
            if (var_23 != (type_2 *)0x0) {
              var_24 = var_23->got_next_;
              if (var_24 != (type_2 *)0x0) {
                var_25 = var_24->got_next_;
                if (var_25 != (type_2 *)0x0) {
                  var_26 = var_25->got_next_;
                  if (var_26 != (type_2 *)0x0) {
                    var_27 = var_26->got_next_;
                    if (var_27 != (type_2 *)0x0) {
                      Got_offset_list::~type_2(var_27,(int)__in_chrg);
                      var_28(var_27,0xc);
                    }
                    var_28(var_26,0xc);
                  }
                  var_28(var_25,0xc);
                }
                var_28(var_24,0xc);
              }
              var_28(var_23,0xc);
            }
            var_28(var_22,0xc);
          }
          var_28(var_7,0x38);
          var_7 = var_11;
        }
      }
    }
    return var_7;
  }
                    /* WARNING: Subroutine does not return */
  var_29("../../gold/parameters.h",0x69,"target");
}


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

int MASKED(int param_1,int param_2,int param_3,int param_4,int param_5,undefined4 param_6,
                undefined4 param_7,int param_8,undefined4 param_9,uint param_10,uint param_11,
                undefined4 param_12)

{
  int iVar1;
  int iVar2;
  int iVar3;
  uint uVar4;
  undefined4 uVar5;
  char cVar6;
  int iVar7;
  int iVar8;
  int iVar9;
  char *pcVar10;
  int unaff_EBP;
  int iVar11;
  int iVar12;
  char local_22;
  char local_21;
  int local_20 [4];
  
  FUN_000b4852();
  uVar5 = param_12;
  uVar4 = param_10;
  iVar7 = *(int *)(*(int *)(unaff_EBP + 0x21fb72) + 0xc);
  if (iVar7 == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_000da200(unaff_EBP + 0xed8f7,0x69,&UNK_00118c1a + unaff_EBP,param_11);
  }
  pcVar10 = (char *)(uint)(param_8 == 0);
  if (*(char *)(*(int *)(iVar7 + 4) + 4) == '\0') {
    iVar7 = FUN_001f3d70(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,
                         pcVar10);
  }
  else {
    iVar7 = FUN_001f2110(param_1,&param_2,&param_3,param_11 & 0xff,param_9,local_20,&local_22,
                         pcVar10);
  }
  if (iVar7 == 0) {
    return 0;
  }
  FUN_001ea6f0(iVar7,param_2,param_3,param_5,param_6,param_7,param_8,param_9,uVar4 & 0xff,
               param_4 == 5);
  if (local_20[0] == 0) {
    if (((param_3 != 0) && (param_2 == param_3)) && (param_5 == 0)) {
      return iVar7;
    }
    if ((param_8 != 0) &&
       ((cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,&local_21), cVar6 == '\0'
        || (local_21 != '\0')))) {
      if (param_3 == 0) {
        return iVar7;
      }
      if ((param_2 == param_3) && (param_5 == 0)) {
        return iVar7;
      }
      *(byte *)(iVar7 + 0x2a) = *(byte *)(iVar7 + 0x2a) | 8;
      return iVar7;
    }
    FUN_001e7570(param_1,iVar7);
    return iVar7;
  }
  if (((char)uVar5 != '\0') ||
     (iVar11 = param_4, cVar6 = FUN_001c60d0(local_20[0],param_7,param_4), cVar6 != '\0')) {
    iVar11 = iVar7;
    FUN_001c7460(param_1,local_20[0],iVar7);
  }
  if (local_22 != '\0') {
    return iVar7;
  }
  if (param_8 != 0) {
    pcVar10 = &local_21;
    iVar11 = 0;
    cVar6 = FUN_001dd670(*(undefined4 *)(param_1 + 0x154),param_2,0,pcVar10);
    if ((cVar6 == '\0') || (local_21 != '\0')) goto LAB_001f4a82;
  }
  FUN_001e7570(param_1,local_20[0]);
LAB_001f4a82:
  iVar1 = *(int *)(iVar7 + 0x24);
  if (iVar1 != 0) {
    iVar9 = *(int *)(iVar1 + 8);
    if (iVar9 != 0) {
      iVar8 = *(int *)(iVar9 + 8);
      if (iVar8 != 0) {
        iVar2 = *(int *)(iVar8 + 8);
        if (iVar2 != 0) {
          iVar12 = *(int *)(iVar2 + 8);
          if (iVar12 != 0) {
            iVar3 = *(int *)(iVar12 + 8);
            if (iVar3 != 0) {
              FUN_001ea5b0(iVar3);
              FUN_00248200(iVar3,0xc);
            }
            FUN_00248200(iVar12,0xc);
          }
          FUN_00248200(iVar2,0xc,iVar11,pcVar10,iVar9,iVar8);
        }
        FUN_00248200(iVar8,0xc,iVar11,pcVar10,iVar9);
      }
      FUN_00248200(iVar9,0xc);
    }
    FUN_00248200(iVar1,0xc);
  }
  FUN_00248200(iVar7,0x38);
  return local_20[0];
}

