
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "<anon>": Some values do not have unique names */
/* DWARF original prototype: uint64_t do_dynsym_value(Target_arm<false> * this, Symbol * gsym) */

uint64_t __thiscall
anon_unknown.dwarf_91258a::Target_arm<false>::do_dynsym_value(Target_arm<false> *this,Symbol *gsym)

{
}



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

uint FUN_00117510(int param_1,int param_2)

{
  byte bVar1;
  byte bVar2;
  byte bVar3;
  uint uVar4;
  int iVar5;
  int iVar6;
  uint extraout_ECX;
  uint uVar7;
  int iVar8;
  uint uVar9;
  uint uVar10;
  int unaff_EDI;
  undefined8 uVar11;
  uint uStack_38;
  int iStack_2c;
  
  if ((((*(byte *)(param_2 + 0x2a) & 7) != 0) ||
      ((*(byte *)(*(int *)(param_2 + 8) + 0x2c) & 1) == 0)) || (*(int *)(param_2 + 0x18) == -1)) {
                    /* WARNING: Subroutine does not return */
    FUN_002446e0("../../gold/arm.cc",0x29ef,"do_dynsym_value");
  }
  if (*(int *)(param_1 + 0x18) != 0) {
    uVar4 = FUN_00117400();
    return uVar4;
  }
  FUN_0010c970();
  uVar11 = FUN_00074f0a();
  iVar8 = (int)((ulonglong)uVar11 >> 0x20);
  iVar5 = (int)uVar11;
  if ((bRam0011756a & 2) == 0) {
    return 1;
  }
  uVar4 = 0;
  if (iVar8 - 2U < 0x6b) {
    uVar4 = (uint)(char)(&UNK_00351787)[iVar8 + unaff_EDI];
    iVar8 = *(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4);
  }
  else {
    iVar8 = *(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4);
  }
  if (iVar5 == 0) {
    iVar5 = *(int *)(iVar8 + 8);
    if (iVar5 != 0) {
      if ((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) {
        return 1;
      }
      return ~uVar4 & 1 | extraout_ECX;
    }
LAB_00117867:
                    /* WARNING: Subroutine does not return */
    FUN_0010cb20();
  }
  bVar1 = *(byte *)(iVar8 + 0x10);
  uVar7 = (uint)bVar1;
  if (bVar1 == 0) {
    FUN_0010caf0();
    goto LAB_00117867;
  }
  uVar9 = (uint)*(byte *)(iVar8 + 0x11);
  uVar10 = uVar9;
  if (*(byte *)(iVar8 + 0x11) == 0) {
    bVar3 = *(byte *)(iVar5 + 0x2a) & 7;
    uVar10 = uVar7;
    if ((*(byte *)(iVar5 + 0x2a) & 7) == 0) {
      bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;
      iStack_2c = *(int *)(iVar5 + 0xc);
      if ((iStack_2c == 0) && (bVar2 != 0)) goto LAB_001175e4;
LAB_0011770c:
      if ((iStack_2c != 0xfff1) || (bVar2 != 0)) goto LAB_00117721;
      goto LAB_00117620;
    }
    if (bVar3 == 4) {
LAB_001175e4:
      iVar6 = *(int *)(iVar8 + 8);
      if (iVar6 == 0) goto LAB_0011784a;
      if (*(char *)(iVar6 + 0x1a25) == '\0') goto LAB_00117620;
      if (bVar3 == 0) {
        bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;
        iStack_2c = *(int *)(iVar5 + 0xc);
        goto LAB_0011770c;
      }
    }
    if (bVar3 == 3) goto LAB_00117620;
LAB_00117721:
    uStack_38 = uVar4 & 1;
    if (uStack_38 == 0) {
LAB_00117760:
      if (((uVar4 & 8) != 0) && (*(int *)(iVar5 + 0x18) != -1)) goto LAB_0011776e;
      if ((uVar4 & 0x10) == 0) {
        iVar6 = *(int *)(iVar8 + 8);
        if (iVar6 == 0) {
LAB_0011784a:
                    /* WARNING: Subroutine does not return */
          FUN_002446e0(unaff_EDI + 0x330cf6,0x5c,unaff_EDI + 0x352f01,iVar6);
        }
        if (((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) &&
           (*(int *)(iVar5 + 0x18) != -1)) goto LAB_00117620;
      }
      if (bVar3 == 0) {
        uVar10 = uVar9;
        if (((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) == 0) &&
           ((*(int *)(iVar5 + 0xc) != 0 || (uVar10 = 0, (*(byte *)(iVar5 + 0x2b) & 0x20) == 0)))) {
LAB_001177d7:
          uVar7 = FUN_00071a80(iVar5);
          uVar10 = uVar7 ^ 1;
        }
      }
      else {
        uVar10 = uVar9;
        if (bVar3 != 4) goto LAB_001177d7;
      }
      goto LAB_00117620;
    }
    iVar6 = *(int *)(iVar8 + 8);
    if (iVar6 == 0) goto LAB_0011784a;
    if (*(char *)(iVar6 + 0x1a25) == '\0') {
      if (*(char *)(iVar6 + 0x2931) == '\0') goto LAB_00117760;
      uVar9 = 0;
    }
  }
  else {
LAB_00117620:
    uStack_38 = uVar4 & 1;
    uVar9 = uVar10;
    if (uStack_38 == 0) {
      return uVar10;
    }
  }
  if (((uVar4 & 8) == 0) || (*(int *)(iVar5 + 0x18) == -1)) {
    if ((*(byte *)(iVar5 + 0x2a) & 7) == 0) {
      if ((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) != 0) {
        return uVar9;
      }
      if ((*(int *)(iVar5 + 0xc) == 0) && ((*(byte *)(iVar5 + 0x2b) & 0x20) != 0)) {
        return uVar9;
      }
    }
    else if ((*(byte *)(iVar5 + 0x2a) & 7) == 4) {
      return uVar9;
    }
    uVar4 = FUN_00071a80(iVar5);
    return uVar9 | uVar4 ^ 1;
  }
LAB_0011776e:
  return (uint)bVar1;
}


PUSH EBX
CALL 0x00050b50
ADD EBX,0x4d2aea
SUB ESP,0x8
MOV EDX,dword ptr [ESP + 0x14]
TEST byte ptr [EDX + 0x2a],0x7
JNZ 0x00117550
MOV EAX,dword ptr [EDX + 0x8]
TEST byte ptr [EAX + 0x2c],0x1
JZ 0x00117550
CMP dword ptr [EDX + 0x18],-0x1
JZ 0x00117550
MOV EAX,dword ptr [ESP + 0x10]
MOV EAX,dword ptr [EAX + 0x18]
TEST EAX,EAX
JZ 0x0011756b
CALL 0x00117400
ADD ESP,0x8
XOR EDX,EDX
POP EBX
RET
SUB ESP,0x4
LEA EAX,[EBX + 0xffe7ee18]
PUSH EAX
LEA EAX,[EBX + 0xffe7d346]
PUSH 0x29ef
PUSH EAX
CALL 0x002446e0
CALL 0x0010c970
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nuint FUN_00117510(int param_1,int param_2)\n\n{\n  byte bVar1;\n  byte bVar2;\n  byte bVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  uint extraout_ECX;\n  uint uVar7;\n  int iVar8;\n  uint uVar9;\n  uint uVar10;\n  int unaff_EDI;\n  undefined8 uVar11;\n  uint uStack_38;\n  int iStack_2c;\n  \n  if ((((*(byte *)(param_2 + 0x2a) & 7) != 0) ||\n      ((*(byte *)(*(int *)(param_2 + 8) + 0x2c) & 1) == 0)) || (*(int *)(param_2 + 0x18) == -1)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/arm.cc",0x29ef,"do_dynsym_value");\n  }\n  if (*(int *)(param_1 + 0x18) != 0) {\n    uVar4 = FUN_00117400();\n    return uVar4;\n  }\n  FUN_0010c970();\n  uVar11 = FUN_00074f0a();\n  iVar8 = (int)((ulonglong)uVar11 >> 0x20);\n  iVar5 = (int)uVar11;\n  if ((bRam0011756a & 2) == 0) {\n    return 1;\n  }\n  uVar4 = 0;\n  if (iVar8 - 2U < 0x6b) {\n    uVar4 = (uint)(char)(&UNK_00351787)[iVar8 + unaff_EDI];\n    iVar8 = *(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4);\n  }\n  else {\n    iVar8 = *(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4);\n  }\n  if (iVar5 == 0) {\n    iVar5 = *(int *)(iVar8 + 8);\n    if (iVar5 != 0) {\n      if ((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar4 & 1 | extraout_ECX;\n    }\nLAB_00117867:\n                    /* WARNING: Subroutine does not return */\n    FUN_0010cb20();\n  }\n  bVar1 = *(byte *)(iVar8 + 0x10);\n  uVar7 = (uint)bVar1;\n  if (bVar1 == 0) {\n    FUN_0010caf0();\n    goto LAB_00117867;\n  }\n  uVar9 = (uint)*(byte *)(iVar8 + 0x11);\n  uVar10 = uVar9;\n  if (*(byte *)(iVar8 + 0x11) == 0) {\n    bVar3 = *(byte *)(iVar5 + 0x2a) & 7;\n    uVar10 = uVar7;\n    if ((*(byte *)(iVar5 + 0x2a) & 7) == 0) {\n      bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;\n      iStack_2c = *(int *)(iVar5 + 0xc);\n      if ((iStack_2c == 0) && (bVar2 != 0)) goto LAB_001175e4;\nLAB_0011770c:\n      if ((iStack_2c != 0xfff1) || (bVar2 != 0)) goto LAB_00117721;\n      goto LAB_00117620;\n    }\n    if (bVar3 == 4) {\nLAB_001175e4:\n      iVar6 = *(int *)(iVar8 + 8);\n      if (iVar6 == 0) goto LAB_0011784a;\n      if (*(char *)(iVar6 + 0x1a25) == '\0') goto LAB_00117620;\n      if (bVar3 == 0) {\n        bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;\n        iStack_2c = *(int *)(iVar5 + 0xc);\n        goto LAB_0011770c;\n      }\n    }\n    if (bVar3 == 3) goto LAB_00117620;\nLAB_00117721:\n    uStack_38 = uVar4 & 1;\n    if (uStack_38 == 0) {\nLAB_00117760:\n      if (((uVar4 & 8) != 0) && (*(int *)(iVar5 + 0x18) != -1)) goto LAB_0011776e;\n      if ((uVar4 & 0x10) == 0) {\n        iVar6 = *(int *)(iVar8 + 8);\n        if (iVar6 == 0) {\nLAB_0011784a:\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0(unaff_EDI + 0x330cf6,0x5c,unaff_EDI + 0x352f01,iVar6);\n        }\n        if (((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) &&\n           (*(int *)(iVar5 + 0x18) != -1)) goto LAB_00117620;\n      }\n      if (bVar3 == 0) {\n        uVar10 = uVar9;\n        if (((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar5 + 0xc) != 0 || (uVar10 = 0, (*(byte *)(iVar5 + 0x2b) & 0x20) == 0)))) {\nLAB_001177d7:\n          uVar7 = FUN_00071a80(iVar5);\n          uVar10 = uVar7 ^ 1;\n        }\n      }\n      else {\n        uVar10 = uVar9;\n        if (bVar3 != 4) goto LAB_001177d7;\n      }\n      goto LAB_00117620;\n    }\n    iVar6 = *(int *)(iVar8 + 8);\n    if (iVar6 == 0) goto LAB_0011784a;\n    if (*(char *)(iVar6 + 0x1a25) == '\0') {\n      if (*(char *)(iVar6 + 0x2931) == '\0') goto LAB_00117760;\n      uVar9 = 0;\n    }\n  }\n  else {\nLAB_00117620:\n    uStack_38 = uVar4 & 1;\n    uVar9 = uVar10;\n    if (uStack_38 == 0) {\n      return uVar10;\n    }\n  }\n  if (((uVar4 & 8) == 0) || (*(int *)(iVar5 + 0x18) == -1)) {\n    if ((*(byte *)(iVar5 + 0x2a) & 7) == 0) {\n      if ((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) != 0) {\n        return uVar9;\n      }\n      if ((*(int *)(iVar5 + 0xc) == 0) && ((*(byte *)(iVar5 + 0x2b) & 0x20) != 0)) {\n        return uVar9;\n      }\n    }\n    else if ((*(byte *)(iVar5 + 0x2a) & 7) == 4) {\n      return uVar9;\n    }\n    uVar4 = FUN_00071a80(iVar5);\n    return uVar9 | uVar4 ^ 1;\n  }\nLAB_0011776e:\n  return (uint)bVar1;\n}\n\n" comment (function_definition "uint FUN_00117510(int param_1,int param_2)\n\n{\n  byte bVar1;\n  byte bVar2;\n  byte bVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  uint extraout_ECX;\n  uint uVar7;\n  int iVar8;\n  uint uVar9;\n  uint uVar10;\n  int unaff_EDI;\n  undefined8 uVar11;\n  uint uStack_38;\n  int iStack_2c;\n  \n  if ((((*(byte *)(param_2 + 0x2a) & 7) != 0) ||\n      ((*(byte *)(*(int *)(param_2 + 8) + 0x2c) & 1) == 0)) || (*(int *)(param_2 + 0x18) == -1)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/arm.cc",0x29ef,"do_dynsym_value");\n  }\n  if (*(int *)(param_1 + 0x18) != 0) {\n    uVar4 = FUN_00117400();\n    return uVar4;\n  }\n  FUN_0010c970();\n  uVar11 = FUN_00074f0a();\n  iVar8 = (int)((ulonglong)uVar11 >> 0x20);\n  iVar5 = (int)uVar11;\n  if ((bRam0011756a & 2) == 0) {\n    return 1;\n  }\n  uVar4 = 0;\n  if (iVar8 - 2U < 0x6b) {\n    uVar4 = (uint)(char)(&UNK_00351787)[iVar8 + unaff_EDI];\n    iVar8 = *(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4);\n  }\n  else {\n    iVar8 = *(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4);\n  }\n  if (iVar5 == 0) {\n    iVar5 = *(int *)(iVar8 + 8);\n    if (iVar5 != 0) {\n      if ((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar4 & 1 | extraout_ECX;\n    }\nLAB_00117867:\n                    /* WARNING: Subroutine does not return */\n    FUN_0010cb20();\n  }\n  bVar1 = *(byte *)(iVar8 + 0x10);\n  uVar7 = (uint)bVar1;\n  if (bVar1 == 0) {\n    FUN_0010caf0();\n    goto LAB_00117867;\n  }\n  uVar9 = (uint)*(byte *)(iVar8 + 0x11);\n  uVar10 = uVar9;\n  if (*(byte *)(iVar8 + 0x11) == 0) {\n    bVar3 = *(byte *)(iVar5 + 0x2a) & 7;\n    uVar10 = uVar7;\n    if ((*(byte *)(iVar5 + 0x2a) & 7) == 0) {\n      bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;\n      iStack_2c = *(int *)(iVar5 + 0xc);\n      if ((iStack_2c == 0) && (bVar2 != 0)) goto LAB_001175e4;\nLAB_0011770c:\n      if ((iStack_2c != 0xfff1) || (bVar2 != 0)) goto LAB_00117721;\n      goto LAB_00117620;\n    }\n    if (bVar3 == 4) {\nLAB_001175e4:\n      iVar6 = *(int *)(iVar8 + 8);\n      if (iVar6 == 0) goto LAB_0011784a;\n      if (*(char *)(iVar6 + 0x1a25) == '\0') goto LAB_00117620;\n      if (bVar3 == 0) {\n        bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;\n        iStack_2c = *(int *)(iVar5 + 0xc);\n        goto LAB_0011770c;\n      }\n    }\n    if (bVar3 == 3) goto LAB_00117620;\nLAB_00117721:\n    uStack_38 = uVar4 & 1;\n    if (uStack_38 == 0) {\nLAB_00117760:\n      if (((uVar4 & 8) != 0) && (*(int *)(iVar5 + 0x18) != -1)) goto LAB_0011776e;\n      if ((uVar4 & 0x10) == 0) {\n        iVar6 = *(int *)(iVar8 + 8);\n        if (iVar6 == 0) {\nLAB_0011784a:\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0(unaff_EDI + 0x330cf6,0x5c,unaff_EDI + 0x352f01,iVar6);\n        }\n        if (((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) &&\n           (*(int *)(iVar5 + 0x18) != -1)) goto LAB_00117620;\n      }\n      if (bVar3 == 0) {\n        uVar10 = uVar9;\n        if (((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar5 + 0xc) != 0 || (uVar10 = 0, (*(byte *)(iVar5 + 0x2b) & 0x20) == 0)))) {\nLAB_001177d7:\n          uVar7 = FUN_00071a80(iVar5);\n          uVar10 = uVar7 ^ 1;\n        }\n      }\n      else {\n        uVar10 = uVar9;\n        if (bVar3 != 4) goto LAB_001177d7;\n      }\n      goto LAB_00117620;\n    }\n    iVar6 = *(int *)(iVar8 + 8);\n    if (iVar6 == 0) goto LAB_0011784a;\n    if (*(char *)(iVar6 + 0x1a25) == '\0') {\n      if (*(char *)(iVar6 + 0x2931) == '\0') goto LAB_00117760;\n      uVar9 = 0;\n    }\n  }\n  else {\nLAB_00117620:\n    uStack_38 = uVar4 & 1;\n    uVar9 = uVar10;\n    if (uStack_38 == 0) {\n      return uVar10;\n    }\n  }\n  if (((uVar4 & 8) == 0) || (*(int *)(iVar5 + 0x18) == -1)) {\n    if ((*(byte *)(iVar5 + 0x2a) & 7) == 0) {\n      if ((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) != 0) {\n        return uVar9;\n      }\n      if ((*(int *)(iVar5 + 0xc) == 0) && ((*(byte *)(iVar5 + 0x2b) & 0x20) != 0)) {\n        return uVar9;\n      }\n    }\n    else if ((*(byte *)(iVar5 + 0x2a) & 7) == 4) {\n      return uVar9;\n    }\n    uVar4 = FUN_00071a80(iVar5);\n    return uVar9 | uVar4 ^ 1;\n  }\nLAB_0011776e:\n  return (uint)bVar1;\n}" type_identifier (function_declarator "FUN_00117510(int param_1,int param_2)" identifier (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  byte bVar2;\n  byte bVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  uint extraout_ECX;\n  uint uVar7;\n  int iVar8;\n  uint uVar9;\n  uint uVar10;\n  int unaff_EDI;\n  undefined8 uVar11;\n  uint uStack_38;\n  int iStack_2c;\n  \n  if ((((*(byte *)(param_2 + 0x2a) & 7) != 0) ||\n      ((*(byte *)(*(int *)(param_2 + 8) + 0x2c) & 1) == 0)) || (*(int *)(param_2 + 0x18) == -1)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/arm.cc",0x29ef,"do_dynsym_value");\n  }\n  if (*(int *)(param_1 + 0x18) != 0) {\n    uVar4 = FUN_00117400();\n    return uVar4;\n  }\n  FUN_0010c970();\n  uVar11 = FUN_00074f0a();\n  iVar8 = (int)((ulonglong)uVar11 >> 0x20);\n  iVar5 = (int)uVar11;\n  if ((bRam0011756a & 2) == 0) {\n    return 1;\n  }\n  uVar4 = 0;\n  if (iVar8 - 2U < 0x6b) {\n    uVar4 = (uint)(char)(&UNK_00351787)[iVar8 + unaff_EDI];\n    iVar8 = *(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4);\n  }\n  else {\n    iVar8 = *(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4);\n  }\n  if (iVar5 == 0) {\n    iVar5 = *(int *)(iVar8 + 8);\n    if (iVar5 != 0) {\n      if ((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar4 & 1 | extraout_ECX;\n    }\nLAB_00117867:\n                    /* WARNING: Subroutine does not return */\n    FUN_0010cb20();\n  }\n  bVar1 = *(byte *)(iVar8 + 0x10);\n  uVar7 = (uint)bVar1;\n  if (bVar1 == 0) {\n    FUN_0010caf0();\n    goto LAB_00117867;\n  }\n  uVar9 = (uint)*(byte *)(iVar8 + 0x11);\n  uVar10 = uVar9;\n  if (*(byte *)(iVar8 + 0x11) == 0) {\n    bVar3 = *(byte *)(iVar5 + 0x2a) & 7;\n    uVar10 = uVar7;\n    if ((*(byte *)(iVar5 + 0x2a) & 7) == 0) {\n      bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;\n      iStack_2c = *(int *)(iVar5 + 0xc);\n      if ((iStack_2c == 0) && (bVar2 != 0)) goto LAB_001175e4;\nLAB_0011770c:\n      if ((iStack_2c != 0xfff1) || (bVar2 != 0)) goto LAB_00117721;\n      goto LAB_00117620;\n    }\n    if (bVar3 == 4) {\nLAB_001175e4:\n      iVar6 = *(int *)(iVar8 + 8);\n      if (iVar6 == 0) goto LAB_0011784a;\n      if (*(char *)(iVar6 + 0x1a25) == '\0') goto LAB_00117620;\n      if (bVar3 == 0) {\n        bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;\n        iStack_2c = *(int *)(iVar5 + 0xc);\n        goto LAB_0011770c;\n      }\n    }\n    if (bVar3 == 3) goto LAB_00117620;\nLAB_00117721:\n    uStack_38 = uVar4 & 1;\n    if (uStack_38 == 0) {\nLAB_00117760:\n      if (((uVar4 & 8) != 0) && (*(int *)(iVar5 + 0x18) != -1)) goto LAB_0011776e;\n      if ((uVar4 & 0x10) == 0) {\n        iVar6 = *(int *)(iVar8 + 8);\n        if (iVar6 == 0) {\nLAB_0011784a:\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0(unaff_EDI + 0x330cf6,0x5c,unaff_EDI + 0x352f01,iVar6);\n        }\n        if (((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) &&\n           (*(int *)(iVar5 + 0x18) != -1)) goto LAB_00117620;\n      }\n      if (bVar3 == 0) {\n        uVar10 = uVar9;\n        if (((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar5 + 0xc) != 0 || (uVar10 = 0, (*(byte *)(iVar5 + 0x2b) & 0x20) == 0)))) {\nLAB_001177d7:\n          uVar7 = FUN_00071a80(iVar5);\n          uVar10 = uVar7 ^ 1;\n        }\n      }\n      else {\n        uVar10 = uVar9;\n        if (bVar3 != 4) goto LAB_001177d7;\n      }\n      goto LAB_00117620;\n    }\n    iVar6 = *(int *)(iVar8 + 8);\n    if (iVar6 == 0) goto LAB_0011784a;\n    if (*(char *)(iVar6 + 0x1a25) == '\0') {\n      if (*(char *)(iVar6 + 0x2931) == '\0') goto LAB_00117760;\n      uVar9 = 0;\n    }\n  }\n  else {\nLAB_00117620:\n    uStack_38 = uVar4 & 1;\n    uVar9 = uVar10;\n    if (uStack_38 == 0) {\n      return uVar10;\n    }\n  }\n  if (((uVar4 & 8) == 0) || (*(int *)(iVar5 + 0x18) == -1)) {\n    if ((*(byte *)(iVar5 + 0x2a) & 7) == 0) {\n      if ((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) != 0) {\n        return uVar9;\n      }\n      if ((*(int *)(iVar5 + 0xc) == 0) && ((*(byte *)(iVar5 + 0x2b) & 0x20) != 0)) {\n        return uVar9;\n      }\n    }\n    else if ((*(byte *)(iVar5 + 0x2a) & 7) == 4) {\n      return uVar9;\n    }\n    uVar4 = FUN_00071a80(iVar5);\n    return uVar9 | uVar4 ^ 1;\n  }\nLAB_0011776e:\n  return (uint)bVar1;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "uint extraout_ECX;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type 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 uStack_38;" type_identifier identifier ;) (declaration "int iStack_2c;" primitive_type identifier ;) (if_statement "if ((((*(byte *)(param_2 + 0x2a) & 7) != 0) ||\n      ((*(byte *)(*(int *)(param_2 + 8) + 0x2c) & 1) == 0)) || (*(int *)(param_2 + 0x18) == -1)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/arm.cc",0x29ef,"do_dynsym_value");\n  }" if (parenthesized_expression "((((*(byte *)(param_2 + 0x2a) & 7) != 0) ||\n      ((*(byte *)(*(int *)(param_2 + 8) + 0x2c) & 1) == 0)) || (*(int *)(param_2 + 0x18) == -1))" ( (binary_expression "(((*(byte *)(param_2 + 0x2a) & 7) != 0) ||\n      ((*(byte *)(*(int *)(param_2 + 8) + 0x2c) & 1) == 0)) || (*(int *)(param_2 + 0x18) == -1)" (parenthesized_expression "(((*(byte *)(param_2 + 0x2a) & 7) != 0) ||\n      ((*(byte *)(*(int *)(param_2 + 8) + 0x2c) & 1) == 0))" ( (binary_expression "((*(byte *)(param_2 + 0x2a) & 7) != 0) ||\n      ((*(byte *)(*(int *)(param_2 + 8) + 0x2c) & 1) == 0)" (parenthesized_expression "((*(byte *)(param_2 + 0x2a) & 7) != 0)" ( (binary_expression "(*(byte *)(param_2 + 0x2a) & 7) != 0" (parenthesized_expression "(*(byte *)(param_2 + 0x2a) & 7)" ( (binary_expression "*(byte *)(param_2 + 0x2a) & 7" (pointer_expression "*(byte *)(param_2 + 0x2a)" * (cast_expression "(byte *)(param_2 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2a)" ( (binary_expression "param_2 + 0x2a" identifier + number_literal) )))) & number_literal) )) != number_literal) )) || (parenthesized_expression "((*(byte *)(*(int *)(param_2 + 8) + 0x2c) & 1) == 0)" ( (binary_expression "(*(byte *)(*(int *)(param_2 + 8) + 0x2c) & 1) == 0" (parenthesized_expression "(*(byte *)(*(int *)(param_2 + 8) + 0x2c) & 1)" ( (binary_expression "*(byte *)(*(int *)(param_2 + 8) + 0x2c) & 1" (pointer_expression "*(byte *)(*(int *)(param_2 + 8) + 0x2c)" * (cast_expression "(byte *)(*(int *)(param_2 + 8) + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 8) + 0x2c)" ( (binary_expression "*(int *)(param_2 + 8) + 0x2c" (pointer_expression "*(int *)(param_2 + 8)" * (cast_expression "(int *)(param_2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) == number_literal) ))) )) || (parenthesized_expression "(*(int *)(param_2 + 0x18) == -1)" ( (binary_expression "*(int *)(param_2 + 0x18) == -1" (pointer_expression "*(int *)(param_2 + 0x18)" * (cast_expression "(int *)(param_2 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/arm.cc",0x29ef,"do_dynsym_value");\n  }" { comment (expression_statement "FUN_002446e0("../../gold/arm.cc",0x29ef,"do_dynsym_value");" (call_expression "FUN_002446e0("../../gold/arm.cc",0x29ef,"do_dynsym_value")" identifier (argument_list "("../../gold/arm.cc",0x29ef,"do_dynsym_value")" ( (string_literal ""../../gold/arm.cc"" " string_content ") , number_literal , (string_literal ""do_dynsym_value"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x18) != 0) {\n    uVar4 = FUN_00117400();\n    return uVar4;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x18) != 0)" ( (binary_expression "*(int *)(param_1 + 0x18) != 0" (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    uVar4 = FUN_00117400();\n    return uVar4;\n  }" { (expression_statement "uVar4 = FUN_00117400();" (assignment_expression "uVar4 = FUN_00117400()" identifier = (call_expression "FUN_00117400()" identifier (argument_list "()" ( )))) ;) (return_statement "return uVar4;" return identifier ;) })) (expression_statement "FUN_0010c970();" (call_expression "FUN_0010c970()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar11 = FUN_00074f0a();" (assignment_expression "uVar11 = FUN_00074f0a()" identifier = (call_expression "FUN_00074f0a()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar8 = (int)((ulonglong)uVar11 >> 0x20);" (assignment_expression "iVar8 = (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 "iVar5 = (int)uVar11;" (assignment_expression "iVar5 = (int)uVar11" identifier = (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if ((bRam0011756a & 2) == 0) {\n    return 1;\n  }" if (parenthesized_expression "((bRam0011756a & 2) == 0)" ( (binary_expression "(bRam0011756a & 2) == 0" (parenthesized_expression "(bRam0011756a & 2)" ( (binary_expression "bRam0011756a & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (if_statement "if (iVar8 - 2U < 0x6b) {\n    uVar4 = (uint)(char)(&UNK_00351787)[iVar8 + unaff_EDI];\n    iVar8 = *(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4);\n  }\n  else {\n    iVar8 = *(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4);\n  }" if (parenthesized_expression "(iVar8 - 2U < 0x6b)" ( (binary_expression "iVar8 - 2U < 0x6b" (binary_expression "iVar8 - 2U" identifier - number_literal) < number_literal) )) (compound_statement "{\n    uVar4 = (uint)(char)(&UNK_00351787)[iVar8 + unaff_EDI];\n    iVar8 = *(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4);\n  }" { (expression_statement "uVar4 = (uint)(char)(&UNK_00351787)[iVar8 + unaff_EDI];" (assignment_expression "uVar4 = (uint)(char)(&UNK_00351787)[iVar8 + unaff_EDI]" identifier = (subscript_expression "(uint)(char)(&UNK_00351787)[iVar8 + unaff_EDI]" (call_expression "(uint)(char)(&UNK_00351787)" (call_expression "(uint)(char)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(char)" ( identifier ))) (argument_list "(&UNK_00351787)" ( (pointer_expression "&UNK_00351787" & identifier) ))) [ (binary_expression "iVar8 + unaff_EDI" identifier + identifier) ])) ;) (expression_statement "iVar8 = *(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4);" (assignment_expression "iVar8 = *(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4)" identifier = (pointer_expression "*(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4)" * (cast_expression "(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4)" ( (binary_expression "BYTE_ARRAY_004d315d + unaff_EDI + 0xf4" (binary_expression "BYTE_ARRAY_004d315d + unaff_EDI" identifier + identifier) + number_literal) ))))) ;) }) (else_clause "else {\n    iVar8 = *(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4);\n  }" else (compound_statement "{\n    iVar8 = *(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4);\n  }" { (expression_statement "iVar8 = *(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4);" (assignment_expression "iVar8 = *(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4)" identifier = (pointer_expression "*(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4)" * (cast_expression "(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4)" ( (binary_expression "BYTE_ARRAY_004d315d + unaff_EDI + 0xf4" (binary_expression "BYTE_ARRAY_004d315d + unaff_EDI" identifier + identifier) + number_literal) ))))) ;) }))) (if_statement "if (iVar5 == 0) {\n    iVar5 = *(int *)(iVar8 + 8);\n    if (iVar5 != 0) {\n      if ((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar4 & 1 | extraout_ECX;\n    }\nLAB_00117867:\n                    /* WARNING: Subroutine does not return */\n    FUN_0010cb20();\n  }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar5 = *(int *)(iVar8 + 8);\n    if (iVar5 != 0) {\n      if ((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar4 & 1 | extraout_ECX;\n    }\nLAB_00117867:\n                    /* WARNING: Subroutine does not return */\n    FUN_0010cb20();\n  }" { (expression_statement "iVar5 = *(int *)(iVar8 + 8);" (assignment_expression "iVar5 = *(int *)(iVar8 + 8)" identifier = (pointer_expression "*(int *)(iVar8 + 8)" * (cast_expression "(int *)(iVar8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 != 0) {\n      if ((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar4 & 1 | extraout_ECX;\n    }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n      if ((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar4 & 1 | extraout_ECX;\n    }" { (if_statement "if ((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) {\n        return 1;\n      }" if (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 ')) ))) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (return_statement "return ~uVar4 & 1 | extraout_ECX;" return (binary_expression "~uVar4 & 1 | extraout_ECX" (binary_expression "~uVar4 & 1" (unary_expression "~uVar4" ~ identifier) & number_literal) | identifier) ;) })) (labeled_statement "LAB_00117867:\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 *)(iVar8 + 0x10);" (assignment_expression "bVar1 = *(byte *)(iVar8 + 0x10)" identifier = (pointer_expression "*(byte *)(iVar8 + 0x10)" * (cast_expression "(byte *)(iVar8 + 0x10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x10)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = (uint)bVar1;" (assignment_expression "uVar7 = (uint)bVar1" identifier = (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (bVar1 == 0) {\n    FUN_0010caf0();\n    goto LAB_00117867;\n  }" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    FUN_0010caf0();\n    goto LAB_00117867;\n  }" { (expression_statement "FUN_0010caf0();" (call_expression "FUN_0010caf0()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_00117867;" goto statement_identifier ;) })) (expression_statement "uVar9 = (uint)*(byte *)(iVar8 + 0x11);" (assignment_expression "uVar9 = (uint)*(byte *)(iVar8 + 0x11)" identifier = (binary_expression "(uint)*(byte *)(iVar8 + 0x11)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar8 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x11)" ( (binary_expression "iVar8 + 0x11" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = uVar9;" (assignment_expression "uVar10 = uVar9" identifier = identifier) ;) (if_statement "if (*(byte *)(iVar8 + 0x11) == 0) {\n    bVar3 = *(byte *)(iVar5 + 0x2a) & 7;\n    uVar10 = uVar7;\n    if ((*(byte *)(iVar5 + 0x2a) & 7) == 0) {\n      bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;\n      iStack_2c = *(int *)(iVar5 + 0xc);\n      if ((iStack_2c == 0) && (bVar2 != 0)) goto LAB_001175e4;\nLAB_0011770c:\n      if ((iStack_2c != 0xfff1) || (bVar2 != 0)) goto LAB_00117721;\n      goto LAB_00117620;\n    }\n    if (bVar3 == 4) {\nLAB_001175e4:\n      iVar6 = *(int *)(iVar8 + 8);\n      if (iVar6 == 0) goto LAB_0011784a;\n      if (*(char *)(iVar6 + 0x1a25) == '\0') goto LAB_00117620;\n      if (bVar3 == 0) {\n        bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;\n        iStack_2c = *(int *)(iVar5 + 0xc);\n        goto LAB_0011770c;\n      }\n    }\n    if (bVar3 == 3) goto LAB_00117620;\nLAB_00117721:\n    uStack_38 = uVar4 & 1;\n    if (uStack_38 == 0) {\nLAB_00117760:\n      if (((uVar4 & 8) != 0) && (*(int *)(iVar5 + 0x18) != -1)) goto LAB_0011776e;\n      if ((uVar4 & 0x10) == 0) {\n        iVar6 = *(int *)(iVar8 + 8);\n        if (iVar6 == 0) {\nLAB_0011784a:\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0(unaff_EDI + 0x330cf6,0x5c,unaff_EDI + 0x352f01,iVar6);\n        }\n        if (((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) &&\n           (*(int *)(iVar5 + 0x18) != -1)) goto LAB_00117620;\n      }\n      if (bVar3 == 0) {\n        uVar10 = uVar9;\n        if (((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar5 + 0xc) != 0 || (uVar10 = 0, (*(byte *)(iVar5 + 0x2b) & 0x20) == 0)))) {\nLAB_001177d7:\n          uVar7 = FUN_00071a80(iVar5);\n          uVar10 = uVar7 ^ 1;\n        }\n      }\n      else {\n        uVar10 = uVar9;\n        if (bVar3 != 4) goto LAB_001177d7;\n      }\n      goto LAB_00117620;\n    }\n    iVar6 = *(int *)(iVar8 + 8);\n    if (iVar6 == 0) goto LAB_0011784a;\n    if (*(char *)(iVar6 + 0x1a25) == '\0') {\n      if (*(char *)(iVar6 + 0x2931) == '\0') goto LAB_00117760;\n      uVar9 = 0;\n    }\n  }\n  else {\nLAB_00117620:\n    uStack_38 = uVar4 & 1;\n    uVar9 = uVar10;\n    if (uStack_38 == 0) {\n      return uVar10;\n    }\n  }" if (parenthesized_expression "(*(byte *)(iVar8 + 0x11) == 0)" ( (binary_expression "*(byte *)(iVar8 + 0x11) == 0" (pointer_expression "*(byte *)(iVar8 + 0x11)" * (cast_expression "(byte *)(iVar8 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x11)" ( (binary_expression "iVar8 + 0x11" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    bVar3 = *(byte *)(iVar5 + 0x2a) & 7;\n    uVar10 = uVar7;\n    if ((*(byte *)(iVar5 + 0x2a) & 7) == 0) {\n      bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;\n      iStack_2c = *(int *)(iVar5 + 0xc);\n      if ((iStack_2c == 0) && (bVar2 != 0)) goto LAB_001175e4;\nLAB_0011770c:\n      if ((iStack_2c != 0xfff1) || (bVar2 != 0)) goto LAB_00117721;\n      goto LAB_00117620;\n    }\n    if (bVar3 == 4) {\nLAB_001175e4:\n      iVar6 = *(int *)(iVar8 + 8);\n      if (iVar6 == 0) goto LAB_0011784a;\n      if (*(char *)(iVar6 + 0x1a25) == '\0') goto LAB_00117620;\n      if (bVar3 == 0) {\n        bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;\n        iStack_2c = *(int *)(iVar5 + 0xc);\n        goto LAB_0011770c;\n      }\n    }\n    if (bVar3 == 3) goto LAB_00117620;\nLAB_00117721:\n    uStack_38 = uVar4 & 1;\n    if (uStack_38 == 0) {\nLAB_00117760:\n      if (((uVar4 & 8) != 0) && (*(int *)(iVar5 + 0x18) != -1)) goto LAB_0011776e;\n      if ((uVar4 & 0x10) == 0) {\n        iVar6 = *(int *)(iVar8 + 8);\n        if (iVar6 == 0) {\nLAB_0011784a:\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0(unaff_EDI + 0x330cf6,0x5c,unaff_EDI + 0x352f01,iVar6);\n        }\n        if (((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) &&\n           (*(int *)(iVar5 + 0x18) != -1)) goto LAB_00117620;\n      }\n      if (bVar3 == 0) {\n        uVar10 = uVar9;\n        if (((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar5 + 0xc) != 0 || (uVar10 = 0, (*(byte *)(iVar5 + 0x2b) & 0x20) == 0)))) {\nLAB_001177d7:\n          uVar7 = FUN_00071a80(iVar5);\n          uVar10 = uVar7 ^ 1;\n        }\n      }\n      else {\n        uVar10 = uVar9;\n        if (bVar3 != 4) goto LAB_001177d7;\n      }\n      goto LAB_00117620;\n    }\n    iVar6 = *(int *)(iVar8 + 8);\n    if (iVar6 == 0) goto LAB_0011784a;\n    if (*(char *)(iVar6 + 0x1a25) == '\0') {\n      if (*(char *)(iVar6 + 0x2931) == '\0') goto LAB_00117760;\n      uVar9 = 0;\n    }\n  }" { (expression_statement "bVar3 = *(byte *)(iVar5 + 0x2a) & 7;" (assignment_expression "bVar3 = *(byte *)(iVar5 + 0x2a) & 7" identifier = (binary_expression "*(byte *)(iVar5 + 0x2a) & 7" (pointer_expression "*(byte *)(iVar5 + 0x2a)" * (cast_expression "(byte *)(iVar5 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2a)" ( (binary_expression "iVar5 + 0x2a" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "uVar10 = uVar7;" (assignment_expression "uVar10 = uVar7" identifier = identifier) ;) (if_statement "if ((*(byte *)(iVar5 + 0x2a) & 7) == 0) {\n      bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;\n      iStack_2c = *(int *)(iVar5 + 0xc);\n      if ((iStack_2c == 0) && (bVar2 != 0)) goto LAB_001175e4;\nLAB_0011770c:\n      if ((iStack_2c != 0xfff1) || (bVar2 != 0)) goto LAB_00117721;\n      goto LAB_00117620;\n    }" if (parenthesized_expression "((*(byte *)(iVar5 + 0x2a) & 7) == 0)" ( (binary_expression "(*(byte *)(iVar5 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)(iVar5 + 0x2a) & 7)" ( (binary_expression "*(byte *)(iVar5 + 0x2a) & 7" (pointer_expression "*(byte *)(iVar5 + 0x2a)" * (cast_expression "(byte *)(iVar5 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2a)" ( (binary_expression "iVar5 + 0x2a" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;\n      iStack_2c = *(int *)(iVar5 + 0xc);\n      if ((iStack_2c == 0) && (bVar2 != 0)) goto LAB_001175e4;\nLAB_0011770c:\n      if ((iStack_2c != 0xfff1) || (bVar2 != 0)) goto LAB_00117721;\n      goto LAB_00117620;\n    }" { (expression_statement "bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;" (assignment_expression "bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1" identifier = (binary_expression "*(byte *)(iVar5 + 0x2b) >> 5 & 1" (binary_expression "*(byte *)(iVar5 + 0x2b) >> 5" (pointer_expression "*(byte *)(iVar5 + 0x2b)" * (cast_expression "(byte *)(iVar5 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2b)" ( (binary_expression "iVar5 + 0x2b" identifier + number_literal) )))) >> number_literal) & number_literal)) ;) (expression_statement "iStack_2c = *(int *)(iVar5 + 0xc);" (assignment_expression "iStack_2c = *(int *)(iVar5 + 0xc)" identifier = (pointer_expression "*(int *)(iVar5 + 0xc)" * (cast_expression "(int *)(iVar5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if ((iStack_2c == 0) && (bVar2 != 0)) goto LAB_001175e4;" if (parenthesized_expression "((iStack_2c == 0) && (bVar2 != 0))" ( (binary_expression "(iStack_2c == 0) && (bVar2 != 0)" (parenthesized_expression "(iStack_2c == 0)" ( (binary_expression "iStack_2c == 0" identifier == number_literal) )) && (parenthesized_expression "(bVar2 != 0)" ( (binary_expression "bVar2 != 0" identifier != number_literal) ))) )) (goto_statement "goto LAB_001175e4;" goto statement_identifier ;)) (labeled_statement "LAB_0011770c:\n      if ((iStack_2c != 0xfff1) || (bVar2 != 0)) goto LAB_00117721;" statement_identifier : (if_statement "if ((iStack_2c != 0xfff1) || (bVar2 != 0)) goto LAB_00117721;" if (parenthesized_expression "((iStack_2c != 0xfff1) || (bVar2 != 0))" ( (binary_expression "(iStack_2c != 0xfff1) || (bVar2 != 0)" (parenthesized_expression "(iStack_2c != 0xfff1)" ( (binary_expression "iStack_2c != 0xfff1" identifier != number_literal) )) || (parenthesized_expression "(bVar2 != 0)" ( (binary_expression "bVar2 != 0" identifier != number_literal) ))) )) (goto_statement "goto LAB_00117721;" goto statement_identifier ;))) (goto_statement "goto LAB_00117620;" goto statement_identifier ;) })) (if_statement "if (bVar3 == 4) {\nLAB_001175e4:\n      iVar6 = *(int *)(iVar8 + 8);\n      if (iVar6 == 0) goto LAB_0011784a;\n      if (*(char *)(iVar6 + 0x1a25) == '\0') goto LAB_00117620;\n      if (bVar3 == 0) {\n        bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;\n        iStack_2c = *(int *)(iVar5 + 0xc);\n        goto LAB_0011770c;\n      }\n    }" if (parenthesized_expression "(bVar3 == 4)" ( (binary_expression "bVar3 == 4" identifier == number_literal) )) (compound_statement "{\nLAB_001175e4:\n      iVar6 = *(int *)(iVar8 + 8);\n      if (iVar6 == 0) goto LAB_0011784a;\n      if (*(char *)(iVar6 + 0x1a25) == '\0') goto LAB_00117620;\n      if (bVar3 == 0) {\n        bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;\n        iStack_2c = *(int *)(iVar5 + 0xc);\n        goto LAB_0011770c;\n      }\n    }" { (labeled_statement "LAB_001175e4:\n      iVar6 = *(int *)(iVar8 + 8);" statement_identifier : (expression_statement "iVar6 = *(int *)(iVar8 + 8);" (assignment_expression "iVar6 = *(int *)(iVar8 + 8)" identifier = (pointer_expression "*(int *)(iVar8 + 8)" * (cast_expression "(int *)(iVar8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) ))))) ;)) (if_statement "if (iVar6 == 0) goto LAB_0011784a;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0011784a;" goto statement_identifier ;)) (if_statement "if (*(char *)(iVar6 + 0x1a25) == '\0') goto LAB_00117620;" if (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 ')) )) (goto_statement "goto LAB_00117620;" goto statement_identifier ;)) (if_statement "if (bVar3 == 0) {\n        bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;\n        iStack_2c = *(int *)(iVar5 + 0xc);\n        goto LAB_0011770c;\n      }" if (parenthesized_expression "(bVar3 == 0)" ( (binary_expression "bVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;\n        iStack_2c = *(int *)(iVar5 + 0xc);\n        goto LAB_0011770c;\n      }" { (expression_statement "bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;" (assignment_expression "bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1" identifier = (binary_expression "*(byte *)(iVar5 + 0x2b) >> 5 & 1" (binary_expression "*(byte *)(iVar5 + 0x2b) >> 5" (pointer_expression "*(byte *)(iVar5 + 0x2b)" * (cast_expression "(byte *)(iVar5 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2b)" ( (binary_expression "iVar5 + 0x2b" identifier + number_literal) )))) >> number_literal) & number_literal)) ;) (expression_statement "iStack_2c = *(int *)(iVar5 + 0xc);" (assignment_expression "iStack_2c = *(int *)(iVar5 + 0xc)" identifier = (pointer_expression "*(int *)(iVar5 + 0xc)" * (cast_expression "(int *)(iVar5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0011770c;" goto statement_identifier ;) })) })) (if_statement "if (bVar3 == 3) goto LAB_00117620;" if (parenthesized_expression "(bVar3 == 3)" ( (binary_expression "bVar3 == 3" identifier == number_literal) )) (goto_statement "goto LAB_00117620;" goto statement_identifier ;)) (labeled_statement "LAB_00117721:\n    uStack_38 = uVar4 & 1;" statement_identifier : (expression_statement "uStack_38 = uVar4 & 1;" (assignment_expression "uStack_38 = uVar4 & 1" identifier = (binary_expression "uVar4 & 1" identifier & number_literal)) ;)) (if_statement "if (uStack_38 == 0) {\nLAB_00117760:\n      if (((uVar4 & 8) != 0) && (*(int *)(iVar5 + 0x18) != -1)) goto LAB_0011776e;\n      if ((uVar4 & 0x10) == 0) {\n        iVar6 = *(int *)(iVar8 + 8);\n        if (iVar6 == 0) {\nLAB_0011784a:\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0(unaff_EDI + 0x330cf6,0x5c,unaff_EDI + 0x352f01,iVar6);\n        }\n        if (((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) &&\n           (*(int *)(iVar5 + 0x18) != -1)) goto LAB_00117620;\n      }\n      if (bVar3 == 0) {\n        uVar10 = uVar9;\n        if (((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar5 + 0xc) != 0 || (uVar10 = 0, (*(byte *)(iVar5 + 0x2b) & 0x20) == 0)))) {\nLAB_001177d7:\n          uVar7 = FUN_00071a80(iVar5);\n          uVar10 = uVar7 ^ 1;\n        }\n      }\n      else {\n        uVar10 = uVar9;\n        if (bVar3 != 4) goto LAB_001177d7;\n      }\n      goto LAB_00117620;\n    }" if (parenthesized_expression "(uStack_38 == 0)" ( (binary_expression "uStack_38 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00117760:\n      if (((uVar4 & 8) != 0) && (*(int *)(iVar5 + 0x18) != -1)) goto LAB_0011776e;\n      if ((uVar4 & 0x10) == 0) {\n        iVar6 = *(int *)(iVar8 + 8);\n        if (iVar6 == 0) {\nLAB_0011784a:\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0(unaff_EDI + 0x330cf6,0x5c,unaff_EDI + 0x352f01,iVar6);\n        }\n        if (((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) &&\n           (*(int *)(iVar5 + 0x18) != -1)) goto LAB_00117620;\n      }\n      if (bVar3 == 0) {\n        uVar10 = uVar9;\n        if (((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar5 + 0xc) != 0 || (uVar10 = 0, (*(byte *)(iVar5 + 0x2b) & 0x20) == 0)))) {\nLAB_001177d7:\n          uVar7 = FUN_00071a80(iVar5);\n          uVar10 = uVar7 ^ 1;\n        }\n      }\n      else {\n        uVar10 = uVar9;\n        if (bVar3 != 4) goto LAB_001177d7;\n      }\n      goto LAB_00117620;\n    }" { (labeled_statement "LAB_00117760:\n      if (((uVar4 & 8) != 0) && (*(int *)(iVar5 + 0x18) != -1)) goto LAB_0011776e;" statement_identifier : (if_statement "if (((uVar4 & 8) != 0) && (*(int *)(iVar5 + 0x18) != -1)) goto LAB_0011776e;" if (parenthesized_expression "(((uVar4 & 8) != 0) && (*(int *)(iVar5 + 0x18) != -1))" ( (binary_expression "((uVar4 & 8) != 0) && (*(int *)(iVar5 + 0x18) != -1)" (parenthesized_expression "((uVar4 & 8) != 0)" ( (binary_expression "(uVar4 & 8) != 0" (parenthesized_expression "(uVar4 & 8)" ( (binary_expression "uVar4 & 8" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(*(int *)(iVar5 + 0x18) != -1)" ( (binary_expression "*(int *)(iVar5 + 0x18) != -1" (pointer_expression "*(int *)(iVar5 + 0x18)" * (cast_expression "(int *)(iVar5 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x18)" ( (binary_expression "iVar5 + 0x18" identifier + number_literal) )))) != number_literal) ))) )) (goto_statement "goto LAB_0011776e;" goto statement_identifier ;))) (if_statement "if ((uVar4 & 0x10) == 0) {\n        iVar6 = *(int *)(iVar8 + 8);\n        if (iVar6 == 0) {\nLAB_0011784a:\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0(unaff_EDI + 0x330cf6,0x5c,unaff_EDI + 0x352f01,iVar6);\n        }\n        if (((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) &&\n           (*(int *)(iVar5 + 0x18) != -1)) goto LAB_00117620;\n      }" if (parenthesized_expression "((uVar4 & 0x10) == 0)" ( (binary_expression "(uVar4 & 0x10) == 0" (parenthesized_expression "(uVar4 & 0x10)" ( (binary_expression "uVar4 & 0x10" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        iVar6 = *(int *)(iVar8 + 8);\n        if (iVar6 == 0) {\nLAB_0011784a:\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0(unaff_EDI + 0x330cf6,0x5c,unaff_EDI + 0x352f01,iVar6);\n        }\n        if (((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) &&\n           (*(int *)(iVar5 + 0x18) != -1)) goto LAB_00117620;\n      }" { (expression_statement "iVar6 = *(int *)(iVar8 + 8);" (assignment_expression "iVar6 = *(int *)(iVar8 + 8)" identifier = (pointer_expression "*(int *)(iVar8 + 8)" * (cast_expression "(int *)(iVar8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar6 == 0) {\nLAB_0011784a:\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0(unaff_EDI + 0x330cf6,0x5c,unaff_EDI + 0x352f01,iVar6);\n        }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0011784a:\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0(unaff_EDI + 0x330cf6,0x5c,unaff_EDI + 0x352f01,iVar6);\n        }" { (labeled_statement "LAB_0011784a:\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0(unaff_EDI + 0x330cf6,0x5c,unaff_EDI + 0x352f01,iVar6);" statement_identifier : comment (expression_statement "FUN_002446e0(unaff_EDI + 0x330cf6,0x5c,unaff_EDI + 0x352f01,iVar6);" (call_expression "FUN_002446e0(unaff_EDI + 0x330cf6,0x5c,unaff_EDI + 0x352f01,iVar6)" identifier (argument_list "(unaff_EDI + 0x330cf6,0x5c,unaff_EDI + 0x352f01,iVar6)" ( (binary_expression "unaff_EDI + 0x330cf6" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x352f01" identifier + number_literal) , identifier ))) ;)) })) (if_statement "if (((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) &&\n           (*(int *)(iVar5 + 0x18) != -1)) goto LAB_00117620;" if (parenthesized_expression "(((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) &&\n           (*(int *)(iVar5 + 0x18) != -1))" ( (binary_expression "((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) &&\n           (*(int *)(iVar5 + 0x18) != -1)" (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 "(*(int *)(iVar5 + 0x18) != -1)" ( (binary_expression "*(int *)(iVar5 + 0x18) != -1" (pointer_expression "*(int *)(iVar5 + 0x18)" * (cast_expression "(int *)(iVar5 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x18)" ( (binary_expression "iVar5 + 0x18" identifier + number_literal) )))) != number_literal) ))) )) (goto_statement "goto LAB_00117620;" goto statement_identifier ;)) })) (if_statement "if (bVar3 == 0) {\n        uVar10 = uVar9;\n        if (((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar5 + 0xc) != 0 || (uVar10 = 0, (*(byte *)(iVar5 + 0x2b) & 0x20) == 0)))) {\nLAB_001177d7:\n          uVar7 = FUN_00071a80(iVar5);\n          uVar10 = uVar7 ^ 1;\n        }\n      }\n      else {\n        uVar10 = uVar9;\n        if (bVar3 != 4) goto LAB_001177d7;\n      }" if (parenthesized_expression "(bVar3 == 0)" ( (binary_expression "bVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar10 = uVar9;\n        if (((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar5 + 0xc) != 0 || (uVar10 = 0, (*(byte *)(iVar5 + 0x2b) & 0x20) == 0)))) {\nLAB_001177d7:\n          uVar7 = FUN_00071a80(iVar5);\n          uVar10 = uVar7 ^ 1;\n        }\n      }" { (expression_statement "uVar10 = uVar9;" (assignment_expression "uVar10 = uVar9" identifier = identifier) ;) (if_statement "if (((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar5 + 0xc) != 0 || (uVar10 = 0, (*(byte *)(iVar5 + 0x2b) & 0x20) == 0)))) {\nLAB_001177d7:\n          uVar7 = FUN_00071a80(iVar5);\n          uVar10 = uVar7 ^ 1;\n        }" if (parenthesized_expression "(((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar5 + 0xc) != 0 || (uVar10 = 0, (*(byte *)(iVar5 + 0x2b) & 0x20) == 0))))" ( (binary_expression "((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar5 + 0xc) != 0 || (uVar10 = 0, (*(byte *)(iVar5 + 0x2b) & 0x20) == 0)))" (parenthesized_expression "((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) == 0)" ( (binary_expression "(*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) == 0" (parenthesized_expression "(*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1)" ( (binary_expression "*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1" (pointer_expression "*(byte *)(*(int *)(iVar5 + 8) + 0x2c)" * (cast_expression "(byte *)(*(int *)(iVar5 + 8) + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 8) + 0x2c)" ( (binary_expression "*(int *)(iVar5 + 8) + 0x2c" (pointer_expression "*(int *)(iVar5 + 8)" * (cast_expression "(int *)(iVar5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "((*(int *)(iVar5 + 0xc) != 0 || (uVar10 = 0, (*(byte *)(iVar5 + 0x2b) & 0x20) == 0)))" ( (parenthesized_expression "(*(int *)(iVar5 + 0xc) != 0 || (uVar10 = 0, (*(byte *)(iVar5 + 0x2b) & 0x20) == 0))" ( (binary_expression "*(int *)(iVar5 + 0xc) != 0 || (uVar10 = 0, (*(byte *)(iVar5 + 0x2b) & 0x20) == 0)" (binary_expression "*(int *)(iVar5 + 0xc) != 0" (pointer_expression "*(int *)(iVar5 + 0xc)" * (cast_expression "(int *)(iVar5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) != number_literal) || (parenthesized_expression "(uVar10 = 0, (*(byte *)(iVar5 + 0x2b) & 0x20) == 0)" ( (comma_expression "uVar10 = 0, (*(byte *)(iVar5 + 0x2b) & 0x20) == 0" (assignment_expression "uVar10 = 0" identifier = number_literal) , (binary_expression "(*(byte *)(iVar5 + 0x2b) & 0x20) == 0" (parenthesized_expression "(*(byte *)(iVar5 + 0x2b) & 0x20)" ( (binary_expression "*(byte *)(iVar5 + 0x2b) & 0x20" (pointer_expression "*(byte *)(iVar5 + 0x2b)" * (cast_expression "(byte *)(iVar5 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2b)" ( (binary_expression "iVar5 + 0x2b" identifier + number_literal) )))) & number_literal) )) == number_literal)) ))) )) ))) )) (compound_statement "{\nLAB_001177d7:\n          uVar7 = FUN_00071a80(iVar5);\n          uVar10 = uVar7 ^ 1;\n        }" { (labeled_statement "LAB_001177d7:\n          uVar7 = FUN_00071a80(iVar5);" statement_identifier : (expression_statement "uVar7 = FUN_00071a80(iVar5);" (assignment_expression "uVar7 = FUN_00071a80(iVar5)" identifier = (call_expression "FUN_00071a80(iVar5)" identifier (argument_list "(iVar5)" ( identifier )))) ;)) (expression_statement "uVar10 = uVar7 ^ 1;" (assignment_expression "uVar10 = uVar7 ^ 1" identifier = (binary_expression "uVar7 ^ 1" identifier ^ number_literal)) ;) })) }) (else_clause "else {\n        uVar10 = uVar9;\n        if (bVar3 != 4) goto LAB_001177d7;\n      }" else (compound_statement "{\n        uVar10 = uVar9;\n        if (bVar3 != 4) goto LAB_001177d7;\n      }" { (expression_statement "uVar10 = uVar9;" (assignment_expression "uVar10 = uVar9" identifier = identifier) ;) (if_statement "if (bVar3 != 4) goto LAB_001177d7;" if (parenthesized_expression "(bVar3 != 4)" ( (binary_expression "bVar3 != 4" identifier != number_literal) )) (goto_statement "goto LAB_001177d7;" goto statement_identifier ;)) }))) (goto_statement "goto LAB_00117620;" goto statement_identifier ;) })) (expression_statement "iVar6 = *(int *)(iVar8 + 8);" (assignment_expression "iVar6 = *(int *)(iVar8 + 8)" identifier = (pointer_expression "*(int *)(iVar8 + 8)" * (cast_expression "(int *)(iVar8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar6 == 0) goto LAB_0011784a;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0011784a;" goto statement_identifier ;)) (if_statement "if (*(char *)(iVar6 + 0x1a25) == '\0') {\n      if (*(char *)(iVar6 + 0x2931) == '\0') goto LAB_00117760;\n      uVar9 = 0;\n    }" if (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 ')) )) (compound_statement "{\n      if (*(char *)(iVar6 + 0x2931) == '\0') goto LAB_00117760;\n      uVar9 = 0;\n    }" { (if_statement "if (*(char *)(iVar6 + 0x2931) == '\0') goto LAB_00117760;" if (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 ')) )) (goto_statement "goto LAB_00117760;" goto statement_identifier ;)) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) })) }) (else_clause "else {\nLAB_00117620:\n    uStack_38 = uVar4 & 1;\n    uVar9 = uVar10;\n    if (uStack_38 == 0) {\n      return uVar10;\n    }\n  }" else (compound_statement "{\nLAB_00117620:\n    uStack_38 = uVar4 & 1;\n    uVar9 = uVar10;\n    if (uStack_38 == 0) {\n      return uVar10;\n    }\n  }" { (labeled_statement "LAB_00117620:\n    uStack_38 = uVar4 & 1;" statement_identifier : (expression_statement "uStack_38 = uVar4 & 1;" (assignment_expression "uStack_38 = uVar4 & 1" identifier = (binary_expression "uVar4 & 1" identifier & number_literal)) ;)) (expression_statement "uVar9 = uVar10;" (assignment_expression "uVar9 = uVar10" identifier = identifier) ;) (if_statement "if (uStack_38 == 0) {\n      return uVar10;\n    }" if (parenthesized_expression "(uStack_38 == 0)" ( (binary_expression "uStack_38 == 0" identifier == number_literal) )) (compound_statement "{\n      return uVar10;\n    }" { (return_statement "return uVar10;" return identifier ;) })) }))) (if_statement "if (((uVar4 & 8) == 0) || (*(int *)(iVar5 + 0x18) == -1)) {\n    if ((*(byte *)(iVar5 + 0x2a) & 7) == 0) {\n      if ((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) != 0) {\n        return uVar9;\n      }\n      if ((*(int *)(iVar5 + 0xc) == 0) && ((*(byte *)(iVar5 + 0x2b) & 0x20) != 0)) {\n        return uVar9;\n      }\n    }\n    else if ((*(byte *)(iVar5 + 0x2a) & 7) == 4) {\n      return uVar9;\n    }\n    uVar4 = FUN_00071a80(iVar5);\n    return uVar9 | uVar4 ^ 1;\n  }" if (parenthesized_expression "(((uVar4 & 8) == 0) || (*(int *)(iVar5 + 0x18) == -1))" ( (binary_expression "((uVar4 & 8) == 0) || (*(int *)(iVar5 + 0x18) == -1)" (parenthesized_expression "((uVar4 & 8) == 0)" ( (binary_expression "(uVar4 & 8) == 0" (parenthesized_expression "(uVar4 & 8)" ( (binary_expression "uVar4 & 8" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(*(int *)(iVar5 + 0x18) == -1)" ( (binary_expression "*(int *)(iVar5 + 0x18) == -1" (pointer_expression "*(int *)(iVar5 + 0x18)" * (cast_expression "(int *)(iVar5 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x18)" ( (binary_expression "iVar5 + 0x18" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n    if ((*(byte *)(iVar5 + 0x2a) & 7) == 0) {\n      if ((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) != 0) {\n        return uVar9;\n      }\n      if ((*(int *)(iVar5 + 0xc) == 0) && ((*(byte *)(iVar5 + 0x2b) & 0x20) != 0)) {\n        return uVar9;\n      }\n    }\n    else if ((*(byte *)(iVar5 + 0x2a) & 7) == 4) {\n      return uVar9;\n    }\n    uVar4 = FUN_00071a80(iVar5);\n    return uVar9 | uVar4 ^ 1;\n  }" { (if_statement "if ((*(byte *)(iVar5 + 0x2a) & 7) == 0) {\n      if ((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) != 0) {\n        return uVar9;\n      }\n      if ((*(int *)(iVar5 + 0xc) == 0) && ((*(byte *)(iVar5 + 0x2b) & 0x20) != 0)) {\n        return uVar9;\n      }\n    }\n    else if ((*(byte *)(iVar5 + 0x2a) & 7) == 4) {\n      return uVar9;\n    }" if (parenthesized_expression "((*(byte *)(iVar5 + 0x2a) & 7) == 0)" ( (binary_expression "(*(byte *)(iVar5 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)(iVar5 + 0x2a) & 7)" ( (binary_expression "*(byte *)(iVar5 + 0x2a) & 7" (pointer_expression "*(byte *)(iVar5 + 0x2a)" * (cast_expression "(byte *)(iVar5 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2a)" ( (binary_expression "iVar5 + 0x2a" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      if ((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) != 0) {\n        return uVar9;\n      }\n      if ((*(int *)(iVar5 + 0xc) == 0) && ((*(byte *)(iVar5 + 0x2b) & 0x20) != 0)) {\n        return uVar9;\n      }\n    }" { (if_statement "if ((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) != 0) {\n        return uVar9;\n      }" if (parenthesized_expression "((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) != 0)" ( (binary_expression "(*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) != 0" (parenthesized_expression "(*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1)" ( (binary_expression "*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1" (pointer_expression "*(byte *)(*(int *)(iVar5 + 8) + 0x2c)" * (cast_expression "(byte *)(*(int *)(iVar5 + 8) + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 8) + 0x2c)" ( (binary_expression "*(int *)(iVar5 + 8) + 0x2c" (pointer_expression "*(int *)(iVar5 + 8)" * (cast_expression "(int *)(iVar5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n        return uVar9;\n      }" { (return_statement "return uVar9;" return identifier ;) })) (if_statement "if ((*(int *)(iVar5 + 0xc) == 0) && ((*(byte *)(iVar5 + 0x2b) & 0x20) != 0)) {\n        return uVar9;\n      }" if (parenthesized_expression "((*(int *)(iVar5 + 0xc) == 0) && ((*(byte *)(iVar5 + 0x2b) & 0x20) != 0))" ( (binary_expression "(*(int *)(iVar5 + 0xc) == 0) && ((*(byte *)(iVar5 + 0x2b) & 0x20) != 0)" (parenthesized_expression "(*(int *)(iVar5 + 0xc) == 0)" ( (binary_expression "*(int *)(iVar5 + 0xc) == 0" (pointer_expression "*(int *)(iVar5 + 0xc)" * (cast_expression "(int *)(iVar5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "((*(byte *)(iVar5 + 0x2b) & 0x20) != 0)" ( (binary_expression "(*(byte *)(iVar5 + 0x2b) & 0x20) != 0" (parenthesized_expression "(*(byte *)(iVar5 + 0x2b) & 0x20)" ( (binary_expression "*(byte *)(iVar5 + 0x2b) & 0x20" (pointer_expression "*(byte *)(iVar5 + 0x2b)" * (cast_expression "(byte *)(iVar5 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2b)" ( (binary_expression "iVar5 + 0x2b" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n        return uVar9;\n      }" { (return_statement "return uVar9;" return identifier ;) })) }) (else_clause "else if ((*(byte *)(iVar5 + 0x2a) & 7) == 4) {\n      return uVar9;\n    }" else (if_statement "if ((*(byte *)(iVar5 + 0x2a) & 7) == 4) {\n      return uVar9;\n    }" if (parenthesized_expression "((*(byte *)(iVar5 + 0x2a) & 7) == 4)" ( (binary_expression "(*(byte *)(iVar5 + 0x2a) & 7) == 4" (parenthesized_expression "(*(byte *)(iVar5 + 0x2a) & 7)" ( (binary_expression "*(byte *)(iVar5 + 0x2a) & 7" (pointer_expression "*(byte *)(iVar5 + 0x2a)" * (cast_expression "(byte *)(iVar5 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2a)" ( (binary_expression "iVar5 + 0x2a" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      return uVar9;\n    }" { (return_statement "return uVar9;" return identifier ;) })))) (expression_statement "uVar4 = FUN_00071a80(iVar5);" (assignment_expression "uVar4 = FUN_00071a80(iVar5)" identifier = (call_expression "FUN_00071a80(iVar5)" identifier (argument_list "(iVar5)" ( identifier )))) ;) (return_statement "return uVar9 | uVar4 ^ 1;" return (binary_expression "uVar9 | uVar4 ^ 1" identifier | (binary_expression "uVar4 ^ 1" identifier ^ number_literal)) ;) })) (labeled_statement "LAB_0011776e:\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: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* WARNING: Enum "<anon>": Some values do not have unique names */\n/* DWARF original prototype: uint64_t do_dynsym_value(Target_arm<false> * this, Symbol * gsym) */\n\nuint64_t __thiscall\nanon_unknown.dwarf_91258a::Target_arm<false>::do_dynsym_value(Target_arm<false> *this,Symbol *gsym)\n\n{\n}\n\n" comment comment comment comment (function_definition "uint64_t __thiscall\nanon_unknown.dwarf_91258a::Target_arm<false>::do_dynsym_value(Target_arm<false> *this,Symbol *gsym)\n\n{\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "anon_unknown.dwarf_91258a::Target_arm<false>::" identifier . identifier : : identifier < false > : :) (function_declarator "do_dynsym_value(Target_arm<false> *this,Symbol *gsym)" identifier (parameter_list "(Target_arm<false> *this,Symbol *gsym)" ( (parameter_declaration "Target_arm<false> *this" type_identifier (ERROR "<false>" < false >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "Symbol *gsym" type_identifier (pointer_declarator "*gsym" * identifier)) ))) (compound_statement "{\n}" { })))
(translation_unit "uint FUN_00117510(int param_1,int param_2)\n\n{\n  byte bVar1;\n  byte bVar2;\n  byte bVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  uint extraout_ECX;\n  uint uVar7;\n  int iVar8;\n  uint uVar9;\n  uint uVar10;\n  int unaff_EDI;\n  undefined8 uVar11;\n  uint uStack_38;\n  int iStack_2c;\n  \n  if ((((*(byte *)(param_2 + 0x2a) & 7) != 0) ||\n      ((*(byte *)(*(int *)(param_2 + 8) + 0x2c) & 1) == 0)) || (*(int *)(param_2 + 0x18) == -1)) {\n                    \n    FUN_002446e0("../../gold/arm.cc",0x29ef,"do_dynsym_value");\n  }\n  if (*(int *)(param_1 + 0x18) != 0) {\n    uVar4 = FUN_00117400();\n    return uVar4;\n  }\n  FUN_0010c970();\n  uVar11 = FUN_00074f0a();\n  iVar8 = (int)((ulonglong)uVar11 >> 0x20);\n  iVar5 = (int)uVar11;\n  if ((bRam0011756a & 2) == 0) {\n    return 1;\n  }\n  uVar4 = 0;\n  if (iVar8 - 2U < 0x6b) {\n    uVar4 = (uint)(char)(&UNK_00351787)[iVar8 + unaff_EDI];\n    iVar8 = *(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4);\n  }\n  else {\n    iVar8 = *(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4);\n  }\n  if (iVar5 == 0) {\n    iVar5 = *(int *)(iVar8 + 8);\n    if (iVar5 != 0) {\n      if ((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar4 & 1 | extraout_ECX;\n    }\nLAB_00117867:\n                    \n    FUN_0010cb20();\n  }\n  bVar1 = *(byte *)(iVar8 + 0x10);\n  uVar7 = (uint)bVar1;\n  if (bVar1 == 0) {\n    FUN_0010caf0();\n    goto LAB_00117867;\n  }\n  uVar9 = (uint)*(byte *)(iVar8 + 0x11);\n  uVar10 = uVar9;\n  if (*(byte *)(iVar8 + 0x11) == 0) {\n    bVar3 = *(byte *)(iVar5 + 0x2a) & 7;\n    uVar10 = uVar7;\n    if ((*(byte *)(iVar5 + 0x2a) & 7) == 0) {\n      bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;\n      iStack_2c = *(int *)(iVar5 + 0xc);\n      if ((iStack_2c == 0) && (bVar2 != 0)) goto LAB_001175e4;\nLAB_0011770c:\n      if ((iStack_2c != 0xfff1) || (bVar2 != 0)) goto LAB_00117721;\n      goto LAB_00117620;\n    }\n    if (bVar3 == 4) {\nLAB_001175e4:\n      iVar6 = *(int *)(iVar8 + 8);\n      if (iVar6 == 0) goto LAB_0011784a;\n      if (*(char *)(iVar6 + 0x1a25) == '\0') goto LAB_00117620;\n      if (bVar3 == 0) {\n        bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;\n        iStack_2c = *(int *)(iVar5 + 0xc);\n        goto LAB_0011770c;\n      }\n    }\n    if (bVar3 == 3) goto LAB_00117620;\nLAB_00117721:\n    uStack_38 = uVar4 & 1;\n    if (uStack_38 == 0) {\nLAB_00117760:\n      if (((uVar4 & 8) != 0) && (*(int *)(iVar5 + 0x18) != -1)) goto LAB_0011776e;\n      if ((uVar4 & 0x10) == 0) {\n        iVar6 = *(int *)(iVar8 + 8);\n        if (iVar6 == 0) {\nLAB_0011784a:\n                    \n          FUN_002446e0(unaff_EDI + 0x330cf6,0x5c,unaff_EDI + 0x352f01,iVar6);\n        }\n        if (((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) &&\n           (*(int *)(iVar5 + 0x18) != -1)) goto LAB_00117620;\n      }\n      if (bVar3 == 0) {\n        uVar10 = uVar9;\n        if (((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar5 + 0xc) != 0 || (uVar10 = 0, (*(byte *)(iVar5 + 0x2b) & 0x20) == 0)))) {\nLAB_001177d7:\n          uVar7 = FUN_00071a80(iVar5);\n          uVar10 = uVar7 ^ 1;\n        }\n      }\n      else {\n        uVar10 = uVar9;\n        if (bVar3 != 4) goto LAB_001177d7;\n      }\n      goto LAB_00117620;\n    }\n    iVar6 = *(int *)(iVar8 + 8);\n    if (iVar6 == 0) goto LAB_0011784a;\n    if (*(char *)(iVar6 + 0x1a25) == '\0') {\n      if (*(char *)(iVar6 + 0x2931) == '\0') goto LAB_00117760;\n      uVar9 = 0;\n    }\n  }\n  else {\nLAB_00117620:\n    uStack_38 = uVar4 & 1;\n    uVar9 = uVar10;\n    if (uStack_38 == 0) {\n      return uVar10;\n    }\n  }\n  if (((uVar4 & 8) == 0) || (*(int *)(iVar5 + 0x18) == -1)) {\n    if ((*(byte *)(iVar5 + 0x2a) & 7) == 0) {\n      if ((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) != 0) {\n        return uVar9;\n      }\n      if ((*(int *)(iVar5 + 0xc) == 0) && ((*(byte *)(iVar5 + 0x2b) & 0x20) != 0)) {\n        return uVar9;\n      }\n    }\n    else if ((*(byte *)(iVar5 + 0x2a) & 7) == 4) {\n      return uVar9;\n    }\n    uVar4 = FUN_00071a80(iVar5);\n    return uVar9 | uVar4 ^ 1;\n  }\nLAB_0011776e:\n  return (uint)bVar1;\n}\n\n" (function_definition "uint FUN_00117510(int param_1,int param_2)\n\n{\n  byte bVar1;\n  byte bVar2;\n  byte bVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  uint extraout_ECX;\n  uint uVar7;\n  int iVar8;\n  uint uVar9;\n  uint uVar10;\n  int unaff_EDI;\n  undefined8 uVar11;\n  uint uStack_38;\n  int iStack_2c;\n  \n  if ((((*(byte *)(param_2 + 0x2a) & 7) != 0) ||\n      ((*(byte *)(*(int *)(param_2 + 8) + 0x2c) & 1) == 0)) || (*(int *)(param_2 + 0x18) == -1)) {\n                    \n    FUN_002446e0("../../gold/arm.cc",0x29ef,"do_dynsym_value");\n  }\n  if (*(int *)(param_1 + 0x18) != 0) {\n    uVar4 = FUN_00117400();\n    return uVar4;\n  }\n  FUN_0010c970();\n  uVar11 = FUN_00074f0a();\n  iVar8 = (int)((ulonglong)uVar11 >> 0x20);\n  iVar5 = (int)uVar11;\n  if ((bRam0011756a & 2) == 0) {\n    return 1;\n  }\n  uVar4 = 0;\n  if (iVar8 - 2U < 0x6b) {\n    uVar4 = (uint)(char)(&UNK_00351787)[iVar8 + unaff_EDI];\n    iVar8 = *(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4);\n  }\n  else {\n    iVar8 = *(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4);\n  }\n  if (iVar5 == 0) {\n    iVar5 = *(int *)(iVar8 + 8);\n    if (iVar5 != 0) {\n      if ((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar4 & 1 | extraout_ECX;\n    }\nLAB_00117867:\n                    \n    FUN_0010cb20();\n  }\n  bVar1 = *(byte *)(iVar8 + 0x10);\n  uVar7 = (uint)bVar1;\n  if (bVar1 == 0) {\n    FUN_0010caf0();\n    goto LAB_00117867;\n  }\n  uVar9 = (uint)*(byte *)(iVar8 + 0x11);\n  uVar10 = uVar9;\n  if (*(byte *)(iVar8 + 0x11) == 0) {\n    bVar3 = *(byte *)(iVar5 + 0x2a) & 7;\n    uVar10 = uVar7;\n    if ((*(byte *)(iVar5 + 0x2a) & 7) == 0) {\n      bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;\n      iStack_2c = *(int *)(iVar5 + 0xc);\n      if ((iStack_2c == 0) && (bVar2 != 0)) goto LAB_001175e4;\nLAB_0011770c:\n      if ((iStack_2c != 0xfff1) || (bVar2 != 0)) goto LAB_00117721;\n      goto LAB_00117620;\n    }\n    if (bVar3 == 4) {\nLAB_001175e4:\n      iVar6 = *(int *)(iVar8 + 8);\n      if (iVar6 == 0) goto LAB_0011784a;\n      if (*(char *)(iVar6 + 0x1a25) == '\0') goto LAB_00117620;\n      if (bVar3 == 0) {\n        bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;\n        iStack_2c = *(int *)(iVar5 + 0xc);\n        goto LAB_0011770c;\n      }\n    }\n    if (bVar3 == 3) goto LAB_00117620;\nLAB_00117721:\n    uStack_38 = uVar4 & 1;\n    if (uStack_38 == 0) {\nLAB_00117760:\n      if (((uVar4 & 8) != 0) && (*(int *)(iVar5 + 0x18) != -1)) goto LAB_0011776e;\n      if ((uVar4 & 0x10) == 0) {\n        iVar6 = *(int *)(iVar8 + 8);\n        if (iVar6 == 0) {\nLAB_0011784a:\n                    \n          FUN_002446e0(unaff_EDI + 0x330cf6,0x5c,unaff_EDI + 0x352f01,iVar6);\n        }\n        if (((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) &&\n           (*(int *)(iVar5 + 0x18) != -1)) goto LAB_00117620;\n      }\n      if (bVar3 == 0) {\n        uVar10 = uVar9;\n        if (((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar5 + 0xc) != 0 || (uVar10 = 0, (*(byte *)(iVar5 + 0x2b) & 0x20) == 0)))) {\nLAB_001177d7:\n          uVar7 = FUN_00071a80(iVar5);\n          uVar10 = uVar7 ^ 1;\n        }\n      }\n      else {\n        uVar10 = uVar9;\n        if (bVar3 != 4) goto LAB_001177d7;\n      }\n      goto LAB_00117620;\n    }\n    iVar6 = *(int *)(iVar8 + 8);\n    if (iVar6 == 0) goto LAB_0011784a;\n    if (*(char *)(iVar6 + 0x1a25) == '\0') {\n      if (*(char *)(iVar6 + 0x2931) == '\0') goto LAB_00117760;\n      uVar9 = 0;\n    }\n  }\n  else {\nLAB_00117620:\n    uStack_38 = uVar4 & 1;\n    uVar9 = uVar10;\n    if (uStack_38 == 0) {\n      return uVar10;\n    }\n  }\n  if (((uVar4 & 8) == 0) || (*(int *)(iVar5 + 0x18) == -1)) {\n    if ((*(byte *)(iVar5 + 0x2a) & 7) == 0) {\n      if ((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) != 0) {\n        return uVar9;\n      }\n      if ((*(int *)(iVar5 + 0xc) == 0) && ((*(byte *)(iVar5 + 0x2b) & 0x20) != 0)) {\n        return uVar9;\n      }\n    }\n    else if ((*(byte *)(iVar5 + 0x2a) & 7) == 4) {\n      return uVar9;\n    }\n    uVar4 = FUN_00071a80(iVar5);\n    return uVar9 | uVar4 ^ 1;\n  }\nLAB_0011776e:\n  return (uint)bVar1;\n}" type_identifier (function_declarator "FUN_00117510(int param_1,int param_2)" identifier (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  byte bVar2;\n  byte bVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  uint extraout_ECX;\n  uint uVar7;\n  int iVar8;\n  uint uVar9;\n  uint uVar10;\n  int unaff_EDI;\n  undefined8 uVar11;\n  uint uStack_38;\n  int iStack_2c;\n  \n  if ((((*(byte *)(param_2 + 0x2a) & 7) != 0) ||\n      ((*(byte *)(*(int *)(param_2 + 8) + 0x2c) & 1) == 0)) || (*(int *)(param_2 + 0x18) == -1)) {\n                    \n    FUN_002446e0("../../gold/arm.cc",0x29ef,"do_dynsym_value");\n  }\n  if (*(int *)(param_1 + 0x18) != 0) {\n    uVar4 = FUN_00117400();\n    return uVar4;\n  }\n  FUN_0010c970();\n  uVar11 = FUN_00074f0a();\n  iVar8 = (int)((ulonglong)uVar11 >> 0x20);\n  iVar5 = (int)uVar11;\n  if ((bRam0011756a & 2) == 0) {\n    return 1;\n  }\n  uVar4 = 0;\n  if (iVar8 - 2U < 0x6b) {\n    uVar4 = (uint)(char)(&UNK_00351787)[iVar8 + unaff_EDI];\n    iVar8 = *(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4);\n  }\n  else {\n    iVar8 = *(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4);\n  }\n  if (iVar5 == 0) {\n    iVar5 = *(int *)(iVar8 + 8);\n    if (iVar5 != 0) {\n      if ((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar4 & 1 | extraout_ECX;\n    }\nLAB_00117867:\n                    \n    FUN_0010cb20();\n  }\n  bVar1 = *(byte *)(iVar8 + 0x10);\n  uVar7 = (uint)bVar1;\n  if (bVar1 == 0) {\n    FUN_0010caf0();\n    goto LAB_00117867;\n  }\n  uVar9 = (uint)*(byte *)(iVar8 + 0x11);\n  uVar10 = uVar9;\n  if (*(byte *)(iVar8 + 0x11) == 0) {\n    bVar3 = *(byte *)(iVar5 + 0x2a) & 7;\n    uVar10 = uVar7;\n    if ((*(byte *)(iVar5 + 0x2a) & 7) == 0) {\n      bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;\n      iStack_2c = *(int *)(iVar5 + 0xc);\n      if ((iStack_2c == 0) && (bVar2 != 0)) goto LAB_001175e4;\nLAB_0011770c:\n      if ((iStack_2c != 0xfff1) || (bVar2 != 0)) goto LAB_00117721;\n      goto LAB_00117620;\n    }\n    if (bVar3 == 4) {\nLAB_001175e4:\n      iVar6 = *(int *)(iVar8 + 8);\n      if (iVar6 == 0) goto LAB_0011784a;\n      if (*(char *)(iVar6 + 0x1a25) == '\0') goto LAB_00117620;\n      if (bVar3 == 0) {\n        bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;\n        iStack_2c = *(int *)(iVar5 + 0xc);\n        goto LAB_0011770c;\n      }\n    }\n    if (bVar3 == 3) goto LAB_00117620;\nLAB_00117721:\n    uStack_38 = uVar4 & 1;\n    if (uStack_38 == 0) {\nLAB_00117760:\n      if (((uVar4 & 8) != 0) && (*(int *)(iVar5 + 0x18) != -1)) goto LAB_0011776e;\n      if ((uVar4 & 0x10) == 0) {\n        iVar6 = *(int *)(iVar8 + 8);\n        if (iVar6 == 0) {\nLAB_0011784a:\n                    \n          FUN_002446e0(unaff_EDI + 0x330cf6,0x5c,unaff_EDI + 0x352f01,iVar6);\n        }\n        if (((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) &&\n           (*(int *)(iVar5 + 0x18) != -1)) goto LAB_00117620;\n      }\n      if (bVar3 == 0) {\n        uVar10 = uVar9;\n        if (((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar5 + 0xc) != 0 || (uVar10 = 0, (*(byte *)(iVar5 + 0x2b) & 0x20) == 0)))) {\nLAB_001177d7:\n          uVar7 = FUN_00071a80(iVar5);\n          uVar10 = uVar7 ^ 1;\n        }\n      }\n      else {\n        uVar10 = uVar9;\n        if (bVar3 != 4) goto LAB_001177d7;\n      }\n      goto LAB_00117620;\n    }\n    iVar6 = *(int *)(iVar8 + 8);\n    if (iVar6 == 0) goto LAB_0011784a;\n    if (*(char *)(iVar6 + 0x1a25) == '\0') {\n      if (*(char *)(iVar6 + 0x2931) == '\0') goto LAB_00117760;\n      uVar9 = 0;\n    }\n  }\n  else {\nLAB_00117620:\n    uStack_38 = uVar4 & 1;\n    uVar9 = uVar10;\n    if (uStack_38 == 0) {\n      return uVar10;\n    }\n  }\n  if (((uVar4 & 8) == 0) || (*(int *)(iVar5 + 0x18) == -1)) {\n    if ((*(byte *)(iVar5 + 0x2a) & 7) == 0) {\n      if ((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) != 0) {\n        return uVar9;\n      }\n      if ((*(int *)(iVar5 + 0xc) == 0) && ((*(byte *)(iVar5 + 0x2b) & 0x20) != 0)) {\n        return uVar9;\n      }\n    }\n    else if ((*(byte *)(iVar5 + 0x2a) & 7) == 4) {\n      return uVar9;\n    }\n    uVar4 = FUN_00071a80(iVar5);\n    return uVar9 | uVar4 ^ 1;\n  }\nLAB_0011776e:\n  return (uint)bVar1;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "uint extraout_ECX;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type 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 uStack_38;" type_identifier identifier ;) (declaration "int iStack_2c;" primitive_type identifier ;) (if_statement "if ((((*(byte *)(param_2 + 0x2a) & 7) != 0) ||\n      ((*(byte *)(*(int *)(param_2 + 8) + 0x2c) & 1) == 0)) || (*(int *)(param_2 + 0x18) == -1)) {\n                    \n    FUN_002446e0("../../gold/arm.cc",0x29ef,"do_dynsym_value");\n  }" if (parenthesized_expression "((((*(byte *)(param_2 + 0x2a) & 7) != 0) ||\n      ((*(byte *)(*(int *)(param_2 + 8) + 0x2c) & 1) == 0)) || (*(int *)(param_2 + 0x18) == -1))" ( (binary_expression "(((*(byte *)(param_2 + 0x2a) & 7) != 0) ||\n      ((*(byte *)(*(int *)(param_2 + 8) + 0x2c) & 1) == 0)) || (*(int *)(param_2 + 0x18) == -1)" (parenthesized_expression "(((*(byte *)(param_2 + 0x2a) & 7) != 0) ||\n      ((*(byte *)(*(int *)(param_2 + 8) + 0x2c) & 1) == 0))" ( (binary_expression "((*(byte *)(param_2 + 0x2a) & 7) != 0) ||\n      ((*(byte *)(*(int *)(param_2 + 8) + 0x2c) & 1) == 0)" (parenthesized_expression "((*(byte *)(param_2 + 0x2a) & 7) != 0)" ( (binary_expression "(*(byte *)(param_2 + 0x2a) & 7) != 0" (parenthesized_expression "(*(byte *)(param_2 + 0x2a) & 7)" ( (binary_expression "*(byte *)(param_2 + 0x2a) & 7" (pointer_expression "*(byte *)(param_2 + 0x2a)" * (cast_expression "(byte *)(param_2 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2a)" ( (binary_expression "param_2 + 0x2a" identifier + number_literal) )))) & number_literal) )) != number_literal) )) || (parenthesized_expression "((*(byte *)(*(int *)(param_2 + 8) + 0x2c) & 1) == 0)" ( (binary_expression "(*(byte *)(*(int *)(param_2 + 8) + 0x2c) & 1) == 0" (parenthesized_expression "(*(byte *)(*(int *)(param_2 + 8) + 0x2c) & 1)" ( (binary_expression "*(byte *)(*(int *)(param_2 + 8) + 0x2c) & 1" (pointer_expression "*(byte *)(*(int *)(param_2 + 8) + 0x2c)" * (cast_expression "(byte *)(*(int *)(param_2 + 8) + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 8) + 0x2c)" ( (binary_expression "*(int *)(param_2 + 8) + 0x2c" (pointer_expression "*(int *)(param_2 + 8)" * (cast_expression "(int *)(param_2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) == number_literal) ))) )) || (parenthesized_expression "(*(int *)(param_2 + 0x18) == -1)" ( (binary_expression "*(int *)(param_2 + 0x18) == -1" (pointer_expression "*(int *)(param_2 + 0x18)" * (cast_expression "(int *)(param_2 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n                    \n    FUN_002446e0("../../gold/arm.cc",0x29ef,"do_dynsym_value");\n  }" { (expression_statement "FUN_002446e0("../../gold/arm.cc",0x29ef,"do_dynsym_value");" (call_expression "FUN_002446e0("../../gold/arm.cc",0x29ef,"do_dynsym_value")" identifier (argument_list "("../../gold/arm.cc",0x29ef,"do_dynsym_value")" ( (string_literal ""../../gold/arm.cc"" " string_content ") , number_literal , (string_literal ""do_dynsym_value"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x18) != 0) {\n    uVar4 = FUN_00117400();\n    return uVar4;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x18) != 0)" ( (binary_expression "*(int *)(param_1 + 0x18) != 0" (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    uVar4 = FUN_00117400();\n    return uVar4;\n  }" { (expression_statement "uVar4 = FUN_00117400();" (assignment_expression "uVar4 = FUN_00117400()" identifier = (call_expression "FUN_00117400()" identifier (argument_list "()" ( )))) ;) (return_statement "return uVar4;" return identifier ;) })) (expression_statement "FUN_0010c970();" (call_expression "FUN_0010c970()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar11 = FUN_00074f0a();" (assignment_expression "uVar11 = FUN_00074f0a()" identifier = (call_expression "FUN_00074f0a()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar8 = (int)((ulonglong)uVar11 >> 0x20);" (assignment_expression "iVar8 = (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 "iVar5 = (int)uVar11;" (assignment_expression "iVar5 = (int)uVar11" identifier = (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if ((bRam0011756a & 2) == 0) {\n    return 1;\n  }" if (parenthesized_expression "((bRam0011756a & 2) == 0)" ( (binary_expression "(bRam0011756a & 2) == 0" (parenthesized_expression "(bRam0011756a & 2)" ( (binary_expression "bRam0011756a & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (if_statement "if (iVar8 - 2U < 0x6b) {\n    uVar4 = (uint)(char)(&UNK_00351787)[iVar8 + unaff_EDI];\n    iVar8 = *(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4);\n  }\n  else {\n    iVar8 = *(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4);\n  }" if (parenthesized_expression "(iVar8 - 2U < 0x6b)" ( (binary_expression "iVar8 - 2U < 0x6b" (binary_expression "iVar8 - 2U" identifier - number_literal) < number_literal) )) (compound_statement "{\n    uVar4 = (uint)(char)(&UNK_00351787)[iVar8 + unaff_EDI];\n    iVar8 = *(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4);\n  }" { (expression_statement "uVar4 = (uint)(char)(&UNK_00351787)[iVar8 + unaff_EDI];" (assignment_expression "uVar4 = (uint)(char)(&UNK_00351787)[iVar8 + unaff_EDI]" identifier = (subscript_expression "(uint)(char)(&UNK_00351787)[iVar8 + unaff_EDI]" (call_expression "(uint)(char)(&UNK_00351787)" (call_expression "(uint)(char)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(char)" ( identifier ))) (argument_list "(&UNK_00351787)" ( (pointer_expression "&UNK_00351787" & identifier) ))) [ (binary_expression "iVar8 + unaff_EDI" identifier + identifier) ])) ;) (expression_statement "iVar8 = *(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4);" (assignment_expression "iVar8 = *(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4)" identifier = (pointer_expression "*(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4)" * (cast_expression "(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4)" ( (binary_expression "BYTE_ARRAY_004d315d + unaff_EDI + 0xf4" (binary_expression "BYTE_ARRAY_004d315d + unaff_EDI" identifier + identifier) + number_literal) ))))) ;) }) (else_clause "else {\n    iVar8 = *(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4);\n  }" else (compound_statement "{\n    iVar8 = *(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4);\n  }" { (expression_statement "iVar8 = *(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4);" (assignment_expression "iVar8 = *(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4)" identifier = (pointer_expression "*(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4)" * (cast_expression "(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4)" ( (binary_expression "BYTE_ARRAY_004d315d + unaff_EDI + 0xf4" (binary_expression "BYTE_ARRAY_004d315d + unaff_EDI" identifier + identifier) + number_literal) ))))) ;) }))) (if_statement "if (iVar5 == 0) {\n    iVar5 = *(int *)(iVar8 + 8);\n    if (iVar5 != 0) {\n      if ((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar4 & 1 | extraout_ECX;\n    }\nLAB_00117867:\n                    \n    FUN_0010cb20();\n  }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar5 = *(int *)(iVar8 + 8);\n    if (iVar5 != 0) {\n      if ((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar4 & 1 | extraout_ECX;\n    }\nLAB_00117867:\n                    \n    FUN_0010cb20();\n  }" { (expression_statement "iVar5 = *(int *)(iVar8 + 8);" (assignment_expression "iVar5 = *(int *)(iVar8 + 8)" identifier = (pointer_expression "*(int *)(iVar8 + 8)" * (cast_expression "(int *)(iVar8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 != 0) {\n      if ((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar4 & 1 | extraout_ECX;\n    }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n      if ((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar4 & 1 | extraout_ECX;\n    }" { (if_statement "if ((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) {\n        return 1;\n      }" if (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 ')) ))) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (return_statement "return ~uVar4 & 1 | extraout_ECX;" return (binary_expression "~uVar4 & 1 | extraout_ECX" (binary_expression "~uVar4 & 1" (unary_expression "~uVar4" ~ identifier) & number_literal) | identifier) ;) })) (labeled_statement "LAB_00117867:\n                    \n    FUN_0010cb20();" statement_identifier : (expression_statement "FUN_0010cb20();" (call_expression "FUN_0010cb20()" identifier (argument_list "()" ( ))) ;)) })) (expression_statement "bVar1 = *(byte *)(iVar8 + 0x10);" (assignment_expression "bVar1 = *(byte *)(iVar8 + 0x10)" identifier = (pointer_expression "*(byte *)(iVar8 + 0x10)" * (cast_expression "(byte *)(iVar8 + 0x10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x10)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = (uint)bVar1;" (assignment_expression "uVar7 = (uint)bVar1" identifier = (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (bVar1 == 0) {\n    FUN_0010caf0();\n    goto LAB_00117867;\n  }" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    FUN_0010caf0();\n    goto LAB_00117867;\n  }" { (expression_statement "FUN_0010caf0();" (call_expression "FUN_0010caf0()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_00117867;" goto statement_identifier ;) })) (expression_statement "uVar9 = (uint)*(byte *)(iVar8 + 0x11);" (assignment_expression "uVar9 = (uint)*(byte *)(iVar8 + 0x11)" identifier = (binary_expression "(uint)*(byte *)(iVar8 + 0x11)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar8 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x11)" ( (binary_expression "iVar8 + 0x11" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = uVar9;" (assignment_expression "uVar10 = uVar9" identifier = identifier) ;) (if_statement "if (*(byte *)(iVar8 + 0x11) == 0) {\n    bVar3 = *(byte *)(iVar5 + 0x2a) & 7;\n    uVar10 = uVar7;\n    if ((*(byte *)(iVar5 + 0x2a) & 7) == 0) {\n      bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;\n      iStack_2c = *(int *)(iVar5 + 0xc);\n      if ((iStack_2c == 0) && (bVar2 != 0)) goto LAB_001175e4;\nLAB_0011770c:\n      if ((iStack_2c != 0xfff1) || (bVar2 != 0)) goto LAB_00117721;\n      goto LAB_00117620;\n    }\n    if (bVar3 == 4) {\nLAB_001175e4:\n      iVar6 = *(int *)(iVar8 + 8);\n      if (iVar6 == 0) goto LAB_0011784a;\n      if (*(char *)(iVar6 + 0x1a25) == '\0') goto LAB_00117620;\n      if (bVar3 == 0) {\n        bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;\n        iStack_2c = *(int *)(iVar5 + 0xc);\n        goto LAB_0011770c;\n      }\n    }\n    if (bVar3 == 3) goto LAB_00117620;\nLAB_00117721:\n    uStack_38 = uVar4 & 1;\n    if (uStack_38 == 0) {\nLAB_00117760:\n      if (((uVar4 & 8) != 0) && (*(int *)(iVar5 + 0x18) != -1)) goto LAB_0011776e;\n      if ((uVar4 & 0x10) == 0) {\n        iVar6 = *(int *)(iVar8 + 8);\n        if (iVar6 == 0) {\nLAB_0011784a:\n                    \n          FUN_002446e0(unaff_EDI + 0x330cf6,0x5c,unaff_EDI + 0x352f01,iVar6);\n        }\n        if (((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) &&\n           (*(int *)(iVar5 + 0x18) != -1)) goto LAB_00117620;\n      }\n      if (bVar3 == 0) {\n        uVar10 = uVar9;\n        if (((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar5 + 0xc) != 0 || (uVar10 = 0, (*(byte *)(iVar5 + 0x2b) & 0x20) == 0)))) {\nLAB_001177d7:\n          uVar7 = FUN_00071a80(iVar5);\n          uVar10 = uVar7 ^ 1;\n        }\n      }\n      else {\n        uVar10 = uVar9;\n        if (bVar3 != 4) goto LAB_001177d7;\n      }\n      goto LAB_00117620;\n    }\n    iVar6 = *(int *)(iVar8 + 8);\n    if (iVar6 == 0) goto LAB_0011784a;\n    if (*(char *)(iVar6 + 0x1a25) == '\0') {\n      if (*(char *)(iVar6 + 0x2931) == '\0') goto LAB_00117760;\n      uVar9 = 0;\n    }\n  }\n  else {\nLAB_00117620:\n    uStack_38 = uVar4 & 1;\n    uVar9 = uVar10;\n    if (uStack_38 == 0) {\n      return uVar10;\n    }\n  }" if (parenthesized_expression "(*(byte *)(iVar8 + 0x11) == 0)" ( (binary_expression "*(byte *)(iVar8 + 0x11) == 0" (pointer_expression "*(byte *)(iVar8 + 0x11)" * (cast_expression "(byte *)(iVar8 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x11)" ( (binary_expression "iVar8 + 0x11" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    bVar3 = *(byte *)(iVar5 + 0x2a) & 7;\n    uVar10 = uVar7;\n    if ((*(byte *)(iVar5 + 0x2a) & 7) == 0) {\n      bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;\n      iStack_2c = *(int *)(iVar5 + 0xc);\n      if ((iStack_2c == 0) && (bVar2 != 0)) goto LAB_001175e4;\nLAB_0011770c:\n      if ((iStack_2c != 0xfff1) || (bVar2 != 0)) goto LAB_00117721;\n      goto LAB_00117620;\n    }\n    if (bVar3 == 4) {\nLAB_001175e4:\n      iVar6 = *(int *)(iVar8 + 8);\n      if (iVar6 == 0) goto LAB_0011784a;\n      if (*(char *)(iVar6 + 0x1a25) == '\0') goto LAB_00117620;\n      if (bVar3 == 0) {\n        bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;\n        iStack_2c = *(int *)(iVar5 + 0xc);\n        goto LAB_0011770c;\n      }\n    }\n    if (bVar3 == 3) goto LAB_00117620;\nLAB_00117721:\n    uStack_38 = uVar4 & 1;\n    if (uStack_38 == 0) {\nLAB_00117760:\n      if (((uVar4 & 8) != 0) && (*(int *)(iVar5 + 0x18) != -1)) goto LAB_0011776e;\n      if ((uVar4 & 0x10) == 0) {\n        iVar6 = *(int *)(iVar8 + 8);\n        if (iVar6 == 0) {\nLAB_0011784a:\n                    \n          FUN_002446e0(unaff_EDI + 0x330cf6,0x5c,unaff_EDI + 0x352f01,iVar6);\n        }\n        if (((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) &&\n           (*(int *)(iVar5 + 0x18) != -1)) goto LAB_00117620;\n      }\n      if (bVar3 == 0) {\n        uVar10 = uVar9;\n        if (((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar5 + 0xc) != 0 || (uVar10 = 0, (*(byte *)(iVar5 + 0x2b) & 0x20) == 0)))) {\nLAB_001177d7:\n          uVar7 = FUN_00071a80(iVar5);\n          uVar10 = uVar7 ^ 1;\n        }\n      }\n      else {\n        uVar10 = uVar9;\n        if (bVar3 != 4) goto LAB_001177d7;\n      }\n      goto LAB_00117620;\n    }\n    iVar6 = *(int *)(iVar8 + 8);\n    if (iVar6 == 0) goto LAB_0011784a;\n    if (*(char *)(iVar6 + 0x1a25) == '\0') {\n      if (*(char *)(iVar6 + 0x2931) == '\0') goto LAB_00117760;\n      uVar9 = 0;\n    }\n  }" { (expression_statement "bVar3 = *(byte *)(iVar5 + 0x2a) & 7;" (assignment_expression "bVar3 = *(byte *)(iVar5 + 0x2a) & 7" identifier = (binary_expression "*(byte *)(iVar5 + 0x2a) & 7" (pointer_expression "*(byte *)(iVar5 + 0x2a)" * (cast_expression "(byte *)(iVar5 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2a)" ( (binary_expression "iVar5 + 0x2a" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "uVar10 = uVar7;" (assignment_expression "uVar10 = uVar7" identifier = identifier) ;) (if_statement "if ((*(byte *)(iVar5 + 0x2a) & 7) == 0) {\n      bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;\n      iStack_2c = *(int *)(iVar5 + 0xc);\n      if ((iStack_2c == 0) && (bVar2 != 0)) goto LAB_001175e4;\nLAB_0011770c:\n      if ((iStack_2c != 0xfff1) || (bVar2 != 0)) goto LAB_00117721;\n      goto LAB_00117620;\n    }" if (parenthesized_expression "((*(byte *)(iVar5 + 0x2a) & 7) == 0)" ( (binary_expression "(*(byte *)(iVar5 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)(iVar5 + 0x2a) & 7)" ( (binary_expression "*(byte *)(iVar5 + 0x2a) & 7" (pointer_expression "*(byte *)(iVar5 + 0x2a)" * (cast_expression "(byte *)(iVar5 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2a)" ( (binary_expression "iVar5 + 0x2a" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;\n      iStack_2c = *(int *)(iVar5 + 0xc);\n      if ((iStack_2c == 0) && (bVar2 != 0)) goto LAB_001175e4;\nLAB_0011770c:\n      if ((iStack_2c != 0xfff1) || (bVar2 != 0)) goto LAB_00117721;\n      goto LAB_00117620;\n    }" { (expression_statement "bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;" (assignment_expression "bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1" identifier = (binary_expression "*(byte *)(iVar5 + 0x2b) >> 5 & 1" (binary_expression "*(byte *)(iVar5 + 0x2b) >> 5" (pointer_expression "*(byte *)(iVar5 + 0x2b)" * (cast_expression "(byte *)(iVar5 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2b)" ( (binary_expression "iVar5 + 0x2b" identifier + number_literal) )))) >> number_literal) & number_literal)) ;) (expression_statement "iStack_2c = *(int *)(iVar5 + 0xc);" (assignment_expression "iStack_2c = *(int *)(iVar5 + 0xc)" identifier = (pointer_expression "*(int *)(iVar5 + 0xc)" * (cast_expression "(int *)(iVar5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if ((iStack_2c == 0) && (bVar2 != 0)) goto LAB_001175e4;" if (parenthesized_expression "((iStack_2c == 0) && (bVar2 != 0))" ( (binary_expression "(iStack_2c == 0) && (bVar2 != 0)" (parenthesized_expression "(iStack_2c == 0)" ( (binary_expression "iStack_2c == 0" identifier == number_literal) )) && (parenthesized_expression "(bVar2 != 0)" ( (binary_expression "bVar2 != 0" identifier != number_literal) ))) )) (goto_statement "goto LAB_001175e4;" goto statement_identifier ;)) (labeled_statement "LAB_0011770c:\n      if ((iStack_2c != 0xfff1) || (bVar2 != 0)) goto LAB_00117721;" statement_identifier : (if_statement "if ((iStack_2c != 0xfff1) || (bVar2 != 0)) goto LAB_00117721;" if (parenthesized_expression "((iStack_2c != 0xfff1) || (bVar2 != 0))" ( (binary_expression "(iStack_2c != 0xfff1) || (bVar2 != 0)" (parenthesized_expression "(iStack_2c != 0xfff1)" ( (binary_expression "iStack_2c != 0xfff1" identifier != number_literal) )) || (parenthesized_expression "(bVar2 != 0)" ( (binary_expression "bVar2 != 0" identifier != number_literal) ))) )) (goto_statement "goto LAB_00117721;" goto statement_identifier ;))) (goto_statement "goto LAB_00117620;" goto statement_identifier ;) })) (if_statement "if (bVar3 == 4) {\nLAB_001175e4:\n      iVar6 = *(int *)(iVar8 + 8);\n      if (iVar6 == 0) goto LAB_0011784a;\n      if (*(char *)(iVar6 + 0x1a25) == '\0') goto LAB_00117620;\n      if (bVar3 == 0) {\n        bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;\n        iStack_2c = *(int *)(iVar5 + 0xc);\n        goto LAB_0011770c;\n      }\n    }" if (parenthesized_expression "(bVar3 == 4)" ( (binary_expression "bVar3 == 4" identifier == number_literal) )) (compound_statement "{\nLAB_001175e4:\n      iVar6 = *(int *)(iVar8 + 8);\n      if (iVar6 == 0) goto LAB_0011784a;\n      if (*(char *)(iVar6 + 0x1a25) == '\0') goto LAB_00117620;\n      if (bVar3 == 0) {\n        bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;\n        iStack_2c = *(int *)(iVar5 + 0xc);\n        goto LAB_0011770c;\n      }\n    }" { (labeled_statement "LAB_001175e4:\n      iVar6 = *(int *)(iVar8 + 8);" statement_identifier : (expression_statement "iVar6 = *(int *)(iVar8 + 8);" (assignment_expression "iVar6 = *(int *)(iVar8 + 8)" identifier = (pointer_expression "*(int *)(iVar8 + 8)" * (cast_expression "(int *)(iVar8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) ))))) ;)) (if_statement "if (iVar6 == 0) goto LAB_0011784a;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0011784a;" goto statement_identifier ;)) (if_statement "if (*(char *)(iVar6 + 0x1a25) == '\0') goto LAB_00117620;" if (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 ')) )) (goto_statement "goto LAB_00117620;" goto statement_identifier ;)) (if_statement "if (bVar3 == 0) {\n        bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;\n        iStack_2c = *(int *)(iVar5 + 0xc);\n        goto LAB_0011770c;\n      }" if (parenthesized_expression "(bVar3 == 0)" ( (binary_expression "bVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;\n        iStack_2c = *(int *)(iVar5 + 0xc);\n        goto LAB_0011770c;\n      }" { (expression_statement "bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;" (assignment_expression "bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1" identifier = (binary_expression "*(byte *)(iVar5 + 0x2b) >> 5 & 1" (binary_expression "*(byte *)(iVar5 + 0x2b) >> 5" (pointer_expression "*(byte *)(iVar5 + 0x2b)" * (cast_expression "(byte *)(iVar5 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2b)" ( (binary_expression "iVar5 + 0x2b" identifier + number_literal) )))) >> number_literal) & number_literal)) ;) (expression_statement "iStack_2c = *(int *)(iVar5 + 0xc);" (assignment_expression "iStack_2c = *(int *)(iVar5 + 0xc)" identifier = (pointer_expression "*(int *)(iVar5 + 0xc)" * (cast_expression "(int *)(iVar5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0011770c;" goto statement_identifier ;) })) })) (if_statement "if (bVar3 == 3) goto LAB_00117620;" if (parenthesized_expression "(bVar3 == 3)" ( (binary_expression "bVar3 == 3" identifier == number_literal) )) (goto_statement "goto LAB_00117620;" goto statement_identifier ;)) (labeled_statement "LAB_00117721:\n    uStack_38 = uVar4 & 1;" statement_identifier : (expression_statement "uStack_38 = uVar4 & 1;" (assignment_expression "uStack_38 = uVar4 & 1" identifier = (binary_expression "uVar4 & 1" identifier & number_literal)) ;)) (if_statement "if (uStack_38 == 0) {\nLAB_00117760:\n      if (((uVar4 & 8) != 0) && (*(int *)(iVar5 + 0x18) != -1)) goto LAB_0011776e;\n      if ((uVar4 & 0x10) == 0) {\n        iVar6 = *(int *)(iVar8 + 8);\n        if (iVar6 == 0) {\nLAB_0011784a:\n                    \n          FUN_002446e0(unaff_EDI + 0x330cf6,0x5c,unaff_EDI + 0x352f01,iVar6);\n        }\n        if (((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) &&\n           (*(int *)(iVar5 + 0x18) != -1)) goto LAB_00117620;\n      }\n      if (bVar3 == 0) {\n        uVar10 = uVar9;\n        if (((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar5 + 0xc) != 0 || (uVar10 = 0, (*(byte *)(iVar5 + 0x2b) & 0x20) == 0)))) {\nLAB_001177d7:\n          uVar7 = FUN_00071a80(iVar5);\n          uVar10 = uVar7 ^ 1;\n        }\n      }\n      else {\n        uVar10 = uVar9;\n        if (bVar3 != 4) goto LAB_001177d7;\n      }\n      goto LAB_00117620;\n    }" if (parenthesized_expression "(uStack_38 == 0)" ( (binary_expression "uStack_38 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00117760:\n      if (((uVar4 & 8) != 0) && (*(int *)(iVar5 + 0x18) != -1)) goto LAB_0011776e;\n      if ((uVar4 & 0x10) == 0) {\n        iVar6 = *(int *)(iVar8 + 8);\n        if (iVar6 == 0) {\nLAB_0011784a:\n                    \n          FUN_002446e0(unaff_EDI + 0x330cf6,0x5c,unaff_EDI + 0x352f01,iVar6);\n        }\n        if (((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) &&\n           (*(int *)(iVar5 + 0x18) != -1)) goto LAB_00117620;\n      }\n      if (bVar3 == 0) {\n        uVar10 = uVar9;\n        if (((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar5 + 0xc) != 0 || (uVar10 = 0, (*(byte *)(iVar5 + 0x2b) & 0x20) == 0)))) {\nLAB_001177d7:\n          uVar7 = FUN_00071a80(iVar5);\n          uVar10 = uVar7 ^ 1;\n        }\n      }\n      else {\n        uVar10 = uVar9;\n        if (bVar3 != 4) goto LAB_001177d7;\n      }\n      goto LAB_00117620;\n    }" { (labeled_statement "LAB_00117760:\n      if (((uVar4 & 8) != 0) && (*(int *)(iVar5 + 0x18) != -1)) goto LAB_0011776e;" statement_identifier : (if_statement "if (((uVar4 & 8) != 0) && (*(int *)(iVar5 + 0x18) != -1)) goto LAB_0011776e;" if (parenthesized_expression "(((uVar4 & 8) != 0) && (*(int *)(iVar5 + 0x18) != -1))" ( (binary_expression "((uVar4 & 8) != 0) && (*(int *)(iVar5 + 0x18) != -1)" (parenthesized_expression "((uVar4 & 8) != 0)" ( (binary_expression "(uVar4 & 8) != 0" (parenthesized_expression "(uVar4 & 8)" ( (binary_expression "uVar4 & 8" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(*(int *)(iVar5 + 0x18) != -1)" ( (binary_expression "*(int *)(iVar5 + 0x18) != -1" (pointer_expression "*(int *)(iVar5 + 0x18)" * (cast_expression "(int *)(iVar5 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x18)" ( (binary_expression "iVar5 + 0x18" identifier + number_literal) )))) != number_literal) ))) )) (goto_statement "goto LAB_0011776e;" goto statement_identifier ;))) (if_statement "if ((uVar4 & 0x10) == 0) {\n        iVar6 = *(int *)(iVar8 + 8);\n        if (iVar6 == 0) {\nLAB_0011784a:\n                    \n          FUN_002446e0(unaff_EDI + 0x330cf6,0x5c,unaff_EDI + 0x352f01,iVar6);\n        }\n        if (((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) &&\n           (*(int *)(iVar5 + 0x18) != -1)) goto LAB_00117620;\n      }" if (parenthesized_expression "((uVar4 & 0x10) == 0)" ( (binary_expression "(uVar4 & 0x10) == 0" (parenthesized_expression "(uVar4 & 0x10)" ( (binary_expression "uVar4 & 0x10" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        iVar6 = *(int *)(iVar8 + 8);\n        if (iVar6 == 0) {\nLAB_0011784a:\n                    \n          FUN_002446e0(unaff_EDI + 0x330cf6,0x5c,unaff_EDI + 0x352f01,iVar6);\n        }\n        if (((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) &&\n           (*(int *)(iVar5 + 0x18) != -1)) goto LAB_00117620;\n      }" { (expression_statement "iVar6 = *(int *)(iVar8 + 8);" (assignment_expression "iVar6 = *(int *)(iVar8 + 8)" identifier = (pointer_expression "*(int *)(iVar8 + 8)" * (cast_expression "(int *)(iVar8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar6 == 0) {\nLAB_0011784a:\n                    \n          FUN_002446e0(unaff_EDI + 0x330cf6,0x5c,unaff_EDI + 0x352f01,iVar6);\n        }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0011784a:\n                    \n          FUN_002446e0(unaff_EDI + 0x330cf6,0x5c,unaff_EDI + 0x352f01,iVar6);\n        }" { (labeled_statement "LAB_0011784a:\n                    \n          FUN_002446e0(unaff_EDI + 0x330cf6,0x5c,unaff_EDI + 0x352f01,iVar6);" statement_identifier : (expression_statement "FUN_002446e0(unaff_EDI + 0x330cf6,0x5c,unaff_EDI + 0x352f01,iVar6);" (call_expression "FUN_002446e0(unaff_EDI + 0x330cf6,0x5c,unaff_EDI + 0x352f01,iVar6)" identifier (argument_list "(unaff_EDI + 0x330cf6,0x5c,unaff_EDI + 0x352f01,iVar6)" ( (binary_expression "unaff_EDI + 0x330cf6" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x352f01" identifier + number_literal) , identifier ))) ;)) })) (if_statement "if (((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) &&\n           (*(int *)(iVar5 + 0x18) != -1)) goto LAB_00117620;" if (parenthesized_expression "(((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) &&\n           (*(int *)(iVar5 + 0x18) != -1))" ( (binary_expression "((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) &&\n           (*(int *)(iVar5 + 0x18) != -1)" (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 "(*(int *)(iVar5 + 0x18) != -1)" ( (binary_expression "*(int *)(iVar5 + 0x18) != -1" (pointer_expression "*(int *)(iVar5 + 0x18)" * (cast_expression "(int *)(iVar5 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x18)" ( (binary_expression "iVar5 + 0x18" identifier + number_literal) )))) != number_literal) ))) )) (goto_statement "goto LAB_00117620;" goto statement_identifier ;)) })) (if_statement "if (bVar3 == 0) {\n        uVar10 = uVar9;\n        if (((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar5 + 0xc) != 0 || (uVar10 = 0, (*(byte *)(iVar5 + 0x2b) & 0x20) == 0)))) {\nLAB_001177d7:\n          uVar7 = FUN_00071a80(iVar5);\n          uVar10 = uVar7 ^ 1;\n        }\n      }\n      else {\n        uVar10 = uVar9;\n        if (bVar3 != 4) goto LAB_001177d7;\n      }" if (parenthesized_expression "(bVar3 == 0)" ( (binary_expression "bVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar10 = uVar9;\n        if (((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar5 + 0xc) != 0 || (uVar10 = 0, (*(byte *)(iVar5 + 0x2b) & 0x20) == 0)))) {\nLAB_001177d7:\n          uVar7 = FUN_00071a80(iVar5);\n          uVar10 = uVar7 ^ 1;\n        }\n      }" { (expression_statement "uVar10 = uVar9;" (assignment_expression "uVar10 = uVar9" identifier = identifier) ;) (if_statement "if (((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar5 + 0xc) != 0 || (uVar10 = 0, (*(byte *)(iVar5 + 0x2b) & 0x20) == 0)))) {\nLAB_001177d7:\n          uVar7 = FUN_00071a80(iVar5);\n          uVar10 = uVar7 ^ 1;\n        }" if (parenthesized_expression "(((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar5 + 0xc) != 0 || (uVar10 = 0, (*(byte *)(iVar5 + 0x2b) & 0x20) == 0))))" ( (binary_expression "((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar5 + 0xc) != 0 || (uVar10 = 0, (*(byte *)(iVar5 + 0x2b) & 0x20) == 0)))" (parenthesized_expression "((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) == 0)" ( (binary_expression "(*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) == 0" (parenthesized_expression "(*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1)" ( (binary_expression "*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1" (pointer_expression "*(byte *)(*(int *)(iVar5 + 8) + 0x2c)" * (cast_expression "(byte *)(*(int *)(iVar5 + 8) + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 8) + 0x2c)" ( (binary_expression "*(int *)(iVar5 + 8) + 0x2c" (pointer_expression "*(int *)(iVar5 + 8)" * (cast_expression "(int *)(iVar5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "((*(int *)(iVar5 + 0xc) != 0 || (uVar10 = 0, (*(byte *)(iVar5 + 0x2b) & 0x20) == 0)))" ( (parenthesized_expression "(*(int *)(iVar5 + 0xc) != 0 || (uVar10 = 0, (*(byte *)(iVar5 + 0x2b) & 0x20) == 0))" ( (binary_expression "*(int *)(iVar5 + 0xc) != 0 || (uVar10 = 0, (*(byte *)(iVar5 + 0x2b) & 0x20) == 0)" (binary_expression "*(int *)(iVar5 + 0xc) != 0" (pointer_expression "*(int *)(iVar5 + 0xc)" * (cast_expression "(int *)(iVar5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) != number_literal) || (parenthesized_expression "(uVar10 = 0, (*(byte *)(iVar5 + 0x2b) & 0x20) == 0)" ( (comma_expression "uVar10 = 0, (*(byte *)(iVar5 + 0x2b) & 0x20) == 0" (assignment_expression "uVar10 = 0" identifier = number_literal) , (binary_expression "(*(byte *)(iVar5 + 0x2b) & 0x20) == 0" (parenthesized_expression "(*(byte *)(iVar5 + 0x2b) & 0x20)" ( (binary_expression "*(byte *)(iVar5 + 0x2b) & 0x20" (pointer_expression "*(byte *)(iVar5 + 0x2b)" * (cast_expression "(byte *)(iVar5 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2b)" ( (binary_expression "iVar5 + 0x2b" identifier + number_literal) )))) & number_literal) )) == number_literal)) ))) )) ))) )) (compound_statement "{\nLAB_001177d7:\n          uVar7 = FUN_00071a80(iVar5);\n          uVar10 = uVar7 ^ 1;\n        }" { (labeled_statement "LAB_001177d7:\n          uVar7 = FUN_00071a80(iVar5);" statement_identifier : (expression_statement "uVar7 = FUN_00071a80(iVar5);" (assignment_expression "uVar7 = FUN_00071a80(iVar5)" identifier = (call_expression "FUN_00071a80(iVar5)" identifier (argument_list "(iVar5)" ( identifier )))) ;)) (expression_statement "uVar10 = uVar7 ^ 1;" (assignment_expression "uVar10 = uVar7 ^ 1" identifier = (binary_expression "uVar7 ^ 1" identifier ^ number_literal)) ;) })) }) (else_clause "else {\n        uVar10 = uVar9;\n        if (bVar3 != 4) goto LAB_001177d7;\n      }" else (compound_statement "{\n        uVar10 = uVar9;\n        if (bVar3 != 4) goto LAB_001177d7;\n      }" { (expression_statement "uVar10 = uVar9;" (assignment_expression "uVar10 = uVar9" identifier = identifier) ;) (if_statement "if (bVar3 != 4) goto LAB_001177d7;" if (parenthesized_expression "(bVar3 != 4)" ( (binary_expression "bVar3 != 4" identifier != number_literal) )) (goto_statement "goto LAB_001177d7;" goto statement_identifier ;)) }))) (goto_statement "goto LAB_00117620;" goto statement_identifier ;) })) (expression_statement "iVar6 = *(int *)(iVar8 + 8);" (assignment_expression "iVar6 = *(int *)(iVar8 + 8)" identifier = (pointer_expression "*(int *)(iVar8 + 8)" * (cast_expression "(int *)(iVar8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar6 == 0) goto LAB_0011784a;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0011784a;" goto statement_identifier ;)) (if_statement "if (*(char *)(iVar6 + 0x1a25) == '\0') {\n      if (*(char *)(iVar6 + 0x2931) == '\0') goto LAB_00117760;\n      uVar9 = 0;\n    }" if (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 ')) )) (compound_statement "{\n      if (*(char *)(iVar6 + 0x2931) == '\0') goto LAB_00117760;\n      uVar9 = 0;\n    }" { (if_statement "if (*(char *)(iVar6 + 0x2931) == '\0') goto LAB_00117760;" if (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 ')) )) (goto_statement "goto LAB_00117760;" goto statement_identifier ;)) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) })) }) (else_clause "else {\nLAB_00117620:\n    uStack_38 = uVar4 & 1;\n    uVar9 = uVar10;\n    if (uStack_38 == 0) {\n      return uVar10;\n    }\n  }" else (compound_statement "{\nLAB_00117620:\n    uStack_38 = uVar4 & 1;\n    uVar9 = uVar10;\n    if (uStack_38 == 0) {\n      return uVar10;\n    }\n  }" { (labeled_statement "LAB_00117620:\n    uStack_38 = uVar4 & 1;" statement_identifier : (expression_statement "uStack_38 = uVar4 & 1;" (assignment_expression "uStack_38 = uVar4 & 1" identifier = (binary_expression "uVar4 & 1" identifier & number_literal)) ;)) (expression_statement "uVar9 = uVar10;" (assignment_expression "uVar9 = uVar10" identifier = identifier) ;) (if_statement "if (uStack_38 == 0) {\n      return uVar10;\n    }" if (parenthesized_expression "(uStack_38 == 0)" ( (binary_expression "uStack_38 == 0" identifier == number_literal) )) (compound_statement "{\n      return uVar10;\n    }" { (return_statement "return uVar10;" return identifier ;) })) }))) (if_statement "if (((uVar4 & 8) == 0) || (*(int *)(iVar5 + 0x18) == -1)) {\n    if ((*(byte *)(iVar5 + 0x2a) & 7) == 0) {\n      if ((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) != 0) {\n        return uVar9;\n      }\n      if ((*(int *)(iVar5 + 0xc) == 0) && ((*(byte *)(iVar5 + 0x2b) & 0x20) != 0)) {\n        return uVar9;\n      }\n    }\n    else if ((*(byte *)(iVar5 + 0x2a) & 7) == 4) {\n      return uVar9;\n    }\n    uVar4 = FUN_00071a80(iVar5);\n    return uVar9 | uVar4 ^ 1;\n  }" if (parenthesized_expression "(((uVar4 & 8) == 0) || (*(int *)(iVar5 + 0x18) == -1))" ( (binary_expression "((uVar4 & 8) == 0) || (*(int *)(iVar5 + 0x18) == -1)" (parenthesized_expression "((uVar4 & 8) == 0)" ( (binary_expression "(uVar4 & 8) == 0" (parenthesized_expression "(uVar4 & 8)" ( (binary_expression "uVar4 & 8" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(*(int *)(iVar5 + 0x18) == -1)" ( (binary_expression "*(int *)(iVar5 + 0x18) == -1" (pointer_expression "*(int *)(iVar5 + 0x18)" * (cast_expression "(int *)(iVar5 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x18)" ( (binary_expression "iVar5 + 0x18" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n    if ((*(byte *)(iVar5 + 0x2a) & 7) == 0) {\n      if ((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) != 0) {\n        return uVar9;\n      }\n      if ((*(int *)(iVar5 + 0xc) == 0) && ((*(byte *)(iVar5 + 0x2b) & 0x20) != 0)) {\n        return uVar9;\n      }\n    }\n    else if ((*(byte *)(iVar5 + 0x2a) & 7) == 4) {\n      return uVar9;\n    }\n    uVar4 = FUN_00071a80(iVar5);\n    return uVar9 | uVar4 ^ 1;\n  }" { (if_statement "if ((*(byte *)(iVar5 + 0x2a) & 7) == 0) {\n      if ((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) != 0) {\n        return uVar9;\n      }\n      if ((*(int *)(iVar5 + 0xc) == 0) && ((*(byte *)(iVar5 + 0x2b) & 0x20) != 0)) {\n        return uVar9;\n      }\n    }\n    else if ((*(byte *)(iVar5 + 0x2a) & 7) == 4) {\n      return uVar9;\n    }" if (parenthesized_expression "((*(byte *)(iVar5 + 0x2a) & 7) == 0)" ( (binary_expression "(*(byte *)(iVar5 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)(iVar5 + 0x2a) & 7)" ( (binary_expression "*(byte *)(iVar5 + 0x2a) & 7" (pointer_expression "*(byte *)(iVar5 + 0x2a)" * (cast_expression "(byte *)(iVar5 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2a)" ( (binary_expression "iVar5 + 0x2a" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      if ((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) != 0) {\n        return uVar9;\n      }\n      if ((*(int *)(iVar5 + 0xc) == 0) && ((*(byte *)(iVar5 + 0x2b) & 0x20) != 0)) {\n        return uVar9;\n      }\n    }" { (if_statement "if ((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) != 0) {\n        return uVar9;\n      }" if (parenthesized_expression "((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) != 0)" ( (binary_expression "(*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) != 0" (parenthesized_expression "(*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1)" ( (binary_expression "*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1" (pointer_expression "*(byte *)(*(int *)(iVar5 + 8) + 0x2c)" * (cast_expression "(byte *)(*(int *)(iVar5 + 8) + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 8) + 0x2c)" ( (binary_expression "*(int *)(iVar5 + 8) + 0x2c" (pointer_expression "*(int *)(iVar5 + 8)" * (cast_expression "(int *)(iVar5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n        return uVar9;\n      }" { (return_statement "return uVar9;" return identifier ;) })) (if_statement "if ((*(int *)(iVar5 + 0xc) == 0) && ((*(byte *)(iVar5 + 0x2b) & 0x20) != 0)) {\n        return uVar9;\n      }" if (parenthesized_expression "((*(int *)(iVar5 + 0xc) == 0) && ((*(byte *)(iVar5 + 0x2b) & 0x20) != 0))" ( (binary_expression "(*(int *)(iVar5 + 0xc) == 0) && ((*(byte *)(iVar5 + 0x2b) & 0x20) != 0)" (parenthesized_expression "(*(int *)(iVar5 + 0xc) == 0)" ( (binary_expression "*(int *)(iVar5 + 0xc) == 0" (pointer_expression "*(int *)(iVar5 + 0xc)" * (cast_expression "(int *)(iVar5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "((*(byte *)(iVar5 + 0x2b) & 0x20) != 0)" ( (binary_expression "(*(byte *)(iVar5 + 0x2b) & 0x20) != 0" (parenthesized_expression "(*(byte *)(iVar5 + 0x2b) & 0x20)" ( (binary_expression "*(byte *)(iVar5 + 0x2b) & 0x20" (pointer_expression "*(byte *)(iVar5 + 0x2b)" * (cast_expression "(byte *)(iVar5 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2b)" ( (binary_expression "iVar5 + 0x2b" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n        return uVar9;\n      }" { (return_statement "return uVar9;" return identifier ;) })) }) (else_clause "else if ((*(byte *)(iVar5 + 0x2a) & 7) == 4) {\n      return uVar9;\n    }" else (if_statement "if ((*(byte *)(iVar5 + 0x2a) & 7) == 4) {\n      return uVar9;\n    }" if (parenthesized_expression "((*(byte *)(iVar5 + 0x2a) & 7) == 4)" ( (binary_expression "(*(byte *)(iVar5 + 0x2a) & 7) == 4" (parenthesized_expression "(*(byte *)(iVar5 + 0x2a) & 7)" ( (binary_expression "*(byte *)(iVar5 + 0x2a) & 7" (pointer_expression "*(byte *)(iVar5 + 0x2a)" * (cast_expression "(byte *)(iVar5 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2a)" ( (binary_expression "iVar5 + 0x2a" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      return uVar9;\n    }" { (return_statement "return uVar9;" return identifier ;) })))) (expression_statement "uVar4 = FUN_00071a80(iVar5);" (assignment_expression "uVar4 = FUN_00071a80(iVar5)" identifier = (call_expression "FUN_00071a80(iVar5)" identifier (argument_list "(iVar5)" ( identifier )))) ;) (return_statement "return uVar9 | uVar4 ^ 1;" return (binary_expression "uVar9 | uVar4 ^ 1" identifier | (binary_expression "uVar4 ^ 1" identifier ^ number_literal)) ;) })) (labeled_statement "LAB_0011776e:\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) , (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 ;) (if_statement if (parenthesized_expression ( (binary_expression (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) )))) & LIT) )) != LIT) )) || (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 ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (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 = (call_expression IDENT (argument_list ( )))) ;) (return_statement return IDENT ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (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 IDENT & 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 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 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_00117510(int param_1,int param_2)\n\n{\n  byte bVar1;\n  byte bVar2;\n  byte bVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  uint extraout_ECX;\n  uint uVar7;\n  int iVar8;\n  uint uVar9;\n  uint uVar10;\n  int unaff_EDI;\n  undefined8 uVar11;\n  uint uStack_38;\n  int iStack_2c;\n  \n  if ((((*(byte *)(param_2 + 0x2a) & 7) != 0) ||\n      ((*(byte *)(*(int *)(param_2 + 8) + 0x2c) & 1) == 0)) || (*(int *)(param_2 + 0x18) == -1)) {\n                    \n    FUN_002446e0("../../gold/arm.cc",0x29ef,"do_dynsym_value");\n  }\n  if (*(int *)(param_1 + 0x18) != 0) {\n    uVar4 = FUN_00117400();\n    return uVar4;\n  }\n  FUN_0010c970();\n  uVar11 = FUN_00074f0a();\n  iVar8 = (int)((ulonglong)uVar11 >> 0x20);\n  iVar5 = (int)uVar11;\n  if ((bRam0011756a & 2) == 0) {\n    return 1;\n  }\n  uVar4 = 0;\n  if (iVar8 - 2U < 0x6b) {\n    uVar4 = (uint)(char)(&UNK_00351787)[iVar8 + unaff_EDI];\n    iVar8 = *(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4);\n  }\n  else {\n    iVar8 = *(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4);\n  }\n  if (iVar5 == 0) {\n    iVar5 = *(int *)(iVar8 + 8);\n    if (iVar5 != 0) {\n      if ((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar4 & 1 | extraout_ECX;\n    }\nLAB_00117867:\n                    \n    FUN_0010cb20();\n  }\n  bVar1 = *(byte *)(iVar8 + 0x10);\n  uVar7 = (uint)bVar1;\n  if (bVar1 == 0) {\n    FUN_0010caf0();\n    goto LAB_00117867;\n  }\n  uVar9 = (uint)*(byte *)(iVar8 + 0x11);\n  uVar10 = uVar9;\n  if (*(byte *)(iVar8 + 0x11) == 0) {\n    bVar3 = *(byte *)(iVar5 + 0x2a) & 7;\n    uVar10 = uVar7;\n    if ((*(byte *)(iVar5 + 0x2a) & 7) == 0) {\n      bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;\n      iStack_2c = *(int *)(iVar5 + 0xc);\n      if ((iStack_2c == 0) && (bVar2 != 0)) goto LAB_001175e4;\nLAB_0011770c:\n      if ((iStack_2c != 0xfff1) || (bVar2 != 0)) goto LAB_00117721;\n      goto LAB_00117620;\n    }\n    if (bVar3 == 4) {\nLAB_001175e4:\n      iVar6 = *(int *)(iVar8 + 8);\n      if (iVar6 == 0) goto LAB_0011784a;\n      if (*(char *)(iVar6 + 0x1a25) == '\0') goto LAB_00117620;\n      if (bVar3 == 0) {\n        bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;\n        iStack_2c = *(int *)(iVar5 + 0xc);\n        goto LAB_0011770c;\n      }\n    }\n    if (bVar3 == 3) goto LAB_00117620;\nLAB_00117721:\n    uStack_38 = uVar4 & 1;\n    if (uStack_38 == 0) {\nLAB_00117760:\n      if (((uVar4 & 8) != 0) && (*(int *)(iVar5 + 0x18) != -1)) goto LAB_0011776e;\n      if ((uVar4 & 0x10) == 0) {\n        iVar6 = *(int *)(iVar8 + 8);\n        if (iVar6 == 0) {\nLAB_0011784a:\n                    \n          FUN_002446e0(unaff_EDI + 0x330cf6,0x5c,unaff_EDI + 0x352f01,iVar6);\n        }\n        if (((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) &&\n           (*(int *)(iVar5 + 0x18) != -1)) goto LAB_00117620;\n      }\n      if (bVar3 == 0) {\n        uVar10 = uVar9;\n        if (((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar5 + 0xc) != 0 || (uVar10 = 0, (*(byte *)(iVar5 + 0x2b) & 0x20) == 0)))) {\nLAB_001177d7:\n          uVar7 = FUN_00071a80(iVar5);\n          uVar10 = uVar7 ^ 1;\n        }\n      }\n      else {\n        uVar10 = uVar9;\n        if (bVar3 != 4) goto LAB_001177d7;\n      }\n      goto LAB_00117620;\n    }\n    iVar6 = *(int *)(iVar8 + 8);\n    if (iVar6 == 0) goto LAB_0011784a;\n    if (*(char *)(iVar6 + 0x1a25) == '\0') {\n      if (*(char *)(iVar6 + 0x2931) == '\0') goto LAB_00117760;\n      uVar9 = 0;\n    }\n  }\n  else {\nLAB_00117620:\n    uStack_38 = uVar4 & 1;\n    uVar9 = uVar10;\n    if (uStack_38 == 0) {\n      return uVar10;\n    }\n  }\n  if (((uVar4 & 8) == 0) || (*(int *)(iVar5 + 0x18) == -1)) {\n    if ((*(byte *)(iVar5 + 0x2a) & 7) == 0) {\n      if ((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) != 0) {\n        return uVar9;\n      }\n      if ((*(int *)(iVar5 + 0xc) == 0) && ((*(byte *)(iVar5 + 0x2b) & 0x20) != 0)) {\n        return uVar9;\n      }\n    }\n    else if ((*(byte *)(iVar5 + 0x2a) & 7) == 4) {\n      return uVar9;\n    }\n    uVar4 = FUN_00071a80(iVar5);\n    return uVar9 | uVar4 ^ 1;\n  }\nLAB_0011776e:\n  return (uint)bVar1;\n}" (type_identifier "uint") (function_declarator "FUN_00117510(int param_1,int param_2)" (identifier "FUN_00117510") (parameter_list "(int param_1,int param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")"))) (compound_statement "{\n  byte bVar1;\n  byte bVar2;\n  byte bVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  uint extraout_ECX;\n  uint uVar7;\n  int iVar8;\n  uint uVar9;\n  uint uVar10;\n  int unaff_EDI;\n  undefined8 uVar11;\n  uint uStack_38;\n  int iStack_2c;\n  \n  if ((((*(byte *)(param_2 + 0x2a) & 7) != 0) ||\n      ((*(byte *)(*(int *)(param_2 + 8) + 0x2c) & 1) == 0)) || (*(int *)(param_2 + 0x18) == -1)) {\n                    \n    FUN_002446e0("../../gold/arm.cc",0x29ef,"do_dynsym_value");\n  }\n  if (*(int *)(param_1 + 0x18) != 0) {\n    uVar4 = FUN_00117400();\n    return uVar4;\n  }\n  FUN_0010c970();\n  uVar11 = FUN_00074f0a();\n  iVar8 = (int)((ulonglong)uVar11 >> 0x20);\n  iVar5 = (int)uVar11;\n  if ((bRam0011756a & 2) == 0) {\n    return 1;\n  }\n  uVar4 = 0;\n  if (iVar8 - 2U < 0x6b) {\n    uVar4 = (uint)(char)(&UNK_00351787)[iVar8 + unaff_EDI];\n    iVar8 = *(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4);\n  }\n  else {\n    iVar8 = *(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4);\n  }\n  if (iVar5 == 0) {\n    iVar5 = *(int *)(iVar8 + 8);\n    if (iVar5 != 0) {\n      if ((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar4 & 1 | extraout_ECX;\n    }\nLAB_00117867:\n                    \n    FUN_0010cb20();\n  }\n  bVar1 = *(byte *)(iVar8 + 0x10);\n  uVar7 = (uint)bVar1;\n  if (bVar1 == 0) {\n    FUN_0010caf0();\n    goto LAB_00117867;\n  }\n  uVar9 = (uint)*(byte *)(iVar8 + 0x11);\n  uVar10 = uVar9;\n  if (*(byte *)(iVar8 + 0x11) == 0) {\n    bVar3 = *(byte *)(iVar5 + 0x2a) & 7;\n    uVar10 = uVar7;\n    if ((*(byte *)(iVar5 + 0x2a) & 7) == 0) {\n      bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;\n      iStack_2c = *(int *)(iVar5 + 0xc);\n      if ((iStack_2c == 0) && (bVar2 != 0)) goto LAB_001175e4;\nLAB_0011770c:\n      if ((iStack_2c != 0xfff1) || (bVar2 != 0)) goto LAB_00117721;\n      goto LAB_00117620;\n    }\n    if (bVar3 == 4) {\nLAB_001175e4:\n      iVar6 = *(int *)(iVar8 + 8);\n      if (iVar6 == 0) goto LAB_0011784a;\n      if (*(char *)(iVar6 + 0x1a25) == '\0') goto LAB_00117620;\n      if (bVar3 == 0) {\n        bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;\n        iStack_2c = *(int *)(iVar5 + 0xc);\n        goto LAB_0011770c;\n      }\n    }\n    if (bVar3 == 3) goto LAB_00117620;\nLAB_00117721:\n    uStack_38 = uVar4 & 1;\n    if (uStack_38 == 0) {\nLAB_00117760:\n      if (((uVar4 & 8) != 0) && (*(int *)(iVar5 + 0x18) != -1)) goto LAB_0011776e;\n      if ((uVar4 & 0x10) == 0) {\n        iVar6 = *(int *)(iVar8 + 8);\n        if (iVar6 == 0) {\nLAB_0011784a:\n                    \n          FUN_002446e0(unaff_EDI + 0x330cf6,0x5c,unaff_EDI + 0x352f01,iVar6);\n        }\n        if (((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) &&\n           (*(int *)(iVar5 + 0x18) != -1)) goto LAB_00117620;\n      }\n      if (bVar3 == 0) {\n        uVar10 = uVar9;\n        if (((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar5 + 0xc) != 0 || (uVar10 = 0, (*(byte *)(iVar5 + 0x2b) & 0x20) == 0)))) {\nLAB_001177d7:\n          uVar7 = FUN_00071a80(iVar5);\n          uVar10 = uVar7 ^ 1;\n        }\n      }\n      else {\n        uVar10 = uVar9;\n        if (bVar3 != 4) goto LAB_001177d7;\n      }\n      goto LAB_00117620;\n    }\n    iVar6 = *(int *)(iVar8 + 8);\n    if (iVar6 == 0) goto LAB_0011784a;\n    if (*(char *)(iVar6 + 0x1a25) == '\0') {\n      if (*(char *)(iVar6 + 0x2931) == '\0') goto LAB_00117760;\n      uVar9 = 0;\n    }\n  }\n  else {\nLAB_00117620:\n    uStack_38 = uVar4 & 1;\n    uVar9 = uVar10;\n    if (uStack_38 == 0) {\n      return uVar10;\n    }\n  }\n  if (((uVar4 & 8) == 0) || (*(int *)(iVar5 + 0x18) == -1)) {\n    if ((*(byte *)(iVar5 + 0x2a) & 7) == 0) {\n      if ((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) != 0) {\n        return uVar9;\n      }\n      if ((*(int *)(iVar5 + 0xc) == 0) && ((*(byte *)(iVar5 + 0x2b) & 0x20) != 0)) {\n        return uVar9;\n      }\n    }\n    else if ((*(byte *)(iVar5 + 0x2a) & 7) == 4) {\n      return uVar9;\n    }\n    uVar4 = FUN_00071a80(iVar5);\n    return uVar9 | uVar4 ^ 1;\n  }\nLAB_0011776e:\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 "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "uint extraout_ECX;" (type_identifier "uint") (identifier "extraout_ECX") (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (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 uStack_38;" (type_identifier "uint") (identifier "uStack_38") (; ";")) (declaration "int iStack_2c;" (primitive_type "int") (identifier "iStack_2c") (; ";")) (if_statement "if ((((*(byte *)(param_2 + 0x2a) & 7) != 0) ||\n      ((*(byte *)(*(int *)(param_2 + 8) + 0x2c) & 1) == 0)) || (*(int *)(param_2 + 0x18) == -1)) {\n                    \n    FUN_002446e0("../../gold/arm.cc",0x29ef,"do_dynsym_value");\n  }" (if "if") (parenthesized_expression "((((*(byte *)(param_2 + 0x2a) & 7) != 0) ||\n      ((*(byte *)(*(int *)(param_2 + 8) + 0x2c) & 1) == 0)) || (*(int *)(param_2 + 0x18) == -1))" (( "(") (binary_expression "(((*(byte *)(param_2 + 0x2a) & 7) != 0) ||\n      ((*(byte *)(*(int *)(param_2 + 8) + 0x2c) & 1) == 0)) || (*(int *)(param_2 + 0x18) == -1)" (parenthesized_expression "(((*(byte *)(param_2 + 0x2a) & 7) != 0) ||\n      ((*(byte *)(*(int *)(param_2 + 8) + 0x2c) & 1) == 0))" (( "(") (binary_expression "((*(byte *)(param_2 + 0x2a) & 7) != 0) ||\n      ((*(byte *)(*(int *)(param_2 + 8) + 0x2c) & 1) == 0)" (parenthesized_expression "((*(byte *)(param_2 + 0x2a) & 7) != 0)" (( "(") (binary_expression "(*(byte *)(param_2 + 0x2a) & 7) != 0" (parenthesized_expression "(*(byte *)(param_2 + 0x2a) & 7)" (( "(") (binary_expression "*(byte *)(param_2 + 0x2a) & 7" (pointer_expression "*(byte *)(param_2 + 0x2a)" (* "*") (cast_expression "(byte *)(param_2 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x2a)" (( "(") (binary_expression "param_2 + 0x2a" (identifier "param_2") (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((*(byte *)(*(int *)(param_2 + 8) + 0x2c) & 1) == 0)" (( "(") (binary_expression "(*(byte *)(*(int *)(param_2 + 8) + 0x2c) & 1) == 0" (parenthesized_expression "(*(byte *)(*(int *)(param_2 + 8) + 0x2c) & 1)" (( "(") (binary_expression "*(byte *)(*(int *)(param_2 + 8) + 0x2c) & 1" (pointer_expression "*(byte *)(*(int *)(param_2 + 8) + 0x2c)" (* "*") (cast_expression "(byte *)(*(int *)(param_2 + 8) + 0x2c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_2 + 8) + 0x2c)" (( "(") (binary_expression "*(int *)(param_2 + 8) + 0x2c" (pointer_expression "*(int *)(param_2 + 8)" (* "*") (cast_expression "(int *)(param_2 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x2c")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(*(int *)(param_2 + 0x18) == -1)" (( "(") (binary_expression "*(int *)(param_2 + 0x18) == -1" (pointer_expression "*(int *)(param_2 + 0x18)" (* "*") (cast_expression "(int *)(param_2 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x18)" (( "(") (binary_expression "param_2 + 0x18" (identifier "param_2") (+ "+") (number_literal "0x18")) () ")")))) (== "==") (number_literal "-1")) () ")"))) () ")")) (compound_statement "{\n                    \n    FUN_002446e0("../../gold/arm.cc",0x29ef,"do_dynsym_value");\n  }" ({ "{") (expression_statement "FUN_002446e0("../../gold/arm.cc",0x29ef,"do_dynsym_value");" (call_expression "FUN_002446e0("../../gold/arm.cc",0x29ef,"do_dynsym_value")" (identifier "FUN_002446e0") (argument_list "("../../gold/arm.cc",0x29ef,"do_dynsym_value")" (( "(") (string_literal ""../../gold/arm.cc"" (" """) (string_content "../../gold/arm.cc") (" """)) (, ",") (number_literal "0x29ef") (, ",") (string_literal ""do_dynsym_value"" (" """) (string_content "do_dynsym_value") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 0x18) != 0) {\n    uVar4 = FUN_00117400();\n    return uVar4;\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x18) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x18) != 0" (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar4 = FUN_00117400();\n    return uVar4;\n  }" ({ "{") (expression_statement "uVar4 = FUN_00117400();" (assignment_expression "uVar4 = FUN_00117400()" (identifier "uVar4") (= "=") (call_expression "FUN_00117400()" (identifier "FUN_00117400") (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";")) (} "}"))) (expression_statement "FUN_0010c970();" (call_expression "FUN_0010c970()" (identifier "FUN_0010c970") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar11 = FUN_00074f0a();" (assignment_expression "uVar11 = FUN_00074f0a()" (identifier "uVar11") (= "=") (call_expression "FUN_00074f0a()" (identifier "FUN_00074f0a") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar8 = (int)((ulonglong)uVar11 >> 0x20);" (assignment_expression "iVar8 = (int)((ulonglong)uVar11 >> 0x20)" (identifier "iVar8") (= "=") (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 "iVar5 = (int)uVar11;" (assignment_expression "iVar5 = (int)uVar11" (identifier "iVar5") (= "=") (cast_expression "(int)uVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar11"))) (; ";")) (if_statement "if ((bRam0011756a & 2) == 0) {\n    return 1;\n  }" (if "if") (parenthesized_expression "((bRam0011756a & 2) == 0)" (( "(") (binary_expression "(bRam0011756a & 2) == 0" (parenthesized_expression "(bRam0011756a & 2)" (( "(") (binary_expression "bRam0011756a & 2" (identifier "bRam0011756a") (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return 1;\n  }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" (identifier "uVar4") (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar8 - 2U < 0x6b) {\n    uVar4 = (uint)(char)(&UNK_00351787)[iVar8 + unaff_EDI];\n    iVar8 = *(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4);\n  }\n  else {\n    iVar8 = *(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4);\n  }" (if "if") (parenthesized_expression "(iVar8 - 2U < 0x6b)" (( "(") (binary_expression "iVar8 - 2U < 0x6b" (binary_expression "iVar8 - 2U" (identifier "iVar8") (- "-") (number_literal "2U")) (< "<") (number_literal "0x6b")) () ")")) (compound_statement "{\n    uVar4 = (uint)(char)(&UNK_00351787)[iVar8 + unaff_EDI];\n    iVar8 = *(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4);\n  }" ({ "{") (expression_statement "uVar4 = (uint)(char)(&UNK_00351787)[iVar8 + unaff_EDI];" (assignment_expression "uVar4 = (uint)(char)(&UNK_00351787)[iVar8 + unaff_EDI]" (identifier "uVar4") (= "=") (subscript_expression "(uint)(char)(&UNK_00351787)[iVar8 + unaff_EDI]" (call_expression "(uint)(char)(&UNK_00351787)" (call_expression "(uint)(char)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(char)" (( "(") (identifier "char") () ")"))) (argument_list "(&UNK_00351787)" (( "(") (pointer_expression "&UNK_00351787" (& "&") (identifier "UNK_00351787")) () ")"))) ([ "[") (binary_expression "iVar8 + unaff_EDI" (identifier "iVar8") (+ "+") (identifier "unaff_EDI")) (] "]"))) (; ";")) (expression_statement "iVar8 = *(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4);" (assignment_expression "iVar8 = *(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4)" (* "*") (cast_expression "(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4)" (( "(") (binary_expression "BYTE_ARRAY_004d315d + unaff_EDI + 0xf4" (binary_expression "BYTE_ARRAY_004d315d + unaff_EDI" (identifier "BYTE_ARRAY_004d315d") (+ "+") (identifier "unaff_EDI")) (+ "+") (number_literal "0xf4")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    iVar8 = *(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4);\n  }" (else "else") (compound_statement "{\n    iVar8 = *(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4);\n  }" ({ "{") (expression_statement "iVar8 = *(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4);" (assignment_expression "iVar8 = *(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4)" (* "*") (cast_expression "(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4)" (( "(") (binary_expression "BYTE_ARRAY_004d315d + unaff_EDI + 0xf4" (binary_expression "BYTE_ARRAY_004d315d + unaff_EDI" (identifier "BYTE_ARRAY_004d315d") (+ "+") (identifier "unaff_EDI")) (+ "+") (number_literal "0xf4")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (iVar5 == 0) {\n    iVar5 = *(int *)(iVar8 + 8);\n    if (iVar5 != 0) {\n      if ((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar4 & 1 | extraout_ECX;\n    }\nLAB_00117867:\n                    \n    FUN_0010cb20();\n  }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar5 = *(int *)(iVar8 + 8);\n    if (iVar5 != 0) {\n      if ((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar4 & 1 | extraout_ECX;\n    }\nLAB_00117867:\n                    \n    FUN_0010cb20();\n  }" ({ "{") (expression_statement "iVar5 = *(int *)(iVar8 + 8);" (assignment_expression "iVar5 = *(int *)(iVar8 + 8)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(iVar8 + 8)" (* "*") (cast_expression "(int *)(iVar8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 8)" (( "(") (binary_expression "iVar8 + 8" (identifier "iVar8") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar5 != 0) {\n      if ((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar4 & 1 | extraout_ECX;\n    }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if ((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar4 & 1 | extraout_ECX;\n    }" ({ "{") (if_statement "if ((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) {\n        return 1;\n      }" (if "if") (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") (' "'"))) () ")"))) () ")")) (compound_statement "{\n        return 1;\n      }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (return_statement "return ~uVar4 & 1 | extraout_ECX;" (return "return") (binary_expression "~uVar4 & 1 | extraout_ECX" (binary_expression "~uVar4 & 1" (unary_expression "~uVar4" (~ "~") (identifier "uVar4")) (& "&") (number_literal "1")) (| "|") (identifier "extraout_ECX")) (; ";")) (} "}"))) (labeled_statement "LAB_00117867:\n                    \n    FUN_0010cb20();" (statement_identifier "LAB_00117867") (: ":") (expression_statement "FUN_0010cb20();" (call_expression "FUN_0010cb20()" (identifier "FUN_0010cb20") (argument_list "()" (( "(") () ")"))) (; ";"))) (} "}"))) (expression_statement "bVar1 = *(byte *)(iVar8 + 0x10);" (assignment_expression "bVar1 = *(byte *)(iVar8 + 0x10)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)(iVar8 + 0x10)" (* "*") (cast_expression "(byte *)(iVar8 + 0x10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x10)" (( "(") (binary_expression "iVar8 + 0x10" (identifier "iVar8") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "uVar7 = (uint)bVar1;" (assignment_expression "uVar7 = (uint)bVar1" (identifier "uVar7") (= "=") (cast_expression "(uint)bVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar1"))) (; ";")) (if_statement "if (bVar1 == 0) {\n    FUN_0010caf0();\n    goto LAB_00117867;\n  }" (if "if") (parenthesized_expression "(bVar1 == 0)" (( "(") (binary_expression "bVar1 == 0" (identifier "bVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_0010caf0();\n    goto LAB_00117867;\n  }" ({ "{") (expression_statement "FUN_0010caf0();" (call_expression "FUN_0010caf0()" (identifier "FUN_0010caf0") (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto LAB_00117867;" (goto "goto") (statement_identifier "LAB_00117867") (; ";")) (} "}"))) (expression_statement "uVar9 = (uint)*(byte *)(iVar8 + 0x11);" (assignment_expression "uVar9 = (uint)*(byte *)(iVar8 + 0x11)" (identifier "uVar9") (= "=") (binary_expression "(uint)*(byte *)(iVar8 + 0x11)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(iVar8 + 0x11)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x11)" (( "(") (binary_expression "iVar8 + 0x11" (identifier "iVar8") (+ "+") (number_literal "0x11")) () ")"))))) (; ";")) (expression_statement "uVar10 = uVar9;" (assignment_expression "uVar10 = uVar9" (identifier "uVar10") (= "=") (identifier "uVar9")) (; ";")) (if_statement "if (*(byte *)(iVar8 + 0x11) == 0) {\n    bVar3 = *(byte *)(iVar5 + 0x2a) & 7;\n    uVar10 = uVar7;\n    if ((*(byte *)(iVar5 + 0x2a) & 7) == 0) {\n      bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;\n      iStack_2c = *(int *)(iVar5 + 0xc);\n      if ((iStack_2c == 0) && (bVar2 != 0)) goto LAB_001175e4;\nLAB_0011770c:\n      if ((iStack_2c != 0xfff1) || (bVar2 != 0)) goto LAB_00117721;\n      goto LAB_00117620;\n    }\n    if (bVar3 == 4) {\nLAB_001175e4:\n      iVar6 = *(int *)(iVar8 + 8);\n      if (iVar6 == 0) goto LAB_0011784a;\n      if (*(char *)(iVar6 + 0x1a25) == '\0') goto LAB_00117620;\n      if (bVar3 == 0) {\n        bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;\n        iStack_2c = *(int *)(iVar5 + 0xc);\n        goto LAB_0011770c;\n      }\n    }\n    if (bVar3 == 3) goto LAB_00117620;\nLAB_00117721:\n    uStack_38 = uVar4 & 1;\n    if (uStack_38 == 0) {\nLAB_00117760:\n      if (((uVar4 & 8) != 0) && (*(int *)(iVar5 + 0x18) != -1)) goto LAB_0011776e;\n      if ((uVar4 & 0x10) == 0) {\n        iVar6 = *(int *)(iVar8 + 8);\n        if (iVar6 == 0) {\nLAB_0011784a:\n                    \n          FUN_002446e0(unaff_EDI + 0x330cf6,0x5c,unaff_EDI + 0x352f01,iVar6);\n        }\n        if (((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) &&\n           (*(int *)(iVar5 + 0x18) != -1)) goto LAB_00117620;\n      }\n      if (bVar3 == 0) {\n        uVar10 = uVar9;\n        if (((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar5 + 0xc) != 0 || (uVar10 = 0, (*(byte *)(iVar5 + 0x2b) & 0x20) == 0)))) {\nLAB_001177d7:\n          uVar7 = FUN_00071a80(iVar5);\n          uVar10 = uVar7 ^ 1;\n        }\n      }\n      else {\n        uVar10 = uVar9;\n        if (bVar3 != 4) goto LAB_001177d7;\n      }\n      goto LAB_00117620;\n    }\n    iVar6 = *(int *)(iVar8 + 8);\n    if (iVar6 == 0) goto LAB_0011784a;\n    if (*(char *)(iVar6 + 0x1a25) == '\0') {\n      if (*(char *)(iVar6 + 0x2931) == '\0') goto LAB_00117760;\n      uVar9 = 0;\n    }\n  }\n  else {\nLAB_00117620:\n    uStack_38 = uVar4 & 1;\n    uVar9 = uVar10;\n    if (uStack_38 == 0) {\n      return uVar10;\n    }\n  }" (if "if") (parenthesized_expression "(*(byte *)(iVar8 + 0x11) == 0)" (( "(") (binary_expression "*(byte *)(iVar8 + 0x11) == 0" (pointer_expression "*(byte *)(iVar8 + 0x11)" (* "*") (cast_expression "(byte *)(iVar8 + 0x11)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x11)" (( "(") (binary_expression "iVar8 + 0x11" (identifier "iVar8") (+ "+") (number_literal "0x11")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    bVar3 = *(byte *)(iVar5 + 0x2a) & 7;\n    uVar10 = uVar7;\n    if ((*(byte *)(iVar5 + 0x2a) & 7) == 0) {\n      bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;\n      iStack_2c = *(int *)(iVar5 + 0xc);\n      if ((iStack_2c == 0) && (bVar2 != 0)) goto LAB_001175e4;\nLAB_0011770c:\n      if ((iStack_2c != 0xfff1) || (bVar2 != 0)) goto LAB_00117721;\n      goto LAB_00117620;\n    }\n    if (bVar3 == 4) {\nLAB_001175e4:\n      iVar6 = *(int *)(iVar8 + 8);\n      if (iVar6 == 0) goto LAB_0011784a;\n      if (*(char *)(iVar6 + 0x1a25) == '\0') goto LAB_00117620;\n      if (bVar3 == 0) {\n        bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;\n        iStack_2c = *(int *)(iVar5 + 0xc);\n        goto LAB_0011770c;\n      }\n    }\n    if (bVar3 == 3) goto LAB_00117620;\nLAB_00117721:\n    uStack_38 = uVar4 & 1;\n    if (uStack_38 == 0) {\nLAB_00117760:\n      if (((uVar4 & 8) != 0) && (*(int *)(iVar5 + 0x18) != -1)) goto LAB_0011776e;\n      if ((uVar4 & 0x10) == 0) {\n        iVar6 = *(int *)(iVar8 + 8);\n        if (iVar6 == 0) {\nLAB_0011784a:\n                    \n          FUN_002446e0(unaff_EDI + 0x330cf6,0x5c,unaff_EDI + 0x352f01,iVar6);\n        }\n        if (((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) &&\n           (*(int *)(iVar5 + 0x18) != -1)) goto LAB_00117620;\n      }\n      if (bVar3 == 0) {\n        uVar10 = uVar9;\n        if (((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar5 + 0xc) != 0 || (uVar10 = 0, (*(byte *)(iVar5 + 0x2b) & 0x20) == 0)))) {\nLAB_001177d7:\n          uVar7 = FUN_00071a80(iVar5);\n          uVar10 = uVar7 ^ 1;\n        }\n      }\n      else {\n        uVar10 = uVar9;\n        if (bVar3 != 4) goto LAB_001177d7;\n      }\n      goto LAB_00117620;\n    }\n    iVar6 = *(int *)(iVar8 + 8);\n    if (iVar6 == 0) goto LAB_0011784a;\n    if (*(char *)(iVar6 + 0x1a25) == '\0') {\n      if (*(char *)(iVar6 + 0x2931) == '\0') goto LAB_00117760;\n      uVar9 = 0;\n    }\n  }" ({ "{") (expression_statement "bVar3 = *(byte *)(iVar5 + 0x2a) & 7;" (assignment_expression "bVar3 = *(byte *)(iVar5 + 0x2a) & 7" (identifier "bVar3") (= "=") (binary_expression "*(byte *)(iVar5 + 0x2a) & 7" (pointer_expression "*(byte *)(iVar5 + 0x2a)" (* "*") (cast_expression "(byte *)(iVar5 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x2a)" (( "(") (binary_expression "iVar5 + 0x2a" (identifier "iVar5") (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7"))) (; ";")) (expression_statement "uVar10 = uVar7;" (assignment_expression "uVar10 = uVar7" (identifier "uVar10") (= "=") (identifier "uVar7")) (; ";")) (if_statement "if ((*(byte *)(iVar5 + 0x2a) & 7) == 0) {\n      bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;\n      iStack_2c = *(int *)(iVar5 + 0xc);\n      if ((iStack_2c == 0) && (bVar2 != 0)) goto LAB_001175e4;\nLAB_0011770c:\n      if ((iStack_2c != 0xfff1) || (bVar2 != 0)) goto LAB_00117721;\n      goto LAB_00117620;\n    }" (if "if") (parenthesized_expression "((*(byte *)(iVar5 + 0x2a) & 7) == 0)" (( "(") (binary_expression "(*(byte *)(iVar5 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)(iVar5 + 0x2a) & 7)" (( "(") (binary_expression "*(byte *)(iVar5 + 0x2a) & 7" (pointer_expression "*(byte *)(iVar5 + 0x2a)" (* "*") (cast_expression "(byte *)(iVar5 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x2a)" (( "(") (binary_expression "iVar5 + 0x2a" (identifier "iVar5") (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;\n      iStack_2c = *(int *)(iVar5 + 0xc);\n      if ((iStack_2c == 0) && (bVar2 != 0)) goto LAB_001175e4;\nLAB_0011770c:\n      if ((iStack_2c != 0xfff1) || (bVar2 != 0)) goto LAB_00117721;\n      goto LAB_00117620;\n    }" ({ "{") (expression_statement "bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;" (assignment_expression "bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1" (identifier "bVar2") (= "=") (binary_expression "*(byte *)(iVar5 + 0x2b) >> 5 & 1" (binary_expression "*(byte *)(iVar5 + 0x2b) >> 5" (pointer_expression "*(byte *)(iVar5 + 0x2b)" (* "*") (cast_expression "(byte *)(iVar5 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x2b)" (( "(") (binary_expression "iVar5 + 0x2b" (identifier "iVar5") (+ "+") (number_literal "0x2b")) () ")")))) (>> ">>") (number_literal "5")) (& "&") (number_literal "1"))) (; ";")) (expression_statement "iStack_2c = *(int *)(iVar5 + 0xc);" (assignment_expression "iStack_2c = *(int *)(iVar5 + 0xc)" (identifier "iStack_2c") (= "=") (pointer_expression "*(int *)(iVar5 + 0xc)" (* "*") (cast_expression "(int *)(iVar5 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0xc)" (( "(") (binary_expression "iVar5 + 0xc" (identifier "iVar5") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if ((iStack_2c == 0) && (bVar2 != 0)) goto LAB_001175e4;" (if "if") (parenthesized_expression "((iStack_2c == 0) && (bVar2 != 0))" (( "(") (binary_expression "(iStack_2c == 0) && (bVar2 != 0)" (parenthesized_expression "(iStack_2c == 0)" (( "(") (binary_expression "iStack_2c == 0" (identifier "iStack_2c") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(bVar2 != 0)" (( "(") (binary_expression "bVar2 != 0" (identifier "bVar2") (!= "!=") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_001175e4;" (goto "goto") (statement_identifier "LAB_001175e4") (; ";"))) (labeled_statement "LAB_0011770c:\n      if ((iStack_2c != 0xfff1) || (bVar2 != 0)) goto LAB_00117721;" (statement_identifier "LAB_0011770c") (: ":") (if_statement "if ((iStack_2c != 0xfff1) || (bVar2 != 0)) goto LAB_00117721;" (if "if") (parenthesized_expression "((iStack_2c != 0xfff1) || (bVar2 != 0))" (( "(") (binary_expression "(iStack_2c != 0xfff1) || (bVar2 != 0)" (parenthesized_expression "(iStack_2c != 0xfff1)" (( "(") (binary_expression "iStack_2c != 0xfff1" (identifier "iStack_2c") (!= "!=") (number_literal "0xfff1")) () ")")) (|| "||") (parenthesized_expression "(bVar2 != 0)" (( "(") (binary_expression "bVar2 != 0" (identifier "bVar2") (!= "!=") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_00117721;" (goto "goto") (statement_identifier "LAB_00117721") (; ";")))) (goto_statement "goto LAB_00117620;" (goto "goto") (statement_identifier "LAB_00117620") (; ";")) (} "}"))) (if_statement "if (bVar3 == 4) {\nLAB_001175e4:\n      iVar6 = *(int *)(iVar8 + 8);\n      if (iVar6 == 0) goto LAB_0011784a;\n      if (*(char *)(iVar6 + 0x1a25) == '\0') goto LAB_00117620;\n      if (bVar3 == 0) {\n        bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;\n        iStack_2c = *(int *)(iVar5 + 0xc);\n        goto LAB_0011770c;\n      }\n    }" (if "if") (parenthesized_expression "(bVar3 == 4)" (( "(") (binary_expression "bVar3 == 4" (identifier "bVar3") (== "==") (number_literal "4")) () ")")) (compound_statement "{\nLAB_001175e4:\n      iVar6 = *(int *)(iVar8 + 8);\n      if (iVar6 == 0) goto LAB_0011784a;\n      if (*(char *)(iVar6 + 0x1a25) == '\0') goto LAB_00117620;\n      if (bVar3 == 0) {\n        bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;\n        iStack_2c = *(int *)(iVar5 + 0xc);\n        goto LAB_0011770c;\n      }\n    }" ({ "{") (labeled_statement "LAB_001175e4:\n      iVar6 = *(int *)(iVar8 + 8);" (statement_identifier "LAB_001175e4") (: ":") (expression_statement "iVar6 = *(int *)(iVar8 + 8);" (assignment_expression "iVar6 = *(int *)(iVar8 + 8)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(iVar8 + 8)" (* "*") (cast_expression "(int *)(iVar8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 8)" (( "(") (binary_expression "iVar8 + 8" (identifier "iVar8") (+ "+") (number_literal "8")) () ")"))))) (; ";"))) (if_statement "if (iVar6 == 0) goto LAB_0011784a;" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0011784a;" (goto "goto") (statement_identifier "LAB_0011784a") (; ";"))) (if_statement "if (*(char *)(iVar6 + 0x1a25) == '\0') goto LAB_00117620;" (if "if") (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 "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x1a25)" (( "(") (binary_expression "iVar6 + 0x1a25" (identifier "iVar6") (+ "+") (number_literal "0x1a25")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00117620;" (goto "goto") (statement_identifier "LAB_00117620") (; ";"))) (if_statement "if (bVar3 == 0) {\n        bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;\n        iStack_2c = *(int *)(iVar5 + 0xc);\n        goto LAB_0011770c;\n      }" (if "if") (parenthesized_expression "(bVar3 == 0)" (( "(") (binary_expression "bVar3 == 0" (identifier "bVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;\n        iStack_2c = *(int *)(iVar5 + 0xc);\n        goto LAB_0011770c;\n      }" ({ "{") (expression_statement "bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;" (assignment_expression "bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1" (identifier "bVar2") (= "=") (binary_expression "*(byte *)(iVar5 + 0x2b) >> 5 & 1" (binary_expression "*(byte *)(iVar5 + 0x2b) >> 5" (pointer_expression "*(byte *)(iVar5 + 0x2b)" (* "*") (cast_expression "(byte *)(iVar5 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x2b)" (( "(") (binary_expression "iVar5 + 0x2b" (identifier "iVar5") (+ "+") (number_literal "0x2b")) () ")")))) (>> ">>") (number_literal "5")) (& "&") (number_literal "1"))) (; ";")) (expression_statement "iStack_2c = *(int *)(iVar5 + 0xc);" (assignment_expression "iStack_2c = *(int *)(iVar5 + 0xc)" (identifier "iStack_2c") (= "=") (pointer_expression "*(int *)(iVar5 + 0xc)" (* "*") (cast_expression "(int *)(iVar5 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0xc)" (( "(") (binary_expression "iVar5 + 0xc" (identifier "iVar5") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (goto_statement "goto LAB_0011770c;" (goto "goto") (statement_identifier "LAB_0011770c") (; ";")) (} "}"))) (} "}"))) (if_statement "if (bVar3 == 3) goto LAB_00117620;" (if "if") (parenthesized_expression "(bVar3 == 3)" (( "(") (binary_expression "bVar3 == 3" (identifier "bVar3") (== "==") (number_literal "3")) () ")")) (goto_statement "goto LAB_00117620;" (goto "goto") (statement_identifier "LAB_00117620") (; ";"))) (labeled_statement "LAB_00117721:\n    uStack_38 = uVar4 & 1;" (statement_identifier "LAB_00117721") (: ":") (expression_statement "uStack_38 = uVar4 & 1;" (assignment_expression "uStack_38 = uVar4 & 1" (identifier "uStack_38") (= "=") (binary_expression "uVar4 & 1" (identifier "uVar4") (& "&") (number_literal "1"))) (; ";"))) (if_statement "if (uStack_38 == 0) {\nLAB_00117760:\n      if (((uVar4 & 8) != 0) && (*(int *)(iVar5 + 0x18) != -1)) goto LAB_0011776e;\n      if ((uVar4 & 0x10) == 0) {\n        iVar6 = *(int *)(iVar8 + 8);\n        if (iVar6 == 0) {\nLAB_0011784a:\n                    \n          FUN_002446e0(unaff_EDI + 0x330cf6,0x5c,unaff_EDI + 0x352f01,iVar6);\n        }\n        if (((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) &&\n           (*(int *)(iVar5 + 0x18) != -1)) goto LAB_00117620;\n      }\n      if (bVar3 == 0) {\n        uVar10 = uVar9;\n        if (((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar5 + 0xc) != 0 || (uVar10 = 0, (*(byte *)(iVar5 + 0x2b) & 0x20) == 0)))) {\nLAB_001177d7:\n          uVar7 = FUN_00071a80(iVar5);\n          uVar10 = uVar7 ^ 1;\n        }\n      }\n      else {\n        uVar10 = uVar9;\n        if (bVar3 != 4) goto LAB_001177d7;\n      }\n      goto LAB_00117620;\n    }" (if "if") (parenthesized_expression "(uStack_38 == 0)" (( "(") (binary_expression "uStack_38 == 0" (identifier "uStack_38") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00117760:\n      if (((uVar4 & 8) != 0) && (*(int *)(iVar5 + 0x18) != -1)) goto LAB_0011776e;\n      if ((uVar4 & 0x10) == 0) {\n        iVar6 = *(int *)(iVar8 + 8);\n        if (iVar6 == 0) {\nLAB_0011784a:\n                    \n          FUN_002446e0(unaff_EDI + 0x330cf6,0x5c,unaff_EDI + 0x352f01,iVar6);\n        }\n        if (((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) &&\n           (*(int *)(iVar5 + 0x18) != -1)) goto LAB_00117620;\n      }\n      if (bVar3 == 0) {\n        uVar10 = uVar9;\n        if (((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar5 + 0xc) != 0 || (uVar10 = 0, (*(byte *)(iVar5 + 0x2b) & 0x20) == 0)))) {\nLAB_001177d7:\n          uVar7 = FUN_00071a80(iVar5);\n          uVar10 = uVar7 ^ 1;\n        }\n      }\n      else {\n        uVar10 = uVar9;\n        if (bVar3 != 4) goto LAB_001177d7;\n      }\n      goto LAB_00117620;\n    }" ({ "{") (labeled_statement "LAB_00117760:\n      if (((uVar4 & 8) != 0) && (*(int *)(iVar5 + 0x18) != -1)) goto LAB_0011776e;" (statement_identifier "LAB_00117760") (: ":") (if_statement "if (((uVar4 & 8) != 0) && (*(int *)(iVar5 + 0x18) != -1)) goto LAB_0011776e;" (if "if") (parenthesized_expression "(((uVar4 & 8) != 0) && (*(int *)(iVar5 + 0x18) != -1))" (( "(") (binary_expression "((uVar4 & 8) != 0) && (*(int *)(iVar5 + 0x18) != -1)" (parenthesized_expression "((uVar4 & 8) != 0)" (( "(") (binary_expression "(uVar4 & 8) != 0" (parenthesized_expression "(uVar4 & 8)" (( "(") (binary_expression "uVar4 & 8" (identifier "uVar4") (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(iVar5 + 0x18) != -1)" (( "(") (binary_expression "*(int *)(iVar5 + 0x18) != -1" (pointer_expression "*(int *)(iVar5 + 0x18)" (* "*") (cast_expression "(int *)(iVar5 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x18)" (( "(") (binary_expression "iVar5 + 0x18" (identifier "iVar5") (+ "+") (number_literal "0x18")) () ")")))) (!= "!=") (number_literal "-1")) () ")"))) () ")")) (goto_statement "goto LAB_0011776e;" (goto "goto") (statement_identifier "LAB_0011776e") (; ";")))) (if_statement "if ((uVar4 & 0x10) == 0) {\n        iVar6 = *(int *)(iVar8 + 8);\n        if (iVar6 == 0) {\nLAB_0011784a:\n                    \n          FUN_002446e0(unaff_EDI + 0x330cf6,0x5c,unaff_EDI + 0x352f01,iVar6);\n        }\n        if (((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) &&\n           (*(int *)(iVar5 + 0x18) != -1)) goto LAB_00117620;\n      }" (if "if") (parenthesized_expression "((uVar4 & 0x10) == 0)" (( "(") (binary_expression "(uVar4 & 0x10) == 0" (parenthesized_expression "(uVar4 & 0x10)" (( "(") (binary_expression "uVar4 & 0x10" (identifier "uVar4") (& "&") (number_literal "0x10")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar6 = *(int *)(iVar8 + 8);\n        if (iVar6 == 0) {\nLAB_0011784a:\n                    \n          FUN_002446e0(unaff_EDI + 0x330cf6,0x5c,unaff_EDI + 0x352f01,iVar6);\n        }\n        if (((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) &&\n           (*(int *)(iVar5 + 0x18) != -1)) goto LAB_00117620;\n      }" ({ "{") (expression_statement "iVar6 = *(int *)(iVar8 + 8);" (assignment_expression "iVar6 = *(int *)(iVar8 + 8)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(iVar8 + 8)" (* "*") (cast_expression "(int *)(iVar8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 8)" (( "(") (binary_expression "iVar8 + 8" (identifier "iVar8") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar6 == 0) {\nLAB_0011784a:\n                    \n          FUN_002446e0(unaff_EDI + 0x330cf6,0x5c,unaff_EDI + 0x352f01,iVar6);\n        }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0011784a:\n                    \n          FUN_002446e0(unaff_EDI + 0x330cf6,0x5c,unaff_EDI + 0x352f01,iVar6);\n        }" ({ "{") (labeled_statement "LAB_0011784a:\n                    \n          FUN_002446e0(unaff_EDI + 0x330cf6,0x5c,unaff_EDI + 0x352f01,iVar6);" (statement_identifier "LAB_0011784a") (: ":") (expression_statement "FUN_002446e0(unaff_EDI + 0x330cf6,0x5c,unaff_EDI + 0x352f01,iVar6);" (call_expression "FUN_002446e0(unaff_EDI + 0x330cf6,0x5c,unaff_EDI + 0x352f01,iVar6)" (identifier "FUN_002446e0") (argument_list "(unaff_EDI + 0x330cf6,0x5c,unaff_EDI + 0x352f01,iVar6)" (( "(") (binary_expression "unaff_EDI + 0x330cf6" (identifier "unaff_EDI") (+ "+") (number_literal "0x330cf6")) (, ",") (number_literal "0x5c") (, ",") (binary_expression "unaff_EDI + 0x352f01" (identifier "unaff_EDI") (+ "+") (number_literal "0x352f01")) (, ",") (identifier "iVar6") () ")"))) (; ";"))) (} "}"))) (if_statement "if (((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) &&\n           (*(int *)(iVar5 + 0x18) != -1)) goto LAB_00117620;" (if "if") (parenthesized_expression "(((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) &&\n           (*(int *)(iVar5 + 0x18) != -1))" (( "(") (binary_expression "((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) &&\n           (*(int *)(iVar5 + 0x18) != -1)" (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 "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x1a25)" (( "(") (binary_expression "iVar6 + 0x1a25" (identifier "iVar6") (+ "+") (number_literal "0x1a25")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (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 "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x2931)" (( "(") (binary_expression "iVar6 + 0x2931" (identifier "iVar6") (+ "+") (number_literal "0x2931")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(iVar5 + 0x18) != -1)" (( "(") (binary_expression "*(int *)(iVar5 + 0x18) != -1" (pointer_expression "*(int *)(iVar5 + 0x18)" (* "*") (cast_expression "(int *)(iVar5 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x18)" (( "(") (binary_expression "iVar5 + 0x18" (identifier "iVar5") (+ "+") (number_literal "0x18")) () ")")))) (!= "!=") (number_literal "-1")) () ")"))) () ")")) (goto_statement "goto LAB_00117620;" (goto "goto") (statement_identifier "LAB_00117620") (; ";"))) (} "}"))) (if_statement "if (bVar3 == 0) {\n        uVar10 = uVar9;\n        if (((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar5 + 0xc) != 0 || (uVar10 = 0, (*(byte *)(iVar5 + 0x2b) & 0x20) == 0)))) {\nLAB_001177d7:\n          uVar7 = FUN_00071a80(iVar5);\n          uVar10 = uVar7 ^ 1;\n        }\n      }\n      else {\n        uVar10 = uVar9;\n        if (bVar3 != 4) goto LAB_001177d7;\n      }" (if "if") (parenthesized_expression "(bVar3 == 0)" (( "(") (binary_expression "bVar3 == 0" (identifier "bVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar10 = uVar9;\n        if (((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar5 + 0xc) != 0 || (uVar10 = 0, (*(byte *)(iVar5 + 0x2b) & 0x20) == 0)))) {\nLAB_001177d7:\n          uVar7 = FUN_00071a80(iVar5);\n          uVar10 = uVar7 ^ 1;\n        }\n      }" ({ "{") (expression_statement "uVar10 = uVar9;" (assignment_expression "uVar10 = uVar9" (identifier "uVar10") (= "=") (identifier "uVar9")) (; ";")) (if_statement "if (((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar5 + 0xc) != 0 || (uVar10 = 0, (*(byte *)(iVar5 + 0x2b) & 0x20) == 0)))) {\nLAB_001177d7:\n          uVar7 = FUN_00071a80(iVar5);\n          uVar10 = uVar7 ^ 1;\n        }" (if "if") (parenthesized_expression "(((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar5 + 0xc) != 0 || (uVar10 = 0, (*(byte *)(iVar5 + 0x2b) & 0x20) == 0))))" (( "(") (binary_expression "((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) == 0) &&\n           ((*(int *)(iVar5 + 0xc) != 0 || (uVar10 = 0, (*(byte *)(iVar5 + 0x2b) & 0x20) == 0)))" (parenthesized_expression "((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) == 0)" (( "(") (binary_expression "(*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) == 0" (parenthesized_expression "(*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1)" (( "(") (binary_expression "*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1" (pointer_expression "*(byte *)(*(int *)(iVar5 + 8) + 0x2c)" (* "*") (cast_expression "(byte *)(*(int *)(iVar5 + 8) + 0x2c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar5 + 8) + 0x2c)" (( "(") (binary_expression "*(int *)(iVar5 + 8) + 0x2c" (pointer_expression "*(int *)(iVar5 + 8)" (* "*") (cast_expression "(int *)(iVar5 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 8)" (( "(") (binary_expression "iVar5 + 8" (identifier "iVar5") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x2c")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((*(int *)(iVar5 + 0xc) != 0 || (uVar10 = 0, (*(byte *)(iVar5 + 0x2b) & 0x20) == 0)))" (( "(") (parenthesized_expression "(*(int *)(iVar5 + 0xc) != 0 || (uVar10 = 0, (*(byte *)(iVar5 + 0x2b) & 0x20) == 0))" (( "(") (binary_expression "*(int *)(iVar5 + 0xc) != 0 || (uVar10 = 0, (*(byte *)(iVar5 + 0x2b) & 0x20) == 0)" (binary_expression "*(int *)(iVar5 + 0xc) != 0" (pointer_expression "*(int *)(iVar5 + 0xc)" (* "*") (cast_expression "(int *)(iVar5 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0xc)" (( "(") (binary_expression "iVar5 + 0xc" (identifier "iVar5") (+ "+") (number_literal "0xc")) () ")")))) (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "(uVar10 = 0, (*(byte *)(iVar5 + 0x2b) & 0x20) == 0)" (( "(") (comma_expression "uVar10 = 0, (*(byte *)(iVar5 + 0x2b) & 0x20) == 0" (assignment_expression "uVar10 = 0" (identifier "uVar10") (= "=") (number_literal "0")) (, ",") (binary_expression "(*(byte *)(iVar5 + 0x2b) & 0x20) == 0" (parenthesized_expression "(*(byte *)(iVar5 + 0x2b) & 0x20)" (( "(") (binary_expression "*(byte *)(iVar5 + 0x2b) & 0x20" (pointer_expression "*(byte *)(iVar5 + 0x2b)" (* "*") (cast_expression "(byte *)(iVar5 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x2b)" (( "(") (binary_expression "iVar5 + 0x2b" (identifier "iVar5") (+ "+") (number_literal "0x2b")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\nLAB_001177d7:\n          uVar7 = FUN_00071a80(iVar5);\n          uVar10 = uVar7 ^ 1;\n        }" ({ "{") (labeled_statement "LAB_001177d7:\n          uVar7 = FUN_00071a80(iVar5);" (statement_identifier "LAB_001177d7") (: ":") (expression_statement "uVar7 = FUN_00071a80(iVar5);" (assignment_expression "uVar7 = FUN_00071a80(iVar5)" (identifier "uVar7") (= "=") (call_expression "FUN_00071a80(iVar5)" (identifier "FUN_00071a80") (argument_list "(iVar5)" (( "(") (identifier "iVar5") () ")")))) (; ";"))) (expression_statement "uVar10 = uVar7 ^ 1;" (assignment_expression "uVar10 = uVar7 ^ 1" (identifier "uVar10") (= "=") (binary_expression "uVar7 ^ 1" (identifier "uVar7") (^ "^") (number_literal "1"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        uVar10 = uVar9;\n        if (bVar3 != 4) goto LAB_001177d7;\n      }" (else "else") (compound_statement "{\n        uVar10 = uVar9;\n        if (bVar3 != 4) goto LAB_001177d7;\n      }" ({ "{") (expression_statement "uVar10 = uVar9;" (assignment_expression "uVar10 = uVar9" (identifier "uVar10") (= "=") (identifier "uVar9")) (; ";")) (if_statement "if (bVar3 != 4) goto LAB_001177d7;" (if "if") (parenthesized_expression "(bVar3 != 4)" (( "(") (binary_expression "bVar3 != 4" (identifier "bVar3") (!= "!=") (number_literal "4")) () ")")) (goto_statement "goto LAB_001177d7;" (goto "goto") (statement_identifier "LAB_001177d7") (; ";"))) (} "}")))) (goto_statement "goto LAB_00117620;" (goto "goto") (statement_identifier "LAB_00117620") (; ";")) (} "}"))) (expression_statement "iVar6 = *(int *)(iVar8 + 8);" (assignment_expression "iVar6 = *(int *)(iVar8 + 8)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(iVar8 + 8)" (* "*") (cast_expression "(int *)(iVar8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 8)" (( "(") (binary_expression "iVar8 + 8" (identifier "iVar8") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar6 == 0) goto LAB_0011784a;" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0011784a;" (goto "goto") (statement_identifier "LAB_0011784a") (; ";"))) (if_statement "if (*(char *)(iVar6 + 0x1a25) == '\0') {\n      if (*(char *)(iVar6 + 0x2931) == '\0') goto LAB_00117760;\n      uVar9 = 0;\n    }" (if "if") (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 "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x1a25)" (( "(") (binary_expression "iVar6 + 0x1a25" (identifier "iVar6") (+ "+") (number_literal "0x1a25")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      if (*(char *)(iVar6 + 0x2931) == '\0') goto LAB_00117760;\n      uVar9 = 0;\n    }" ({ "{") (if_statement "if (*(char *)(iVar6 + 0x2931) == '\0') goto LAB_00117760;" (if "if") (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 "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x2931)" (( "(") (binary_expression "iVar6 + 0x2931" (identifier "iVar6") (+ "+") (number_literal "0x2931")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00117760;" (goto "goto") (statement_identifier "LAB_00117760") (; ";"))) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\nLAB_00117620:\n    uStack_38 = uVar4 & 1;\n    uVar9 = uVar10;\n    if (uStack_38 == 0) {\n      return uVar10;\n    }\n  }" (else "else") (compound_statement "{\nLAB_00117620:\n    uStack_38 = uVar4 & 1;\n    uVar9 = uVar10;\n    if (uStack_38 == 0) {\n      return uVar10;\n    }\n  }" ({ "{") (labeled_statement "LAB_00117620:\n    uStack_38 = uVar4 & 1;" (statement_identifier "LAB_00117620") (: ":") (expression_statement "uStack_38 = uVar4 & 1;" (assignment_expression "uStack_38 = uVar4 & 1" (identifier "uStack_38") (= "=") (binary_expression "uVar4 & 1" (identifier "uVar4") (& "&") (number_literal "1"))) (; ";"))) (expression_statement "uVar9 = uVar10;" (assignment_expression "uVar9 = uVar10" (identifier "uVar9") (= "=") (identifier "uVar10")) (; ";")) (if_statement "if (uStack_38 == 0) {\n      return uVar10;\n    }" (if "if") (parenthesized_expression "(uStack_38 == 0)" (( "(") (binary_expression "uStack_38 == 0" (identifier "uStack_38") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return uVar10;\n    }" ({ "{") (return_statement "return uVar10;" (return "return") (identifier "uVar10") (; ";")) (} "}"))) (} "}")))) (if_statement "if (((uVar4 & 8) == 0) || (*(int *)(iVar5 + 0x18) == -1)) {\n    if ((*(byte *)(iVar5 + 0x2a) & 7) == 0) {\n      if ((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) != 0) {\n        return uVar9;\n      }\n      if ((*(int *)(iVar5 + 0xc) == 0) && ((*(byte *)(iVar5 + 0x2b) & 0x20) != 0)) {\n        return uVar9;\n      }\n    }\n    else if ((*(byte *)(iVar5 + 0x2a) & 7) == 4) {\n      return uVar9;\n    }\n    uVar4 = FUN_00071a80(iVar5);\n    return uVar9 | uVar4 ^ 1;\n  }" (if "if") (parenthesized_expression "(((uVar4 & 8) == 0) || (*(int *)(iVar5 + 0x18) == -1))" (( "(") (binary_expression "((uVar4 & 8) == 0) || (*(int *)(iVar5 + 0x18) == -1)" (parenthesized_expression "((uVar4 & 8) == 0)" (( "(") (binary_expression "(uVar4 & 8) == 0" (parenthesized_expression "(uVar4 & 8)" (( "(") (binary_expression "uVar4 & 8" (identifier "uVar4") (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(int *)(iVar5 + 0x18) == -1)" (( "(") (binary_expression "*(int *)(iVar5 + 0x18) == -1" (pointer_expression "*(int *)(iVar5 + 0x18)" (* "*") (cast_expression "(int *)(iVar5 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x18)" (( "(") (binary_expression "iVar5 + 0x18" (identifier "iVar5") (+ "+") (number_literal "0x18")) () ")")))) (== "==") (number_literal "-1")) () ")"))) () ")")) (compound_statement "{\n    if ((*(byte *)(iVar5 + 0x2a) & 7) == 0) {\n      if ((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) != 0) {\n        return uVar9;\n      }\n      if ((*(int *)(iVar5 + 0xc) == 0) && ((*(byte *)(iVar5 + 0x2b) & 0x20) != 0)) {\n        return uVar9;\n      }\n    }\n    else if ((*(byte *)(iVar5 + 0x2a) & 7) == 4) {\n      return uVar9;\n    }\n    uVar4 = FUN_00071a80(iVar5);\n    return uVar9 | uVar4 ^ 1;\n  }" ({ "{") (if_statement "if ((*(byte *)(iVar5 + 0x2a) & 7) == 0) {\n      if ((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) != 0) {\n        return uVar9;\n      }\n      if ((*(int *)(iVar5 + 0xc) == 0) && ((*(byte *)(iVar5 + 0x2b) & 0x20) != 0)) {\n        return uVar9;\n      }\n    }\n    else if ((*(byte *)(iVar5 + 0x2a) & 7) == 4) {\n      return uVar9;\n    }" (if "if") (parenthesized_expression "((*(byte *)(iVar5 + 0x2a) & 7) == 0)" (( "(") (binary_expression "(*(byte *)(iVar5 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)(iVar5 + 0x2a) & 7)" (( "(") (binary_expression "*(byte *)(iVar5 + 0x2a) & 7" (pointer_expression "*(byte *)(iVar5 + 0x2a)" (* "*") (cast_expression "(byte *)(iVar5 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x2a)" (( "(") (binary_expression "iVar5 + 0x2a" (identifier "iVar5") (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if ((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) != 0) {\n        return uVar9;\n      }\n      if ((*(int *)(iVar5 + 0xc) == 0) && ((*(byte *)(iVar5 + 0x2b) & 0x20) != 0)) {\n        return uVar9;\n      }\n    }" ({ "{") (if_statement "if ((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) != 0) {\n        return uVar9;\n      }" (if "if") (parenthesized_expression "((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) != 0)" (( "(") (binary_expression "(*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) != 0" (parenthesized_expression "(*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1)" (( "(") (binary_expression "*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1" (pointer_expression "*(byte *)(*(int *)(iVar5 + 8) + 0x2c)" (* "*") (cast_expression "(byte *)(*(int *)(iVar5 + 8) + 0x2c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar5 + 8) + 0x2c)" (( "(") (binary_expression "*(int *)(iVar5 + 8) + 0x2c" (pointer_expression "*(int *)(iVar5 + 8)" (* "*") (cast_expression "(int *)(iVar5 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 8)" (( "(") (binary_expression "iVar5 + 8" (identifier "iVar5") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x2c")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        return uVar9;\n      }" ({ "{") (return_statement "return uVar9;" (return "return") (identifier "uVar9") (; ";")) (} "}"))) (if_statement "if ((*(int *)(iVar5 + 0xc) == 0) && ((*(byte *)(iVar5 + 0x2b) & 0x20) != 0)) {\n        return uVar9;\n      }" (if "if") (parenthesized_expression "((*(int *)(iVar5 + 0xc) == 0) && ((*(byte *)(iVar5 + 0x2b) & 0x20) != 0))" (( "(") (binary_expression "(*(int *)(iVar5 + 0xc) == 0) && ((*(byte *)(iVar5 + 0x2b) & 0x20) != 0)" (parenthesized_expression "(*(int *)(iVar5 + 0xc) == 0)" (( "(") (binary_expression "*(int *)(iVar5 + 0xc) == 0" (pointer_expression "*(int *)(iVar5 + 0xc)" (* "*") (cast_expression "(int *)(iVar5 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0xc)" (( "(") (binary_expression "iVar5 + 0xc" (identifier "iVar5") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)(iVar5 + 0x2b) & 0x20) != 0)" (( "(") (binary_expression "(*(byte *)(iVar5 + 0x2b) & 0x20) != 0" (parenthesized_expression "(*(byte *)(iVar5 + 0x2b) & 0x20)" (( "(") (binary_expression "*(byte *)(iVar5 + 0x2b) & 0x20" (pointer_expression "*(byte *)(iVar5 + 0x2b)" (* "*") (cast_expression "(byte *)(iVar5 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x2b)" (( "(") (binary_expression "iVar5 + 0x2b" (identifier "iVar5") (+ "+") (number_literal "0x2b")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        return uVar9;\n      }" ({ "{") (return_statement "return uVar9;" (return "return") (identifier "uVar9") (; ";")) (} "}"))) (} "}")) (else_clause "else if ((*(byte *)(iVar5 + 0x2a) & 7) == 4) {\n      return uVar9;\n    }" (else "else") (if_statement "if ((*(byte *)(iVar5 + 0x2a) & 7) == 4) {\n      return uVar9;\n    }" (if "if") (parenthesized_expression "((*(byte *)(iVar5 + 0x2a) & 7) == 4)" (( "(") (binary_expression "(*(byte *)(iVar5 + 0x2a) & 7) == 4" (parenthesized_expression "(*(byte *)(iVar5 + 0x2a) & 7)" (( "(") (binary_expression "*(byte *)(iVar5 + 0x2a) & 7" (pointer_expression "*(byte *)(iVar5 + 0x2a)" (* "*") (cast_expression "(byte *)(iVar5 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x2a)" (( "(") (binary_expression "iVar5 + 0x2a" (identifier "iVar5") (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "4")) () ")")) (compound_statement "{\n      return uVar9;\n    }" ({ "{") (return_statement "return uVar9;" (return "return") (identifier "uVar9") (; ";")) (} "}"))))) (expression_statement "uVar4 = FUN_00071a80(iVar5);" (assignment_expression "uVar4 = FUN_00071a80(iVar5)" (identifier "uVar4") (= "=") (call_expression "FUN_00071a80(iVar5)" (identifier "FUN_00071a80") (argument_list "(iVar5)" (( "(") (identifier "iVar5") () ")")))) (; ";")) (return_statement "return uVar9 | uVar4 ^ 1;" (return "return") (binary_expression "uVar9 | uVar4 ^ 1" (identifier "uVar9") (| "|") (binary_expression "uVar4 ^ 1" (identifier "uVar4") (^ "^") (number_literal "1"))) (; ";")) (} "}"))) (labeled_statement "LAB_0011776e:\n  return (uint)bVar1;" (statement_identifier "LAB_0011776e") (: ":") (return_statement "return (uint)bVar1;" (return "return") (cast_expression "(uint)bVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar1")) (; ";"))) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "<anon>": Some values do not have unique names */
/* DWARF original prototype: uint64_t do_dynsym_value(Target_arm<false> * this, Symbol * gsym) */

uint64_t __thiscall
anon_unknown.dwarf_91258a::type_1<false>::function_1(type_1<false> *this,type_2 *gsym)

{
}


(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (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: (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: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (identifier) right: (number_literal))))) 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: (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 (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 (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (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: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (return_statement (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (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: (identifier) 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: (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: (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)))))))

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

uint MASKED(int param_1,int param_2)

{
  byte bVar1;
  byte bVar2;
  byte bVar3;
  uint uVar4;
  int iVar5;
  int iVar6;
  uint extraout_ECX;
  uint uVar7;
  int iVar8;
  uint uVar9;
  uint uVar10;
  int unaff_EDI;
  undefined8 uVar11;
  uint uStack_38;
  int iStack_2c;
  
  if ((((*(byte *)(param_2 + 0x2a) & 7) != 0) ||
      ((*(byte *)(*(int *)(param_2 + 8) + 0x2c) & 1) == 0)) || (*(int *)(param_2 + 0x18) == -1)) {
                    /* WARNING: Subroutine does not return */
    FUN_002446e0("../../gold/arm.cc",0x29ef,"do_dynsym_value");
  }
  if (*(int *)(param_1 + 0x18) != 0) {
    uVar4 = FUN_00117400();
    return uVar4;
  }
  FUN_0010c970();
  uVar11 = FUN_00074f0a();
  iVar8 = (int)((ulonglong)uVar11 >> 0x20);
  iVar5 = (int)uVar11;
  if ((bRam0011756a & 2) == 0) {
    return 1;
  }
  uVar4 = 0;
  if (iVar8 - 2U < 0x6b) {
    uVar4 = (uint)(char)(&UNK_00351787)[iVar8 + unaff_EDI];
    iVar8 = *(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4);
  }
  else {
    iVar8 = *(int *)(BYTE_ARRAY_004d315d + unaff_EDI + 0xf4);
  }
  if (iVar5 == 0) {
    iVar5 = *(int *)(iVar8 + 8);
    if (iVar5 != 0) {
      if ((*(char *)(iVar5 + 0x1a25) == '\0') && (*(char *)(iVar5 + 0x2931) == '\0')) {
        return 1;
      }
      return ~uVar4 & 1 | extraout_ECX;
    }
LAB_00117867:
                    /* WARNING: Subroutine does not return */
    FUN_0010cb20();
  }
  bVar1 = *(byte *)(iVar8 + 0x10);
  uVar7 = (uint)bVar1;
  if (bVar1 == 0) {
    FUN_0010caf0();
    goto LAB_00117867;
  }
  uVar9 = (uint)*(byte *)(iVar8 + 0x11);
  uVar10 = uVar9;
  if (*(byte *)(iVar8 + 0x11) == 0) {
    bVar3 = *(byte *)(iVar5 + 0x2a) & 7;
    uVar10 = uVar7;
    if ((*(byte *)(iVar5 + 0x2a) & 7) == 0) {
      bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;
      iStack_2c = *(int *)(iVar5 + 0xc);
      if ((iStack_2c == 0) && (bVar2 != 0)) goto LAB_001175e4;
LAB_0011770c:
      if ((iStack_2c != 0xfff1) || (bVar2 != 0)) goto LAB_00117721;
      goto LAB_00117620;
    }
    if (bVar3 == 4) {
LAB_001175e4:
      iVar6 = *(int *)(iVar8 + 8);
      if (iVar6 == 0) goto LAB_0011784a;
      if (*(char *)(iVar6 + 0x1a25) == '\0') goto LAB_00117620;
      if (bVar3 == 0) {
        bVar2 = *(byte *)(iVar5 + 0x2b) >> 5 & 1;
        iStack_2c = *(int *)(iVar5 + 0xc);
        goto LAB_0011770c;
      }
    }
    if (bVar3 == 3) goto LAB_00117620;
LAB_00117721:
    uStack_38 = uVar4 & 1;
    if (uStack_38 == 0) {
LAB_00117760:
      if (((uVar4 & 8) != 0) && (*(int *)(iVar5 + 0x18) != -1)) goto LAB_0011776e;
      if ((uVar4 & 0x10) == 0) {
        iVar6 = *(int *)(iVar8 + 8);
        if (iVar6 == 0) {
LAB_0011784a:
                    /* WARNING: Subroutine does not return */
          FUN_002446e0(unaff_EDI + 0x330cf6,0x5c,unaff_EDI + 0x352f01,iVar6);
        }
        if (((*(char *)(iVar6 + 0x1a25) == '\0') && (*(char *)(iVar6 + 0x2931) == '\0')) &&
           (*(int *)(iVar5 + 0x18) != -1)) goto LAB_00117620;
      }
      if (bVar3 == 0) {
        uVar10 = uVar9;
        if (((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) == 0) &&
           ((*(int *)(iVar5 + 0xc) != 0 || (uVar10 = 0, (*(byte *)(iVar5 + 0x2b) & 0x20) == 0)))) {
LAB_001177d7:
          uVar7 = FUN_00071a80(iVar5);
          uVar10 = uVar7 ^ 1;
        }
      }
      else {
        uVar10 = uVar9;
        if (bVar3 != 4) goto LAB_001177d7;
      }
      goto LAB_00117620;
    }
    iVar6 = *(int *)(iVar8 + 8);
    if (iVar6 == 0) goto LAB_0011784a;
    if (*(char *)(iVar6 + 0x1a25) == '\0') {
      if (*(char *)(iVar6 + 0x2931) == '\0') goto LAB_00117760;
      uVar9 = 0;
    }
  }
  else {
LAB_00117620:
    uStack_38 = uVar4 & 1;
    uVar9 = uVar10;
    if (uStack_38 == 0) {
      return uVar10;
    }
  }
  if (((uVar4 & 8) == 0) || (*(int *)(iVar5 + 0x18) == -1)) {
    if ((*(byte *)(iVar5 + 0x2a) & 7) == 0) {
      if ((*(byte *)(*(int *)(iVar5 + 8) + 0x2c) & 1) != 0) {
        return uVar9;
      }
      if ((*(int *)(iVar5 + 0xc) == 0) && ((*(byte *)(iVar5 + 0x2b) & 0x20) != 0)) {
        return uVar9;
      }
    }
    else if ((*(byte *)(iVar5 + 0x2a) & 7) == 4) {
      return uVar9;
    }
    uVar4 = FUN_00071a80(iVar5);
    return uVar9 | uVar4 ^ 1;
  }
LAB_0011776e:
  return (uint)bVar1;
}

