
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */

bool gold::issue_undefined_symbol_error(Symbol *sym)

{
  _func_int_varargs *p_Var1;
  Target *pTVar2;
  General_options *pGVar3;
  byte bVar4;
  int iVar5;
  byte *pbVar6;
  byte *pbVar7;
  byte *pbVar8;
  bool bVar9;
  bool bVar10;
  bool bVar11;
  byte bVar12;
  
  bVar12 = 0;
  if (sym == (Symbol *)0x0) {
    return false;
  }
  bVar4 = sym->field_0x2a & 7;
  if ((sym->field_0x2a & 7) == 0) {
    if (((sym->u2_).shndx == 0) && ((sym->field_0x2b & 0x20) != 0)) goto LAB_0005603c;
    p_Var1 = ((sym->u1_).object)->_vptr_Object[5];
    if (p_Var1 == Object::do_pluginobj) {
      return false;
    }
    iVar5 = (*p_Var1)((sym->u1_).object);
    if (iVar5 == 0) {
      return false;
    }
    bVar4 = sym->field_0x2a & 7;
    if ((sym->field_0x2a & 7) == 0) {
      if (((sym->u2_).shndx == 0) && ((sym->field_0x2b & 0x20) != 0)) goto LAB_0005603c;
      if (-1 < (char)sym->field_0x2b) goto LAB_000560de;
      goto LAB_00056080;
    }
    if (bVar4 == 4) goto LAB_0005603c;
    if ((char)sym->field_0x2b < '\0') {
      return false;
    }
  }
  else {
    if (bVar4 != 4) {
      return false;
    }
LAB_0005603c:
    if ((byte)sym->field_0x28 >> 4 == 2) {
      return false;
    }
    if ((sym->field_0x2c & 2) != 0) {
      return false;
    }
    if (parameters->options_ == (General_options *)0x0) goto LAB_00056205;
    if ((parameters->options_->weak_unresolved_symbols_).value != false) {
      return false;
    }
    if ((char)sym->field_0x2b < '\0') {
      if (bVar4 != 0) {
        return false;
      }
LAB_00056080:
      p_Var1 = ((sym->u1_).object)->_vptr_Object[5];
      if (p_Var1 == Object::do_pluginobj) {
        return false;
      }
      iVar5 = (*p_Var1)((sym->u1_).object);
      if (iVar5 == 0) {
        return false;
      }
    }
  }
LAB_000560de:
  pTVar2 = parameters->target_;
  if (pTVar2 == (Target *)0x0) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/parameters.h",0x69,"target");
  }
  iVar5 = (*pTVar2->_vptr_Target[7])(pTVar2,sym);
  if ((char)iVar5 == '\0') {
    pGVar3 = parameters->options_;
    if (pGVar3 == (General_options *)0x0) {
LAB_00056205:
                    /* WARNING: Subroutine does not return */
      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
    }
    pbVar7 = (byte *)(pGVar3->unresolved_symbols_).value;
    bVar9 = false;
    bVar11 = pbVar7 == (byte *)0x0;
    if (bVar11) {
LAB_000561a0:
      if ((sym->field_0x29 & 3) == 2) {
        return true;
      }
      if ((pGVar3->shared_).value != false) {
        return (pGVar3->defs_).value;
      }
      return true;
    }
    iVar5 = 0xb;
    pbVar6 = pbVar7;
    pbVar8 = (byte *)"ignore-all";
    do {
      if (iVar5 == 0) break;
      iVar5 = iVar5 + -1;
      bVar9 = *pbVar6 < *pbVar8;
      bVar11 = *pbVar6 == *pbVar8;
      pbVar6 = pbVar6 + (uint)bVar12 * -2 + 1;
      pbVar8 = pbVar8 + (uint)bVar12 * -2 + 1;
    } while (bVar11);
    bVar10 = false;
    bVar9 = (!bVar9 && !bVar11) == bVar9;
    if (!bVar9) {
      iVar5 = 0xb;
      pbVar6 = pbVar7;
      pbVar8 = (byte *)"report-all";
      do {
        if (iVar5 == 0) break;
        iVar5 = iVar5 + -1;
        bVar10 = *pbVar6 < *pbVar8;
        bVar9 = *pbVar6 == *pbVar8;
        pbVar6 = pbVar6 + (uint)bVar12 * -2 + 1;
        pbVar8 = pbVar8 + (uint)bVar12 * -2 + 1;
      } while (bVar9);
      bVar11 = false;
      bVar9 = (!bVar10 && !bVar9) == bVar10;
      if (bVar9) {
        return true;
      }
      iVar5 = 0x17;
      pbVar6 = pbVar7;
      pbVar8 = (byte *)"ignore-in-object-files";
      do {
        if (iVar5 == 0) break;
        iVar5 = iVar5 + -1;
        bVar11 = *pbVar6 < *pbVar8;
        bVar9 = *pbVar6 == *pbVar8;
        pbVar6 = pbVar6 + (uint)bVar12 * -2 + 1;
        pbVar8 = pbVar8 + (uint)bVar12 * -2 + 1;
      } while (bVar9);
      bVar9 = (!bVar11 && !bVar9) == bVar11;
      if ((!bVar9) || (bVar9 = (sym->field_0x2b & 1) == 0, !bVar9)) {
        bVar11 = false;
        iVar5 = 0x16;
        pbVar6 = (byte *)"ignore-in-shared-libs";
        do {
          if (iVar5 == 0) break;
          iVar5 = iVar5 + -1;
          bVar11 = *pbVar7 < *pbVar6;
          bVar9 = *pbVar7 == *pbVar6;
          pbVar7 = pbVar7 + (uint)bVar12 * -2 + 1;
          pbVar6 = pbVar6 + (uint)bVar12 * -2 + 1;
        } while (bVar9);
        if (((!bVar11 && !bVar9) != bVar11) || ((char)sym->field_0x2a < '\0')) goto LAB_000561a0;
      }
    }
  }
  return false;
}



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

undefined1 FUN_00055fe0(int param_1)

{
  code *pcVar1;
  int *piVar2;
  int iVar3;
  byte bVar4;
  char cVar5;
  int iVar6;
  int extraout_EDX;
  byte *pbVar7;
  byte *pbVar8;
  byte *pbVar9;
  bool bVar10;
  bool bVar11;
  bool bVar12;
  byte bVar13;
  
  bVar13 = 0;
  if (param_1 == 0) {
    return 0;
  }
  bVar4 = *(byte *)(param_1 + 0x2a) & 7;
  if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {
    if ((*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0))
    goto LAB_0005603c;
    pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14);
    if (pcVar1 == FUN_00054e20) {
      return 0;
    }
    iVar6 = (*pcVar1)(*(int **)(param_1 + 8));
    if (iVar6 == 0) {
      return 0;
    }
    bVar4 = *(byte *)(param_1 + 0x2a) & 7;
    if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {
      if ((*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0))
      goto LAB_0005603c;
      if (-1 < (char)*(byte *)(param_1 + 0x2b)) goto LAB_000560de;
      goto LAB_00056080;
    }
    if (bVar4 == 4) goto LAB_0005603c;
    if (*(char *)(param_1 + 0x2b) < '\0') {
      return 0;
    }
  }
  else {
    if (bVar4 != 4) {
      return 0;
    }
LAB_0005603c:
    if (*(byte *)(param_1 + 0x28) >> 4 == 2) {
      return 0;
    }
    if ((*(byte *)(param_1 + 0x2c) & 2) != 0) {
      return 0;
    }
    iVar6 = DAT_0033f2f0;
    if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_00056205;
    if (*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x49b1) != '\0') {
      return 0;
    }
    if (*(char *)(param_1 + 0x2b) < '\0') {
      if (bVar4 != 0) {
        return 0;
      }
LAB_00056080:
      pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14);
      if (pcVar1 == FUN_00054e20) {
        return 0;
      }
      iVar6 = (*pcVar1)(*(int **)(param_1 + 8));
      if (iVar6 == 0) {
        return 0;
      }
    }
  }
LAB_000560de:
  piVar2 = *(int **)(DAT_0033f2f0 + 0xc);
  if (piVar2 == (int *)0x0) {
                    /* WARNING: Subroutine does not return */
    FUN_0008b620("../../gold/parameters.h",0x69,"target",0);
  }
  cVar5 = (**(code **)(*piVar2 + 0x1c))(piVar2,param_1);
  if (cVar5 == '\0') {
    iVar3 = *(int *)(DAT_0033f2f0 + 8);
    iVar6 = extraout_EDX;
    if (iVar3 == 0) {
LAB_00056205:
                    /* WARNING: Subroutine does not return */
      FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar6);
    }
    pbVar8 = *(byte **)(iVar3 + 0x42e4);
    bVar10 = false;
    bVar12 = pbVar8 == (byte *)0x0;
    if (bVar12) {
LAB_000561a0:
      if ((*(byte *)(param_1 + 0x29) & 3) == 2) {
        return 1;
      }
      if (*(char *)(iVar3 + 0x1a25) != '\0') {
        return *(undefined1 *)(iVar3 + 0x4eb5);
      }
      return 1;
    }
    iVar6 = 0xb;
    pbVar7 = pbVar8;
    pbVar9 = (byte *)"ignore-all";
    do {
      if (iVar6 == 0) break;
      iVar6 = iVar6 + -1;
      bVar10 = *pbVar7 < *pbVar9;
      bVar12 = *pbVar7 == *pbVar9;
      pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;
      pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;
    } while (bVar12);
    bVar11 = false;
    bVar10 = (!bVar10 && !bVar12) == bVar10;
    if (!bVar10) {
      iVar6 = 0xb;
      pbVar7 = pbVar8;
      pbVar9 = (byte *)"report-all";
      do {
        if (iVar6 == 0) break;
        iVar6 = iVar6 + -1;
        bVar11 = *pbVar7 < *pbVar9;
        bVar10 = *pbVar7 == *pbVar9;
        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;
        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;
      } while (bVar10);
      bVar12 = false;
      bVar10 = (!bVar11 && !bVar10) == bVar11;
      if (bVar10) {
        return 1;
      }
      iVar6 = 0x17;
      pbVar7 = pbVar8;
      pbVar9 = (byte *)"ignore-in-object-files";
      do {
        if (iVar6 == 0) break;
        iVar6 = iVar6 + -1;
        bVar12 = *pbVar7 < *pbVar9;
        bVar10 = *pbVar7 == *pbVar9;
        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;
        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;
      } while (bVar10);
      bVar10 = (!bVar12 && !bVar10) == bVar12;
      if ((!bVar10) || (bVar10 = (*(byte *)(param_1 + 0x2b) & 1) == 0, !bVar10)) {
        bVar12 = false;
        iVar6 = 0x16;
        pbVar7 = (byte *)"ignore-in-shared-libs";
        do {
          if (iVar6 == 0) break;
          iVar6 = iVar6 + -1;
          bVar12 = *pbVar8 < *pbVar7;
          bVar10 = *pbVar8 == *pbVar7;
          pbVar8 = pbVar8 + (uint)bVar13 * -2 + 1;
          pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;
        } while (bVar10);
        if (((!bVar12 && !bVar10) != bVar12) || (*(char *)(param_1 + 0x2a) < '\0'))
        goto LAB_000561a0;
      }
    }
  }
  return 0;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00035680
