
/* 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 "ELFOSABI": Some values do not have unique names */
/* DWARF original prototype: bool should_apply_static_reloc(Relocate * this, Sized_symbol<32> *
   gsym, uint r_type, bool is_32bit, Output_section * output_section) */

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

{
  General_options *pGVar1;
  bool bVar2;
  undefined4 *in_EAX;
  uint uVar3;
  byte in_CL;
  byte bVar4;
  byte bVar5;
  byte bVar6;
  byte bVar7;
  int in_EDX;
  uint uVar8;
  Parameters *in_stack_ffffffc8;
  byte local_32;
  int local_30;
  bool is_global;
  bool is_global_1;
  undefined4 uStack_14;
  
  uStack_14 = 0x4c1a9;
  if ((this[10].local_dynamic_type_ & LOCAL_DYNAMIC_GNU) == LOCAL_DYNAMIC_NONE) {
    return true;
  }
  uVar8 = 0;
  if (in_EDX - 1U < 0x2b) {
    uVar8 = (uint)(char)(&DAT_0024cfbf)[in_EDX];
  }
  if (in_EAX == (undefined4 *)0x0) {
    pGVar1 = gold::parameters->options_;
    if (pGVar1 == (General_options *)0x0) {
                    /* WARNING: Subroutine does not return */
      can_convert_mov_to_lea((Symbol *)gold::parameters);
    }
    if (((pGVar1->shared_).value == false) && ((pGVar1->pie_).value == false)) {
      return true;
    }
    return (bool)(~(byte)uVar8 & 1 | in_CL);
  }
  bVar6 = gold::parameters->doing_static_link_valid_;
  if ((bool)bVar6 == false) {
                    /* WARNING: Subroutine does not return */
    gold::Parameters::doing_static_link(gold::parameters,in_stack_ffffffc8);
  }
  if (gold::parameters->doing_static_link_ == false) {
    bVar4 = *(byte *)((int)in_EAX + 0x2a) & 7;
    bVar7 = 0;
    if ((*(byte *)((int)in_EAX + 0x2a) & 7) == 0) {
      local_30 = in_EAX[3];
      bVar5 = *(byte *)((int)in_EAX + 0x2b) >> 5 & 1;
      if ((local_30 == 0) && (bVar5 != 0)) goto LAB_0004c222;
LAB_0004c306:
      uVar3 = uVar8 & 1;
      if (local_30 != 0xfff1 || bVar5 != 0) goto LAB_0004c320;
LAB_0004c490:
      local_32 = 0;
      goto LAB_0004c25c;
    }
    if (bVar4 == 4) {
LAB_0004c222:
      if (gold::parameters->options_ == (General_options *)0x0) goto LAB_0004c60b;
      uVar3 = uVar8 & 1;
      if ((gold::parameters->options_->shared_).value == false) goto LAB_0004c490;
      if (bVar4 == 0) {
        local_30 = in_EAX[3];
        bVar5 = *(byte *)((int)in_EAX + 0x2b) >> 5 & 1;
        goto LAB_0004c306;
      }
    }
    uVar3 = uVar8 & 1;
    local_32 = bVar7;
    if (bVar4 == 3) goto LAB_0004c25c;
LAB_0004c320:
    uVar3 = uVar8 & 1;
    if (uVar3 == 0) {
LAB_0004c450:
      if (((uVar8 & 8) != 0) && (in_EAX[6] != -1)) {
        return (bool)bVar6;
      }
      if ((uVar8 & 0x10) == 0) {
        pGVar1 = gold::parameters->options_;
        if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;
        if ((((pGVar1->shared_).value == false) && ((pGVar1->pie_).value == false)) &&
           (in_EAX[6] != -1)) goto LAB_0004c490;
      }
      if (bVar4 == 0) {
        local_32 = *(byte *)(in_EAX[2] + 0x2c) & 1;
        if (((*(byte *)(in_EAX[2] + 0x2c) & 1) == 0) &&
           (local_32 = *(byte *)((int)in_EAX + 0x2b) >> 5 & in_EAX[3] == 0, local_32 == 0)) {
LAB_0004c4d9:
          local_32 = bVar7;
          if (((*(byte *)((int)in_EAX + 0x29) & 3) == 0) &&
             ((*(byte *)((int)in_EAX + 0x2b) & 0x10) == 0)) {
            pGVar1 = gold::parameters->options_;
            if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;
            bVar2 = (pGVar1->shared_).value;
            local_32 = bVar2;
            if ((bVar2 != false) &&
               ((local_32 = gold::Version_script_info::get_symbol_version
                                      (&(pGVar1->dynamic_list_).version_script_info_,(char *)*in_EAX
                                       ,(string *)0x0,&is_global), !(bool)local_32 ||
                (is_global != false)))) {
              pGVar1 = gold::parameters->options_;
              if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;
              if ((pGVar1->Bsymbolic_).value != false) goto LAB_0004c490;
              local_32 = bVar2;
              if ((*(byte *)(in_EAX + 10) & 0xf) != 1) {
                local_32 = (pGVar1->Bsymbolic_functions_).value ^ 1;
              }
            }
          }
        }
      }
      else {
        local_32 = bVar6;
        if (bVar4 != 4) goto LAB_0004c4d9;
      }
      goto LAB_0004c25c;
    }
    pGVar1 = gold::parameters->options_;
    if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;
    local_32 = (pGVar1->shared_).value;
    if (((bool)local_32 == false) && (local_32 = (pGVar1->pie_).value, (bool)local_32 == false))
    goto LAB_0004c450;
  }
  else {
    local_32 = 0;
    uVar3 = uVar8 & 1;
LAB_0004c25c:
    if (uVar3 == 0) goto LAB_0004c268;
  }
  bVar7 = bVar6;
  if (((uVar8 & 8) == 0) || (in_EAX[6] == -1)) {
    if ((*(byte *)((int)in_EAX + 0x2a) & 7) == 0) {
      if (((*(byte *)(in_EAX[2] + 0x2c) & 1) != 0) ||
         ((in_EAX[3] == 0 && ((*(byte *)((int)in_EAX + 0x2b) & 0x20) != 0)))) goto LAB_0004c268;
    }
    else if ((*(byte *)((int)in_EAX + 0x2a) & 7) == 4) goto LAB_0004c268;
    if (((*(byte *)((int)in_EAX + 0x29) & 3) == 0) &&
       (bVar4 = *(byte *)((int)in_EAX + 0x2b) >> 4, bVar7 = bVar4 & 1, (bVar4 & 1) == 0)) {
      pGVar1 = gold::parameters->options_;
      if (pGVar1 == (General_options *)0x0) {
LAB_0004c60b:
                    /* WARNING: Subroutine does not return */
        gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
      }
      bVar7 = bVar6;
      if ((pGVar1->shared_).value != false) {
        bVar2 = gold::Version_script_info::get_symbol_version
                          (&(pGVar1->dynamic_list_).version_script_info_,(char *)*in_EAX,
                           (string *)0x0,&is_global_1);
        if ((bVar2) && (is_global_1 == false)) {
LAB_0004c268:
          return (bool)(local_32 ^ 1);
        }
        pGVar1 = gold::parameters->options_;
        if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;
        bVar7 = (pGVar1->Bsymbolic_).value;
        if (((bool)bVar7 == false) && (bVar7 = local_32 ^ 1, (*(byte *)(in_EAX + 10) & 0xf) != 1)) {
          bVar7 = bVar7 | (pGVar1->Bsymbolic_functions_).value;
        }
      }
    }
  }
  return (bool)bVar7;
}



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

uint __regparm3 FUN_0004c1a0(undefined4 *param_1,int param_2,uint param_3,int param_4)

{
  byte bVar1;
  int iVar2;
  uint *puVar3;
  int *piVar4;
  byte bVar5;
  char cVar6;
  uint uVar7;
  int iVar8;
  byte bVar9;
  byte bVar10;
  undefined4 extraout_ECX;
  uint uVar11;
  int extraout_EDX;
  int *piVar12;
  int *piVar13;
  uint uVar14;
  uint local_38;
  byte local_32;
  int local_30;
  int iStack_2c;
  int iStack_28;
  char local_1e;
  char local_1d [9];
  undefined4 uStack_14;
  
  uStack_14 = 0x4c1a9;
  if ((*(byte *)(param_4 + 0x54) & 2) == 0) {
    return 1;
  }
  uVar14 = 0;
  if (param_2 - 1U < 0x2b) {
    uVar14 = (uint)(char)(&DAT_0024cfbf)[param_2];
  }
  if (param_1 == (undefined4 *)0x0) {
    iVar8 = *(int *)(DAT_0033f2f0 + 8);
    if (iVar8 != 0) {
      if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x2931) == '\0')) {
        return 1;
      }
      return ~uVar14 & 1 | param_3;
    }
    iVar8 = FUN_000496d0();
    goto LAB_0004c60b;
  }
  bVar5 = *(byte *)(DAT_0033f2f0 + 0x10);
  if (bVar5 == 0) {
    FUN_00049580();
    FUN_00058c4e(&DAT_0033f2f0);
    if (-1 < (char)*(byte *)(iStack_28 + 0xb)) {
      if ((*(byte *)(iStack_28 + 0xb) & 8) == 0) {
                    /* WARNING: Subroutine does not return */
        FUN_0008b620(0x53e03f,0x6ab,0x540406,extraout_ECX);
      }
      puVar3 = *(uint **)(iStack_28 + 0xc);
      uVar14 = *puVar3;
      uVar7 = uVar14 % puVar3[3];
      piVar13 = *(int **)(puVar3[2] + uVar7 * 4);
      if (piVar13 != (int *)0x0) {
        uVar11 = ((int *)*piVar13)[1];
        piVar4 = (int *)*piVar13;
        while (piVar12 = piVar4, uVar14 != uVar11) {
          piVar4 = (int *)*piVar12;
          if ((piVar4 == (int *)0x0) ||
             (uVar11 = piVar4[1], piVar13 = piVar12, uVar7 != uVar11 % puVar3[3]))
          goto LAB_0004c8d4;
        }
        if (*piVar13 != 0) goto LAB_0004c6e9;
      }
LAB_0004c8d4:
      FUN_00126fe0(puVar3,*(undefined4 *)(extraout_EDX + 8),*(uint *)(iStack_28 + 8) & 0x7ffffff,
                   uVar14);
    }
LAB_0004c6e9:
    if (iStack_2c == 0) {
      if (*(int *)(iRam00631faa + 8) == 0) {
                    /* WARNING: Subroutine does not return */
        FUN_0008b620(0x538f27,0x5c,0x540242,0);
      }
    }
    else {
      FUN_0014e8a0(iStack_2c);
    }
    FUN_000495b0();
    uVar14 = local_30 - 0xf;
    if (uVar14 < 0x1a) {
                    /* WARNING: Could not emulate address calculation at 0x0004c724 */
                    /* WARNING: Treating indirect jump as call */
      uVar14 = (*(code *)(*(int *)(uVar14 * 4 + 0x53e9fe) + 0x631cba))();
      return uVar14;
    }
    return uVar14;
  }
  if (*(char *)(DAT_0033f2f0 + 0x11) == '\0') {
    bVar9 = *(byte *)((int)param_1 + 0x2a) & 7;
    bVar1 = 0;
    iVar8 = DAT_0033f2f0;
    if ((*(byte *)((int)param_1 + 0x2a) & 7) == 0) {
      local_30 = param_1[3];
      bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;
      if ((local_30 == 0) && (bVar10 != 0)) goto LAB_0004c222;
LAB_0004c306:
      if (local_30 != 0xfff1 || bVar10 != 0) goto LAB_0004c320;
LAB_0004c490:
      local_32 = 0;
      goto LAB_0004c25c;
    }
    if (bVar9 == 4) {
LAB_0004c222:
      if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_0004c60b;
      if (*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x1a25) == '\0') goto LAB_0004c490;
      if (bVar9 == 0) {
        local_30 = param_1[3];
        bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;
        goto LAB_0004c306;
      }
    }
    local_32 = bVar1;
    if (bVar9 == 3) goto LAB_0004c25c;
LAB_0004c320:
    local_38 = uVar14 & 1;
    if (local_38 == 0) {
LAB_0004c450:
      if (((uVar14 & 8) != 0) && (param_1[6] != -1)) {
        return (uint)bVar5;
      }
      if ((uVar14 & 0x10) == 0) {
        iVar2 = *(int *)(DAT_0033f2f0 + 8);
        if (iVar2 == 0) goto LAB_0004c60b;
        if (((*(char *)(iVar2 + 0x1a25) == '\0') && (*(char *)(iVar2 + 0x2931) == '\0')) &&
           (param_1[6] != -1)) goto LAB_0004c490;
      }
      if (bVar9 == 0) {
        local_32 = *(byte *)(param_1[2] + 0x2c) & 1;
        if (((*(byte *)(param_1[2] + 0x2c) & 1) == 0) &&
           (local_32 = *(byte *)((int)param_1 + 0x2b) >> 5 & param_1[3] == 0, local_32 == 0)) {
LAB_0004c4d9:
          local_32 = bVar1;
          if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&
             ((*(byte *)((int)param_1 + 0x2b) & 0x10) == 0)) {
            iVar8 = *(int *)(DAT_0033f2f0 + 8);
            if (iVar8 == 0) goto LAB_0004c60b;
            bVar1 = *(byte *)(iVar8 + 0x1a25);
            local_32 = bVar1;
            if ((bVar1 != 0) &&
               ((local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||
                (local_1e != '\0')))) {
              iVar2 = *(int *)(DAT_0033f2f0 + 8);
              iVar8 = DAT_0033f2f0;
              if (iVar2 == 0) goto LAB_0004c60b;
              if (*(char *)(iVar2 + 0x825) != '\0') goto LAB_0004c490;
              local_32 = bVar1;
              if ((*(byte *)(param_1 + 10) & 0xf) != 1) {
                local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;
              }
            }
          }
        }
      }
      else {
        local_32 = bVar5;
        if (bVar9 != 4) goto LAB_0004c4d9;
      }
      goto LAB_0004c25c;
    }
    iVar2 = *(int *)(DAT_0033f2f0 + 8);
    if (iVar2 == 0) goto LAB_0004c60b;
    local_32 = *(byte *)(iVar2 + 0x1a25);
    if ((local_32 == 0) && (local_32 = *(byte *)(iVar2 + 0x2931), local_32 == 0)) goto LAB_0004c450;
  }
  else {
    local_32 = 0;
LAB_0004c25c:
    local_38 = uVar14 & 1;
    if (local_38 == 0) goto LAB_0004c268;
  }
  uVar11 = (uint)bVar5;
  uVar7 = uVar11;
  if (((uVar14 & 8) == 0) || (param_1[6] == -1)) {
    if ((*(byte *)((int)param_1 + 0x2a) & 7) == 0) {
      if (((*(byte *)(param_1[2] + 0x2c) & 1) != 0) ||
         ((param_1[3] == 0 && ((*(byte *)((int)param_1 + 0x2b) & 0x20) != 0)))) goto LAB_0004c268;
    }
    else if ((*(byte *)((int)param_1 + 0x2a) & 7) == 4) goto LAB_0004c268;
    if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&
       (bVar5 = *(byte *)((int)param_1 + 0x2b) >> 4, uVar7 = bVar5 & 1, (bVar5 & 1) == 0)) {
      iVar8 = *(int *)(DAT_0033f2f0 + 8);
      if (iVar8 == 0) {
LAB_0004c60b:
                    /* WARNING: Subroutine does not return */
        FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar8);
      }
      uVar7 = uVar11;
      if (*(char *)(iVar8 + 0x1a25) != '\0') {
        cVar6 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,local_1d);
        if ((cVar6 != '\0') && (local_1d[0] == '\0')) {
LAB_0004c268:
          return local_32 ^ 1;
        }
        iVar8 = *(int *)(DAT_0033f2f0 + 8);
        if (iVar8 == 0) goto LAB_0004c60b;
        uVar7 = (uint)*(byte *)(iVar8 + 0x825);
        if ((*(byte *)(iVar8 + 0x825) == 0) &&
           (uVar7 = local_32 ^ 1, (*(byte *)(param_1 + 10) & 0xf) != 1)) {
          uVar7 = (uint)(byte)((byte)uVar7 | *(byte *)(iVar8 + 0x8a1));
        }
      }
    }
  }
  return uVar7;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00035680
ADD EBX,0x2f2e57
SUB ESP,0x2c
MOV EDI,dword ptr [ESP + 0x40]
TEST byte ptr [EDI + 0x54],0x2
JZ 0x0004c2c0
LEA ESI,[EDX + -0x1]
XOR EDI,EDI
CMP ESI,0x2a
JBE 0x0004c280
LEA EBP,[EBX + 0x2f0]
MOV ESI,EAX
MOV EAX,dword ptr [EBP]
MOV dword ptr [ESP],EAX
TEST ESI,ESI
JZ 0x0004c290
MOV EAX,dword ptr [ESP]
MOVZX EDX,byte ptr [EAX + 0x10]
TEST DL,DL
JZ 0x0004c621
MOV EAX,dword ptr [ESP]
MOVZX ECX,byte ptr [EAX + 0x11]
MOV byte ptr [ESP + 0xa],CL
TEST CL,CL
JNZ 0x0004c438
MOVZX ECX,byte ptr [ESI + 0x2a]
AND ECX,0x7
MOV byte ptr [ESP + 0xb],CL
JZ 0x0004c2e0
CMP byte ptr [ESP + 0xb],0x4
JNZ 0x0004c588
MOV EAX,dword ptr [ESP]
MOV ECX,dword ptr [EAX + 0x8]
TEST ECX,ECX
JZ 0x0004c60b
MOV EAX,EDI
AND EAX,0x1
CMP byte ptr [ECX + 0x1a25],0x0
MOV dword ptr [ESP + 0x4],EAX
JZ 0x0004c490
CMP byte ptr [ESP + 0xb],0x0
JZ 0x0004c5b0
CMP byte ptr [ESP + 0xb],0x3
JNZ 0x0004c320
MOV ECX,dword ptr [ESP + 0x4]
TEST ECX,ECX
JNZ 0x0004c360
MOVZX EDX,byte ptr [ESP + 0xa]
ADD ESP,0x2c
POP EBX
POP ESI
XOR EDX,0x1
POP EDI
POP EBP
MOV EAX,EDX
RET
MOVSX EDI,byte ptr [EBX + EDX*0x1 + 0xfff0dfbf]
JMP 0x0004c1ce
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x0004c606
CMP byte ptr [EAX + 0x1a25],0x0
JZ 0x0004c2d0
NOT EDI
MOV EDX,EDI
AND EDX,0x1
OR EDX,ECX
ADD ESP,0x2c
MOV EAX,EDX
POP EBX
POP ESI
POP EDI
POP EBP
RET
ADD ESP,0x2c
MOV EDX,0x1
POP EBX
MOV EAX,EDX
POP ESI
POP EDI
POP EBP
RET
CMP byte ptr [EAX + 0x2931],0x0
MOV EDX,0x1
JZ 0x0004c2ad
JMP 0x0004c2a4
MOVZX ECX,byte ptr [ESI + 0x2b]
MOV EAX,dword ptr [ESI + 0xc]
SHR CL,0x5
MOV dword ptr [ESP + 0xc],EAX
AND ECX,0x1
TEST EAX,EAX
JNZ 0x0004c2fd
TEST CL,CL
JNZ 0x0004c222
MOV EAX,EDI
AND EAX,0x1
MOV dword ptr [ESP + 0x4],EAX
CMP dword ptr [ESP + 0xc],0xfff1
SETNZ byte ptr [ESP + 0xc]
MOVZX EAX,byte ptr [ESP + 0xc]
OR AL,CL
JZ 0x0004c490
MOV EAX,dword ptr [ESP + 0x4]
TEST EAX,EAX
JZ 0x0004c450
MOV EAX,dword ptr [ESP]
MOV ECX,dword ptr [EAX + 0x8]
TEST ECX,ECX
JZ 0x0004c60b
MOVZX EAX,byte ptr [ECX + 0x1a25]
TEST AL,AL
JNZ 0x0004c560
MOVZX ECX,byte ptr [ECX + 0x2931]
TEST CL,CL
JZ 0x0004c450
MOV byte ptr [ESP + 0xa],CL
LEA ESI,[ESI]
AND EDI,0x8
JZ 0x0004c36f
CMP dword ptr [ESI + 0x18],-0x1
JNZ 0x0004c2ad
MOVZX EAX,byte ptr [ESI + 0x2a]
AND EAX,0x7
JNZ 0x0004c550
MOV EAX,dword ptr [ESI + 0x8]
TEST byte ptr [EAX + 0x2c],0x1
JNZ 0x0004c268
MOV EAX,dword ptr [ESI + 0xc]
TEST EAX,EAX
JNZ 0x0004c39a
TEST byte ptr [ESI + 0x2b],0x20
JNZ 0x0004c268
TEST byte ptr [ESI + 0x29],0x3
JNZ 0x0004c2ad
MOVZX EAX,byte ptr [ESI + 0x2b]
SHR AL,0x4
AND EAX,0x1
JNZ 0x0004c5c6
MOV EAX,dword ptr [EBP]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x0004c60b
CMP byte ptr [EAX + 0x1a25],0x0
JZ 0x0004c2ad
LEA EDX,[ESP + 0x1f]
ADD EAX,0x59a8
PUSH EDX
PUSH 0x0
PUSH dword ptr [ESI]
PUSH EAX
CALL 0x001453a0
ADD ESP,0x10
TEST AL,AL
JZ 0x0004c3f5
CMP byte ptr [ESP + 0x1f],0x0
JZ 0x0004c268
MOV EAX,dword ptr [EBP]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x0004c60b
MOVZX EDX,byte ptr [EAX + 0x825]
TEST DL,DL
JNZ 0x0004c2ad
MOVZX ECX,byte ptr [ESI + 0x28]
MOVZX EDX,byte ptr [ESP + 0xa]
AND ECX,0xf
XOR EDX,0x1
CMP CL,0x1
JZ 0x0004c2ad
OR DL,byte ptr [EAX + 0x8a1]
JMP 0x0004c2ad
MOV EAX,EDI
MOV byte ptr [ESP + 0xa],0x0
AND EAX,0x1
MOV dword ptr [ESP + 0x4],EAX
JMP 0x0004c25c
TEST EDI,0x8
JZ 0x0004c462
CMP dword ptr [ESI + 0x18],-0x1
JNZ 0x0004c2ad
TEST EDI,0x10
JNZ 0x0004c4a0
MOV EAX,dword ptr [ESP]
MOV ECX,dword ptr [EAX + 0x8]
TEST ECX,ECX
JZ 0x0004c60b
CMP byte ptr [ECX + 0x1a25],0x0
JNZ 0x0004c4a0
CMP byte ptr [ECX + 0x2931],0x0
JNZ 0x0004c4a0
CMP dword ptr [ESI + 0x18],-0x1
JZ 0x0004c4a0
MOV byte ptr [ESP + 0xa],0x0
JMP 0x0004c25c
CMP byte ptr [ESP + 0xb],0x0
JNZ 0x0004c570
MOV ECX,dword ptr [ESI + 0x8]
MOVZX ECX,byte ptr [ECX + 0x2c]
AND ECX,0x1
JNZ 0x0004c5a0
MOV EAX,dword ptr [ESI + 0xc]
MOVZX ECX,byte ptr [ESI + 0x2b]
TEST EAX,EAX
SETZ byte ptr [ESP + 0xb]
MOVZX EAX,byte ptr [ESP + 0xb]
SHR CL,0x5
AND CL,AL
JNZ 0x0004c5a0
TEST byte ptr [ESI + 0x29],0x3
JNZ 0x0004c25c
TEST byte ptr [ESI + 0x2b],0x10
JNZ 0x0004c25c
MOV EAX,dword ptr [ESP]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x0004c60b
MOVZX ECX,byte ptr [EAX + 0x1a25]
MOV byte ptr [ESP + 0xa],CL
TEST CL,CL
JZ 0x0004c25c
LEA ECX,[ESP + 0x1e]
ADD EAX,0x59a8
MOV byte ptr [ESP],DL
PUSH ECX
PUSH 0x0
PUSH dword ptr [ESI]
PUSH EAX
CALL 0x001453a0
ADD ESP,0x10
MOVZX EDX,byte ptr [ESP]
TEST AL,AL
JZ 0x0004c5cd
CMP byte ptr [ESP + 0x1e],0x0
JNZ 0x0004c5cd
MOV byte ptr [ESP + 0xa],AL
JMP 0x0004c25c
CMP AL,0x4
JZ 0x0004c268
JMP 0x0004c39a
MOV byte ptr [ESP + 0xa],AL
JMP 0x0004c360
CMP byte ptr [ESP + 0xb],0x4
JNZ 0x0004c4d9
MOV byte ptr [ESP + 0xa],DL
JMP 0x0004c25c
MOV EAX,EDI
AND EAX,0x1
MOV dword ptr [ESP + 0x4],EAX
JMP 0x0004c251
MOV byte ptr [ESP + 0xa],CL
JMP 0x0004c25c
MOVZX ECX,byte ptr [ESI + 0x2b]
MOV EAX,dword ptr [ESI + 0xc]
SHR CL,0x5
MOV dword ptr [ESP + 0xc],EAX
AND ECX,0x1
JMP 0x0004c306
MOV EDX,EAX
JMP 0x0004c2ad
MOV EAX,dword ptr [EBP]
MOV ECX,dword ptr [EAX + 0x8]
TEST ECX,ECX
JZ 0x0004c60b
CMP byte ptr [ECX + 0x825],0x0
JNZ 0x0004c490
MOVZX EAX,byte ptr [ESI + 0x28]
AND EAX,0xf
CMP AL,0x1
JZ 0x0004c25c
MOVZX EAX,byte ptr [ECX + 0x8a1]
XOR EAX,0x1
MOV byte ptr [ESP + 0xa],AL
JMP 0x0004c25c
CALL 0x000496d0
PUSH EAX
LEA EAX,[EBX + 0xfff0e588]
PUSH EAX
LEA EAX,[EBX + 0xfff0726d]
PUSH 0x5c
PUSH EAX
CALL 0x0008b620
CALL 0x00049580
LEA ESI,[ESI]
LEA ESI,[ESI]
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nuint __regparm3 FUN_0004c1a0(undefined4 *param_1,int param_2,uint param_3,int param_4)\n\n{\n  byte bVar1;\n  int iVar2;\n  uint *puVar3;\n  int *piVar4;\n  byte bVar5;\n  char cVar6;\n  uint uVar7;\n  int iVar8;\n  byte bVar9;\n  byte bVar10;\n  undefined4 extraout_ECX;\n  uint uVar11;\n  int extraout_EDX;\n  int *piVar12;\n  int *piVar13;\n  uint uVar14;\n  uint local_38;\n  byte local_32;\n  int local_30;\n  int iStack_2c;\n  int iStack_28;\n  char local_1e;\n  char local_1d [9];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4c1a9;\n  if ((*(byte *)(param_4 + 0x54) & 2) == 0) {\n    return 1;\n  }\n  uVar14 = 0;\n  if (param_2 - 1U < 0x2b) {\n    uVar14 = (uint)(char)(&DAT_0024cfbf)[param_2];\n  }\n  if (param_1 == (undefined4 *)0x0) {\n    iVar8 = *(int *)(DAT_0033f2f0 + 8);\n    if (iVar8 != 0) {\n      if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar14 & 1 | param_3;\n    }\n    iVar8 = FUN_000496d0();\n    goto LAB_0004c60b;\n  }\n  bVar5 = *(byte *)(DAT_0033f2f0 + 0x10);\n  if (bVar5 == 0) {\n    FUN_00049580();\n    FUN_00058c4e(&DAT_0033f2f0);\n    if (-1 < (char)*(byte *)(iStack_28 + 0xb)) {\n      if ((*(byte *)(iStack_28 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620(0x53e03f,0x6ab,0x540406,extraout_ECX);\n      }\n      puVar3 = *(uint **)(iStack_28 + 0xc);\n      uVar14 = *puVar3;\n      uVar7 = uVar14 % puVar3[3];\n      piVar13 = *(int **)(puVar3[2] + uVar7 * 4);\n      if (piVar13 != (int *)0x0) {\n        uVar11 = ((int *)*piVar13)[1];\n        piVar4 = (int *)*piVar13;\n        while (piVar12 = piVar4, uVar14 != uVar11) {\n          piVar4 = (int *)*piVar12;\n          if ((piVar4 == (int *)0x0) ||\n             (uVar11 = piVar4[1], piVar13 = piVar12, uVar7 != uVar11 % puVar3[3]))\n          goto LAB_0004c8d4;\n        }\n        if (*piVar13 != 0) goto LAB_0004c6e9;\n      }\nLAB_0004c8d4:\n      FUN_00126fe0(puVar3,*(undefined4 *)(extraout_EDX + 8),*(uint *)(iStack_28 + 8) & 0x7ffffff,\n                   uVar14);\n    }\nLAB_0004c6e9:\n    if (iStack_2c == 0) {\n      if (*(int *)(iRam00631faa + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620(0x538f27,0x5c,0x540242,0);\n      }\n    }\n    else {\n      FUN_0014e8a0(iStack_2c);\n    }\n    FUN_000495b0();\n    uVar14 = local_30 - 0xf;\n    if (uVar14 < 0x1a) {\n                    /* WARNING: Could not emulate address calculation at 0x0004c724 */\n                    /* WARNING: Treating indirect jump as call */\n      uVar14 = (*(code *)(*(int *)(uVar14 * 4 + 0x53e9fe) + 0x631cba))();\n      return uVar14;\n    }\n    return uVar14;\n  }\n  if (*(char *)(DAT_0033f2f0 + 0x11) == '\0') {\n    bVar9 = *(byte *)((int)param_1 + 0x2a) & 7;\n    bVar1 = 0;\n    iVar8 = DAT_0033f2f0;\n    if ((*(byte *)((int)param_1 + 0x2a) & 7) == 0) {\n      local_30 = param_1[3];\n      bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;\n      if ((local_30 == 0) && (bVar10 != 0)) goto LAB_0004c222;\nLAB_0004c306:\n      if (local_30 != 0xfff1 || bVar10 != 0) goto LAB_0004c320;\nLAB_0004c490:\n      local_32 = 0;\n      goto LAB_0004c25c;\n    }\n    if (bVar9 == 4) {\nLAB_0004c222:\n      if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_0004c60b;\n      if (*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x1a25) == '\0') goto LAB_0004c490;\n      if (bVar9 == 0) {\n        local_30 = param_1[3];\n        bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;\n        goto LAB_0004c306;\n      }\n    }\n    local_32 = bVar1;\n    if (bVar9 == 3) goto LAB_0004c25c;\nLAB_0004c320:\n    local_38 = uVar14 & 1;\n    if (local_38 == 0) {\nLAB_0004c450:\n      if (((uVar14 & 8) != 0) && (param_1[6] != -1)) {\n        return (uint)bVar5;\n      }\n      if ((uVar14 & 0x10) == 0) {\n        iVar2 = *(int *)(DAT_0033f2f0 + 8);\n        if (iVar2 == 0) goto LAB_0004c60b;\n        if (((*(char *)(iVar2 + 0x1a25) == '\0') && (*(char *)(iVar2 + 0x2931) == '\0')) &&\n           (param_1[6] != -1)) goto LAB_0004c490;\n      }\n      if (bVar9 == 0) {\n        local_32 = *(byte *)(param_1[2] + 0x2c) & 1;\n        if (((*(byte *)(param_1[2] + 0x2c) & 1) == 0) &&\n           (local_32 = *(byte *)((int)param_1 + 0x2b) >> 5 & param_1[3] == 0, local_32 == 0)) {\nLAB_0004c4d9:\n          local_32 = bVar1;\n          if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)param_1 + 0x2b) & 0x10) == 0)) {\n            iVar8 = *(int *)(DAT_0033f2f0 + 8);\n            if (iVar8 == 0) goto LAB_0004c60b;\n            bVar1 = *(byte *)(iVar8 + 0x1a25);\n            local_32 = bVar1;\n            if ((bVar1 != 0) &&\n               ((local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0')))) {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              iVar8 = DAT_0033f2f0;\n              if (iVar2 == 0) goto LAB_0004c60b;\n              if (*(char *)(iVar2 + 0x825) != '\0') goto LAB_0004c490;\n              local_32 = bVar1;\n              if ((*(byte *)(param_1 + 10) & 0xf) != 1) {\n                local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        local_32 = bVar5;\n        if (bVar9 != 4) goto LAB_0004c4d9;\n      }\n      goto LAB_0004c25c;\n    }\n    iVar2 = *(int *)(DAT_0033f2f0 + 8);\n    if (iVar2 == 0) goto LAB_0004c60b;\n    local_32 = *(byte *)(iVar2 + 0x1a25);\n    if ((local_32 == 0) && (local_32 = *(byte *)(iVar2 + 0x2931), local_32 == 0)) goto LAB_0004c450;\n  }\n  else {\n    local_32 = 0;\nLAB_0004c25c:\n    local_38 = uVar14 & 1;\n    if (local_38 == 0) goto LAB_0004c268;\n  }\n  uVar11 = (uint)bVar5;\n  uVar7 = uVar11;\n  if (((uVar14 & 8) == 0) || (param_1[6] == -1)) {\n    if ((*(byte *)((int)param_1 + 0x2a) & 7) == 0) {\n      if (((*(byte *)(param_1[2] + 0x2c) & 1) != 0) ||\n         ((param_1[3] == 0 && ((*(byte *)((int)param_1 + 0x2b) & 0x20) != 0)))) goto LAB_0004c268;\n    }\n    else if ((*(byte *)((int)param_1 + 0x2a) & 7) == 4) goto LAB_0004c268;\n    if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n       (bVar5 = *(byte *)((int)param_1 + 0x2b) >> 4, uVar7 = bVar5 & 1, (bVar5 & 1) == 0)) {\n      iVar8 = *(int *)(DAT_0033f2f0 + 8);\n      if (iVar8 == 0) {\nLAB_0004c60b:\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar8);\n      }\n      uVar7 = uVar11;\n      if (*(char *)(iVar8 + 0x1a25) != '\0') {\n        cVar6 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,local_1d);\n        if ((cVar6 != '\0') && (local_1d[0] == '\0')) {\nLAB_0004c268:\n          return local_32 ^ 1;\n        }\n        iVar8 = *(int *)(DAT_0033f2f0 + 8);\n        if (iVar8 == 0) goto LAB_0004c60b;\n        uVar7 = (uint)*(byte *)(iVar8 + 0x825);\n        if ((*(byte *)(iVar8 + 0x825) == 0) &&\n           (uVar7 = local_32 ^ 1, (*(byte *)(param_1 + 10) & 0xf) != 1)) {\n          uVar7 = (uint)(byte)((byte)uVar7 | *(byte *)(iVar8 + 0x8a1));\n        }\n      }\n    }\n  }\n  return uVar7;\n}\n\n" comment (function_definition "uint __regparm3 FUN_0004c1a0(undefined4 *param_1,int param_2,uint param_3,int param_4)\n\n{\n  byte bVar1;\n  int iVar2;\n  uint *puVar3;\n  int *piVar4;\n  byte bVar5;\n  char cVar6;\n  uint uVar7;\n  int iVar8;\n  byte bVar9;\n  byte bVar10;\n  undefined4 extraout_ECX;\n  uint uVar11;\n  int extraout_EDX;\n  int *piVar12;\n  int *piVar13;\n  uint uVar14;\n  uint local_38;\n  byte local_32;\n  int local_30;\n  int iStack_2c;\n  int iStack_28;\n  char local_1e;\n  char local_1d [9];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4c1a9;\n  if ((*(byte *)(param_4 + 0x54) & 2) == 0) {\n    return 1;\n  }\n  uVar14 = 0;\n  if (param_2 - 1U < 0x2b) {\n    uVar14 = (uint)(char)(&DAT_0024cfbf)[param_2];\n  }\n  if (param_1 == (undefined4 *)0x0) {\n    iVar8 = *(int *)(DAT_0033f2f0 + 8);\n    if (iVar8 != 0) {\n      if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar14 & 1 | param_3;\n    }\n    iVar8 = FUN_000496d0();\n    goto LAB_0004c60b;\n  }\n  bVar5 = *(byte *)(DAT_0033f2f0 + 0x10);\n  if (bVar5 == 0) {\n    FUN_00049580();\n    FUN_00058c4e(&DAT_0033f2f0);\n    if (-1 < (char)*(byte *)(iStack_28 + 0xb)) {\n      if ((*(byte *)(iStack_28 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620(0x53e03f,0x6ab,0x540406,extraout_ECX);\n      }\n      puVar3 = *(uint **)(iStack_28 + 0xc);\n      uVar14 = *puVar3;\n      uVar7 = uVar14 % puVar3[3];\n      piVar13 = *(int **)(puVar3[2] + uVar7 * 4);\n      if (piVar13 != (int *)0x0) {\n        uVar11 = ((int *)*piVar13)[1];\n        piVar4 = (int *)*piVar13;\n        while (piVar12 = piVar4, uVar14 != uVar11) {\n          piVar4 = (int *)*piVar12;\n          if ((piVar4 == (int *)0x0) ||\n             (uVar11 = piVar4[1], piVar13 = piVar12, uVar7 != uVar11 % puVar3[3]))\n          goto LAB_0004c8d4;\n        }\n        if (*piVar13 != 0) goto LAB_0004c6e9;\n      }\nLAB_0004c8d4:\n      FUN_00126fe0(puVar3,*(undefined4 *)(extraout_EDX + 8),*(uint *)(iStack_28 + 8) & 0x7ffffff,\n                   uVar14);\n    }\nLAB_0004c6e9:\n    if (iStack_2c == 0) {\n      if (*(int *)(iRam00631faa + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620(0x538f27,0x5c,0x540242,0);\n      }\n    }\n    else {\n      FUN_0014e8a0(iStack_2c);\n    }\n    FUN_000495b0();\n    uVar14 = local_30 - 0xf;\n    if (uVar14 < 0x1a) {\n                    /* WARNING: Could not emulate address calculation at 0x0004c724 */\n                    /* WARNING: Treating indirect jump as call */\n      uVar14 = (*(code *)(*(int *)(uVar14 * 4 + 0x53e9fe) + 0x631cba))();\n      return uVar14;\n    }\n    return uVar14;\n  }\n  if (*(char *)(DAT_0033f2f0 + 0x11) == '\0') {\n    bVar9 = *(byte *)((int)param_1 + 0x2a) & 7;\n    bVar1 = 0;\n    iVar8 = DAT_0033f2f0;\n    if ((*(byte *)((int)param_1 + 0x2a) & 7) == 0) {\n      local_30 = param_1[3];\n      bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;\n      if ((local_30 == 0) && (bVar10 != 0)) goto LAB_0004c222;\nLAB_0004c306:\n      if (local_30 != 0xfff1 || bVar10 != 0) goto LAB_0004c320;\nLAB_0004c490:\n      local_32 = 0;\n      goto LAB_0004c25c;\n    }\n    if (bVar9 == 4) {\nLAB_0004c222:\n      if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_0004c60b;\n      if (*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x1a25) == '\0') goto LAB_0004c490;\n      if (bVar9 == 0) {\n        local_30 = param_1[3];\n        bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;\n        goto LAB_0004c306;\n      }\n    }\n    local_32 = bVar1;\n    if (bVar9 == 3) goto LAB_0004c25c;\nLAB_0004c320:\n    local_38 = uVar14 & 1;\n    if (local_38 == 0) {\nLAB_0004c450:\n      if (((uVar14 & 8) != 0) && (param_1[6] != -1)) {\n        return (uint)bVar5;\n      }\n      if ((uVar14 & 0x10) == 0) {\n        iVar2 = *(int *)(DAT_0033f2f0 + 8);\n        if (iVar2 == 0) goto LAB_0004c60b;\n        if (((*(char *)(iVar2 + 0x1a25) == '\0') && (*(char *)(iVar2 + 0x2931) == '\0')) &&\n           (param_1[6] != -1)) goto LAB_0004c490;\n      }\n      if (bVar9 == 0) {\n        local_32 = *(byte *)(param_1[2] + 0x2c) & 1;\n        if (((*(byte *)(param_1[2] + 0x2c) & 1) == 0) &&\n           (local_32 = *(byte *)((int)param_1 + 0x2b) >> 5 & param_1[3] == 0, local_32 == 0)) {\nLAB_0004c4d9:\n          local_32 = bVar1;\n          if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)param_1 + 0x2b) & 0x10) == 0)) {\n            iVar8 = *(int *)(DAT_0033f2f0 + 8);\n            if (iVar8 == 0) goto LAB_0004c60b;\n            bVar1 = *(byte *)(iVar8 + 0x1a25);\n            local_32 = bVar1;\n            if ((bVar1 != 0) &&\n               ((local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0')))) {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              iVar8 = DAT_0033f2f0;\n              if (iVar2 == 0) goto LAB_0004c60b;\n              if (*(char *)(iVar2 + 0x825) != '\0') goto LAB_0004c490;\n              local_32 = bVar1;\n              if ((*(byte *)(param_1 + 10) & 0xf) != 1) {\n                local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        local_32 = bVar5;\n        if (bVar9 != 4) goto LAB_0004c4d9;\n      }\n      goto LAB_0004c25c;\n    }\n    iVar2 = *(int *)(DAT_0033f2f0 + 8);\n    if (iVar2 == 0) goto LAB_0004c60b;\n    local_32 = *(byte *)(iVar2 + 0x1a25);\n    if ((local_32 == 0) && (local_32 = *(byte *)(iVar2 + 0x2931), local_32 == 0)) goto LAB_0004c450;\n  }\n  else {\n    local_32 = 0;\nLAB_0004c25c:\n    local_38 = uVar14 & 1;\n    if (local_38 == 0) goto LAB_0004c268;\n  }\n  uVar11 = (uint)bVar5;\n  uVar7 = uVar11;\n  if (((uVar14 & 8) == 0) || (param_1[6] == -1)) {\n    if ((*(byte *)((int)param_1 + 0x2a) & 7) == 0) {\n      if (((*(byte *)(param_1[2] + 0x2c) & 1) != 0) ||\n         ((param_1[3] == 0 && ((*(byte *)((int)param_1 + 0x2b) & 0x20) != 0)))) goto LAB_0004c268;\n    }\n    else if ((*(byte *)((int)param_1 + 0x2a) & 7) == 4) goto LAB_0004c268;\n    if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n       (bVar5 = *(byte *)((int)param_1 + 0x2b) >> 4, uVar7 = bVar5 & 1, (bVar5 & 1) == 0)) {\n      iVar8 = *(int *)(DAT_0033f2f0 + 8);\n      if (iVar8 == 0) {\nLAB_0004c60b:\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar8);\n      }\n      uVar7 = uVar11;\n      if (*(char *)(iVar8 + 0x1a25) != '\0') {\n        cVar6 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,local_1d);\n        if ((cVar6 != '\0') && (local_1d[0] == '\0')) {\nLAB_0004c268:\n          return local_32 ^ 1;\n        }\n        iVar8 = *(int *)(DAT_0033f2f0 + 8);\n        if (iVar8 == 0) goto LAB_0004c60b;\n        uVar7 = (uint)*(byte *)(iVar8 + 0x825);\n        if ((*(byte *)(iVar8 + 0x825) == 0) &&\n           (uVar7 = local_32 ^ 1, (*(byte *)(param_1 + 10) & 0xf) != 1)) {\n          uVar7 = (uint)(byte)((byte)uVar7 | *(byte *)(iVar8 + 0x8a1));\n        }\n      }\n    }\n  }\n  return uVar7;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_0004c1a0(undefined4 *param_1,int param_2,uint param_3,int param_4)" identifier (parameter_list "(undefined4 *param_1,int param_2,uint param_3,int param_4)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  int iVar2;\n  uint *puVar3;\n  int *piVar4;\n  byte bVar5;\n  char cVar6;\n  uint uVar7;\n  int iVar8;\n  byte bVar9;\n  byte bVar10;\n  undefined4 extraout_ECX;\n  uint uVar11;\n  int extraout_EDX;\n  int *piVar12;\n  int *piVar13;\n  uint uVar14;\n  uint local_38;\n  byte local_32;\n  int local_30;\n  int iStack_2c;\n  int iStack_28;\n  char local_1e;\n  char local_1d [9];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4c1a9;\n  if ((*(byte *)(param_4 + 0x54) & 2) == 0) {\n    return 1;\n  }\n  uVar14 = 0;\n  if (param_2 - 1U < 0x2b) {\n    uVar14 = (uint)(char)(&DAT_0024cfbf)[param_2];\n  }\n  if (param_1 == (undefined4 *)0x0) {\n    iVar8 = *(int *)(DAT_0033f2f0 + 8);\n    if (iVar8 != 0) {\n      if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar14 & 1 | param_3;\n    }\n    iVar8 = FUN_000496d0();\n    goto LAB_0004c60b;\n  }\n  bVar5 = *(byte *)(DAT_0033f2f0 + 0x10);\n  if (bVar5 == 0) {\n    FUN_00049580();\n    FUN_00058c4e(&DAT_0033f2f0);\n    if (-1 < (char)*(byte *)(iStack_28 + 0xb)) {\n      if ((*(byte *)(iStack_28 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620(0x53e03f,0x6ab,0x540406,extraout_ECX);\n      }\n      puVar3 = *(uint **)(iStack_28 + 0xc);\n      uVar14 = *puVar3;\n      uVar7 = uVar14 % puVar3[3];\n      piVar13 = *(int **)(puVar3[2] + uVar7 * 4);\n      if (piVar13 != (int *)0x0) {\n        uVar11 = ((int *)*piVar13)[1];\n        piVar4 = (int *)*piVar13;\n        while (piVar12 = piVar4, uVar14 != uVar11) {\n          piVar4 = (int *)*piVar12;\n          if ((piVar4 == (int *)0x0) ||\n             (uVar11 = piVar4[1], piVar13 = piVar12, uVar7 != uVar11 % puVar3[3]))\n          goto LAB_0004c8d4;\n        }\n        if (*piVar13 != 0) goto LAB_0004c6e9;\n      }\nLAB_0004c8d4:\n      FUN_00126fe0(puVar3,*(undefined4 *)(extraout_EDX + 8),*(uint *)(iStack_28 + 8) & 0x7ffffff,\n                   uVar14);\n    }\nLAB_0004c6e9:\n    if (iStack_2c == 0) {\n      if (*(int *)(iRam00631faa + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620(0x538f27,0x5c,0x540242,0);\n      }\n    }\n    else {\n      FUN_0014e8a0(iStack_2c);\n    }\n    FUN_000495b0();\n    uVar14 = local_30 - 0xf;\n    if (uVar14 < 0x1a) {\n                    /* WARNING: Could not emulate address calculation at 0x0004c724 */\n                    /* WARNING: Treating indirect jump as call */\n      uVar14 = (*(code *)(*(int *)(uVar14 * 4 + 0x53e9fe) + 0x631cba))();\n      return uVar14;\n    }\n    return uVar14;\n  }\n  if (*(char *)(DAT_0033f2f0 + 0x11) == '\0') {\n    bVar9 = *(byte *)((int)param_1 + 0x2a) & 7;\n    bVar1 = 0;\n    iVar8 = DAT_0033f2f0;\n    if ((*(byte *)((int)param_1 + 0x2a) & 7) == 0) {\n      local_30 = param_1[3];\n      bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;\n      if ((local_30 == 0) && (bVar10 != 0)) goto LAB_0004c222;\nLAB_0004c306:\n      if (local_30 != 0xfff1 || bVar10 != 0) goto LAB_0004c320;\nLAB_0004c490:\n      local_32 = 0;\n      goto LAB_0004c25c;\n    }\n    if (bVar9 == 4) {\nLAB_0004c222:\n      if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_0004c60b;\n      if (*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x1a25) == '\0') goto LAB_0004c490;\n      if (bVar9 == 0) {\n        local_30 = param_1[3];\n        bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;\n        goto LAB_0004c306;\n      }\n    }\n    local_32 = bVar1;\n    if (bVar9 == 3) goto LAB_0004c25c;\nLAB_0004c320:\n    local_38 = uVar14 & 1;\n    if (local_38 == 0) {\nLAB_0004c450:\n      if (((uVar14 & 8) != 0) && (param_1[6] != -1)) {\n        return (uint)bVar5;\n      }\n      if ((uVar14 & 0x10) == 0) {\n        iVar2 = *(int *)(DAT_0033f2f0 + 8);\n        if (iVar2 == 0) goto LAB_0004c60b;\n        if (((*(char *)(iVar2 + 0x1a25) == '\0') && (*(char *)(iVar2 + 0x2931) == '\0')) &&\n           (param_1[6] != -1)) goto LAB_0004c490;\n      }\n      if (bVar9 == 0) {\n        local_32 = *(byte *)(param_1[2] + 0x2c) & 1;\n        if (((*(byte *)(param_1[2] + 0x2c) & 1) == 0) &&\n           (local_32 = *(byte *)((int)param_1 + 0x2b) >> 5 & param_1[3] == 0, local_32 == 0)) {\nLAB_0004c4d9:\n          local_32 = bVar1;\n          if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)param_1 + 0x2b) & 0x10) == 0)) {\n            iVar8 = *(int *)(DAT_0033f2f0 + 8);\n            if (iVar8 == 0) goto LAB_0004c60b;\n            bVar1 = *(byte *)(iVar8 + 0x1a25);\n            local_32 = bVar1;\n            if ((bVar1 != 0) &&\n               ((local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0')))) {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              iVar8 = DAT_0033f2f0;\n              if (iVar2 == 0) goto LAB_0004c60b;\n              if (*(char *)(iVar2 + 0x825) != '\0') goto LAB_0004c490;\n              local_32 = bVar1;\n              if ((*(byte *)(param_1 + 10) & 0xf) != 1) {\n                local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        local_32 = bVar5;\n        if (bVar9 != 4) goto LAB_0004c4d9;\n      }\n      goto LAB_0004c25c;\n    }\n    iVar2 = *(int *)(DAT_0033f2f0 + 8);\n    if (iVar2 == 0) goto LAB_0004c60b;\n    local_32 = *(byte *)(iVar2 + 0x1a25);\n    if ((local_32 == 0) && (local_32 = *(byte *)(iVar2 + 0x2931), local_32 == 0)) goto LAB_0004c450;\n  }\n  else {\n    local_32 = 0;\nLAB_0004c25c:\n    local_38 = uVar14 & 1;\n    if (local_38 == 0) goto LAB_0004c268;\n  }\n  uVar11 = (uint)bVar5;\n  uVar7 = uVar11;\n  if (((uVar14 & 8) == 0) || (param_1[6] == -1)) {\n    if ((*(byte *)((int)param_1 + 0x2a) & 7) == 0) {\n      if (((*(byte *)(param_1[2] + 0x2c) & 1) != 0) ||\n         ((param_1[3] == 0 && ((*(byte *)((int)param_1 + 0x2b) & 0x20) != 0)))) goto LAB_0004c268;\n    }\n    else if ((*(byte *)((int)param_1 + 0x2a) & 7) == 4) goto LAB_0004c268;\n    if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n       (bVar5 = *(byte *)((int)param_1 + 0x2b) >> 4, uVar7 = bVar5 & 1, (bVar5 & 1) == 0)) {\n      iVar8 = *(int *)(DAT_0033f2f0 + 8);\n      if (iVar8 == 0) {\nLAB_0004c60b:\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar8);\n      }\n      uVar7 = uVar11;\n      if (*(char *)(iVar8 + 0x1a25) != '\0') {\n        cVar6 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,local_1d);\n        if ((cVar6 != '\0') && (local_1d[0] == '\0')) {\nLAB_0004c268:\n          return local_32 ^ 1;\n        }\n        iVar8 = *(int *)(DAT_0033f2f0 + 8);\n        if (iVar8 == 0) goto LAB_0004c60b;\n        uVar7 = (uint)*(byte *)(iVar8 + 0x825);\n        if ((*(byte *)(iVar8 + 0x825) == 0) &&\n           (uVar7 = local_32 ^ 1, (*(byte *)(param_1 + 10) & 0xf) != 1)) {\n          uVar7 = (uint)(byte)((byte)uVar7 | *(byte *)(iVar8 + 0x8a1));\n        }\n      }\n    }\n  }\n  return uVar7;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "byte bVar5;" type_identifier identifier ;) (declaration "char cVar6;" primitive_type identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "byte bVar9;" type_identifier identifier ;) (declaration "byte bVar10;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "int extraout_EDX;" primitive_type identifier ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "uint local_38;" type_identifier identifier ;) (declaration "byte local_32;" type_identifier identifier ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "int iStack_2c;" primitive_type identifier ;) (declaration "int iStack_28;" primitive_type identifier ;) (declaration "char local_1e;" primitive_type identifier ;) (declaration "char local_1d [9];" primitive_type (array_declarator "local_1d [9]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x4c1a9;" (assignment_expression "uStack_14 = 0x4c1a9" identifier = number_literal) ;) (if_statement "if ((*(byte *)(param_4 + 0x54) & 2) == 0) {\n    return 1;\n  }" if (parenthesized_expression "((*(byte *)(param_4 + 0x54) & 2) == 0)" ( (binary_expression "(*(byte *)(param_4 + 0x54) & 2) == 0" (parenthesized_expression "(*(byte *)(param_4 + 0x54) & 2)" ( (binary_expression "*(byte *)(param_4 + 0x54) & 2" (pointer_expression "*(byte *)(param_4 + 0x54)" * (cast_expression "(byte *)(param_4 + 0x54)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x54)" ( (binary_expression "param_4 + 0x54" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (if_statement "if (param_2 - 1U < 0x2b) {\n    uVar14 = (uint)(char)(&DAT_0024cfbf)[param_2];\n  }" if (parenthesized_expression "(param_2 - 1U < 0x2b)" ( (binary_expression "param_2 - 1U < 0x2b" (binary_expression "param_2 - 1U" identifier - number_literal) < number_literal) )) (compound_statement "{\n    uVar14 = (uint)(char)(&DAT_0024cfbf)[param_2];\n  }" { (expression_statement "uVar14 = (uint)(char)(&DAT_0024cfbf)[param_2];" (assignment_expression "uVar14 = (uint)(char)(&DAT_0024cfbf)[param_2]" identifier = (subscript_expression "(uint)(char)(&DAT_0024cfbf)[param_2]" (call_expression "(uint)(char)(&DAT_0024cfbf)" (call_expression "(uint)(char)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(char)" ( identifier ))) (argument_list "(&DAT_0024cfbf)" ( (pointer_expression "&DAT_0024cfbf" & identifier) ))) [ identifier ])) ;) })) (if_statement "if (param_1 == (undefined4 *)0x0) {\n    iVar8 = *(int *)(DAT_0033f2f0 + 8);\n    if (iVar8 != 0) {\n      if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar14 & 1 | param_3;\n    }\n    iVar8 = FUN_000496d0();\n    goto LAB_0004c60b;\n  }" if (parenthesized_expression "(param_1 == (undefined4 *)0x0)" ( (binary_expression "param_1 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar8 = *(int *)(DAT_0033f2f0 + 8);\n    if (iVar8 != 0) {\n      if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar14 & 1 | param_3;\n    }\n    iVar8 = FUN_000496d0();\n    goto LAB_0004c60b;\n  }" { (expression_statement "iVar8 = *(int *)(DAT_0033f2f0 + 8);" (assignment_expression "iVar8 = *(int *)(DAT_0033f2f0 + 8)" identifier = (pointer_expression "*(int *)(DAT_0033f2f0 + 8)" * (cast_expression "(int *)(DAT_0033f2f0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0033f2f0 + 8)" ( (binary_expression "DAT_0033f2f0 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 != 0) {\n      if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar14 & 1 | param_3;\n    }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n      if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar14 & 1 | param_3;\n    }" { (if_statement "if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x2931) == '\0')) {\n        return 1;\n      }" if (parenthesized_expression "((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x2931) == '\0'))" ( (binary_expression "(*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x2931) == '\0')" (parenthesized_expression "(*(char *)(iVar8 + 0x1a25) == '\0')" ( (binary_expression "*(char *)(iVar8 + 0x1a25) == '\0'" (pointer_expression "*(char *)(iVar8 + 0x1a25)" * (cast_expression "(char *)(iVar8 + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1a25)" ( (binary_expression "iVar8 + 0x1a25" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(char *)(iVar8 + 0x2931) == '\0')" ( (binary_expression "*(char *)(iVar8 + 0x2931) == '\0'" (pointer_expression "*(char *)(iVar8 + 0x2931)" * (cast_expression "(char *)(iVar8 + 0x2931)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x2931)" ( (binary_expression "iVar8 + 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 ~uVar14 & 1 | param_3;" return (binary_expression "~uVar14 & 1 | param_3" (binary_expression "~uVar14 & 1" (unary_expression "~uVar14" ~ identifier) & number_literal) | identifier) ;) })) (expression_statement "iVar8 = FUN_000496d0();" (assignment_expression "iVar8 = FUN_000496d0()" identifier = (call_expression "FUN_000496d0()" identifier (argument_list "()" ( )))) ;) (goto_statement "goto LAB_0004c60b;" goto statement_identifier ;) })) (expression_statement "bVar5 = *(byte *)(DAT_0033f2f0 + 0x10);" (assignment_expression "bVar5 = *(byte *)(DAT_0033f2f0 + 0x10)" identifier = (pointer_expression "*(byte *)(DAT_0033f2f0 + 0x10)" * (cast_expression "(byte *)(DAT_0033f2f0 + 0x10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0033f2f0 + 0x10)" ( (binary_expression "DAT_0033f2f0 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (bVar5 == 0) {\n    FUN_00049580();\n    FUN_00058c4e(&DAT_0033f2f0);\n    if (-1 < (char)*(byte *)(iStack_28 + 0xb)) {\n      if ((*(byte *)(iStack_28 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620(0x53e03f,0x6ab,0x540406,extraout_ECX);\n      }\n      puVar3 = *(uint **)(iStack_28 + 0xc);\n      uVar14 = *puVar3;\n      uVar7 = uVar14 % puVar3[3];\n      piVar13 = *(int **)(puVar3[2] + uVar7 * 4);\n      if (piVar13 != (int *)0x0) {\n        uVar11 = ((int *)*piVar13)[1];\n        piVar4 = (int *)*piVar13;\n        while (piVar12 = piVar4, uVar14 != uVar11) {\n          piVar4 = (int *)*piVar12;\n          if ((piVar4 == (int *)0x0) ||\n             (uVar11 = piVar4[1], piVar13 = piVar12, uVar7 != uVar11 % puVar3[3]))\n          goto LAB_0004c8d4;\n        }\n        if (*piVar13 != 0) goto LAB_0004c6e9;\n      }\nLAB_0004c8d4:\n      FUN_00126fe0(puVar3,*(undefined4 *)(extraout_EDX + 8),*(uint *)(iStack_28 + 8) & 0x7ffffff,\n                   uVar14);\n    }\nLAB_0004c6e9:\n    if (iStack_2c == 0) {\n      if (*(int *)(iRam00631faa + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620(0x538f27,0x5c,0x540242,0);\n      }\n    }\n    else {\n      FUN_0014e8a0(iStack_2c);\n    }\n    FUN_000495b0();\n    uVar14 = local_30 - 0xf;\n    if (uVar14 < 0x1a) {\n                    /* WARNING: Could not emulate address calculation at 0x0004c724 */\n                    /* WARNING: Treating indirect jump as call */\n      uVar14 = (*(code *)(*(int *)(uVar14 * 4 + 0x53e9fe) + 0x631cba))();\n      return uVar14;\n    }\n    return uVar14;\n  }" if (parenthesized_expression "(bVar5 == 0)" ( (binary_expression "bVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    FUN_00049580();\n    FUN_00058c4e(&DAT_0033f2f0);\n    if (-1 < (char)*(byte *)(iStack_28 + 0xb)) {\n      if ((*(byte *)(iStack_28 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620(0x53e03f,0x6ab,0x540406,extraout_ECX);\n      }\n      puVar3 = *(uint **)(iStack_28 + 0xc);\n      uVar14 = *puVar3;\n      uVar7 = uVar14 % puVar3[3];\n      piVar13 = *(int **)(puVar3[2] + uVar7 * 4);\n      if (piVar13 != (int *)0x0) {\n        uVar11 = ((int *)*piVar13)[1];\n        piVar4 = (int *)*piVar13;\n        while (piVar12 = piVar4, uVar14 != uVar11) {\n          piVar4 = (int *)*piVar12;\n          if ((piVar4 == (int *)0x0) ||\n             (uVar11 = piVar4[1], piVar13 = piVar12, uVar7 != uVar11 % puVar3[3]))\n          goto LAB_0004c8d4;\n        }\n        if (*piVar13 != 0) goto LAB_0004c6e9;\n      }\nLAB_0004c8d4:\n      FUN_00126fe0(puVar3,*(undefined4 *)(extraout_EDX + 8),*(uint *)(iStack_28 + 8) & 0x7ffffff,\n                   uVar14);\n    }\nLAB_0004c6e9:\n    if (iStack_2c == 0) {\n      if (*(int *)(iRam00631faa + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620(0x538f27,0x5c,0x540242,0);\n      }\n    }\n    else {\n      FUN_0014e8a0(iStack_2c);\n    }\n    FUN_000495b0();\n    uVar14 = local_30 - 0xf;\n    if (uVar14 < 0x1a) {\n                    /* WARNING: Could not emulate address calculation at 0x0004c724 */\n                    /* WARNING: Treating indirect jump as call */\n      uVar14 = (*(code *)(*(int *)(uVar14 * 4 + 0x53e9fe) + 0x631cba))();\n      return uVar14;\n    }\n    return uVar14;\n  }" { (expression_statement "FUN_00049580();" (call_expression "FUN_00049580()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00058c4e(&DAT_0033f2f0);" (call_expression "FUN_00058c4e(&DAT_0033f2f0)" identifier (argument_list "(&DAT_0033f2f0)" ( (pointer_expression "&DAT_0033f2f0" & identifier) ))) ;) (if_statement "if (-1 < (char)*(byte *)(iStack_28 + 0xb)) {\n      if ((*(byte *)(iStack_28 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620(0x53e03f,0x6ab,0x540406,extraout_ECX);\n      }\n      puVar3 = *(uint **)(iStack_28 + 0xc);\n      uVar14 = *puVar3;\n      uVar7 = uVar14 % puVar3[3];\n      piVar13 = *(int **)(puVar3[2] + uVar7 * 4);\n      if (piVar13 != (int *)0x0) {\n        uVar11 = ((int *)*piVar13)[1];\n        piVar4 = (int *)*piVar13;\n        while (piVar12 = piVar4, uVar14 != uVar11) {\n          piVar4 = (int *)*piVar12;\n          if ((piVar4 == (int *)0x0) ||\n             (uVar11 = piVar4[1], piVar13 = piVar12, uVar7 != uVar11 % puVar3[3]))\n          goto LAB_0004c8d4;\n        }\n        if (*piVar13 != 0) goto LAB_0004c6e9;\n      }\nLAB_0004c8d4:\n      FUN_00126fe0(puVar3,*(undefined4 *)(extraout_EDX + 8),*(uint *)(iStack_28 + 8) & 0x7ffffff,\n                   uVar14);\n    }" if (parenthesized_expression "(-1 < (char)*(byte *)(iStack_28 + 0xb))" ( (binary_expression "-1 < (char)*(byte *)(iStack_28 + 0xb)" number_literal < (cast_expression "(char)*(byte *)(iStack_28 + 0xb)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)(iStack_28 + 0xb)" * (cast_expression "(byte *)(iStack_28 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_28 + 0xb)" ( (binary_expression "iStack_28 + 0xb" identifier + number_literal) )))))) )) (compound_statement "{\n      if ((*(byte *)(iStack_28 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620(0x53e03f,0x6ab,0x540406,extraout_ECX);\n      }\n      puVar3 = *(uint **)(iStack_28 + 0xc);\n      uVar14 = *puVar3;\n      uVar7 = uVar14 % puVar3[3];\n      piVar13 = *(int **)(puVar3[2] + uVar7 * 4);\n      if (piVar13 != (int *)0x0) {\n        uVar11 = ((int *)*piVar13)[1];\n        piVar4 = (int *)*piVar13;\n        while (piVar12 = piVar4, uVar14 != uVar11) {\n          piVar4 = (int *)*piVar12;\n          if ((piVar4 == (int *)0x0) ||\n             (uVar11 = piVar4[1], piVar13 = piVar12, uVar7 != uVar11 % puVar3[3]))\n          goto LAB_0004c8d4;\n        }\n        if (*piVar13 != 0) goto LAB_0004c6e9;\n      }\nLAB_0004c8d4:\n      FUN_00126fe0(puVar3,*(undefined4 *)(extraout_EDX + 8),*(uint *)(iStack_28 + 8) & 0x7ffffff,\n                   uVar14);\n    }" { (if_statement "if ((*(byte *)(iStack_28 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620(0x53e03f,0x6ab,0x540406,extraout_ECX);\n      }" if (parenthesized_expression "((*(byte *)(iStack_28 + 0xb) & 8) == 0)" ( (binary_expression "(*(byte *)(iStack_28 + 0xb) & 8) == 0" (parenthesized_expression "(*(byte *)(iStack_28 + 0xb) & 8)" ( (binary_expression "*(byte *)(iStack_28 + 0xb) & 8" (pointer_expression "*(byte *)(iStack_28 + 0xb)" * (cast_expression "(byte *)(iStack_28 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_28 + 0xb)" ( (binary_expression "iStack_28 + 0xb" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620(0x53e03f,0x6ab,0x540406,extraout_ECX);\n      }" { comment (expression_statement "FUN_0008b620(0x53e03f,0x6ab,0x540406,extraout_ECX);" (call_expression "FUN_0008b620(0x53e03f,0x6ab,0x540406,extraout_ECX)" identifier (argument_list "(0x53e03f,0x6ab,0x540406,extraout_ECX)" ( number_literal , number_literal , number_literal , identifier ))) ;) })) (expression_statement "puVar3 = *(uint **)(iStack_28 + 0xc);" (assignment_expression "puVar3 = *(uint **)(iStack_28 + 0xc)" identifier = (pointer_expression "*(uint **)(iStack_28 + 0xc)" * (cast_expression "(uint **)(iStack_28 + 0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iStack_28 + 0xc)" ( (binary_expression "iStack_28 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = *puVar3;" (assignment_expression "uVar14 = *puVar3" identifier = (pointer_expression "*puVar3" * identifier)) ;) (expression_statement "uVar7 = uVar14 % puVar3[3];" (assignment_expression "uVar7 = uVar14 % puVar3[3]" identifier = (binary_expression "uVar14 % puVar3[3]" identifier % (subscript_expression "puVar3[3]" identifier [ number_literal ]))) ;) (expression_statement "piVar13 = *(int **)(puVar3[2] + uVar7 * 4);" (assignment_expression "piVar13 = *(int **)(puVar3[2] + uVar7 * 4)" identifier = (pointer_expression "*(int **)(puVar3[2] + uVar7 * 4)" * (cast_expression "(int **)(puVar3[2] + uVar7 * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3[2] + uVar7 * 4)" ( (binary_expression "puVar3[2] + uVar7 * 4" (subscript_expression "puVar3[2]" identifier [ number_literal ]) + (binary_expression "uVar7 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (piVar13 != (int *)0x0) {\n        uVar11 = ((int *)*piVar13)[1];\n        piVar4 = (int *)*piVar13;\n        while (piVar12 = piVar4, uVar14 != uVar11) {\n          piVar4 = (int *)*piVar12;\n          if ((piVar4 == (int *)0x0) ||\n             (uVar11 = piVar4[1], piVar13 = piVar12, uVar7 != uVar11 % puVar3[3]))\n          goto LAB_0004c8d4;\n        }\n        if (*piVar13 != 0) goto LAB_0004c6e9;\n      }" if (parenthesized_expression "(piVar13 != (int *)0x0)" ( (binary_expression "piVar13 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar11 = ((int *)*piVar13)[1];\n        piVar4 = (int *)*piVar13;\n        while (piVar12 = piVar4, uVar14 != uVar11) {\n          piVar4 = (int *)*piVar12;\n          if ((piVar4 == (int *)0x0) ||\n             (uVar11 = piVar4[1], piVar13 = piVar12, uVar7 != uVar11 % puVar3[3]))\n          goto LAB_0004c8d4;\n        }\n        if (*piVar13 != 0) goto LAB_0004c6e9;\n      }" { (expression_statement "uVar11 = ((int *)*piVar13)[1];" (assignment_expression "uVar11 = ((int *)*piVar13)[1]" identifier = (subscript_expression "((int *)*piVar13)[1]" (parenthesized_expression "((int *)*piVar13)" ( (cast_expression "(int *)*piVar13" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar13" * identifier)) )) [ number_literal ])) ;) (expression_statement "piVar4 = (int *)*piVar13;" (assignment_expression "piVar4 = (int *)*piVar13" identifier = (cast_expression "(int *)*piVar13" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar13" * identifier))) ;) (while_statement "while (piVar12 = piVar4, uVar14 != uVar11) {\n          piVar4 = (int *)*piVar12;\n          if ((piVar4 == (int *)0x0) ||\n             (uVar11 = piVar4[1], piVar13 = piVar12, uVar7 != uVar11 % puVar3[3]))\n          goto LAB_0004c8d4;\n        }" while (parenthesized_expression "(piVar12 = piVar4, uVar14 != uVar11)" ( (comma_expression "piVar12 = piVar4, uVar14 != uVar11" (assignment_expression "piVar12 = piVar4" identifier = identifier) , (binary_expression "uVar14 != uVar11" identifier != identifier)) )) (compound_statement "{\n          piVar4 = (int *)*piVar12;\n          if ((piVar4 == (int *)0x0) ||\n             (uVar11 = piVar4[1], piVar13 = piVar12, uVar7 != uVar11 % puVar3[3]))\n          goto LAB_0004c8d4;\n        }" { (expression_statement "piVar4 = (int *)*piVar12;" (assignment_expression "piVar4 = (int *)*piVar12" identifier = (cast_expression "(int *)*piVar12" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar12" * identifier))) ;) (if_statement "if ((piVar4 == (int *)0x0) ||\n             (uVar11 = piVar4[1], piVar13 = piVar12, uVar7 != uVar11 % puVar3[3]))\n          goto LAB_0004c8d4;" if (parenthesized_expression "((piVar4 == (int *)0x0) ||\n             (uVar11 = piVar4[1], piVar13 = piVar12, uVar7 != uVar11 % puVar3[3]))" ( (binary_expression "(piVar4 == (int *)0x0) ||\n             (uVar11 = piVar4[1], piVar13 = piVar12, uVar7 != uVar11 % puVar3[3])" (parenthesized_expression "(piVar4 == (int *)0x0)" ( (binary_expression "piVar4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(uVar11 = piVar4[1], piVar13 = piVar12, uVar7 != uVar11 % puVar3[3])" ( (comma_expression "uVar11 = piVar4[1], piVar13 = piVar12, uVar7 != uVar11 % puVar3[3]" (assignment_expression "uVar11 = piVar4[1]" identifier = (subscript_expression "piVar4[1]" identifier [ number_literal ])) , (comma_expression "piVar13 = piVar12, uVar7 != uVar11 % puVar3[3]" (assignment_expression "piVar13 = piVar12" identifier = identifier) , (binary_expression "uVar7 != uVar11 % puVar3[3]" identifier != (binary_expression "uVar11 % puVar3[3]" identifier % (subscript_expression "puVar3[3]" identifier [ number_literal ]))))) ))) )) (goto_statement "goto LAB_0004c8d4;" goto statement_identifier ;)) })) (if_statement "if (*piVar13 != 0) goto LAB_0004c6e9;" if (parenthesized_expression "(*piVar13 != 0)" ( (binary_expression "*piVar13 != 0" (pointer_expression "*piVar13" * identifier) != number_literal) )) (goto_statement "goto LAB_0004c6e9;" goto statement_identifier ;)) })) (labeled_statement "LAB_0004c8d4:\n      FUN_00126fe0(puVar3,*(undefined4 *)(extraout_EDX + 8),*(uint *)(iStack_28 + 8) & 0x7ffffff,\n                   uVar14);" statement_identifier : (expression_statement "FUN_00126fe0(puVar3,*(undefined4 *)(extraout_EDX + 8),*(uint *)(iStack_28 + 8) & 0x7ffffff,\n                   uVar14);" (call_expression "FUN_00126fe0(puVar3,*(undefined4 *)(extraout_EDX + 8),*(uint *)(iStack_28 + 8) & 0x7ffffff,\n                   uVar14)" identifier (argument_list "(puVar3,*(undefined4 *)(extraout_EDX + 8),*(uint *)(iStack_28 + 8) & 0x7ffffff,\n                   uVar14)" ( identifier , (pointer_expression "*(undefined4 *)(extraout_EDX + 8)" * (cast_expression "(undefined4 *)(extraout_EDX + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(extraout_EDX + 8)" ( (binary_expression "extraout_EDX + 8" identifier + number_literal) )))) , (binary_expression "*(uint *)(iStack_28 + 8) & 0x7ffffff" (pointer_expression "*(uint *)(iStack_28 + 8)" * (cast_expression "(uint *)(iStack_28 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_28 + 8)" ( (binary_expression "iStack_28 + 8" identifier + number_literal) )))) & number_literal) , identifier ))) ;)) })) (labeled_statement "LAB_0004c6e9:\n    if (iStack_2c == 0) {\n      if (*(int *)(iRam00631faa + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620(0x538f27,0x5c,0x540242,0);\n      }\n    }\n    else {\n      FUN_0014e8a0(iStack_2c);\n    }" statement_identifier : (if_statement "if (iStack_2c == 0) {\n      if (*(int *)(iRam00631faa + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620(0x538f27,0x5c,0x540242,0);\n      }\n    }\n    else {\n      FUN_0014e8a0(iStack_2c);\n    }" if (parenthesized_expression "(iStack_2c == 0)" ( (binary_expression "iStack_2c == 0" identifier == number_literal) )) (compound_statement "{\n      if (*(int *)(iRam00631faa + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620(0x538f27,0x5c,0x540242,0);\n      }\n    }" { (if_statement "if (*(int *)(iRam00631faa + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620(0x538f27,0x5c,0x540242,0);\n      }" if (parenthesized_expression "(*(int *)(iRam00631faa + 8) == 0)" ( (binary_expression "*(int *)(iRam00631faa + 8) == 0" (pointer_expression "*(int *)(iRam00631faa + 8)" * (cast_expression "(int *)(iRam00631faa + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iRam00631faa + 8)" ( (binary_expression "iRam00631faa + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620(0x538f27,0x5c,0x540242,0);\n      }" { comment (expression_statement "FUN_0008b620(0x538f27,0x5c,0x540242,0);" (call_expression "FUN_0008b620(0x538f27,0x5c,0x540242,0)" identifier (argument_list "(0x538f27,0x5c,0x540242,0)" ( number_literal , number_literal , number_literal , number_literal ))) ;) })) }) (else_clause "else {\n      FUN_0014e8a0(iStack_2c);\n    }" else (compound_statement "{\n      FUN_0014e8a0(iStack_2c);\n    }" { (expression_statement "FUN_0014e8a0(iStack_2c);" (call_expression "FUN_0014e8a0(iStack_2c)" identifier (argument_list "(iStack_2c)" ( identifier ))) ;) })))) (expression_statement "FUN_000495b0();" (call_expression "FUN_000495b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar14 = local_30 - 0xf;" (assignment_expression "uVar14 = local_30 - 0xf" identifier = (binary_expression "local_30 - 0xf" identifier - number_literal)) ;) (if_statement "if (uVar14 < 0x1a) {\n                    /* WARNING: Could not emulate address calculation at 0x0004c724 */\n                    /* WARNING: Treating indirect jump as call */\n      uVar14 = (*(code *)(*(int *)(uVar14 * 4 + 0x53e9fe) + 0x631cba))();\n      return uVar14;\n    }" if (parenthesized_expression "(uVar14 < 0x1a)" ( (binary_expression "uVar14 < 0x1a" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not emulate address calculation at 0x0004c724 */\n                    /* WARNING: Treating indirect jump as call */\n      uVar14 = (*(code *)(*(int *)(uVar14 * 4 + 0x53e9fe) + 0x631cba))();\n      return uVar14;\n    }" { comment comment (expression_statement "uVar14 = (*(code *)(*(int *)(uVar14 * 4 + 0x53e9fe) + 0x631cba))();" (assignment_expression "uVar14 = (*(code *)(*(int *)(uVar14 * 4 + 0x53e9fe) + 0x631cba))()" identifier = (call_expression "(*(code *)(*(int *)(uVar14 * 4 + 0x53e9fe) + 0x631cba))()" (parenthesized_expression "(*(code *)(*(int *)(uVar14 * 4 + 0x53e9fe) + 0x631cba))" ( (pointer_expression "*(code *)(*(int *)(uVar14 * 4 + 0x53e9fe) + 0x631cba)" * (cast_expression "(code *)(*(int *)(uVar14 * 4 + 0x53e9fe) + 0x631cba)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(uVar14 * 4 + 0x53e9fe) + 0x631cba)" ( (binary_expression "*(int *)(uVar14 * 4 + 0x53e9fe) + 0x631cba" (pointer_expression "*(int *)(uVar14 * 4 + 0x53e9fe)" * (cast_expression "(int *)(uVar14 * 4 + 0x53e9fe)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar14 * 4 + 0x53e9fe)" ( (binary_expression "uVar14 * 4 + 0x53e9fe" (binary_expression "uVar14 * 4" identifier * number_literal) + number_literal) )))) + number_literal) )))) )) (argument_list "()" ( )))) ;) (return_statement "return uVar14;" return identifier ;) })) (return_statement "return uVar14;" return identifier ;) })) (if_statement "if (*(char *)(DAT_0033f2f0 + 0x11) == '\0') {\n    bVar9 = *(byte *)((int)param_1 + 0x2a) & 7;\n    bVar1 = 0;\n    iVar8 = DAT_0033f2f0;\n    if ((*(byte *)((int)param_1 + 0x2a) & 7) == 0) {\n      local_30 = param_1[3];\n      bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;\n      if ((local_30 == 0) && (bVar10 != 0)) goto LAB_0004c222;\nLAB_0004c306:\n      if (local_30 != 0xfff1 || bVar10 != 0) goto LAB_0004c320;\nLAB_0004c490:\n      local_32 = 0;\n      goto LAB_0004c25c;\n    }\n    if (bVar9 == 4) {\nLAB_0004c222:\n      if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_0004c60b;\n      if (*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x1a25) == '\0') goto LAB_0004c490;\n      if (bVar9 == 0) {\n        local_30 = param_1[3];\n        bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;\n        goto LAB_0004c306;\n      }\n    }\n    local_32 = bVar1;\n    if (bVar9 == 3) goto LAB_0004c25c;\nLAB_0004c320:\n    local_38 = uVar14 & 1;\n    if (local_38 == 0) {\nLAB_0004c450:\n      if (((uVar14 & 8) != 0) && (param_1[6] != -1)) {\n        return (uint)bVar5;\n      }\n      if ((uVar14 & 0x10) == 0) {\n        iVar2 = *(int *)(DAT_0033f2f0 + 8);\n        if (iVar2 == 0) goto LAB_0004c60b;\n        if (((*(char *)(iVar2 + 0x1a25) == '\0') && (*(char *)(iVar2 + 0x2931) == '\0')) &&\n           (param_1[6] != -1)) goto LAB_0004c490;\n      }\n      if (bVar9 == 0) {\n        local_32 = *(byte *)(param_1[2] + 0x2c) & 1;\n        if (((*(byte *)(param_1[2] + 0x2c) & 1) == 0) &&\n           (local_32 = *(byte *)((int)param_1 + 0x2b) >> 5 & param_1[3] == 0, local_32 == 0)) {\nLAB_0004c4d9:\n          local_32 = bVar1;\n          if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)param_1 + 0x2b) & 0x10) == 0)) {\n            iVar8 = *(int *)(DAT_0033f2f0 + 8);\n            if (iVar8 == 0) goto LAB_0004c60b;\n            bVar1 = *(byte *)(iVar8 + 0x1a25);\n            local_32 = bVar1;\n            if ((bVar1 != 0) &&\n               ((local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0')))) {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              iVar8 = DAT_0033f2f0;\n              if (iVar2 == 0) goto LAB_0004c60b;\n              if (*(char *)(iVar2 + 0x825) != '\0') goto LAB_0004c490;\n              local_32 = bVar1;\n              if ((*(byte *)(param_1 + 10) & 0xf) != 1) {\n                local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        local_32 = bVar5;\n        if (bVar9 != 4) goto LAB_0004c4d9;\n      }\n      goto LAB_0004c25c;\n    }\n    iVar2 = *(int *)(DAT_0033f2f0 + 8);\n    if (iVar2 == 0) goto LAB_0004c60b;\n    local_32 = *(byte *)(iVar2 + 0x1a25);\n    if ((local_32 == 0) && (local_32 = *(byte *)(iVar2 + 0x2931), local_32 == 0)) goto LAB_0004c450;\n  }\n  else {\n    local_32 = 0;\nLAB_0004c25c:\n    local_38 = uVar14 & 1;\n    if (local_38 == 0) goto LAB_0004c268;\n  }" if (parenthesized_expression "(*(char *)(DAT_0033f2f0 + 0x11) == '\0')" ( (binary_expression "*(char *)(DAT_0033f2f0 + 0x11) == '\0'" (pointer_expression "*(char *)(DAT_0033f2f0 + 0x11)" * (cast_expression "(char *)(DAT_0033f2f0 + 0x11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0033f2f0 + 0x11)" ( (binary_expression "DAT_0033f2f0 + 0x11" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    bVar9 = *(byte *)((int)param_1 + 0x2a) & 7;\n    bVar1 = 0;\n    iVar8 = DAT_0033f2f0;\n    if ((*(byte *)((int)param_1 + 0x2a) & 7) == 0) {\n      local_30 = param_1[3];\n      bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;\n      if ((local_30 == 0) && (bVar10 != 0)) goto LAB_0004c222;\nLAB_0004c306:\n      if (local_30 != 0xfff1 || bVar10 != 0) goto LAB_0004c320;\nLAB_0004c490:\n      local_32 = 0;\n      goto LAB_0004c25c;\n    }\n    if (bVar9 == 4) {\nLAB_0004c222:\n      if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_0004c60b;\n      if (*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x1a25) == '\0') goto LAB_0004c490;\n      if (bVar9 == 0) {\n        local_30 = param_1[3];\n        bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;\n        goto LAB_0004c306;\n      }\n    }\n    local_32 = bVar1;\n    if (bVar9 == 3) goto LAB_0004c25c;\nLAB_0004c320:\n    local_38 = uVar14 & 1;\n    if (local_38 == 0) {\nLAB_0004c450:\n      if (((uVar14 & 8) != 0) && (param_1[6] != -1)) {\n        return (uint)bVar5;\n      }\n      if ((uVar14 & 0x10) == 0) {\n        iVar2 = *(int *)(DAT_0033f2f0 + 8);\n        if (iVar2 == 0) goto LAB_0004c60b;\n        if (((*(char *)(iVar2 + 0x1a25) == '\0') && (*(char *)(iVar2 + 0x2931) == '\0')) &&\n           (param_1[6] != -1)) goto LAB_0004c490;\n      }\n      if (bVar9 == 0) {\n        local_32 = *(byte *)(param_1[2] + 0x2c) & 1;\n        if (((*(byte *)(param_1[2] + 0x2c) & 1) == 0) &&\n           (local_32 = *(byte *)((int)param_1 + 0x2b) >> 5 & param_1[3] == 0, local_32 == 0)) {\nLAB_0004c4d9:\n          local_32 = bVar1;\n          if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)param_1 + 0x2b) & 0x10) == 0)) {\n            iVar8 = *(int *)(DAT_0033f2f0 + 8);\n            if (iVar8 == 0) goto LAB_0004c60b;\n            bVar1 = *(byte *)(iVar8 + 0x1a25);\n            local_32 = bVar1;\n            if ((bVar1 != 0) &&\n               ((local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0')))) {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              iVar8 = DAT_0033f2f0;\n              if (iVar2 == 0) goto LAB_0004c60b;\n              if (*(char *)(iVar2 + 0x825) != '\0') goto LAB_0004c490;\n              local_32 = bVar1;\n              if ((*(byte *)(param_1 + 10) & 0xf) != 1) {\n                local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        local_32 = bVar5;\n        if (bVar9 != 4) goto LAB_0004c4d9;\n      }\n      goto LAB_0004c25c;\n    }\n    iVar2 = *(int *)(DAT_0033f2f0 + 8);\n    if (iVar2 == 0) goto LAB_0004c60b;\n    local_32 = *(byte *)(iVar2 + 0x1a25);\n    if ((local_32 == 0) && (local_32 = *(byte *)(iVar2 + 0x2931), local_32 == 0)) goto LAB_0004c450;\n  }" { (expression_statement "bVar9 = *(byte *)((int)param_1 + 0x2a) & 7;" (assignment_expression "bVar9 = *(byte *)((int)param_1 + 0x2a) & 7" identifier = (binary_expression "*(byte *)((int)param_1 + 0x2a) & 7" (pointer_expression "*(byte *)((int)param_1 + 0x2a)" * (cast_expression "(byte *)((int)param_1 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x2a)" ( (binary_expression "(int)param_1 + 0x2a" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal)) ;) (expression_statement "bVar1 = 0;" (assignment_expression "bVar1 = 0" identifier = number_literal) ;) (expression_statement "iVar8 = DAT_0033f2f0;" (assignment_expression "iVar8 = DAT_0033f2f0" identifier = identifier) ;) (if_statement "if ((*(byte *)((int)param_1 + 0x2a) & 7) == 0) {\n      local_30 = param_1[3];\n      bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;\n      if ((local_30 == 0) && (bVar10 != 0)) goto LAB_0004c222;\nLAB_0004c306:\n      if (local_30 != 0xfff1 || bVar10 != 0) goto LAB_0004c320;\nLAB_0004c490:\n      local_32 = 0;\n      goto LAB_0004c25c;\n    }" if (parenthesized_expression "((*(byte *)((int)param_1 + 0x2a) & 7) == 0)" ( (binary_expression "(*(byte *)((int)param_1 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)((int)param_1 + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)param_1 + 0x2a) & 7" (pointer_expression "*(byte *)((int)param_1 + 0x2a)" * (cast_expression "(byte *)((int)param_1 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x2a)" ( (binary_expression "(int)param_1 + 0x2a" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      local_30 = param_1[3];\n      bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;\n      if ((local_30 == 0) && (bVar10 != 0)) goto LAB_0004c222;\nLAB_0004c306:\n      if (local_30 != 0xfff1 || bVar10 != 0) goto LAB_0004c320;\nLAB_0004c490:\n      local_32 = 0;\n      goto LAB_0004c25c;\n    }" { (expression_statement "local_30 = param_1[3];" (assignment_expression "local_30 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;" (assignment_expression "bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1" identifier = (binary_expression "*(byte *)((int)param_1 + 0x2b) >> 5 & 1" (binary_expression "*(byte *)((int)param_1 + 0x2b) >> 5" (pointer_expression "*(byte *)((int)param_1 + 0x2b)" * (cast_expression "(byte *)((int)param_1 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x2b)" ( (binary_expression "(int)param_1 + 0x2b" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) >> number_literal) & number_literal)) ;) (if_statement "if ((local_30 == 0) && (bVar10 != 0)) goto LAB_0004c222;" if (parenthesized_expression "((local_30 == 0) && (bVar10 != 0))" ( (binary_expression "(local_30 == 0) && (bVar10 != 0)" (parenthesized_expression "(local_30 == 0)" ( (binary_expression "local_30 == 0" identifier == number_literal) )) && (parenthesized_expression "(bVar10 != 0)" ( (binary_expression "bVar10 != 0" identifier != number_literal) ))) )) (goto_statement "goto LAB_0004c222;" goto statement_identifier ;)) (labeled_statement "LAB_0004c306:\n      if (local_30 != 0xfff1 || bVar10 != 0) goto LAB_0004c320;" statement_identifier : (if_statement "if (local_30 != 0xfff1 || bVar10 != 0) goto LAB_0004c320;" if (parenthesized_expression "(local_30 != 0xfff1 || bVar10 != 0)" ( (binary_expression "local_30 != 0xfff1 || bVar10 != 0" (binary_expression "local_30 != 0xfff1" identifier != number_literal) || (binary_expression "bVar10 != 0" identifier != number_literal)) )) (goto_statement "goto LAB_0004c320;" goto statement_identifier ;))) (labeled_statement "LAB_0004c490:\n      local_32 = 0;" statement_identifier : (expression_statement "local_32 = 0;" (assignment_expression "local_32 = 0" identifier = number_literal) ;)) (goto_statement "goto LAB_0004c25c;" goto statement_identifier ;) })) (if_statement "if (bVar9 == 4) {\nLAB_0004c222:\n      if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_0004c60b;\n      if (*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x1a25) == '\0') goto LAB_0004c490;\n      if (bVar9 == 0) {\n        local_30 = param_1[3];\n        bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;\n        goto LAB_0004c306;\n      }\n    }" if (parenthesized_expression "(bVar9 == 4)" ( (binary_expression "bVar9 == 4" identifier == number_literal) )) (compound_statement "{\nLAB_0004c222:\n      if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_0004c60b;\n      if (*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x1a25) == '\0') goto LAB_0004c490;\n      if (bVar9 == 0) {\n        local_30 = param_1[3];\n        bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;\n        goto LAB_0004c306;\n      }\n    }" { (labeled_statement "LAB_0004c222:\n      if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_0004c60b;" statement_identifier : (if_statement "if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_0004c60b;" if (parenthesized_expression "(*(int *)(DAT_0033f2f0 + 8) == 0)" ( (binary_expression "*(int *)(DAT_0033f2f0 + 8) == 0" (pointer_expression "*(int *)(DAT_0033f2f0 + 8)" * (cast_expression "(int *)(DAT_0033f2f0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0033f2f0 + 8)" ( (binary_expression "DAT_0033f2f0 + 8" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0004c60b;" goto statement_identifier ;))) (if_statement "if (*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x1a25) == '\0') goto LAB_0004c490;" if (parenthesized_expression "(*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x1a25) == '\0')" ( (binary_expression "*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x1a25) == '\0'" (pointer_expression "*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x1a25)" * (cast_expression "(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_0033f2f0 + 8) + 0x1a25)" ( (binary_expression "*(int *)(DAT_0033f2f0 + 8) + 0x1a25" (pointer_expression "*(int *)(DAT_0033f2f0 + 8)" * (cast_expression "(int *)(DAT_0033f2f0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0033f2f0 + 8)" ( (binary_expression "DAT_0033f2f0 + 8" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0004c490;" goto statement_identifier ;)) (if_statement "if (bVar9 == 0) {\n        local_30 = param_1[3];\n        bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;\n        goto LAB_0004c306;\n      }" if (parenthesized_expression "(bVar9 == 0)" ( (binary_expression "bVar9 == 0" identifier == number_literal) )) (compound_statement "{\n        local_30 = param_1[3];\n        bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;\n        goto LAB_0004c306;\n      }" { (expression_statement "local_30 = param_1[3];" (assignment_expression "local_30 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;" (assignment_expression "bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1" identifier = (binary_expression "*(byte *)((int)param_1 + 0x2b) >> 5 & 1" (binary_expression "*(byte *)((int)param_1 + 0x2b) >> 5" (pointer_expression "*(byte *)((int)param_1 + 0x2b)" * (cast_expression "(byte *)((int)param_1 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x2b)" ( (binary_expression "(int)param_1 + 0x2b" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) >> number_literal) & number_literal)) ;) (goto_statement "goto LAB_0004c306;" goto statement_identifier ;) })) })) (expression_statement "local_32 = bVar1;" (assignment_expression "local_32 = bVar1" identifier = identifier) ;) (if_statement "if (bVar9 == 3) goto LAB_0004c25c;" if (parenthesized_expression "(bVar9 == 3)" ( (binary_expression "bVar9 == 3" identifier == number_literal) )) (goto_statement "goto LAB_0004c25c;" goto statement_identifier ;)) (labeled_statement "LAB_0004c320:\n    local_38 = uVar14 & 1;" statement_identifier : (expression_statement "local_38 = uVar14 & 1;" (assignment_expression "local_38 = uVar14 & 1" identifier = (binary_expression "uVar14 & 1" identifier & number_literal)) ;)) (if_statement "if (local_38 == 0) {\nLAB_0004c450:\n      if (((uVar14 & 8) != 0) && (param_1[6] != -1)) {\n        return (uint)bVar5;\n      }\n      if ((uVar14 & 0x10) == 0) {\n        iVar2 = *(int *)(DAT_0033f2f0 + 8);\n        if (iVar2 == 0) goto LAB_0004c60b;\n        if (((*(char *)(iVar2 + 0x1a25) == '\0') && (*(char *)(iVar2 + 0x2931) == '\0')) &&\n           (param_1[6] != -1)) goto LAB_0004c490;\n      }\n      if (bVar9 == 0) {\n        local_32 = *(byte *)(param_1[2] + 0x2c) & 1;\n        if (((*(byte *)(param_1[2] + 0x2c) & 1) == 0) &&\n           (local_32 = *(byte *)((int)param_1 + 0x2b) >> 5 & param_1[3] == 0, local_32 == 0)) {\nLAB_0004c4d9:\n          local_32 = bVar1;\n          if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)param_1 + 0x2b) & 0x10) == 0)) {\n            iVar8 = *(int *)(DAT_0033f2f0 + 8);\n            if (iVar8 == 0) goto LAB_0004c60b;\n            bVar1 = *(byte *)(iVar8 + 0x1a25);\n            local_32 = bVar1;\n            if ((bVar1 != 0) &&\n               ((local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0')))) {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              iVar8 = DAT_0033f2f0;\n              if (iVar2 == 0) goto LAB_0004c60b;\n              if (*(char *)(iVar2 + 0x825) != '\0') goto LAB_0004c490;\n              local_32 = bVar1;\n              if ((*(byte *)(param_1 + 10) & 0xf) != 1) {\n                local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        local_32 = bVar5;\n        if (bVar9 != 4) goto LAB_0004c4d9;\n      }\n      goto LAB_0004c25c;\n    }" if (parenthesized_expression "(local_38 == 0)" ( (binary_expression "local_38 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0004c450:\n      if (((uVar14 & 8) != 0) && (param_1[6] != -1)) {\n        return (uint)bVar5;\n      }\n      if ((uVar14 & 0x10) == 0) {\n        iVar2 = *(int *)(DAT_0033f2f0 + 8);\n        if (iVar2 == 0) goto LAB_0004c60b;\n        if (((*(char *)(iVar2 + 0x1a25) == '\0') && (*(char *)(iVar2 + 0x2931) == '\0')) &&\n           (param_1[6] != -1)) goto LAB_0004c490;\n      }\n      if (bVar9 == 0) {\n        local_32 = *(byte *)(param_1[2] + 0x2c) & 1;\n        if (((*(byte *)(param_1[2] + 0x2c) & 1) == 0) &&\n           (local_32 = *(byte *)((int)param_1 + 0x2b) >> 5 & param_1[3] == 0, local_32 == 0)) {\nLAB_0004c4d9:\n          local_32 = bVar1;\n          if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)param_1 + 0x2b) & 0x10) == 0)) {\n            iVar8 = *(int *)(DAT_0033f2f0 + 8);\n            if (iVar8 == 0) goto LAB_0004c60b;\n            bVar1 = *(byte *)(iVar8 + 0x1a25);\n            local_32 = bVar1;\n            if ((bVar1 != 0) &&\n               ((local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0')))) {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              iVar8 = DAT_0033f2f0;\n              if (iVar2 == 0) goto LAB_0004c60b;\n              if (*(char *)(iVar2 + 0x825) != '\0') goto LAB_0004c490;\n              local_32 = bVar1;\n              if ((*(byte *)(param_1 + 10) & 0xf) != 1) {\n                local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        local_32 = bVar5;\n        if (bVar9 != 4) goto LAB_0004c4d9;\n      }\n      goto LAB_0004c25c;\n    }" { (labeled_statement "LAB_0004c450:\n      if (((uVar14 & 8) != 0) && (param_1[6] != -1)) {\n        return (uint)bVar5;\n      }" statement_identifier : (if_statement "if (((uVar14 & 8) != 0) && (param_1[6] != -1)) {\n        return (uint)bVar5;\n      }" if (parenthesized_expression "(((uVar14 & 8) != 0) && (param_1[6] != -1))" ( (binary_expression "((uVar14 & 8) != 0) && (param_1[6] != -1)" (parenthesized_expression "((uVar14 & 8) != 0)" ( (binary_expression "(uVar14 & 8) != 0" (parenthesized_expression "(uVar14 & 8)" ( (binary_expression "uVar14 & 8" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(param_1[6] != -1)" ( (binary_expression "param_1[6] != -1" (subscript_expression "param_1[6]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n        return (uint)bVar5;\n      }" { (return_statement "return (uint)bVar5;" return (cast_expression "(uint)bVar5" ( (type_descriptor "uint" type_identifier) ) identifier) ;) }))) (if_statement "if ((uVar14 & 0x10) == 0) {\n        iVar2 = *(int *)(DAT_0033f2f0 + 8);\n        if (iVar2 == 0) goto LAB_0004c60b;\n        if (((*(char *)(iVar2 + 0x1a25) == '\0') && (*(char *)(iVar2 + 0x2931) == '\0')) &&\n           (param_1[6] != -1)) goto LAB_0004c490;\n      }" if (parenthesized_expression "((uVar14 & 0x10) == 0)" ( (binary_expression "(uVar14 & 0x10) == 0" (parenthesized_expression "(uVar14 & 0x10)" ( (binary_expression "uVar14 & 0x10" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        iVar2 = *(int *)(DAT_0033f2f0 + 8);\n        if (iVar2 == 0) goto LAB_0004c60b;\n        if (((*(char *)(iVar2 + 0x1a25) == '\0') && (*(char *)(iVar2 + 0x2931) == '\0')) &&\n           (param_1[6] != -1)) goto LAB_0004c490;\n      }" { (expression_statement "iVar2 = *(int *)(DAT_0033f2f0 + 8);" (assignment_expression "iVar2 = *(int *)(DAT_0033f2f0 + 8)" identifier = (pointer_expression "*(int *)(DAT_0033f2f0 + 8)" * (cast_expression "(int *)(DAT_0033f2f0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0033f2f0 + 8)" ( (binary_expression "DAT_0033f2f0 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar2 == 0) goto LAB_0004c60b;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004c60b;" goto statement_identifier ;)) (if_statement "if (((*(char *)(iVar2 + 0x1a25) == '\0') && (*(char *)(iVar2 + 0x2931) == '\0')) &&\n           (param_1[6] != -1)) goto LAB_0004c490;" if (parenthesized_expression "(((*(char *)(iVar2 + 0x1a25) == '\0') && (*(char *)(iVar2 + 0x2931) == '\0')) &&\n           (param_1[6] != -1))" ( (binary_expression "((*(char *)(iVar2 + 0x1a25) == '\0') && (*(char *)(iVar2 + 0x2931) == '\0')) &&\n           (param_1[6] != -1)" (parenthesized_expression "((*(char *)(iVar2 + 0x1a25) == '\0') && (*(char *)(iVar2 + 0x2931) == '\0'))" ( (binary_expression "(*(char *)(iVar2 + 0x1a25) == '\0') && (*(char *)(iVar2 + 0x2931) == '\0')" (parenthesized_expression "(*(char *)(iVar2 + 0x1a25) == '\0')" ( (binary_expression "*(char *)(iVar2 + 0x1a25) == '\0'" (pointer_expression "*(char *)(iVar2 + 0x1a25)" * (cast_expression "(char *)(iVar2 + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1a25)" ( (binary_expression "iVar2 + 0x1a25" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(char *)(iVar2 + 0x2931) == '\0')" ( (binary_expression "*(char *)(iVar2 + 0x2931) == '\0'" (pointer_expression "*(char *)(iVar2 + 0x2931)" * (cast_expression "(char *)(iVar2 + 0x2931)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x2931)" ( (binary_expression "iVar2 + 0x2931" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(param_1[6] != -1)" ( (binary_expression "param_1[6] != -1" (subscript_expression "param_1[6]" identifier [ number_literal ]) != number_literal) ))) )) (goto_statement "goto LAB_0004c490;" goto statement_identifier ;)) })) (if_statement "if (bVar9 == 0) {\n        local_32 = *(byte *)(param_1[2] + 0x2c) & 1;\n        if (((*(byte *)(param_1[2] + 0x2c) & 1) == 0) &&\n           (local_32 = *(byte *)((int)param_1 + 0x2b) >> 5 & param_1[3] == 0, local_32 == 0)) {\nLAB_0004c4d9:\n          local_32 = bVar1;\n          if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)param_1 + 0x2b) & 0x10) == 0)) {\n            iVar8 = *(int *)(DAT_0033f2f0 + 8);\n            if (iVar8 == 0) goto LAB_0004c60b;\n            bVar1 = *(byte *)(iVar8 + 0x1a25);\n            local_32 = bVar1;\n            if ((bVar1 != 0) &&\n               ((local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0')))) {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              iVar8 = DAT_0033f2f0;\n              if (iVar2 == 0) goto LAB_0004c60b;\n              if (*(char *)(iVar2 + 0x825) != '\0') goto LAB_0004c490;\n              local_32 = bVar1;\n              if ((*(byte *)(param_1 + 10) & 0xf) != 1) {\n                local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        local_32 = bVar5;\n        if (bVar9 != 4) goto LAB_0004c4d9;\n      }" if (parenthesized_expression "(bVar9 == 0)" ( (binary_expression "bVar9 == 0" identifier == number_literal) )) (compound_statement "{\n        local_32 = *(byte *)(param_1[2] + 0x2c) & 1;\n        if (((*(byte *)(param_1[2] + 0x2c) & 1) == 0) &&\n           (local_32 = *(byte *)((int)param_1 + 0x2b) >> 5 & param_1[3] == 0, local_32 == 0)) {\nLAB_0004c4d9:\n          local_32 = bVar1;\n          if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)param_1 + 0x2b) & 0x10) == 0)) {\n            iVar8 = *(int *)(DAT_0033f2f0 + 8);\n            if (iVar8 == 0) goto LAB_0004c60b;\n            bVar1 = *(byte *)(iVar8 + 0x1a25);\n            local_32 = bVar1;\n            if ((bVar1 != 0) &&\n               ((local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0')))) {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              iVar8 = DAT_0033f2f0;\n              if (iVar2 == 0) goto LAB_0004c60b;\n              if (*(char *)(iVar2 + 0x825) != '\0') goto LAB_0004c490;\n              local_32 = bVar1;\n              if ((*(byte *)(param_1 + 10) & 0xf) != 1) {\n                local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;\n              }\n            }\n          }\n        }\n      }" { (expression_statement "local_32 = *(byte *)(param_1[2] + 0x2c) & 1;" (assignment_expression "local_32 = *(byte *)(param_1[2] + 0x2c) & 1" identifier = (binary_expression "*(byte *)(param_1[2] + 0x2c) & 1" (pointer_expression "*(byte *)(param_1[2] + 0x2c)" * (cast_expression "(byte *)(param_1[2] + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[2] + 0x2c)" ( (binary_expression "param_1[2] + 0x2c" (subscript_expression "param_1[2]" identifier [ number_literal ]) + number_literal) )))) & number_literal)) ;) (if_statement "if (((*(byte *)(param_1[2] + 0x2c) & 1) == 0) &&\n           (local_32 = *(byte *)((int)param_1 + 0x2b) >> 5 & param_1[3] == 0, local_32 == 0)) {\nLAB_0004c4d9:\n          local_32 = bVar1;\n          if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)param_1 + 0x2b) & 0x10) == 0)) {\n            iVar8 = *(int *)(DAT_0033f2f0 + 8);\n            if (iVar8 == 0) goto LAB_0004c60b;\n            bVar1 = *(byte *)(iVar8 + 0x1a25);\n            local_32 = bVar1;\n            if ((bVar1 != 0) &&\n               ((local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0')))) {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              iVar8 = DAT_0033f2f0;\n              if (iVar2 == 0) goto LAB_0004c60b;\n              if (*(char *)(iVar2 + 0x825) != '\0') goto LAB_0004c490;\n              local_32 = bVar1;\n              if ((*(byte *)(param_1 + 10) & 0xf) != 1) {\n                local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;\n              }\n            }\n          }\n        }" if (parenthesized_expression "(((*(byte *)(param_1[2] + 0x2c) & 1) == 0) &&\n           (local_32 = *(byte *)((int)param_1 + 0x2b) >> 5 & param_1[3] == 0, local_32 == 0))" ( (binary_expression "((*(byte *)(param_1[2] + 0x2c) & 1) == 0) &&\n           (local_32 = *(byte *)((int)param_1 + 0x2b) >> 5 & param_1[3] == 0, local_32 == 0)" (parenthesized_expression "((*(byte *)(param_1[2] + 0x2c) & 1) == 0)" ( (binary_expression "(*(byte *)(param_1[2] + 0x2c) & 1) == 0" (parenthesized_expression "(*(byte *)(param_1[2] + 0x2c) & 1)" ( (binary_expression "*(byte *)(param_1[2] + 0x2c) & 1" (pointer_expression "*(byte *)(param_1[2] + 0x2c)" * (cast_expression "(byte *)(param_1[2] + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[2] + 0x2c)" ( (binary_expression "param_1[2] + 0x2c" (subscript_expression "param_1[2]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "(local_32 = *(byte *)((int)param_1 + 0x2b) >> 5 & param_1[3] == 0, local_32 == 0)" ( (comma_expression "local_32 = *(byte *)((int)param_1 + 0x2b) >> 5 & param_1[3] == 0, local_32 == 0" (assignment_expression "local_32 = *(byte *)((int)param_1 + 0x2b) >> 5 & param_1[3] == 0" identifier = (binary_expression "*(byte *)((int)param_1 + 0x2b) >> 5 & param_1[3] == 0" (binary_expression "*(byte *)((int)param_1 + 0x2b) >> 5" (pointer_expression "*(byte *)((int)param_1 + 0x2b)" * (cast_expression "(byte *)((int)param_1 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x2b)" ( (binary_expression "(int)param_1 + 0x2b" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) >> number_literal) & (binary_expression "param_1[3] == 0" (subscript_expression "param_1[3]" identifier [ number_literal ]) == number_literal))) , (binary_expression "local_32 == 0" identifier == number_literal)) ))) )) (compound_statement "{\nLAB_0004c4d9:\n          local_32 = bVar1;\n          if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)param_1 + 0x2b) & 0x10) == 0)) {\n            iVar8 = *(int *)(DAT_0033f2f0 + 8);\n            if (iVar8 == 0) goto LAB_0004c60b;\n            bVar1 = *(byte *)(iVar8 + 0x1a25);\n            local_32 = bVar1;\n            if ((bVar1 != 0) &&\n               ((local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0')))) {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              iVar8 = DAT_0033f2f0;\n              if (iVar2 == 0) goto LAB_0004c60b;\n              if (*(char *)(iVar2 + 0x825) != '\0') goto LAB_0004c490;\n              local_32 = bVar1;\n              if ((*(byte *)(param_1 + 10) & 0xf) != 1) {\n                local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;\n              }\n            }\n          }\n        }" { (labeled_statement "LAB_0004c4d9:\n          local_32 = bVar1;" statement_identifier : (expression_statement "local_32 = bVar1;" (assignment_expression "local_32 = bVar1" identifier = identifier) ;)) (if_statement "if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)param_1 + 0x2b) & 0x10) == 0)) {\n            iVar8 = *(int *)(DAT_0033f2f0 + 8);\n            if (iVar8 == 0) goto LAB_0004c60b;\n            bVar1 = *(byte *)(iVar8 + 0x1a25);\n            local_32 = bVar1;\n            if ((bVar1 != 0) &&\n               ((local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0')))) {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              iVar8 = DAT_0033f2f0;\n              if (iVar2 == 0) goto LAB_0004c60b;\n              if (*(char *)(iVar2 + 0x825) != '\0') goto LAB_0004c490;\n              local_32 = bVar1;\n              if ((*(byte *)(param_1 + 10) & 0xf) != 1) {\n                local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;\n              }\n            }\n          }" if (parenthesized_expression "(((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)param_1 + 0x2b) & 0x10) == 0))" ( (binary_expression "((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)param_1 + 0x2b) & 0x10) == 0)" (parenthesized_expression "((*(byte *)((int)param_1 + 0x29) & 3) == 0)" ( (binary_expression "(*(byte *)((int)param_1 + 0x29) & 3) == 0" (parenthesized_expression "(*(byte *)((int)param_1 + 0x29) & 3)" ( (binary_expression "*(byte *)((int)param_1 + 0x29) & 3" (pointer_expression "*(byte *)((int)param_1 + 0x29)" * (cast_expression "(byte *)((int)param_1 + 0x29)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x29)" ( (binary_expression "(int)param_1 + 0x29" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "((*(byte *)((int)param_1 + 0x2b) & 0x10) == 0)" ( (binary_expression "(*(byte *)((int)param_1 + 0x2b) & 0x10) == 0" (parenthesized_expression "(*(byte *)((int)param_1 + 0x2b) & 0x10)" ( (binary_expression "*(byte *)((int)param_1 + 0x2b) & 0x10" (pointer_expression "*(byte *)((int)param_1 + 0x2b)" * (cast_expression "(byte *)((int)param_1 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x2b)" ( (binary_expression "(int)param_1 + 0x2b" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n            iVar8 = *(int *)(DAT_0033f2f0 + 8);\n            if (iVar8 == 0) goto LAB_0004c60b;\n            bVar1 = *(byte *)(iVar8 + 0x1a25);\n            local_32 = bVar1;\n            if ((bVar1 != 0) &&\n               ((local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0')))) {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              iVar8 = DAT_0033f2f0;\n              if (iVar2 == 0) goto LAB_0004c60b;\n              if (*(char *)(iVar2 + 0x825) != '\0') goto LAB_0004c490;\n              local_32 = bVar1;\n              if ((*(byte *)(param_1 + 10) & 0xf) != 1) {\n                local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;\n              }\n            }\n          }" { (expression_statement "iVar8 = *(int *)(DAT_0033f2f0 + 8);" (assignment_expression "iVar8 = *(int *)(DAT_0033f2f0 + 8)" identifier = (pointer_expression "*(int *)(DAT_0033f2f0 + 8)" * (cast_expression "(int *)(DAT_0033f2f0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0033f2f0 + 8)" ( (binary_expression "DAT_0033f2f0 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 == 0) goto LAB_0004c60b;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004c60b;" goto statement_identifier ;)) (expression_statement "bVar1 = *(byte *)(iVar8 + 0x1a25);" (assignment_expression "bVar1 = *(byte *)(iVar8 + 0x1a25)" identifier = (pointer_expression "*(byte *)(iVar8 + 0x1a25)" * (cast_expression "(byte *)(iVar8 + 0x1a25)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1a25)" ( (binary_expression "iVar8 + 0x1a25" identifier + number_literal) ))))) ;) (expression_statement "local_32 = bVar1;" (assignment_expression "local_32 = bVar1" identifier = identifier) ;) (if_statement "if ((bVar1 != 0) &&\n               ((local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0')))) {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              iVar8 = DAT_0033f2f0;\n              if (iVar2 == 0) goto LAB_0004c60b;\n              if (*(char *)(iVar2 + 0x825) != '\0') goto LAB_0004c490;\n              local_32 = bVar1;\n              if ((*(byte *)(param_1 + 10) & 0xf) != 1) {\n                local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;\n              }\n            }" if (parenthesized_expression "((bVar1 != 0) &&\n               ((local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0'))))" ( (binary_expression "(bVar1 != 0) &&\n               ((local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0')))" (parenthesized_expression "(bVar1 != 0)" ( (binary_expression "bVar1 != 0" identifier != number_literal) )) && (parenthesized_expression "((local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0')))" ( (parenthesized_expression "(local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0'))" ( (comma_expression "local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0')" (assignment_expression "local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e)" identifier = (call_expression "FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e)" identifier (argument_list "(iVar8 + 0x59a8,*param_1,0,&local_1e)" ( (binary_expression "iVar8 + 0x59a8" identifier + number_literal) , (pointer_expression "*param_1" * identifier) , number_literal , (pointer_expression "&local_1e" & identifier) )))) , (binary_expression "local_32 == 0 ||\n                (local_1e != '\0')" (binary_expression "local_32 == 0" identifier == number_literal) || (parenthesized_expression "(local_1e != '\0')" ( (binary_expression "local_1e != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )))) )) ))) )) (compound_statement "{\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              iVar8 = DAT_0033f2f0;\n              if (iVar2 == 0) goto LAB_0004c60b;\n              if (*(char *)(iVar2 + 0x825) != '\0') goto LAB_0004c490;\n              local_32 = bVar1;\n              if ((*(byte *)(param_1 + 10) & 0xf) != 1) {\n                local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;\n              }\n            }" { (expression_statement "iVar2 = *(int *)(DAT_0033f2f0 + 8);" (assignment_expression "iVar2 = *(int *)(DAT_0033f2f0 + 8)" identifier = (pointer_expression "*(int *)(DAT_0033f2f0 + 8)" * (cast_expression "(int *)(DAT_0033f2f0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0033f2f0 + 8)" ( (binary_expression "DAT_0033f2f0 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = DAT_0033f2f0;" (assignment_expression "iVar8 = DAT_0033f2f0" identifier = identifier) ;) (if_statement "if (iVar2 == 0) goto LAB_0004c60b;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004c60b;" goto statement_identifier ;)) (if_statement "if (*(char *)(iVar2 + 0x825) != '\0') goto LAB_0004c490;" if (parenthesized_expression "(*(char *)(iVar2 + 0x825) != '\0')" ( (binary_expression "*(char *)(iVar2 + 0x825) != '\0'" (pointer_expression "*(char *)(iVar2 + 0x825)" * (cast_expression "(char *)(iVar2 + 0x825)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x825)" ( (binary_expression "iVar2 + 0x825" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0004c490;" goto statement_identifier ;)) (expression_statement "local_32 = bVar1;" (assignment_expression "local_32 = bVar1" identifier = identifier) ;) (if_statement "if ((*(byte *)(param_1 + 10) & 0xf) != 1) {\n                local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;\n              }" if (parenthesized_expression "((*(byte *)(param_1 + 10) & 0xf) != 1)" ( (binary_expression "(*(byte *)(param_1 + 10) & 0xf) != 1" (parenthesized_expression "(*(byte *)(param_1 + 10) & 0xf)" ( (binary_expression "*(byte *)(param_1 + 10) & 0xf" (pointer_expression "*(byte *)(param_1 + 10)" * (cast_expression "(byte *)(param_1 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 10)" ( (binary_expression "param_1 + 10" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;\n              }" { (expression_statement "local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;" (assignment_expression "local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1" identifier = (binary_expression "*(byte *)(iVar2 + 0x8a1) ^ 1" (pointer_expression "*(byte *)(iVar2 + 0x8a1)" * (cast_expression "(byte *)(iVar2 + 0x8a1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x8a1)" ( (binary_expression "iVar2 + 0x8a1" identifier + number_literal) )))) ^ number_literal)) ;) })) })) })) })) }) (else_clause "else {\n        local_32 = bVar5;\n        if (bVar9 != 4) goto LAB_0004c4d9;\n      }" else (compound_statement "{\n        local_32 = bVar5;\n        if (bVar9 != 4) goto LAB_0004c4d9;\n      }" { (expression_statement "local_32 = bVar5;" (assignment_expression "local_32 = bVar5" identifier = identifier) ;) (if_statement "if (bVar9 != 4) goto LAB_0004c4d9;" if (parenthesized_expression "(bVar9 != 4)" ( (binary_expression "bVar9 != 4" identifier != number_literal) )) (goto_statement "goto LAB_0004c4d9;" goto statement_identifier ;)) }))) (goto_statement "goto LAB_0004c25c;" goto statement_identifier ;) })) (expression_statement "iVar2 = *(int *)(DAT_0033f2f0 + 8);" (assignment_expression "iVar2 = *(int *)(DAT_0033f2f0 + 8)" identifier = (pointer_expression "*(int *)(DAT_0033f2f0 + 8)" * (cast_expression "(int *)(DAT_0033f2f0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0033f2f0 + 8)" ( (binary_expression "DAT_0033f2f0 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar2 == 0) goto LAB_0004c60b;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004c60b;" goto statement_identifier ;)) (expression_statement "local_32 = *(byte *)(iVar2 + 0x1a25);" (assignment_expression "local_32 = *(byte *)(iVar2 + 0x1a25)" identifier = (pointer_expression "*(byte *)(iVar2 + 0x1a25)" * (cast_expression "(byte *)(iVar2 + 0x1a25)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1a25)" ( (binary_expression "iVar2 + 0x1a25" identifier + number_literal) ))))) ;) (if_statement "if ((local_32 == 0) && (local_32 = *(byte *)(iVar2 + 0x2931), local_32 == 0)) goto LAB_0004c450;" if (parenthesized_expression "((local_32 == 0) && (local_32 = *(byte *)(iVar2 + 0x2931), local_32 == 0))" ( (binary_expression "(local_32 == 0) && (local_32 = *(byte *)(iVar2 + 0x2931), local_32 == 0)" (parenthesized_expression "(local_32 == 0)" ( (binary_expression "local_32 == 0" identifier == number_literal) )) && (parenthesized_expression "(local_32 = *(byte *)(iVar2 + 0x2931), local_32 == 0)" ( (comma_expression "local_32 = *(byte *)(iVar2 + 0x2931), local_32 == 0" (assignment_expression "local_32 = *(byte *)(iVar2 + 0x2931)" identifier = (pointer_expression "*(byte *)(iVar2 + 0x2931)" * (cast_expression "(byte *)(iVar2 + 0x2931)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x2931)" ( (binary_expression "iVar2 + 0x2931" identifier + number_literal) ))))) , (binary_expression "local_32 == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_0004c450;" goto statement_identifier ;)) }) (else_clause "else {\n    local_32 = 0;\nLAB_0004c25c:\n    local_38 = uVar14 & 1;\n    if (local_38 == 0) goto LAB_0004c268;\n  }" else (compound_statement "{\n    local_32 = 0;\nLAB_0004c25c:\n    local_38 = uVar14 & 1;\n    if (local_38 == 0) goto LAB_0004c268;\n  }" { (expression_statement "local_32 = 0;" (assignment_expression "local_32 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0004c25c:\n    local_38 = uVar14 & 1;" statement_identifier : (expression_statement "local_38 = uVar14 & 1;" (assignment_expression "local_38 = uVar14 & 1" identifier = (binary_expression "uVar14 & 1" identifier & number_literal)) ;)) (if_statement "if (local_38 == 0) goto LAB_0004c268;" if (parenthesized_expression "(local_38 == 0)" ( (binary_expression "local_38 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004c268;" goto statement_identifier ;)) }))) (expression_statement "uVar11 = (uint)bVar5;" (assignment_expression "uVar11 = (uint)bVar5" identifier = (cast_expression "(uint)bVar5" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar7 = uVar11;" (assignment_expression "uVar7 = uVar11" identifier = identifier) ;) (if_statement "if (((uVar14 & 8) == 0) || (param_1[6] == -1)) {\n    if ((*(byte *)((int)param_1 + 0x2a) & 7) == 0) {\n      if (((*(byte *)(param_1[2] + 0x2c) & 1) != 0) ||\n         ((param_1[3] == 0 && ((*(byte *)((int)param_1 + 0x2b) & 0x20) != 0)))) goto LAB_0004c268;\n    }\n    else if ((*(byte *)((int)param_1 + 0x2a) & 7) == 4) goto LAB_0004c268;\n    if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n       (bVar5 = *(byte *)((int)param_1 + 0x2b) >> 4, uVar7 = bVar5 & 1, (bVar5 & 1) == 0)) {\n      iVar8 = *(int *)(DAT_0033f2f0 + 8);\n      if (iVar8 == 0) {\nLAB_0004c60b:\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar8);\n      }\n      uVar7 = uVar11;\n      if (*(char *)(iVar8 + 0x1a25) != '\0') {\n        cVar6 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,local_1d);\n        if ((cVar6 != '\0') && (local_1d[0] == '\0')) {\nLAB_0004c268:\n          return local_32 ^ 1;\n        }\n        iVar8 = *(int *)(DAT_0033f2f0 + 8);\n        if (iVar8 == 0) goto LAB_0004c60b;\n        uVar7 = (uint)*(byte *)(iVar8 + 0x825);\n        if ((*(byte *)(iVar8 + 0x825) == 0) &&\n           (uVar7 = local_32 ^ 1, (*(byte *)(param_1 + 10) & 0xf) != 1)) {\n          uVar7 = (uint)(byte)((byte)uVar7 | *(byte *)(iVar8 + 0x8a1));\n        }\n      }\n    }\n  }" if (parenthesized_expression "(((uVar14 & 8) == 0) || (param_1[6] == -1))" ( (binary_expression "((uVar14 & 8) == 0) || (param_1[6] == -1)" (parenthesized_expression "((uVar14 & 8) == 0)" ( (binary_expression "(uVar14 & 8) == 0" (parenthesized_expression "(uVar14 & 8)" ( (binary_expression "uVar14 & 8" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(param_1[6] == -1)" ( (binary_expression "param_1[6] == -1" (subscript_expression "param_1[6]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n    if ((*(byte *)((int)param_1 + 0x2a) & 7) == 0) {\n      if (((*(byte *)(param_1[2] + 0x2c) & 1) != 0) ||\n         ((param_1[3] == 0 && ((*(byte *)((int)param_1 + 0x2b) & 0x20) != 0)))) goto LAB_0004c268;\n    }\n    else if ((*(byte *)((int)param_1 + 0x2a) & 7) == 4) goto LAB_0004c268;\n    if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n       (bVar5 = *(byte *)((int)param_1 + 0x2b) >> 4, uVar7 = bVar5 & 1, (bVar5 & 1) == 0)) {\n      iVar8 = *(int *)(DAT_0033f2f0 + 8);\n      if (iVar8 == 0) {\nLAB_0004c60b:\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar8);\n      }\n      uVar7 = uVar11;\n      if (*(char *)(iVar8 + 0x1a25) != '\0') {\n        cVar6 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,local_1d);\n        if ((cVar6 != '\0') && (local_1d[0] == '\0')) {\nLAB_0004c268:\n          return local_32 ^ 1;\n        }\n        iVar8 = *(int *)(DAT_0033f2f0 + 8);\n        if (iVar8 == 0) goto LAB_0004c60b;\n        uVar7 = (uint)*(byte *)(iVar8 + 0x825);\n        if ((*(byte *)(iVar8 + 0x825) == 0) &&\n           (uVar7 = local_32 ^ 1, (*(byte *)(param_1 + 10) & 0xf) != 1)) {\n          uVar7 = (uint)(byte)((byte)uVar7 | *(byte *)(iVar8 + 0x8a1));\n        }\n      }\n    }\n  }" { (if_statement "if ((*(byte *)((int)param_1 + 0x2a) & 7) == 0) {\n      if (((*(byte *)(param_1[2] + 0x2c) & 1) != 0) ||\n         ((param_1[3] == 0 && ((*(byte *)((int)param_1 + 0x2b) & 0x20) != 0)))) goto LAB_0004c268;\n    }\n    else if ((*(byte *)((int)param_1 + 0x2a) & 7) == 4) goto LAB_0004c268;" if (parenthesized_expression "((*(byte *)((int)param_1 + 0x2a) & 7) == 0)" ( (binary_expression "(*(byte *)((int)param_1 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)((int)param_1 + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)param_1 + 0x2a) & 7" (pointer_expression "*(byte *)((int)param_1 + 0x2a)" * (cast_expression "(byte *)((int)param_1 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x2a)" ( (binary_expression "(int)param_1 + 0x2a" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      if (((*(byte *)(param_1[2] + 0x2c) & 1) != 0) ||\n         ((param_1[3] == 0 && ((*(byte *)((int)param_1 + 0x2b) & 0x20) != 0)))) goto LAB_0004c268;\n    }" { (if_statement "if (((*(byte *)(param_1[2] + 0x2c) & 1) != 0) ||\n         ((param_1[3] == 0 && ((*(byte *)((int)param_1 + 0x2b) & 0x20) != 0)))) goto LAB_0004c268;" if (parenthesized_expression "(((*(byte *)(param_1[2] + 0x2c) & 1) != 0) ||\n         ((param_1[3] == 0 && ((*(byte *)((int)param_1 + 0x2b) & 0x20) != 0))))" ( (binary_expression "((*(byte *)(param_1[2] + 0x2c) & 1) != 0) ||\n         ((param_1[3] == 0 && ((*(byte *)((int)param_1 + 0x2b) & 0x20) != 0)))" (parenthesized_expression "((*(byte *)(param_1[2] + 0x2c) & 1) != 0)" ( (binary_expression "(*(byte *)(param_1[2] + 0x2c) & 1) != 0" (parenthesized_expression "(*(byte *)(param_1[2] + 0x2c) & 1)" ( (binary_expression "*(byte *)(param_1[2] + 0x2c) & 1" (pointer_expression "*(byte *)(param_1[2] + 0x2c)" * (cast_expression "(byte *)(param_1[2] + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[2] + 0x2c)" ( (binary_expression "param_1[2] + 0x2c" (subscript_expression "param_1[2]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) != number_literal) )) || (parenthesized_expression "((param_1[3] == 0 && ((*(byte *)((int)param_1 + 0x2b) & 0x20) != 0)))" ( (parenthesized_expression "(param_1[3] == 0 && ((*(byte *)((int)param_1 + 0x2b) & 0x20) != 0))" ( (binary_expression "param_1[3] == 0 && ((*(byte *)((int)param_1 + 0x2b) & 0x20) != 0)" (binary_expression "param_1[3] == 0" (subscript_expression "param_1[3]" identifier [ number_literal ]) == number_literal) && (parenthesized_expression "((*(byte *)((int)param_1 + 0x2b) & 0x20) != 0)" ( (binary_expression "(*(byte *)((int)param_1 + 0x2b) & 0x20) != 0" (parenthesized_expression "(*(byte *)((int)param_1 + 0x2b) & 0x20)" ( (binary_expression "*(byte *)((int)param_1 + 0x2b) & 0x20" (pointer_expression "*(byte *)((int)param_1 + 0x2b)" * (cast_expression "(byte *)((int)param_1 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x2b)" ( (binary_expression "(int)param_1 + 0x2b" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) ))) )) ))) )) (goto_statement "goto LAB_0004c268;" goto statement_identifier ;)) }) (else_clause "else if ((*(byte *)((int)param_1 + 0x2a) & 7) == 4) goto LAB_0004c268;" else (if_statement "if ((*(byte *)((int)param_1 + 0x2a) & 7) == 4) goto LAB_0004c268;" if (parenthesized_expression "((*(byte *)((int)param_1 + 0x2a) & 7) == 4)" ( (binary_expression "(*(byte *)((int)param_1 + 0x2a) & 7) == 4" (parenthesized_expression "(*(byte *)((int)param_1 + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)param_1 + 0x2a) & 7" (pointer_expression "*(byte *)((int)param_1 + 0x2a)" * (cast_expression "(byte *)((int)param_1 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x2a)" ( (binary_expression "(int)param_1 + 0x2a" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0004c268;" goto statement_identifier ;)))) (if_statement "if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n       (bVar5 = *(byte *)((int)param_1 + 0x2b) >> 4, uVar7 = bVar5 & 1, (bVar5 & 1) == 0)) {\n      iVar8 = *(int *)(DAT_0033f2f0 + 8);\n      if (iVar8 == 0) {\nLAB_0004c60b:\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar8);\n      }\n      uVar7 = uVar11;\n      if (*(char *)(iVar8 + 0x1a25) != '\0') {\n        cVar6 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,local_1d);\n        if ((cVar6 != '\0') && (local_1d[0] == '\0')) {\nLAB_0004c268:\n          return local_32 ^ 1;\n        }\n        iVar8 = *(int *)(DAT_0033f2f0 + 8);\n        if (iVar8 == 0) goto LAB_0004c60b;\n        uVar7 = (uint)*(byte *)(iVar8 + 0x825);\n        if ((*(byte *)(iVar8 + 0x825) == 0) &&\n           (uVar7 = local_32 ^ 1, (*(byte *)(param_1 + 10) & 0xf) != 1)) {\n          uVar7 = (uint)(byte)((byte)uVar7 | *(byte *)(iVar8 + 0x8a1));\n        }\n      }\n    }" if (parenthesized_expression "(((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n       (bVar5 = *(byte *)((int)param_1 + 0x2b) >> 4, uVar7 = bVar5 & 1, (bVar5 & 1) == 0))" ( (binary_expression "((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n       (bVar5 = *(byte *)((int)param_1 + 0x2b) >> 4, uVar7 = bVar5 & 1, (bVar5 & 1) == 0)" (parenthesized_expression "((*(byte *)((int)param_1 + 0x29) & 3) == 0)" ( (binary_expression "(*(byte *)((int)param_1 + 0x29) & 3) == 0" (parenthesized_expression "(*(byte *)((int)param_1 + 0x29) & 3)" ( (binary_expression "*(byte *)((int)param_1 + 0x29) & 3" (pointer_expression "*(byte *)((int)param_1 + 0x29)" * (cast_expression "(byte *)((int)param_1 + 0x29)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x29)" ( (binary_expression "(int)param_1 + 0x29" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "(bVar5 = *(byte *)((int)param_1 + 0x2b) >> 4, uVar7 = bVar5 & 1, (bVar5 & 1) == 0)" ( (comma_expression "bVar5 = *(byte *)((int)param_1 + 0x2b) >> 4, uVar7 = bVar5 & 1, (bVar5 & 1) == 0" (assignment_expression "bVar5 = *(byte *)((int)param_1 + 0x2b) >> 4" identifier = (binary_expression "*(byte *)((int)param_1 + 0x2b) >> 4" (pointer_expression "*(byte *)((int)param_1 + 0x2b)" * (cast_expression "(byte *)((int)param_1 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x2b)" ( (binary_expression "(int)param_1 + 0x2b" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) >> number_literal)) , (comma_expression "uVar7 = bVar5 & 1, (bVar5 & 1) == 0" (assignment_expression "uVar7 = bVar5 & 1" identifier = (binary_expression "bVar5 & 1" identifier & number_literal)) , (binary_expression "(bVar5 & 1) == 0" (parenthesized_expression "(bVar5 & 1)" ( (binary_expression "bVar5 & 1" identifier & number_literal) )) == number_literal))) ))) )) (compound_statement "{\n      iVar8 = *(int *)(DAT_0033f2f0 + 8);\n      if (iVar8 == 0) {\nLAB_0004c60b:\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar8);\n      }\n      uVar7 = uVar11;\n      if (*(char *)(iVar8 + 0x1a25) != '\0') {\n        cVar6 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,local_1d);\n        if ((cVar6 != '\0') && (local_1d[0] == '\0')) {\nLAB_0004c268:\n          return local_32 ^ 1;\n        }\n        iVar8 = *(int *)(DAT_0033f2f0 + 8);\n        if (iVar8 == 0) goto LAB_0004c60b;\n        uVar7 = (uint)*(byte *)(iVar8 + 0x825);\n        if ((*(byte *)(iVar8 + 0x825) == 0) &&\n           (uVar7 = local_32 ^ 1, (*(byte *)(param_1 + 10) & 0xf) != 1)) {\n          uVar7 = (uint)(byte)((byte)uVar7 | *(byte *)(iVar8 + 0x8a1));\n        }\n      }\n    }" { (expression_statement "iVar8 = *(int *)(DAT_0033f2f0 + 8);" (assignment_expression "iVar8 = *(int *)(DAT_0033f2f0 + 8)" identifier = (pointer_expression "*(int *)(DAT_0033f2f0 + 8)" * (cast_expression "(int *)(DAT_0033f2f0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0033f2f0 + 8)" ( (binary_expression "DAT_0033f2f0 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 == 0) {\nLAB_0004c60b:\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar8);\n      }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0004c60b:\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar8);\n      }" { (labeled_statement "LAB_0004c60b:\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar8);" statement_identifier : comment (expression_statement "FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar8);" (call_expression "FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar8)" identifier (argument_list "("../../gold/parameters.h",0x5c,"options",iVar8)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") , identifier ))) ;)) })) (expression_statement "uVar7 = uVar11;" (assignment_expression "uVar7 = uVar11" identifier = identifier) ;) (if_statement "if (*(char *)(iVar8 + 0x1a25) != '\0') {\n        cVar6 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,local_1d);\n        if ((cVar6 != '\0') && (local_1d[0] == '\0')) {\nLAB_0004c268:\n          return local_32 ^ 1;\n        }\n        iVar8 = *(int *)(DAT_0033f2f0 + 8);\n        if (iVar8 == 0) goto LAB_0004c60b;\n        uVar7 = (uint)*(byte *)(iVar8 + 0x825);\n        if ((*(byte *)(iVar8 + 0x825) == 0) &&\n           (uVar7 = local_32 ^ 1, (*(byte *)(param_1 + 10) & 0xf) != 1)) {\n          uVar7 = (uint)(byte)((byte)uVar7 | *(byte *)(iVar8 + 0x8a1));\n        }\n      }" if (parenthesized_expression "(*(char *)(iVar8 + 0x1a25) != '\0')" ( (binary_expression "*(char *)(iVar8 + 0x1a25) != '\0'" (pointer_expression "*(char *)(iVar8 + 0x1a25)" * (cast_expression "(char *)(iVar8 + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1a25)" ( (binary_expression "iVar8 + 0x1a25" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        cVar6 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,local_1d);\n        if ((cVar6 != '\0') && (local_1d[0] == '\0')) {\nLAB_0004c268:\n          return local_32 ^ 1;\n        }\n        iVar8 = *(int *)(DAT_0033f2f0 + 8);\n        if (iVar8 == 0) goto LAB_0004c60b;\n        uVar7 = (uint)*(byte *)(iVar8 + 0x825);\n        if ((*(byte *)(iVar8 + 0x825) == 0) &&\n           (uVar7 = local_32 ^ 1, (*(byte *)(param_1 + 10) & 0xf) != 1)) {\n          uVar7 = (uint)(byte)((byte)uVar7 | *(byte *)(iVar8 + 0x8a1));\n        }\n      }" { (expression_statement "cVar6 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,local_1d);" (assignment_expression "cVar6 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,local_1d)" identifier = (call_expression "FUN_001453a0(iVar8 + 0x59a8,*param_1,0,local_1d)" identifier (argument_list "(iVar8 + 0x59a8,*param_1,0,local_1d)" ( (binary_expression "iVar8 + 0x59a8" identifier + number_literal) , (pointer_expression "*param_1" * identifier) , number_literal , identifier )))) ;) (if_statement "if ((cVar6 != '\0') && (local_1d[0] == '\0')) {\nLAB_0004c268:\n          return local_32 ^ 1;\n        }" if (parenthesized_expression "((cVar6 != '\0') && (local_1d[0] == '\0'))" ( (binary_expression "(cVar6 != '\0') && (local_1d[0] == '\0')" (parenthesized_expression "(cVar6 != '\0')" ( (binary_expression "cVar6 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(local_1d[0] == '\0')" ( (binary_expression "local_1d[0] == '\0'" (subscript_expression "local_1d[0]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\nLAB_0004c268:\n          return local_32 ^ 1;\n        }" { (labeled_statement "LAB_0004c268:\n          return local_32 ^ 1;" statement_identifier : (return_statement "return local_32 ^ 1;" return (binary_expression "local_32 ^ 1" identifier ^ number_literal) ;)) })) (expression_statement "iVar8 = *(int *)(DAT_0033f2f0 + 8);" (assignment_expression "iVar8 = *(int *)(DAT_0033f2f0 + 8)" identifier = (pointer_expression "*(int *)(DAT_0033f2f0 + 8)" * (cast_expression "(int *)(DAT_0033f2f0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0033f2f0 + 8)" ( (binary_expression "DAT_0033f2f0 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 == 0) goto LAB_0004c60b;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004c60b;" goto statement_identifier ;)) (expression_statement "uVar7 = (uint)*(byte *)(iVar8 + 0x825);" (assignment_expression "uVar7 = (uint)*(byte *)(iVar8 + 0x825)" identifier = (binary_expression "(uint)*(byte *)(iVar8 + 0x825)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar8 + 0x825)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x825)" ( (binary_expression "iVar8 + 0x825" identifier + number_literal) ))))) ;) (if_statement "if ((*(byte *)(iVar8 + 0x825) == 0) &&\n           (uVar7 = local_32 ^ 1, (*(byte *)(param_1 + 10) & 0xf) != 1)) {\n          uVar7 = (uint)(byte)((byte)uVar7 | *(byte *)(iVar8 + 0x8a1));\n        }" if (parenthesized_expression "((*(byte *)(iVar8 + 0x825) == 0) &&\n           (uVar7 = local_32 ^ 1, (*(byte *)(param_1 + 10) & 0xf) != 1))" ( (binary_expression "(*(byte *)(iVar8 + 0x825) == 0) &&\n           (uVar7 = local_32 ^ 1, (*(byte *)(param_1 + 10) & 0xf) != 1)" (parenthesized_expression "(*(byte *)(iVar8 + 0x825) == 0)" ( (binary_expression "*(byte *)(iVar8 + 0x825) == 0" (pointer_expression "*(byte *)(iVar8 + 0x825)" * (cast_expression "(byte *)(iVar8 + 0x825)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x825)" ( (binary_expression "iVar8 + 0x825" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(uVar7 = local_32 ^ 1, (*(byte *)(param_1 + 10) & 0xf) != 1)" ( (comma_expression "uVar7 = local_32 ^ 1, (*(byte *)(param_1 + 10) & 0xf) != 1" (assignment_expression "uVar7 = local_32 ^ 1" identifier = (binary_expression "local_32 ^ 1" identifier ^ number_literal)) , (binary_expression "(*(byte *)(param_1 + 10) & 0xf) != 1" (parenthesized_expression "(*(byte *)(param_1 + 10) & 0xf)" ( (binary_expression "*(byte *)(param_1 + 10) & 0xf" (pointer_expression "*(byte *)(param_1 + 10)" * (cast_expression "(byte *)(param_1 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 10)" ( (binary_expression "param_1 + 10" identifier + number_literal) )))) & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n          uVar7 = (uint)(byte)((byte)uVar7 | *(byte *)(iVar8 + 0x8a1));\n        }" { (expression_statement "uVar7 = (uint)(byte)((byte)uVar7 | *(byte *)(iVar8 + 0x8a1));" (assignment_expression "uVar7 = (uint)(byte)((byte)uVar7 | *(byte *)(iVar8 + 0x8a1))" identifier = (call_expression "(uint)(byte)((byte)uVar7 | *(byte *)(iVar8 + 0x8a1))" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "((byte)uVar7 | *(byte *)(iVar8 + 0x8a1))" ( (binary_expression "(byte)uVar7 | *(byte *)(iVar8 + 0x8a1)" (cast_expression "(byte)uVar7" ( (type_descriptor "byte" type_identifier) ) identifier) | (pointer_expression "*(byte *)(iVar8 + 0x8a1)" * (cast_expression "(byte *)(iVar8 + 0x8a1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x8a1)" ( (binary_expression "iVar8 + 0x8a1" identifier + number_literal) ))))) )))) ;) })) })) })) })) (return_statement "return uVar7;" return 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 "ELFOSABI": Some values do not have unique names */\n/* DWARF original prototype: bool should_apply_static_reloc(Relocate * this, Sized_symbol<32> *\n   gsym, uint r_type, bool is_32bit, Output_section * output_section) */\n\nbool __thiscall\nanon_unknown.dwarf_217836::Target_i386::Relocate::should_apply_static_reloc\n          (Relocate *this,Sized_symbol<32> *gsym,uint r_type,bool is_32bit,\n          Output_section *output_section)\n\n{\n  General_options *pGVar1;\n  bool bVar2;\n  undefined4 *in_EAX;\n  uint uVar3;\n  byte in_CL;\n  byte bVar4;\n  byte bVar5;\n  byte bVar6;\n  byte bVar7;\n  int in_EDX;\n  uint uVar8;\n  Parameters *in_stack_ffffffc8;\n  byte local_32;\n  int local_30;\n  bool is_global;\n  bool is_global_1;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4c1a9;\n  if ((this[10].local_dynamic_type_ & LOCAL_DYNAMIC_GNU) == LOCAL_DYNAMIC_NONE) {\n    return true;\n  }\n  uVar8 = 0;\n  if (in_EDX - 1U < 0x2b) {\n    uVar8 = (uint)(char)(&DAT_0024cfbf)[in_EDX];\n  }\n  if (in_EAX == (undefined4 *)0x0) {\n    pGVar1 = gold::parameters->options_;\n    if (pGVar1 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      can_convert_mov_to_lea((Symbol *)gold::parameters);\n    }\n    if (((pGVar1->shared_).value == false) && ((pGVar1->pie_).value == false)) {\n      return true;\n    }\n    return (bool)(~(byte)uVar8 & 1 | in_CL);\n  }\n  bVar6 = gold::parameters->doing_static_link_valid_;\n  if ((bool)bVar6 == false) {\n                    /* WARNING: Subroutine does not return */\n    gold::Parameters::doing_static_link(gold::parameters,in_stack_ffffffc8);\n  }\n  if (gold::parameters->doing_static_link_ == false) {\n    bVar4 = *(byte *)((int)in_EAX + 0x2a) & 7;\n    bVar7 = 0;\n    if ((*(byte *)((int)in_EAX + 0x2a) & 7) == 0) {\n      local_30 = in_EAX[3];\n      bVar5 = *(byte *)((int)in_EAX + 0x2b) >> 5 & 1;\n      if ((local_30 == 0) && (bVar5 != 0)) goto LAB_0004c222;\nLAB_0004c306:\n      uVar3 = uVar8 & 1;\n      if (local_30 != 0xfff1 || bVar5 != 0) goto LAB_0004c320;\nLAB_0004c490:\n      local_32 = 0;\n      goto LAB_0004c25c;\n    }\n    if (bVar4 == 4) {\nLAB_0004c222:\n      if (gold::parameters->options_ == (General_options *)0x0) goto LAB_0004c60b;\n      uVar3 = uVar8 & 1;\n      if ((gold::parameters->options_->shared_).value == false) goto LAB_0004c490;\n      if (bVar4 == 0) {\n        local_30 = in_EAX[3];\n        bVar5 = *(byte *)((int)in_EAX + 0x2b) >> 5 & 1;\n        goto LAB_0004c306;\n      }\n    }\n    uVar3 = uVar8 & 1;\n    local_32 = bVar7;\n    if (bVar4 == 3) goto LAB_0004c25c;\nLAB_0004c320:\n    uVar3 = uVar8 & 1;\n    if (uVar3 == 0) {\nLAB_0004c450:\n      if (((uVar8 & 8) != 0) && (in_EAX[6] != -1)) {\n        return (bool)bVar6;\n      }\n      if ((uVar8 & 0x10) == 0) {\n        pGVar1 = gold::parameters->options_;\n        if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;\n        if ((((pGVar1->shared_).value == false) && ((pGVar1->pie_).value == false)) &&\n           (in_EAX[6] != -1)) goto LAB_0004c490;\n      }\n      if (bVar4 == 0) {\n        local_32 = *(byte *)(in_EAX[2] + 0x2c) & 1;\n        if (((*(byte *)(in_EAX[2] + 0x2c) & 1) == 0) &&\n           (local_32 = *(byte *)((int)in_EAX + 0x2b) >> 5 & in_EAX[3] == 0, local_32 == 0)) {\nLAB_0004c4d9:\n          local_32 = bVar7;\n          if (((*(byte *)((int)in_EAX + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)in_EAX + 0x2b) & 0x10) == 0)) {\n            pGVar1 = gold::parameters->options_;\n            if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;\n            bVar2 = (pGVar1->shared_).value;\n            local_32 = bVar2;\n            if ((bVar2 != false) &&\n               ((local_32 = gold::Version_script_info::get_symbol_version\n                                      (&(pGVar1->dynamic_list_).version_script_info_,(char *)*in_EAX\n                                       ,(string *)0x0,&is_global), !(bool)local_32 ||\n                (is_global != false)))) {\n              pGVar1 = gold::parameters->options_;\n              if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;\n              if ((pGVar1->Bsymbolic_).value != false) goto LAB_0004c490;\n              local_32 = bVar2;\n              if ((*(byte *)(in_EAX + 10) & 0xf) != 1) {\n                local_32 = (pGVar1->Bsymbolic_functions_).value ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        local_32 = bVar6;\n        if (bVar4 != 4) goto LAB_0004c4d9;\n      }\n      goto LAB_0004c25c;\n    }\n    pGVar1 = gold::parameters->options_;\n    if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;\n    local_32 = (pGVar1->shared_).value;\n    if (((bool)local_32 == false) && (local_32 = (pGVar1->pie_).value, (bool)local_32 == false))\n    goto LAB_0004c450;\n  }\n  else {\n    local_32 = 0;\n    uVar3 = uVar8 & 1;\nLAB_0004c25c:\n    if (uVar3 == 0) goto LAB_0004c268;\n  }\n  bVar7 = bVar6;\n  if (((uVar8 & 8) == 0) || (in_EAX[6] == -1)) {\n    if ((*(byte *)((int)in_EAX + 0x2a) & 7) == 0) {\n      if (((*(byte *)(in_EAX[2] + 0x2c) & 1) != 0) ||\n         ((in_EAX[3] == 0 && ((*(byte *)((int)in_EAX + 0x2b) & 0x20) != 0)))) goto LAB_0004c268;\n    }\n    else if ((*(byte *)((int)in_EAX + 0x2a) & 7) == 4) goto LAB_0004c268;\n    if (((*(byte *)((int)in_EAX + 0x29) & 3) == 0) &&\n       (bVar4 = *(byte *)((int)in_EAX + 0x2b) >> 4, bVar7 = bVar4 & 1, (bVar4 & 1) == 0)) {\n      pGVar1 = gold::parameters->options_;\n      if (pGVar1 == (General_options *)0x0) {\nLAB_0004c60b:\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n      }\n      bVar7 = bVar6;\n      if ((pGVar1->shared_).value != false) {\n        bVar2 = gold::Version_script_info::get_symbol_version\n                          (&(pGVar1->dynamic_list_).version_script_info_,(char *)*in_EAX,\n                           (string *)0x0,&is_global_1);\n        if ((bVar2) && (is_global_1 == false)) {\nLAB_0004c268:\n          return (bool)(local_32 ^ 1);\n        }\n        pGVar1 = gold::parameters->options_;\n        if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;\n        bVar7 = (pGVar1->Bsymbolic_).value;\n        if (((bool)bVar7 == false) && (bVar7 = local_32 ^ 1, (*(byte *)(in_EAX + 10) & 0xf) != 1)) {\n          bVar7 = bVar7 | (pGVar1->Bsymbolic_functions_).value;\n        }\n      }\n    }\n  }\n  return (bool)bVar7;\n}\n\n" comment comment comment comment (function_definition "bool __thiscall\nanon_unknown.dwarf_217836::Target_i386::Relocate::should_apply_static_reloc\n          (Relocate *this,Sized_symbol<32> *gsym,uint r_type,bool is_32bit,\n          Output_section *output_section)\n\n{\n  General_options *pGVar1;\n  bool bVar2;\n  undefined4 *in_EAX;\n  uint uVar3;\n  byte in_CL;\n  byte bVar4;\n  byte bVar5;\n  byte bVar6;\n  byte bVar7;\n  int in_EDX;\n  uint uVar8;\n  Parameters *in_stack_ffffffc8;\n  byte local_32;\n  int local_30;\n  bool is_global;\n  bool is_global_1;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4c1a9;\n  if ((this[10].local_dynamic_type_ & LOCAL_DYNAMIC_GNU) == LOCAL_DYNAMIC_NONE) {\n    return true;\n  }\n  uVar8 = 0;\n  if (in_EDX - 1U < 0x2b) {\n    uVar8 = (uint)(char)(&DAT_0024cfbf)[in_EDX];\n  }\n  if (in_EAX == (undefined4 *)0x0) {\n    pGVar1 = gold::parameters->options_;\n    if (pGVar1 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      can_convert_mov_to_lea((Symbol *)gold::parameters);\n    }\n    if (((pGVar1->shared_).value == false) && ((pGVar1->pie_).value == false)) {\n      return true;\n    }\n    return (bool)(~(byte)uVar8 & 1 | in_CL);\n  }\n  bVar6 = gold::parameters->doing_static_link_valid_;\n  if ((bool)bVar6 == false) {\n                    /* WARNING: Subroutine does not return */\n    gold::Parameters::doing_static_link(gold::parameters,in_stack_ffffffc8);\n  }\n  if (gold::parameters->doing_static_link_ == false) {\n    bVar4 = *(byte *)((int)in_EAX + 0x2a) & 7;\n    bVar7 = 0;\n    if ((*(byte *)((int)in_EAX + 0x2a) & 7) == 0) {\n      local_30 = in_EAX[3];\n      bVar5 = *(byte *)((int)in_EAX + 0x2b) >> 5 & 1;\n      if ((local_30 == 0) && (bVar5 != 0)) goto LAB_0004c222;\nLAB_0004c306:\n      uVar3 = uVar8 & 1;\n      if (local_30 != 0xfff1 || bVar5 != 0) goto LAB_0004c320;\nLAB_0004c490:\n      local_32 = 0;\n      goto LAB_0004c25c;\n    }\n    if (bVar4 == 4) {\nLAB_0004c222:\n      if (gold::parameters->options_ == (General_options *)0x0) goto LAB_0004c60b;\n      uVar3 = uVar8 & 1;\n      if ((gold::parameters->options_->shared_).value == false) goto LAB_0004c490;\n      if (bVar4 == 0) {\n        local_30 = in_EAX[3];\n        bVar5 = *(byte *)((int)in_EAX + 0x2b) >> 5 & 1;\n        goto LAB_0004c306;\n      }\n    }\n    uVar3 = uVar8 & 1;\n    local_32 = bVar7;\n    if (bVar4 == 3) goto LAB_0004c25c;\nLAB_0004c320:\n    uVar3 = uVar8 & 1;\n    if (uVar3 == 0) {\nLAB_0004c450:\n      if (((uVar8 & 8) != 0) && (in_EAX[6] != -1)) {\n        return (bool)bVar6;\n      }\n      if ((uVar8 & 0x10) == 0) {\n        pGVar1 = gold::parameters->options_;\n        if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;\n        if ((((pGVar1->shared_).value == false) && ((pGVar1->pie_).value == false)) &&\n           (in_EAX[6] != -1)) goto LAB_0004c490;\n      }\n      if (bVar4 == 0) {\n        local_32 = *(byte *)(in_EAX[2] + 0x2c) & 1;\n        if (((*(byte *)(in_EAX[2] + 0x2c) & 1) == 0) &&\n           (local_32 = *(byte *)((int)in_EAX + 0x2b) >> 5 & in_EAX[3] == 0, local_32 == 0)) {\nLAB_0004c4d9:\n          local_32 = bVar7;\n          if (((*(byte *)((int)in_EAX + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)in_EAX + 0x2b) & 0x10) == 0)) {\n            pGVar1 = gold::parameters->options_;\n            if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;\n            bVar2 = (pGVar1->shared_).value;\n            local_32 = bVar2;\n            if ((bVar2 != false) &&\n               ((local_32 = gold::Version_script_info::get_symbol_version\n                                      (&(pGVar1->dynamic_list_).version_script_info_,(char *)*in_EAX\n                                       ,(string *)0x0,&is_global), !(bool)local_32 ||\n                (is_global != false)))) {\n              pGVar1 = gold::parameters->options_;\n              if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;\n              if ((pGVar1->Bsymbolic_).value != false) goto LAB_0004c490;\n              local_32 = bVar2;\n              if ((*(byte *)(in_EAX + 10) & 0xf) != 1) {\n                local_32 = (pGVar1->Bsymbolic_functions_).value ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        local_32 = bVar6;\n        if (bVar4 != 4) goto LAB_0004c4d9;\n      }\n      goto LAB_0004c25c;\n    }\n    pGVar1 = gold::parameters->options_;\n    if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;\n    local_32 = (pGVar1->shared_).value;\n    if (((bool)local_32 == false) && (local_32 = (pGVar1->pie_).value, (bool)local_32 == false))\n    goto LAB_0004c450;\n  }\n  else {\n    local_32 = 0;\n    uVar3 = uVar8 & 1;\nLAB_0004c25c:\n    if (uVar3 == 0) goto LAB_0004c268;\n  }\n  bVar7 = bVar6;\n  if (((uVar8 & 8) == 0) || (in_EAX[6] == -1)) {\n    if ((*(byte *)((int)in_EAX + 0x2a) & 7) == 0) {\n      if (((*(byte *)(in_EAX[2] + 0x2c) & 1) != 0) ||\n         ((in_EAX[3] == 0 && ((*(byte *)((int)in_EAX + 0x2b) & 0x20) != 0)))) goto LAB_0004c268;\n    }\n    else if ((*(byte *)((int)in_EAX + 0x2a) & 7) == 4) goto LAB_0004c268;\n    if (((*(byte *)((int)in_EAX + 0x29) & 3) == 0) &&\n       (bVar4 = *(byte *)((int)in_EAX + 0x2b) >> 4, bVar7 = bVar4 & 1, (bVar4 & 1) == 0)) {\n      pGVar1 = gold::parameters->options_;\n      if (pGVar1 == (General_options *)0x0) {\nLAB_0004c60b:\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n      }\n      bVar7 = bVar6;\n      if ((pGVar1->shared_).value != false) {\n        bVar2 = gold::Version_script_info::get_symbol_version\n                          (&(pGVar1->dynamic_list_).version_script_info_,(char *)*in_EAX,\n                           (string *)0x0,&is_global_1);\n        if ((bVar2) && (is_global_1 == false)) {\nLAB_0004c268:\n          return (bool)(local_32 ^ 1);\n        }\n        pGVar1 = gold::parameters->options_;\n        if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;\n        bVar7 = (pGVar1->Bsymbolic_).value;\n        if (((bool)bVar7 == false) && (bVar7 = local_32 ^ 1, (*(byte *)(in_EAX + 10) & 0xf) != 1)) {\n          bVar7 = bVar7 | (pGVar1->Bsymbolic_functions_).value;\n        }\n      }\n    }\n  }\n  return (bool)bVar7;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "anon_unknown.dwarf_217836::Target_i386::Relocate::" identifier . identifier : : identifier : : identifier : :) (function_declarator "should_apply_static_reloc\n          (Relocate *this,Sized_symbol<32> *gsym,uint r_type,bool is_32bit,\n          Output_section *output_section)" identifier (parameter_list "(Relocate *this,Sized_symbol<32> *gsym,uint r_type,bool is_32bit,\n          Output_section *output_section)" ( (parameter_declaration "Relocate *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Sized_symbol<32> *gsym" type_identifier (ERROR "<32>" < number_literal >) (pointer_declarator "*gsym" * identifier)) , (parameter_declaration "uint r_type" type_identifier identifier) , (parameter_declaration "bool is_32bit" primitive_type identifier) , (parameter_declaration "Output_section *output_section" type_identifier (pointer_declarator "*output_section" * identifier)) ))) (compound_statement "{\n  General_options *pGVar1;\n  bool bVar2;\n  undefined4 *in_EAX;\n  uint uVar3;\n  byte in_CL;\n  byte bVar4;\n  byte bVar5;\n  byte bVar6;\n  byte bVar7;\n  int in_EDX;\n  uint uVar8;\n  Parameters *in_stack_ffffffc8;\n  byte local_32;\n  int local_30;\n  bool is_global;\n  bool is_global_1;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4c1a9;\n  if ((this[10].local_dynamic_type_ & LOCAL_DYNAMIC_GNU) == LOCAL_DYNAMIC_NONE) {\n    return true;\n  }\n  uVar8 = 0;\n  if (in_EDX - 1U < 0x2b) {\n    uVar8 = (uint)(char)(&DAT_0024cfbf)[in_EDX];\n  }\n  if (in_EAX == (undefined4 *)0x0) {\n    pGVar1 = gold::parameters->options_;\n    if (pGVar1 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      can_convert_mov_to_lea((Symbol *)gold::parameters);\n    }\n    if (((pGVar1->shared_).value == false) && ((pGVar1->pie_).value == false)) {\n      return true;\n    }\n    return (bool)(~(byte)uVar8 & 1 | in_CL);\n  }\n  bVar6 = gold::parameters->doing_static_link_valid_;\n  if ((bool)bVar6 == false) {\n                    /* WARNING: Subroutine does not return */\n    gold::Parameters::doing_static_link(gold::parameters,in_stack_ffffffc8);\n  }\n  if (gold::parameters->doing_static_link_ == false) {\n    bVar4 = *(byte *)((int)in_EAX + 0x2a) & 7;\n    bVar7 = 0;\n    if ((*(byte *)((int)in_EAX + 0x2a) & 7) == 0) {\n      local_30 = in_EAX[3];\n      bVar5 = *(byte *)((int)in_EAX + 0x2b) >> 5 & 1;\n      if ((local_30 == 0) && (bVar5 != 0)) goto LAB_0004c222;\nLAB_0004c306:\n      uVar3 = uVar8 & 1;\n      if (local_30 != 0xfff1 || bVar5 != 0) goto LAB_0004c320;\nLAB_0004c490:\n      local_32 = 0;\n      goto LAB_0004c25c;\n    }\n    if (bVar4 == 4) {\nLAB_0004c222:\n      if (gold::parameters->options_ == (General_options *)0x0) goto LAB_0004c60b;\n      uVar3 = uVar8 & 1;\n      if ((gold::parameters->options_->shared_).value == false) goto LAB_0004c490;\n      if (bVar4 == 0) {\n        local_30 = in_EAX[3];\n        bVar5 = *(byte *)((int)in_EAX + 0x2b) >> 5 & 1;\n        goto LAB_0004c306;\n      }\n    }\n    uVar3 = uVar8 & 1;\n    local_32 = bVar7;\n    if (bVar4 == 3) goto LAB_0004c25c;\nLAB_0004c320:\n    uVar3 = uVar8 & 1;\n    if (uVar3 == 0) {\nLAB_0004c450:\n      if (((uVar8 & 8) != 0) && (in_EAX[6] != -1)) {\n        return (bool)bVar6;\n      }\n      if ((uVar8 & 0x10) == 0) {\n        pGVar1 = gold::parameters->options_;\n        if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;\n        if ((((pGVar1->shared_).value == false) && ((pGVar1->pie_).value == false)) &&\n           (in_EAX[6] != -1)) goto LAB_0004c490;\n      }\n      if (bVar4 == 0) {\n        local_32 = *(byte *)(in_EAX[2] + 0x2c) & 1;\n        if (((*(byte *)(in_EAX[2] + 0x2c) & 1) == 0) &&\n           (local_32 = *(byte *)((int)in_EAX + 0x2b) >> 5 & in_EAX[3] == 0, local_32 == 0)) {\nLAB_0004c4d9:\n          local_32 = bVar7;\n          if (((*(byte *)((int)in_EAX + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)in_EAX + 0x2b) & 0x10) == 0)) {\n            pGVar1 = gold::parameters->options_;\n            if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;\n            bVar2 = (pGVar1->shared_).value;\n            local_32 = bVar2;\n            if ((bVar2 != false) &&\n               ((local_32 = gold::Version_script_info::get_symbol_version\n                                      (&(pGVar1->dynamic_list_).version_script_info_,(char *)*in_EAX\n                                       ,(string *)0x0,&is_global), !(bool)local_32 ||\n                (is_global != false)))) {\n              pGVar1 = gold::parameters->options_;\n              if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;\n              if ((pGVar1->Bsymbolic_).value != false) goto LAB_0004c490;\n              local_32 = bVar2;\n              if ((*(byte *)(in_EAX + 10) & 0xf) != 1) {\n                local_32 = (pGVar1->Bsymbolic_functions_).value ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        local_32 = bVar6;\n        if (bVar4 != 4) goto LAB_0004c4d9;\n      }\n      goto LAB_0004c25c;\n    }\n    pGVar1 = gold::parameters->options_;\n    if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;\n    local_32 = (pGVar1->shared_).value;\n    if (((bool)local_32 == false) && (local_32 = (pGVar1->pie_).value, (bool)local_32 == false))\n    goto LAB_0004c450;\n  }\n  else {\n    local_32 = 0;\n    uVar3 = uVar8 & 1;\nLAB_0004c25c:\n    if (uVar3 == 0) goto LAB_0004c268;\n  }\n  bVar7 = bVar6;\n  if (((uVar8 & 8) == 0) || (in_EAX[6] == -1)) {\n    if ((*(byte *)((int)in_EAX + 0x2a) & 7) == 0) {\n      if (((*(byte *)(in_EAX[2] + 0x2c) & 1) != 0) ||\n         ((in_EAX[3] == 0 && ((*(byte *)((int)in_EAX + 0x2b) & 0x20) != 0)))) goto LAB_0004c268;\n    }\n    else if ((*(byte *)((int)in_EAX + 0x2a) & 7) == 4) goto LAB_0004c268;\n    if (((*(byte *)((int)in_EAX + 0x29) & 3) == 0) &&\n       (bVar4 = *(byte *)((int)in_EAX + 0x2b) >> 4, bVar7 = bVar4 & 1, (bVar4 & 1) == 0)) {\n      pGVar1 = gold::parameters->options_;\n      if (pGVar1 == (General_options *)0x0) {\nLAB_0004c60b:\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n      }\n      bVar7 = bVar6;\n      if ((pGVar1->shared_).value != false) {\n        bVar2 = gold::Version_script_info::get_symbol_version\n                          (&(pGVar1->dynamic_list_).version_script_info_,(char *)*in_EAX,\n                           (string *)0x0,&is_global_1);\n        if ((bVar2) && (is_global_1 == false)) {\nLAB_0004c268:\n          return (bool)(local_32 ^ 1);\n        }\n        pGVar1 = gold::parameters->options_;\n        if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;\n        bVar7 = (pGVar1->Bsymbolic_).value;\n        if (((bool)bVar7 == false) && (bVar7 = local_32 ^ 1, (*(byte *)(in_EAX + 10) & 0xf) != 1)) {\n          bVar7 = bVar7 | (pGVar1->Bsymbolic_functions_).value;\n        }\n      }\n    }\n  }\n  return (bool)bVar7;\n}" { (declaration "General_options *pGVar1;" type_identifier (pointer_declarator "*pGVar1" * identifier) ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "undefined4 *in_EAX;" type_identifier (pointer_declarator "*in_EAX" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "byte in_CL;" type_identifier identifier ;) (declaration "byte bVar4;" type_identifier identifier ;) (declaration "byte bVar5;" type_identifier identifier ;) (declaration "byte bVar6;" type_identifier identifier ;) (declaration "byte bVar7;" type_identifier identifier ;) (declaration "int in_EDX;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "Parameters *in_stack_ffffffc8;" type_identifier (pointer_declarator "*in_stack_ffffffc8" * identifier) ;) (declaration "byte local_32;" type_identifier identifier ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "bool is_global;" primitive_type identifier ;) (declaration "bool is_global_1;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x4c1a9;" (assignment_expression "uStack_14 = 0x4c1a9" identifier = number_literal) ;) (if_statement "if ((this[10].local_dynamic_type_ & LOCAL_DYNAMIC_GNU) == LOCAL_DYNAMIC_NONE) {\n    return true;\n  }" if (parenthesized_expression "((this[10].local_dynamic_type_ & LOCAL_DYNAMIC_GNU) == LOCAL_DYNAMIC_NONE)" ( (binary_expression "(this[10].local_dynamic_type_ & LOCAL_DYNAMIC_GNU) == LOCAL_DYNAMIC_NONE" (parenthesized_expression "(this[10].local_dynamic_type_ & LOCAL_DYNAMIC_GNU)" ( (binary_expression "this[10].local_dynamic_type_ & LOCAL_DYNAMIC_GNU" (field_expression "this[10].local_dynamic_type_" (subscript_expression "this[10]" identifier [ number_literal ]) . field_identifier) & identifier) )) == identifier) )) (compound_statement "{\n    return true;\n  }" { (return_statement "return true;" return true ;) })) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (if_statement "if (in_EDX - 1U < 0x2b) {\n    uVar8 = (uint)(char)(&DAT_0024cfbf)[in_EDX];\n  }" if (parenthesized_expression "(in_EDX - 1U < 0x2b)" ( (binary_expression "in_EDX - 1U < 0x2b" (binary_expression "in_EDX - 1U" identifier - number_literal) < number_literal) )) (compound_statement "{\n    uVar8 = (uint)(char)(&DAT_0024cfbf)[in_EDX];\n  }" { (expression_statement "uVar8 = (uint)(char)(&DAT_0024cfbf)[in_EDX];" (assignment_expression "uVar8 = (uint)(char)(&DAT_0024cfbf)[in_EDX]" identifier = (subscript_expression "(uint)(char)(&DAT_0024cfbf)[in_EDX]" (call_expression "(uint)(char)(&DAT_0024cfbf)" (call_expression "(uint)(char)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(char)" ( identifier ))) (argument_list "(&DAT_0024cfbf)" ( (pointer_expression "&DAT_0024cfbf" & identifier) ))) [ identifier ])) ;) })) (if_statement "if (in_EAX == (undefined4 *)0x0) {\n    pGVar1 = gold::parameters->options_;\n    if (pGVar1 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      can_convert_mov_to_lea((Symbol *)gold::parameters);\n    }\n    if (((pGVar1->shared_).value == false) && ((pGVar1->pie_).value == false)) {\n      return true;\n    }\n    return (bool)(~(byte)uVar8 & 1 | in_CL);\n  }" if (parenthesized_expression "(in_EAX == (undefined4 *)0x0)" ( (binary_expression "in_EAX == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pGVar1 = gold::parameters->options_;\n    if (pGVar1 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      can_convert_mov_to_lea((Symbol *)gold::parameters);\n    }\n    if (((pGVar1->shared_).value == false) && ((pGVar1->pie_).value == false)) {\n      return true;\n    }\n    return (bool)(~(byte)uVar8 & 1 | in_CL);\n  }" { (expression_statement "pGVar1 = gold::parameters->options_;" (field_expression "pGVar1 = gold::parameters->options_" (assignment_expression "pGVar1 = gold" identifier = identifier) (ERROR "::parameters" : : identifier) -> field_identifier) ;) (if_statement "if (pGVar1 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      can_convert_mov_to_lea((Symbol *)gold::parameters);\n    }" if (parenthesized_expression "(pGVar1 == (General_options *)0x0)" ( (binary_expression "pGVar1 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      can_convert_mov_to_lea((Symbol *)gold::parameters);\n    }" { comment (expression_statement "can_convert_mov_to_lea((Symbol *)gold::parameters);" (call_expression "can_convert_mov_to_lea((Symbol *)gold::parameters)" identifier (argument_list "((Symbol *)gold::parameters)" ( (cast_expression "(Symbol *)gold" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) (ERROR "::parameters" : : identifier) ))) ;) })) (if_statement "if (((pGVar1->shared_).value == false) && ((pGVar1->pie_).value == false)) {\n      return true;\n    }" if (parenthesized_expression "(((pGVar1->shared_).value == false) && ((pGVar1->pie_).value == false))" ( (binary_expression "((pGVar1->shared_).value == false) && ((pGVar1->pie_).value == false)" (parenthesized_expression "((pGVar1->shared_).value == false)" ( (binary_expression "(pGVar1->shared_).value == false" (field_expression "(pGVar1->shared_).value" (parenthesized_expression "(pGVar1->shared_)" ( (field_expression "pGVar1->shared_" identifier -> field_identifier) )) . field_identifier) == false) )) && (parenthesized_expression "((pGVar1->pie_).value == false)" ( (binary_expression "(pGVar1->pie_).value == false" (field_expression "(pGVar1->pie_).value" (parenthesized_expression "(pGVar1->pie_)" ( (field_expression "pGVar1->pie_" identifier -> field_identifier) )) . field_identifier) == false) ))) )) (compound_statement "{\n      return true;\n    }" { (return_statement "return true;" return true ;) })) (return_statement "return (bool)(~(byte)uVar8 & 1 | in_CL);" return (cast_expression "(bool)(~(byte)uVar8 & 1 | in_CL)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(~(byte)uVar8 & 1 | in_CL)" ( (binary_expression "~(byte)uVar8 & 1 | in_CL" (binary_expression "~(byte)uVar8 & 1" (unary_expression "~(byte)uVar8" ~ (cast_expression "(byte)uVar8" ( (type_descriptor "byte" type_identifier) ) identifier)) & number_literal) | identifier) ))) ;) })) (expression_statement "bVar6 = gold::parameters->doing_static_link_valid_;" (field_expression "bVar6 = gold::parameters->doing_static_link_valid_" (assignment_expression "bVar6 = gold" identifier = identifier) (ERROR "::parameters" : : identifier) -> field_identifier) ;) (if_statement "if ((bool)bVar6 == false) {\n                    /* WARNING: Subroutine does not return */\n    gold::Parameters::doing_static_link(gold::parameters,in_stack_ffffffc8);\n  }" if (parenthesized_expression "((bool)bVar6 == false)" ( (binary_expression "(bool)bVar6 == false" (cast_expression "(bool)bVar6" ( (type_descriptor "bool" primitive_type) ) identifier) == false) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    gold::Parameters::doing_static_link(gold::parameters,in_stack_ffffffc8);\n  }" { comment (labeled_statement "gold::Parameters::doing_static_link(gold::parameters,in_stack_ffffffc8);" statement_identifier : (ERROR ":" :) (labeled_statement "Parameters::doing_static_link(gold::parameters,in_stack_ffffffc8);" statement_identifier : (ERROR ":" :) (labeled_statement "doing_static_link(gold::parameters,in_stack_ffffffc8);" statement_identifier (ERROR "(gold:" ( (type_descriptor "gold" type_identifier) :) : (expression_statement "parameters,in_stack_ffffffc8);" (comma_expression "parameters,in_stack_ffffffc8" identifier , identifier) (ERROR ")" )) ;)))) })) (if_statement "if (gold::parameters->doing_static_link_ == false) {\n    bVar4 = *(byte *)((int)in_EAX + 0x2a) & 7;\n    bVar7 = 0;\n    if ((*(byte *)((int)in_EAX + 0x2a) & 7) == 0) {\n      local_30 = in_EAX[3];\n      bVar5 = *(byte *)((int)in_EAX + 0x2b) >> 5 & 1;\n      if ((local_30 == 0) && (bVar5 != 0)) goto LAB_0004c222;\nLAB_0004c306:\n      uVar3 = uVar8 & 1;\n      if (local_30 != 0xfff1 || bVar5 != 0) goto LAB_0004c320;\nLAB_0004c490:\n      local_32 = 0;\n      goto LAB_0004c25c;\n    }\n    if (bVar4 == 4) {\nLAB_0004c222:\n      if (gold::parameters->options_ == (General_options *)0x0) goto LAB_0004c60b;\n      uVar3 = uVar8 & 1;\n      if ((gold::parameters->options_->shared_).value == false) goto LAB_0004c490;\n      if (bVar4 == 0) {\n        local_30 = in_EAX[3];\n        bVar5 = *(byte *)((int)in_EAX + 0x2b) >> 5 & 1;\n        goto LAB_0004c306;\n      }\n    }\n    uVar3 = uVar8 & 1;\n    local_32 = bVar7;\n    if (bVar4 == 3) goto LAB_0004c25c;\nLAB_0004c320:\n    uVar3 = uVar8 & 1;\n    if (uVar3 == 0) {\nLAB_0004c450:\n      if (((uVar8 & 8) != 0) && (in_EAX[6] != -1)) {\n        return (bool)bVar6;\n      }\n      if ((uVar8 & 0x10) == 0) {\n        pGVar1 = gold::parameters->options_;\n        if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;\n        if ((((pGVar1->shared_).value == false) && ((pGVar1->pie_).value == false)) &&\n           (in_EAX[6] != -1)) goto LAB_0004c490;\n      }\n      if (bVar4 == 0) {\n        local_32 = *(byte *)(in_EAX[2] + 0x2c) & 1;\n        if (((*(byte *)(in_EAX[2] + 0x2c) & 1) == 0) &&\n           (local_32 = *(byte *)((int)in_EAX + 0x2b) >> 5 & in_EAX[3] == 0, local_32 == 0)) {\nLAB_0004c4d9:\n          local_32 = bVar7;\n          if (((*(byte *)((int)in_EAX + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)in_EAX + 0x2b) & 0x10) == 0)) {\n            pGVar1 = gold::parameters->options_;\n            if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;\n            bVar2 = (pGVar1->shared_).value;\n            local_32 = bVar2;\n            if ((bVar2 != false) &&\n               ((local_32 = gold::Version_script_info::get_symbol_version\n                                      (&(pGVar1->dynamic_list_).version_script_info_,(char *)*in_EAX\n                                       ,(string *)0x0,&is_global), !(bool)local_32 ||\n                (is_global != false)))) {\n              pGVar1 = gold::parameters->options_;\n              if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;\n              if ((pGVar1->Bsymbolic_).value != false) goto LAB_0004c490;\n              local_32 = bVar2;\n              if ((*(byte *)(in_EAX + 10) & 0xf) != 1) {\n                local_32 = (pGVar1->Bsymbolic_functions_).value ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        local_32 = bVar6;\n        if (bVar4 != 4) goto LAB_0004c4d9;\n      }\n      goto LAB_0004c25c;\n    }\n    pGVar1 = gold::parameters->options_;\n    if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;\n    local_32 = (pGVar1->shared_).value;\n    if (((bool)local_32 == false) && (local_32 = (pGVar1->pie_).value, (bool)local_32 == false))\n    goto LAB_0004c450;\n  }\n  else {\n    local_32 = 0;\n    uVar3 = uVar8 & 1;\nLAB_0004c25c:\n    if (uVar3 == 0) goto LAB_0004c268;\n  }" if (parenthesized_expression "(gold::parameters->doing_static_link_ == false)" ( (ERROR "gold::" identifier : :) (binary_expression "parameters->doing_static_link_ == false" (field_expression "parameters->doing_static_link_" identifier -> field_identifier) == false) )) (compound_statement "{\n    bVar4 = *(byte *)((int)in_EAX + 0x2a) & 7;\n    bVar7 = 0;\n    if ((*(byte *)((int)in_EAX + 0x2a) & 7) == 0) {\n      local_30 = in_EAX[3];\n      bVar5 = *(byte *)((int)in_EAX + 0x2b) >> 5 & 1;\n      if ((local_30 == 0) && (bVar5 != 0)) goto LAB_0004c222;\nLAB_0004c306:\n      uVar3 = uVar8 & 1;\n      if (local_30 != 0xfff1 || bVar5 != 0) goto LAB_0004c320;\nLAB_0004c490:\n      local_32 = 0;\n      goto LAB_0004c25c;\n    }\n    if (bVar4 == 4) {\nLAB_0004c222:\n      if (gold::parameters->options_ == (General_options *)0x0) goto LAB_0004c60b;\n      uVar3 = uVar8 & 1;\n      if ((gold::parameters->options_->shared_).value == false) goto LAB_0004c490;\n      if (bVar4 == 0) {\n        local_30 = in_EAX[3];\n        bVar5 = *(byte *)((int)in_EAX + 0x2b) >> 5 & 1;\n        goto LAB_0004c306;\n      }\n    }\n    uVar3 = uVar8 & 1;\n    local_32 = bVar7;\n    if (bVar4 == 3) goto LAB_0004c25c;\nLAB_0004c320:\n    uVar3 = uVar8 & 1;\n    if (uVar3 == 0) {\nLAB_0004c450:\n      if (((uVar8 & 8) != 0) && (in_EAX[6] != -1)) {\n        return (bool)bVar6;\n      }\n      if ((uVar8 & 0x10) == 0) {\n        pGVar1 = gold::parameters->options_;\n        if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;\n        if ((((pGVar1->shared_).value == false) && ((pGVar1->pie_).value == false)) &&\n           (in_EAX[6] != -1)) goto LAB_0004c490;\n      }\n      if (bVar4 == 0) {\n        local_32 = *(byte *)(in_EAX[2] + 0x2c) & 1;\n        if (((*(byte *)(in_EAX[2] + 0x2c) & 1) == 0) &&\n           (local_32 = *(byte *)((int)in_EAX + 0x2b) >> 5 & in_EAX[3] == 0, local_32 == 0)) {\nLAB_0004c4d9:\n          local_32 = bVar7;\n          if (((*(byte *)((int)in_EAX + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)in_EAX + 0x2b) & 0x10) == 0)) {\n            pGVar1 = gold::parameters->options_;\n            if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;\n            bVar2 = (pGVar1->shared_).value;\n            local_32 = bVar2;\n            if ((bVar2 != false) &&\n               ((local_32 = gold::Version_script_info::get_symbol_version\n                                      (&(pGVar1->dynamic_list_).version_script_info_,(char *)*in_EAX\n                                       ,(string *)0x0,&is_global), !(bool)local_32 ||\n                (is_global != false)))) {\n              pGVar1 = gold::parameters->options_;\n              if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;\n              if ((pGVar1->Bsymbolic_).value != false) goto LAB_0004c490;\n              local_32 = bVar2;\n              if ((*(byte *)(in_EAX + 10) & 0xf) != 1) {\n                local_32 = (pGVar1->Bsymbolic_functions_).value ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        local_32 = bVar6;\n        if (bVar4 != 4) goto LAB_0004c4d9;\n      }\n      goto LAB_0004c25c;\n    }\n    pGVar1 = gold::parameters->options_;\n    if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;\n    local_32 = (pGVar1->shared_).value;\n    if (((bool)local_32 == false) && (local_32 = (pGVar1->pie_).value, (bool)local_32 == false))\n    goto LAB_0004c450;\n  }" { (expression_statement "bVar4 = *(byte *)((int)in_EAX + 0x2a) & 7;" (assignment_expression "bVar4 = *(byte *)((int)in_EAX + 0x2a) & 7" identifier = (binary_expression "*(byte *)((int)in_EAX + 0x2a) & 7" (pointer_expression "*(byte *)((int)in_EAX + 0x2a)" * (cast_expression "(byte *)((int)in_EAX + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)in_EAX + 0x2a)" ( (binary_expression "(int)in_EAX + 0x2a" (cast_expression "(int)in_EAX" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal)) ;) (expression_statement "bVar7 = 0;" (assignment_expression "bVar7 = 0" identifier = number_literal) ;) (if_statement "if ((*(byte *)((int)in_EAX + 0x2a) & 7) == 0) {\n      local_30 = in_EAX[3];\n      bVar5 = *(byte *)((int)in_EAX + 0x2b) >> 5 & 1;\n      if ((local_30 == 0) && (bVar5 != 0)) goto LAB_0004c222;\nLAB_0004c306:\n      uVar3 = uVar8 & 1;\n      if (local_30 != 0xfff1 || bVar5 != 0) goto LAB_0004c320;\nLAB_0004c490:\n      local_32 = 0;\n      goto LAB_0004c25c;\n    }" if (parenthesized_expression "((*(byte *)((int)in_EAX + 0x2a) & 7) == 0)" ( (binary_expression "(*(byte *)((int)in_EAX + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)((int)in_EAX + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)in_EAX + 0x2a) & 7" (pointer_expression "*(byte *)((int)in_EAX + 0x2a)" * (cast_expression "(byte *)((int)in_EAX + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)in_EAX + 0x2a)" ( (binary_expression "(int)in_EAX + 0x2a" (cast_expression "(int)in_EAX" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      local_30 = in_EAX[3];\n      bVar5 = *(byte *)((int)in_EAX + 0x2b) >> 5 & 1;\n      if ((local_30 == 0) && (bVar5 != 0)) goto LAB_0004c222;\nLAB_0004c306:\n      uVar3 = uVar8 & 1;\n      if (local_30 != 0xfff1 || bVar5 != 0) goto LAB_0004c320;\nLAB_0004c490:\n      local_32 = 0;\n      goto LAB_0004c25c;\n    }" { (expression_statement "local_30 = in_EAX[3];" (assignment_expression "local_30 = in_EAX[3]" identifier = (subscript_expression "in_EAX[3]" identifier [ number_literal ])) ;) (expression_statement "bVar5 = *(byte *)((int)in_EAX + 0x2b) >> 5 & 1;" (assignment_expression "bVar5 = *(byte *)((int)in_EAX + 0x2b) >> 5 & 1" identifier = (binary_expression "*(byte *)((int)in_EAX + 0x2b) >> 5 & 1" (binary_expression "*(byte *)((int)in_EAX + 0x2b) >> 5" (pointer_expression "*(byte *)((int)in_EAX + 0x2b)" * (cast_expression "(byte *)((int)in_EAX + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)in_EAX + 0x2b)" ( (binary_expression "(int)in_EAX + 0x2b" (cast_expression "(int)in_EAX" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) >> number_literal) & number_literal)) ;) (if_statement "if ((local_30 == 0) && (bVar5 != 0)) goto LAB_0004c222;" if (parenthesized_expression "((local_30 == 0) && (bVar5 != 0))" ( (binary_expression "(local_30 == 0) && (bVar5 != 0)" (parenthesized_expression "(local_30 == 0)" ( (binary_expression "local_30 == 0" identifier == number_literal) )) && (parenthesized_expression "(bVar5 != 0)" ( (binary_expression "bVar5 != 0" identifier != number_literal) ))) )) (goto_statement "goto LAB_0004c222;" goto statement_identifier ;)) (labeled_statement "LAB_0004c306:\n      uVar3 = uVar8 & 1;" statement_identifier : (expression_statement "uVar3 = uVar8 & 1;" (assignment_expression "uVar3 = uVar8 & 1" identifier = (binary_expression "uVar8 & 1" identifier & number_literal)) ;)) (if_statement "if (local_30 != 0xfff1 || bVar5 != 0) goto LAB_0004c320;" if (parenthesized_expression "(local_30 != 0xfff1 || bVar5 != 0)" ( (binary_expression "local_30 != 0xfff1 || bVar5 != 0" (binary_expression "local_30 != 0xfff1" identifier != number_literal) || (binary_expression "bVar5 != 0" identifier != number_literal)) )) (goto_statement "goto LAB_0004c320;" goto statement_identifier ;)) (labeled_statement "LAB_0004c490:\n      local_32 = 0;" statement_identifier : (expression_statement "local_32 = 0;" (assignment_expression "local_32 = 0" identifier = number_literal) ;)) (goto_statement "goto LAB_0004c25c;" goto statement_identifier ;) })) (if_statement "if (bVar4 == 4) {\nLAB_0004c222:\n      if (gold::parameters->options_ == (General_options *)0x0) goto LAB_0004c60b;\n      uVar3 = uVar8 & 1;\n      if ((gold::parameters->options_->shared_).value == false) goto LAB_0004c490;\n      if (bVar4 == 0) {\n        local_30 = in_EAX[3];\n        bVar5 = *(byte *)((int)in_EAX + 0x2b) >> 5 & 1;\n        goto LAB_0004c306;\n      }\n    }" if (parenthesized_expression "(bVar4 == 4)" ( (binary_expression "bVar4 == 4" identifier == number_literal) )) (compound_statement "{\nLAB_0004c222:\n      if (gold::parameters->options_ == (General_options *)0x0) goto LAB_0004c60b;\n      uVar3 = uVar8 & 1;\n      if ((gold::parameters->options_->shared_).value == false) goto LAB_0004c490;\n      if (bVar4 == 0) {\n        local_30 = in_EAX[3];\n        bVar5 = *(byte *)((int)in_EAX + 0x2b) >> 5 & 1;\n        goto LAB_0004c306;\n      }\n    }" { (labeled_statement "LAB_0004c222:\n      if (gold::parameters->options_ == (General_options *)0x0) goto LAB_0004c60b;" statement_identifier : (if_statement "if (gold::parameters->options_ == (General_options *)0x0) goto LAB_0004c60b;" if (parenthesized_expression "(gold::parameters->options_ == (General_options *)0x0)" ( (ERROR "gold::" identifier : :) (binary_expression "parameters->options_ == (General_options *)0x0" (field_expression "parameters->options_" identifier -> field_identifier) == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004c60b;" goto statement_identifier ;))) (expression_statement "uVar3 = uVar8 & 1;" (assignment_expression "uVar3 = uVar8 & 1" identifier = (binary_expression "uVar8 & 1" identifier & number_literal)) ;) (if_statement "if ((gold::parameters->options_->shared_).value == false) goto LAB_0004c490;" if (parenthesized_expression "((gold::parameters->options_->shared_).value == false)" ( (binary_expression "(gold::parameters->options_->shared_).value == false" (field_expression "(gold::parameters->options_->shared_).value" (parenthesized_expression "(gold::parameters->options_->shared_)" ( (ERROR "gold::" identifier : :) (field_expression "parameters->options_->shared_" (field_expression "parameters->options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) == false) )) (goto_statement "goto LAB_0004c490;" goto statement_identifier ;)) (if_statement "if (bVar4 == 0) {\n        local_30 = in_EAX[3];\n        bVar5 = *(byte *)((int)in_EAX + 0x2b) >> 5 & 1;\n        goto LAB_0004c306;\n      }" if (parenthesized_expression "(bVar4 == 0)" ( (binary_expression "bVar4 == 0" identifier == number_literal) )) (compound_statement "{\n        local_30 = in_EAX[3];\n        bVar5 = *(byte *)((int)in_EAX + 0x2b) >> 5 & 1;\n        goto LAB_0004c306;\n      }" { (expression_statement "local_30 = in_EAX[3];" (assignment_expression "local_30 = in_EAX[3]" identifier = (subscript_expression "in_EAX[3]" identifier [ number_literal ])) ;) (expression_statement "bVar5 = *(byte *)((int)in_EAX + 0x2b) >> 5 & 1;" (assignment_expression "bVar5 = *(byte *)((int)in_EAX + 0x2b) >> 5 & 1" identifier = (binary_expression "*(byte *)((int)in_EAX + 0x2b) >> 5 & 1" (binary_expression "*(byte *)((int)in_EAX + 0x2b) >> 5" (pointer_expression "*(byte *)((int)in_EAX + 0x2b)" * (cast_expression "(byte *)((int)in_EAX + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)in_EAX + 0x2b)" ( (binary_expression "(int)in_EAX + 0x2b" (cast_expression "(int)in_EAX" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) >> number_literal) & number_literal)) ;) (goto_statement "goto LAB_0004c306;" goto statement_identifier ;) })) })) (expression_statement "uVar3 = uVar8 & 1;" (assignment_expression "uVar3 = uVar8 & 1" identifier = (binary_expression "uVar8 & 1" identifier & number_literal)) ;) (expression_statement "local_32 = bVar7;" (assignment_expression "local_32 = bVar7" identifier = identifier) ;) (if_statement "if (bVar4 == 3) goto LAB_0004c25c;" if (parenthesized_expression "(bVar4 == 3)" ( (binary_expression "bVar4 == 3" identifier == number_literal) )) (goto_statement "goto LAB_0004c25c;" goto statement_identifier ;)) (labeled_statement "LAB_0004c320:\n    uVar3 = uVar8 & 1;" statement_identifier : (expression_statement "uVar3 = uVar8 & 1;" (assignment_expression "uVar3 = uVar8 & 1" identifier = (binary_expression "uVar8 & 1" identifier & number_literal)) ;)) (if_statement "if (uVar3 == 0) {\nLAB_0004c450:\n      if (((uVar8 & 8) != 0) && (in_EAX[6] != -1)) {\n        return (bool)bVar6;\n      }\n      if ((uVar8 & 0x10) == 0) {\n        pGVar1 = gold::parameters->options_;\n        if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;\n        if ((((pGVar1->shared_).value == false) && ((pGVar1->pie_).value == false)) &&\n           (in_EAX[6] != -1)) goto LAB_0004c490;\n      }\n      if (bVar4 == 0) {\n        local_32 = *(byte *)(in_EAX[2] + 0x2c) & 1;\n        if (((*(byte *)(in_EAX[2] + 0x2c) & 1) == 0) &&\n           (local_32 = *(byte *)((int)in_EAX + 0x2b) >> 5 & in_EAX[3] == 0, local_32 == 0)) {\nLAB_0004c4d9:\n          local_32 = bVar7;\n          if (((*(byte *)((int)in_EAX + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)in_EAX + 0x2b) & 0x10) == 0)) {\n            pGVar1 = gold::parameters->options_;\n            if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;\n            bVar2 = (pGVar1->shared_).value;\n            local_32 = bVar2;\n            if ((bVar2 != false) &&\n               ((local_32 = gold::Version_script_info::get_symbol_version\n                                      (&(pGVar1->dynamic_list_).version_script_info_,(char *)*in_EAX\n                                       ,(string *)0x0,&is_global), !(bool)local_32 ||\n                (is_global != false)))) {\n              pGVar1 = gold::parameters->options_;\n              if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;\n              if ((pGVar1->Bsymbolic_).value != false) goto LAB_0004c490;\n              local_32 = bVar2;\n              if ((*(byte *)(in_EAX + 10) & 0xf) != 1) {\n                local_32 = (pGVar1->Bsymbolic_functions_).value ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        local_32 = bVar6;\n        if (bVar4 != 4) goto LAB_0004c4d9;\n      }\n      goto LAB_0004c25c;\n    }" if (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0004c450:\n      if (((uVar8 & 8) != 0) && (in_EAX[6] != -1)) {\n        return (bool)bVar6;\n      }\n      if ((uVar8 & 0x10) == 0) {\n        pGVar1 = gold::parameters->options_;\n        if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;\n        if ((((pGVar1->shared_).value == false) && ((pGVar1->pie_).value == false)) &&\n           (in_EAX[6] != -1)) goto LAB_0004c490;\n      }\n      if (bVar4 == 0) {\n        local_32 = *(byte *)(in_EAX[2] + 0x2c) & 1;\n        if (((*(byte *)(in_EAX[2] + 0x2c) & 1) == 0) &&\n           (local_32 = *(byte *)((int)in_EAX + 0x2b) >> 5 & in_EAX[3] == 0, local_32 == 0)) {\nLAB_0004c4d9:\n          local_32 = bVar7;\n          if (((*(byte *)((int)in_EAX + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)in_EAX + 0x2b) & 0x10) == 0)) {\n            pGVar1 = gold::parameters->options_;\n            if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;\n            bVar2 = (pGVar1->shared_).value;\n            local_32 = bVar2;\n            if ((bVar2 != false) &&\n               ((local_32 = gold::Version_script_info::get_symbol_version\n                                      (&(pGVar1->dynamic_list_).version_script_info_,(char *)*in_EAX\n                                       ,(string *)0x0,&is_global), !(bool)local_32 ||\n                (is_global != false)))) {\n              pGVar1 = gold::parameters->options_;\n              if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;\n              if ((pGVar1->Bsymbolic_).value != false) goto LAB_0004c490;\n              local_32 = bVar2;\n              if ((*(byte *)(in_EAX + 10) & 0xf) != 1) {\n                local_32 = (pGVar1->Bsymbolic_functions_).value ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        local_32 = bVar6;\n        if (bVar4 != 4) goto LAB_0004c4d9;\n      }\n      goto LAB_0004c25c;\n    }" { (labeled_statement "LAB_0004c450:\n      if (((uVar8 & 8) != 0) && (in_EAX[6] != -1)) {\n        return (bool)bVar6;\n      }" statement_identifier : (if_statement "if (((uVar8 & 8) != 0) && (in_EAX[6] != -1)) {\n        return (bool)bVar6;\n      }" if (parenthesized_expression "(((uVar8 & 8) != 0) && (in_EAX[6] != -1))" ( (binary_expression "((uVar8 & 8) != 0) && (in_EAX[6] != -1)" (parenthesized_expression "((uVar8 & 8) != 0)" ( (binary_expression "(uVar8 & 8) != 0" (parenthesized_expression "(uVar8 & 8)" ( (binary_expression "uVar8 & 8" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(in_EAX[6] != -1)" ( (binary_expression "in_EAX[6] != -1" (subscript_expression "in_EAX[6]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n        return (bool)bVar6;\n      }" { (return_statement "return (bool)bVar6;" return (cast_expression "(bool)bVar6" ( (type_descriptor "bool" primitive_type) ) identifier) ;) }))) (if_statement "if ((uVar8 & 0x10) == 0) {\n        pGVar1 = gold::parameters->options_;\n        if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;\n        if ((((pGVar1->shared_).value == false) && ((pGVar1->pie_).value == false)) &&\n           (in_EAX[6] != -1)) goto LAB_0004c490;\n      }" if (parenthesized_expression "((uVar8 & 0x10) == 0)" ( (binary_expression "(uVar8 & 0x10) == 0" (parenthesized_expression "(uVar8 & 0x10)" ( (binary_expression "uVar8 & 0x10" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        pGVar1 = gold::parameters->options_;\n        if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;\n        if ((((pGVar1->shared_).value == false) && ((pGVar1->pie_).value == false)) &&\n           (in_EAX[6] != -1)) goto LAB_0004c490;\n      }" { (expression_statement "pGVar1 = gold::parameters->options_;" (field_expression "pGVar1 = gold::parameters->options_" (assignment_expression "pGVar1 = gold" identifier = identifier) (ERROR "::parameters" : : identifier) -> field_identifier) ;) (if_statement "if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;" if (parenthesized_expression "(pGVar1 == (General_options *)0x0)" ( (binary_expression "pGVar1 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004c60b;" goto statement_identifier ;)) (if_statement "if ((((pGVar1->shared_).value == false) && ((pGVar1->pie_).value == false)) &&\n           (in_EAX[6] != -1)) goto LAB_0004c490;" if (parenthesized_expression "((((pGVar1->shared_).value == false) && ((pGVar1->pie_).value == false)) &&\n           (in_EAX[6] != -1))" ( (binary_expression "(((pGVar1->shared_).value == false) && ((pGVar1->pie_).value == false)) &&\n           (in_EAX[6] != -1)" (parenthesized_expression "(((pGVar1->shared_).value == false) && ((pGVar1->pie_).value == false))" ( (binary_expression "((pGVar1->shared_).value == false) && ((pGVar1->pie_).value == false)" (parenthesized_expression "((pGVar1->shared_).value == false)" ( (binary_expression "(pGVar1->shared_).value == false" (field_expression "(pGVar1->shared_).value" (parenthesized_expression "(pGVar1->shared_)" ( (field_expression "pGVar1->shared_" identifier -> field_identifier) )) . field_identifier) == false) )) && (parenthesized_expression "((pGVar1->pie_).value == false)" ( (binary_expression "(pGVar1->pie_).value == false" (field_expression "(pGVar1->pie_).value" (parenthesized_expression "(pGVar1->pie_)" ( (field_expression "pGVar1->pie_" identifier -> field_identifier) )) . field_identifier) == false) ))) )) && (parenthesized_expression "(in_EAX[6] != -1)" ( (binary_expression "in_EAX[6] != -1" (subscript_expression "in_EAX[6]" identifier [ number_literal ]) != number_literal) ))) )) (goto_statement "goto LAB_0004c490;" goto statement_identifier ;)) })) (if_statement "if (bVar4 == 0) {\n        local_32 = *(byte *)(in_EAX[2] + 0x2c) & 1;\n        if (((*(byte *)(in_EAX[2] + 0x2c) & 1) == 0) &&\n           (local_32 = *(byte *)((int)in_EAX + 0x2b) >> 5 & in_EAX[3] == 0, local_32 == 0)) {\nLAB_0004c4d9:\n          local_32 = bVar7;\n          if (((*(byte *)((int)in_EAX + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)in_EAX + 0x2b) & 0x10) == 0)) {\n            pGVar1 = gold::parameters->options_;\n            if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;\n            bVar2 = (pGVar1->shared_).value;\n            local_32 = bVar2;\n            if ((bVar2 != false) &&\n               ((local_32 = gold::Version_script_info::get_symbol_version\n                                      (&(pGVar1->dynamic_list_).version_script_info_,(char *)*in_EAX\n                                       ,(string *)0x0,&is_global), !(bool)local_32 ||\n                (is_global != false)))) {\n              pGVar1 = gold::parameters->options_;\n              if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;\n              if ((pGVar1->Bsymbolic_).value != false) goto LAB_0004c490;\n              local_32 = bVar2;\n              if ((*(byte *)(in_EAX + 10) & 0xf) != 1) {\n                local_32 = (pGVar1->Bsymbolic_functions_).value ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        local_32 = bVar6;\n        if (bVar4 != 4) goto LAB_0004c4d9;\n      }" if (parenthesized_expression "(bVar4 == 0)" ( (binary_expression "bVar4 == 0" identifier == number_literal) )) (compound_statement "{\n        local_32 = *(byte *)(in_EAX[2] + 0x2c) & 1;\n        if (((*(byte *)(in_EAX[2] + 0x2c) & 1) == 0) &&\n           (local_32 = *(byte *)((int)in_EAX + 0x2b) >> 5 & in_EAX[3] == 0, local_32 == 0)) {\nLAB_0004c4d9:\n          local_32 = bVar7;\n          if (((*(byte *)((int)in_EAX + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)in_EAX + 0x2b) & 0x10) == 0)) {\n            pGVar1 = gold::parameters->options_;\n            if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;\n            bVar2 = (pGVar1->shared_).value;\n            local_32 = bVar2;\n            if ((bVar2 != false) &&\n               ((local_32 = gold::Version_script_info::get_symbol_version\n                                      (&(pGVar1->dynamic_list_).version_script_info_,(char *)*in_EAX\n                                       ,(string *)0x0,&is_global), !(bool)local_32 ||\n                (is_global != false)))) {\n              pGVar1 = gold::parameters->options_;\n              if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;\n              if ((pGVar1->Bsymbolic_).value != false) goto LAB_0004c490;\n              local_32 = bVar2;\n              if ((*(byte *)(in_EAX + 10) & 0xf) != 1) {\n                local_32 = (pGVar1->Bsymbolic_functions_).value ^ 1;\n              }\n            }\n          }\n        }\n      }" { (expression_statement "local_32 = *(byte *)(in_EAX[2] + 0x2c) & 1;" (assignment_expression "local_32 = *(byte *)(in_EAX[2] + 0x2c) & 1" identifier = (binary_expression "*(byte *)(in_EAX[2] + 0x2c) & 1" (pointer_expression "*(byte *)(in_EAX[2] + 0x2c)" * (cast_expression "(byte *)(in_EAX[2] + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_EAX[2] + 0x2c)" ( (binary_expression "in_EAX[2] + 0x2c" (subscript_expression "in_EAX[2]" identifier [ number_literal ]) + number_literal) )))) & number_literal)) ;) (if_statement "if (((*(byte *)(in_EAX[2] + 0x2c) & 1) == 0) &&\n           (local_32 = *(byte *)((int)in_EAX + 0x2b) >> 5 & in_EAX[3] == 0, local_32 == 0)) {\nLAB_0004c4d9:\n          local_32 = bVar7;\n          if (((*(byte *)((int)in_EAX + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)in_EAX + 0x2b) & 0x10) == 0)) {\n            pGVar1 = gold::parameters->options_;\n            if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;\n            bVar2 = (pGVar1->shared_).value;\n            local_32 = bVar2;\n            if ((bVar2 != false) &&\n               ((local_32 = gold::Version_script_info::get_symbol_version\n                                      (&(pGVar1->dynamic_list_).version_script_info_,(char *)*in_EAX\n                                       ,(string *)0x0,&is_global), !(bool)local_32 ||\n                (is_global != false)))) {\n              pGVar1 = gold::parameters->options_;\n              if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;\n              if ((pGVar1->Bsymbolic_).value != false) goto LAB_0004c490;\n              local_32 = bVar2;\n              if ((*(byte *)(in_EAX + 10) & 0xf) != 1) {\n                local_32 = (pGVar1->Bsymbolic_functions_).value ^ 1;\n              }\n            }\n          }\n        }" if (parenthesized_expression "(((*(byte *)(in_EAX[2] + 0x2c) & 1) == 0) &&\n           (local_32 = *(byte *)((int)in_EAX + 0x2b) >> 5 & in_EAX[3] == 0, local_32 == 0))" ( (binary_expression "((*(byte *)(in_EAX[2] + 0x2c) & 1) == 0) &&\n           (local_32 = *(byte *)((int)in_EAX + 0x2b) >> 5 & in_EAX[3] == 0, local_32 == 0)" (parenthesized_expression "((*(byte *)(in_EAX[2] + 0x2c) & 1) == 0)" ( (binary_expression "(*(byte *)(in_EAX[2] + 0x2c) & 1) == 0" (parenthesized_expression "(*(byte *)(in_EAX[2] + 0x2c) & 1)" ( (binary_expression "*(byte *)(in_EAX[2] + 0x2c) & 1" (pointer_expression "*(byte *)(in_EAX[2] + 0x2c)" * (cast_expression "(byte *)(in_EAX[2] + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_EAX[2] + 0x2c)" ( (binary_expression "in_EAX[2] + 0x2c" (subscript_expression "in_EAX[2]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "(local_32 = *(byte *)((int)in_EAX + 0x2b) >> 5 & in_EAX[3] == 0, local_32 == 0)" ( (comma_expression "local_32 = *(byte *)((int)in_EAX + 0x2b) >> 5 & in_EAX[3] == 0, local_32 == 0" (assignment_expression "local_32 = *(byte *)((int)in_EAX + 0x2b) >> 5 & in_EAX[3] == 0" identifier = (binary_expression "*(byte *)((int)in_EAX + 0x2b) >> 5 & in_EAX[3] == 0" (binary_expression "*(byte *)((int)in_EAX + 0x2b) >> 5" (pointer_expression "*(byte *)((int)in_EAX + 0x2b)" * (cast_expression "(byte *)((int)in_EAX + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)in_EAX + 0x2b)" ( (binary_expression "(int)in_EAX + 0x2b" (cast_expression "(int)in_EAX" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) >> number_literal) & (binary_expression "in_EAX[3] == 0" (subscript_expression "in_EAX[3]" identifier [ number_literal ]) == number_literal))) , (binary_expression "local_32 == 0" identifier == number_literal)) ))) )) (compound_statement "{\nLAB_0004c4d9:\n          local_32 = bVar7;\n          if (((*(byte *)((int)in_EAX + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)in_EAX + 0x2b) & 0x10) == 0)) {\n            pGVar1 = gold::parameters->options_;\n            if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;\n            bVar2 = (pGVar1->shared_).value;\n            local_32 = bVar2;\n            if ((bVar2 != false) &&\n               ((local_32 = gold::Version_script_info::get_symbol_version\n                                      (&(pGVar1->dynamic_list_).version_script_info_,(char *)*in_EAX\n                                       ,(string *)0x0,&is_global), !(bool)local_32 ||\n                (is_global != false)))) {\n              pGVar1 = gold::parameters->options_;\n              if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;\n              if ((pGVar1->Bsymbolic_).value != false) goto LAB_0004c490;\n              local_32 = bVar2;\n              if ((*(byte *)(in_EAX + 10) & 0xf) != 1) {\n                local_32 = (pGVar1->Bsymbolic_functions_).value ^ 1;\n              }\n            }\n          }\n        }" { (labeled_statement "LAB_0004c4d9:\n          local_32 = bVar7;" statement_identifier : (expression_statement "local_32 = bVar7;" (assignment_expression "local_32 = bVar7" identifier = identifier) ;)) (if_statement "if (((*(byte *)((int)in_EAX + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)in_EAX + 0x2b) & 0x10) == 0)) {\n            pGVar1 = gold::parameters->options_;\n            if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;\n            bVar2 = (pGVar1->shared_).value;\n            local_32 = bVar2;\n            if ((bVar2 != false) &&\n               ((local_32 = gold::Version_script_info::get_symbol_version\n                                      (&(pGVar1->dynamic_list_).version_script_info_,(char *)*in_EAX\n                                       ,(string *)0x0,&is_global), !(bool)local_32 ||\n                (is_global != false)))) {\n              pGVar1 = gold::parameters->options_;\n              if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;\n              if ((pGVar1->Bsymbolic_).value != false) goto LAB_0004c490;\n              local_32 = bVar2;\n              if ((*(byte *)(in_EAX + 10) & 0xf) != 1) {\n                local_32 = (pGVar1->Bsymbolic_functions_).value ^ 1;\n              }\n            }\n          }" if (parenthesized_expression "(((*(byte *)((int)in_EAX + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)in_EAX + 0x2b) & 0x10) == 0))" ( (binary_expression "((*(byte *)((int)in_EAX + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)in_EAX + 0x2b) & 0x10) == 0)" (parenthesized_expression "((*(byte *)((int)in_EAX + 0x29) & 3) == 0)" ( (binary_expression "(*(byte *)((int)in_EAX + 0x29) & 3) == 0" (parenthesized_expression "(*(byte *)((int)in_EAX + 0x29) & 3)" ( (binary_expression "*(byte *)((int)in_EAX + 0x29) & 3" (pointer_expression "*(byte *)((int)in_EAX + 0x29)" * (cast_expression "(byte *)((int)in_EAX + 0x29)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)in_EAX + 0x29)" ( (binary_expression "(int)in_EAX + 0x29" (cast_expression "(int)in_EAX" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "((*(byte *)((int)in_EAX + 0x2b) & 0x10) == 0)" ( (binary_expression "(*(byte *)((int)in_EAX + 0x2b) & 0x10) == 0" (parenthesized_expression "(*(byte *)((int)in_EAX + 0x2b) & 0x10)" ( (binary_expression "*(byte *)((int)in_EAX + 0x2b) & 0x10" (pointer_expression "*(byte *)((int)in_EAX + 0x2b)" * (cast_expression "(byte *)((int)in_EAX + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)in_EAX + 0x2b)" ( (binary_expression "(int)in_EAX + 0x2b" (cast_expression "(int)in_EAX" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n            pGVar1 = gold::parameters->options_;\n            if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;\n            bVar2 = (pGVar1->shared_).value;\n            local_32 = bVar2;\n            if ((bVar2 != false) &&\n               ((local_32 = gold::Version_script_info::get_symbol_version\n                                      (&(pGVar1->dynamic_list_).version_script_info_,(char *)*in_EAX\n                                       ,(string *)0x0,&is_global), !(bool)local_32 ||\n                (is_global != false)))) {\n              pGVar1 = gold::parameters->options_;\n              if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;\n              if ((pGVar1->Bsymbolic_).value != false) goto LAB_0004c490;\n              local_32 = bVar2;\n              if ((*(byte *)(in_EAX + 10) & 0xf) != 1) {\n                local_32 = (pGVar1->Bsymbolic_functions_).value ^ 1;\n              }\n            }\n          }" { (expression_statement "pGVar1 = gold::parameters->options_;" (field_expression "pGVar1 = gold::parameters->options_" (assignment_expression "pGVar1 = gold" identifier = identifier) (ERROR "::parameters" : : identifier) -> field_identifier) ;) (if_statement "if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;" if (parenthesized_expression "(pGVar1 == (General_options *)0x0)" ( (binary_expression "pGVar1 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004c60b;" goto statement_identifier ;)) (expression_statement "bVar2 = (pGVar1->shared_).value;" (assignment_expression "bVar2 = (pGVar1->shared_).value" identifier = (field_expression "(pGVar1->shared_).value" (parenthesized_expression "(pGVar1->shared_)" ( (field_expression "pGVar1->shared_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "local_32 = bVar2;" (assignment_expression "local_32 = bVar2" identifier = identifier) ;) (if_statement "if ((bVar2 != false) &&\n               ((local_32 = gold::Version_script_info::get_symbol_version\n                                      (&(pGVar1->dynamic_list_).version_script_info_,(char *)*in_EAX\n                                       ,(string *)0x0,&is_global), !(bool)local_32 ||\n                (is_global != false)))) {\n              pGVar1 = gold::parameters->options_;\n              if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;\n              if ((pGVar1->Bsymbolic_).value != false) goto LAB_0004c490;\n              local_32 = bVar2;\n              if ((*(byte *)(in_EAX + 10) & 0xf) != 1) {\n                local_32 = (pGVar1->Bsymbolic_functions_).value ^ 1;\n              }\n            }" if (parenthesized_expression "((bVar2 != false) &&\n               ((local_32 = gold::Version_script_info::get_symbol_version\n                                      (&(pGVar1->dynamic_list_).version_script_info_,(char *)*in_EAX\n                                       ,(string *)0x0,&is_global), !(bool)local_32 ||\n                (is_global != false))))" ( (binary_expression "(bVar2 != false) &&\n               ((local_32 = gold::Version_script_info::get_symbol_version\n                                      (&(pGVar1->dynamic_list_).version_script_info_,(char *)*in_EAX\n                                       ,(string *)0x0,&is_global), !(bool)local_32 ||\n                (is_global != false)))" (parenthesized_expression "(bVar2 != false)" ( (binary_expression "bVar2 != false" identifier != false) )) && (parenthesized_expression "((local_32 = gold::Version_script_info::get_symbol_version\n                                      (&(pGVar1->dynamic_list_).version_script_info_,(char *)*in_EAX\n                                       ,(string *)0x0,&is_global), !(bool)local_32 ||\n                (is_global != false)))" ( (parenthesized_expression "(local_32 = gold::Version_script_info::get_symbol_version\n                                      (&(pGVar1->dynamic_list_).version_script_info_,(char *)*in_EAX\n                                       ,(string *)0x0,&is_global), !(bool)local_32 ||\n                (is_global != false))" ( (ERROR "local_32 = gold::Version_script_info::" (assignment_expression "local_32 = gold" identifier = identifier) : : identifier : :) (comma_expression "get_symbol_version\n                                      (&(pGVar1->dynamic_list_).version_script_info_,(char *)*in_EAX\n                                       ,(string *)0x0,&is_global), !(bool)local_32 ||\n                (is_global != false)" (call_expression "get_symbol_version\n                                      (&(pGVar1->dynamic_list_).version_script_info_,(char *)*in_EAX\n                                       ,(string *)0x0,&is_global)" identifier (argument_list "(&(pGVar1->dynamic_list_).version_script_info_,(char *)*in_EAX\n                                       ,(string *)0x0,&is_global)" ( (pointer_expression "&(pGVar1->dynamic_list_).version_script_info_" & (field_expression "(pGVar1->dynamic_list_).version_script_info_" (parenthesized_expression "(pGVar1->dynamic_list_)" ( (field_expression "pGVar1->dynamic_list_" identifier -> field_identifier) )) . field_identifier)) , (cast_expression "(char *)*in_EAX" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*in_EAX" * identifier)) , (cast_expression "(string *)0x0" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (pointer_expression "&is_global" & identifier) ))) , (binary_expression "!(bool)local_32 ||\n                (is_global != false)" (unary_expression "!(bool)local_32" ! (cast_expression "(bool)local_32" ( (type_descriptor "bool" primitive_type) ) identifier)) || (parenthesized_expression "(is_global != false)" ( (binary_expression "is_global != false" identifier != false) )))) )) ))) )) (compound_statement "{\n              pGVar1 = gold::parameters->options_;\n              if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;\n              if ((pGVar1->Bsymbolic_).value != false) goto LAB_0004c490;\n              local_32 = bVar2;\n              if ((*(byte *)(in_EAX + 10) & 0xf) != 1) {\n                local_32 = (pGVar1->Bsymbolic_functions_).value ^ 1;\n              }\n            }" { (expression_statement "pGVar1 = gold::parameters->options_;" (field_expression "pGVar1 = gold::parameters->options_" (assignment_expression "pGVar1 = gold" identifier = identifier) (ERROR "::parameters" : : identifier) -> field_identifier) ;) (if_statement "if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;" if (parenthesized_expression "(pGVar1 == (General_options *)0x0)" ( (binary_expression "pGVar1 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004c60b;" goto statement_identifier ;)) (if_statement "if ((pGVar1->Bsymbolic_).value != false) goto LAB_0004c490;" if (parenthesized_expression "((pGVar1->Bsymbolic_).value != false)" ( (binary_expression "(pGVar1->Bsymbolic_).value != false" (field_expression "(pGVar1->Bsymbolic_).value" (parenthesized_expression "(pGVar1->Bsymbolic_)" ( (field_expression "pGVar1->Bsymbolic_" identifier -> field_identifier) )) . field_identifier) != false) )) (goto_statement "goto LAB_0004c490;" goto statement_identifier ;)) (expression_statement "local_32 = bVar2;" (assignment_expression "local_32 = bVar2" identifier = identifier) ;) (if_statement "if ((*(byte *)(in_EAX + 10) & 0xf) != 1) {\n                local_32 = (pGVar1->Bsymbolic_functions_).value ^ 1;\n              }" if (parenthesized_expression "((*(byte *)(in_EAX + 10) & 0xf) != 1)" ( (binary_expression "(*(byte *)(in_EAX + 10) & 0xf) != 1" (parenthesized_expression "(*(byte *)(in_EAX + 10) & 0xf)" ( (binary_expression "*(byte *)(in_EAX + 10) & 0xf" (pointer_expression "*(byte *)(in_EAX + 10)" * (cast_expression "(byte *)(in_EAX + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_EAX + 10)" ( (binary_expression "in_EAX + 10" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                local_32 = (pGVar1->Bsymbolic_functions_).value ^ 1;\n              }" { (expression_statement "local_32 = (pGVar1->Bsymbolic_functions_).value ^ 1;" (assignment_expression "local_32 = (pGVar1->Bsymbolic_functions_).value ^ 1" identifier = (binary_expression "(pGVar1->Bsymbolic_functions_).value ^ 1" (field_expression "(pGVar1->Bsymbolic_functions_).value" (parenthesized_expression "(pGVar1->Bsymbolic_functions_)" ( (field_expression "pGVar1->Bsymbolic_functions_" identifier -> field_identifier) )) . field_identifier) ^ number_literal)) ;) })) })) })) })) }) (else_clause "else {\n        local_32 = bVar6;\n        if (bVar4 != 4) goto LAB_0004c4d9;\n      }" else (compound_statement "{\n        local_32 = bVar6;\n        if (bVar4 != 4) goto LAB_0004c4d9;\n      }" { (expression_statement "local_32 = bVar6;" (assignment_expression "local_32 = bVar6" identifier = identifier) ;) (if_statement "if (bVar4 != 4) goto LAB_0004c4d9;" if (parenthesized_expression "(bVar4 != 4)" ( (binary_expression "bVar4 != 4" identifier != number_literal) )) (goto_statement "goto LAB_0004c4d9;" goto statement_identifier ;)) }))) (goto_statement "goto LAB_0004c25c;" goto statement_identifier ;) })) (expression_statement "pGVar1 = gold::parameters->options_;" (field_expression "pGVar1 = gold::parameters->options_" (assignment_expression "pGVar1 = gold" identifier = identifier) (ERROR "::parameters" : : identifier) -> field_identifier) ;) (if_statement "if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;" if (parenthesized_expression "(pGVar1 == (General_options *)0x0)" ( (binary_expression "pGVar1 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004c60b;" goto statement_identifier ;)) (expression_statement "local_32 = (pGVar1->shared_).value;" (assignment_expression "local_32 = (pGVar1->shared_).value" identifier = (field_expression "(pGVar1->shared_).value" (parenthesized_expression "(pGVar1->shared_)" ( (field_expression "pGVar1->shared_" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (((bool)local_32 == false) && (local_32 = (pGVar1->pie_).value, (bool)local_32 == false))\n    goto LAB_0004c450;" if (parenthesized_expression "(((bool)local_32 == false) && (local_32 = (pGVar1->pie_).value, (bool)local_32 == false))" ( (binary_expression "((bool)local_32 == false) && (local_32 = (pGVar1->pie_).value, (bool)local_32 == false)" (parenthesized_expression "((bool)local_32 == false)" ( (binary_expression "(bool)local_32 == false" (cast_expression "(bool)local_32" ( (type_descriptor "bool" primitive_type) ) identifier) == false) )) && (parenthesized_expression "(local_32 = (pGVar1->pie_).value, (bool)local_32 == false)" ( (comma_expression "local_32 = (pGVar1->pie_).value, (bool)local_32 == false" (assignment_expression "local_32 = (pGVar1->pie_).value" identifier = (field_expression "(pGVar1->pie_).value" (parenthesized_expression "(pGVar1->pie_)" ( (field_expression "pGVar1->pie_" identifier -> field_identifier) )) . field_identifier)) , (binary_expression "(bool)local_32 == false" (cast_expression "(bool)local_32" ( (type_descriptor "bool" primitive_type) ) identifier) == false)) ))) )) (goto_statement "goto LAB_0004c450;" goto statement_identifier ;)) }) (else_clause "else {\n    local_32 = 0;\n    uVar3 = uVar8 & 1;\nLAB_0004c25c:\n    if (uVar3 == 0) goto LAB_0004c268;\n  }" else (compound_statement "{\n    local_32 = 0;\n    uVar3 = uVar8 & 1;\nLAB_0004c25c:\n    if (uVar3 == 0) goto LAB_0004c268;\n  }" { (expression_statement "local_32 = 0;" (assignment_expression "local_32 = 0" identifier = number_literal) ;) (expression_statement "uVar3 = uVar8 & 1;" (assignment_expression "uVar3 = uVar8 & 1" identifier = (binary_expression "uVar8 & 1" identifier & number_literal)) ;) (labeled_statement "LAB_0004c25c:\n    if (uVar3 == 0) goto LAB_0004c268;" statement_identifier : (if_statement "if (uVar3 == 0) goto LAB_0004c268;" if (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004c268;" goto statement_identifier ;))) }))) (expression_statement "bVar7 = bVar6;" (assignment_expression "bVar7 = bVar6" identifier = identifier) ;) (if_statement "if (((uVar8 & 8) == 0) || (in_EAX[6] == -1)) {\n    if ((*(byte *)((int)in_EAX + 0x2a) & 7) == 0) {\n      if (((*(byte *)(in_EAX[2] + 0x2c) & 1) != 0) ||\n         ((in_EAX[3] == 0 && ((*(byte *)((int)in_EAX + 0x2b) & 0x20) != 0)))) goto LAB_0004c268;\n    }\n    else if ((*(byte *)((int)in_EAX + 0x2a) & 7) == 4) goto LAB_0004c268;\n    if (((*(byte *)((int)in_EAX + 0x29) & 3) == 0) &&\n       (bVar4 = *(byte *)((int)in_EAX + 0x2b) >> 4, bVar7 = bVar4 & 1, (bVar4 & 1) == 0)) {\n      pGVar1 = gold::parameters->options_;\n      if (pGVar1 == (General_options *)0x0) {\nLAB_0004c60b:\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n      }\n      bVar7 = bVar6;\n      if ((pGVar1->shared_).value != false) {\n        bVar2 = gold::Version_script_info::get_symbol_version\n                          (&(pGVar1->dynamic_list_).version_script_info_,(char *)*in_EAX,\n                           (string *)0x0,&is_global_1);\n        if ((bVar2) && (is_global_1 == false)) {\nLAB_0004c268:\n          return (bool)(local_32 ^ 1);\n        }\n        pGVar1 = gold::parameters->options_;\n        if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;\n        bVar7 = (pGVar1->Bsymbolic_).value;\n        if (((bool)bVar7 == false) && (bVar7 = local_32 ^ 1, (*(byte *)(in_EAX + 10) & 0xf) != 1)) {\n          bVar7 = bVar7 | (pGVar1->Bsymbolic_functions_).value;\n        }\n      }\n    }\n  }" if (parenthesized_expression "(((uVar8 & 8) == 0) || (in_EAX[6] == -1))" ( (binary_expression "((uVar8 & 8) == 0) || (in_EAX[6] == -1)" (parenthesized_expression "((uVar8 & 8) == 0)" ( (binary_expression "(uVar8 & 8) == 0" (parenthesized_expression "(uVar8 & 8)" ( (binary_expression "uVar8 & 8" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(in_EAX[6] == -1)" ( (binary_expression "in_EAX[6] == -1" (subscript_expression "in_EAX[6]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n    if ((*(byte *)((int)in_EAX + 0x2a) & 7) == 0) {\n      if (((*(byte *)(in_EAX[2] + 0x2c) & 1) != 0) ||\n         ((in_EAX[3] == 0 && ((*(byte *)((int)in_EAX + 0x2b) & 0x20) != 0)))) goto LAB_0004c268;\n    }\n    else if ((*(byte *)((int)in_EAX + 0x2a) & 7) == 4) goto LAB_0004c268;\n    if (((*(byte *)((int)in_EAX + 0x29) & 3) == 0) &&\n       (bVar4 = *(byte *)((int)in_EAX + 0x2b) >> 4, bVar7 = bVar4 & 1, (bVar4 & 1) == 0)) {\n      pGVar1 = gold::parameters->options_;\n      if (pGVar1 == (General_options *)0x0) {\nLAB_0004c60b:\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n      }\n      bVar7 = bVar6;\n      if ((pGVar1->shared_).value != false) {\n        bVar2 = gold::Version_script_info::get_symbol_version\n                          (&(pGVar1->dynamic_list_).version_script_info_,(char *)*in_EAX,\n                           (string *)0x0,&is_global_1);\n        if ((bVar2) && (is_global_1 == false)) {\nLAB_0004c268:\n          return (bool)(local_32 ^ 1);\n        }\n        pGVar1 = gold::parameters->options_;\n        if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;\n        bVar7 = (pGVar1->Bsymbolic_).value;\n        if (((bool)bVar7 == false) && (bVar7 = local_32 ^ 1, (*(byte *)(in_EAX + 10) & 0xf) != 1)) {\n          bVar7 = bVar7 | (pGVar1->Bsymbolic_functions_).value;\n        }\n      }\n    }\n  }" { (if_statement "if ((*(byte *)((int)in_EAX + 0x2a) & 7) == 0) {\n      if (((*(byte *)(in_EAX[2] + 0x2c) & 1) != 0) ||\n         ((in_EAX[3] == 0 && ((*(byte *)((int)in_EAX + 0x2b) & 0x20) != 0)))) goto LAB_0004c268;\n    }\n    else if ((*(byte *)((int)in_EAX + 0x2a) & 7) == 4) goto LAB_0004c268;" if (parenthesized_expression "((*(byte *)((int)in_EAX + 0x2a) & 7) == 0)" ( (binary_expression "(*(byte *)((int)in_EAX + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)((int)in_EAX + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)in_EAX + 0x2a) & 7" (pointer_expression "*(byte *)((int)in_EAX + 0x2a)" * (cast_expression "(byte *)((int)in_EAX + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)in_EAX + 0x2a)" ( (binary_expression "(int)in_EAX + 0x2a" (cast_expression "(int)in_EAX" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      if (((*(byte *)(in_EAX[2] + 0x2c) & 1) != 0) ||\n         ((in_EAX[3] == 0 && ((*(byte *)((int)in_EAX + 0x2b) & 0x20) != 0)))) goto LAB_0004c268;\n    }" { (if_statement "if (((*(byte *)(in_EAX[2] + 0x2c) & 1) != 0) ||\n         ((in_EAX[3] == 0 && ((*(byte *)((int)in_EAX + 0x2b) & 0x20) != 0)))) goto LAB_0004c268;" if (parenthesized_expression "(((*(byte *)(in_EAX[2] + 0x2c) & 1) != 0) ||\n         ((in_EAX[3] == 0 && ((*(byte *)((int)in_EAX + 0x2b) & 0x20) != 0))))" ( (binary_expression "((*(byte *)(in_EAX[2] + 0x2c) & 1) != 0) ||\n         ((in_EAX[3] == 0 && ((*(byte *)((int)in_EAX + 0x2b) & 0x20) != 0)))" (parenthesized_expression "((*(byte *)(in_EAX[2] + 0x2c) & 1) != 0)" ( (binary_expression "(*(byte *)(in_EAX[2] + 0x2c) & 1) != 0" (parenthesized_expression "(*(byte *)(in_EAX[2] + 0x2c) & 1)" ( (binary_expression "*(byte *)(in_EAX[2] + 0x2c) & 1" (pointer_expression "*(byte *)(in_EAX[2] + 0x2c)" * (cast_expression "(byte *)(in_EAX[2] + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_EAX[2] + 0x2c)" ( (binary_expression "in_EAX[2] + 0x2c" (subscript_expression "in_EAX[2]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) != number_literal) )) || (parenthesized_expression "((in_EAX[3] == 0 && ((*(byte *)((int)in_EAX + 0x2b) & 0x20) != 0)))" ( (parenthesized_expression "(in_EAX[3] == 0 && ((*(byte *)((int)in_EAX + 0x2b) & 0x20) != 0))" ( (binary_expression "in_EAX[3] == 0 && ((*(byte *)((int)in_EAX + 0x2b) & 0x20) != 0)" (binary_expression "in_EAX[3] == 0" (subscript_expression "in_EAX[3]" identifier [ number_literal ]) == number_literal) && (parenthesized_expression "((*(byte *)((int)in_EAX + 0x2b) & 0x20) != 0)" ( (binary_expression "(*(byte *)((int)in_EAX + 0x2b) & 0x20) != 0" (parenthesized_expression "(*(byte *)((int)in_EAX + 0x2b) & 0x20)" ( (binary_expression "*(byte *)((int)in_EAX + 0x2b) & 0x20" (pointer_expression "*(byte *)((int)in_EAX + 0x2b)" * (cast_expression "(byte *)((int)in_EAX + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)in_EAX + 0x2b)" ( (binary_expression "(int)in_EAX + 0x2b" (cast_expression "(int)in_EAX" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) ))) )) ))) )) (goto_statement "goto LAB_0004c268;" goto statement_identifier ;)) }) (else_clause "else if ((*(byte *)((int)in_EAX + 0x2a) & 7) == 4) goto LAB_0004c268;" else (if_statement "if ((*(byte *)((int)in_EAX + 0x2a) & 7) == 4) goto LAB_0004c268;" if (parenthesized_expression "((*(byte *)((int)in_EAX + 0x2a) & 7) == 4)" ( (binary_expression "(*(byte *)((int)in_EAX + 0x2a) & 7) == 4" (parenthesized_expression "(*(byte *)((int)in_EAX + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)in_EAX + 0x2a) & 7" (pointer_expression "*(byte *)((int)in_EAX + 0x2a)" * (cast_expression "(byte *)((int)in_EAX + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)in_EAX + 0x2a)" ( (binary_expression "(int)in_EAX + 0x2a" (cast_expression "(int)in_EAX" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0004c268;" goto statement_identifier ;)))) (if_statement "if (((*(byte *)((int)in_EAX + 0x29) & 3) == 0) &&\n       (bVar4 = *(byte *)((int)in_EAX + 0x2b) >> 4, bVar7 = bVar4 & 1, (bVar4 & 1) == 0)) {\n      pGVar1 = gold::parameters->options_;\n      if (pGVar1 == (General_options *)0x0) {\nLAB_0004c60b:\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n      }\n      bVar7 = bVar6;\n      if ((pGVar1->shared_).value != false) {\n        bVar2 = gold::Version_script_info::get_symbol_version\n                          (&(pGVar1->dynamic_list_).version_script_info_,(char *)*in_EAX,\n                           (string *)0x0,&is_global_1);\n        if ((bVar2) && (is_global_1 == false)) {\nLAB_0004c268:\n          return (bool)(local_32 ^ 1);\n        }\n        pGVar1 = gold::parameters->options_;\n        if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;\n        bVar7 = (pGVar1->Bsymbolic_).value;\n        if (((bool)bVar7 == false) && (bVar7 = local_32 ^ 1, (*(byte *)(in_EAX + 10) & 0xf) != 1)) {\n          bVar7 = bVar7 | (pGVar1->Bsymbolic_functions_).value;\n        }\n      }\n    }" if (parenthesized_expression "(((*(byte *)((int)in_EAX + 0x29) & 3) == 0) &&\n       (bVar4 = *(byte *)((int)in_EAX + 0x2b) >> 4, bVar7 = bVar4 & 1, (bVar4 & 1) == 0))" ( (binary_expression "((*(byte *)((int)in_EAX + 0x29) & 3) == 0) &&\n       (bVar4 = *(byte *)((int)in_EAX + 0x2b) >> 4, bVar7 = bVar4 & 1, (bVar4 & 1) == 0)" (parenthesized_expression "((*(byte *)((int)in_EAX + 0x29) & 3) == 0)" ( (binary_expression "(*(byte *)((int)in_EAX + 0x29) & 3) == 0" (parenthesized_expression "(*(byte *)((int)in_EAX + 0x29) & 3)" ( (binary_expression "*(byte *)((int)in_EAX + 0x29) & 3" (pointer_expression "*(byte *)((int)in_EAX + 0x29)" * (cast_expression "(byte *)((int)in_EAX + 0x29)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)in_EAX + 0x29)" ( (binary_expression "(int)in_EAX + 0x29" (cast_expression "(int)in_EAX" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "(bVar4 = *(byte *)((int)in_EAX + 0x2b) >> 4, bVar7 = bVar4 & 1, (bVar4 & 1) == 0)" ( (comma_expression "bVar4 = *(byte *)((int)in_EAX + 0x2b) >> 4, bVar7 = bVar4 & 1, (bVar4 & 1) == 0" (assignment_expression "bVar4 = *(byte *)((int)in_EAX + 0x2b) >> 4" identifier = (binary_expression "*(byte *)((int)in_EAX + 0x2b) >> 4" (pointer_expression "*(byte *)((int)in_EAX + 0x2b)" * (cast_expression "(byte *)((int)in_EAX + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)in_EAX + 0x2b)" ( (binary_expression "(int)in_EAX + 0x2b" (cast_expression "(int)in_EAX" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) >> number_literal)) , (comma_expression "bVar7 = bVar4 & 1, (bVar4 & 1) == 0" (assignment_expression "bVar7 = bVar4 & 1" identifier = (binary_expression "bVar4 & 1" identifier & number_literal)) , (binary_expression "(bVar4 & 1) == 0" (parenthesized_expression "(bVar4 & 1)" ( (binary_expression "bVar4 & 1" identifier & number_literal) )) == number_literal))) ))) )) (compound_statement "{\n      pGVar1 = gold::parameters->options_;\n      if (pGVar1 == (General_options *)0x0) {\nLAB_0004c60b:\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n      }\n      bVar7 = bVar6;\n      if ((pGVar1->shared_).value != false) {\n        bVar2 = gold::Version_script_info::get_symbol_version\n                          (&(pGVar1->dynamic_list_).version_script_info_,(char *)*in_EAX,\n                           (string *)0x0,&is_global_1);\n        if ((bVar2) && (is_global_1 == false)) {\nLAB_0004c268:\n          return (bool)(local_32 ^ 1);\n        }\n        pGVar1 = gold::parameters->options_;\n        if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;\n        bVar7 = (pGVar1->Bsymbolic_).value;\n        if (((bool)bVar7 == false) && (bVar7 = local_32 ^ 1, (*(byte *)(in_EAX + 10) & 0xf) != 1)) {\n          bVar7 = bVar7 | (pGVar1->Bsymbolic_functions_).value;\n        }\n      }\n    }" { (expression_statement "pGVar1 = gold::parameters->options_;" (field_expression "pGVar1 = gold::parameters->options_" (assignment_expression "pGVar1 = gold" identifier = identifier) (ERROR "::parameters" : : identifier) -> field_identifier) ;) (if_statement "if (pGVar1 == (General_options *)0x0) {\nLAB_0004c60b:\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n      }" if (parenthesized_expression "(pGVar1 == (General_options *)0x0)" ( (binary_expression "pGVar1 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0004c60b:\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n      }" { (labeled_statement "LAB_0004c60b:\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" statement_identifier : comment (labeled_statement "gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;))) })) (expression_statement "bVar7 = bVar6;" (assignment_expression "bVar7 = bVar6" identifier = identifier) ;) (if_statement "if ((pGVar1->shared_).value != false) {\n        bVar2 = gold::Version_script_info::get_symbol_version\n                          (&(pGVar1->dynamic_list_).version_script_info_,(char *)*in_EAX,\n                           (string *)0x0,&is_global_1);\n        if ((bVar2) && (is_global_1 == false)) {\nLAB_0004c268:\n          return (bool)(local_32 ^ 1);\n        }\n        pGVar1 = gold::parameters->options_;\n        if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;\n        bVar7 = (pGVar1->Bsymbolic_).value;\n        if (((bool)bVar7 == false) && (bVar7 = local_32 ^ 1, (*(byte *)(in_EAX + 10) & 0xf) != 1)) {\n          bVar7 = bVar7 | (pGVar1->Bsymbolic_functions_).value;\n        }\n      }" if (parenthesized_expression "((pGVar1->shared_).value != false)" ( (binary_expression "(pGVar1->shared_).value != false" (field_expression "(pGVar1->shared_).value" (parenthesized_expression "(pGVar1->shared_)" ( (field_expression "pGVar1->shared_" identifier -> field_identifier) )) . field_identifier) != false) )) (compound_statement "{\n        bVar2 = gold::Version_script_info::get_symbol_version\n                          (&(pGVar1->dynamic_list_).version_script_info_,(char *)*in_EAX,\n                           (string *)0x0,&is_global_1);\n        if ((bVar2) && (is_global_1 == false)) {\nLAB_0004c268:\n          return (bool)(local_32 ^ 1);\n        }\n        pGVar1 = gold::parameters->options_;\n        if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;\n        bVar7 = (pGVar1->Bsymbolic_).value;\n        if (((bool)bVar7 == false) && (bVar7 = local_32 ^ 1, (*(byte *)(in_EAX + 10) & 0xf) != 1)) {\n          bVar7 = bVar7 | (pGVar1->Bsymbolic_functions_).value;\n        }\n      }" { (ERROR "bVar2 = gold::" (assignment_expression "bVar2 = gold" identifier = identifier) : :) (labeled_statement "Version_script_info::get_symbol_version\n                          (&(pGVar1->dynamic_list_).version_script_info_,(char *)*in_EAX,\n                           (string *)0x0,&is_global_1);" statement_identifier : (ERROR ":" :) (expression_statement "get_symbol_version\n                          (&(pGVar1->dynamic_list_).version_script_info_,(char *)*in_EAX,\n                           (string *)0x0,&is_global_1);" (call_expression "get_symbol_version\n                          (&(pGVar1->dynamic_list_).version_script_info_,(char *)*in_EAX,\n                           (string *)0x0,&is_global_1)" identifier (argument_list "(&(pGVar1->dynamic_list_).version_script_info_,(char *)*in_EAX,\n                           (string *)0x0,&is_global_1)" ( (pointer_expression "&(pGVar1->dynamic_list_).version_script_info_" & (field_expression "(pGVar1->dynamic_list_).version_script_info_" (parenthesized_expression "(pGVar1->dynamic_list_)" ( (field_expression "pGVar1->dynamic_list_" identifier -> field_identifier) )) . field_identifier)) , (cast_expression "(char *)*in_EAX" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*in_EAX" * identifier)) , (cast_expression "(string *)0x0" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (pointer_expression "&is_global_1" & identifier) ))) ;)) (if_statement "if ((bVar2) && (is_global_1 == false)) {\nLAB_0004c268:\n          return (bool)(local_32 ^ 1);\n        }" if (parenthesized_expression "((bVar2) && (is_global_1 == false))" ( (binary_expression "(bVar2) && (is_global_1 == false)" (parenthesized_expression "(bVar2)" ( identifier )) && (parenthesized_expression "(is_global_1 == false)" ( (binary_expression "is_global_1 == false" identifier == false) ))) )) (compound_statement "{\nLAB_0004c268:\n          return (bool)(local_32 ^ 1);\n        }" { (labeled_statement "LAB_0004c268:\n          return (bool)(local_32 ^ 1);" statement_identifier : (return_statement "return (bool)(local_32 ^ 1);" return (cast_expression "(bool)(local_32 ^ 1)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(local_32 ^ 1)" ( (binary_expression "local_32 ^ 1" identifier ^ number_literal) ))) ;)) })) (expression_statement "pGVar1 = gold::parameters->options_;" (field_expression "pGVar1 = gold::parameters->options_" (assignment_expression "pGVar1 = gold" identifier = identifier) (ERROR "::parameters" : : identifier) -> field_identifier) ;) (if_statement "if (pGVar1 == (General_options *)0x0) goto LAB_0004c60b;" if (parenthesized_expression "(pGVar1 == (General_options *)0x0)" ( (binary_expression "pGVar1 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004c60b;" goto statement_identifier ;)) (expression_statement "bVar7 = (pGVar1->Bsymbolic_).value;" (assignment_expression "bVar7 = (pGVar1->Bsymbolic_).value" identifier = (field_expression "(pGVar1->Bsymbolic_).value" (parenthesized_expression "(pGVar1->Bsymbolic_)" ( (field_expression "pGVar1->Bsymbolic_" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (((bool)bVar7 == false) && (bVar7 = local_32 ^ 1, (*(byte *)(in_EAX + 10) & 0xf) != 1)) {\n          bVar7 = bVar7 | (pGVar1->Bsymbolic_functions_).value;\n        }" if (parenthesized_expression "(((bool)bVar7 == false) && (bVar7 = local_32 ^ 1, (*(byte *)(in_EAX + 10) & 0xf) != 1))" ( (binary_expression "((bool)bVar7 == false) && (bVar7 = local_32 ^ 1, (*(byte *)(in_EAX + 10) & 0xf) != 1)" (parenthesized_expression "((bool)bVar7 == false)" ( (binary_expression "(bool)bVar7 == false" (cast_expression "(bool)bVar7" ( (type_descriptor "bool" primitive_type) ) identifier) == false) )) && (parenthesized_expression "(bVar7 = local_32 ^ 1, (*(byte *)(in_EAX + 10) & 0xf) != 1)" ( (comma_expression "bVar7 = local_32 ^ 1, (*(byte *)(in_EAX + 10) & 0xf) != 1" (assignment_expression "bVar7 = local_32 ^ 1" identifier = (binary_expression "local_32 ^ 1" identifier ^ number_literal)) , (binary_expression "(*(byte *)(in_EAX + 10) & 0xf) != 1" (parenthesized_expression "(*(byte *)(in_EAX + 10) & 0xf)" ( (binary_expression "*(byte *)(in_EAX + 10) & 0xf" (pointer_expression "*(byte *)(in_EAX + 10)" * (cast_expression "(byte *)(in_EAX + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_EAX + 10)" ( (binary_expression "in_EAX + 10" identifier + number_literal) )))) & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n          bVar7 = bVar7 | (pGVar1->Bsymbolic_functions_).value;\n        }" { (expression_statement "bVar7 = bVar7 | (pGVar1->Bsymbolic_functions_).value;" (assignment_expression "bVar7 = bVar7 | (pGVar1->Bsymbolic_functions_).value" identifier = (binary_expression "bVar7 | (pGVar1->Bsymbolic_functions_).value" identifier | (field_expression "(pGVar1->Bsymbolic_functions_).value" (parenthesized_expression "(pGVar1->Bsymbolic_functions_)" ( (field_expression "pGVar1->Bsymbolic_functions_" identifier -> field_identifier) )) . field_identifier))) ;) })) })) })) })) (return_statement "return (bool)bVar7;" return (cast_expression "(bool)bVar7" ( (type_descriptor "bool" primitive_type) ) identifier) ;) })))
(translation_unit "uint __regparm3 FUN_0004c1a0(undefined4 *param_1,int param_2,uint param_3,int param_4)\n\n{\n  byte bVar1;\n  int iVar2;\n  uint *puVar3;\n  int *piVar4;\n  byte bVar5;\n  char cVar6;\n  uint uVar7;\n  int iVar8;\n  byte bVar9;\n  byte bVar10;\n  undefined4 extraout_ECX;\n  uint uVar11;\n  int extraout_EDX;\n  int *piVar12;\n  int *piVar13;\n  uint uVar14;\n  uint local_38;\n  byte local_32;\n  int local_30;\n  int iStack_2c;\n  int iStack_28;\n  char local_1e;\n  char local_1d [9];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4c1a9;\n  if ((*(byte *)(param_4 + 0x54) & 2) == 0) {\n    return 1;\n  }\n  uVar14 = 0;\n  if (param_2 - 1U < 0x2b) {\n    uVar14 = (uint)(char)(&DAT_0024cfbf)[param_2];\n  }\n  if (param_1 == (undefined4 *)0x0) {\n    iVar8 = *(int *)(DAT_0033f2f0 + 8);\n    if (iVar8 != 0) {\n      if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar14 & 1 | param_3;\n    }\n    iVar8 = FUN_000496d0();\n    goto LAB_0004c60b;\n  }\n  bVar5 = *(byte *)(DAT_0033f2f0 + 0x10);\n  if (bVar5 == 0) {\n    FUN_00049580();\n    FUN_00058c4e(&DAT_0033f2f0);\n    if (-1 < (char)*(byte *)(iStack_28 + 0xb)) {\n      if ((*(byte *)(iStack_28 + 0xb) & 8) == 0) {\n                    \n        FUN_0008b620(0x53e03f,0x6ab,0x540406,extraout_ECX);\n      }\n      puVar3 = *(uint **)(iStack_28 + 0xc);\n      uVar14 = *puVar3;\n      uVar7 = uVar14 % puVar3[3];\n      piVar13 = *(int **)(puVar3[2] + uVar7 * 4);\n      if (piVar13 != (int *)0x0) {\n        uVar11 = ((int *)*piVar13)[1];\n        piVar4 = (int *)*piVar13;\n        while (piVar12 = piVar4, uVar14 != uVar11) {\n          piVar4 = (int *)*piVar12;\n          if ((piVar4 == (int *)0x0) ||\n             (uVar11 = piVar4[1], piVar13 = piVar12, uVar7 != uVar11 % puVar3[3]))\n          goto LAB_0004c8d4;\n        }\n        if (*piVar13 != 0) goto LAB_0004c6e9;\n      }\nLAB_0004c8d4:\n      FUN_00126fe0(puVar3,*(undefined4 *)(extraout_EDX + 8),*(uint *)(iStack_28 + 8) & 0x7ffffff,\n                   uVar14);\n    }\nLAB_0004c6e9:\n    if (iStack_2c == 0) {\n      if (*(int *)(iRam00631faa + 8) == 0) {\n                    \n        FUN_0008b620(0x538f27,0x5c,0x540242,0);\n      }\n    }\n    else {\n      FUN_0014e8a0(iStack_2c);\n    }\n    FUN_000495b0();\n    uVar14 = local_30 - 0xf;\n    if (uVar14 < 0x1a) {\n                    \n                    \n      uVar14 = (*(code *)(*(int *)(uVar14 * 4 + 0x53e9fe) + 0x631cba))();\n      return uVar14;\n    }\n    return uVar14;\n  }\n  if (*(char *)(DAT_0033f2f0 + 0x11) == '\0') {\n    bVar9 = *(byte *)((int)param_1 + 0x2a) & 7;\n    bVar1 = 0;\n    iVar8 = DAT_0033f2f0;\n    if ((*(byte *)((int)param_1 + 0x2a) & 7) == 0) {\n      local_30 = param_1[3];\n      bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;\n      if ((local_30 == 0) && (bVar10 != 0)) goto LAB_0004c222;\nLAB_0004c306:\n      if (local_30 != 0xfff1 || bVar10 != 0) goto LAB_0004c320;\nLAB_0004c490:\n      local_32 = 0;\n      goto LAB_0004c25c;\n    }\n    if (bVar9 == 4) {\nLAB_0004c222:\n      if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_0004c60b;\n      if (*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x1a25) == '\0') goto LAB_0004c490;\n      if (bVar9 == 0) {\n        local_30 = param_1[3];\n        bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;\n        goto LAB_0004c306;\n      }\n    }\n    local_32 = bVar1;\n    if (bVar9 == 3) goto LAB_0004c25c;\nLAB_0004c320:\n    local_38 = uVar14 & 1;\n    if (local_38 == 0) {\nLAB_0004c450:\n      if (((uVar14 & 8) != 0) && (param_1[6] != -1)) {\n        return (uint)bVar5;\n      }\n      if ((uVar14 & 0x10) == 0) {\n        iVar2 = *(int *)(DAT_0033f2f0 + 8);\n        if (iVar2 == 0) goto LAB_0004c60b;\n        if (((*(char *)(iVar2 + 0x1a25) == '\0') && (*(char *)(iVar2 + 0x2931) == '\0')) &&\n           (param_1[6] != -1)) goto LAB_0004c490;\n      }\n      if (bVar9 == 0) {\n        local_32 = *(byte *)(param_1[2] + 0x2c) & 1;\n        if (((*(byte *)(param_1[2] + 0x2c) & 1) == 0) &&\n           (local_32 = *(byte *)((int)param_1 + 0x2b) >> 5 & param_1[3] == 0, local_32 == 0)) {\nLAB_0004c4d9:\n          local_32 = bVar1;\n          if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)param_1 + 0x2b) & 0x10) == 0)) {\n            iVar8 = *(int *)(DAT_0033f2f0 + 8);\n            if (iVar8 == 0) goto LAB_0004c60b;\n            bVar1 = *(byte *)(iVar8 + 0x1a25);\n            local_32 = bVar1;\n            if ((bVar1 != 0) &&\n               ((local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0')))) {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              iVar8 = DAT_0033f2f0;\n              if (iVar2 == 0) goto LAB_0004c60b;\n              if (*(char *)(iVar2 + 0x825) != '\0') goto LAB_0004c490;\n              local_32 = bVar1;\n              if ((*(byte *)(param_1 + 10) & 0xf) != 1) {\n                local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        local_32 = bVar5;\n        if (bVar9 != 4) goto LAB_0004c4d9;\n      }\n      goto LAB_0004c25c;\n    }\n    iVar2 = *(int *)(DAT_0033f2f0 + 8);\n    if (iVar2 == 0) goto LAB_0004c60b;\n    local_32 = *(byte *)(iVar2 + 0x1a25);\n    if ((local_32 == 0) && (local_32 = *(byte *)(iVar2 + 0x2931), local_32 == 0)) goto LAB_0004c450;\n  }\n  else {\n    local_32 = 0;\nLAB_0004c25c:\n    local_38 = uVar14 & 1;\n    if (local_38 == 0) goto LAB_0004c268;\n  }\n  uVar11 = (uint)bVar5;\n  uVar7 = uVar11;\n  if (((uVar14 & 8) == 0) || (param_1[6] == -1)) {\n    if ((*(byte *)((int)param_1 + 0x2a) & 7) == 0) {\n      if (((*(byte *)(param_1[2] + 0x2c) & 1) != 0) ||\n         ((param_1[3] == 0 && ((*(byte *)((int)param_1 + 0x2b) & 0x20) != 0)))) goto LAB_0004c268;\n    }\n    else if ((*(byte *)((int)param_1 + 0x2a) & 7) == 4) goto LAB_0004c268;\n    if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n       (bVar5 = *(byte *)((int)param_1 + 0x2b) >> 4, uVar7 = bVar5 & 1, (bVar5 & 1) == 0)) {\n      iVar8 = *(int *)(DAT_0033f2f0 + 8);\n      if (iVar8 == 0) {\nLAB_0004c60b:\n                    \n        FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar8);\n      }\n      uVar7 = uVar11;\n      if (*(char *)(iVar8 + 0x1a25) != '\0') {\n        cVar6 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,local_1d);\n        if ((cVar6 != '\0') && (local_1d[0] == '\0')) {\nLAB_0004c268:\n          return local_32 ^ 1;\n        }\n        iVar8 = *(int *)(DAT_0033f2f0 + 8);\n        if (iVar8 == 0) goto LAB_0004c60b;\n        uVar7 = (uint)*(byte *)(iVar8 + 0x825);\n        if ((*(byte *)(iVar8 + 0x825) == 0) &&\n           (uVar7 = local_32 ^ 1, (*(byte *)(param_1 + 10) & 0xf) != 1)) {\n          uVar7 = (uint)(byte)((byte)uVar7 | *(byte *)(iVar8 + 0x8a1));\n        }\n      }\n    }\n  }\n  return uVar7;\n}\n\n" (function_definition "uint __regparm3 FUN_0004c1a0(undefined4 *param_1,int param_2,uint param_3,int param_4)\n\n{\n  byte bVar1;\n  int iVar2;\n  uint *puVar3;\n  int *piVar4;\n  byte bVar5;\n  char cVar6;\n  uint uVar7;\n  int iVar8;\n  byte bVar9;\n  byte bVar10;\n  undefined4 extraout_ECX;\n  uint uVar11;\n  int extraout_EDX;\n  int *piVar12;\n  int *piVar13;\n  uint uVar14;\n  uint local_38;\n  byte local_32;\n  int local_30;\n  int iStack_2c;\n  int iStack_28;\n  char local_1e;\n  char local_1d [9];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4c1a9;\n  if ((*(byte *)(param_4 + 0x54) & 2) == 0) {\n    return 1;\n  }\n  uVar14 = 0;\n  if (param_2 - 1U < 0x2b) {\n    uVar14 = (uint)(char)(&DAT_0024cfbf)[param_2];\n  }\n  if (param_1 == (undefined4 *)0x0) {\n    iVar8 = *(int *)(DAT_0033f2f0 + 8);\n    if (iVar8 != 0) {\n      if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar14 & 1 | param_3;\n    }\n    iVar8 = FUN_000496d0();\n    goto LAB_0004c60b;\n  }\n  bVar5 = *(byte *)(DAT_0033f2f0 + 0x10);\n  if (bVar5 == 0) {\n    FUN_00049580();\n    FUN_00058c4e(&DAT_0033f2f0);\n    if (-1 < (char)*(byte *)(iStack_28 + 0xb)) {\n      if ((*(byte *)(iStack_28 + 0xb) & 8) == 0) {\n                    \n        FUN_0008b620(0x53e03f,0x6ab,0x540406,extraout_ECX);\n      }\n      puVar3 = *(uint **)(iStack_28 + 0xc);\n      uVar14 = *puVar3;\n      uVar7 = uVar14 % puVar3[3];\n      piVar13 = *(int **)(puVar3[2] + uVar7 * 4);\n      if (piVar13 != (int *)0x0) {\n        uVar11 = ((int *)*piVar13)[1];\n        piVar4 = (int *)*piVar13;\n        while (piVar12 = piVar4, uVar14 != uVar11) {\n          piVar4 = (int *)*piVar12;\n          if ((piVar4 == (int *)0x0) ||\n             (uVar11 = piVar4[1], piVar13 = piVar12, uVar7 != uVar11 % puVar3[3]))\n          goto LAB_0004c8d4;\n        }\n        if (*piVar13 != 0) goto LAB_0004c6e9;\n      }\nLAB_0004c8d4:\n      FUN_00126fe0(puVar3,*(undefined4 *)(extraout_EDX + 8),*(uint *)(iStack_28 + 8) & 0x7ffffff,\n                   uVar14);\n    }\nLAB_0004c6e9:\n    if (iStack_2c == 0) {\n      if (*(int *)(iRam00631faa + 8) == 0) {\n                    \n        FUN_0008b620(0x538f27,0x5c,0x540242,0);\n      }\n    }\n    else {\n      FUN_0014e8a0(iStack_2c);\n    }\n    FUN_000495b0();\n    uVar14 = local_30 - 0xf;\n    if (uVar14 < 0x1a) {\n                    \n                    \n      uVar14 = (*(code *)(*(int *)(uVar14 * 4 + 0x53e9fe) + 0x631cba))();\n      return uVar14;\n    }\n    return uVar14;\n  }\n  if (*(char *)(DAT_0033f2f0 + 0x11) == '\0') {\n    bVar9 = *(byte *)((int)param_1 + 0x2a) & 7;\n    bVar1 = 0;\n    iVar8 = DAT_0033f2f0;\n    if ((*(byte *)((int)param_1 + 0x2a) & 7) == 0) {\n      local_30 = param_1[3];\n      bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;\n      if ((local_30 == 0) && (bVar10 != 0)) goto LAB_0004c222;\nLAB_0004c306:\n      if (local_30 != 0xfff1 || bVar10 != 0) goto LAB_0004c320;\nLAB_0004c490:\n      local_32 = 0;\n      goto LAB_0004c25c;\n    }\n    if (bVar9 == 4) {\nLAB_0004c222:\n      if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_0004c60b;\n      if (*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x1a25) == '\0') goto LAB_0004c490;\n      if (bVar9 == 0) {\n        local_30 = param_1[3];\n        bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;\n        goto LAB_0004c306;\n      }\n    }\n    local_32 = bVar1;\n    if (bVar9 == 3) goto LAB_0004c25c;\nLAB_0004c320:\n    local_38 = uVar14 & 1;\n    if (local_38 == 0) {\nLAB_0004c450:\n      if (((uVar14 & 8) != 0) && (param_1[6] != -1)) {\n        return (uint)bVar5;\n      }\n      if ((uVar14 & 0x10) == 0) {\n        iVar2 = *(int *)(DAT_0033f2f0 + 8);\n        if (iVar2 == 0) goto LAB_0004c60b;\n        if (((*(char *)(iVar2 + 0x1a25) == '\0') && (*(char *)(iVar2 + 0x2931) == '\0')) &&\n           (param_1[6] != -1)) goto LAB_0004c490;\n      }\n      if (bVar9 == 0) {\n        local_32 = *(byte *)(param_1[2] + 0x2c) & 1;\n        if (((*(byte *)(param_1[2] + 0x2c) & 1) == 0) &&\n           (local_32 = *(byte *)((int)param_1 + 0x2b) >> 5 & param_1[3] == 0, local_32 == 0)) {\nLAB_0004c4d9:\n          local_32 = bVar1;\n          if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)param_1 + 0x2b) & 0x10) == 0)) {\n            iVar8 = *(int *)(DAT_0033f2f0 + 8);\n            if (iVar8 == 0) goto LAB_0004c60b;\n            bVar1 = *(byte *)(iVar8 + 0x1a25);\n            local_32 = bVar1;\n            if ((bVar1 != 0) &&\n               ((local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0')))) {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              iVar8 = DAT_0033f2f0;\n              if (iVar2 == 0) goto LAB_0004c60b;\n              if (*(char *)(iVar2 + 0x825) != '\0') goto LAB_0004c490;\n              local_32 = bVar1;\n              if ((*(byte *)(param_1 + 10) & 0xf) != 1) {\n                local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        local_32 = bVar5;\n        if (bVar9 != 4) goto LAB_0004c4d9;\n      }\n      goto LAB_0004c25c;\n    }\n    iVar2 = *(int *)(DAT_0033f2f0 + 8);\n    if (iVar2 == 0) goto LAB_0004c60b;\n    local_32 = *(byte *)(iVar2 + 0x1a25);\n    if ((local_32 == 0) && (local_32 = *(byte *)(iVar2 + 0x2931), local_32 == 0)) goto LAB_0004c450;\n  }\n  else {\n    local_32 = 0;\nLAB_0004c25c:\n    local_38 = uVar14 & 1;\n    if (local_38 == 0) goto LAB_0004c268;\n  }\n  uVar11 = (uint)bVar5;\n  uVar7 = uVar11;\n  if (((uVar14 & 8) == 0) || (param_1[6] == -1)) {\n    if ((*(byte *)((int)param_1 + 0x2a) & 7) == 0) {\n      if (((*(byte *)(param_1[2] + 0x2c) & 1) != 0) ||\n         ((param_1[3] == 0 && ((*(byte *)((int)param_1 + 0x2b) & 0x20) != 0)))) goto LAB_0004c268;\n    }\n    else if ((*(byte *)((int)param_1 + 0x2a) & 7) == 4) goto LAB_0004c268;\n    if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n       (bVar5 = *(byte *)((int)param_1 + 0x2b) >> 4, uVar7 = bVar5 & 1, (bVar5 & 1) == 0)) {\n      iVar8 = *(int *)(DAT_0033f2f0 + 8);\n      if (iVar8 == 0) {\nLAB_0004c60b:\n                    \n        FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar8);\n      }\n      uVar7 = uVar11;\n      if (*(char *)(iVar8 + 0x1a25) != '\0') {\n        cVar6 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,local_1d);\n        if ((cVar6 != '\0') && (local_1d[0] == '\0')) {\nLAB_0004c268:\n          return local_32 ^ 1;\n        }\n        iVar8 = *(int *)(DAT_0033f2f0 + 8);\n        if (iVar8 == 0) goto LAB_0004c60b;\n        uVar7 = (uint)*(byte *)(iVar8 + 0x825);\n        if ((*(byte *)(iVar8 + 0x825) == 0) &&\n           (uVar7 = local_32 ^ 1, (*(byte *)(param_1 + 10) & 0xf) != 1)) {\n          uVar7 = (uint)(byte)((byte)uVar7 | *(byte *)(iVar8 + 0x8a1));\n        }\n      }\n    }\n  }\n  return uVar7;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_0004c1a0(undefined4 *param_1,int param_2,uint param_3,int param_4)" identifier (parameter_list "(undefined4 *param_1,int param_2,uint param_3,int param_4)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  int iVar2;\n  uint *puVar3;\n  int *piVar4;\n  byte bVar5;\n  char cVar6;\n  uint uVar7;\n  int iVar8;\n  byte bVar9;\n  byte bVar10;\n  undefined4 extraout_ECX;\n  uint uVar11;\n  int extraout_EDX;\n  int *piVar12;\n  int *piVar13;\n  uint uVar14;\n  uint local_38;\n  byte local_32;\n  int local_30;\n  int iStack_2c;\n  int iStack_28;\n  char local_1e;\n  char local_1d [9];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4c1a9;\n  if ((*(byte *)(param_4 + 0x54) & 2) == 0) {\n    return 1;\n  }\n  uVar14 = 0;\n  if (param_2 - 1U < 0x2b) {\n    uVar14 = (uint)(char)(&DAT_0024cfbf)[param_2];\n  }\n  if (param_1 == (undefined4 *)0x0) {\n    iVar8 = *(int *)(DAT_0033f2f0 + 8);\n    if (iVar8 != 0) {\n      if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar14 & 1 | param_3;\n    }\n    iVar8 = FUN_000496d0();\n    goto LAB_0004c60b;\n  }\n  bVar5 = *(byte *)(DAT_0033f2f0 + 0x10);\n  if (bVar5 == 0) {\n    FUN_00049580();\n    FUN_00058c4e(&DAT_0033f2f0);\n    if (-1 < (char)*(byte *)(iStack_28 + 0xb)) {\n      if ((*(byte *)(iStack_28 + 0xb) & 8) == 0) {\n                    \n        FUN_0008b620(0x53e03f,0x6ab,0x540406,extraout_ECX);\n      }\n      puVar3 = *(uint **)(iStack_28 + 0xc);\n      uVar14 = *puVar3;\n      uVar7 = uVar14 % puVar3[3];\n      piVar13 = *(int **)(puVar3[2] + uVar7 * 4);\n      if (piVar13 != (int *)0x0) {\n        uVar11 = ((int *)*piVar13)[1];\n        piVar4 = (int *)*piVar13;\n        while (piVar12 = piVar4, uVar14 != uVar11) {\n          piVar4 = (int *)*piVar12;\n          if ((piVar4 == (int *)0x0) ||\n             (uVar11 = piVar4[1], piVar13 = piVar12, uVar7 != uVar11 % puVar3[3]))\n          goto LAB_0004c8d4;\n        }\n        if (*piVar13 != 0) goto LAB_0004c6e9;\n      }\nLAB_0004c8d4:\n      FUN_00126fe0(puVar3,*(undefined4 *)(extraout_EDX + 8),*(uint *)(iStack_28 + 8) & 0x7ffffff,\n                   uVar14);\n    }\nLAB_0004c6e9:\n    if (iStack_2c == 0) {\n      if (*(int *)(iRam00631faa + 8) == 0) {\n                    \n        FUN_0008b620(0x538f27,0x5c,0x540242,0);\n      }\n    }\n    else {\n      FUN_0014e8a0(iStack_2c);\n    }\n    FUN_000495b0();\n    uVar14 = local_30 - 0xf;\n    if (uVar14 < 0x1a) {\n                    \n                    \n      uVar14 = (*(code *)(*(int *)(uVar14 * 4 + 0x53e9fe) + 0x631cba))();\n      return uVar14;\n    }\n    return uVar14;\n  }\n  if (*(char *)(DAT_0033f2f0 + 0x11) == '\0') {\n    bVar9 = *(byte *)((int)param_1 + 0x2a) & 7;\n    bVar1 = 0;\n    iVar8 = DAT_0033f2f0;\n    if ((*(byte *)((int)param_1 + 0x2a) & 7) == 0) {\n      local_30 = param_1[3];\n      bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;\n      if ((local_30 == 0) && (bVar10 != 0)) goto LAB_0004c222;\nLAB_0004c306:\n      if (local_30 != 0xfff1 || bVar10 != 0) goto LAB_0004c320;\nLAB_0004c490:\n      local_32 = 0;\n      goto LAB_0004c25c;\n    }\n    if (bVar9 == 4) {\nLAB_0004c222:\n      if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_0004c60b;\n      if (*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x1a25) == '\0') goto LAB_0004c490;\n      if (bVar9 == 0) {\n        local_30 = param_1[3];\n        bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;\n        goto LAB_0004c306;\n      }\n    }\n    local_32 = bVar1;\n    if (bVar9 == 3) goto LAB_0004c25c;\nLAB_0004c320:\n    local_38 = uVar14 & 1;\n    if (local_38 == 0) {\nLAB_0004c450:\n      if (((uVar14 & 8) != 0) && (param_1[6] != -1)) {\n        return (uint)bVar5;\n      }\n      if ((uVar14 & 0x10) == 0) {\n        iVar2 = *(int *)(DAT_0033f2f0 + 8);\n        if (iVar2 == 0) goto LAB_0004c60b;\n        if (((*(char *)(iVar2 + 0x1a25) == '\0') && (*(char *)(iVar2 + 0x2931) == '\0')) &&\n           (param_1[6] != -1)) goto LAB_0004c490;\n      }\n      if (bVar9 == 0) {\n        local_32 = *(byte *)(param_1[2] + 0x2c) & 1;\n        if (((*(byte *)(param_1[2] + 0x2c) & 1) == 0) &&\n           (local_32 = *(byte *)((int)param_1 + 0x2b) >> 5 & param_1[3] == 0, local_32 == 0)) {\nLAB_0004c4d9:\n          local_32 = bVar1;\n          if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)param_1 + 0x2b) & 0x10) == 0)) {\n            iVar8 = *(int *)(DAT_0033f2f0 + 8);\n            if (iVar8 == 0) goto LAB_0004c60b;\n            bVar1 = *(byte *)(iVar8 + 0x1a25);\n            local_32 = bVar1;\n            if ((bVar1 != 0) &&\n               ((local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0')))) {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              iVar8 = DAT_0033f2f0;\n              if (iVar2 == 0) goto LAB_0004c60b;\n              if (*(char *)(iVar2 + 0x825) != '\0') goto LAB_0004c490;\n              local_32 = bVar1;\n              if ((*(byte *)(param_1 + 10) & 0xf) != 1) {\n                local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        local_32 = bVar5;\n        if (bVar9 != 4) goto LAB_0004c4d9;\n      }\n      goto LAB_0004c25c;\n    }\n    iVar2 = *(int *)(DAT_0033f2f0 + 8);\n    if (iVar2 == 0) goto LAB_0004c60b;\n    local_32 = *(byte *)(iVar2 + 0x1a25);\n    if ((local_32 == 0) && (local_32 = *(byte *)(iVar2 + 0x2931), local_32 == 0)) goto LAB_0004c450;\n  }\n  else {\n    local_32 = 0;\nLAB_0004c25c:\n    local_38 = uVar14 & 1;\n    if (local_38 == 0) goto LAB_0004c268;\n  }\n  uVar11 = (uint)bVar5;\n  uVar7 = uVar11;\n  if (((uVar14 & 8) == 0) || (param_1[6] == -1)) {\n    if ((*(byte *)((int)param_1 + 0x2a) & 7) == 0) {\n      if (((*(byte *)(param_1[2] + 0x2c) & 1) != 0) ||\n         ((param_1[3] == 0 && ((*(byte *)((int)param_1 + 0x2b) & 0x20) != 0)))) goto LAB_0004c268;\n    }\n    else if ((*(byte *)((int)param_1 + 0x2a) & 7) == 4) goto LAB_0004c268;\n    if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n       (bVar5 = *(byte *)((int)param_1 + 0x2b) >> 4, uVar7 = bVar5 & 1, (bVar5 & 1) == 0)) {\n      iVar8 = *(int *)(DAT_0033f2f0 + 8);\n      if (iVar8 == 0) {\nLAB_0004c60b:\n                    \n        FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar8);\n      }\n      uVar7 = uVar11;\n      if (*(char *)(iVar8 + 0x1a25) != '\0') {\n        cVar6 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,local_1d);\n        if ((cVar6 != '\0') && (local_1d[0] == '\0')) {\nLAB_0004c268:\n          return local_32 ^ 1;\n        }\n        iVar8 = *(int *)(DAT_0033f2f0 + 8);\n        if (iVar8 == 0) goto LAB_0004c60b;\n        uVar7 = (uint)*(byte *)(iVar8 + 0x825);\n        if ((*(byte *)(iVar8 + 0x825) == 0) &&\n           (uVar7 = local_32 ^ 1, (*(byte *)(param_1 + 10) & 0xf) != 1)) {\n          uVar7 = (uint)(byte)((byte)uVar7 | *(byte *)(iVar8 + 0x8a1));\n        }\n      }\n    }\n  }\n  return uVar7;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "byte bVar5;" type_identifier identifier ;) (declaration "char cVar6;" primitive_type identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "byte bVar9;" type_identifier identifier ;) (declaration "byte bVar10;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "int extraout_EDX;" primitive_type identifier ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "uint local_38;" type_identifier identifier ;) (declaration "byte local_32;" type_identifier identifier ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "int iStack_2c;" primitive_type identifier ;) (declaration "int iStack_28;" primitive_type identifier ;) (declaration "char local_1e;" primitive_type identifier ;) (declaration "char local_1d [9];" primitive_type (array_declarator "local_1d [9]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x4c1a9;" (assignment_expression "uStack_14 = 0x4c1a9" identifier = number_literal) ;) (if_statement "if ((*(byte *)(param_4 + 0x54) & 2) == 0) {\n    return 1;\n  }" if (parenthesized_expression "((*(byte *)(param_4 + 0x54) & 2) == 0)" ( (binary_expression "(*(byte *)(param_4 + 0x54) & 2) == 0" (parenthesized_expression "(*(byte *)(param_4 + 0x54) & 2)" ( (binary_expression "*(byte *)(param_4 + 0x54) & 2" (pointer_expression "*(byte *)(param_4 + 0x54)" * (cast_expression "(byte *)(param_4 + 0x54)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x54)" ( (binary_expression "param_4 + 0x54" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (if_statement "if (param_2 - 1U < 0x2b) {\n    uVar14 = (uint)(char)(&DAT_0024cfbf)[param_2];\n  }" if (parenthesized_expression "(param_2 - 1U < 0x2b)" ( (binary_expression "param_2 - 1U < 0x2b" (binary_expression "param_2 - 1U" identifier - number_literal) < number_literal) )) (compound_statement "{\n    uVar14 = (uint)(char)(&DAT_0024cfbf)[param_2];\n  }" { (expression_statement "uVar14 = (uint)(char)(&DAT_0024cfbf)[param_2];" (assignment_expression "uVar14 = (uint)(char)(&DAT_0024cfbf)[param_2]" identifier = (subscript_expression "(uint)(char)(&DAT_0024cfbf)[param_2]" (call_expression "(uint)(char)(&DAT_0024cfbf)" (call_expression "(uint)(char)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(char)" ( identifier ))) (argument_list "(&DAT_0024cfbf)" ( (pointer_expression "&DAT_0024cfbf" & identifier) ))) [ identifier ])) ;) })) (if_statement "if (param_1 == (undefined4 *)0x0) {\n    iVar8 = *(int *)(DAT_0033f2f0 + 8);\n    if (iVar8 != 0) {\n      if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar14 & 1 | param_3;\n    }\n    iVar8 = FUN_000496d0();\n    goto LAB_0004c60b;\n  }" if (parenthesized_expression "(param_1 == (undefined4 *)0x0)" ( (binary_expression "param_1 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar8 = *(int *)(DAT_0033f2f0 + 8);\n    if (iVar8 != 0) {\n      if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar14 & 1 | param_3;\n    }\n    iVar8 = FUN_000496d0();\n    goto LAB_0004c60b;\n  }" { (expression_statement "iVar8 = *(int *)(DAT_0033f2f0 + 8);" (assignment_expression "iVar8 = *(int *)(DAT_0033f2f0 + 8)" identifier = (pointer_expression "*(int *)(DAT_0033f2f0 + 8)" * (cast_expression "(int *)(DAT_0033f2f0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0033f2f0 + 8)" ( (binary_expression "DAT_0033f2f0 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 != 0) {\n      if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar14 & 1 | param_3;\n    }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n      if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar14 & 1 | param_3;\n    }" { (if_statement "if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x2931) == '\0')) {\n        return 1;\n      }" if (parenthesized_expression "((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x2931) == '\0'))" ( (binary_expression "(*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x2931) == '\0')" (parenthesized_expression "(*(char *)(iVar8 + 0x1a25) == '\0')" ( (binary_expression "*(char *)(iVar8 + 0x1a25) == '\0'" (pointer_expression "*(char *)(iVar8 + 0x1a25)" * (cast_expression "(char *)(iVar8 + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1a25)" ( (binary_expression "iVar8 + 0x1a25" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(char *)(iVar8 + 0x2931) == '\0')" ( (binary_expression "*(char *)(iVar8 + 0x2931) == '\0'" (pointer_expression "*(char *)(iVar8 + 0x2931)" * (cast_expression "(char *)(iVar8 + 0x2931)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x2931)" ( (binary_expression "iVar8 + 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 ~uVar14 & 1 | param_3;" return (binary_expression "~uVar14 & 1 | param_3" (binary_expression "~uVar14 & 1" (unary_expression "~uVar14" ~ identifier) & number_literal) | identifier) ;) })) (expression_statement "iVar8 = FUN_000496d0();" (assignment_expression "iVar8 = FUN_000496d0()" identifier = (call_expression "FUN_000496d0()" identifier (argument_list "()" ( )))) ;) (goto_statement "goto LAB_0004c60b;" goto statement_identifier ;) })) (expression_statement "bVar5 = *(byte *)(DAT_0033f2f0 + 0x10);" (assignment_expression "bVar5 = *(byte *)(DAT_0033f2f0 + 0x10)" identifier = (pointer_expression "*(byte *)(DAT_0033f2f0 + 0x10)" * (cast_expression "(byte *)(DAT_0033f2f0 + 0x10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0033f2f0 + 0x10)" ( (binary_expression "DAT_0033f2f0 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (bVar5 == 0) {\n    FUN_00049580();\n    FUN_00058c4e(&DAT_0033f2f0);\n    if (-1 < (char)*(byte *)(iStack_28 + 0xb)) {\n      if ((*(byte *)(iStack_28 + 0xb) & 8) == 0) {\n                    \n        FUN_0008b620(0x53e03f,0x6ab,0x540406,extraout_ECX);\n      }\n      puVar3 = *(uint **)(iStack_28 + 0xc);\n      uVar14 = *puVar3;\n      uVar7 = uVar14 % puVar3[3];\n      piVar13 = *(int **)(puVar3[2] + uVar7 * 4);\n      if (piVar13 != (int *)0x0) {\n        uVar11 = ((int *)*piVar13)[1];\n        piVar4 = (int *)*piVar13;\n        while (piVar12 = piVar4, uVar14 != uVar11) {\n          piVar4 = (int *)*piVar12;\n          if ((piVar4 == (int *)0x0) ||\n             (uVar11 = piVar4[1], piVar13 = piVar12, uVar7 != uVar11 % puVar3[3]))\n          goto LAB_0004c8d4;\n        }\n        if (*piVar13 != 0) goto LAB_0004c6e9;\n      }\nLAB_0004c8d4:\n      FUN_00126fe0(puVar3,*(undefined4 *)(extraout_EDX + 8),*(uint *)(iStack_28 + 8) & 0x7ffffff,\n                   uVar14);\n    }\nLAB_0004c6e9:\n    if (iStack_2c == 0) {\n      if (*(int *)(iRam00631faa + 8) == 0) {\n                    \n        FUN_0008b620(0x538f27,0x5c,0x540242,0);\n      }\n    }\n    else {\n      FUN_0014e8a0(iStack_2c);\n    }\n    FUN_000495b0();\n    uVar14 = local_30 - 0xf;\n    if (uVar14 < 0x1a) {\n                    \n                    \n      uVar14 = (*(code *)(*(int *)(uVar14 * 4 + 0x53e9fe) + 0x631cba))();\n      return uVar14;\n    }\n    return uVar14;\n  }" if (parenthesized_expression "(bVar5 == 0)" ( (binary_expression "bVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    FUN_00049580();\n    FUN_00058c4e(&DAT_0033f2f0);\n    if (-1 < (char)*(byte *)(iStack_28 + 0xb)) {\n      if ((*(byte *)(iStack_28 + 0xb) & 8) == 0) {\n                    \n        FUN_0008b620(0x53e03f,0x6ab,0x540406,extraout_ECX);\n      }\n      puVar3 = *(uint **)(iStack_28 + 0xc);\n      uVar14 = *puVar3;\n      uVar7 = uVar14 % puVar3[3];\n      piVar13 = *(int **)(puVar3[2] + uVar7 * 4);\n      if (piVar13 != (int *)0x0) {\n        uVar11 = ((int *)*piVar13)[1];\n        piVar4 = (int *)*piVar13;\n        while (piVar12 = piVar4, uVar14 != uVar11) {\n          piVar4 = (int *)*piVar12;\n          if ((piVar4 == (int *)0x0) ||\n             (uVar11 = piVar4[1], piVar13 = piVar12, uVar7 != uVar11 % puVar3[3]))\n          goto LAB_0004c8d4;\n        }\n        if (*piVar13 != 0) goto LAB_0004c6e9;\n      }\nLAB_0004c8d4:\n      FUN_00126fe0(puVar3,*(undefined4 *)(extraout_EDX + 8),*(uint *)(iStack_28 + 8) & 0x7ffffff,\n                   uVar14);\n    }\nLAB_0004c6e9:\n    if (iStack_2c == 0) {\n      if (*(int *)(iRam00631faa + 8) == 0) {\n                    \n        FUN_0008b620(0x538f27,0x5c,0x540242,0);\n      }\n    }\n    else {\n      FUN_0014e8a0(iStack_2c);\n    }\n    FUN_000495b0();\n    uVar14 = local_30 - 0xf;\n    if (uVar14 < 0x1a) {\n                    \n                    \n      uVar14 = (*(code *)(*(int *)(uVar14 * 4 + 0x53e9fe) + 0x631cba))();\n      return uVar14;\n    }\n    return uVar14;\n  }" { (expression_statement "FUN_00049580();" (call_expression "FUN_00049580()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00058c4e(&DAT_0033f2f0);" (call_expression "FUN_00058c4e(&DAT_0033f2f0)" identifier (argument_list "(&DAT_0033f2f0)" ( (pointer_expression "&DAT_0033f2f0" & identifier) ))) ;) (if_statement "if (-1 < (char)*(byte *)(iStack_28 + 0xb)) {\n      if ((*(byte *)(iStack_28 + 0xb) & 8) == 0) {\n                    \n        FUN_0008b620(0x53e03f,0x6ab,0x540406,extraout_ECX);\n      }\n      puVar3 = *(uint **)(iStack_28 + 0xc);\n      uVar14 = *puVar3;\n      uVar7 = uVar14 % puVar3[3];\n      piVar13 = *(int **)(puVar3[2] + uVar7 * 4);\n      if (piVar13 != (int *)0x0) {\n        uVar11 = ((int *)*piVar13)[1];\n        piVar4 = (int *)*piVar13;\n        while (piVar12 = piVar4, uVar14 != uVar11) {\n          piVar4 = (int *)*piVar12;\n          if ((piVar4 == (int *)0x0) ||\n             (uVar11 = piVar4[1], piVar13 = piVar12, uVar7 != uVar11 % puVar3[3]))\n          goto LAB_0004c8d4;\n        }\n        if (*piVar13 != 0) goto LAB_0004c6e9;\n      }\nLAB_0004c8d4:\n      FUN_00126fe0(puVar3,*(undefined4 *)(extraout_EDX + 8),*(uint *)(iStack_28 + 8) & 0x7ffffff,\n                   uVar14);\n    }" if (parenthesized_expression "(-1 < (char)*(byte *)(iStack_28 + 0xb))" ( (binary_expression "-1 < (char)*(byte *)(iStack_28 + 0xb)" number_literal < (cast_expression "(char)*(byte *)(iStack_28 + 0xb)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)(iStack_28 + 0xb)" * (cast_expression "(byte *)(iStack_28 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_28 + 0xb)" ( (binary_expression "iStack_28 + 0xb" identifier + number_literal) )))))) )) (compound_statement "{\n      if ((*(byte *)(iStack_28 + 0xb) & 8) == 0) {\n                    \n        FUN_0008b620(0x53e03f,0x6ab,0x540406,extraout_ECX);\n      }\n      puVar3 = *(uint **)(iStack_28 + 0xc);\n      uVar14 = *puVar3;\n      uVar7 = uVar14 % puVar3[3];\n      piVar13 = *(int **)(puVar3[2] + uVar7 * 4);\n      if (piVar13 != (int *)0x0) {\n        uVar11 = ((int *)*piVar13)[1];\n        piVar4 = (int *)*piVar13;\n        while (piVar12 = piVar4, uVar14 != uVar11) {\n          piVar4 = (int *)*piVar12;\n          if ((piVar4 == (int *)0x0) ||\n             (uVar11 = piVar4[1], piVar13 = piVar12, uVar7 != uVar11 % puVar3[3]))\n          goto LAB_0004c8d4;\n        }\n        if (*piVar13 != 0) goto LAB_0004c6e9;\n      }\nLAB_0004c8d4:\n      FUN_00126fe0(puVar3,*(undefined4 *)(extraout_EDX + 8),*(uint *)(iStack_28 + 8) & 0x7ffffff,\n                   uVar14);\n    }" { (if_statement "if ((*(byte *)(iStack_28 + 0xb) & 8) == 0) {\n                    \n        FUN_0008b620(0x53e03f,0x6ab,0x540406,extraout_ECX);\n      }" if (parenthesized_expression "((*(byte *)(iStack_28 + 0xb) & 8) == 0)" ( (binary_expression "(*(byte *)(iStack_28 + 0xb) & 8) == 0" (parenthesized_expression "(*(byte *)(iStack_28 + 0xb) & 8)" ( (binary_expression "*(byte *)(iStack_28 + 0xb) & 8" (pointer_expression "*(byte *)(iStack_28 + 0xb)" * (cast_expression "(byte *)(iStack_28 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_28 + 0xb)" ( (binary_expression "iStack_28 + 0xb" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    \n        FUN_0008b620(0x53e03f,0x6ab,0x540406,extraout_ECX);\n      }" { (expression_statement "FUN_0008b620(0x53e03f,0x6ab,0x540406,extraout_ECX);" (call_expression "FUN_0008b620(0x53e03f,0x6ab,0x540406,extraout_ECX)" identifier (argument_list "(0x53e03f,0x6ab,0x540406,extraout_ECX)" ( number_literal , number_literal , number_literal , identifier ))) ;) })) (expression_statement "puVar3 = *(uint **)(iStack_28 + 0xc);" (assignment_expression "puVar3 = *(uint **)(iStack_28 + 0xc)" identifier = (pointer_expression "*(uint **)(iStack_28 + 0xc)" * (cast_expression "(uint **)(iStack_28 + 0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iStack_28 + 0xc)" ( (binary_expression "iStack_28 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = *puVar3;" (assignment_expression "uVar14 = *puVar3" identifier = (pointer_expression "*puVar3" * identifier)) ;) (expression_statement "uVar7 = uVar14 % puVar3[3];" (assignment_expression "uVar7 = uVar14 % puVar3[3]" identifier = (binary_expression "uVar14 % puVar3[3]" identifier % (subscript_expression "puVar3[3]" identifier [ number_literal ]))) ;) (expression_statement "piVar13 = *(int **)(puVar3[2] + uVar7 * 4);" (assignment_expression "piVar13 = *(int **)(puVar3[2] + uVar7 * 4)" identifier = (pointer_expression "*(int **)(puVar3[2] + uVar7 * 4)" * (cast_expression "(int **)(puVar3[2] + uVar7 * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3[2] + uVar7 * 4)" ( (binary_expression "puVar3[2] + uVar7 * 4" (subscript_expression "puVar3[2]" identifier [ number_literal ]) + (binary_expression "uVar7 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (piVar13 != (int *)0x0) {\n        uVar11 = ((int *)*piVar13)[1];\n        piVar4 = (int *)*piVar13;\n        while (piVar12 = piVar4, uVar14 != uVar11) {\n          piVar4 = (int *)*piVar12;\n          if ((piVar4 == (int *)0x0) ||\n             (uVar11 = piVar4[1], piVar13 = piVar12, uVar7 != uVar11 % puVar3[3]))\n          goto LAB_0004c8d4;\n        }\n        if (*piVar13 != 0) goto LAB_0004c6e9;\n      }" if (parenthesized_expression "(piVar13 != (int *)0x0)" ( (binary_expression "piVar13 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar11 = ((int *)*piVar13)[1];\n        piVar4 = (int *)*piVar13;\n        while (piVar12 = piVar4, uVar14 != uVar11) {\n          piVar4 = (int *)*piVar12;\n          if ((piVar4 == (int *)0x0) ||\n             (uVar11 = piVar4[1], piVar13 = piVar12, uVar7 != uVar11 % puVar3[3]))\n          goto LAB_0004c8d4;\n        }\n        if (*piVar13 != 0) goto LAB_0004c6e9;\n      }" { (expression_statement "uVar11 = ((int *)*piVar13)[1];" (assignment_expression "uVar11 = ((int *)*piVar13)[1]" identifier = (subscript_expression "((int *)*piVar13)[1]" (parenthesized_expression "((int *)*piVar13)" ( (cast_expression "(int *)*piVar13" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar13" * identifier)) )) [ number_literal ])) ;) (expression_statement "piVar4 = (int *)*piVar13;" (assignment_expression "piVar4 = (int *)*piVar13" identifier = (cast_expression "(int *)*piVar13" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar13" * identifier))) ;) (while_statement "while (piVar12 = piVar4, uVar14 != uVar11) {\n          piVar4 = (int *)*piVar12;\n          if ((piVar4 == (int *)0x0) ||\n             (uVar11 = piVar4[1], piVar13 = piVar12, uVar7 != uVar11 % puVar3[3]))\n          goto LAB_0004c8d4;\n        }" while (parenthesized_expression "(piVar12 = piVar4, uVar14 != uVar11)" ( (comma_expression "piVar12 = piVar4, uVar14 != uVar11" (assignment_expression "piVar12 = piVar4" identifier = identifier) , (binary_expression "uVar14 != uVar11" identifier != identifier)) )) (compound_statement "{\n          piVar4 = (int *)*piVar12;\n          if ((piVar4 == (int *)0x0) ||\n             (uVar11 = piVar4[1], piVar13 = piVar12, uVar7 != uVar11 % puVar3[3]))\n          goto LAB_0004c8d4;\n        }" { (expression_statement "piVar4 = (int *)*piVar12;" (assignment_expression "piVar4 = (int *)*piVar12" identifier = (cast_expression "(int *)*piVar12" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar12" * identifier))) ;) (if_statement "if ((piVar4 == (int *)0x0) ||\n             (uVar11 = piVar4[1], piVar13 = piVar12, uVar7 != uVar11 % puVar3[3]))\n          goto LAB_0004c8d4;" if (parenthesized_expression "((piVar4 == (int *)0x0) ||\n             (uVar11 = piVar4[1], piVar13 = piVar12, uVar7 != uVar11 % puVar3[3]))" ( (binary_expression "(piVar4 == (int *)0x0) ||\n             (uVar11 = piVar4[1], piVar13 = piVar12, uVar7 != uVar11 % puVar3[3])" (parenthesized_expression "(piVar4 == (int *)0x0)" ( (binary_expression "piVar4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(uVar11 = piVar4[1], piVar13 = piVar12, uVar7 != uVar11 % puVar3[3])" ( (comma_expression "uVar11 = piVar4[1], piVar13 = piVar12, uVar7 != uVar11 % puVar3[3]" (assignment_expression "uVar11 = piVar4[1]" identifier = (subscript_expression "piVar4[1]" identifier [ number_literal ])) , (comma_expression "piVar13 = piVar12, uVar7 != uVar11 % puVar3[3]" (assignment_expression "piVar13 = piVar12" identifier = identifier) , (binary_expression "uVar7 != uVar11 % puVar3[3]" identifier != (binary_expression "uVar11 % puVar3[3]" identifier % (subscript_expression "puVar3[3]" identifier [ number_literal ]))))) ))) )) (goto_statement "goto LAB_0004c8d4;" goto statement_identifier ;)) })) (if_statement "if (*piVar13 != 0) goto LAB_0004c6e9;" if (parenthesized_expression "(*piVar13 != 0)" ( (binary_expression "*piVar13 != 0" (pointer_expression "*piVar13" * identifier) != number_literal) )) (goto_statement "goto LAB_0004c6e9;" goto statement_identifier ;)) })) (labeled_statement "LAB_0004c8d4:\n      FUN_00126fe0(puVar3,*(undefined4 *)(extraout_EDX + 8),*(uint *)(iStack_28 + 8) & 0x7ffffff,\n                   uVar14);" statement_identifier : (expression_statement "FUN_00126fe0(puVar3,*(undefined4 *)(extraout_EDX + 8),*(uint *)(iStack_28 + 8) & 0x7ffffff,\n                   uVar14);" (call_expression "FUN_00126fe0(puVar3,*(undefined4 *)(extraout_EDX + 8),*(uint *)(iStack_28 + 8) & 0x7ffffff,\n                   uVar14)" identifier (argument_list "(puVar3,*(undefined4 *)(extraout_EDX + 8),*(uint *)(iStack_28 + 8) & 0x7ffffff,\n                   uVar14)" ( identifier , (pointer_expression "*(undefined4 *)(extraout_EDX + 8)" * (cast_expression "(undefined4 *)(extraout_EDX + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(extraout_EDX + 8)" ( (binary_expression "extraout_EDX + 8" identifier + number_literal) )))) , (binary_expression "*(uint *)(iStack_28 + 8) & 0x7ffffff" (pointer_expression "*(uint *)(iStack_28 + 8)" * (cast_expression "(uint *)(iStack_28 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_28 + 8)" ( (binary_expression "iStack_28 + 8" identifier + number_literal) )))) & number_literal) , identifier ))) ;)) })) (labeled_statement "LAB_0004c6e9:\n    if (iStack_2c == 0) {\n      if (*(int *)(iRam00631faa + 8) == 0) {\n                    \n        FUN_0008b620(0x538f27,0x5c,0x540242,0);\n      }\n    }\n    else {\n      FUN_0014e8a0(iStack_2c);\n    }" statement_identifier : (if_statement "if (iStack_2c == 0) {\n      if (*(int *)(iRam00631faa + 8) == 0) {\n                    \n        FUN_0008b620(0x538f27,0x5c,0x540242,0);\n      }\n    }\n    else {\n      FUN_0014e8a0(iStack_2c);\n    }" if (parenthesized_expression "(iStack_2c == 0)" ( (binary_expression "iStack_2c == 0" identifier == number_literal) )) (compound_statement "{\n      if (*(int *)(iRam00631faa + 8) == 0) {\n                    \n        FUN_0008b620(0x538f27,0x5c,0x540242,0);\n      }\n    }" { (if_statement "if (*(int *)(iRam00631faa + 8) == 0) {\n                    \n        FUN_0008b620(0x538f27,0x5c,0x540242,0);\n      }" if (parenthesized_expression "(*(int *)(iRam00631faa + 8) == 0)" ( (binary_expression "*(int *)(iRam00631faa + 8) == 0" (pointer_expression "*(int *)(iRam00631faa + 8)" * (cast_expression "(int *)(iRam00631faa + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iRam00631faa + 8)" ( (binary_expression "iRam00631faa + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    \n        FUN_0008b620(0x538f27,0x5c,0x540242,0);\n      }" { (expression_statement "FUN_0008b620(0x538f27,0x5c,0x540242,0);" (call_expression "FUN_0008b620(0x538f27,0x5c,0x540242,0)" identifier (argument_list "(0x538f27,0x5c,0x540242,0)" ( number_literal , number_literal , number_literal , number_literal ))) ;) })) }) (else_clause "else {\n      FUN_0014e8a0(iStack_2c);\n    }" else (compound_statement "{\n      FUN_0014e8a0(iStack_2c);\n    }" { (expression_statement "FUN_0014e8a0(iStack_2c);" (call_expression "FUN_0014e8a0(iStack_2c)" identifier (argument_list "(iStack_2c)" ( identifier ))) ;) })))) (expression_statement "FUN_000495b0();" (call_expression "FUN_000495b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar14 = local_30 - 0xf;" (assignment_expression "uVar14 = local_30 - 0xf" identifier = (binary_expression "local_30 - 0xf" identifier - number_literal)) ;) (if_statement "if (uVar14 < 0x1a) {\n                    \n                    \n      uVar14 = (*(code *)(*(int *)(uVar14 * 4 + 0x53e9fe) + 0x631cba))();\n      return uVar14;\n    }" if (parenthesized_expression "(uVar14 < 0x1a)" ( (binary_expression "uVar14 < 0x1a" identifier < number_literal) )) (compound_statement "{\n                    \n                    \n      uVar14 = (*(code *)(*(int *)(uVar14 * 4 + 0x53e9fe) + 0x631cba))();\n      return uVar14;\n    }" { (expression_statement "uVar14 = (*(code *)(*(int *)(uVar14 * 4 + 0x53e9fe) + 0x631cba))();" (assignment_expression "uVar14 = (*(code *)(*(int *)(uVar14 * 4 + 0x53e9fe) + 0x631cba))()" identifier = (call_expression "(*(code *)(*(int *)(uVar14 * 4 + 0x53e9fe) + 0x631cba))()" (parenthesized_expression "(*(code *)(*(int *)(uVar14 * 4 + 0x53e9fe) + 0x631cba))" ( (pointer_expression "*(code *)(*(int *)(uVar14 * 4 + 0x53e9fe) + 0x631cba)" * (cast_expression "(code *)(*(int *)(uVar14 * 4 + 0x53e9fe) + 0x631cba)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(uVar14 * 4 + 0x53e9fe) + 0x631cba)" ( (binary_expression "*(int *)(uVar14 * 4 + 0x53e9fe) + 0x631cba" (pointer_expression "*(int *)(uVar14 * 4 + 0x53e9fe)" * (cast_expression "(int *)(uVar14 * 4 + 0x53e9fe)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar14 * 4 + 0x53e9fe)" ( (binary_expression "uVar14 * 4 + 0x53e9fe" (binary_expression "uVar14 * 4" identifier * number_literal) + number_literal) )))) + number_literal) )))) )) (argument_list "()" ( )))) ;) (return_statement "return uVar14;" return identifier ;) })) (return_statement "return uVar14;" return identifier ;) })) (if_statement "if (*(char *)(DAT_0033f2f0 + 0x11) == '\0') {\n    bVar9 = *(byte *)((int)param_1 + 0x2a) & 7;\n    bVar1 = 0;\n    iVar8 = DAT_0033f2f0;\n    if ((*(byte *)((int)param_1 + 0x2a) & 7) == 0) {\n      local_30 = param_1[3];\n      bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;\n      if ((local_30 == 0) && (bVar10 != 0)) goto LAB_0004c222;\nLAB_0004c306:\n      if (local_30 != 0xfff1 || bVar10 != 0) goto LAB_0004c320;\nLAB_0004c490:\n      local_32 = 0;\n      goto LAB_0004c25c;\n    }\n    if (bVar9 == 4) {\nLAB_0004c222:\n      if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_0004c60b;\n      if (*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x1a25) == '\0') goto LAB_0004c490;\n      if (bVar9 == 0) {\n        local_30 = param_1[3];\n        bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;\n        goto LAB_0004c306;\n      }\n    }\n    local_32 = bVar1;\n    if (bVar9 == 3) goto LAB_0004c25c;\nLAB_0004c320:\n    local_38 = uVar14 & 1;\n    if (local_38 == 0) {\nLAB_0004c450:\n      if (((uVar14 & 8) != 0) && (param_1[6] != -1)) {\n        return (uint)bVar5;\n      }\n      if ((uVar14 & 0x10) == 0) {\n        iVar2 = *(int *)(DAT_0033f2f0 + 8);\n        if (iVar2 == 0) goto LAB_0004c60b;\n        if (((*(char *)(iVar2 + 0x1a25) == '\0') && (*(char *)(iVar2 + 0x2931) == '\0')) &&\n           (param_1[6] != -1)) goto LAB_0004c490;\n      }\n      if (bVar9 == 0) {\n        local_32 = *(byte *)(param_1[2] + 0x2c) & 1;\n        if (((*(byte *)(param_1[2] + 0x2c) & 1) == 0) &&\n           (local_32 = *(byte *)((int)param_1 + 0x2b) >> 5 & param_1[3] == 0, local_32 == 0)) {\nLAB_0004c4d9:\n          local_32 = bVar1;\n          if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)param_1 + 0x2b) & 0x10) == 0)) {\n            iVar8 = *(int *)(DAT_0033f2f0 + 8);\n            if (iVar8 == 0) goto LAB_0004c60b;\n            bVar1 = *(byte *)(iVar8 + 0x1a25);\n            local_32 = bVar1;\n            if ((bVar1 != 0) &&\n               ((local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0')))) {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              iVar8 = DAT_0033f2f0;\n              if (iVar2 == 0) goto LAB_0004c60b;\n              if (*(char *)(iVar2 + 0x825) != '\0') goto LAB_0004c490;\n              local_32 = bVar1;\n              if ((*(byte *)(param_1 + 10) & 0xf) != 1) {\n                local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        local_32 = bVar5;\n        if (bVar9 != 4) goto LAB_0004c4d9;\n      }\n      goto LAB_0004c25c;\n    }\n    iVar2 = *(int *)(DAT_0033f2f0 + 8);\n    if (iVar2 == 0) goto LAB_0004c60b;\n    local_32 = *(byte *)(iVar2 + 0x1a25);\n    if ((local_32 == 0) && (local_32 = *(byte *)(iVar2 + 0x2931), local_32 == 0)) goto LAB_0004c450;\n  }\n  else {\n    local_32 = 0;\nLAB_0004c25c:\n    local_38 = uVar14 & 1;\n    if (local_38 == 0) goto LAB_0004c268;\n  }" if (parenthesized_expression "(*(char *)(DAT_0033f2f0 + 0x11) == '\0')" ( (binary_expression "*(char *)(DAT_0033f2f0 + 0x11) == '\0'" (pointer_expression "*(char *)(DAT_0033f2f0 + 0x11)" * (cast_expression "(char *)(DAT_0033f2f0 + 0x11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0033f2f0 + 0x11)" ( (binary_expression "DAT_0033f2f0 + 0x11" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    bVar9 = *(byte *)((int)param_1 + 0x2a) & 7;\n    bVar1 = 0;\n    iVar8 = DAT_0033f2f0;\n    if ((*(byte *)((int)param_1 + 0x2a) & 7) == 0) {\n      local_30 = param_1[3];\n      bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;\n      if ((local_30 == 0) && (bVar10 != 0)) goto LAB_0004c222;\nLAB_0004c306:\n      if (local_30 != 0xfff1 || bVar10 != 0) goto LAB_0004c320;\nLAB_0004c490:\n      local_32 = 0;\n      goto LAB_0004c25c;\n    }\n    if (bVar9 == 4) {\nLAB_0004c222:\n      if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_0004c60b;\n      if (*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x1a25) == '\0') goto LAB_0004c490;\n      if (bVar9 == 0) {\n        local_30 = param_1[3];\n        bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;\n        goto LAB_0004c306;\n      }\n    }\n    local_32 = bVar1;\n    if (bVar9 == 3) goto LAB_0004c25c;\nLAB_0004c320:\n    local_38 = uVar14 & 1;\n    if (local_38 == 0) {\nLAB_0004c450:\n      if (((uVar14 & 8) != 0) && (param_1[6] != -1)) {\n        return (uint)bVar5;\n      }\n      if ((uVar14 & 0x10) == 0) {\n        iVar2 = *(int *)(DAT_0033f2f0 + 8);\n        if (iVar2 == 0) goto LAB_0004c60b;\n        if (((*(char *)(iVar2 + 0x1a25) == '\0') && (*(char *)(iVar2 + 0x2931) == '\0')) &&\n           (param_1[6] != -1)) goto LAB_0004c490;\n      }\n      if (bVar9 == 0) {\n        local_32 = *(byte *)(param_1[2] + 0x2c) & 1;\n        if (((*(byte *)(param_1[2] + 0x2c) & 1) == 0) &&\n           (local_32 = *(byte *)((int)param_1 + 0x2b) >> 5 & param_1[3] == 0, local_32 == 0)) {\nLAB_0004c4d9:\n          local_32 = bVar1;\n          if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)param_1 + 0x2b) & 0x10) == 0)) {\n            iVar8 = *(int *)(DAT_0033f2f0 + 8);\n            if (iVar8 == 0) goto LAB_0004c60b;\n            bVar1 = *(byte *)(iVar8 + 0x1a25);\n            local_32 = bVar1;\n            if ((bVar1 != 0) &&\n               ((local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0')))) {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              iVar8 = DAT_0033f2f0;\n              if (iVar2 == 0) goto LAB_0004c60b;\n              if (*(char *)(iVar2 + 0x825) != '\0') goto LAB_0004c490;\n              local_32 = bVar1;\n              if ((*(byte *)(param_1 + 10) & 0xf) != 1) {\n                local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        local_32 = bVar5;\n        if (bVar9 != 4) goto LAB_0004c4d9;\n      }\n      goto LAB_0004c25c;\n    }\n    iVar2 = *(int *)(DAT_0033f2f0 + 8);\n    if (iVar2 == 0) goto LAB_0004c60b;\n    local_32 = *(byte *)(iVar2 + 0x1a25);\n    if ((local_32 == 0) && (local_32 = *(byte *)(iVar2 + 0x2931), local_32 == 0)) goto LAB_0004c450;\n  }" { (expression_statement "bVar9 = *(byte *)((int)param_1 + 0x2a) & 7;" (assignment_expression "bVar9 = *(byte *)((int)param_1 + 0x2a) & 7" identifier = (binary_expression "*(byte *)((int)param_1 + 0x2a) & 7" (pointer_expression "*(byte *)((int)param_1 + 0x2a)" * (cast_expression "(byte *)((int)param_1 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x2a)" ( (binary_expression "(int)param_1 + 0x2a" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal)) ;) (expression_statement "bVar1 = 0;" (assignment_expression "bVar1 = 0" identifier = number_literal) ;) (expression_statement "iVar8 = DAT_0033f2f0;" (assignment_expression "iVar8 = DAT_0033f2f0" identifier = identifier) ;) (if_statement "if ((*(byte *)((int)param_1 + 0x2a) & 7) == 0) {\n      local_30 = param_1[3];\n      bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;\n      if ((local_30 == 0) && (bVar10 != 0)) goto LAB_0004c222;\nLAB_0004c306:\n      if (local_30 != 0xfff1 || bVar10 != 0) goto LAB_0004c320;\nLAB_0004c490:\n      local_32 = 0;\n      goto LAB_0004c25c;\n    }" if (parenthesized_expression "((*(byte *)((int)param_1 + 0x2a) & 7) == 0)" ( (binary_expression "(*(byte *)((int)param_1 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)((int)param_1 + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)param_1 + 0x2a) & 7" (pointer_expression "*(byte *)((int)param_1 + 0x2a)" * (cast_expression "(byte *)((int)param_1 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x2a)" ( (binary_expression "(int)param_1 + 0x2a" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      local_30 = param_1[3];\n      bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;\n      if ((local_30 == 0) && (bVar10 != 0)) goto LAB_0004c222;\nLAB_0004c306:\n      if (local_30 != 0xfff1 || bVar10 != 0) goto LAB_0004c320;\nLAB_0004c490:\n      local_32 = 0;\n      goto LAB_0004c25c;\n    }" { (expression_statement "local_30 = param_1[3];" (assignment_expression "local_30 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;" (assignment_expression "bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1" identifier = (binary_expression "*(byte *)((int)param_1 + 0x2b) >> 5 & 1" (binary_expression "*(byte *)((int)param_1 + 0x2b) >> 5" (pointer_expression "*(byte *)((int)param_1 + 0x2b)" * (cast_expression "(byte *)((int)param_1 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x2b)" ( (binary_expression "(int)param_1 + 0x2b" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) >> number_literal) & number_literal)) ;) (if_statement "if ((local_30 == 0) && (bVar10 != 0)) goto LAB_0004c222;" if (parenthesized_expression "((local_30 == 0) && (bVar10 != 0))" ( (binary_expression "(local_30 == 0) && (bVar10 != 0)" (parenthesized_expression "(local_30 == 0)" ( (binary_expression "local_30 == 0" identifier == number_literal) )) && (parenthesized_expression "(bVar10 != 0)" ( (binary_expression "bVar10 != 0" identifier != number_literal) ))) )) (goto_statement "goto LAB_0004c222;" goto statement_identifier ;)) (labeled_statement "LAB_0004c306:\n      if (local_30 != 0xfff1 || bVar10 != 0) goto LAB_0004c320;" statement_identifier : (if_statement "if (local_30 != 0xfff1 || bVar10 != 0) goto LAB_0004c320;" if (parenthesized_expression "(local_30 != 0xfff1 || bVar10 != 0)" ( (binary_expression "local_30 != 0xfff1 || bVar10 != 0" (binary_expression "local_30 != 0xfff1" identifier != number_literal) || (binary_expression "bVar10 != 0" identifier != number_literal)) )) (goto_statement "goto LAB_0004c320;" goto statement_identifier ;))) (labeled_statement "LAB_0004c490:\n      local_32 = 0;" statement_identifier : (expression_statement "local_32 = 0;" (assignment_expression "local_32 = 0" identifier = number_literal) ;)) (goto_statement "goto LAB_0004c25c;" goto statement_identifier ;) })) (if_statement "if (bVar9 == 4) {\nLAB_0004c222:\n      if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_0004c60b;\n      if (*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x1a25) == '\0') goto LAB_0004c490;\n      if (bVar9 == 0) {\n        local_30 = param_1[3];\n        bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;\n        goto LAB_0004c306;\n      }\n    }" if (parenthesized_expression "(bVar9 == 4)" ( (binary_expression "bVar9 == 4" identifier == number_literal) )) (compound_statement "{\nLAB_0004c222:\n      if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_0004c60b;\n      if (*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x1a25) == '\0') goto LAB_0004c490;\n      if (bVar9 == 0) {\n        local_30 = param_1[3];\n        bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;\n        goto LAB_0004c306;\n      }\n    }" { (labeled_statement "LAB_0004c222:\n      if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_0004c60b;" statement_identifier : (if_statement "if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_0004c60b;" if (parenthesized_expression "(*(int *)(DAT_0033f2f0 + 8) == 0)" ( (binary_expression "*(int *)(DAT_0033f2f0 + 8) == 0" (pointer_expression "*(int *)(DAT_0033f2f0 + 8)" * (cast_expression "(int *)(DAT_0033f2f0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0033f2f0 + 8)" ( (binary_expression "DAT_0033f2f0 + 8" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0004c60b;" goto statement_identifier ;))) (if_statement "if (*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x1a25) == '\0') goto LAB_0004c490;" if (parenthesized_expression "(*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x1a25) == '\0')" ( (binary_expression "*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x1a25) == '\0'" (pointer_expression "*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x1a25)" * (cast_expression "(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_0033f2f0 + 8) + 0x1a25)" ( (binary_expression "*(int *)(DAT_0033f2f0 + 8) + 0x1a25" (pointer_expression "*(int *)(DAT_0033f2f0 + 8)" * (cast_expression "(int *)(DAT_0033f2f0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0033f2f0 + 8)" ( (binary_expression "DAT_0033f2f0 + 8" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0004c490;" goto statement_identifier ;)) (if_statement "if (bVar9 == 0) {\n        local_30 = param_1[3];\n        bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;\n        goto LAB_0004c306;\n      }" if (parenthesized_expression "(bVar9 == 0)" ( (binary_expression "bVar9 == 0" identifier == number_literal) )) (compound_statement "{\n        local_30 = param_1[3];\n        bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;\n        goto LAB_0004c306;\n      }" { (expression_statement "local_30 = param_1[3];" (assignment_expression "local_30 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;" (assignment_expression "bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1" identifier = (binary_expression "*(byte *)((int)param_1 + 0x2b) >> 5 & 1" (binary_expression "*(byte *)((int)param_1 + 0x2b) >> 5" (pointer_expression "*(byte *)((int)param_1 + 0x2b)" * (cast_expression "(byte *)((int)param_1 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x2b)" ( (binary_expression "(int)param_1 + 0x2b" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) >> number_literal) & number_literal)) ;) (goto_statement "goto LAB_0004c306;" goto statement_identifier ;) })) })) (expression_statement "local_32 = bVar1;" (assignment_expression "local_32 = bVar1" identifier = identifier) ;) (if_statement "if (bVar9 == 3) goto LAB_0004c25c;" if (parenthesized_expression "(bVar9 == 3)" ( (binary_expression "bVar9 == 3" identifier == number_literal) )) (goto_statement "goto LAB_0004c25c;" goto statement_identifier ;)) (labeled_statement "LAB_0004c320:\n    local_38 = uVar14 & 1;" statement_identifier : (expression_statement "local_38 = uVar14 & 1;" (assignment_expression "local_38 = uVar14 & 1" identifier = (binary_expression "uVar14 & 1" identifier & number_literal)) ;)) (if_statement "if (local_38 == 0) {\nLAB_0004c450:\n      if (((uVar14 & 8) != 0) && (param_1[6] != -1)) {\n        return (uint)bVar5;\n      }\n      if ((uVar14 & 0x10) == 0) {\n        iVar2 = *(int *)(DAT_0033f2f0 + 8);\n        if (iVar2 == 0) goto LAB_0004c60b;\n        if (((*(char *)(iVar2 + 0x1a25) == '\0') && (*(char *)(iVar2 + 0x2931) == '\0')) &&\n           (param_1[6] != -1)) goto LAB_0004c490;\n      }\n      if (bVar9 == 0) {\n        local_32 = *(byte *)(param_1[2] + 0x2c) & 1;\n        if (((*(byte *)(param_1[2] + 0x2c) & 1) == 0) &&\n           (local_32 = *(byte *)((int)param_1 + 0x2b) >> 5 & param_1[3] == 0, local_32 == 0)) {\nLAB_0004c4d9:\n          local_32 = bVar1;\n          if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)param_1 + 0x2b) & 0x10) == 0)) {\n            iVar8 = *(int *)(DAT_0033f2f0 + 8);\n            if (iVar8 == 0) goto LAB_0004c60b;\n            bVar1 = *(byte *)(iVar8 + 0x1a25);\n            local_32 = bVar1;\n            if ((bVar1 != 0) &&\n               ((local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0')))) {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              iVar8 = DAT_0033f2f0;\n              if (iVar2 == 0) goto LAB_0004c60b;\n              if (*(char *)(iVar2 + 0x825) != '\0') goto LAB_0004c490;\n              local_32 = bVar1;\n              if ((*(byte *)(param_1 + 10) & 0xf) != 1) {\n                local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        local_32 = bVar5;\n        if (bVar9 != 4) goto LAB_0004c4d9;\n      }\n      goto LAB_0004c25c;\n    }" if (parenthesized_expression "(local_38 == 0)" ( (binary_expression "local_38 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0004c450:\n      if (((uVar14 & 8) != 0) && (param_1[6] != -1)) {\n        return (uint)bVar5;\n      }\n      if ((uVar14 & 0x10) == 0) {\n        iVar2 = *(int *)(DAT_0033f2f0 + 8);\n        if (iVar2 == 0) goto LAB_0004c60b;\n        if (((*(char *)(iVar2 + 0x1a25) == '\0') && (*(char *)(iVar2 + 0x2931) == '\0')) &&\n           (param_1[6] != -1)) goto LAB_0004c490;\n      }\n      if (bVar9 == 0) {\n        local_32 = *(byte *)(param_1[2] + 0x2c) & 1;\n        if (((*(byte *)(param_1[2] + 0x2c) & 1) == 0) &&\n           (local_32 = *(byte *)((int)param_1 + 0x2b) >> 5 & param_1[3] == 0, local_32 == 0)) {\nLAB_0004c4d9:\n          local_32 = bVar1;\n          if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)param_1 + 0x2b) & 0x10) == 0)) {\n            iVar8 = *(int *)(DAT_0033f2f0 + 8);\n            if (iVar8 == 0) goto LAB_0004c60b;\n            bVar1 = *(byte *)(iVar8 + 0x1a25);\n            local_32 = bVar1;\n            if ((bVar1 != 0) &&\n               ((local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0')))) {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              iVar8 = DAT_0033f2f0;\n              if (iVar2 == 0) goto LAB_0004c60b;\n              if (*(char *)(iVar2 + 0x825) != '\0') goto LAB_0004c490;\n              local_32 = bVar1;\n              if ((*(byte *)(param_1 + 10) & 0xf) != 1) {\n                local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        local_32 = bVar5;\n        if (bVar9 != 4) goto LAB_0004c4d9;\n      }\n      goto LAB_0004c25c;\n    }" { (labeled_statement "LAB_0004c450:\n      if (((uVar14 & 8) != 0) && (param_1[6] != -1)) {\n        return (uint)bVar5;\n      }" statement_identifier : (if_statement "if (((uVar14 & 8) != 0) && (param_1[6] != -1)) {\n        return (uint)bVar5;\n      }" if (parenthesized_expression "(((uVar14 & 8) != 0) && (param_1[6] != -1))" ( (binary_expression "((uVar14 & 8) != 0) && (param_1[6] != -1)" (parenthesized_expression "((uVar14 & 8) != 0)" ( (binary_expression "(uVar14 & 8) != 0" (parenthesized_expression "(uVar14 & 8)" ( (binary_expression "uVar14 & 8" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(param_1[6] != -1)" ( (binary_expression "param_1[6] != -1" (subscript_expression "param_1[6]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n        return (uint)bVar5;\n      }" { (return_statement "return (uint)bVar5;" return (cast_expression "(uint)bVar5" ( (type_descriptor "uint" type_identifier) ) identifier) ;) }))) (if_statement "if ((uVar14 & 0x10) == 0) {\n        iVar2 = *(int *)(DAT_0033f2f0 + 8);\n        if (iVar2 == 0) goto LAB_0004c60b;\n        if (((*(char *)(iVar2 + 0x1a25) == '\0') && (*(char *)(iVar2 + 0x2931) == '\0')) &&\n           (param_1[6] != -1)) goto LAB_0004c490;\n      }" if (parenthesized_expression "((uVar14 & 0x10) == 0)" ( (binary_expression "(uVar14 & 0x10) == 0" (parenthesized_expression "(uVar14 & 0x10)" ( (binary_expression "uVar14 & 0x10" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        iVar2 = *(int *)(DAT_0033f2f0 + 8);\n        if (iVar2 == 0) goto LAB_0004c60b;\n        if (((*(char *)(iVar2 + 0x1a25) == '\0') && (*(char *)(iVar2 + 0x2931) == '\0')) &&\n           (param_1[6] != -1)) goto LAB_0004c490;\n      }" { (expression_statement "iVar2 = *(int *)(DAT_0033f2f0 + 8);" (assignment_expression "iVar2 = *(int *)(DAT_0033f2f0 + 8)" identifier = (pointer_expression "*(int *)(DAT_0033f2f0 + 8)" * (cast_expression "(int *)(DAT_0033f2f0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0033f2f0 + 8)" ( (binary_expression "DAT_0033f2f0 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar2 == 0) goto LAB_0004c60b;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004c60b;" goto statement_identifier ;)) (if_statement "if (((*(char *)(iVar2 + 0x1a25) == '\0') && (*(char *)(iVar2 + 0x2931) == '\0')) &&\n           (param_1[6] != -1)) goto LAB_0004c490;" if (parenthesized_expression "(((*(char *)(iVar2 + 0x1a25) == '\0') && (*(char *)(iVar2 + 0x2931) == '\0')) &&\n           (param_1[6] != -1))" ( (binary_expression "((*(char *)(iVar2 + 0x1a25) == '\0') && (*(char *)(iVar2 + 0x2931) == '\0')) &&\n           (param_1[6] != -1)" (parenthesized_expression "((*(char *)(iVar2 + 0x1a25) == '\0') && (*(char *)(iVar2 + 0x2931) == '\0'))" ( (binary_expression "(*(char *)(iVar2 + 0x1a25) == '\0') && (*(char *)(iVar2 + 0x2931) == '\0')" (parenthesized_expression "(*(char *)(iVar2 + 0x1a25) == '\0')" ( (binary_expression "*(char *)(iVar2 + 0x1a25) == '\0'" (pointer_expression "*(char *)(iVar2 + 0x1a25)" * (cast_expression "(char *)(iVar2 + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1a25)" ( (binary_expression "iVar2 + 0x1a25" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(char *)(iVar2 + 0x2931) == '\0')" ( (binary_expression "*(char *)(iVar2 + 0x2931) == '\0'" (pointer_expression "*(char *)(iVar2 + 0x2931)" * (cast_expression "(char *)(iVar2 + 0x2931)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x2931)" ( (binary_expression "iVar2 + 0x2931" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(param_1[6] != -1)" ( (binary_expression "param_1[6] != -1" (subscript_expression "param_1[6]" identifier [ number_literal ]) != number_literal) ))) )) (goto_statement "goto LAB_0004c490;" goto statement_identifier ;)) })) (if_statement "if (bVar9 == 0) {\n        local_32 = *(byte *)(param_1[2] + 0x2c) & 1;\n        if (((*(byte *)(param_1[2] + 0x2c) & 1) == 0) &&\n           (local_32 = *(byte *)((int)param_1 + 0x2b) >> 5 & param_1[3] == 0, local_32 == 0)) {\nLAB_0004c4d9:\n          local_32 = bVar1;\n          if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)param_1 + 0x2b) & 0x10) == 0)) {\n            iVar8 = *(int *)(DAT_0033f2f0 + 8);\n            if (iVar8 == 0) goto LAB_0004c60b;\n            bVar1 = *(byte *)(iVar8 + 0x1a25);\n            local_32 = bVar1;\n            if ((bVar1 != 0) &&\n               ((local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0')))) {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              iVar8 = DAT_0033f2f0;\n              if (iVar2 == 0) goto LAB_0004c60b;\n              if (*(char *)(iVar2 + 0x825) != '\0') goto LAB_0004c490;\n              local_32 = bVar1;\n              if ((*(byte *)(param_1 + 10) & 0xf) != 1) {\n                local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        local_32 = bVar5;\n        if (bVar9 != 4) goto LAB_0004c4d9;\n      }" if (parenthesized_expression "(bVar9 == 0)" ( (binary_expression "bVar9 == 0" identifier == number_literal) )) (compound_statement "{\n        local_32 = *(byte *)(param_1[2] + 0x2c) & 1;\n        if (((*(byte *)(param_1[2] + 0x2c) & 1) == 0) &&\n           (local_32 = *(byte *)((int)param_1 + 0x2b) >> 5 & param_1[3] == 0, local_32 == 0)) {\nLAB_0004c4d9:\n          local_32 = bVar1;\n          if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)param_1 + 0x2b) & 0x10) == 0)) {\n            iVar8 = *(int *)(DAT_0033f2f0 + 8);\n            if (iVar8 == 0) goto LAB_0004c60b;\n            bVar1 = *(byte *)(iVar8 + 0x1a25);\n            local_32 = bVar1;\n            if ((bVar1 != 0) &&\n               ((local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0')))) {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              iVar8 = DAT_0033f2f0;\n              if (iVar2 == 0) goto LAB_0004c60b;\n              if (*(char *)(iVar2 + 0x825) != '\0') goto LAB_0004c490;\n              local_32 = bVar1;\n              if ((*(byte *)(param_1 + 10) & 0xf) != 1) {\n                local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;\n              }\n            }\n          }\n        }\n      }" { (expression_statement "local_32 = *(byte *)(param_1[2] + 0x2c) & 1;" (assignment_expression "local_32 = *(byte *)(param_1[2] + 0x2c) & 1" identifier = (binary_expression "*(byte *)(param_1[2] + 0x2c) & 1" (pointer_expression "*(byte *)(param_1[2] + 0x2c)" * (cast_expression "(byte *)(param_1[2] + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[2] + 0x2c)" ( (binary_expression "param_1[2] + 0x2c" (subscript_expression "param_1[2]" identifier [ number_literal ]) + number_literal) )))) & number_literal)) ;) (if_statement "if (((*(byte *)(param_1[2] + 0x2c) & 1) == 0) &&\n           (local_32 = *(byte *)((int)param_1 + 0x2b) >> 5 & param_1[3] == 0, local_32 == 0)) {\nLAB_0004c4d9:\n          local_32 = bVar1;\n          if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)param_1 + 0x2b) & 0x10) == 0)) {\n            iVar8 = *(int *)(DAT_0033f2f0 + 8);\n            if (iVar8 == 0) goto LAB_0004c60b;\n            bVar1 = *(byte *)(iVar8 + 0x1a25);\n            local_32 = bVar1;\n            if ((bVar1 != 0) &&\n               ((local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0')))) {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              iVar8 = DAT_0033f2f0;\n              if (iVar2 == 0) goto LAB_0004c60b;\n              if (*(char *)(iVar2 + 0x825) != '\0') goto LAB_0004c490;\n              local_32 = bVar1;\n              if ((*(byte *)(param_1 + 10) & 0xf) != 1) {\n                local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;\n              }\n            }\n          }\n        }" if (parenthesized_expression "(((*(byte *)(param_1[2] + 0x2c) & 1) == 0) &&\n           (local_32 = *(byte *)((int)param_1 + 0x2b) >> 5 & param_1[3] == 0, local_32 == 0))" ( (binary_expression "((*(byte *)(param_1[2] + 0x2c) & 1) == 0) &&\n           (local_32 = *(byte *)((int)param_1 + 0x2b) >> 5 & param_1[3] == 0, local_32 == 0)" (parenthesized_expression "((*(byte *)(param_1[2] + 0x2c) & 1) == 0)" ( (binary_expression "(*(byte *)(param_1[2] + 0x2c) & 1) == 0" (parenthesized_expression "(*(byte *)(param_1[2] + 0x2c) & 1)" ( (binary_expression "*(byte *)(param_1[2] + 0x2c) & 1" (pointer_expression "*(byte *)(param_1[2] + 0x2c)" * (cast_expression "(byte *)(param_1[2] + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[2] + 0x2c)" ( (binary_expression "param_1[2] + 0x2c" (subscript_expression "param_1[2]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "(local_32 = *(byte *)((int)param_1 + 0x2b) >> 5 & param_1[3] == 0, local_32 == 0)" ( (comma_expression "local_32 = *(byte *)((int)param_1 + 0x2b) >> 5 & param_1[3] == 0, local_32 == 0" (assignment_expression "local_32 = *(byte *)((int)param_1 + 0x2b) >> 5 & param_1[3] == 0" identifier = (binary_expression "*(byte *)((int)param_1 + 0x2b) >> 5 & param_1[3] == 0" (binary_expression "*(byte *)((int)param_1 + 0x2b) >> 5" (pointer_expression "*(byte *)((int)param_1 + 0x2b)" * (cast_expression "(byte *)((int)param_1 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x2b)" ( (binary_expression "(int)param_1 + 0x2b" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) >> number_literal) & (binary_expression "param_1[3] == 0" (subscript_expression "param_1[3]" identifier [ number_literal ]) == number_literal))) , (binary_expression "local_32 == 0" identifier == number_literal)) ))) )) (compound_statement "{\nLAB_0004c4d9:\n          local_32 = bVar1;\n          if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)param_1 + 0x2b) & 0x10) == 0)) {\n            iVar8 = *(int *)(DAT_0033f2f0 + 8);\n            if (iVar8 == 0) goto LAB_0004c60b;\n            bVar1 = *(byte *)(iVar8 + 0x1a25);\n            local_32 = bVar1;\n            if ((bVar1 != 0) &&\n               ((local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0')))) {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              iVar8 = DAT_0033f2f0;\n              if (iVar2 == 0) goto LAB_0004c60b;\n              if (*(char *)(iVar2 + 0x825) != '\0') goto LAB_0004c490;\n              local_32 = bVar1;\n              if ((*(byte *)(param_1 + 10) & 0xf) != 1) {\n                local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;\n              }\n            }\n          }\n        }" { (labeled_statement "LAB_0004c4d9:\n          local_32 = bVar1;" statement_identifier : (expression_statement "local_32 = bVar1;" (assignment_expression "local_32 = bVar1" identifier = identifier) ;)) (if_statement "if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)param_1 + 0x2b) & 0x10) == 0)) {\n            iVar8 = *(int *)(DAT_0033f2f0 + 8);\n            if (iVar8 == 0) goto LAB_0004c60b;\n            bVar1 = *(byte *)(iVar8 + 0x1a25);\n            local_32 = bVar1;\n            if ((bVar1 != 0) &&\n               ((local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0')))) {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              iVar8 = DAT_0033f2f0;\n              if (iVar2 == 0) goto LAB_0004c60b;\n              if (*(char *)(iVar2 + 0x825) != '\0') goto LAB_0004c490;\n              local_32 = bVar1;\n              if ((*(byte *)(param_1 + 10) & 0xf) != 1) {\n                local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;\n              }\n            }\n          }" if (parenthesized_expression "(((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)param_1 + 0x2b) & 0x10) == 0))" ( (binary_expression "((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)param_1 + 0x2b) & 0x10) == 0)" (parenthesized_expression "((*(byte *)((int)param_1 + 0x29) & 3) == 0)" ( (binary_expression "(*(byte *)((int)param_1 + 0x29) & 3) == 0" (parenthesized_expression "(*(byte *)((int)param_1 + 0x29) & 3)" ( (binary_expression "*(byte *)((int)param_1 + 0x29) & 3" (pointer_expression "*(byte *)((int)param_1 + 0x29)" * (cast_expression "(byte *)((int)param_1 + 0x29)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x29)" ( (binary_expression "(int)param_1 + 0x29" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "((*(byte *)((int)param_1 + 0x2b) & 0x10) == 0)" ( (binary_expression "(*(byte *)((int)param_1 + 0x2b) & 0x10) == 0" (parenthesized_expression "(*(byte *)((int)param_1 + 0x2b) & 0x10)" ( (binary_expression "*(byte *)((int)param_1 + 0x2b) & 0x10" (pointer_expression "*(byte *)((int)param_1 + 0x2b)" * (cast_expression "(byte *)((int)param_1 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x2b)" ( (binary_expression "(int)param_1 + 0x2b" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n            iVar8 = *(int *)(DAT_0033f2f0 + 8);\n            if (iVar8 == 0) goto LAB_0004c60b;\n            bVar1 = *(byte *)(iVar8 + 0x1a25);\n            local_32 = bVar1;\n            if ((bVar1 != 0) &&\n               ((local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0')))) {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              iVar8 = DAT_0033f2f0;\n              if (iVar2 == 0) goto LAB_0004c60b;\n              if (*(char *)(iVar2 + 0x825) != '\0') goto LAB_0004c490;\n              local_32 = bVar1;\n              if ((*(byte *)(param_1 + 10) & 0xf) != 1) {\n                local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;\n              }\n            }\n          }" { (expression_statement "iVar8 = *(int *)(DAT_0033f2f0 + 8);" (assignment_expression "iVar8 = *(int *)(DAT_0033f2f0 + 8)" identifier = (pointer_expression "*(int *)(DAT_0033f2f0 + 8)" * (cast_expression "(int *)(DAT_0033f2f0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0033f2f0 + 8)" ( (binary_expression "DAT_0033f2f0 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 == 0) goto LAB_0004c60b;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004c60b;" goto statement_identifier ;)) (expression_statement "bVar1 = *(byte *)(iVar8 + 0x1a25);" (assignment_expression "bVar1 = *(byte *)(iVar8 + 0x1a25)" identifier = (pointer_expression "*(byte *)(iVar8 + 0x1a25)" * (cast_expression "(byte *)(iVar8 + 0x1a25)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1a25)" ( (binary_expression "iVar8 + 0x1a25" identifier + number_literal) ))))) ;) (expression_statement "local_32 = bVar1;" (assignment_expression "local_32 = bVar1" identifier = identifier) ;) (if_statement "if ((bVar1 != 0) &&\n               ((local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0')))) {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              iVar8 = DAT_0033f2f0;\n              if (iVar2 == 0) goto LAB_0004c60b;\n              if (*(char *)(iVar2 + 0x825) != '\0') goto LAB_0004c490;\n              local_32 = bVar1;\n              if ((*(byte *)(param_1 + 10) & 0xf) != 1) {\n                local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;\n              }\n            }" if (parenthesized_expression "((bVar1 != 0) &&\n               ((local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0'))))" ( (binary_expression "(bVar1 != 0) &&\n               ((local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0')))" (parenthesized_expression "(bVar1 != 0)" ( (binary_expression "bVar1 != 0" identifier != number_literal) )) && (parenthesized_expression "((local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0')))" ( (parenthesized_expression "(local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0'))" ( (comma_expression "local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0')" (assignment_expression "local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e)" identifier = (call_expression "FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e)" identifier (argument_list "(iVar8 + 0x59a8,*param_1,0,&local_1e)" ( (binary_expression "iVar8 + 0x59a8" identifier + number_literal) , (pointer_expression "*param_1" * identifier) , number_literal , (pointer_expression "&local_1e" & identifier) )))) , (binary_expression "local_32 == 0 ||\n                (local_1e != '\0')" (binary_expression "local_32 == 0" identifier == number_literal) || (parenthesized_expression "(local_1e != '\0')" ( (binary_expression "local_1e != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )))) )) ))) )) (compound_statement "{\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              iVar8 = DAT_0033f2f0;\n              if (iVar2 == 0) goto LAB_0004c60b;\n              if (*(char *)(iVar2 + 0x825) != '\0') goto LAB_0004c490;\n              local_32 = bVar1;\n              if ((*(byte *)(param_1 + 10) & 0xf) != 1) {\n                local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;\n              }\n            }" { (expression_statement "iVar2 = *(int *)(DAT_0033f2f0 + 8);" (assignment_expression "iVar2 = *(int *)(DAT_0033f2f0 + 8)" identifier = (pointer_expression "*(int *)(DAT_0033f2f0 + 8)" * (cast_expression "(int *)(DAT_0033f2f0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0033f2f0 + 8)" ( (binary_expression "DAT_0033f2f0 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = DAT_0033f2f0;" (assignment_expression "iVar8 = DAT_0033f2f0" identifier = identifier) ;) (if_statement "if (iVar2 == 0) goto LAB_0004c60b;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004c60b;" goto statement_identifier ;)) (if_statement "if (*(char *)(iVar2 + 0x825) != '\0') goto LAB_0004c490;" if (parenthesized_expression "(*(char *)(iVar2 + 0x825) != '\0')" ( (binary_expression "*(char *)(iVar2 + 0x825) != '\0'" (pointer_expression "*(char *)(iVar2 + 0x825)" * (cast_expression "(char *)(iVar2 + 0x825)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x825)" ( (binary_expression "iVar2 + 0x825" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0004c490;" goto statement_identifier ;)) (expression_statement "local_32 = bVar1;" (assignment_expression "local_32 = bVar1" identifier = identifier) ;) (if_statement "if ((*(byte *)(param_1 + 10) & 0xf) != 1) {\n                local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;\n              }" if (parenthesized_expression "((*(byte *)(param_1 + 10) & 0xf) != 1)" ( (binary_expression "(*(byte *)(param_1 + 10) & 0xf) != 1" (parenthesized_expression "(*(byte *)(param_1 + 10) & 0xf)" ( (binary_expression "*(byte *)(param_1 + 10) & 0xf" (pointer_expression "*(byte *)(param_1 + 10)" * (cast_expression "(byte *)(param_1 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 10)" ( (binary_expression "param_1 + 10" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;\n              }" { (expression_statement "local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;" (assignment_expression "local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1" identifier = (binary_expression "*(byte *)(iVar2 + 0x8a1) ^ 1" (pointer_expression "*(byte *)(iVar2 + 0x8a1)" * (cast_expression "(byte *)(iVar2 + 0x8a1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x8a1)" ( (binary_expression "iVar2 + 0x8a1" identifier + number_literal) )))) ^ number_literal)) ;) })) })) })) })) }) (else_clause "else {\n        local_32 = bVar5;\n        if (bVar9 != 4) goto LAB_0004c4d9;\n      }" else (compound_statement "{\n        local_32 = bVar5;\n        if (bVar9 != 4) goto LAB_0004c4d9;\n      }" { (expression_statement "local_32 = bVar5;" (assignment_expression "local_32 = bVar5" identifier = identifier) ;) (if_statement "if (bVar9 != 4) goto LAB_0004c4d9;" if (parenthesized_expression "(bVar9 != 4)" ( (binary_expression "bVar9 != 4" identifier != number_literal) )) (goto_statement "goto LAB_0004c4d9;" goto statement_identifier ;)) }))) (goto_statement "goto LAB_0004c25c;" goto statement_identifier ;) })) (expression_statement "iVar2 = *(int *)(DAT_0033f2f0 + 8);" (assignment_expression "iVar2 = *(int *)(DAT_0033f2f0 + 8)" identifier = (pointer_expression "*(int *)(DAT_0033f2f0 + 8)" * (cast_expression "(int *)(DAT_0033f2f0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0033f2f0 + 8)" ( (binary_expression "DAT_0033f2f0 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar2 == 0) goto LAB_0004c60b;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004c60b;" goto statement_identifier ;)) (expression_statement "local_32 = *(byte *)(iVar2 + 0x1a25);" (assignment_expression "local_32 = *(byte *)(iVar2 + 0x1a25)" identifier = (pointer_expression "*(byte *)(iVar2 + 0x1a25)" * (cast_expression "(byte *)(iVar2 + 0x1a25)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1a25)" ( (binary_expression "iVar2 + 0x1a25" identifier + number_literal) ))))) ;) (if_statement "if ((local_32 == 0) && (local_32 = *(byte *)(iVar2 + 0x2931), local_32 == 0)) goto LAB_0004c450;" if (parenthesized_expression "((local_32 == 0) && (local_32 = *(byte *)(iVar2 + 0x2931), local_32 == 0))" ( (binary_expression "(local_32 == 0) && (local_32 = *(byte *)(iVar2 + 0x2931), local_32 == 0)" (parenthesized_expression "(local_32 == 0)" ( (binary_expression "local_32 == 0" identifier == number_literal) )) && (parenthesized_expression "(local_32 = *(byte *)(iVar2 + 0x2931), local_32 == 0)" ( (comma_expression "local_32 = *(byte *)(iVar2 + 0x2931), local_32 == 0" (assignment_expression "local_32 = *(byte *)(iVar2 + 0x2931)" identifier = (pointer_expression "*(byte *)(iVar2 + 0x2931)" * (cast_expression "(byte *)(iVar2 + 0x2931)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x2931)" ( (binary_expression "iVar2 + 0x2931" identifier + number_literal) ))))) , (binary_expression "local_32 == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_0004c450;" goto statement_identifier ;)) }) (else_clause "else {\n    local_32 = 0;\nLAB_0004c25c:\n    local_38 = uVar14 & 1;\n    if (local_38 == 0) goto LAB_0004c268;\n  }" else (compound_statement "{\n    local_32 = 0;\nLAB_0004c25c:\n    local_38 = uVar14 & 1;\n    if (local_38 == 0) goto LAB_0004c268;\n  }" { (expression_statement "local_32 = 0;" (assignment_expression "local_32 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0004c25c:\n    local_38 = uVar14 & 1;" statement_identifier : (expression_statement "local_38 = uVar14 & 1;" (assignment_expression "local_38 = uVar14 & 1" identifier = (binary_expression "uVar14 & 1" identifier & number_literal)) ;)) (if_statement "if (local_38 == 0) goto LAB_0004c268;" if (parenthesized_expression "(local_38 == 0)" ( (binary_expression "local_38 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004c268;" goto statement_identifier ;)) }))) (expression_statement "uVar11 = (uint)bVar5;" (assignment_expression "uVar11 = (uint)bVar5" identifier = (cast_expression "(uint)bVar5" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar7 = uVar11;" (assignment_expression "uVar7 = uVar11" identifier = identifier) ;) (if_statement "if (((uVar14 & 8) == 0) || (param_1[6] == -1)) {\n    if ((*(byte *)((int)param_1 + 0x2a) & 7) == 0) {\n      if (((*(byte *)(param_1[2] + 0x2c) & 1) != 0) ||\n         ((param_1[3] == 0 && ((*(byte *)((int)param_1 + 0x2b) & 0x20) != 0)))) goto LAB_0004c268;\n    }\n    else if ((*(byte *)((int)param_1 + 0x2a) & 7) == 4) goto LAB_0004c268;\n    if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n       (bVar5 = *(byte *)((int)param_1 + 0x2b) >> 4, uVar7 = bVar5 & 1, (bVar5 & 1) == 0)) {\n      iVar8 = *(int *)(DAT_0033f2f0 + 8);\n      if (iVar8 == 0) {\nLAB_0004c60b:\n                    \n        FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar8);\n      }\n      uVar7 = uVar11;\n      if (*(char *)(iVar8 + 0x1a25) != '\0') {\n        cVar6 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,local_1d);\n        if ((cVar6 != '\0') && (local_1d[0] == '\0')) {\nLAB_0004c268:\n          return local_32 ^ 1;\n        }\n        iVar8 = *(int *)(DAT_0033f2f0 + 8);\n        if (iVar8 == 0) goto LAB_0004c60b;\n        uVar7 = (uint)*(byte *)(iVar8 + 0x825);\n        if ((*(byte *)(iVar8 + 0x825) == 0) &&\n           (uVar7 = local_32 ^ 1, (*(byte *)(param_1 + 10) & 0xf) != 1)) {\n          uVar7 = (uint)(byte)((byte)uVar7 | *(byte *)(iVar8 + 0x8a1));\n        }\n      }\n    }\n  }" if (parenthesized_expression "(((uVar14 & 8) == 0) || (param_1[6] == -1))" ( (binary_expression "((uVar14 & 8) == 0) || (param_1[6] == -1)" (parenthesized_expression "((uVar14 & 8) == 0)" ( (binary_expression "(uVar14 & 8) == 0" (parenthesized_expression "(uVar14 & 8)" ( (binary_expression "uVar14 & 8" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(param_1[6] == -1)" ( (binary_expression "param_1[6] == -1" (subscript_expression "param_1[6]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n    if ((*(byte *)((int)param_1 + 0x2a) & 7) == 0) {\n      if (((*(byte *)(param_1[2] + 0x2c) & 1) != 0) ||\n         ((param_1[3] == 0 && ((*(byte *)((int)param_1 + 0x2b) & 0x20) != 0)))) goto LAB_0004c268;\n    }\n    else if ((*(byte *)((int)param_1 + 0x2a) & 7) == 4) goto LAB_0004c268;\n    if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n       (bVar5 = *(byte *)((int)param_1 + 0x2b) >> 4, uVar7 = bVar5 & 1, (bVar5 & 1) == 0)) {\n      iVar8 = *(int *)(DAT_0033f2f0 + 8);\n      if (iVar8 == 0) {\nLAB_0004c60b:\n                    \n        FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar8);\n      }\n      uVar7 = uVar11;\n      if (*(char *)(iVar8 + 0x1a25) != '\0') {\n        cVar6 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,local_1d);\n        if ((cVar6 != '\0') && (local_1d[0] == '\0')) {\nLAB_0004c268:\n          return local_32 ^ 1;\n        }\n        iVar8 = *(int *)(DAT_0033f2f0 + 8);\n        if (iVar8 == 0) goto LAB_0004c60b;\n        uVar7 = (uint)*(byte *)(iVar8 + 0x825);\n        if ((*(byte *)(iVar8 + 0x825) == 0) &&\n           (uVar7 = local_32 ^ 1, (*(byte *)(param_1 + 10) & 0xf) != 1)) {\n          uVar7 = (uint)(byte)((byte)uVar7 | *(byte *)(iVar8 + 0x8a1));\n        }\n      }\n    }\n  }" { (if_statement "if ((*(byte *)((int)param_1 + 0x2a) & 7) == 0) {\n      if (((*(byte *)(param_1[2] + 0x2c) & 1) != 0) ||\n         ((param_1[3] == 0 && ((*(byte *)((int)param_1 + 0x2b) & 0x20) != 0)))) goto LAB_0004c268;\n    }\n    else if ((*(byte *)((int)param_1 + 0x2a) & 7) == 4) goto LAB_0004c268;" if (parenthesized_expression "((*(byte *)((int)param_1 + 0x2a) & 7) == 0)" ( (binary_expression "(*(byte *)((int)param_1 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)((int)param_1 + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)param_1 + 0x2a) & 7" (pointer_expression "*(byte *)((int)param_1 + 0x2a)" * (cast_expression "(byte *)((int)param_1 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x2a)" ( (binary_expression "(int)param_1 + 0x2a" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      if (((*(byte *)(param_1[2] + 0x2c) & 1) != 0) ||\n         ((param_1[3] == 0 && ((*(byte *)((int)param_1 + 0x2b) & 0x20) != 0)))) goto LAB_0004c268;\n    }" { (if_statement "if (((*(byte *)(param_1[2] + 0x2c) & 1) != 0) ||\n         ((param_1[3] == 0 && ((*(byte *)((int)param_1 + 0x2b) & 0x20) != 0)))) goto LAB_0004c268;" if (parenthesized_expression "(((*(byte *)(param_1[2] + 0x2c) & 1) != 0) ||\n         ((param_1[3] == 0 && ((*(byte *)((int)param_1 + 0x2b) & 0x20) != 0))))" ( (binary_expression "((*(byte *)(param_1[2] + 0x2c) & 1) != 0) ||\n         ((param_1[3] == 0 && ((*(byte *)((int)param_1 + 0x2b) & 0x20) != 0)))" (parenthesized_expression "((*(byte *)(param_1[2] + 0x2c) & 1) != 0)" ( (binary_expression "(*(byte *)(param_1[2] + 0x2c) & 1) != 0" (parenthesized_expression "(*(byte *)(param_1[2] + 0x2c) & 1)" ( (binary_expression "*(byte *)(param_1[2] + 0x2c) & 1" (pointer_expression "*(byte *)(param_1[2] + 0x2c)" * (cast_expression "(byte *)(param_1[2] + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[2] + 0x2c)" ( (binary_expression "param_1[2] + 0x2c" (subscript_expression "param_1[2]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) != number_literal) )) || (parenthesized_expression "((param_1[3] == 0 && ((*(byte *)((int)param_1 + 0x2b) & 0x20) != 0)))" ( (parenthesized_expression "(param_1[3] == 0 && ((*(byte *)((int)param_1 + 0x2b) & 0x20) != 0))" ( (binary_expression "param_1[3] == 0 && ((*(byte *)((int)param_1 + 0x2b) & 0x20) != 0)" (binary_expression "param_1[3] == 0" (subscript_expression "param_1[3]" identifier [ number_literal ]) == number_literal) && (parenthesized_expression "((*(byte *)((int)param_1 + 0x2b) & 0x20) != 0)" ( (binary_expression "(*(byte *)((int)param_1 + 0x2b) & 0x20) != 0" (parenthesized_expression "(*(byte *)((int)param_1 + 0x2b) & 0x20)" ( (binary_expression "*(byte *)((int)param_1 + 0x2b) & 0x20" (pointer_expression "*(byte *)((int)param_1 + 0x2b)" * (cast_expression "(byte *)((int)param_1 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x2b)" ( (binary_expression "(int)param_1 + 0x2b" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) ))) )) ))) )) (goto_statement "goto LAB_0004c268;" goto statement_identifier ;)) }) (else_clause "else if ((*(byte *)((int)param_1 + 0x2a) & 7) == 4) goto LAB_0004c268;" else (if_statement "if ((*(byte *)((int)param_1 + 0x2a) & 7) == 4) goto LAB_0004c268;" if (parenthesized_expression "((*(byte *)((int)param_1 + 0x2a) & 7) == 4)" ( (binary_expression "(*(byte *)((int)param_1 + 0x2a) & 7) == 4" (parenthesized_expression "(*(byte *)((int)param_1 + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)param_1 + 0x2a) & 7" (pointer_expression "*(byte *)((int)param_1 + 0x2a)" * (cast_expression "(byte *)((int)param_1 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x2a)" ( (binary_expression "(int)param_1 + 0x2a" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0004c268;" goto statement_identifier ;)))) (if_statement "if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n       (bVar5 = *(byte *)((int)param_1 + 0x2b) >> 4, uVar7 = bVar5 & 1, (bVar5 & 1) == 0)) {\n      iVar8 = *(int *)(DAT_0033f2f0 + 8);\n      if (iVar8 == 0) {\nLAB_0004c60b:\n                    \n        FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar8);\n      }\n      uVar7 = uVar11;\n      if (*(char *)(iVar8 + 0x1a25) != '\0') {\n        cVar6 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,local_1d);\n        if ((cVar6 != '\0') && (local_1d[0] == '\0')) {\nLAB_0004c268:\n          return local_32 ^ 1;\n        }\n        iVar8 = *(int *)(DAT_0033f2f0 + 8);\n        if (iVar8 == 0) goto LAB_0004c60b;\n        uVar7 = (uint)*(byte *)(iVar8 + 0x825);\n        if ((*(byte *)(iVar8 + 0x825) == 0) &&\n           (uVar7 = local_32 ^ 1, (*(byte *)(param_1 + 10) & 0xf) != 1)) {\n          uVar7 = (uint)(byte)((byte)uVar7 | *(byte *)(iVar8 + 0x8a1));\n        }\n      }\n    }" if (parenthesized_expression "(((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n       (bVar5 = *(byte *)((int)param_1 + 0x2b) >> 4, uVar7 = bVar5 & 1, (bVar5 & 1) == 0))" ( (binary_expression "((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n       (bVar5 = *(byte *)((int)param_1 + 0x2b) >> 4, uVar7 = bVar5 & 1, (bVar5 & 1) == 0)" (parenthesized_expression "((*(byte *)((int)param_1 + 0x29) & 3) == 0)" ( (binary_expression "(*(byte *)((int)param_1 + 0x29) & 3) == 0" (parenthesized_expression "(*(byte *)((int)param_1 + 0x29) & 3)" ( (binary_expression "*(byte *)((int)param_1 + 0x29) & 3" (pointer_expression "*(byte *)((int)param_1 + 0x29)" * (cast_expression "(byte *)((int)param_1 + 0x29)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x29)" ( (binary_expression "(int)param_1 + 0x29" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "(bVar5 = *(byte *)((int)param_1 + 0x2b) >> 4, uVar7 = bVar5 & 1, (bVar5 & 1) == 0)" ( (comma_expression "bVar5 = *(byte *)((int)param_1 + 0x2b) >> 4, uVar7 = bVar5 & 1, (bVar5 & 1) == 0" (assignment_expression "bVar5 = *(byte *)((int)param_1 + 0x2b) >> 4" identifier = (binary_expression "*(byte *)((int)param_1 + 0x2b) >> 4" (pointer_expression "*(byte *)((int)param_1 + 0x2b)" * (cast_expression "(byte *)((int)param_1 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x2b)" ( (binary_expression "(int)param_1 + 0x2b" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) >> number_literal)) , (comma_expression "uVar7 = bVar5 & 1, (bVar5 & 1) == 0" (assignment_expression "uVar7 = bVar5 & 1" identifier = (binary_expression "bVar5 & 1" identifier & number_literal)) , (binary_expression "(bVar5 & 1) == 0" (parenthesized_expression "(bVar5 & 1)" ( (binary_expression "bVar5 & 1" identifier & number_literal) )) == number_literal))) ))) )) (compound_statement "{\n      iVar8 = *(int *)(DAT_0033f2f0 + 8);\n      if (iVar8 == 0) {\nLAB_0004c60b:\n                    \n        FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar8);\n      }\n      uVar7 = uVar11;\n      if (*(char *)(iVar8 + 0x1a25) != '\0') {\n        cVar6 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,local_1d);\n        if ((cVar6 != '\0') && (local_1d[0] == '\0')) {\nLAB_0004c268:\n          return local_32 ^ 1;\n        }\n        iVar8 = *(int *)(DAT_0033f2f0 + 8);\n        if (iVar8 == 0) goto LAB_0004c60b;\n        uVar7 = (uint)*(byte *)(iVar8 + 0x825);\n        if ((*(byte *)(iVar8 + 0x825) == 0) &&\n           (uVar7 = local_32 ^ 1, (*(byte *)(param_1 + 10) & 0xf) != 1)) {\n          uVar7 = (uint)(byte)((byte)uVar7 | *(byte *)(iVar8 + 0x8a1));\n        }\n      }\n    }" { (expression_statement "iVar8 = *(int *)(DAT_0033f2f0 + 8);" (assignment_expression "iVar8 = *(int *)(DAT_0033f2f0 + 8)" identifier = (pointer_expression "*(int *)(DAT_0033f2f0 + 8)" * (cast_expression "(int *)(DAT_0033f2f0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0033f2f0 + 8)" ( (binary_expression "DAT_0033f2f0 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 == 0) {\nLAB_0004c60b:\n                    \n        FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar8);\n      }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0004c60b:\n                    \n        FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar8);\n      }" { (labeled_statement "LAB_0004c60b:\n                    \n        FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar8);" statement_identifier : (expression_statement "FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar8);" (call_expression "FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar8)" identifier (argument_list "("../../gold/parameters.h",0x5c,"options",iVar8)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") , identifier ))) ;)) })) (expression_statement "uVar7 = uVar11;" (assignment_expression "uVar7 = uVar11" identifier = identifier) ;) (if_statement "if (*(char *)(iVar8 + 0x1a25) != '\0') {\n        cVar6 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,local_1d);\n        if ((cVar6 != '\0') && (local_1d[0] == '\0')) {\nLAB_0004c268:\n          return local_32 ^ 1;\n        }\n        iVar8 = *(int *)(DAT_0033f2f0 + 8);\n        if (iVar8 == 0) goto LAB_0004c60b;\n        uVar7 = (uint)*(byte *)(iVar8 + 0x825);\n        if ((*(byte *)(iVar8 + 0x825) == 0) &&\n           (uVar7 = local_32 ^ 1, (*(byte *)(param_1 + 10) & 0xf) != 1)) {\n          uVar7 = (uint)(byte)((byte)uVar7 | *(byte *)(iVar8 + 0x8a1));\n        }\n      }" if (parenthesized_expression "(*(char *)(iVar8 + 0x1a25) != '\0')" ( (binary_expression "*(char *)(iVar8 + 0x1a25) != '\0'" (pointer_expression "*(char *)(iVar8 + 0x1a25)" * (cast_expression "(char *)(iVar8 + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1a25)" ( (binary_expression "iVar8 + 0x1a25" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        cVar6 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,local_1d);\n        if ((cVar6 != '\0') && (local_1d[0] == '\0')) {\nLAB_0004c268:\n          return local_32 ^ 1;\n        }\n        iVar8 = *(int *)(DAT_0033f2f0 + 8);\n        if (iVar8 == 0) goto LAB_0004c60b;\n        uVar7 = (uint)*(byte *)(iVar8 + 0x825);\n        if ((*(byte *)(iVar8 + 0x825) == 0) &&\n           (uVar7 = local_32 ^ 1, (*(byte *)(param_1 + 10) & 0xf) != 1)) {\n          uVar7 = (uint)(byte)((byte)uVar7 | *(byte *)(iVar8 + 0x8a1));\n        }\n      }" { (expression_statement "cVar6 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,local_1d);" (assignment_expression "cVar6 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,local_1d)" identifier = (call_expression "FUN_001453a0(iVar8 + 0x59a8,*param_1,0,local_1d)" identifier (argument_list "(iVar8 + 0x59a8,*param_1,0,local_1d)" ( (binary_expression "iVar8 + 0x59a8" identifier + number_literal) , (pointer_expression "*param_1" * identifier) , number_literal , identifier )))) ;) (if_statement "if ((cVar6 != '\0') && (local_1d[0] == '\0')) {\nLAB_0004c268:\n          return local_32 ^ 1;\n        }" if (parenthesized_expression "((cVar6 != '\0') && (local_1d[0] == '\0'))" ( (binary_expression "(cVar6 != '\0') && (local_1d[0] == '\0')" (parenthesized_expression "(cVar6 != '\0')" ( (binary_expression "cVar6 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(local_1d[0] == '\0')" ( (binary_expression "local_1d[0] == '\0'" (subscript_expression "local_1d[0]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\nLAB_0004c268:\n          return local_32 ^ 1;\n        }" { (labeled_statement "LAB_0004c268:\n          return local_32 ^ 1;" statement_identifier : (return_statement "return local_32 ^ 1;" return (binary_expression "local_32 ^ 1" identifier ^ number_literal) ;)) })) (expression_statement "iVar8 = *(int *)(DAT_0033f2f0 + 8);" (assignment_expression "iVar8 = *(int *)(DAT_0033f2f0 + 8)" identifier = (pointer_expression "*(int *)(DAT_0033f2f0 + 8)" * (cast_expression "(int *)(DAT_0033f2f0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0033f2f0 + 8)" ( (binary_expression "DAT_0033f2f0 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 == 0) goto LAB_0004c60b;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004c60b;" goto statement_identifier ;)) (expression_statement "uVar7 = (uint)*(byte *)(iVar8 + 0x825);" (assignment_expression "uVar7 = (uint)*(byte *)(iVar8 + 0x825)" identifier = (binary_expression "(uint)*(byte *)(iVar8 + 0x825)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar8 + 0x825)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x825)" ( (binary_expression "iVar8 + 0x825" identifier + number_literal) ))))) ;) (if_statement "if ((*(byte *)(iVar8 + 0x825) == 0) &&\n           (uVar7 = local_32 ^ 1, (*(byte *)(param_1 + 10) & 0xf) != 1)) {\n          uVar7 = (uint)(byte)((byte)uVar7 | *(byte *)(iVar8 + 0x8a1));\n        }" if (parenthesized_expression "((*(byte *)(iVar8 + 0x825) == 0) &&\n           (uVar7 = local_32 ^ 1, (*(byte *)(param_1 + 10) & 0xf) != 1))" ( (binary_expression "(*(byte *)(iVar8 + 0x825) == 0) &&\n           (uVar7 = local_32 ^ 1, (*(byte *)(param_1 + 10) & 0xf) != 1)" (parenthesized_expression "(*(byte *)(iVar8 + 0x825) == 0)" ( (binary_expression "*(byte *)(iVar8 + 0x825) == 0" (pointer_expression "*(byte *)(iVar8 + 0x825)" * (cast_expression "(byte *)(iVar8 + 0x825)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x825)" ( (binary_expression "iVar8 + 0x825" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(uVar7 = local_32 ^ 1, (*(byte *)(param_1 + 10) & 0xf) != 1)" ( (comma_expression "uVar7 = local_32 ^ 1, (*(byte *)(param_1 + 10) & 0xf) != 1" (assignment_expression "uVar7 = local_32 ^ 1" identifier = (binary_expression "local_32 ^ 1" identifier ^ number_literal)) , (binary_expression "(*(byte *)(param_1 + 10) & 0xf) != 1" (parenthesized_expression "(*(byte *)(param_1 + 10) & 0xf)" ( (binary_expression "*(byte *)(param_1 + 10) & 0xf" (pointer_expression "*(byte *)(param_1 + 10)" * (cast_expression "(byte *)(param_1 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 10)" ( (binary_expression "param_1 + 10" identifier + number_literal) )))) & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n          uVar7 = (uint)(byte)((byte)uVar7 | *(byte *)(iVar8 + 0x8a1));\n        }" { (expression_statement "uVar7 = (uint)(byte)((byte)uVar7 | *(byte *)(iVar8 + 0x8a1));" (assignment_expression "uVar7 = (uint)(byte)((byte)uVar7 | *(byte *)(iVar8 + 0x8a1))" identifier = (call_expression "(uint)(byte)((byte)uVar7 | *(byte *)(iVar8 + 0x8a1))" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "((byte)uVar7 | *(byte *)(iVar8 + 0x8a1))" ( (binary_expression "(byte)uVar7 | *(byte *)(iVar8 + 0x8a1)" (cast_expression "(byte)uVar7" ( (type_descriptor "byte" type_identifier) ) identifier) | (pointer_expression "*(byte *)(iVar8 + 0x8a1)" * (cast_expression "(byte *)(iVar8 + 0x8a1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x8a1)" ( (binary_expression "iVar8 + 0x8a1" identifier + number_literal) ))))) )))) ;) })) })) })) })) (return_statement "return uVar7;" return identifier ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (pointer_expression & IDENT) ))) [ IDENT ])) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (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) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , LIT , LIT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT % (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) )) [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != (binary_expression IDENT % (subscript_expression IDENT [ LIT ]))))) ))) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (goto_statement goto statement_identifier ;)) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) , IDENT ))) ;)) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (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) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , LIT , LIT , LIT ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })))) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_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 (binary_expression IDENT * LIT) + LIT) )))) + LIT) )))) )) (argument_list ( )))) ;) (return_statement return IDENT ;) })) (return_statement return IDENT ;) })) (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 { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT)) ;) (expression_statement (assignment_expression IDENT = 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) >> LIT) & 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 (binary_expression IDENT != LIT) || (binary_expression IDENT != LIT)) )) (goto_statement goto statement_identifier ;))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement 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) )))) == 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + 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 = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) >> LIT) & LIT)) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 (subscript_expression IDENT [ LIT ]) != LIT) ))) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE) ) IDENT) ;) }))) (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) )) (goto_statement goto statement_identifier ;)) (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 (subscript_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 = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) & LIT)) ;) (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 (subscript_expression IDENT [ LIT ]) + LIT) )))) & LIT) )) == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) >> LIT) & (binary_expression (subscript_expression IDENT [ LIT ]) == LIT))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (labeled_statement statement_identifier : (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 (cast_expression ( (type_descriptor TYPE) ) 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & 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) )) (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) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression * IDENT) , LIT , (pointer_expression & IDENT) )))) , (binary_expression (binary_expression IDENT == LIT) || (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 ;)) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ^ 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 ;)) (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 ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT == LIT)) ))) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) || (parenthesized_expression ( (binary_expression (subscript_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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (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 (subscript_expression IDENT [ LIT ]) + LIT) )))) & LIT) )) != LIT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (subscript_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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) != LIT) ))) )) ))) )) (goto_statement goto statement_identifier ;)) }) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)))) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) >> LIT)) , (comma_expression (assignment_expression IDENT = (binary_expression IDENT & LIT)) , (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 ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;)) })) (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) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression * IDENT) , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (labeled_statement statement_identifier : (return_statement return (binary_expression IDENT ^ 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 IDENT == LIT) )) (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) ))))) ;) (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 ( (comma_expression (assignment_expression IDENT = (binary_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 { (expression_statement (assignment_expression IDENT = (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) | (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) })) })) })) })) (return_statement return IDENT ;) })))
(function_definition "uint __regparm3 FUN_0004c1a0(undefined4 *param_1,int param_2,uint param_3,int param_4)\n\n{\n  byte bVar1;\n  int iVar2;\n  uint *puVar3;\n  int *piVar4;\n  byte bVar5;\n  char cVar6;\n  uint uVar7;\n  int iVar8;\n  byte bVar9;\n  byte bVar10;\n  undefined4 extraout_ECX;\n  uint uVar11;\n  int extraout_EDX;\n  int *piVar12;\n  int *piVar13;\n  uint uVar14;\n  uint local_38;\n  byte local_32;\n  int local_30;\n  int iStack_2c;\n  int iStack_28;\n  char local_1e;\n  char local_1d [9];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4c1a9;\n  if ((*(byte *)(param_4 + 0x54) & 2) == 0) {\n    return 1;\n  }\n  uVar14 = 0;\n  if (param_2 - 1U < 0x2b) {\n    uVar14 = (uint)(char)(&DAT_0024cfbf)[param_2];\n  }\n  if (param_1 == (undefined4 *)0x0) {\n    iVar8 = *(int *)(DAT_0033f2f0 + 8);\n    if (iVar8 != 0) {\n      if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar14 & 1 | param_3;\n    }\n    iVar8 = FUN_000496d0();\n    goto LAB_0004c60b;\n  }\n  bVar5 = *(byte *)(DAT_0033f2f0 + 0x10);\n  if (bVar5 == 0) {\n    FUN_00049580();\n    FUN_00058c4e(&DAT_0033f2f0);\n    if (-1 < (char)*(byte *)(iStack_28 + 0xb)) {\n      if ((*(byte *)(iStack_28 + 0xb) & 8) == 0) {\n                    \n        FUN_0008b620(0x53e03f,0x6ab,0x540406,extraout_ECX);\n      }\n      puVar3 = *(uint **)(iStack_28 + 0xc);\n      uVar14 = *puVar3;\n      uVar7 = uVar14 % puVar3[3];\n      piVar13 = *(int **)(puVar3[2] + uVar7 * 4);\n      if (piVar13 != (int *)0x0) {\n        uVar11 = ((int *)*piVar13)[1];\n        piVar4 = (int *)*piVar13;\n        while (piVar12 = piVar4, uVar14 != uVar11) {\n          piVar4 = (int *)*piVar12;\n          if ((piVar4 == (int *)0x0) ||\n             (uVar11 = piVar4[1], piVar13 = piVar12, uVar7 != uVar11 % puVar3[3]))\n          goto LAB_0004c8d4;\n        }\n        if (*piVar13 != 0) goto LAB_0004c6e9;\n      }\nLAB_0004c8d4:\n      FUN_00126fe0(puVar3,*(undefined4 *)(extraout_EDX + 8),*(uint *)(iStack_28 + 8) & 0x7ffffff,\n                   uVar14);\n    }\nLAB_0004c6e9:\n    if (iStack_2c == 0) {\n      if (*(int *)(iRam00631faa + 8) == 0) {\n                    \n        FUN_0008b620(0x538f27,0x5c,0x540242,0);\n      }\n    }\n    else {\n      FUN_0014e8a0(iStack_2c);\n    }\n    FUN_000495b0();\n    uVar14 = local_30 - 0xf;\n    if (uVar14 < 0x1a) {\n                    \n                    \n      uVar14 = (*(code *)(*(int *)(uVar14 * 4 + 0x53e9fe) + 0x631cba))();\n      return uVar14;\n    }\n    return uVar14;\n  }\n  if (*(char *)(DAT_0033f2f0 + 0x11) == '\0') {\n    bVar9 = *(byte *)((int)param_1 + 0x2a) & 7;\n    bVar1 = 0;\n    iVar8 = DAT_0033f2f0;\n    if ((*(byte *)((int)param_1 + 0x2a) & 7) == 0) {\n      local_30 = param_1[3];\n      bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;\n      if ((local_30 == 0) && (bVar10 != 0)) goto LAB_0004c222;\nLAB_0004c306:\n      if (local_30 != 0xfff1 || bVar10 != 0) goto LAB_0004c320;\nLAB_0004c490:\n      local_32 = 0;\n      goto LAB_0004c25c;\n    }\n    if (bVar9 == 4) {\nLAB_0004c222:\n      if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_0004c60b;\n      if (*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x1a25) == '\0') goto LAB_0004c490;\n      if (bVar9 == 0) {\n        local_30 = param_1[3];\n        bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;\n        goto LAB_0004c306;\n      }\n    }\n    local_32 = bVar1;\n    if (bVar9 == 3) goto LAB_0004c25c;\nLAB_0004c320:\n    local_38 = uVar14 & 1;\n    if (local_38 == 0) {\nLAB_0004c450:\n      if (((uVar14 & 8) != 0) && (param_1[6] != -1)) {\n        return (uint)bVar5;\n      }\n      if ((uVar14 & 0x10) == 0) {\n        iVar2 = *(int *)(DAT_0033f2f0 + 8);\n        if (iVar2 == 0) goto LAB_0004c60b;\n        if (((*(char *)(iVar2 + 0x1a25) == '\0') && (*(char *)(iVar2 + 0x2931) == '\0')) &&\n           (param_1[6] != -1)) goto LAB_0004c490;\n      }\n      if (bVar9 == 0) {\n        local_32 = *(byte *)(param_1[2] + 0x2c) & 1;\n        if (((*(byte *)(param_1[2] + 0x2c) & 1) == 0) &&\n           (local_32 = *(byte *)((int)param_1 + 0x2b) >> 5 & param_1[3] == 0, local_32 == 0)) {\nLAB_0004c4d9:\n          local_32 = bVar1;\n          if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)param_1 + 0x2b) & 0x10) == 0)) {\n            iVar8 = *(int *)(DAT_0033f2f0 + 8);\n            if (iVar8 == 0) goto LAB_0004c60b;\n            bVar1 = *(byte *)(iVar8 + 0x1a25);\n            local_32 = bVar1;\n            if ((bVar1 != 0) &&\n               ((local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0')))) {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              iVar8 = DAT_0033f2f0;\n              if (iVar2 == 0) goto LAB_0004c60b;\n              if (*(char *)(iVar2 + 0x825) != '\0') goto LAB_0004c490;\n              local_32 = bVar1;\n              if ((*(byte *)(param_1 + 10) & 0xf) != 1) {\n                local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        local_32 = bVar5;\n        if (bVar9 != 4) goto LAB_0004c4d9;\n      }\n      goto LAB_0004c25c;\n    }\n    iVar2 = *(int *)(DAT_0033f2f0 + 8);\n    if (iVar2 == 0) goto LAB_0004c60b;\n    local_32 = *(byte *)(iVar2 + 0x1a25);\n    if ((local_32 == 0) && (local_32 = *(byte *)(iVar2 + 0x2931), local_32 == 0)) goto LAB_0004c450;\n  }\n  else {\n    local_32 = 0;\nLAB_0004c25c:\n    local_38 = uVar14 & 1;\n    if (local_38 == 0) goto LAB_0004c268;\n  }\n  uVar11 = (uint)bVar5;\n  uVar7 = uVar11;\n  if (((uVar14 & 8) == 0) || (param_1[6] == -1)) {\n    if ((*(byte *)((int)param_1 + 0x2a) & 7) == 0) {\n      if (((*(byte *)(param_1[2] + 0x2c) & 1) != 0) ||\n         ((param_1[3] == 0 && ((*(byte *)((int)param_1 + 0x2b) & 0x20) != 0)))) goto LAB_0004c268;\n    }\n    else if ((*(byte *)((int)param_1 + 0x2a) & 7) == 4) goto LAB_0004c268;\n    if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n       (bVar5 = *(byte *)((int)param_1 + 0x2b) >> 4, uVar7 = bVar5 & 1, (bVar5 & 1) == 0)) {\n      iVar8 = *(int *)(DAT_0033f2f0 + 8);\n      if (iVar8 == 0) {\nLAB_0004c60b:\n                    \n        FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar8);\n      }\n      uVar7 = uVar11;\n      if (*(char *)(iVar8 + 0x1a25) != '\0') {\n        cVar6 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,local_1d);\n        if ((cVar6 != '\0') && (local_1d[0] == '\0')) {\nLAB_0004c268:\n          return local_32 ^ 1;\n        }\n        iVar8 = *(int *)(DAT_0033f2f0 + 8);\n        if (iVar8 == 0) goto LAB_0004c60b;\n        uVar7 = (uint)*(byte *)(iVar8 + 0x825);\n        if ((*(byte *)(iVar8 + 0x825) == 0) &&\n           (uVar7 = local_32 ^ 1, (*(byte *)(param_1 + 10) & 0xf) != 1)) {\n          uVar7 = (uint)(byte)((byte)uVar7 | *(byte *)(iVar8 + 0x8a1));\n        }\n      }\n    }\n  }\n  return uVar7;\n}" (type_identifier "uint") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_0004c1a0(undefined4 *param_1,int param_2,uint param_3,int param_4)" (identifier "FUN_0004c1a0") (parameter_list "(undefined4 *param_1,int param_2,uint param_3,int param_4)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "uint param_3" (type_identifier "uint") (identifier "param_3")) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) () ")"))) (compound_statement "{\n  byte bVar1;\n  int iVar2;\n  uint *puVar3;\n  int *piVar4;\n  byte bVar5;\n  char cVar6;\n  uint uVar7;\n  int iVar8;\n  byte bVar9;\n  byte bVar10;\n  undefined4 extraout_ECX;\n  uint uVar11;\n  int extraout_EDX;\n  int *piVar12;\n  int *piVar13;\n  uint uVar14;\n  uint local_38;\n  byte local_32;\n  int local_30;\n  int iStack_2c;\n  int iStack_28;\n  char local_1e;\n  char local_1d [9];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4c1a9;\n  if ((*(byte *)(param_4 + 0x54) & 2) == 0) {\n    return 1;\n  }\n  uVar14 = 0;\n  if (param_2 - 1U < 0x2b) {\n    uVar14 = (uint)(char)(&DAT_0024cfbf)[param_2];\n  }\n  if (param_1 == (undefined4 *)0x0) {\n    iVar8 = *(int *)(DAT_0033f2f0 + 8);\n    if (iVar8 != 0) {\n      if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar14 & 1 | param_3;\n    }\n    iVar8 = FUN_000496d0();\n    goto LAB_0004c60b;\n  }\n  bVar5 = *(byte *)(DAT_0033f2f0 + 0x10);\n  if (bVar5 == 0) {\n    FUN_00049580();\n    FUN_00058c4e(&DAT_0033f2f0);\n    if (-1 < (char)*(byte *)(iStack_28 + 0xb)) {\n      if ((*(byte *)(iStack_28 + 0xb) & 8) == 0) {\n                    \n        FUN_0008b620(0x53e03f,0x6ab,0x540406,extraout_ECX);\n      }\n      puVar3 = *(uint **)(iStack_28 + 0xc);\n      uVar14 = *puVar3;\n      uVar7 = uVar14 % puVar3[3];\n      piVar13 = *(int **)(puVar3[2] + uVar7 * 4);\n      if (piVar13 != (int *)0x0) {\n        uVar11 = ((int *)*piVar13)[1];\n        piVar4 = (int *)*piVar13;\n        while (piVar12 = piVar4, uVar14 != uVar11) {\n          piVar4 = (int *)*piVar12;\n          if ((piVar4 == (int *)0x0) ||\n             (uVar11 = piVar4[1], piVar13 = piVar12, uVar7 != uVar11 % puVar3[3]))\n          goto LAB_0004c8d4;\n        }\n        if (*piVar13 != 0) goto LAB_0004c6e9;\n      }\nLAB_0004c8d4:\n      FUN_00126fe0(puVar3,*(undefined4 *)(extraout_EDX + 8),*(uint *)(iStack_28 + 8) & 0x7ffffff,\n                   uVar14);\n    }\nLAB_0004c6e9:\n    if (iStack_2c == 0) {\n      if (*(int *)(iRam00631faa + 8) == 0) {\n                    \n        FUN_0008b620(0x538f27,0x5c,0x540242,0);\n      }\n    }\n    else {\n      FUN_0014e8a0(iStack_2c);\n    }\n    FUN_000495b0();\n    uVar14 = local_30 - 0xf;\n    if (uVar14 < 0x1a) {\n                    \n                    \n      uVar14 = (*(code *)(*(int *)(uVar14 * 4 + 0x53e9fe) + 0x631cba))();\n      return uVar14;\n    }\n    return uVar14;\n  }\n  if (*(char *)(DAT_0033f2f0 + 0x11) == '\0') {\n    bVar9 = *(byte *)((int)param_1 + 0x2a) & 7;\n    bVar1 = 0;\n    iVar8 = DAT_0033f2f0;\n    if ((*(byte *)((int)param_1 + 0x2a) & 7) == 0) {\n      local_30 = param_1[3];\n      bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;\n      if ((local_30 == 0) && (bVar10 != 0)) goto LAB_0004c222;\nLAB_0004c306:\n      if (local_30 != 0xfff1 || bVar10 != 0) goto LAB_0004c320;\nLAB_0004c490:\n      local_32 = 0;\n      goto LAB_0004c25c;\n    }\n    if (bVar9 == 4) {\nLAB_0004c222:\n      if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_0004c60b;\n      if (*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x1a25) == '\0') goto LAB_0004c490;\n      if (bVar9 == 0) {\n        local_30 = param_1[3];\n        bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;\n        goto LAB_0004c306;\n      }\n    }\n    local_32 = bVar1;\n    if (bVar9 == 3) goto LAB_0004c25c;\nLAB_0004c320:\n    local_38 = uVar14 & 1;\n    if (local_38 == 0) {\nLAB_0004c450:\n      if (((uVar14 & 8) != 0) && (param_1[6] != -1)) {\n        return (uint)bVar5;\n      }\n      if ((uVar14 & 0x10) == 0) {\n        iVar2 = *(int *)(DAT_0033f2f0 + 8);\n        if (iVar2 == 0) goto LAB_0004c60b;\n        if (((*(char *)(iVar2 + 0x1a25) == '\0') && (*(char *)(iVar2 + 0x2931) == '\0')) &&\n           (param_1[6] != -1)) goto LAB_0004c490;\n      }\n      if (bVar9 == 0) {\n        local_32 = *(byte *)(param_1[2] + 0x2c) & 1;\n        if (((*(byte *)(param_1[2] + 0x2c) & 1) == 0) &&\n           (local_32 = *(byte *)((int)param_1 + 0x2b) >> 5 & param_1[3] == 0, local_32 == 0)) {\nLAB_0004c4d9:\n          local_32 = bVar1;\n          if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)param_1 + 0x2b) & 0x10) == 0)) {\n            iVar8 = *(int *)(DAT_0033f2f0 + 8);\n            if (iVar8 == 0) goto LAB_0004c60b;\n            bVar1 = *(byte *)(iVar8 + 0x1a25);\n            local_32 = bVar1;\n            if ((bVar1 != 0) &&\n               ((local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0')))) {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              iVar8 = DAT_0033f2f0;\n              if (iVar2 == 0) goto LAB_0004c60b;\n              if (*(char *)(iVar2 + 0x825) != '\0') goto LAB_0004c490;\n              local_32 = bVar1;\n              if ((*(byte *)(param_1 + 10) & 0xf) != 1) {\n                local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        local_32 = bVar5;\n        if (bVar9 != 4) goto LAB_0004c4d9;\n      }\n      goto LAB_0004c25c;\n    }\n    iVar2 = *(int *)(DAT_0033f2f0 + 8);\n    if (iVar2 == 0) goto LAB_0004c60b;\n    local_32 = *(byte *)(iVar2 + 0x1a25);\n    if ((local_32 == 0) && (local_32 = *(byte *)(iVar2 + 0x2931), local_32 == 0)) goto LAB_0004c450;\n  }\n  else {\n    local_32 = 0;\nLAB_0004c25c:\n    local_38 = uVar14 & 1;\n    if (local_38 == 0) goto LAB_0004c268;\n  }\n  uVar11 = (uint)bVar5;\n  uVar7 = uVar11;\n  if (((uVar14 & 8) == 0) || (param_1[6] == -1)) {\n    if ((*(byte *)((int)param_1 + 0x2a) & 7) == 0) {\n      if (((*(byte *)(param_1[2] + 0x2c) & 1) != 0) ||\n         ((param_1[3] == 0 && ((*(byte *)((int)param_1 + 0x2b) & 0x20) != 0)))) goto LAB_0004c268;\n    }\n    else if ((*(byte *)((int)param_1 + 0x2a) & 7) == 4) goto LAB_0004c268;\n    if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n       (bVar5 = *(byte *)((int)param_1 + 0x2b) >> 4, uVar7 = bVar5 & 1, (bVar5 & 1) == 0)) {\n      iVar8 = *(int *)(DAT_0033f2f0 + 8);\n      if (iVar8 == 0) {\nLAB_0004c60b:\n                    \n        FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar8);\n      }\n      uVar7 = uVar11;\n      if (*(char *)(iVar8 + 0x1a25) != '\0') {\n        cVar6 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,local_1d);\n        if ((cVar6 != '\0') && (local_1d[0] == '\0')) {\nLAB_0004c268:\n          return local_32 ^ 1;\n        }\n        iVar8 = *(int *)(DAT_0033f2f0 + 8);\n        if (iVar8 == 0) goto LAB_0004c60b;\n        uVar7 = (uint)*(byte *)(iVar8 + 0x825);\n        if ((*(byte *)(iVar8 + 0x825) == 0) &&\n           (uVar7 = local_32 ^ 1, (*(byte *)(param_1 + 10) & 0xf) != 1)) {\n          uVar7 = (uint)(byte)((byte)uVar7 | *(byte *)(iVar8 + 0x8a1));\n        }\n      }\n    }\n  }\n  return uVar7;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "uint *puVar3;" (type_identifier "uint") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (declaration "byte bVar5;" (type_identifier "byte") (identifier "bVar5") (; ";")) (declaration "char cVar6;" (primitive_type "char") (identifier "cVar6") (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "byte bVar9;" (type_identifier "byte") (identifier "bVar9") (; ";")) (declaration "byte bVar10;" (type_identifier "byte") (identifier "bVar10") (; ";")) (declaration "undefined4 extraout_ECX;" (type_identifier "undefined4") (identifier "extraout_ECX") (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "int extraout_EDX;" (primitive_type "int") (identifier "extraout_EDX") (; ";")) (declaration "int *piVar12;" (primitive_type "int") (pointer_declarator "*piVar12" (* "*") (identifier "piVar12")) (; ";")) (declaration "int *piVar13;" (primitive_type "int") (pointer_declarator "*piVar13" (* "*") (identifier "piVar13")) (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "uint local_38;" (type_identifier "uint") (identifier "local_38") (; ";")) (declaration "byte local_32;" (type_identifier "byte") (identifier "local_32") (; ";")) (declaration "int local_30;" (primitive_type "int") (identifier "local_30") (; ";")) (declaration "int iStack_2c;" (primitive_type "int") (identifier "iStack_2c") (; ";")) (declaration "int iStack_28;" (primitive_type "int") (identifier "iStack_28") (; ";")) (declaration "char local_1e;" (primitive_type "char") (identifier "local_1e") (; ";")) (declaration "char local_1d [9];" (primitive_type "char") (array_declarator "local_1d [9]" (identifier "local_1d") ([ "[") (number_literal "9") (] "]")) (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x4c1a9;" (assignment_expression "uStack_14 = 0x4c1a9" (identifier "uStack_14") (= "=") (number_literal "0x4c1a9")) (; ";")) (if_statement "if ((*(byte *)(param_4 + 0x54) & 2) == 0) {\n    return 1;\n  }" (if "if") (parenthesized_expression "((*(byte *)(param_4 + 0x54) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(param_4 + 0x54) & 2) == 0" (parenthesized_expression "(*(byte *)(param_4 + 0x54) & 2)" (( "(") (binary_expression "*(byte *)(param_4 + 0x54) & 2" (pointer_expression "*(byte *)(param_4 + 0x54)" (* "*") (cast_expression "(byte *)(param_4 + 0x54)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x54)" (( "(") (binary_expression "param_4 + 0x54" (identifier "param_4") (+ "+") (number_literal "0x54")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return 1;\n  }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" (identifier "uVar14") (= "=") (number_literal "0")) (; ";")) (if_statement "if (param_2 - 1U < 0x2b) {\n    uVar14 = (uint)(char)(&DAT_0024cfbf)[param_2];\n  }" (if "if") (parenthesized_expression "(param_2 - 1U < 0x2b)" (( "(") (binary_expression "param_2 - 1U < 0x2b" (binary_expression "param_2 - 1U" (identifier "param_2") (- "-") (number_literal "1U")) (< "<") (number_literal "0x2b")) () ")")) (compound_statement "{\n    uVar14 = (uint)(char)(&DAT_0024cfbf)[param_2];\n  }" ({ "{") (expression_statement "uVar14 = (uint)(char)(&DAT_0024cfbf)[param_2];" (assignment_expression "uVar14 = (uint)(char)(&DAT_0024cfbf)[param_2]" (identifier "uVar14") (= "=") (subscript_expression "(uint)(char)(&DAT_0024cfbf)[param_2]" (call_expression "(uint)(char)(&DAT_0024cfbf)" (call_expression "(uint)(char)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(char)" (( "(") (identifier "char") () ")"))) (argument_list "(&DAT_0024cfbf)" (( "(") (pointer_expression "&DAT_0024cfbf" (& "&") (identifier "DAT_0024cfbf")) () ")"))) ([ "[") (identifier "param_2") (] "]"))) (; ";")) (} "}"))) (if_statement "if (param_1 == (undefined4 *)0x0) {\n    iVar8 = *(int *)(DAT_0033f2f0 + 8);\n    if (iVar8 != 0) {\n      if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar14 & 1 | param_3;\n    }\n    iVar8 = FUN_000496d0();\n    goto LAB_0004c60b;\n  }" (if "if") (parenthesized_expression "(param_1 == (undefined4 *)0x0)" (( "(") (binary_expression "param_1 == (undefined4 *)0x0" (identifier "param_1") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    iVar8 = *(int *)(DAT_0033f2f0 + 8);\n    if (iVar8 != 0) {\n      if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar14 & 1 | param_3;\n    }\n    iVar8 = FUN_000496d0();\n    goto LAB_0004c60b;\n  }" ({ "{") (expression_statement "iVar8 = *(int *)(DAT_0033f2f0 + 8);" (assignment_expression "iVar8 = *(int *)(DAT_0033f2f0 + 8)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(DAT_0033f2f0 + 8)" (* "*") (cast_expression "(int *)(DAT_0033f2f0 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0033f2f0 + 8)" (( "(") (binary_expression "DAT_0033f2f0 + 8" (identifier "DAT_0033f2f0") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar8 != 0) {\n      if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar14 & 1 | param_3;\n    }" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x2931) == '\0')) {\n        return 1;\n      }\n      return ~uVar14 & 1 | param_3;\n    }" ({ "{") (if_statement "if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x2931) == '\0')) {\n        return 1;\n      }" (if "if") (parenthesized_expression "((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x2931) == '\0'))" (( "(") (binary_expression "(*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x2931) == '\0')" (parenthesized_expression "(*(char *)(iVar8 + 0x1a25) == '\0')" (( "(") (binary_expression "*(char *)(iVar8 + 0x1a25) == '\0'" (pointer_expression "*(char *)(iVar8 + 0x1a25)" (* "*") (cast_expression "(char *)(iVar8 + 0x1a25)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x1a25)" (( "(") (binary_expression "iVar8 + 0x1a25" (identifier "iVar8") (+ "+") (number_literal "0x1a25")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(iVar8 + 0x2931) == '\0')" (( "(") (binary_expression "*(char *)(iVar8 + 0x2931) == '\0'" (pointer_expression "*(char *)(iVar8 + 0x2931)" (* "*") (cast_expression "(char *)(iVar8 + 0x2931)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x2931)" (( "(") (binary_expression "iVar8 + 0x2931" (identifier "iVar8") (+ "+") (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 ~uVar14 & 1 | param_3;" (return "return") (binary_expression "~uVar14 & 1 | param_3" (binary_expression "~uVar14 & 1" (unary_expression "~uVar14" (~ "~") (identifier "uVar14")) (& "&") (number_literal "1")) (| "|") (identifier "param_3")) (; ";")) (} "}"))) (expression_statement "iVar8 = FUN_000496d0();" (assignment_expression "iVar8 = FUN_000496d0()" (identifier "iVar8") (= "=") (call_expression "FUN_000496d0()" (identifier "FUN_000496d0") (argument_list "()" (( "(") () ")")))) (; ";")) (goto_statement "goto LAB_0004c60b;" (goto "goto") (statement_identifier "LAB_0004c60b") (; ";")) (} "}"))) (expression_statement "bVar5 = *(byte *)(DAT_0033f2f0 + 0x10);" (assignment_expression "bVar5 = *(byte *)(DAT_0033f2f0 + 0x10)" (identifier "bVar5") (= "=") (pointer_expression "*(byte *)(DAT_0033f2f0 + 0x10)" (* "*") (cast_expression "(byte *)(DAT_0033f2f0 + 0x10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0033f2f0 + 0x10)" (( "(") (binary_expression "DAT_0033f2f0 + 0x10" (identifier "DAT_0033f2f0") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if (bVar5 == 0) {\n    FUN_00049580();\n    FUN_00058c4e(&DAT_0033f2f0);\n    if (-1 < (char)*(byte *)(iStack_28 + 0xb)) {\n      if ((*(byte *)(iStack_28 + 0xb) & 8) == 0) {\n                    \n        FUN_0008b620(0x53e03f,0x6ab,0x540406,extraout_ECX);\n      }\n      puVar3 = *(uint **)(iStack_28 + 0xc);\n      uVar14 = *puVar3;\n      uVar7 = uVar14 % puVar3[3];\n      piVar13 = *(int **)(puVar3[2] + uVar7 * 4);\n      if (piVar13 != (int *)0x0) {\n        uVar11 = ((int *)*piVar13)[1];\n        piVar4 = (int *)*piVar13;\n        while (piVar12 = piVar4, uVar14 != uVar11) {\n          piVar4 = (int *)*piVar12;\n          if ((piVar4 == (int *)0x0) ||\n             (uVar11 = piVar4[1], piVar13 = piVar12, uVar7 != uVar11 % puVar3[3]))\n          goto LAB_0004c8d4;\n        }\n        if (*piVar13 != 0) goto LAB_0004c6e9;\n      }\nLAB_0004c8d4:\n      FUN_00126fe0(puVar3,*(undefined4 *)(extraout_EDX + 8),*(uint *)(iStack_28 + 8) & 0x7ffffff,\n                   uVar14);\n    }\nLAB_0004c6e9:\n    if (iStack_2c == 0) {\n      if (*(int *)(iRam00631faa + 8) == 0) {\n                    \n        FUN_0008b620(0x538f27,0x5c,0x540242,0);\n      }\n    }\n    else {\n      FUN_0014e8a0(iStack_2c);\n    }\n    FUN_000495b0();\n    uVar14 = local_30 - 0xf;\n    if (uVar14 < 0x1a) {\n                    \n                    \n      uVar14 = (*(code *)(*(int *)(uVar14 * 4 + 0x53e9fe) + 0x631cba))();\n      return uVar14;\n    }\n    return uVar14;\n  }" (if "if") (parenthesized_expression "(bVar5 == 0)" (( "(") (binary_expression "bVar5 == 0" (identifier "bVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_00049580();\n    FUN_00058c4e(&DAT_0033f2f0);\n    if (-1 < (char)*(byte *)(iStack_28 + 0xb)) {\n      if ((*(byte *)(iStack_28 + 0xb) & 8) == 0) {\n                    \n        FUN_0008b620(0x53e03f,0x6ab,0x540406,extraout_ECX);\n      }\n      puVar3 = *(uint **)(iStack_28 + 0xc);\n      uVar14 = *puVar3;\n      uVar7 = uVar14 % puVar3[3];\n      piVar13 = *(int **)(puVar3[2] + uVar7 * 4);\n      if (piVar13 != (int *)0x0) {\n        uVar11 = ((int *)*piVar13)[1];\n        piVar4 = (int *)*piVar13;\n        while (piVar12 = piVar4, uVar14 != uVar11) {\n          piVar4 = (int *)*piVar12;\n          if ((piVar4 == (int *)0x0) ||\n             (uVar11 = piVar4[1], piVar13 = piVar12, uVar7 != uVar11 % puVar3[3]))\n          goto LAB_0004c8d4;\n        }\n        if (*piVar13 != 0) goto LAB_0004c6e9;\n      }\nLAB_0004c8d4:\n      FUN_00126fe0(puVar3,*(undefined4 *)(extraout_EDX + 8),*(uint *)(iStack_28 + 8) & 0x7ffffff,\n                   uVar14);\n    }\nLAB_0004c6e9:\n    if (iStack_2c == 0) {\n      if (*(int *)(iRam00631faa + 8) == 0) {\n                    \n        FUN_0008b620(0x538f27,0x5c,0x540242,0);\n      }\n    }\n    else {\n      FUN_0014e8a0(iStack_2c);\n    }\n    FUN_000495b0();\n    uVar14 = local_30 - 0xf;\n    if (uVar14 < 0x1a) {\n                    \n                    \n      uVar14 = (*(code *)(*(int *)(uVar14 * 4 + 0x53e9fe) + 0x631cba))();\n      return uVar14;\n    }\n    return uVar14;\n  }" ({ "{") (expression_statement "FUN_00049580();" (call_expression "FUN_00049580()" (identifier "FUN_00049580") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00058c4e(&DAT_0033f2f0);" (call_expression "FUN_00058c4e(&DAT_0033f2f0)" (identifier "FUN_00058c4e") (argument_list "(&DAT_0033f2f0)" (( "(") (pointer_expression "&DAT_0033f2f0" (& "&") (identifier "DAT_0033f2f0")) () ")"))) (; ";")) (if_statement "if (-1 < (char)*(byte *)(iStack_28 + 0xb)) {\n      if ((*(byte *)(iStack_28 + 0xb) & 8) == 0) {\n                    \n        FUN_0008b620(0x53e03f,0x6ab,0x540406,extraout_ECX);\n      }\n      puVar3 = *(uint **)(iStack_28 + 0xc);\n      uVar14 = *puVar3;\n      uVar7 = uVar14 % puVar3[3];\n      piVar13 = *(int **)(puVar3[2] + uVar7 * 4);\n      if (piVar13 != (int *)0x0) {\n        uVar11 = ((int *)*piVar13)[1];\n        piVar4 = (int *)*piVar13;\n        while (piVar12 = piVar4, uVar14 != uVar11) {\n          piVar4 = (int *)*piVar12;\n          if ((piVar4 == (int *)0x0) ||\n             (uVar11 = piVar4[1], piVar13 = piVar12, uVar7 != uVar11 % puVar3[3]))\n          goto LAB_0004c8d4;\n        }\n        if (*piVar13 != 0) goto LAB_0004c6e9;\n      }\nLAB_0004c8d4:\n      FUN_00126fe0(puVar3,*(undefined4 *)(extraout_EDX + 8),*(uint *)(iStack_28 + 8) & 0x7ffffff,\n                   uVar14);\n    }" (if "if") (parenthesized_expression "(-1 < (char)*(byte *)(iStack_28 + 0xb))" (( "(") (binary_expression "-1 < (char)*(byte *)(iStack_28 + 0xb)" (number_literal "-1") (< "<") (cast_expression "(char)*(byte *)(iStack_28 + 0xb)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(byte *)(iStack_28 + 0xb)" (* "*") (cast_expression "(byte *)(iStack_28 + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_28 + 0xb)" (( "(") (binary_expression "iStack_28 + 0xb" (identifier "iStack_28") (+ "+") (number_literal "0xb")) () ")")))))) () ")")) (compound_statement "{\n      if ((*(byte *)(iStack_28 + 0xb) & 8) == 0) {\n                    \n        FUN_0008b620(0x53e03f,0x6ab,0x540406,extraout_ECX);\n      }\n      puVar3 = *(uint **)(iStack_28 + 0xc);\n      uVar14 = *puVar3;\n      uVar7 = uVar14 % puVar3[3];\n      piVar13 = *(int **)(puVar3[2] + uVar7 * 4);\n      if (piVar13 != (int *)0x0) {\n        uVar11 = ((int *)*piVar13)[1];\n        piVar4 = (int *)*piVar13;\n        while (piVar12 = piVar4, uVar14 != uVar11) {\n          piVar4 = (int *)*piVar12;\n          if ((piVar4 == (int *)0x0) ||\n             (uVar11 = piVar4[1], piVar13 = piVar12, uVar7 != uVar11 % puVar3[3]))\n          goto LAB_0004c8d4;\n        }\n        if (*piVar13 != 0) goto LAB_0004c6e9;\n      }\nLAB_0004c8d4:\n      FUN_00126fe0(puVar3,*(undefined4 *)(extraout_EDX + 8),*(uint *)(iStack_28 + 8) & 0x7ffffff,\n                   uVar14);\n    }" ({ "{") (if_statement "if ((*(byte *)(iStack_28 + 0xb) & 8) == 0) {\n                    \n        FUN_0008b620(0x53e03f,0x6ab,0x540406,extraout_ECX);\n      }" (if "if") (parenthesized_expression "((*(byte *)(iStack_28 + 0xb) & 8) == 0)" (( "(") (binary_expression "(*(byte *)(iStack_28 + 0xb) & 8) == 0" (parenthesized_expression "(*(byte *)(iStack_28 + 0xb) & 8)" (( "(") (binary_expression "*(byte *)(iStack_28 + 0xb) & 8" (pointer_expression "*(byte *)(iStack_28 + 0xb)" (* "*") (cast_expression "(byte *)(iStack_28 + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_28 + 0xb)" (( "(") (binary_expression "iStack_28 + 0xb" (identifier "iStack_28") (+ "+") (number_literal "0xb")) () ")")))) (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n        FUN_0008b620(0x53e03f,0x6ab,0x540406,extraout_ECX);\n      }" ({ "{") (expression_statement "FUN_0008b620(0x53e03f,0x6ab,0x540406,extraout_ECX);" (call_expression "FUN_0008b620(0x53e03f,0x6ab,0x540406,extraout_ECX)" (identifier "FUN_0008b620") (argument_list "(0x53e03f,0x6ab,0x540406,extraout_ECX)" (( "(") (number_literal "0x53e03f") (, ",") (number_literal "0x6ab") (, ",") (number_literal "0x540406") (, ",") (identifier "extraout_ECX") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar3 = *(uint **)(iStack_28 + 0xc);" (assignment_expression "puVar3 = *(uint **)(iStack_28 + 0xc)" (identifier "puVar3") (= "=") (pointer_expression "*(uint **)(iStack_28 + 0xc)" (* "*") (cast_expression "(uint **)(iStack_28 + 0xc)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iStack_28 + 0xc)" (( "(") (binary_expression "iStack_28 + 0xc" (identifier "iStack_28") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "uVar14 = *puVar3;" (assignment_expression "uVar14 = *puVar3" (identifier "uVar14") (= "=") (pointer_expression "*puVar3" (* "*") (identifier "puVar3"))) (; ";")) (expression_statement "uVar7 = uVar14 % puVar3[3];" (assignment_expression "uVar7 = uVar14 % puVar3[3]" (identifier "uVar7") (= "=") (binary_expression "uVar14 % puVar3[3]" (identifier "uVar14") (% "%") (subscript_expression "puVar3[3]" (identifier "puVar3") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "piVar13 = *(int **)(puVar3[2] + uVar7 * 4);" (assignment_expression "piVar13 = *(int **)(puVar3[2] + uVar7 * 4)" (identifier "piVar13") (= "=") (pointer_expression "*(int **)(puVar3[2] + uVar7 * 4)" (* "*") (cast_expression "(int **)(puVar3[2] + uVar7 * 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar3[2] + uVar7 * 4)" (( "(") (binary_expression "puVar3[2] + uVar7 * 4" (subscript_expression "puVar3[2]" (identifier "puVar3") ([ "[") (number_literal "2") (] "]")) (+ "+") (binary_expression "uVar7 * 4" (identifier "uVar7") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (piVar13 != (int *)0x0) {\n        uVar11 = ((int *)*piVar13)[1];\n        piVar4 = (int *)*piVar13;\n        while (piVar12 = piVar4, uVar14 != uVar11) {\n          piVar4 = (int *)*piVar12;\n          if ((piVar4 == (int *)0x0) ||\n             (uVar11 = piVar4[1], piVar13 = piVar12, uVar7 != uVar11 % puVar3[3]))\n          goto LAB_0004c8d4;\n        }\n        if (*piVar13 != 0) goto LAB_0004c6e9;\n      }" (if "if") (parenthesized_expression "(piVar13 != (int *)0x0)" (( "(") (binary_expression "piVar13 != (int *)0x0" (identifier "piVar13") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        uVar11 = ((int *)*piVar13)[1];\n        piVar4 = (int *)*piVar13;\n        while (piVar12 = piVar4, uVar14 != uVar11) {\n          piVar4 = (int *)*piVar12;\n          if ((piVar4 == (int *)0x0) ||\n             (uVar11 = piVar4[1], piVar13 = piVar12, uVar7 != uVar11 % puVar3[3]))\n          goto LAB_0004c8d4;\n        }\n        if (*piVar13 != 0) goto LAB_0004c6e9;\n      }" ({ "{") (expression_statement "uVar11 = ((int *)*piVar13)[1];" (assignment_expression "uVar11 = ((int *)*piVar13)[1]" (identifier "uVar11") (= "=") (subscript_expression "((int *)*piVar13)[1]" (parenthesized_expression "((int *)*piVar13)" (( "(") (cast_expression "(int *)*piVar13" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar13" (* "*") (identifier "piVar13"))) () ")")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "piVar4 = (int *)*piVar13;" (assignment_expression "piVar4 = (int *)*piVar13" (identifier "piVar4") (= "=") (cast_expression "(int *)*piVar13" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar13" (* "*") (identifier "piVar13")))) (; ";")) (while_statement "while (piVar12 = piVar4, uVar14 != uVar11) {\n          piVar4 = (int *)*piVar12;\n          if ((piVar4 == (int *)0x0) ||\n             (uVar11 = piVar4[1], piVar13 = piVar12, uVar7 != uVar11 % puVar3[3]))\n          goto LAB_0004c8d4;\n        }" (while "while") (parenthesized_expression "(piVar12 = piVar4, uVar14 != uVar11)" (( "(") (comma_expression "piVar12 = piVar4, uVar14 != uVar11" (assignment_expression "piVar12 = piVar4" (identifier "piVar12") (= "=") (identifier "piVar4")) (, ",") (binary_expression "uVar14 != uVar11" (identifier "uVar14") (!= "!=") (identifier "uVar11"))) () ")")) (compound_statement "{\n          piVar4 = (int *)*piVar12;\n          if ((piVar4 == (int *)0x0) ||\n             (uVar11 = piVar4[1], piVar13 = piVar12, uVar7 != uVar11 % puVar3[3]))\n          goto LAB_0004c8d4;\n        }" ({ "{") (expression_statement "piVar4 = (int *)*piVar12;" (assignment_expression "piVar4 = (int *)*piVar12" (identifier "piVar4") (= "=") (cast_expression "(int *)*piVar12" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar12" (* "*") (identifier "piVar12")))) (; ";")) (if_statement "if ((piVar4 == (int *)0x0) ||\n             (uVar11 = piVar4[1], piVar13 = piVar12, uVar7 != uVar11 % puVar3[3]))\n          goto LAB_0004c8d4;" (if "if") (parenthesized_expression "((piVar4 == (int *)0x0) ||\n             (uVar11 = piVar4[1], piVar13 = piVar12, uVar7 != uVar11 % puVar3[3]))" (( "(") (binary_expression "(piVar4 == (int *)0x0) ||\n             (uVar11 = piVar4[1], piVar13 = piVar12, uVar7 != uVar11 % puVar3[3])" (parenthesized_expression "(piVar4 == (int *)0x0)" (( "(") (binary_expression "piVar4 == (int *)0x0" (identifier "piVar4") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(uVar11 = piVar4[1], piVar13 = piVar12, uVar7 != uVar11 % puVar3[3])" (( "(") (comma_expression "uVar11 = piVar4[1], piVar13 = piVar12, uVar7 != uVar11 % puVar3[3]" (assignment_expression "uVar11 = piVar4[1]" (identifier "uVar11") (= "=") (subscript_expression "piVar4[1]" (identifier "piVar4") ([ "[") (number_literal "1") (] "]"))) (, ",") (comma_expression "piVar13 = piVar12, uVar7 != uVar11 % puVar3[3]" (assignment_expression "piVar13 = piVar12" (identifier "piVar13") (= "=") (identifier "piVar12")) (, ",") (binary_expression "uVar7 != uVar11 % puVar3[3]" (identifier "uVar7") (!= "!=") (binary_expression "uVar11 % puVar3[3]" (identifier "uVar11") (% "%") (subscript_expression "puVar3[3]" (identifier "puVar3") ([ "[") (number_literal "3") (] "]")))))) () ")"))) () ")")) (goto_statement "goto LAB_0004c8d4;" (goto "goto") (statement_identifier "LAB_0004c8d4") (; ";"))) (} "}"))) (if_statement "if (*piVar13 != 0) goto LAB_0004c6e9;" (if "if") (parenthesized_expression "(*piVar13 != 0)" (( "(") (binary_expression "*piVar13 != 0" (pointer_expression "*piVar13" (* "*") (identifier "piVar13")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004c6e9;" (goto "goto") (statement_identifier "LAB_0004c6e9") (; ";"))) (} "}"))) (labeled_statement "LAB_0004c8d4:\n      FUN_00126fe0(puVar3,*(undefined4 *)(extraout_EDX + 8),*(uint *)(iStack_28 + 8) & 0x7ffffff,\n                   uVar14);" (statement_identifier "LAB_0004c8d4") (: ":") (expression_statement "FUN_00126fe0(puVar3,*(undefined4 *)(extraout_EDX + 8),*(uint *)(iStack_28 + 8) & 0x7ffffff,\n                   uVar14);" (call_expression "FUN_00126fe0(puVar3,*(undefined4 *)(extraout_EDX + 8),*(uint *)(iStack_28 + 8) & 0x7ffffff,\n                   uVar14)" (identifier "FUN_00126fe0") (argument_list "(puVar3,*(undefined4 *)(extraout_EDX + 8),*(uint *)(iStack_28 + 8) & 0x7ffffff,\n                   uVar14)" (( "(") (identifier "puVar3") (, ",") (pointer_expression "*(undefined4 *)(extraout_EDX + 8)" (* "*") (cast_expression "(undefined4 *)(extraout_EDX + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(extraout_EDX + 8)" (( "(") (binary_expression "extraout_EDX + 8" (identifier "extraout_EDX") (+ "+") (number_literal "8")) () ")")))) (, ",") (binary_expression "*(uint *)(iStack_28 + 8) & 0x7ffffff" (pointer_expression "*(uint *)(iStack_28 + 8)" (* "*") (cast_expression "(uint *)(iStack_28 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_28 + 8)" (( "(") (binary_expression "iStack_28 + 8" (identifier "iStack_28") (+ "+") (number_literal "8")) () ")")))) (& "&") (number_literal "0x7ffffff")) (, ",") (identifier "uVar14") () ")"))) (; ";"))) (} "}"))) (labeled_statement "LAB_0004c6e9:\n    if (iStack_2c == 0) {\n      if (*(int *)(iRam00631faa + 8) == 0) {\n                    \n        FUN_0008b620(0x538f27,0x5c,0x540242,0);\n      }\n    }\n    else {\n      FUN_0014e8a0(iStack_2c);\n    }" (statement_identifier "LAB_0004c6e9") (: ":") (if_statement "if (iStack_2c == 0) {\n      if (*(int *)(iRam00631faa + 8) == 0) {\n                    \n        FUN_0008b620(0x538f27,0x5c,0x540242,0);\n      }\n    }\n    else {\n      FUN_0014e8a0(iStack_2c);\n    }" (if "if") (parenthesized_expression "(iStack_2c == 0)" (( "(") (binary_expression "iStack_2c == 0" (identifier "iStack_2c") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (*(int *)(iRam00631faa + 8) == 0) {\n                    \n        FUN_0008b620(0x538f27,0x5c,0x540242,0);\n      }\n    }" ({ "{") (if_statement "if (*(int *)(iRam00631faa + 8) == 0) {\n                    \n        FUN_0008b620(0x538f27,0x5c,0x540242,0);\n      }" (if "if") (parenthesized_expression "(*(int *)(iRam00631faa + 8) == 0)" (( "(") (binary_expression "*(int *)(iRam00631faa + 8) == 0" (pointer_expression "*(int *)(iRam00631faa + 8)" (* "*") (cast_expression "(int *)(iRam00631faa + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iRam00631faa + 8)" (( "(") (binary_expression "iRam00631faa + 8" (identifier "iRam00631faa") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n        FUN_0008b620(0x538f27,0x5c,0x540242,0);\n      }" ({ "{") (expression_statement "FUN_0008b620(0x538f27,0x5c,0x540242,0);" (call_expression "FUN_0008b620(0x538f27,0x5c,0x540242,0)" (identifier "FUN_0008b620") (argument_list "(0x538f27,0x5c,0x540242,0)" (( "(") (number_literal "0x538f27") (, ",") (number_literal "0x5c") (, ",") (number_literal "0x540242") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      FUN_0014e8a0(iStack_2c);\n    }" (else "else") (compound_statement "{\n      FUN_0014e8a0(iStack_2c);\n    }" ({ "{") (expression_statement "FUN_0014e8a0(iStack_2c);" (call_expression "FUN_0014e8a0(iStack_2c)" (identifier "FUN_0014e8a0") (argument_list "(iStack_2c)" (( "(") (identifier "iStack_2c") () ")"))) (; ";")) (} "}"))))) (expression_statement "FUN_000495b0();" (call_expression "FUN_000495b0()" (identifier "FUN_000495b0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar14 = local_30 - 0xf;" (assignment_expression "uVar14 = local_30 - 0xf" (identifier "uVar14") (= "=") (binary_expression "local_30 - 0xf" (identifier "local_30") (- "-") (number_literal "0xf"))) (; ";")) (if_statement "if (uVar14 < 0x1a) {\n                    \n                    \n      uVar14 = (*(code *)(*(int *)(uVar14 * 4 + 0x53e9fe) + 0x631cba))();\n      return uVar14;\n    }" (if "if") (parenthesized_expression "(uVar14 < 0x1a)" (( "(") (binary_expression "uVar14 < 0x1a" (identifier "uVar14") (< "<") (number_literal "0x1a")) () ")")) (compound_statement "{\n                    \n                    \n      uVar14 = (*(code *)(*(int *)(uVar14 * 4 + 0x53e9fe) + 0x631cba))();\n      return uVar14;\n    }" ({ "{") (expression_statement "uVar14 = (*(code *)(*(int *)(uVar14 * 4 + 0x53e9fe) + 0x631cba))();" (assignment_expression "uVar14 = (*(code *)(*(int *)(uVar14 * 4 + 0x53e9fe) + 0x631cba))()" (identifier "uVar14") (= "=") (call_expression "(*(code *)(*(int *)(uVar14 * 4 + 0x53e9fe) + 0x631cba))()" (parenthesized_expression "(*(code *)(*(int *)(uVar14 * 4 + 0x53e9fe) + 0x631cba))" (( "(") (pointer_expression "*(code *)(*(int *)(uVar14 * 4 + 0x53e9fe) + 0x631cba)" (* "*") (cast_expression "(code *)(*(int *)(uVar14 * 4 + 0x53e9fe) + 0x631cba)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(uVar14 * 4 + 0x53e9fe) + 0x631cba)" (( "(") (binary_expression "*(int *)(uVar14 * 4 + 0x53e9fe) + 0x631cba" (pointer_expression "*(int *)(uVar14 * 4 + 0x53e9fe)" (* "*") (cast_expression "(int *)(uVar14 * 4 + 0x53e9fe)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar14 * 4 + 0x53e9fe)" (( "(") (binary_expression "uVar14 * 4 + 0x53e9fe" (binary_expression "uVar14 * 4" (identifier "uVar14") (* "*") (number_literal "4")) (+ "+") (number_literal "0x53e9fe")) () ")")))) (+ "+") (number_literal "0x631cba")) () ")")))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return uVar14;" (return "return") (identifier "uVar14") (; ";")) (} "}"))) (return_statement "return uVar14;" (return "return") (identifier "uVar14") (; ";")) (} "}"))) (if_statement "if (*(char *)(DAT_0033f2f0 + 0x11) == '\0') {\n    bVar9 = *(byte *)((int)param_1 + 0x2a) & 7;\n    bVar1 = 0;\n    iVar8 = DAT_0033f2f0;\n    if ((*(byte *)((int)param_1 + 0x2a) & 7) == 0) {\n      local_30 = param_1[3];\n      bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;\n      if ((local_30 == 0) && (bVar10 != 0)) goto LAB_0004c222;\nLAB_0004c306:\n      if (local_30 != 0xfff1 || bVar10 != 0) goto LAB_0004c320;\nLAB_0004c490:\n      local_32 = 0;\n      goto LAB_0004c25c;\n    }\n    if (bVar9 == 4) {\nLAB_0004c222:\n      if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_0004c60b;\n      if (*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x1a25) == '\0') goto LAB_0004c490;\n      if (bVar9 == 0) {\n        local_30 = param_1[3];\n        bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;\n        goto LAB_0004c306;\n      }\n    }\n    local_32 = bVar1;\n    if (bVar9 == 3) goto LAB_0004c25c;\nLAB_0004c320:\n    local_38 = uVar14 & 1;\n    if (local_38 == 0) {\nLAB_0004c450:\n      if (((uVar14 & 8) != 0) && (param_1[6] != -1)) {\n        return (uint)bVar5;\n      }\n      if ((uVar14 & 0x10) == 0) {\n        iVar2 = *(int *)(DAT_0033f2f0 + 8);\n        if (iVar2 == 0) goto LAB_0004c60b;\n        if (((*(char *)(iVar2 + 0x1a25) == '\0') && (*(char *)(iVar2 + 0x2931) == '\0')) &&\n           (param_1[6] != -1)) goto LAB_0004c490;\n      }\n      if (bVar9 == 0) {\n        local_32 = *(byte *)(param_1[2] + 0x2c) & 1;\n        if (((*(byte *)(param_1[2] + 0x2c) & 1) == 0) &&\n           (local_32 = *(byte *)((int)param_1 + 0x2b) >> 5 & param_1[3] == 0, local_32 == 0)) {\nLAB_0004c4d9:\n          local_32 = bVar1;\n          if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)param_1 + 0x2b) & 0x10) == 0)) {\n            iVar8 = *(int *)(DAT_0033f2f0 + 8);\n            if (iVar8 == 0) goto LAB_0004c60b;\n            bVar1 = *(byte *)(iVar8 + 0x1a25);\n            local_32 = bVar1;\n            if ((bVar1 != 0) &&\n               ((local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0')))) {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              iVar8 = DAT_0033f2f0;\n              if (iVar2 == 0) goto LAB_0004c60b;\n              if (*(char *)(iVar2 + 0x825) != '\0') goto LAB_0004c490;\n              local_32 = bVar1;\n              if ((*(byte *)(param_1 + 10) & 0xf) != 1) {\n                local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        local_32 = bVar5;\n        if (bVar9 != 4) goto LAB_0004c4d9;\n      }\n      goto LAB_0004c25c;\n    }\n    iVar2 = *(int *)(DAT_0033f2f0 + 8);\n    if (iVar2 == 0) goto LAB_0004c60b;\n    local_32 = *(byte *)(iVar2 + 0x1a25);\n    if ((local_32 == 0) && (local_32 = *(byte *)(iVar2 + 0x2931), local_32 == 0)) goto LAB_0004c450;\n  }\n  else {\n    local_32 = 0;\nLAB_0004c25c:\n    local_38 = uVar14 & 1;\n    if (local_38 == 0) goto LAB_0004c268;\n  }" (if "if") (parenthesized_expression "(*(char *)(DAT_0033f2f0 + 0x11) == '\0')" (( "(") (binary_expression "*(char *)(DAT_0033f2f0 + 0x11) == '\0'" (pointer_expression "*(char *)(DAT_0033f2f0 + 0x11)" (* "*") (cast_expression "(char *)(DAT_0033f2f0 + 0x11)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0033f2f0 + 0x11)" (( "(") (binary_expression "DAT_0033f2f0 + 0x11" (identifier "DAT_0033f2f0") (+ "+") (number_literal "0x11")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    bVar9 = *(byte *)((int)param_1 + 0x2a) & 7;\n    bVar1 = 0;\n    iVar8 = DAT_0033f2f0;\n    if ((*(byte *)((int)param_1 + 0x2a) & 7) == 0) {\n      local_30 = param_1[3];\n      bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;\n      if ((local_30 == 0) && (bVar10 != 0)) goto LAB_0004c222;\nLAB_0004c306:\n      if (local_30 != 0xfff1 || bVar10 != 0) goto LAB_0004c320;\nLAB_0004c490:\n      local_32 = 0;\n      goto LAB_0004c25c;\n    }\n    if (bVar9 == 4) {\nLAB_0004c222:\n      if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_0004c60b;\n      if (*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x1a25) == '\0') goto LAB_0004c490;\n      if (bVar9 == 0) {\n        local_30 = param_1[3];\n        bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;\n        goto LAB_0004c306;\n      }\n    }\n    local_32 = bVar1;\n    if (bVar9 == 3) goto LAB_0004c25c;\nLAB_0004c320:\n    local_38 = uVar14 & 1;\n    if (local_38 == 0) {\nLAB_0004c450:\n      if (((uVar14 & 8) != 0) && (param_1[6] != -1)) {\n        return (uint)bVar5;\n      }\n      if ((uVar14 & 0x10) == 0) {\n        iVar2 = *(int *)(DAT_0033f2f0 + 8);\n        if (iVar2 == 0) goto LAB_0004c60b;\n        if (((*(char *)(iVar2 + 0x1a25) == '\0') && (*(char *)(iVar2 + 0x2931) == '\0')) &&\n           (param_1[6] != -1)) goto LAB_0004c490;\n      }\n      if (bVar9 == 0) {\n        local_32 = *(byte *)(param_1[2] + 0x2c) & 1;\n        if (((*(byte *)(param_1[2] + 0x2c) & 1) == 0) &&\n           (local_32 = *(byte *)((int)param_1 + 0x2b) >> 5 & param_1[3] == 0, local_32 == 0)) {\nLAB_0004c4d9:\n          local_32 = bVar1;\n          if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)param_1 + 0x2b) & 0x10) == 0)) {\n            iVar8 = *(int *)(DAT_0033f2f0 + 8);\n            if (iVar8 == 0) goto LAB_0004c60b;\n            bVar1 = *(byte *)(iVar8 + 0x1a25);\n            local_32 = bVar1;\n            if ((bVar1 != 0) &&\n               ((local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0')))) {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              iVar8 = DAT_0033f2f0;\n              if (iVar2 == 0) goto LAB_0004c60b;\n              if (*(char *)(iVar2 + 0x825) != '\0') goto LAB_0004c490;\n              local_32 = bVar1;\n              if ((*(byte *)(param_1 + 10) & 0xf) != 1) {\n                local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        local_32 = bVar5;\n        if (bVar9 != 4) goto LAB_0004c4d9;\n      }\n      goto LAB_0004c25c;\n    }\n    iVar2 = *(int *)(DAT_0033f2f0 + 8);\n    if (iVar2 == 0) goto LAB_0004c60b;\n    local_32 = *(byte *)(iVar2 + 0x1a25);\n    if ((local_32 == 0) && (local_32 = *(byte *)(iVar2 + 0x2931), local_32 == 0)) goto LAB_0004c450;\n  }" ({ "{") (expression_statement "bVar9 = *(byte *)((int)param_1 + 0x2a) & 7;" (assignment_expression "bVar9 = *(byte *)((int)param_1 + 0x2a) & 7" (identifier "bVar9") (= "=") (binary_expression "*(byte *)((int)param_1 + 0x2a) & 7" (pointer_expression "*(byte *)((int)param_1 + 0x2a)" (* "*") (cast_expression "(byte *)((int)param_1 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x2a)" (( "(") (binary_expression "(int)param_1 + 0x2a" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7"))) (; ";")) (expression_statement "bVar1 = 0;" (assignment_expression "bVar1 = 0" (identifier "bVar1") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar8 = DAT_0033f2f0;" (assignment_expression "iVar8 = DAT_0033f2f0" (identifier "iVar8") (= "=") (identifier "DAT_0033f2f0")) (; ";")) (if_statement "if ((*(byte *)((int)param_1 + 0x2a) & 7) == 0) {\n      local_30 = param_1[3];\n      bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;\n      if ((local_30 == 0) && (bVar10 != 0)) goto LAB_0004c222;\nLAB_0004c306:\n      if (local_30 != 0xfff1 || bVar10 != 0) goto LAB_0004c320;\nLAB_0004c490:\n      local_32 = 0;\n      goto LAB_0004c25c;\n    }" (if "if") (parenthesized_expression "((*(byte *)((int)param_1 + 0x2a) & 7) == 0)" (( "(") (binary_expression "(*(byte *)((int)param_1 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)((int)param_1 + 0x2a) & 7)" (( "(") (binary_expression "*(byte *)((int)param_1 + 0x2a) & 7" (pointer_expression "*(byte *)((int)param_1 + 0x2a)" (* "*") (cast_expression "(byte *)((int)param_1 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x2a)" (( "(") (binary_expression "(int)param_1 + 0x2a" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      local_30 = param_1[3];\n      bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;\n      if ((local_30 == 0) && (bVar10 != 0)) goto LAB_0004c222;\nLAB_0004c306:\n      if (local_30 != 0xfff1 || bVar10 != 0) goto LAB_0004c320;\nLAB_0004c490:\n      local_32 = 0;\n      goto LAB_0004c25c;\n    }" ({ "{") (expression_statement "local_30 = param_1[3];" (assignment_expression "local_30 = param_1[3]" (identifier "local_30") (= "=") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;" (assignment_expression "bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1" (identifier "bVar10") (= "=") (binary_expression "*(byte *)((int)param_1 + 0x2b) >> 5 & 1" (binary_expression "*(byte *)((int)param_1 + 0x2b) >> 5" (pointer_expression "*(byte *)((int)param_1 + 0x2b)" (* "*") (cast_expression "(byte *)((int)param_1 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x2b)" (( "(") (binary_expression "(int)param_1 + 0x2b" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x2b")) () ")")))) (>> ">>") (number_literal "5")) (& "&") (number_literal "1"))) (; ";")) (if_statement "if ((local_30 == 0) && (bVar10 != 0)) goto LAB_0004c222;" (if "if") (parenthesized_expression "((local_30 == 0) && (bVar10 != 0))" (( "(") (binary_expression "(local_30 == 0) && (bVar10 != 0)" (parenthesized_expression "(local_30 == 0)" (( "(") (binary_expression "local_30 == 0" (identifier "local_30") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(bVar10 != 0)" (( "(") (binary_expression "bVar10 != 0" (identifier "bVar10") (!= "!=") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_0004c222;" (goto "goto") (statement_identifier "LAB_0004c222") (; ";"))) (labeled_statement "LAB_0004c306:\n      if (local_30 != 0xfff1 || bVar10 != 0) goto LAB_0004c320;" (statement_identifier "LAB_0004c306") (: ":") (if_statement "if (local_30 != 0xfff1 || bVar10 != 0) goto LAB_0004c320;" (if "if") (parenthesized_expression "(local_30 != 0xfff1 || bVar10 != 0)" (( "(") (binary_expression "local_30 != 0xfff1 || bVar10 != 0" (binary_expression "local_30 != 0xfff1" (identifier "local_30") (!= "!=") (number_literal "0xfff1")) (|| "||") (binary_expression "bVar10 != 0" (identifier "bVar10") (!= "!=") (number_literal "0"))) () ")")) (goto_statement "goto LAB_0004c320;" (goto "goto") (statement_identifier "LAB_0004c320") (; ";")))) (labeled_statement "LAB_0004c490:\n      local_32 = 0;" (statement_identifier "LAB_0004c490") (: ":") (expression_statement "local_32 = 0;" (assignment_expression "local_32 = 0" (identifier "local_32") (= "=") (number_literal "0")) (; ";"))) (goto_statement "goto LAB_0004c25c;" (goto "goto") (statement_identifier "LAB_0004c25c") (; ";")) (} "}"))) (if_statement "if (bVar9 == 4) {\nLAB_0004c222:\n      if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_0004c60b;\n      if (*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x1a25) == '\0') goto LAB_0004c490;\n      if (bVar9 == 0) {\n        local_30 = param_1[3];\n        bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;\n        goto LAB_0004c306;\n      }\n    }" (if "if") (parenthesized_expression "(bVar9 == 4)" (( "(") (binary_expression "bVar9 == 4" (identifier "bVar9") (== "==") (number_literal "4")) () ")")) (compound_statement "{\nLAB_0004c222:\n      if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_0004c60b;\n      if (*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x1a25) == '\0') goto LAB_0004c490;\n      if (bVar9 == 0) {\n        local_30 = param_1[3];\n        bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;\n        goto LAB_0004c306;\n      }\n    }" ({ "{") (labeled_statement "LAB_0004c222:\n      if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_0004c60b;" (statement_identifier "LAB_0004c222") (: ":") (if_statement "if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_0004c60b;" (if "if") (parenthesized_expression "(*(int *)(DAT_0033f2f0 + 8) == 0)" (( "(") (binary_expression "*(int *)(DAT_0033f2f0 + 8) == 0" (pointer_expression "*(int *)(DAT_0033f2f0 + 8)" (* "*") (cast_expression "(int *)(DAT_0033f2f0 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0033f2f0 + 8)" (( "(") (binary_expression "DAT_0033f2f0 + 8" (identifier "DAT_0033f2f0") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004c60b;" (goto "goto") (statement_identifier "LAB_0004c60b") (; ";")))) (if_statement "if (*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x1a25) == '\0') goto LAB_0004c490;" (if "if") (parenthesized_expression "(*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x1a25) == '\0')" (( "(") (binary_expression "*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x1a25) == '\0'" (pointer_expression "*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x1a25)" (* "*") (cast_expression "(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x1a25)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_0033f2f0 + 8) + 0x1a25)" (( "(") (binary_expression "*(int *)(DAT_0033f2f0 + 8) + 0x1a25" (pointer_expression "*(int *)(DAT_0033f2f0 + 8)" (* "*") (cast_expression "(int *)(DAT_0033f2f0 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0033f2f0 + 8)" (( "(") (binary_expression "DAT_0033f2f0 + 8" (identifier "DAT_0033f2f0") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x1a25")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0004c490;" (goto "goto") (statement_identifier "LAB_0004c490") (; ";"))) (if_statement "if (bVar9 == 0) {\n        local_30 = param_1[3];\n        bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;\n        goto LAB_0004c306;\n      }" (if "if") (parenthesized_expression "(bVar9 == 0)" (( "(") (binary_expression "bVar9 == 0" (identifier "bVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        local_30 = param_1[3];\n        bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;\n        goto LAB_0004c306;\n      }" ({ "{") (expression_statement "local_30 = param_1[3];" (assignment_expression "local_30 = param_1[3]" (identifier "local_30") (= "=") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;" (assignment_expression "bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1" (identifier "bVar10") (= "=") (binary_expression "*(byte *)((int)param_1 + 0x2b) >> 5 & 1" (binary_expression "*(byte *)((int)param_1 + 0x2b) >> 5" (pointer_expression "*(byte *)((int)param_1 + 0x2b)" (* "*") (cast_expression "(byte *)((int)param_1 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x2b)" (( "(") (binary_expression "(int)param_1 + 0x2b" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x2b")) () ")")))) (>> ">>") (number_literal "5")) (& "&") (number_literal "1"))) (; ";")) (goto_statement "goto LAB_0004c306;" (goto "goto") (statement_identifier "LAB_0004c306") (; ";")) (} "}"))) (} "}"))) (expression_statement "local_32 = bVar1;" (assignment_expression "local_32 = bVar1" (identifier "local_32") (= "=") (identifier "bVar1")) (; ";")) (if_statement "if (bVar9 == 3) goto LAB_0004c25c;" (if "if") (parenthesized_expression "(bVar9 == 3)" (( "(") (binary_expression "bVar9 == 3" (identifier "bVar9") (== "==") (number_literal "3")) () ")")) (goto_statement "goto LAB_0004c25c;" (goto "goto") (statement_identifier "LAB_0004c25c") (; ";"))) (labeled_statement "LAB_0004c320:\n    local_38 = uVar14 & 1;" (statement_identifier "LAB_0004c320") (: ":") (expression_statement "local_38 = uVar14 & 1;" (assignment_expression "local_38 = uVar14 & 1" (identifier "local_38") (= "=") (binary_expression "uVar14 & 1" (identifier "uVar14") (& "&") (number_literal "1"))) (; ";"))) (if_statement "if (local_38 == 0) {\nLAB_0004c450:\n      if (((uVar14 & 8) != 0) && (param_1[6] != -1)) {\n        return (uint)bVar5;\n      }\n      if ((uVar14 & 0x10) == 0) {\n        iVar2 = *(int *)(DAT_0033f2f0 + 8);\n        if (iVar2 == 0) goto LAB_0004c60b;\n        if (((*(char *)(iVar2 + 0x1a25) == '\0') && (*(char *)(iVar2 + 0x2931) == '\0')) &&\n           (param_1[6] != -1)) goto LAB_0004c490;\n      }\n      if (bVar9 == 0) {\n        local_32 = *(byte *)(param_1[2] + 0x2c) & 1;\n        if (((*(byte *)(param_1[2] + 0x2c) & 1) == 0) &&\n           (local_32 = *(byte *)((int)param_1 + 0x2b) >> 5 & param_1[3] == 0, local_32 == 0)) {\nLAB_0004c4d9:\n          local_32 = bVar1;\n          if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)param_1 + 0x2b) & 0x10) == 0)) {\n            iVar8 = *(int *)(DAT_0033f2f0 + 8);\n            if (iVar8 == 0) goto LAB_0004c60b;\n            bVar1 = *(byte *)(iVar8 + 0x1a25);\n            local_32 = bVar1;\n            if ((bVar1 != 0) &&\n               ((local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0')))) {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              iVar8 = DAT_0033f2f0;\n              if (iVar2 == 0) goto LAB_0004c60b;\n              if (*(char *)(iVar2 + 0x825) != '\0') goto LAB_0004c490;\n              local_32 = bVar1;\n              if ((*(byte *)(param_1 + 10) & 0xf) != 1) {\n                local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        local_32 = bVar5;\n        if (bVar9 != 4) goto LAB_0004c4d9;\n      }\n      goto LAB_0004c25c;\n    }" (if "if") (parenthesized_expression "(local_38 == 0)" (( "(") (binary_expression "local_38 == 0" (identifier "local_38") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0004c450:\n      if (((uVar14 & 8) != 0) && (param_1[6] != -1)) {\n        return (uint)bVar5;\n      }\n      if ((uVar14 & 0x10) == 0) {\n        iVar2 = *(int *)(DAT_0033f2f0 + 8);\n        if (iVar2 == 0) goto LAB_0004c60b;\n        if (((*(char *)(iVar2 + 0x1a25) == '\0') && (*(char *)(iVar2 + 0x2931) == '\0')) &&\n           (param_1[6] != -1)) goto LAB_0004c490;\n      }\n      if (bVar9 == 0) {\n        local_32 = *(byte *)(param_1[2] + 0x2c) & 1;\n        if (((*(byte *)(param_1[2] + 0x2c) & 1) == 0) &&\n           (local_32 = *(byte *)((int)param_1 + 0x2b) >> 5 & param_1[3] == 0, local_32 == 0)) {\nLAB_0004c4d9:\n          local_32 = bVar1;\n          if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)param_1 + 0x2b) & 0x10) == 0)) {\n            iVar8 = *(int *)(DAT_0033f2f0 + 8);\n            if (iVar8 == 0) goto LAB_0004c60b;\n            bVar1 = *(byte *)(iVar8 + 0x1a25);\n            local_32 = bVar1;\n            if ((bVar1 != 0) &&\n               ((local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0')))) {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              iVar8 = DAT_0033f2f0;\n              if (iVar2 == 0) goto LAB_0004c60b;\n              if (*(char *)(iVar2 + 0x825) != '\0') goto LAB_0004c490;\n              local_32 = bVar1;\n              if ((*(byte *)(param_1 + 10) & 0xf) != 1) {\n                local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        local_32 = bVar5;\n        if (bVar9 != 4) goto LAB_0004c4d9;\n      }\n      goto LAB_0004c25c;\n    }" ({ "{") (labeled_statement "LAB_0004c450:\n      if (((uVar14 & 8) != 0) && (param_1[6] != -1)) {\n        return (uint)bVar5;\n      }" (statement_identifier "LAB_0004c450") (: ":") (if_statement "if (((uVar14 & 8) != 0) && (param_1[6] != -1)) {\n        return (uint)bVar5;\n      }" (if "if") (parenthesized_expression "(((uVar14 & 8) != 0) && (param_1[6] != -1))" (( "(") (binary_expression "((uVar14 & 8) != 0) && (param_1[6] != -1)" (parenthesized_expression "((uVar14 & 8) != 0)" (( "(") (binary_expression "(uVar14 & 8) != 0" (parenthesized_expression "(uVar14 & 8)" (( "(") (binary_expression "uVar14 & 8" (identifier "uVar14") (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(param_1[6] != -1)" (( "(") (binary_expression "param_1[6] != -1" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (!= "!=") (number_literal "-1")) () ")"))) () ")")) (compound_statement "{\n        return (uint)bVar5;\n      }" ({ "{") (return_statement "return (uint)bVar5;" (return "return") (cast_expression "(uint)bVar5" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar5")) (; ";")) (} "}")))) (if_statement "if ((uVar14 & 0x10) == 0) {\n        iVar2 = *(int *)(DAT_0033f2f0 + 8);\n        if (iVar2 == 0) goto LAB_0004c60b;\n        if (((*(char *)(iVar2 + 0x1a25) == '\0') && (*(char *)(iVar2 + 0x2931) == '\0')) &&\n           (param_1[6] != -1)) goto LAB_0004c490;\n      }" (if "if") (parenthesized_expression "((uVar14 & 0x10) == 0)" (( "(") (binary_expression "(uVar14 & 0x10) == 0" (parenthesized_expression "(uVar14 & 0x10)" (( "(") (binary_expression "uVar14 & 0x10" (identifier "uVar14") (& "&") (number_literal "0x10")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar2 = *(int *)(DAT_0033f2f0 + 8);\n        if (iVar2 == 0) goto LAB_0004c60b;\n        if (((*(char *)(iVar2 + 0x1a25) == '\0') && (*(char *)(iVar2 + 0x2931) == '\0')) &&\n           (param_1[6] != -1)) goto LAB_0004c490;\n      }" ({ "{") (expression_statement "iVar2 = *(int *)(DAT_0033f2f0 + 8);" (assignment_expression "iVar2 = *(int *)(DAT_0033f2f0 + 8)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(DAT_0033f2f0 + 8)" (* "*") (cast_expression "(int *)(DAT_0033f2f0 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0033f2f0 + 8)" (( "(") (binary_expression "DAT_0033f2f0 + 8" (identifier "DAT_0033f2f0") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar2 == 0) goto LAB_0004c60b;" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004c60b;" (goto "goto") (statement_identifier "LAB_0004c60b") (; ";"))) (if_statement "if (((*(char *)(iVar2 + 0x1a25) == '\0') && (*(char *)(iVar2 + 0x2931) == '\0')) &&\n           (param_1[6] != -1)) goto LAB_0004c490;" (if "if") (parenthesized_expression "(((*(char *)(iVar2 + 0x1a25) == '\0') && (*(char *)(iVar2 + 0x2931) == '\0')) &&\n           (param_1[6] != -1))" (( "(") (binary_expression "((*(char *)(iVar2 + 0x1a25) == '\0') && (*(char *)(iVar2 + 0x2931) == '\0')) &&\n           (param_1[6] != -1)" (parenthesized_expression "((*(char *)(iVar2 + 0x1a25) == '\0') && (*(char *)(iVar2 + 0x2931) == '\0'))" (( "(") (binary_expression "(*(char *)(iVar2 + 0x1a25) == '\0') && (*(char *)(iVar2 + 0x2931) == '\0')" (parenthesized_expression "(*(char *)(iVar2 + 0x1a25) == '\0')" (( "(") (binary_expression "*(char *)(iVar2 + 0x1a25) == '\0'" (pointer_expression "*(char *)(iVar2 + 0x1a25)" (* "*") (cast_expression "(char *)(iVar2 + 0x1a25)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x1a25)" (( "(") (binary_expression "iVar2 + 0x1a25" (identifier "iVar2") (+ "+") (number_literal "0x1a25")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(iVar2 + 0x2931) == '\0')" (( "(") (binary_expression "*(char *)(iVar2 + 0x2931) == '\0'" (pointer_expression "*(char *)(iVar2 + 0x2931)" (* "*") (cast_expression "(char *)(iVar2 + 0x2931)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x2931)" (( "(") (binary_expression "iVar2 + 0x2931" (identifier "iVar2") (+ "+") (number_literal "0x2931")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(param_1[6] != -1)" (( "(") (binary_expression "param_1[6] != -1" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (!= "!=") (number_literal "-1")) () ")"))) () ")")) (goto_statement "goto LAB_0004c490;" (goto "goto") (statement_identifier "LAB_0004c490") (; ";"))) (} "}"))) (if_statement "if (bVar9 == 0) {\n        local_32 = *(byte *)(param_1[2] + 0x2c) & 1;\n        if (((*(byte *)(param_1[2] + 0x2c) & 1) == 0) &&\n           (local_32 = *(byte *)((int)param_1 + 0x2b) >> 5 & param_1[3] == 0, local_32 == 0)) {\nLAB_0004c4d9:\n          local_32 = bVar1;\n          if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)param_1 + 0x2b) & 0x10) == 0)) {\n            iVar8 = *(int *)(DAT_0033f2f0 + 8);\n            if (iVar8 == 0) goto LAB_0004c60b;\n            bVar1 = *(byte *)(iVar8 + 0x1a25);\n            local_32 = bVar1;\n            if ((bVar1 != 0) &&\n               ((local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0')))) {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              iVar8 = DAT_0033f2f0;\n              if (iVar2 == 0) goto LAB_0004c60b;\n              if (*(char *)(iVar2 + 0x825) != '\0') goto LAB_0004c490;\n              local_32 = bVar1;\n              if ((*(byte *)(param_1 + 10) & 0xf) != 1) {\n                local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;\n              }\n            }\n          }\n        }\n      }\n      else {\n        local_32 = bVar5;\n        if (bVar9 != 4) goto LAB_0004c4d9;\n      }" (if "if") (parenthesized_expression "(bVar9 == 0)" (( "(") (binary_expression "bVar9 == 0" (identifier "bVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        local_32 = *(byte *)(param_1[2] + 0x2c) & 1;\n        if (((*(byte *)(param_1[2] + 0x2c) & 1) == 0) &&\n           (local_32 = *(byte *)((int)param_1 + 0x2b) >> 5 & param_1[3] == 0, local_32 == 0)) {\nLAB_0004c4d9:\n          local_32 = bVar1;\n          if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)param_1 + 0x2b) & 0x10) == 0)) {\n            iVar8 = *(int *)(DAT_0033f2f0 + 8);\n            if (iVar8 == 0) goto LAB_0004c60b;\n            bVar1 = *(byte *)(iVar8 + 0x1a25);\n            local_32 = bVar1;\n            if ((bVar1 != 0) &&\n               ((local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0')))) {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              iVar8 = DAT_0033f2f0;\n              if (iVar2 == 0) goto LAB_0004c60b;\n              if (*(char *)(iVar2 + 0x825) != '\0') goto LAB_0004c490;\n              local_32 = bVar1;\n              if ((*(byte *)(param_1 + 10) & 0xf) != 1) {\n                local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;\n              }\n            }\n          }\n        }\n      }" ({ "{") (expression_statement "local_32 = *(byte *)(param_1[2] + 0x2c) & 1;" (assignment_expression "local_32 = *(byte *)(param_1[2] + 0x2c) & 1" (identifier "local_32") (= "=") (binary_expression "*(byte *)(param_1[2] + 0x2c) & 1" (pointer_expression "*(byte *)(param_1[2] + 0x2c)" (* "*") (cast_expression "(byte *)(param_1[2] + 0x2c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[2] + 0x2c)" (( "(") (binary_expression "param_1[2] + 0x2c" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "0x2c")) () ")")))) (& "&") (number_literal "1"))) (; ";")) (if_statement "if (((*(byte *)(param_1[2] + 0x2c) & 1) == 0) &&\n           (local_32 = *(byte *)((int)param_1 + 0x2b) >> 5 & param_1[3] == 0, local_32 == 0)) {\nLAB_0004c4d9:\n          local_32 = bVar1;\n          if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)param_1 + 0x2b) & 0x10) == 0)) {\n            iVar8 = *(int *)(DAT_0033f2f0 + 8);\n            if (iVar8 == 0) goto LAB_0004c60b;\n            bVar1 = *(byte *)(iVar8 + 0x1a25);\n            local_32 = bVar1;\n            if ((bVar1 != 0) &&\n               ((local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0')))) {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              iVar8 = DAT_0033f2f0;\n              if (iVar2 == 0) goto LAB_0004c60b;\n              if (*(char *)(iVar2 + 0x825) != '\0') goto LAB_0004c490;\n              local_32 = bVar1;\n              if ((*(byte *)(param_1 + 10) & 0xf) != 1) {\n                local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;\n              }\n            }\n          }\n        }" (if "if") (parenthesized_expression "(((*(byte *)(param_1[2] + 0x2c) & 1) == 0) &&\n           (local_32 = *(byte *)((int)param_1 + 0x2b) >> 5 & param_1[3] == 0, local_32 == 0))" (( "(") (binary_expression "((*(byte *)(param_1[2] + 0x2c) & 1) == 0) &&\n           (local_32 = *(byte *)((int)param_1 + 0x2b) >> 5 & param_1[3] == 0, local_32 == 0)" (parenthesized_expression "((*(byte *)(param_1[2] + 0x2c) & 1) == 0)" (( "(") (binary_expression "(*(byte *)(param_1[2] + 0x2c) & 1) == 0" (parenthesized_expression "(*(byte *)(param_1[2] + 0x2c) & 1)" (( "(") (binary_expression "*(byte *)(param_1[2] + 0x2c) & 1" (pointer_expression "*(byte *)(param_1[2] + 0x2c)" (* "*") (cast_expression "(byte *)(param_1[2] + 0x2c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[2] + 0x2c)" (( "(") (binary_expression "param_1[2] + 0x2c" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "0x2c")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(local_32 = *(byte *)((int)param_1 + 0x2b) >> 5 & param_1[3] == 0, local_32 == 0)" (( "(") (comma_expression "local_32 = *(byte *)((int)param_1 + 0x2b) >> 5 & param_1[3] == 0, local_32 == 0" (assignment_expression "local_32 = *(byte *)((int)param_1 + 0x2b) >> 5 & param_1[3] == 0" (identifier "local_32") (= "=") (binary_expression "*(byte *)((int)param_1 + 0x2b) >> 5 & param_1[3] == 0" (binary_expression "*(byte *)((int)param_1 + 0x2b) >> 5" (pointer_expression "*(byte *)((int)param_1 + 0x2b)" (* "*") (cast_expression "(byte *)((int)param_1 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x2b)" (( "(") (binary_expression "(int)param_1 + 0x2b" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x2b")) () ")")))) (>> ">>") (number_literal "5")) (& "&") (binary_expression "param_1[3] == 0" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (== "==") (number_literal "0")))) (, ",") (binary_expression "local_32 == 0" (identifier "local_32") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\nLAB_0004c4d9:\n          local_32 = bVar1;\n          if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)param_1 + 0x2b) & 0x10) == 0)) {\n            iVar8 = *(int *)(DAT_0033f2f0 + 8);\n            if (iVar8 == 0) goto LAB_0004c60b;\n            bVar1 = *(byte *)(iVar8 + 0x1a25);\n            local_32 = bVar1;\n            if ((bVar1 != 0) &&\n               ((local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0')))) {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              iVar8 = DAT_0033f2f0;\n              if (iVar2 == 0) goto LAB_0004c60b;\n              if (*(char *)(iVar2 + 0x825) != '\0') goto LAB_0004c490;\n              local_32 = bVar1;\n              if ((*(byte *)(param_1 + 10) & 0xf) != 1) {\n                local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;\n              }\n            }\n          }\n        }" ({ "{") (labeled_statement "LAB_0004c4d9:\n          local_32 = bVar1;" (statement_identifier "LAB_0004c4d9") (: ":") (expression_statement "local_32 = bVar1;" (assignment_expression "local_32 = bVar1" (identifier "local_32") (= "=") (identifier "bVar1")) (; ";"))) (if_statement "if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)param_1 + 0x2b) & 0x10) == 0)) {\n            iVar8 = *(int *)(DAT_0033f2f0 + 8);\n            if (iVar8 == 0) goto LAB_0004c60b;\n            bVar1 = *(byte *)(iVar8 + 0x1a25);\n            local_32 = bVar1;\n            if ((bVar1 != 0) &&\n               ((local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0')))) {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              iVar8 = DAT_0033f2f0;\n              if (iVar2 == 0) goto LAB_0004c60b;\n              if (*(char *)(iVar2 + 0x825) != '\0') goto LAB_0004c490;\n              local_32 = bVar1;\n              if ((*(byte *)(param_1 + 10) & 0xf) != 1) {\n                local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;\n              }\n            }\n          }" (if "if") (parenthesized_expression "(((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)param_1 + 0x2b) & 0x10) == 0))" (( "(") (binary_expression "((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n             ((*(byte *)((int)param_1 + 0x2b) & 0x10) == 0)" (parenthesized_expression "((*(byte *)((int)param_1 + 0x29) & 3) == 0)" (( "(") (binary_expression "(*(byte *)((int)param_1 + 0x29) & 3) == 0" (parenthesized_expression "(*(byte *)((int)param_1 + 0x29) & 3)" (( "(") (binary_expression "*(byte *)((int)param_1 + 0x29) & 3" (pointer_expression "*(byte *)((int)param_1 + 0x29)" (* "*") (cast_expression "(byte *)((int)param_1 + 0x29)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x29)" (( "(") (binary_expression "(int)param_1 + 0x29" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x29")) () ")")))) (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)((int)param_1 + 0x2b) & 0x10) == 0)" (( "(") (binary_expression "(*(byte *)((int)param_1 + 0x2b) & 0x10) == 0" (parenthesized_expression "(*(byte *)((int)param_1 + 0x2b) & 0x10)" (( "(") (binary_expression "*(byte *)((int)param_1 + 0x2b) & 0x10" (pointer_expression "*(byte *)((int)param_1 + 0x2b)" (* "*") (cast_expression "(byte *)((int)param_1 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x2b)" (( "(") (binary_expression "(int)param_1 + 0x2b" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x2b")) () ")")))) (& "&") (number_literal "0x10")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n            iVar8 = *(int *)(DAT_0033f2f0 + 8);\n            if (iVar8 == 0) goto LAB_0004c60b;\n            bVar1 = *(byte *)(iVar8 + 0x1a25);\n            local_32 = bVar1;\n            if ((bVar1 != 0) &&\n               ((local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0')))) {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              iVar8 = DAT_0033f2f0;\n              if (iVar2 == 0) goto LAB_0004c60b;\n              if (*(char *)(iVar2 + 0x825) != '\0') goto LAB_0004c490;\n              local_32 = bVar1;\n              if ((*(byte *)(param_1 + 10) & 0xf) != 1) {\n                local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;\n              }\n            }\n          }" ({ "{") (expression_statement "iVar8 = *(int *)(DAT_0033f2f0 + 8);" (assignment_expression "iVar8 = *(int *)(DAT_0033f2f0 + 8)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(DAT_0033f2f0 + 8)" (* "*") (cast_expression "(int *)(DAT_0033f2f0 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0033f2f0 + 8)" (( "(") (binary_expression "DAT_0033f2f0 + 8" (identifier "DAT_0033f2f0") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar8 == 0) goto LAB_0004c60b;" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004c60b;" (goto "goto") (statement_identifier "LAB_0004c60b") (; ";"))) (expression_statement "bVar1 = *(byte *)(iVar8 + 0x1a25);" (assignment_expression "bVar1 = *(byte *)(iVar8 + 0x1a25)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)(iVar8 + 0x1a25)" (* "*") (cast_expression "(byte *)(iVar8 + 0x1a25)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x1a25)" (( "(") (binary_expression "iVar8 + 0x1a25" (identifier "iVar8") (+ "+") (number_literal "0x1a25")) () ")"))))) (; ";")) (expression_statement "local_32 = bVar1;" (assignment_expression "local_32 = bVar1" (identifier "local_32") (= "=") (identifier "bVar1")) (; ";")) (if_statement "if ((bVar1 != 0) &&\n               ((local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0')))) {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              iVar8 = DAT_0033f2f0;\n              if (iVar2 == 0) goto LAB_0004c60b;\n              if (*(char *)(iVar2 + 0x825) != '\0') goto LAB_0004c490;\n              local_32 = bVar1;\n              if ((*(byte *)(param_1 + 10) & 0xf) != 1) {\n                local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;\n              }\n            }" (if "if") (parenthesized_expression "((bVar1 != 0) &&\n               ((local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0'))))" (( "(") (binary_expression "(bVar1 != 0) &&\n               ((local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0')))" (parenthesized_expression "(bVar1 != 0)" (( "(") (binary_expression "bVar1 != 0" (identifier "bVar1") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0')))" (( "(") (parenthesized_expression "(local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0'))" (( "(") (comma_expression "local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||\n                (local_1e != '\0')" (assignment_expression "local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e)" (identifier "local_32") (= "=") (call_expression "FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e)" (identifier "FUN_001453a0") (argument_list "(iVar8 + 0x59a8,*param_1,0,&local_1e)" (( "(") (binary_expression "iVar8 + 0x59a8" (identifier "iVar8") (+ "+") (number_literal "0x59a8")) (, ",") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (number_literal "0") (, ",") (pointer_expression "&local_1e" (& "&") (identifier "local_1e")) () ")")))) (, ",") (binary_expression "local_32 == 0 ||\n                (local_1e != '\0')" (binary_expression "local_32 == 0" (identifier "local_32") (== "==") (number_literal "0")) (|| "||") (parenthesized_expression "(local_1e != '\0')" (( "(") (binary_expression "local_1e != '\0'" (identifier "local_1e") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              iVar8 = DAT_0033f2f0;\n              if (iVar2 == 0) goto LAB_0004c60b;\n              if (*(char *)(iVar2 + 0x825) != '\0') goto LAB_0004c490;\n              local_32 = bVar1;\n              if ((*(byte *)(param_1 + 10) & 0xf) != 1) {\n                local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;\n              }\n            }" ({ "{") (expression_statement "iVar2 = *(int *)(DAT_0033f2f0 + 8);" (assignment_expression "iVar2 = *(int *)(DAT_0033f2f0 + 8)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(DAT_0033f2f0 + 8)" (* "*") (cast_expression "(int *)(DAT_0033f2f0 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0033f2f0 + 8)" (( "(") (binary_expression "DAT_0033f2f0 + 8" (identifier "DAT_0033f2f0") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "iVar8 = DAT_0033f2f0;" (assignment_expression "iVar8 = DAT_0033f2f0" (identifier "iVar8") (= "=") (identifier "DAT_0033f2f0")) (; ";")) (if_statement "if (iVar2 == 0) goto LAB_0004c60b;" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004c60b;" (goto "goto") (statement_identifier "LAB_0004c60b") (; ";"))) (if_statement "if (*(char *)(iVar2 + 0x825) != '\0') goto LAB_0004c490;" (if "if") (parenthesized_expression "(*(char *)(iVar2 + 0x825) != '\0')" (( "(") (binary_expression "*(char *)(iVar2 + 0x825) != '\0'" (pointer_expression "*(char *)(iVar2 + 0x825)" (* "*") (cast_expression "(char *)(iVar2 + 0x825)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x825)" (( "(") (binary_expression "iVar2 + 0x825" (identifier "iVar2") (+ "+") (number_literal "0x825")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0004c490;" (goto "goto") (statement_identifier "LAB_0004c490") (; ";"))) (expression_statement "local_32 = bVar1;" (assignment_expression "local_32 = bVar1" (identifier "local_32") (= "=") (identifier "bVar1")) (; ";")) (if_statement "if ((*(byte *)(param_1 + 10) & 0xf) != 1) {\n                local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;\n              }" (if "if") (parenthesized_expression "((*(byte *)(param_1 + 10) & 0xf) != 1)" (( "(") (binary_expression "(*(byte *)(param_1 + 10) & 0xf) != 1" (parenthesized_expression "(*(byte *)(param_1 + 10) & 0xf)" (( "(") (binary_expression "*(byte *)(param_1 + 10) & 0xf" (pointer_expression "*(byte *)(param_1 + 10)" (* "*") (cast_expression "(byte *)(param_1 + 10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 10)" (( "(") (binary_expression "param_1 + 10" (identifier "param_1") (+ "+") (number_literal "10")) () ")")))) (& "&") (number_literal "0xf")) () ")")) (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n                local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;\n              }" ({ "{") (expression_statement "local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;" (assignment_expression "local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1" (identifier "local_32") (= "=") (binary_expression "*(byte *)(iVar2 + 0x8a1) ^ 1" (pointer_expression "*(byte *)(iVar2 + 0x8a1)" (* "*") (cast_expression "(byte *)(iVar2 + 0x8a1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x8a1)" (( "(") (binary_expression "iVar2 + 0x8a1" (identifier "iVar2") (+ "+") (number_literal "0x8a1")) () ")")))) (^ "^") (number_literal "1"))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n        local_32 = bVar5;\n        if (bVar9 != 4) goto LAB_0004c4d9;\n      }" (else "else") (compound_statement "{\n        local_32 = bVar5;\n        if (bVar9 != 4) goto LAB_0004c4d9;\n      }" ({ "{") (expression_statement "local_32 = bVar5;" (assignment_expression "local_32 = bVar5" (identifier "local_32") (= "=") (identifier "bVar5")) (; ";")) (if_statement "if (bVar9 != 4) goto LAB_0004c4d9;" (if "if") (parenthesized_expression "(bVar9 != 4)" (( "(") (binary_expression "bVar9 != 4" (identifier "bVar9") (!= "!=") (number_literal "4")) () ")")) (goto_statement "goto LAB_0004c4d9;" (goto "goto") (statement_identifier "LAB_0004c4d9") (; ";"))) (} "}")))) (goto_statement "goto LAB_0004c25c;" (goto "goto") (statement_identifier "LAB_0004c25c") (; ";")) (} "}"))) (expression_statement "iVar2 = *(int *)(DAT_0033f2f0 + 8);" (assignment_expression "iVar2 = *(int *)(DAT_0033f2f0 + 8)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(DAT_0033f2f0 + 8)" (* "*") (cast_expression "(int *)(DAT_0033f2f0 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0033f2f0 + 8)" (( "(") (binary_expression "DAT_0033f2f0 + 8" (identifier "DAT_0033f2f0") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar2 == 0) goto LAB_0004c60b;" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004c60b;" (goto "goto") (statement_identifier "LAB_0004c60b") (; ";"))) (expression_statement "local_32 = *(byte *)(iVar2 + 0x1a25);" (assignment_expression "local_32 = *(byte *)(iVar2 + 0x1a25)" (identifier "local_32") (= "=") (pointer_expression "*(byte *)(iVar2 + 0x1a25)" (* "*") (cast_expression "(byte *)(iVar2 + 0x1a25)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x1a25)" (( "(") (binary_expression "iVar2 + 0x1a25" (identifier "iVar2") (+ "+") (number_literal "0x1a25")) () ")"))))) (; ";")) (if_statement "if ((local_32 == 0) && (local_32 = *(byte *)(iVar2 + 0x2931), local_32 == 0)) goto LAB_0004c450;" (if "if") (parenthesized_expression "((local_32 == 0) && (local_32 = *(byte *)(iVar2 + 0x2931), local_32 == 0))" (( "(") (binary_expression "(local_32 == 0) && (local_32 = *(byte *)(iVar2 + 0x2931), local_32 == 0)" (parenthesized_expression "(local_32 == 0)" (( "(") (binary_expression "local_32 == 0" (identifier "local_32") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(local_32 = *(byte *)(iVar2 + 0x2931), local_32 == 0)" (( "(") (comma_expression "local_32 = *(byte *)(iVar2 + 0x2931), local_32 == 0" (assignment_expression "local_32 = *(byte *)(iVar2 + 0x2931)" (identifier "local_32") (= "=") (pointer_expression "*(byte *)(iVar2 + 0x2931)" (* "*") (cast_expression "(byte *)(iVar2 + 0x2931)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x2931)" (( "(") (binary_expression "iVar2 + 0x2931" (identifier "iVar2") (+ "+") (number_literal "0x2931")) () ")"))))) (, ",") (binary_expression "local_32 == 0" (identifier "local_32") (== "==") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_0004c450;" (goto "goto") (statement_identifier "LAB_0004c450") (; ";"))) (} "}")) (else_clause "else {\n    local_32 = 0;\nLAB_0004c25c:\n    local_38 = uVar14 & 1;\n    if (local_38 == 0) goto LAB_0004c268;\n  }" (else "else") (compound_statement "{\n    local_32 = 0;\nLAB_0004c25c:\n    local_38 = uVar14 & 1;\n    if (local_38 == 0) goto LAB_0004c268;\n  }" ({ "{") (expression_statement "local_32 = 0;" (assignment_expression "local_32 = 0" (identifier "local_32") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0004c25c:\n    local_38 = uVar14 & 1;" (statement_identifier "LAB_0004c25c") (: ":") (expression_statement "local_38 = uVar14 & 1;" (assignment_expression "local_38 = uVar14 & 1" (identifier "local_38") (= "=") (binary_expression "uVar14 & 1" (identifier "uVar14") (& "&") (number_literal "1"))) (; ";"))) (if_statement "if (local_38 == 0) goto LAB_0004c268;" (if "if") (parenthesized_expression "(local_38 == 0)" (( "(") (binary_expression "local_38 == 0" (identifier "local_38") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004c268;" (goto "goto") (statement_identifier "LAB_0004c268") (; ";"))) (} "}")))) (expression_statement "uVar11 = (uint)bVar5;" (assignment_expression "uVar11 = (uint)bVar5" (identifier "uVar11") (= "=") (cast_expression "(uint)bVar5" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar5"))) (; ";")) (expression_statement "uVar7 = uVar11;" (assignment_expression "uVar7 = uVar11" (identifier "uVar7") (= "=") (identifier "uVar11")) (; ";")) (if_statement "if (((uVar14 & 8) == 0) || (param_1[6] == -1)) {\n    if ((*(byte *)((int)param_1 + 0x2a) & 7) == 0) {\n      if (((*(byte *)(param_1[2] + 0x2c) & 1) != 0) ||\n         ((param_1[3] == 0 && ((*(byte *)((int)param_1 + 0x2b) & 0x20) != 0)))) goto LAB_0004c268;\n    }\n    else if ((*(byte *)((int)param_1 + 0x2a) & 7) == 4) goto LAB_0004c268;\n    if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n       (bVar5 = *(byte *)((int)param_1 + 0x2b) >> 4, uVar7 = bVar5 & 1, (bVar5 & 1) == 0)) {\n      iVar8 = *(int *)(DAT_0033f2f0 + 8);\n      if (iVar8 == 0) {\nLAB_0004c60b:\n                    \n        FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar8);\n      }\n      uVar7 = uVar11;\n      if (*(char *)(iVar8 + 0x1a25) != '\0') {\n        cVar6 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,local_1d);\n        if ((cVar6 != '\0') && (local_1d[0] == '\0')) {\nLAB_0004c268:\n          return local_32 ^ 1;\n        }\n        iVar8 = *(int *)(DAT_0033f2f0 + 8);\n        if (iVar8 == 0) goto LAB_0004c60b;\n        uVar7 = (uint)*(byte *)(iVar8 + 0x825);\n        if ((*(byte *)(iVar8 + 0x825) == 0) &&\n           (uVar7 = local_32 ^ 1, (*(byte *)(param_1 + 10) & 0xf) != 1)) {\n          uVar7 = (uint)(byte)((byte)uVar7 | *(byte *)(iVar8 + 0x8a1));\n        }\n      }\n    }\n  }" (if "if") (parenthesized_expression "(((uVar14 & 8) == 0) || (param_1[6] == -1))" (( "(") (binary_expression "((uVar14 & 8) == 0) || (param_1[6] == -1)" (parenthesized_expression "((uVar14 & 8) == 0)" (( "(") (binary_expression "(uVar14 & 8) == 0" (parenthesized_expression "(uVar14 & 8)" (( "(") (binary_expression "uVar14 & 8" (identifier "uVar14") (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(param_1[6] == -1)" (( "(") (binary_expression "param_1[6] == -1" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (== "==") (number_literal "-1")) () ")"))) () ")")) (compound_statement "{\n    if ((*(byte *)((int)param_1 + 0x2a) & 7) == 0) {\n      if (((*(byte *)(param_1[2] + 0x2c) & 1) != 0) ||\n         ((param_1[3] == 0 && ((*(byte *)((int)param_1 + 0x2b) & 0x20) != 0)))) goto LAB_0004c268;\n    }\n    else if ((*(byte *)((int)param_1 + 0x2a) & 7) == 4) goto LAB_0004c268;\n    if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n       (bVar5 = *(byte *)((int)param_1 + 0x2b) >> 4, uVar7 = bVar5 & 1, (bVar5 & 1) == 0)) {\n      iVar8 = *(int *)(DAT_0033f2f0 + 8);\n      if (iVar8 == 0) {\nLAB_0004c60b:\n                    \n        FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar8);\n      }\n      uVar7 = uVar11;\n      if (*(char *)(iVar8 + 0x1a25) != '\0') {\n        cVar6 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,local_1d);\n        if ((cVar6 != '\0') && (local_1d[0] == '\0')) {\nLAB_0004c268:\n          return local_32 ^ 1;\n        }\n        iVar8 = *(int *)(DAT_0033f2f0 + 8);\n        if (iVar8 == 0) goto LAB_0004c60b;\n        uVar7 = (uint)*(byte *)(iVar8 + 0x825);\n        if ((*(byte *)(iVar8 + 0x825) == 0) &&\n           (uVar7 = local_32 ^ 1, (*(byte *)(param_1 + 10) & 0xf) != 1)) {\n          uVar7 = (uint)(byte)((byte)uVar7 | *(byte *)(iVar8 + 0x8a1));\n        }\n      }\n    }\n  }" ({ "{") (if_statement "if ((*(byte *)((int)param_1 + 0x2a) & 7) == 0) {\n      if (((*(byte *)(param_1[2] + 0x2c) & 1) != 0) ||\n         ((param_1[3] == 0 && ((*(byte *)((int)param_1 + 0x2b) & 0x20) != 0)))) goto LAB_0004c268;\n    }\n    else if ((*(byte *)((int)param_1 + 0x2a) & 7) == 4) goto LAB_0004c268;" (if "if") (parenthesized_expression "((*(byte *)((int)param_1 + 0x2a) & 7) == 0)" (( "(") (binary_expression "(*(byte *)((int)param_1 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)((int)param_1 + 0x2a) & 7)" (( "(") (binary_expression "*(byte *)((int)param_1 + 0x2a) & 7" (pointer_expression "*(byte *)((int)param_1 + 0x2a)" (* "*") (cast_expression "(byte *)((int)param_1 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x2a)" (( "(") (binary_expression "(int)param_1 + 0x2a" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (((*(byte *)(param_1[2] + 0x2c) & 1) != 0) ||\n         ((param_1[3] == 0 && ((*(byte *)((int)param_1 + 0x2b) & 0x20) != 0)))) goto LAB_0004c268;\n    }" ({ "{") (if_statement "if (((*(byte *)(param_1[2] + 0x2c) & 1) != 0) ||\n         ((param_1[3] == 0 && ((*(byte *)((int)param_1 + 0x2b) & 0x20) != 0)))) goto LAB_0004c268;" (if "if") (parenthesized_expression "(((*(byte *)(param_1[2] + 0x2c) & 1) != 0) ||\n         ((param_1[3] == 0 && ((*(byte *)((int)param_1 + 0x2b) & 0x20) != 0))))" (( "(") (binary_expression "((*(byte *)(param_1[2] + 0x2c) & 1) != 0) ||\n         ((param_1[3] == 0 && ((*(byte *)((int)param_1 + 0x2b) & 0x20) != 0)))" (parenthesized_expression "((*(byte *)(param_1[2] + 0x2c) & 1) != 0)" (( "(") (binary_expression "(*(byte *)(param_1[2] + 0x2c) & 1) != 0" (parenthesized_expression "(*(byte *)(param_1[2] + 0x2c) & 1)" (( "(") (binary_expression "*(byte *)(param_1[2] + 0x2c) & 1" (pointer_expression "*(byte *)(param_1[2] + 0x2c)" (* "*") (cast_expression "(byte *)(param_1[2] + 0x2c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[2] + 0x2c)" (( "(") (binary_expression "param_1[2] + 0x2c" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "0x2c")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((param_1[3] == 0 && ((*(byte *)((int)param_1 + 0x2b) & 0x20) != 0)))" (( "(") (parenthesized_expression "(param_1[3] == 0 && ((*(byte *)((int)param_1 + 0x2b) & 0x20) != 0))" (( "(") (binary_expression "param_1[3] == 0 && ((*(byte *)((int)param_1 + 0x2b) & 0x20) != 0)" (binary_expression "param_1[3] == 0" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (== "==") (number_literal "0")) (&& "&&") (parenthesized_expression "((*(byte *)((int)param_1 + 0x2b) & 0x20) != 0)" (( "(") (binary_expression "(*(byte *)((int)param_1 + 0x2b) & 0x20) != 0" (parenthesized_expression "(*(byte *)((int)param_1 + 0x2b) & 0x20)" (( "(") (binary_expression "*(byte *)((int)param_1 + 0x2b) & 0x20" (pointer_expression "*(byte *)((int)param_1 + 0x2b)" (* "*") (cast_expression "(byte *)((int)param_1 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x2b)" (( "(") (binary_expression "(int)param_1 + 0x2b" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x2b")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_0004c268;" (goto "goto") (statement_identifier "LAB_0004c268") (; ";"))) (} "}")) (else_clause "else if ((*(byte *)((int)param_1 + 0x2a) & 7) == 4) goto LAB_0004c268;" (else "else") (if_statement "if ((*(byte *)((int)param_1 + 0x2a) & 7) == 4) goto LAB_0004c268;" (if "if") (parenthesized_expression "((*(byte *)((int)param_1 + 0x2a) & 7) == 4)" (( "(") (binary_expression "(*(byte *)((int)param_1 + 0x2a) & 7) == 4" (parenthesized_expression "(*(byte *)((int)param_1 + 0x2a) & 7)" (( "(") (binary_expression "*(byte *)((int)param_1 + 0x2a) & 7" (pointer_expression "*(byte *)((int)param_1 + 0x2a)" (* "*") (cast_expression "(byte *)((int)param_1 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x2a)" (( "(") (binary_expression "(int)param_1 + 0x2a" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "4")) () ")")) (goto_statement "goto LAB_0004c268;" (goto "goto") (statement_identifier "LAB_0004c268") (; ";"))))) (if_statement "if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n       (bVar5 = *(byte *)((int)param_1 + 0x2b) >> 4, uVar7 = bVar5 & 1, (bVar5 & 1) == 0)) {\n      iVar8 = *(int *)(DAT_0033f2f0 + 8);\n      if (iVar8 == 0) {\nLAB_0004c60b:\n                    \n        FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar8);\n      }\n      uVar7 = uVar11;\n      if (*(char *)(iVar8 + 0x1a25) != '\0') {\n        cVar6 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,local_1d);\n        if ((cVar6 != '\0') && (local_1d[0] == '\0')) {\nLAB_0004c268:\n          return local_32 ^ 1;\n        }\n        iVar8 = *(int *)(DAT_0033f2f0 + 8);\n        if (iVar8 == 0) goto LAB_0004c60b;\n        uVar7 = (uint)*(byte *)(iVar8 + 0x825);\n        if ((*(byte *)(iVar8 + 0x825) == 0) &&\n           (uVar7 = local_32 ^ 1, (*(byte *)(param_1 + 10) & 0xf) != 1)) {\n          uVar7 = (uint)(byte)((byte)uVar7 | *(byte *)(iVar8 + 0x8a1));\n        }\n      }\n    }" (if "if") (parenthesized_expression "(((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n       (bVar5 = *(byte *)((int)param_1 + 0x2b) >> 4, uVar7 = bVar5 & 1, (bVar5 & 1) == 0))" (( "(") (binary_expression "((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&\n       (bVar5 = *(byte *)((int)param_1 + 0x2b) >> 4, uVar7 = bVar5 & 1, (bVar5 & 1) == 0)" (parenthesized_expression "((*(byte *)((int)param_1 + 0x29) & 3) == 0)" (( "(") (binary_expression "(*(byte *)((int)param_1 + 0x29) & 3) == 0" (parenthesized_expression "(*(byte *)((int)param_1 + 0x29) & 3)" (( "(") (binary_expression "*(byte *)((int)param_1 + 0x29) & 3" (pointer_expression "*(byte *)((int)param_1 + 0x29)" (* "*") (cast_expression "(byte *)((int)param_1 + 0x29)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x29)" (( "(") (binary_expression "(int)param_1 + 0x29" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x29")) () ")")))) (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(bVar5 = *(byte *)((int)param_1 + 0x2b) >> 4, uVar7 = bVar5 & 1, (bVar5 & 1) == 0)" (( "(") (comma_expression "bVar5 = *(byte *)((int)param_1 + 0x2b) >> 4, uVar7 = bVar5 & 1, (bVar5 & 1) == 0" (assignment_expression "bVar5 = *(byte *)((int)param_1 + 0x2b) >> 4" (identifier "bVar5") (= "=") (binary_expression "*(byte *)((int)param_1 + 0x2b) >> 4" (pointer_expression "*(byte *)((int)param_1 + 0x2b)" (* "*") (cast_expression "(byte *)((int)param_1 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x2b)" (( "(") (binary_expression "(int)param_1 + 0x2b" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x2b")) () ")")))) (>> ">>") (number_literal "4"))) (, ",") (comma_expression "uVar7 = bVar5 & 1, (bVar5 & 1) == 0" (assignment_expression "uVar7 = bVar5 & 1" (identifier "uVar7") (= "=") (binary_expression "bVar5 & 1" (identifier "bVar5") (& "&") (number_literal "1"))) (, ",") (binary_expression "(bVar5 & 1) == 0" (parenthesized_expression "(bVar5 & 1)" (( "(") (binary_expression "bVar5 & 1" (identifier "bVar5") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")))) () ")"))) () ")")) (compound_statement "{\n      iVar8 = *(int *)(DAT_0033f2f0 + 8);\n      if (iVar8 == 0) {\nLAB_0004c60b:\n                    \n        FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar8);\n      }\n      uVar7 = uVar11;\n      if (*(char *)(iVar8 + 0x1a25) != '\0') {\n        cVar6 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,local_1d);\n        if ((cVar6 != '\0') && (local_1d[0] == '\0')) {\nLAB_0004c268:\n          return local_32 ^ 1;\n        }\n        iVar8 = *(int *)(DAT_0033f2f0 + 8);\n        if (iVar8 == 0) goto LAB_0004c60b;\n        uVar7 = (uint)*(byte *)(iVar8 + 0x825);\n        if ((*(byte *)(iVar8 + 0x825) == 0) &&\n           (uVar7 = local_32 ^ 1, (*(byte *)(param_1 + 10) & 0xf) != 1)) {\n          uVar7 = (uint)(byte)((byte)uVar7 | *(byte *)(iVar8 + 0x8a1));\n        }\n      }\n    }" ({ "{") (expression_statement "iVar8 = *(int *)(DAT_0033f2f0 + 8);" (assignment_expression "iVar8 = *(int *)(DAT_0033f2f0 + 8)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(DAT_0033f2f0 + 8)" (* "*") (cast_expression "(int *)(DAT_0033f2f0 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0033f2f0 + 8)" (( "(") (binary_expression "DAT_0033f2f0 + 8" (identifier "DAT_0033f2f0") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar8 == 0) {\nLAB_0004c60b:\n                    \n        FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar8);\n      }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0004c60b:\n                    \n        FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar8);\n      }" ({ "{") (labeled_statement "LAB_0004c60b:\n                    \n        FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar8);" (statement_identifier "LAB_0004c60b") (: ":") (expression_statement "FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar8);" (call_expression "FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar8)" (identifier "FUN_0008b620") (argument_list "("../../gold/parameters.h",0x5c,"options",iVar8)" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x5c") (, ",") (string_literal ""options"" (" """) (string_content "options") (" """)) (, ",") (identifier "iVar8") () ")"))) (; ";"))) (} "}"))) (expression_statement "uVar7 = uVar11;" (assignment_expression "uVar7 = uVar11" (identifier "uVar7") (= "=") (identifier "uVar11")) (; ";")) (if_statement "if (*(char *)(iVar8 + 0x1a25) != '\0') {\n        cVar6 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,local_1d);\n        if ((cVar6 != '\0') && (local_1d[0] == '\0')) {\nLAB_0004c268:\n          return local_32 ^ 1;\n        }\n        iVar8 = *(int *)(DAT_0033f2f0 + 8);\n        if (iVar8 == 0) goto LAB_0004c60b;\n        uVar7 = (uint)*(byte *)(iVar8 + 0x825);\n        if ((*(byte *)(iVar8 + 0x825) == 0) &&\n           (uVar7 = local_32 ^ 1, (*(byte *)(param_1 + 10) & 0xf) != 1)) {\n          uVar7 = (uint)(byte)((byte)uVar7 | *(byte *)(iVar8 + 0x8a1));\n        }\n      }" (if "if") (parenthesized_expression "(*(char *)(iVar8 + 0x1a25) != '\0')" (( "(") (binary_expression "*(char *)(iVar8 + 0x1a25) != '\0'" (pointer_expression "*(char *)(iVar8 + 0x1a25)" (* "*") (cast_expression "(char *)(iVar8 + 0x1a25)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x1a25)" (( "(") (binary_expression "iVar8 + 0x1a25" (identifier "iVar8") (+ "+") (number_literal "0x1a25")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        cVar6 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,local_1d);\n        if ((cVar6 != '\0') && (local_1d[0] == '\0')) {\nLAB_0004c268:\n          return local_32 ^ 1;\n        }\n        iVar8 = *(int *)(DAT_0033f2f0 + 8);\n        if (iVar8 == 0) goto LAB_0004c60b;\n        uVar7 = (uint)*(byte *)(iVar8 + 0x825);\n        if ((*(byte *)(iVar8 + 0x825) == 0) &&\n           (uVar7 = local_32 ^ 1, (*(byte *)(param_1 + 10) & 0xf) != 1)) {\n          uVar7 = (uint)(byte)((byte)uVar7 | *(byte *)(iVar8 + 0x8a1));\n        }\n      }" ({ "{") (expression_statement "cVar6 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,local_1d);" (assignment_expression "cVar6 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,local_1d)" (identifier "cVar6") (= "=") (call_expression "FUN_001453a0(iVar8 + 0x59a8,*param_1,0,local_1d)" (identifier "FUN_001453a0") (argument_list "(iVar8 + 0x59a8,*param_1,0,local_1d)" (( "(") (binary_expression "iVar8 + 0x59a8" (identifier "iVar8") (+ "+") (number_literal "0x59a8")) (, ",") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (number_literal "0") (, ",") (identifier "local_1d") () ")")))) (; ";")) (if_statement "if ((cVar6 != '\0') && (local_1d[0] == '\0')) {\nLAB_0004c268:\n          return local_32 ^ 1;\n        }" (if "if") (parenthesized_expression "((cVar6 != '\0') && (local_1d[0] == '\0'))" (( "(") (binary_expression "(cVar6 != '\0') && (local_1d[0] == '\0')" (parenthesized_expression "(cVar6 != '\0')" (( "(") (binary_expression "cVar6 != '\0'" (identifier "cVar6") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(local_1d[0] == '\0')" (( "(") (binary_expression "local_1d[0] == '\0'" (subscript_expression "local_1d[0]" (identifier "local_1d") ([ "[") (number_literal "0") (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\nLAB_0004c268:\n          return local_32 ^ 1;\n        }" ({ "{") (labeled_statement "LAB_0004c268:\n          return local_32 ^ 1;" (statement_identifier "LAB_0004c268") (: ":") (return_statement "return local_32 ^ 1;" (return "return") (binary_expression "local_32 ^ 1" (identifier "local_32") (^ "^") (number_literal "1")) (; ";"))) (} "}"))) (expression_statement "iVar8 = *(int *)(DAT_0033f2f0 + 8);" (assignment_expression "iVar8 = *(int *)(DAT_0033f2f0 + 8)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(DAT_0033f2f0 + 8)" (* "*") (cast_expression "(int *)(DAT_0033f2f0 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0033f2f0 + 8)" (( "(") (binary_expression "DAT_0033f2f0 + 8" (identifier "DAT_0033f2f0") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar8 == 0) goto LAB_0004c60b;" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004c60b;" (goto "goto") (statement_identifier "LAB_0004c60b") (; ";"))) (expression_statement "uVar7 = (uint)*(byte *)(iVar8 + 0x825);" (assignment_expression "uVar7 = (uint)*(byte *)(iVar8 + 0x825)" (identifier "uVar7") (= "=") (binary_expression "(uint)*(byte *)(iVar8 + 0x825)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(iVar8 + 0x825)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x825)" (( "(") (binary_expression "iVar8 + 0x825" (identifier "iVar8") (+ "+") (number_literal "0x825")) () ")"))))) (; ";")) (if_statement "if ((*(byte *)(iVar8 + 0x825) == 0) &&\n           (uVar7 = local_32 ^ 1, (*(byte *)(param_1 + 10) & 0xf) != 1)) {\n          uVar7 = (uint)(byte)((byte)uVar7 | *(byte *)(iVar8 + 0x8a1));\n        }" (if "if") (parenthesized_expression "((*(byte *)(iVar8 + 0x825) == 0) &&\n           (uVar7 = local_32 ^ 1, (*(byte *)(param_1 + 10) & 0xf) != 1))" (( "(") (binary_expression "(*(byte *)(iVar8 + 0x825) == 0) &&\n           (uVar7 = local_32 ^ 1, (*(byte *)(param_1 + 10) & 0xf) != 1)" (parenthesized_expression "(*(byte *)(iVar8 + 0x825) == 0)" (( "(") (binary_expression "*(byte *)(iVar8 + 0x825) == 0" (pointer_expression "*(byte *)(iVar8 + 0x825)" (* "*") (cast_expression "(byte *)(iVar8 + 0x825)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x825)" (( "(") (binary_expression "iVar8 + 0x825" (identifier "iVar8") (+ "+") (number_literal "0x825")) () ")")))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(uVar7 = local_32 ^ 1, (*(byte *)(param_1 + 10) & 0xf) != 1)" (( "(") (comma_expression "uVar7 = local_32 ^ 1, (*(byte *)(param_1 + 10) & 0xf) != 1" (assignment_expression "uVar7 = local_32 ^ 1" (identifier "uVar7") (= "=") (binary_expression "local_32 ^ 1" (identifier "local_32") (^ "^") (number_literal "1"))) (, ",") (binary_expression "(*(byte *)(param_1 + 10) & 0xf) != 1" (parenthesized_expression "(*(byte *)(param_1 + 10) & 0xf)" (( "(") (binary_expression "*(byte *)(param_1 + 10) & 0xf" (pointer_expression "*(byte *)(param_1 + 10)" (* "*") (cast_expression "(byte *)(param_1 + 10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 10)" (( "(") (binary_expression "param_1 + 10" (identifier "param_1") (+ "+") (number_literal "10")) () ")")))) (& "&") (number_literal "0xf")) () ")")) (!= "!=") (number_literal "1"))) () ")"))) () ")")) (compound_statement "{\n          uVar7 = (uint)(byte)((byte)uVar7 | *(byte *)(iVar8 + 0x8a1));\n        }" ({ "{") (expression_statement "uVar7 = (uint)(byte)((byte)uVar7 | *(byte *)(iVar8 + 0x8a1));" (assignment_expression "uVar7 = (uint)(byte)((byte)uVar7 | *(byte *)(iVar8 + 0x8a1))" (identifier "uVar7") (= "=") (call_expression "(uint)(byte)((byte)uVar7 | *(byte *)(iVar8 + 0x8a1))" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(byte)" (( "(") (identifier "byte") () ")"))) (argument_list "((byte)uVar7 | *(byte *)(iVar8 + 0x8a1))" (( "(") (binary_expression "(byte)uVar7 | *(byte *)(iVar8 + 0x8a1)" (cast_expression "(byte)uVar7" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar7")) (| "|") (pointer_expression "*(byte *)(iVar8 + 0x8a1)" (* "*") (cast_expression "(byte *)(iVar8 + 0x8a1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x8a1)" (( "(") (binary_expression "iVar8 + 0x8a1" (identifier "iVar8") (+ "+") (number_literal "0x8a1")) () ")"))))) () ")")))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (return_statement "return uVar7;" (return "return") (identifier "uVar7") (; ";")) (} "}")))

/* 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 "ELFOSABI": Some values do not have unique names */
/* DWARF original prototype: bool should_apply_static_reloc(Relocate * this, Sized_symbol<32> *
   gsym, uint r_type, bool is_32bit, Output_section * output_section) */

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

{
  type_5 *var_5;
  bool var_14;
  type_6 *var_4;
  type_3 var_12;
  type_7 var_7;
  type_7 var_11;
  type_7 var_9;
  type_7 bVar6;
  type_7 var_19;
  int var_3;
  type_3 var_10;
  type_8 *in_stack_ffffffc8;
  type_7 var_13;
  int var_8;
  bool var_16;
  bool var_18;
  type_6 uStack_14;
  
  uStack_14 = 0x4c1a9;
  if ((this[10].local_dynamic_type_ & var_1) == var_2) {
    return true;
  }
  var_10 = 0;
  if (var_3 - 1U < 0x2b) {
    var_10 = (type_3)(char)(&DAT_0024cfbf)[var_3];
  }
  if (var_4 == (type_6 *)0x0) {
    var_5 = gold::parameters->options_;
    if (var_5 == (type_5 *)0x0) {
                    /* WARNING: Subroutine does not return */
      var_6((type_9 *)gold::parameters);
    }
    if (((var_5->shared_).value == false) && ((var_5->pie_).value == false)) {
      return true;
    }
    return (bool)(~(type_7)var_10 & 1 | var_7);
  }
  bVar6 = gold::parameters->doing_static_link_valid_;
  if ((bool)bVar6 == false) {
                    /* WARNING: Subroutine does not return */
    gold::Parameters::doing_static_link(gold::parameters,in_stack_ffffffc8);
  }
  if (gold::parameters->doing_static_link_ == false) {
    var_11 = *(type_7 *)((int)var_4 + 0x2a) & 7;
    var_19 = 0;
    if ((*(type_7 *)((int)var_4 + 0x2a) & 7) == 0) {
      var_8 = var_4[3];
      var_9 = *(type_7 *)((int)var_4 + 0x2b) >> 5 & 1;
      if ((var_8 == 0) && (var_9 != 0)) goto LAB_0004c222;
LAB_0004c306:
      var_12 = var_10 & 1;
      if (var_8 != 0xfff1 || var_9 != 0) goto LAB_0004c320;
LAB_0004c490:
      var_13 = 0;
      goto LAB_0004c25c;
    }
    if (var_11 == 4) {
LAB_0004c222:
      if (gold::parameters->options_ == (type_5 *)0x0) goto LAB_0004c60b;
      var_12 = var_10 & 1;
      if ((gold::parameters->options_->shared_).value == false) goto LAB_0004c490;
      if (var_11 == 0) {
        var_8 = var_4[3];
        var_9 = *(type_7 *)((int)var_4 + 0x2b) >> 5 & 1;
        goto LAB_0004c306;
      }
    }
    var_12 = var_10 & 1;
    var_13 = var_19;
    if (var_11 == 3) goto LAB_0004c25c;
LAB_0004c320:
    var_12 = var_10 & 1;
    if (var_12 == 0) {
LAB_0004c450:
      if (((var_10 & 8) != 0) && (var_4[6] != -1)) {
        return (bool)bVar6;
      }
      if ((var_10 & 0x10) == 0) {
        var_5 = gold::parameters->options_;
        if (var_5 == (type_5 *)0x0) goto LAB_0004c60b;
        if ((((var_5->shared_).value == false) && ((var_5->pie_).value == false)) &&
           (var_4[6] != -1)) goto LAB_0004c490;
      }
      if (var_11 == 0) {
        var_13 = *(type_7 *)(var_4[2] + 0x2c) & 1;
        if (((*(type_7 *)(var_4[2] + 0x2c) & 1) == 0) &&
           (var_13 = *(type_7 *)((int)var_4 + 0x2b) >> 5 & var_4[3] == 0, var_13 == 0)) {
LAB_0004c4d9:
          var_13 = var_19;
          if (((*(type_7 *)((int)var_4 + 0x29) & 3) == 0) &&
             ((*(type_7 *)((int)var_4 + 0x2b) & 0x10) == 0)) {
            var_5 = gold::parameters->options_;
            if (var_5 == (type_5 *)0x0) goto LAB_0004c60b;
            var_14 = (var_5->shared_).value;
            var_13 = var_14;
            if ((var_14 != false) &&
               ((var_13 = gold::Version_script_info::var_15
                                      (&(var_5->dynamic_list_).version_script_info_,(char *)*var_4
                                       ,(type_10 *)0x0,&var_16), !(bool)var_13 ||
                (var_16 != false)))) {
              var_5 = gold::parameters->options_;
              if (var_5 == (type_5 *)0x0) goto LAB_0004c60b;
              if ((var_5->Bsymbolic_).value != false) goto LAB_0004c490;
              var_13 = var_14;
              if ((*(type_7 *)(var_4 + 10) & 0xf) != 1) {
                var_13 = (var_5->Bsymbolic_functions_).value ^ 1;
              }
            }
          }
        }
      }
      else {
        var_13 = bVar6;
        if (var_11 != 4) goto LAB_0004c4d9;
      }
      goto LAB_0004c25c;
    }
    var_5 = gold::parameters->options_;
    if (var_5 == (type_5 *)0x0) goto LAB_0004c60b;
    var_13 = (var_5->shared_).value;
    if (((bool)var_13 == false) && (var_13 = (var_5->pie_).value, (bool)var_13 == false))
    goto LAB_0004c450;
  }
  else {
    var_13 = 0;
    var_12 = var_10 & 1;
LAB_0004c25c:
    if (var_12 == 0) goto LAB_0004c268;
  }
  var_19 = bVar6;
  if (((var_10 & 8) == 0) || (var_4[6] == -1)) {
    if ((*(type_7 *)((int)var_4 + 0x2a) & 7) == 0) {
      if (((*(type_7 *)(var_4[2] + 0x2c) & 1) != 0) ||
         ((var_4[3] == 0 && ((*(type_7 *)((int)var_4 + 0x2b) & 0x20) != 0)))) goto LAB_0004c268;
    }
    else if ((*(type_7 *)((int)var_4 + 0x2a) & 7) == 4) goto LAB_0004c268;
    if (((*(type_7 *)((int)var_4 + 0x29) & 3) == 0) &&
       (var_11 = *(type_7 *)((int)var_4 + 0x2b) >> 4, var_19 = var_11 & 1, (var_11 & 1) == 0)) {
      var_5 = gold::parameters->options_;
      if (var_5 == (type_5 *)0x0) {
LAB_0004c60b:
                    /* WARNING: Subroutine does not return */
        gold::var_17("../../gold/parameters.h",0x5c,"options");
      }
      var_19 = bVar6;
      if ((var_5->shared_).value != false) {
        var_14 = gold::Version_script_info::var_15
                          (&(var_5->dynamic_list_).version_script_info_,(char *)*var_4,
                           (type_10 *)0x0,&var_18);
        if ((var_14) && (var_18 == false)) {
LAB_0004c268:
          return (bool)(var_13 ^ 1);
        }
        var_5 = gold::parameters->options_;
        if (var_5 == (type_5 *)0x0) goto LAB_0004c60b;
        var_19 = (var_5->Bsymbolic_).value;
        if (((bool)var_19 == false) && (var_19 = var_13 ^ 1, (*(type_7 *)(var_4 + 10) & 0xf) != 1)) {
          var_19 = var_19 | (var_5->Bsymbolic_functions_).value;
        }
      }
    }
  }
  return (bool)var_19;
}


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

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

uint __regparm3 MASKED(undefined4 *param_1,int param_2,uint param_3,int param_4)

{
  byte bVar1;
  int iVar2;
  uint *puVar3;
  int *piVar4;
  byte bVar5;
  char cVar6;
  uint uVar7;
  int iVar8;
  byte bVar9;
  byte bVar10;
  undefined4 extraout_ECX;
  uint uVar11;
  int extraout_EDX;
  int *piVar12;
  int *piVar13;
  uint uVar14;
  uint local_38;
  byte local_32;
  int local_30;
  int iStack_2c;
  int iStack_28;
  char local_1e;
  char local_1d [9];
  undefined4 uStack_14;
  
  uStack_14 = 0x4c1a9;
  if ((*(byte *)(param_4 + 0x54) & 2) == 0) {
    return 1;
  }
  uVar14 = 0;
  if (param_2 - 1U < 0x2b) {
    uVar14 = (uint)(char)(&DAT_0024cfbf)[param_2];
  }
  if (param_1 == (undefined4 *)0x0) {
    iVar8 = *(int *)(DAT_0033f2f0 + 8);
    if (iVar8 != 0) {
      if ((*(char *)(iVar8 + 0x1a25) == '\0') && (*(char *)(iVar8 + 0x2931) == '\0')) {
        return 1;
      }
      return ~uVar14 & 1 | param_3;
    }
    iVar8 = FUN_000496d0();
    goto LAB_0004c60b;
  }
  bVar5 = *(byte *)(DAT_0033f2f0 + 0x10);
  if (bVar5 == 0) {
    FUN_00049580();
    FUN_00058c4e(&DAT_0033f2f0);
    if (-1 < (char)*(byte *)(iStack_28 + 0xb)) {
      if ((*(byte *)(iStack_28 + 0xb) & 8) == 0) {
                    /* WARNING: Subroutine does not return */
        FUN_0008b620(0x53e03f,0x6ab,0x540406,extraout_ECX);
      }
      puVar3 = *(uint **)(iStack_28 + 0xc);
      uVar14 = *puVar3;
      uVar7 = uVar14 % puVar3[3];
      piVar13 = *(int **)(puVar3[2] + uVar7 * 4);
      if (piVar13 != (int *)0x0) {
        uVar11 = ((int *)*piVar13)[1];
        piVar4 = (int *)*piVar13;
        while (piVar12 = piVar4, uVar14 != uVar11) {
          piVar4 = (int *)*piVar12;
          if ((piVar4 == (int *)0x0) ||
             (uVar11 = piVar4[1], piVar13 = piVar12, uVar7 != uVar11 % puVar3[3]))
          goto LAB_0004c8d4;
        }
        if (*piVar13 != 0) goto LAB_0004c6e9;
      }
LAB_0004c8d4:
      FUN_00126fe0(puVar3,*(undefined4 *)(extraout_EDX + 8),*(uint *)(iStack_28 + 8) & 0x7ffffff,
                   uVar14);
    }
LAB_0004c6e9:
    if (iStack_2c == 0) {
      if (*(int *)(iRam00631faa + 8) == 0) {
                    /* WARNING: Subroutine does not return */
        FUN_0008b620(0x538f27,0x5c,0x540242,0);
      }
    }
    else {
      FUN_0014e8a0(iStack_2c);
    }
    FUN_000495b0();
    uVar14 = local_30 - 0xf;
    if (uVar14 < 0x1a) {
                    /* WARNING: Could not emulate address calculation at 0x0004c724 */
                    /* WARNING: Treating indirect jump as call */
      uVar14 = (*(code *)(*(int *)(uVar14 * 4 + 0x53e9fe) + 0x631cba))();
      return uVar14;
    }
    return uVar14;
  }
  if (*(char *)(DAT_0033f2f0 + 0x11) == '\0') {
    bVar9 = *(byte *)((int)param_1 + 0x2a) & 7;
    bVar1 = 0;
    iVar8 = DAT_0033f2f0;
    if ((*(byte *)((int)param_1 + 0x2a) & 7) == 0) {
      local_30 = param_1[3];
      bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;
      if ((local_30 == 0) && (bVar10 != 0)) goto LAB_0004c222;
LAB_0004c306:
      if (local_30 != 0xfff1 || bVar10 != 0) goto LAB_0004c320;
LAB_0004c490:
      local_32 = 0;
      goto LAB_0004c25c;
    }
    if (bVar9 == 4) {
LAB_0004c222:
      if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_0004c60b;
      if (*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x1a25) == '\0') goto LAB_0004c490;
      if (bVar9 == 0) {
        local_30 = param_1[3];
        bVar10 = *(byte *)((int)param_1 + 0x2b) >> 5 & 1;
        goto LAB_0004c306;
      }
    }
    local_32 = bVar1;
    if (bVar9 == 3) goto LAB_0004c25c;
LAB_0004c320:
    local_38 = uVar14 & 1;
    if (local_38 == 0) {
LAB_0004c450:
      if (((uVar14 & 8) != 0) && (param_1[6] != -1)) {
        return (uint)bVar5;
      }
      if ((uVar14 & 0x10) == 0) {
        iVar2 = *(int *)(DAT_0033f2f0 + 8);
        if (iVar2 == 0) goto LAB_0004c60b;
        if (((*(char *)(iVar2 + 0x1a25) == '\0') && (*(char *)(iVar2 + 0x2931) == '\0')) &&
           (param_1[6] != -1)) goto LAB_0004c490;
      }
      if (bVar9 == 0) {
        local_32 = *(byte *)(param_1[2] + 0x2c) & 1;
        if (((*(byte *)(param_1[2] + 0x2c) & 1) == 0) &&
           (local_32 = *(byte *)((int)param_1 + 0x2b) >> 5 & param_1[3] == 0, local_32 == 0)) {
LAB_0004c4d9:
          local_32 = bVar1;
          if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&
             ((*(byte *)((int)param_1 + 0x2b) & 0x10) == 0)) {
            iVar8 = *(int *)(DAT_0033f2f0 + 8);
            if (iVar8 == 0) goto LAB_0004c60b;
            bVar1 = *(byte *)(iVar8 + 0x1a25);
            local_32 = bVar1;
            if ((bVar1 != 0) &&
               ((local_32 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,&local_1e), local_32 == 0 ||
                (local_1e != '\0')))) {
              iVar2 = *(int *)(DAT_0033f2f0 + 8);
              iVar8 = DAT_0033f2f0;
              if (iVar2 == 0) goto LAB_0004c60b;
              if (*(char *)(iVar2 + 0x825) != '\0') goto LAB_0004c490;
              local_32 = bVar1;
              if ((*(byte *)(param_1 + 10) & 0xf) != 1) {
                local_32 = *(byte *)(iVar2 + 0x8a1) ^ 1;
              }
            }
          }
        }
      }
      else {
        local_32 = bVar5;
        if (bVar9 != 4) goto LAB_0004c4d9;
      }
      goto LAB_0004c25c;
    }
    iVar2 = *(int *)(DAT_0033f2f0 + 8);
    if (iVar2 == 0) goto LAB_0004c60b;
    local_32 = *(byte *)(iVar2 + 0x1a25);
    if ((local_32 == 0) && (local_32 = *(byte *)(iVar2 + 0x2931), local_32 == 0)) goto LAB_0004c450;
  }
  else {
    local_32 = 0;
LAB_0004c25c:
    local_38 = uVar14 & 1;
    if (local_38 == 0) goto LAB_0004c268;
  }
  uVar11 = (uint)bVar5;
  uVar7 = uVar11;
  if (((uVar14 & 8) == 0) || (param_1[6] == -1)) {
    if ((*(byte *)((int)param_1 + 0x2a) & 7) == 0) {
      if (((*(byte *)(param_1[2] + 0x2c) & 1) != 0) ||
         ((param_1[3] == 0 && ((*(byte *)((int)param_1 + 0x2b) & 0x20) != 0)))) goto LAB_0004c268;
    }
    else if ((*(byte *)((int)param_1 + 0x2a) & 7) == 4) goto LAB_0004c268;
    if (((*(byte *)((int)param_1 + 0x29) & 3) == 0) &&
       (bVar5 = *(byte *)((int)param_1 + 0x2b) >> 4, uVar7 = bVar5 & 1, (bVar5 & 1) == 0)) {
      iVar8 = *(int *)(DAT_0033f2f0 + 8);
      if (iVar8 == 0) {
LAB_0004c60b:
                    /* WARNING: Subroutine does not return */
        FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar8);
      }
      uVar7 = uVar11;
      if (*(char *)(iVar8 + 0x1a25) != '\0') {
        cVar6 = FUN_001453a0(iVar8 + 0x59a8,*param_1,0,local_1d);
        if ((cVar6 != '\0') && (local_1d[0] == '\0')) {
LAB_0004c268:
          return local_32 ^ 1;
        }
        iVar8 = *(int *)(DAT_0033f2f0 + 8);
        if (iVar8 == 0) goto LAB_0004c60b;
        uVar7 = (uint)*(byte *)(iVar8 + 0x825);
        if ((*(byte *)(iVar8 + 0x825) == 0) &&
           (uVar7 = local_32 ^ 1, (*(byte *)(param_1 + 10) & 0xf) != 1)) {
          uVar7 = (uint)(byte)((byte)uVar7 | *(byte *)(iVar8 + 0x8a1));
        }
      }
    }
  }
  return uVar7;
}

