
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* WARNING: Enum "<anon>": Some values do not have unique names */
/* DWARF original prototype: bool should_apply_static_reloc(Relocate * this, Sized_symbol<32> *
   gsym, uint r_type, bool is_32bit, Output_section * output_section) */

bool __thiscall
anon_unknown.dwarf_91258a::Target_arm<true>::Relocate::should_apply_static_reloc
          (Relocate *this,Sized_symbol<32> *gsym,uint r_type,bool is_32bit,
          Output_section *output_section)

{
  int iVar1;
  byte bVar2;
  bool bVar3;
  byte bVar4;
  Symbol *this_00;
  uint uVar5;
  byte extraout_CL;
  int iVar6;
  byte bVar7;
  uint uVar8;
  int unaff_EDI;
  undefined8 uVar9;
  Target_arm<true> *in_stack_ffffffd4;
  Parameters *in_stack_ffffffd8;
  byte bVar10;
  uint local_20;
  
  uVar9 = __x86_get_pc_thunk_di();
  iVar6 = (int)((ulonglong)uVar9 >> 0x20);
  this_00 = (Symbol *)uVar9;
  if (((byte)this[0x54] & 2) == 0) {
    return true;
  }
  uVar8 = 0;
  bVar7 = 0;
  if (iVar6 - 2U < 0x6b) {
    bVar7 = *(byte *)(unaff_EDI + 0x351487 + iVar6);
    uVar8 = (uint)(char)bVar7;
    iVar6 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);
  }
  else {
    iVar6 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);
  }
  if (this_00 == (Symbol *)0x0) {
    iVar6 = *(int *)(iVar6 + 8);
    if (iVar6 != 0) {
      if ((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) {
        return true;
      }
      return (bool)(~bVar7 & 1 | extraout_CL);
    }
LAB_00117b67:
                    /* WARNING: Subroutine does not return */
    do_may_relax(in_stack_ffffffd4);
  }
  bVar7 = *(byte *)(iVar6 + 0x10);
  if (bVar7 == 0) {
    gold::Parameters::doing_static_link((Parameters *)in_stack_ffffffd4,in_stack_ffffffd8);
    goto LAB_00117b67;
  }
  bVar4 = *(byte *)(iVar6 + 0x11);
  if (bVar4 != 0) {
    uVar5 = uVar8 & 1;
    goto LAB_00117920;
  }
  bVar10 = this_00->field_0x2a & 7;
  if ((this_00->field_0x2a & 7) == 0) {
    bVar2 = (byte)this_00->field_0x2b >> 5 & 1;
    local_20 = (this_00->u2_).shndx;
    if ((local_20 == 0) && (bVar2 != 0)) goto LAB_001178e4;
LAB_00117a0c:
    if ((local_20 != 0xfff1) || (bVar2 != 0)) goto LAB_00117a21;
LAB_0011791e:
    uVar5 = uVar8 & 1;
    bVar4 = bVar7;
  }
  else {
    if (bVar10 == 4) {
LAB_001178e4:
      if (*(int *)(iVar6 + 8) == 0) goto LAB_00117b4a;
      if (*(char *)(*(int *)(iVar6 + 8) + 0x1a25) == '\0') goto LAB_0011791e;
      if (bVar10 == 0) {
        bVar2 = (byte)this_00->field_0x2b >> 5 & 1;
        local_20 = (this_00->u2_).shndx;
        goto LAB_00117a0c;
      }
    }
    if (bVar10 == 3) goto LAB_0011791e;
LAB_00117a21:
    uVar5 = uVar8 & 1;
    if (uVar5 != 0) {
      iVar1 = *(int *)(iVar6 + 8);
      if (iVar1 == 0) goto LAB_00117b4a;
      if (*(char *)(iVar1 + 0x1a25) != '\0') goto LAB_0011792b;
      if (*(char *)(iVar1 + 0x2931) != '\0') {
        bVar4 = 0;
        goto LAB_0011792b;
      }
    }
    if (((uVar8 & 8) != 0) && (this_00->plt_offset_ != 0xffffffff)) {
      return (bool)bVar7;
    }
    if ((uVar8 & 0x10) == 0) {
      iVar6 = *(int *)(iVar6 + 8);
      if (iVar6 == 0) {
LAB_00117b4a:
                    /* WARNING: Subroutine does not return */
        gold::do_gold_unreachable
                  ((char *)(unaff_EDI + 0x3309f6),0x5c,(char *)(unaff_EDI + 0x352c01));
      }
      if (((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) &&
         (this_00->plt_offset_ != 0xffffffff)) goto LAB_0011791e;
    }
    if (bVar10 == 0) {
      if ((((uint)((this_00->u1_).output_segment)->output_lists_[3].
                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.
                  _M_impl._M_end_of_storage & 1) == 0) &&
         (((this_00->u2_).shndx != 0 || (bVar4 = 0, (this_00->field_0x2b & 0x20) == 0)))) {
LAB_00117ad7:
        bVar3 = gold::Symbol::is_preemptible(this_00);
        bVar4 = !bVar3;
      }
    }
    else if (bVar10 != 4) goto LAB_00117ad7;
  }
LAB_00117920:
  if (uVar5 == 0) {
    return (bool)bVar4;
  }
LAB_0011792b:
  if (((uVar8 & 8) == 0) || (this_00->plt_offset_ == 0xffffffff)) {
    if ((this_00->field_0x2a & 7) == 0) {
      if (((uint)((this_00->u1_).output_segment)->output_lists_[3].
                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl
                 ._M_end_of_storage & 1) != 0) {
        return (bool)bVar4;
      }
      if (((this_00->u2_).shndx == 0) && ((this_00->field_0x2b & 0x20) != 0)) {
        return (bool)bVar4;
      }
    }
    else if ((this_00->field_0x2a & 7) == 4) {
      return (bool)bVar4;
    }
    bVar3 = gold::Symbol::is_preemptible(this_00);
    bVar7 = bVar4 | !bVar3;
  }
  return (bool)bVar7;
}



uint FUN_00117870(int param_1)

{
  byte bVar1;
  byte bVar2;
  byte bVar3;
  int iVar4;
  int iVar5;
  uint extraout_ECX;
  uint uVar6;
  int iVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  int unaff_EDI;
  undefined8 uVar11;
  uint local_2c;
  int local_20;
  
  uVar11 = FUN_00074f0a();
  iVar7 = (int)((ulonglong)uVar11 >> 0x20);
  iVar4 = (int)uVar11;
  if ((*(byte *)(param_1 + 0x54) & 2) == 0) {
    return 1;
  }
  uVar10 = 0;
  if (iVar7 - 2U < 0x6b) {
    uVar10 = (uint)(char)(&UNK_00351487)[iVar7 + unaff_EDI];
    iVar7 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);
  }
  else {
    iVar7 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);
  }
  if (iVar4 == 0) {
    iVar4 = *(int *)(iVar7 + 8);
    if (iVar4 != 0) {
      if ((*(char *)(iVar4 + 0x1a25) == '\0') && (*(char *)(iVar4 + 0x2931) == '\0')) {
        return 1;
      }
      return ~uVar10 & 1 | extraout_ECX;
    }
LAB_00117b67:
                    /* WARNING: Subroutine does not return */
    FUN_0010cb20();
  }
  bVar1 = *(byte *)(iVar7 + 0x10);
  uVar6 = (uint)bVar1;
  if (bVar1 == 0) {
    FUN_0010caf0();
    goto LAB_00117b67;
  }
  uVar8 = (uint)*(byte *)(iVar7 + 0x11);
  uVar9 = uVar8;
  if (*(byte *)(iVar7 + 0x11) == 0) {
    bVar3 = *(byte *)(iVar4 + 0x2a) & 7;
    uVar9 = uVar6;
    if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {
      bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;
      local_20 = *(int *)(iVar4 + 0xc);
      if ((local_20 == 0) && (bVar2 != 0)) goto LAB_001178e4;
LAB_00117a0c:
      if ((local_20 != 0xfff1) || (bVar2 != 0)) goto LAB_00117a21;
      goto LAB_00117920;
    }
    if (bVar3 == 4) {
LAB_001178e4:
      iVar5 = *(int *)(iVar7 + 8);
      if (iVar5 == 0) goto LAB_00117b4a;
      if (*(char *)(iVar5 + 0x1a25) == '\0') goto LAB_00117920;
      if (bVar3 == 0) {
        bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;
        local_20 = *(int *)(iVar4 + 0xc);
        goto LAB_00117a0c;
      }
    }
    if (bVar3 == 3) goto LAB_00117920;
LAB_00117a21:
    local_2c = uVar10 & 1;
    if (local_2c == 0) {
LAB_00117a60:
      if (((uVar10 & 8) != 0) && (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117a6e;
      if ((uVar10 & 0x10) == 0) {
        iVar5 = *(int *)(iVar7 + 8);
        if (iVar5 == 0) {
LAB_00117b4a:
                    /* WARNING: Subroutine does not return */
          FUN_002446e0(unaff_EDI + 0x3309f6,0x5c,unaff_EDI + 0x352c01,iVar5);
        }
        if (((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) &&
           (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117920;
      }
      if (bVar3 == 0) {
        uVar9 = uVar8;
        if (((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) &&
           ((*(int *)(iVar4 + 0xc) != 0 || (uVar9 = 0, (*(byte *)(iVar4 + 0x2b) & 0x20) == 0)))) {
LAB_00117ad7:
          uVar6 = FUN_00071a80(iVar4);
          uVar9 = uVar6 ^ 1;
        }
      }
      else {
        uVar9 = uVar8;
        if (bVar3 != 4) goto LAB_00117ad7;
      }
      goto LAB_00117920;
    }
    iVar5 = *(int *)(iVar7 + 8);
    if (iVar5 == 0) goto LAB_00117b4a;
    if (*(char *)(iVar5 + 0x1a25) == '\0') {
      if (*(char *)(iVar5 + 0x2931) == '\0') goto LAB_00117a60;
      uVar8 = 0;
    }
  }
  else {
LAB_00117920:
    local_2c = uVar10 & 1;
    uVar8 = uVar9;
    if (local_2c == 0) {
      return uVar9;
    }
  }
  if (((uVar10 & 8) == 0) || (*(int *)(iVar4 + 0x18) == -1)) {
    if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {
      if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) != 0) {
        return uVar8;
      }
      if ((*(int *)(iVar4 + 0xc) == 0) && ((*(byte *)(iVar4 + 0x2b) & 0x20) != 0)) {
        return uVar8;
      }
    }
    else if ((*(byte *)(iVar4 + 0x2a) & 7) == 4) {
      return uVar8;
    }
    uVar10 = FUN_00071a80(iVar4);
    return uVar8 | uVar10 ^ 1;
  }
LAB_00117a6e:
  return (uint)bVar1;
}


PUSH EBP
PUSH EDI
CALL 0x00074f0a
ADD EDI,0x4d2789
PUSH ESI
PUSH EBX
SUB ESP,0x1c
MOV EBX,dword ptr [ESP + 0x30]
TEST byte ptr [EBX + 0x54],0x2
JZ 0x001179b8
LEA EBX,[EDX + -0x2]
XOR EBP,EBP
CMP EBX,0x6a
JBE 0x00117970
MOV ESI,EAX
LEA EAX,[EDI + 0x7c8]
MOV EDX,dword ptr [EAX]
TEST ESI,ESI
JZ 0x0011798a
MOVZX ECX,byte ptr [EDX + 0x10]
TEST CL,CL
JZ 0x00117b62
MOVZX EBX,byte ptr [EDX + 0x11]
TEST BL,BL
JNZ 0x00117a50
MOVZX EAX,byte ptr [ESI + 0x2a]
AND EAX,0x7
MOV byte ptr [ESP + 0x7],AL
JZ 0x001179e0
CMP byte ptr [ESP + 0x7],0x4
JNZ 0x00117b20
MOV EAX,dword ptr [EDX + 0x8]
MOV dword ptr [ESP + 0x8],EAX
TEST EAX,EAX
JZ 0x00117b4a
MOV EAX,EBP
AND EAX,0x1
MOV dword ptr [ESP],EAX
MOV EAX,dword ptr [ESP + 0x8]
CMP byte ptr [EAX + 0x1a25],0x0
JZ 0x0011791e
CMP byte ptr [ESP + 0x7],0x0
JZ 0x00117b30
CMP byte ptr [ESP + 0x7],0x3
JNZ 0x00117a21
MOV EBX,ECX
MOV EDX,dword ptr [ESP]
TEST EDX,EDX
JZ 0x001179a7
AND EBP,0x8
JZ 0x0011793a
CMP dword ptr [ESI + 0x18],-0x1
JNZ 0x00117a6e
MOVZX EAX,byte ptr [ESI + 0x2a]
AND EAX,0x7
JNZ 0x00117b00
MOV EAX,dword ptr [ESI + 0x8]
TEST byte ptr [EAX + 0x2c],0x1
JNZ 0x001179a7
MOV EAX,dword ptr [ESI + 0xc]
TEST EAX,EAX
JNZ 0x0011795d
TEST byte ptr [ESI + 0x2b],0x20
JNZ 0x001179a7
SUB ESP,0xc
PUSH ESI
CALL 0x00071a80
ADD ESP,0x10
XOR EAX,0x1
OR EBX,EAX
JMP 0x001179a7
MOV ESI,EAX
LEA EAX,[EDI + 0x7c8]
MOVSX EBP,byte ptr [EDI + EDX*0x1 + 0xffe7ecfe]
MOV EDX,dword ptr [EAX]
TEST ESI,ESI
JNZ 0x001178b0
MOV EAX,dword ptr [EDX + 0x8]
TEST EAX,EAX
JZ 0x00117b67
CMP byte ptr [EAX + 0x1a25],0x0
JZ 0x001179d0
MOV EBX,EBP
NOT EBX
AND EBX,0x1
OR EBX,ECX
ADD ESP,0x1c
MOV EAX,EBX
POP EBX
POP ESI
POP EDI
POP EBP
RET
ADD ESP,0x1c
MOV EBX,0x1
MOV EAX,EBX
POP EBX
POP ESI
POP EDI
POP EBP
RET
CMP byte ptr [EAX + 0x2931],0x0
MOV EBX,0x1
JZ 0x001179a7
JMP 0x0011799e
MOVZX EAX,byte ptr [ESI + 0x2b]
SHR AL,0x5
AND EAX,0x1
MOV byte ptr [ESP + 0x8],AL
MOV EAX,dword ptr [ESI + 0xc]
MOV dword ptr [ESP + 0xc],EAX
TEST EAX,EAX
JNZ 0x00117a04
CMP byte ptr [ESP + 0x8],0x0
JNZ 0x001178e4
MOV EAX,EBP
AND EAX,0x1
MOV dword ptr [ESP],EAX
CMP dword ptr [ESP + 0xc],0xfff1
JNZ 0x00117a21
CMP byte ptr [ESP + 0x8],0x0
JZ 0x0011791e
MOV EAX,dword ptr [ESP]
TEST EAX,EAX
JZ 0x00117a60
MOV EAX,dword ptr [EDX + 0x8]
TEST EAX,EAX
JZ 0x00117b4a
CMP byte ptr [EAX + 0x1a25],0x0
JNZ 0x0011792b
CMP byte ptr [EAX + 0x2931],0x0
JZ 0x00117a60
XOR EBX,EBX
JMP 0x0011792b
MOV EAX,EBP
AND EAX,0x1
MOV dword ptr [ESP],EAX
JMP 0x00117920
TEST EBP,0x8
JZ 0x00117a78
CMP dword ptr [ESI + 0x18],-0x1
JZ 0x00117a78
MOV EBX,ECX
JMP 0x001179a7
TEST EBP,0x10
JNZ 0x00117ab0
MOV EAX,dword ptr [EDX + 0x8]
TEST EAX,EAX
JZ 0x00117b4a
CMP byte ptr [EAX + 0x1a25],0x0
JNZ 0x00117ab0
CMP byte ptr [EAX + 0x2931],0x0
JNZ 0x00117ab0
CMP dword ptr [ESI + 0x18],-0x1
JNZ 0x0011791e
LEA ESI,[ESI]
NOP
CMP byte ptr [ESP + 0x7],0x0
JNZ 0x00117b10
MOV EAX,dword ptr [ESI + 0x8]
TEST byte ptr [EAX + 0x2c],0x1
JNZ 0x00117920
MOV EBX,dword ptr [ESI + 0xc]
TEST EBX,EBX
JNZ 0x00117ad7
XOR EBX,EBX
TEST byte ptr [ESI + 0x2b],0x20
JNZ 0x00117920
MOV byte ptr [ESP + 0x7],CL
SUB ESP,0xc
PUSH ESI
CALL 0x00071a80
ADD ESP,0x10
MOVZX ECX,byte ptr [ESP + 0x7]
XOR EAX,0x1
MOV EBX,EAX
JMP 0x00117920
CMP AL,0x4
JZ 0x001179a7
JMP 0x0011795d
CMP byte ptr [ESP + 0x7],0x4
JZ 0x00117920
JMP 0x00117ad7
MOV EAX,EBP
AND EAX,0x1
MOV dword ptr [ESP],EAX
JMP 0x00117913
MOVZX EAX,byte ptr [ESI + 0x2b]
SHR AL,0x5
AND EAX,0x1
MOV byte ptr [ESP + 0x8],AL
MOV EAX,dword ptr [ESI + 0xc]
MOV dword ptr [ESP + 0xc],EAX
JMP 0x00117a0c
PUSH EAX
LEA EAX,[EDI + 0xffe80478]
MOV EBX,EDI
PUSH EAX
LEA EAX,[EDI + 0xffe5e26d]
PUSH 0x5c
PUSH EAX
CALL 0x002446e0
CALL 0x0010caf0
CALL 0x0010cb20
(translation_unit "uint FUN_00117870(int param_1)\n\n{\n  byte bVar1;\n  byte bVar2;\n  byte bVar3;\n  int iVar4;\n  int iVar5;\n  uint extraout_ECX;\n  uint uVar6;\n  int iVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  int unaff_EDI;\n  undefined8 uVar11;\n  uint local_2c;\n  int local_20;\n  \n  uVar11 = FUN_00074f0a();\n  iVar7 = (int)((ulonglong)uVar11 >> 0x20);\n  iVar4 = (int)uVar11;\n  if ((*(byte *)(param_1 + 0x54) & 2) == 0) {\n    return 1;\n  }\n  uVar10 = 0;\n  if (iVar7 - 2U < 0x6b) {\n    uVar10 = (uint)(char)(&UNK_00351487)[iVar7 + unaff_EDI];\n    iVar7 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);\n  }\n  else {\n    iVar7 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);\n  }\n  if (iVar4 == 0) {\n    iVar4 = *(int *)(iVar7 + 8);\n    if (iVar4 != 0) {\n      if ((*(char *)(iVar4 + 0x1a25) == '\0') && (*(char *)(iVar4 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar10 & 1 | extraout_ECX;\n    }\nLAB_00117b67:\n                    /* WARNING: Subroutine does not return */\n    FUN_0010cb20();\n  }\n  bVar1 = *(byte *)(iVar7 + 0x10);\n  uVar6 = (uint)bVar1;\n  if (bVar1 == 0) {\n    FUN_0010caf0();\n    goto LAB_00117b67;\n  }\n  uVar8 = (uint)*(byte *)(iVar7 + 0x11);\n  uVar9 = uVar8;\n  if (*(byte *)(iVar7 + 0x11) == 0) {\n    bVar3 = *(byte *)(iVar4 + 0x2a) & 7;\n    uVar9 = uVar6;\n    if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n      bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;\n      local_20 = *(int *)(iVar4 + 0xc);\n      if ((local_20 == 0) && (bVar2 != 0)) goto LAB_001178e4;\nLAB_00117a0c:\n      if ((local_20 != 0xfff1) || (bVar2 != 0)) goto LAB_00117a21;\n      goto LAB_00117920;\n    }\n    if (bVar3 == 4) {\nLAB_001178e4:\n      iVar5 = *(int *)(iVar7 + 8);\n      if (iVar5 == 0) goto LAB_00117b4a;\n      if (*(char *)(iVar5 + 0x1a25) == '\0') goto LAB_00117920;\n      if (bVar3 == 0) {\n        bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;\n        local_20 = *(int *)(iVar4 + 0xc);\n        goto LAB_00117a0c;\n      }\n    }\n    if (bVar3 == 3) goto LAB_00117920;\nLAB_00117a21:\n    local_2c = uVar10 & 1;\n    if (local_2c == 0) {\nLAB_00117a60:\n      if (((uVar10 & 8) != 0) && (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117a6e;\n      if ((uVar10 & 0x10) == 0) {\n        iVar5 = *(int *)(iVar7 + 8);\n        if (iVar5 == 0) {\nLAB_00117b4a:\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0(unaff_EDI + 0x3309f6,0x5c,unaff_EDI + 0x352c01,iVar5);\n        }\n        if (((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) &&\n           (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117920;\n      }\n      if (bVar3 == 0) {\n        uVar9 = uVar8;\n        if (((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar4 + 0xc) != 0 || (uVar9 = 0, (*(byte *)(iVar4 + 0x2b) & 0x20) == 0)))) {\nLAB_00117ad7:\n          uVar6 = FUN_00071a80(iVar4);\n          uVar9 = uVar6 ^ 1;\n        }\n      }\n      else {\n        uVar9 = uVar8;\n        if (bVar3 != 4) goto LAB_00117ad7;\n      }\n      goto LAB_00117920;\n    }\n    iVar5 = *(int *)(iVar7 + 8);\n    if (iVar5 == 0) goto LAB_00117b4a;\n    if (*(char *)(iVar5 + 0x1a25) == '\0') {\n      if (*(char *)(iVar5 + 0x2931) == '\0') goto LAB_00117a60;\n      uVar8 = 0;\n    }\n  }\n  else {\nLAB_00117920:\n    local_2c = uVar10 & 1;\n    uVar8 = uVar9;\n    if (local_2c == 0) {\n      return uVar9;\n    }\n  }\n  if (((uVar10 & 8) == 0) || (*(int *)(iVar4 + 0x18) == -1)) {\n    if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n      if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) != 0) {\n        return uVar8;\n      }\n      if ((*(int *)(iVar4 + 0xc) == 0) && ((*(byte *)(iVar4 + 0x2b) & 0x20) != 0)) {\n        return uVar8;\n      }\n    }\n    else if ((*(byte *)(iVar4 + 0x2a) & 7) == 4) {\n      return uVar8;\n    }\n    uVar10 = FUN_00071a80(iVar4);\n    return uVar8 | uVar10 ^ 1;\n  }\nLAB_00117a6e:\n  return (uint)bVar1;\n}\n\n" (function_definition "uint FUN_00117870(int param_1)\n\n{\n  byte bVar1;\n  byte bVar2;\n  byte bVar3;\n  int iVar4;\n  int iVar5;\n  uint extraout_ECX;\n  uint uVar6;\n  int iVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  int unaff_EDI;\n  undefined8 uVar11;\n  uint local_2c;\n  int local_20;\n  \n  uVar11 = FUN_00074f0a();\n  iVar7 = (int)((ulonglong)uVar11 >> 0x20);\n  iVar4 = (int)uVar11;\n  if ((*(byte *)(param_1 + 0x54) & 2) == 0) {\n    return 1;\n  }\n  uVar10 = 0;\n  if (iVar7 - 2U < 0x6b) {\n    uVar10 = (uint)(char)(&UNK_00351487)[iVar7 + unaff_EDI];\n    iVar7 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);\n  }\n  else {\n    iVar7 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);\n  }\n  if (iVar4 == 0) {\n    iVar4 = *(int *)(iVar7 + 8);\n    if (iVar4 != 0) {\n      if ((*(char *)(iVar4 + 0x1a25) == '\0') && (*(char *)(iVar4 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar10 & 1 | extraout_ECX;\n    }\nLAB_00117b67:\n                    /* WARNING: Subroutine does not return */\n    FUN_0010cb20();\n  }\n  bVar1 = *(byte *)(iVar7 + 0x10);\n  uVar6 = (uint)bVar1;\n  if (bVar1 == 0) {\n    FUN_0010caf0();\n    goto LAB_00117b67;\n  }\n  uVar8 = (uint)*(byte *)(iVar7 + 0x11);\n  uVar9 = uVar8;\n  if (*(byte *)(iVar7 + 0x11) == 0) {\n    bVar3 = *(byte *)(iVar4 + 0x2a) & 7;\n    uVar9 = uVar6;\n    if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n      bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;\n      local_20 = *(int *)(iVar4 + 0xc);\n      if ((local_20 == 0) && (bVar2 != 0)) goto LAB_001178e4;\nLAB_00117a0c:\n      if ((local_20 != 0xfff1) || (bVar2 != 0)) goto LAB_00117a21;\n      goto LAB_00117920;\n    }\n    if (bVar3 == 4) {\nLAB_001178e4:\n      iVar5 = *(int *)(iVar7 + 8);\n      if (iVar5 == 0) goto LAB_00117b4a;\n      if (*(char *)(iVar5 + 0x1a25) == '\0') goto LAB_00117920;\n      if (bVar3 == 0) {\n        bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;\n        local_20 = *(int *)(iVar4 + 0xc);\n        goto LAB_00117a0c;\n      }\n    }\n    if (bVar3 == 3) goto LAB_00117920;\nLAB_00117a21:\n    local_2c = uVar10 & 1;\n    if (local_2c == 0) {\nLAB_00117a60:\n      if (((uVar10 & 8) != 0) && (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117a6e;\n      if ((uVar10 & 0x10) == 0) {\n        iVar5 = *(int *)(iVar7 + 8);\n        if (iVar5 == 0) {\nLAB_00117b4a:\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0(unaff_EDI + 0x3309f6,0x5c,unaff_EDI + 0x352c01,iVar5);\n        }\n        if (((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) &&\n           (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117920;\n      }\n      if (bVar3 == 0) {\n        uVar9 = uVar8;\n        if (((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar4 + 0xc) != 0 || (uVar9 = 0, (*(byte *)(iVar4 + 0x2b) & 0x20) == 0)))) {\nLAB_00117ad7:\n          uVar6 = FUN_00071a80(iVar4);\n          uVar9 = uVar6 ^ 1;\n        }\n      }\n      else {\n        uVar9 = uVar8;\n        if (bVar3 != 4) goto LAB_00117ad7;\n      }\n      goto LAB_00117920;\n    }\n    iVar5 = *(int *)(iVar7 + 8);\n    if (iVar5 == 0) goto LAB_00117b4a;\n    if (*(char *)(iVar5 + 0x1a25) == '\0') {\n      if (*(char *)(iVar5 + 0x2931) == '\0') goto LAB_00117a60;\n      uVar8 = 0;\n    }\n  }\n  else {\nLAB_00117920:\n    local_2c = uVar10 & 1;\n    uVar8 = uVar9;\n    if (local_2c == 0) {\n      return uVar9;\n    }\n  }\n  if (((uVar10 & 8) == 0) || (*(int *)(iVar4 + 0x18) == -1)) {\n    if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n      if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) != 0) {\n        return uVar8;\n      }\n      if ((*(int *)(iVar4 + 0xc) == 0) && ((*(byte *)(iVar4 + 0x2b) & 0x20) != 0)) {\n        return uVar8;\n      }\n    }\n    else if ((*(byte *)(iVar4 + 0x2a) & 7) == 4) {\n      return uVar8;\n    }\n    uVar10 = FUN_00071a80(iVar4);\n    return uVar8 | uVar10 ^ 1;\n  }\nLAB_00117a6e:\n  return (uint)bVar1;\n}" type_identifier (function_declarator "FUN_00117870(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  byte bVar2;\n  byte bVar3;\n  int iVar4;\n  int iVar5;\n  uint extraout_ECX;\n  uint uVar6;\n  int iVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  int unaff_EDI;\n  undefined8 uVar11;\n  uint local_2c;\n  int local_20;\n  \n  uVar11 = FUN_00074f0a();\n  iVar7 = (int)((ulonglong)uVar11 >> 0x20);\n  iVar4 = (int)uVar11;\n  if ((*(byte *)(param_1 + 0x54) & 2) == 0) {\n    return 1;\n  }\n  uVar10 = 0;\n  if (iVar7 - 2U < 0x6b) {\n    uVar10 = (uint)(char)(&UNK_00351487)[iVar7 + unaff_EDI];\n    iVar7 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);\n  }\n  else {\n    iVar7 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);\n  }\n  if (iVar4 == 0) {\n    iVar4 = *(int *)(iVar7 + 8);\n    if (iVar4 != 0) {\n      if ((*(char *)(iVar4 + 0x1a25) == '\0') && (*(char *)(iVar4 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar10 & 1 | extraout_ECX;\n    }\nLAB_00117b67:\n                    /* WARNING: Subroutine does not return */\n    FUN_0010cb20();\n  }\n  bVar1 = *(byte *)(iVar7 + 0x10);\n  uVar6 = (uint)bVar1;\n  if (bVar1 == 0) {\n    FUN_0010caf0();\n    goto LAB_00117b67;\n  }\n  uVar8 = (uint)*(byte *)(iVar7 + 0x11);\n  uVar9 = uVar8;\n  if (*(byte *)(iVar7 + 0x11) == 0) {\n    bVar3 = *(byte *)(iVar4 + 0x2a) & 7;\n    uVar9 = uVar6;\n    if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n      bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;\n      local_20 = *(int *)(iVar4 + 0xc);\n      if ((local_20 == 0) && (bVar2 != 0)) goto LAB_001178e4;\nLAB_00117a0c:\n      if ((local_20 != 0xfff1) || (bVar2 != 0)) goto LAB_00117a21;\n      goto LAB_00117920;\n    }\n    if (bVar3 == 4) {\nLAB_001178e4:\n      iVar5 = *(int *)(iVar7 + 8);\n      if (iVar5 == 0) goto LAB_00117b4a;\n      if (*(char *)(iVar5 + 0x1a25) == '\0') goto LAB_00117920;\n      if (bVar3 == 0) {\n        bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;\n        local_20 = *(int *)(iVar4 + 0xc);\n        goto LAB_00117a0c;\n      }\n    }\n    if (bVar3 == 3) goto LAB_00117920;\nLAB_00117a21:\n    local_2c = uVar10 & 1;\n    if (local_2c == 0) {\nLAB_00117a60:\n      if (((uVar10 & 8) != 0) && (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117a6e;\n      if ((uVar10 & 0x10) == 0) {\n        iVar5 = *(int *)(iVar7 + 8);\n        if (iVar5 == 0) {\nLAB_00117b4a:\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0(unaff_EDI + 0x3309f6,0x5c,unaff_EDI + 0x352c01,iVar5);\n        }\n        if (((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) &&\n           (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117920;\n      }\n      if (bVar3 == 0) {\n        uVar9 = uVar8;\n        if (((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar4 + 0xc) != 0 || (uVar9 = 0, (*(byte *)(iVar4 + 0x2b) & 0x20) == 0)))) {\nLAB_00117ad7:\n          uVar6 = FUN_00071a80(iVar4);\n          uVar9 = uVar6 ^ 1;\n        }\n      }\n      else {\n        uVar9 = uVar8;\n        if (bVar3 != 4) goto LAB_00117ad7;\n      }\n      goto LAB_00117920;\n    }\n    iVar5 = *(int *)(iVar7 + 8);\n    if (iVar5 == 0) goto LAB_00117b4a;\n    if (*(char *)(iVar5 + 0x1a25) == '\0') {\n      if (*(char *)(iVar5 + 0x2931) == '\0') goto LAB_00117a60;\n      uVar8 = 0;\n    }\n  }\n  else {\nLAB_00117920:\n    local_2c = uVar10 & 1;\n    uVar8 = uVar9;\n    if (local_2c == 0) {\n      return uVar9;\n    }\n  }\n  if (((uVar10 & 8) == 0) || (*(int *)(iVar4 + 0x18) == -1)) {\n    if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n      if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) != 0) {\n        return uVar8;\n      }\n      if ((*(int *)(iVar4 + 0xc) == 0) && ((*(byte *)(iVar4 + 0x2b) & 0x20) != 0)) {\n        return uVar8;\n      }\n    }\n    else if ((*(byte *)(iVar4 + 0x2a) & 7) == 4) {\n      return uVar8;\n    }\n    uVar10 = FUN_00071a80(iVar4);\n    return uVar8 | uVar10 ^ 1;\n  }\nLAB_00117a6e:\n  return (uint)bVar1;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint extraout_ECX;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "undefined8 uVar11;" type_identifier identifier ;) (declaration "uint local_2c;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "uVar11 = FUN_00074f0a();" (assignment_expression "uVar11 = FUN_00074f0a()" identifier = (call_expression "FUN_00074f0a()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar7 = (int)((ulonglong)uVar11 >> 0x20);" (assignment_expression "iVar7 = (int)((ulonglong)uVar11 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)uVar11 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar11 >> 0x20)" ( (binary_expression "(ulonglong)uVar11 >> 0x20" (cast_expression "(ulonglong)uVar11" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "iVar4 = (int)uVar11;" (assignment_expression "iVar4 = (int)uVar11" identifier = (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if ((*(byte *)(param_1 + 0x54) & 2) == 0) {\n    return 1;\n  }" if (parenthesized_expression "((*(byte *)(param_1 + 0x54) & 2) == 0)" ( (binary_expression "(*(byte *)(param_1 + 0x54) & 2) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0x54) & 2)" ( (binary_expression "*(byte *)(param_1 + 0x54) & 2" (pointer_expression "*(byte *)(param_1 + 0x54)" * (cast_expression "(byte *)(param_1 + 0x54)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (if_statement "if (iVar7 - 2U < 0x6b) {\n    uVar10 = (uint)(char)(&UNK_00351487)[iVar7 + unaff_EDI];\n    iVar7 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);\n  }\n  else {\n    iVar7 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);\n  }" if (parenthesized_expression "(iVar7 - 2U < 0x6b)" ( (binary_expression "iVar7 - 2U < 0x6b" (binary_expression "iVar7 - 2U" identifier - number_literal) < number_literal) )) (compound_statement "{\n    uVar10 = (uint)(char)(&UNK_00351487)[iVar7 + unaff_EDI];\n    iVar7 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);\n  }" { (expression_statement "uVar10 = (uint)(char)(&UNK_00351487)[iVar7 + unaff_EDI];" (assignment_expression "uVar10 = (uint)(char)(&UNK_00351487)[iVar7 + unaff_EDI]" identifier = (subscript_expression "(uint)(char)(&UNK_00351487)[iVar7 + unaff_EDI]" (call_expression "(uint)(char)(&UNK_00351487)" (call_expression "(uint)(char)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(char)" ( identifier ))) (argument_list "(&UNK_00351487)" ( (pointer_expression "&UNK_00351487" & identifier) ))) [ (binary_expression "iVar7 + unaff_EDI" identifier + identifier) ])) ;) (expression_statement "iVar7 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);" (assignment_expression "iVar7 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1)" identifier = (pointer_expression "*(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1)" * (cast_expression "(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&DWORD_004d2f50 + unaff_EDI + 1)" ( (binary_expression "(int)&DWORD_004d2f50 + unaff_EDI + 1" (binary_expression "(int)&DWORD_004d2f50 + unaff_EDI" (cast_expression "(int)&DWORD_004d2f50" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&DWORD_004d2f50" & identifier)) + identifier) + number_literal) ))))) ;) }) (else_clause "else {\n    iVar7 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);\n  }" else (compound_statement "{\n    iVar7 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);\n  }" { (expression_statement "iVar7 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);" (assignment_expression "iVar7 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1)" identifier = (pointer_expression "*(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1)" * (cast_expression "(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&DWORD_004d2f50 + unaff_EDI + 1)" ( (binary_expression "(int)&DWORD_004d2f50 + unaff_EDI + 1" (binary_expression "(int)&DWORD_004d2f50 + unaff_EDI" (cast_expression "(int)&DWORD_004d2f50" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&DWORD_004d2f50" & identifier)) + identifier) + number_literal) ))))) ;) }))) (if_statement "if (iVar4 == 0) {\n    iVar4 = *(int *)(iVar7 + 8);\n    if (iVar4 != 0) {\n      if ((*(char *)(iVar4 + 0x1a25) == '\0') && (*(char *)(iVar4 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar10 & 1 | extraout_ECX;\n    }\nLAB_00117b67:\n                    /* WARNING: Subroutine does not return */\n    FUN_0010cb20();\n  }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar4 = *(int *)(iVar7 + 8);\n    if (iVar4 != 0) {\n      if ((*(char *)(iVar4 + 0x1a25) == '\0') && (*(char *)(iVar4 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar10 & 1 | extraout_ECX;\n    }\nLAB_00117b67:\n                    /* WARNING: Subroutine does not return */\n    FUN_0010cb20();\n  }" { (expression_statement "iVar4 = *(int *)(iVar7 + 8);" (assignment_expression "iVar4 = *(int *)(iVar7 + 8)" identifier = (pointer_expression "*(int *)(iVar7 + 8)" * (cast_expression "(int *)(iVar7 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 8)" ( (binary_expression "iVar7 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar4 != 0) {\n      if ((*(char *)(iVar4 + 0x1a25) == '\0') && (*(char *)(iVar4 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar10 & 1 | extraout_ECX;\n    }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      if ((*(char *)(iVar4 + 0x1a25) == '\0') && (*(char *)(iVar4 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar10 & 1 | extraout_ECX;\n    }" { (if_statement "if ((*(char *)(iVar4 + 0x1a25) == '\0') && (*(char *)(iVar4 + 0x2931) == '\0')) {\n        return 1;\n      }" if (parenthesized_expression "((*(char *)(iVar4 + 0x1a25) == '\0') && (*(char *)(iVar4 + 0x2931) == '\0'))" ( (binary_expression "(*(char *)(iVar4 + 0x1a25) == '\0') && (*(char *)(iVar4 + 0x2931) == '\0')" (parenthesized_expression "(*(char *)(iVar4 + 0x1a25) == '\0')" ( (binary_expression "*(char *)(iVar4 + 0x1a25) == '\0'" (pointer_expression "*(char *)(iVar4 + 0x1a25)" * (cast_expression "(char *)(iVar4 + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1a25)" ( (binary_expression "iVar4 + 0x1a25" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(char *)(iVar4 + 0x2931) == '\0')" ( (binary_expression "*(char *)(iVar4 + 0x2931) == '\0'" (pointer_expression "*(char *)(iVar4 + 0x2931)" * (cast_expression "(char *)(iVar4 + 0x2931)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2931)" ( (binary_expression "iVar4 + 0x2931" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (return_statement "return ~uVar10 & 1 | extraout_ECX;" return (binary_expression "~uVar10 & 1 | extraout_ECX" (binary_expression "~uVar10 & 1" (unary_expression "~uVar10" ~ identifier) & number_literal) | identifier) ;) })) (labeled_statement "LAB_00117b67:\n                    /* WARNING: Subroutine does not return */\n    FUN_0010cb20();" statement_identifier : comment (expression_statement "FUN_0010cb20();" (call_expression "FUN_0010cb20()" identifier (argument_list "()" ( ))) ;)) })) (expression_statement "bVar1 = *(byte *)(iVar7 + 0x10);" (assignment_expression "bVar1 = *(byte *)(iVar7 + 0x10)" identifier = (pointer_expression "*(byte *)(iVar7 + 0x10)" * (cast_expression "(byte *)(iVar7 + 0x10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar6 = (uint)bVar1;" (assignment_expression "uVar6 = (uint)bVar1" identifier = (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (bVar1 == 0) {\n    FUN_0010caf0();\n    goto LAB_00117b67;\n  }" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    FUN_0010caf0();\n    goto LAB_00117b67;\n  }" { (expression_statement "FUN_0010caf0();" (call_expression "FUN_0010caf0()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_00117b67;" goto statement_identifier ;) })) (expression_statement "uVar8 = (uint)*(byte *)(iVar7 + 0x11);" (assignment_expression "uVar8 = (uint)*(byte *)(iVar7 + 0x11)" identifier = (binary_expression "(uint)*(byte *)(iVar7 + 0x11)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar7 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x11)" ( (binary_expression "iVar7 + 0x11" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = uVar8;" (assignment_expression "uVar9 = uVar8" identifier = identifier) ;) (if_statement "if (*(byte *)(iVar7 + 0x11) == 0) {\n    bVar3 = *(byte *)(iVar4 + 0x2a) & 7;\n    uVar9 = uVar6;\n    if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n      bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;\n      local_20 = *(int *)(iVar4 + 0xc);\n      if ((local_20 == 0) && (bVar2 != 0)) goto LAB_001178e4;\nLAB_00117a0c:\n      if ((local_20 != 0xfff1) || (bVar2 != 0)) goto LAB_00117a21;\n      goto LAB_00117920;\n    }\n    if (bVar3 == 4) {\nLAB_001178e4:\n      iVar5 = *(int *)(iVar7 + 8);\n      if (iVar5 == 0) goto LAB_00117b4a;\n      if (*(char *)(iVar5 + 0x1a25) == '\0') goto LAB_00117920;\n      if (bVar3 == 0) {\n        bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;\n        local_20 = *(int *)(iVar4 + 0xc);\n        goto LAB_00117a0c;\n      }\n    }\n    if (bVar3 == 3) goto LAB_00117920;\nLAB_00117a21:\n    local_2c = uVar10 & 1;\n    if (local_2c == 0) {\nLAB_00117a60:\n      if (((uVar10 & 8) != 0) && (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117a6e;\n      if ((uVar10 & 0x10) == 0) {\n        iVar5 = *(int *)(iVar7 + 8);\n        if (iVar5 == 0) {\nLAB_00117b4a:\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0(unaff_EDI + 0x3309f6,0x5c,unaff_EDI + 0x352c01,iVar5);\n        }\n        if (((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) &&\n           (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117920;\n      }\n      if (bVar3 == 0) {\n        uVar9 = uVar8;\n        if (((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar4 + 0xc) != 0 || (uVar9 = 0, (*(byte *)(iVar4 + 0x2b) & 0x20) == 0)))) {\nLAB_00117ad7:\n          uVar6 = FUN_00071a80(iVar4);\n          uVar9 = uVar6 ^ 1;\n        }\n      }\n      else {\n        uVar9 = uVar8;\n        if (bVar3 != 4) goto LAB_00117ad7;\n      }\n      goto LAB_00117920;\n    }\n    iVar5 = *(int *)(iVar7 + 8);\n    if (iVar5 == 0) goto LAB_00117b4a;\n    if (*(char *)(iVar5 + 0x1a25) == '\0') {\n      if (*(char *)(iVar5 + 0x2931) == '\0') goto LAB_00117a60;\n      uVar8 = 0;\n    }\n  }\n  else {\nLAB_00117920:\n    local_2c = uVar10 & 1;\n    uVar8 = uVar9;\n    if (local_2c == 0) {\n      return uVar9;\n    }\n  }" if (parenthesized_expression "(*(byte *)(iVar7 + 0x11) == 0)" ( (binary_expression "*(byte *)(iVar7 + 0x11) == 0" (pointer_expression "*(byte *)(iVar7 + 0x11)" * (cast_expression "(byte *)(iVar7 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x11)" ( (binary_expression "iVar7 + 0x11" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    bVar3 = *(byte *)(iVar4 + 0x2a) & 7;\n    uVar9 = uVar6;\n    if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n      bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;\n      local_20 = *(int *)(iVar4 + 0xc);\n      if ((local_20 == 0) && (bVar2 != 0)) goto LAB_001178e4;\nLAB_00117a0c:\n      if ((local_20 != 0xfff1) || (bVar2 != 0)) goto LAB_00117a21;\n      goto LAB_00117920;\n    }\n    if (bVar3 == 4) {\nLAB_001178e4:\n      iVar5 = *(int *)(iVar7 + 8);\n      if (iVar5 == 0) goto LAB_00117b4a;\n      if (*(char *)(iVar5 + 0x1a25) == '\0') goto LAB_00117920;\n      if (bVar3 == 0) {\n        bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;\n        local_20 = *(int *)(iVar4 + 0xc);\n        goto LAB_00117a0c;\n      }\n    }\n    if (bVar3 == 3) goto LAB_00117920;\nLAB_00117a21:\n    local_2c = uVar10 & 1;\n    if (local_2c == 0) {\nLAB_00117a60:\n      if (((uVar10 & 8) != 0) && (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117a6e;\n      if ((uVar10 & 0x10) == 0) {\n        iVar5 = *(int *)(iVar7 + 8);\n        if (iVar5 == 0) {\nLAB_00117b4a:\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0(unaff_EDI + 0x3309f6,0x5c,unaff_EDI + 0x352c01,iVar5);\n        }\n        if (((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) &&\n           (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117920;\n      }\n      if (bVar3 == 0) {\n        uVar9 = uVar8;\n        if (((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar4 + 0xc) != 0 || (uVar9 = 0, (*(byte *)(iVar4 + 0x2b) & 0x20) == 0)))) {\nLAB_00117ad7:\n          uVar6 = FUN_00071a80(iVar4);\n          uVar9 = uVar6 ^ 1;\n        }\n      }\n      else {\n        uVar9 = uVar8;\n        if (bVar3 != 4) goto LAB_00117ad7;\n      }\n      goto LAB_00117920;\n    }\n    iVar5 = *(int *)(iVar7 + 8);\n    if (iVar5 == 0) goto LAB_00117b4a;\n    if (*(char *)(iVar5 + 0x1a25) == '\0') {\n      if (*(char *)(iVar5 + 0x2931) == '\0') goto LAB_00117a60;\n      uVar8 = 0;\n    }\n  }" { (expression_statement "bVar3 = *(byte *)(iVar4 + 0x2a) & 7;" (assignment_expression "bVar3 = *(byte *)(iVar4 + 0x2a) & 7" identifier = (binary_expression "*(byte *)(iVar4 + 0x2a) & 7" (pointer_expression "*(byte *)(iVar4 + 0x2a)" * (cast_expression "(byte *)(iVar4 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2a)" ( (binary_expression "iVar4 + 0x2a" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "uVar9 = uVar6;" (assignment_expression "uVar9 = uVar6" identifier = identifier) ;) (if_statement "if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n      bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;\n      local_20 = *(int *)(iVar4 + 0xc);\n      if ((local_20 == 0) && (bVar2 != 0)) goto LAB_001178e4;\nLAB_00117a0c:\n      if ((local_20 != 0xfff1) || (bVar2 != 0)) goto LAB_00117a21;\n      goto LAB_00117920;\n    }" if (parenthesized_expression "((*(byte *)(iVar4 + 0x2a) & 7) == 0)" ( (binary_expression "(*(byte *)(iVar4 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)(iVar4 + 0x2a) & 7)" ( (binary_expression "*(byte *)(iVar4 + 0x2a) & 7" (pointer_expression "*(byte *)(iVar4 + 0x2a)" * (cast_expression "(byte *)(iVar4 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2a)" ( (binary_expression "iVar4 + 0x2a" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;\n      local_20 = *(int *)(iVar4 + 0xc);\n      if ((local_20 == 0) && (bVar2 != 0)) goto LAB_001178e4;\nLAB_00117a0c:\n      if ((local_20 != 0xfff1) || (bVar2 != 0)) goto LAB_00117a21;\n      goto LAB_00117920;\n    }" { (expression_statement "bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;" (assignment_expression "bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1" identifier = (binary_expression "*(byte *)(iVar4 + 0x2b) >> 5 & 1" (binary_expression "*(byte *)(iVar4 + 0x2b) >> 5" (pointer_expression "*(byte *)(iVar4 + 0x2b)" * (cast_expression "(byte *)(iVar4 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2b)" ( (binary_expression "iVar4 + 0x2b" identifier + number_literal) )))) >> number_literal) & number_literal)) ;) (expression_statement "local_20 = *(int *)(iVar4 + 0xc);" (assignment_expression "local_20 = *(int *)(iVar4 + 0xc)" identifier = (pointer_expression "*(int *)(iVar4 + 0xc)" * (cast_expression "(int *)(iVar4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if ((local_20 == 0) && (bVar2 != 0)) goto LAB_001178e4;" if (parenthesized_expression "((local_20 == 0) && (bVar2 != 0))" ( (binary_expression "(local_20 == 0) && (bVar2 != 0)" (parenthesized_expression "(local_20 == 0)" ( (binary_expression "local_20 == 0" identifier == number_literal) )) && (parenthesized_expression "(bVar2 != 0)" ( (binary_expression "bVar2 != 0" identifier != number_literal) ))) )) (goto_statement "goto LAB_001178e4;" goto statement_identifier ;)) (labeled_statement "LAB_00117a0c:\n      if ((local_20 != 0xfff1) || (bVar2 != 0)) goto LAB_00117a21;" statement_identifier : (if_statement "if ((local_20 != 0xfff1) || (bVar2 != 0)) goto LAB_00117a21;" if (parenthesized_expression "((local_20 != 0xfff1) || (bVar2 != 0))" ( (binary_expression "(local_20 != 0xfff1) || (bVar2 != 0)" (parenthesized_expression "(local_20 != 0xfff1)" ( (binary_expression "local_20 != 0xfff1" identifier != number_literal) )) || (parenthesized_expression "(bVar2 != 0)" ( (binary_expression "bVar2 != 0" identifier != number_literal) ))) )) (goto_statement "goto LAB_00117a21;" goto statement_identifier ;))) (goto_statement "goto LAB_00117920;" goto statement_identifier ;) })) (if_statement "if (bVar3 == 4) {\nLAB_001178e4:\n      iVar5 = *(int *)(iVar7 + 8);\n      if (iVar5 == 0) goto LAB_00117b4a;\n      if (*(char *)(iVar5 + 0x1a25) == '\0') goto LAB_00117920;\n      if (bVar3 == 0) {\n        bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;\n        local_20 = *(int *)(iVar4 + 0xc);\n        goto LAB_00117a0c;\n      }\n    }" if (parenthesized_expression "(bVar3 == 4)" ( (binary_expression "bVar3 == 4" identifier == number_literal) )) (compound_statement "{\nLAB_001178e4:\n      iVar5 = *(int *)(iVar7 + 8);\n      if (iVar5 == 0) goto LAB_00117b4a;\n      if (*(char *)(iVar5 + 0x1a25) == '\0') goto LAB_00117920;\n      if (bVar3 == 0) {\n        bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;\n        local_20 = *(int *)(iVar4 + 0xc);\n        goto LAB_00117a0c;\n      }\n    }" { (labeled_statement "LAB_001178e4:\n      iVar5 = *(int *)(iVar7 + 8);" statement_identifier : (expression_statement "iVar5 = *(int *)(iVar7 + 8);" (assignment_expression "iVar5 = *(int *)(iVar7 + 8)" identifier = (pointer_expression "*(int *)(iVar7 + 8)" * (cast_expression "(int *)(iVar7 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 8)" ( (binary_expression "iVar7 + 8" identifier + number_literal) ))))) ;)) (if_statement "if (iVar5 == 0) goto LAB_00117b4a;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00117b4a;" goto statement_identifier ;)) (if_statement "if (*(char *)(iVar5 + 0x1a25) == '\0') goto LAB_00117920;" if (parenthesized_expression "(*(char *)(iVar5 + 0x1a25) == '\0')" ( (binary_expression "*(char *)(iVar5 + 0x1a25) == '\0'" (pointer_expression "*(char *)(iVar5 + 0x1a25)" * (cast_expression "(char *)(iVar5 + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x1a25)" ( (binary_expression "iVar5 + 0x1a25" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00117920;" goto statement_identifier ;)) (if_statement "if (bVar3 == 0) {\n        bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;\n        local_20 = *(int *)(iVar4 + 0xc);\n        goto LAB_00117a0c;\n      }" if (parenthesized_expression "(bVar3 == 0)" ( (binary_expression "bVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;\n        local_20 = *(int *)(iVar4 + 0xc);\n        goto LAB_00117a0c;\n      }" { (expression_statement "bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;" (assignment_expression "bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1" identifier = (binary_expression "*(byte *)(iVar4 + 0x2b) >> 5 & 1" (binary_expression "*(byte *)(iVar4 + 0x2b) >> 5" (pointer_expression "*(byte *)(iVar4 + 0x2b)" * (cast_expression "(byte *)(iVar4 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2b)" ( (binary_expression "iVar4 + 0x2b" identifier + number_literal) )))) >> number_literal) & number_literal)) ;) (expression_statement "local_20 = *(int *)(iVar4 + 0xc);" (assignment_expression "local_20 = *(int *)(iVar4 + 0xc)" identifier = (pointer_expression "*(int *)(iVar4 + 0xc)" * (cast_expression "(int *)(iVar4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00117a0c;" goto statement_identifier ;) })) })) (if_statement "if (bVar3 == 3) goto LAB_00117920;" if (parenthesized_expression "(bVar3 == 3)" ( (binary_expression "bVar3 == 3" identifier == number_literal) )) (goto_statement "goto LAB_00117920;" goto statement_identifier ;)) (labeled_statement "LAB_00117a21:\n    local_2c = uVar10 & 1;" statement_identifier : (expression_statement "local_2c = uVar10 & 1;" (assignment_expression "local_2c = uVar10 & 1" identifier = (binary_expression "uVar10 & 1" identifier & number_literal)) ;)) (if_statement "if (local_2c == 0) {\nLAB_00117a60:\n      if (((uVar10 & 8) != 0) && (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117a6e;\n      if ((uVar10 & 0x10) == 0) {\n        iVar5 = *(int *)(iVar7 + 8);\n        if (iVar5 == 0) {\nLAB_00117b4a:\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0(unaff_EDI + 0x3309f6,0x5c,unaff_EDI + 0x352c01,iVar5);\n        }\n        if (((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) &&\n           (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117920;\n      }\n      if (bVar3 == 0) {\n        uVar9 = uVar8;\n        if (((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar4 + 0xc) != 0 || (uVar9 = 0, (*(byte *)(iVar4 + 0x2b) & 0x20) == 0)))) {\nLAB_00117ad7:\n          uVar6 = FUN_00071a80(iVar4);\n          uVar9 = uVar6 ^ 1;\n        }\n      }\n      else {\n        uVar9 = uVar8;\n        if (bVar3 != 4) goto LAB_00117ad7;\n      }\n      goto LAB_00117920;\n    }" if (parenthesized_expression "(local_2c == 0)" ( (binary_expression "local_2c == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00117a60:\n      if (((uVar10 & 8) != 0) && (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117a6e;\n      if ((uVar10 & 0x10) == 0) {\n        iVar5 = *(int *)(iVar7 + 8);\n        if (iVar5 == 0) {\nLAB_00117b4a:\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0(unaff_EDI + 0x3309f6,0x5c,unaff_EDI + 0x352c01,iVar5);\n        }\n        if (((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) &&\n           (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117920;\n      }\n      if (bVar3 == 0) {\n        uVar9 = uVar8;\n        if (((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar4 + 0xc) != 0 || (uVar9 = 0, (*(byte *)(iVar4 + 0x2b) & 0x20) == 0)))) {\nLAB_00117ad7:\n          uVar6 = FUN_00071a80(iVar4);\n          uVar9 = uVar6 ^ 1;\n        }\n      }\n      else {\n        uVar9 = uVar8;\n        if (bVar3 != 4) goto LAB_00117ad7;\n      }\n      goto LAB_00117920;\n    }" { (labeled_statement "LAB_00117a60:\n      if (((uVar10 & 8) != 0) && (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117a6e;" statement_identifier : (if_statement "if (((uVar10 & 8) != 0) && (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117a6e;" if (parenthesized_expression "(((uVar10 & 8) != 0) && (*(int *)(iVar4 + 0x18) != -1))" ( (binary_expression "((uVar10 & 8) != 0) && (*(int *)(iVar4 + 0x18) != -1)" (parenthesized_expression "((uVar10 & 8) != 0)" ( (binary_expression "(uVar10 & 8) != 0" (parenthesized_expression "(uVar10 & 8)" ( (binary_expression "uVar10 & 8" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(*(int *)(iVar4 + 0x18) != -1)" ( (binary_expression "*(int *)(iVar4 + 0x18) != -1" (pointer_expression "*(int *)(iVar4 + 0x18)" * (cast_expression "(int *)(iVar4 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) )))) != number_literal) ))) )) (goto_statement "goto LAB_00117a6e;" goto statement_identifier ;))) (if_statement "if ((uVar10 & 0x10) == 0) {\n        iVar5 = *(int *)(iVar7 + 8);\n        if (iVar5 == 0) {\nLAB_00117b4a:\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0(unaff_EDI + 0x3309f6,0x5c,unaff_EDI + 0x352c01,iVar5);\n        }\n        if (((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) &&\n           (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117920;\n      }" if (parenthesized_expression "((uVar10 & 0x10) == 0)" ( (binary_expression "(uVar10 & 0x10) == 0" (parenthesized_expression "(uVar10 & 0x10)" ( (binary_expression "uVar10 & 0x10" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        iVar5 = *(int *)(iVar7 + 8);\n        if (iVar5 == 0) {\nLAB_00117b4a:\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0(unaff_EDI + 0x3309f6,0x5c,unaff_EDI + 0x352c01,iVar5);\n        }\n        if (((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) &&\n           (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117920;\n      }" { (expression_statement "iVar5 = *(int *)(iVar7 + 8);" (assignment_expression "iVar5 = *(int *)(iVar7 + 8)" identifier = (pointer_expression "*(int *)(iVar7 + 8)" * (cast_expression "(int *)(iVar7 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 8)" ( (binary_expression "iVar7 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 == 0) {\nLAB_00117b4a:\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0(unaff_EDI + 0x3309f6,0x5c,unaff_EDI + 0x352c01,iVar5);\n        }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00117b4a:\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0(unaff_EDI + 0x3309f6,0x5c,unaff_EDI + 0x352c01,iVar5);\n        }" { (labeled_statement "LAB_00117b4a:\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0(unaff_EDI + 0x3309f6,0x5c,unaff_EDI + 0x352c01,iVar5);" statement_identifier : comment (expression_statement "FUN_002446e0(unaff_EDI + 0x3309f6,0x5c,unaff_EDI + 0x352c01,iVar5);" (call_expression "FUN_002446e0(unaff_EDI + 0x3309f6,0x5c,unaff_EDI + 0x352c01,iVar5)" identifier (argument_list "(unaff_EDI + 0x3309f6,0x5c,unaff_EDI + 0x352c01,iVar5)" ( (binary_expression "unaff_EDI + 0x3309f6" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x352c01" identifier + number_literal) , identifier ))) ;)) })) (if_statement "if (((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) &&\n           (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117920;" if (parenthesized_expression "(((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) &&\n           (*(int *)(iVar4 + 0x18) != -1))" ( (binary_expression "((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) &&\n           (*(int *)(iVar4 + 0x18) != -1)" (parenthesized_expression "((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0'))" ( (binary_expression "(*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')" (parenthesized_expression "(*(char *)(iVar5 + 0x1a25) == '\0')" ( (binary_expression "*(char *)(iVar5 + 0x1a25) == '\0'" (pointer_expression "*(char *)(iVar5 + 0x1a25)" * (cast_expression "(char *)(iVar5 + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x1a25)" ( (binary_expression "iVar5 + 0x1a25" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(char *)(iVar5 + 0x2931) == '\0')" ( (binary_expression "*(char *)(iVar5 + 0x2931) == '\0'" (pointer_expression "*(char *)(iVar5 + 0x2931)" * (cast_expression "(char *)(iVar5 + 0x2931)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2931)" ( (binary_expression "iVar5 + 0x2931" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(*(int *)(iVar4 + 0x18) != -1)" ( (binary_expression "*(int *)(iVar4 + 0x18) != -1" (pointer_expression "*(int *)(iVar4 + 0x18)" * (cast_expression "(int *)(iVar4 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) )))) != number_literal) ))) )) (goto_statement "goto LAB_00117920;" goto statement_identifier ;)) })) (if_statement "if (bVar3 == 0) {\n        uVar9 = uVar8;\n        if (((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar4 + 0xc) != 0 || (uVar9 = 0, (*(byte *)(iVar4 + 0x2b) & 0x20) == 0)))) {\nLAB_00117ad7:\n          uVar6 = FUN_00071a80(iVar4);\n          uVar9 = uVar6 ^ 1;\n        }\n      }\n      else {\n        uVar9 = uVar8;\n        if (bVar3 != 4) goto LAB_00117ad7;\n      }" if (parenthesized_expression "(bVar3 == 0)" ( (binary_expression "bVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar9 = uVar8;\n        if (((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar4 + 0xc) != 0 || (uVar9 = 0, (*(byte *)(iVar4 + 0x2b) & 0x20) == 0)))) {\nLAB_00117ad7:\n          uVar6 = FUN_00071a80(iVar4);\n          uVar9 = uVar6 ^ 1;\n        }\n      }" { (expression_statement "uVar9 = uVar8;" (assignment_expression "uVar9 = uVar8" identifier = identifier) ;) (if_statement "if (((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar4 + 0xc) != 0 || (uVar9 = 0, (*(byte *)(iVar4 + 0x2b) & 0x20) == 0)))) {\nLAB_00117ad7:\n          uVar6 = FUN_00071a80(iVar4);\n          uVar9 = uVar6 ^ 1;\n        }" if (parenthesized_expression "(((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar4 + 0xc) != 0 || (uVar9 = 0, (*(byte *)(iVar4 + 0x2b) & 0x20) == 0))))" ( (binary_expression "((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar4 + 0xc) != 0 || (uVar9 = 0, (*(byte *)(iVar4 + 0x2b) & 0x20) == 0)))" (parenthesized_expression "((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0)" ( (binary_expression "(*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0" (parenthesized_expression "(*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1)" ( (binary_expression "*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1" (pointer_expression "*(byte *)(*(int *)(iVar4 + 8) + 0x2c)" * (cast_expression "(byte *)(*(int *)(iVar4 + 8) + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar4 + 8) + 0x2c)" ( (binary_expression "*(int *)(iVar4 + 8) + 0x2c" (pointer_expression "*(int *)(iVar4 + 8)" * (cast_expression "(int *)(iVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "((*(int *)(iVar4 + 0xc) != 0 || (uVar9 = 0, (*(byte *)(iVar4 + 0x2b) & 0x20) == 0)))" ( (parenthesized_expression "(*(int *)(iVar4 + 0xc) != 0 || (uVar9 = 0, (*(byte *)(iVar4 + 0x2b) & 0x20) == 0))" ( (binary_expression "*(int *)(iVar4 + 0xc) != 0 || (uVar9 = 0, (*(byte *)(iVar4 + 0x2b) & 0x20) == 0)" (binary_expression "*(int *)(iVar4 + 0xc) != 0" (pointer_expression "*(int *)(iVar4 + 0xc)" * (cast_expression "(int *)(iVar4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) != number_literal) || (parenthesized_expression "(uVar9 = 0, (*(byte *)(iVar4 + 0x2b) & 0x20) == 0)" ( (comma_expression "uVar9 = 0, (*(byte *)(iVar4 + 0x2b) & 0x20) == 0" (assignment_expression "uVar9 = 0" identifier = number_literal) , (binary_expression "(*(byte *)(iVar4 + 0x2b) & 0x20) == 0" (parenthesized_expression "(*(byte *)(iVar4 + 0x2b) & 0x20)" ( (binary_expression "*(byte *)(iVar4 + 0x2b) & 0x20" (pointer_expression "*(byte *)(iVar4 + 0x2b)" * (cast_expression "(byte *)(iVar4 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2b)" ( (binary_expression "iVar4 + 0x2b" identifier + number_literal) )))) & number_literal) )) == number_literal)) ))) )) ))) )) (compound_statement "{\nLAB_00117ad7:\n          uVar6 = FUN_00071a80(iVar4);\n          uVar9 = uVar6 ^ 1;\n        }" { (labeled_statement "LAB_00117ad7:\n          uVar6 = FUN_00071a80(iVar4);" statement_identifier : (expression_statement "uVar6 = FUN_00071a80(iVar4);" (assignment_expression "uVar6 = FUN_00071a80(iVar4)" identifier = (call_expression "FUN_00071a80(iVar4)" identifier (argument_list "(iVar4)" ( identifier )))) ;)) (expression_statement "uVar9 = uVar6 ^ 1;" (assignment_expression "uVar9 = uVar6 ^ 1" identifier = (binary_expression "uVar6 ^ 1" identifier ^ number_literal)) ;) })) }) (else_clause "else {\n        uVar9 = uVar8;\n        if (bVar3 != 4) goto LAB_00117ad7;\n      }" else (compound_statement "{\n        uVar9 = uVar8;\n        if (bVar3 != 4) goto LAB_00117ad7;\n      }" { (expression_statement "uVar9 = uVar8;" (assignment_expression "uVar9 = uVar8" identifier = identifier) ;) (if_statement "if (bVar3 != 4) goto LAB_00117ad7;" if (parenthesized_expression "(bVar3 != 4)" ( (binary_expression "bVar3 != 4" identifier != number_literal) )) (goto_statement "goto LAB_00117ad7;" goto statement_identifier ;)) }))) (goto_statement "goto LAB_00117920;" goto statement_identifier ;) })) (expression_statement "iVar5 = *(int *)(iVar7 + 8);" (assignment_expression "iVar5 = *(int *)(iVar7 + 8)" identifier = (pointer_expression "*(int *)(iVar7 + 8)" * (cast_expression "(int *)(iVar7 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 8)" ( (binary_expression "iVar7 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 == 0) goto LAB_00117b4a;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00117b4a;" goto statement_identifier ;)) (if_statement "if (*(char *)(iVar5 + 0x1a25) == '\0') {\n      if (*(char *)(iVar5 + 0x2931) == '\0') goto LAB_00117a60;\n      uVar8 = 0;\n    }" if (parenthesized_expression "(*(char *)(iVar5 + 0x1a25) == '\0')" ( (binary_expression "*(char *)(iVar5 + 0x1a25) == '\0'" (pointer_expression "*(char *)(iVar5 + 0x1a25)" * (cast_expression "(char *)(iVar5 + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x1a25)" ( (binary_expression "iVar5 + 0x1a25" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if (*(char *)(iVar5 + 0x2931) == '\0') goto LAB_00117a60;\n      uVar8 = 0;\n    }" { (if_statement "if (*(char *)(iVar5 + 0x2931) == '\0') goto LAB_00117a60;" if (parenthesized_expression "(*(char *)(iVar5 + 0x2931) == '\0')" ( (binary_expression "*(char *)(iVar5 + 0x2931) == '\0'" (pointer_expression "*(char *)(iVar5 + 0x2931)" * (cast_expression "(char *)(iVar5 + 0x2931)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2931)" ( (binary_expression "iVar5 + 0x2931" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00117a60;" goto statement_identifier ;)) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) })) }) (else_clause "else {\nLAB_00117920:\n    local_2c = uVar10 & 1;\n    uVar8 = uVar9;\n    if (local_2c == 0) {\n      return uVar9;\n    }\n  }" else (compound_statement "{\nLAB_00117920:\n    local_2c = uVar10 & 1;\n    uVar8 = uVar9;\n    if (local_2c == 0) {\n      return uVar9;\n    }\n  }" { (labeled_statement "LAB_00117920:\n    local_2c = uVar10 & 1;" statement_identifier : (expression_statement "local_2c = uVar10 & 1;" (assignment_expression "local_2c = uVar10 & 1" identifier = (binary_expression "uVar10 & 1" identifier & number_literal)) ;)) (expression_statement "uVar8 = uVar9;" (assignment_expression "uVar8 = uVar9" identifier = identifier) ;) (if_statement "if (local_2c == 0) {\n      return uVar9;\n    }" if (parenthesized_expression "(local_2c == 0)" ( (binary_expression "local_2c == 0" identifier == number_literal) )) (compound_statement "{\n      return uVar9;\n    }" { (return_statement "return uVar9;" return identifier ;) })) }))) (if_statement "if (((uVar10 & 8) == 0) || (*(int *)(iVar4 + 0x18) == -1)) {\n    if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n      if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) != 0) {\n        return uVar8;\n      }\n      if ((*(int *)(iVar4 + 0xc) == 0) && ((*(byte *)(iVar4 + 0x2b) & 0x20) != 0)) {\n        return uVar8;\n      }\n    }\n    else if ((*(byte *)(iVar4 + 0x2a) & 7) == 4) {\n      return uVar8;\n    }\n    uVar10 = FUN_00071a80(iVar4);\n    return uVar8 | uVar10 ^ 1;\n  }" if (parenthesized_expression "(((uVar10 & 8) == 0) || (*(int *)(iVar4 + 0x18) == -1))" ( (binary_expression "((uVar10 & 8) == 0) || (*(int *)(iVar4 + 0x18) == -1)" (parenthesized_expression "((uVar10 & 8) == 0)" ( (binary_expression "(uVar10 & 8) == 0" (parenthesized_expression "(uVar10 & 8)" ( (binary_expression "uVar10 & 8" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(*(int *)(iVar4 + 0x18) == -1)" ( (binary_expression "*(int *)(iVar4 + 0x18) == -1" (pointer_expression "*(int *)(iVar4 + 0x18)" * (cast_expression "(int *)(iVar4 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n    if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n      if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) != 0) {\n        return uVar8;\n      }\n      if ((*(int *)(iVar4 + 0xc) == 0) && ((*(byte *)(iVar4 + 0x2b) & 0x20) != 0)) {\n        return uVar8;\n      }\n    }\n    else if ((*(byte *)(iVar4 + 0x2a) & 7) == 4) {\n      return uVar8;\n    }\n    uVar10 = FUN_00071a80(iVar4);\n    return uVar8 | uVar10 ^ 1;\n  }" { (if_statement "if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n      if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) != 0) {\n        return uVar8;\n      }\n      if ((*(int *)(iVar4 + 0xc) == 0) && ((*(byte *)(iVar4 + 0x2b) & 0x20) != 0)) {\n        return uVar8;\n      }\n    }\n    else if ((*(byte *)(iVar4 + 0x2a) & 7) == 4) {\n      return uVar8;\n    }" if (parenthesized_expression "((*(byte *)(iVar4 + 0x2a) & 7) == 0)" ( (binary_expression "(*(byte *)(iVar4 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)(iVar4 + 0x2a) & 7)" ( (binary_expression "*(byte *)(iVar4 + 0x2a) & 7" (pointer_expression "*(byte *)(iVar4 + 0x2a)" * (cast_expression "(byte *)(iVar4 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2a)" ( (binary_expression "iVar4 + 0x2a" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) != 0) {\n        return uVar8;\n      }\n      if ((*(int *)(iVar4 + 0xc) == 0) && ((*(byte *)(iVar4 + 0x2b) & 0x20) != 0)) {\n        return uVar8;\n      }\n    }" { (if_statement "if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) != 0) {\n        return uVar8;\n      }" if (parenthesized_expression "((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) != 0)" ( (binary_expression "(*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) != 0" (parenthesized_expression "(*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1)" ( (binary_expression "*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1" (pointer_expression "*(byte *)(*(int *)(iVar4 + 8) + 0x2c)" * (cast_expression "(byte *)(*(int *)(iVar4 + 8) + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar4 + 8) + 0x2c)" ( (binary_expression "*(int *)(iVar4 + 8) + 0x2c" (pointer_expression "*(int *)(iVar4 + 8)" * (cast_expression "(int *)(iVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n        return uVar8;\n      }" { (return_statement "return uVar8;" return identifier ;) })) (if_statement "if ((*(int *)(iVar4 + 0xc) == 0) && ((*(byte *)(iVar4 + 0x2b) & 0x20) != 0)) {\n        return uVar8;\n      }" if (parenthesized_expression "((*(int *)(iVar4 + 0xc) == 0) && ((*(byte *)(iVar4 + 0x2b) & 0x20) != 0))" ( (binary_expression "(*(int *)(iVar4 + 0xc) == 0) && ((*(byte *)(iVar4 + 0x2b) & 0x20) != 0)" (parenthesized_expression "(*(int *)(iVar4 + 0xc) == 0)" ( (binary_expression "*(int *)(iVar4 + 0xc) == 0" (pointer_expression "*(int *)(iVar4 + 0xc)" * (cast_expression "(int *)(iVar4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "((*(byte *)(iVar4 + 0x2b) & 0x20) != 0)" ( (binary_expression "(*(byte *)(iVar4 + 0x2b) & 0x20) != 0" (parenthesized_expression "(*(byte *)(iVar4 + 0x2b) & 0x20)" ( (binary_expression "*(byte *)(iVar4 + 0x2b) & 0x20" (pointer_expression "*(byte *)(iVar4 + 0x2b)" * (cast_expression "(byte *)(iVar4 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2b)" ( (binary_expression "iVar4 + 0x2b" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n        return uVar8;\n      }" { (return_statement "return uVar8;" return identifier ;) })) }) (else_clause "else if ((*(byte *)(iVar4 + 0x2a) & 7) == 4) {\n      return uVar8;\n    }" else (if_statement "if ((*(byte *)(iVar4 + 0x2a) & 7) == 4) {\n      return uVar8;\n    }" if (parenthesized_expression "((*(byte *)(iVar4 + 0x2a) & 7) == 4)" ( (binary_expression "(*(byte *)(iVar4 + 0x2a) & 7) == 4" (parenthesized_expression "(*(byte *)(iVar4 + 0x2a) & 7)" ( (binary_expression "*(byte *)(iVar4 + 0x2a) & 7" (pointer_expression "*(byte *)(iVar4 + 0x2a)" * (cast_expression "(byte *)(iVar4 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2a)" ( (binary_expression "iVar4 + 0x2a" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      return uVar8;\n    }" { (return_statement "return uVar8;" return identifier ;) })))) (expression_statement "uVar10 = FUN_00071a80(iVar4);" (assignment_expression "uVar10 = FUN_00071a80(iVar4)" identifier = (call_expression "FUN_00071a80(iVar4)" identifier (argument_list "(iVar4)" ( identifier )))) ;) (return_statement "return uVar8 | uVar10 ^ 1;" return (binary_expression "uVar8 | uVar10 ^ 1" identifier | (binary_expression "uVar10 ^ 1" identifier ^ number_literal)) ;) })) (labeled_statement "LAB_00117a6e:\n  return (uint)bVar1;" statement_identifier : (return_statement "return (uint)bVar1;" return (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) ;)) })))
(translation_unit "/* WARNING: Enum "DT": Some values do not have unique names */\n/* WARNING: Enum "ELFOSABI": Some values do not have unique names */\n/* WARNING: Enum "<anon>": Some values do not have unique names */\n/* DWARF original prototype: bool should_apply_static_reloc(Relocate * this, Sized_symbol<32> *\n   gsym, uint r_type, bool is_32bit, Output_section * output_section) */\n\nbool __thiscall\nanon_unknown.dwarf_91258a::Target_arm<true>::Relocate::should_apply_static_reloc\n          (Relocate *this,Sized_symbol<32> *gsym,uint r_type,bool is_32bit,\n          Output_section *output_section)\n\n{\n  int iVar1;\n  byte bVar2;\n  bool bVar3;\n  byte bVar4;\n  Symbol *this_00;\n  uint uVar5;\n  byte extraout_CL;\n  int iVar6;\n  byte bVar7;\n  uint uVar8;\n  int unaff_EDI;\n  undefined8 uVar9;\n  Target_arm<true> *in_stack_ffffffd4;\n  Parameters *in_stack_ffffffd8;\n  byte bVar10;\n  uint local_20;\n  \n  uVar9 = __x86_get_pc_thunk_di();\n  iVar6 = (int)((ulonglong)uVar9 >> 0x20);\n  this_00 = (Symbol *)uVar9;\n  if (((byte)this[0x54] & 2) == 0) {\n    return true;\n  }\n  uVar8 = 0;\n  bVar7 = 0;\n  if (iVar6 - 2U < 0x6b) {\n    bVar7 = *(byte *)(unaff_EDI + 0x351487 + iVar6);\n    uVar8 = (uint)(char)bVar7;\n    iVar6 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);\n  }\n  else {\n    iVar6 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);\n  }\n  if (this_00 == (Symbol *)0x0) {\n    iVar6 = *(int *)(iVar6 + 8);\n    if (iVar6 != 0) {\n      if ((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) {\n        return true;\n      }\n      return (bool)(~bVar7 & 1 | extraout_CL);\n    }\nLAB_00117b67:\n                    /* WARNING: Subroutine does not return */\n    do_may_relax(in_stack_ffffffd4);\n  }\n  bVar7 = *(byte *)(iVar6 + 0x10);\n  if (bVar7 == 0) {\n    gold::Parameters::doing_static_link((Parameters *)in_stack_ffffffd4,in_stack_ffffffd8);\n    goto LAB_00117b67;\n  }\n  bVar4 = *(byte *)(iVar6 + 0x11);\n  if (bVar4 != 0) {\n    uVar5 = uVar8 & 1;\n    goto LAB_00117920;\n  }\n  bVar10 = this_00->field_0x2a & 7;\n  if ((this_00->field_0x2a & 7) == 0) {\n    bVar2 = (byte)this_00->field_0x2b >> 5 & 1;\n    local_20 = (this_00->u2_).shndx;\n    if ((local_20 == 0) && (bVar2 != 0)) goto LAB_001178e4;\nLAB_00117a0c:\n    if ((local_20 != 0xfff1) || (bVar2 != 0)) goto LAB_00117a21;\nLAB_0011791e:\n    uVar5 = uVar8 & 1;\n    bVar4 = bVar7;\n  }\n  else {\n    if (bVar10 == 4) {\nLAB_001178e4:\n      if (*(int *)(iVar6 + 8) == 0) goto LAB_00117b4a;\n      if (*(char *)(*(int *)(iVar6 + 8) + 0x1a25) == '\0') goto LAB_0011791e;\n      if (bVar10 == 0) {\n        bVar2 = (byte)this_00->field_0x2b >> 5 & 1;\n        local_20 = (this_00->u2_).shndx;\n        goto LAB_00117a0c;\n      }\n    }\n    if (bVar10 == 3) goto LAB_0011791e;\nLAB_00117a21:\n    uVar5 = uVar8 & 1;\n    if (uVar5 != 0) {\n      iVar1 = *(int *)(iVar6 + 8);\n      if (iVar1 == 0) goto LAB_00117b4a;\n      if (*(char *)(iVar1 + 0x1a25) != '\0') goto LAB_0011792b;\n      if (*(char *)(iVar1 + 0x2931) != '\0') {\n        bVar4 = 0;\n        goto LAB_0011792b;\n      }\n    }\n    if (((uVar8 & 8) != 0) && (this_00->plt_offset_ != 0xffffffff)) {\n      return (bool)bVar7;\n    }\n    if ((uVar8 & 0x10) == 0) {\n      iVar6 = *(int *)(iVar6 + 8);\n      if (iVar6 == 0) {\nLAB_00117b4a:\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable\n                  ((char *)(unaff_EDI + 0x3309f6),0x5c,(char *)(unaff_EDI + 0x352c01));\n      }\n      if (((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) &&\n         (this_00->plt_offset_ != 0xffffffff)) goto LAB_0011791e;\n    }\n    if (bVar10 == 0) {\n      if ((((uint)((this_00->u1_).output_segment)->output_lists_[3].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage & 1) == 0) &&\n         (((this_00->u2_).shndx != 0 || (bVar4 = 0, (this_00->field_0x2b & 0x20) == 0)))) {\nLAB_00117ad7:\n        bVar3 = gold::Symbol::is_preemptible(this_00);\n        bVar4 = !bVar3;\n      }\n    }\n    else if (bVar10 != 4) goto LAB_00117ad7;\n  }\nLAB_00117920:\n  if (uVar5 == 0) {\n    return (bool)bVar4;\n  }\nLAB_0011792b:\n  if (((uVar8 & 8) == 0) || (this_00->plt_offset_ == 0xffffffff)) {\n    if ((this_00->field_0x2a & 7) == 0) {\n      if (((uint)((this_00->u1_).output_segment)->output_lists_[3].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_end_of_storage & 1) != 0) {\n        return (bool)bVar4;\n      }\n      if (((this_00->u2_).shndx == 0) && ((this_00->field_0x2b & 0x20) != 0)) {\n        return (bool)bVar4;\n      }\n    }\n    else if ((this_00->field_0x2a & 7) == 4) {\n      return (bool)bVar4;\n    }\n    bVar3 = gold::Symbol::is_preemptible(this_00);\n    bVar7 = bVar4 | !bVar3;\n  }\n  return (bool)bVar7;\n}\n\n" comment comment comment comment (function_definition "bool __thiscall\nanon_unknown.dwarf_91258a::Target_arm<true>::Relocate::should_apply_static_reloc\n          (Relocate *this,Sized_symbol<32> *gsym,uint r_type,bool is_32bit,\n          Output_section *output_section)\n\n{\n  int iVar1;\n  byte bVar2;\n  bool bVar3;\n  byte bVar4;\n  Symbol *this_00;\n  uint uVar5;\n  byte extraout_CL;\n  int iVar6;\n  byte bVar7;\n  uint uVar8;\n  int unaff_EDI;\n  undefined8 uVar9;\n  Target_arm<true> *in_stack_ffffffd4;\n  Parameters *in_stack_ffffffd8;\n  byte bVar10;\n  uint local_20;\n  \n  uVar9 = __x86_get_pc_thunk_di();\n  iVar6 = (int)((ulonglong)uVar9 >> 0x20);\n  this_00 = (Symbol *)uVar9;\n  if (((byte)this[0x54] & 2) == 0) {\n    return true;\n  }\n  uVar8 = 0;\n  bVar7 = 0;\n  if (iVar6 - 2U < 0x6b) {\n    bVar7 = *(byte *)(unaff_EDI + 0x351487 + iVar6);\n    uVar8 = (uint)(char)bVar7;\n    iVar6 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);\n  }\n  else {\n    iVar6 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);\n  }\n  if (this_00 == (Symbol *)0x0) {\n    iVar6 = *(int *)(iVar6 + 8);\n    if (iVar6 != 0) {\n      if ((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) {\n        return true;\n      }\n      return (bool)(~bVar7 & 1 | extraout_CL);\n    }\nLAB_00117b67:\n                    /* WARNING: Subroutine does not return */\n    do_may_relax(in_stack_ffffffd4);\n  }\n  bVar7 = *(byte *)(iVar6 + 0x10);\n  if (bVar7 == 0) {\n    gold::Parameters::doing_static_link((Parameters *)in_stack_ffffffd4,in_stack_ffffffd8);\n    goto LAB_00117b67;\n  }\n  bVar4 = *(byte *)(iVar6 + 0x11);\n  if (bVar4 != 0) {\n    uVar5 = uVar8 & 1;\n    goto LAB_00117920;\n  }\n  bVar10 = this_00->field_0x2a & 7;\n  if ((this_00->field_0x2a & 7) == 0) {\n    bVar2 = (byte)this_00->field_0x2b >> 5 & 1;\n    local_20 = (this_00->u2_).shndx;\n    if ((local_20 == 0) && (bVar2 != 0)) goto LAB_001178e4;\nLAB_00117a0c:\n    if ((local_20 != 0xfff1) || (bVar2 != 0)) goto LAB_00117a21;\nLAB_0011791e:\n    uVar5 = uVar8 & 1;\n    bVar4 = bVar7;\n  }\n  else {\n    if (bVar10 == 4) {\nLAB_001178e4:\n      if (*(int *)(iVar6 + 8) == 0) goto LAB_00117b4a;\n      if (*(char *)(*(int *)(iVar6 + 8) + 0x1a25) == '\0') goto LAB_0011791e;\n      if (bVar10 == 0) {\n        bVar2 = (byte)this_00->field_0x2b >> 5 & 1;\n        local_20 = (this_00->u2_).shndx;\n        goto LAB_00117a0c;\n      }\n    }\n    if (bVar10 == 3) goto LAB_0011791e;\nLAB_00117a21:\n    uVar5 = uVar8 & 1;\n    if (uVar5 != 0) {\n      iVar1 = *(int *)(iVar6 + 8);\n      if (iVar1 == 0) goto LAB_00117b4a;\n      if (*(char *)(iVar1 + 0x1a25) != '\0') goto LAB_0011792b;\n      if (*(char *)(iVar1 + 0x2931) != '\0') {\n        bVar4 = 0;\n        goto LAB_0011792b;\n      }\n    }\n    if (((uVar8 & 8) != 0) && (this_00->plt_offset_ != 0xffffffff)) {\n      return (bool)bVar7;\n    }\n    if ((uVar8 & 0x10) == 0) {\n      iVar6 = *(int *)(iVar6 + 8);\n      if (iVar6 == 0) {\nLAB_00117b4a:\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable\n                  ((char *)(unaff_EDI + 0x3309f6),0x5c,(char *)(unaff_EDI + 0x352c01));\n      }\n      if (((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) &&\n         (this_00->plt_offset_ != 0xffffffff)) goto LAB_0011791e;\n    }\n    if (bVar10 == 0) {\n      if ((((uint)((this_00->u1_).output_segment)->output_lists_[3].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage & 1) == 0) &&\n         (((this_00->u2_).shndx != 0 || (bVar4 = 0, (this_00->field_0x2b & 0x20) == 0)))) {\nLAB_00117ad7:\n        bVar3 = gold::Symbol::is_preemptible(this_00);\n        bVar4 = !bVar3;\n      }\n    }\n    else if (bVar10 != 4) goto LAB_00117ad7;\n  }\nLAB_00117920:\n  if (uVar5 == 0) {\n    return (bool)bVar4;\n  }\nLAB_0011792b:\n  if (((uVar8 & 8) == 0) || (this_00->plt_offset_ == 0xffffffff)) {\n    if ((this_00->field_0x2a & 7) == 0) {\n      if (((uint)((this_00->u1_).output_segment)->output_lists_[3].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_end_of_storage & 1) != 0) {\n        return (bool)bVar4;\n      }\n      if (((this_00->u2_).shndx == 0) && ((this_00->field_0x2b & 0x20) != 0)) {\n        return (bool)bVar4;\n      }\n    }\n    else if ((this_00->field_0x2a & 7) == 4) {\n      return (bool)bVar4;\n    }\n    bVar3 = gold::Symbol::is_preemptible(this_00);\n    bVar7 = bVar4 | !bVar3;\n  }\n  return (bool)bVar7;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "anon_unknown.dwarf_91258a::Target_arm<true>::Relocate::" identifier . identifier : : identifier < true > : : identifier : :) (function_declarator "should_apply_static_reloc\n          (Relocate *this,Sized_symbol<32> *gsym,uint r_type,bool is_32bit,\n          Output_section *output_section)" identifier (parameter_list "(Relocate *this,Sized_symbol<32> *gsym,uint r_type,bool is_32bit,\n          Output_section *output_section)" ( (parameter_declaration "Relocate *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Sized_symbol<32> *gsym" type_identifier (ERROR "<32>" < number_literal >) (pointer_declarator "*gsym" * identifier)) , (parameter_declaration "uint r_type" type_identifier identifier) , (parameter_declaration "bool is_32bit" primitive_type identifier) , (parameter_declaration "Output_section *output_section" type_identifier (pointer_declarator "*output_section" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  byte bVar2;\n  bool bVar3;\n  byte bVar4;\n  Symbol *this_00;\n  uint uVar5;\n  byte extraout_CL;\n  int iVar6;\n  byte bVar7;\n  uint uVar8;\n  int unaff_EDI;\n  undefined8 uVar9;\n  Target_arm<true> *in_stack_ffffffd4;\n  Parameters *in_stack_ffffffd8;\n  byte bVar10;\n  uint local_20;\n  \n  uVar9 = __x86_get_pc_thunk_di();\n  iVar6 = (int)((ulonglong)uVar9 >> 0x20);\n  this_00 = (Symbol *)uVar9;\n  if (((byte)this[0x54] & 2) == 0) {\n    return true;\n  }\n  uVar8 = 0;\n  bVar7 = 0;\n  if (iVar6 - 2U < 0x6b) {\n    bVar7 = *(byte *)(unaff_EDI + 0x351487 + iVar6);\n    uVar8 = (uint)(char)bVar7;\n    iVar6 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);\n  }\n  else {\n    iVar6 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);\n  }\n  if (this_00 == (Symbol *)0x0) {\n    iVar6 = *(int *)(iVar6 + 8);\n    if (iVar6 != 0) {\n      if ((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) {\n        return true;\n      }\n      return (bool)(~bVar7 & 1 | extraout_CL);\n    }\nLAB_00117b67:\n                    /* WARNING: Subroutine does not return */\n    do_may_relax(in_stack_ffffffd4);\n  }\n  bVar7 = *(byte *)(iVar6 + 0x10);\n  if (bVar7 == 0) {\n    gold::Parameters::doing_static_link((Parameters *)in_stack_ffffffd4,in_stack_ffffffd8);\n    goto LAB_00117b67;\n  }\n  bVar4 = *(byte *)(iVar6 + 0x11);\n  if (bVar4 != 0) {\n    uVar5 = uVar8 & 1;\n    goto LAB_00117920;\n  }\n  bVar10 = this_00->field_0x2a & 7;\n  if ((this_00->field_0x2a & 7) == 0) {\n    bVar2 = (byte)this_00->field_0x2b >> 5 & 1;\n    local_20 = (this_00->u2_).shndx;\n    if ((local_20 == 0) && (bVar2 != 0)) goto LAB_001178e4;\nLAB_00117a0c:\n    if ((local_20 != 0xfff1) || (bVar2 != 0)) goto LAB_00117a21;\nLAB_0011791e:\n    uVar5 = uVar8 & 1;\n    bVar4 = bVar7;\n  }\n  else {\n    if (bVar10 == 4) {\nLAB_001178e4:\n      if (*(int *)(iVar6 + 8) == 0) goto LAB_00117b4a;\n      if (*(char *)(*(int *)(iVar6 + 8) + 0x1a25) == '\0') goto LAB_0011791e;\n      if (bVar10 == 0) {\n        bVar2 = (byte)this_00->field_0x2b >> 5 & 1;\n        local_20 = (this_00->u2_).shndx;\n        goto LAB_00117a0c;\n      }\n    }\n    if (bVar10 == 3) goto LAB_0011791e;\nLAB_00117a21:\n    uVar5 = uVar8 & 1;\n    if (uVar5 != 0) {\n      iVar1 = *(int *)(iVar6 + 8);\n      if (iVar1 == 0) goto LAB_00117b4a;\n      if (*(char *)(iVar1 + 0x1a25) != '\0') goto LAB_0011792b;\n      if (*(char *)(iVar1 + 0x2931) != '\0') {\n        bVar4 = 0;\n        goto LAB_0011792b;\n      }\n    }\n    if (((uVar8 & 8) != 0) && (this_00->plt_offset_ != 0xffffffff)) {\n      return (bool)bVar7;\n    }\n    if ((uVar8 & 0x10) == 0) {\n      iVar6 = *(int *)(iVar6 + 8);\n      if (iVar6 == 0) {\nLAB_00117b4a:\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable\n                  ((char *)(unaff_EDI + 0x3309f6),0x5c,(char *)(unaff_EDI + 0x352c01));\n      }\n      if (((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) &&\n         (this_00->plt_offset_ != 0xffffffff)) goto LAB_0011791e;\n    }\n    if (bVar10 == 0) {\n      if ((((uint)((this_00->u1_).output_segment)->output_lists_[3].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage & 1) == 0) &&\n         (((this_00->u2_).shndx != 0 || (bVar4 = 0, (this_00->field_0x2b & 0x20) == 0)))) {\nLAB_00117ad7:\n        bVar3 = gold::Symbol::is_preemptible(this_00);\n        bVar4 = !bVar3;\n      }\n    }\n    else if (bVar10 != 4) goto LAB_00117ad7;\n  }\nLAB_00117920:\n  if (uVar5 == 0) {\n    return (bool)bVar4;\n  }\nLAB_0011792b:\n  if (((uVar8 & 8) == 0) || (this_00->plt_offset_ == 0xffffffff)) {\n    if ((this_00->field_0x2a & 7) == 0) {\n      if (((uint)((this_00->u1_).output_segment)->output_lists_[3].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_end_of_storage & 1) != 0) {\n        return (bool)bVar4;\n      }\n      if (((this_00->u2_).shndx == 0) && ((this_00->field_0x2b & 0x20) != 0)) {\n        return (bool)bVar4;\n      }\n    }\n    else if ((this_00->field_0x2a & 7) == 4) {\n      return (bool)bVar4;\n    }\n    bVar3 = gold::Symbol::is_preemptible(this_00);\n    bVar7 = bVar4 | !bVar3;\n  }\n  return (bool)bVar7;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "byte bVar4;" type_identifier identifier ;) (declaration "Symbol *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "byte extraout_CL;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "byte bVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "undefined8 uVar9;" type_identifier identifier ;) (expression_statement "Target_arm<true> *in_stack_ffffffd4;" (binary_expression "Target_arm<true> *in_stack_ffffffd4" (binary_expression "Target_arm<true" identifier < true) > (pointer_expression "*in_stack_ffffffd4" * identifier)) ;) (declaration "Parameters *in_stack_ffffffd8;" type_identifier (pointer_declarator "*in_stack_ffffffd8" * identifier) ;) (declaration "byte bVar10;" type_identifier identifier ;) (declaration "uint local_20;" type_identifier identifier ;) (expression_statement "uVar9 = __x86_get_pc_thunk_di();" (assignment_expression "uVar9 = __x86_get_pc_thunk_di()" identifier = (call_expression "__x86_get_pc_thunk_di()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar6 = (int)((ulonglong)uVar9 >> 0x20);" (assignment_expression "iVar6 = (int)((ulonglong)uVar9 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)uVar9 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar9 >> 0x20)" ( (binary_expression "(ulonglong)uVar9 >> 0x20" (cast_expression "(ulonglong)uVar9" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "this_00 = (Symbol *)uVar9;" (assignment_expression "this_00 = (Symbol *)uVar9" identifier = (cast_expression "(Symbol *)uVar9" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (((byte)this[0x54] & 2) == 0) {\n    return true;\n  }" if (parenthesized_expression "(((byte)this[0x54] & 2) == 0)" ( (binary_expression "((byte)this[0x54] & 2) == 0" (parenthesized_expression "((byte)this[0x54] & 2)" ( (binary_expression "(byte)this[0x54] & 2" (cast_expression "(byte)this[0x54]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "this[0x54]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) (compound_statement "{\n    return true;\n  }" { (return_statement "return true;" return true ;) })) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (expression_statement "bVar7 = 0;" (assignment_expression "bVar7 = 0" identifier = number_literal) ;) (if_statement "if (iVar6 - 2U < 0x6b) {\n    bVar7 = *(byte *)(unaff_EDI + 0x351487 + iVar6);\n    uVar8 = (uint)(char)bVar7;\n    iVar6 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);\n  }\n  else {\n    iVar6 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);\n  }" if (parenthesized_expression "(iVar6 - 2U < 0x6b)" ( (binary_expression "iVar6 - 2U < 0x6b" (binary_expression "iVar6 - 2U" identifier - number_literal) < number_literal) )) (compound_statement "{\n    bVar7 = *(byte *)(unaff_EDI + 0x351487 + iVar6);\n    uVar8 = (uint)(char)bVar7;\n    iVar6 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);\n  }" { (expression_statement "bVar7 = *(byte *)(unaff_EDI + 0x351487 + iVar6);" (assignment_expression "bVar7 = *(byte *)(unaff_EDI + 0x351487 + iVar6)" identifier = (pointer_expression "*(byte *)(unaff_EDI + 0x351487 + iVar6)" * (cast_expression "(byte *)(unaff_EDI + 0x351487 + iVar6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x351487 + iVar6)" ( (binary_expression "unaff_EDI + 0x351487 + iVar6" (binary_expression "unaff_EDI + 0x351487" identifier + number_literal) + identifier) ))))) ;) (expression_statement "uVar8 = (uint)(char)bVar7;" (assignment_expression "uVar8 = (uint)(char)bVar7" identifier = (cast_expression "(uint)(char)bVar7" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(char)bVar7" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (expression_statement "iVar6 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);" (assignment_expression "iVar6 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1)" identifier = (pointer_expression "*(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1)" * (cast_expression "(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&DWORD_004d2f50 + unaff_EDI + 1)" ( (binary_expression "(int)&DWORD_004d2f50 + unaff_EDI + 1" (binary_expression "(int)&DWORD_004d2f50 + unaff_EDI" (cast_expression "(int)&DWORD_004d2f50" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&DWORD_004d2f50" & identifier)) + identifier) + number_literal) ))))) ;) }) (else_clause "else {\n    iVar6 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);\n  }" else (compound_statement "{\n    iVar6 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);\n  }" { (expression_statement "iVar6 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);" (assignment_expression "iVar6 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1)" identifier = (pointer_expression "*(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1)" * (cast_expression "(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&DWORD_004d2f50 + unaff_EDI + 1)" ( (binary_expression "(int)&DWORD_004d2f50 + unaff_EDI + 1" (binary_expression "(int)&DWORD_004d2f50 + unaff_EDI" (cast_expression "(int)&DWORD_004d2f50" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&DWORD_004d2f50" & identifier)) + identifier) + number_literal) ))))) ;) }))) (if_statement "if (this_00 == (Symbol *)0x0) {\n    iVar6 = *(int *)(iVar6 + 8);\n    if (iVar6 != 0) {\n      if ((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) {\n        return true;\n      }\n      return (bool)(~bVar7 & 1 | extraout_CL);\n    }\nLAB_00117b67:\n                    /* WARNING: Subroutine does not return */\n    do_may_relax(in_stack_ffffffd4);\n  }" if (parenthesized_expression "(this_00 == (Symbol *)0x0)" ( (binary_expression "this_00 == (Symbol *)0x0" identifier == (cast_expression "(Symbol *)0x0" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar6 = *(int *)(iVar6 + 8);\n    if (iVar6 != 0) {\n      if ((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) {\n        return true;\n      }\n      return (bool)(~bVar7 & 1 | extraout_CL);\n    }\nLAB_00117b67:\n                    /* WARNING: Subroutine does not return */\n    do_may_relax(in_stack_ffffffd4);\n  }" { (expression_statement "iVar6 = *(int *)(iVar6 + 8);" (assignment_expression "iVar6 = *(int *)(iVar6 + 8)" identifier = (pointer_expression "*(int *)(iVar6 + 8)" * (cast_expression "(int *)(iVar6 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar6 != 0) {\n      if ((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) {\n        return true;\n      }\n      return (bool)(~bVar7 & 1 | extraout_CL);\n    }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n      if ((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) {\n        return true;\n      }\n      return (bool)(~bVar7 & 1 | extraout_CL);\n    }" { (if_statement "if ((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) {\n        return true;\n      }" if (parenthesized_expression "((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0'))" ( (binary_expression "(*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')" (parenthesized_expression "(*(char *)(iVar6 + 0x1a25) == '\0')" ( (binary_expression "*(char *)(iVar6 + 0x1a25) == '\0'" (pointer_expression "*(char *)(iVar6 + 0x1a25)" * (cast_expression "(char *)(iVar6 + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1a25)" ( (binary_expression "iVar6 + 0x1a25" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(char *)(iVar6 + 0x2931) == '\0')" ( (binary_expression "*(char *)(iVar6 + 0x2931) == '\0'" (pointer_expression "*(char *)(iVar6 + 0x2931)" * (cast_expression "(char *)(iVar6 + 0x2931)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2931)" ( (binary_expression "iVar6 + 0x2931" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n        return true;\n      }" { (return_statement "return true;" return true ;) })) (return_statement "return (bool)(~bVar7 & 1 | extraout_CL);" return (cast_expression "(bool)(~bVar7 & 1 | extraout_CL)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(~bVar7 & 1 | extraout_CL)" ( (binary_expression "~bVar7 & 1 | extraout_CL" (binary_expression "~bVar7 & 1" (unary_expression "~bVar7" ~ identifier) & number_literal) | identifier) ))) ;) })) (labeled_statement "LAB_00117b67:\n                    /* WARNING: Subroutine does not return */\n    do_may_relax(in_stack_ffffffd4);" statement_identifier : comment (expression_statement "do_may_relax(in_stack_ffffffd4);" (call_expression "do_may_relax(in_stack_ffffffd4)" identifier (argument_list "(in_stack_ffffffd4)" ( identifier ))) ;)) })) (expression_statement "bVar7 = *(byte *)(iVar6 + 0x10);" (assignment_expression "bVar7 = *(byte *)(iVar6 + 0x10)" identifier = (pointer_expression "*(byte *)(iVar6 + 0x10)" * (cast_expression "(byte *)(iVar6 + 0x10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x10)" ( (binary_expression "iVar6 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (bVar7 == 0) {\n    gold::Parameters::doing_static_link((Parameters *)in_stack_ffffffd4,in_stack_ffffffd8);\n    goto LAB_00117b67;\n  }" if (parenthesized_expression "(bVar7 == 0)" ( (binary_expression "bVar7 == 0" identifier == number_literal) )) (compound_statement "{\n    gold::Parameters::doing_static_link((Parameters *)in_stack_ffffffd4,in_stack_ffffffd8);\n    goto LAB_00117b67;\n  }" { (labeled_statement "gold::Parameters::doing_static_link((Parameters *)in_stack_ffffffd4,in_stack_ffffffd8);" statement_identifier : (ERROR ":" :) (labeled_statement "Parameters::doing_static_link((Parameters *)in_stack_ffffffd4,in_stack_ffffffd8);" statement_identifier : (ERROR ":" :) (expression_statement "doing_static_link((Parameters *)in_stack_ffffffd4,in_stack_ffffffd8);" (call_expression "doing_static_link((Parameters *)in_stack_ffffffd4,in_stack_ffffffd8)" identifier (argument_list "((Parameters *)in_stack_ffffffd4,in_stack_ffffffd8)" ( (cast_expression "(Parameters *)in_stack_ffffffd4" ( (type_descriptor "Parameters *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;))) (goto_statement "goto LAB_00117b67;" goto statement_identifier ;) })) (expression_statement "bVar4 = *(byte *)(iVar6 + 0x11);" (assignment_expression "bVar4 = *(byte *)(iVar6 + 0x11)" identifier = (pointer_expression "*(byte *)(iVar6 + 0x11)" * (cast_expression "(byte *)(iVar6 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x11)" ( (binary_expression "iVar6 + 0x11" identifier + number_literal) ))))) ;) (if_statement "if (bVar4 != 0) {\n    uVar5 = uVar8 & 1;\n    goto LAB_00117920;\n  }" if (parenthesized_expression "(bVar4 != 0)" ( (binary_expression "bVar4 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar5 = uVar8 & 1;\n    goto LAB_00117920;\n  }" { (expression_statement "uVar5 = uVar8 & 1;" (assignment_expression "uVar5 = uVar8 & 1" identifier = (binary_expression "uVar8 & 1" identifier & number_literal)) ;) (goto_statement "goto LAB_00117920;" goto statement_identifier ;) })) (expression_statement "bVar10 = this_00->field_0x2a & 7;" (assignment_expression "bVar10 = this_00->field_0x2a & 7" identifier = (binary_expression "this_00->field_0x2a & 7" (field_expression "this_00->field_0x2a" identifier -> field_identifier) & number_literal)) ;) (if_statement "if ((this_00->field_0x2a & 7) == 0) {\n    bVar2 = (byte)this_00->field_0x2b >> 5 & 1;\n    local_20 = (this_00->u2_).shndx;\n    if ((local_20 == 0) && (bVar2 != 0)) goto LAB_001178e4;\nLAB_00117a0c:\n    if ((local_20 != 0xfff1) || (bVar2 != 0)) goto LAB_00117a21;\nLAB_0011791e:\n    uVar5 = uVar8 & 1;\n    bVar4 = bVar7;\n  }\n  else {\n    if (bVar10 == 4) {\nLAB_001178e4:\n      if (*(int *)(iVar6 + 8) == 0) goto LAB_00117b4a;\n      if (*(char *)(*(int *)(iVar6 + 8) + 0x1a25) == '\0') goto LAB_0011791e;\n      if (bVar10 == 0) {\n        bVar2 = (byte)this_00->field_0x2b >> 5 & 1;\n        local_20 = (this_00->u2_).shndx;\n        goto LAB_00117a0c;\n      }\n    }\n    if (bVar10 == 3) goto LAB_0011791e;\nLAB_00117a21:\n    uVar5 = uVar8 & 1;\n    if (uVar5 != 0) {\n      iVar1 = *(int *)(iVar6 + 8);\n      if (iVar1 == 0) goto LAB_00117b4a;\n      if (*(char *)(iVar1 + 0x1a25) != '\0') goto LAB_0011792b;\n      if (*(char *)(iVar1 + 0x2931) != '\0') {\n        bVar4 = 0;\n        goto LAB_0011792b;\n      }\n    }\n    if (((uVar8 & 8) != 0) && (this_00->plt_offset_ != 0xffffffff)) {\n      return (bool)bVar7;\n    }\n    if ((uVar8 & 0x10) == 0) {\n      iVar6 = *(int *)(iVar6 + 8);\n      if (iVar6 == 0) {\nLAB_00117b4a:\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable\n                  ((char *)(unaff_EDI + 0x3309f6),0x5c,(char *)(unaff_EDI + 0x352c01));\n      }\n      if (((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) &&\n         (this_00->plt_offset_ != 0xffffffff)) goto LAB_0011791e;\n    }\n    if (bVar10 == 0) {\n      if ((((uint)((this_00->u1_).output_segment)->output_lists_[3].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage & 1) == 0) &&\n         (((this_00->u2_).shndx != 0 || (bVar4 = 0, (this_00->field_0x2b & 0x20) == 0)))) {\nLAB_00117ad7:\n        bVar3 = gold::Symbol::is_preemptible(this_00);\n        bVar4 = !bVar3;\n      }\n    }\n    else if (bVar10 != 4) goto LAB_00117ad7;\n  }" if (parenthesized_expression "((this_00->field_0x2a & 7) == 0)" ( (binary_expression "(this_00->field_0x2a & 7) == 0" (parenthesized_expression "(this_00->field_0x2a & 7)" ( (binary_expression "this_00->field_0x2a & 7" (field_expression "this_00->field_0x2a" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n    bVar2 = (byte)this_00->field_0x2b >> 5 & 1;\n    local_20 = (this_00->u2_).shndx;\n    if ((local_20 == 0) && (bVar2 != 0)) goto LAB_001178e4;\nLAB_00117a0c:\n    if ((local_20 != 0xfff1) || (bVar2 != 0)) goto LAB_00117a21;\nLAB_0011791e:\n    uVar5 = uVar8 & 1;\n    bVar4 = bVar7;\n  }" { (expression_statement "bVar2 = (byte)this_00->field_0x2b >> 5 & 1;" (assignment_expression "bVar2 = (byte)this_00->field_0x2b >> 5 & 1" identifier = (binary_expression "(byte)this_00->field_0x2b >> 5 & 1" (binary_expression "(byte)this_00->field_0x2b >> 5" (cast_expression "(byte)this_00->field_0x2b" ( (type_descriptor "byte" type_identifier) ) (field_expression "this_00->field_0x2b" identifier -> field_identifier)) >> number_literal) & number_literal)) ;) (expression_statement "local_20 = (this_00->u2_).shndx;" (assignment_expression "local_20 = (this_00->u2_).shndx" identifier = (field_expression "(this_00->u2_).shndx" (parenthesized_expression "(this_00->u2_)" ( (field_expression "this_00->u2_" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((local_20 == 0) && (bVar2 != 0)) goto LAB_001178e4;" if (parenthesized_expression "((local_20 == 0) && (bVar2 != 0))" ( (binary_expression "(local_20 == 0) && (bVar2 != 0)" (parenthesized_expression "(local_20 == 0)" ( (binary_expression "local_20 == 0" identifier == number_literal) )) && (parenthesized_expression "(bVar2 != 0)" ( (binary_expression "bVar2 != 0" identifier != number_literal) ))) )) (goto_statement "goto LAB_001178e4;" goto statement_identifier ;)) (labeled_statement "LAB_00117a0c:\n    if ((local_20 != 0xfff1) || (bVar2 != 0)) goto LAB_00117a21;" statement_identifier : (if_statement "if ((local_20 != 0xfff1) || (bVar2 != 0)) goto LAB_00117a21;" if (parenthesized_expression "((local_20 != 0xfff1) || (bVar2 != 0))" ( (binary_expression "(local_20 != 0xfff1) || (bVar2 != 0)" (parenthesized_expression "(local_20 != 0xfff1)" ( (binary_expression "local_20 != 0xfff1" identifier != number_literal) )) || (parenthesized_expression "(bVar2 != 0)" ( (binary_expression "bVar2 != 0" identifier != number_literal) ))) )) (goto_statement "goto LAB_00117a21;" goto statement_identifier ;))) (labeled_statement "LAB_0011791e:\n    uVar5 = uVar8 & 1;" statement_identifier : (expression_statement "uVar5 = uVar8 & 1;" (assignment_expression "uVar5 = uVar8 & 1" identifier = (binary_expression "uVar8 & 1" identifier & number_literal)) ;)) (expression_statement "bVar4 = bVar7;" (assignment_expression "bVar4 = bVar7" identifier = identifier) ;) }) (else_clause "else {\n    if (bVar10 == 4) {\nLAB_001178e4:\n      if (*(int *)(iVar6 + 8) == 0) goto LAB_00117b4a;\n      if (*(char *)(*(int *)(iVar6 + 8) + 0x1a25) == '\0') goto LAB_0011791e;\n      if (bVar10 == 0) {\n        bVar2 = (byte)this_00->field_0x2b >> 5 & 1;\n        local_20 = (this_00->u2_).shndx;\n        goto LAB_00117a0c;\n      }\n    }\n    if (bVar10 == 3) goto LAB_0011791e;\nLAB_00117a21:\n    uVar5 = uVar8 & 1;\n    if (uVar5 != 0) {\n      iVar1 = *(int *)(iVar6 + 8);\n      if (iVar1 == 0) goto LAB_00117b4a;\n      if (*(char *)(iVar1 + 0x1a25) != '\0') goto LAB_0011792b;\n      if (*(char *)(iVar1 + 0x2931) != '\0') {\n        bVar4 = 0;\n        goto LAB_0011792b;\n      }\n    }\n    if (((uVar8 & 8) != 0) && (this_00->plt_offset_ != 0xffffffff)) {\n      return (bool)bVar7;\n    }\n    if ((uVar8 & 0x10) == 0) {\n      iVar6 = *(int *)(iVar6 + 8);\n      if (iVar6 == 0) {\nLAB_00117b4a:\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable\n                  ((char *)(unaff_EDI + 0x3309f6),0x5c,(char *)(unaff_EDI + 0x352c01));\n      }\n      if (((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) &&\n         (this_00->plt_offset_ != 0xffffffff)) goto LAB_0011791e;\n    }\n    if (bVar10 == 0) {\n      if ((((uint)((this_00->u1_).output_segment)->output_lists_[3].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage & 1) == 0) &&\n         (((this_00->u2_).shndx != 0 || (bVar4 = 0, (this_00->field_0x2b & 0x20) == 0)))) {\nLAB_00117ad7:\n        bVar3 = gold::Symbol::is_preemptible(this_00);\n        bVar4 = !bVar3;\n      }\n    }\n    else if (bVar10 != 4) goto LAB_00117ad7;\n  }" else (compound_statement "{\n    if (bVar10 == 4) {\nLAB_001178e4:\n      if (*(int *)(iVar6 + 8) == 0) goto LAB_00117b4a;\n      if (*(char *)(*(int *)(iVar6 + 8) + 0x1a25) == '\0') goto LAB_0011791e;\n      if (bVar10 == 0) {\n        bVar2 = (byte)this_00->field_0x2b >> 5 & 1;\n        local_20 = (this_00->u2_).shndx;\n        goto LAB_00117a0c;\n      }\n    }\n    if (bVar10 == 3) goto LAB_0011791e;\nLAB_00117a21:\n    uVar5 = uVar8 & 1;\n    if (uVar5 != 0) {\n      iVar1 = *(int *)(iVar6 + 8);\n      if (iVar1 == 0) goto LAB_00117b4a;\n      if (*(char *)(iVar1 + 0x1a25) != '\0') goto LAB_0011792b;\n      if (*(char *)(iVar1 + 0x2931) != '\0') {\n        bVar4 = 0;\n        goto LAB_0011792b;\n      }\n    }\n    if (((uVar8 & 8) != 0) && (this_00->plt_offset_ != 0xffffffff)) {\n      return (bool)bVar7;\n    }\n    if ((uVar8 & 0x10) == 0) {\n      iVar6 = *(int *)(iVar6 + 8);\n      if (iVar6 == 0) {\nLAB_00117b4a:\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable\n                  ((char *)(unaff_EDI + 0x3309f6),0x5c,(char *)(unaff_EDI + 0x352c01));\n      }\n      if (((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) &&\n         (this_00->plt_offset_ != 0xffffffff)) goto LAB_0011791e;\n    }\n    if (bVar10 == 0) {\n      if ((((uint)((this_00->u1_).output_segment)->output_lists_[3].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage & 1) == 0) &&\n         (((this_00->u2_).shndx != 0 || (bVar4 = 0, (this_00->field_0x2b & 0x20) == 0)))) {\nLAB_00117ad7:\n        bVar3 = gold::Symbol::is_preemptible(this_00);\n        bVar4 = !bVar3;\n      }\n    }\n    else if (bVar10 != 4) goto LAB_00117ad7;\n  }" { (if_statement "if (bVar10 == 4) {\nLAB_001178e4:\n      if (*(int *)(iVar6 + 8) == 0) goto LAB_00117b4a;\n      if (*(char *)(*(int *)(iVar6 + 8) + 0x1a25) == '\0') goto LAB_0011791e;\n      if (bVar10 == 0) {\n        bVar2 = (byte)this_00->field_0x2b >> 5 & 1;\n        local_20 = (this_00->u2_).shndx;\n        goto LAB_00117a0c;\n      }\n    }" if (parenthesized_expression "(bVar10 == 4)" ( (binary_expression "bVar10 == 4" identifier == number_literal) )) (compound_statement "{\nLAB_001178e4:\n      if (*(int *)(iVar6 + 8) == 0) goto LAB_00117b4a;\n      if (*(char *)(*(int *)(iVar6 + 8) + 0x1a25) == '\0') goto LAB_0011791e;\n      if (bVar10 == 0) {\n        bVar2 = (byte)this_00->field_0x2b >> 5 & 1;\n        local_20 = (this_00->u2_).shndx;\n        goto LAB_00117a0c;\n      }\n    }" { (labeled_statement "LAB_001178e4:\n      if (*(int *)(iVar6 + 8) == 0) goto LAB_00117b4a;" statement_identifier : (if_statement "if (*(int *)(iVar6 + 8) == 0) goto LAB_00117b4a;" if (parenthesized_expression "(*(int *)(iVar6 + 8) == 0)" ( (binary_expression "*(int *)(iVar6 + 8) == 0" (pointer_expression "*(int *)(iVar6 + 8)" * (cast_expression "(int *)(iVar6 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00117b4a;" goto statement_identifier ;))) (if_statement "if (*(char *)(*(int *)(iVar6 + 8) + 0x1a25) == '\0') goto LAB_0011791e;" if (parenthesized_expression "(*(char *)(*(int *)(iVar6 + 8) + 0x1a25) == '\0')" ( (binary_expression "*(char *)(*(int *)(iVar6 + 8) + 0x1a25) == '\0'" (pointer_expression "*(char *)(*(int *)(iVar6 + 8) + 0x1a25)" * (cast_expression "(char *)(*(int *)(iVar6 + 8) + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar6 + 8) + 0x1a25)" ( (binary_expression "*(int *)(iVar6 + 8) + 0x1a25" (pointer_expression "*(int *)(iVar6 + 8)" * (cast_expression "(int *)(iVar6 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0011791e;" goto statement_identifier ;)) (if_statement "if (bVar10 == 0) {\n        bVar2 = (byte)this_00->field_0x2b >> 5 & 1;\n        local_20 = (this_00->u2_).shndx;\n        goto LAB_00117a0c;\n      }" if (parenthesized_expression "(bVar10 == 0)" ( (binary_expression "bVar10 == 0" identifier == number_literal) )) (compound_statement "{\n        bVar2 = (byte)this_00->field_0x2b >> 5 & 1;\n        local_20 = (this_00->u2_).shndx;\n        goto LAB_00117a0c;\n      }" { (expression_statement "bVar2 = (byte)this_00->field_0x2b >> 5 & 1;" (assignment_expression "bVar2 = (byte)this_00->field_0x2b >> 5 & 1" identifier = (binary_expression "(byte)this_00->field_0x2b >> 5 & 1" (binary_expression "(byte)this_00->field_0x2b >> 5" (cast_expression "(byte)this_00->field_0x2b" ( (type_descriptor "byte" type_identifier) ) (field_expression "this_00->field_0x2b" identifier -> field_identifier)) >> number_literal) & number_literal)) ;) (expression_statement "local_20 = (this_00->u2_).shndx;" (assignment_expression "local_20 = (this_00->u2_).shndx" identifier = (field_expression "(this_00->u2_).shndx" (parenthesized_expression "(this_00->u2_)" ( (field_expression "this_00->u2_" identifier -> field_identifier) )) . field_identifier)) ;) (goto_statement "goto LAB_00117a0c;" goto statement_identifier ;) })) })) (if_statement "if (bVar10 == 3) goto LAB_0011791e;" if (parenthesized_expression "(bVar10 == 3)" ( (binary_expression "bVar10 == 3" identifier == number_literal) )) (goto_statement "goto LAB_0011791e;" goto statement_identifier ;)) (labeled_statement "LAB_00117a21:\n    uVar5 = uVar8 & 1;" statement_identifier : (expression_statement "uVar5 = uVar8 & 1;" (assignment_expression "uVar5 = uVar8 & 1" identifier = (binary_expression "uVar8 & 1" identifier & number_literal)) ;)) (if_statement "if (uVar5 != 0) {\n      iVar1 = *(int *)(iVar6 + 8);\n      if (iVar1 == 0) goto LAB_00117b4a;\n      if (*(char *)(iVar1 + 0x1a25) != '\0') goto LAB_0011792b;\n      if (*(char *)(iVar1 + 0x2931) != '\0') {\n        bVar4 = 0;\n        goto LAB_0011792b;\n      }\n    }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar1 = *(int *)(iVar6 + 8);\n      if (iVar1 == 0) goto LAB_00117b4a;\n      if (*(char *)(iVar1 + 0x1a25) != '\0') goto LAB_0011792b;\n      if (*(char *)(iVar1 + 0x2931) != '\0') {\n        bVar4 = 0;\n        goto LAB_0011792b;\n      }\n    }" { (expression_statement "iVar1 = *(int *)(iVar6 + 8);" (assignment_expression "iVar1 = *(int *)(iVar6 + 8)" identifier = (pointer_expression "*(int *)(iVar6 + 8)" * (cast_expression "(int *)(iVar6 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar1 == 0) goto LAB_00117b4a;" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00117b4a;" goto statement_identifier ;)) (if_statement "if (*(char *)(iVar1 + 0x1a25) != '\0') goto LAB_0011792b;" if (parenthesized_expression "(*(char *)(iVar1 + 0x1a25) != '\0')" ( (binary_expression "*(char *)(iVar1 + 0x1a25) != '\0'" (pointer_expression "*(char *)(iVar1 + 0x1a25)" * (cast_expression "(char *)(iVar1 + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1a25)" ( (binary_expression "iVar1 + 0x1a25" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0011792b;" goto statement_identifier ;)) (if_statement "if (*(char *)(iVar1 + 0x2931) != '\0') {\n        bVar4 = 0;\n        goto LAB_0011792b;\n      }" if (parenthesized_expression "(*(char *)(iVar1 + 0x2931) != '\0')" ( (binary_expression "*(char *)(iVar1 + 0x2931) != '\0'" (pointer_expression "*(char *)(iVar1 + 0x2931)" * (cast_expression "(char *)(iVar1 + 0x2931)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x2931)" ( (binary_expression "iVar1 + 0x2931" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        bVar4 = 0;\n        goto LAB_0011792b;\n      }" { (expression_statement "bVar4 = 0;" (assignment_expression "bVar4 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0011792b;" goto statement_identifier ;) })) })) (if_statement "if (((uVar8 & 8) != 0) && (this_00->plt_offset_ != 0xffffffff)) {\n      return (bool)bVar7;\n    }" if (parenthesized_expression "(((uVar8 & 8) != 0) && (this_00->plt_offset_ != 0xffffffff))" ( (binary_expression "((uVar8 & 8) != 0) && (this_00->plt_offset_ != 0xffffffff)" (parenthesized_expression "((uVar8 & 8) != 0)" ( (binary_expression "(uVar8 & 8) != 0" (parenthesized_expression "(uVar8 & 8)" ( (binary_expression "uVar8 & 8" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(this_00->plt_offset_ != 0xffffffff)" ( (binary_expression "this_00->plt_offset_ != 0xffffffff" (field_expression "this_00->plt_offset_" identifier -> field_identifier) != number_literal) ))) )) (compound_statement "{\n      return (bool)bVar7;\n    }" { (return_statement "return (bool)bVar7;" return (cast_expression "(bool)bVar7" ( (type_descriptor "bool" primitive_type) ) identifier) ;) })) (if_statement "if ((uVar8 & 0x10) == 0) {\n      iVar6 = *(int *)(iVar6 + 8);\n      if (iVar6 == 0) {\nLAB_00117b4a:\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable\n                  ((char *)(unaff_EDI + 0x3309f6),0x5c,(char *)(unaff_EDI + 0x352c01));\n      }\n      if (((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) &&\n         (this_00->plt_offset_ != 0xffffffff)) goto LAB_0011791e;\n    }" if (parenthesized_expression "((uVar8 & 0x10) == 0)" ( (binary_expression "(uVar8 & 0x10) == 0" (parenthesized_expression "(uVar8 & 0x10)" ( (binary_expression "uVar8 & 0x10" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      iVar6 = *(int *)(iVar6 + 8);\n      if (iVar6 == 0) {\nLAB_00117b4a:\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable\n                  ((char *)(unaff_EDI + 0x3309f6),0x5c,(char *)(unaff_EDI + 0x352c01));\n      }\n      if (((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) &&\n         (this_00->plt_offset_ != 0xffffffff)) goto LAB_0011791e;\n    }" { (expression_statement "iVar6 = *(int *)(iVar6 + 8);" (assignment_expression "iVar6 = *(int *)(iVar6 + 8)" identifier = (pointer_expression "*(int *)(iVar6 + 8)" * (cast_expression "(int *)(iVar6 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar6 == 0) {\nLAB_00117b4a:\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable\n                  ((char *)(unaff_EDI + 0x3309f6),0x5c,(char *)(unaff_EDI + 0x352c01));\n      }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00117b4a:\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable\n                  ((char *)(unaff_EDI + 0x3309f6),0x5c,(char *)(unaff_EDI + 0x352c01));\n      }" { (labeled_statement "LAB_00117b4a:\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable\n                  ((char *)(unaff_EDI + 0x3309f6),0x5c,(char *)(unaff_EDI + 0x352c01));" statement_identifier : comment (labeled_statement "gold::do_gold_unreachable\n                  ((char *)(unaff_EDI + 0x3309f6),0x5c,(char *)(unaff_EDI + 0x352c01));" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable\n                  ((char *)(unaff_EDI + 0x3309f6),0x5c,(char *)(unaff_EDI + 0x352c01));" (call_expression "do_gold_unreachable\n                  ((char *)(unaff_EDI + 0x3309f6),0x5c,(char *)(unaff_EDI + 0x352c01))" identifier (argument_list "((char *)(unaff_EDI + 0x3309f6),0x5c,(char *)(unaff_EDI + 0x352c01))" ( (cast_expression "(char *)(unaff_EDI + 0x3309f6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x3309f6)" ( (binary_expression "unaff_EDI + 0x3309f6" identifier + number_literal) ))) , number_literal , (cast_expression "(char *)(unaff_EDI + 0x352c01)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x352c01)" ( (binary_expression "unaff_EDI + 0x352c01" identifier + number_literal) ))) ))) ;))) })) (if_statement "if (((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) &&\n         (this_00->plt_offset_ != 0xffffffff)) goto LAB_0011791e;" if (parenthesized_expression "(((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) &&\n         (this_00->plt_offset_ != 0xffffffff))" ( (binary_expression "((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) &&\n         (this_00->plt_offset_ != 0xffffffff)" (parenthesized_expression "((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0'))" ( (binary_expression "(*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')" (parenthesized_expression "(*(char *)(iVar6 + 0x1a25) == '\0')" ( (binary_expression "*(char *)(iVar6 + 0x1a25) == '\0'" (pointer_expression "*(char *)(iVar6 + 0x1a25)" * (cast_expression "(char *)(iVar6 + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1a25)" ( (binary_expression "iVar6 + 0x1a25" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(char *)(iVar6 + 0x2931) == '\0')" ( (binary_expression "*(char *)(iVar6 + 0x2931) == '\0'" (pointer_expression "*(char *)(iVar6 + 0x2931)" * (cast_expression "(char *)(iVar6 + 0x2931)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2931)" ( (binary_expression "iVar6 + 0x2931" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(this_00->plt_offset_ != 0xffffffff)" ( (binary_expression "this_00->plt_offset_ != 0xffffffff" (field_expression "this_00->plt_offset_" identifier -> field_identifier) != number_literal) ))) )) (goto_statement "goto LAB_0011791e;" goto statement_identifier ;)) })) (if_statement "if (bVar10 == 0) {\n      if ((((uint)((this_00->u1_).output_segment)->output_lists_[3].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage & 1) == 0) &&\n         (((this_00->u2_).shndx != 0 || (bVar4 = 0, (this_00->field_0x2b & 0x20) == 0)))) {\nLAB_00117ad7:\n        bVar3 = gold::Symbol::is_preemptible(this_00);\n        bVar4 = !bVar3;\n      }\n    }\n    else if (bVar10 != 4) goto LAB_00117ad7;" if (parenthesized_expression "(bVar10 == 0)" ( (binary_expression "bVar10 == 0" identifier == number_literal) )) (compound_statement "{\n      if ((((uint)((this_00->u1_).output_segment)->output_lists_[3].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage & 1) == 0) &&\n         (((this_00->u2_).shndx != 0 || (bVar4 = 0, (this_00->field_0x2b & 0x20) == 0)))) {\nLAB_00117ad7:\n        bVar3 = gold::Symbol::is_preemptible(this_00);\n        bVar4 = !bVar3;\n      }\n    }" { (if_statement "if ((((uint)((this_00->u1_).output_segment)->output_lists_[3].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage & 1) == 0) &&\n         (((this_00->u2_).shndx != 0 || (bVar4 = 0, (this_00->field_0x2b & 0x20) == 0)))) {\nLAB_00117ad7:\n        bVar3 = gold::Symbol::is_preemptible(this_00);\n        bVar4 = !bVar3;\n      }" if (parenthesized_expression "((((uint)((this_00->u1_).output_segment)->output_lists_[3].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage & 1) == 0) &&\n         (((this_00->u2_).shndx != 0 || (bVar4 = 0, (this_00->field_0x2b & 0x20) == 0))))" ( (binary_expression "(((uint)((this_00->u1_).output_segment)->output_lists_[3].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage & 1) == 0) &&\n         (((this_00->u2_).shndx != 0 || (bVar4 = 0, (this_00->field_0x2b & 0x20) == 0)))" (parenthesized_expression "(((uint)((this_00->u1_).output_segment)->output_lists_[3].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage & 1) == 0)" ( (binary_expression "((uint)((this_00->u1_).output_segment)->output_lists_[3].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage & 1) == 0" (parenthesized_expression "((uint)((this_00->u1_).output_segment)->output_lists_[3].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage & 1)" ( (binary_expression "(uint)((this_00->u1_).output_segment)->output_lists_[3].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage & 1" (field_expression "(uint)((this_00->u1_).output_segment)->output_lists_[3].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage" (field_expression "(uint)((this_00->u1_).output_segment)->output_lists_[3].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl" (binary_expression "(uint)((this_00->u1_).output_segment)->output_lists_[3].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "(uint)((this_00->u1_).output_segment)->output_lists_[3].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "(uint)((this_00->u1_).output_segment)->output_lists_[3].\n                  super__Vector_base<gold::Output_data*,_std" (binary_expression "(uint)((this_00->u1_).output_segment)->output_lists_[3].\n                  super__Vector_base<gold" (field_expression "(uint)((this_00->u1_).output_segment)->output_lists_[3].\n                  super__Vector_base" (subscript_expression "(uint)((this_00->u1_).output_segment)->output_lists_[3]" (field_expression "(uint)((this_00->u1_).output_segment)->output_lists_" (call_expression "(uint)((this_00->u1_).output_segment)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((this_00->u1_).output_segment)" ( (field_expression "(this_00->u1_).output_segment" (parenthesized_expression "(this_00->u1_)" ( (field_expression "this_00->u1_" identifier -> field_identifier) )) . field_identifier) ))) -> field_identifier) [ number_literal ]) . field_identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) & number_literal) )) == number_literal) )) && (parenthesized_expression "(((this_00->u2_).shndx != 0 || (bVar4 = 0, (this_00->field_0x2b & 0x20) == 0)))" ( (parenthesized_expression "((this_00->u2_).shndx != 0 || (bVar4 = 0, (this_00->field_0x2b & 0x20) == 0))" ( (binary_expression "(this_00->u2_).shndx != 0 || (bVar4 = 0, (this_00->field_0x2b & 0x20) == 0)" (binary_expression "(this_00->u2_).shndx != 0" (field_expression "(this_00->u2_).shndx" (parenthesized_expression "(this_00->u2_)" ( (field_expression "this_00->u2_" identifier -> field_identifier) )) . field_identifier) != number_literal) || (parenthesized_expression "(bVar4 = 0, (this_00->field_0x2b & 0x20) == 0)" ( (comma_expression "bVar4 = 0, (this_00->field_0x2b & 0x20) == 0" (assignment_expression "bVar4 = 0" identifier = number_literal) , (binary_expression "(this_00->field_0x2b & 0x20) == 0" (parenthesized_expression "(this_00->field_0x2b & 0x20)" ( (binary_expression "this_00->field_0x2b & 0x20" (field_expression "this_00->field_0x2b" identifier -> field_identifier) & number_literal) )) == number_literal)) ))) )) ))) )) (compound_statement "{\nLAB_00117ad7:\n        bVar3 = gold::Symbol::is_preemptible(this_00);\n        bVar4 = !bVar3;\n      }" { (labeled_statement "LAB_00117ad7:\n        bVar3 = gold::Symbol::is_preemptible(this_00);" statement_identifier : (ERROR "bVar3 = gold::" (assignment_expression "bVar3 = gold" identifier = identifier) : :) (labeled_statement "Symbol::is_preemptible(this_00);" statement_identifier : (ERROR ":" :) (expression_statement "is_preemptible(this_00);" (call_expression "is_preemptible(this_00)" identifier (argument_list "(this_00)" ( identifier ))) ;))) (expression_statement "bVar4 = !bVar3;" (assignment_expression "bVar4 = !bVar3" identifier = (unary_expression "!bVar3" ! identifier)) ;) })) }) (else_clause "else if (bVar10 != 4) goto LAB_00117ad7;" else (if_statement "if (bVar10 != 4) goto LAB_00117ad7;" if (parenthesized_expression "(bVar10 != 4)" ( (binary_expression "bVar10 != 4" identifier != number_literal) )) (goto_statement "goto LAB_00117ad7;" goto statement_identifier ;)))) }))) (labeled_statement "LAB_00117920:\n  if (uVar5 == 0) {\n    return (bool)bVar4;\n  }" statement_identifier : (if_statement "if (uVar5 == 0) {\n    return (bool)bVar4;\n  }" if (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    return (bool)bVar4;\n  }" { (return_statement "return (bool)bVar4;" return (cast_expression "(bool)bVar4" ( (type_descriptor "bool" primitive_type) ) identifier) ;) }))) (labeled_statement "LAB_0011792b:\n  if (((uVar8 & 8) == 0) || (this_00->plt_offset_ == 0xffffffff)) {\n    if ((this_00->field_0x2a & 7) == 0) {\n      if (((uint)((this_00->u1_).output_segment)->output_lists_[3].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_end_of_storage & 1) != 0) {\n        return (bool)bVar4;\n      }\n      if (((this_00->u2_).shndx == 0) && ((this_00->field_0x2b & 0x20) != 0)) {\n        return (bool)bVar4;\n      }\n    }\n    else if ((this_00->field_0x2a & 7) == 4) {\n      return (bool)bVar4;\n    }\n    bVar3 = gold::Symbol::is_preemptible(this_00);\n    bVar7 = bVar4 | !bVar3;\n  }" statement_identifier : (if_statement "if (((uVar8 & 8) == 0) || (this_00->plt_offset_ == 0xffffffff)) {\n    if ((this_00->field_0x2a & 7) == 0) {\n      if (((uint)((this_00->u1_).output_segment)->output_lists_[3].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_end_of_storage & 1) != 0) {\n        return (bool)bVar4;\n      }\n      if (((this_00->u2_).shndx == 0) && ((this_00->field_0x2b & 0x20) != 0)) {\n        return (bool)bVar4;\n      }\n    }\n    else if ((this_00->field_0x2a & 7) == 4) {\n      return (bool)bVar4;\n    }\n    bVar3 = gold::Symbol::is_preemptible(this_00);\n    bVar7 = bVar4 | !bVar3;\n  }" if (parenthesized_expression "(((uVar8 & 8) == 0) || (this_00->plt_offset_ == 0xffffffff))" ( (binary_expression "((uVar8 & 8) == 0) || (this_00->plt_offset_ == 0xffffffff)" (parenthesized_expression "((uVar8 & 8) == 0)" ( (binary_expression "(uVar8 & 8) == 0" (parenthesized_expression "(uVar8 & 8)" ( (binary_expression "uVar8 & 8" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(this_00->plt_offset_ == 0xffffffff)" ( (binary_expression "this_00->plt_offset_ == 0xffffffff" (field_expression "this_00->plt_offset_" identifier -> field_identifier) == number_literal) ))) )) (compound_statement "{\n    if ((this_00->field_0x2a & 7) == 0) {\n      if (((uint)((this_00->u1_).output_segment)->output_lists_[3].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_end_of_storage & 1) != 0) {\n        return (bool)bVar4;\n      }\n      if (((this_00->u2_).shndx == 0) && ((this_00->field_0x2b & 0x20) != 0)) {\n        return (bool)bVar4;\n      }\n    }\n    else if ((this_00->field_0x2a & 7) == 4) {\n      return (bool)bVar4;\n    }\n    bVar3 = gold::Symbol::is_preemptible(this_00);\n    bVar7 = bVar4 | !bVar3;\n  }" { (if_statement "if ((this_00->field_0x2a & 7) == 0) {\n      if (((uint)((this_00->u1_).output_segment)->output_lists_[3].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_end_of_storage & 1) != 0) {\n        return (bool)bVar4;\n      }\n      if (((this_00->u2_).shndx == 0) && ((this_00->field_0x2b & 0x20) != 0)) {\n        return (bool)bVar4;\n      }\n    }\n    else if ((this_00->field_0x2a & 7) == 4) {\n      return (bool)bVar4;\n    }" if (parenthesized_expression "((this_00->field_0x2a & 7) == 0)" ( (binary_expression "(this_00->field_0x2a & 7) == 0" (parenthesized_expression "(this_00->field_0x2a & 7)" ( (binary_expression "this_00->field_0x2a & 7" (field_expression "this_00->field_0x2a" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      if (((uint)((this_00->u1_).output_segment)->output_lists_[3].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_end_of_storage & 1) != 0) {\n        return (bool)bVar4;\n      }\n      if (((this_00->u2_).shndx == 0) && ((this_00->field_0x2b & 0x20) != 0)) {\n        return (bool)bVar4;\n      }\n    }" { (if_statement "if (((uint)((this_00->u1_).output_segment)->output_lists_[3].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_end_of_storage & 1) != 0) {\n        return (bool)bVar4;\n      }" if (parenthesized_expression "(((uint)((this_00->u1_).output_segment)->output_lists_[3].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_end_of_storage & 1) != 0)" ( (binary_expression "((uint)((this_00->u1_).output_segment)->output_lists_[3].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_end_of_storage & 1) != 0" (parenthesized_expression "((uint)((this_00->u1_).output_segment)->output_lists_[3].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_end_of_storage & 1)" ( (binary_expression "(uint)((this_00->u1_).output_segment)->output_lists_[3].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_end_of_storage & 1" (field_expression "(uint)((this_00->u1_).output_segment)->output_lists_[3].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_end_of_storage" (field_expression "(uint)((this_00->u1_).output_segment)->output_lists_[3].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl" (binary_expression "(uint)((this_00->u1_).output_segment)->output_lists_[3].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "(uint)((this_00->u1_).output_segment)->output_lists_[3].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "(uint)((this_00->u1_).output_segment)->output_lists_[3].\n                 super__Vector_base<gold::Output_data*,_std" (binary_expression "(uint)((this_00->u1_).output_segment)->output_lists_[3].\n                 super__Vector_base<gold" (field_expression "(uint)((this_00->u1_).output_segment)->output_lists_[3].\n                 super__Vector_base" (subscript_expression "(uint)((this_00->u1_).output_segment)->output_lists_[3]" (field_expression "(uint)((this_00->u1_).output_segment)->output_lists_" (call_expression "(uint)((this_00->u1_).output_segment)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((this_00->u1_).output_segment)" ( (field_expression "(this_00->u1_).output_segment" (parenthesized_expression "(this_00->u1_)" ( (field_expression "this_00->u1_" identifier -> field_identifier) )) . field_identifier) ))) -> field_identifier) [ number_literal ]) . field_identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n        return (bool)bVar4;\n      }" { (return_statement "return (bool)bVar4;" return (cast_expression "(bool)bVar4" ( (type_descriptor "bool" primitive_type) ) identifier) ;) })) (if_statement "if (((this_00->u2_).shndx == 0) && ((this_00->field_0x2b & 0x20) != 0)) {\n        return (bool)bVar4;\n      }" if (parenthesized_expression "(((this_00->u2_).shndx == 0) && ((this_00->field_0x2b & 0x20) != 0))" ( (binary_expression "((this_00->u2_).shndx == 0) && ((this_00->field_0x2b & 0x20) != 0)" (parenthesized_expression "((this_00->u2_).shndx == 0)" ( (binary_expression "(this_00->u2_).shndx == 0" (field_expression "(this_00->u2_).shndx" (parenthesized_expression "(this_00->u2_)" ( (field_expression "this_00->u2_" identifier -> field_identifier) )) . field_identifier) == number_literal) )) && (parenthesized_expression "((this_00->field_0x2b & 0x20) != 0)" ( (binary_expression "(this_00->field_0x2b & 0x20) != 0" (parenthesized_expression "(this_00->field_0x2b & 0x20)" ( (binary_expression "this_00->field_0x2b & 0x20" (field_expression "this_00->field_0x2b" identifier -> field_identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n        return (bool)bVar4;\n      }" { (return_statement "return (bool)bVar4;" return (cast_expression "(bool)bVar4" ( (type_descriptor "bool" primitive_type) ) identifier) ;) })) }) (else_clause "else if ((this_00->field_0x2a & 7) == 4) {\n      return (bool)bVar4;\n    }" else (if_statement "if ((this_00->field_0x2a & 7) == 4) {\n      return (bool)bVar4;\n    }" if (parenthesized_expression "((this_00->field_0x2a & 7) == 4)" ( (binary_expression "(this_00->field_0x2a & 7) == 4" (parenthesized_expression "(this_00->field_0x2a & 7)" ( (binary_expression "this_00->field_0x2a & 7" (field_expression "this_00->field_0x2a" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      return (bool)bVar4;\n    }" { (return_statement "return (bool)bVar4;" return (cast_expression "(bool)bVar4" ( (type_descriptor "bool" primitive_type) ) identifier) ;) })))) (ERROR "bVar3 = gold::" (assignment_expression "bVar3 = gold" identifier = identifier) : :) (labeled_statement "Symbol::is_preemptible(this_00);" statement_identifier : (ERROR ":" :) (expression_statement "is_preemptible(this_00);" (call_expression "is_preemptible(this_00)" identifier (argument_list "(this_00)" ( identifier ))) ;)) (expression_statement "bVar7 = bVar4 | !bVar3;" (assignment_expression "bVar7 = bVar4 | !bVar3" identifier = (binary_expression "bVar4 | !bVar3" identifier | (unary_expression "!bVar3" ! identifier))) ;) }))) (return_statement "return (bool)bVar7;" return (cast_expression "(bool)bVar7" ( (type_descriptor "bool" primitive_type) ) identifier) ;) })))
(translation_unit "uint FUN_00117870(int param_1)\n\n{\n  byte bVar1;\n  byte bVar2;\n  byte bVar3;\n  int iVar4;\n  int iVar5;\n  uint extraout_ECX;\n  uint uVar6;\n  int iVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  int unaff_EDI;\n  undefined8 uVar11;\n  uint local_2c;\n  int local_20;\n  \n  uVar11 = FUN_00074f0a();\n  iVar7 = (int)((ulonglong)uVar11 >> 0x20);\n  iVar4 = (int)uVar11;\n  if ((*(byte *)(param_1 + 0x54) & 2) == 0) {\n    return 1;\n  }\n  uVar10 = 0;\n  if (iVar7 - 2U < 0x6b) {\n    uVar10 = (uint)(char)(&UNK_00351487)[iVar7 + unaff_EDI];\n    iVar7 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);\n  }\n  else {\n    iVar7 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);\n  }\n  if (iVar4 == 0) {\n    iVar4 = *(int *)(iVar7 + 8);\n    if (iVar4 != 0) {\n      if ((*(char *)(iVar4 + 0x1a25) == '\0') && (*(char *)(iVar4 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar10 & 1 | extraout_ECX;\n    }\nLAB_00117b67:\n                    \n    FUN_0010cb20();\n  }\n  bVar1 = *(byte *)(iVar7 + 0x10);\n  uVar6 = (uint)bVar1;\n  if (bVar1 == 0) {\n    FUN_0010caf0();\n    goto LAB_00117b67;\n  }\n  uVar8 = (uint)*(byte *)(iVar7 + 0x11);\n  uVar9 = uVar8;\n  if (*(byte *)(iVar7 + 0x11) == 0) {\n    bVar3 = *(byte *)(iVar4 + 0x2a) & 7;\n    uVar9 = uVar6;\n    if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n      bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;\n      local_20 = *(int *)(iVar4 + 0xc);\n      if ((local_20 == 0) && (bVar2 != 0)) goto LAB_001178e4;\nLAB_00117a0c:\n      if ((local_20 != 0xfff1) || (bVar2 != 0)) goto LAB_00117a21;\n      goto LAB_00117920;\n    }\n    if (bVar3 == 4) {\nLAB_001178e4:\n      iVar5 = *(int *)(iVar7 + 8);\n      if (iVar5 == 0) goto LAB_00117b4a;\n      if (*(char *)(iVar5 + 0x1a25) == '\0') goto LAB_00117920;\n      if (bVar3 == 0) {\n        bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;\n        local_20 = *(int *)(iVar4 + 0xc);\n        goto LAB_00117a0c;\n      }\n    }\n    if (bVar3 == 3) goto LAB_00117920;\nLAB_00117a21:\n    local_2c = uVar10 & 1;\n    if (local_2c == 0) {\nLAB_00117a60:\n      if (((uVar10 & 8) != 0) && (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117a6e;\n      if ((uVar10 & 0x10) == 0) {\n        iVar5 = *(int *)(iVar7 + 8);\n        if (iVar5 == 0) {\nLAB_00117b4a:\n                    \n          FUN_002446e0(unaff_EDI + 0x3309f6,0x5c,unaff_EDI + 0x352c01,iVar5);\n        }\n        if (((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) &&\n           (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117920;\n      }\n      if (bVar3 == 0) {\n        uVar9 = uVar8;\n        if (((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar4 + 0xc) != 0 || (uVar9 = 0, (*(byte *)(iVar4 + 0x2b) & 0x20) == 0)))) {\nLAB_00117ad7:\n          uVar6 = FUN_00071a80(iVar4);\n          uVar9 = uVar6 ^ 1;\n        }\n      }\n      else {\n        uVar9 = uVar8;\n        if (bVar3 != 4) goto LAB_00117ad7;\n      }\n      goto LAB_00117920;\n    }\n    iVar5 = *(int *)(iVar7 + 8);\n    if (iVar5 == 0) goto LAB_00117b4a;\n    if (*(char *)(iVar5 + 0x1a25) == '\0') {\n      if (*(char *)(iVar5 + 0x2931) == '\0') goto LAB_00117a60;\n      uVar8 = 0;\n    }\n  }\n  else {\nLAB_00117920:\n    local_2c = uVar10 & 1;\n    uVar8 = uVar9;\n    if (local_2c == 0) {\n      return uVar9;\n    }\n  }\n  if (((uVar10 & 8) == 0) || (*(int *)(iVar4 + 0x18) == -1)) {\n    if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n      if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) != 0) {\n        return uVar8;\n      }\n      if ((*(int *)(iVar4 + 0xc) == 0) && ((*(byte *)(iVar4 + 0x2b) & 0x20) != 0)) {\n        return uVar8;\n      }\n    }\n    else if ((*(byte *)(iVar4 + 0x2a) & 7) == 4) {\n      return uVar8;\n    }\n    uVar10 = FUN_00071a80(iVar4);\n    return uVar8 | uVar10 ^ 1;\n  }\nLAB_00117a6e:\n  return (uint)bVar1;\n}\n\n" (function_definition "uint FUN_00117870(int param_1)\n\n{\n  byte bVar1;\n  byte bVar2;\n  byte bVar3;\n  int iVar4;\n  int iVar5;\n  uint extraout_ECX;\n  uint uVar6;\n  int iVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  int unaff_EDI;\n  undefined8 uVar11;\n  uint local_2c;\n  int local_20;\n  \n  uVar11 = FUN_00074f0a();\n  iVar7 = (int)((ulonglong)uVar11 >> 0x20);\n  iVar4 = (int)uVar11;\n  if ((*(byte *)(param_1 + 0x54) & 2) == 0) {\n    return 1;\n  }\n  uVar10 = 0;\n  if (iVar7 - 2U < 0x6b) {\n    uVar10 = (uint)(char)(&UNK_00351487)[iVar7 + unaff_EDI];\n    iVar7 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);\n  }\n  else {\n    iVar7 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);\n  }\n  if (iVar4 == 0) {\n    iVar4 = *(int *)(iVar7 + 8);\n    if (iVar4 != 0) {\n      if ((*(char *)(iVar4 + 0x1a25) == '\0') && (*(char *)(iVar4 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar10 & 1 | extraout_ECX;\n    }\nLAB_00117b67:\n                    \n    FUN_0010cb20();\n  }\n  bVar1 = *(byte *)(iVar7 + 0x10);\n  uVar6 = (uint)bVar1;\n  if (bVar1 == 0) {\n    FUN_0010caf0();\n    goto LAB_00117b67;\n  }\n  uVar8 = (uint)*(byte *)(iVar7 + 0x11);\n  uVar9 = uVar8;\n  if (*(byte *)(iVar7 + 0x11) == 0) {\n    bVar3 = *(byte *)(iVar4 + 0x2a) & 7;\n    uVar9 = uVar6;\n    if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n      bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;\n      local_20 = *(int *)(iVar4 + 0xc);\n      if ((local_20 == 0) && (bVar2 != 0)) goto LAB_001178e4;\nLAB_00117a0c:\n      if ((local_20 != 0xfff1) || (bVar2 != 0)) goto LAB_00117a21;\n      goto LAB_00117920;\n    }\n    if (bVar3 == 4) {\nLAB_001178e4:\n      iVar5 = *(int *)(iVar7 + 8);\n      if (iVar5 == 0) goto LAB_00117b4a;\n      if (*(char *)(iVar5 + 0x1a25) == '\0') goto LAB_00117920;\n      if (bVar3 == 0) {\n        bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;\n        local_20 = *(int *)(iVar4 + 0xc);\n        goto LAB_00117a0c;\n      }\n    }\n    if (bVar3 == 3) goto LAB_00117920;\nLAB_00117a21:\n    local_2c = uVar10 & 1;\n    if (local_2c == 0) {\nLAB_00117a60:\n      if (((uVar10 & 8) != 0) && (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117a6e;\n      if ((uVar10 & 0x10) == 0) {\n        iVar5 = *(int *)(iVar7 + 8);\n        if (iVar5 == 0) {\nLAB_00117b4a:\n                    \n          FUN_002446e0(unaff_EDI + 0x3309f6,0x5c,unaff_EDI + 0x352c01,iVar5);\n        }\n        if (((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) &&\n           (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117920;\n      }\n      if (bVar3 == 0) {\n        uVar9 = uVar8;\n        if (((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar4 + 0xc) != 0 || (uVar9 = 0, (*(byte *)(iVar4 + 0x2b) & 0x20) == 0)))) {\nLAB_00117ad7:\n          uVar6 = FUN_00071a80(iVar4);\n          uVar9 = uVar6 ^ 1;\n        }\n      }\n      else {\n        uVar9 = uVar8;\n        if (bVar3 != 4) goto LAB_00117ad7;\n      }\n      goto LAB_00117920;\n    }\n    iVar5 = *(int *)(iVar7 + 8);\n    if (iVar5 == 0) goto LAB_00117b4a;\n    if (*(char *)(iVar5 + 0x1a25) == '\0') {\n      if (*(char *)(iVar5 + 0x2931) == '\0') goto LAB_00117a60;\n      uVar8 = 0;\n    }\n  }\n  else {\nLAB_00117920:\n    local_2c = uVar10 & 1;\n    uVar8 = uVar9;\n    if (local_2c == 0) {\n      return uVar9;\n    }\n  }\n  if (((uVar10 & 8) == 0) || (*(int *)(iVar4 + 0x18) == -1)) {\n    if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n      if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) != 0) {\n        return uVar8;\n      }\n      if ((*(int *)(iVar4 + 0xc) == 0) && ((*(byte *)(iVar4 + 0x2b) & 0x20) != 0)) {\n        return uVar8;\n      }\n    }\n    else if ((*(byte *)(iVar4 + 0x2a) & 7) == 4) {\n      return uVar8;\n    }\n    uVar10 = FUN_00071a80(iVar4);\n    return uVar8 | uVar10 ^ 1;\n  }\nLAB_00117a6e:\n  return (uint)bVar1;\n}" type_identifier (function_declarator "FUN_00117870(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  byte bVar2;\n  byte bVar3;\n  int iVar4;\n  int iVar5;\n  uint extraout_ECX;\n  uint uVar6;\n  int iVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  int unaff_EDI;\n  undefined8 uVar11;\n  uint local_2c;\n  int local_20;\n  \n  uVar11 = FUN_00074f0a();\n  iVar7 = (int)((ulonglong)uVar11 >> 0x20);\n  iVar4 = (int)uVar11;\n  if ((*(byte *)(param_1 + 0x54) & 2) == 0) {\n    return 1;\n  }\n  uVar10 = 0;\n  if (iVar7 - 2U < 0x6b) {\n    uVar10 = (uint)(char)(&UNK_00351487)[iVar7 + unaff_EDI];\n    iVar7 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);\n  }\n  else {\n    iVar7 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);\n  }\n  if (iVar4 == 0) {\n    iVar4 = *(int *)(iVar7 + 8);\n    if (iVar4 != 0) {\n      if ((*(char *)(iVar4 + 0x1a25) == '\0') && (*(char *)(iVar4 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar10 & 1 | extraout_ECX;\n    }\nLAB_00117b67:\n                    \n    FUN_0010cb20();\n  }\n  bVar1 = *(byte *)(iVar7 + 0x10);\n  uVar6 = (uint)bVar1;\n  if (bVar1 == 0) {\n    FUN_0010caf0();\n    goto LAB_00117b67;\n  }\n  uVar8 = (uint)*(byte *)(iVar7 + 0x11);\n  uVar9 = uVar8;\n  if (*(byte *)(iVar7 + 0x11) == 0) {\n    bVar3 = *(byte *)(iVar4 + 0x2a) & 7;\n    uVar9 = uVar6;\n    if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n      bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;\n      local_20 = *(int *)(iVar4 + 0xc);\n      if ((local_20 == 0) && (bVar2 != 0)) goto LAB_001178e4;\nLAB_00117a0c:\n      if ((local_20 != 0xfff1) || (bVar2 != 0)) goto LAB_00117a21;\n      goto LAB_00117920;\n    }\n    if (bVar3 == 4) {\nLAB_001178e4:\n      iVar5 = *(int *)(iVar7 + 8);\n      if (iVar5 == 0) goto LAB_00117b4a;\n      if (*(char *)(iVar5 + 0x1a25) == '\0') goto LAB_00117920;\n      if (bVar3 == 0) {\n        bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;\n        local_20 = *(int *)(iVar4 + 0xc);\n        goto LAB_00117a0c;\n      }\n    }\n    if (bVar3 == 3) goto LAB_00117920;\nLAB_00117a21:\n    local_2c = uVar10 & 1;\n    if (local_2c == 0) {\nLAB_00117a60:\n      if (((uVar10 & 8) != 0) && (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117a6e;\n      if ((uVar10 & 0x10) == 0) {\n        iVar5 = *(int *)(iVar7 + 8);\n        if (iVar5 == 0) {\nLAB_00117b4a:\n                    \n          FUN_002446e0(unaff_EDI + 0x3309f6,0x5c,unaff_EDI + 0x352c01,iVar5);\n        }\n        if (((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) &&\n           (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117920;\n      }\n      if (bVar3 == 0) {\n        uVar9 = uVar8;\n        if (((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar4 + 0xc) != 0 || (uVar9 = 0, (*(byte *)(iVar4 + 0x2b) & 0x20) == 0)))) {\nLAB_00117ad7:\n          uVar6 = FUN_00071a80(iVar4);\n          uVar9 = uVar6 ^ 1;\n        }\n      }\n      else {\n        uVar9 = uVar8;\n        if (bVar3 != 4) goto LAB_00117ad7;\n      }\n      goto LAB_00117920;\n    }\n    iVar5 = *(int *)(iVar7 + 8);\n    if (iVar5 == 0) goto LAB_00117b4a;\n    if (*(char *)(iVar5 + 0x1a25) == '\0') {\n      if (*(char *)(iVar5 + 0x2931) == '\0') goto LAB_00117a60;\n      uVar8 = 0;\n    }\n  }\n  else {\nLAB_00117920:\n    local_2c = uVar10 & 1;\n    uVar8 = uVar9;\n    if (local_2c == 0) {\n      return uVar9;\n    }\n  }\n  if (((uVar10 & 8) == 0) || (*(int *)(iVar4 + 0x18) == -1)) {\n    if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n      if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) != 0) {\n        return uVar8;\n      }\n      if ((*(int *)(iVar4 + 0xc) == 0) && ((*(byte *)(iVar4 + 0x2b) & 0x20) != 0)) {\n        return uVar8;\n      }\n    }\n    else if ((*(byte *)(iVar4 + 0x2a) & 7) == 4) {\n      return uVar8;\n    }\n    uVar10 = FUN_00071a80(iVar4);\n    return uVar8 | uVar10 ^ 1;\n  }\nLAB_00117a6e:\n  return (uint)bVar1;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint extraout_ECX;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "undefined8 uVar11;" type_identifier identifier ;) (declaration "uint local_2c;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "uVar11 = FUN_00074f0a();" (assignment_expression "uVar11 = FUN_00074f0a()" identifier = (call_expression "FUN_00074f0a()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar7 = (int)((ulonglong)uVar11 >> 0x20);" (assignment_expression "iVar7 = (int)((ulonglong)uVar11 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)uVar11 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar11 >> 0x20)" ( (binary_expression "(ulonglong)uVar11 >> 0x20" (cast_expression "(ulonglong)uVar11" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "iVar4 = (int)uVar11;" (assignment_expression "iVar4 = (int)uVar11" identifier = (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if ((*(byte *)(param_1 + 0x54) & 2) == 0) {\n    return 1;\n  }" if (parenthesized_expression "((*(byte *)(param_1 + 0x54) & 2) == 0)" ( (binary_expression "(*(byte *)(param_1 + 0x54) & 2) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0x54) & 2)" ( (binary_expression "*(byte *)(param_1 + 0x54) & 2" (pointer_expression "*(byte *)(param_1 + 0x54)" * (cast_expression "(byte *)(param_1 + 0x54)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (if_statement "if (iVar7 - 2U < 0x6b) {\n    uVar10 = (uint)(char)(&UNK_00351487)[iVar7 + unaff_EDI];\n    iVar7 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);\n  }\n  else {\n    iVar7 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);\n  }" if (parenthesized_expression "(iVar7 - 2U < 0x6b)" ( (binary_expression "iVar7 - 2U < 0x6b" (binary_expression "iVar7 - 2U" identifier - number_literal) < number_literal) )) (compound_statement "{\n    uVar10 = (uint)(char)(&UNK_00351487)[iVar7 + unaff_EDI];\n    iVar7 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);\n  }" { (expression_statement "uVar10 = (uint)(char)(&UNK_00351487)[iVar7 + unaff_EDI];" (assignment_expression "uVar10 = (uint)(char)(&UNK_00351487)[iVar7 + unaff_EDI]" identifier = (subscript_expression "(uint)(char)(&UNK_00351487)[iVar7 + unaff_EDI]" (call_expression "(uint)(char)(&UNK_00351487)" (call_expression "(uint)(char)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(char)" ( identifier ))) (argument_list "(&UNK_00351487)" ( (pointer_expression "&UNK_00351487" & identifier) ))) [ (binary_expression "iVar7 + unaff_EDI" identifier + identifier) ])) ;) (expression_statement "iVar7 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);" (assignment_expression "iVar7 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1)" identifier = (pointer_expression "*(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1)" * (cast_expression "(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&DWORD_004d2f50 + unaff_EDI + 1)" ( (binary_expression "(int)&DWORD_004d2f50 + unaff_EDI + 1" (binary_expression "(int)&DWORD_004d2f50 + unaff_EDI" (cast_expression "(int)&DWORD_004d2f50" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&DWORD_004d2f50" & identifier)) + identifier) + number_literal) ))))) ;) }) (else_clause "else {\n    iVar7 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);\n  }" else (compound_statement "{\n    iVar7 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);\n  }" { (expression_statement "iVar7 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);" (assignment_expression "iVar7 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1)" identifier = (pointer_expression "*(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1)" * (cast_expression "(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&DWORD_004d2f50 + unaff_EDI + 1)" ( (binary_expression "(int)&DWORD_004d2f50 + unaff_EDI + 1" (binary_expression "(int)&DWORD_004d2f50 + unaff_EDI" (cast_expression "(int)&DWORD_004d2f50" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&DWORD_004d2f50" & identifier)) + identifier) + number_literal) ))))) ;) }))) (if_statement "if (iVar4 == 0) {\n    iVar4 = *(int *)(iVar7 + 8);\n    if (iVar4 != 0) {\n      if ((*(char *)(iVar4 + 0x1a25) == '\0') && (*(char *)(iVar4 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar10 & 1 | extraout_ECX;\n    }\nLAB_00117b67:\n                    \n    FUN_0010cb20();\n  }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar4 = *(int *)(iVar7 + 8);\n    if (iVar4 != 0) {\n      if ((*(char *)(iVar4 + 0x1a25) == '\0') && (*(char *)(iVar4 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar10 & 1 | extraout_ECX;\n    }\nLAB_00117b67:\n                    \n    FUN_0010cb20();\n  }" { (expression_statement "iVar4 = *(int *)(iVar7 + 8);" (assignment_expression "iVar4 = *(int *)(iVar7 + 8)" identifier = (pointer_expression "*(int *)(iVar7 + 8)" * (cast_expression "(int *)(iVar7 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 8)" ( (binary_expression "iVar7 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar4 != 0) {\n      if ((*(char *)(iVar4 + 0x1a25) == '\0') && (*(char *)(iVar4 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar10 & 1 | extraout_ECX;\n    }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      if ((*(char *)(iVar4 + 0x1a25) == '\0') && (*(char *)(iVar4 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar10 & 1 | extraout_ECX;\n    }" { (if_statement "if ((*(char *)(iVar4 + 0x1a25) == '\0') && (*(char *)(iVar4 + 0x2931) == '\0')) {\n        return 1;\n      }" if (parenthesized_expression "((*(char *)(iVar4 + 0x1a25) == '\0') && (*(char *)(iVar4 + 0x2931) == '\0'))" ( (binary_expression "(*(char *)(iVar4 + 0x1a25) == '\0') && (*(char *)(iVar4 + 0x2931) == '\0')" (parenthesized_expression "(*(char *)(iVar4 + 0x1a25) == '\0')" ( (binary_expression "*(char *)(iVar4 + 0x1a25) == '\0'" (pointer_expression "*(char *)(iVar4 + 0x1a25)" * (cast_expression "(char *)(iVar4 + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1a25)" ( (binary_expression "iVar4 + 0x1a25" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(char *)(iVar4 + 0x2931) == '\0')" ( (binary_expression "*(char *)(iVar4 + 0x2931) == '\0'" (pointer_expression "*(char *)(iVar4 + 0x2931)" * (cast_expression "(char *)(iVar4 + 0x2931)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2931)" ( (binary_expression "iVar4 + 0x2931" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (return_statement "return ~uVar10 & 1 | extraout_ECX;" return (binary_expression "~uVar10 & 1 | extraout_ECX" (binary_expression "~uVar10 & 1" (unary_expression "~uVar10" ~ identifier) & number_literal) | identifier) ;) })) (labeled_statement "LAB_00117b67:\n                    \n    FUN_0010cb20();" statement_identifier : (expression_statement "FUN_0010cb20();" (call_expression "FUN_0010cb20()" identifier (argument_list "()" ( ))) ;)) })) (expression_statement "bVar1 = *(byte *)(iVar7 + 0x10);" (assignment_expression "bVar1 = *(byte *)(iVar7 + 0x10)" identifier = (pointer_expression "*(byte *)(iVar7 + 0x10)" * (cast_expression "(byte *)(iVar7 + 0x10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar6 = (uint)bVar1;" (assignment_expression "uVar6 = (uint)bVar1" identifier = (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (bVar1 == 0) {\n    FUN_0010caf0();\n    goto LAB_00117b67;\n  }" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    FUN_0010caf0();\n    goto LAB_00117b67;\n  }" { (expression_statement "FUN_0010caf0();" (call_expression "FUN_0010caf0()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_00117b67;" goto statement_identifier ;) })) (expression_statement "uVar8 = (uint)*(byte *)(iVar7 + 0x11);" (assignment_expression "uVar8 = (uint)*(byte *)(iVar7 + 0x11)" identifier = (binary_expression "(uint)*(byte *)(iVar7 + 0x11)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar7 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x11)" ( (binary_expression "iVar7 + 0x11" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = uVar8;" (assignment_expression "uVar9 = uVar8" identifier = identifier) ;) (if_statement "if (*(byte *)(iVar7 + 0x11) == 0) {\n    bVar3 = *(byte *)(iVar4 + 0x2a) & 7;\n    uVar9 = uVar6;\n    if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n      bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;\n      local_20 = *(int *)(iVar4 + 0xc);\n      if ((local_20 == 0) && (bVar2 != 0)) goto LAB_001178e4;\nLAB_00117a0c:\n      if ((local_20 != 0xfff1) || (bVar2 != 0)) goto LAB_00117a21;\n      goto LAB_00117920;\n    }\n    if (bVar3 == 4) {\nLAB_001178e4:\n      iVar5 = *(int *)(iVar7 + 8);\n      if (iVar5 == 0) goto LAB_00117b4a;\n      if (*(char *)(iVar5 + 0x1a25) == '\0') goto LAB_00117920;\n      if (bVar3 == 0) {\n        bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;\n        local_20 = *(int *)(iVar4 + 0xc);\n        goto LAB_00117a0c;\n      }\n    }\n    if (bVar3 == 3) goto LAB_00117920;\nLAB_00117a21:\n    local_2c = uVar10 & 1;\n    if (local_2c == 0) {\nLAB_00117a60:\n      if (((uVar10 & 8) != 0) && (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117a6e;\n      if ((uVar10 & 0x10) == 0) {\n        iVar5 = *(int *)(iVar7 + 8);\n        if (iVar5 == 0) {\nLAB_00117b4a:\n                    \n          FUN_002446e0(unaff_EDI + 0x3309f6,0x5c,unaff_EDI + 0x352c01,iVar5);\n        }\n        if (((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) &&\n           (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117920;\n      }\n      if (bVar3 == 0) {\n        uVar9 = uVar8;\n        if (((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar4 + 0xc) != 0 || (uVar9 = 0, (*(byte *)(iVar4 + 0x2b) & 0x20) == 0)))) {\nLAB_00117ad7:\n          uVar6 = FUN_00071a80(iVar4);\n          uVar9 = uVar6 ^ 1;\n        }\n      }\n      else {\n        uVar9 = uVar8;\n        if (bVar3 != 4) goto LAB_00117ad7;\n      }\n      goto LAB_00117920;\n    }\n    iVar5 = *(int *)(iVar7 + 8);\n    if (iVar5 == 0) goto LAB_00117b4a;\n    if (*(char *)(iVar5 + 0x1a25) == '\0') {\n      if (*(char *)(iVar5 + 0x2931) == '\0') goto LAB_00117a60;\n      uVar8 = 0;\n    }\n  }\n  else {\nLAB_00117920:\n    local_2c = uVar10 & 1;\n    uVar8 = uVar9;\n    if (local_2c == 0) {\n      return uVar9;\n    }\n  }" if (parenthesized_expression "(*(byte *)(iVar7 + 0x11) == 0)" ( (binary_expression "*(byte *)(iVar7 + 0x11) == 0" (pointer_expression "*(byte *)(iVar7 + 0x11)" * (cast_expression "(byte *)(iVar7 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x11)" ( (binary_expression "iVar7 + 0x11" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    bVar3 = *(byte *)(iVar4 + 0x2a) & 7;\n    uVar9 = uVar6;\n    if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n      bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;\n      local_20 = *(int *)(iVar4 + 0xc);\n      if ((local_20 == 0) && (bVar2 != 0)) goto LAB_001178e4;\nLAB_00117a0c:\n      if ((local_20 != 0xfff1) || (bVar2 != 0)) goto LAB_00117a21;\n      goto LAB_00117920;\n    }\n    if (bVar3 == 4) {\nLAB_001178e4:\n      iVar5 = *(int *)(iVar7 + 8);\n      if (iVar5 == 0) goto LAB_00117b4a;\n      if (*(char *)(iVar5 + 0x1a25) == '\0') goto LAB_00117920;\n      if (bVar3 == 0) {\n        bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;\n        local_20 = *(int *)(iVar4 + 0xc);\n        goto LAB_00117a0c;\n      }\n    }\n    if (bVar3 == 3) goto LAB_00117920;\nLAB_00117a21:\n    local_2c = uVar10 & 1;\n    if (local_2c == 0) {\nLAB_00117a60:\n      if (((uVar10 & 8) != 0) && (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117a6e;\n      if ((uVar10 & 0x10) == 0) {\n        iVar5 = *(int *)(iVar7 + 8);\n        if (iVar5 == 0) {\nLAB_00117b4a:\n                    \n          FUN_002446e0(unaff_EDI + 0x3309f6,0x5c,unaff_EDI + 0x352c01,iVar5);\n        }\n        if (((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) &&\n           (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117920;\n      }\n      if (bVar3 == 0) {\n        uVar9 = uVar8;\n        if (((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar4 + 0xc) != 0 || (uVar9 = 0, (*(byte *)(iVar4 + 0x2b) & 0x20) == 0)))) {\nLAB_00117ad7:\n          uVar6 = FUN_00071a80(iVar4);\n          uVar9 = uVar6 ^ 1;\n        }\n      }\n      else {\n        uVar9 = uVar8;\n        if (bVar3 != 4) goto LAB_00117ad7;\n      }\n      goto LAB_00117920;\n    }\n    iVar5 = *(int *)(iVar7 + 8);\n    if (iVar5 == 0) goto LAB_00117b4a;\n    if (*(char *)(iVar5 + 0x1a25) == '\0') {\n      if (*(char *)(iVar5 + 0x2931) == '\0') goto LAB_00117a60;\n      uVar8 = 0;\n    }\n  }" { (expression_statement "bVar3 = *(byte *)(iVar4 + 0x2a) & 7;" (assignment_expression "bVar3 = *(byte *)(iVar4 + 0x2a) & 7" identifier = (binary_expression "*(byte *)(iVar4 + 0x2a) & 7" (pointer_expression "*(byte *)(iVar4 + 0x2a)" * (cast_expression "(byte *)(iVar4 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2a)" ( (binary_expression "iVar4 + 0x2a" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "uVar9 = uVar6;" (assignment_expression "uVar9 = uVar6" identifier = identifier) ;) (if_statement "if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n      bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;\n      local_20 = *(int *)(iVar4 + 0xc);\n      if ((local_20 == 0) && (bVar2 != 0)) goto LAB_001178e4;\nLAB_00117a0c:\n      if ((local_20 != 0xfff1) || (bVar2 != 0)) goto LAB_00117a21;\n      goto LAB_00117920;\n    }" if (parenthesized_expression "((*(byte *)(iVar4 + 0x2a) & 7) == 0)" ( (binary_expression "(*(byte *)(iVar4 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)(iVar4 + 0x2a) & 7)" ( (binary_expression "*(byte *)(iVar4 + 0x2a) & 7" (pointer_expression "*(byte *)(iVar4 + 0x2a)" * (cast_expression "(byte *)(iVar4 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2a)" ( (binary_expression "iVar4 + 0x2a" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;\n      local_20 = *(int *)(iVar4 + 0xc);\n      if ((local_20 == 0) && (bVar2 != 0)) goto LAB_001178e4;\nLAB_00117a0c:\n      if ((local_20 != 0xfff1) || (bVar2 != 0)) goto LAB_00117a21;\n      goto LAB_00117920;\n    }" { (expression_statement "bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;" (assignment_expression "bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1" identifier = (binary_expression "*(byte *)(iVar4 + 0x2b) >> 5 & 1" (binary_expression "*(byte *)(iVar4 + 0x2b) >> 5" (pointer_expression "*(byte *)(iVar4 + 0x2b)" * (cast_expression "(byte *)(iVar4 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2b)" ( (binary_expression "iVar4 + 0x2b" identifier + number_literal) )))) >> number_literal) & number_literal)) ;) (expression_statement "local_20 = *(int *)(iVar4 + 0xc);" (assignment_expression "local_20 = *(int *)(iVar4 + 0xc)" identifier = (pointer_expression "*(int *)(iVar4 + 0xc)" * (cast_expression "(int *)(iVar4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if ((local_20 == 0) && (bVar2 != 0)) goto LAB_001178e4;" if (parenthesized_expression "((local_20 == 0) && (bVar2 != 0))" ( (binary_expression "(local_20 == 0) && (bVar2 != 0)" (parenthesized_expression "(local_20 == 0)" ( (binary_expression "local_20 == 0" identifier == number_literal) )) && (parenthesized_expression "(bVar2 != 0)" ( (binary_expression "bVar2 != 0" identifier != number_literal) ))) )) (goto_statement "goto LAB_001178e4;" goto statement_identifier ;)) (labeled_statement "LAB_00117a0c:\n      if ((local_20 != 0xfff1) || (bVar2 != 0)) goto LAB_00117a21;" statement_identifier : (if_statement "if ((local_20 != 0xfff1) || (bVar2 != 0)) goto LAB_00117a21;" if (parenthesized_expression "((local_20 != 0xfff1) || (bVar2 != 0))" ( (binary_expression "(local_20 != 0xfff1) || (bVar2 != 0)" (parenthesized_expression "(local_20 != 0xfff1)" ( (binary_expression "local_20 != 0xfff1" identifier != number_literal) )) || (parenthesized_expression "(bVar2 != 0)" ( (binary_expression "bVar2 != 0" identifier != number_literal) ))) )) (goto_statement "goto LAB_00117a21;" goto statement_identifier ;))) (goto_statement "goto LAB_00117920;" goto statement_identifier ;) })) (if_statement "if (bVar3 == 4) {\nLAB_001178e4:\n      iVar5 = *(int *)(iVar7 + 8);\n      if (iVar5 == 0) goto LAB_00117b4a;\n      if (*(char *)(iVar5 + 0x1a25) == '\0') goto LAB_00117920;\n      if (bVar3 == 0) {\n        bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;\n        local_20 = *(int *)(iVar4 + 0xc);\n        goto LAB_00117a0c;\n      }\n    }" if (parenthesized_expression "(bVar3 == 4)" ( (binary_expression "bVar3 == 4" identifier == number_literal) )) (compound_statement "{\nLAB_001178e4:\n      iVar5 = *(int *)(iVar7 + 8);\n      if (iVar5 == 0) goto LAB_00117b4a;\n      if (*(char *)(iVar5 + 0x1a25) == '\0') goto LAB_00117920;\n      if (bVar3 == 0) {\n        bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;\n        local_20 = *(int *)(iVar4 + 0xc);\n        goto LAB_00117a0c;\n      }\n    }" { (labeled_statement "LAB_001178e4:\n      iVar5 = *(int *)(iVar7 + 8);" statement_identifier : (expression_statement "iVar5 = *(int *)(iVar7 + 8);" (assignment_expression "iVar5 = *(int *)(iVar7 + 8)" identifier = (pointer_expression "*(int *)(iVar7 + 8)" * (cast_expression "(int *)(iVar7 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 8)" ( (binary_expression "iVar7 + 8" identifier + number_literal) ))))) ;)) (if_statement "if (iVar5 == 0) goto LAB_00117b4a;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00117b4a;" goto statement_identifier ;)) (if_statement "if (*(char *)(iVar5 + 0x1a25) == '\0') goto LAB_00117920;" if (parenthesized_expression "(*(char *)(iVar5 + 0x1a25) == '\0')" ( (binary_expression "*(char *)(iVar5 + 0x1a25) == '\0'" (pointer_expression "*(char *)(iVar5 + 0x1a25)" * (cast_expression "(char *)(iVar5 + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x1a25)" ( (binary_expression "iVar5 + 0x1a25" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00117920;" goto statement_identifier ;)) (if_statement "if (bVar3 == 0) {\n        bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;\n        local_20 = *(int *)(iVar4 + 0xc);\n        goto LAB_00117a0c;\n      }" if (parenthesized_expression "(bVar3 == 0)" ( (binary_expression "bVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;\n        local_20 = *(int *)(iVar4 + 0xc);\n        goto LAB_00117a0c;\n      }" { (expression_statement "bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;" (assignment_expression "bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1" identifier = (binary_expression "*(byte *)(iVar4 + 0x2b) >> 5 & 1" (binary_expression "*(byte *)(iVar4 + 0x2b) >> 5" (pointer_expression "*(byte *)(iVar4 + 0x2b)" * (cast_expression "(byte *)(iVar4 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2b)" ( (binary_expression "iVar4 + 0x2b" identifier + number_literal) )))) >> number_literal) & number_literal)) ;) (expression_statement "local_20 = *(int *)(iVar4 + 0xc);" (assignment_expression "local_20 = *(int *)(iVar4 + 0xc)" identifier = (pointer_expression "*(int *)(iVar4 + 0xc)" * (cast_expression "(int *)(iVar4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00117a0c;" goto statement_identifier ;) })) })) (if_statement "if (bVar3 == 3) goto LAB_00117920;" if (parenthesized_expression "(bVar3 == 3)" ( (binary_expression "bVar3 == 3" identifier == number_literal) )) (goto_statement "goto LAB_00117920;" goto statement_identifier ;)) (labeled_statement "LAB_00117a21:\n    local_2c = uVar10 & 1;" statement_identifier : (expression_statement "local_2c = uVar10 & 1;" (assignment_expression "local_2c = uVar10 & 1" identifier = (binary_expression "uVar10 & 1" identifier & number_literal)) ;)) (if_statement "if (local_2c == 0) {\nLAB_00117a60:\n      if (((uVar10 & 8) != 0) && (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117a6e;\n      if ((uVar10 & 0x10) == 0) {\n        iVar5 = *(int *)(iVar7 + 8);\n        if (iVar5 == 0) {\nLAB_00117b4a:\n                    \n          FUN_002446e0(unaff_EDI + 0x3309f6,0x5c,unaff_EDI + 0x352c01,iVar5);\n        }\n        if (((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) &&\n           (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117920;\n      }\n      if (bVar3 == 0) {\n        uVar9 = uVar8;\n        if (((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar4 + 0xc) != 0 || (uVar9 = 0, (*(byte *)(iVar4 + 0x2b) & 0x20) == 0)))) {\nLAB_00117ad7:\n          uVar6 = FUN_00071a80(iVar4);\n          uVar9 = uVar6 ^ 1;\n        }\n      }\n      else {\n        uVar9 = uVar8;\n        if (bVar3 != 4) goto LAB_00117ad7;\n      }\n      goto LAB_00117920;\n    }" if (parenthesized_expression "(local_2c == 0)" ( (binary_expression "local_2c == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00117a60:\n      if (((uVar10 & 8) != 0) && (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117a6e;\n      if ((uVar10 & 0x10) == 0) {\n        iVar5 = *(int *)(iVar7 + 8);\n        if (iVar5 == 0) {\nLAB_00117b4a:\n                    \n          FUN_002446e0(unaff_EDI + 0x3309f6,0x5c,unaff_EDI + 0x352c01,iVar5);\n        }\n        if (((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) &&\n           (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117920;\n      }\n      if (bVar3 == 0) {\n        uVar9 = uVar8;\n        if (((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar4 + 0xc) != 0 || (uVar9 = 0, (*(byte *)(iVar4 + 0x2b) & 0x20) == 0)))) {\nLAB_00117ad7:\n          uVar6 = FUN_00071a80(iVar4);\n          uVar9 = uVar6 ^ 1;\n        }\n      }\n      else {\n        uVar9 = uVar8;\n        if (bVar3 != 4) goto LAB_00117ad7;\n      }\n      goto LAB_00117920;\n    }" { (labeled_statement "LAB_00117a60:\n      if (((uVar10 & 8) != 0) && (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117a6e;" statement_identifier : (if_statement "if (((uVar10 & 8) != 0) && (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117a6e;" if (parenthesized_expression "(((uVar10 & 8) != 0) && (*(int *)(iVar4 + 0x18) != -1))" ( (binary_expression "((uVar10 & 8) != 0) && (*(int *)(iVar4 + 0x18) != -1)" (parenthesized_expression "((uVar10 & 8) != 0)" ( (binary_expression "(uVar10 & 8) != 0" (parenthesized_expression "(uVar10 & 8)" ( (binary_expression "uVar10 & 8" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(*(int *)(iVar4 + 0x18) != -1)" ( (binary_expression "*(int *)(iVar4 + 0x18) != -1" (pointer_expression "*(int *)(iVar4 + 0x18)" * (cast_expression "(int *)(iVar4 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) )))) != number_literal) ))) )) (goto_statement "goto LAB_00117a6e;" goto statement_identifier ;))) (if_statement "if ((uVar10 & 0x10) == 0) {\n        iVar5 = *(int *)(iVar7 + 8);\n        if (iVar5 == 0) {\nLAB_00117b4a:\n                    \n          FUN_002446e0(unaff_EDI + 0x3309f6,0x5c,unaff_EDI + 0x352c01,iVar5);\n        }\n        if (((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) &&\n           (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117920;\n      }" if (parenthesized_expression "((uVar10 & 0x10) == 0)" ( (binary_expression "(uVar10 & 0x10) == 0" (parenthesized_expression "(uVar10 & 0x10)" ( (binary_expression "uVar10 & 0x10" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        iVar5 = *(int *)(iVar7 + 8);\n        if (iVar5 == 0) {\nLAB_00117b4a:\n                    \n          FUN_002446e0(unaff_EDI + 0x3309f6,0x5c,unaff_EDI + 0x352c01,iVar5);\n        }\n        if (((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) &&\n           (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117920;\n      }" { (expression_statement "iVar5 = *(int *)(iVar7 + 8);" (assignment_expression "iVar5 = *(int *)(iVar7 + 8)" identifier = (pointer_expression "*(int *)(iVar7 + 8)" * (cast_expression "(int *)(iVar7 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 8)" ( (binary_expression "iVar7 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 == 0) {\nLAB_00117b4a:\n                    \n          FUN_002446e0(unaff_EDI + 0x3309f6,0x5c,unaff_EDI + 0x352c01,iVar5);\n        }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00117b4a:\n                    \n          FUN_002446e0(unaff_EDI + 0x3309f6,0x5c,unaff_EDI + 0x352c01,iVar5);\n        }" { (labeled_statement "LAB_00117b4a:\n                    \n          FUN_002446e0(unaff_EDI + 0x3309f6,0x5c,unaff_EDI + 0x352c01,iVar5);" statement_identifier : (expression_statement "FUN_002446e0(unaff_EDI + 0x3309f6,0x5c,unaff_EDI + 0x352c01,iVar5);" (call_expression "FUN_002446e0(unaff_EDI + 0x3309f6,0x5c,unaff_EDI + 0x352c01,iVar5)" identifier (argument_list "(unaff_EDI + 0x3309f6,0x5c,unaff_EDI + 0x352c01,iVar5)" ( (binary_expression "unaff_EDI + 0x3309f6" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x352c01" identifier + number_literal) , identifier ))) ;)) })) (if_statement "if (((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) &&\n           (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117920;" if (parenthesized_expression "(((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) &&\n           (*(int *)(iVar4 + 0x18) != -1))" ( (binary_expression "((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) &&\n           (*(int *)(iVar4 + 0x18) != -1)" (parenthesized_expression "((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0'))" ( (binary_expression "(*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')" (parenthesized_expression "(*(char *)(iVar5 + 0x1a25) == '\0')" ( (binary_expression "*(char *)(iVar5 + 0x1a25) == '\0'" (pointer_expression "*(char *)(iVar5 + 0x1a25)" * (cast_expression "(char *)(iVar5 + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x1a25)" ( (binary_expression "iVar5 + 0x1a25" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(char *)(iVar5 + 0x2931) == '\0')" ( (binary_expression "*(char *)(iVar5 + 0x2931) == '\0'" (pointer_expression "*(char *)(iVar5 + 0x2931)" * (cast_expression "(char *)(iVar5 + 0x2931)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2931)" ( (binary_expression "iVar5 + 0x2931" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(*(int *)(iVar4 + 0x18) != -1)" ( (binary_expression "*(int *)(iVar4 + 0x18) != -1" (pointer_expression "*(int *)(iVar4 + 0x18)" * (cast_expression "(int *)(iVar4 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) )))) != number_literal) ))) )) (goto_statement "goto LAB_00117920;" goto statement_identifier ;)) })) (if_statement "if (bVar3 == 0) {\n        uVar9 = uVar8;\n        if (((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar4 + 0xc) != 0 || (uVar9 = 0, (*(byte *)(iVar4 + 0x2b) & 0x20) == 0)))) {\nLAB_00117ad7:\n          uVar6 = FUN_00071a80(iVar4);\n          uVar9 = uVar6 ^ 1;\n        }\n      }\n      else {\n        uVar9 = uVar8;\n        if (bVar3 != 4) goto LAB_00117ad7;\n      }" if (parenthesized_expression "(bVar3 == 0)" ( (binary_expression "bVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar9 = uVar8;\n        if (((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar4 + 0xc) != 0 || (uVar9 = 0, (*(byte *)(iVar4 + 0x2b) & 0x20) == 0)))) {\nLAB_00117ad7:\n          uVar6 = FUN_00071a80(iVar4);\n          uVar9 = uVar6 ^ 1;\n        }\n      }" { (expression_statement "uVar9 = uVar8;" (assignment_expression "uVar9 = uVar8" identifier = identifier) ;) (if_statement "if (((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar4 + 0xc) != 0 || (uVar9 = 0, (*(byte *)(iVar4 + 0x2b) & 0x20) == 0)))) {\nLAB_00117ad7:\n          uVar6 = FUN_00071a80(iVar4);\n          uVar9 = uVar6 ^ 1;\n        }" if (parenthesized_expression "(((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar4 + 0xc) != 0 || (uVar9 = 0, (*(byte *)(iVar4 + 0x2b) & 0x20) == 0))))" ( (binary_expression "((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar4 + 0xc) != 0 || (uVar9 = 0, (*(byte *)(iVar4 + 0x2b) & 0x20) == 0)))" (parenthesized_expression "((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0)" ( (binary_expression "(*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0" (parenthesized_expression "(*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1)" ( (binary_expression "*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1" (pointer_expression "*(byte *)(*(int *)(iVar4 + 8) + 0x2c)" * (cast_expression "(byte *)(*(int *)(iVar4 + 8) + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar4 + 8) + 0x2c)" ( (binary_expression "*(int *)(iVar4 + 8) + 0x2c" (pointer_expression "*(int *)(iVar4 + 8)" * (cast_expression "(int *)(iVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "((*(int *)(iVar4 + 0xc) != 0 || (uVar9 = 0, (*(byte *)(iVar4 + 0x2b) & 0x20) == 0)))" ( (parenthesized_expression "(*(int *)(iVar4 + 0xc) != 0 || (uVar9 = 0, (*(byte *)(iVar4 + 0x2b) & 0x20) == 0))" ( (binary_expression "*(int *)(iVar4 + 0xc) != 0 || (uVar9 = 0, (*(byte *)(iVar4 + 0x2b) & 0x20) == 0)" (binary_expression "*(int *)(iVar4 + 0xc) != 0" (pointer_expression "*(int *)(iVar4 + 0xc)" * (cast_expression "(int *)(iVar4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) != number_literal) || (parenthesized_expression "(uVar9 = 0, (*(byte *)(iVar4 + 0x2b) & 0x20) == 0)" ( (comma_expression "uVar9 = 0, (*(byte *)(iVar4 + 0x2b) & 0x20) == 0" (assignment_expression "uVar9 = 0" identifier = number_literal) , (binary_expression "(*(byte *)(iVar4 + 0x2b) & 0x20) == 0" (parenthesized_expression "(*(byte *)(iVar4 + 0x2b) & 0x20)" ( (binary_expression "*(byte *)(iVar4 + 0x2b) & 0x20" (pointer_expression "*(byte *)(iVar4 + 0x2b)" * (cast_expression "(byte *)(iVar4 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2b)" ( (binary_expression "iVar4 + 0x2b" identifier + number_literal) )))) & number_literal) )) == number_literal)) ))) )) ))) )) (compound_statement "{\nLAB_00117ad7:\n          uVar6 = FUN_00071a80(iVar4);\n          uVar9 = uVar6 ^ 1;\n        }" { (labeled_statement "LAB_00117ad7:\n          uVar6 = FUN_00071a80(iVar4);" statement_identifier : (expression_statement "uVar6 = FUN_00071a80(iVar4);" (assignment_expression "uVar6 = FUN_00071a80(iVar4)" identifier = (call_expression "FUN_00071a80(iVar4)" identifier (argument_list "(iVar4)" ( identifier )))) ;)) (expression_statement "uVar9 = uVar6 ^ 1;" (assignment_expression "uVar9 = uVar6 ^ 1" identifier = (binary_expression "uVar6 ^ 1" identifier ^ number_literal)) ;) })) }) (else_clause "else {\n        uVar9 = uVar8;\n        if (bVar3 != 4) goto LAB_00117ad7;\n      }" else (compound_statement "{\n        uVar9 = uVar8;\n        if (bVar3 != 4) goto LAB_00117ad7;\n      }" { (expression_statement "uVar9 = uVar8;" (assignment_expression "uVar9 = uVar8" identifier = identifier) ;) (if_statement "if (bVar3 != 4) goto LAB_00117ad7;" if (parenthesized_expression "(bVar3 != 4)" ( (binary_expression "bVar3 != 4" identifier != number_literal) )) (goto_statement "goto LAB_00117ad7;" goto statement_identifier ;)) }))) (goto_statement "goto LAB_00117920;" goto statement_identifier ;) })) (expression_statement "iVar5 = *(int *)(iVar7 + 8);" (assignment_expression "iVar5 = *(int *)(iVar7 + 8)" identifier = (pointer_expression "*(int *)(iVar7 + 8)" * (cast_expression "(int *)(iVar7 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 8)" ( (binary_expression "iVar7 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 == 0) goto LAB_00117b4a;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00117b4a;" goto statement_identifier ;)) (if_statement "if (*(char *)(iVar5 + 0x1a25) == '\0') {\n      if (*(char *)(iVar5 + 0x2931) == '\0') goto LAB_00117a60;\n      uVar8 = 0;\n    }" if (parenthesized_expression "(*(char *)(iVar5 + 0x1a25) == '\0')" ( (binary_expression "*(char *)(iVar5 + 0x1a25) == '\0'" (pointer_expression "*(char *)(iVar5 + 0x1a25)" * (cast_expression "(char *)(iVar5 + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x1a25)" ( (binary_expression "iVar5 + 0x1a25" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if (*(char *)(iVar5 + 0x2931) == '\0') goto LAB_00117a60;\n      uVar8 = 0;\n    }" { (if_statement "if (*(char *)(iVar5 + 0x2931) == '\0') goto LAB_00117a60;" if (parenthesized_expression "(*(char *)(iVar5 + 0x2931) == '\0')" ( (binary_expression "*(char *)(iVar5 + 0x2931) == '\0'" (pointer_expression "*(char *)(iVar5 + 0x2931)" * (cast_expression "(char *)(iVar5 + 0x2931)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2931)" ( (binary_expression "iVar5 + 0x2931" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00117a60;" goto statement_identifier ;)) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) })) }) (else_clause "else {\nLAB_00117920:\n    local_2c = uVar10 & 1;\n    uVar8 = uVar9;\n    if (local_2c == 0) {\n      return uVar9;\n    }\n  }" else (compound_statement "{\nLAB_00117920:\n    local_2c = uVar10 & 1;\n    uVar8 = uVar9;\n    if (local_2c == 0) {\n      return uVar9;\n    }\n  }" { (labeled_statement "LAB_00117920:\n    local_2c = uVar10 & 1;" statement_identifier : (expression_statement "local_2c = uVar10 & 1;" (assignment_expression "local_2c = uVar10 & 1" identifier = (binary_expression "uVar10 & 1" identifier & number_literal)) ;)) (expression_statement "uVar8 = uVar9;" (assignment_expression "uVar8 = uVar9" identifier = identifier) ;) (if_statement "if (local_2c == 0) {\n      return uVar9;\n    }" if (parenthesized_expression "(local_2c == 0)" ( (binary_expression "local_2c == 0" identifier == number_literal) )) (compound_statement "{\n      return uVar9;\n    }" { (return_statement "return uVar9;" return identifier ;) })) }))) (if_statement "if (((uVar10 & 8) == 0) || (*(int *)(iVar4 + 0x18) == -1)) {\n    if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n      if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) != 0) {\n        return uVar8;\n      }\n      if ((*(int *)(iVar4 + 0xc) == 0) && ((*(byte *)(iVar4 + 0x2b) & 0x20) != 0)) {\n        return uVar8;\n      }\n    }\n    else if ((*(byte *)(iVar4 + 0x2a) & 7) == 4) {\n      return uVar8;\n    }\n    uVar10 = FUN_00071a80(iVar4);\n    return uVar8 | uVar10 ^ 1;\n  }" if (parenthesized_expression "(((uVar10 & 8) == 0) || (*(int *)(iVar4 + 0x18) == -1))" ( (binary_expression "((uVar10 & 8) == 0) || (*(int *)(iVar4 + 0x18) == -1)" (parenthesized_expression "((uVar10 & 8) == 0)" ( (binary_expression "(uVar10 & 8) == 0" (parenthesized_expression "(uVar10 & 8)" ( (binary_expression "uVar10 & 8" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(*(int *)(iVar4 + 0x18) == -1)" ( (binary_expression "*(int *)(iVar4 + 0x18) == -1" (pointer_expression "*(int *)(iVar4 + 0x18)" * (cast_expression "(int *)(iVar4 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n    if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n      if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) != 0) {\n        return uVar8;\n      }\n      if ((*(int *)(iVar4 + 0xc) == 0) && ((*(byte *)(iVar4 + 0x2b) & 0x20) != 0)) {\n        return uVar8;\n      }\n    }\n    else if ((*(byte *)(iVar4 + 0x2a) & 7) == 4) {\n      return uVar8;\n    }\n    uVar10 = FUN_00071a80(iVar4);\n    return uVar8 | uVar10 ^ 1;\n  }" { (if_statement "if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n      if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) != 0) {\n        return uVar8;\n      }\n      if ((*(int *)(iVar4 + 0xc) == 0) && ((*(byte *)(iVar4 + 0x2b) & 0x20) != 0)) {\n        return uVar8;\n      }\n    }\n    else if ((*(byte *)(iVar4 + 0x2a) & 7) == 4) {\n      return uVar8;\n    }" if (parenthesized_expression "((*(byte *)(iVar4 + 0x2a) & 7) == 0)" ( (binary_expression "(*(byte *)(iVar4 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)(iVar4 + 0x2a) & 7)" ( (binary_expression "*(byte *)(iVar4 + 0x2a) & 7" (pointer_expression "*(byte *)(iVar4 + 0x2a)" * (cast_expression "(byte *)(iVar4 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2a)" ( (binary_expression "iVar4 + 0x2a" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) != 0) {\n        return uVar8;\n      }\n      if ((*(int *)(iVar4 + 0xc) == 0) && ((*(byte *)(iVar4 + 0x2b) & 0x20) != 0)) {\n        return uVar8;\n      }\n    }" { (if_statement "if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) != 0) {\n        return uVar8;\n      }" if (parenthesized_expression "((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) != 0)" ( (binary_expression "(*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) != 0" (parenthesized_expression "(*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1)" ( (binary_expression "*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1" (pointer_expression "*(byte *)(*(int *)(iVar4 + 8) + 0x2c)" * (cast_expression "(byte *)(*(int *)(iVar4 + 8) + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar4 + 8) + 0x2c)" ( (binary_expression "*(int *)(iVar4 + 8) + 0x2c" (pointer_expression "*(int *)(iVar4 + 8)" * (cast_expression "(int *)(iVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n        return uVar8;\n      }" { (return_statement "return uVar8;" return identifier ;) })) (if_statement "if ((*(int *)(iVar4 + 0xc) == 0) && ((*(byte *)(iVar4 + 0x2b) & 0x20) != 0)) {\n        return uVar8;\n      }" if (parenthesized_expression "((*(int *)(iVar4 + 0xc) == 0) && ((*(byte *)(iVar4 + 0x2b) & 0x20) != 0))" ( (binary_expression "(*(int *)(iVar4 + 0xc) == 0) && ((*(byte *)(iVar4 + 0x2b) & 0x20) != 0)" (parenthesized_expression "(*(int *)(iVar4 + 0xc) == 0)" ( (binary_expression "*(int *)(iVar4 + 0xc) == 0" (pointer_expression "*(int *)(iVar4 + 0xc)" * (cast_expression "(int *)(iVar4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "((*(byte *)(iVar4 + 0x2b) & 0x20) != 0)" ( (binary_expression "(*(byte *)(iVar4 + 0x2b) & 0x20) != 0" (parenthesized_expression "(*(byte *)(iVar4 + 0x2b) & 0x20)" ( (binary_expression "*(byte *)(iVar4 + 0x2b) & 0x20" (pointer_expression "*(byte *)(iVar4 + 0x2b)" * (cast_expression "(byte *)(iVar4 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2b)" ( (binary_expression "iVar4 + 0x2b" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n        return uVar8;\n      }" { (return_statement "return uVar8;" return identifier ;) })) }) (else_clause "else if ((*(byte *)(iVar4 + 0x2a) & 7) == 4) {\n      return uVar8;\n    }" else (if_statement "if ((*(byte *)(iVar4 + 0x2a) & 7) == 4) {\n      return uVar8;\n    }" if (parenthesized_expression "((*(byte *)(iVar4 + 0x2a) & 7) == 4)" ( (binary_expression "(*(byte *)(iVar4 + 0x2a) & 7) == 4" (parenthesized_expression "(*(byte *)(iVar4 + 0x2a) & 7)" ( (binary_expression "*(byte *)(iVar4 + 0x2a) & 7" (pointer_expression "*(byte *)(iVar4 + 0x2a)" * (cast_expression "(byte *)(iVar4 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2a)" ( (binary_expression "iVar4 + 0x2a" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      return uVar8;\n    }" { (return_statement "return uVar8;" return identifier ;) })))) (expression_statement "uVar10 = FUN_00071a80(iVar4);" (assignment_expression "uVar10 = FUN_00071a80(iVar4)" identifier = (call_expression "FUN_00071a80(iVar4)" identifier (argument_list "(iVar4)" ( identifier )))) ;) (return_statement "return uVar8 | uVar10 ^ 1;" return (binary_expression "uVar8 | uVar10 ^ 1" identifier | (binary_expression "uVar10 ^ 1" identifier ^ number_literal)) ;) })) (labeled_statement "LAB_00117a6e:\n  return (uint)bVar1;" statement_identifier : (return_statement "return (uint)bVar1;" return (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) ;)) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (pointer_expression & IDENT) ))) [ (binary_expression IDENT + IDENT) ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + IDENT) + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + 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 { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (return_statement return LIT ;) })) (return_statement return (binary_expression (binary_expression (unary_expression ~ IDENT) & LIT) | IDENT) ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) & LIT)) ;) (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 (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (goto_statement goto statement_identifier ;))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (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) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) ))) )) (goto_statement goto statement_identifier ;))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == 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 { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) , IDENT ))) ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) ))) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) ))) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (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) )))) & LIT) )) == LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT)) ))) )) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ LIT)) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }))) (goto_statement goto 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) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (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) )))) & LIT) )) != LIT) )) (compound_statement { (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) ))) )) (compound_statement { (return_statement return IDENT ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (return_statement return IDENT ;) })))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (return_statement return (binary_expression IDENT | (binary_expression IDENT ^ LIT)) ;) })) (labeled_statement statement_identifier : (return_statement return (cast_expression ( (type_descriptor TYPE) ) IDENT) ;)) })))
(function_definition "uint FUN_00117870(int param_1)\n\n{\n  byte bVar1;\n  byte bVar2;\n  byte bVar3;\n  int iVar4;\n  int iVar5;\n  uint extraout_ECX;\n  uint uVar6;\n  int iVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  int unaff_EDI;\n  undefined8 uVar11;\n  uint local_2c;\n  int local_20;\n  \n  uVar11 = FUN_00074f0a();\n  iVar7 = (int)((ulonglong)uVar11 >> 0x20);\n  iVar4 = (int)uVar11;\n  if ((*(byte *)(param_1 + 0x54) & 2) == 0) {\n    return 1;\n  }\n  uVar10 = 0;\n  if (iVar7 - 2U < 0x6b) {\n    uVar10 = (uint)(char)(&UNK_00351487)[iVar7 + unaff_EDI];\n    iVar7 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);\n  }\n  else {\n    iVar7 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);\n  }\n  if (iVar4 == 0) {\n    iVar4 = *(int *)(iVar7 + 8);\n    if (iVar4 != 0) {\n      if ((*(char *)(iVar4 + 0x1a25) == '\0') && (*(char *)(iVar4 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar10 & 1 | extraout_ECX;\n    }\nLAB_00117b67:\n                    \n    FUN_0010cb20();\n  }\n  bVar1 = *(byte *)(iVar7 + 0x10);\n  uVar6 = (uint)bVar1;\n  if (bVar1 == 0) {\n    FUN_0010caf0();\n    goto LAB_00117b67;\n  }\n  uVar8 = (uint)*(byte *)(iVar7 + 0x11);\n  uVar9 = uVar8;\n  if (*(byte *)(iVar7 + 0x11) == 0) {\n    bVar3 = *(byte *)(iVar4 + 0x2a) & 7;\n    uVar9 = uVar6;\n    if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n      bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;\n      local_20 = *(int *)(iVar4 + 0xc);\n      if ((local_20 == 0) && (bVar2 != 0)) goto LAB_001178e4;\nLAB_00117a0c:\n      if ((local_20 != 0xfff1) || (bVar2 != 0)) goto LAB_00117a21;\n      goto LAB_00117920;\n    }\n    if (bVar3 == 4) {\nLAB_001178e4:\n      iVar5 = *(int *)(iVar7 + 8);\n      if (iVar5 == 0) goto LAB_00117b4a;\n      if (*(char *)(iVar5 + 0x1a25) == '\0') goto LAB_00117920;\n      if (bVar3 == 0) {\n        bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;\n        local_20 = *(int *)(iVar4 + 0xc);\n        goto LAB_00117a0c;\n      }\n    }\n    if (bVar3 == 3) goto LAB_00117920;\nLAB_00117a21:\n    local_2c = uVar10 & 1;\n    if (local_2c == 0) {\nLAB_00117a60:\n      if (((uVar10 & 8) != 0) && (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117a6e;\n      if ((uVar10 & 0x10) == 0) {\n        iVar5 = *(int *)(iVar7 + 8);\n        if (iVar5 == 0) {\nLAB_00117b4a:\n                    \n          FUN_002446e0(unaff_EDI + 0x3309f6,0x5c,unaff_EDI + 0x352c01,iVar5);\n        }\n        if (((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) &&\n           (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117920;\n      }\n      if (bVar3 == 0) {\n        uVar9 = uVar8;\n        if (((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar4 + 0xc) != 0 || (uVar9 = 0, (*(byte *)(iVar4 + 0x2b) & 0x20) == 0)))) {\nLAB_00117ad7:\n          uVar6 = FUN_00071a80(iVar4);\n          uVar9 = uVar6 ^ 1;\n        }\n      }\n      else {\n        uVar9 = uVar8;\n        if (bVar3 != 4) goto LAB_00117ad7;\n      }\n      goto LAB_00117920;\n    }\n    iVar5 = *(int *)(iVar7 + 8);\n    if (iVar5 == 0) goto LAB_00117b4a;\n    if (*(char *)(iVar5 + 0x1a25) == '\0') {\n      if (*(char *)(iVar5 + 0x2931) == '\0') goto LAB_00117a60;\n      uVar8 = 0;\n    }\n  }\n  else {\nLAB_00117920:\n    local_2c = uVar10 & 1;\n    uVar8 = uVar9;\n    if (local_2c == 0) {\n      return uVar9;\n    }\n  }\n  if (((uVar10 & 8) == 0) || (*(int *)(iVar4 + 0x18) == -1)) {\n    if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n      if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) != 0) {\n        return uVar8;\n      }\n      if ((*(int *)(iVar4 + 0xc) == 0) && ((*(byte *)(iVar4 + 0x2b) & 0x20) != 0)) {\n        return uVar8;\n      }\n    }\n    else if ((*(byte *)(iVar4 + 0x2a) & 7) == 4) {\n      return uVar8;\n    }\n    uVar10 = FUN_00071a80(iVar4);\n    return uVar8 | uVar10 ^ 1;\n  }\nLAB_00117a6e:\n  return (uint)bVar1;\n}" (type_identifier "uint") (function_declarator "FUN_00117870(int param_1)" (identifier "FUN_00117870") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  byte bVar1;\n  byte bVar2;\n  byte bVar3;\n  int iVar4;\n  int iVar5;\n  uint extraout_ECX;\n  uint uVar6;\n  int iVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  int unaff_EDI;\n  undefined8 uVar11;\n  uint local_2c;\n  int local_20;\n  \n  uVar11 = FUN_00074f0a();\n  iVar7 = (int)((ulonglong)uVar11 >> 0x20);\n  iVar4 = (int)uVar11;\n  if ((*(byte *)(param_1 + 0x54) & 2) == 0) {\n    return 1;\n  }\n  uVar10 = 0;\n  if (iVar7 - 2U < 0x6b) {\n    uVar10 = (uint)(char)(&UNK_00351487)[iVar7 + unaff_EDI];\n    iVar7 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);\n  }\n  else {\n    iVar7 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);\n  }\n  if (iVar4 == 0) {\n    iVar4 = *(int *)(iVar7 + 8);\n    if (iVar4 != 0) {\n      if ((*(char *)(iVar4 + 0x1a25) == '\0') && (*(char *)(iVar4 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar10 & 1 | extraout_ECX;\n    }\nLAB_00117b67:\n                    \n    FUN_0010cb20();\n  }\n  bVar1 = *(byte *)(iVar7 + 0x10);\n  uVar6 = (uint)bVar1;\n  if (bVar1 == 0) {\n    FUN_0010caf0();\n    goto LAB_00117b67;\n  }\n  uVar8 = (uint)*(byte *)(iVar7 + 0x11);\n  uVar9 = uVar8;\n  if (*(byte *)(iVar7 + 0x11) == 0) {\n    bVar3 = *(byte *)(iVar4 + 0x2a) & 7;\n    uVar9 = uVar6;\n    if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n      bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;\n      local_20 = *(int *)(iVar4 + 0xc);\n      if ((local_20 == 0) && (bVar2 != 0)) goto LAB_001178e4;\nLAB_00117a0c:\n      if ((local_20 != 0xfff1) || (bVar2 != 0)) goto LAB_00117a21;\n      goto LAB_00117920;\n    }\n    if (bVar3 == 4) {\nLAB_001178e4:\n      iVar5 = *(int *)(iVar7 + 8);\n      if (iVar5 == 0) goto LAB_00117b4a;\n      if (*(char *)(iVar5 + 0x1a25) == '\0') goto LAB_00117920;\n      if (bVar3 == 0) {\n        bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;\n        local_20 = *(int *)(iVar4 + 0xc);\n        goto LAB_00117a0c;\n      }\n    }\n    if (bVar3 == 3) goto LAB_00117920;\nLAB_00117a21:\n    local_2c = uVar10 & 1;\n    if (local_2c == 0) {\nLAB_00117a60:\n      if (((uVar10 & 8) != 0) && (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117a6e;\n      if ((uVar10 & 0x10) == 0) {\n        iVar5 = *(int *)(iVar7 + 8);\n        if (iVar5 == 0) {\nLAB_00117b4a:\n                    \n          FUN_002446e0(unaff_EDI + 0x3309f6,0x5c,unaff_EDI + 0x352c01,iVar5);\n        }\n        if (((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) &&\n           (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117920;\n      }\n      if (bVar3 == 0) {\n        uVar9 = uVar8;\n        if (((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar4 + 0xc) != 0 || (uVar9 = 0, (*(byte *)(iVar4 + 0x2b) & 0x20) == 0)))) {\nLAB_00117ad7:\n          uVar6 = FUN_00071a80(iVar4);\n          uVar9 = uVar6 ^ 1;\n        }\n      }\n      else {\n        uVar9 = uVar8;\n        if (bVar3 != 4) goto LAB_00117ad7;\n      }\n      goto LAB_00117920;\n    }\n    iVar5 = *(int *)(iVar7 + 8);\n    if (iVar5 == 0) goto LAB_00117b4a;\n    if (*(char *)(iVar5 + 0x1a25) == '\0') {\n      if (*(char *)(iVar5 + 0x2931) == '\0') goto LAB_00117a60;\n      uVar8 = 0;\n    }\n  }\n  else {\nLAB_00117920:\n    local_2c = uVar10 & 1;\n    uVar8 = uVar9;\n    if (local_2c == 0) {\n      return uVar9;\n    }\n  }\n  if (((uVar10 & 8) == 0) || (*(int *)(iVar4 + 0x18) == -1)) {\n    if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n      if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) != 0) {\n        return uVar8;\n      }\n      if ((*(int *)(iVar4 + 0xc) == 0) && ((*(byte *)(iVar4 + 0x2b) & 0x20) != 0)) {\n        return uVar8;\n      }\n    }\n    else if ((*(byte *)(iVar4 + 0x2a) & 7) == 4) {\n      return uVar8;\n    }\n    uVar10 = FUN_00071a80(iVar4);\n    return uVar8 | uVar10 ^ 1;\n  }\nLAB_00117a6e:\n  return (uint)bVar1;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "byte bVar2;" (type_identifier "byte") (identifier "bVar2") (; ";")) (declaration "byte bVar3;" (type_identifier "byte") (identifier "bVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "uint extraout_ECX;" (type_identifier "uint") (identifier "extraout_ECX") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "int unaff_EDI;" (primitive_type "int") (identifier "unaff_EDI") (; ";")) (declaration "undefined8 uVar11;" (type_identifier "undefined8") (identifier "uVar11") (; ";")) (declaration "uint local_2c;" (type_identifier "uint") (identifier "local_2c") (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (expression_statement "uVar11 = FUN_00074f0a();" (assignment_expression "uVar11 = FUN_00074f0a()" (identifier "uVar11") (= "=") (call_expression "FUN_00074f0a()" (identifier "FUN_00074f0a") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar7 = (int)((ulonglong)uVar11 >> 0x20);" (assignment_expression "iVar7 = (int)((ulonglong)uVar11 >> 0x20)" (identifier "iVar7") (= "=") (cast_expression "(int)((ulonglong)uVar11 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar11 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar11 >> 0x20" (cast_expression "(ulonglong)uVar11" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar11")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "iVar4 = (int)uVar11;" (assignment_expression "iVar4 = (int)uVar11" (identifier "iVar4") (= "=") (cast_expression "(int)uVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar11"))) (; ";")) (if_statement "if ((*(byte *)(param_1 + 0x54) & 2) == 0) {\n    return 1;\n  }" (if "if") (parenthesized_expression "((*(byte *)(param_1 + 0x54) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(param_1 + 0x54) & 2) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0x54) & 2)" (( "(") (binary_expression "*(byte *)(param_1 + 0x54) & 2" (pointer_expression "*(byte *)(param_1 + 0x54)" (* "*") (cast_expression "(byte *)(param_1 + 0x54)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x54)" (( "(") (binary_expression "param_1 + 0x54" (identifier "param_1") (+ "+") (number_literal "0x54")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return 1;\n  }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" (identifier "uVar10") (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar7 - 2U < 0x6b) {\n    uVar10 = (uint)(char)(&UNK_00351487)[iVar7 + unaff_EDI];\n    iVar7 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);\n  }\n  else {\n    iVar7 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);\n  }" (if "if") (parenthesized_expression "(iVar7 - 2U < 0x6b)" (( "(") (binary_expression "iVar7 - 2U < 0x6b" (binary_expression "iVar7 - 2U" (identifier "iVar7") (- "-") (number_literal "2U")) (< "<") (number_literal "0x6b")) () ")")) (compound_statement "{\n    uVar10 = (uint)(char)(&UNK_00351487)[iVar7 + unaff_EDI];\n    iVar7 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);\n  }" ({ "{") (expression_statement "uVar10 = (uint)(char)(&UNK_00351487)[iVar7 + unaff_EDI];" (assignment_expression "uVar10 = (uint)(char)(&UNK_00351487)[iVar7 + unaff_EDI]" (identifier "uVar10") (= "=") (subscript_expression "(uint)(char)(&UNK_00351487)[iVar7 + unaff_EDI]" (call_expression "(uint)(char)(&UNK_00351487)" (call_expression "(uint)(char)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(char)" (( "(") (identifier "char") () ")"))) (argument_list "(&UNK_00351487)" (( "(") (pointer_expression "&UNK_00351487" (& "&") (identifier "UNK_00351487")) () ")"))) ([ "[") (binary_expression "iVar7 + unaff_EDI" (identifier "iVar7") (+ "+") (identifier "unaff_EDI")) (] "]"))) (; ";")) (expression_statement "iVar7 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);" (assignment_expression "iVar7 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1)" (* "*") (cast_expression "(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&DWORD_004d2f50 + unaff_EDI + 1)" (( "(") (binary_expression "(int)&DWORD_004d2f50 + unaff_EDI + 1" (binary_expression "(int)&DWORD_004d2f50 + unaff_EDI" (cast_expression "(int)&DWORD_004d2f50" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&DWORD_004d2f50" (& "&") (identifier "DWORD_004d2f50"))) (+ "+") (identifier "unaff_EDI")) (+ "+") (number_literal "1")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    iVar7 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);\n  }" (else "else") (compound_statement "{\n    iVar7 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);\n  }" ({ "{") (expression_statement "iVar7 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);" (assignment_expression "iVar7 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1)" (* "*") (cast_expression "(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&DWORD_004d2f50 + unaff_EDI + 1)" (( "(") (binary_expression "(int)&DWORD_004d2f50 + unaff_EDI + 1" (binary_expression "(int)&DWORD_004d2f50 + unaff_EDI" (cast_expression "(int)&DWORD_004d2f50" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&DWORD_004d2f50" (& "&") (identifier "DWORD_004d2f50"))) (+ "+") (identifier "unaff_EDI")) (+ "+") (number_literal "1")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (iVar4 == 0) {\n    iVar4 = *(int *)(iVar7 + 8);\n    if (iVar4 != 0) {\n      if ((*(char *)(iVar4 + 0x1a25) == '\0') && (*(char *)(iVar4 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar10 & 1 | extraout_ECX;\n    }\nLAB_00117b67:\n                    \n    FUN_0010cb20();\n  }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar4 = *(int *)(iVar7 + 8);\n    if (iVar4 != 0) {\n      if ((*(char *)(iVar4 + 0x1a25) == '\0') && (*(char *)(iVar4 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar10 & 1 | extraout_ECX;\n    }\nLAB_00117b67:\n                    \n    FUN_0010cb20();\n  }" ({ "{") (expression_statement "iVar4 = *(int *)(iVar7 + 8);" (assignment_expression "iVar4 = *(int *)(iVar7 + 8)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(iVar7 + 8)" (* "*") (cast_expression "(int *)(iVar7 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 8)" (( "(") (binary_expression "iVar7 + 8" (identifier "iVar7") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar4 != 0) {\n      if ((*(char *)(iVar4 + 0x1a25) == '\0') && (*(char *)(iVar4 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar10 & 1 | extraout_ECX;\n    }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if ((*(char *)(iVar4 + 0x1a25) == '\0') && (*(char *)(iVar4 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar10 & 1 | extraout_ECX;\n    }" ({ "{") (if_statement "if ((*(char *)(iVar4 + 0x1a25) == '\0') && (*(char *)(iVar4 + 0x2931) == '\0')) {\n        return 1;\n      }" (if "if") (parenthesized_expression "((*(char *)(iVar4 + 0x1a25) == '\0') && (*(char *)(iVar4 + 0x2931) == '\0'))" (( "(") (binary_expression "(*(char *)(iVar4 + 0x1a25) == '\0') && (*(char *)(iVar4 + 0x2931) == '\0')" (parenthesized_expression "(*(char *)(iVar4 + 0x1a25) == '\0')" (( "(") (binary_expression "*(char *)(iVar4 + 0x1a25) == '\0'" (pointer_expression "*(char *)(iVar4 + 0x1a25)" (* "*") (cast_expression "(char *)(iVar4 + 0x1a25)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x1a25)" (( "(") (binary_expression "iVar4 + 0x1a25" (identifier "iVar4") (+ "+") (number_literal "0x1a25")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(iVar4 + 0x2931) == '\0')" (( "(") (binary_expression "*(char *)(iVar4 + 0x2931) == '\0'" (pointer_expression "*(char *)(iVar4 + 0x2931)" (* "*") (cast_expression "(char *)(iVar4 + 0x2931)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x2931)" (( "(") (binary_expression "iVar4 + 0x2931" (identifier "iVar4") (+ "+") (number_literal "0x2931")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n        return 1;\n      }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (return_statement "return ~uVar10 & 1 | extraout_ECX;" (return "return") (binary_expression "~uVar10 & 1 | extraout_ECX" (binary_expression "~uVar10 & 1" (unary_expression "~uVar10" (~ "~") (identifier "uVar10")) (& "&") (number_literal "1")) (| "|") (identifier "extraout_ECX")) (; ";")) (} "}"))) (labeled_statement "LAB_00117b67:\n                    \n    FUN_0010cb20();" (statement_identifier "LAB_00117b67") (: ":") (expression_statement "FUN_0010cb20();" (call_expression "FUN_0010cb20()" (identifier "FUN_0010cb20") (argument_list "()" (( "(") () ")"))) (; ";"))) (} "}"))) (expression_statement "bVar1 = *(byte *)(iVar7 + 0x10);" (assignment_expression "bVar1 = *(byte *)(iVar7 + 0x10)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)(iVar7 + 0x10)" (* "*") (cast_expression "(byte *)(iVar7 + 0x10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x10)" (( "(") (binary_expression "iVar7 + 0x10" (identifier "iVar7") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "uVar6 = (uint)bVar1;" (assignment_expression "uVar6 = (uint)bVar1" (identifier "uVar6") (= "=") (cast_expression "(uint)bVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar1"))) (; ";")) (if_statement "if (bVar1 == 0) {\n    FUN_0010caf0();\n    goto LAB_00117b67;\n  }" (if "if") (parenthesized_expression "(bVar1 == 0)" (( "(") (binary_expression "bVar1 == 0" (identifier "bVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_0010caf0();\n    goto LAB_00117b67;\n  }" ({ "{") (expression_statement "FUN_0010caf0();" (call_expression "FUN_0010caf0()" (identifier "FUN_0010caf0") (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto LAB_00117b67;" (goto "goto") (statement_identifier "LAB_00117b67") (; ";")) (} "}"))) (expression_statement "uVar8 = (uint)*(byte *)(iVar7 + 0x11);" (assignment_expression "uVar8 = (uint)*(byte *)(iVar7 + 0x11)" (identifier "uVar8") (= "=") (binary_expression "(uint)*(byte *)(iVar7 + 0x11)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(iVar7 + 0x11)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x11)" (( "(") (binary_expression "iVar7 + 0x11" (identifier "iVar7") (+ "+") (number_literal "0x11")) () ")"))))) (; ";")) (expression_statement "uVar9 = uVar8;" (assignment_expression "uVar9 = uVar8" (identifier "uVar9") (= "=") (identifier "uVar8")) (; ";")) (if_statement "if (*(byte *)(iVar7 + 0x11) == 0) {\n    bVar3 = *(byte *)(iVar4 + 0x2a) & 7;\n    uVar9 = uVar6;\n    if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n      bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;\n      local_20 = *(int *)(iVar4 + 0xc);\n      if ((local_20 == 0) && (bVar2 != 0)) goto LAB_001178e4;\nLAB_00117a0c:\n      if ((local_20 != 0xfff1) || (bVar2 != 0)) goto LAB_00117a21;\n      goto LAB_00117920;\n    }\n    if (bVar3 == 4) {\nLAB_001178e4:\n      iVar5 = *(int *)(iVar7 + 8);\n      if (iVar5 == 0) goto LAB_00117b4a;\n      if (*(char *)(iVar5 + 0x1a25) == '\0') goto LAB_00117920;\n      if (bVar3 == 0) {\n        bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;\n        local_20 = *(int *)(iVar4 + 0xc);\n        goto LAB_00117a0c;\n      }\n    }\n    if (bVar3 == 3) goto LAB_00117920;\nLAB_00117a21:\n    local_2c = uVar10 & 1;\n    if (local_2c == 0) {\nLAB_00117a60:\n      if (((uVar10 & 8) != 0) && (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117a6e;\n      if ((uVar10 & 0x10) == 0) {\n        iVar5 = *(int *)(iVar7 + 8);\n        if (iVar5 == 0) {\nLAB_00117b4a:\n                    \n          FUN_002446e0(unaff_EDI + 0x3309f6,0x5c,unaff_EDI + 0x352c01,iVar5);\n        }\n        if (((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) &&\n           (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117920;\n      }\n      if (bVar3 == 0) {\n        uVar9 = uVar8;\n        if (((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar4 + 0xc) != 0 || (uVar9 = 0, (*(byte *)(iVar4 + 0x2b) & 0x20) == 0)))) {\nLAB_00117ad7:\n          uVar6 = FUN_00071a80(iVar4);\n          uVar9 = uVar6 ^ 1;\n        }\n      }\n      else {\n        uVar9 = uVar8;\n        if (bVar3 != 4) goto LAB_00117ad7;\n      }\n      goto LAB_00117920;\n    }\n    iVar5 = *(int *)(iVar7 + 8);\n    if (iVar5 == 0) goto LAB_00117b4a;\n    if (*(char *)(iVar5 + 0x1a25) == '\0') {\n      if (*(char *)(iVar5 + 0x2931) == '\0') goto LAB_00117a60;\n      uVar8 = 0;\n    }\n  }\n  else {\nLAB_00117920:\n    local_2c = uVar10 & 1;\n    uVar8 = uVar9;\n    if (local_2c == 0) {\n      return uVar9;\n    }\n  }" (if "if") (parenthesized_expression "(*(byte *)(iVar7 + 0x11) == 0)" (( "(") (binary_expression "*(byte *)(iVar7 + 0x11) == 0" (pointer_expression "*(byte *)(iVar7 + 0x11)" (* "*") (cast_expression "(byte *)(iVar7 + 0x11)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x11)" (( "(") (binary_expression "iVar7 + 0x11" (identifier "iVar7") (+ "+") (number_literal "0x11")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    bVar3 = *(byte *)(iVar4 + 0x2a) & 7;\n    uVar9 = uVar6;\n    if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n      bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;\n      local_20 = *(int *)(iVar4 + 0xc);\n      if ((local_20 == 0) && (bVar2 != 0)) goto LAB_001178e4;\nLAB_00117a0c:\n      if ((local_20 != 0xfff1) || (bVar2 != 0)) goto LAB_00117a21;\n      goto LAB_00117920;\n    }\n    if (bVar3 == 4) {\nLAB_001178e4:\n      iVar5 = *(int *)(iVar7 + 8);\n      if (iVar5 == 0) goto LAB_00117b4a;\n      if (*(char *)(iVar5 + 0x1a25) == '\0') goto LAB_00117920;\n      if (bVar3 == 0) {\n        bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;\n        local_20 = *(int *)(iVar4 + 0xc);\n        goto LAB_00117a0c;\n      }\n    }\n    if (bVar3 == 3) goto LAB_00117920;\nLAB_00117a21:\n    local_2c = uVar10 & 1;\n    if (local_2c == 0) {\nLAB_00117a60:\n      if (((uVar10 & 8) != 0) && (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117a6e;\n      if ((uVar10 & 0x10) == 0) {\n        iVar5 = *(int *)(iVar7 + 8);\n        if (iVar5 == 0) {\nLAB_00117b4a:\n                    \n          FUN_002446e0(unaff_EDI + 0x3309f6,0x5c,unaff_EDI + 0x352c01,iVar5);\n        }\n        if (((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) &&\n           (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117920;\n      }\n      if (bVar3 == 0) {\n        uVar9 = uVar8;\n        if (((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar4 + 0xc) != 0 || (uVar9 = 0, (*(byte *)(iVar4 + 0x2b) & 0x20) == 0)))) {\nLAB_00117ad7:\n          uVar6 = FUN_00071a80(iVar4);\n          uVar9 = uVar6 ^ 1;\n        }\n      }\n      else {\n        uVar9 = uVar8;\n        if (bVar3 != 4) goto LAB_00117ad7;\n      }\n      goto LAB_00117920;\n    }\n    iVar5 = *(int *)(iVar7 + 8);\n    if (iVar5 == 0) goto LAB_00117b4a;\n    if (*(char *)(iVar5 + 0x1a25) == '\0') {\n      if (*(char *)(iVar5 + 0x2931) == '\0') goto LAB_00117a60;\n      uVar8 = 0;\n    }\n  }" ({ "{") (expression_statement "bVar3 = *(byte *)(iVar4 + 0x2a) & 7;" (assignment_expression "bVar3 = *(byte *)(iVar4 + 0x2a) & 7" (identifier "bVar3") (= "=") (binary_expression "*(byte *)(iVar4 + 0x2a) & 7" (pointer_expression "*(byte *)(iVar4 + 0x2a)" (* "*") (cast_expression "(byte *)(iVar4 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x2a)" (( "(") (binary_expression "iVar4 + 0x2a" (identifier "iVar4") (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7"))) (; ";")) (expression_statement "uVar9 = uVar6;" (assignment_expression "uVar9 = uVar6" (identifier "uVar9") (= "=") (identifier "uVar6")) (; ";")) (if_statement "if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n      bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;\n      local_20 = *(int *)(iVar4 + 0xc);\n      if ((local_20 == 0) && (bVar2 != 0)) goto LAB_001178e4;\nLAB_00117a0c:\n      if ((local_20 != 0xfff1) || (bVar2 != 0)) goto LAB_00117a21;\n      goto LAB_00117920;\n    }" (if "if") (parenthesized_expression "((*(byte *)(iVar4 + 0x2a) & 7) == 0)" (( "(") (binary_expression "(*(byte *)(iVar4 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)(iVar4 + 0x2a) & 7)" (( "(") (binary_expression "*(byte *)(iVar4 + 0x2a) & 7" (pointer_expression "*(byte *)(iVar4 + 0x2a)" (* "*") (cast_expression "(byte *)(iVar4 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x2a)" (( "(") (binary_expression "iVar4 + 0x2a" (identifier "iVar4") (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;\n      local_20 = *(int *)(iVar4 + 0xc);\n      if ((local_20 == 0) && (bVar2 != 0)) goto LAB_001178e4;\nLAB_00117a0c:\n      if ((local_20 != 0xfff1) || (bVar2 != 0)) goto LAB_00117a21;\n      goto LAB_00117920;\n    }" ({ "{") (expression_statement "bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;" (assignment_expression "bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1" (identifier "bVar2") (= "=") (binary_expression "*(byte *)(iVar4 + 0x2b) >> 5 & 1" (binary_expression "*(byte *)(iVar4 + 0x2b) >> 5" (pointer_expression "*(byte *)(iVar4 + 0x2b)" (* "*") (cast_expression "(byte *)(iVar4 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x2b)" (( "(") (binary_expression "iVar4 + 0x2b" (identifier "iVar4") (+ "+") (number_literal "0x2b")) () ")")))) (>> ">>") (number_literal "5")) (& "&") (number_literal "1"))) (; ";")) (expression_statement "local_20 = *(int *)(iVar4 + 0xc);" (assignment_expression "local_20 = *(int *)(iVar4 + 0xc)" (identifier "local_20") (= "=") (pointer_expression "*(int *)(iVar4 + 0xc)" (* "*") (cast_expression "(int *)(iVar4 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xc)" (( "(") (binary_expression "iVar4 + 0xc" (identifier "iVar4") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if ((local_20 == 0) && (bVar2 != 0)) goto LAB_001178e4;" (if "if") (parenthesized_expression "((local_20 == 0) && (bVar2 != 0))" (( "(") (binary_expression "(local_20 == 0) && (bVar2 != 0)" (parenthesized_expression "(local_20 == 0)" (( "(") (binary_expression "local_20 == 0" (identifier "local_20") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(bVar2 != 0)" (( "(") (binary_expression "bVar2 != 0" (identifier "bVar2") (!= "!=") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_001178e4;" (goto "goto") (statement_identifier "LAB_001178e4") (; ";"))) (labeled_statement "LAB_00117a0c:\n      if ((local_20 != 0xfff1) || (bVar2 != 0)) goto LAB_00117a21;" (statement_identifier "LAB_00117a0c") (: ":") (if_statement "if ((local_20 != 0xfff1) || (bVar2 != 0)) goto LAB_00117a21;" (if "if") (parenthesized_expression "((local_20 != 0xfff1) || (bVar2 != 0))" (( "(") (binary_expression "(local_20 != 0xfff1) || (bVar2 != 0)" (parenthesized_expression "(local_20 != 0xfff1)" (( "(") (binary_expression "local_20 != 0xfff1" (identifier "local_20") (!= "!=") (number_literal "0xfff1")) () ")")) (|| "||") (parenthesized_expression "(bVar2 != 0)" (( "(") (binary_expression "bVar2 != 0" (identifier "bVar2") (!= "!=") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_00117a21;" (goto "goto") (statement_identifier "LAB_00117a21") (; ";")))) (goto_statement "goto LAB_00117920;" (goto "goto") (statement_identifier "LAB_00117920") (; ";")) (} "}"))) (if_statement "if (bVar3 == 4) {\nLAB_001178e4:\n      iVar5 = *(int *)(iVar7 + 8);\n      if (iVar5 == 0) goto LAB_00117b4a;\n      if (*(char *)(iVar5 + 0x1a25) == '\0') goto LAB_00117920;\n      if (bVar3 == 0) {\n        bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;\n        local_20 = *(int *)(iVar4 + 0xc);\n        goto LAB_00117a0c;\n      }\n    }" (if "if") (parenthesized_expression "(bVar3 == 4)" (( "(") (binary_expression "bVar3 == 4" (identifier "bVar3") (== "==") (number_literal "4")) () ")")) (compound_statement "{\nLAB_001178e4:\n      iVar5 = *(int *)(iVar7 + 8);\n      if (iVar5 == 0) goto LAB_00117b4a;\n      if (*(char *)(iVar5 + 0x1a25) == '\0') goto LAB_00117920;\n      if (bVar3 == 0) {\n        bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;\n        local_20 = *(int *)(iVar4 + 0xc);\n        goto LAB_00117a0c;\n      }\n    }" ({ "{") (labeled_statement "LAB_001178e4:\n      iVar5 = *(int *)(iVar7 + 8);" (statement_identifier "LAB_001178e4") (: ":") (expression_statement "iVar5 = *(int *)(iVar7 + 8);" (assignment_expression "iVar5 = *(int *)(iVar7 + 8)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(iVar7 + 8)" (* "*") (cast_expression "(int *)(iVar7 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 8)" (( "(") (binary_expression "iVar7 + 8" (identifier "iVar7") (+ "+") (number_literal "8")) () ")"))))) (; ";"))) (if_statement "if (iVar5 == 0) goto LAB_00117b4a;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00117b4a;" (goto "goto") (statement_identifier "LAB_00117b4a") (; ";"))) (if_statement "if (*(char *)(iVar5 + 0x1a25) == '\0') goto LAB_00117920;" (if "if") (parenthesized_expression "(*(char *)(iVar5 + 0x1a25) == '\0')" (( "(") (binary_expression "*(char *)(iVar5 + 0x1a25) == '\0'" (pointer_expression "*(char *)(iVar5 + 0x1a25)" (* "*") (cast_expression "(char *)(iVar5 + 0x1a25)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x1a25)" (( "(") (binary_expression "iVar5 + 0x1a25" (identifier "iVar5") (+ "+") (number_literal "0x1a25")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00117920;" (goto "goto") (statement_identifier "LAB_00117920") (; ";"))) (if_statement "if (bVar3 == 0) {\n        bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;\n        local_20 = *(int *)(iVar4 + 0xc);\n        goto LAB_00117a0c;\n      }" (if "if") (parenthesized_expression "(bVar3 == 0)" (( "(") (binary_expression "bVar3 == 0" (identifier "bVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;\n        local_20 = *(int *)(iVar4 + 0xc);\n        goto LAB_00117a0c;\n      }" ({ "{") (expression_statement "bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;" (assignment_expression "bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1" (identifier "bVar2") (= "=") (binary_expression "*(byte *)(iVar4 + 0x2b) >> 5 & 1" (binary_expression "*(byte *)(iVar4 + 0x2b) >> 5" (pointer_expression "*(byte *)(iVar4 + 0x2b)" (* "*") (cast_expression "(byte *)(iVar4 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x2b)" (( "(") (binary_expression "iVar4 + 0x2b" (identifier "iVar4") (+ "+") (number_literal "0x2b")) () ")")))) (>> ">>") (number_literal "5")) (& "&") (number_literal "1"))) (; ";")) (expression_statement "local_20 = *(int *)(iVar4 + 0xc);" (assignment_expression "local_20 = *(int *)(iVar4 + 0xc)" (identifier "local_20") (= "=") (pointer_expression "*(int *)(iVar4 + 0xc)" (* "*") (cast_expression "(int *)(iVar4 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xc)" (( "(") (binary_expression "iVar4 + 0xc" (identifier "iVar4") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (goto_statement "goto LAB_00117a0c;" (goto "goto") (statement_identifier "LAB_00117a0c") (; ";")) (} "}"))) (} "}"))) (if_statement "if (bVar3 == 3) goto LAB_00117920;" (if "if") (parenthesized_expression "(bVar3 == 3)" (( "(") (binary_expression "bVar3 == 3" (identifier "bVar3") (== "==") (number_literal "3")) () ")")) (goto_statement "goto LAB_00117920;" (goto "goto") (statement_identifier "LAB_00117920") (; ";"))) (labeled_statement "LAB_00117a21:\n    local_2c = uVar10 & 1;" (statement_identifier "LAB_00117a21") (: ":") (expression_statement "local_2c = uVar10 & 1;" (assignment_expression "local_2c = uVar10 & 1" (identifier "local_2c") (= "=") (binary_expression "uVar10 & 1" (identifier "uVar10") (& "&") (number_literal "1"))) (; ";"))) (if_statement "if (local_2c == 0) {\nLAB_00117a60:\n      if (((uVar10 & 8) != 0) && (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117a6e;\n      if ((uVar10 & 0x10) == 0) {\n        iVar5 = *(int *)(iVar7 + 8);\n        if (iVar5 == 0) {\nLAB_00117b4a:\n                    \n          FUN_002446e0(unaff_EDI + 0x3309f6,0x5c,unaff_EDI + 0x352c01,iVar5);\n        }\n        if (((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) &&\n           (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117920;\n      }\n      if (bVar3 == 0) {\n        uVar9 = uVar8;\n        if (((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar4 + 0xc) != 0 || (uVar9 = 0, (*(byte *)(iVar4 + 0x2b) & 0x20) == 0)))) {\nLAB_00117ad7:\n          uVar6 = FUN_00071a80(iVar4);\n          uVar9 = uVar6 ^ 1;\n        }\n      }\n      else {\n        uVar9 = uVar8;\n        if (bVar3 != 4) goto LAB_00117ad7;\n      }\n      goto LAB_00117920;\n    }" (if "if") (parenthesized_expression "(local_2c == 0)" (( "(") (binary_expression "local_2c == 0" (identifier "local_2c") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00117a60:\n      if (((uVar10 & 8) != 0) && (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117a6e;\n      if ((uVar10 & 0x10) == 0) {\n        iVar5 = *(int *)(iVar7 + 8);\n        if (iVar5 == 0) {\nLAB_00117b4a:\n                    \n          FUN_002446e0(unaff_EDI + 0x3309f6,0x5c,unaff_EDI + 0x352c01,iVar5);\n        }\n        if (((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) &&\n           (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117920;\n      }\n      if (bVar3 == 0) {\n        uVar9 = uVar8;\n        if (((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar4 + 0xc) != 0 || (uVar9 = 0, (*(byte *)(iVar4 + 0x2b) & 0x20) == 0)))) {\nLAB_00117ad7:\n          uVar6 = FUN_00071a80(iVar4);\n          uVar9 = uVar6 ^ 1;\n        }\n      }\n      else {\n        uVar9 = uVar8;\n        if (bVar3 != 4) goto LAB_00117ad7;\n      }\n      goto LAB_00117920;\n    }" ({ "{") (labeled_statement "LAB_00117a60:\n      if (((uVar10 & 8) != 0) && (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117a6e;" (statement_identifier "LAB_00117a60") (: ":") (if_statement "if (((uVar10 & 8) != 0) && (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117a6e;" (if "if") (parenthesized_expression "(((uVar10 & 8) != 0) && (*(int *)(iVar4 + 0x18) != -1))" (( "(") (binary_expression "((uVar10 & 8) != 0) && (*(int *)(iVar4 + 0x18) != -1)" (parenthesized_expression "((uVar10 & 8) != 0)" (( "(") (binary_expression "(uVar10 & 8) != 0" (parenthesized_expression "(uVar10 & 8)" (( "(") (binary_expression "uVar10 & 8" (identifier "uVar10") (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(iVar4 + 0x18) != -1)" (( "(") (binary_expression "*(int *)(iVar4 + 0x18) != -1" (pointer_expression "*(int *)(iVar4 + 0x18)" (* "*") (cast_expression "(int *)(iVar4 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x18)" (( "(") (binary_expression "iVar4 + 0x18" (identifier "iVar4") (+ "+") (number_literal "0x18")) () ")")))) (!= "!=") (number_literal "-1")) () ")"))) () ")")) (goto_statement "goto LAB_00117a6e;" (goto "goto") (statement_identifier "LAB_00117a6e") (; ";")))) (if_statement "if ((uVar10 & 0x10) == 0) {\n        iVar5 = *(int *)(iVar7 + 8);\n        if (iVar5 == 0) {\nLAB_00117b4a:\n                    \n          FUN_002446e0(unaff_EDI + 0x3309f6,0x5c,unaff_EDI + 0x352c01,iVar5);\n        }\n        if (((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) &&\n           (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117920;\n      }" (if "if") (parenthesized_expression "((uVar10 & 0x10) == 0)" (( "(") (binary_expression "(uVar10 & 0x10) == 0" (parenthesized_expression "(uVar10 & 0x10)" (( "(") (binary_expression "uVar10 & 0x10" (identifier "uVar10") (& "&") (number_literal "0x10")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar5 = *(int *)(iVar7 + 8);\n        if (iVar5 == 0) {\nLAB_00117b4a:\n                    \n          FUN_002446e0(unaff_EDI + 0x3309f6,0x5c,unaff_EDI + 0x352c01,iVar5);\n        }\n        if (((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) &&\n           (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117920;\n      }" ({ "{") (expression_statement "iVar5 = *(int *)(iVar7 + 8);" (assignment_expression "iVar5 = *(int *)(iVar7 + 8)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(iVar7 + 8)" (* "*") (cast_expression "(int *)(iVar7 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 8)" (( "(") (binary_expression "iVar7 + 8" (identifier "iVar7") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar5 == 0) {\nLAB_00117b4a:\n                    \n          FUN_002446e0(unaff_EDI + 0x3309f6,0x5c,unaff_EDI + 0x352c01,iVar5);\n        }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00117b4a:\n                    \n          FUN_002446e0(unaff_EDI + 0x3309f6,0x5c,unaff_EDI + 0x352c01,iVar5);\n        }" ({ "{") (labeled_statement "LAB_00117b4a:\n                    \n          FUN_002446e0(unaff_EDI + 0x3309f6,0x5c,unaff_EDI + 0x352c01,iVar5);" (statement_identifier "LAB_00117b4a") (: ":") (expression_statement "FUN_002446e0(unaff_EDI + 0x3309f6,0x5c,unaff_EDI + 0x352c01,iVar5);" (call_expression "FUN_002446e0(unaff_EDI + 0x3309f6,0x5c,unaff_EDI + 0x352c01,iVar5)" (identifier "FUN_002446e0") (argument_list "(unaff_EDI + 0x3309f6,0x5c,unaff_EDI + 0x352c01,iVar5)" (( "(") (binary_expression "unaff_EDI + 0x3309f6" (identifier "unaff_EDI") (+ "+") (number_literal "0x3309f6")) (, ",") (number_literal "0x5c") (, ",") (binary_expression "unaff_EDI + 0x352c01" (identifier "unaff_EDI") (+ "+") (number_literal "0x352c01")) (, ",") (identifier "iVar5") () ")"))) (; ";"))) (} "}"))) (if_statement "if (((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) &&\n           (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117920;" (if "if") (parenthesized_expression "(((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) &&\n           (*(int *)(iVar4 + 0x18) != -1))" (( "(") (binary_expression "((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) &&\n           (*(int *)(iVar4 + 0x18) != -1)" (parenthesized_expression "((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0'))" (( "(") (binary_expression "(*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')" (parenthesized_expression "(*(char *)(iVar5 + 0x1a25) == '\0')" (( "(") (binary_expression "*(char *)(iVar5 + 0x1a25) == '\0'" (pointer_expression "*(char *)(iVar5 + 0x1a25)" (* "*") (cast_expression "(char *)(iVar5 + 0x1a25)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x1a25)" (( "(") (binary_expression "iVar5 + 0x1a25" (identifier "iVar5") (+ "+") (number_literal "0x1a25")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(iVar5 + 0x2931) == '\0')" (( "(") (binary_expression "*(char *)(iVar5 + 0x2931) == '\0'" (pointer_expression "*(char *)(iVar5 + 0x2931)" (* "*") (cast_expression "(char *)(iVar5 + 0x2931)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x2931)" (( "(") (binary_expression "iVar5 + 0x2931" (identifier "iVar5") (+ "+") (number_literal "0x2931")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(iVar4 + 0x18) != -1)" (( "(") (binary_expression "*(int *)(iVar4 + 0x18) != -1" (pointer_expression "*(int *)(iVar4 + 0x18)" (* "*") (cast_expression "(int *)(iVar4 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x18)" (( "(") (binary_expression "iVar4 + 0x18" (identifier "iVar4") (+ "+") (number_literal "0x18")) () ")")))) (!= "!=") (number_literal "-1")) () ")"))) () ")")) (goto_statement "goto LAB_00117920;" (goto "goto") (statement_identifier "LAB_00117920") (; ";"))) (} "}"))) (if_statement "if (bVar3 == 0) {\n        uVar9 = uVar8;\n        if (((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar4 + 0xc) != 0 || (uVar9 = 0, (*(byte *)(iVar4 + 0x2b) & 0x20) == 0)))) {\nLAB_00117ad7:\n          uVar6 = FUN_00071a80(iVar4);\n          uVar9 = uVar6 ^ 1;\n        }\n      }\n      else {\n        uVar9 = uVar8;\n        if (bVar3 != 4) goto LAB_00117ad7;\n      }" (if "if") (parenthesized_expression "(bVar3 == 0)" (( "(") (binary_expression "bVar3 == 0" (identifier "bVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar9 = uVar8;\n        if (((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar4 + 0xc) != 0 || (uVar9 = 0, (*(byte *)(iVar4 + 0x2b) & 0x20) == 0)))) {\nLAB_00117ad7:\n          uVar6 = FUN_00071a80(iVar4);\n          uVar9 = uVar6 ^ 1;\n        }\n      }" ({ "{") (expression_statement "uVar9 = uVar8;" (assignment_expression "uVar9 = uVar8" (identifier "uVar9") (= "=") (identifier "uVar8")) (; ";")) (if_statement "if (((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar4 + 0xc) != 0 || (uVar9 = 0, (*(byte *)(iVar4 + 0x2b) & 0x20) == 0)))) {\nLAB_00117ad7:\n          uVar6 = FUN_00071a80(iVar4);\n          uVar9 = uVar6 ^ 1;\n        }" (if "if") (parenthesized_expression "(((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar4 + 0xc) != 0 || (uVar9 = 0, (*(byte *)(iVar4 + 0x2b) & 0x20) == 0))))" (( "(") (binary_expression "((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar4 + 0xc) != 0 || (uVar9 = 0, (*(byte *)(iVar4 + 0x2b) & 0x20) == 0)))" (parenthesized_expression "((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0)" (( "(") (binary_expression "(*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0" (parenthesized_expression "(*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1)" (( "(") (binary_expression "*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1" (pointer_expression "*(byte *)(*(int *)(iVar4 + 8) + 0x2c)" (* "*") (cast_expression "(byte *)(*(int *)(iVar4 + 8) + 0x2c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar4 + 8) + 0x2c)" (( "(") (binary_expression "*(int *)(iVar4 + 8) + 0x2c" (pointer_expression "*(int *)(iVar4 + 8)" (* "*") (cast_expression "(int *)(iVar4 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 8)" (( "(") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x2c")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((*(int *)(iVar4 + 0xc) != 0 || (uVar9 = 0, (*(byte *)(iVar4 + 0x2b) & 0x20) == 0)))" (( "(") (parenthesized_expression "(*(int *)(iVar4 + 0xc) != 0 || (uVar9 = 0, (*(byte *)(iVar4 + 0x2b) & 0x20) == 0))" (( "(") (binary_expression "*(int *)(iVar4 + 0xc) != 0 || (uVar9 = 0, (*(byte *)(iVar4 + 0x2b) & 0x20) == 0)" (binary_expression "*(int *)(iVar4 + 0xc) != 0" (pointer_expression "*(int *)(iVar4 + 0xc)" (* "*") (cast_expression "(int *)(iVar4 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xc)" (( "(") (binary_expression "iVar4 + 0xc" (identifier "iVar4") (+ "+") (number_literal "0xc")) () ")")))) (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "(uVar9 = 0, (*(byte *)(iVar4 + 0x2b) & 0x20) == 0)" (( "(") (comma_expression "uVar9 = 0, (*(byte *)(iVar4 + 0x2b) & 0x20) == 0" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (, ",") (binary_expression "(*(byte *)(iVar4 + 0x2b) & 0x20) == 0" (parenthesized_expression "(*(byte *)(iVar4 + 0x2b) & 0x20)" (( "(") (binary_expression "*(byte *)(iVar4 + 0x2b) & 0x20" (pointer_expression "*(byte *)(iVar4 + 0x2b)" (* "*") (cast_expression "(byte *)(iVar4 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x2b)" (( "(") (binary_expression "iVar4 + 0x2b" (identifier "iVar4") (+ "+") (number_literal "0x2b")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\nLAB_00117ad7:\n          uVar6 = FUN_00071a80(iVar4);\n          uVar9 = uVar6 ^ 1;\n        }" ({ "{") (labeled_statement "LAB_00117ad7:\n          uVar6 = FUN_00071a80(iVar4);" (statement_identifier "LAB_00117ad7") (: ":") (expression_statement "uVar6 = FUN_00071a80(iVar4);" (assignment_expression "uVar6 = FUN_00071a80(iVar4)" (identifier "uVar6") (= "=") (call_expression "FUN_00071a80(iVar4)" (identifier "FUN_00071a80") (argument_list "(iVar4)" (( "(") (identifier "iVar4") () ")")))) (; ";"))) (expression_statement "uVar9 = uVar6 ^ 1;" (assignment_expression "uVar9 = uVar6 ^ 1" (identifier "uVar9") (= "=") (binary_expression "uVar6 ^ 1" (identifier "uVar6") (^ "^") (number_literal "1"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        uVar9 = uVar8;\n        if (bVar3 != 4) goto LAB_00117ad7;\n      }" (else "else") (compound_statement "{\n        uVar9 = uVar8;\n        if (bVar3 != 4) goto LAB_00117ad7;\n      }" ({ "{") (expression_statement "uVar9 = uVar8;" (assignment_expression "uVar9 = uVar8" (identifier "uVar9") (= "=") (identifier "uVar8")) (; ";")) (if_statement "if (bVar3 != 4) goto LAB_00117ad7;" (if "if") (parenthesized_expression "(bVar3 != 4)" (( "(") (binary_expression "bVar3 != 4" (identifier "bVar3") (!= "!=") (number_literal "4")) () ")")) (goto_statement "goto LAB_00117ad7;" (goto "goto") (statement_identifier "LAB_00117ad7") (; ";"))) (} "}")))) (goto_statement "goto LAB_00117920;" (goto "goto") (statement_identifier "LAB_00117920") (; ";")) (} "}"))) (expression_statement "iVar5 = *(int *)(iVar7 + 8);" (assignment_expression "iVar5 = *(int *)(iVar7 + 8)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(iVar7 + 8)" (* "*") (cast_expression "(int *)(iVar7 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 8)" (( "(") (binary_expression "iVar7 + 8" (identifier "iVar7") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar5 == 0) goto LAB_00117b4a;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00117b4a;" (goto "goto") (statement_identifier "LAB_00117b4a") (; ";"))) (if_statement "if (*(char *)(iVar5 + 0x1a25) == '\0') {\n      if (*(char *)(iVar5 + 0x2931) == '\0') goto LAB_00117a60;\n      uVar8 = 0;\n    }" (if "if") (parenthesized_expression "(*(char *)(iVar5 + 0x1a25) == '\0')" (( "(") (binary_expression "*(char *)(iVar5 + 0x1a25) == '\0'" (pointer_expression "*(char *)(iVar5 + 0x1a25)" (* "*") (cast_expression "(char *)(iVar5 + 0x1a25)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x1a25)" (( "(") (binary_expression "iVar5 + 0x1a25" (identifier "iVar5") (+ "+") (number_literal "0x1a25")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      if (*(char *)(iVar5 + 0x2931) == '\0') goto LAB_00117a60;\n      uVar8 = 0;\n    }" ({ "{") (if_statement "if (*(char *)(iVar5 + 0x2931) == '\0') goto LAB_00117a60;" (if "if") (parenthesized_expression "(*(char *)(iVar5 + 0x2931) == '\0')" (( "(") (binary_expression "*(char *)(iVar5 + 0x2931) == '\0'" (pointer_expression "*(char *)(iVar5 + 0x2931)" (* "*") (cast_expression "(char *)(iVar5 + 0x2931)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x2931)" (( "(") (binary_expression "iVar5 + 0x2931" (identifier "iVar5") (+ "+") (number_literal "0x2931")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00117a60;" (goto "goto") (statement_identifier "LAB_00117a60") (; ";"))) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\nLAB_00117920:\n    local_2c = uVar10 & 1;\n    uVar8 = uVar9;\n    if (local_2c == 0) {\n      return uVar9;\n    }\n  }" (else "else") (compound_statement "{\nLAB_00117920:\n    local_2c = uVar10 & 1;\n    uVar8 = uVar9;\n    if (local_2c == 0) {\n      return uVar9;\n    }\n  }" ({ "{") (labeled_statement "LAB_00117920:\n    local_2c = uVar10 & 1;" (statement_identifier "LAB_00117920") (: ":") (expression_statement "local_2c = uVar10 & 1;" (assignment_expression "local_2c = uVar10 & 1" (identifier "local_2c") (= "=") (binary_expression "uVar10 & 1" (identifier "uVar10") (& "&") (number_literal "1"))) (; ";"))) (expression_statement "uVar8 = uVar9;" (assignment_expression "uVar8 = uVar9" (identifier "uVar8") (= "=") (identifier "uVar9")) (; ";")) (if_statement "if (local_2c == 0) {\n      return uVar9;\n    }" (if "if") (parenthesized_expression "(local_2c == 0)" (( "(") (binary_expression "local_2c == 0" (identifier "local_2c") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return uVar9;\n    }" ({ "{") (return_statement "return uVar9;" (return "return") (identifier "uVar9") (; ";")) (} "}"))) (} "}")))) (if_statement "if (((uVar10 & 8) == 0) || (*(int *)(iVar4 + 0x18) == -1)) {\n    if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n      if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) != 0) {\n        return uVar8;\n      }\n      if ((*(int *)(iVar4 + 0xc) == 0) && ((*(byte *)(iVar4 + 0x2b) & 0x20) != 0)) {\n        return uVar8;\n      }\n    }\n    else if ((*(byte *)(iVar4 + 0x2a) & 7) == 4) {\n      return uVar8;\n    }\n    uVar10 = FUN_00071a80(iVar4);\n    return uVar8 | uVar10 ^ 1;\n  }" (if "if") (parenthesized_expression "(((uVar10 & 8) == 0) || (*(int *)(iVar4 + 0x18) == -1))" (( "(") (binary_expression "((uVar10 & 8) == 0) || (*(int *)(iVar4 + 0x18) == -1)" (parenthesized_expression "((uVar10 & 8) == 0)" (( "(") (binary_expression "(uVar10 & 8) == 0" (parenthesized_expression "(uVar10 & 8)" (( "(") (binary_expression "uVar10 & 8" (identifier "uVar10") (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(int *)(iVar4 + 0x18) == -1)" (( "(") (binary_expression "*(int *)(iVar4 + 0x18) == -1" (pointer_expression "*(int *)(iVar4 + 0x18)" (* "*") (cast_expression "(int *)(iVar4 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x18)" (( "(") (binary_expression "iVar4 + 0x18" (identifier "iVar4") (+ "+") (number_literal "0x18")) () ")")))) (== "==") (number_literal "-1")) () ")"))) () ")")) (compound_statement "{\n    if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n      if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) != 0) {\n        return uVar8;\n      }\n      if ((*(int *)(iVar4 + 0xc) == 0) && ((*(byte *)(iVar4 + 0x2b) & 0x20) != 0)) {\n        return uVar8;\n      }\n    }\n    else if ((*(byte *)(iVar4 + 0x2a) & 7) == 4) {\n      return uVar8;\n    }\n    uVar10 = FUN_00071a80(iVar4);\n    return uVar8 | uVar10 ^ 1;\n  }" ({ "{") (if_statement "if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n      if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) != 0) {\n        return uVar8;\n      }\n      if ((*(int *)(iVar4 + 0xc) == 0) && ((*(byte *)(iVar4 + 0x2b) & 0x20) != 0)) {\n        return uVar8;\n      }\n    }\n    else if ((*(byte *)(iVar4 + 0x2a) & 7) == 4) {\n      return uVar8;\n    }" (if "if") (parenthesized_expression "((*(byte *)(iVar4 + 0x2a) & 7) == 0)" (( "(") (binary_expression "(*(byte *)(iVar4 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)(iVar4 + 0x2a) & 7)" (( "(") (binary_expression "*(byte *)(iVar4 + 0x2a) & 7" (pointer_expression "*(byte *)(iVar4 + 0x2a)" (* "*") (cast_expression "(byte *)(iVar4 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x2a)" (( "(") (binary_expression "iVar4 + 0x2a" (identifier "iVar4") (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) != 0) {\n        return uVar8;\n      }\n      if ((*(int *)(iVar4 + 0xc) == 0) && ((*(byte *)(iVar4 + 0x2b) & 0x20) != 0)) {\n        return uVar8;\n      }\n    }" ({ "{") (if_statement "if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) != 0) {\n        return uVar8;\n      }" (if "if") (parenthesized_expression "((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) != 0)" (( "(") (binary_expression "(*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) != 0" (parenthesized_expression "(*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1)" (( "(") (binary_expression "*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1" (pointer_expression "*(byte *)(*(int *)(iVar4 + 8) + 0x2c)" (* "*") (cast_expression "(byte *)(*(int *)(iVar4 + 8) + 0x2c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar4 + 8) + 0x2c)" (( "(") (binary_expression "*(int *)(iVar4 + 8) + 0x2c" (pointer_expression "*(int *)(iVar4 + 8)" (* "*") (cast_expression "(int *)(iVar4 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 8)" (( "(") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x2c")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        return uVar8;\n      }" ({ "{") (return_statement "return uVar8;" (return "return") (identifier "uVar8") (; ";")) (} "}"))) (if_statement "if ((*(int *)(iVar4 + 0xc) == 0) && ((*(byte *)(iVar4 + 0x2b) & 0x20) != 0)) {\n        return uVar8;\n      }" (if "if") (parenthesized_expression "((*(int *)(iVar4 + 0xc) == 0) && ((*(byte *)(iVar4 + 0x2b) & 0x20) != 0))" (( "(") (binary_expression "(*(int *)(iVar4 + 0xc) == 0) && ((*(byte *)(iVar4 + 0x2b) & 0x20) != 0)" (parenthesized_expression "(*(int *)(iVar4 + 0xc) == 0)" (( "(") (binary_expression "*(int *)(iVar4 + 0xc) == 0" (pointer_expression "*(int *)(iVar4 + 0xc)" (* "*") (cast_expression "(int *)(iVar4 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xc)" (( "(") (binary_expression "iVar4 + 0xc" (identifier "iVar4") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)(iVar4 + 0x2b) & 0x20) != 0)" (( "(") (binary_expression "(*(byte *)(iVar4 + 0x2b) & 0x20) != 0" (parenthesized_expression "(*(byte *)(iVar4 + 0x2b) & 0x20)" (( "(") (binary_expression "*(byte *)(iVar4 + 0x2b) & 0x20" (pointer_expression "*(byte *)(iVar4 + 0x2b)" (* "*") (cast_expression "(byte *)(iVar4 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x2b)" (( "(") (binary_expression "iVar4 + 0x2b" (identifier "iVar4") (+ "+") (number_literal "0x2b")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        return uVar8;\n      }" ({ "{") (return_statement "return uVar8;" (return "return") (identifier "uVar8") (; ";")) (} "}"))) (} "}")) (else_clause "else if ((*(byte *)(iVar4 + 0x2a) & 7) == 4) {\n      return uVar8;\n    }" (else "else") (if_statement "if ((*(byte *)(iVar4 + 0x2a) & 7) == 4) {\n      return uVar8;\n    }" (if "if") (parenthesized_expression "((*(byte *)(iVar4 + 0x2a) & 7) == 4)" (( "(") (binary_expression "(*(byte *)(iVar4 + 0x2a) & 7) == 4" (parenthesized_expression "(*(byte *)(iVar4 + 0x2a) & 7)" (( "(") (binary_expression "*(byte *)(iVar4 + 0x2a) & 7" (pointer_expression "*(byte *)(iVar4 + 0x2a)" (* "*") (cast_expression "(byte *)(iVar4 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x2a)" (( "(") (binary_expression "iVar4 + 0x2a" (identifier "iVar4") (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "4")) () ")")) (compound_statement "{\n      return uVar8;\n    }" ({ "{") (return_statement "return uVar8;" (return "return") (identifier "uVar8") (; ";")) (} "}"))))) (expression_statement "uVar10 = FUN_00071a80(iVar4);" (assignment_expression "uVar10 = FUN_00071a80(iVar4)" (identifier "uVar10") (= "=") (call_expression "FUN_00071a80(iVar4)" (identifier "FUN_00071a80") (argument_list "(iVar4)" (( "(") (identifier "iVar4") () ")")))) (; ";")) (return_statement "return uVar8 | uVar10 ^ 1;" (return "return") (binary_expression "uVar8 | uVar10 ^ 1" (identifier "uVar8") (| "|") (binary_expression "uVar10 ^ 1" (identifier "uVar10") (^ "^") (number_literal "1"))) (; ";")) (} "}"))) (labeled_statement "LAB_00117a6e:\n  return (uint)bVar1;" (statement_identifier "LAB_00117a6e") (: ":") (return_statement "return (uint)bVar1;" (return "return") (cast_expression "(uint)bVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar1")) (; ";"))) (} "}")))

/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* WARNING: Enum "<anon>": Some values do not have unique names */
/* DWARF original prototype: bool should_apply_static_reloc(Relocate * this, Sized_symbol<32> *
   gsym, uint r_type, bool is_32bit, Output_section * output_section) */

bool __thiscall
anon_unknown.dwarf_91258a::var_1<true>::type_1::function_1
          (type_1 *this,type_2<32> *gsym,type_3 r_type,bool is_32bit,
          type_4 *output_section)

{
  int var_16;
  type_5 var_13;
  bool bVar3;
  type_5 var_10;
  type_6 *var_5;
  type_3 var_15;
  type_5 var_6;
  int var_3;
  type_5 var_8;
  type_3 var_11;
  int var_4;
  type_7 uVar9;
  var_1<true> *in_stack_ffffffd4;
  type_8 *in_stack_ffffffd8;
  type_5 var_14;
  type_3 var_12;
  
  uVar9 = var_2();
  var_3 = (int)((type_9)uVar9 >> 0x20);
  var_5 = (type_6 *)uVar9;
  if (((type_5)this[0x54] & 2) == 0) {
    return true;
  }
  var_11 = 0;
  var_8 = 0;
  if (var_3 - 2U < 0x6b) {
    var_8 = *(type_5 *)(var_4 + 0x351487 + var_3);
    var_11 = (type_3)(char)var_8;
    var_3 = *(int *)((int)&DWORD_004d2f50 + var_4 + 1);
  }
  else {
    var_3 = *(int *)((int)&DWORD_004d2f50 + var_4 + 1);
  }
  if (var_5 == (type_6 *)0x0) {
    var_3 = *(int *)(var_3 + 8);
    if (var_3 != 0) {
      if ((*(char *)(var_3 + 0x1a25) == '\0') && (*(char *)(var_3 + 0x2931) == '\0')) {
        return true;
      }
      return (bool)(~var_8 & 1 | var_6);
    }
LAB_00117b67:
                    /* WARNING: Subroutine does not return */
    var_7(in_stack_ffffffd4);
  }
  var_8 = *(type_5 *)(var_3 + 0x10);
  if (var_8 == 0) {
    gold::Parameters::var_9((type_8 *)in_stack_ffffffd4,in_stack_ffffffd8);
    goto LAB_00117b67;
  }
  var_10 = *(type_5 *)(var_3 + 0x11);
  if (var_10 != 0) {
    var_15 = var_11 & 1;
    goto LAB_00117920;
  }
  var_14 = var_5->field_0x2a & 7;
  if ((var_5->field_0x2a & 7) == 0) {
    var_13 = (type_5)var_5->field_0x2b >> 5 & 1;
    var_12 = (var_5->u2_).shndx;
    if ((var_12 == 0) && (var_13 != 0)) goto LAB_001178e4;
LAB_00117a0c:
    if ((var_12 != 0xfff1) || (var_13 != 0)) goto LAB_00117a21;
LAB_0011791e:
    var_15 = var_11 & 1;
    var_10 = var_8;
  }
  else {
    if (var_14 == 4) {
LAB_001178e4:
      if (*(int *)(var_3 + 8) == 0) goto LAB_00117b4a;
      if (*(char *)(*(int *)(var_3 + 8) + 0x1a25) == '\0') goto LAB_0011791e;
      if (var_14 == 0) {
        var_13 = (type_5)var_5->field_0x2b >> 5 & 1;
        var_12 = (var_5->u2_).shndx;
        goto LAB_00117a0c;
      }
    }
    if (var_14 == 3) goto LAB_0011791e;
LAB_00117a21:
    var_15 = var_11 & 1;
    if (var_15 != 0) {
      var_16 = *(int *)(var_3 + 8);
      if (var_16 == 0) goto LAB_00117b4a;
      if (*(char *)(var_16 + 0x1a25) != '\0') goto LAB_0011792b;
      if (*(char *)(var_16 + 0x2931) != '\0') {
        var_10 = 0;
        goto LAB_0011792b;
      }
    }
    if (((var_11 & 8) != 0) && (var_5->plt_offset_ != 0xffffffff)) {
      return (bool)var_8;
    }
    if ((var_11 & 0x10) == 0) {
      var_3 = *(int *)(var_3 + 8);
      if (var_3 == 0) {
LAB_00117b4a:
                    /* WARNING: Subroutine does not return */
        gold::var_17
                  ((char *)(var_4 + 0x3309f6),0x5c,(char *)(var_4 + 0x352c01));
      }
      if (((*(char *)(var_3 + 0x1a25) == '\0') && (*(char *)(var_3 + 0x2931) == '\0')) &&
         (var_5->plt_offset_ != 0xffffffff)) goto LAB_0011791e;
    }
    if (var_14 == 0) {
      if ((((type_3)((var_5->u1_).output_segment)->output_lists_[3].
                  super__Vector_base<var_18::Output_data*,var_19::allocator<var_18::Output_data*>var_20>.
                  _M_impl._M_end_of_storage & 1) == 0) &&
         (((var_5->u2_).shndx != 0 || (var_10 = 0, (var_5->field_0x2b & 0x20) == 0)))) {
LAB_00117ad7:
        bVar3 = var_18::Symbol::var_21(var_5);
        var_10 = !bVar3;
      }
    }
    else if (var_14 != 4) goto LAB_00117ad7;
  }
LAB_00117920:
  if (var_15 == 0) {
    return (bool)var_10;
  }
LAB_0011792b:
  if (((var_11 & 8) == 0) || (var_5->plt_offset_ == 0xffffffff)) {
    if ((var_5->field_0x2a & 7) == 0) {
      if (((type_3)((var_5->u1_).output_segment)->output_lists_[3].
                 super__Vector_base<var_18::Output_data*,var_19::allocator<var_18::Output_data*>var_20>._M_impl
                 ._M_end_of_storage & 1) != 0) {
        return (bool)var_10;
      }
      if (((var_5->u2_).shndx == 0) && ((var_5->field_0x2b & 0x20) != 0)) {
        return (bool)var_10;
      }
    }
    else if ((var_5->field_0x2a & 7) == 4) {
      return (bool)var_10;
    }
    bVar3 = var_18::Symbol::var_21(var_5);
    var_8 = var_10 | !bVar3;
  }
  return (bool)var_8;
}


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

uint MASKED(int param_1)

{
  byte bVar1;
  byte bVar2;
  byte bVar3;
  int iVar4;
  int iVar5;
  uint extraout_ECX;
  uint uVar6;
  int iVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  int unaff_EDI;
  undefined8 uVar11;
  uint local_2c;
  int local_20;
  
  uVar11 = FUN_00074f0a();
  iVar7 = (int)((ulonglong)uVar11 >> 0x20);
  iVar4 = (int)uVar11;
  if ((*(byte *)(param_1 + 0x54) & 2) == 0) {
    return 1;
  }
  uVar10 = 0;
  if (iVar7 - 2U < 0x6b) {
    uVar10 = (uint)(char)(&UNK_00351487)[iVar7 + unaff_EDI];
    iVar7 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);
  }
  else {
    iVar7 = *(int *)((int)&DWORD_004d2f50 + unaff_EDI + 1);
  }
  if (iVar4 == 0) {
    iVar4 = *(int *)(iVar7 + 8);
    if (iVar4 != 0) {
      if ((*(char *)(iVar4 + 0x1a25) == '\0') && (*(char *)(iVar4 + 0x2931) == '\0')) {
        return 1;
      }
      return ~uVar10 & 1 | extraout_ECX;
    }
LAB_00117b67:
                    /* WARNING: Subroutine does not return */
    FUN_0010cb20();
  }
  bVar1 = *(byte *)(iVar7 + 0x10);
  uVar6 = (uint)bVar1;
  if (bVar1 == 0) {
    FUN_0010caf0();
    goto LAB_00117b67;
  }
  uVar8 = (uint)*(byte *)(iVar7 + 0x11);
  uVar9 = uVar8;
  if (*(byte *)(iVar7 + 0x11) == 0) {
    bVar3 = *(byte *)(iVar4 + 0x2a) & 7;
    uVar9 = uVar6;
    if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {
      bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;
      local_20 = *(int *)(iVar4 + 0xc);
      if ((local_20 == 0) && (bVar2 != 0)) goto LAB_001178e4;
LAB_00117a0c:
      if ((local_20 != 0xfff1) || (bVar2 != 0)) goto LAB_00117a21;
      goto LAB_00117920;
    }
    if (bVar3 == 4) {
LAB_001178e4:
      iVar5 = *(int *)(iVar7 + 8);
      if (iVar5 == 0) goto LAB_00117b4a;
      if (*(char *)(iVar5 + 0x1a25) == '\0') goto LAB_00117920;
      if (bVar3 == 0) {
        bVar2 = *(byte *)(iVar4 + 0x2b) >> 5 & 1;
        local_20 = *(int *)(iVar4 + 0xc);
        goto LAB_00117a0c;
      }
    }
    if (bVar3 == 3) goto LAB_00117920;
LAB_00117a21:
    local_2c = uVar10 & 1;
    if (local_2c == 0) {
LAB_00117a60:
      if (((uVar10 & 8) != 0) && (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117a6e;
      if ((uVar10 & 0x10) == 0) {
        iVar5 = *(int *)(iVar7 + 8);
        if (iVar5 == 0) {
LAB_00117b4a:
                    /* WARNING: Subroutine does not return */
          FUN_002446e0(unaff_EDI + 0x3309f6,0x5c,unaff_EDI + 0x352c01,iVar5);
        }
        if (((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) &&
           (*(int *)(iVar4 + 0x18) != -1)) goto LAB_00117920;
      }
      if (bVar3 == 0) {
        uVar9 = uVar8;
        if (((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) &&
           ((*(int *)(iVar4 + 0xc) != 0 || (uVar9 = 0, (*(byte *)(iVar4 + 0x2b) & 0x20) == 0)))) {
LAB_00117ad7:
          uVar6 = FUN_00071a80(iVar4);
          uVar9 = uVar6 ^ 1;
        }
      }
      else {
        uVar9 = uVar8;
        if (bVar3 != 4) goto LAB_00117ad7;
      }
      goto LAB_00117920;
    }
    iVar5 = *(int *)(iVar7 + 8);
    if (iVar5 == 0) goto LAB_00117b4a;
    if (*(char *)(iVar5 + 0x1a25) == '\0') {
      if (*(char *)(iVar5 + 0x2931) == '\0') goto LAB_00117a60;
      uVar8 = 0;
    }
  }
  else {
LAB_00117920:
    local_2c = uVar10 & 1;
    uVar8 = uVar9;
    if (local_2c == 0) {
      return uVar9;
    }
  }
  if (((uVar10 & 8) == 0) || (*(int *)(iVar4 + 0x18) == -1)) {
    if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {
      if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) != 0) {
        return uVar8;
      }
      if ((*(int *)(iVar4 + 0xc) == 0) && ((*(byte *)(iVar4 + 0x2b) & 0x20) != 0)) {
        return uVar8;
      }
    }
    else if ((*(byte *)(iVar4 + 0x2a) & 7) == 4) {
      return uVar8;
    }
    uVar10 = FUN_00071a80(iVar4);
    return uVar8 | uVar10 ^ 1;
  }
LAB_00117a6e:
  return (uint)bVar1;
}