ADD EBX,0x2e9017
SUB ESP,0x1c
MOV EBP,dword ptr [ESP + 0x30]
TEST EBP,EBP
JZ 0x00056028
MOVZX EAX,byte ptr [EBP + 0x2a]
AND EAX,0x7
JNZ 0x00056038
MOV ESI,dword ptr [EBP + 0xc]
TEST ESI,ESI
JNZ 0x00056010
TEST byte ptr [EBP + 0x2b],0x20
JNZ 0x0005603c
MOV EDX,dword ptr [EBP + 0x8]
LEA ESI,[EBX + 0xffd15e20]
MOV EAX,dword ptr [EDX]
MOV EAX,dword ptr [EAX + 0x14]
CMP EAX,ESI
JNZ 0x000560a0
LEA ESI,[ESI]
XOR EAX,EAX
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
CMP AL,0x4
JNZ 0x00056028
MOVZX EDX,byte ptr [EBP + 0x28]
SHR DL,0x4
CMP DL,0x2
JZ 0x00056028
TEST byte ptr [EBP + 0x2c],0x2
JNZ 0x00056028
LEA ESI,[EBX + 0x2f0]
MOV EDX,dword ptr [ESI]
MOV ECX,dword ptr [EDX + 0x8]
TEST ECX,ECX
JZ 0x00056205
CMP byte ptr [ECX + 0x49b1],0x0
JNZ 0x00056028
CMP byte ptr [EBP + 0x2b],0x0
JNS 0x000560de
TEST AL,AL
JNZ 0x00056028
LEA ESI,[EBX + 0xffd15e20]
LEA ESI,[ESI]
MOV EDX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EDX]
MOV EAX,dword ptr [EAX + 0x14]
CMP EAX,ESI
JZ 0x00056028
SUB ESP,0xc
PUSH EDX
CALL EAX
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x000560d6
JMP 0x00056028
SUB ESP,0xc
PUSH EDX
CALL EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00056028
MOVZX EAX,byte ptr [EBP + 0x2a]
AND EAX,0x7
JNZ 0x000561d8
MOV ECX,dword ptr [EBP + 0xc]
MOVZX EDX,byte ptr [EBP + 0x2b]
TEST ECX,ECX
JNZ 0x000560d2
TEST DL,0x20
JNZ 0x0005603c
TEST DL,DL
JS 0x00056080
LEA ESI,[EBX + 0x2f0]
MOV EDX,dword ptr [ESI]
MOV EAX,dword ptr [EDX + 0xc]
TEST EAX,EAX
JZ 0x000561ef
SUB ESP,0x8
MOV EDX,dword ptr [EAX]
PUSH EBP
PUSH EAX
CALL dword ptr [EDX + 0x1c]
ADD ESP,0x10
TEST AL,AL
JNZ 0x00056028
MOV EAX,dword ptr [ESI]
MOV EAX,dword ptr [EAX + 0x8]
MOV dword ptr [ESP + 0xc],EAX
TEST EAX,EAX
JZ 0x00056205
MOV EDX,dword ptr [EAX + 0x42e4]
TEST EDX,EDX
JZ 0x000561a0
MOV ECX,0xb
LEA EDI,[EBX + 0xfff0705a]
MOV ESI,EDX
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x00056028
MOV ECX,0xb
LEA EDI,[EBX + 0xfff07065]
MOV ESI,EDX
MOV EAX,0x1
CMPSB.REPE ES:EDI,ESI
SETA CL
SBB CL,0x0
TEST CL,CL
JZ 0x0005602a
MOV ECX,0x17
LEA EDI,[EBX + 0xfff07070]
MOV ESI,EDX
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x0005617d
TEST byte ptr [EBP + 0x2b],0x1
JZ 0x00056028
MOV ECX,0x16
LEA EDI,[EBX + 0xfff07087]
MOV ESI,EDX
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x000561a0
CMP byte ptr [EBP + 0x2a],0x0
JNS 0x00056028
NOP
MOVZX EDX,byte ptr [EBP + 0x29]
MOV EAX,0x1
AND EDX,0x3
CMP DL,0x2
JZ 0x0005602a
MOV EDI,dword ptr [ESP + 0xc]
CMP byte ptr [EDI + 0x1a25],0x0
JZ 0x0005602a
MOVZX EAX,byte ptr [EDI + 0x4eb5]
JMP 0x0005602a
CMP AL,0x4
JZ 0x0005603c
CMP byte ptr [EBP + 0x2b],0x0
JS 0x00056028
JMP 0x000560d6
PUSH EAX
LEA EAX,[EBX + 0xfff0e29c]
PUSH EAX
LEA EAX,[EBX + 0xfff0726d]
PUSH 0x69
PUSH EAX
CALL 0x0008b620
LEA EAX,[EBX + 0xfff0e588]
PUSH EDX
PUSH EAX
LEA EAX,[EBX + 0xfff0726d]
PUSH 0x5c
PUSH EAX
CALL 0x0008b620
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined1 FUN_00055fe0(int param_1)\n\n{\n  code *pcVar1;\n  int *piVar2;\n  int iVar3;\n  byte bVar4;\n  char cVar5;\n  int iVar6;\n  int extraout_EDX;\n  byte *pbVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  bool bVar10;\n  bool bVar11;\n  bool bVar12;\n  byte bVar13;\n  \n  bVar13 = 0;\n  if (param_1 == 0) {\n    return 0;\n  }\n  bVar4 = *(byte *)(param_1 + 0x2a) & 7;\n  if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {\n    if ((*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0))\n    goto LAB_0005603c;\n    pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14);\n    if (pcVar1 == FUN_00054e20) {\n      return 0;\n    }\n    iVar6 = (*pcVar1)(*(int **)(param_1 + 8));\n    if (iVar6 == 0) {\n      return 0;\n    }\n    bVar4 = *(byte *)(param_1 + 0x2a) & 7;\n    if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {\n      if ((*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0))\n      goto LAB_0005603c;\n      if (-1 < (char)*(byte *)(param_1 + 0x2b)) goto LAB_000560de;\n      goto LAB_00056080;\n    }\n    if (bVar4 == 4) goto LAB_0005603c;\n    if (*(char *)(param_1 + 0x2b) < '\0') {\n      return 0;\n    }\n  }\n  else {\n    if (bVar4 != 4) {\n      return 0;\n    }\nLAB_0005603c:\n    if (*(byte *)(param_1 + 0x28) >> 4 == 2) {\n      return 0;\n    }\n    if ((*(byte *)(param_1 + 0x2c) & 2) != 0) {\n      return 0;\n    }\n    iVar6 = DAT_0033f2f0;\n    if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_00056205;\n    if (*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x49b1) != '\0') {\n      return 0;\n    }\n    if (*(char *)(param_1 + 0x2b) < '\0') {\n      if (bVar4 != 0) {\n        return 0;\n      }\nLAB_00056080:\n      pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14);\n      if (pcVar1 == FUN_00054e20) {\n        return 0;\n      }\n      iVar6 = (*pcVar1)(*(int **)(param_1 + 8));\n      if (iVar6 == 0) {\n        return 0;\n      }\n    }\n  }\nLAB_000560de:\n  piVar2 = *(int **)(DAT_0033f2f0 + 0xc);\n  if (piVar2 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n  }\n  cVar5 = (**(code **)(*piVar2 + 0x1c))(piVar2,param_1);\n  if (cVar5 == '\0') {\n    iVar3 = *(int *)(DAT_0033f2f0 + 8);\n    iVar6 = extraout_EDX;\n    if (iVar3 == 0) {\nLAB_00056205:\n                    /* WARNING: Subroutine does not return */\n      FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar6);\n    }\n    pbVar8 = *(byte **)(iVar3 + 0x42e4);\n    bVar10 = false;\n    bVar12 = pbVar8 == (byte *)0x0;\n    if (bVar12) {\nLAB_000561a0:\n      if ((*(byte *)(param_1 + 0x29) & 3) == 2) {\n        return 1;\n      }\n      if (*(char *)(iVar3 + 0x1a25) != '\0') {\n        return *(undefined1 *)(iVar3 + 0x4eb5);\n      }\n      return 1;\n    }\n    iVar6 = 0xb;\n    pbVar7 = pbVar8;\n    pbVar9 = (byte *)"ignore-all";\n    do {\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      bVar10 = *pbVar7 < *pbVar9;\n      bVar12 = *pbVar7 == *pbVar9;\n      pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n      pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar12) == bVar10;\n    if (!bVar10) {\n      iVar6 = 0xb;\n      pbVar7 = pbVar8;\n      pbVar9 = (byte *)"report-all";\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar11 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n      } while (bVar10);\n      bVar12 = false;\n      bVar10 = (!bVar11 && !bVar10) == bVar11;\n      if (bVar10) {\n        return 1;\n      }\n      iVar6 = 0x17;\n      pbVar7 = pbVar8;\n      pbVar9 = (byte *)"ignore-in-object-files";\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar12 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n      } while (bVar10);\n      bVar10 = (!bVar12 && !bVar10) == bVar12;\n      if ((!bVar10) || (bVar10 = (*(byte *)(param_1 + 0x2b) & 1) == 0, !bVar10)) {\n        bVar12 = false;\n        iVar6 = 0x16;\n        pbVar7 = (byte *)"ignore-in-shared-libs";\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar12 = *pbVar8 < *pbVar7;\n          bVar10 = *pbVar8 == *pbVar7;\n          pbVar8 = pbVar8 + (uint)bVar13 * -2 + 1;\n          pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        } while (bVar10);\n        if (((!bVar12 && !bVar10) != bVar12) || (*(char *)(param_1 + 0x2a) < '\0'))\n        goto LAB_000561a0;\n      }\n    }\n  }\n  return 0;\n}\n\n" comment (function_definition "undefined1 FUN_00055fe0(int param_1)\n\n{\n  code *pcVar1;\n  int *piVar2;\n  int iVar3;\n  byte bVar4;\n  char cVar5;\n  int iVar6;\n  int extraout_EDX;\n  byte *pbVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  bool bVar10;\n  bool bVar11;\n  bool bVar12;\n  byte bVar13;\n  \n  bVar13 = 0;\n  if (param_1 == 0) {\n    return 0;\n  }\n  bVar4 = *(byte *)(param_1 + 0x2a) & 7;\n  if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {\n    if ((*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0))\n    goto LAB_0005603c;\n    pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14);\n    if (pcVar1 == FUN_00054e20) {\n      return 0;\n    }\n    iVar6 = (*pcVar1)(*(int **)(param_1 + 8));\n    if (iVar6 == 0) {\n      return 0;\n    }\n    bVar4 = *(byte *)(param_1 + 0x2a) & 7;\n    if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {\n      if ((*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0))\n      goto LAB_0005603c;\n      if (-1 < (char)*(byte *)(param_1 + 0x2b)) goto LAB_000560de;\n      goto LAB_00056080;\n    }\n    if (bVar4 == 4) goto LAB_0005603c;\n    if (*(char *)(param_1 + 0x2b) < '\0') {\n      return 0;\n    }\n  }\n  else {\n    if (bVar4 != 4) {\n      return 0;\n    }\nLAB_0005603c:\n    if (*(byte *)(param_1 + 0x28) >> 4 == 2) {\n      return 0;\n    }\n    if ((*(byte *)(param_1 + 0x2c) & 2) != 0) {\n      return 0;\n    }\n    iVar6 = DAT_0033f2f0;\n    if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_00056205;\n    if (*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x49b1) != '\0') {\n      return 0;\n    }\n    if (*(char *)(param_1 + 0x2b) < '\0') {\n      if (bVar4 != 0) {\n        return 0;\n      }\nLAB_00056080:\n      pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14);\n      if (pcVar1 == FUN_00054e20) {\n        return 0;\n      }\n      iVar6 = (*pcVar1)(*(int **)(param_1 + 8));\n      if (iVar6 == 0) {\n        return 0;\n      }\n    }\n  }\nLAB_000560de:\n  piVar2 = *(int **)(DAT_0033f2f0 + 0xc);\n  if (piVar2 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n  }\n  cVar5 = (**(code **)(*piVar2 + 0x1c))(piVar2,param_1);\n  if (cVar5 == '\0') {\n    iVar3 = *(int *)(DAT_0033f2f0 + 8);\n    iVar6 = extraout_EDX;\n    if (iVar3 == 0) {\nLAB_00056205:\n                    /* WARNING: Subroutine does not return */\n      FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar6);\n    }\n    pbVar8 = *(byte **)(iVar3 + 0x42e4);\n    bVar10 = false;\n    bVar12 = pbVar8 == (byte *)0x0;\n    if (bVar12) {\nLAB_000561a0:\n      if ((*(byte *)(param_1 + 0x29) & 3) == 2) {\n        return 1;\n      }\n      if (*(char *)(iVar3 + 0x1a25) != '\0') {\n        return *(undefined1 *)(iVar3 + 0x4eb5);\n      }\n      return 1;\n    }\n    iVar6 = 0xb;\n    pbVar7 = pbVar8;\n    pbVar9 = (byte *)"ignore-all";\n    do {\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      bVar10 = *pbVar7 < *pbVar9;\n      bVar12 = *pbVar7 == *pbVar9;\n      pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n      pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar12) == bVar10;\n    if (!bVar10) {\n      iVar6 = 0xb;\n      pbVar7 = pbVar8;\n      pbVar9 = (byte *)"report-all";\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar11 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n      } while (bVar10);\n      bVar12 = false;\n      bVar10 = (!bVar11 && !bVar10) == bVar11;\n      if (bVar10) {\n        return 1;\n      }\n      iVar6 = 0x17;\n      pbVar7 = pbVar8;\n      pbVar9 = (byte *)"ignore-in-object-files";\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar12 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n      } while (bVar10);\n      bVar10 = (!bVar12 && !bVar10) == bVar12;\n      if ((!bVar10) || (bVar10 = (*(byte *)(param_1 + 0x2b) & 1) == 0, !bVar10)) {\n        bVar12 = false;\n        iVar6 = 0x16;\n        pbVar7 = (byte *)"ignore-in-shared-libs";\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar12 = *pbVar8 < *pbVar7;\n          bVar10 = *pbVar8 == *pbVar7;\n          pbVar8 = pbVar8 + (uint)bVar13 * -2 + 1;\n          pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        } while (bVar10);\n        if (((!bVar12 && !bVar10) != bVar12) || (*(char *)(param_1 + 0x2a) < '\0'))\n        goto LAB_000561a0;\n      }\n    }\n  }\n  return 0;\n}" type_identifier (function_declarator "FUN_00055fe0(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  code *pcVar1;\n  int *piVar2;\n  int iVar3;\n  byte bVar4;\n  char cVar5;\n  int iVar6;\n  int extraout_EDX;\n  byte *pbVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  bool bVar10;\n  bool bVar11;\n  bool bVar12;\n  byte bVar13;\n  \n  bVar13 = 0;\n  if (param_1 == 0) {\n    return 0;\n  }\n  bVar4 = *(byte *)(param_1 + 0x2a) & 7;\n  if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {\n    if ((*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0))\n    goto LAB_0005603c;\n    pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14);\n    if (pcVar1 == FUN_00054e20) {\n      return 0;\n    }\n    iVar6 = (*pcVar1)(*(int **)(param_1 + 8));\n    if (iVar6 == 0) {\n      return 0;\n    }\n    bVar4 = *(byte *)(param_1 + 0x2a) & 7;\n    if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {\n      if ((*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0))\n      goto LAB_0005603c;\n      if (-1 < (char)*(byte *)(param_1 + 0x2b)) goto LAB_000560de;\n      goto LAB_00056080;\n    }\n    if (bVar4 == 4) goto LAB_0005603c;\n    if (*(char *)(param_1 + 0x2b) < '\0') {\n      return 0;\n    }\n  }\n  else {\n    if (bVar4 != 4) {\n      return 0;\n    }\nLAB_0005603c:\n    if (*(byte *)(param_1 + 0x28) >> 4 == 2) {\n      return 0;\n    }\n    if ((*(byte *)(param_1 + 0x2c) & 2) != 0) {\n      return 0;\n    }\n    iVar6 = DAT_0033f2f0;\n    if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_00056205;\n    if (*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x49b1) != '\0') {\n      return 0;\n    }\n    if (*(char *)(param_1 + 0x2b) < '\0') {\n      if (bVar4 != 0) {\n        return 0;\n      }\nLAB_00056080:\n      pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14);\n      if (pcVar1 == FUN_00054e20) {\n        return 0;\n      }\n      iVar6 = (*pcVar1)(*(int **)(param_1 + 8));\n      if (iVar6 == 0) {\n        return 0;\n      }\n    }\n  }\nLAB_000560de:\n  piVar2 = *(int **)(DAT_0033f2f0 + 0xc);\n  if (piVar2 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n  }\n  cVar5 = (**(code **)(*piVar2 + 0x1c))(piVar2,param_1);\n  if (cVar5 == '\0') {\n    iVar3 = *(int *)(DAT_0033f2f0 + 8);\n    iVar6 = extraout_EDX;\n    if (iVar3 == 0) {\nLAB_00056205:\n                    /* WARNING: Subroutine does not return */\n      FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar6);\n    }\n    pbVar8 = *(byte **)(iVar3 + 0x42e4);\n    bVar10 = false;\n    bVar12 = pbVar8 == (byte *)0x0;\n    if (bVar12) {\nLAB_000561a0:\n      if ((*(byte *)(param_1 + 0x29) & 3) == 2) {\n        return 1;\n      }\n      if (*(char *)(iVar3 + 0x1a25) != '\0') {\n        return *(undefined1 *)(iVar3 + 0x4eb5);\n      }\n      return 1;\n    }\n    iVar6 = 0xb;\n    pbVar7 = pbVar8;\n    pbVar9 = (byte *)"ignore-all";\n    do {\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      bVar10 = *pbVar7 < *pbVar9;\n      bVar12 = *pbVar7 == *pbVar9;\n      pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n      pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar12) == bVar10;\n    if (!bVar10) {\n      iVar6 = 0xb;\n      pbVar7 = pbVar8;\n      pbVar9 = (byte *)"report-all";\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar11 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n      } while (bVar10);\n      bVar12 = false;\n      bVar10 = (!bVar11 && !bVar10) == bVar11;\n      if (bVar10) {\n        return 1;\n      }\n      iVar6 = 0x17;\n      pbVar7 = pbVar8;\n      pbVar9 = (byte *)"ignore-in-object-files";\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar12 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n      } while (bVar10);\n      bVar10 = (!bVar12 && !bVar10) == bVar12;\n      if ((!bVar10) || (bVar10 = (*(byte *)(param_1 + 0x2b) & 1) == 0, !bVar10)) {\n        bVar12 = false;\n        iVar6 = 0x16;\n        pbVar7 = (byte *)"ignore-in-shared-libs";\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar12 = *pbVar8 < *pbVar7;\n          bVar10 = *pbVar8 == *pbVar7;\n          pbVar8 = pbVar8 + (uint)bVar13 * -2 + 1;\n          pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        } while (bVar10);\n        if (((!bVar12 && !bVar10) != bVar12) || (*(char *)(param_1 + 0x2a) < '\0'))\n        goto LAB_000561a0;\n      }\n    }\n  }\n  return 0;\n}" { (declaration "code *pcVar1;" type_identifier (pointer_declarator "*pcVar1" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "byte bVar4;" type_identifier identifier ;) (declaration "char cVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int extraout_EDX;" primitive_type identifier ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "bool bVar10;" primitive_type identifier ;) (declaration "bool bVar11;" primitive_type identifier ;) (declaration "bool bVar12;" primitive_type identifier ;) (declaration "byte bVar13;" type_identifier identifier ;) (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) (if_statement "if (param_1 == 0) {\n    return 0;\n  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar4 = *(byte *)(param_1 + 0x2a) & 7;" (assignment_expression "bVar4 = *(byte *)(param_1 + 0x2a) & 7" identifier = (binary_expression "*(byte *)(param_1 + 0x2a) & 7" (pointer_expression "*(byte *)(param_1 + 0x2a)" * (cast_expression "(byte *)(param_1 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a)" ( (binary_expression "param_1 + 0x2a" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {\n    if ((*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0))\n    goto LAB_0005603c;\n    pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14);\n    if (pcVar1 == FUN_00054e20) {\n      return 0;\n    }\n    iVar6 = (*pcVar1)(*(int **)(param_1 + 8));\n    if (iVar6 == 0) {\n      return 0;\n    }\n    bVar4 = *(byte *)(param_1 + 0x2a) & 7;\n    if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {\n      if ((*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0))\n      goto LAB_0005603c;\n      if (-1 < (char)*(byte *)(param_1 + 0x2b)) goto LAB_000560de;\n      goto LAB_00056080;\n    }\n    if (bVar4 == 4) goto LAB_0005603c;\n    if (*(char *)(param_1 + 0x2b) < '\0') {\n      return 0;\n    }\n  }\n  else {\n    if (bVar4 != 4) {\n      return 0;\n    }\nLAB_0005603c:\n    if (*(byte *)(param_1 + 0x28) >> 4 == 2) {\n      return 0;\n    }\n    if ((*(byte *)(param_1 + 0x2c) & 2) != 0) {\n      return 0;\n    }\n    iVar6 = DAT_0033f2f0;\n    if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_00056205;\n    if (*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x49b1) != '\0') {\n      return 0;\n    }\n    if (*(char *)(param_1 + 0x2b) < '\0') {\n      if (bVar4 != 0) {\n        return 0;\n      }\nLAB_00056080:\n      pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14);\n      if (pcVar1 == FUN_00054e20) {\n        return 0;\n      }\n      iVar6 = (*pcVar1)(*(int **)(param_1 + 8));\n      if (iVar6 == 0) {\n        return 0;\n      }\n    }\n  }" if (parenthesized_expression "((*(byte *)(param_1 + 0x2a) & 7) == 0)" ( (binary_expression "(*(byte *)(param_1 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0x2a) & 7)" ( (binary_expression "*(byte *)(param_1 + 0x2a) & 7" (pointer_expression "*(byte *)(param_1 + 0x2a)" * (cast_expression "(byte *)(param_1 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a)" ( (binary_expression "param_1 + 0x2a" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    if ((*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0))\n    goto LAB_0005603c;\n    pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14);\n    if (pcVar1 == FUN_00054e20) {\n      return 0;\n    }\n    iVar6 = (*pcVar1)(*(int **)(param_1 + 8));\n    if (iVar6 == 0) {\n      return 0;\n    }\n    bVar4 = *(byte *)(param_1 + 0x2a) & 7;\n    if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {\n      if ((*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0))\n      goto LAB_0005603c;\n      if (-1 < (char)*(byte *)(param_1 + 0x2b)) goto LAB_000560de;\n      goto LAB_00056080;\n    }\n    if (bVar4 == 4) goto LAB_0005603c;\n    if (*(char *)(param_1 + 0x2b) < '\0') {\n      return 0;\n    }\n  }" { (if_statement "if ((*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0))\n    goto LAB_0005603c;" if (parenthesized_expression "((*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0))" ( (binary_expression "(*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0)" (parenthesized_expression "(*(int *)(param_1 + 0xc) == 0)" ( (binary_expression "*(int *)(param_1 + 0xc) == 0" (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "((*(byte *)(param_1 + 0x2b) & 0x20) != 0)" ( (binary_expression "(*(byte *)(param_1 + 0x2b) & 0x20) != 0" (parenthesized_expression "(*(byte *)(param_1 + 0x2b) & 0x20)" ( (binary_expression "*(byte *)(param_1 + 0x2b) & 0x20" (pointer_expression "*(byte *)(param_1 + 0x2b)" * (cast_expression "(byte *)(param_1 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2b)" ( (binary_expression "param_1 + 0x2b" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_0005603c;" goto statement_identifier ;)) (expression_statement "pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14);" (assignment_expression "pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14)" identifier = (pointer_expression "*(code **)(**(int **)(param_1 + 8) + 0x14)" * (cast_expression "(code **)(**(int **)(param_1 + 8) + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(param_1 + 8) + 0x14)" ( (binary_expression "**(int **)(param_1 + 8) + 0x14" (pointer_expression "**(int **)(param_1 + 8)" * (pointer_expression "*(int **)(param_1 + 8)" * (cast_expression "(int **)(param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar1 == FUN_00054e20) {\n      return 0;\n    }" if (parenthesized_expression "(pcVar1 == FUN_00054e20)" ( (binary_expression "pcVar1 == FUN_00054e20" identifier == identifier) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar6 = (*pcVar1)(*(int **)(param_1 + 8));" (assignment_expression "iVar6 = (*pcVar1)(*(int **)(param_1 + 8))" identifier = (call_expression "(*pcVar1)(*(int **)(param_1 + 8))" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "(*(int **)(param_1 + 8))" ( (pointer_expression "*(int **)(param_1 + 8)" * (cast_expression "(int **)(param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar6 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar4 = *(byte *)(param_1 + 0x2a) & 7;" (assignment_expression "bVar4 = *(byte *)(param_1 + 0x2a) & 7" identifier = (binary_expression "*(byte *)(param_1 + 0x2a) & 7" (pointer_expression "*(byte *)(param_1 + 0x2a)" * (cast_expression "(byte *)(param_1 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a)" ( (binary_expression "param_1 + 0x2a" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {\n      if ((*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0))\n      goto LAB_0005603c;\n      if (-1 < (char)*(byte *)(param_1 + 0x2b)) goto LAB_000560de;\n      goto LAB_00056080;\n    }" if (parenthesized_expression "((*(byte *)(param_1 + 0x2a) & 7) == 0)" ( (binary_expression "(*(byte *)(param_1 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0x2a) & 7)" ( (binary_expression "*(byte *)(param_1 + 0x2a) & 7" (pointer_expression "*(byte *)(param_1 + 0x2a)" * (cast_expression "(byte *)(param_1 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a)" ( (binary_expression "param_1 + 0x2a" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      if ((*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0))\n      goto LAB_0005603c;\n      if (-1 < (char)*(byte *)(param_1 + 0x2b)) goto LAB_000560de;\n      goto LAB_00056080;\n    }" { (if_statement "if ((*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0))\n      goto LAB_0005603c;" if (parenthesized_expression "((*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0))" ( (binary_expression "(*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0)" (parenthesized_expression "(*(int *)(param_1 + 0xc) == 0)" ( (binary_expression "*(int *)(param_1 + 0xc) == 0" (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "((*(byte *)(param_1 + 0x2b) & 0x20) != 0)" ( (binary_expression "(*(byte *)(param_1 + 0x2b) & 0x20) != 0" (parenthesized_expression "(*(byte *)(param_1 + 0x2b) & 0x20)" ( (binary_expression "*(byte *)(param_1 + 0x2b) & 0x20" (pointer_expression "*(byte *)(param_1 + 0x2b)" * (cast_expression "(byte *)(param_1 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2b)" ( (binary_expression "param_1 + 0x2b" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_0005603c;" goto statement_identifier ;)) (if_statement "if (-1 < (char)*(byte *)(param_1 + 0x2b)) goto LAB_000560de;" if (parenthesized_expression "(-1 < (char)*(byte *)(param_1 + 0x2b))" ( (binary_expression "-1 < (char)*(byte *)(param_1 + 0x2b)" number_literal < (cast_expression "(char)*(byte *)(param_1 + 0x2b)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)(param_1 + 0x2b)" * (cast_expression "(byte *)(param_1 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2b)" ( (binary_expression "param_1 + 0x2b" identifier + number_literal) )))))) )) (goto_statement "goto LAB_000560de;" goto statement_identifier ;)) (goto_statement "goto LAB_00056080;" goto statement_identifier ;) })) (if_statement "if (bVar4 == 4) goto LAB_0005603c;" if (parenthesized_expression "(bVar4 == 4)" ( (binary_expression "bVar4 == 4" identifier == number_literal) )) (goto_statement "goto LAB_0005603c;" goto statement_identifier ;)) (if_statement "if (*(char *)(param_1 + 0x2b) < '\0') {\n      return 0;\n    }" if (parenthesized_expression "(*(char *)(param_1 + 0x2b) < '\0')" ( (binary_expression "*(char *)(param_1 + 0x2b) < '\0'" (pointer_expression "*(char *)(param_1 + 0x2b)" * (cast_expression "(char *)(param_1 + 0x2b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2b)" ( (binary_expression "param_1 + 0x2b" identifier + number_literal) )))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) }) (else_clause "else {\n    if (bVar4 != 4) {\n      return 0;\n    }\nLAB_0005603c:\n    if (*(byte *)(param_1 + 0x28) >> 4 == 2) {\n      return 0;\n    }\n    if ((*(byte *)(param_1 + 0x2c) & 2) != 0) {\n      return 0;\n    }\n    iVar6 = DAT_0033f2f0;\n    if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_00056205;\n    if (*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x49b1) != '\0') {\n      return 0;\n    }\n    if (*(char *)(param_1 + 0x2b) < '\0') {\n      if (bVar4 != 0) {\n        return 0;\n      }\nLAB_00056080:\n      pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14);\n      if (pcVar1 == FUN_00054e20) {\n        return 0;\n      }\n      iVar6 = (*pcVar1)(*(int **)(param_1 + 8));\n      if (iVar6 == 0) {\n        return 0;\n      }\n    }\n  }" else (compound_statement "{\n    if (bVar4 != 4) {\n      return 0;\n    }\nLAB_0005603c:\n    if (*(byte *)(param_1 + 0x28) >> 4 == 2) {\n      return 0;\n    }\n    if ((*(byte *)(param_1 + 0x2c) & 2) != 0) {\n      return 0;\n    }\n    iVar6 = DAT_0033f2f0;\n    if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_00056205;\n    if (*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x49b1) != '\0') {\n      return 0;\n    }\n    if (*(char *)(param_1 + 0x2b) < '\0') {\n      if (bVar4 != 0) {\n        return 0;\n      }\nLAB_00056080:\n      pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14);\n      if (pcVar1 == FUN_00054e20) {\n        return 0;\n      }\n      iVar6 = (*pcVar1)(*(int **)(param_1 + 8));\n      if (iVar6 == 0) {\n        return 0;\n      }\n    }\n  }" { (if_statement "if (bVar4 != 4) {\n      return 0;\n    }" if (parenthesized_expression "(bVar4 != 4)" ( (binary_expression "bVar4 != 4" identifier != number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (labeled_statement "LAB_0005603c:\n    if (*(byte *)(param_1 + 0x28) >> 4 == 2) {\n      return 0;\n    }" statement_identifier : (if_statement "if (*(byte *)(param_1 + 0x28) >> 4 == 2) {\n      return 0;\n    }" if (parenthesized_expression "(*(byte *)(param_1 + 0x28) >> 4 == 2)" ( (binary_expression "*(byte *)(param_1 + 0x28) >> 4 == 2" (binary_expression "*(byte *)(param_1 + 0x28) >> 4" (pointer_expression "*(byte *)(param_1 + 0x28)" * (cast_expression "(byte *)(param_1 + 0x28)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) >> number_literal) == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) }))) (if_statement "if ((*(byte *)(param_1 + 0x2c) & 2) != 0) {\n      return 0;\n    }" if (parenthesized_expression "((*(byte *)(param_1 + 0x2c) & 2) != 0)" ( (binary_expression "(*(byte *)(param_1 + 0x2c) & 2) != 0" (parenthesized_expression "(*(byte *)(param_1 + 0x2c) & 2)" ( (binary_expression "*(byte *)(param_1 + 0x2c) & 2" (pointer_expression "*(byte *)(param_1 + 0x2c)" * (cast_expression "(byte *)(param_1 + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar6 = DAT_0033f2f0;" (assignment_expression "iVar6 = DAT_0033f2f0" identifier = identifier) ;) (if_statement "if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_00056205;" 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_00056205;" goto statement_identifier ;)) (if_statement "if (*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x49b1) != '\0') {\n      return 0;\n    }" if (parenthesized_expression "(*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x49b1) != '\0')" ( (binary_expression "*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x49b1) != '\0'" (pointer_expression "*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x49b1)" * (cast_expression "(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x49b1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_0033f2f0 + 8) + 0x49b1)" ( (binary_expression "*(int *)(DAT_0033f2f0 + 8) + 0x49b1" (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 ')) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (*(char *)(param_1 + 0x2b) < '\0') {\n      if (bVar4 != 0) {\n        return 0;\n      }\nLAB_00056080:\n      pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14);\n      if (pcVar1 == FUN_00054e20) {\n        return 0;\n      }\n      iVar6 = (*pcVar1)(*(int **)(param_1 + 8));\n      if (iVar6 == 0) {\n        return 0;\n      }\n    }" if (parenthesized_expression "(*(char *)(param_1 + 0x2b) < '\0')" ( (binary_expression "*(char *)(param_1 + 0x2b) < '\0'" (pointer_expression "*(char *)(param_1 + 0x2b)" * (cast_expression "(char *)(param_1 + 0x2b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2b)" ( (binary_expression "param_1 + 0x2b" identifier + number_literal) )))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if (bVar4 != 0) {\n        return 0;\n      }\nLAB_00056080:\n      pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14);\n      if (pcVar1 == FUN_00054e20) {\n        return 0;\n      }\n      iVar6 = (*pcVar1)(*(int **)(param_1 + 8));\n      if (iVar6 == 0) {\n        return 0;\n      }\n    }" { (if_statement "if (bVar4 != 0) {\n        return 0;\n      }" if (parenthesized_expression "(bVar4 != 0)" ( (binary_expression "bVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (labeled_statement "LAB_00056080:\n      pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14);" statement_identifier : (expression_statement "pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14);" (assignment_expression "pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14)" identifier = (pointer_expression "*(code **)(**(int **)(param_1 + 8) + 0x14)" * (cast_expression "(code **)(**(int **)(param_1 + 8) + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(param_1 + 8) + 0x14)" ( (binary_expression "**(int **)(param_1 + 8) + 0x14" (pointer_expression "**(int **)(param_1 + 8)" * (pointer_expression "*(int **)(param_1 + 8)" * (cast_expression "(int **)(param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) + number_literal) ))))) ;)) (if_statement "if (pcVar1 == FUN_00054e20) {\n        return 0;\n      }" if (parenthesized_expression "(pcVar1 == FUN_00054e20)" ( (binary_expression "pcVar1 == FUN_00054e20" identifier == identifier) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar6 = (*pcVar1)(*(int **)(param_1 + 8));" (assignment_expression "iVar6 = (*pcVar1)(*(int **)(param_1 + 8))" identifier = (call_expression "(*pcVar1)(*(int **)(param_1 + 8))" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "(*(int **)(param_1 + 8))" ( (pointer_expression "*(int **)(param_1 + 8)" * (cast_expression "(int **)(param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar6 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) })) }))) (labeled_statement "LAB_000560de:\n  piVar2 = *(int **)(DAT_0033f2f0 + 0xc);" statement_identifier : (expression_statement "piVar2 = *(int **)(DAT_0033f2f0 + 0xc);" (assignment_expression "piVar2 = *(int **)(DAT_0033f2f0 + 0xc)" identifier = (pointer_expression "*(int **)(DAT_0033f2f0 + 0xc)" * (cast_expression "(int **)(DAT_0033f2f0 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_0033f2f0 + 0xc)" ( (binary_expression "DAT_0033f2f0 + 0xc" identifier + number_literal) ))))) ;)) (if_statement "if (piVar2 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n  }" if (parenthesized_expression "(piVar2 == (int *)0x0)" ( (binary_expression "piVar2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n  }" { comment (expression_statement "FUN_0008b620("../../gold/parameters.h",0x69,"target",0);" (call_expression "FUN_0008b620("../../gold/parameters.h",0x69,"target",0)" identifier (argument_list "("../../gold/parameters.h",0x69,"target",0)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""target"" " string_content ") , number_literal ))) ;) })) (expression_statement "cVar5 = (**(code **)(*piVar2 + 0x1c))(piVar2,param_1);" (assignment_expression "cVar5 = (**(code **)(*piVar2 + 0x1c))(piVar2,param_1)" identifier = (call_expression "(**(code **)(*piVar2 + 0x1c))(piVar2,param_1)" (parenthesized_expression "(**(code **)(*piVar2 + 0x1c))" ( (pointer_expression "**(code **)(*piVar2 + 0x1c)" * (pointer_expression "*(code **)(*piVar2 + 0x1c)" * (cast_expression "(code **)(*piVar2 + 0x1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar2 + 0x1c)" ( (binary_expression "*piVar2 + 0x1c" (pointer_expression "*piVar2" * identifier) + number_literal) ))))) )) (argument_list "(piVar2,param_1)" ( identifier , identifier )))) ;) (if_statement "if (cVar5 == '\0') {\n    iVar3 = *(int *)(DAT_0033f2f0 + 8);\n    iVar6 = extraout_EDX;\n    if (iVar3 == 0) {\nLAB_00056205:\n                    /* WARNING: Subroutine does not return */\n      FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar6);\n    }\n    pbVar8 = *(byte **)(iVar3 + 0x42e4);\n    bVar10 = false;\n    bVar12 = pbVar8 == (byte *)0x0;\n    if (bVar12) {\nLAB_000561a0:\n      if ((*(byte *)(param_1 + 0x29) & 3) == 2) {\n        return 1;\n      }\n      if (*(char *)(iVar3 + 0x1a25) != '\0') {\n        return *(undefined1 *)(iVar3 + 0x4eb5);\n      }\n      return 1;\n    }\n    iVar6 = 0xb;\n    pbVar7 = pbVar8;\n    pbVar9 = (byte *)"ignore-all";\n    do {\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      bVar10 = *pbVar7 < *pbVar9;\n      bVar12 = *pbVar7 == *pbVar9;\n      pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n      pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar12) == bVar10;\n    if (!bVar10) {\n      iVar6 = 0xb;\n      pbVar7 = pbVar8;\n      pbVar9 = (byte *)"report-all";\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar11 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n      } while (bVar10);\n      bVar12 = false;\n      bVar10 = (!bVar11 && !bVar10) == bVar11;\n      if (bVar10) {\n        return 1;\n      }\n      iVar6 = 0x17;\n      pbVar7 = pbVar8;\n      pbVar9 = (byte *)"ignore-in-object-files";\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar12 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n      } while (bVar10);\n      bVar10 = (!bVar12 && !bVar10) == bVar12;\n      if ((!bVar10) || (bVar10 = (*(byte *)(param_1 + 0x2b) & 1) == 0, !bVar10)) {\n        bVar12 = false;\n        iVar6 = 0x16;\n        pbVar7 = (byte *)"ignore-in-shared-libs";\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar12 = *pbVar8 < *pbVar7;\n          bVar10 = *pbVar8 == *pbVar7;\n          pbVar8 = pbVar8 + (uint)bVar13 * -2 + 1;\n          pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        } while (bVar10);\n        if (((!bVar12 && !bVar10) != bVar12) || (*(char *)(param_1 + 0x2a) < '\0'))\n        goto LAB_000561a0;\n      }\n    }\n  }" if (parenthesized_expression "(cVar5 == '\0')" ( (binary_expression "cVar5 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar3 = *(int *)(DAT_0033f2f0 + 8);\n    iVar6 = extraout_EDX;\n    if (iVar3 == 0) {\nLAB_00056205:\n                    /* WARNING: Subroutine does not return */\n      FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar6);\n    }\n    pbVar8 = *(byte **)(iVar3 + 0x42e4);\n    bVar10 = false;\n    bVar12 = pbVar8 == (byte *)0x0;\n    if (bVar12) {\nLAB_000561a0:\n      if ((*(byte *)(param_1 + 0x29) & 3) == 2) {\n        return 1;\n      }\n      if (*(char *)(iVar3 + 0x1a25) != '\0') {\n        return *(undefined1 *)(iVar3 + 0x4eb5);\n      }\n      return 1;\n    }\n    iVar6 = 0xb;\n    pbVar7 = pbVar8;\n    pbVar9 = (byte *)"ignore-all";\n    do {\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      bVar10 = *pbVar7 < *pbVar9;\n      bVar12 = *pbVar7 == *pbVar9;\n      pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n      pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar12) == bVar10;\n    if (!bVar10) {\n      iVar6 = 0xb;\n      pbVar7 = pbVar8;\n      pbVar9 = (byte *)"report-all";\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar11 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n      } while (bVar10);\n      bVar12 = false;\n      bVar10 = (!bVar11 && !bVar10) == bVar11;\n      if (bVar10) {\n        return 1;\n      }\n      iVar6 = 0x17;\n      pbVar7 = pbVar8;\n      pbVar9 = (byte *)"ignore-in-object-files";\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar12 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n      } while (bVar10);\n      bVar10 = (!bVar12 && !bVar10) == bVar12;\n      if ((!bVar10) || (bVar10 = (*(byte *)(param_1 + 0x2b) & 1) == 0, !bVar10)) {\n        bVar12 = false;\n        iVar6 = 0x16;\n        pbVar7 = (byte *)"ignore-in-shared-libs";\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar12 = *pbVar8 < *pbVar7;\n          bVar10 = *pbVar8 == *pbVar7;\n          pbVar8 = pbVar8 + (uint)bVar13 * -2 + 1;\n          pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        } while (bVar10);\n        if (((!bVar12 && !bVar10) != bVar12) || (*(char *)(param_1 + 0x2a) < '\0'))\n        goto LAB_000561a0;\n      }\n    }\n  }" { (expression_statement "iVar3 = *(int *)(DAT_0033f2f0 + 8);" (assignment_expression "iVar3 = *(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 "iVar6 = extraout_EDX;" (assignment_expression "iVar6 = extraout_EDX" identifier = identifier) ;) (if_statement "if (iVar3 == 0) {\nLAB_00056205:\n                    /* WARNING: Subroutine does not return */\n      FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar6);\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00056205:\n                    /* WARNING: Subroutine does not return */\n      FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar6);\n    }" { (labeled_statement "LAB_00056205:\n                    /* WARNING: Subroutine does not return */\n      FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar6);" statement_identifier : comment (expression_statement "FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar6);" (call_expression "FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar6)" identifier (argument_list "("../../gold/parameters.h",0x5c,"options",iVar6)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") , identifier ))) ;)) })) (expression_statement "pbVar8 = *(byte **)(iVar3 + 0x42e4);" (assignment_expression "pbVar8 = *(byte **)(iVar3 + 0x42e4)" identifier = (pointer_expression "*(byte **)(iVar3 + 0x42e4)" * (cast_expression "(byte **)(iVar3 + 0x42e4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x42e4)" ( (binary_expression "iVar3 + 0x42e4" identifier + number_literal) ))))) ;) (expression_statement "bVar10 = false;" (assignment_expression "bVar10 = false" identifier = false) ;) (expression_statement "bVar12 = pbVar8 == (byte *)0x0;" (assignment_expression "bVar12 = pbVar8 == (byte *)0x0" identifier = (binary_expression "pbVar8 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (bVar12) {\nLAB_000561a0:\n      if ((*(byte *)(param_1 + 0x29) & 3) == 2) {\n        return 1;\n      }\n      if (*(char *)(iVar3 + 0x1a25) != '\0') {\n        return *(undefined1 *)(iVar3 + 0x4eb5);\n      }\n      return 1;\n    }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\nLAB_000561a0:\n      if ((*(byte *)(param_1 + 0x29) & 3) == 2) {\n        return 1;\n      }\n      if (*(char *)(iVar3 + 0x1a25) != '\0') {\n        return *(undefined1 *)(iVar3 + 0x4eb5);\n      }\n      return 1;\n    }" { (labeled_statement "LAB_000561a0:\n      if ((*(byte *)(param_1 + 0x29) & 3) == 2) {\n        return 1;\n      }" statement_identifier : (if_statement "if ((*(byte *)(param_1 + 0x29) & 3) == 2) {\n        return 1;\n      }" if (parenthesized_expression "((*(byte *)(param_1 + 0x29) & 3) == 2)" ( (binary_expression "(*(byte *)(param_1 + 0x29) & 3) == 2" (parenthesized_expression "(*(byte *)(param_1 + 0x29) & 3)" ( (binary_expression "*(byte *)(param_1 + 0x29) & 3" (pointer_expression "*(byte *)(param_1 + 0x29)" * (cast_expression "(byte *)(param_1 + 0x29)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x29)" ( (binary_expression "param_1 + 0x29" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) }))) (if_statement "if (*(char *)(iVar3 + 0x1a25) != '\0') {\n        return *(undefined1 *)(iVar3 + 0x4eb5);\n      }" if (parenthesized_expression "(*(char *)(iVar3 + 0x1a25) != '\0')" ( (binary_expression "*(char *)(iVar3 + 0x1a25) != '\0'" (pointer_expression "*(char *)(iVar3 + 0x1a25)" * (cast_expression "(char *)(iVar3 + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1a25)" ( (binary_expression "iVar3 + 0x1a25" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        return *(undefined1 *)(iVar3 + 0x4eb5);\n      }" { (return_statement "return *(undefined1 *)(iVar3 + 0x4eb5);" return (pointer_expression "*(undefined1 *)(iVar3 + 0x4eb5)" * (cast_expression "(undefined1 *)(iVar3 + 0x4eb5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x4eb5)" ( (binary_expression "iVar3 + 0x4eb5" identifier + number_literal) )))) ;) })) (return_statement "return 1;" return number_literal ;) })) (expression_statement "iVar6 = 0xb;" (assignment_expression "iVar6 = 0xb" identifier = number_literal) ;) (expression_statement "pbVar7 = pbVar8;" (assignment_expression "pbVar7 = pbVar8" identifier = identifier) ;) (expression_statement "pbVar9 = (byte *)"ignore-all";" (assignment_expression "pbVar9 = (byte *)"ignore-all"" identifier = (cast_expression "(byte *)"ignore-all"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""ignore-all"" " string_content "))) ;) (do_statement "do {\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      bVar10 = *pbVar7 < *pbVar9;\n      bVar12 = *pbVar7 == *pbVar9;\n      pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n      pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);" do (compound_statement "{\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      bVar10 = *pbVar7 < *pbVar9;\n      bVar12 = *pbVar7 == *pbVar9;\n      pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n      pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n    }" { (if_statement "if (iVar6 == 0) break;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) (expression_statement "bVar10 = *pbVar7 < *pbVar9;" (assignment_expression "bVar10 = *pbVar7 < *pbVar9" identifier = (binary_expression "*pbVar7 < *pbVar9" (pointer_expression "*pbVar7" * identifier) < (pointer_expression "*pbVar9" * identifier))) ;) (expression_statement "bVar12 = *pbVar7 == *pbVar9;" (assignment_expression "bVar12 = *pbVar7 == *pbVar9" identifier = (binary_expression "*pbVar7 == *pbVar9" (pointer_expression "*pbVar7" * identifier) == (pointer_expression "*pbVar9" * identifier))) ;) (expression_statement "pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;" (assignment_expression "pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1" identifier = (binary_expression "pbVar7 + (uint)bVar13 * -2 + 1" (binary_expression "pbVar7 + (uint)bVar13 * -2" identifier + (binary_expression "(uint)bVar13 * -2" (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar13 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar13 * -2" identifier + (binary_expression "(uint)bVar13 * -2" (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar12)" ( identifier )) ;) (expression_statement "bVar11 = false;" (assignment_expression "bVar11 = false" identifier = false) ;) (expression_statement "bVar10 = (!bVar10 && !bVar12) == bVar10;" (assignment_expression "bVar10 = (!bVar10 && !bVar12) == bVar10" identifier = (binary_expression "(!bVar10 && !bVar12) == bVar10" (parenthesized_expression "(!bVar10 && !bVar12)" ( (binary_expression "!bVar10 && !bVar12" (unary_expression "!bVar10" ! identifier) && (unary_expression "!bVar12" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar10) {\n      iVar6 = 0xb;\n      pbVar7 = pbVar8;\n      pbVar9 = (byte *)"report-all";\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar11 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n      } while (bVar10);\n      bVar12 = false;\n      bVar10 = (!bVar11 && !bVar10) == bVar11;\n      if (bVar10) {\n        return 1;\n      }\n      iVar6 = 0x17;\n      pbVar7 = pbVar8;\n      pbVar9 = (byte *)"ignore-in-object-files";\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar12 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n      } while (bVar10);\n      bVar10 = (!bVar12 && !bVar10) == bVar12;\n      if ((!bVar10) || (bVar10 = (*(byte *)(param_1 + 0x2b) & 1) == 0, !bVar10)) {\n        bVar12 = false;\n        iVar6 = 0x16;\n        pbVar7 = (byte *)"ignore-in-shared-libs";\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar12 = *pbVar8 < *pbVar7;\n          bVar10 = *pbVar8 == *pbVar7;\n          pbVar8 = pbVar8 + (uint)bVar13 * -2 + 1;\n          pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        } while (bVar10);\n        if (((!bVar12 && !bVar10) != bVar12) || (*(char *)(param_1 + 0x2a) < '\0'))\n        goto LAB_000561a0;\n      }\n    }" if (parenthesized_expression "(!bVar10)" ( (unary_expression "!bVar10" ! identifier) )) (compound_statement "{\n      iVar6 = 0xb;\n      pbVar7 = pbVar8;\n      pbVar9 = (byte *)"report-all";\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar11 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n      } while (bVar10);\n      bVar12 = false;\n      bVar10 = (!bVar11 && !bVar10) == bVar11;\n      if (bVar10) {\n        return 1;\n      }\n      iVar6 = 0x17;\n      pbVar7 = pbVar8;\n      pbVar9 = (byte *)"ignore-in-object-files";\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar12 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n      } while (bVar10);\n      bVar10 = (!bVar12 && !bVar10) == bVar12;\n      if ((!bVar10) || (bVar10 = (*(byte *)(param_1 + 0x2b) & 1) == 0, !bVar10)) {\n        bVar12 = false;\n        iVar6 = 0x16;\n        pbVar7 = (byte *)"ignore-in-shared-libs";\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar12 = *pbVar8 < *pbVar7;\n          bVar10 = *pbVar8 == *pbVar7;\n          pbVar8 = pbVar8 + (uint)bVar13 * -2 + 1;\n          pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        } while (bVar10);\n        if (((!bVar12 && !bVar10) != bVar12) || (*(char *)(param_1 + 0x2a) < '\0'))\n        goto LAB_000561a0;\n      }\n    }" { (expression_statement "iVar6 = 0xb;" (assignment_expression "iVar6 = 0xb" identifier = number_literal) ;) (expression_statement "pbVar7 = pbVar8;" (assignment_expression "pbVar7 = pbVar8" identifier = identifier) ;) (expression_statement "pbVar9 = (byte *)"report-all";" (assignment_expression "pbVar9 = (byte *)"report-all"" identifier = (cast_expression "(byte *)"report-all"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""report-all"" " string_content "))) ;) (do_statement "do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar11 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n      } while (bVar10);" do (compound_statement "{\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar11 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n      }" { (if_statement "if (iVar6 == 0) break;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) (expression_statement "bVar11 = *pbVar7 < *pbVar9;" (assignment_expression "bVar11 = *pbVar7 < *pbVar9" identifier = (binary_expression "*pbVar7 < *pbVar9" (pointer_expression "*pbVar7" * identifier) < (pointer_expression "*pbVar9" * identifier))) ;) (expression_statement "bVar10 = *pbVar7 == *pbVar9;" (assignment_expression "bVar10 = *pbVar7 == *pbVar9" identifier = (binary_expression "*pbVar7 == *pbVar9" (pointer_expression "*pbVar7" * identifier) == (pointer_expression "*pbVar9" * identifier))) ;) (expression_statement "pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;" (assignment_expression "pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1" identifier = (binary_expression "pbVar7 + (uint)bVar13 * -2 + 1" (binary_expression "pbVar7 + (uint)bVar13 * -2" identifier + (binary_expression "(uint)bVar13 * -2" (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar13 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar13 * -2" identifier + (binary_expression "(uint)bVar13 * -2" (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar10)" ( identifier )) ;) (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" identifier = false) ;) (expression_statement "bVar10 = (!bVar11 && !bVar10) == bVar11;" (assignment_expression "bVar10 = (!bVar11 && !bVar10) == bVar11" identifier = (binary_expression "(!bVar11 && !bVar10) == bVar11" (parenthesized_expression "(!bVar11 && !bVar10)" ( (binary_expression "!bVar11 && !bVar10" (unary_expression "!bVar11" ! identifier) && (unary_expression "!bVar10" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar10) {\n        return 1;\n      }" if (parenthesized_expression "(bVar10)" ( identifier )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "iVar6 = 0x17;" (assignment_expression "iVar6 = 0x17" identifier = number_literal) ;) (expression_statement "pbVar7 = pbVar8;" (assignment_expression "pbVar7 = pbVar8" identifier = identifier) ;) (expression_statement "pbVar9 = (byte *)"ignore-in-object-files";" (assignment_expression "pbVar9 = (byte *)"ignore-in-object-files"" identifier = (cast_expression "(byte *)"ignore-in-object-files"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""ignore-in-object-files"" " string_content "))) ;) (do_statement "do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar12 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n      } while (bVar10);" do (compound_statement "{\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar12 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n      }" { (if_statement "if (iVar6 == 0) break;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) (expression_statement "bVar12 = *pbVar7 < *pbVar9;" (assignment_expression "bVar12 = *pbVar7 < *pbVar9" identifier = (binary_expression "*pbVar7 < *pbVar9" (pointer_expression "*pbVar7" * identifier) < (pointer_expression "*pbVar9" * identifier))) ;) (expression_statement "bVar10 = *pbVar7 == *pbVar9;" (assignment_expression "bVar10 = *pbVar7 == *pbVar9" identifier = (binary_expression "*pbVar7 == *pbVar9" (pointer_expression "*pbVar7" * identifier) == (pointer_expression "*pbVar9" * identifier))) ;) (expression_statement "pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;" (assignment_expression "pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1" identifier = (binary_expression "pbVar7 + (uint)bVar13 * -2 + 1" (binary_expression "pbVar7 + (uint)bVar13 * -2" identifier + (binary_expression "(uint)bVar13 * -2" (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar13 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar13 * -2" identifier + (binary_expression "(uint)bVar13 * -2" (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar10)" ( identifier )) ;) (expression_statement "bVar10 = (!bVar12 && !bVar10) == bVar12;" (assignment_expression "bVar10 = (!bVar12 && !bVar10) == bVar12" identifier = (binary_expression "(!bVar12 && !bVar10) == bVar12" (parenthesized_expression "(!bVar12 && !bVar10)" ( (binary_expression "!bVar12 && !bVar10" (unary_expression "!bVar12" ! identifier) && (unary_expression "!bVar10" ! identifier)) )) == identifier)) ;) (if_statement "if ((!bVar10) || (bVar10 = (*(byte *)(param_1 + 0x2b) & 1) == 0, !bVar10)) {\n        bVar12 = false;\n        iVar6 = 0x16;\n        pbVar7 = (byte *)"ignore-in-shared-libs";\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar12 = *pbVar8 < *pbVar7;\n          bVar10 = *pbVar8 == *pbVar7;\n          pbVar8 = pbVar8 + (uint)bVar13 * -2 + 1;\n          pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        } while (bVar10);\n        if (((!bVar12 && !bVar10) != bVar12) || (*(char *)(param_1 + 0x2a) < '\0'))\n        goto LAB_000561a0;\n      }" if (parenthesized_expression "((!bVar10) || (bVar10 = (*(byte *)(param_1 + 0x2b) & 1) == 0, !bVar10))" ( (binary_expression "(!bVar10) || (bVar10 = (*(byte *)(param_1 + 0x2b) & 1) == 0, !bVar10)" (parenthesized_expression "(!bVar10)" ( (unary_expression "!bVar10" ! identifier) )) || (parenthesized_expression "(bVar10 = (*(byte *)(param_1 + 0x2b) & 1) == 0, !bVar10)" ( (comma_expression "bVar10 = (*(byte *)(param_1 + 0x2b) & 1) == 0, !bVar10" (assignment_expression "bVar10 = (*(byte *)(param_1 + 0x2b) & 1) == 0" identifier = (binary_expression "(*(byte *)(param_1 + 0x2b) & 1) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0x2b) & 1)" ( (binary_expression "*(byte *)(param_1 + 0x2b) & 1" (pointer_expression "*(byte *)(param_1 + 0x2b)" * (cast_expression "(byte *)(param_1 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2b)" ( (binary_expression "param_1 + 0x2b" identifier + number_literal) )))) & number_literal) )) == number_literal)) , (unary_expression "!bVar10" ! identifier)) ))) )) (compound_statement "{\n        bVar12 = false;\n        iVar6 = 0x16;\n        pbVar7 = (byte *)"ignore-in-shared-libs";\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar12 = *pbVar8 < *pbVar7;\n          bVar10 = *pbVar8 == *pbVar7;\n          pbVar8 = pbVar8 + (uint)bVar13 * -2 + 1;\n          pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        } while (bVar10);\n        if (((!bVar12 && !bVar10) != bVar12) || (*(char *)(param_1 + 0x2a) < '\0'))\n        goto LAB_000561a0;\n      }" { (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" identifier = false) ;) (expression_statement "iVar6 = 0x16;" (assignment_expression "iVar6 = 0x16" identifier = number_literal) ;) (expression_statement "pbVar7 = (byte *)"ignore-in-shared-libs";" (assignment_expression "pbVar7 = (byte *)"ignore-in-shared-libs"" identifier = (cast_expression "(byte *)"ignore-in-shared-libs"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""ignore-in-shared-libs"" " string_content "))) ;) (do_statement "do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar12 = *pbVar8 < *pbVar7;\n          bVar10 = *pbVar8 == *pbVar7;\n          pbVar8 = pbVar8 + (uint)bVar13 * -2 + 1;\n          pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        } while (bVar10);" do (compound_statement "{\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar12 = *pbVar8 < *pbVar7;\n          bVar10 = *pbVar8 == *pbVar7;\n          pbVar8 = pbVar8 + (uint)bVar13 * -2 + 1;\n          pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        }" { (if_statement "if (iVar6 == 0) break;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) (expression_statement "bVar12 = *pbVar8 < *pbVar7;" (assignment_expression "bVar12 = *pbVar8 < *pbVar7" identifier = (binary_expression "*pbVar8 < *pbVar7" (pointer_expression "*pbVar8" * identifier) < (pointer_expression "*pbVar7" * identifier))) ;) (expression_statement "bVar10 = *pbVar8 == *pbVar7;" (assignment_expression "bVar10 = *pbVar8 == *pbVar7" identifier = (binary_expression "*pbVar8 == *pbVar7" (pointer_expression "*pbVar8" * identifier) == (pointer_expression "*pbVar7" * identifier))) ;) (expression_statement "pbVar8 = pbVar8 + (uint)bVar13 * -2 + 1;" (assignment_expression "pbVar8 = pbVar8 + (uint)bVar13 * -2 + 1" identifier = (binary_expression "pbVar8 + (uint)bVar13 * -2 + 1" (binary_expression "pbVar8 + (uint)bVar13 * -2" identifier + (binary_expression "(uint)bVar13 * -2" (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;" (assignment_expression "pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1" identifier = (binary_expression "pbVar7 + (uint)bVar13 * -2 + 1" (binary_expression "pbVar7 + (uint)bVar13 * -2" identifier + (binary_expression "(uint)bVar13 * -2" (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar10)" ( identifier )) ;) (if_statement "if (((!bVar12 && !bVar10) != bVar12) || (*(char *)(param_1 + 0x2a) < '\0'))\n        goto LAB_000561a0;" if (parenthesized_expression "(((!bVar12 && !bVar10) != bVar12) || (*(char *)(param_1 + 0x2a) < '\0'))" ( (binary_expression "((!bVar12 && !bVar10) != bVar12) || (*(char *)(param_1 + 0x2a) < '\0')" (parenthesized_expression "((!bVar12 && !bVar10) != bVar12)" ( (binary_expression "(!bVar12 && !bVar10) != bVar12" (parenthesized_expression "(!bVar12 && !bVar10)" ( (binary_expression "!bVar12 && !bVar10" (unary_expression "!bVar12" ! identifier) && (unary_expression "!bVar10" ! identifier)) )) != identifier) )) || (parenthesized_expression "(*(char *)(param_1 + 0x2a) < '\0')" ( (binary_expression "*(char *)(param_1 + 0x2a) < '\0'" (pointer_expression "*(char *)(param_1 + 0x2a)" * (cast_expression "(char *)(param_1 + 0x2a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a)" ( (binary_expression "param_1 + 0x2a" identifier + number_literal) )))) < (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_000561a0;" goto statement_identifier ;)) })) })) })) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* WARNING: Enum "ELFOSABI": Some values do not have unique names */\n\nbool gold::issue_undefined_symbol_error(Symbol *sym)\n\n{\n  _func_int_varargs *p_Var1;\n  Target *pTVar2;\n  General_options *pGVar3;\n  byte bVar4;\n  int iVar5;\n  byte *pbVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  bool bVar9;\n  bool bVar10;\n  bool bVar11;\n  byte bVar12;\n  \n  bVar12 = 0;\n  if (sym == (Symbol *)0x0) {\n    return false;\n  }\n  bVar4 = sym->field_0x2a & 7;\n  if ((sym->field_0x2a & 7) == 0) {\n    if (((sym->u2_).shndx == 0) && ((sym->field_0x2b & 0x20) != 0)) goto LAB_0005603c;\n    p_Var1 = ((sym->u1_).object)->_vptr_Object[5];\n    if (p_Var1 == Object::do_pluginobj) {\n      return false;\n    }\n    iVar5 = (*p_Var1)((sym->u1_).object);\n    if (iVar5 == 0) {\n      return false;\n    }\n    bVar4 = sym->field_0x2a & 7;\n    if ((sym->field_0x2a & 7) == 0) {\n      if (((sym->u2_).shndx == 0) && ((sym->field_0x2b & 0x20) != 0)) goto LAB_0005603c;\n      if (-1 < (char)sym->field_0x2b) goto LAB_000560de;\n      goto LAB_00056080;\n    }\n    if (bVar4 == 4) goto LAB_0005603c;\n    if ((char)sym->field_0x2b < '\0') {\n      return false;\n    }\n  }\n  else {\n    if (bVar4 != 4) {\n      return false;\n    }\nLAB_0005603c:\n    if ((byte)sym->field_0x28 >> 4 == 2) {\n      return false;\n    }\n    if ((sym->field_0x2c & 2) != 0) {\n      return false;\n    }\n    if (parameters->options_ == (General_options *)0x0) goto LAB_00056205;\n    if ((parameters->options_->weak_unresolved_symbols_).value != false) {\n      return false;\n    }\n    if ((char)sym->field_0x2b < '\0') {\n      if (bVar4 != 0) {\n        return false;\n      }\nLAB_00056080:\n      p_Var1 = ((sym->u1_).object)->_vptr_Object[5];\n      if (p_Var1 == Object::do_pluginobj) {\n        return false;\n      }\n      iVar5 = (*p_Var1)((sym->u1_).object);\n      if (iVar5 == 0) {\n        return false;\n      }\n    }\n  }\nLAB_000560de:\n  pTVar2 = parameters->target_;\n  if (pTVar2 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n  }\n  iVar5 = (*pTVar2->_vptr_Target[7])(pTVar2,sym);\n  if ((char)iVar5 == '\0') {\n    pGVar3 = parameters->options_;\n    if (pGVar3 == (General_options *)0x0) {\nLAB_00056205:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n    }\n    pbVar7 = (byte *)(pGVar3->unresolved_symbols_).value;\n    bVar9 = false;\n    bVar11 = pbVar7 == (byte *)0x0;\n    if (bVar11) {\nLAB_000561a0:\n      if ((sym->field_0x29 & 3) == 2) {\n        return true;\n      }\n      if ((pGVar3->shared_).value != false) {\n        return (pGVar3->defs_).value;\n      }\n      return true;\n    }\n    iVar5 = 0xb;\n    pbVar6 = pbVar7;\n    pbVar8 = (byte *)"ignore-all";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar9 = *pbVar6 < *pbVar8;\n      bVar11 = *pbVar6 == *pbVar8;\n      pbVar6 = pbVar6 + (uint)bVar12 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar12 * -2 + 1;\n    } while (bVar11);\n    bVar10 = false;\n    bVar9 = (!bVar9 && !bVar11) == bVar9;\n    if (!bVar9) {\n      iVar5 = 0xb;\n      pbVar6 = pbVar7;\n      pbVar8 = (byte *)"report-all";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar10 = *pbVar6 < *pbVar8;\n        bVar9 = *pbVar6 == *pbVar8;\n        pbVar6 = pbVar6 + (uint)bVar12 * -2 + 1;\n        pbVar8 = pbVar8 + (uint)bVar12 * -2 + 1;\n      } while (bVar9);\n      bVar11 = false;\n      bVar9 = (!bVar10 && !bVar9) == bVar10;\n      if (bVar9) {\n        return true;\n      }\n      iVar5 = 0x17;\n      pbVar6 = pbVar7;\n      pbVar8 = (byte *)"ignore-in-object-files";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar11 = *pbVar6 < *pbVar8;\n        bVar9 = *pbVar6 == *pbVar8;\n        pbVar6 = pbVar6 + (uint)bVar12 * -2 + 1;\n        pbVar8 = pbVar8 + (uint)bVar12 * -2 + 1;\n      } while (bVar9);\n      bVar9 = (!bVar11 && !bVar9) == bVar11;\n      if ((!bVar9) || (bVar9 = (sym->field_0x2b & 1) == 0, !bVar9)) {\n        bVar11 = false;\n        iVar5 = 0x16;\n        pbVar6 = (byte *)"ignore-in-shared-libs";\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar11 = *pbVar7 < *pbVar6;\n          bVar9 = *pbVar7 == *pbVar6;\n          pbVar7 = pbVar7 + (uint)bVar12 * -2 + 1;\n          pbVar6 = pbVar6 + (uint)bVar12 * -2 + 1;\n        } while (bVar9);\n        if (((!bVar11 && !bVar9) != bVar11) || ((char)sym->field_0x2a < '\0')) goto LAB_000561a0;\n      }\n    }\n  }\n  return false;\n}\n\n" comment comment comment comment (function_definition "bool gold::issue_undefined_symbol_error(Symbol *sym)\n\n{\n  _func_int_varargs *p_Var1;\n  Target *pTVar2;\n  General_options *pGVar3;\n  byte bVar4;\n  int iVar5;\n  byte *pbVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  bool bVar9;\n  bool bVar10;\n  bool bVar11;\n  byte bVar12;\n  \n  bVar12 = 0;\n  if (sym == (Symbol *)0x0) {\n    return false;\n  }\n  bVar4 = sym->field_0x2a & 7;\n  if ((sym->field_0x2a & 7) == 0) {\n    if (((sym->u2_).shndx == 0) && ((sym->field_0x2b & 0x20) != 0)) goto LAB_0005603c;\n    p_Var1 = ((sym->u1_).object)->_vptr_Object[5];\n    if (p_Var1 == Object::do_pluginobj) {\n      return false;\n    }\n    iVar5 = (*p_Var1)((sym->u1_).object);\n    if (iVar5 == 0) {\n      return false;\n    }\n    bVar4 = sym->field_0x2a & 7;\n    if ((sym->field_0x2a & 7) == 0) {\n      if (((sym->u2_).shndx == 0) && ((sym->field_0x2b & 0x20) != 0)) goto LAB_0005603c;\n      if (-1 < (char)sym->field_0x2b) goto LAB_000560de;\n      goto LAB_00056080;\n    }\n    if (bVar4 == 4) goto LAB_0005603c;\n    if ((char)sym->field_0x2b < '\0') {\n      return false;\n    }\n  }\n  else {\n    if (bVar4 != 4) {\n      return false;\n    }\nLAB_0005603c:\n    if ((byte)sym->field_0x28 >> 4 == 2) {\n      return false;\n    }\n    if ((sym->field_0x2c & 2) != 0) {\n      return false;\n    }\n    if (parameters->options_ == (General_options *)0x0) goto LAB_00056205;\n    if ((parameters->options_->weak_unresolved_symbols_).value != false) {\n      return false;\n    }\n    if ((char)sym->field_0x2b < '\0') {\n      if (bVar4 != 0) {\n        return false;\n      }\nLAB_00056080:\n      p_Var1 = ((sym->u1_).object)->_vptr_Object[5];\n      if (p_Var1 == Object::do_pluginobj) {\n        return false;\n      }\n      iVar5 = (*p_Var1)((sym->u1_).object);\n      if (iVar5 == 0) {\n        return false;\n      }\n    }\n  }\nLAB_000560de:\n  pTVar2 = parameters->target_;\n  if (pTVar2 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n  }\n  iVar5 = (*pTVar2->_vptr_Target[7])(pTVar2,sym);\n  if ((char)iVar5 == '\0') {\n    pGVar3 = parameters->options_;\n    if (pGVar3 == (General_options *)0x0) {\nLAB_00056205:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n    }\n    pbVar7 = (byte *)(pGVar3->unresolved_symbols_).value;\n    bVar9 = false;\n    bVar11 = pbVar7 == (byte *)0x0;\n    if (bVar11) {\nLAB_000561a0:\n      if ((sym->field_0x29 & 3) == 2) {\n        return true;\n      }\n      if ((pGVar3->shared_).value != false) {\n        return (pGVar3->defs_).value;\n      }\n      return true;\n    }\n    iVar5 = 0xb;\n    pbVar6 = pbVar7;\n    pbVar8 = (byte *)"ignore-all";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar9 = *pbVar6 < *pbVar8;\n      bVar11 = *pbVar6 == *pbVar8;\n      pbVar6 = pbVar6 + (uint)bVar12 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar12 * -2 + 1;\n    } while (bVar11);\n    bVar10 = false;\n    bVar9 = (!bVar9 && !bVar11) == bVar9;\n    if (!bVar9) {\n      iVar5 = 0xb;\n      pbVar6 = pbVar7;\n      pbVar8 = (byte *)"report-all";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar10 = *pbVar6 < *pbVar8;\n        bVar9 = *pbVar6 == *pbVar8;\n        pbVar6 = pbVar6 + (uint)bVar12 * -2 + 1;\n        pbVar8 = pbVar8 + (uint)bVar12 * -2 + 1;\n      } while (bVar9);\n      bVar11 = false;\n      bVar9 = (!bVar10 && !bVar9) == bVar10;\n      if (bVar9) {\n        return true;\n      }\n      iVar5 = 0x17;\n      pbVar6 = pbVar7;\n      pbVar8 = (byte *)"ignore-in-object-files";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar11 = *pbVar6 < *pbVar8;\n        bVar9 = *pbVar6 == *pbVar8;\n        pbVar6 = pbVar6 + (uint)bVar12 * -2 + 1;\n        pbVar8 = pbVar8 + (uint)bVar12 * -2 + 1;\n      } while (bVar9);\n      bVar9 = (!bVar11 && !bVar9) == bVar11;\n      if ((!bVar9) || (bVar9 = (sym->field_0x2b & 1) == 0, !bVar9)) {\n        bVar11 = false;\n        iVar5 = 0x16;\n        pbVar6 = (byte *)"ignore-in-shared-libs";\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar11 = *pbVar7 < *pbVar6;\n          bVar9 = *pbVar7 == *pbVar6;\n          pbVar7 = pbVar7 + (uint)bVar12 * -2 + 1;\n          pbVar6 = pbVar6 + (uint)bVar12 * -2 + 1;\n        } while (bVar9);\n        if (((!bVar11 && !bVar9) != bVar11) || ((char)sym->field_0x2a < '\0')) goto LAB_000561a0;\n      }\n    }\n  }\n  return false;\n}" primitive_type (ERROR "gold::" identifier : :) (function_declarator "issue_undefined_symbol_error(Symbol *sym)" identifier (parameter_list "(Symbol *sym)" ( (parameter_declaration "Symbol *sym" type_identifier (pointer_declarator "*sym" * identifier)) ))) (compound_statement "{\n  _func_int_varargs *p_Var1;\n  Target *pTVar2;\n  General_options *pGVar3;\n  byte bVar4;\n  int iVar5;\n  byte *pbVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  bool bVar9;\n  bool bVar10;\n  bool bVar11;\n  byte bVar12;\n  \n  bVar12 = 0;\n  if (sym == (Symbol *)0x0) {\n    return false;\n  }\n  bVar4 = sym->field_0x2a & 7;\n  if ((sym->field_0x2a & 7) == 0) {\n    if (((sym->u2_).shndx == 0) && ((sym->field_0x2b & 0x20) != 0)) goto LAB_0005603c;\n    p_Var1 = ((sym->u1_).object)->_vptr_Object[5];\n    if (p_Var1 == Object::do_pluginobj) {\n      return false;\n    }\n    iVar5 = (*p_Var1)((sym->u1_).object);\n    if (iVar5 == 0) {\n      return false;\n    }\n    bVar4 = sym->field_0x2a & 7;\n    if ((sym->field_0x2a & 7) == 0) {\n      if (((sym->u2_).shndx == 0) && ((sym->field_0x2b & 0x20) != 0)) goto LAB_0005603c;\n      if (-1 < (char)sym->field_0x2b) goto LAB_000560de;\n      goto LAB_00056080;\n    }\n    if (bVar4 == 4) goto LAB_0005603c;\n    if ((char)sym->field_0x2b < '\0') {\n      return false;\n    }\n  }\n  else {\n    if (bVar4 != 4) {\n      return false;\n    }\nLAB_0005603c:\n    if ((byte)sym->field_0x28 >> 4 == 2) {\n      return false;\n    }\n    if ((sym->field_0x2c & 2) != 0) {\n      return false;\n    }\n    if (parameters->options_ == (General_options *)0x0) goto LAB_00056205;\n    if ((parameters->options_->weak_unresolved_symbols_).value != false) {\n      return false;\n    }\n    if ((char)sym->field_0x2b < '\0') {\n      if (bVar4 != 0) {\n        return false;\n      }\nLAB_00056080:\n      p_Var1 = ((sym->u1_).object)->_vptr_Object[5];\n      if (p_Var1 == Object::do_pluginobj) {\n        return false;\n      }\n      iVar5 = (*p_Var1)((sym->u1_).object);\n      if (iVar5 == 0) {\n        return false;\n      }\n    }\n  }\nLAB_000560de:\n  pTVar2 = parameters->target_;\n  if (pTVar2 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n  }\n  iVar5 = (*pTVar2->_vptr_Target[7])(pTVar2,sym);\n  if ((char)iVar5 == '\0') {\n    pGVar3 = parameters->options_;\n    if (pGVar3 == (General_options *)0x0) {\nLAB_00056205:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n    }\n    pbVar7 = (byte *)(pGVar3->unresolved_symbols_).value;\n    bVar9 = false;\n    bVar11 = pbVar7 == (byte *)0x0;\n    if (bVar11) {\nLAB_000561a0:\n      if ((sym->field_0x29 & 3) == 2) {\n        return true;\n      }\n      if ((pGVar3->shared_).value != false) {\n        return (pGVar3->defs_).value;\n      }\n      return true;\n    }\n    iVar5 = 0xb;\n    pbVar6 = pbVar7;\n    pbVar8 = (byte *)"ignore-all";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar9 = *pbVar6 < *pbVar8;\n      bVar11 = *pbVar6 == *pbVar8;\n      pbVar6 = pbVar6 + (uint)bVar12 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar12 * -2 + 1;\n    } while (bVar11);\n    bVar10 = false;\n    bVar9 = (!bVar9 && !bVar11) == bVar9;\n    if (!bVar9) {\n      iVar5 = 0xb;\n      pbVar6 = pbVar7;\n      pbVar8 = (byte *)"report-all";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar10 = *pbVar6 < *pbVar8;\n        bVar9 = *pbVar6 == *pbVar8;\n        pbVar6 = pbVar6 + (uint)bVar12 * -2 + 1;\n        pbVar8 = pbVar8 + (uint)bVar12 * -2 + 1;\n      } while (bVar9);\n      bVar11 = false;\n      bVar9 = (!bVar10 && !bVar9) == bVar10;\n      if (bVar9) {\n        return true;\n      }\n      iVar5 = 0x17;\n      pbVar6 = pbVar7;\n      pbVar8 = (byte *)"ignore-in-object-files";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar11 = *pbVar6 < *pbVar8;\n        bVar9 = *pbVar6 == *pbVar8;\n        pbVar6 = pbVar6 + (uint)bVar12 * -2 + 1;\n        pbVar8 = pbVar8 + (uint)bVar12 * -2 + 1;\n      } while (bVar9);\n      bVar9 = (!bVar11 && !bVar9) == bVar11;\n      if ((!bVar9) || (bVar9 = (sym->field_0x2b & 1) == 0, !bVar9)) {\n        bVar11 = false;\n        iVar5 = 0x16;\n        pbVar6 = (byte *)"ignore-in-shared-libs";\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar11 = *pbVar7 < *pbVar6;\n          bVar9 = *pbVar7 == *pbVar6;\n          pbVar7 = pbVar7 + (uint)bVar12 * -2 + 1;\n          pbVar6 = pbVar6 + (uint)bVar12 * -2 + 1;\n        } while (bVar9);\n        if (((!bVar11 && !bVar9) != bVar11) || ((char)sym->field_0x2a < '\0')) goto LAB_000561a0;\n      }\n    }\n  }\n  return false;\n}" { (declaration "_func_int_varargs *p_Var1;" type_identifier (pointer_declarator "*p_Var1" * identifier) ;) (declaration "Target *pTVar2;" type_identifier (pointer_declarator "*pTVar2" * identifier) ;) (declaration "General_options *pGVar3;" type_identifier (pointer_declarator "*pGVar3" * identifier) ;) (declaration "byte bVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "byte *pbVar6;" type_identifier (pointer_declarator "*pbVar6" * identifier) ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "bool bVar9;" primitive_type identifier ;) (declaration "bool bVar10;" primitive_type identifier ;) (declaration "bool bVar11;" primitive_type identifier ;) (declaration "byte bVar12;" type_identifier identifier ;) (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" identifier = number_literal) ;) (if_statement "if (sym == (Symbol *)0x0) {\n    return false;\n  }" if (parenthesized_expression "(sym == (Symbol *)0x0)" ( (binary_expression "sym == (Symbol *)0x0" identifier == (cast_expression "(Symbol *)0x0" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return false;\n  }" { (return_statement "return false;" return false ;) })) (expression_statement "bVar4 = sym->field_0x2a & 7;" (assignment_expression "bVar4 = sym->field_0x2a & 7" identifier = (binary_expression "sym->field_0x2a & 7" (field_expression "sym->field_0x2a" identifier -> field_identifier) & number_literal)) ;) (if_statement "if ((sym->field_0x2a & 7) == 0) {\n    if (((sym->u2_).shndx == 0) && ((sym->field_0x2b & 0x20) != 0)) goto LAB_0005603c;\n    p_Var1 = ((sym->u1_).object)->_vptr_Object[5];\n    if (p_Var1 == Object::do_pluginobj) {\n      return false;\n    }\n    iVar5 = (*p_Var1)((sym->u1_).object);\n    if (iVar5 == 0) {\n      return false;\n    }\n    bVar4 = sym->field_0x2a & 7;\n    if ((sym->field_0x2a & 7) == 0) {\n      if (((sym->u2_).shndx == 0) && ((sym->field_0x2b & 0x20) != 0)) goto LAB_0005603c;\n      if (-1 < (char)sym->field_0x2b) goto LAB_000560de;\n      goto LAB_00056080;\n    }\n    if (bVar4 == 4) goto LAB_0005603c;\n    if ((char)sym->field_0x2b < '\0') {\n      return false;\n    }\n  }\n  else {\n    if (bVar4 != 4) {\n      return false;\n    }\nLAB_0005603c:\n    if ((byte)sym->field_0x28 >> 4 == 2) {\n      return false;\n    }\n    if ((sym->field_0x2c & 2) != 0) {\n      return false;\n    }\n    if (parameters->options_ == (General_options *)0x0) goto LAB_00056205;\n    if ((parameters->options_->weak_unresolved_symbols_).value != false) {\n      return false;\n    }\n    if ((char)sym->field_0x2b < '\0') {\n      if (bVar4 != 0) {\n        return false;\n      }\nLAB_00056080:\n      p_Var1 = ((sym->u1_).object)->_vptr_Object[5];\n      if (p_Var1 == Object::do_pluginobj) {\n        return false;\n      }\n      iVar5 = (*p_Var1)((sym->u1_).object);\n      if (iVar5 == 0) {\n        return false;\n      }\n    }\n  }" if (parenthesized_expression "((sym->field_0x2a & 7) == 0)" ( (binary_expression "(sym->field_0x2a & 7) == 0" (parenthesized_expression "(sym->field_0x2a & 7)" ( (binary_expression "sym->field_0x2a & 7" (field_expression "sym->field_0x2a" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n    if (((sym->u2_).shndx == 0) && ((sym->field_0x2b & 0x20) != 0)) goto LAB_0005603c;\n    p_Var1 = ((sym->u1_).object)->_vptr_Object[5];\n    if (p_Var1 == Object::do_pluginobj) {\n      return false;\n    }\n    iVar5 = (*p_Var1)((sym->u1_).object);\n    if (iVar5 == 0) {\n      return false;\n    }\n    bVar4 = sym->field_0x2a & 7;\n    if ((sym->field_0x2a & 7) == 0) {\n      if (((sym->u2_).shndx == 0) && ((sym->field_0x2b & 0x20) != 0)) goto LAB_0005603c;\n      if (-1 < (char)sym->field_0x2b) goto LAB_000560de;\n      goto LAB_00056080;\n    }\n    if (bVar4 == 4) goto LAB_0005603c;\n    if ((char)sym->field_0x2b < '\0') {\n      return false;\n    }\n  }" { (if_statement "if (((sym->u2_).shndx == 0) && ((sym->field_0x2b & 0x20) != 0)) goto LAB_0005603c;" if (parenthesized_expression "(((sym->u2_).shndx == 0) && ((sym->field_0x2b & 0x20) != 0))" ( (binary_expression "((sym->u2_).shndx == 0) && ((sym->field_0x2b & 0x20) != 0)" (parenthesized_expression "((sym->u2_).shndx == 0)" ( (binary_expression "(sym->u2_).shndx == 0" (field_expression "(sym->u2_).shndx" (parenthesized_expression "(sym->u2_)" ( (field_expression "sym->u2_" identifier -> field_identifier) )) . field_identifier) == number_literal) )) && (parenthesized_expression "((sym->field_0x2b & 0x20) != 0)" ( (binary_expression "(sym->field_0x2b & 0x20) != 0" (parenthesized_expression "(sym->field_0x2b & 0x20)" ( (binary_expression "sym->field_0x2b & 0x20" (field_expression "sym->field_0x2b" identifier -> field_identifier) & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_0005603c;" goto statement_identifier ;)) (expression_statement "p_Var1 = ((sym->u1_).object)->_vptr_Object[5];" (assignment_expression "p_Var1 = ((sym->u1_).object)->_vptr_Object[5]" identifier = (subscript_expression "((sym->u1_).object)->_vptr_Object[5]" (field_expression "((sym->u1_).object)->_vptr_Object" (parenthesized_expression "((sym->u1_).object)" ( (field_expression "(sym->u1_).object" (parenthesized_expression "(sym->u1_)" ( (field_expression "sym->u1_" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) [ number_literal ])) ;) (if_statement "if (p_Var1 == Object::do_pluginobj) {\n      return false;\n    }" if (parenthesized_expression "(p_Var1 == Object::do_pluginobj)" ( (binary_expression "p_Var1 == Object" identifier == identifier) (ERROR "::do_pluginobj" : : identifier) )) (compound_statement "{\n      return false;\n    }" { (return_statement "return false;" return false ;) })) (expression_statement "iVar5 = (*p_Var1)((sym->u1_).object);" (assignment_expression "iVar5 = (*p_Var1)((sym->u1_).object)" identifier = (call_expression "(*p_Var1)((sym->u1_).object)" (parenthesized_expression "(*p_Var1)" ( (pointer_expression "*p_Var1" * identifier) )) (argument_list "((sym->u1_).object)" ( (field_expression "(sym->u1_).object" (parenthesized_expression "(sym->u1_)" ( (field_expression "sym->u1_" identifier -> field_identifier) )) . field_identifier) )))) ;) (if_statement "if (iVar5 == 0) {\n      return false;\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      return false;\n    }" { (return_statement "return false;" return false ;) })) (expression_statement "bVar4 = sym->field_0x2a & 7;" (assignment_expression "bVar4 = sym->field_0x2a & 7" identifier = (binary_expression "sym->field_0x2a & 7" (field_expression "sym->field_0x2a" identifier -> field_identifier) & number_literal)) ;) (if_statement "if ((sym->field_0x2a & 7) == 0) {\n      if (((sym->u2_).shndx == 0) && ((sym->field_0x2b & 0x20) != 0)) goto LAB_0005603c;\n      if (-1 < (char)sym->field_0x2b) goto LAB_000560de;\n      goto LAB_00056080;\n    }" if (parenthesized_expression "((sym->field_0x2a & 7) == 0)" ( (binary_expression "(sym->field_0x2a & 7) == 0" (parenthesized_expression "(sym->field_0x2a & 7)" ( (binary_expression "sym->field_0x2a & 7" (field_expression "sym->field_0x2a" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      if (((sym->u2_).shndx == 0) && ((sym->field_0x2b & 0x20) != 0)) goto LAB_0005603c;\n      if (-1 < (char)sym->field_0x2b) goto LAB_000560de;\n      goto LAB_00056080;\n    }" { (if_statement "if (((sym->u2_).shndx == 0) && ((sym->field_0x2b & 0x20) != 0)) goto LAB_0005603c;" if (parenthesized_expression "(((sym->u2_).shndx == 0) && ((sym->field_0x2b & 0x20) != 0))" ( (binary_expression "((sym->u2_).shndx == 0) && ((sym->field_0x2b & 0x20) != 0)" (parenthesized_expression "((sym->u2_).shndx == 0)" ( (binary_expression "(sym->u2_).shndx == 0" (field_expression "(sym->u2_).shndx" (parenthesized_expression "(sym->u2_)" ( (field_expression "sym->u2_" identifier -> field_identifier) )) . field_identifier) == number_literal) )) && (parenthesized_expression "((sym->field_0x2b & 0x20) != 0)" ( (binary_expression "(sym->field_0x2b & 0x20) != 0" (parenthesized_expression "(sym->field_0x2b & 0x20)" ( (binary_expression "sym->field_0x2b & 0x20" (field_expression "sym->field_0x2b" identifier -> field_identifier) & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_0005603c;" goto statement_identifier ;)) (if_statement "if (-1 < (char)sym->field_0x2b) goto LAB_000560de;" if (parenthesized_expression "(-1 < (char)sym->field_0x2b)" ( (binary_expression "-1 < (char)sym->field_0x2b" number_literal < (cast_expression "(char)sym->field_0x2b" ( (type_descriptor "char" primitive_type) ) (field_expression "sym->field_0x2b" identifier -> field_identifier))) )) (goto_statement "goto LAB_000560de;" goto statement_identifier ;)) (goto_statement "goto LAB_00056080;" goto statement_identifier ;) })) (if_statement "if (bVar4 == 4) goto LAB_0005603c;" if (parenthesized_expression "(bVar4 == 4)" ( (binary_expression "bVar4 == 4" identifier == number_literal) )) (goto_statement "goto LAB_0005603c;" goto statement_identifier ;)) (if_statement "if ((char)sym->field_0x2b < '\0') {\n      return false;\n    }" if (parenthesized_expression "((char)sym->field_0x2b < '\0')" ( (binary_expression "(char)sym->field_0x2b < '\0'" (cast_expression "(char)sym->field_0x2b" ( (type_descriptor "char" primitive_type) ) (field_expression "sym->field_0x2b" identifier -> field_identifier)) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      return false;\n    }" { (return_statement "return false;" return false ;) })) }) (else_clause "else {\n    if (bVar4 != 4) {\n      return false;\n    }\nLAB_0005603c:\n    if ((byte)sym->field_0x28 >> 4 == 2) {\n      return false;\n    }\n    if ((sym->field_0x2c & 2) != 0) {\n      return false;\n    }\n    if (parameters->options_ == (General_options *)0x0) goto LAB_00056205;\n    if ((parameters->options_->weak_unresolved_symbols_).value != false) {\n      return false;\n    }\n    if ((char)sym->field_0x2b < '\0') {\n      if (bVar4 != 0) {\n        return false;\n      }\nLAB_00056080:\n      p_Var1 = ((sym->u1_).object)->_vptr_Object[5];\n      if (p_Var1 == Object::do_pluginobj) {\n        return false;\n      }\n      iVar5 = (*p_Var1)((sym->u1_).object);\n      if (iVar5 == 0) {\n        return false;\n      }\n    }\n  }" else (compound_statement "{\n    if (bVar4 != 4) {\n      return false;\n    }\nLAB_0005603c:\n    if ((byte)sym->field_0x28 >> 4 == 2) {\n      return false;\n    }\n    if ((sym->field_0x2c & 2) != 0) {\n      return false;\n    }\n    if (parameters->options_ == (General_options *)0x0) goto LAB_00056205;\n    if ((parameters->options_->weak_unresolved_symbols_).value != false) {\n      return false;\n    }\n    if ((char)sym->field_0x2b < '\0') {\n      if (bVar4 != 0) {\n        return false;\n      }\nLAB_00056080:\n      p_Var1 = ((sym->u1_).object)->_vptr_Object[5];\n      if (p_Var1 == Object::do_pluginobj) {\n        return false;\n      }\n      iVar5 = (*p_Var1)((sym->u1_).object);\n      if (iVar5 == 0) {\n        return false;\n      }\n    }\n  }" { (if_statement "if (bVar4 != 4) {\n      return false;\n    }" if (parenthesized_expression "(bVar4 != 4)" ( (binary_expression "bVar4 != 4" identifier != number_literal) )) (compound_statement "{\n      return false;\n    }" { (return_statement "return false;" return false ;) })) (labeled_statement "LAB_0005603c:\n    if ((byte)sym->field_0x28 >> 4 == 2) {\n      return false;\n    }" statement_identifier : (if_statement "if ((byte)sym->field_0x28 >> 4 == 2) {\n      return false;\n    }" if (parenthesized_expression "((byte)sym->field_0x28 >> 4 == 2)" ( (binary_expression "(byte)sym->field_0x28 >> 4 == 2" (binary_expression "(byte)sym->field_0x28 >> 4" (cast_expression "(byte)sym->field_0x28" ( (type_descriptor "byte" type_identifier) ) (field_expression "sym->field_0x28" identifier -> field_identifier)) >> number_literal) == number_literal) )) (compound_statement "{\n      return false;\n    }" { (return_statement "return false;" return false ;) }))) (if_statement "if ((sym->field_0x2c & 2) != 0) {\n      return false;\n    }" if (parenthesized_expression "((sym->field_0x2c & 2) != 0)" ( (binary_expression "(sym->field_0x2c & 2) != 0" (parenthesized_expression "(sym->field_0x2c & 2)" ( (binary_expression "sym->field_0x2c & 2" (field_expression "sym->field_0x2c" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n      return false;\n    }" { (return_statement "return false;" return false ;) })) (if_statement "if (parameters->options_ == (General_options *)0x0) goto LAB_00056205;" if (parenthesized_expression "(parameters->options_ == (General_options *)0x0)" ( (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_00056205;" goto statement_identifier ;)) (if_statement "if ((parameters->options_->weak_unresolved_symbols_).value != false) {\n      return false;\n    }" if (parenthesized_expression "((parameters->options_->weak_unresolved_symbols_).value != false)" ( (binary_expression "(parameters->options_->weak_unresolved_symbols_).value != false" (field_expression "(parameters->options_->weak_unresolved_symbols_).value" (parenthesized_expression "(parameters->options_->weak_unresolved_symbols_)" ( (field_expression "parameters->options_->weak_unresolved_symbols_" (field_expression "parameters->options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) != false) )) (compound_statement "{\n      return false;\n    }" { (return_statement "return false;" return false ;) })) (if_statement "if ((char)sym->field_0x2b < '\0') {\n      if (bVar4 != 0) {\n        return false;\n      }\nLAB_00056080:\n      p_Var1 = ((sym->u1_).object)->_vptr_Object[5];\n      if (p_Var1 == Object::do_pluginobj) {\n        return false;\n      }\n      iVar5 = (*p_Var1)((sym->u1_).object);\n      if (iVar5 == 0) {\n        return false;\n      }\n    }" if (parenthesized_expression "((char)sym->field_0x2b < '\0')" ( (binary_expression "(char)sym->field_0x2b < '\0'" (cast_expression "(char)sym->field_0x2b" ( (type_descriptor "char" primitive_type) ) (field_expression "sym->field_0x2b" identifier -> field_identifier)) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if (bVar4 != 0) {\n        return false;\n      }\nLAB_00056080:\n      p_Var1 = ((sym->u1_).object)->_vptr_Object[5];\n      if (p_Var1 == Object::do_pluginobj) {\n        return false;\n      }\n      iVar5 = (*p_Var1)((sym->u1_).object);\n      if (iVar5 == 0) {\n        return false;\n      }\n    }" { (if_statement "if (bVar4 != 0) {\n        return false;\n      }" if (parenthesized_expression "(bVar4 != 0)" ( (binary_expression "bVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        return false;\n      }" { (return_statement "return false;" return false ;) })) (labeled_statement "LAB_00056080:\n      p_Var1 = ((sym->u1_).object)->_vptr_Object[5];" statement_identifier : (expression_statement "p_Var1 = ((sym->u1_).object)->_vptr_Object[5];" (assignment_expression "p_Var1 = ((sym->u1_).object)->_vptr_Object[5]" identifier = (subscript_expression "((sym->u1_).object)->_vptr_Object[5]" (field_expression "((sym->u1_).object)->_vptr_Object" (parenthesized_expression "((sym->u1_).object)" ( (field_expression "(sym->u1_).object" (parenthesized_expression "(sym->u1_)" ( (field_expression "sym->u1_" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) [ number_literal ])) ;)) (if_statement "if (p_Var1 == Object::do_pluginobj) {\n        return false;\n      }" if (parenthesized_expression "(p_Var1 == Object::do_pluginobj)" ( (binary_expression "p_Var1 == Object" identifier == identifier) (ERROR "::do_pluginobj" : : identifier) )) (compound_statement "{\n        return false;\n      }" { (return_statement "return false;" return false ;) })) (expression_statement "iVar5 = (*p_Var1)((sym->u1_).object);" (assignment_expression "iVar5 = (*p_Var1)((sym->u1_).object)" identifier = (call_expression "(*p_Var1)((sym->u1_).object)" (parenthesized_expression "(*p_Var1)" ( (pointer_expression "*p_Var1" * identifier) )) (argument_list "((sym->u1_).object)" ( (field_expression "(sym->u1_).object" (parenthesized_expression "(sym->u1_)" ( (field_expression "sym->u1_" identifier -> field_identifier) )) . field_identifier) )))) ;) (if_statement "if (iVar5 == 0) {\n        return false;\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        return false;\n      }" { (return_statement "return false;" return false ;) })) })) }))) (labeled_statement "LAB_000560de:\n  pTVar2 = parameters->target_;" statement_identifier : (expression_statement "pTVar2 = parameters->target_;" (assignment_expression "pTVar2 = parameters->target_" identifier = (field_expression "parameters->target_" identifier -> field_identifier)) ;)) (if_statement "if (pTVar2 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n  }" if (parenthesized_expression "(pTVar2 == (Target *)0x0)" ( (binary_expression "pTVar2 == (Target *)0x0" identifier == (cast_expression "(Target *)0x0" ( (type_descriptor "Target *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x69,"target");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x69,"target")" identifier (argument_list "("../../gold/parameters.h",0x69,"target")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""target"" " string_content ") ))) ;) })) (expression_statement "iVar5 = (*pTVar2->_vptr_Target[7])(pTVar2,sym);" (assignment_expression "iVar5 = (*pTVar2->_vptr_Target[7])(pTVar2,sym)" identifier = (call_expression "(*pTVar2->_vptr_Target[7])(pTVar2,sym)" (parenthesized_expression "(*pTVar2->_vptr_Target[7])" ( (pointer_expression "*pTVar2->_vptr_Target[7]" * (subscript_expression "pTVar2->_vptr_Target[7]" (field_expression "pTVar2->_vptr_Target" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(pTVar2,sym)" ( identifier , identifier )))) ;) (if_statement "if ((char)iVar5 == '\0') {\n    pGVar3 = parameters->options_;\n    if (pGVar3 == (General_options *)0x0) {\nLAB_00056205:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n    }\n    pbVar7 = (byte *)(pGVar3->unresolved_symbols_).value;\n    bVar9 = false;\n    bVar11 = pbVar7 == (byte *)0x0;\n    if (bVar11) {\nLAB_000561a0:\n      if ((sym->field_0x29 & 3) == 2) {\n        return true;\n      }\n      if ((pGVar3->shared_).value != false) {\n        return (pGVar3->defs_).value;\n      }\n      return true;\n    }\n    iVar5 = 0xb;\n    pbVar6 = pbVar7;\n    pbVar8 = (byte *)"ignore-all";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar9 = *pbVar6 < *pbVar8;\n      bVar11 = *pbVar6 == *pbVar8;\n      pbVar6 = pbVar6 + (uint)bVar12 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar12 * -2 + 1;\n    } while (bVar11);\n    bVar10 = false;\n    bVar9 = (!bVar9 && !bVar11) == bVar9;\n    if (!bVar9) {\n      iVar5 = 0xb;\n      pbVar6 = pbVar7;\n      pbVar8 = (byte *)"report-all";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar10 = *pbVar6 < *pbVar8;\n        bVar9 = *pbVar6 == *pbVar8;\n        pbVar6 = pbVar6 + (uint)bVar12 * -2 + 1;\n        pbVar8 = pbVar8 + (uint)bVar12 * -2 + 1;\n      } while (bVar9);\n      bVar11 = false;\n      bVar9 = (!bVar10 && !bVar9) == bVar10;\n      if (bVar9) {\n        return true;\n      }\n      iVar5 = 0x17;\n      pbVar6 = pbVar7;\n      pbVar8 = (byte *)"ignore-in-object-files";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar11 = *pbVar6 < *pbVar8;\n        bVar9 = *pbVar6 == *pbVar8;\n        pbVar6 = pbVar6 + (uint)bVar12 * -2 + 1;\n        pbVar8 = pbVar8 + (uint)bVar12 * -2 + 1;\n      } while (bVar9);\n      bVar9 = (!bVar11 && !bVar9) == bVar11;\n      if ((!bVar9) || (bVar9 = (sym->field_0x2b & 1) == 0, !bVar9)) {\n        bVar11 = false;\n        iVar5 = 0x16;\n        pbVar6 = (byte *)"ignore-in-shared-libs";\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar11 = *pbVar7 < *pbVar6;\n          bVar9 = *pbVar7 == *pbVar6;\n          pbVar7 = pbVar7 + (uint)bVar12 * -2 + 1;\n          pbVar6 = pbVar6 + (uint)bVar12 * -2 + 1;\n        } while (bVar9);\n        if (((!bVar11 && !bVar9) != bVar11) || ((char)sym->field_0x2a < '\0')) goto LAB_000561a0;\n      }\n    }\n  }" if (parenthesized_expression "((char)iVar5 == '\0')" ( (binary_expression "(char)iVar5 == '\0'" (cast_expression "(char)iVar5" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    pGVar3 = parameters->options_;\n    if (pGVar3 == (General_options *)0x0) {\nLAB_00056205:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n    }\n    pbVar7 = (byte *)(pGVar3->unresolved_symbols_).value;\n    bVar9 = false;\n    bVar11 = pbVar7 == (byte *)0x0;\n    if (bVar11) {\nLAB_000561a0:\n      if ((sym->field_0x29 & 3) == 2) {\n        return true;\n      }\n      if ((pGVar3->shared_).value != false) {\n        return (pGVar3->defs_).value;\n      }\n      return true;\n    }\n    iVar5 = 0xb;\n    pbVar6 = pbVar7;\n    pbVar8 = (byte *)"ignore-all";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar9 = *pbVar6 < *pbVar8;\n      bVar11 = *pbVar6 == *pbVar8;\n      pbVar6 = pbVar6 + (uint)bVar12 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar12 * -2 + 1;\n    } while (bVar11);\n    bVar10 = false;\n    bVar9 = (!bVar9 && !bVar11) == bVar9;\n    if (!bVar9) {\n      iVar5 = 0xb;\n      pbVar6 = pbVar7;\n      pbVar8 = (byte *)"report-all";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar10 = *pbVar6 < *pbVar8;\n        bVar9 = *pbVar6 == *pbVar8;\n        pbVar6 = pbVar6 + (uint)bVar12 * -2 + 1;\n        pbVar8 = pbVar8 + (uint)bVar12 * -2 + 1;\n      } while (bVar9);\n      bVar11 = false;\n      bVar9 = (!bVar10 && !bVar9) == bVar10;\n      if (bVar9) {\n        return true;\n      }\n      iVar5 = 0x17;\n      pbVar6 = pbVar7;\n      pbVar8 = (byte *)"ignore-in-object-files";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar11 = *pbVar6 < *pbVar8;\n        bVar9 = *pbVar6 == *pbVar8;\n        pbVar6 = pbVar6 + (uint)bVar12 * -2 + 1;\n        pbVar8 = pbVar8 + (uint)bVar12 * -2 + 1;\n      } while (bVar9);\n      bVar9 = (!bVar11 && !bVar9) == bVar11;\n      if ((!bVar9) || (bVar9 = (sym->field_0x2b & 1) == 0, !bVar9)) {\n        bVar11 = false;\n        iVar5 = 0x16;\n        pbVar6 = (byte *)"ignore-in-shared-libs";\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar11 = *pbVar7 < *pbVar6;\n          bVar9 = *pbVar7 == *pbVar6;\n          pbVar7 = pbVar7 + (uint)bVar12 * -2 + 1;\n          pbVar6 = pbVar6 + (uint)bVar12 * -2 + 1;\n        } while (bVar9);\n        if (((!bVar11 && !bVar9) != bVar11) || ((char)sym->field_0x2a < '\0')) goto LAB_000561a0;\n      }\n    }\n  }" { (expression_statement "pGVar3 = parameters->options_;" (assignment_expression "pGVar3 = parameters->options_" identifier = (field_expression "parameters->options_" identifier -> field_identifier)) ;) (if_statement "if (pGVar3 == (General_options *)0x0) {\nLAB_00056205:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n    }" if (parenthesized_expression "(pGVar3 == (General_options *)0x0)" ( (binary_expression "pGVar3 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00056205:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n    }" { (labeled_statement "LAB_00056205:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" statement_identifier : comment (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 "pbVar7 = (byte *)(pGVar3->unresolved_symbols_).value;" (assignment_expression "pbVar7 = (byte *)(pGVar3->unresolved_symbols_).value" identifier = (cast_expression "(byte *)(pGVar3->unresolved_symbols_).value" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(pGVar3->unresolved_symbols_).value" (parenthesized_expression "(pGVar3->unresolved_symbols_)" ( (field_expression "pGVar3->unresolved_symbols_" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "bVar9 = false;" (assignment_expression "bVar9 = false" identifier = false) ;) (expression_statement "bVar11 = pbVar7 == (byte *)0x0;" (assignment_expression "bVar11 = pbVar7 == (byte *)0x0" identifier = (binary_expression "pbVar7 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (bVar11) {\nLAB_000561a0:\n      if ((sym->field_0x29 & 3) == 2) {\n        return true;\n      }\n      if ((pGVar3->shared_).value != false) {\n        return (pGVar3->defs_).value;\n      }\n      return true;\n    }" if (parenthesized_expression "(bVar11)" ( identifier )) (compound_statement "{\nLAB_000561a0:\n      if ((sym->field_0x29 & 3) == 2) {\n        return true;\n      }\n      if ((pGVar3->shared_).value != false) {\n        return (pGVar3->defs_).value;\n      }\n      return true;\n    }" { (labeled_statement "LAB_000561a0:\n      if ((sym->field_0x29 & 3) == 2) {\n        return true;\n      }" statement_identifier : (if_statement "if ((sym->field_0x29 & 3) == 2) {\n        return true;\n      }" if (parenthesized_expression "((sym->field_0x29 & 3) == 2)" ( (binary_expression "(sym->field_0x29 & 3) == 2" (parenthesized_expression "(sym->field_0x29 & 3)" ( (binary_expression "sym->field_0x29 & 3" (field_expression "sym->field_0x29" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n        return true;\n      }" { (return_statement "return true;" return true ;) }))) (if_statement "if ((pGVar3->shared_).value != false) {\n        return (pGVar3->defs_).value;\n      }" if (parenthesized_expression "((pGVar3->shared_).value != false)" ( (binary_expression "(pGVar3->shared_).value != false" (field_expression "(pGVar3->shared_).value" (parenthesized_expression "(pGVar3->shared_)" ( (field_expression "pGVar3->shared_" identifier -> field_identifier) )) . field_identifier) != false) )) (compound_statement "{\n        return (pGVar3->defs_).value;\n      }" { (return_statement "return (pGVar3->defs_).value;" return (field_expression "(pGVar3->defs_).value" (parenthesized_expression "(pGVar3->defs_)" ( (field_expression "pGVar3->defs_" identifier -> field_identifier) )) . field_identifier) ;) })) (return_statement "return true;" return true ;) })) (expression_statement "iVar5 = 0xb;" (assignment_expression "iVar5 = 0xb" identifier = number_literal) ;) (expression_statement "pbVar6 = pbVar7;" (assignment_expression "pbVar6 = pbVar7" identifier = identifier) ;) (expression_statement "pbVar8 = (byte *)"ignore-all";" (assignment_expression "pbVar8 = (byte *)"ignore-all"" identifier = (cast_expression "(byte *)"ignore-all"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""ignore-all"" " string_content "))) ;) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar9 = *pbVar6 < *pbVar8;\n      bVar11 = *pbVar6 == *pbVar8;\n      pbVar6 = pbVar6 + (uint)bVar12 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar12 * -2 + 1;\n    } while (bVar11);" do (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar9 = *pbVar6 < *pbVar8;\n      bVar11 = *pbVar6 == *pbVar8;\n      pbVar6 = pbVar6 + (uint)bVar12 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar12 * -2 + 1;\n    }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar9 = *pbVar6 < *pbVar8;" (assignment_expression "bVar9 = *pbVar6 < *pbVar8" identifier = (binary_expression "*pbVar6 < *pbVar8" (pointer_expression "*pbVar6" * identifier) < (pointer_expression "*pbVar8" * identifier))) ;) (expression_statement "bVar11 = *pbVar6 == *pbVar8;" (assignment_expression "bVar11 = *pbVar6 == *pbVar8" identifier = (binary_expression "*pbVar6 == *pbVar8" (pointer_expression "*pbVar6" * identifier) == (pointer_expression "*pbVar8" * identifier))) ;) (expression_statement "pbVar6 = pbVar6 + (uint)bVar12 * -2 + 1;" (assignment_expression "pbVar6 = pbVar6 + (uint)bVar12 * -2 + 1" identifier = (binary_expression "pbVar6 + (uint)bVar12 * -2 + 1" (binary_expression "pbVar6 + (uint)bVar12 * -2" identifier + (binary_expression "(uint)bVar12 * -2" (cast_expression "(uint)bVar12" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar8 = pbVar8 + (uint)bVar12 * -2 + 1;" (assignment_expression "pbVar8 = pbVar8 + (uint)bVar12 * -2 + 1" identifier = (binary_expression "pbVar8 + (uint)bVar12 * -2 + 1" (binary_expression "pbVar8 + (uint)bVar12 * -2" identifier + (binary_expression "(uint)bVar12 * -2" (cast_expression "(uint)bVar12" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar11)" ( identifier )) ;) (expression_statement "bVar10 = false;" (assignment_expression "bVar10 = false" identifier = false) ;) (expression_statement "bVar9 = (!bVar9 && !bVar11) == bVar9;" (assignment_expression "bVar9 = (!bVar9 && !bVar11) == bVar9" identifier = (binary_expression "(!bVar9 && !bVar11) == bVar9" (parenthesized_expression "(!bVar9 && !bVar11)" ( (binary_expression "!bVar9 && !bVar11" (unary_expression "!bVar9" ! identifier) && (unary_expression "!bVar11" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar9) {\n      iVar5 = 0xb;\n      pbVar6 = pbVar7;\n      pbVar8 = (byte *)"report-all";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar10 = *pbVar6 < *pbVar8;\n        bVar9 = *pbVar6 == *pbVar8;\n        pbVar6 = pbVar6 + (uint)bVar12 * -2 + 1;\n        pbVar8 = pbVar8 + (uint)bVar12 * -2 + 1;\n      } while (bVar9);\n      bVar11 = false;\n      bVar9 = (!bVar10 && !bVar9) == bVar10;\n      if (bVar9) {\n        return true;\n      }\n      iVar5 = 0x17;\n      pbVar6 = pbVar7;\n      pbVar8 = (byte *)"ignore-in-object-files";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar11 = *pbVar6 < *pbVar8;\n        bVar9 = *pbVar6 == *pbVar8;\n        pbVar6 = pbVar6 + (uint)bVar12 * -2 + 1;\n        pbVar8 = pbVar8 + (uint)bVar12 * -2 + 1;\n      } while (bVar9);\n      bVar9 = (!bVar11 && !bVar9) == bVar11;\n      if ((!bVar9) || (bVar9 = (sym->field_0x2b & 1) == 0, !bVar9)) {\n        bVar11 = false;\n        iVar5 = 0x16;\n        pbVar6 = (byte *)"ignore-in-shared-libs";\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar11 = *pbVar7 < *pbVar6;\n          bVar9 = *pbVar7 == *pbVar6;\n          pbVar7 = pbVar7 + (uint)bVar12 * -2 + 1;\n          pbVar6 = pbVar6 + (uint)bVar12 * -2 + 1;\n        } while (bVar9);\n        if (((!bVar11 && !bVar9) != bVar11) || ((char)sym->field_0x2a < '\0')) goto LAB_000561a0;\n      }\n    }" if (parenthesized_expression "(!bVar9)" ( (unary_expression "!bVar9" ! identifier) )) (compound_statement "{\n      iVar5 = 0xb;\n      pbVar6 = pbVar7;\n      pbVar8 = (byte *)"report-all";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar10 = *pbVar6 < *pbVar8;\n        bVar9 = *pbVar6 == *pbVar8;\n        pbVar6 = pbVar6 + (uint)bVar12 * -2 + 1;\n        pbVar8 = pbVar8 + (uint)bVar12 * -2 + 1;\n      } while (bVar9);\n      bVar11 = false;\n      bVar9 = (!bVar10 && !bVar9) == bVar10;\n      if (bVar9) {\n        return true;\n      }\n      iVar5 = 0x17;\n      pbVar6 = pbVar7;\n      pbVar8 = (byte *)"ignore-in-object-files";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar11 = *pbVar6 < *pbVar8;\n        bVar9 = *pbVar6 == *pbVar8;\n        pbVar6 = pbVar6 + (uint)bVar12 * -2 + 1;\n        pbVar8 = pbVar8 + (uint)bVar12 * -2 + 1;\n      } while (bVar9);\n      bVar9 = (!bVar11 && !bVar9) == bVar11;\n      if ((!bVar9) || (bVar9 = (sym->field_0x2b & 1) == 0, !bVar9)) {\n        bVar11 = false;\n        iVar5 = 0x16;\n        pbVar6 = (byte *)"ignore-in-shared-libs";\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar11 = *pbVar7 < *pbVar6;\n          bVar9 = *pbVar7 == *pbVar6;\n          pbVar7 = pbVar7 + (uint)bVar12 * -2 + 1;\n          pbVar6 = pbVar6 + (uint)bVar12 * -2 + 1;\n        } while (bVar9);\n        if (((!bVar11 && !bVar9) != bVar11) || ((char)sym->field_0x2a < '\0')) goto LAB_000561a0;\n      }\n    }" { (expression_statement "iVar5 = 0xb;" (assignment_expression "iVar5 = 0xb" identifier = number_literal) ;) (expression_statement "pbVar6 = pbVar7;" (assignment_expression "pbVar6 = pbVar7" identifier = identifier) ;) (expression_statement "pbVar8 = (byte *)"report-all";" (assignment_expression "pbVar8 = (byte *)"report-all"" identifier = (cast_expression "(byte *)"report-all"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""report-all"" " string_content "))) ;) (do_statement "do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar10 = *pbVar6 < *pbVar8;\n        bVar9 = *pbVar6 == *pbVar8;\n        pbVar6 = pbVar6 + (uint)bVar12 * -2 + 1;\n        pbVar8 = pbVar8 + (uint)bVar12 * -2 + 1;\n      } while (bVar9);" do (compound_statement "{\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar10 = *pbVar6 < *pbVar8;\n        bVar9 = *pbVar6 == *pbVar8;\n        pbVar6 = pbVar6 + (uint)bVar12 * -2 + 1;\n        pbVar8 = pbVar8 + (uint)bVar12 * -2 + 1;\n      }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar10 = *pbVar6 < *pbVar8;" (assignment_expression "bVar10 = *pbVar6 < *pbVar8" identifier = (binary_expression "*pbVar6 < *pbVar8" (pointer_expression "*pbVar6" * identifier) < (pointer_expression "*pbVar8" * identifier))) ;) (expression_statement "bVar9 = *pbVar6 == *pbVar8;" (assignment_expression "bVar9 = *pbVar6 == *pbVar8" identifier = (binary_expression "*pbVar6 == *pbVar8" (pointer_expression "*pbVar6" * identifier) == (pointer_expression "*pbVar8" * identifier))) ;) (expression_statement "pbVar6 = pbVar6 + (uint)bVar12 * -2 + 1;" (assignment_expression "pbVar6 = pbVar6 + (uint)bVar12 * -2 + 1" identifier = (binary_expression "pbVar6 + (uint)bVar12 * -2 + 1" (binary_expression "pbVar6 + (uint)bVar12 * -2" identifier + (binary_expression "(uint)bVar12 * -2" (cast_expression "(uint)bVar12" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar8 = pbVar8 + (uint)bVar12 * -2 + 1;" (assignment_expression "pbVar8 = pbVar8 + (uint)bVar12 * -2 + 1" identifier = (binary_expression "pbVar8 + (uint)bVar12 * -2 + 1" (binary_expression "pbVar8 + (uint)bVar12 * -2" identifier + (binary_expression "(uint)bVar12 * -2" (cast_expression "(uint)bVar12" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar9)" ( identifier )) ;) (expression_statement "bVar11 = false;" (assignment_expression "bVar11 = false" identifier = false) ;) (expression_statement "bVar9 = (!bVar10 && !bVar9) == bVar10;" (assignment_expression "bVar9 = (!bVar10 && !bVar9) == bVar10" identifier = (binary_expression "(!bVar10 && !bVar9) == bVar10" (parenthesized_expression "(!bVar10 && !bVar9)" ( (binary_expression "!bVar10 && !bVar9" (unary_expression "!bVar10" ! identifier) && (unary_expression "!bVar9" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar9) {\n        return true;\n      }" if (parenthesized_expression "(bVar9)" ( identifier )) (compound_statement "{\n        return true;\n      }" { (return_statement "return true;" return true ;) })) (expression_statement "iVar5 = 0x17;" (assignment_expression "iVar5 = 0x17" identifier = number_literal) ;) (expression_statement "pbVar6 = pbVar7;" (assignment_expression "pbVar6 = pbVar7" identifier = identifier) ;) (expression_statement "pbVar8 = (byte *)"ignore-in-object-files";" (assignment_expression "pbVar8 = (byte *)"ignore-in-object-files"" identifier = (cast_expression "(byte *)"ignore-in-object-files"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""ignore-in-object-files"" " string_content "))) ;) (do_statement "do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar11 = *pbVar6 < *pbVar8;\n        bVar9 = *pbVar6 == *pbVar8;\n        pbVar6 = pbVar6 + (uint)bVar12 * -2 + 1;\n        pbVar8 = pbVar8 + (uint)bVar12 * -2 + 1;\n      } while (bVar9);" do (compound_statement "{\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar11 = *pbVar6 < *pbVar8;\n        bVar9 = *pbVar6 == *pbVar8;\n        pbVar6 = pbVar6 + (uint)bVar12 * -2 + 1;\n        pbVar8 = pbVar8 + (uint)bVar12 * -2 + 1;\n      }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar11 = *pbVar6 < *pbVar8;" (assignment_expression "bVar11 = *pbVar6 < *pbVar8" identifier = (binary_expression "*pbVar6 < *pbVar8" (pointer_expression "*pbVar6" * identifier) < (pointer_expression "*pbVar8" * identifier))) ;) (expression_statement "bVar9 = *pbVar6 == *pbVar8;" (assignment_expression "bVar9 = *pbVar6 == *pbVar8" identifier = (binary_expression "*pbVar6 == *pbVar8" (pointer_expression "*pbVar6" * identifier) == (pointer_expression "*pbVar8" * identifier))) ;) (expression_statement "pbVar6 = pbVar6 + (uint)bVar12 * -2 + 1;" (assignment_expression "pbVar6 = pbVar6 + (uint)bVar12 * -2 + 1" identifier = (binary_expression "pbVar6 + (uint)bVar12 * -2 + 1" (binary_expression "pbVar6 + (uint)bVar12 * -2" identifier + (binary_expression "(uint)bVar12 * -2" (cast_expression "(uint)bVar12" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar8 = pbVar8 + (uint)bVar12 * -2 + 1;" (assignment_expression "pbVar8 = pbVar8 + (uint)bVar12 * -2 + 1" identifier = (binary_expression "pbVar8 + (uint)bVar12 * -2 + 1" (binary_expression "pbVar8 + (uint)bVar12 * -2" identifier + (binary_expression "(uint)bVar12 * -2" (cast_expression "(uint)bVar12" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar9)" ( identifier )) ;) (expression_statement "bVar9 = (!bVar11 && !bVar9) == bVar11;" (assignment_expression "bVar9 = (!bVar11 && !bVar9) == bVar11" identifier = (binary_expression "(!bVar11 && !bVar9) == bVar11" (parenthesized_expression "(!bVar11 && !bVar9)" ( (binary_expression "!bVar11 && !bVar9" (unary_expression "!bVar11" ! identifier) && (unary_expression "!bVar9" ! identifier)) )) == identifier)) ;) (if_statement "if ((!bVar9) || (bVar9 = (sym->field_0x2b & 1) == 0, !bVar9)) {\n        bVar11 = false;\n        iVar5 = 0x16;\n        pbVar6 = (byte *)"ignore-in-shared-libs";\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar11 = *pbVar7 < *pbVar6;\n          bVar9 = *pbVar7 == *pbVar6;\n          pbVar7 = pbVar7 + (uint)bVar12 * -2 + 1;\n          pbVar6 = pbVar6 + (uint)bVar12 * -2 + 1;\n        } while (bVar9);\n        if (((!bVar11 && !bVar9) != bVar11) || ((char)sym->field_0x2a < '\0')) goto LAB_000561a0;\n      }" if (parenthesized_expression "((!bVar9) || (bVar9 = (sym->field_0x2b & 1) == 0, !bVar9))" ( (binary_expression "(!bVar9) || (bVar9 = (sym->field_0x2b & 1) == 0, !bVar9)" (parenthesized_expression "(!bVar9)" ( (unary_expression "!bVar9" ! identifier) )) || (parenthesized_expression "(bVar9 = (sym->field_0x2b & 1) == 0, !bVar9)" ( (comma_expression "bVar9 = (sym->field_0x2b & 1) == 0, !bVar9" (assignment_expression "bVar9 = (sym->field_0x2b & 1) == 0" identifier = (binary_expression "(sym->field_0x2b & 1) == 0" (parenthesized_expression "(sym->field_0x2b & 1)" ( (binary_expression "sym->field_0x2b & 1" (field_expression "sym->field_0x2b" identifier -> field_identifier) & number_literal) )) == number_literal)) , (unary_expression "!bVar9" ! identifier)) ))) )) (compound_statement "{\n        bVar11 = false;\n        iVar5 = 0x16;\n        pbVar6 = (byte *)"ignore-in-shared-libs";\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar11 = *pbVar7 < *pbVar6;\n          bVar9 = *pbVar7 == *pbVar6;\n          pbVar7 = pbVar7 + (uint)bVar12 * -2 + 1;\n          pbVar6 = pbVar6 + (uint)bVar12 * -2 + 1;\n        } while (bVar9);\n        if (((!bVar11 && !bVar9) != bVar11) || ((char)sym->field_0x2a < '\0')) goto LAB_000561a0;\n      }" { (expression_statement "bVar11 = false;" (assignment_expression "bVar11 = false" identifier = false) ;) (expression_statement "iVar5 = 0x16;" (assignment_expression "iVar5 = 0x16" identifier = number_literal) ;) (expression_statement "pbVar6 = (byte *)"ignore-in-shared-libs";" (assignment_expression "pbVar6 = (byte *)"ignore-in-shared-libs"" identifier = (cast_expression "(byte *)"ignore-in-shared-libs"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""ignore-in-shared-libs"" " string_content "))) ;) (do_statement "do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar11 = *pbVar7 < *pbVar6;\n          bVar9 = *pbVar7 == *pbVar6;\n          pbVar7 = pbVar7 + (uint)bVar12 * -2 + 1;\n          pbVar6 = pbVar6 + (uint)bVar12 * -2 + 1;\n        } while (bVar9);" do (compound_statement "{\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar11 = *pbVar7 < *pbVar6;\n          bVar9 = *pbVar7 == *pbVar6;\n          pbVar7 = pbVar7 + (uint)bVar12 * -2 + 1;\n          pbVar6 = pbVar6 + (uint)bVar12 * -2 + 1;\n        }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar11 = *pbVar7 < *pbVar6;" (assignment_expression "bVar11 = *pbVar7 < *pbVar6" identifier = (binary_expression "*pbVar7 < *pbVar6" (pointer_expression "*pbVar7" * identifier) < (pointer_expression "*pbVar6" * identifier))) ;) (expression_statement "bVar9 = *pbVar7 == *pbVar6;" (assignment_expression "bVar9 = *pbVar7 == *pbVar6" identifier = (binary_expression "*pbVar7 == *pbVar6" (pointer_expression "*pbVar7" * identifier) == (pointer_expression "*pbVar6" * identifier))) ;) (expression_statement "pbVar7 = pbVar7 + (uint)bVar12 * -2 + 1;" (assignment_expression "pbVar7 = pbVar7 + (uint)bVar12 * -2 + 1" identifier = (binary_expression "pbVar7 + (uint)bVar12 * -2 + 1" (binary_expression "pbVar7 + (uint)bVar12 * -2" identifier + (binary_expression "(uint)bVar12 * -2" (cast_expression "(uint)bVar12" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar6 = pbVar6 + (uint)bVar12 * -2 + 1;" (assignment_expression "pbVar6 = pbVar6 + (uint)bVar12 * -2 + 1" identifier = (binary_expression "pbVar6 + (uint)bVar12 * -2 + 1" (binary_expression "pbVar6 + (uint)bVar12 * -2" identifier + (binary_expression "(uint)bVar12 * -2" (cast_expression "(uint)bVar12" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar9)" ( identifier )) ;) (if_statement "if (((!bVar11 && !bVar9) != bVar11) || ((char)sym->field_0x2a < '\0')) goto LAB_000561a0;" if (parenthesized_expression "(((!bVar11 && !bVar9) != bVar11) || ((char)sym->field_0x2a < '\0'))" ( (binary_expression "((!bVar11 && !bVar9) != bVar11) || ((char)sym->field_0x2a < '\0')" (parenthesized_expression "((!bVar11 && !bVar9) != bVar11)" ( (binary_expression "(!bVar11 && !bVar9) != bVar11" (parenthesized_expression "(!bVar11 && !bVar9)" ( (binary_expression "!bVar11 && !bVar9" (unary_expression "!bVar11" ! identifier) && (unary_expression "!bVar9" ! identifier)) )) != identifier) )) || (parenthesized_expression "((char)sym->field_0x2a < '\0')" ( (binary_expression "(char)sym->field_0x2a < '\0'" (cast_expression "(char)sym->field_0x2a" ( (type_descriptor "char" primitive_type) ) (field_expression "sym->field_0x2a" identifier -> field_identifier)) < (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_000561a0;" goto statement_identifier ;)) })) })) })) (return_statement "return false;" return false ;) })))
(translation_unit "undefined1 FUN_00055fe0(int param_1)\n\n{\n  code *pcVar1;\n  int *piVar2;\n  int iVar3;\n  byte bVar4;\n  char cVar5;\n  int iVar6;\n  int extraout_EDX;\n  byte *pbVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  bool bVar10;\n  bool bVar11;\n  bool bVar12;\n  byte bVar13;\n  \n  bVar13 = 0;\n  if (param_1 == 0) {\n    return 0;\n  }\n  bVar4 = *(byte *)(param_1 + 0x2a) & 7;\n  if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {\n    if ((*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0))\n    goto LAB_0005603c;\n    pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14);\n    if (pcVar1 == FUN_00054e20) {\n      return 0;\n    }\n    iVar6 = (*pcVar1)(*(int **)(param_1 + 8));\n    if (iVar6 == 0) {\n      return 0;\n    }\n    bVar4 = *(byte *)(param_1 + 0x2a) & 7;\n    if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {\n      if ((*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0))\n      goto LAB_0005603c;\n      if (-1 < (char)*(byte *)(param_1 + 0x2b)) goto LAB_000560de;\n      goto LAB_00056080;\n    }\n    if (bVar4 == 4) goto LAB_0005603c;\n    if (*(char *)(param_1 + 0x2b) < '\0') {\n      return 0;\n    }\n  }\n  else {\n    if (bVar4 != 4) {\n      return 0;\n    }\nLAB_0005603c:\n    if (*(byte *)(param_1 + 0x28) >> 4 == 2) {\n      return 0;\n    }\n    if ((*(byte *)(param_1 + 0x2c) & 2) != 0) {\n      return 0;\n    }\n    iVar6 = DAT_0033f2f0;\n    if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_00056205;\n    if (*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x49b1) != '\0') {\n      return 0;\n    }\n    if (*(char *)(param_1 + 0x2b) < '\0') {\n      if (bVar4 != 0) {\n        return 0;\n      }\nLAB_00056080:\n      pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14);\n      if (pcVar1 == FUN_00054e20) {\n        return 0;\n      }\n      iVar6 = (*pcVar1)(*(int **)(param_1 + 8));\n      if (iVar6 == 0) {\n        return 0;\n      }\n    }\n  }\nLAB_000560de:\n  piVar2 = *(int **)(DAT_0033f2f0 + 0xc);\n  if (piVar2 == (int *)0x0) {\n                    \n    FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n  }\n  cVar5 = (**(code **)(*piVar2 + 0x1c))(piVar2,param_1);\n  if (cVar5 == '\0') {\n    iVar3 = *(int *)(DAT_0033f2f0 + 8);\n    iVar6 = extraout_EDX;\n    if (iVar3 == 0) {\nLAB_00056205:\n                    \n      FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar6);\n    }\n    pbVar8 = *(byte **)(iVar3 + 0x42e4);\n    bVar10 = false;\n    bVar12 = pbVar8 == (byte *)0x0;\n    if (bVar12) {\nLAB_000561a0:\n      if ((*(byte *)(param_1 + 0x29) & 3) == 2) {\n        return 1;\n      }\n      if (*(char *)(iVar3 + 0x1a25) != '\0') {\n        return *(undefined1 *)(iVar3 + 0x4eb5);\n      }\n      return 1;\n    }\n    iVar6 = 0xb;\n    pbVar7 = pbVar8;\n    pbVar9 = (byte *)"ignore-all";\n    do {\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      bVar10 = *pbVar7 < *pbVar9;\n      bVar12 = *pbVar7 == *pbVar9;\n      pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n      pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar12) == bVar10;\n    if (!bVar10) {\n      iVar6 = 0xb;\n      pbVar7 = pbVar8;\n      pbVar9 = (byte *)"report-all";\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar11 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n      } while (bVar10);\n      bVar12 = false;\n      bVar10 = (!bVar11 && !bVar10) == bVar11;\n      if (bVar10) {\n        return 1;\n      }\n      iVar6 = 0x17;\n      pbVar7 = pbVar8;\n      pbVar9 = (byte *)"ignore-in-object-files";\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar12 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n      } while (bVar10);\n      bVar10 = (!bVar12 && !bVar10) == bVar12;\n      if ((!bVar10) || (bVar10 = (*(byte *)(param_1 + 0x2b) & 1) == 0, !bVar10)) {\n        bVar12 = false;\n        iVar6 = 0x16;\n        pbVar7 = (byte *)"ignore-in-shared-libs";\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar12 = *pbVar8 < *pbVar7;\n          bVar10 = *pbVar8 == *pbVar7;\n          pbVar8 = pbVar8 + (uint)bVar13 * -2 + 1;\n          pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        } while (bVar10);\n        if (((!bVar12 && !bVar10) != bVar12) || (*(char *)(param_1 + 0x2a) < '\0'))\n        goto LAB_000561a0;\n      }\n    }\n  }\n  return 0;\n}\n\n" (function_definition "undefined1 FUN_00055fe0(int param_1)\n\n{\n  code *pcVar1;\n  int *piVar2;\n  int iVar3;\n  byte bVar4;\n  char cVar5;\n  int iVar6;\n  int extraout_EDX;\n  byte *pbVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  bool bVar10;\n  bool bVar11;\n  bool bVar12;\n  byte bVar13;\n  \n  bVar13 = 0;\n  if (param_1 == 0) {\n    return 0;\n  }\n  bVar4 = *(byte *)(param_1 + 0x2a) & 7;\n  if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {\n    if ((*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0))\n    goto LAB_0005603c;\n    pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14);\n    if (pcVar1 == FUN_00054e20) {\n      return 0;\n    }\n    iVar6 = (*pcVar1)(*(int **)(param_1 + 8));\n    if (iVar6 == 0) {\n      return 0;\n    }\n    bVar4 = *(byte *)(param_1 + 0x2a) & 7;\n    if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {\n      if ((*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0))\n      goto LAB_0005603c;\n      if (-1 < (char)*(byte *)(param_1 + 0x2b)) goto LAB_000560de;\n      goto LAB_00056080;\n    }\n    if (bVar4 == 4) goto LAB_0005603c;\n    if (*(char *)(param_1 + 0x2b) < '\0') {\n      return 0;\n    }\n  }\n  else {\n    if (bVar4 != 4) {\n      return 0;\n    }\nLAB_0005603c:\n    if (*(byte *)(param_1 + 0x28) >> 4 == 2) {\n      return 0;\n    }\n    if ((*(byte *)(param_1 + 0x2c) & 2) != 0) {\n      return 0;\n    }\n    iVar6 = DAT_0033f2f0;\n    if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_00056205;\n    if (*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x49b1) != '\0') {\n      return 0;\n    }\n    if (*(char *)(param_1 + 0x2b) < '\0') {\n      if (bVar4 != 0) {\n        return 0;\n      }\nLAB_00056080:\n      pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14);\n      if (pcVar1 == FUN_00054e20) {\n        return 0;\n      }\n      iVar6 = (*pcVar1)(*(int **)(param_1 + 8));\n      if (iVar6 == 0) {\n        return 0;\n      }\n    }\n  }\nLAB_000560de:\n  piVar2 = *(int **)(DAT_0033f2f0 + 0xc);\n  if (piVar2 == (int *)0x0) {\n                    \n    FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n  }\n  cVar5 = (**(code **)(*piVar2 + 0x1c))(piVar2,param_1);\n  if (cVar5 == '\0') {\n    iVar3 = *(int *)(DAT_0033f2f0 + 8);\n    iVar6 = extraout_EDX;\n    if (iVar3 == 0) {\nLAB_00056205:\n                    \n      FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar6);\n    }\n    pbVar8 = *(byte **)(iVar3 + 0x42e4);\n    bVar10 = false;\n    bVar12 = pbVar8 == (byte *)0x0;\n    if (bVar12) {\nLAB_000561a0:\n      if ((*(byte *)(param_1 + 0x29) & 3) == 2) {\n        return 1;\n      }\n      if (*(char *)(iVar3 + 0x1a25) != '\0') {\n        return *(undefined1 *)(iVar3 + 0x4eb5);\n      }\n      return 1;\n    }\n    iVar6 = 0xb;\n    pbVar7 = pbVar8;\n    pbVar9 = (byte *)"ignore-all";\n    do {\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      bVar10 = *pbVar7 < *pbVar9;\n      bVar12 = *pbVar7 == *pbVar9;\n      pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n      pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar12) == bVar10;\n    if (!bVar10) {\n      iVar6 = 0xb;\n      pbVar7 = pbVar8;\n      pbVar9 = (byte *)"report-all";\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar11 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n      } while (bVar10);\n      bVar12 = false;\n      bVar10 = (!bVar11 && !bVar10) == bVar11;\n      if (bVar10) {\n        return 1;\n      }\n      iVar6 = 0x17;\n      pbVar7 = pbVar8;\n      pbVar9 = (byte *)"ignore-in-object-files";\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar12 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n      } while (bVar10);\n      bVar10 = (!bVar12 && !bVar10) == bVar12;\n      if ((!bVar10) || (bVar10 = (*(byte *)(param_1 + 0x2b) & 1) == 0, !bVar10)) {\n        bVar12 = false;\n        iVar6 = 0x16;\n        pbVar7 = (byte *)"ignore-in-shared-libs";\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar12 = *pbVar8 < *pbVar7;\n          bVar10 = *pbVar8 == *pbVar7;\n          pbVar8 = pbVar8 + (uint)bVar13 * -2 + 1;\n          pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        } while (bVar10);\n        if (((!bVar12 && !bVar10) != bVar12) || (*(char *)(param_1 + 0x2a) < '\0'))\n        goto LAB_000561a0;\n      }\n    }\n  }\n  return 0;\n}" type_identifier (function_declarator "FUN_00055fe0(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  code *pcVar1;\n  int *piVar2;\n  int iVar3;\n  byte bVar4;\n  char cVar5;\n  int iVar6;\n  int extraout_EDX;\n  byte *pbVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  bool bVar10;\n  bool bVar11;\n  bool bVar12;\n  byte bVar13;\n  \n  bVar13 = 0;\n  if (param_1 == 0) {\n    return 0;\n  }\n  bVar4 = *(byte *)(param_1 + 0x2a) & 7;\n  if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {\n    if ((*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0))\n    goto LAB_0005603c;\n    pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14);\n    if (pcVar1 == FUN_00054e20) {\n      return 0;\n    }\n    iVar6 = (*pcVar1)(*(int **)(param_1 + 8));\n    if (iVar6 == 0) {\n      return 0;\n    }\n    bVar4 = *(byte *)(param_1 + 0x2a) & 7;\n    if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {\n      if ((*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0))\n      goto LAB_0005603c;\n      if (-1 < (char)*(byte *)(param_1 + 0x2b)) goto LAB_000560de;\n      goto LAB_00056080;\n    }\n    if (bVar4 == 4) goto LAB_0005603c;\n    if (*(char *)(param_1 + 0x2b) < '\0') {\n      return 0;\n    }\n  }\n  else {\n    if (bVar4 != 4) {\n      return 0;\n    }\nLAB_0005603c:\n    if (*(byte *)(param_1 + 0x28) >> 4 == 2) {\n      return 0;\n    }\n    if ((*(byte *)(param_1 + 0x2c) & 2) != 0) {\n      return 0;\n    }\n    iVar6 = DAT_0033f2f0;\n    if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_00056205;\n    if (*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x49b1) != '\0') {\n      return 0;\n    }\n    if (*(char *)(param_1 + 0x2b) < '\0') {\n      if (bVar4 != 0) {\n        return 0;\n      }\nLAB_00056080:\n      pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14);\n      if (pcVar1 == FUN_00054e20) {\n        return 0;\n      }\n      iVar6 = (*pcVar1)(*(int **)(param_1 + 8));\n      if (iVar6 == 0) {\n        return 0;\n      }\n    }\n  }\nLAB_000560de:\n  piVar2 = *(int **)(DAT_0033f2f0 + 0xc);\n  if (piVar2 == (int *)0x0) {\n                    \n    FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n  }\n  cVar5 = (**(code **)(*piVar2 + 0x1c))(piVar2,param_1);\n  if (cVar5 == '\0') {\n    iVar3 = *(int *)(DAT_0033f2f0 + 8);\n    iVar6 = extraout_EDX;\n    if (iVar3 == 0) {\nLAB_00056205:\n                    \n      FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar6);\n    }\n    pbVar8 = *(byte **)(iVar3 + 0x42e4);\n    bVar10 = false;\n    bVar12 = pbVar8 == (byte *)0x0;\n    if (bVar12) {\nLAB_000561a0:\n      if ((*(byte *)(param_1 + 0x29) & 3) == 2) {\n        return 1;\n      }\n      if (*(char *)(iVar3 + 0x1a25) != '\0') {\n        return *(undefined1 *)(iVar3 + 0x4eb5);\n      }\n      return 1;\n    }\n    iVar6 = 0xb;\n    pbVar7 = pbVar8;\n    pbVar9 = (byte *)"ignore-all";\n    do {\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      bVar10 = *pbVar7 < *pbVar9;\n      bVar12 = *pbVar7 == *pbVar9;\n      pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n      pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar12) == bVar10;\n    if (!bVar10) {\n      iVar6 = 0xb;\n      pbVar7 = pbVar8;\n      pbVar9 = (byte *)"report-all";\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar11 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n      } while (bVar10);\n      bVar12 = false;\n      bVar10 = (!bVar11 && !bVar10) == bVar11;\n      if (bVar10) {\n        return 1;\n      }\n      iVar6 = 0x17;\n      pbVar7 = pbVar8;\n      pbVar9 = (byte *)"ignore-in-object-files";\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar12 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n      } while (bVar10);\n      bVar10 = (!bVar12 && !bVar10) == bVar12;\n      if ((!bVar10) || (bVar10 = (*(byte *)(param_1 + 0x2b) & 1) == 0, !bVar10)) {\n        bVar12 = false;\n        iVar6 = 0x16;\n        pbVar7 = (byte *)"ignore-in-shared-libs";\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar12 = *pbVar8 < *pbVar7;\n          bVar10 = *pbVar8 == *pbVar7;\n          pbVar8 = pbVar8 + (uint)bVar13 * -2 + 1;\n          pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        } while (bVar10);\n        if (((!bVar12 && !bVar10) != bVar12) || (*(char *)(param_1 + 0x2a) < '\0'))\n        goto LAB_000561a0;\n      }\n    }\n  }\n  return 0;\n}" { (declaration "code *pcVar1;" type_identifier (pointer_declarator "*pcVar1" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "byte bVar4;" type_identifier identifier ;) (declaration "char cVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int extraout_EDX;" primitive_type identifier ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "bool bVar10;" primitive_type identifier ;) (declaration "bool bVar11;" primitive_type identifier ;) (declaration "bool bVar12;" primitive_type identifier ;) (declaration "byte bVar13;" type_identifier identifier ;) (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) (if_statement "if (param_1 == 0) {\n    return 0;\n  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar4 = *(byte *)(param_1 + 0x2a) & 7;" (assignment_expression "bVar4 = *(byte *)(param_1 + 0x2a) & 7" identifier = (binary_expression "*(byte *)(param_1 + 0x2a) & 7" (pointer_expression "*(byte *)(param_1 + 0x2a)" * (cast_expression "(byte *)(param_1 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a)" ( (binary_expression "param_1 + 0x2a" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {\n    if ((*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0))\n    goto LAB_0005603c;\n    pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14);\n    if (pcVar1 == FUN_00054e20) {\n      return 0;\n    }\n    iVar6 = (*pcVar1)(*(int **)(param_1 + 8));\n    if (iVar6 == 0) {\n      return 0;\n    }\n    bVar4 = *(byte *)(param_1 + 0x2a) & 7;\n    if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {\n      if ((*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0))\n      goto LAB_0005603c;\n      if (-1 < (char)*(byte *)(param_1 + 0x2b)) goto LAB_000560de;\n      goto LAB_00056080;\n    }\n    if (bVar4 == 4) goto LAB_0005603c;\n    if (*(char *)(param_1 + 0x2b) < '\0') {\n      return 0;\n    }\n  }\n  else {\n    if (bVar4 != 4) {\n      return 0;\n    }\nLAB_0005603c:\n    if (*(byte *)(param_1 + 0x28) >> 4 == 2) {\n      return 0;\n    }\n    if ((*(byte *)(param_1 + 0x2c) & 2) != 0) {\n      return 0;\n    }\n    iVar6 = DAT_0033f2f0;\n    if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_00056205;\n    if (*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x49b1) != '\0') {\n      return 0;\n    }\n    if (*(char *)(param_1 + 0x2b) < '\0') {\n      if (bVar4 != 0) {\n        return 0;\n      }\nLAB_00056080:\n      pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14);\n      if (pcVar1 == FUN_00054e20) {\n        return 0;\n      }\n      iVar6 = (*pcVar1)(*(int **)(param_1 + 8));\n      if (iVar6 == 0) {\n        return 0;\n      }\n    }\n  }" if (parenthesized_expression "((*(byte *)(param_1 + 0x2a) & 7) == 0)" ( (binary_expression "(*(byte *)(param_1 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0x2a) & 7)" ( (binary_expression "*(byte *)(param_1 + 0x2a) & 7" (pointer_expression "*(byte *)(param_1 + 0x2a)" * (cast_expression "(byte *)(param_1 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a)" ( (binary_expression "param_1 + 0x2a" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    if ((*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0))\n    goto LAB_0005603c;\n    pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14);\n    if (pcVar1 == FUN_00054e20) {\n      return 0;\n    }\n    iVar6 = (*pcVar1)(*(int **)(param_1 + 8));\n    if (iVar6 == 0) {\n      return 0;\n    }\n    bVar4 = *(byte *)(param_1 + 0x2a) & 7;\n    if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {\n      if ((*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0))\n      goto LAB_0005603c;\n      if (-1 < (char)*(byte *)(param_1 + 0x2b)) goto LAB_000560de;\n      goto LAB_00056080;\n    }\n    if (bVar4 == 4) goto LAB_0005603c;\n    if (*(char *)(param_1 + 0x2b) < '\0') {\n      return 0;\n    }\n  }" { (if_statement "if ((*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0))\n    goto LAB_0005603c;" if (parenthesized_expression "((*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0))" ( (binary_expression "(*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0)" (parenthesized_expression "(*(int *)(param_1 + 0xc) == 0)" ( (binary_expression "*(int *)(param_1 + 0xc) == 0" (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "((*(byte *)(param_1 + 0x2b) & 0x20) != 0)" ( (binary_expression "(*(byte *)(param_1 + 0x2b) & 0x20) != 0" (parenthesized_expression "(*(byte *)(param_1 + 0x2b) & 0x20)" ( (binary_expression "*(byte *)(param_1 + 0x2b) & 0x20" (pointer_expression "*(byte *)(param_1 + 0x2b)" * (cast_expression "(byte *)(param_1 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2b)" ( (binary_expression "param_1 + 0x2b" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_0005603c;" goto statement_identifier ;)) (expression_statement "pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14);" (assignment_expression "pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14)" identifier = (pointer_expression "*(code **)(**(int **)(param_1 + 8) + 0x14)" * (cast_expression "(code **)(**(int **)(param_1 + 8) + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(param_1 + 8) + 0x14)" ( (binary_expression "**(int **)(param_1 + 8) + 0x14" (pointer_expression "**(int **)(param_1 + 8)" * (pointer_expression "*(int **)(param_1 + 8)" * (cast_expression "(int **)(param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar1 == FUN_00054e20) {\n      return 0;\n    }" if (parenthesized_expression "(pcVar1 == FUN_00054e20)" ( (binary_expression "pcVar1 == FUN_00054e20" identifier == identifier) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar6 = (*pcVar1)(*(int **)(param_1 + 8));" (assignment_expression "iVar6 = (*pcVar1)(*(int **)(param_1 + 8))" identifier = (call_expression "(*pcVar1)(*(int **)(param_1 + 8))" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "(*(int **)(param_1 + 8))" ( (pointer_expression "*(int **)(param_1 + 8)" * (cast_expression "(int **)(param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar6 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar4 = *(byte *)(param_1 + 0x2a) & 7;" (assignment_expression "bVar4 = *(byte *)(param_1 + 0x2a) & 7" identifier = (binary_expression "*(byte *)(param_1 + 0x2a) & 7" (pointer_expression "*(byte *)(param_1 + 0x2a)" * (cast_expression "(byte *)(param_1 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a)" ( (binary_expression "param_1 + 0x2a" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {\n      if ((*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0))\n      goto LAB_0005603c;\n      if (-1 < (char)*(byte *)(param_1 + 0x2b)) goto LAB_000560de;\n      goto LAB_00056080;\n    }" if (parenthesized_expression "((*(byte *)(param_1 + 0x2a) & 7) == 0)" ( (binary_expression "(*(byte *)(param_1 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0x2a) & 7)" ( (binary_expression "*(byte *)(param_1 + 0x2a) & 7" (pointer_expression "*(byte *)(param_1 + 0x2a)" * (cast_expression "(byte *)(param_1 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a)" ( (binary_expression "param_1 + 0x2a" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      if ((*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0))\n      goto LAB_0005603c;\n      if (-1 < (char)*(byte *)(param_1 + 0x2b)) goto LAB_000560de;\n      goto LAB_00056080;\n    }" { (if_statement "if ((*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0))\n      goto LAB_0005603c;" if (parenthesized_expression "((*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0))" ( (binary_expression "(*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0)" (parenthesized_expression "(*(int *)(param_1 + 0xc) == 0)" ( (binary_expression "*(int *)(param_1 + 0xc) == 0" (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "((*(byte *)(param_1 + 0x2b) & 0x20) != 0)" ( (binary_expression "(*(byte *)(param_1 + 0x2b) & 0x20) != 0" (parenthesized_expression "(*(byte *)(param_1 + 0x2b) & 0x20)" ( (binary_expression "*(byte *)(param_1 + 0x2b) & 0x20" (pointer_expression "*(byte *)(param_1 + 0x2b)" * (cast_expression "(byte *)(param_1 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2b)" ( (binary_expression "param_1 + 0x2b" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_0005603c;" goto statement_identifier ;)) (if_statement "if (-1 < (char)*(byte *)(param_1 + 0x2b)) goto LAB_000560de;" if (parenthesized_expression "(-1 < (char)*(byte *)(param_1 + 0x2b))" ( (binary_expression "-1 < (char)*(byte *)(param_1 + 0x2b)" number_literal < (cast_expression "(char)*(byte *)(param_1 + 0x2b)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)(param_1 + 0x2b)" * (cast_expression "(byte *)(param_1 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2b)" ( (binary_expression "param_1 + 0x2b" identifier + number_literal) )))))) )) (goto_statement "goto LAB_000560de;" goto statement_identifier ;)) (goto_statement "goto LAB_00056080;" goto statement_identifier ;) })) (if_statement "if (bVar4 == 4) goto LAB_0005603c;" if (parenthesized_expression "(bVar4 == 4)" ( (binary_expression "bVar4 == 4" identifier == number_literal) )) (goto_statement "goto LAB_0005603c;" goto statement_identifier ;)) (if_statement "if (*(char *)(param_1 + 0x2b) < '\0') {\n      return 0;\n    }" if (parenthesized_expression "(*(char *)(param_1 + 0x2b) < '\0')" ( (binary_expression "*(char *)(param_1 + 0x2b) < '\0'" (pointer_expression "*(char *)(param_1 + 0x2b)" * (cast_expression "(char *)(param_1 + 0x2b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2b)" ( (binary_expression "param_1 + 0x2b" identifier + number_literal) )))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) }) (else_clause "else {\n    if (bVar4 != 4) {\n      return 0;\n    }\nLAB_0005603c:\n    if (*(byte *)(param_1 + 0x28) >> 4 == 2) {\n      return 0;\n    }\n    if ((*(byte *)(param_1 + 0x2c) & 2) != 0) {\n      return 0;\n    }\n    iVar6 = DAT_0033f2f0;\n    if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_00056205;\n    if (*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x49b1) != '\0') {\n      return 0;\n    }\n    if (*(char *)(param_1 + 0x2b) < '\0') {\n      if (bVar4 != 0) {\n        return 0;\n      }\nLAB_00056080:\n      pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14);\n      if (pcVar1 == FUN_00054e20) {\n        return 0;\n      }\n      iVar6 = (*pcVar1)(*(int **)(param_1 + 8));\n      if (iVar6 == 0) {\n        return 0;\n      }\n    }\n  }" else (compound_statement "{\n    if (bVar4 != 4) {\n      return 0;\n    }\nLAB_0005603c:\n    if (*(byte *)(param_1 + 0x28) >> 4 == 2) {\n      return 0;\n    }\n    if ((*(byte *)(param_1 + 0x2c) & 2) != 0) {\n      return 0;\n    }\n    iVar6 = DAT_0033f2f0;\n    if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_00056205;\n    if (*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x49b1) != '\0') {\n      return 0;\n    }\n    if (*(char *)(param_1 + 0x2b) < '\0') {\n      if (bVar4 != 0) {\n        return 0;\n      }\nLAB_00056080:\n      pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14);\n      if (pcVar1 == FUN_00054e20) {\n        return 0;\n      }\n      iVar6 = (*pcVar1)(*(int **)(param_1 + 8));\n      if (iVar6 == 0) {\n        return 0;\n      }\n    }\n  }" { (if_statement "if (bVar4 != 4) {\n      return 0;\n    }" if (parenthesized_expression "(bVar4 != 4)" ( (binary_expression "bVar4 != 4" identifier != number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (labeled_statement "LAB_0005603c:\n    if (*(byte *)(param_1 + 0x28) >> 4 == 2) {\n      return 0;\n    }" statement_identifier : (if_statement "if (*(byte *)(param_1 + 0x28) >> 4 == 2) {\n      return 0;\n    }" if (parenthesized_expression "(*(byte *)(param_1 + 0x28) >> 4 == 2)" ( (binary_expression "*(byte *)(param_1 + 0x28) >> 4 == 2" (binary_expression "*(byte *)(param_1 + 0x28) >> 4" (pointer_expression "*(byte *)(param_1 + 0x28)" * (cast_expression "(byte *)(param_1 + 0x28)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) >> number_literal) == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) }))) (if_statement "if ((*(byte *)(param_1 + 0x2c) & 2) != 0) {\n      return 0;\n    }" if (parenthesized_expression "((*(byte *)(param_1 + 0x2c) & 2) != 0)" ( (binary_expression "(*(byte *)(param_1 + 0x2c) & 2) != 0" (parenthesized_expression "(*(byte *)(param_1 + 0x2c) & 2)" ( (binary_expression "*(byte *)(param_1 + 0x2c) & 2" (pointer_expression "*(byte *)(param_1 + 0x2c)" * (cast_expression "(byte *)(param_1 + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar6 = DAT_0033f2f0;" (assignment_expression "iVar6 = DAT_0033f2f0" identifier = identifier) ;) (if_statement "if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_00056205;" 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_00056205;" goto statement_identifier ;)) (if_statement "if (*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x49b1) != '\0') {\n      return 0;\n    }" if (parenthesized_expression "(*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x49b1) != '\0')" ( (binary_expression "*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x49b1) != '\0'" (pointer_expression "*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x49b1)" * (cast_expression "(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x49b1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_0033f2f0 + 8) + 0x49b1)" ( (binary_expression "*(int *)(DAT_0033f2f0 + 8) + 0x49b1" (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 ')) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (*(char *)(param_1 + 0x2b) < '\0') {\n      if (bVar4 != 0) {\n        return 0;\n      }\nLAB_00056080:\n      pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14);\n      if (pcVar1 == FUN_00054e20) {\n        return 0;\n      }\n      iVar6 = (*pcVar1)(*(int **)(param_1 + 8));\n      if (iVar6 == 0) {\n        return 0;\n      }\n    }" if (parenthesized_expression "(*(char *)(param_1 + 0x2b) < '\0')" ( (binary_expression "*(char *)(param_1 + 0x2b) < '\0'" (pointer_expression "*(char *)(param_1 + 0x2b)" * (cast_expression "(char *)(param_1 + 0x2b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2b)" ( (binary_expression "param_1 + 0x2b" identifier + number_literal) )))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if (bVar4 != 0) {\n        return 0;\n      }\nLAB_00056080:\n      pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14);\n      if (pcVar1 == FUN_00054e20) {\n        return 0;\n      }\n      iVar6 = (*pcVar1)(*(int **)(param_1 + 8));\n      if (iVar6 == 0) {\n        return 0;\n      }\n    }" { (if_statement "if (bVar4 != 0) {\n        return 0;\n      }" if (parenthesized_expression "(bVar4 != 0)" ( (binary_expression "bVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (labeled_statement "LAB_00056080:\n      pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14);" statement_identifier : (expression_statement "pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14);" (assignment_expression "pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14)" identifier = (pointer_expression "*(code **)(**(int **)(param_1 + 8) + 0x14)" * (cast_expression "(code **)(**(int **)(param_1 + 8) + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(param_1 + 8) + 0x14)" ( (binary_expression "**(int **)(param_1 + 8) + 0x14" (pointer_expression "**(int **)(param_1 + 8)" * (pointer_expression "*(int **)(param_1 + 8)" * (cast_expression "(int **)(param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) + number_literal) ))))) ;)) (if_statement "if (pcVar1 == FUN_00054e20) {\n        return 0;\n      }" if (parenthesized_expression "(pcVar1 == FUN_00054e20)" ( (binary_expression "pcVar1 == FUN_00054e20" identifier == identifier) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar6 = (*pcVar1)(*(int **)(param_1 + 8));" (assignment_expression "iVar6 = (*pcVar1)(*(int **)(param_1 + 8))" identifier = (call_expression "(*pcVar1)(*(int **)(param_1 + 8))" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "(*(int **)(param_1 + 8))" ( (pointer_expression "*(int **)(param_1 + 8)" * (cast_expression "(int **)(param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar6 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) })) }))) (labeled_statement "LAB_000560de:\n  piVar2 = *(int **)(DAT_0033f2f0 + 0xc);" statement_identifier : (expression_statement "piVar2 = *(int **)(DAT_0033f2f0 + 0xc);" (assignment_expression "piVar2 = *(int **)(DAT_0033f2f0 + 0xc)" identifier = (pointer_expression "*(int **)(DAT_0033f2f0 + 0xc)" * (cast_expression "(int **)(DAT_0033f2f0 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_0033f2f0 + 0xc)" ( (binary_expression "DAT_0033f2f0 + 0xc" identifier + number_literal) ))))) ;)) (if_statement "if (piVar2 == (int *)0x0) {\n                    \n    FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n  }" if (parenthesized_expression "(piVar2 == (int *)0x0)" ( (binary_expression "piVar2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n    FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n  }" { (expression_statement "FUN_0008b620("../../gold/parameters.h",0x69,"target",0);" (call_expression "FUN_0008b620("../../gold/parameters.h",0x69,"target",0)" identifier (argument_list "("../../gold/parameters.h",0x69,"target",0)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""target"" " string_content ") , number_literal ))) ;) })) (expression_statement "cVar5 = (**(code **)(*piVar2 + 0x1c))(piVar2,param_1);" (assignment_expression "cVar5 = (**(code **)(*piVar2 + 0x1c))(piVar2,param_1)" identifier = (call_expression "(**(code **)(*piVar2 + 0x1c))(piVar2,param_1)" (parenthesized_expression "(**(code **)(*piVar2 + 0x1c))" ( (pointer_expression "**(code **)(*piVar2 + 0x1c)" * (pointer_expression "*(code **)(*piVar2 + 0x1c)" * (cast_expression "(code **)(*piVar2 + 0x1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar2 + 0x1c)" ( (binary_expression "*piVar2 + 0x1c" (pointer_expression "*piVar2" * identifier) + number_literal) ))))) )) (argument_list "(piVar2,param_1)" ( identifier , identifier )))) ;) (if_statement "if (cVar5 == '\0') {\n    iVar3 = *(int *)(DAT_0033f2f0 + 8);\n    iVar6 = extraout_EDX;\n    if (iVar3 == 0) {\nLAB_00056205:\n                    \n      FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar6);\n    }\n    pbVar8 = *(byte **)(iVar3 + 0x42e4);\n    bVar10 = false;\n    bVar12 = pbVar8 == (byte *)0x0;\n    if (bVar12) {\nLAB_000561a0:\n      if ((*(byte *)(param_1 + 0x29) & 3) == 2) {\n        return 1;\n      }\n      if (*(char *)(iVar3 + 0x1a25) != '\0') {\n        return *(undefined1 *)(iVar3 + 0x4eb5);\n      }\n      return 1;\n    }\n    iVar6 = 0xb;\n    pbVar7 = pbVar8;\n    pbVar9 = (byte *)"ignore-all";\n    do {\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      bVar10 = *pbVar7 < *pbVar9;\n      bVar12 = *pbVar7 == *pbVar9;\n      pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n      pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar12) == bVar10;\n    if (!bVar10) {\n      iVar6 = 0xb;\n      pbVar7 = pbVar8;\n      pbVar9 = (byte *)"report-all";\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar11 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n      } while (bVar10);\n      bVar12 = false;\n      bVar10 = (!bVar11 && !bVar10) == bVar11;\n      if (bVar10) {\n        return 1;\n      }\n      iVar6 = 0x17;\n      pbVar7 = pbVar8;\n      pbVar9 = (byte *)"ignore-in-object-files";\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar12 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n      } while (bVar10);\n      bVar10 = (!bVar12 && !bVar10) == bVar12;\n      if ((!bVar10) || (bVar10 = (*(byte *)(param_1 + 0x2b) & 1) == 0, !bVar10)) {\n        bVar12 = false;\n        iVar6 = 0x16;\n        pbVar7 = (byte *)"ignore-in-shared-libs";\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar12 = *pbVar8 < *pbVar7;\n          bVar10 = *pbVar8 == *pbVar7;\n          pbVar8 = pbVar8 + (uint)bVar13 * -2 + 1;\n          pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        } while (bVar10);\n        if (((!bVar12 && !bVar10) != bVar12) || (*(char *)(param_1 + 0x2a) < '\0'))\n        goto LAB_000561a0;\n      }\n    }\n  }" if (parenthesized_expression "(cVar5 == '\0')" ( (binary_expression "cVar5 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar3 = *(int *)(DAT_0033f2f0 + 8);\n    iVar6 = extraout_EDX;\n    if (iVar3 == 0) {\nLAB_00056205:\n                    \n      FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar6);\n    }\n    pbVar8 = *(byte **)(iVar3 + 0x42e4);\n    bVar10 = false;\n    bVar12 = pbVar8 == (byte *)0x0;\n    if (bVar12) {\nLAB_000561a0:\n      if ((*(byte *)(param_1 + 0x29) & 3) == 2) {\n        return 1;\n      }\n      if (*(char *)(iVar3 + 0x1a25) != '\0') {\n        return *(undefined1 *)(iVar3 + 0x4eb5);\n      }\n      return 1;\n    }\n    iVar6 = 0xb;\n    pbVar7 = pbVar8;\n    pbVar9 = (byte *)"ignore-all";\n    do {\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      bVar10 = *pbVar7 < *pbVar9;\n      bVar12 = *pbVar7 == *pbVar9;\n      pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n      pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar12) == bVar10;\n    if (!bVar10) {\n      iVar6 = 0xb;\n      pbVar7 = pbVar8;\n      pbVar9 = (byte *)"report-all";\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar11 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n      } while (bVar10);\n      bVar12 = false;\n      bVar10 = (!bVar11 && !bVar10) == bVar11;\n      if (bVar10) {\n        return 1;\n      }\n      iVar6 = 0x17;\n      pbVar7 = pbVar8;\n      pbVar9 = (byte *)"ignore-in-object-files";\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar12 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n      } while (bVar10);\n      bVar10 = (!bVar12 && !bVar10) == bVar12;\n      if ((!bVar10) || (bVar10 = (*(byte *)(param_1 + 0x2b) & 1) == 0, !bVar10)) {\n        bVar12 = false;\n        iVar6 = 0x16;\n        pbVar7 = (byte *)"ignore-in-shared-libs";\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar12 = *pbVar8 < *pbVar7;\n          bVar10 = *pbVar8 == *pbVar7;\n          pbVar8 = pbVar8 + (uint)bVar13 * -2 + 1;\n          pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        } while (bVar10);\n        if (((!bVar12 && !bVar10) != bVar12) || (*(char *)(param_1 + 0x2a) < '\0'))\n        goto LAB_000561a0;\n      }\n    }\n  }" { (expression_statement "iVar3 = *(int *)(DAT_0033f2f0 + 8);" (assignment_expression "iVar3 = *(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 "iVar6 = extraout_EDX;" (assignment_expression "iVar6 = extraout_EDX" identifier = identifier) ;) (if_statement "if (iVar3 == 0) {\nLAB_00056205:\n                    \n      FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar6);\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00056205:\n                    \n      FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar6);\n    }" { (labeled_statement "LAB_00056205:\n                    \n      FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar6);" statement_identifier : (expression_statement "FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar6);" (call_expression "FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar6)" identifier (argument_list "("../../gold/parameters.h",0x5c,"options",iVar6)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") , identifier ))) ;)) })) (expression_statement "pbVar8 = *(byte **)(iVar3 + 0x42e4);" (assignment_expression "pbVar8 = *(byte **)(iVar3 + 0x42e4)" identifier = (pointer_expression "*(byte **)(iVar3 + 0x42e4)" * (cast_expression "(byte **)(iVar3 + 0x42e4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x42e4)" ( (binary_expression "iVar3 + 0x42e4" identifier + number_literal) ))))) ;) (expression_statement "bVar10 = false;" (assignment_expression "bVar10 = false" identifier = false) ;) (expression_statement "bVar12 = pbVar8 == (byte *)0x0;" (assignment_expression "bVar12 = pbVar8 == (byte *)0x0" identifier = (binary_expression "pbVar8 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (bVar12) {\nLAB_000561a0:\n      if ((*(byte *)(param_1 + 0x29) & 3) == 2) {\n        return 1;\n      }\n      if (*(char *)(iVar3 + 0x1a25) != '\0') {\n        return *(undefined1 *)(iVar3 + 0x4eb5);\n      }\n      return 1;\n    }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\nLAB_000561a0:\n      if ((*(byte *)(param_1 + 0x29) & 3) == 2) {\n        return 1;\n      }\n      if (*(char *)(iVar3 + 0x1a25) != '\0') {\n        return *(undefined1 *)(iVar3 + 0x4eb5);\n      }\n      return 1;\n    }" { (labeled_statement "LAB_000561a0:\n      if ((*(byte *)(param_1 + 0x29) & 3) == 2) {\n        return 1;\n      }" statement_identifier : (if_statement "if ((*(byte *)(param_1 + 0x29) & 3) == 2) {\n        return 1;\n      }" if (parenthesized_expression "((*(byte *)(param_1 + 0x29) & 3) == 2)" ( (binary_expression "(*(byte *)(param_1 + 0x29) & 3) == 2" (parenthesized_expression "(*(byte *)(param_1 + 0x29) & 3)" ( (binary_expression "*(byte *)(param_1 + 0x29) & 3" (pointer_expression "*(byte *)(param_1 + 0x29)" * (cast_expression "(byte *)(param_1 + 0x29)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x29)" ( (binary_expression "param_1 + 0x29" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) }))) (if_statement "if (*(char *)(iVar3 + 0x1a25) != '\0') {\n        return *(undefined1 *)(iVar3 + 0x4eb5);\n      }" if (parenthesized_expression "(*(char *)(iVar3 + 0x1a25) != '\0')" ( (binary_expression "*(char *)(iVar3 + 0x1a25) != '\0'" (pointer_expression "*(char *)(iVar3 + 0x1a25)" * (cast_expression "(char *)(iVar3 + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1a25)" ( (binary_expression "iVar3 + 0x1a25" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        return *(undefined1 *)(iVar3 + 0x4eb5);\n      }" { (return_statement "return *(undefined1 *)(iVar3 + 0x4eb5);" return (pointer_expression "*(undefined1 *)(iVar3 + 0x4eb5)" * (cast_expression "(undefined1 *)(iVar3 + 0x4eb5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x4eb5)" ( (binary_expression "iVar3 + 0x4eb5" identifier + number_literal) )))) ;) })) (return_statement "return 1;" return number_literal ;) })) (expression_statement "iVar6 = 0xb;" (assignment_expression "iVar6 = 0xb" identifier = number_literal) ;) (expression_statement "pbVar7 = pbVar8;" (assignment_expression "pbVar7 = pbVar8" identifier = identifier) ;) (expression_statement "pbVar9 = (byte *)"ignore-all";" (assignment_expression "pbVar9 = (byte *)"ignore-all"" identifier = (cast_expression "(byte *)"ignore-all"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""ignore-all"" " string_content "))) ;) (do_statement "do {\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      bVar10 = *pbVar7 < *pbVar9;\n      bVar12 = *pbVar7 == *pbVar9;\n      pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n      pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);" do (compound_statement "{\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      bVar10 = *pbVar7 < *pbVar9;\n      bVar12 = *pbVar7 == *pbVar9;\n      pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n      pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n    }" { (if_statement "if (iVar6 == 0) break;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) (expression_statement "bVar10 = *pbVar7 < *pbVar9;" (assignment_expression "bVar10 = *pbVar7 < *pbVar9" identifier = (binary_expression "*pbVar7 < *pbVar9" (pointer_expression "*pbVar7" * identifier) < (pointer_expression "*pbVar9" * identifier))) ;) (expression_statement "bVar12 = *pbVar7 == *pbVar9;" (assignment_expression "bVar12 = *pbVar7 == *pbVar9" identifier = (binary_expression "*pbVar7 == *pbVar9" (pointer_expression "*pbVar7" * identifier) == (pointer_expression "*pbVar9" * identifier))) ;) (expression_statement "pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;" (assignment_expression "pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1" identifier = (binary_expression "pbVar7 + (uint)bVar13 * -2 + 1" (binary_expression "pbVar7 + (uint)bVar13 * -2" identifier + (binary_expression "(uint)bVar13 * -2" (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar13 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar13 * -2" identifier + (binary_expression "(uint)bVar13 * -2" (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar12)" ( identifier )) ;) (expression_statement "bVar11 = false;" (assignment_expression "bVar11 = false" identifier = false) ;) (expression_statement "bVar10 = (!bVar10 && !bVar12) == bVar10;" (assignment_expression "bVar10 = (!bVar10 && !bVar12) == bVar10" identifier = (binary_expression "(!bVar10 && !bVar12) == bVar10" (parenthesized_expression "(!bVar10 && !bVar12)" ( (binary_expression "!bVar10 && !bVar12" (unary_expression "!bVar10" ! identifier) && (unary_expression "!bVar12" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar10) {\n      iVar6 = 0xb;\n      pbVar7 = pbVar8;\n      pbVar9 = (byte *)"report-all";\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar11 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n      } while (bVar10);\n      bVar12 = false;\n      bVar10 = (!bVar11 && !bVar10) == bVar11;\n      if (bVar10) {\n        return 1;\n      }\n      iVar6 = 0x17;\n      pbVar7 = pbVar8;\n      pbVar9 = (byte *)"ignore-in-object-files";\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar12 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n      } while (bVar10);\n      bVar10 = (!bVar12 && !bVar10) == bVar12;\n      if ((!bVar10) || (bVar10 = (*(byte *)(param_1 + 0x2b) & 1) == 0, !bVar10)) {\n        bVar12 = false;\n        iVar6 = 0x16;\n        pbVar7 = (byte *)"ignore-in-shared-libs";\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar12 = *pbVar8 < *pbVar7;\n          bVar10 = *pbVar8 == *pbVar7;\n          pbVar8 = pbVar8 + (uint)bVar13 * -2 + 1;\n          pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        } while (bVar10);\n        if (((!bVar12 && !bVar10) != bVar12) || (*(char *)(param_1 + 0x2a) < '\0'))\n        goto LAB_000561a0;\n      }\n    }" if (parenthesized_expression "(!bVar10)" ( (unary_expression "!bVar10" ! identifier) )) (compound_statement "{\n      iVar6 = 0xb;\n      pbVar7 = pbVar8;\n      pbVar9 = (byte *)"report-all";\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar11 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n      } while (bVar10);\n      bVar12 = false;\n      bVar10 = (!bVar11 && !bVar10) == bVar11;\n      if (bVar10) {\n        return 1;\n      }\n      iVar6 = 0x17;\n      pbVar7 = pbVar8;\n      pbVar9 = (byte *)"ignore-in-object-files";\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar12 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n      } while (bVar10);\n      bVar10 = (!bVar12 && !bVar10) == bVar12;\n      if ((!bVar10) || (bVar10 = (*(byte *)(param_1 + 0x2b) & 1) == 0, !bVar10)) {\n        bVar12 = false;\n        iVar6 = 0x16;\n        pbVar7 = (byte *)"ignore-in-shared-libs";\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar12 = *pbVar8 < *pbVar7;\n          bVar10 = *pbVar8 == *pbVar7;\n          pbVar8 = pbVar8 + (uint)bVar13 * -2 + 1;\n          pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        } while (bVar10);\n        if (((!bVar12 && !bVar10) != bVar12) || (*(char *)(param_1 + 0x2a) < '\0'))\n        goto LAB_000561a0;\n      }\n    }" { (expression_statement "iVar6 = 0xb;" (assignment_expression "iVar6 = 0xb" identifier = number_literal) ;) (expression_statement "pbVar7 = pbVar8;" (assignment_expression "pbVar7 = pbVar8" identifier = identifier) ;) (expression_statement "pbVar9 = (byte *)"report-all";" (assignment_expression "pbVar9 = (byte *)"report-all"" identifier = (cast_expression "(byte *)"report-all"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""report-all"" " string_content "))) ;) (do_statement "do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar11 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n      } while (bVar10);" do (compound_statement "{\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar11 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n      }" { (if_statement "if (iVar6 == 0) break;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) (expression_statement "bVar11 = *pbVar7 < *pbVar9;" (assignment_expression "bVar11 = *pbVar7 < *pbVar9" identifier = (binary_expression "*pbVar7 < *pbVar9" (pointer_expression "*pbVar7" * identifier) < (pointer_expression "*pbVar9" * identifier))) ;) (expression_statement "bVar10 = *pbVar7 == *pbVar9;" (assignment_expression "bVar10 = *pbVar7 == *pbVar9" identifier = (binary_expression "*pbVar7 == *pbVar9" (pointer_expression "*pbVar7" * identifier) == (pointer_expression "*pbVar9" * identifier))) ;) (expression_statement "pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;" (assignment_expression "pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1" identifier = (binary_expression "pbVar7 + (uint)bVar13 * -2 + 1" (binary_expression "pbVar7 + (uint)bVar13 * -2" identifier + (binary_expression "(uint)bVar13 * -2" (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar13 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar13 * -2" identifier + (binary_expression "(uint)bVar13 * -2" (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar10)" ( identifier )) ;) (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" identifier = false) ;) (expression_statement "bVar10 = (!bVar11 && !bVar10) == bVar11;" (assignment_expression "bVar10 = (!bVar11 && !bVar10) == bVar11" identifier = (binary_expression "(!bVar11 && !bVar10) == bVar11" (parenthesized_expression "(!bVar11 && !bVar10)" ( (binary_expression "!bVar11 && !bVar10" (unary_expression "!bVar11" ! identifier) && (unary_expression "!bVar10" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar10) {\n        return 1;\n      }" if (parenthesized_expression "(bVar10)" ( identifier )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "iVar6 = 0x17;" (assignment_expression "iVar6 = 0x17" identifier = number_literal) ;) (expression_statement "pbVar7 = pbVar8;" (assignment_expression "pbVar7 = pbVar8" identifier = identifier) ;) (expression_statement "pbVar9 = (byte *)"ignore-in-object-files";" (assignment_expression "pbVar9 = (byte *)"ignore-in-object-files"" identifier = (cast_expression "(byte *)"ignore-in-object-files"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""ignore-in-object-files"" " string_content "))) ;) (do_statement "do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar12 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n      } while (bVar10);" do (compound_statement "{\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar12 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n      }" { (if_statement "if (iVar6 == 0) break;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) (expression_statement "bVar12 = *pbVar7 < *pbVar9;" (assignment_expression "bVar12 = *pbVar7 < *pbVar9" identifier = (binary_expression "*pbVar7 < *pbVar9" (pointer_expression "*pbVar7" * identifier) < (pointer_expression "*pbVar9" * identifier))) ;) (expression_statement "bVar10 = *pbVar7 == *pbVar9;" (assignment_expression "bVar10 = *pbVar7 == *pbVar9" identifier = (binary_expression "*pbVar7 == *pbVar9" (pointer_expression "*pbVar7" * identifier) == (pointer_expression "*pbVar9" * identifier))) ;) (expression_statement "pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;" (assignment_expression "pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1" identifier = (binary_expression "pbVar7 + (uint)bVar13 * -2 + 1" (binary_expression "pbVar7 + (uint)bVar13 * -2" identifier + (binary_expression "(uint)bVar13 * -2" (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar13 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar13 * -2" identifier + (binary_expression "(uint)bVar13 * -2" (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar10)" ( identifier )) ;) (expression_statement "bVar10 = (!bVar12 && !bVar10) == bVar12;" (assignment_expression "bVar10 = (!bVar12 && !bVar10) == bVar12" identifier = (binary_expression "(!bVar12 && !bVar10) == bVar12" (parenthesized_expression "(!bVar12 && !bVar10)" ( (binary_expression "!bVar12 && !bVar10" (unary_expression "!bVar12" ! identifier) && (unary_expression "!bVar10" ! identifier)) )) == identifier)) ;) (if_statement "if ((!bVar10) || (bVar10 = (*(byte *)(param_1 + 0x2b) & 1) == 0, !bVar10)) {\n        bVar12 = false;\n        iVar6 = 0x16;\n        pbVar7 = (byte *)"ignore-in-shared-libs";\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar12 = *pbVar8 < *pbVar7;\n          bVar10 = *pbVar8 == *pbVar7;\n          pbVar8 = pbVar8 + (uint)bVar13 * -2 + 1;\n          pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        } while (bVar10);\n        if (((!bVar12 && !bVar10) != bVar12) || (*(char *)(param_1 + 0x2a) < '\0'))\n        goto LAB_000561a0;\n      }" if (parenthesized_expression "((!bVar10) || (bVar10 = (*(byte *)(param_1 + 0x2b) & 1) == 0, !bVar10))" ( (binary_expression "(!bVar10) || (bVar10 = (*(byte *)(param_1 + 0x2b) & 1) == 0, !bVar10)" (parenthesized_expression "(!bVar10)" ( (unary_expression "!bVar10" ! identifier) )) || (parenthesized_expression "(bVar10 = (*(byte *)(param_1 + 0x2b) & 1) == 0, !bVar10)" ( (comma_expression "bVar10 = (*(byte *)(param_1 + 0x2b) & 1) == 0, !bVar10" (assignment_expression "bVar10 = (*(byte *)(param_1 + 0x2b) & 1) == 0" identifier = (binary_expression "(*(byte *)(param_1 + 0x2b) & 1) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0x2b) & 1)" ( (binary_expression "*(byte *)(param_1 + 0x2b) & 1" (pointer_expression "*(byte *)(param_1 + 0x2b)" * (cast_expression "(byte *)(param_1 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2b)" ( (binary_expression "param_1 + 0x2b" identifier + number_literal) )))) & number_literal) )) == number_literal)) , (unary_expression "!bVar10" ! identifier)) ))) )) (compound_statement "{\n        bVar12 = false;\n        iVar6 = 0x16;\n        pbVar7 = (byte *)"ignore-in-shared-libs";\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar12 = *pbVar8 < *pbVar7;\n          bVar10 = *pbVar8 == *pbVar7;\n          pbVar8 = pbVar8 + (uint)bVar13 * -2 + 1;\n          pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        } while (bVar10);\n        if (((!bVar12 && !bVar10) != bVar12) || (*(char *)(param_1 + 0x2a) < '\0'))\n        goto LAB_000561a0;\n      }" { (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" identifier = false) ;) (expression_statement "iVar6 = 0x16;" (assignment_expression "iVar6 = 0x16" identifier = number_literal) ;) (expression_statement "pbVar7 = (byte *)"ignore-in-shared-libs";" (assignment_expression "pbVar7 = (byte *)"ignore-in-shared-libs"" identifier = (cast_expression "(byte *)"ignore-in-shared-libs"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""ignore-in-shared-libs"" " string_content "))) ;) (do_statement "do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar12 = *pbVar8 < *pbVar7;\n          bVar10 = *pbVar8 == *pbVar7;\n          pbVar8 = pbVar8 + (uint)bVar13 * -2 + 1;\n          pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        } while (bVar10);" do (compound_statement "{\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar12 = *pbVar8 < *pbVar7;\n          bVar10 = *pbVar8 == *pbVar7;\n          pbVar8 = pbVar8 + (uint)bVar13 * -2 + 1;\n          pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        }" { (if_statement "if (iVar6 == 0) break;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) (expression_statement "bVar12 = *pbVar8 < *pbVar7;" (assignment_expression "bVar12 = *pbVar8 < *pbVar7" identifier = (binary_expression "*pbVar8 < *pbVar7" (pointer_expression "*pbVar8" * identifier) < (pointer_expression "*pbVar7" * identifier))) ;) (expression_statement "bVar10 = *pbVar8 == *pbVar7;" (assignment_expression "bVar10 = *pbVar8 == *pbVar7" identifier = (binary_expression "*pbVar8 == *pbVar7" (pointer_expression "*pbVar8" * identifier) == (pointer_expression "*pbVar7" * identifier))) ;) (expression_statement "pbVar8 = pbVar8 + (uint)bVar13 * -2 + 1;" (assignment_expression "pbVar8 = pbVar8 + (uint)bVar13 * -2 + 1" identifier = (binary_expression "pbVar8 + (uint)bVar13 * -2 + 1" (binary_expression "pbVar8 + (uint)bVar13 * -2" identifier + (binary_expression "(uint)bVar13 * -2" (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;" (assignment_expression "pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1" identifier = (binary_expression "pbVar7 + (uint)bVar13 * -2 + 1" (binary_expression "pbVar7 + (uint)bVar13 * -2" identifier + (binary_expression "(uint)bVar13 * -2" (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar10)" ( identifier )) ;) (if_statement "if (((!bVar12 && !bVar10) != bVar12) || (*(char *)(param_1 + 0x2a) < '\0'))\n        goto LAB_000561a0;" if (parenthesized_expression "(((!bVar12 && !bVar10) != bVar12) || (*(char *)(param_1 + 0x2a) < '\0'))" ( (binary_expression "((!bVar12 && !bVar10) != bVar12) || (*(char *)(param_1 + 0x2a) < '\0')" (parenthesized_expression "((!bVar12 && !bVar10) != bVar12)" ( (binary_expression "(!bVar12 && !bVar10) != bVar12" (parenthesized_expression "(!bVar12 && !bVar10)" ( (binary_expression "!bVar12 && !bVar10" (unary_expression "!bVar12" ! identifier) && (unary_expression "!bVar10" ! identifier)) )) != identifier) )) || (parenthesized_expression "(*(char *)(param_1 + 0x2a) < '\0')" ( (binary_expression "*(char *)(param_1 + 0x2a) < '\0'" (pointer_expression "*(char *)(param_1 + 0x2a)" * (cast_expression "(char *)(param_1 + 0x2a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a)" ( (binary_expression "param_1 + 0x2a" identifier + number_literal) )))) < (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_000561a0;" goto statement_identifier ;)) })) })) })) (return_statement "return 0;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) ))) )) (goto_statement goto statement_identifier ;)) (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) )))))) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < (char_literal ' escape_sequence ')) )) (compound_statement { (return_statement return LIT ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_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 ;) }))) (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 = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (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 ')) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) })) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT )))) ;) (if_statement if (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) )) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (labeled_statement statement_identifier : (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 ;) }))) (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 { (return_statement return (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) })) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (unary_expression ! IDENT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT)) , (unary_expression ! IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) != IDENT) )) || (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 ;)) })) })) })) (return_statement return LIT ;) })))
(function_definition "undefined1 FUN_00055fe0(int param_1)\n\n{\n  code *pcVar1;\n  int *piVar2;\n  int iVar3;\n  byte bVar4;\n  char cVar5;\n  int iVar6;\n  int extraout_EDX;\n  byte *pbVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  bool bVar10;\n  bool bVar11;\n  bool bVar12;\n  byte bVar13;\n  \n  bVar13 = 0;\n  if (param_1 == 0) {\n    return 0;\n  }\n  bVar4 = *(byte *)(param_1 + 0x2a) & 7;\n  if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {\n    if ((*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0))\n    goto LAB_0005603c;\n    pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14);\n    if (pcVar1 == FUN_00054e20) {\n      return 0;\n    }\n    iVar6 = (*pcVar1)(*(int **)(param_1 + 8));\n    if (iVar6 == 0) {\n      return 0;\n    }\n    bVar4 = *(byte *)(param_1 + 0x2a) & 7;\n    if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {\n      if ((*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0))\n      goto LAB_0005603c;\n      if (-1 < (char)*(byte *)(param_1 + 0x2b)) goto LAB_000560de;\n      goto LAB_00056080;\n    }\n    if (bVar4 == 4) goto LAB_0005603c;\n    if (*(char *)(param_1 + 0x2b) < '\0') {\n      return 0;\n    }\n  }\n  else {\n    if (bVar4 != 4) {\n      return 0;\n    }\nLAB_0005603c:\n    if (*(byte *)(param_1 + 0x28) >> 4 == 2) {\n      return 0;\n    }\n    if ((*(byte *)(param_1 + 0x2c) & 2) != 0) {\n      return 0;\n    }\n    iVar6 = DAT_0033f2f0;\n    if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_00056205;\n    if (*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x49b1) != '\0') {\n      return 0;\n    }\n    if (*(char *)(param_1 + 0x2b) < '\0') {\n      if (bVar4 != 0) {\n        return 0;\n      }\nLAB_00056080:\n      pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14);\n      if (pcVar1 == FUN_00054e20) {\n        return 0;\n      }\n      iVar6 = (*pcVar1)(*(int **)(param_1 + 8));\n      if (iVar6 == 0) {\n        return 0;\n      }\n    }\n  }\nLAB_000560de:\n  piVar2 = *(int **)(DAT_0033f2f0 + 0xc);\n  if (piVar2 == (int *)0x0) {\n                    \n    FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n  }\n  cVar5 = (**(code **)(*piVar2 + 0x1c))(piVar2,param_1);\n  if (cVar5 == '\0') {\n    iVar3 = *(int *)(DAT_0033f2f0 + 8);\n    iVar6 = extraout_EDX;\n    if (iVar3 == 0) {\nLAB_00056205:\n                    \n      FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar6);\n    }\n    pbVar8 = *(byte **)(iVar3 + 0x42e4);\n    bVar10 = false;\n    bVar12 = pbVar8 == (byte *)0x0;\n    if (bVar12) {\nLAB_000561a0:\n      if ((*(byte *)(param_1 + 0x29) & 3) == 2) {\n        return 1;\n      }\n      if (*(char *)(iVar3 + 0x1a25) != '\0') {\n        return *(undefined1 *)(iVar3 + 0x4eb5);\n      }\n      return 1;\n    }\n    iVar6 = 0xb;\n    pbVar7 = pbVar8;\n    pbVar9 = (byte *)"ignore-all";\n    do {\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      bVar10 = *pbVar7 < *pbVar9;\n      bVar12 = *pbVar7 == *pbVar9;\n      pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n      pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar12) == bVar10;\n    if (!bVar10) {\n      iVar6 = 0xb;\n      pbVar7 = pbVar8;\n      pbVar9 = (byte *)"report-all";\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar11 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n      } while (bVar10);\n      bVar12 = false;\n      bVar10 = (!bVar11 && !bVar10) == bVar11;\n      if (bVar10) {\n        return 1;\n      }\n      iVar6 = 0x17;\n      pbVar7 = pbVar8;\n      pbVar9 = (byte *)"ignore-in-object-files";\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar12 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n      } while (bVar10);\n      bVar10 = (!bVar12 && !bVar10) == bVar12;\n      if ((!bVar10) || (bVar10 = (*(byte *)(param_1 + 0x2b) & 1) == 0, !bVar10)) {\n        bVar12 = false;\n        iVar6 = 0x16;\n        pbVar7 = (byte *)"ignore-in-shared-libs";\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar12 = *pbVar8 < *pbVar7;\n          bVar10 = *pbVar8 == *pbVar7;\n          pbVar8 = pbVar8 + (uint)bVar13 * -2 + 1;\n          pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        } while (bVar10);\n        if (((!bVar12 && !bVar10) != bVar12) || (*(char *)(param_1 + 0x2a) < '\0'))\n        goto LAB_000561a0;\n      }\n    }\n  }\n  return 0;\n}" (type_identifier "undefined1") (function_declarator "FUN_00055fe0(int param_1)" (identifier "FUN_00055fe0") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  code *pcVar1;\n  int *piVar2;\n  int iVar3;\n  byte bVar4;\n  char cVar5;\n  int iVar6;\n  int extraout_EDX;\n  byte *pbVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  bool bVar10;\n  bool bVar11;\n  bool bVar12;\n  byte bVar13;\n  \n  bVar13 = 0;\n  if (param_1 == 0) {\n    return 0;\n  }\n  bVar4 = *(byte *)(param_1 + 0x2a) & 7;\n  if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {\n    if ((*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0))\n    goto LAB_0005603c;\n    pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14);\n    if (pcVar1 == FUN_00054e20) {\n      return 0;\n    }\n    iVar6 = (*pcVar1)(*(int **)(param_1 + 8));\n    if (iVar6 == 0) {\n      return 0;\n    }\n    bVar4 = *(byte *)(param_1 + 0x2a) & 7;\n    if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {\n      if ((*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0))\n      goto LAB_0005603c;\n      if (-1 < (char)*(byte *)(param_1 + 0x2b)) goto LAB_000560de;\n      goto LAB_00056080;\n    }\n    if (bVar4 == 4) goto LAB_0005603c;\n    if (*(char *)(param_1 + 0x2b) < '\0') {\n      return 0;\n    }\n  }\n  else {\n    if (bVar4 != 4) {\n      return 0;\n    }\nLAB_0005603c:\n    if (*(byte *)(param_1 + 0x28) >> 4 == 2) {\n      return 0;\n    }\n    if ((*(byte *)(param_1 + 0x2c) & 2) != 0) {\n      return 0;\n    }\n    iVar6 = DAT_0033f2f0;\n    if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_00056205;\n    if (*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x49b1) != '\0') {\n      return 0;\n    }\n    if (*(char *)(param_1 + 0x2b) < '\0') {\n      if (bVar4 != 0) {\n        return 0;\n      }\nLAB_00056080:\n      pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14);\n      if (pcVar1 == FUN_00054e20) {\n        return 0;\n      }\n      iVar6 = (*pcVar1)(*(int **)(param_1 + 8));\n      if (iVar6 == 0) {\n        return 0;\n      }\n    }\n  }\nLAB_000560de:\n  piVar2 = *(int **)(DAT_0033f2f0 + 0xc);\n  if (piVar2 == (int *)0x0) {\n                    \n    FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n  }\n  cVar5 = (**(code **)(*piVar2 + 0x1c))(piVar2,param_1);\n  if (cVar5 == '\0') {\n    iVar3 = *(int *)(DAT_0033f2f0 + 8);\n    iVar6 = extraout_EDX;\n    if (iVar3 == 0) {\nLAB_00056205:\n                    \n      FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar6);\n    }\n    pbVar8 = *(byte **)(iVar3 + 0x42e4);\n    bVar10 = false;\n    bVar12 = pbVar8 == (byte *)0x0;\n    if (bVar12) {\nLAB_000561a0:\n      if ((*(byte *)(param_1 + 0x29) & 3) == 2) {\n        return 1;\n      }\n      if (*(char *)(iVar3 + 0x1a25) != '\0') {\n        return *(undefined1 *)(iVar3 + 0x4eb5);\n      }\n      return 1;\n    }\n    iVar6 = 0xb;\n    pbVar7 = pbVar8;\n    pbVar9 = (byte *)"ignore-all";\n    do {\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      bVar10 = *pbVar7 < *pbVar9;\n      bVar12 = *pbVar7 == *pbVar9;\n      pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n      pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar12) == bVar10;\n    if (!bVar10) {\n      iVar6 = 0xb;\n      pbVar7 = pbVar8;\n      pbVar9 = (byte *)"report-all";\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar11 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n      } while (bVar10);\n      bVar12 = false;\n      bVar10 = (!bVar11 && !bVar10) == bVar11;\n      if (bVar10) {\n        return 1;\n      }\n      iVar6 = 0x17;\n      pbVar7 = pbVar8;\n      pbVar9 = (byte *)"ignore-in-object-files";\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar12 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n      } while (bVar10);\n      bVar10 = (!bVar12 && !bVar10) == bVar12;\n      if ((!bVar10) || (bVar10 = (*(byte *)(param_1 + 0x2b) & 1) == 0, !bVar10)) {\n        bVar12 = false;\n        iVar6 = 0x16;\n        pbVar7 = (byte *)"ignore-in-shared-libs";\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar12 = *pbVar8 < *pbVar7;\n          bVar10 = *pbVar8 == *pbVar7;\n          pbVar8 = pbVar8 + (uint)bVar13 * -2 + 1;\n          pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        } while (bVar10);\n        if (((!bVar12 && !bVar10) != bVar12) || (*(char *)(param_1 + 0x2a) < '\0'))\n        goto LAB_000561a0;\n      }\n    }\n  }\n  return 0;\n}" ({ "{") (declaration "code *pcVar1;" (type_identifier "code") (pointer_declarator "*pcVar1" (* "*") (identifier "pcVar1")) (; ";")) (declaration "int *piVar2;" (primitive_type "int") (pointer_declarator "*piVar2" (* "*") (identifier "piVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "byte bVar4;" (type_identifier "byte") (identifier "bVar4") (; ";")) (declaration "char cVar5;" (primitive_type "char") (identifier "cVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int extraout_EDX;" (primitive_type "int") (identifier "extraout_EDX") (; ";")) (declaration "byte *pbVar7;" (type_identifier "byte") (pointer_declarator "*pbVar7" (* "*") (identifier "pbVar7")) (; ";")) (declaration "byte *pbVar8;" (type_identifier "byte") (pointer_declarator "*pbVar8" (* "*") (identifier "pbVar8")) (; ";")) (declaration "byte *pbVar9;" (type_identifier "byte") (pointer_declarator "*pbVar9" (* "*") (identifier "pbVar9")) (; ";")) (declaration "bool bVar10;" (primitive_type "bool") (identifier "bVar10") (; ";")) (declaration "bool bVar11;" (primitive_type "bool") (identifier "bVar11") (; ";")) (declaration "bool bVar12;" (primitive_type "bool") (identifier "bVar12") (; ";")) (declaration "byte bVar13;" (type_identifier "byte") (identifier "bVar13") (; ";")) (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" (identifier "bVar13") (= "=") (number_literal "0")) (; ";")) (if_statement "if (param_1 == 0) {\n    return 0;\n  }" (if "if") (parenthesized_expression "(param_1 == 0)" (( "(") (binary_expression "param_1 == 0" (identifier "param_1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "bVar4 = *(byte *)(param_1 + 0x2a) & 7;" (assignment_expression "bVar4 = *(byte *)(param_1 + 0x2a) & 7" (identifier "bVar4") (= "=") (binary_expression "*(byte *)(param_1 + 0x2a) & 7" (pointer_expression "*(byte *)(param_1 + 0x2a)" (* "*") (cast_expression "(byte *)(param_1 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a)" (( "(") (binary_expression "param_1 + 0x2a" (identifier "param_1") (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7"))) (; ";")) (if_statement "if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {\n    if ((*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0))\n    goto LAB_0005603c;\n    pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14);\n    if (pcVar1 == FUN_00054e20) {\n      return 0;\n    }\n    iVar6 = (*pcVar1)(*(int **)(param_1 + 8));\n    if (iVar6 == 0) {\n      return 0;\n    }\n    bVar4 = *(byte *)(param_1 + 0x2a) & 7;\n    if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {\n      if ((*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0))\n      goto LAB_0005603c;\n      if (-1 < (char)*(byte *)(param_1 + 0x2b)) goto LAB_000560de;\n      goto LAB_00056080;\n    }\n    if (bVar4 == 4) goto LAB_0005603c;\n    if (*(char *)(param_1 + 0x2b) < '\0') {\n      return 0;\n    }\n  }\n  else {\n    if (bVar4 != 4) {\n      return 0;\n    }\nLAB_0005603c:\n    if (*(byte *)(param_1 + 0x28) >> 4 == 2) {\n      return 0;\n    }\n    if ((*(byte *)(param_1 + 0x2c) & 2) != 0) {\n      return 0;\n    }\n    iVar6 = DAT_0033f2f0;\n    if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_00056205;\n    if (*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x49b1) != '\0') {\n      return 0;\n    }\n    if (*(char *)(param_1 + 0x2b) < '\0') {\n      if (bVar4 != 0) {\n        return 0;\n      }\nLAB_00056080:\n      pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14);\n      if (pcVar1 == FUN_00054e20) {\n        return 0;\n      }\n      iVar6 = (*pcVar1)(*(int **)(param_1 + 8));\n      if (iVar6 == 0) {\n        return 0;\n      }\n    }\n  }" (if "if") (parenthesized_expression "((*(byte *)(param_1 + 0x2a) & 7) == 0)" (( "(") (binary_expression "(*(byte *)(param_1 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0x2a) & 7)" (( "(") (binary_expression "*(byte *)(param_1 + 0x2a) & 7" (pointer_expression "*(byte *)(param_1 + 0x2a)" (* "*") (cast_expression "(byte *)(param_1 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a)" (( "(") (binary_expression "param_1 + 0x2a" (identifier "param_1") (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if ((*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0))\n    goto LAB_0005603c;\n    pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14);\n    if (pcVar1 == FUN_00054e20) {\n      return 0;\n    }\n    iVar6 = (*pcVar1)(*(int **)(param_1 + 8));\n    if (iVar6 == 0) {\n      return 0;\n    }\n    bVar4 = *(byte *)(param_1 + 0x2a) & 7;\n    if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {\n      if ((*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0))\n      goto LAB_0005603c;\n      if (-1 < (char)*(byte *)(param_1 + 0x2b)) goto LAB_000560de;\n      goto LAB_00056080;\n    }\n    if (bVar4 == 4) goto LAB_0005603c;\n    if (*(char *)(param_1 + 0x2b) < '\0') {\n      return 0;\n    }\n  }" ({ "{") (if_statement "if ((*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0))\n    goto LAB_0005603c;" (if "if") (parenthesized_expression "((*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0))" (( "(") (binary_expression "(*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0)" (parenthesized_expression "(*(int *)(param_1 + 0xc) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 0xc) == 0" (pointer_expression "*(int *)(param_1 + 0xc)" (* "*") (cast_expression "(int *)(param_1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)(param_1 + 0x2b) & 0x20) != 0)" (( "(") (binary_expression "(*(byte *)(param_1 + 0x2b) & 0x20) != 0" (parenthesized_expression "(*(byte *)(param_1 + 0x2b) & 0x20)" (( "(") (binary_expression "*(byte *)(param_1 + 0x2b) & 0x20" (pointer_expression "*(byte *)(param_1 + 0x2b)" (* "*") (cast_expression "(byte *)(param_1 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2b)" (( "(") (binary_expression "param_1 + 0x2b" (identifier "param_1") (+ "+") (number_literal "0x2b")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_0005603c;" (goto "goto") (statement_identifier "LAB_0005603c") (; ";"))) (expression_statement "pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14);" (assignment_expression "pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14)" (identifier "pcVar1") (= "=") (pointer_expression "*(code **)(**(int **)(param_1 + 8) + 0x14)" (* "*") (cast_expression "(code **)(**(int **)(param_1 + 8) + 0x14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(param_1 + 8) + 0x14)" (( "(") (binary_expression "**(int **)(param_1 + 8) + 0x14" (pointer_expression "**(int **)(param_1 + 8)" (* "*") (pointer_expression "*(int **)(param_1 + 8)" (* "*") (cast_expression "(int **)(param_1 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (pcVar1 == FUN_00054e20) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(pcVar1 == FUN_00054e20)" (( "(") (binary_expression "pcVar1 == FUN_00054e20" (identifier "pcVar1") (== "==") (identifier "FUN_00054e20")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar6 = (*pcVar1)(*(int **)(param_1 + 8));" (assignment_expression "iVar6 = (*pcVar1)(*(int **)(param_1 + 8))" (identifier "iVar6") (= "=") (call_expression "(*pcVar1)(*(int **)(param_1 + 8))" (parenthesized_expression "(*pcVar1)" (( "(") (pointer_expression "*pcVar1" (* "*") (identifier "pcVar1")) () ")")) (argument_list "(*(int **)(param_1 + 8))" (( "(") (pointer_expression "*(int **)(param_1 + 8)" (* "*") (cast_expression "(int **)(param_1 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) () ")")))) (; ";")) (if_statement "if (iVar6 == 0) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "bVar4 = *(byte *)(param_1 + 0x2a) & 7;" (assignment_expression "bVar4 = *(byte *)(param_1 + 0x2a) & 7" (identifier "bVar4") (= "=") (binary_expression "*(byte *)(param_1 + 0x2a) & 7" (pointer_expression "*(byte *)(param_1 + 0x2a)" (* "*") (cast_expression "(byte *)(param_1 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a)" (( "(") (binary_expression "param_1 + 0x2a" (identifier "param_1") (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7"))) (; ";")) (if_statement "if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {\n      if ((*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0))\n      goto LAB_0005603c;\n      if (-1 < (char)*(byte *)(param_1 + 0x2b)) goto LAB_000560de;\n      goto LAB_00056080;\n    }" (if "if") (parenthesized_expression "((*(byte *)(param_1 + 0x2a) & 7) == 0)" (( "(") (binary_expression "(*(byte *)(param_1 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0x2a) & 7)" (( "(") (binary_expression "*(byte *)(param_1 + 0x2a) & 7" (pointer_expression "*(byte *)(param_1 + 0x2a)" (* "*") (cast_expression "(byte *)(param_1 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a)" (( "(") (binary_expression "param_1 + 0x2a" (identifier "param_1") (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if ((*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0))\n      goto LAB_0005603c;\n      if (-1 < (char)*(byte *)(param_1 + 0x2b)) goto LAB_000560de;\n      goto LAB_00056080;\n    }" ({ "{") (if_statement "if ((*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0))\n      goto LAB_0005603c;" (if "if") (parenthesized_expression "((*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0))" (( "(") (binary_expression "(*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0)" (parenthesized_expression "(*(int *)(param_1 + 0xc) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 0xc) == 0" (pointer_expression "*(int *)(param_1 + 0xc)" (* "*") (cast_expression "(int *)(param_1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)(param_1 + 0x2b) & 0x20) != 0)" (( "(") (binary_expression "(*(byte *)(param_1 + 0x2b) & 0x20) != 0" (parenthesized_expression "(*(byte *)(param_1 + 0x2b) & 0x20)" (( "(") (binary_expression "*(byte *)(param_1 + 0x2b) & 0x20" (pointer_expression "*(byte *)(param_1 + 0x2b)" (* "*") (cast_expression "(byte *)(param_1 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2b)" (( "(") (binary_expression "param_1 + 0x2b" (identifier "param_1") (+ "+") (number_literal "0x2b")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_0005603c;" (goto "goto") (statement_identifier "LAB_0005603c") (; ";"))) (if_statement "if (-1 < (char)*(byte *)(param_1 + 0x2b)) goto LAB_000560de;" (if "if") (parenthesized_expression "(-1 < (char)*(byte *)(param_1 + 0x2b))" (( "(") (binary_expression "-1 < (char)*(byte *)(param_1 + 0x2b)" (number_literal "-1") (< "<") (cast_expression "(char)*(byte *)(param_1 + 0x2b)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(byte *)(param_1 + 0x2b)" (* "*") (cast_expression "(byte *)(param_1 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2b)" (( "(") (binary_expression "param_1 + 0x2b" (identifier "param_1") (+ "+") (number_literal "0x2b")) () ")")))))) () ")")) (goto_statement "goto LAB_000560de;" (goto "goto") (statement_identifier "LAB_000560de") (; ";"))) (goto_statement "goto LAB_00056080;" (goto "goto") (statement_identifier "LAB_00056080") (; ";")) (} "}"))) (if_statement "if (bVar4 == 4) goto LAB_0005603c;" (if "if") (parenthesized_expression "(bVar4 == 4)" (( "(") (binary_expression "bVar4 == 4" (identifier "bVar4") (== "==") (number_literal "4")) () ")")) (goto_statement "goto LAB_0005603c;" (goto "goto") (statement_identifier "LAB_0005603c") (; ";"))) (if_statement "if (*(char *)(param_1 + 0x2b) < '\0') {\n      return 0;\n    }" (if "if") (parenthesized_expression "(*(char *)(param_1 + 0x2b) < '\0')" (( "(") (binary_expression "*(char *)(param_1 + 0x2b) < '\0'" (pointer_expression "*(char *)(param_1 + 0x2b)" (* "*") (cast_expression "(char *)(param_1 + 0x2b)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2b)" (( "(") (binary_expression "param_1 + 0x2b" (identifier "param_1") (+ "+") (number_literal "0x2b")) () ")")))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    if (bVar4 != 4) {\n      return 0;\n    }\nLAB_0005603c:\n    if (*(byte *)(param_1 + 0x28) >> 4 == 2) {\n      return 0;\n    }\n    if ((*(byte *)(param_1 + 0x2c) & 2) != 0) {\n      return 0;\n    }\n    iVar6 = DAT_0033f2f0;\n    if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_00056205;\n    if (*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x49b1) != '\0') {\n      return 0;\n    }\n    if (*(char *)(param_1 + 0x2b) < '\0') {\n      if (bVar4 != 0) {\n        return 0;\n      }\nLAB_00056080:\n      pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14);\n      if (pcVar1 == FUN_00054e20) {\n        return 0;\n      }\n      iVar6 = (*pcVar1)(*(int **)(param_1 + 8));\n      if (iVar6 == 0) {\n        return 0;\n      }\n    }\n  }" (else "else") (compound_statement "{\n    if (bVar4 != 4) {\n      return 0;\n    }\nLAB_0005603c:\n    if (*(byte *)(param_1 + 0x28) >> 4 == 2) {\n      return 0;\n    }\n    if ((*(byte *)(param_1 + 0x2c) & 2) != 0) {\n      return 0;\n    }\n    iVar6 = DAT_0033f2f0;\n    if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_00056205;\n    if (*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x49b1) != '\0') {\n      return 0;\n    }\n    if (*(char *)(param_1 + 0x2b) < '\0') {\n      if (bVar4 != 0) {\n        return 0;\n      }\nLAB_00056080:\n      pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14);\n      if (pcVar1 == FUN_00054e20) {\n        return 0;\n      }\n      iVar6 = (*pcVar1)(*(int **)(param_1 + 8));\n      if (iVar6 == 0) {\n        return 0;\n      }\n    }\n  }" ({ "{") (if_statement "if (bVar4 != 4) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(bVar4 != 4)" (( "(") (binary_expression "bVar4 != 4" (identifier "bVar4") (!= "!=") (number_literal "4")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (labeled_statement "LAB_0005603c:\n    if (*(byte *)(param_1 + 0x28) >> 4 == 2) {\n      return 0;\n    }" (statement_identifier "LAB_0005603c") (: ":") (if_statement "if (*(byte *)(param_1 + 0x28) >> 4 == 2) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(*(byte *)(param_1 + 0x28) >> 4 == 2)" (( "(") (binary_expression "*(byte *)(param_1 + 0x28) >> 4 == 2" (binary_expression "*(byte *)(param_1 + 0x28) >> 4" (pointer_expression "*(byte *)(param_1 + 0x28)" (* "*") (cast_expression "(byte *)(param_1 + 0x28)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (>> ">>") (number_literal "4")) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))) (if_statement "if ((*(byte *)(param_1 + 0x2c) & 2) != 0) {\n      return 0;\n    }" (if "if") (parenthesized_expression "((*(byte *)(param_1 + 0x2c) & 2) != 0)" (( "(") (binary_expression "(*(byte *)(param_1 + 0x2c) & 2) != 0" (parenthesized_expression "(*(byte *)(param_1 + 0x2c) & 2)" (( "(") (binary_expression "*(byte *)(param_1 + 0x2c) & 2" (pointer_expression "*(byte *)(param_1 + 0x2c)" (* "*") (cast_expression "(byte *)(param_1 + 0x2c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c)" (( "(") (binary_expression "param_1 + 0x2c" (identifier "param_1") (+ "+") (number_literal "0x2c")) () ")")))) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar6 = DAT_0033f2f0;" (assignment_expression "iVar6 = DAT_0033f2f0" (identifier "iVar6") (= "=") (identifier "DAT_0033f2f0")) (; ";")) (if_statement "if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_00056205;" (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_00056205;" (goto "goto") (statement_identifier "LAB_00056205") (; ";"))) (if_statement "if (*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x49b1) != '\0') {\n      return 0;\n    }" (if "if") (parenthesized_expression "(*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x49b1) != '\0')" (( "(") (binary_expression "*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x49b1) != '\0'" (pointer_expression "*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x49b1)" (* "*") (cast_expression "(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x49b1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_0033f2f0 + 8) + 0x49b1)" (( "(") (binary_expression "*(int *)(DAT_0033f2f0 + 8) + 0x49b1" (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 "0x49b1")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (*(char *)(param_1 + 0x2b) < '\0') {\n      if (bVar4 != 0) {\n        return 0;\n      }\nLAB_00056080:\n      pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14);\n      if (pcVar1 == FUN_00054e20) {\n        return 0;\n      }\n      iVar6 = (*pcVar1)(*(int **)(param_1 + 8));\n      if (iVar6 == 0) {\n        return 0;\n      }\n    }" (if "if") (parenthesized_expression "(*(char *)(param_1 + 0x2b) < '\0')" (( "(") (binary_expression "*(char *)(param_1 + 0x2b) < '\0'" (pointer_expression "*(char *)(param_1 + 0x2b)" (* "*") (cast_expression "(char *)(param_1 + 0x2b)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2b)" (( "(") (binary_expression "param_1 + 0x2b" (identifier "param_1") (+ "+") (number_literal "0x2b")) () ")")))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      if (bVar4 != 0) {\n        return 0;\n      }\nLAB_00056080:\n      pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14);\n      if (pcVar1 == FUN_00054e20) {\n        return 0;\n      }\n      iVar6 = (*pcVar1)(*(int **)(param_1 + 8));\n      if (iVar6 == 0) {\n        return 0;\n      }\n    }" ({ "{") (if_statement "if (bVar4 != 0) {\n        return 0;\n      }" (if "if") (parenthesized_expression "(bVar4 != 0)" (( "(") (binary_expression "bVar4 != 0" (identifier "bVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        return 0;\n      }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (labeled_statement "LAB_00056080:\n      pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14);" (statement_identifier "LAB_00056080") (: ":") (expression_statement "pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14);" (assignment_expression "pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14)" (identifier "pcVar1") (= "=") (pointer_expression "*(code **)(**(int **)(param_1 + 8) + 0x14)" (* "*") (cast_expression "(code **)(**(int **)(param_1 + 8) + 0x14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(param_1 + 8) + 0x14)" (( "(") (binary_expression "**(int **)(param_1 + 8) + 0x14" (pointer_expression "**(int **)(param_1 + 8)" (* "*") (pointer_expression "*(int **)(param_1 + 8)" (* "*") (cast_expression "(int **)(param_1 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (+ "+") (number_literal "0x14")) () ")"))))) (; ";"))) (if_statement "if (pcVar1 == FUN_00054e20) {\n        return 0;\n      }" (if "if") (parenthesized_expression "(pcVar1 == FUN_00054e20)" (( "(") (binary_expression "pcVar1 == FUN_00054e20" (identifier "pcVar1") (== "==") (identifier "FUN_00054e20")) () ")")) (compound_statement "{\n        return 0;\n      }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar6 = (*pcVar1)(*(int **)(param_1 + 8));" (assignment_expression "iVar6 = (*pcVar1)(*(int **)(param_1 + 8))" (identifier "iVar6") (= "=") (call_expression "(*pcVar1)(*(int **)(param_1 + 8))" (parenthesized_expression "(*pcVar1)" (( "(") (pointer_expression "*pcVar1" (* "*") (identifier "pcVar1")) () ")")) (argument_list "(*(int **)(param_1 + 8))" (( "(") (pointer_expression "*(int **)(param_1 + 8)" (* "*") (cast_expression "(int **)(param_1 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) () ")")))) (; ";")) (if_statement "if (iVar6 == 0) {\n        return 0;\n      }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        return 0;\n      }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}"))) (} "}")))) (labeled_statement "LAB_000560de:\n  piVar2 = *(int **)(DAT_0033f2f0 + 0xc);" (statement_identifier "LAB_000560de") (: ":") (expression_statement "piVar2 = *(int **)(DAT_0033f2f0 + 0xc);" (assignment_expression "piVar2 = *(int **)(DAT_0033f2f0 + 0xc)" (identifier "piVar2") (= "=") (pointer_expression "*(int **)(DAT_0033f2f0 + 0xc)" (* "*") (cast_expression "(int **)(DAT_0033f2f0 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(DAT_0033f2f0 + 0xc)" (( "(") (binary_expression "DAT_0033f2f0 + 0xc" (identifier "DAT_0033f2f0") (+ "+") (number_literal "0xc")) () ")"))))) (; ";"))) (if_statement "if (piVar2 == (int *)0x0) {\n                    \n    FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n  }" (if "if") (parenthesized_expression "(piVar2 == (int *)0x0)" (( "(") (binary_expression "piVar2 == (int *)0x0" (identifier "piVar2") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n    FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n  }" ({ "{") (expression_statement "FUN_0008b620("../../gold/parameters.h",0x69,"target",0);" (call_expression "FUN_0008b620("../../gold/parameters.h",0x69,"target",0)" (identifier "FUN_0008b620") (argument_list "("../../gold/parameters.h",0x69,"target",0)" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x69") (, ",") (string_literal ""target"" (" """) (string_content "target") (" """)) (, ",") (number_literal "0") () ")"))) (; ";")) (} "}"))) (expression_statement "cVar5 = (**(code **)(*piVar2 + 0x1c))(piVar2,param_1);" (assignment_expression "cVar5 = (**(code **)(*piVar2 + 0x1c))(piVar2,param_1)" (identifier "cVar5") (= "=") (call_expression "(**(code **)(*piVar2 + 0x1c))(piVar2,param_1)" (parenthesized_expression "(**(code **)(*piVar2 + 0x1c))" (( "(") (pointer_expression "**(code **)(*piVar2 + 0x1c)" (* "*") (pointer_expression "*(code **)(*piVar2 + 0x1c)" (* "*") (cast_expression "(code **)(*piVar2 + 0x1c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar2 + 0x1c)" (( "(") (binary_expression "*piVar2 + 0x1c" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (+ "+") (number_literal "0x1c")) () ")"))))) () ")")) (argument_list "(piVar2,param_1)" (( "(") (identifier "piVar2") (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (cVar5 == '\0') {\n    iVar3 = *(int *)(DAT_0033f2f0 + 8);\n    iVar6 = extraout_EDX;\n    if (iVar3 == 0) {\nLAB_00056205:\n                    \n      FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar6);\n    }\n    pbVar8 = *(byte **)(iVar3 + 0x42e4);\n    bVar10 = false;\n    bVar12 = pbVar8 == (byte *)0x0;\n    if (bVar12) {\nLAB_000561a0:\n      if ((*(byte *)(param_1 + 0x29) & 3) == 2) {\n        return 1;\n      }\n      if (*(char *)(iVar3 + 0x1a25) != '\0') {\n        return *(undefined1 *)(iVar3 + 0x4eb5);\n      }\n      return 1;\n    }\n    iVar6 = 0xb;\n    pbVar7 = pbVar8;\n    pbVar9 = (byte *)"ignore-all";\n    do {\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      bVar10 = *pbVar7 < *pbVar9;\n      bVar12 = *pbVar7 == *pbVar9;\n      pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n      pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar12) == bVar10;\n    if (!bVar10) {\n      iVar6 = 0xb;\n      pbVar7 = pbVar8;\n      pbVar9 = (byte *)"report-all";\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar11 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n      } while (bVar10);\n      bVar12 = false;\n      bVar10 = (!bVar11 && !bVar10) == bVar11;\n      if (bVar10) {\n        return 1;\n      }\n      iVar6 = 0x17;\n      pbVar7 = pbVar8;\n      pbVar9 = (byte *)"ignore-in-object-files";\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar12 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n      } while (bVar10);\n      bVar10 = (!bVar12 && !bVar10) == bVar12;\n      if ((!bVar10) || (bVar10 = (*(byte *)(param_1 + 0x2b) & 1) == 0, !bVar10)) {\n        bVar12 = false;\n        iVar6 = 0x16;\n        pbVar7 = (byte *)"ignore-in-shared-libs";\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar12 = *pbVar8 < *pbVar7;\n          bVar10 = *pbVar8 == *pbVar7;\n          pbVar8 = pbVar8 + (uint)bVar13 * -2 + 1;\n          pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        } while (bVar10);\n        if (((!bVar12 && !bVar10) != bVar12) || (*(char *)(param_1 + 0x2a) < '\0'))\n        goto LAB_000561a0;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(cVar5 == '\0')" (( "(") (binary_expression "cVar5 == '\0'" (identifier "cVar5") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    iVar3 = *(int *)(DAT_0033f2f0 + 8);\n    iVar6 = extraout_EDX;\n    if (iVar3 == 0) {\nLAB_00056205:\n                    \n      FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar6);\n    }\n    pbVar8 = *(byte **)(iVar3 + 0x42e4);\n    bVar10 = false;\n    bVar12 = pbVar8 == (byte *)0x0;\n    if (bVar12) {\nLAB_000561a0:\n      if ((*(byte *)(param_1 + 0x29) & 3) == 2) {\n        return 1;\n      }\n      if (*(char *)(iVar3 + 0x1a25) != '\0') {\n        return *(undefined1 *)(iVar3 + 0x4eb5);\n      }\n      return 1;\n    }\n    iVar6 = 0xb;\n    pbVar7 = pbVar8;\n    pbVar9 = (byte *)"ignore-all";\n    do {\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      bVar10 = *pbVar7 < *pbVar9;\n      bVar12 = *pbVar7 == *pbVar9;\n      pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n      pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar12) == bVar10;\n    if (!bVar10) {\n      iVar6 = 0xb;\n      pbVar7 = pbVar8;\n      pbVar9 = (byte *)"report-all";\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar11 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n      } while (bVar10);\n      bVar12 = false;\n      bVar10 = (!bVar11 && !bVar10) == bVar11;\n      if (bVar10) {\n        return 1;\n      }\n      iVar6 = 0x17;\n      pbVar7 = pbVar8;\n      pbVar9 = (byte *)"ignore-in-object-files";\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar12 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n      } while (bVar10);\n      bVar10 = (!bVar12 && !bVar10) == bVar12;\n      if ((!bVar10) || (bVar10 = (*(byte *)(param_1 + 0x2b) & 1) == 0, !bVar10)) {\n        bVar12 = false;\n        iVar6 = 0x16;\n        pbVar7 = (byte *)"ignore-in-shared-libs";\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar12 = *pbVar8 < *pbVar7;\n          bVar10 = *pbVar8 == *pbVar7;\n          pbVar8 = pbVar8 + (uint)bVar13 * -2 + 1;\n          pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        } while (bVar10);\n        if (((!bVar12 && !bVar10) != bVar12) || (*(char *)(param_1 + 0x2a) < '\0'))\n        goto LAB_000561a0;\n      }\n    }\n  }" ({ "{") (expression_statement "iVar3 = *(int *)(DAT_0033f2f0 + 8);" (assignment_expression "iVar3 = *(int *)(DAT_0033f2f0 + 8)" (identifier "iVar3") (= "=") (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 "iVar6 = extraout_EDX;" (assignment_expression "iVar6 = extraout_EDX" (identifier "iVar6") (= "=") (identifier "extraout_EDX")) (; ";")) (if_statement "if (iVar3 == 0) {\nLAB_00056205:\n                    \n      FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar6);\n    }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00056205:\n                    \n      FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar6);\n    }" ({ "{") (labeled_statement "LAB_00056205:\n                    \n      FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar6);" (statement_identifier "LAB_00056205") (: ":") (expression_statement "FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar6);" (call_expression "FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar6)" (identifier "FUN_0008b620") (argument_list "("../../gold/parameters.h",0x5c,"options",iVar6)" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x5c") (, ",") (string_literal ""options"" (" """) (string_content "options") (" """)) (, ",") (identifier "iVar6") () ")"))) (; ";"))) (} "}"))) (expression_statement "pbVar8 = *(byte **)(iVar3 + 0x42e4);" (assignment_expression "pbVar8 = *(byte **)(iVar3 + 0x42e4)" (identifier "pbVar8") (= "=") (pointer_expression "*(byte **)(iVar3 + 0x42e4)" (* "*") (cast_expression "(byte **)(iVar3 + 0x42e4)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + 0x42e4)" (( "(") (binary_expression "iVar3 + 0x42e4" (identifier "iVar3") (+ "+") (number_literal "0x42e4")) () ")"))))) (; ";")) (expression_statement "bVar10 = false;" (assignment_expression "bVar10 = false" (identifier "bVar10") (= "=") (false "false")) (; ";")) (expression_statement "bVar12 = pbVar8 == (byte *)0x0;" (assignment_expression "bVar12 = pbVar8 == (byte *)0x0" (identifier "bVar12") (= "=") (binary_expression "pbVar8 == (byte *)0x0" (identifier "pbVar8") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (if_statement "if (bVar12) {\nLAB_000561a0:\n      if ((*(byte *)(param_1 + 0x29) & 3) == 2) {\n        return 1;\n      }\n      if (*(char *)(iVar3 + 0x1a25) != '\0') {\n        return *(undefined1 *)(iVar3 + 0x4eb5);\n      }\n      return 1;\n    }" (if "if") (parenthesized_expression "(bVar12)" (( "(") (identifier "bVar12") () ")")) (compound_statement "{\nLAB_000561a0:\n      if ((*(byte *)(param_1 + 0x29) & 3) == 2) {\n        return 1;\n      }\n      if (*(char *)(iVar3 + 0x1a25) != '\0') {\n        return *(undefined1 *)(iVar3 + 0x4eb5);\n      }\n      return 1;\n    }" ({ "{") (labeled_statement "LAB_000561a0:\n      if ((*(byte *)(param_1 + 0x29) & 3) == 2) {\n        return 1;\n      }" (statement_identifier "LAB_000561a0") (: ":") (if_statement "if ((*(byte *)(param_1 + 0x29) & 3) == 2) {\n        return 1;\n      }" (if "if") (parenthesized_expression "((*(byte *)(param_1 + 0x29) & 3) == 2)" (( "(") (binary_expression "(*(byte *)(param_1 + 0x29) & 3) == 2" (parenthesized_expression "(*(byte *)(param_1 + 0x29) & 3)" (( "(") (binary_expression "*(byte *)(param_1 + 0x29) & 3" (pointer_expression "*(byte *)(param_1 + 0x29)" (* "*") (cast_expression "(byte *)(param_1 + 0x29)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x29)" (( "(") (binary_expression "param_1 + 0x29" (identifier "param_1") (+ "+") (number_literal "0x29")) () ")")))) (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n        return 1;\n      }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}")))) (if_statement "if (*(char *)(iVar3 + 0x1a25) != '\0') {\n        return *(undefined1 *)(iVar3 + 0x4eb5);\n      }" (if "if") (parenthesized_expression "(*(char *)(iVar3 + 0x1a25) != '\0')" (( "(") (binary_expression "*(char *)(iVar3 + 0x1a25) != '\0'" (pointer_expression "*(char *)(iVar3 + 0x1a25)" (* "*") (cast_expression "(char *)(iVar3 + 0x1a25)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x1a25)" (( "(") (binary_expression "iVar3 + 0x1a25" (identifier "iVar3") (+ "+") (number_literal "0x1a25")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        return *(undefined1 *)(iVar3 + 0x4eb5);\n      }" ({ "{") (return_statement "return *(undefined1 *)(iVar3 + 0x4eb5);" (return "return") (pointer_expression "*(undefined1 *)(iVar3 + 0x4eb5)" (* "*") (cast_expression "(undefined1 *)(iVar3 + 0x4eb5)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x4eb5)" (( "(") (binary_expression "iVar3 + 0x4eb5" (identifier "iVar3") (+ "+") (number_literal "0x4eb5")) () ")")))) (; ";")) (} "}"))) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "iVar6 = 0xb;" (assignment_expression "iVar6 = 0xb" (identifier "iVar6") (= "=") (number_literal "0xb")) (; ";")) (expression_statement "pbVar7 = pbVar8;" (assignment_expression "pbVar7 = pbVar8" (identifier "pbVar7") (= "=") (identifier "pbVar8")) (; ";")) (expression_statement "pbVar9 = (byte *)"ignore-all";" (assignment_expression "pbVar9 = (byte *)"ignore-all"" (identifier "pbVar9") (= "=") (cast_expression "(byte *)"ignore-all"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""ignore-all"" (" """) (string_content "ignore-all") (" """)))) (; ";")) (do_statement "do {\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      bVar10 = *pbVar7 < *pbVar9;\n      bVar12 = *pbVar7 == *pbVar9;\n      pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n      pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);" (do "do") (compound_statement "{\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      bVar10 = *pbVar7 < *pbVar9;\n      bVar12 = *pbVar7 == *pbVar9;\n      pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n      pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n    }" ({ "{") (if_statement "if (iVar6 == 0) break;" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" (identifier "iVar6") (= "=") (binary_expression "iVar6 + -1" (identifier "iVar6") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar10 = *pbVar7 < *pbVar9;" (assignment_expression "bVar10 = *pbVar7 < *pbVar9" (identifier "bVar10") (= "=") (binary_expression "*pbVar7 < *pbVar9" (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")) (< "<") (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")))) (; ";")) (expression_statement "bVar12 = *pbVar7 == *pbVar9;" (assignment_expression "bVar12 = *pbVar7 == *pbVar9" (identifier "bVar12") (= "=") (binary_expression "*pbVar7 == *pbVar9" (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")) (== "==") (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")))) (; ";")) (expression_statement "pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;" (assignment_expression "pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1" (identifier "pbVar7") (= "=") (binary_expression "pbVar7 + (uint)bVar13 * -2 + 1" (binary_expression "pbVar7 + (uint)bVar13 * -2" (identifier "pbVar7") (+ "+") (binary_expression "(uint)bVar13 * -2" (cast_expression "(uint)bVar13" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar13")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + (uint)bVar13 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar13 * -2" (identifier "pbVar9") (+ "+") (binary_expression "(uint)bVar13 * -2" (cast_expression "(uint)bVar13" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar13")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar12)" (( "(") (identifier "bVar12") () ")")) (; ";")) (expression_statement "bVar11 = false;" (assignment_expression "bVar11 = false" (identifier "bVar11") (= "=") (false "false")) (; ";")) (expression_statement "bVar10 = (!bVar10 && !bVar12) == bVar10;" (assignment_expression "bVar10 = (!bVar10 && !bVar12) == bVar10" (identifier "bVar10") (= "=") (binary_expression "(!bVar10 && !bVar12) == bVar10" (parenthesized_expression "(!bVar10 && !bVar12)" (( "(") (binary_expression "!bVar10 && !bVar12" (unary_expression "!bVar10" (! "!") (identifier "bVar10")) (&& "&&") (unary_expression "!bVar12" (! "!") (identifier "bVar12"))) () ")")) (== "==") (identifier "bVar10"))) (; ";")) (if_statement "if (!bVar10) {\n      iVar6 = 0xb;\n      pbVar7 = pbVar8;\n      pbVar9 = (byte *)"report-all";\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar11 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n      } while (bVar10);\n      bVar12 = false;\n      bVar10 = (!bVar11 && !bVar10) == bVar11;\n      if (bVar10) {\n        return 1;\n      }\n      iVar6 = 0x17;\n      pbVar7 = pbVar8;\n      pbVar9 = (byte *)"ignore-in-object-files";\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar12 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n      } while (bVar10);\n      bVar10 = (!bVar12 && !bVar10) == bVar12;\n      if ((!bVar10) || (bVar10 = (*(byte *)(param_1 + 0x2b) & 1) == 0, !bVar10)) {\n        bVar12 = false;\n        iVar6 = 0x16;\n        pbVar7 = (byte *)"ignore-in-shared-libs";\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar12 = *pbVar8 < *pbVar7;\n          bVar10 = *pbVar8 == *pbVar7;\n          pbVar8 = pbVar8 + (uint)bVar13 * -2 + 1;\n          pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        } while (bVar10);\n        if (((!bVar12 && !bVar10) != bVar12) || (*(char *)(param_1 + 0x2a) < '\0'))\n        goto LAB_000561a0;\n      }\n    }" (if "if") (parenthesized_expression "(!bVar10)" (( "(") (unary_expression "!bVar10" (! "!") (identifier "bVar10")) () ")")) (compound_statement "{\n      iVar6 = 0xb;\n      pbVar7 = pbVar8;\n      pbVar9 = (byte *)"report-all";\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar11 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n      } while (bVar10);\n      bVar12 = false;\n      bVar10 = (!bVar11 && !bVar10) == bVar11;\n      if (bVar10) {\n        return 1;\n      }\n      iVar6 = 0x17;\n      pbVar7 = pbVar8;\n      pbVar9 = (byte *)"ignore-in-object-files";\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar12 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n      } while (bVar10);\n      bVar10 = (!bVar12 && !bVar10) == bVar12;\n      if ((!bVar10) || (bVar10 = (*(byte *)(param_1 + 0x2b) & 1) == 0, !bVar10)) {\n        bVar12 = false;\n        iVar6 = 0x16;\n        pbVar7 = (byte *)"ignore-in-shared-libs";\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar12 = *pbVar8 < *pbVar7;\n          bVar10 = *pbVar8 == *pbVar7;\n          pbVar8 = pbVar8 + (uint)bVar13 * -2 + 1;\n          pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        } while (bVar10);\n        if (((!bVar12 && !bVar10) != bVar12) || (*(char *)(param_1 + 0x2a) < '\0'))\n        goto LAB_000561a0;\n      }\n    }" ({ "{") (expression_statement "iVar6 = 0xb;" (assignment_expression "iVar6 = 0xb" (identifier "iVar6") (= "=") (number_literal "0xb")) (; ";")) (expression_statement "pbVar7 = pbVar8;" (assignment_expression "pbVar7 = pbVar8" (identifier "pbVar7") (= "=") (identifier "pbVar8")) (; ";")) (expression_statement "pbVar9 = (byte *)"report-all";" (assignment_expression "pbVar9 = (byte *)"report-all"" (identifier "pbVar9") (= "=") (cast_expression "(byte *)"report-all"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""report-all"" (" """) (string_content "report-all") (" """)))) (; ";")) (do_statement "do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar11 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n      } while (bVar10);" (do "do") (compound_statement "{\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar11 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n      }" ({ "{") (if_statement "if (iVar6 == 0) break;" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" (identifier "iVar6") (= "=") (binary_expression "iVar6 + -1" (identifier "iVar6") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar11 = *pbVar7 < *pbVar9;" (assignment_expression "bVar11 = *pbVar7 < *pbVar9" (identifier "bVar11") (= "=") (binary_expression "*pbVar7 < *pbVar9" (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")) (< "<") (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")))) (; ";")) (expression_statement "bVar10 = *pbVar7 == *pbVar9;" (assignment_expression "bVar10 = *pbVar7 == *pbVar9" (identifier "bVar10") (= "=") (binary_expression "*pbVar7 == *pbVar9" (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")) (== "==") (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")))) (; ";")) (expression_statement "pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;" (assignment_expression "pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1" (identifier "pbVar7") (= "=") (binary_expression "pbVar7 + (uint)bVar13 * -2 + 1" (binary_expression "pbVar7 + (uint)bVar13 * -2" (identifier "pbVar7") (+ "+") (binary_expression "(uint)bVar13 * -2" (cast_expression "(uint)bVar13" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar13")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + (uint)bVar13 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar13 * -2" (identifier "pbVar9") (+ "+") (binary_expression "(uint)bVar13 * -2" (cast_expression "(uint)bVar13" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar13")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar10)" (( "(") (identifier "bVar10") () ")")) (; ";")) (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" (identifier "bVar12") (= "=") (false "false")) (; ";")) (expression_statement "bVar10 = (!bVar11 && !bVar10) == bVar11;" (assignment_expression "bVar10 = (!bVar11 && !bVar10) == bVar11" (identifier "bVar10") (= "=") (binary_expression "(!bVar11 && !bVar10) == bVar11" (parenthesized_expression "(!bVar11 && !bVar10)" (( "(") (binary_expression "!bVar11 && !bVar10" (unary_expression "!bVar11" (! "!") (identifier "bVar11")) (&& "&&") (unary_expression "!bVar10" (! "!") (identifier "bVar10"))) () ")")) (== "==") (identifier "bVar11"))) (; ";")) (if_statement "if (bVar10) {\n        return 1;\n      }" (if "if") (parenthesized_expression "(bVar10)" (( "(") (identifier "bVar10") () ")")) (compound_statement "{\n        return 1;\n      }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "iVar6 = 0x17;" (assignment_expression "iVar6 = 0x17" (identifier "iVar6") (= "=") (number_literal "0x17")) (; ";")) (expression_statement "pbVar7 = pbVar8;" (assignment_expression "pbVar7 = pbVar8" (identifier "pbVar7") (= "=") (identifier "pbVar8")) (; ";")) (expression_statement "pbVar9 = (byte *)"ignore-in-object-files";" (assignment_expression "pbVar9 = (byte *)"ignore-in-object-files"" (identifier "pbVar9") (= "=") (cast_expression "(byte *)"ignore-in-object-files"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""ignore-in-object-files"" (" """) (string_content "ignore-in-object-files") (" """)))) (; ";")) (do_statement "do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar12 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n      } while (bVar10);" (do "do") (compound_statement "{\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        bVar12 = *pbVar7 < *pbVar9;\n        bVar10 = *pbVar7 == *pbVar9;\n        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n      }" ({ "{") (if_statement "if (iVar6 == 0) break;" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" (identifier "iVar6") (= "=") (binary_expression "iVar6 + -1" (identifier "iVar6") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar12 = *pbVar7 < *pbVar9;" (assignment_expression "bVar12 = *pbVar7 < *pbVar9" (identifier "bVar12") (= "=") (binary_expression "*pbVar7 < *pbVar9" (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")) (< "<") (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")))) (; ";")) (expression_statement "bVar10 = *pbVar7 == *pbVar9;" (assignment_expression "bVar10 = *pbVar7 == *pbVar9" (identifier "bVar10") (= "=") (binary_expression "*pbVar7 == *pbVar9" (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")) (== "==") (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")))) (; ";")) (expression_statement "pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;" (assignment_expression "pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1" (identifier "pbVar7") (= "=") (binary_expression "pbVar7 + (uint)bVar13 * -2 + 1" (binary_expression "pbVar7 + (uint)bVar13 * -2" (identifier "pbVar7") (+ "+") (binary_expression "(uint)bVar13 * -2" (cast_expression "(uint)bVar13" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar13")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + (uint)bVar13 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar13 * -2" (identifier "pbVar9") (+ "+") (binary_expression "(uint)bVar13 * -2" (cast_expression "(uint)bVar13" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar13")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar10)" (( "(") (identifier "bVar10") () ")")) (; ";")) (expression_statement "bVar10 = (!bVar12 && !bVar10) == bVar12;" (assignment_expression "bVar10 = (!bVar12 && !bVar10) == bVar12" (identifier "bVar10") (= "=") (binary_expression "(!bVar12 && !bVar10) == bVar12" (parenthesized_expression "(!bVar12 && !bVar10)" (( "(") (binary_expression "!bVar12 && !bVar10" (unary_expression "!bVar12" (! "!") (identifier "bVar12")) (&& "&&") (unary_expression "!bVar10" (! "!") (identifier "bVar10"))) () ")")) (== "==") (identifier "bVar12"))) (; ";")) (if_statement "if ((!bVar10) || (bVar10 = (*(byte *)(param_1 + 0x2b) & 1) == 0, !bVar10)) {\n        bVar12 = false;\n        iVar6 = 0x16;\n        pbVar7 = (byte *)"ignore-in-shared-libs";\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar12 = *pbVar8 < *pbVar7;\n          bVar10 = *pbVar8 == *pbVar7;\n          pbVar8 = pbVar8 + (uint)bVar13 * -2 + 1;\n          pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        } while (bVar10);\n        if (((!bVar12 && !bVar10) != bVar12) || (*(char *)(param_1 + 0x2a) < '\0'))\n        goto LAB_000561a0;\n      }" (if "if") (parenthesized_expression "((!bVar10) || (bVar10 = (*(byte *)(param_1 + 0x2b) & 1) == 0, !bVar10))" (( "(") (binary_expression "(!bVar10) || (bVar10 = (*(byte *)(param_1 + 0x2b) & 1) == 0, !bVar10)" (parenthesized_expression "(!bVar10)" (( "(") (unary_expression "!bVar10" (! "!") (identifier "bVar10")) () ")")) (|| "||") (parenthesized_expression "(bVar10 = (*(byte *)(param_1 + 0x2b) & 1) == 0, !bVar10)" (( "(") (comma_expression "bVar10 = (*(byte *)(param_1 + 0x2b) & 1) == 0, !bVar10" (assignment_expression "bVar10 = (*(byte *)(param_1 + 0x2b) & 1) == 0" (identifier "bVar10") (= "=") (binary_expression "(*(byte *)(param_1 + 0x2b) & 1) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0x2b) & 1)" (( "(") (binary_expression "*(byte *)(param_1 + 0x2b) & 1" (pointer_expression "*(byte *)(param_1 + 0x2b)" (* "*") (cast_expression "(byte *)(param_1 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2b)" (( "(") (binary_expression "param_1 + 0x2b" (identifier "param_1") (+ "+") (number_literal "0x2b")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0"))) (, ",") (unary_expression "!bVar10" (! "!") (identifier "bVar10"))) () ")"))) () ")")) (compound_statement "{\n        bVar12 = false;\n        iVar6 = 0x16;\n        pbVar7 = (byte *)"ignore-in-shared-libs";\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar12 = *pbVar8 < *pbVar7;\n          bVar10 = *pbVar8 == *pbVar7;\n          pbVar8 = pbVar8 + (uint)bVar13 * -2 + 1;\n          pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        } while (bVar10);\n        if (((!bVar12 && !bVar10) != bVar12) || (*(char *)(param_1 + 0x2a) < '\0'))\n        goto LAB_000561a0;\n      }" ({ "{") (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" (identifier "bVar12") (= "=") (false "false")) (; ";")) (expression_statement "iVar6 = 0x16;" (assignment_expression "iVar6 = 0x16" (identifier "iVar6") (= "=") (number_literal "0x16")) (; ";")) (expression_statement "pbVar7 = (byte *)"ignore-in-shared-libs";" (assignment_expression "pbVar7 = (byte *)"ignore-in-shared-libs"" (identifier "pbVar7") (= "=") (cast_expression "(byte *)"ignore-in-shared-libs"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""ignore-in-shared-libs"" (" """) (string_content "ignore-in-shared-libs") (" """)))) (; ";")) (do_statement "do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar12 = *pbVar8 < *pbVar7;\n          bVar10 = *pbVar8 == *pbVar7;\n          pbVar8 = pbVar8 + (uint)bVar13 * -2 + 1;\n          pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        } while (bVar10);" (do "do") (compound_statement "{\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          bVar12 = *pbVar8 < *pbVar7;\n          bVar10 = *pbVar8 == *pbVar7;\n          pbVar8 = pbVar8 + (uint)bVar13 * -2 + 1;\n          pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;\n        }" ({ "{") (if_statement "if (iVar6 == 0) break;" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" (identifier "iVar6") (= "=") (binary_expression "iVar6 + -1" (identifier "iVar6") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar12 = *pbVar8 < *pbVar7;" (assignment_expression "bVar12 = *pbVar8 < *pbVar7" (identifier "bVar12") (= "=") (binary_expression "*pbVar8 < *pbVar7" (pointer_expression "*pbVar8" (* "*") (identifier "pbVar8")) (< "<") (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")))) (; ";")) (expression_statement "bVar10 = *pbVar8 == *pbVar7;" (assignment_expression "bVar10 = *pbVar8 == *pbVar7" (identifier "bVar10") (= "=") (binary_expression "*pbVar8 == *pbVar7" (pointer_expression "*pbVar8" (* "*") (identifier "pbVar8")) (== "==") (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")))) (; ";")) (expression_statement "pbVar8 = pbVar8 + (uint)bVar13 * -2 + 1;" (assignment_expression "pbVar8 = pbVar8 + (uint)bVar13 * -2 + 1" (identifier "pbVar8") (= "=") (binary_expression "pbVar8 + (uint)bVar13 * -2 + 1" (binary_expression "pbVar8 + (uint)bVar13 * -2" (identifier "pbVar8") (+ "+") (binary_expression "(uint)bVar13 * -2" (cast_expression "(uint)bVar13" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar13")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;" (assignment_expression "pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1" (identifier "pbVar7") (= "=") (binary_expression "pbVar7 + (uint)bVar13 * -2 + 1" (binary_expression "pbVar7 + (uint)bVar13 * -2" (identifier "pbVar7") (+ "+") (binary_expression "(uint)bVar13 * -2" (cast_expression "(uint)bVar13" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar13")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar10)" (( "(") (identifier "bVar10") () ")")) (; ";")) (if_statement "if (((!bVar12 && !bVar10) != bVar12) || (*(char *)(param_1 + 0x2a) < '\0'))\n        goto LAB_000561a0;" (if "if") (parenthesized_expression "(((!bVar12 && !bVar10) != bVar12) || (*(char *)(param_1 + 0x2a) < '\0'))" (( "(") (binary_expression "((!bVar12 && !bVar10) != bVar12) || (*(char *)(param_1 + 0x2a) < '\0')" (parenthesized_expression "((!bVar12 && !bVar10) != bVar12)" (( "(") (binary_expression "(!bVar12 && !bVar10) != bVar12" (parenthesized_expression "(!bVar12 && !bVar10)" (( "(") (binary_expression "!bVar12 && !bVar10" (unary_expression "!bVar12" (! "!") (identifier "bVar12")) (&& "&&") (unary_expression "!bVar10" (! "!") (identifier "bVar10"))) () ")")) (!= "!=") (identifier "bVar12")) () ")")) (|| "||") (parenthesized_expression "(*(char *)(param_1 + 0x2a) < '\0')" (( "(") (binary_expression "*(char *)(param_1 + 0x2a) < '\0'" (pointer_expression "*(char *)(param_1 + 0x2a)" (* "*") (cast_expression "(char *)(param_1 + 0x2a)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a)" (( "(") (binary_expression "param_1 + 0x2a" (identifier "param_1") (+ "+") (number_literal "0x2a")) () ")")))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (goto_statement "goto LAB_000561a0;" (goto "goto") (statement_identifier "LAB_000561a0") (; ";"))) (} "}"))) (} "}"))) (} "}"))) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */

bool gold::function_1(type_1 *var_1)

{
  type_2 *var_2;
  type_3 *var_6;
  type_4 *var_8;
  type_5 var_5;
  int var_4;
  type_5 *var_10;
  type_5 *var_9;
  type_5 *var_11;
  bool var_12;
  bool var_13;
  bool var_14;
  type_5 bVar12;
  
  bVar12 = 0;
  if (var_1 == (type_1 *)0x0) {
    return false;
  }
  var_5 = var_1->field_0x2a & 7;
  if ((var_1->field_0x2a & 7) == 0) {
    if (((var_1->u2_).shndx == 0) && ((var_1->field_0x2b & 0x20) != 0)) goto LAB_0005603c;
    var_2 = ((var_1->u1_).object)->_vptr_Object[5];
    if (var_2 == var_3::do_pluginobj) {
      return false;
    }
    var_4 = (*var_2)((var_1->u1_).object);
    if (var_4 == 0) {
      return false;
    }
    var_5 = var_1->field_0x2a & 7;
    if ((var_1->field_0x2a & 7) == 0) {
      if (((var_1->u2_).shndx == 0) && ((var_1->field_0x2b & 0x20) != 0)) goto LAB_0005603c;
      if (-1 < (char)var_1->field_0x2b) goto LAB_000560de;
      goto LAB_00056080;
    }
    if (var_5 == 4) goto LAB_0005603c;
    if ((char)var_1->field_0x2b < '\0') {
      return false;
    }
  }
  else {
    if (var_5 != 4) {
      return false;
    }
LAB_0005603c:
    if ((type_5)var_1->field_0x28 >> 4 == 2) {
      return false;
    }
    if ((var_1->field_0x2c & 2) != 0) {
      return false;
    }
    if (parameters->options_ == (type_4 *)0x0) goto LAB_00056205;
    if ((parameters->options_->weak_unresolved_symbols_).value != false) {
      return false;
    }
    if ((char)var_1->field_0x2b < '\0') {
      if (var_5 != 0) {
        return false;
      }
LAB_00056080:
      var_2 = ((var_1->u1_).object)->_vptr_Object[5];
      if (var_2 == var_3::do_pluginobj) {
        return false;
      }
      var_4 = (*var_2)((var_1->u1_).object);
      if (var_4 == 0) {
        return false;
      }
    }
  }
LAB_000560de:
  var_6 = parameters->target_;
  if (var_6 == (type_3 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_7("../../gold/parameters.h",0x69,"target");
  }
  var_4 = (*var_6->_vptr_Target[7])(var_6,var_1);
  if ((char)var_4 == '\0') {
    var_8 = parameters->options_;
    if (var_8 == (type_4 *)0x0) {
LAB_00056205:
                    /* WARNING: Subroutine does not return */
      var_7("../../gold/parameters.h",0x5c,"options");
    }
    var_9 = (type_5 *)(var_8->unresolved_symbols_).value;
    var_12 = false;
    var_14 = var_9 == (type_5 *)0x0;
    if (var_14) {
LAB_000561a0:
      if ((var_1->field_0x29 & 3) == 2) {
        return true;
      }
      if ((var_8->shared_).value != false) {
        return (var_8->defs_).value;
      }
      return true;
    }
    var_4 = 0xb;
    var_10 = var_9;
    var_11 = (type_5 *)"ignore-all";
    do {
      if (var_4 == 0) break;
      var_4 = var_4 + -1;
      var_12 = *var_10 < *var_11;
      var_14 = *var_10 == *var_11;
      var_10 = var_10 + (type_6)bVar12 * -2 + 1;
      var_11 = var_11 + (type_6)bVar12 * -2 + 1;
    } while (var_14);
    var_13 = false;
    var_12 = (!var_12 && !var_14) == var_12;
    if (!var_12) {
      var_4 = 0xb;
      var_10 = var_9;
      var_11 = (type_5 *)"report-all";
      do {
        if (var_4 == 0) break;
        var_4 = var_4 + -1;
        var_13 = *var_10 < *var_11;
        var_12 = *var_10 == *var_11;
        var_10 = var_10 + (type_6)bVar12 * -2 + 1;
        var_11 = var_11 + (type_6)bVar12 * -2 + 1;
      } while (var_12);
      var_14 = false;
      var_12 = (!var_13 && !var_12) == var_13;
      if (var_12) {
        return true;
      }
      var_4 = 0x17;
      var_10 = var_9;
      var_11 = (type_5 *)"ignore-in-object-files";
      do {
        if (var_4 == 0) break;
        var_4 = var_4 + -1;
        var_14 = *var_10 < *var_11;
        var_12 = *var_10 == *var_11;
        var_10 = var_10 + (type_6)bVar12 * -2 + 1;
        var_11 = var_11 + (type_6)bVar12 * -2 + 1;
      } while (var_12);
      var_12 = (!var_14 && !var_12) == var_14;
      if ((!var_12) || (var_12 = (var_1->field_0x2b & 1) == 0, !var_12)) {
        var_14 = false;
        var_4 = 0x16;
        var_10 = (type_5 *)"ignore-in-shared-libs";
        do {
          if (var_4 == 0) break;
          var_4 = var_4 + -1;
          var_14 = *var_9 < *var_10;
          var_12 = *var_9 == *var_10;
          var_9 = var_9 + (type_6)bVar12 * -2 + 1;
          var_10 = var_10 + (type_6)bVar12 * -2 + 1;
        } while (var_12);
        if (((!var_14 && !var_12) != var_14) || ((char)var_1->field_0x2a < '\0')) goto LAB_000561a0;
      }
    }
  }
  return false;
}


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

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

undefined1 MASKED(int param_1)

{
  code *pcVar1;
  int *piVar2;
  int iVar3;
  byte bVar4;
  char cVar5;
  int iVar6;
  int extraout_EDX;
  byte *pbVar7;
  byte *pbVar8;
  byte *pbVar9;
  bool bVar10;
  bool bVar11;
  bool bVar12;
  byte bVar13;
  
  bVar13 = 0;
  if (param_1 == 0) {
    return 0;
  }
  bVar4 = *(byte *)(param_1 + 0x2a) & 7;
  if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {
    if ((*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0))
    goto LAB_0005603c;
    pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14);
    if (pcVar1 == FUN_00054e20) {
      return 0;
    }
    iVar6 = (*pcVar1)(*(int **)(param_1 + 8));
    if (iVar6 == 0) {
      return 0;
    }
    bVar4 = *(byte *)(param_1 + 0x2a) & 7;
    if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {
      if ((*(int *)(param_1 + 0xc) == 0) && ((*(byte *)(param_1 + 0x2b) & 0x20) != 0))
      goto LAB_0005603c;
      if (-1 < (char)*(byte *)(param_1 + 0x2b)) goto LAB_000560de;
      goto LAB_00056080;
    }
    if (bVar4 == 4) goto LAB_0005603c;
    if (*(char *)(param_1 + 0x2b) < '\0') {
      return 0;
    }
  }
  else {
    if (bVar4 != 4) {
      return 0;
    }
LAB_0005603c:
    if (*(byte *)(param_1 + 0x28) >> 4 == 2) {
      return 0;
    }
    if ((*(byte *)(param_1 + 0x2c) & 2) != 0) {
      return 0;
    }
    iVar6 = DAT_0033f2f0;
    if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_00056205;
    if (*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x49b1) != '\0') {
      return 0;
    }
    if (*(char *)(param_1 + 0x2b) < '\0') {
      if (bVar4 != 0) {
        return 0;
      }
LAB_00056080:
      pcVar1 = *(code **)(**(int **)(param_1 + 8) + 0x14);
      if (pcVar1 == FUN_00054e20) {
        return 0;
      }
      iVar6 = (*pcVar1)(*(int **)(param_1 + 8));
      if (iVar6 == 0) {
        return 0;
      }
    }
  }
LAB_000560de:
  piVar2 = *(int **)(DAT_0033f2f0 + 0xc);
  if (piVar2 == (int *)0x0) {
                    /* WARNING: Subroutine does not return */
    FUN_0008b620("../../gold/parameters.h",0x69,"target",0);
  }
  cVar5 = (**(code **)(*piVar2 + 0x1c))(piVar2,param_1);
  if (cVar5 == '\0') {
    iVar3 = *(int *)(DAT_0033f2f0 + 8);
    iVar6 = extraout_EDX;
    if (iVar3 == 0) {
LAB_00056205:
                    /* WARNING: Subroutine does not return */
      FUN_0008b620("../../gold/parameters.h",0x5c,"options",iVar6);
    }
    pbVar8 = *(byte **)(iVar3 + 0x42e4);
    bVar10 = false;
    bVar12 = pbVar8 == (byte *)0x0;
    if (bVar12) {
LAB_000561a0:
      if ((*(byte *)(param_1 + 0x29) & 3) == 2) {
        return 1;
      }
      if (*(char *)(iVar3 + 0x1a25) != '\0') {
        return *(undefined1 *)(iVar3 + 0x4eb5);
      }
      return 1;
    }
    iVar6 = 0xb;
    pbVar7 = pbVar8;
    pbVar9 = (byte *)"ignore-all";
    do {
      if (iVar6 == 0) break;
      iVar6 = iVar6 + -1;
      bVar10 = *pbVar7 < *pbVar9;
      bVar12 = *pbVar7 == *pbVar9;
      pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;
      pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;
    } while (bVar12);
    bVar11 = false;
    bVar10 = (!bVar10 && !bVar12) == bVar10;
    if (!bVar10) {
      iVar6 = 0xb;
      pbVar7 = pbVar8;
      pbVar9 = (byte *)"report-all";
      do {
        if (iVar6 == 0) break;
        iVar6 = iVar6 + -1;
        bVar11 = *pbVar7 < *pbVar9;
        bVar10 = *pbVar7 == *pbVar9;
        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;
        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;
      } while (bVar10);
      bVar12 = false;
      bVar10 = (!bVar11 && !bVar10) == bVar11;
      if (bVar10) {
        return 1;
      }
      iVar6 = 0x17;
      pbVar7 = pbVar8;
      pbVar9 = (byte *)"ignore-in-object-files";
      do {
        if (iVar6 == 0) break;
        iVar6 = iVar6 + -1;
        bVar12 = *pbVar7 < *pbVar9;
        bVar10 = *pbVar7 == *pbVar9;
        pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;
        pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;
      } while (bVar10);
      bVar10 = (!bVar12 && !bVar10) == bVar12;
      if ((!bVar10) || (bVar10 = (*(byte *)(param_1 + 0x2b) & 1) == 0, !bVar10)) {
        bVar12 = false;
        iVar6 = 0x16;
        pbVar7 = (byte *)"ignore-in-shared-libs";
        do {
          if (iVar6 == 0) break;
          iVar6 = iVar6 + -1;
          bVar12 = *pbVar8 < *pbVar7;
          bVar10 = *pbVar8 == *pbVar7;
          pbVar8 = pbVar8 + (uint)bVar13 * -2 + 1;
          pbVar7 = pbVar7 + (uint)bVar13 * -2 + 1;
        } while (bVar10);
        if (((!bVar12 && !bVar10) != bVar12) || (*(char *)(param_1 + 0x2a) < '\0'))
        goto LAB_000561a0;
      }
    }
  }
  return 0;
}

