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

void gold::queue_middle_tasks
               (General_options *options,Task *task,Input_objects *input_objects,
               Symbol_table *symtab,Layout *layout,Workqueue *workqueue,Mapfile *mapfile)

{
}



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

void FUN_000da420(int param_1,undefined4 param_2,int *param_3,int param_4,int param_5,
                 undefined4 param_6,undefined4 param_7)

{
  undefined1 uVar1;
  char cVar2;
  undefined4 uVar3;
  int iVar4;
  undefined1 *puVar5;
  undefined4 *puVar6;
  undefined4 *puVar7;
  undefined4 uVar8;
  char *pcVar9;
  undefined4 uVar10;
  uint uVar11;
  undefined4 extraout_ECX;
  int *piVar12;
  byte bVar13;
  int *piVar14;
  int iVar15;
  int *piVar16;
  undefined1 *local_20;
  
  if (*(int *)(DAT_004144e8 + 4) != 0) {
    FUN_001ffac0(*(int *)(DAT_004144e8 + 4),0);
  }
  if (((param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2) == 0) &&
     (*(int *)(param_5 + 0x244) == 0)) {
    FUN_001a5350();
  }
  FUN_001e9d80(param_4,param_5);
  iVar4 = *(int *)(DAT_004144e8 + 8);
  if (iVar4 == 0) goto LAB_000dac36;
  if (*(char *)(iVar4 + 0x18b1) != '\0') {
    uVar3 = FUN_001a50c0(DAT_004144e8);
    iVar4 = FUN_001e9100(param_4,uVar3,0);
    if (iVar4 != 0) {
      FUN_001e7b10(param_4,iVar4);
    }
    if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;
    iVar4 = FUN_001e9100(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1f20),0);
    if (iVar4 != 0) {
      if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {
        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {
          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));
          if (cVar2 == '\0') {
            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf2c;
            goto LAB_000dacd3;
          }
        }
        else if (*(int *)(iVar4 + 0xc) != 0) {
LAB_000dacd3:
          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf2c;
        }
      }
      else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {
LAB_000daf2c:
        FUN_001e7b10(param_4,iVar4);
      }
    }
    if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;
    iVar4 = FUN_001e9100(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1538),0);
    if (iVar4 != 0) {
      if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {
        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {
          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));
          if (cVar2 == '\0') {
            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf0d;
            goto LAB_000dad2d;
          }
        }
        else if (*(int *)(iVar4 + 0xc) != 0) {
LAB_000dad2d:
          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf0d;
        }
      }
      else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {
LAB_000daf0d:
        FUN_001e7b10(param_4,iVar4);
      }
    }
    FUN_001e95f0(param_4,param_5);
    if (*(int *)(param_4 + 0x158) == 0) {
                    /* WARNING: Subroutine does not return */
      FUN_000da200("../../gold/gold.cc",0x20b,"queue_middle_tasks",&__DT_PLTGOT);
    }
    FUN_00229ab0(*(int *)(param_4 + 0x158));
    iVar4 = *(int *)(DAT_004144e8 + 8);
    if (iVar4 == 0) goto LAB_000dac36;
  }
  if (*(int *)(iVar4 + 0x5934) == 0) {
    iVar4 = *(int *)(DAT_004144e8 + 8);
  }
  else {
    FUN_000ded60(*(undefined4 *)(param_4 + 0x15c),param_3,param_4);
    iVar4 = *(int *)(DAT_004144e8 + 8);
    if (iVar4 == 0) goto LAB_000dac36;
  }
  if ((((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)) &&
      (*(char *)(param_5 + 0x1ce) == '\0')) ||
     (piVar14 = (int *)*param_3, piVar14 == (int *)param_3[1])) {
    iVar4 = *(int *)(DAT_004144e8 + 8);
  }
  else {
    do {
      piVar16 = (int *)*piVar14;
      piVar12 = piVar16;
      if (piVar16[7] != 0) {
        FUN_000d2820(piVar16[7] + 0x1c,param_2);
        piVar12 = (int *)*piVar14;
      }
                    /* try { // try from 000da515 to 000da517 has its CatchHandler @ 000db0ab */
      (**(code **)(*piVar12 + 0x24))(piVar12,param_4,param_5,0);
      if (piVar16[7] != 0) {
        FUN_000d3850(piVar16[7] + 0x1c,param_2);
      }
      piVar14 = piVar14 + 1;
    } while ((int *)param_3[1] != piVar14);
    iVar4 = *(int *)(DAT_004144e8 + 8);
    if (iVar4 == 0) goto LAB_000dac36;
  }
  if (*(int *)(iVar4 + 0x593c) != 0) {
    FUN_001a6980(*(int *)(iVar4 + 0x593c));
  }
  FUN_00107c00(param_5);
  iVar4 = *(int *)(DAT_004144e8 + 8);
  if (iVar4 == 0) goto LAB_000dac36;
  if (((*(int *)(iVar4 + 0x593c) != 0) && (*(char *)(param_5 + 0x1cd) != '\0')) &&
     ((*(int *)(iVar4 + 0x36d8) == 0 &&
      (*(undefined4 **)(param_5 + 0x130) != *(undefined4 **)(param_5 + 0x134))))) {
    puVar6 = *(undefined4 **)(param_5 + 0x130);
    do {
      puVar7 = puVar6 + 1;
      FUN_0015d7d0(*puVar6,param_5 + 0x1ec);
      puVar6 = puVar7;
    } while (*(undefined4 **)(param_5 + 0x134) != puVar7);
    iVar4 = *(int *)(DAT_004144e8 + 8);
    if (iVar4 == 0) goto LAB_000dac36;
  }
  if ((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)) {
    iVar4 = *(int *)(param_1 + 0x3e70);
  }
  else {
    piVar14 = (int *)*param_3;
    if (piVar14 != (int *)param_3[1]) {
      do {
        piVar12 = (int *)*piVar14;
        piVar16 = (int *)piVar12[0x14];
        iVar4 = *piVar16;
        if (iVar4 != piVar16[1]) {
          while( true ) {
            iVar15 = *piVar12;
            uVar11 = *(uint *)(iVar4 + 4);
            if (*(code **)(iVar15 + 0x60) == FUN_000a5850) {
              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11) {
                    /* WARNING: Subroutine does not return */
                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");
              }
              uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4);
            }
            else {
              uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);
              uVar11 = *(uint *)(iVar4 + 4);
              piVar12 = (int *)*piVar14;
              iVar15 = *piVar12;
            }
            *(undefined4 *)(iVar4 + 0x14) = uVar3;
            uVar1 = (**(code **)(iVar15 + 0x88))(piVar12,uVar11);
            *(undefined1 *)(iVar4 + 0x18) = uVar1;
            if (piVar16[1] == iVar4 + 0x1c) break;
            piVar12 = (int *)*piVar14;
            iVar4 = iVar4 + 0x1c;
          }
        }
        piVar14 = piVar14 + 1;
      } while ((int *)param_3[1] != piVar14);
    }
    iVar4 = *(int *)(param_1 + 0x3e70);
  }
  if ((iVar4 == 0) &&
     (iVar4 = (param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2), iVar4 < 2)) {
    iVar4 = 2;
  }
  FUN_002007c0(param_6,iVar4);
  if (param_3[4] == param_3[3]) {
    iVar4 = *(int *)(DAT_004144e8 + 8);
    if (iVar4 == 0) goto LAB_000dac36;
    if ((*(char *)(iVar4 + 0x1a25) != '\0') || (*(char *)(iVar4 + 0x2931) != '\0'))
    goto LAB_000da6a6;
    FUN_001a52b0(1);
  }
  else {
LAB_000da6a6:
    FUN_001a52b0(0);
    if (*(char *)(param_1 + 0x5938) != '\0') {
      if ((int *)param_3[3] == (int *)param_3[4]) {
                    /* WARNING: Subroutine does not return */
        FUN_000da200("../../gold/gold.cc",0x265,"queue_middle_tasks",&__DT_PLTGOT);
      }
      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);
      uVar10 = gettext("cannot mix -static with dynamic object %s");
      FUN_000d1330(uVar10,uVar3);
    }
    if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;
    if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) != '\0') {
      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);
      pcVar9 = "cannot mix -r with dynamic object %s";
LAB_000db04c:
      uVar10 = gettext(pcVar9);
                    /* WARNING: Subroutine does not return */
      FUN_000d12d0(uVar10,uVar3);
    }
    iVar4 = FUN_0014c1c0(param_1);
    if (iVar4 != 0) {
      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);
      pcVar9 = "cannot use non-ELF output format with dynamic object %s";
      goto LAB_000db04c;
    }
  }
  if (*(int *)(DAT_004144e8 + 8) == 0) {
LAB_000dac36:
                    /* WARNING: Subroutine does not return */
    FUN_000da200("../../gold/parameters.h",0x5c,"options");
  }
  if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) != '\0') {
    piVar14 = (int *)*param_3;
    piVar16 = (int *)param_3[1];
    if (piVar16 != piVar14) {
      bVar13 = *(byte *)(*piVar14 + 0x2c) >> 2 & 1;
      if (piVar16 != piVar14 + 1) {
        iVar4 = piVar14[1];
        if ((*(byte *)(iVar4 + 0x2c) >> 2 & 1) == bVar13) {
          piVar12 = piVar14 + 2;
          do {
            if (piVar16 == piVar12) goto LAB_000da77b;
            iVar4 = *piVar12;
            piVar12 = piVar12 + 1;
          } while (bVar13 == (*(byte *)(iVar4 + 0x2c) >> 2 & 1));
        }
        uVar3 = *(undefined4 *)(iVar4 + 4);
        uVar10 = *(undefined4 *)(*piVar14 + 4);
        uVar8 = gettext("cannot mix split-stack \'%s\' and non-split-stack \'%s\' when using -r");
                    /* WARNING: Subroutine does not return */
        FUN_000d12d0(uVar8,uVar10,uVar3);
      }
    }
  }
LAB_000da77b:
  cVar2 = FUN_001a5190(DAT_004144e8);
  if (cVar2 != '\0') {
    piVar14 = *(int **)(param_5 + 0x244);
    (**(code **)(*piVar14 + 0x18))(piVar14,param_4,param_5);
    (**(code **)(*piVar14 + 0x1c))(piVar14,param_4);
  }
  if ((*(int *)(DAT_004144e8 + 8) != 0) && ((*(byte *)(DAT_004144e8 + 0x14) & 2) != 0)) {
    FUN_001d9e80(*(undefined4 *)(param_5 + 4),*(undefined4 *)PTR_stderr_00413fbc);
  }
  FUN_00122e00(param_3);
  if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;
  if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x4c2d) == '\0') {
    FUN_001dc4a0(*(int *)(param_5 + 4) + 0x68,param_4);
  }
  FUN_001121d0(param_5);
  FUN_001d9480(*(undefined4 *)(param_5 + 4),param_5);
  FUN_001112f0(param_5,param_4);
  FUN_001d94d0(*(undefined4 *)(param_5 + 4),param_4);
  piVar14 = *(int **)(DAT_004144e8 + 0xc);
  if (piVar14 == (int *)0x0) {
                    /* WARNING: Subroutine does not return */
    FUN_000da200("../../gold/parameters.h",0x69,"target",extraout_ECX);
  }
  FUN_0010c300(param_5,piVar14);
  if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;
  if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) == '\0') {
    FUN_0020afd0(param_4,param_5);
    FUN_0010ee10(param_5,param_4);
    if (*(code **)(*piVar14 + 0x84) != FUN_000a4200) {
      (**(code **)(*piVar14 + 0x84))(piVar14,param_4,param_5);
    }
  }
  FUN_001081d0(param_5,param_4);
  iVar4 = *(int *)(DAT_004144e8 + 8);
  if (iVar4 == 0) goto LAB_000dac36;
  local_20 = (undefined1 *)0x0;
  if (*(char *)(iVar4 + 0xb51) != '\0') {
    local_20 = (undefined1 *)FUN_00246670(0x14);
    *local_20 = 1;
    *(undefined4 *)(local_20 + 8) = 0;
    *(undefined4 *)(local_20 + 0xc) = 0;
    *(undefined4 *)(local_20 + 0x10) = 0;
    *(undefined4 *)(local_20 + 4) = 1;
    puVar6 = (undefined4 *)FUN_00246670(0x34);
    puVar6[1] = 0;
    puVar6[9] = param_4;
    puVar6[2] = puVar6 + 4;
    puVar6[10] = param_5;
    puVar6[3] = 0;
    *(undefined1 *)(puVar6 + 4) = 0;
    *(undefined1 *)(puVar6 + 8) = 0;
    *puVar6 = &PTR_FUN_00408d4c;
    puVar6[0xb] = param_7;
    puVar6[0xc] = local_20;
    FUN_002000e0(param_6,puVar6);
    iVar4 = *(int *)(DAT_004144e8 + 8);
    if (iVar4 == 0) goto LAB_000dac36;
  }
  piVar16 = (int *)*param_3;
  if ((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)) {
    if (piVar16 != (int *)param_3[1]) {
      do {
        piVar12 = piVar16 + 1;
        puVar5 = (undefined1 *)FUN_00246670(0x14);
        iVar4 = *piVar16;
        *puVar5 = 1;
        *(undefined4 *)(puVar5 + 8) = 0;
        *(undefined4 *)(puVar5 + 0xc) = 0;
        *(undefined4 *)(puVar5 + 0x10) = 0;
        *(undefined4 *)(puVar5 + 4) = 1;
        puVar6 = (undefined4 *)FUN_00246670(0x38);
        puVar6[0xc] = local_20;
        *puVar6 = &PTR_FUN_00408390;
        puVar6[2] = puVar6 + 4;
        puVar6[9] = param_4;
        puVar6[1] = 0;
        puVar6[10] = param_5;
        puVar6[3] = 0;
        *(undefined1 *)(puVar6 + 4) = 0;
        *(undefined1 *)(puVar6 + 8) = 0;
        puVar6[0xb] = iVar4;
        puVar6[0xd] = puVar5;
        FUN_002000e0(param_6,puVar6);
        local_20 = puVar5;
        piVar16 = piVar12;
      } while ((int *)param_3[1] != piVar12);
      goto LAB_000da9b3;
    }
  }
  else if (piVar16 != (int *)param_3[1]) {
    do {
      piVar12 = piVar16 + 1;
      puVar5 = (undefined1 *)FUN_00246670(0x14);
      iVar4 = *piVar16;
      *puVar5 = 1;
      *(undefined4 *)(puVar5 + 8) = 0;
      uVar3 = *(undefined4 *)(iVar4 + 0x50);
      *(undefined4 *)(puVar5 + 0xc) = 0;
      *(undefined4 *)(puVar5 + 0x10) = 0;
      *(undefined4 *)(puVar5 + 4) = 1;
      puVar6 = (undefined4 *)FUN_00246670(0x3c);
      puVar6[0xd] = local_20;
      *puVar6 = &PTR_FUN_004083d0;
      puVar6[1] = 0;
      puVar6[9] = param_4;
      puVar6[2] = puVar6 + 4;
      puVar6[10] = param_5;
      puVar6[3] = 0;
      *(undefined1 *)(puVar6 + 4) = 0;
      *(undefined1 *)(puVar6 + 8) = 0;
      puVar6[0xb] = iVar4;
      puVar6[0xc] = uVar3;
      puVar6[0xe] = puVar5;
      FUN_002000e0(param_6,puVar6);
      local_20 = puVar5;
      piVar16 = piVar12;
    } while ((int *)param_3[1] != piVar12);
    goto LAB_000da9b3;
  }
  puVar5 = local_20;
  if (local_20 == (undefined1 *)0x0) {
    puVar5 = (undefined1 *)FUN_00246670(0x14);
    *puVar5 = 1;
    *(undefined4 *)(puVar5 + 4) = 0;
    *(undefined4 *)(puVar5 + 8) = 0;
    *(undefined4 *)(puVar5 + 0xc) = 0;
    *(undefined4 *)(puVar5 + 0x10) = 0;
  }
LAB_000da9b3:
  puVar6 = (undefined4 *)FUN_00246670(0x1c);
  *puVar6 = &PTR_FUN_00406ca0;
  puVar6[1] = param_1;
  puVar6[2] = param_3;
  puVar6[3] = param_4;
  puVar6[4] = piVar14;
  puVar6[5] = param_5;
  puVar6[6] = param_7;
  puVar7 = (undefined4 *)FUN_00246670(0x30);
  puVar7[1] = 0;
  puVar7[2] = puVar7 + 4;
  *puVar7 = &PTR_FUN_004066fc;
  puVar7[3] = 0;
  *(undefined1 *)(puVar7 + 4) = 0;
  *(undefined1 *)(puVar7 + 8) = 0;
  puVar7[9] = puVar6;
  puVar7[10] = puVar5;
  puVar7[0xb] = "Task_function Layout_task_runner";
  FUN_002000e0(param_6,puVar7);
  return;
}


PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x0003a210
ADD EBX,0x339bd5
SUB ESP,0x2c
LEA EAX,[EBX + 0x4e8]
MOV dword ptr [EBP + -0x28],EBX
MOV dword ptr [EBP + -0x30],EAX
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x4]
TEST EAX,EAX
JZ 0x000da457
SUB ESP,0x8
PUSH 0x0
PUSH EAX
CALL 0x001ffac0
ADD ESP,0x10
MOV EDI,dword ptr [EBP + 0x10]
MOV EAX,dword ptr [EBP + 0x10]
MOV EDX,dword ptr [EDI + 0x4]
MOV EAX,dword ptr [EAX + 0x10]
SUB EDX,dword ptr [EDI]
SUB EAX,dword ptr [EDI + 0xc]
SAR EAX,0x2
SAR EDX,0x2
ADD EAX,EDX
JNZ 0x000da483
MOV EAX,dword ptr [EBP + 0x18]
MOV EAX,dword ptr [EAX + 0x244]
TEST EAX,EAX
JZ 0x000daef8
SUB ESP,0x8
PUSH dword ptr [EBP + 0x18]
MOV EBX,dword ptr [EBP + -0x28]
PUSH dword ptr [EBP + 0x14]
CALL 0x001e9d80
MOV EAX,dword ptr [EBP + -0x30]
ADD ESP,0x10
MOV EDX,dword ptr [EAX]
MOV EAX,dword ptr [EDX + 0x8]
TEST EAX,EAX
JZ 0x000dac36
CMP byte ptr [EAX + 0x18b1],0x0
JNZ 0x000dac58
MOV ESI,dword ptr [EAX + 0x5934]
TEST ESI,ESI
JNZ 0x000dac09
MOV EAX,dword ptr [EBP + -0x30]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x8]
CMP byte ptr [EAX + 0x18b1],0x0
JZ 0x000daa6e
MOV EAX,dword ptr [EBP + 0x10]
MOV ESI,dword ptr [EAX]
CMP ESI,dword ptr [EAX + 0x4]
JZ 0x000daa8c
LEA ESI,[ESI]
MOV EDI,dword ptr [ESI]
MOV EAX,dword ptr [EDI + 0x1c]
MOV EDX,EDI
TEST EAX,EAX
JZ 0x000da50a
SUB ESP,0x8
ADD EAX,0x1c
PUSH dword ptr [EBP + 0xc]
MOV EBX,dword ptr [EBP + -0x28]
PUSH EAX
CALL 0x000d2820
MOV EDX,dword ptr [ESI]
ADD ESP,0x10
MOV EAX,dword ptr [EDX]
PUSH 0x0
PUSH dword ptr [EBP + 0x18]
PUSH dword ptr [EBP + 0x14]
PUSH EDX
CALL dword ptr [EAX + 0x24]
MOV EAX,dword ptr [EDI + 0x1c]
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000da537
SUB ESP,0x8
ADD EAX,0x1c
PUSH dword ptr [EBP + 0xc]
MOV EBX,dword ptr [EBP + -0x28]
PUSH EAX
CALL 0x000d3850
ADD ESP,0x10
MOV EAX,dword ptr [EBP + 0x10]
ADD ESI,0x4
CMP dword ptr [EAX + 0x4],ESI
JNZ 0x000da4e8
MOV EAX,dword ptr [EBP + -0x30]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x000dac36
MOV EAX,dword ptr [EAX + 0x593c]
TEST EAX,EAX
JZ 0x000da56b
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x28]
PUSH EAX
CALL 0x001a6980
ADD ESP,0x10
SUB ESP,0xc
PUSH dword ptr [EBP + 0x18]
MOV EBX,dword ptr [EBP + -0x28]
CALL 0x00107c00
MOV EAX,dword ptr [EBP + -0x30]
ADD ESP,0x10
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x000dac36
MOV ECX,dword ptr [EAX + 0x593c]
TEST ECX,ECX
JZ 0x000da5b0
MOV EDI,dword ptr [EBP + 0x18]
CMP byte ptr [EDI + 0x1cd],0x0
JZ 0x000da5b0
MOV EDX,dword ptr [EAX + 0x36d8]
TEST EDX,EDX
JZ 0x000daea0
CMP byte ptr [EAX + 0x18b1],0x0
JZ 0x000daa4e
MOV EAX,dword ptr [EBP + 0x10]
MOV EDI,dword ptr [EBP + 0x10]
MOV EAX,dword ptr [EAX]
CMP EAX,dword ptr [EDI + 0x4]
JZ 0x000da672
MOV ESI,EAX
MOV EAX,dword ptr [EBP + -0x28]
LEA EAX,[EAX + 0xffc91850]
MOV dword ptr [EBP + -0x2c],EAX
LEA ESI,[ESI]
MOV EDX,dword ptr [ESI]
MOV EAX,dword ptr [EDX + 0x50]
MOV dword ptr [EBP + -0x24],EAX
MOV EBX,dword ptr [EAX]
CMP EBX,dword ptr [EAX + 0x4]
JZ 0x000da663
MOV dword ptr [EBP + -0x20],ESI
JMP 0x000da63a
MOV EAX,dword ptr [EDX + 0x38]
MOV ESI,dword ptr [EDX + 0x3c]
SUB ESI,EAX
MOV dword ptr [EBP + -0x1c],EAX
MOV EAX,ESI
SAR EAX,0x2
CMP ECX,EAX
JNC 0x000dafd0
MOV EAX,dword ptr [EBP + -0x1c]
MOV EAX,dword ptr [EAX + ECX*0x4]
SUB ESP,0x8
MOV dword ptr [EBX + 0x14],EAX
ADD EBX,0x1c
PUSH ECX
PUSH EDX
CALL dword ptr [EDI + 0x88]
MOV byte ptr [EBX + -0x4],AL
MOV EAX,dword ptr [EBP + -0x24]
ADD ESP,0x10
CMP dword ptr [EAX + 0x4],EBX
JZ 0x000da660
MOV EAX,dword ptr [EBP + -0x20]
MOV EDX,dword ptr [EAX]
MOV EDI,dword ptr [EDX]
MOV ECX,dword ptr [EBX + 0x4]
MOV EAX,dword ptr [EDI + 0x60]
CMP EAX,dword ptr [EBP + -0x2c]
JZ 0x000da5f8
SUB ESP,0x8
PUSH ECX
PUSH EDX
CALL EAX
MOV EDI,dword ptr [EBP + -0x20]
MOV ECX,dword ptr [EBX + 0x4]
MOV EDX,dword ptr [EDI]
ADD ESP,0x10
MOV EDI,dword ptr [EDX]
JMP 0x000da616
MOV ESI,dword ptr [EBP + -0x20]
MOV EAX,dword ptr [EBP + 0x10]
ADD ESI,0x4
CMP dword ptr [EAX + 0x4],ESI
JNZ 0x000da5e0
MOV EAX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EAX + 0x3e70]
TEST EAX,EAX
JZ 0x000daa99
SUB ESP,0x8
MOV EDI,dword ptr [EBP + -0x28]
PUSH EAX
PUSH dword ptr [EBP + 0x1c]
MOV EBX,EDI
CALL 0x002007c0
MOV EAX,dword ptr [EBP + 0x10]
ADD ESP,0x10
MOV ECX,dword ptr [EAX + 0xc]
CMP dword ptr [EAX + 0x10],ECX
JZ 0x000dabd1
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x28]
PUSH 0x0
CALL 0x001a52b0
MOV EAX,dword ptr [EBP + 0x8]
ADD ESP,0x10
CMP byte ptr [EAX + 0x5938],0x0
JNZ 0x000daac4
MOV EAX,dword ptr [EBP + -0x30]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x000dac36
CMP byte ptr [EAX + 0x318d],0x0
JNZ 0x000db035
SUB ESP,0xc
PUSH dword ptr [EBP + 0x8]
MOV EBX,dword ptr [EBP + -0x28]
CALL 0x0014c1c0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x000db05d
MOV EAX,dword ptr [EBP + -0x30]
MOV EDI,dword ptr [EAX]
MOV EAX,dword ptr [EDI + 0x8]
TEST EAX,EAX
JZ 0x000dac36
CMP byte ptr [EAX + 0x318d],0x0
JZ 0x000da77b
MOV EAX,dword ptr [EBP + 0x10]
MOV EDX,dword ptr [EAX]
MOV ESI,dword ptr [EAX + 0x4]
CMP ESI,EDX
JZ 0x000da77b
MOV EAX,dword ptr [EDX]
MOV dword ptr [EBP + -0x1c],EAX
MOVZX EAX,byte ptr [EAX + 0x2c]
MOV EBX,EAX
MOV byte ptr [EBP + -0x20],AL
LEA EAX,[EDX + 0x4]
SHR BL,0x2
AND EBX,0x1
CMP ESI,EAX
JZ 0x000da77b
MOV ECX,dword ptr [EDX + 0x4]
MOVZX EAX,byte ptr [ECX + 0x2c]
SHR AL,0x2
AND EAX,0x1
CMP AL,BL
JNZ 0x000dafee
ADD EDX,0x8
JMP 0x000da777
MOV ECX,dword ptr [EDX]
ADD EDX,0x4
MOVZX EAX,byte ptr [ECX + 0x2c]
SHR AL,0x2
AND EAX,0x1
CMP BL,AL
JNZ 0x000dafee
CMP ESI,EDX
JNZ 0x000da760
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x28]
PUSH EDI
CALL 0x001a5190
ADD ESP,0x10
TEST AL,AL
JZ 0x000da7b4
MOV EAX,dword ptr [EBP + 0x18]
SUB ESP,0x4
MOV EBX,dword ptr [EAX + 0x244]
MOV EAX,dword ptr [EBX]
PUSH dword ptr [EBP + 0x18]
PUSH dword ptr [EBP + 0x14]
PUSH EBX
CALL dword ptr [EAX + 0x18]
POP EAX
MOV EAX,dword ptr [EBX]
POP EDX
PUSH dword ptr [EBP + 0x14]
PUSH EBX
CALL dword ptr [EAX + 0x1c]
ADD ESP,0x10
MOV EAX,dword ptr [EBP + -0x30]
MOV EAX,dword ptr [EAX]
MOV EDI,dword ptr [EAX + 0x8]
TEST EDI,EDI
JZ 0x000da7e2
TEST byte ptr [EAX + 0x14],0x2
JZ 0x000da7e2
MOV EBX,dword ptr [EBP + -0x28]
SUB ESP,0x8
MOV EAX,dword ptr [EBX + 0xffffffbc]
PUSH dword ptr [EAX]
MOV EAX,dword ptr [EBP + 0x18]
PUSH dword ptr [EAX + 0x4]
CALL 0x001d9e80
ADD ESP,0x10
SUB ESP,0xc
PUSH dword ptr [EBP + 0x10]
MOV EBX,dword ptr [EBP + -0x28]
CALL 0x00122e00
MOV EAX,dword ptr [EBP + -0x30]
ADD ESP,0x10
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x000dac36
CMP byte ptr [EAX + 0x4c2d],0x0
JZ 0x000dadda
SUB ESP,0xc
MOV EDI,dword ptr [EBP + -0x28]
PUSH dword ptr [EBP + 0x18]
MOV EBX,EDI
CALL 0x001121d0
MOV EAX,dword ptr [EBP + 0x18]
POP ESI
POP EDI
PUSH dword ptr [EBP + 0x18]
PUSH dword ptr [EAX + 0x4]
CALL 0x001d9480
POP EAX
POP EDX
PUSH dword ptr [EBP + 0x14]
PUSH dword ptr [EBP + 0x18]
CALL 0x001112f0
MOV EAX,dword ptr [EBP + 0x18]
POP ECX
POP ESI
PUSH dword ptr [EBP + 0x14]
PUSH dword ptr [EAX + 0x4]
CALL 0x001d94d0
MOV EAX,dword ptr [EBP + -0x30]
ADD ESP,0x10
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0xc]
MOV dword ptr [EBP + -0x34],EAX
TEST EAX,EAX
JZ 0x000db076
SUB ESP,0x8
PUSH dword ptr [EBP + -0x34]
MOV EBX,dword ptr [EBP + -0x28]
PUSH dword ptr [EBP + 0x18]
CALL 0x0010c300
MOV EAX,dword ptr [EBP + -0x30]
ADD ESP,0x10
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x000dac36
CMP byte ptr [EAX + 0x318d],0x0
JZ 0x000dad88
SUB ESP,0x8
PUSH dword ptr [EBP + 0x14]
MOV EBX,dword ptr [EBP + -0x28]
PUSH dword ptr [EBP + 0x18]
CALL 0x001081d0
MOV EAX,dword ptr [EBP + -0x30]
ADD ESP,0x10
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x000dac36
CMP byte ptr [EAX + 0xb51],0x0
MOV dword ptr [EBP + -0x1c],0x0
JNZ 0x000dadfd
MOV EDI,dword ptr [EBP + 0x10]
CMP byte ptr [EAX + 0x18b1],0x0
MOV EDX,dword ptr [EDI + 0x4]
MOV EDI,dword ptr [EDI]
JNZ 0x000dab00
MOV ECX,dword ptr [EAX + 0x5934]
TEST ECX,ECX
JNZ 0x000dab00
MOV EAX,dword ptr [EBP + -0x28]
MOV ESI,dword ptr [EBP + -0x1c]
LEA EAX,[EAX + 0xffff4388]
ADD EAX,0x8
MOV dword ptr [EBP + -0x24],EAX
CMP EDI,EDX
JZ 0x000daf43
LEA ESI,[ESI]
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x28]
ADD EDI,0x4
PUSH 0x14
CALL 0x00246670
MOV ECX,dword ptr [EDI + -0x4]
MOV EBX,dword ptr [EBP + -0x28]
MOV byte ptr [EAX],0x1
MOV dword ptr [EAX + 0x8],0x0
MOV dword ptr [EAX + 0xc],0x0
MOV dword ptr [EAX + 0x10],0x0
MOV dword ptr [EAX + 0x4],0x1
MOV dword ptr [EBP + -0x20],ECX
MOV dword ptr [ESP],0x38
MOV dword ptr [EBP + -0x1c],EAX
CALL 0x00246670
MOV ECX,dword ptr [EBP + -0x24]
MOV dword ptr [EAX + 0x30],ESI
MOV ESI,dword ptr [EBP + -0x1c]
LEA EBX,[EAX + 0x10]
MOV dword ptr [EAX],ECX
MOV ECX,dword ptr [EBP + 0x14]
MOV dword ptr [EAX + 0x8],EBX
MOV EBX,dword ptr [EBP + -0x28]
MOV dword ptr [EAX + 0x24],ECX
MOV ECX,dword ptr [EBP + 0x18]
MOV dword ptr [EAX + 0x4],0x0
MOV dword ptr [EAX + 0x28],ECX
MOV ECX,dword ptr [EBP + -0x20]
MOV dword ptr [EAX + 0xc],0x0
MOV byte ptr [EAX + 0x10],0x0
MOV byte ptr [EAX + 0x20],0x0
MOV dword ptr [EAX + 0x2c],ECX
MOV dword ptr [EAX + 0x34],ESI
POP EDX
POP ECX
PUSH EAX
PUSH dword ptr [EBP + 0x1c]
CALL 0x002000e0
MOV EAX,dword ptr [EBP + 0x10]
ADD ESP,0x10
CMP dword ptr [EAX + 0x4],EDI
JNZ 0x000da910
MOV ESI,dword ptr [EBP + -0x1c]
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x28]
PUSH 0x1c
CALL 0x00246670
MOV ECX,dword ptr [EBP + -0x28]
MOV EDI,EAX
LEA EAX,[ECX + 0xffff2c98]
MOV EBX,ECX
ADD EAX,0x8
MOV dword ptr [EDI],EAX
MOV EAX,dword ptr [EBP + 0x8]
MOV dword ptr [EDI + 0x4],EAX
MOV EAX,dword ptr [EBP + 0x10]
MOV dword ptr [EDI + 0x8],EAX
MOV EAX,dword ptr [EBP + 0x14]
MOV dword ptr [EDI + 0xc],EAX
MOV EAX,dword ptr [EBP + -0x34]
MOV dword ptr [EDI + 0x10],EAX
MOV EAX,dword ptr [EBP + 0x18]
MOV dword ptr [EDI + 0x14],EAX
MOV EAX,dword ptr [EBP + 0x20]
MOV dword ptr [EDI + 0x18],EAX
MOV dword ptr [ESP],0x30
CALL 0x00246670
MOV EBX,dword ptr [EBP + -0x28]
LEA EDX,[EAX + 0x10]
MOV dword ptr [EAX + 0x4],0x0
MOV dword ptr [EAX + 0x8],EDX
LEA EDX,[EBX + 0xffff26fc]
MOV dword ptr [EAX],EDX
LEA EDX,[EBX + 0xffee6758]
MOV dword ptr [EAX + 0xc],0x0
MOV byte ptr [EAX + 0x10],0x0
MOV byte ptr [EAX + 0x20],0x0
MOV dword ptr [EAX + 0x24],EDI
MOV dword ptr [EAX + 0x28],ESI
MOV dword ptr [EAX + 0x2c],EDX
POP ESI
POP EDI
PUSH EAX
PUSH dword ptr [EBP + 0x1c]
CALL 0x002000e0
ADD ESP,0x10
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV ESI,dword ptr [EAX + 0x5934]
TEST ESI,ESI
JNZ 0x000da5bd
MOV EAX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EAX + 0x3e70]
TEST EAX,EAX
JZ 0x000daa99
JMP 0x000da683
MOV EBX,dword ptr [EAX + 0x5934]
TEST EBX,EBX
JNZ 0x000da4d7
MOV EAX,dword ptr [EBP + 0x18]
CMP byte ptr [EAX + 0x1ce],0x0
JNZ 0x000da4d7
MOV EAX,dword ptr [EBP + -0x30]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x8]
JMP 0x000da552
MOV EDI,dword ptr [EBP + 0x10]
MOV EAX,dword ptr [EBP + 0x10]
MOV EAX,dword ptr [EAX + 0x4]
SUB EAX,dword ptr [EDI]
SAR EAX,0x2
MOV EDX,EAX
MOV EAX,dword ptr [EDI + 0x10]
SUB EAX,dword ptr [EDI + 0xc]
SAR EAX,0x2
ADD EAX,EDX
MOV EDX,0x2
CMP EAX,0x2
CMOVL EAX,EDX
JMP 0x000da683
MOV EAX,dword ptr [EBP + 0x10]
MOV EDI,dword ptr [EBP + 0x10]
MOV EAX,dword ptr [EAX + 0xc]
CMP EAX,dword ptr [EDI + 0x10]
JZ 0x000db019
MOV EAX,dword ptr [EAX]
MOV EDI,dword ptr [EBP + -0x28]
SUB ESP,0xc
MOV ESI,dword ptr [EAX + 0x4]
LEA EAX,[EDI + 0xffee6688]
MOV EBX,EDI
PUSH EAX
CALL 0x0002c440
POP EDX
POP ECX
PUSH ESI
PUSH EAX
CALL 0x000d1330
ADD ESP,0x10
JMP 0x000da6c6
CMP EDI,EDX
JZ 0x000daf43
MOV EAX,dword ptr [EBP + -0x28]
MOV ESI,dword ptr [EBP + -0x1c]
LEA EAX,[EAX + 0xffff43c8]
ADD EAX,0x8
MOV dword ptr [EBP + -0x2c],EAX
LEA ESI,[ESI]
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x28]
ADD EDI,0x4
PUSH 0x14
CALL 0x00246670
MOV ECX,dword ptr [EDI + -0x4]
MOV EBX,dword ptr [EBP + -0x28]
MOV byte ptr [EAX],0x1
MOV dword ptr [EAX + 0x8],0x0
MOV EDX,dword ptr [ECX + 0x50]
MOV dword ptr [EAX + 0xc],0x0
MOV dword ptr [EAX + 0x10],0x0
MOV dword ptr [EAX + 0x4],0x1
MOV dword ptr [EBP + -0x24],ECX
MOV dword ptr [ESP],0x3c
MOV dword ptr [EBP + -0x20],EDX
MOV dword ptr [EBP + -0x1c],EAX
CALL 0x00246670
MOV ECX,dword ptr [EBP + -0x2c]
MOV EDX,dword ptr [EBP + -0x20]
MOV dword ptr [EAX + 0x34],ESI
MOV ESI,dword ptr [EBP + -0x1c]
LEA EBX,[EAX + 0x10]
MOV dword ptr [EAX],ECX
MOV ECX,dword ptr [EBP + 0x14]
MOV dword ptr [EAX + 0x4],0x0
MOV dword ptr [EAX + 0x24],ECX
MOV ECX,dword ptr [EBP + 0x18]
MOV dword ptr [EAX + 0x8],EBX
MOV dword ptr [EAX + 0x28],ECX
MOV ECX,dword ptr [EBP + -0x24]
MOV dword ptr [EAX + 0xc],0x0
MOV byte ptr [EAX + 0x10],0x0
MOV byte ptr [EAX + 0x20],0x0
MOV dword ptr [EAX + 0x2c],ECX
MOV dword ptr [EAX + 0x30],EDX
MOV dword ptr [EAX + 0x38],ESI
POP EBX
POP EDX
MOV EBX,dword ptr [EBP + -0x28]
PUSH EAX
PUSH dword ptr [EBP + 0x1c]
CALL 0x002000e0
MOV EAX,dword ptr [EBP + 0x10]
ADD ESP,0x10
CMP dword ptr [EAX + 0x4],EDI
JNZ 0x000dab20
JMP 0x000da9b0
MOV EAX,dword ptr [EBP + -0x30]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x000dac36
CMP byte ptr [EAX + 0x1a25],0x0
JNZ 0x000da6a6
CMP byte ptr [EAX + 0x2931],0x0
JNZ 0x000da6a6
SUB ESP,0xc
PUSH 0x1
CALL 0x001a52b0
ADD ESP,0x10
JMP 0x000da6fc
MOV EAX,dword ptr [EBP + 0x14]
SUB ESP,0x4
MOV EBX,dword ptr [EBP + -0x28]
PUSH dword ptr [EBP + 0x14]
PUSH dword ptr [EBP + 0x10]
PUSH dword ptr [EAX + 0x15c]
CALL 0x000ded60
MOV EAX,dword ptr [EBP + -0x30]
ADD ESP,0x10
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JNZ 0x000da4ca
MOV EDI,dword ptr [EBP + -0x28]
SUB ESP,0x4
LEA EAX,[EDI + 0xffee68d4]
PUSH EAX
LEA EAX,[EDI + 0xffece26d]
PUSH 0x5c
PUSH EAX
CALL 0x000da200
SUB ESP,0xc
MOV EDI,dword ptr [EBP + -0x28]
PUSH EDX
MOV EBX,EDI
CALL 0x001a50c0
ADD ESP,0xc
PUSH 0x0
PUSH EAX
PUSH dword ptr [EBP + 0x14]
CALL 0x001e9100
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000dac8a
SUB ESP,0x8
PUSH EAX
PUSH dword ptr [EBP + 0x14]
CALL 0x001e7b10
ADD ESP,0x10
MOV EAX,dword ptr [EBP + -0x30]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x000dac36
SUB ESP,0x4
MOV EBX,dword ptr [EBP + -0x28]
PUSH 0x0
PUSH dword ptr [EAX + 0x1f20]
PUSH dword ptr [EBP + 0x14]
CALL 0x001e9100
ADD ESP,0x10
MOV ESI,EAX
TEST EAX,EAX
JZ 0x000dace0
MOVZX EAX,byte ptr [EAX + 0x2a]
AND EAX,0x7
JNZ 0x000daf24
MOV EAX,dword ptr [ESI + 0xc]
TEST byte ptr [ESI + 0x2b],0x20
JZ 0x000dafaa
TEST EAX,EAX
JZ 0x000dace0
MOV EAX,dword ptr [ESI + 0x8]
TEST byte ptr [EAX + 0x2c],0x1
JZ 0x000daf2c
MOV EAX,dword ptr [EBP + -0x30]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x000dac36
SUB ESP,0x4
MOV EBX,dword ptr [EBP + -0x28]
PUSH 0x0
PUSH dword ptr [EAX + 0x1538]
PUSH dword ptr [EBP + 0x14]
CALL 0x001e9100
ADD ESP,0x10
MOV ESI,EAX
TEST EAX,EAX
JZ 0x000dad3a
MOVZX EAX,byte ptr [EAX + 0x2a]
AND EAX,0x7
JNZ 0x000daf05
MOV EAX,dword ptr [ESI + 0xc]
TEST byte ptr [ESI + 0x2b],0x20
JZ 0x000daf84
TEST EAX,EAX
JZ 0x000dad3a
MOV EAX,dword ptr [ESI + 0x8]
TEST byte ptr [EAX + 0x2c],0x1
JZ 0x000daf0d
SUB ESP,0x8
PUSH dword ptr [EBP + 0x18]
MOV EBX,dword ptr [EBP + -0x28]
PUSH dword ptr [EBP + 0x14]
CALL 0x001e95f0
MOV EAX,dword ptr [EBP + 0x14]
ADD ESP,0x10
MOV EAX,dword ptr [EAX + 0x158]
TEST EAX,EAX
JZ 0x000db08f
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x28]
PUSH EAX
CALL 0x00229ab0
MOV EAX,dword ptr [EBP + -0x30]
ADD ESP,0x10
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JNZ 0x000da4b4
JMP 0x000dac36
SUB ESP,0x8
MOV EDI,dword ptr [EBP + -0x28]
PUSH dword ptr [EBP + 0x18]
PUSH dword ptr [EBP + 0x14]
MOV EBX,EDI
CALL 0x0020afd0
POP EAX
POP EDX
PUSH dword ptr [EBP + 0x14]
PUSH dword ptr [EBP + 0x18]
CALL 0x0010ee10
MOV EAX,dword ptr [EBP + -0x34]
LEA EDX,[EDI + 0xffc90200]
ADD ESP,0x10
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x84]
CMP EAX,EDX
JZ 0x000da894
SUB ESP,0x4
PUSH dword ptr [EBP + 0x18]
PUSH dword ptr [EBP + 0x14]
PUSH dword ptr [EBP + -0x34]
CALL EAX
ADD ESP,0x10
JMP 0x000da894
MOV EAX,dword ptr [EBP + 0x18]
SUB ESP,0x8
MOV EBX,dword ptr [EBP + -0x28]
PUSH dword ptr [EBP + 0x14]
MOV EAX,dword ptr [EAX + 0x4]
MOV dword ptr [EBP + -0x1c],EAX
ADD EAX,0x68
PUSH EAX
CALL 0x001dc4a0
ADD ESP,0x10
JMP 0x000da810
SUB ESP,0xc
MOV ESI,dword ptr [EBP + -0x28]
PUSH 0x14
MOV EBX,ESI
CALL 0x00246670
MOV byte ptr [EAX],0x1
MOV EDI,EAX
MOV dword ptr [EAX + 0x8],0x0
MOV dword ptr [EAX + 0xc],0x0
MOV dword ptr [EAX + 0x10],0x0
MOV dword ptr [EAX + 0x4],0x1
MOV dword ptr [EBP + -0x1c],EAX
MOV dword ptr [ESP],0x34
CALL 0x00246670
MOV ECX,dword ptr [EBP + 0x14]
LEA EDX,[EAX + 0x10]
MOV dword ptr [EAX + 0x4],0x0
MOV dword ptr [EAX + 0x24],ECX
MOV ECX,dword ptr [EBP + 0x18]
MOV dword ptr [EAX + 0x8],EDX
LEA EDX,[ESI + 0xffff4d44]
MOV dword ptr [EAX + 0x28],ECX
MOV ECX,dword ptr [EBP + 0x20]
ADD EDX,0x8
MOV dword ptr [EAX + 0xc],0x0
MOV byte ptr [EAX + 0x10],0x0
MOV byte ptr [EAX + 0x20],0x0
MOV dword ptr [EAX],EDX
MOV dword ptr [EAX + 0x2c],ECX
MOV dword ptr [EAX + 0x30],EDI
POP ESI
POP EDI
PUSH EAX
PUSH dword ptr [EBP + 0x1c]
CALL 0x002000e0
MOV EAX,dword ptr [EBP + -0x30]
ADD ESP,0x10
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JNZ 0x000da8cc
JMP 0x000dac36
MOV ECX,dword ptr [EBP + 0x18]
MOV EDI,dword ptr [EDI + 0x130]
CMP EDI,dword ptr [ECX + 0x134]
JZ 0x000da5b0
LEA ESI,[ECX + 0x1ec]
LEA ESI,[ESI]
NOP
SUB ESP,0x8
MOV EBX,dword ptr [EBP + -0x28]
ADD EDI,0x4
PUSH ESI
PUSH dword ptr [EDI + -0x4]
CALL 0x0015d7d0
MOV EAX,dword ptr [EBP + 0x18]
ADD ESP,0x10
CMP dword ptr [EAX + 0x134],EDI
JNZ 0x000daec0
MOV EAX,dword ptr [EBP + -0x30]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JNZ 0x000da5b0
JMP 0x000dac36
MOV EBX,dword ptr [EBP + -0x28]
CALL 0x001a5350
JMP 0x000da483
CMP AL,0x4
JZ 0x000dad3a
SUB ESP,0x8
MOV EBX,dword ptr [EBP + -0x28]
PUSH ESI
PUSH dword ptr [EBP + 0x14]
CALL 0x001e7b10
ADD ESP,0x10
JMP 0x000dad3a
CMP AL,0x4
JZ 0x000dace0
SUB ESP,0x8
MOV EBX,dword ptr [EBP + -0x28]
PUSH ESI
PUSH dword ptr [EBP + 0x14]
CALL 0x001e7b10
ADD ESP,0x10
JMP 0x000dace0
MOV EAX,dword ptr [EBP + -0x1c]
TEST EAX,EAX
JNZ 0x000da9b0
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x28]
PUSH 0x14
CALL 0x00246670
ADD ESP,0x10
MOV ESI,EAX
MOV byte ptr [EAX],0x1
MOV dword ptr [EAX + 0x4],0x0
MOV dword ptr [EAX + 0x8],0x0
MOV dword ptr [EAX + 0xc],0x0
MOV dword ptr [EAX + 0x10],0x0
JMP 0x000da9b3
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x28]
PUSH EAX
CALL 0x001e6ac0
ADD ESP,0x10
TEST AL,AL
JNZ 0x000dad3a
TEST byte ptr [ESI + 0x2a],0x7
JNZ 0x000daf0d
JMP 0x000dad2d
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x28]
PUSH EAX
CALL 0x001e6ac0
ADD ESP,0x10
TEST AL,AL
JNZ 0x000dace0
TEST byte ptr [ESI + 0x2a],0x7
JNZ 0x000daf2c
JMP 0x000dacd3
MOV EDI,dword ptr [EBP + -0x28]
SUB ESP,0x4
LEA EAX,[EDI + 0xffee685c]
PUSH EAX
LEA EAX,[EDI + 0xffee2e48]
PUSH 0x5c8
PUSH EAX
CALL 0x000da200
MOV EDI,dword ptr [ECX + 0x4]
MOV EAX,dword ptr [EBP + -0x1c]
SUB ESP,0xc
MOV ECX,dword ptr [EBP + -0x28]
MOV ESI,dword ptr [EAX + 0x4]
LEA EAX,[ECX + 0xffee6714]
MOV EBX,ECX
PUSH EAX
CALL 0x0002c440
ADD ESP,0xc
MOV EBX,dword ptr [EBP + -0x28]
PUSH EDI
PUSH ESI
PUSH EAX
CALL 0x000d12d0
MOV EDI,dword ptr [EBP + -0x28]
PUSH EBX
LEA EAX,[EDI + 0xffee6870]
PUSH EAX
LEA EAX,[EDI + 0xffee660c]
PUSH 0x265
PUSH EAX
CALL 0x000da200
MOV EAX,dword ptr [EBP + 0x10]
MOV EDI,dword ptr [EBP + -0x28]
SUB ESP,0xc
MOV EAX,dword ptr [EAX + 0xc]
MOV EAX,dword ptr [EAX]
MOV ESI,dword ptr [EAX + 0x4]
LEA EAX,[EDI + 0xffee66b4]
PUSH EAX
MOV EBX,EDI
CALL 0x0002c440
POP ECX
POP EDI
PUSH ESI
PUSH EAX
CALL 0x000d12d0
MOV EAX,dword ptr [EBP + 0x10]
MOV EDI,dword ptr [EBP + -0x28]
SUB ESP,0xc
MOV EAX,dword ptr [EAX + 0xc]
MOV EAX,dword ptr [EAX]
MOV ESI,dword ptr [EAX + 0x4]
LEA EAX,[EDI + 0xffee66dc]
JMP 0x000db04c
MOV EDI,dword ptr [EBP + -0x28]
PUSH ECX
LEA EAX,[EDI + 0xffee6854]
PUSH EAX
LEA EAX,[EDI + 0xffece26d]
PUSH 0x69
PUSH EAX
CALL 0x000da200
PUSH EDI
MOV EDI,dword ptr [EBP + -0x28]
LEA EAX,[EDI + 0xffee6870]
PUSH EAX
LEA EAX,[EDI + 0xffee660c]
PUSH 0x20b
PUSH EAX
CALL 0x000da200
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_000da420(int param_1,undefined4 param_2,int *param_3,int param_4,int param_5,\n                 undefined4 param_6,undefined4 param_7)\n\n{\n  undefined1 uVar1;\n  char cVar2;\n  undefined4 uVar3;\n  int iVar4;\n  undefined1 *puVar5;\n  undefined4 *puVar6;\n  undefined4 *puVar7;\n  undefined4 uVar8;\n  char *pcVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  undefined4 extraout_ECX;\n  int *piVar12;\n  byte bVar13;\n  int *piVar14;\n  int iVar15;\n  int *piVar16;\n  undefined1 *local_20;\n  \n  if (*(int *)(DAT_004144e8 + 4) != 0) {\n    FUN_001ffac0(*(int *)(DAT_004144e8 + 4),0);\n  }\n  if (((param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2) == 0) &&\n     (*(int *)(param_5 + 0x244) == 0)) {\n    FUN_001a5350();\n  }\n  FUN_001e9d80(param_4,param_5);\n  iVar4 = *(int *)(DAT_004144e8 + 8);\n  if (iVar4 == 0) goto LAB_000dac36;\n  if (*(char *)(iVar4 + 0x18b1) != '\0') {\n    uVar3 = FUN_001a50c0(DAT_004144e8);\n    iVar4 = FUN_001e9100(param_4,uVar3,0);\n    if (iVar4 != 0) {\n      FUN_001e7b10(param_4,iVar4);\n    }\n    if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n    iVar4 = FUN_001e9100(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1f20),0);\n    if (iVar4 != 0) {\n      if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf2c;\n            goto LAB_000dacd3;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dacd3:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf2c;\n        }\n      }\n      else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf2c:\n        FUN_001e7b10(param_4,iVar4);\n      }\n    }\n    if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n    iVar4 = FUN_001e9100(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1538),0);\n    if (iVar4 != 0) {\n      if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf0d;\n            goto LAB_000dad2d;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dad2d:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf0d;\n        }\n      }\n      else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf0d:\n        FUN_001e7b10(param_4,iVar4);\n      }\n    }\n    FUN_001e95f0(param_4,param_5);\n    if (*(int *)(param_4 + 0x158) == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_000da200("../../gold/gold.cc",0x20b,"queue_middle_tasks",&__DT_PLTGOT);\n    }\n    FUN_00229ab0(*(int *)(param_4 + 0x158));\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }\n  if (*(int *)(iVar4 + 0x5934) == 0) {\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n  }\n  else {\n    FUN_000ded60(*(undefined4 *)(param_4 + 0x15c),param_3,param_4);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }\n  if ((((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)) &&\n      (*(char *)(param_5 + 0x1ce) == '\0')) ||\n     (piVar14 = (int *)*param_3, piVar14 == (int *)param_3[1])) {\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n  }\n  else {\n    do {\n      piVar16 = (int *)*piVar14;\n      piVar12 = piVar16;\n      if (piVar16[7] != 0) {\n        FUN_000d2820(piVar16[7] + 0x1c,param_2);\n        piVar12 = (int *)*piVar14;\n      }\n                    /* try { // try from 000da515 to 000da517 has its CatchHandler @ 000db0ab */\n      (**(code **)(*piVar12 + 0x24))(piVar12,param_4,param_5,0);\n      if (piVar16[7] != 0) {\n        FUN_000d3850(piVar16[7] + 0x1c,param_2);\n      }\n      piVar14 = piVar14 + 1;\n    } while ((int *)param_3[1] != piVar14);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }\n  if (*(int *)(iVar4 + 0x593c) != 0) {\n    FUN_001a6980(*(int *)(iVar4 + 0x593c));\n  }\n  FUN_00107c00(param_5);\n  iVar4 = *(int *)(DAT_004144e8 + 8);\n  if (iVar4 == 0) goto LAB_000dac36;\n  if (((*(int *)(iVar4 + 0x593c) != 0) && (*(char *)(param_5 + 0x1cd) != '\0')) &&\n     ((*(int *)(iVar4 + 0x36d8) == 0 &&\n      (*(undefined4 **)(param_5 + 0x130) != *(undefined4 **)(param_5 + 0x134))))) {\n    puVar6 = *(undefined4 **)(param_5 + 0x130);\n    do {\n      puVar7 = puVar6 + 1;\n      FUN_0015d7d0(*puVar6,param_5 + 0x1ec);\n      puVar6 = puVar7;\n    } while (*(undefined4 **)(param_5 + 0x134) != puVar7);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }\n  if ((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)) {\n    iVar4 = *(int *)(param_1 + 0x3e70);\n  }\n  else {\n    piVar14 = (int *)*param_3;\n    if (piVar14 != (int *)param_3[1]) {\n      do {\n        piVar12 = (int *)*piVar14;\n        piVar16 = (int *)piVar12[0x14];\n        iVar4 = *piVar16;\n        if (iVar4 != piVar16[1]) {\n          while( true ) {\n            iVar15 = *piVar12;\n            uVar11 = *(uint *)(iVar4 + 4);\n            if (*(code **)(iVar15 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11) {\n                    /* WARNING: Subroutine does not return */\n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4);\n            }\n            else {\n              uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);\n              uVar11 = *(uint *)(iVar4 + 4);\n              piVar12 = (int *)*piVar14;\n              iVar15 = *piVar12;\n            }\n            *(undefined4 *)(iVar4 + 0x14) = uVar3;\n            uVar1 = (**(code **)(iVar15 + 0x88))(piVar12,uVar11);\n            *(undefined1 *)(iVar4 + 0x18) = uVar1;\n            if (piVar16[1] == iVar4 + 0x1c) break;\n            piVar12 = (int *)*piVar14;\n            iVar4 = iVar4 + 0x1c;\n          }\n        }\n        piVar14 = piVar14 + 1;\n      } while ((int *)param_3[1] != piVar14);\n    }\n    iVar4 = *(int *)(param_1 + 0x3e70);\n  }\n  if ((iVar4 == 0) &&\n     (iVar4 = (param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2), iVar4 < 2)) {\n    iVar4 = 2;\n  }\n  FUN_002007c0(param_6,iVar4);\n  if (param_3[4] == param_3[3]) {\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n    if ((*(char *)(iVar4 + 0x1a25) != '\0') || (*(char *)(iVar4 + 0x2931) != '\0'))\n    goto LAB_000da6a6;\n    FUN_001a52b0(1);\n  }\n  else {\nLAB_000da6a6:\n    FUN_001a52b0(0);\n    if (*(char *)(param_1 + 0x5938) != '\0') {\n      if ((int *)param_3[3] == (int *)param_3[4]) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/gold.cc",0x265,"queue_middle_tasks",&__DT_PLTGOT);\n      }\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      uVar10 = gettext("cannot mix -static with dynamic object %s");\n      FUN_000d1330(uVar10,uVar3);\n    }\n    if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n    if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) != '\0') {\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      pcVar9 = "cannot mix -r with dynamic object %s";\nLAB_000db04c:\n      uVar10 = gettext(pcVar9);\n                    /* WARNING: Subroutine does not return */\n      FUN_000d12d0(uVar10,uVar3);\n    }\n    iVar4 = FUN_0014c1c0(param_1);\n    if (iVar4 != 0) {\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      pcVar9 = "cannot use non-ELF output format with dynamic object %s";\n      goto LAB_000db04c;\n    }\n  }\n  if (*(int *)(DAT_004144e8 + 8) == 0) {\nLAB_000dac36:\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) != '\0') {\n    piVar14 = (int *)*param_3;\n    piVar16 = (int *)param_3[1];\n    if (piVar16 != piVar14) {\n      bVar13 = *(byte *)(*piVar14 + 0x2c) >> 2 & 1;\n      if (piVar16 != piVar14 + 1) {\n        iVar4 = piVar14[1];\n        if ((*(byte *)(iVar4 + 0x2c) >> 2 & 1) == bVar13) {\n          piVar12 = piVar14 + 2;\n          do {\n            if (piVar16 == piVar12) goto LAB_000da77b;\n            iVar4 = *piVar12;\n            piVar12 = piVar12 + 1;\n          } while (bVar13 == (*(byte *)(iVar4 + 0x2c) >> 2 & 1));\n        }\n        uVar3 = *(undefined4 *)(iVar4 + 4);\n        uVar10 = *(undefined4 *)(*piVar14 + 4);\n        uVar8 = gettext("cannot mix split-stack \'%s\' and non-split-stack \'%s\' when using -r");\n                    /* WARNING: Subroutine does not return */\n        FUN_000d12d0(uVar8,uVar10,uVar3);\n      }\n    }\n  }\nLAB_000da77b:\n  cVar2 = FUN_001a5190(DAT_004144e8);\n  if (cVar2 != '\0') {\n    piVar14 = *(int **)(param_5 + 0x244);\n    (**(code **)(*piVar14 + 0x18))(piVar14,param_4,param_5);\n    (**(code **)(*piVar14 + 0x1c))(piVar14,param_4);\n  }\n  if ((*(int *)(DAT_004144e8 + 8) != 0) && ((*(byte *)(DAT_004144e8 + 0x14) & 2) != 0)) {\n    FUN_001d9e80(*(undefined4 *)(param_5 + 4),*(undefined4 *)PTR_stderr_00413fbc);\n  }\n  FUN_00122e00(param_3);\n  if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n  if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x4c2d) == '\0') {\n    FUN_001dc4a0(*(int *)(param_5 + 4) + 0x68,param_4);\n  }\n  FUN_001121d0(param_5);\n  FUN_001d9480(*(undefined4 *)(param_5 + 4),param_5);\n  FUN_001112f0(param_5,param_4);\n  FUN_001d94d0(*(undefined4 *)(param_5 + 4),param_4);\n  piVar14 = *(int **)(DAT_004144e8 + 0xc);\n  if (piVar14 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../gold/parameters.h",0x69,"target",extraout_ECX);\n  }\n  FUN_0010c300(param_5,piVar14);\n  if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n  if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) == '\0') {\n    FUN_0020afd0(param_4,param_5);\n    FUN_0010ee10(param_5,param_4);\n    if (*(code **)(*piVar14 + 0x84) != FUN_000a4200) {\n      (**(code **)(*piVar14 + 0x84))(piVar14,param_4,param_5);\n    }\n  }\n  FUN_001081d0(param_5,param_4);\n  iVar4 = *(int *)(DAT_004144e8 + 8);\n  if (iVar4 == 0) goto LAB_000dac36;\n  local_20 = (undefined1 *)0x0;\n  if (*(char *)(iVar4 + 0xb51) != '\0') {\n    local_20 = (undefined1 *)FUN_00246670(0x14);\n    *local_20 = 1;\n    *(undefined4 *)(local_20 + 8) = 0;\n    *(undefined4 *)(local_20 + 0xc) = 0;\n    *(undefined4 *)(local_20 + 0x10) = 0;\n    *(undefined4 *)(local_20 + 4) = 1;\n    puVar6 = (undefined4 *)FUN_00246670(0x34);\n    puVar6[1] = 0;\n    puVar6[9] = param_4;\n    puVar6[2] = puVar6 + 4;\n    puVar6[10] = param_5;\n    puVar6[3] = 0;\n    *(undefined1 *)(puVar6 + 4) = 0;\n    *(undefined1 *)(puVar6 + 8) = 0;\n    *puVar6 = &PTR_FUN_00408d4c;\n    puVar6[0xb] = param_7;\n    puVar6[0xc] = local_20;\n    FUN_002000e0(param_6,puVar6);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }\n  piVar16 = (int *)*param_3;\n  if ((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)) {\n    if (piVar16 != (int *)param_3[1]) {\n      do {\n        piVar12 = piVar16 + 1;\n        puVar5 = (undefined1 *)FUN_00246670(0x14);\n        iVar4 = *piVar16;\n        *puVar5 = 1;\n        *(undefined4 *)(puVar5 + 8) = 0;\n        *(undefined4 *)(puVar5 + 0xc) = 0;\n        *(undefined4 *)(puVar5 + 0x10) = 0;\n        *(undefined4 *)(puVar5 + 4) = 1;\n        puVar6 = (undefined4 *)FUN_00246670(0x38);\n        puVar6[0xc] = local_20;\n        *puVar6 = &PTR_FUN_00408390;\n        puVar6[2] = puVar6 + 4;\n        puVar6[9] = param_4;\n        puVar6[1] = 0;\n        puVar6[10] = param_5;\n        puVar6[3] = 0;\n        *(undefined1 *)(puVar6 + 4) = 0;\n        *(undefined1 *)(puVar6 + 8) = 0;\n        puVar6[0xb] = iVar4;\n        puVar6[0xd] = puVar5;\n        FUN_002000e0(param_6,puVar6);\n        local_20 = puVar5;\n        piVar16 = piVar12;\n      } while ((int *)param_3[1] != piVar12);\n      goto LAB_000da9b3;\n    }\n  }\n  else if (piVar16 != (int *)param_3[1]) {\n    do {\n      piVar12 = piVar16 + 1;\n      puVar5 = (undefined1 *)FUN_00246670(0x14);\n      iVar4 = *piVar16;\n      *puVar5 = 1;\n      *(undefined4 *)(puVar5 + 8) = 0;\n      uVar3 = *(undefined4 *)(iVar4 + 0x50);\n      *(undefined4 *)(puVar5 + 0xc) = 0;\n      *(undefined4 *)(puVar5 + 0x10) = 0;\n      *(undefined4 *)(puVar5 + 4) = 1;\n      puVar6 = (undefined4 *)FUN_00246670(0x3c);\n      puVar6[0xd] = local_20;\n      *puVar6 = &PTR_FUN_004083d0;\n      puVar6[1] = 0;\n      puVar6[9] = param_4;\n      puVar6[2] = puVar6 + 4;\n      puVar6[10] = param_5;\n      puVar6[3] = 0;\n      *(undefined1 *)(puVar6 + 4) = 0;\n      *(undefined1 *)(puVar6 + 8) = 0;\n      puVar6[0xb] = iVar4;\n      puVar6[0xc] = uVar3;\n      puVar6[0xe] = puVar5;\n      FUN_002000e0(param_6,puVar6);\n      local_20 = puVar5;\n      piVar16 = piVar12;\n    } while ((int *)param_3[1] != piVar12);\n    goto LAB_000da9b3;\n  }\n  puVar5 = local_20;\n  if (local_20 == (undefined1 *)0x0) {\n    puVar5 = (undefined1 *)FUN_00246670(0x14);\n    *puVar5 = 1;\n    *(undefined4 *)(puVar5 + 4) = 0;\n    *(undefined4 *)(puVar5 + 8) = 0;\n    *(undefined4 *)(puVar5 + 0xc) = 0;\n    *(undefined4 *)(puVar5 + 0x10) = 0;\n  }\nLAB_000da9b3:\n  puVar6 = (undefined4 *)FUN_00246670(0x1c);\n  *puVar6 = &PTR_FUN_00406ca0;\n  puVar6[1] = param_1;\n  puVar6[2] = param_3;\n  puVar6[3] = param_4;\n  puVar6[4] = piVar14;\n  puVar6[5] = param_5;\n  puVar6[6] = param_7;\n  puVar7 = (undefined4 *)FUN_00246670(0x30);\n  puVar7[1] = 0;\n  puVar7[2] = puVar7 + 4;\n  *puVar7 = &PTR_FUN_004066fc;\n  puVar7[3] = 0;\n  *(undefined1 *)(puVar7 + 4) = 0;\n  *(undefined1 *)(puVar7 + 8) = 0;\n  puVar7[9] = puVar6;\n  puVar7[10] = puVar5;\n  puVar7[0xb] = "Task_function Layout_task_runner";\n  FUN_002000e0(param_6,puVar7);\n  return;\n}\n\n" comment (function_definition "void FUN_000da420(int param_1,undefined4 param_2,int *param_3,int param_4,int param_5,\n                 undefined4 param_6,undefined4 param_7)\n\n{\n  undefined1 uVar1;\n  char cVar2;\n  undefined4 uVar3;\n  int iVar4;\n  undefined1 *puVar5;\n  undefined4 *puVar6;\n  undefined4 *puVar7;\n  undefined4 uVar8;\n  char *pcVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  undefined4 extraout_ECX;\n  int *piVar12;\n  byte bVar13;\n  int *piVar14;\n  int iVar15;\n  int *piVar16;\n  undefined1 *local_20;\n  \n  if (*(int *)(DAT_004144e8 + 4) != 0) {\n    FUN_001ffac0(*(int *)(DAT_004144e8 + 4),0);\n  }\n  if (((param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2) == 0) &&\n     (*(int *)(param_5 + 0x244) == 0)) {\n    FUN_001a5350();\n  }\n  FUN_001e9d80(param_4,param_5);\n  iVar4 = *(int *)(DAT_004144e8 + 8);\n  if (iVar4 == 0) goto LAB_000dac36;\n  if (*(char *)(iVar4 + 0x18b1) != '\0') {\n    uVar3 = FUN_001a50c0(DAT_004144e8);\n    iVar4 = FUN_001e9100(param_4,uVar3,0);\n    if (iVar4 != 0) {\n      FUN_001e7b10(param_4,iVar4);\n    }\n    if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n    iVar4 = FUN_001e9100(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1f20),0);\n    if (iVar4 != 0) {\n      if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf2c;\n            goto LAB_000dacd3;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dacd3:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf2c;\n        }\n      }\n      else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf2c:\n        FUN_001e7b10(param_4,iVar4);\n      }\n    }\n    if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n    iVar4 = FUN_001e9100(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1538),0);\n    if (iVar4 != 0) {\n      if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf0d;\n            goto LAB_000dad2d;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dad2d:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf0d;\n        }\n      }\n      else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf0d:\n        FUN_001e7b10(param_4,iVar4);\n      }\n    }\n    FUN_001e95f0(param_4,param_5);\n    if (*(int *)(param_4 + 0x158) == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_000da200("../../gold/gold.cc",0x20b,"queue_middle_tasks",&__DT_PLTGOT);\n    }\n    FUN_00229ab0(*(int *)(param_4 + 0x158));\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }\n  if (*(int *)(iVar4 + 0x5934) == 0) {\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n  }\n  else {\n    FUN_000ded60(*(undefined4 *)(param_4 + 0x15c),param_3,param_4);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }\n  if ((((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)) &&\n      (*(char *)(param_5 + 0x1ce) == '\0')) ||\n     (piVar14 = (int *)*param_3, piVar14 == (int *)param_3[1])) {\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n  }\n  else {\n    do {\n      piVar16 = (int *)*piVar14;\n      piVar12 = piVar16;\n      if (piVar16[7] != 0) {\n        FUN_000d2820(piVar16[7] + 0x1c,param_2);\n        piVar12 = (int *)*piVar14;\n      }\n                    /* try { // try from 000da515 to 000da517 has its CatchHandler @ 000db0ab */\n      (**(code **)(*piVar12 + 0x24))(piVar12,param_4,param_5,0);\n      if (piVar16[7] != 0) {\n        FUN_000d3850(piVar16[7] + 0x1c,param_2);\n      }\n      piVar14 = piVar14 + 1;\n    } while ((int *)param_3[1] != piVar14);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }\n  if (*(int *)(iVar4 + 0x593c) != 0) {\n    FUN_001a6980(*(int *)(iVar4 + 0x593c));\n  }\n  FUN_00107c00(param_5);\n  iVar4 = *(int *)(DAT_004144e8 + 8);\n  if (iVar4 == 0) goto LAB_000dac36;\n  if (((*(int *)(iVar4 + 0x593c) != 0) && (*(char *)(param_5 + 0x1cd) != '\0')) &&\n     ((*(int *)(iVar4 + 0x36d8) == 0 &&\n      (*(undefined4 **)(param_5 + 0x130) != *(undefined4 **)(param_5 + 0x134))))) {\n    puVar6 = *(undefined4 **)(param_5 + 0x130);\n    do {\n      puVar7 = puVar6 + 1;\n      FUN_0015d7d0(*puVar6,param_5 + 0x1ec);\n      puVar6 = puVar7;\n    } while (*(undefined4 **)(param_5 + 0x134) != puVar7);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }\n  if ((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)) {\n    iVar4 = *(int *)(param_1 + 0x3e70);\n  }\n  else {\n    piVar14 = (int *)*param_3;\n    if (piVar14 != (int *)param_3[1]) {\n      do {\n        piVar12 = (int *)*piVar14;\n        piVar16 = (int *)piVar12[0x14];\n        iVar4 = *piVar16;\n        if (iVar4 != piVar16[1]) {\n          while( true ) {\n            iVar15 = *piVar12;\n            uVar11 = *(uint *)(iVar4 + 4);\n            if (*(code **)(iVar15 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11) {\n                    /* WARNING: Subroutine does not return */\n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4);\n            }\n            else {\n              uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);\n              uVar11 = *(uint *)(iVar4 + 4);\n              piVar12 = (int *)*piVar14;\n              iVar15 = *piVar12;\n            }\n            *(undefined4 *)(iVar4 + 0x14) = uVar3;\n            uVar1 = (**(code **)(iVar15 + 0x88))(piVar12,uVar11);\n            *(undefined1 *)(iVar4 + 0x18) = uVar1;\n            if (piVar16[1] == iVar4 + 0x1c) break;\n            piVar12 = (int *)*piVar14;\n            iVar4 = iVar4 + 0x1c;\n          }\n        }\n        piVar14 = piVar14 + 1;\n      } while ((int *)param_3[1] != piVar14);\n    }\n    iVar4 = *(int *)(param_1 + 0x3e70);\n  }\n  if ((iVar4 == 0) &&\n     (iVar4 = (param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2), iVar4 < 2)) {\n    iVar4 = 2;\n  }\n  FUN_002007c0(param_6,iVar4);\n  if (param_3[4] == param_3[3]) {\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n    if ((*(char *)(iVar4 + 0x1a25) != '\0') || (*(char *)(iVar4 + 0x2931) != '\0'))\n    goto LAB_000da6a6;\n    FUN_001a52b0(1);\n  }\n  else {\nLAB_000da6a6:\n    FUN_001a52b0(0);\n    if (*(char *)(param_1 + 0x5938) != '\0') {\n      if ((int *)param_3[3] == (int *)param_3[4]) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/gold.cc",0x265,"queue_middle_tasks",&__DT_PLTGOT);\n      }\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      uVar10 = gettext("cannot mix -static with dynamic object %s");\n      FUN_000d1330(uVar10,uVar3);\n    }\n    if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n    if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) != '\0') {\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      pcVar9 = "cannot mix -r with dynamic object %s";\nLAB_000db04c:\n      uVar10 = gettext(pcVar9);\n                    /* WARNING: Subroutine does not return */\n      FUN_000d12d0(uVar10,uVar3);\n    }\n    iVar4 = FUN_0014c1c0(param_1);\n    if (iVar4 != 0) {\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      pcVar9 = "cannot use non-ELF output format with dynamic object %s";\n      goto LAB_000db04c;\n    }\n  }\n  if (*(int *)(DAT_004144e8 + 8) == 0) {\nLAB_000dac36:\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) != '\0') {\n    piVar14 = (int *)*param_3;\n    piVar16 = (int *)param_3[1];\n    if (piVar16 != piVar14) {\n      bVar13 = *(byte *)(*piVar14 + 0x2c) >> 2 & 1;\n      if (piVar16 != piVar14 + 1) {\n        iVar4 = piVar14[1];\n        if ((*(byte *)(iVar4 + 0x2c) >> 2 & 1) == bVar13) {\n          piVar12 = piVar14 + 2;\n          do {\n            if (piVar16 == piVar12) goto LAB_000da77b;\n            iVar4 = *piVar12;\n            piVar12 = piVar12 + 1;\n          } while (bVar13 == (*(byte *)(iVar4 + 0x2c) >> 2 & 1));\n        }\n        uVar3 = *(undefined4 *)(iVar4 + 4);\n        uVar10 = *(undefined4 *)(*piVar14 + 4);\n        uVar8 = gettext("cannot mix split-stack \'%s\' and non-split-stack \'%s\' when using -r");\n                    /* WARNING: Subroutine does not return */\n        FUN_000d12d0(uVar8,uVar10,uVar3);\n      }\n    }\n  }\nLAB_000da77b:\n  cVar2 = FUN_001a5190(DAT_004144e8);\n  if (cVar2 != '\0') {\n    piVar14 = *(int **)(param_5 + 0x244);\n    (**(code **)(*piVar14 + 0x18))(piVar14,param_4,param_5);\n    (**(code **)(*piVar14 + 0x1c))(piVar14,param_4);\n  }\n  if ((*(int *)(DAT_004144e8 + 8) != 0) && ((*(byte *)(DAT_004144e8 + 0x14) & 2) != 0)) {\n    FUN_001d9e80(*(undefined4 *)(param_5 + 4),*(undefined4 *)PTR_stderr_00413fbc);\n  }\n  FUN_00122e00(param_3);\n  if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n  if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x4c2d) == '\0') {\n    FUN_001dc4a0(*(int *)(param_5 + 4) + 0x68,param_4);\n  }\n  FUN_001121d0(param_5);\n  FUN_001d9480(*(undefined4 *)(param_5 + 4),param_5);\n  FUN_001112f0(param_5,param_4);\n  FUN_001d94d0(*(undefined4 *)(param_5 + 4),param_4);\n  piVar14 = *(int **)(DAT_004144e8 + 0xc);\n  if (piVar14 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../gold/parameters.h",0x69,"target",extraout_ECX);\n  }\n  FUN_0010c300(param_5,piVar14);\n  if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n  if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) == '\0') {\n    FUN_0020afd0(param_4,param_5);\n    FUN_0010ee10(param_5,param_4);\n    if (*(code **)(*piVar14 + 0x84) != FUN_000a4200) {\n      (**(code **)(*piVar14 + 0x84))(piVar14,param_4,param_5);\n    }\n  }\n  FUN_001081d0(param_5,param_4);\n  iVar4 = *(int *)(DAT_004144e8 + 8);\n  if (iVar4 == 0) goto LAB_000dac36;\n  local_20 = (undefined1 *)0x0;\n  if (*(char *)(iVar4 + 0xb51) != '\0') {\n    local_20 = (undefined1 *)FUN_00246670(0x14);\n    *local_20 = 1;\n    *(undefined4 *)(local_20 + 8) = 0;\n    *(undefined4 *)(local_20 + 0xc) = 0;\n    *(undefined4 *)(local_20 + 0x10) = 0;\n    *(undefined4 *)(local_20 + 4) = 1;\n    puVar6 = (undefined4 *)FUN_00246670(0x34);\n    puVar6[1] = 0;\n    puVar6[9] = param_4;\n    puVar6[2] = puVar6 + 4;\n    puVar6[10] = param_5;\n    puVar6[3] = 0;\n    *(undefined1 *)(puVar6 + 4) = 0;\n    *(undefined1 *)(puVar6 + 8) = 0;\n    *puVar6 = &PTR_FUN_00408d4c;\n    puVar6[0xb] = param_7;\n    puVar6[0xc] = local_20;\n    FUN_002000e0(param_6,puVar6);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }\n  piVar16 = (int *)*param_3;\n  if ((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)) {\n    if (piVar16 != (int *)param_3[1]) {\n      do {\n        piVar12 = piVar16 + 1;\n        puVar5 = (undefined1 *)FUN_00246670(0x14);\n        iVar4 = *piVar16;\n        *puVar5 = 1;\n        *(undefined4 *)(puVar5 + 8) = 0;\n        *(undefined4 *)(puVar5 + 0xc) = 0;\n        *(undefined4 *)(puVar5 + 0x10) = 0;\n        *(undefined4 *)(puVar5 + 4) = 1;\n        puVar6 = (undefined4 *)FUN_00246670(0x38);\n        puVar6[0xc] = local_20;\n        *puVar6 = &PTR_FUN_00408390;\n        puVar6[2] = puVar6 + 4;\n        puVar6[9] = param_4;\n        puVar6[1] = 0;\n        puVar6[10] = param_5;\n        puVar6[3] = 0;\n        *(undefined1 *)(puVar6 + 4) = 0;\n        *(undefined1 *)(puVar6 + 8) = 0;\n        puVar6[0xb] = iVar4;\n        puVar6[0xd] = puVar5;\n        FUN_002000e0(param_6,puVar6);\n        local_20 = puVar5;\n        piVar16 = piVar12;\n      } while ((int *)param_3[1] != piVar12);\n      goto LAB_000da9b3;\n    }\n  }\n  else if (piVar16 != (int *)param_3[1]) {\n    do {\n      piVar12 = piVar16 + 1;\n      puVar5 = (undefined1 *)FUN_00246670(0x14);\n      iVar4 = *piVar16;\n      *puVar5 = 1;\n      *(undefined4 *)(puVar5 + 8) = 0;\n      uVar3 = *(undefined4 *)(iVar4 + 0x50);\n      *(undefined4 *)(puVar5 + 0xc) = 0;\n      *(undefined4 *)(puVar5 + 0x10) = 0;\n      *(undefined4 *)(puVar5 + 4) = 1;\n      puVar6 = (undefined4 *)FUN_00246670(0x3c);\n      puVar6[0xd] = local_20;\n      *puVar6 = &PTR_FUN_004083d0;\n      puVar6[1] = 0;\n      puVar6[9] = param_4;\n      puVar6[2] = puVar6 + 4;\n      puVar6[10] = param_5;\n      puVar6[3] = 0;\n      *(undefined1 *)(puVar6 + 4) = 0;\n      *(undefined1 *)(puVar6 + 8) = 0;\n      puVar6[0xb] = iVar4;\n      puVar6[0xc] = uVar3;\n      puVar6[0xe] = puVar5;\n      FUN_002000e0(param_6,puVar6);\n      local_20 = puVar5;\n      piVar16 = piVar12;\n    } while ((int *)param_3[1] != piVar12);\n    goto LAB_000da9b3;\n  }\n  puVar5 = local_20;\n  if (local_20 == (undefined1 *)0x0) {\n    puVar5 = (undefined1 *)FUN_00246670(0x14);\n    *puVar5 = 1;\n    *(undefined4 *)(puVar5 + 4) = 0;\n    *(undefined4 *)(puVar5 + 8) = 0;\n    *(undefined4 *)(puVar5 + 0xc) = 0;\n    *(undefined4 *)(puVar5 + 0x10) = 0;\n  }\nLAB_000da9b3:\n  puVar6 = (undefined4 *)FUN_00246670(0x1c);\n  *puVar6 = &PTR_FUN_00406ca0;\n  puVar6[1] = param_1;\n  puVar6[2] = param_3;\n  puVar6[3] = param_4;\n  puVar6[4] = piVar14;\n  puVar6[5] = param_5;\n  puVar6[6] = param_7;\n  puVar7 = (undefined4 *)FUN_00246670(0x30);\n  puVar7[1] = 0;\n  puVar7[2] = puVar7 + 4;\n  *puVar7 = &PTR_FUN_004066fc;\n  puVar7[3] = 0;\n  *(undefined1 *)(puVar7 + 4) = 0;\n  *(undefined1 *)(puVar7 + 8) = 0;\n  puVar7[9] = puVar6;\n  puVar7[10] = puVar5;\n  puVar7[0xb] = "Task_function Layout_task_runner";\n  FUN_002000e0(param_6,puVar7);\n  return;\n}" primitive_type (function_declarator "FUN_000da420(int param_1,undefined4 param_2,int *param_3,int param_4,int param_5,\n                 undefined4 param_6,undefined4 param_7)" identifier (parameter_list "(int param_1,undefined4 param_2,int *param_3,int param_4,int param_5,\n                 undefined4 param_6,undefined4 param_7)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "undefined4 param_6" type_identifier identifier) , (parameter_declaration "undefined4 param_7" type_identifier identifier) ))) (compound_statement "{\n  undefined1 uVar1;\n  char cVar2;\n  undefined4 uVar3;\n  int iVar4;\n  undefined1 *puVar5;\n  undefined4 *puVar6;\n  undefined4 *puVar7;\n  undefined4 uVar8;\n  char *pcVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  undefined4 extraout_ECX;\n  int *piVar12;\n  byte bVar13;\n  int *piVar14;\n  int iVar15;\n  int *piVar16;\n  undefined1 *local_20;\n  \n  if (*(int *)(DAT_004144e8 + 4) != 0) {\n    FUN_001ffac0(*(int *)(DAT_004144e8 + 4),0);\n  }\n  if (((param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2) == 0) &&\n     (*(int *)(param_5 + 0x244) == 0)) {\n    FUN_001a5350();\n  }\n  FUN_001e9d80(param_4,param_5);\n  iVar4 = *(int *)(DAT_004144e8 + 8);\n  if (iVar4 == 0) goto LAB_000dac36;\n  if (*(char *)(iVar4 + 0x18b1) != '\0') {\n    uVar3 = FUN_001a50c0(DAT_004144e8);\n    iVar4 = FUN_001e9100(param_4,uVar3,0);\n    if (iVar4 != 0) {\n      FUN_001e7b10(param_4,iVar4);\n    }\n    if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n    iVar4 = FUN_001e9100(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1f20),0);\n    if (iVar4 != 0) {\n      if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf2c;\n            goto LAB_000dacd3;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dacd3:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf2c;\n        }\n      }\n      else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf2c:\n        FUN_001e7b10(param_4,iVar4);\n      }\n    }\n    if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n    iVar4 = FUN_001e9100(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1538),0);\n    if (iVar4 != 0) {\n      if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf0d;\n            goto LAB_000dad2d;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dad2d:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf0d;\n        }\n      }\n      else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf0d:\n        FUN_001e7b10(param_4,iVar4);\n      }\n    }\n    FUN_001e95f0(param_4,param_5);\n    if (*(int *)(param_4 + 0x158) == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_000da200("../../gold/gold.cc",0x20b,"queue_middle_tasks",&__DT_PLTGOT);\n    }\n    FUN_00229ab0(*(int *)(param_4 + 0x158));\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }\n  if (*(int *)(iVar4 + 0x5934) == 0) {\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n  }\n  else {\n    FUN_000ded60(*(undefined4 *)(param_4 + 0x15c),param_3,param_4);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }\n  if ((((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)) &&\n      (*(char *)(param_5 + 0x1ce) == '\0')) ||\n     (piVar14 = (int *)*param_3, piVar14 == (int *)param_3[1])) {\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n  }\n  else {\n    do {\n      piVar16 = (int *)*piVar14;\n      piVar12 = piVar16;\n      if (piVar16[7] != 0) {\n        FUN_000d2820(piVar16[7] + 0x1c,param_2);\n        piVar12 = (int *)*piVar14;\n      }\n                    /* try { // try from 000da515 to 000da517 has its CatchHandler @ 000db0ab */\n      (**(code **)(*piVar12 + 0x24))(piVar12,param_4,param_5,0);\n      if (piVar16[7] != 0) {\n        FUN_000d3850(piVar16[7] + 0x1c,param_2);\n      }\n      piVar14 = piVar14 + 1;\n    } while ((int *)param_3[1] != piVar14);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }\n  if (*(int *)(iVar4 + 0x593c) != 0) {\n    FUN_001a6980(*(int *)(iVar4 + 0x593c));\n  }\n  FUN_00107c00(param_5);\n  iVar4 = *(int *)(DAT_004144e8 + 8);\n  if (iVar4 == 0) goto LAB_000dac36;\n  if (((*(int *)(iVar4 + 0x593c) != 0) && (*(char *)(param_5 + 0x1cd) != '\0')) &&\n     ((*(int *)(iVar4 + 0x36d8) == 0 &&\n      (*(undefined4 **)(param_5 + 0x130) != *(undefined4 **)(param_5 + 0x134))))) {\n    puVar6 = *(undefined4 **)(param_5 + 0x130);\n    do {\n      puVar7 = puVar6 + 1;\n      FUN_0015d7d0(*puVar6,param_5 + 0x1ec);\n      puVar6 = puVar7;\n    } while (*(undefined4 **)(param_5 + 0x134) != puVar7);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }\n  if ((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)) {\n    iVar4 = *(int *)(param_1 + 0x3e70);\n  }\n  else {\n    piVar14 = (int *)*param_3;\n    if (piVar14 != (int *)param_3[1]) {\n      do {\n        piVar12 = (int *)*piVar14;\n        piVar16 = (int *)piVar12[0x14];\n        iVar4 = *piVar16;\n        if (iVar4 != piVar16[1]) {\n          while( true ) {\n            iVar15 = *piVar12;\n            uVar11 = *(uint *)(iVar4 + 4);\n            if (*(code **)(iVar15 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11) {\n                    /* WARNING: Subroutine does not return */\n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4);\n            }\n            else {\n              uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);\n              uVar11 = *(uint *)(iVar4 + 4);\n              piVar12 = (int *)*piVar14;\n              iVar15 = *piVar12;\n            }\n            *(undefined4 *)(iVar4 + 0x14) = uVar3;\n            uVar1 = (**(code **)(iVar15 + 0x88))(piVar12,uVar11);\n            *(undefined1 *)(iVar4 + 0x18) = uVar1;\n            if (piVar16[1] == iVar4 + 0x1c) break;\n            piVar12 = (int *)*piVar14;\n            iVar4 = iVar4 + 0x1c;\n          }\n        }\n        piVar14 = piVar14 + 1;\n      } while ((int *)param_3[1] != piVar14);\n    }\n    iVar4 = *(int *)(param_1 + 0x3e70);\n  }\n  if ((iVar4 == 0) &&\n     (iVar4 = (param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2), iVar4 < 2)) {\n    iVar4 = 2;\n  }\n  FUN_002007c0(param_6,iVar4);\n  if (param_3[4] == param_3[3]) {\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n    if ((*(char *)(iVar4 + 0x1a25) != '\0') || (*(char *)(iVar4 + 0x2931) != '\0'))\n    goto LAB_000da6a6;\n    FUN_001a52b0(1);\n  }\n  else {\nLAB_000da6a6:\n    FUN_001a52b0(0);\n    if (*(char *)(param_1 + 0x5938) != '\0') {\n      if ((int *)param_3[3] == (int *)param_3[4]) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/gold.cc",0x265,"queue_middle_tasks",&__DT_PLTGOT);\n      }\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      uVar10 = gettext("cannot mix -static with dynamic object %s");\n      FUN_000d1330(uVar10,uVar3);\n    }\n    if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n    if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) != '\0') {\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      pcVar9 = "cannot mix -r with dynamic object %s";\nLAB_000db04c:\n      uVar10 = gettext(pcVar9);\n                    /* WARNING: Subroutine does not return */\n      FUN_000d12d0(uVar10,uVar3);\n    }\n    iVar4 = FUN_0014c1c0(param_1);\n    if (iVar4 != 0) {\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      pcVar9 = "cannot use non-ELF output format with dynamic object %s";\n      goto LAB_000db04c;\n    }\n  }\n  if (*(int *)(DAT_004144e8 + 8) == 0) {\nLAB_000dac36:\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) != '\0') {\n    piVar14 = (int *)*param_3;\n    piVar16 = (int *)param_3[1];\n    if (piVar16 != piVar14) {\n      bVar13 = *(byte *)(*piVar14 + 0x2c) >> 2 & 1;\n      if (piVar16 != piVar14 + 1) {\n        iVar4 = piVar14[1];\n        if ((*(byte *)(iVar4 + 0x2c) >> 2 & 1) == bVar13) {\n          piVar12 = piVar14 + 2;\n          do {\n            if (piVar16 == piVar12) goto LAB_000da77b;\n            iVar4 = *piVar12;\n            piVar12 = piVar12 + 1;\n          } while (bVar13 == (*(byte *)(iVar4 + 0x2c) >> 2 & 1));\n        }\n        uVar3 = *(undefined4 *)(iVar4 + 4);\n        uVar10 = *(undefined4 *)(*piVar14 + 4);\n        uVar8 = gettext("cannot mix split-stack \'%s\' and non-split-stack \'%s\' when using -r");\n                    /* WARNING: Subroutine does not return */\n        FUN_000d12d0(uVar8,uVar10,uVar3);\n      }\n    }\n  }\nLAB_000da77b:\n  cVar2 = FUN_001a5190(DAT_004144e8);\n  if (cVar2 != '\0') {\n    piVar14 = *(int **)(param_5 + 0x244);\n    (**(code **)(*piVar14 + 0x18))(piVar14,param_4,param_5);\n    (**(code **)(*piVar14 + 0x1c))(piVar14,param_4);\n  }\n  if ((*(int *)(DAT_004144e8 + 8) != 0) && ((*(byte *)(DAT_004144e8 + 0x14) & 2) != 0)) {\n    FUN_001d9e80(*(undefined4 *)(param_5 + 4),*(undefined4 *)PTR_stderr_00413fbc);\n  }\n  FUN_00122e00(param_3);\n  if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n  if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x4c2d) == '\0') {\n    FUN_001dc4a0(*(int *)(param_5 + 4) + 0x68,param_4);\n  }\n  FUN_001121d0(param_5);\n  FUN_001d9480(*(undefined4 *)(param_5 + 4),param_5);\n  FUN_001112f0(param_5,param_4);\n  FUN_001d94d0(*(undefined4 *)(param_5 + 4),param_4);\n  piVar14 = *(int **)(DAT_004144e8 + 0xc);\n  if (piVar14 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../gold/parameters.h",0x69,"target",extraout_ECX);\n  }\n  FUN_0010c300(param_5,piVar14);\n  if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n  if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) == '\0') {\n    FUN_0020afd0(param_4,param_5);\n    FUN_0010ee10(param_5,param_4);\n    if (*(code **)(*piVar14 + 0x84) != FUN_000a4200) {\n      (**(code **)(*piVar14 + 0x84))(piVar14,param_4,param_5);\n    }\n  }\n  FUN_001081d0(param_5,param_4);\n  iVar4 = *(int *)(DAT_004144e8 + 8);\n  if (iVar4 == 0) goto LAB_000dac36;\n  local_20 = (undefined1 *)0x0;\n  if (*(char *)(iVar4 + 0xb51) != '\0') {\n    local_20 = (undefined1 *)FUN_00246670(0x14);\n    *local_20 = 1;\n    *(undefined4 *)(local_20 + 8) = 0;\n    *(undefined4 *)(local_20 + 0xc) = 0;\n    *(undefined4 *)(local_20 + 0x10) = 0;\n    *(undefined4 *)(local_20 + 4) = 1;\n    puVar6 = (undefined4 *)FUN_00246670(0x34);\n    puVar6[1] = 0;\n    puVar6[9] = param_4;\n    puVar6[2] = puVar6 + 4;\n    puVar6[10] = param_5;\n    puVar6[3] = 0;\n    *(undefined1 *)(puVar6 + 4) = 0;\n    *(undefined1 *)(puVar6 + 8) = 0;\n    *puVar6 = &PTR_FUN_00408d4c;\n    puVar6[0xb] = param_7;\n    puVar6[0xc] = local_20;\n    FUN_002000e0(param_6,puVar6);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }\n  piVar16 = (int *)*param_3;\n  if ((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)) {\n    if (piVar16 != (int *)param_3[1]) {\n      do {\n        piVar12 = piVar16 + 1;\n        puVar5 = (undefined1 *)FUN_00246670(0x14);\n        iVar4 = *piVar16;\n        *puVar5 = 1;\n        *(undefined4 *)(puVar5 + 8) = 0;\n        *(undefined4 *)(puVar5 + 0xc) = 0;\n        *(undefined4 *)(puVar5 + 0x10) = 0;\n        *(undefined4 *)(puVar5 + 4) = 1;\n        puVar6 = (undefined4 *)FUN_00246670(0x38);\n        puVar6[0xc] = local_20;\n        *puVar6 = &PTR_FUN_00408390;\n        puVar6[2] = puVar6 + 4;\n        puVar6[9] = param_4;\n        puVar6[1] = 0;\n        puVar6[10] = param_5;\n        puVar6[3] = 0;\n        *(undefined1 *)(puVar6 + 4) = 0;\n        *(undefined1 *)(puVar6 + 8) = 0;\n        puVar6[0xb] = iVar4;\n        puVar6[0xd] = puVar5;\n        FUN_002000e0(param_6,puVar6);\n        local_20 = puVar5;\n        piVar16 = piVar12;\n      } while ((int *)param_3[1] != piVar12);\n      goto LAB_000da9b3;\n    }\n  }\n  else if (piVar16 != (int *)param_3[1]) {\n    do {\n      piVar12 = piVar16 + 1;\n      puVar5 = (undefined1 *)FUN_00246670(0x14);\n      iVar4 = *piVar16;\n      *puVar5 = 1;\n      *(undefined4 *)(puVar5 + 8) = 0;\n      uVar3 = *(undefined4 *)(iVar4 + 0x50);\n      *(undefined4 *)(puVar5 + 0xc) = 0;\n      *(undefined4 *)(puVar5 + 0x10) = 0;\n      *(undefined4 *)(puVar5 + 4) = 1;\n      puVar6 = (undefined4 *)FUN_00246670(0x3c);\n      puVar6[0xd] = local_20;\n      *puVar6 = &PTR_FUN_004083d0;\n      puVar6[1] = 0;\n      puVar6[9] = param_4;\n      puVar6[2] = puVar6 + 4;\n      puVar6[10] = param_5;\n      puVar6[3] = 0;\n      *(undefined1 *)(puVar6 + 4) = 0;\n      *(undefined1 *)(puVar6 + 8) = 0;\n      puVar6[0xb] = iVar4;\n      puVar6[0xc] = uVar3;\n      puVar6[0xe] = puVar5;\n      FUN_002000e0(param_6,puVar6);\n      local_20 = puVar5;\n      piVar16 = piVar12;\n    } while ((int *)param_3[1] != piVar12);\n    goto LAB_000da9b3;\n  }\n  puVar5 = local_20;\n  if (local_20 == (undefined1 *)0x0) {\n    puVar5 = (undefined1 *)FUN_00246670(0x14);\n    *puVar5 = 1;\n    *(undefined4 *)(puVar5 + 4) = 0;\n    *(undefined4 *)(puVar5 + 8) = 0;\n    *(undefined4 *)(puVar5 + 0xc) = 0;\n    *(undefined4 *)(puVar5 + 0x10) = 0;\n  }\nLAB_000da9b3:\n  puVar6 = (undefined4 *)FUN_00246670(0x1c);\n  *puVar6 = &PTR_FUN_00406ca0;\n  puVar6[1] = param_1;\n  puVar6[2] = param_3;\n  puVar6[3] = param_4;\n  puVar6[4] = piVar14;\n  puVar6[5] = param_5;\n  puVar6[6] = param_7;\n  puVar7 = (undefined4 *)FUN_00246670(0x30);\n  puVar7[1] = 0;\n  puVar7[2] = puVar7 + 4;\n  *puVar7 = &PTR_FUN_004066fc;\n  puVar7[3] = 0;\n  *(undefined1 *)(puVar7 + 4) = 0;\n  *(undefined1 *)(puVar7 + 8) = 0;\n  puVar7[9] = puVar6;\n  puVar7[10] = puVar5;\n  puVar7[0xb] = "Task_function Layout_task_runner";\n  FUN_002000e0(param_6,puVar7);\n  return;\n}" { (declaration "undefined1 uVar1;" type_identifier identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined1 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX;" type_identifier identifier ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "byte bVar13;" type_identifier identifier ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "int *piVar16;" primitive_type (pointer_declarator "*piVar16" * identifier) ;) (declaration "undefined1 *local_20;" type_identifier (pointer_declarator "*local_20" * identifier) ;) (if_statement "if (*(int *)(DAT_004144e8 + 4) != 0) {\n    FUN_001ffac0(*(int *)(DAT_004144e8 + 4),0);\n  }" if (parenthesized_expression "(*(int *)(DAT_004144e8 + 4) != 0)" ( (binary_expression "*(int *)(DAT_004144e8 + 4) != 0" (pointer_expression "*(int *)(DAT_004144e8 + 4)" * (cast_expression "(int *)(DAT_004144e8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 4)" ( (binary_expression "DAT_004144e8 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    FUN_001ffac0(*(int *)(DAT_004144e8 + 4),0);\n  }" { (expression_statement "FUN_001ffac0(*(int *)(DAT_004144e8 + 4),0);" (call_expression "FUN_001ffac0(*(int *)(DAT_004144e8 + 4),0)" identifier (argument_list "(*(int *)(DAT_004144e8 + 4),0)" ( (pointer_expression "*(int *)(DAT_004144e8 + 4)" * (cast_expression "(int *)(DAT_004144e8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 4)" ( (binary_expression "DAT_004144e8 + 4" identifier + number_literal) )))) , number_literal ))) ;) })) (if_statement "if (((param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2) == 0) &&\n     (*(int *)(param_5 + 0x244) == 0)) {\n    FUN_001a5350();\n  }" if (parenthesized_expression "(((param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2) == 0) &&\n     (*(int *)(param_5 + 0x244) == 0))" ( (binary_expression "((param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2) == 0) &&\n     (*(int *)(param_5 + 0x244) == 0)" (parenthesized_expression "((param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2) == 0)" ( (binary_expression "(param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2) == 0" (binary_expression "(param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2)" (parenthesized_expression "(param_3[4] - param_3[3] >> 2)" ( (binary_expression "param_3[4] - param_3[3] >> 2" (binary_expression "param_3[4] - param_3[3]" (subscript_expression "param_3[4]" identifier [ number_literal ]) - (subscript_expression "param_3[3]" identifier [ number_literal ])) >> number_literal) )) + (parenthesized_expression "(param_3[1] - *param_3 >> 2)" ( (binary_expression "param_3[1] - *param_3 >> 2" (binary_expression "param_3[1] - *param_3" (subscript_expression "param_3[1]" identifier [ number_literal ]) - (pointer_expression "*param_3" * identifier)) >> number_literal) ))) == number_literal) )) && (parenthesized_expression "(*(int *)(param_5 + 0x244) == 0)" ( (binary_expression "*(int *)(param_5 + 0x244) == 0" (pointer_expression "*(int *)(param_5 + 0x244)" * (cast_expression "(int *)(param_5 + 0x244)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x244)" ( (binary_expression "param_5 + 0x244" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n    FUN_001a5350();\n  }" { (expression_statement "FUN_001a5350();" (call_expression "FUN_001a5350()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_001e9d80(param_4,param_5);" (call_expression "FUN_001e9d80(param_4,param_5)" identifier (argument_list "(param_4,param_5)" ( identifier , identifier ))) ;) (expression_statement "iVar4 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar4 = *(int *)(DAT_004144e8 + 8)" identifier = (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar4 == 0) goto LAB_000dac36;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000dac36;" goto statement_identifier ;)) (if_statement "if (*(char *)(iVar4 + 0x18b1) != '\0') {\n    uVar3 = FUN_001a50c0(DAT_004144e8);\n    iVar4 = FUN_001e9100(param_4,uVar3,0);\n    if (iVar4 != 0) {\n      FUN_001e7b10(param_4,iVar4);\n    }\n    if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n    iVar4 = FUN_001e9100(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1f20),0);\n    if (iVar4 != 0) {\n      if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf2c;\n            goto LAB_000dacd3;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dacd3:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf2c;\n        }\n      }\n      else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf2c:\n        FUN_001e7b10(param_4,iVar4);\n      }\n    }\n    if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n    iVar4 = FUN_001e9100(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1538),0);\n    if (iVar4 != 0) {\n      if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf0d;\n            goto LAB_000dad2d;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dad2d:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf0d;\n        }\n      }\n      else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf0d:\n        FUN_001e7b10(param_4,iVar4);\n      }\n    }\n    FUN_001e95f0(param_4,param_5);\n    if (*(int *)(param_4 + 0x158) == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_000da200("../../gold/gold.cc",0x20b,"queue_middle_tasks",&__DT_PLTGOT);\n    }\n    FUN_00229ab0(*(int *)(param_4 + 0x158));\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }" if (parenthesized_expression "(*(char *)(iVar4 + 0x18b1) != '\0')" ( (binary_expression "*(char *)(iVar4 + 0x18b1) != '\0'" (pointer_expression "*(char *)(iVar4 + 0x18b1)" * (cast_expression "(char *)(iVar4 + 0x18b1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18b1)" ( (binary_expression "iVar4 + 0x18b1" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    uVar3 = FUN_001a50c0(DAT_004144e8);\n    iVar4 = FUN_001e9100(param_4,uVar3,0);\n    if (iVar4 != 0) {\n      FUN_001e7b10(param_4,iVar4);\n    }\n    if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n    iVar4 = FUN_001e9100(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1f20),0);\n    if (iVar4 != 0) {\n      if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf2c;\n            goto LAB_000dacd3;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dacd3:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf2c;\n        }\n      }\n      else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf2c:\n        FUN_001e7b10(param_4,iVar4);\n      }\n    }\n    if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n    iVar4 = FUN_001e9100(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1538),0);\n    if (iVar4 != 0) {\n      if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf0d;\n            goto LAB_000dad2d;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dad2d:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf0d;\n        }\n      }\n      else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf0d:\n        FUN_001e7b10(param_4,iVar4);\n      }\n    }\n    FUN_001e95f0(param_4,param_5);\n    if (*(int *)(param_4 + 0x158) == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_000da200("../../gold/gold.cc",0x20b,"queue_middle_tasks",&__DT_PLTGOT);\n    }\n    FUN_00229ab0(*(int *)(param_4 + 0x158));\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }" { (expression_statement "uVar3 = FUN_001a50c0(DAT_004144e8);" (assignment_expression "uVar3 = FUN_001a50c0(DAT_004144e8)" identifier = (call_expression "FUN_001a50c0(DAT_004144e8)" identifier (argument_list "(DAT_004144e8)" ( identifier )))) ;) (expression_statement "iVar4 = FUN_001e9100(param_4,uVar3,0);" (assignment_expression "iVar4 = FUN_001e9100(param_4,uVar3,0)" identifier = (call_expression "FUN_001e9100(param_4,uVar3,0)" identifier (argument_list "(param_4,uVar3,0)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (iVar4 != 0) {\n      FUN_001e7b10(param_4,iVar4);\n    }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_001e7b10(param_4,iVar4);\n    }" { (expression_statement "FUN_001e7b10(param_4,iVar4);" (call_expression "FUN_001e7b10(param_4,iVar4)" identifier (argument_list "(param_4,iVar4)" ( identifier , identifier ))) ;) })) (if_statement "if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;" if (parenthesized_expression "(*(int *)(DAT_004144e8 + 8) == 0)" ( (binary_expression "*(int *)(DAT_004144e8 + 8) == 0" (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_000dac36;" goto statement_identifier ;)) (expression_statement "iVar4 = FUN_001e9100(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1f20),0);" (assignment_expression "iVar4 = FUN_001e9100(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1f20),0)" identifier = (call_expression "FUN_001e9100(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1f20),0)" identifier (argument_list "(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1f20),0)" ( identifier , (pointer_expression "*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1f20)" * (cast_expression "(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1f20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_004144e8 + 8) + 0x1f20)" ( (binary_expression "*(int *)(DAT_004144e8 + 8) + 0x1f20" (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) )))) + number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar4 != 0) {\n      if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf2c;\n            goto LAB_000dacd3;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dacd3:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf2c;\n        }\n      }\n      else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf2c:\n        FUN_001e7b10(param_4,iVar4);\n      }\n    }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf2c;\n            goto LAB_000dacd3;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dacd3:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf2c;\n        }\n      }\n      else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf2c:\n        FUN_001e7b10(param_4,iVar4);\n      }\n    }" { (if_statement "if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf2c;\n            goto LAB_000dacd3;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dacd3:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf2c;\n        }\n      }\n      else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf2c:\n        FUN_001e7b10(param_4,iVar4);\n      }" if (parenthesized_expression "((*(byte *)(iVar4 + 0x2a) & 7) == 0)" ( (binary_expression "(*(byte *)(iVar4 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)(iVar4 + 0x2a) & 7)" ( (binary_expression "*(byte *)(iVar4 + 0x2a) & 7" (pointer_expression "*(byte *)(iVar4 + 0x2a)" * (cast_expression "(byte *)(iVar4 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2a)" ( (binary_expression "iVar4 + 0x2a" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf2c;\n            goto LAB_000dacd3;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dacd3:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf2c;\n        }\n      }" { (if_statement "if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf2c;\n            goto LAB_000dacd3;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dacd3:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf2c;\n        }" if (parenthesized_expression "((*(byte *)(iVar4 + 0x2b) & 0x20) == 0)" ( (binary_expression "(*(byte *)(iVar4 + 0x2b) & 0x20) == 0" (parenthesized_expression "(*(byte *)(iVar4 + 0x2b) & 0x20)" ( (binary_expression "*(byte *)(iVar4 + 0x2b) & 0x20" (pointer_expression "*(byte *)(iVar4 + 0x2b)" * (cast_expression "(byte *)(iVar4 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2b)" ( (binary_expression "iVar4 + 0x2b" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf2c;\n            goto LAB_000dacd3;\n          }\n        }" { (expression_statement "cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));" (assignment_expression "cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc))" identifier = (call_expression "FUN_001e6ac0(*(int *)(iVar4 + 0xc))" identifier (argument_list "(*(int *)(iVar4 + 0xc))" ( (pointer_expression "*(int *)(iVar4 + 0xc)" * (cast_expression "(int *)(iVar4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) )))) ;) (if_statement "if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf2c;\n            goto LAB_000dacd3;\n          }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf2c;\n            goto LAB_000dacd3;\n          }" { (if_statement "if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf2c;" if (parenthesized_expression "((*(byte *)(iVar4 + 0x2a) & 7) != 0)" ( (binary_expression "(*(byte *)(iVar4 + 0x2a) & 7) != 0" (parenthesized_expression "(*(byte *)(iVar4 + 0x2a) & 7)" ( (binary_expression "*(byte *)(iVar4 + 0x2a) & 7" (pointer_expression "*(byte *)(iVar4 + 0x2a)" * (cast_expression "(byte *)(iVar4 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2a)" ( (binary_expression "iVar4 + 0x2a" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000daf2c;" goto statement_identifier ;)) (goto_statement "goto LAB_000dacd3;" goto statement_identifier ;) })) }) (else_clause "else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dacd3:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf2c;\n        }" else (if_statement "if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dacd3:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf2c;\n        }" if (parenthesized_expression "(*(int *)(iVar4 + 0xc) != 0)" ( (binary_expression "*(int *)(iVar4 + 0xc) != 0" (pointer_expression "*(int *)(iVar4 + 0xc)" * (cast_expression "(int *)(iVar4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\nLAB_000dacd3:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf2c;\n        }" { (labeled_statement "LAB_000dacd3:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf2c;" statement_identifier : (if_statement "if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf2c;" if (parenthesized_expression "((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0)" ( (binary_expression "(*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0" (parenthesized_expression "(*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1)" ( (binary_expression "*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1" (pointer_expression "*(byte *)(*(int *)(iVar4 + 8) + 0x2c)" * (cast_expression "(byte *)(*(int *)(iVar4 + 8) + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar4 + 8) + 0x2c)" ( (binary_expression "*(int *)(iVar4 + 8) + 0x2c" (pointer_expression "*(int *)(iVar4 + 8)" * (cast_expression "(int *)(iVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000daf2c;" goto statement_identifier ;))) })))) }) (else_clause "else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf2c:\n        FUN_001e7b10(param_4,iVar4);\n      }" else (if_statement "if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf2c:\n        FUN_001e7b10(param_4,iVar4);\n      }" if (parenthesized_expression "((*(byte *)(iVar4 + 0x2a) & 7) != 4)" ( (binary_expression "(*(byte *)(iVar4 + 0x2a) & 7) != 4" (parenthesized_expression "(*(byte *)(iVar4 + 0x2a) & 7)" ( (binary_expression "*(byte *)(iVar4 + 0x2a) & 7" (pointer_expression "*(byte *)(iVar4 + 0x2a)" * (cast_expression "(byte *)(iVar4 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2a)" ( (binary_expression "iVar4 + 0x2a" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_000daf2c:\n        FUN_001e7b10(param_4,iVar4);\n      }" { (labeled_statement "LAB_000daf2c:\n        FUN_001e7b10(param_4,iVar4);" statement_identifier : (expression_statement "FUN_001e7b10(param_4,iVar4);" (call_expression "FUN_001e7b10(param_4,iVar4)" identifier (argument_list "(param_4,iVar4)" ( identifier , identifier ))) ;)) })))) })) (if_statement "if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;" if (parenthesized_expression "(*(int *)(DAT_004144e8 + 8) == 0)" ( (binary_expression "*(int *)(DAT_004144e8 + 8) == 0" (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_000dac36;" goto statement_identifier ;)) (expression_statement "iVar4 = FUN_001e9100(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1538),0);" (assignment_expression "iVar4 = FUN_001e9100(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1538),0)" identifier = (call_expression "FUN_001e9100(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1538),0)" identifier (argument_list "(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1538),0)" ( identifier , (pointer_expression "*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1538)" * (cast_expression "(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1538)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_004144e8 + 8) + 0x1538)" ( (binary_expression "*(int *)(DAT_004144e8 + 8) + 0x1538" (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) )))) + number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar4 != 0) {\n      if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf0d;\n            goto LAB_000dad2d;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dad2d:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf0d;\n        }\n      }\n      else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf0d:\n        FUN_001e7b10(param_4,iVar4);\n      }\n    }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf0d;\n            goto LAB_000dad2d;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dad2d:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf0d;\n        }\n      }\n      else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf0d:\n        FUN_001e7b10(param_4,iVar4);\n      }\n    }" { (if_statement "if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf0d;\n            goto LAB_000dad2d;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dad2d:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf0d;\n        }\n      }\n      else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf0d:\n        FUN_001e7b10(param_4,iVar4);\n      }" if (parenthesized_expression "((*(byte *)(iVar4 + 0x2a) & 7) == 0)" ( (binary_expression "(*(byte *)(iVar4 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)(iVar4 + 0x2a) & 7)" ( (binary_expression "*(byte *)(iVar4 + 0x2a) & 7" (pointer_expression "*(byte *)(iVar4 + 0x2a)" * (cast_expression "(byte *)(iVar4 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2a)" ( (binary_expression "iVar4 + 0x2a" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf0d;\n            goto LAB_000dad2d;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dad2d:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf0d;\n        }\n      }" { (if_statement "if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf0d;\n            goto LAB_000dad2d;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dad2d:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf0d;\n        }" if (parenthesized_expression "((*(byte *)(iVar4 + 0x2b) & 0x20) == 0)" ( (binary_expression "(*(byte *)(iVar4 + 0x2b) & 0x20) == 0" (parenthesized_expression "(*(byte *)(iVar4 + 0x2b) & 0x20)" ( (binary_expression "*(byte *)(iVar4 + 0x2b) & 0x20" (pointer_expression "*(byte *)(iVar4 + 0x2b)" * (cast_expression "(byte *)(iVar4 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2b)" ( (binary_expression "iVar4 + 0x2b" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf0d;\n            goto LAB_000dad2d;\n          }\n        }" { (expression_statement "cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));" (assignment_expression "cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc))" identifier = (call_expression "FUN_001e6ac0(*(int *)(iVar4 + 0xc))" identifier (argument_list "(*(int *)(iVar4 + 0xc))" ( (pointer_expression "*(int *)(iVar4 + 0xc)" * (cast_expression "(int *)(iVar4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) )))) ;) (if_statement "if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf0d;\n            goto LAB_000dad2d;\n          }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf0d;\n            goto LAB_000dad2d;\n          }" { (if_statement "if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf0d;" if (parenthesized_expression "((*(byte *)(iVar4 + 0x2a) & 7) != 0)" ( (binary_expression "(*(byte *)(iVar4 + 0x2a) & 7) != 0" (parenthesized_expression "(*(byte *)(iVar4 + 0x2a) & 7)" ( (binary_expression "*(byte *)(iVar4 + 0x2a) & 7" (pointer_expression "*(byte *)(iVar4 + 0x2a)" * (cast_expression "(byte *)(iVar4 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2a)" ( (binary_expression "iVar4 + 0x2a" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000daf0d;" goto statement_identifier ;)) (goto_statement "goto LAB_000dad2d;" goto statement_identifier ;) })) }) (else_clause "else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dad2d:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf0d;\n        }" else (if_statement "if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dad2d:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf0d;\n        }" if (parenthesized_expression "(*(int *)(iVar4 + 0xc) != 0)" ( (binary_expression "*(int *)(iVar4 + 0xc) != 0" (pointer_expression "*(int *)(iVar4 + 0xc)" * (cast_expression "(int *)(iVar4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\nLAB_000dad2d:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf0d;\n        }" { (labeled_statement "LAB_000dad2d:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf0d;" statement_identifier : (if_statement "if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf0d;" if (parenthesized_expression "((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0)" ( (binary_expression "(*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0" (parenthesized_expression "(*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1)" ( (binary_expression "*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1" (pointer_expression "*(byte *)(*(int *)(iVar4 + 8) + 0x2c)" * (cast_expression "(byte *)(*(int *)(iVar4 + 8) + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar4 + 8) + 0x2c)" ( (binary_expression "*(int *)(iVar4 + 8) + 0x2c" (pointer_expression "*(int *)(iVar4 + 8)" * (cast_expression "(int *)(iVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000daf0d;" goto statement_identifier ;))) })))) }) (else_clause "else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf0d:\n        FUN_001e7b10(param_4,iVar4);\n      }" else (if_statement "if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf0d:\n        FUN_001e7b10(param_4,iVar4);\n      }" if (parenthesized_expression "((*(byte *)(iVar4 + 0x2a) & 7) != 4)" ( (binary_expression "(*(byte *)(iVar4 + 0x2a) & 7) != 4" (parenthesized_expression "(*(byte *)(iVar4 + 0x2a) & 7)" ( (binary_expression "*(byte *)(iVar4 + 0x2a) & 7" (pointer_expression "*(byte *)(iVar4 + 0x2a)" * (cast_expression "(byte *)(iVar4 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2a)" ( (binary_expression "iVar4 + 0x2a" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_000daf0d:\n        FUN_001e7b10(param_4,iVar4);\n      }" { (labeled_statement "LAB_000daf0d:\n        FUN_001e7b10(param_4,iVar4);" statement_identifier : (expression_statement "FUN_001e7b10(param_4,iVar4);" (call_expression "FUN_001e7b10(param_4,iVar4)" identifier (argument_list "(param_4,iVar4)" ( identifier , identifier ))) ;)) })))) })) (expression_statement "FUN_001e95f0(param_4,param_5);" (call_expression "FUN_001e95f0(param_4,param_5)" identifier (argument_list "(param_4,param_5)" ( identifier , identifier ))) ;) (if_statement "if (*(int *)(param_4 + 0x158) == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_000da200("../../gold/gold.cc",0x20b,"queue_middle_tasks",&__DT_PLTGOT);\n    }" if (parenthesized_expression "(*(int *)(param_4 + 0x158) == 0)" ( (binary_expression "*(int *)(param_4 + 0x158) == 0" (pointer_expression "*(int *)(param_4 + 0x158)" * (cast_expression "(int *)(param_4 + 0x158)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x158)" ( (binary_expression "param_4 + 0x158" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      FUN_000da200("../../gold/gold.cc",0x20b,"queue_middle_tasks",&__DT_PLTGOT);\n    }" { comment (expression_statement "FUN_000da200("../../gold/gold.cc",0x20b,"queue_middle_tasks",&__DT_PLTGOT);" (call_expression "FUN_000da200("../../gold/gold.cc",0x20b,"queue_middle_tasks",&__DT_PLTGOT)" identifier (argument_list "("../../gold/gold.cc",0x20b,"queue_middle_tasks",&__DT_PLTGOT)" ( (string_literal ""../../gold/gold.cc"" " string_content ") , number_literal , (string_literal ""queue_middle_tasks"" " string_content ") , (pointer_expression "&__DT_PLTGOT" & identifier) ))) ;) })) (expression_statement "FUN_00229ab0(*(int *)(param_4 + 0x158));" (call_expression "FUN_00229ab0(*(int *)(param_4 + 0x158))" identifier (argument_list "(*(int *)(param_4 + 0x158))" ( (pointer_expression "*(int *)(param_4 + 0x158)" * (cast_expression "(int *)(param_4 + 0x158)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x158)" ( (binary_expression "param_4 + 0x158" identifier + number_literal) )))) ))) ;) (expression_statement "iVar4 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar4 = *(int *)(DAT_004144e8 + 8)" identifier = (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar4 == 0) goto LAB_000dac36;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000dac36;" goto statement_identifier ;)) })) (if_statement "if (*(int *)(iVar4 + 0x5934) == 0) {\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n  }\n  else {\n    FUN_000ded60(*(undefined4 *)(param_4 + 0x15c),param_3,param_4);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }" if (parenthesized_expression "(*(int *)(iVar4 + 0x5934) == 0)" ( (binary_expression "*(int *)(iVar4 + 0x5934) == 0" (pointer_expression "*(int *)(iVar4 + 0x5934)" * (cast_expression "(int *)(iVar4 + 0x5934)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x5934)" ( (binary_expression "iVar4 + 0x5934" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n  }" { (expression_statement "iVar4 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar4 = *(int *)(DAT_004144e8 + 8)" identifier = (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    FUN_000ded60(*(undefined4 *)(param_4 + 0x15c),param_3,param_4);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }" else (compound_statement "{\n    FUN_000ded60(*(undefined4 *)(param_4 + 0x15c),param_3,param_4);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }" { (expression_statement "FUN_000ded60(*(undefined4 *)(param_4 + 0x15c),param_3,param_4);" (call_expression "FUN_000ded60(*(undefined4 *)(param_4 + 0x15c),param_3,param_4)" identifier (argument_list "(*(undefined4 *)(param_4 + 0x15c),param_3,param_4)" ( (pointer_expression "*(undefined4 *)(param_4 + 0x15c)" * (cast_expression "(undefined4 *)(param_4 + 0x15c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x15c)" ( (binary_expression "param_4 + 0x15c" identifier + number_literal) )))) , identifier , identifier ))) ;) (expression_statement "iVar4 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar4 = *(int *)(DAT_004144e8 + 8)" identifier = (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar4 == 0) goto LAB_000dac36;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000dac36;" goto statement_identifier ;)) }))) (if_statement "if ((((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)) &&\n      (*(char *)(param_5 + 0x1ce) == '\0')) ||\n     (piVar14 = (int *)*param_3, piVar14 == (int *)param_3[1])) {\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n  }\n  else {\n    do {\n      piVar16 = (int *)*piVar14;\n      piVar12 = piVar16;\n      if (piVar16[7] != 0) {\n        FUN_000d2820(piVar16[7] + 0x1c,param_2);\n        piVar12 = (int *)*piVar14;\n      }\n                    /* try { // try from 000da515 to 000da517 has its CatchHandler @ 000db0ab */\n      (**(code **)(*piVar12 + 0x24))(piVar12,param_4,param_5,0);\n      if (piVar16[7] != 0) {\n        FUN_000d3850(piVar16[7] + 0x1c,param_2);\n      }\n      piVar14 = piVar14 + 1;\n    } while ((int *)param_3[1] != piVar14);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }" if (parenthesized_expression "((((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)) &&\n      (*(char *)(param_5 + 0x1ce) == '\0')) ||\n     (piVar14 = (int *)*param_3, piVar14 == (int *)param_3[1]))" ( (binary_expression "(((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)) &&\n      (*(char *)(param_5 + 0x1ce) == '\0')) ||\n     (piVar14 = (int *)*param_3, piVar14 == (int *)param_3[1])" (parenthesized_expression "(((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)) &&\n      (*(char *)(param_5 + 0x1ce) == '\0'))" ( (binary_expression "((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)) &&\n      (*(char *)(param_5 + 0x1ce) == '\0')" (parenthesized_expression "((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0))" ( (binary_expression "(*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)" (parenthesized_expression "(*(char *)(iVar4 + 0x18b1) == '\0')" ( (binary_expression "*(char *)(iVar4 + 0x18b1) == '\0'" (pointer_expression "*(char *)(iVar4 + 0x18b1)" * (cast_expression "(char *)(iVar4 + 0x18b1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18b1)" ( (binary_expression "iVar4 + 0x18b1" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(int *)(iVar4 + 0x5934) == 0)" ( (binary_expression "*(int *)(iVar4 + 0x5934) == 0" (pointer_expression "*(int *)(iVar4 + 0x5934)" * (cast_expression "(int *)(iVar4 + 0x5934)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x5934)" ( (binary_expression "iVar4 + 0x5934" identifier + number_literal) )))) == number_literal) ))) )) && (parenthesized_expression "(*(char *)(param_5 + 0x1ce) == '\0')" ( (binary_expression "*(char *)(param_5 + 0x1ce) == '\0'" (pointer_expression "*(char *)(param_5 + 0x1ce)" * (cast_expression "(char *)(param_5 + 0x1ce)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x1ce)" ( (binary_expression "param_5 + 0x1ce" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) || (parenthesized_expression "(piVar14 = (int *)*param_3, piVar14 == (int *)param_3[1])" ( (comma_expression "piVar14 = (int *)*param_3, piVar14 == (int *)param_3[1]" (assignment_expression "piVar14 = (int *)*param_3" identifier = (cast_expression "(int *)*param_3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_3" * identifier))) , (binary_expression "piVar14 == (int *)param_3[1]" identifier == (cast_expression "(int *)param_3[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[1]" identifier [ number_literal ])))) ))) )) (compound_statement "{\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n  }" { (expression_statement "iVar4 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar4 = *(int *)(DAT_004144e8 + 8)" identifier = (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    do {\n      piVar16 = (int *)*piVar14;\n      piVar12 = piVar16;\n      if (piVar16[7] != 0) {\n        FUN_000d2820(piVar16[7] + 0x1c,param_2);\n        piVar12 = (int *)*piVar14;\n      }\n                    /* try { // try from 000da515 to 000da517 has its CatchHandler @ 000db0ab */\n      (**(code **)(*piVar12 + 0x24))(piVar12,param_4,param_5,0);\n      if (piVar16[7] != 0) {\n        FUN_000d3850(piVar16[7] + 0x1c,param_2);\n      }\n      piVar14 = piVar14 + 1;\n    } while ((int *)param_3[1] != piVar14);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }" else (compound_statement "{\n    do {\n      piVar16 = (int *)*piVar14;\n      piVar12 = piVar16;\n      if (piVar16[7] != 0) {\n        FUN_000d2820(piVar16[7] + 0x1c,param_2);\n        piVar12 = (int *)*piVar14;\n      }\n                    /* try { // try from 000da515 to 000da517 has its CatchHandler @ 000db0ab */\n      (**(code **)(*piVar12 + 0x24))(piVar12,param_4,param_5,0);\n      if (piVar16[7] != 0) {\n        FUN_000d3850(piVar16[7] + 0x1c,param_2);\n      }\n      piVar14 = piVar14 + 1;\n    } while ((int *)param_3[1] != piVar14);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }" { (do_statement "do {\n      piVar16 = (int *)*piVar14;\n      piVar12 = piVar16;\n      if (piVar16[7] != 0) {\n        FUN_000d2820(piVar16[7] + 0x1c,param_2);\n        piVar12 = (int *)*piVar14;\n      }\n                    /* try { // try from 000da515 to 000da517 has its CatchHandler @ 000db0ab */\n      (**(code **)(*piVar12 + 0x24))(piVar12,param_4,param_5,0);\n      if (piVar16[7] != 0) {\n        FUN_000d3850(piVar16[7] + 0x1c,param_2);\n      }\n      piVar14 = piVar14 + 1;\n    } while ((int *)param_3[1] != piVar14);" do (compound_statement "{\n      piVar16 = (int *)*piVar14;\n      piVar12 = piVar16;\n      if (piVar16[7] != 0) {\n        FUN_000d2820(piVar16[7] + 0x1c,param_2);\n        piVar12 = (int *)*piVar14;\n      }\n                    /* try { // try from 000da515 to 000da517 has its CatchHandler @ 000db0ab */\n      (**(code **)(*piVar12 + 0x24))(piVar12,param_4,param_5,0);\n      if (piVar16[7] != 0) {\n        FUN_000d3850(piVar16[7] + 0x1c,param_2);\n      }\n      piVar14 = piVar14 + 1;\n    }" { (expression_statement "piVar16 = (int *)*piVar14;" (assignment_expression "piVar16 = (int *)*piVar14" identifier = (cast_expression "(int *)*piVar14" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar14" * identifier))) ;) (expression_statement "piVar12 = piVar16;" (assignment_expression "piVar12 = piVar16" identifier = identifier) ;) (if_statement "if (piVar16[7] != 0) {\n        FUN_000d2820(piVar16[7] + 0x1c,param_2);\n        piVar12 = (int *)*piVar14;\n      }" if (parenthesized_expression "(piVar16[7] != 0)" ( (binary_expression "piVar16[7] != 0" (subscript_expression "piVar16[7]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        FUN_000d2820(piVar16[7] + 0x1c,param_2);\n        piVar12 = (int *)*piVar14;\n      }" { (expression_statement "FUN_000d2820(piVar16[7] + 0x1c,param_2);" (call_expression "FUN_000d2820(piVar16[7] + 0x1c,param_2)" identifier (argument_list "(piVar16[7] + 0x1c,param_2)" ( (binary_expression "piVar16[7] + 0x1c" (subscript_expression "piVar16[7]" identifier [ number_literal ]) + number_literal) , identifier ))) ;) (expression_statement "piVar12 = (int *)*piVar14;" (assignment_expression "piVar12 = (int *)*piVar14" identifier = (cast_expression "(int *)*piVar14" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar14" * identifier))) ;) })) comment (expression_statement "(**(code **)(*piVar12 + 0x24))(piVar12,param_4,param_5,0);" (call_expression "(**(code **)(*piVar12 + 0x24))(piVar12,param_4,param_5,0)" (parenthesized_expression "(**(code **)(*piVar12 + 0x24))" ( (pointer_expression "**(code **)(*piVar12 + 0x24)" * (pointer_expression "*(code **)(*piVar12 + 0x24)" * (cast_expression "(code **)(*piVar12 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar12 + 0x24)" ( (binary_expression "*piVar12 + 0x24" (pointer_expression "*piVar12" * identifier) + number_literal) ))))) )) (argument_list "(piVar12,param_4,param_5,0)" ( identifier , identifier , identifier , number_literal ))) ;) (if_statement "if (piVar16[7] != 0) {\n        FUN_000d3850(piVar16[7] + 0x1c,param_2);\n      }" if (parenthesized_expression "(piVar16[7] != 0)" ( (binary_expression "piVar16[7] != 0" (subscript_expression "piVar16[7]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        FUN_000d3850(piVar16[7] + 0x1c,param_2);\n      }" { (expression_statement "FUN_000d3850(piVar16[7] + 0x1c,param_2);" (call_expression "FUN_000d3850(piVar16[7] + 0x1c,param_2)" identifier (argument_list "(piVar16[7] + 0x1c,param_2)" ( (binary_expression "piVar16[7] + 0x1c" (subscript_expression "piVar16[7]" identifier [ number_literal ]) + number_literal) , identifier ))) ;) })) (expression_statement "piVar14 = piVar14 + 1;" (assignment_expression "piVar14 = piVar14 + 1" identifier = (binary_expression "piVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((int *)param_3[1] != piVar14)" ( (binary_expression "(int *)param_3[1] != piVar14" (cast_expression "(int *)param_3[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[1]" identifier [ number_literal ])) != identifier) )) ;) (expression_statement "iVar4 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar4 = *(int *)(DAT_004144e8 + 8)" identifier = (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar4 == 0) goto LAB_000dac36;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000dac36;" goto statement_identifier ;)) }))) (if_statement "if (*(int *)(iVar4 + 0x593c) != 0) {\n    FUN_001a6980(*(int *)(iVar4 + 0x593c));\n  }" if (parenthesized_expression "(*(int *)(iVar4 + 0x593c) != 0)" ( (binary_expression "*(int *)(iVar4 + 0x593c) != 0" (pointer_expression "*(int *)(iVar4 + 0x593c)" * (cast_expression "(int *)(iVar4 + 0x593c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x593c)" ( (binary_expression "iVar4 + 0x593c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    FUN_001a6980(*(int *)(iVar4 + 0x593c));\n  }" { (expression_statement "FUN_001a6980(*(int *)(iVar4 + 0x593c));" (call_expression "FUN_001a6980(*(int *)(iVar4 + 0x593c))" identifier (argument_list "(*(int *)(iVar4 + 0x593c))" ( (pointer_expression "*(int *)(iVar4 + 0x593c)" * (cast_expression "(int *)(iVar4 + 0x593c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x593c)" ( (binary_expression "iVar4 + 0x593c" identifier + number_literal) )))) ))) ;) })) (expression_statement "FUN_00107c00(param_5);" (call_expression "FUN_00107c00(param_5)" identifier (argument_list "(param_5)" ( identifier ))) ;) (expression_statement "iVar4 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar4 = *(int *)(DAT_004144e8 + 8)" identifier = (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar4 == 0) goto LAB_000dac36;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000dac36;" goto statement_identifier ;)) (if_statement "if (((*(int *)(iVar4 + 0x593c) != 0) && (*(char *)(param_5 + 0x1cd) != '\0')) &&\n     ((*(int *)(iVar4 + 0x36d8) == 0 &&\n      (*(undefined4 **)(param_5 + 0x130) != *(undefined4 **)(param_5 + 0x134))))) {\n    puVar6 = *(undefined4 **)(param_5 + 0x130);\n    do {\n      puVar7 = puVar6 + 1;\n      FUN_0015d7d0(*puVar6,param_5 + 0x1ec);\n      puVar6 = puVar7;\n    } while (*(undefined4 **)(param_5 + 0x134) != puVar7);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }" if (parenthesized_expression "(((*(int *)(iVar4 + 0x593c) != 0) && (*(char *)(param_5 + 0x1cd) != '\0')) &&\n     ((*(int *)(iVar4 + 0x36d8) == 0 &&\n      (*(undefined4 **)(param_5 + 0x130) != *(undefined4 **)(param_5 + 0x134)))))" ( (binary_expression "((*(int *)(iVar4 + 0x593c) != 0) && (*(char *)(param_5 + 0x1cd) != '\0')) &&\n     ((*(int *)(iVar4 + 0x36d8) == 0 &&\n      (*(undefined4 **)(param_5 + 0x130) != *(undefined4 **)(param_5 + 0x134))))" (parenthesized_expression "((*(int *)(iVar4 + 0x593c) != 0) && (*(char *)(param_5 + 0x1cd) != '\0'))" ( (binary_expression "(*(int *)(iVar4 + 0x593c) != 0) && (*(char *)(param_5 + 0x1cd) != '\0')" (parenthesized_expression "(*(int *)(iVar4 + 0x593c) != 0)" ( (binary_expression "*(int *)(iVar4 + 0x593c) != 0" (pointer_expression "*(int *)(iVar4 + 0x593c)" * (cast_expression "(int *)(iVar4 + 0x593c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x593c)" ( (binary_expression "iVar4 + 0x593c" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(*(char *)(param_5 + 0x1cd) != '\0')" ( (binary_expression "*(char *)(param_5 + 0x1cd) != '\0'" (pointer_expression "*(char *)(param_5 + 0x1cd)" * (cast_expression "(char *)(param_5 + 0x1cd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x1cd)" ( (binary_expression "param_5 + 0x1cd" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "((*(int *)(iVar4 + 0x36d8) == 0 &&\n      (*(undefined4 **)(param_5 + 0x130) != *(undefined4 **)(param_5 + 0x134))))" ( (parenthesized_expression "(*(int *)(iVar4 + 0x36d8) == 0 &&\n      (*(undefined4 **)(param_5 + 0x130) != *(undefined4 **)(param_5 + 0x134)))" ( (binary_expression "*(int *)(iVar4 + 0x36d8) == 0 &&\n      (*(undefined4 **)(param_5 + 0x130) != *(undefined4 **)(param_5 + 0x134))" (binary_expression "*(int *)(iVar4 + 0x36d8) == 0" (pointer_expression "*(int *)(iVar4 + 0x36d8)" * (cast_expression "(int *)(iVar4 + 0x36d8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x36d8)" ( (binary_expression "iVar4 + 0x36d8" identifier + number_literal) )))) == number_literal) && (parenthesized_expression "(*(undefined4 **)(param_5 + 0x130) != *(undefined4 **)(param_5 + 0x134))" ( (binary_expression "*(undefined4 **)(param_5 + 0x130) != *(undefined4 **)(param_5 + 0x134)" (pointer_expression "*(undefined4 **)(param_5 + 0x130)" * (cast_expression "(undefined4 **)(param_5 + 0x130)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_5 + 0x130)" ( (binary_expression "param_5 + 0x130" identifier + number_literal) )))) != (pointer_expression "*(undefined4 **)(param_5 + 0x134)" * (cast_expression "(undefined4 **)(param_5 + 0x134)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_5 + 0x134)" ( (binary_expression "param_5 + 0x134" identifier + number_literal) ))))) ))) )) ))) )) (compound_statement "{\n    puVar6 = *(undefined4 **)(param_5 + 0x130);\n    do {\n      puVar7 = puVar6 + 1;\n      FUN_0015d7d0(*puVar6,param_5 + 0x1ec);\n      puVar6 = puVar7;\n    } while (*(undefined4 **)(param_5 + 0x134) != puVar7);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }" { (expression_statement "puVar6 = *(undefined4 **)(param_5 + 0x130);" (assignment_expression "puVar6 = *(undefined4 **)(param_5 + 0x130)" identifier = (pointer_expression "*(undefined4 **)(param_5 + 0x130)" * (cast_expression "(undefined4 **)(param_5 + 0x130)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_5 + 0x130)" ( (binary_expression "param_5 + 0x130" identifier + number_literal) ))))) ;) (do_statement "do {\n      puVar7 = puVar6 + 1;\n      FUN_0015d7d0(*puVar6,param_5 + 0x1ec);\n      puVar6 = puVar7;\n    } while (*(undefined4 **)(param_5 + 0x134) != puVar7);" do (compound_statement "{\n      puVar7 = puVar6 + 1;\n      FUN_0015d7d0(*puVar6,param_5 + 0x1ec);\n      puVar6 = puVar7;\n    }" { (expression_statement "puVar7 = puVar6 + 1;" (assignment_expression "puVar7 = puVar6 + 1" identifier = (binary_expression "puVar6 + 1" identifier + number_literal)) ;) (expression_statement "FUN_0015d7d0(*puVar6,param_5 + 0x1ec);" (call_expression "FUN_0015d7d0(*puVar6,param_5 + 0x1ec)" identifier (argument_list "(*puVar6,param_5 + 0x1ec)" ( (pointer_expression "*puVar6" * identifier) , (binary_expression "param_5 + 0x1ec" identifier + number_literal) ))) ;) (expression_statement "puVar6 = puVar7;" (assignment_expression "puVar6 = puVar7" identifier = identifier) ;) }) while (parenthesized_expression "(*(undefined4 **)(param_5 + 0x134) != puVar7)" ( (binary_expression "*(undefined4 **)(param_5 + 0x134) != puVar7" (pointer_expression "*(undefined4 **)(param_5 + 0x134)" * (cast_expression "(undefined4 **)(param_5 + 0x134)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_5 + 0x134)" ( (binary_expression "param_5 + 0x134" identifier + number_literal) )))) != identifier) )) ;) (expression_statement "iVar4 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar4 = *(int *)(DAT_004144e8 + 8)" identifier = (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar4 == 0) goto LAB_000dac36;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000dac36;" goto statement_identifier ;)) })) (if_statement "if ((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)) {\n    iVar4 = *(int *)(param_1 + 0x3e70);\n  }\n  else {\n    piVar14 = (int *)*param_3;\n    if (piVar14 != (int *)param_3[1]) {\n      do {\n        piVar12 = (int *)*piVar14;\n        piVar16 = (int *)piVar12[0x14];\n        iVar4 = *piVar16;\n        if (iVar4 != piVar16[1]) {\n          while( true ) {\n            iVar15 = *piVar12;\n            uVar11 = *(uint *)(iVar4 + 4);\n            if (*(code **)(iVar15 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11) {\n                    /* WARNING: Subroutine does not return */\n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4);\n            }\n            else {\n              uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);\n              uVar11 = *(uint *)(iVar4 + 4);\n              piVar12 = (int *)*piVar14;\n              iVar15 = *piVar12;\n            }\n            *(undefined4 *)(iVar4 + 0x14) = uVar3;\n            uVar1 = (**(code **)(iVar15 + 0x88))(piVar12,uVar11);\n            *(undefined1 *)(iVar4 + 0x18) = uVar1;\n            if (piVar16[1] == iVar4 + 0x1c) break;\n            piVar12 = (int *)*piVar14;\n            iVar4 = iVar4 + 0x1c;\n          }\n        }\n        piVar14 = piVar14 + 1;\n      } while ((int *)param_3[1] != piVar14);\n    }\n    iVar4 = *(int *)(param_1 + 0x3e70);\n  }" if (parenthesized_expression "((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0))" ( (binary_expression "(*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)" (parenthesized_expression "(*(char *)(iVar4 + 0x18b1) == '\0')" ( (binary_expression "*(char *)(iVar4 + 0x18b1) == '\0'" (pointer_expression "*(char *)(iVar4 + 0x18b1)" * (cast_expression "(char *)(iVar4 + 0x18b1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18b1)" ( (binary_expression "iVar4 + 0x18b1" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(int *)(iVar4 + 0x5934) == 0)" ( (binary_expression "*(int *)(iVar4 + 0x5934) == 0" (pointer_expression "*(int *)(iVar4 + 0x5934)" * (cast_expression "(int *)(iVar4 + 0x5934)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x5934)" ( (binary_expression "iVar4 + 0x5934" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n    iVar4 = *(int *)(param_1 + 0x3e70);\n  }" { (expression_statement "iVar4 = *(int *)(param_1 + 0x3e70);" (assignment_expression "iVar4 = *(int *)(param_1 + 0x3e70)" identifier = (pointer_expression "*(int *)(param_1 + 0x3e70)" * (cast_expression "(int *)(param_1 + 0x3e70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3e70)" ( (binary_expression "param_1 + 0x3e70" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    piVar14 = (int *)*param_3;\n    if (piVar14 != (int *)param_3[1]) {\n      do {\n        piVar12 = (int *)*piVar14;\n        piVar16 = (int *)piVar12[0x14];\n        iVar4 = *piVar16;\n        if (iVar4 != piVar16[1]) {\n          while( true ) {\n            iVar15 = *piVar12;\n            uVar11 = *(uint *)(iVar4 + 4);\n            if (*(code **)(iVar15 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11) {\n                    /* WARNING: Subroutine does not return */\n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4);\n            }\n            else {\n              uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);\n              uVar11 = *(uint *)(iVar4 + 4);\n              piVar12 = (int *)*piVar14;\n              iVar15 = *piVar12;\n            }\n            *(undefined4 *)(iVar4 + 0x14) = uVar3;\n            uVar1 = (**(code **)(iVar15 + 0x88))(piVar12,uVar11);\n            *(undefined1 *)(iVar4 + 0x18) = uVar1;\n            if (piVar16[1] == iVar4 + 0x1c) break;\n            piVar12 = (int *)*piVar14;\n            iVar4 = iVar4 + 0x1c;\n          }\n        }\n        piVar14 = piVar14 + 1;\n      } while ((int *)param_3[1] != piVar14);\n    }\n    iVar4 = *(int *)(param_1 + 0x3e70);\n  }" else (compound_statement "{\n    piVar14 = (int *)*param_3;\n    if (piVar14 != (int *)param_3[1]) {\n      do {\n        piVar12 = (int *)*piVar14;\n        piVar16 = (int *)piVar12[0x14];\n        iVar4 = *piVar16;\n        if (iVar4 != piVar16[1]) {\n          while( true ) {\n            iVar15 = *piVar12;\n            uVar11 = *(uint *)(iVar4 + 4);\n            if (*(code **)(iVar15 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11) {\n                    /* WARNING: Subroutine does not return */\n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4);\n            }\n            else {\n              uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);\n              uVar11 = *(uint *)(iVar4 + 4);\n              piVar12 = (int *)*piVar14;\n              iVar15 = *piVar12;\n            }\n            *(undefined4 *)(iVar4 + 0x14) = uVar3;\n            uVar1 = (**(code **)(iVar15 + 0x88))(piVar12,uVar11);\n            *(undefined1 *)(iVar4 + 0x18) = uVar1;\n            if (piVar16[1] == iVar4 + 0x1c) break;\n            piVar12 = (int *)*piVar14;\n            iVar4 = iVar4 + 0x1c;\n          }\n        }\n        piVar14 = piVar14 + 1;\n      } while ((int *)param_3[1] != piVar14);\n    }\n    iVar4 = *(int *)(param_1 + 0x3e70);\n  }" { (expression_statement "piVar14 = (int *)*param_3;" (assignment_expression "piVar14 = (int *)*param_3" identifier = (cast_expression "(int *)*param_3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_3" * identifier))) ;) (if_statement "if (piVar14 != (int *)param_3[1]) {\n      do {\n        piVar12 = (int *)*piVar14;\n        piVar16 = (int *)piVar12[0x14];\n        iVar4 = *piVar16;\n        if (iVar4 != piVar16[1]) {\n          while( true ) {\n            iVar15 = *piVar12;\n            uVar11 = *(uint *)(iVar4 + 4);\n            if (*(code **)(iVar15 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11) {\n                    /* WARNING: Subroutine does not return */\n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4);\n            }\n            else {\n              uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);\n              uVar11 = *(uint *)(iVar4 + 4);\n              piVar12 = (int *)*piVar14;\n              iVar15 = *piVar12;\n            }\n            *(undefined4 *)(iVar4 + 0x14) = uVar3;\n            uVar1 = (**(code **)(iVar15 + 0x88))(piVar12,uVar11);\n            *(undefined1 *)(iVar4 + 0x18) = uVar1;\n            if (piVar16[1] == iVar4 + 0x1c) break;\n            piVar12 = (int *)*piVar14;\n            iVar4 = iVar4 + 0x1c;\n          }\n        }\n        piVar14 = piVar14 + 1;\n      } while ((int *)param_3[1] != piVar14);\n    }" if (parenthesized_expression "(piVar14 != (int *)param_3[1])" ( (binary_expression "piVar14 != (int *)param_3[1]" identifier != (cast_expression "(int *)param_3[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[1]" identifier [ number_literal ]))) )) (compound_statement "{\n      do {\n        piVar12 = (int *)*piVar14;\n        piVar16 = (int *)piVar12[0x14];\n        iVar4 = *piVar16;\n        if (iVar4 != piVar16[1]) {\n          while( true ) {\n            iVar15 = *piVar12;\n            uVar11 = *(uint *)(iVar4 + 4);\n            if (*(code **)(iVar15 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11) {\n                    /* WARNING: Subroutine does not return */\n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4);\n            }\n            else {\n              uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);\n              uVar11 = *(uint *)(iVar4 + 4);\n              piVar12 = (int *)*piVar14;\n              iVar15 = *piVar12;\n            }\n            *(undefined4 *)(iVar4 + 0x14) = uVar3;\n            uVar1 = (**(code **)(iVar15 + 0x88))(piVar12,uVar11);\n            *(undefined1 *)(iVar4 + 0x18) = uVar1;\n            if (piVar16[1] == iVar4 + 0x1c) break;\n            piVar12 = (int *)*piVar14;\n            iVar4 = iVar4 + 0x1c;\n          }\n        }\n        piVar14 = piVar14 + 1;\n      } while ((int *)param_3[1] != piVar14);\n    }" { (do_statement "do {\n        piVar12 = (int *)*piVar14;\n        piVar16 = (int *)piVar12[0x14];\n        iVar4 = *piVar16;\n        if (iVar4 != piVar16[1]) {\n          while( true ) {\n            iVar15 = *piVar12;\n            uVar11 = *(uint *)(iVar4 + 4);\n            if (*(code **)(iVar15 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11) {\n                    /* WARNING: Subroutine does not return */\n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4);\n            }\n            else {\n              uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);\n              uVar11 = *(uint *)(iVar4 + 4);\n              piVar12 = (int *)*piVar14;\n              iVar15 = *piVar12;\n            }\n            *(undefined4 *)(iVar4 + 0x14) = uVar3;\n            uVar1 = (**(code **)(iVar15 + 0x88))(piVar12,uVar11);\n            *(undefined1 *)(iVar4 + 0x18) = uVar1;\n            if (piVar16[1] == iVar4 + 0x1c) break;\n            piVar12 = (int *)*piVar14;\n            iVar4 = iVar4 + 0x1c;\n          }\n        }\n        piVar14 = piVar14 + 1;\n      } while ((int *)param_3[1] != piVar14);" do (compound_statement "{\n        piVar12 = (int *)*piVar14;\n        piVar16 = (int *)piVar12[0x14];\n        iVar4 = *piVar16;\n        if (iVar4 != piVar16[1]) {\n          while( true ) {\n            iVar15 = *piVar12;\n            uVar11 = *(uint *)(iVar4 + 4);\n            if (*(code **)(iVar15 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11) {\n                    /* WARNING: Subroutine does not return */\n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4);\n            }\n            else {\n              uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);\n              uVar11 = *(uint *)(iVar4 + 4);\n              piVar12 = (int *)*piVar14;\n              iVar15 = *piVar12;\n            }\n            *(undefined4 *)(iVar4 + 0x14) = uVar3;\n            uVar1 = (**(code **)(iVar15 + 0x88))(piVar12,uVar11);\n            *(undefined1 *)(iVar4 + 0x18) = uVar1;\n            if (piVar16[1] == iVar4 + 0x1c) break;\n            piVar12 = (int *)*piVar14;\n            iVar4 = iVar4 + 0x1c;\n          }\n        }\n        piVar14 = piVar14 + 1;\n      }" { (expression_statement "piVar12 = (int *)*piVar14;" (assignment_expression "piVar12 = (int *)*piVar14" identifier = (cast_expression "(int *)*piVar14" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar14" * identifier))) ;) (expression_statement "piVar16 = (int *)piVar12[0x14];" (assignment_expression "piVar16 = (int *)piVar12[0x14]" identifier = (cast_expression "(int *)piVar12[0x14]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x14]" identifier [ number_literal ]))) ;) (expression_statement "iVar4 = *piVar16;" (assignment_expression "iVar4 = *piVar16" identifier = (pointer_expression "*piVar16" * identifier)) ;) (if_statement "if (iVar4 != piVar16[1]) {\n          while( true ) {\n            iVar15 = *piVar12;\n            uVar11 = *(uint *)(iVar4 + 4);\n            if (*(code **)(iVar15 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11) {\n                    /* WARNING: Subroutine does not return */\n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4);\n            }\n            else {\n              uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);\n              uVar11 = *(uint *)(iVar4 + 4);\n              piVar12 = (int *)*piVar14;\n              iVar15 = *piVar12;\n            }\n            *(undefined4 *)(iVar4 + 0x14) = uVar3;\n            uVar1 = (**(code **)(iVar15 + 0x88))(piVar12,uVar11);\n            *(undefined1 *)(iVar4 + 0x18) = uVar1;\n            if (piVar16[1] == iVar4 + 0x1c) break;\n            piVar12 = (int *)*piVar14;\n            iVar4 = iVar4 + 0x1c;\n          }\n        }" if (parenthesized_expression "(iVar4 != piVar16[1])" ( (binary_expression "iVar4 != piVar16[1]" identifier != (subscript_expression "piVar16[1]" identifier [ number_literal ])) )) (compound_statement "{\n          while( true ) {\n            iVar15 = *piVar12;\n            uVar11 = *(uint *)(iVar4 + 4);\n            if (*(code **)(iVar15 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11) {\n                    /* WARNING: Subroutine does not return */\n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4);\n            }\n            else {\n              uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);\n              uVar11 = *(uint *)(iVar4 + 4);\n              piVar12 = (int *)*piVar14;\n              iVar15 = *piVar12;\n            }\n            *(undefined4 *)(iVar4 + 0x14) = uVar3;\n            uVar1 = (**(code **)(iVar15 + 0x88))(piVar12,uVar11);\n            *(undefined1 *)(iVar4 + 0x18) = uVar1;\n            if (piVar16[1] == iVar4 + 0x1c) break;\n            piVar12 = (int *)*piVar14;\n            iVar4 = iVar4 + 0x1c;\n          }\n        }" { (while_statement "while( true ) {\n            iVar15 = *piVar12;\n            uVar11 = *(uint *)(iVar4 + 4);\n            if (*(code **)(iVar15 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11) {\n                    /* WARNING: Subroutine does not return */\n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4);\n            }\n            else {\n              uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);\n              uVar11 = *(uint *)(iVar4 + 4);\n              piVar12 = (int *)*piVar14;\n              iVar15 = *piVar12;\n            }\n            *(undefined4 *)(iVar4 + 0x14) = uVar3;\n            uVar1 = (**(code **)(iVar15 + 0x88))(piVar12,uVar11);\n            *(undefined1 *)(iVar4 + 0x18) = uVar1;\n            if (piVar16[1] == iVar4 + 0x1c) break;\n            piVar12 = (int *)*piVar14;\n            iVar4 = iVar4 + 0x1c;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            iVar15 = *piVar12;\n            uVar11 = *(uint *)(iVar4 + 4);\n            if (*(code **)(iVar15 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11) {\n                    /* WARNING: Subroutine does not return */\n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4);\n            }\n            else {\n              uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);\n              uVar11 = *(uint *)(iVar4 + 4);\n              piVar12 = (int *)*piVar14;\n              iVar15 = *piVar12;\n            }\n            *(undefined4 *)(iVar4 + 0x14) = uVar3;\n            uVar1 = (**(code **)(iVar15 + 0x88))(piVar12,uVar11);\n            *(undefined1 *)(iVar4 + 0x18) = uVar1;\n            if (piVar16[1] == iVar4 + 0x1c) break;\n            piVar12 = (int *)*piVar14;\n            iVar4 = iVar4 + 0x1c;\n          }" { (expression_statement "iVar15 = *piVar12;" (assignment_expression "iVar15 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "uVar11 = *(uint *)(iVar4 + 4);" (assignment_expression "uVar11 = *(uint *)(iVar4 + 4)" identifier = (pointer_expression "*(uint *)(iVar4 + 4)" * (cast_expression "(uint *)(iVar4 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 4)" ( (binary_expression "iVar4 + 4" identifier + number_literal) ))))) ;) (if_statement "if (*(code **)(iVar15 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11) {\n                    /* WARNING: Subroutine does not return */\n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4);\n            }\n            else {\n              uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);\n              uVar11 = *(uint *)(iVar4 + 4);\n              piVar12 = (int *)*piVar14;\n              iVar15 = *piVar12;\n            }" if (parenthesized_expression "(*(code **)(iVar15 + 0x60) == FUN_000a5850)" ( (binary_expression "*(code **)(iVar15 + 0x60) == FUN_000a5850" (pointer_expression "*(code **)(iVar15 + 0x60)" * (cast_expression "(code **)(iVar15 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + 0x60)" ( (binary_expression "iVar15 + 0x60" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11) {\n                    /* WARNING: Subroutine does not return */\n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4);\n            }" { (if_statement "if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11) {\n                    /* WARNING: Subroutine does not return */\n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }" if (parenthesized_expression "((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11)" ( (binary_expression "(uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11" (call_expression "(uint)(piVar12[0xf] - piVar12[0xe] >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar12[0xf] - piVar12[0xe] >> 2)" ( (binary_expression "piVar12[0xf] - piVar12[0xe] >> 2" (binary_expression "piVar12[0xf] - piVar12[0xe]" (subscript_expression "piVar12[0xf]" identifier [ number_literal ]) - (subscript_expression "piVar12[0xe]" identifier [ number_literal ])) >> number_literal) ))) <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }" { comment (expression_statement "FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");" (call_expression "FUN_000da200("../../gold/object.h",0x5c8,"do_output_section")" identifier (argument_list "("../../gold/object.h",0x5c8,"do_output_section")" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""do_output_section"" " string_content ") ))) ;) })) (expression_statement "uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4);" (assignment_expression "uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4)" identifier = (pointer_expression "*(undefined4 *)(piVar12[0xe] + uVar11 * 4)" * (cast_expression "(undefined4 *)(piVar12[0xe] + uVar11 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12[0xe] + uVar11 * 4)" ( (binary_expression "piVar12[0xe] + uVar11 * 4" (subscript_expression "piVar12[0xe]" identifier [ number_literal ]) + (binary_expression "uVar11 * 4" identifier * number_literal)) ))))) ;) }) (else_clause "else {\n              uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);\n              uVar11 = *(uint *)(iVar4 + 4);\n              piVar12 = (int *)*piVar14;\n              iVar15 = *piVar12;\n            }" else (compound_statement "{\n              uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);\n              uVar11 = *(uint *)(iVar4 + 4);\n              piVar12 = (int *)*piVar14;\n              iVar15 = *piVar12;\n            }" { (expression_statement "uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);" (assignment_expression "uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11)" identifier = (call_expression "(**(code **)(iVar15 + 0x60))(piVar12,uVar11)" (parenthesized_expression "(**(code **)(iVar15 + 0x60))" ( (pointer_expression "**(code **)(iVar15 + 0x60)" * (pointer_expression "*(code **)(iVar15 + 0x60)" * (cast_expression "(code **)(iVar15 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + 0x60)" ( (binary_expression "iVar15 + 0x60" identifier + number_literal) ))))) )) (argument_list "(piVar12,uVar11)" ( identifier , identifier )))) ;) (expression_statement "uVar11 = *(uint *)(iVar4 + 4);" (assignment_expression "uVar11 = *(uint *)(iVar4 + 4)" identifier = (pointer_expression "*(uint *)(iVar4 + 4)" * (cast_expression "(uint *)(iVar4 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 4)" ( (binary_expression "iVar4 + 4" identifier + number_literal) ))))) ;) (expression_statement "piVar12 = (int *)*piVar14;" (assignment_expression "piVar12 = (int *)*piVar14" identifier = (cast_expression "(int *)*piVar14" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar14" * identifier))) ;) (expression_statement "iVar15 = *piVar12;" (assignment_expression "iVar15 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) }))) (expression_statement "*(undefined4 *)(iVar4 + 0x14) = uVar3;" (assignment_expression "*(undefined4 *)(iVar4 + 0x14) = uVar3" (pointer_expression "*(undefined4 *)(iVar4 + 0x14)" * (cast_expression "(undefined4 *)(iVar4 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar1 = (**(code **)(iVar15 + 0x88))(piVar12,uVar11);" (assignment_expression "uVar1 = (**(code **)(iVar15 + 0x88))(piVar12,uVar11)" identifier = (call_expression "(**(code **)(iVar15 + 0x88))(piVar12,uVar11)" (parenthesized_expression "(**(code **)(iVar15 + 0x88))" ( (pointer_expression "**(code **)(iVar15 + 0x88)" * (pointer_expression "*(code **)(iVar15 + 0x88)" * (cast_expression "(code **)(iVar15 + 0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + 0x88)" ( (binary_expression "iVar15 + 0x88" identifier + number_literal) ))))) )) (argument_list "(piVar12,uVar11)" ( identifier , identifier )))) ;) (expression_statement "*(undefined1 *)(iVar4 + 0x18) = uVar1;" (assignment_expression "*(undefined1 *)(iVar4 + 0x18) = uVar1" (pointer_expression "*(undefined1 *)(iVar4 + 0x18)" * (cast_expression "(undefined1 *)(iVar4 + 0x18)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) )))) = identifier) ;) (if_statement "if (piVar16[1] == iVar4 + 0x1c) break;" if (parenthesized_expression "(piVar16[1] == iVar4 + 0x1c)" ( (binary_expression "piVar16[1] == iVar4 + 0x1c" (subscript_expression "piVar16[1]" identifier [ number_literal ]) == (binary_expression "iVar4 + 0x1c" identifier + number_literal)) )) (break_statement "break;" break ;)) (expression_statement "piVar12 = (int *)*piVar14;" (assignment_expression "piVar12 = (int *)*piVar14" identifier = (cast_expression "(int *)*piVar14" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar14" * identifier))) ;) (expression_statement "iVar4 = iVar4 + 0x1c;" (assignment_expression "iVar4 = iVar4 + 0x1c" identifier = (binary_expression "iVar4 + 0x1c" identifier + number_literal)) ;) })) })) (expression_statement "piVar14 = piVar14 + 1;" (assignment_expression "piVar14 = piVar14 + 1" identifier = (binary_expression "piVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((int *)param_3[1] != piVar14)" ( (binary_expression "(int *)param_3[1] != piVar14" (cast_expression "(int *)param_3[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[1]" identifier [ number_literal ])) != identifier) )) ;) })) (expression_statement "iVar4 = *(int *)(param_1 + 0x3e70);" (assignment_expression "iVar4 = *(int *)(param_1 + 0x3e70)" identifier = (pointer_expression "*(int *)(param_1 + 0x3e70)" * (cast_expression "(int *)(param_1 + 0x3e70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3e70)" ( (binary_expression "param_1 + 0x3e70" identifier + number_literal) ))))) ;) }))) (if_statement "if ((iVar4 == 0) &&\n     (iVar4 = (param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2), iVar4 < 2)) {\n    iVar4 = 2;\n  }" if (parenthesized_expression "((iVar4 == 0) &&\n     (iVar4 = (param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2), iVar4 < 2))" ( (binary_expression "(iVar4 == 0) &&\n     (iVar4 = (param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2), iVar4 < 2)" (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar4 = (param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2), iVar4 < 2)" ( (comma_expression "iVar4 = (param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2), iVar4 < 2" (assignment_expression "iVar4 = (param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2)" identifier = (binary_expression "(param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2)" (parenthesized_expression "(param_3[4] - param_3[3] >> 2)" ( (binary_expression "param_3[4] - param_3[3] >> 2" (binary_expression "param_3[4] - param_3[3]" (subscript_expression "param_3[4]" identifier [ number_literal ]) - (subscript_expression "param_3[3]" identifier [ number_literal ])) >> number_literal) )) + (parenthesized_expression "(param_3[1] - *param_3 >> 2)" ( (binary_expression "param_3[1] - *param_3 >> 2" (binary_expression "param_3[1] - *param_3" (subscript_expression "param_3[1]" identifier [ number_literal ]) - (pointer_expression "*param_3" * identifier)) >> number_literal) )))) , (binary_expression "iVar4 < 2" identifier < number_literal)) ))) )) (compound_statement "{\n    iVar4 = 2;\n  }" { (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" identifier = number_literal) ;) })) (expression_statement "FUN_002007c0(param_6,iVar4);" (call_expression "FUN_002007c0(param_6,iVar4)" identifier (argument_list "(param_6,iVar4)" ( identifier , identifier ))) ;) (if_statement "if (param_3[4] == param_3[3]) {\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n    if ((*(char *)(iVar4 + 0x1a25) != '\0') || (*(char *)(iVar4 + 0x2931) != '\0'))\n    goto LAB_000da6a6;\n    FUN_001a52b0(1);\n  }\n  else {\nLAB_000da6a6:\n    FUN_001a52b0(0);\n    if (*(char *)(param_1 + 0x5938) != '\0') {\n      if ((int *)param_3[3] == (int *)param_3[4]) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/gold.cc",0x265,"queue_middle_tasks",&__DT_PLTGOT);\n      }\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      uVar10 = gettext("cannot mix -static with dynamic object %s");\n      FUN_000d1330(uVar10,uVar3);\n    }\n    if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n    if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) != '\0') {\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      pcVar9 = "cannot mix -r with dynamic object %s";\nLAB_000db04c:\n      uVar10 = gettext(pcVar9);\n                    /* WARNING: Subroutine does not return */\n      FUN_000d12d0(uVar10,uVar3);\n    }\n    iVar4 = FUN_0014c1c0(param_1);\n    if (iVar4 != 0) {\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      pcVar9 = "cannot use non-ELF output format with dynamic object %s";\n      goto LAB_000db04c;\n    }\n  }" if (parenthesized_expression "(param_3[4] == param_3[3])" ( (binary_expression "param_3[4] == param_3[3]" (subscript_expression "param_3[4]" identifier [ number_literal ]) == (subscript_expression "param_3[3]" identifier [ number_literal ])) )) (compound_statement "{\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n    if ((*(char *)(iVar4 + 0x1a25) != '\0') || (*(char *)(iVar4 + 0x2931) != '\0'))\n    goto LAB_000da6a6;\n    FUN_001a52b0(1);\n  }" { (expression_statement "iVar4 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar4 = *(int *)(DAT_004144e8 + 8)" identifier = (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar4 == 0) goto LAB_000dac36;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000dac36;" goto statement_identifier ;)) (if_statement "if ((*(char *)(iVar4 + 0x1a25) != '\0') || (*(char *)(iVar4 + 0x2931) != '\0'))\n    goto LAB_000da6a6;" if (parenthesized_expression "((*(char *)(iVar4 + 0x1a25) != '\0') || (*(char *)(iVar4 + 0x2931) != '\0'))" ( (binary_expression "(*(char *)(iVar4 + 0x1a25) != '\0') || (*(char *)(iVar4 + 0x2931) != '\0')" (parenthesized_expression "(*(char *)(iVar4 + 0x1a25) != '\0')" ( (binary_expression "*(char *)(iVar4 + 0x1a25) != '\0'" (pointer_expression "*(char *)(iVar4 + 0x1a25)" * (cast_expression "(char *)(iVar4 + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1a25)" ( (binary_expression "iVar4 + 0x1a25" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(*(char *)(iVar4 + 0x2931) != '\0')" ( (binary_expression "*(char *)(iVar4 + 0x2931) != '\0'" (pointer_expression "*(char *)(iVar4 + 0x2931)" * (cast_expression "(char *)(iVar4 + 0x2931)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2931)" ( (binary_expression "iVar4 + 0x2931" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_000da6a6;" goto statement_identifier ;)) (expression_statement "FUN_001a52b0(1);" (call_expression "FUN_001a52b0(1)" identifier (argument_list "(1)" ( number_literal ))) ;) }) (else_clause "else {\nLAB_000da6a6:\n    FUN_001a52b0(0);\n    if (*(char *)(param_1 + 0x5938) != '\0') {\n      if ((int *)param_3[3] == (int *)param_3[4]) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/gold.cc",0x265,"queue_middle_tasks",&__DT_PLTGOT);\n      }\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      uVar10 = gettext("cannot mix -static with dynamic object %s");\n      FUN_000d1330(uVar10,uVar3);\n    }\n    if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n    if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) != '\0') {\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      pcVar9 = "cannot mix -r with dynamic object %s";\nLAB_000db04c:\n      uVar10 = gettext(pcVar9);\n                    /* WARNING: Subroutine does not return */\n      FUN_000d12d0(uVar10,uVar3);\n    }\n    iVar4 = FUN_0014c1c0(param_1);\n    if (iVar4 != 0) {\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      pcVar9 = "cannot use non-ELF output format with dynamic object %s";\n      goto LAB_000db04c;\n    }\n  }" else (compound_statement "{\nLAB_000da6a6:\n    FUN_001a52b0(0);\n    if (*(char *)(param_1 + 0x5938) != '\0') {\n      if ((int *)param_3[3] == (int *)param_3[4]) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/gold.cc",0x265,"queue_middle_tasks",&__DT_PLTGOT);\n      }\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      uVar10 = gettext("cannot mix -static with dynamic object %s");\n      FUN_000d1330(uVar10,uVar3);\n    }\n    if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n    if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) != '\0') {\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      pcVar9 = "cannot mix -r with dynamic object %s";\nLAB_000db04c:\n      uVar10 = gettext(pcVar9);\n                    /* WARNING: Subroutine does not return */\n      FUN_000d12d0(uVar10,uVar3);\n    }\n    iVar4 = FUN_0014c1c0(param_1);\n    if (iVar4 != 0) {\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      pcVar9 = "cannot use non-ELF output format with dynamic object %s";\n      goto LAB_000db04c;\n    }\n  }" { (labeled_statement "LAB_000da6a6:\n    FUN_001a52b0(0);" statement_identifier : (expression_statement "FUN_001a52b0(0);" (call_expression "FUN_001a52b0(0)" identifier (argument_list "(0)" ( number_literal ))) ;)) (if_statement "if (*(char *)(param_1 + 0x5938) != '\0') {\n      if ((int *)param_3[3] == (int *)param_3[4]) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/gold.cc",0x265,"queue_middle_tasks",&__DT_PLTGOT);\n      }\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      uVar10 = gettext("cannot mix -static with dynamic object %s");\n      FUN_000d1330(uVar10,uVar3);\n    }" if (parenthesized_expression "(*(char *)(param_1 + 0x5938) != '\0')" ( (binary_expression "*(char *)(param_1 + 0x5938) != '\0'" (pointer_expression "*(char *)(param_1 + 0x5938)" * (cast_expression "(char *)(param_1 + 0x5938)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5938)" ( (binary_expression "param_1 + 0x5938" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if ((int *)param_3[3] == (int *)param_3[4]) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/gold.cc",0x265,"queue_middle_tasks",&__DT_PLTGOT);\n      }\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      uVar10 = gettext("cannot mix -static with dynamic object %s");\n      FUN_000d1330(uVar10,uVar3);\n    }" { (if_statement "if ((int *)param_3[3] == (int *)param_3[4]) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/gold.cc",0x265,"queue_middle_tasks",&__DT_PLTGOT);\n      }" if (parenthesized_expression "((int *)param_3[3] == (int *)param_3[4])" ( (binary_expression "(int *)param_3[3] == (int *)param_3[4]" (cast_expression "(int *)param_3[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ])) == (cast_expression "(int *)param_3[4]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[4]" identifier [ number_literal ]))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/gold.cc",0x265,"queue_middle_tasks",&__DT_PLTGOT);\n      }" { comment (expression_statement "FUN_000da200("../../gold/gold.cc",0x265,"queue_middle_tasks",&__DT_PLTGOT);" (call_expression "FUN_000da200("../../gold/gold.cc",0x265,"queue_middle_tasks",&__DT_PLTGOT)" identifier (argument_list "("../../gold/gold.cc",0x265,"queue_middle_tasks",&__DT_PLTGOT)" ( (string_literal ""../../gold/gold.cc"" " string_content ") , number_literal , (string_literal ""queue_middle_tasks"" " string_content ") , (pointer_expression "&__DT_PLTGOT" & identifier) ))) ;) })) (expression_statement "uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);" (assignment_expression "uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4)" identifier = (pointer_expression "*(undefined4 *)(*(int *)param_3[3] + 4)" * (cast_expression "(undefined4 *)(*(int *)param_3[3] + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)param_3[3] + 4)" ( (binary_expression "*(int *)param_3[3] + 4" (pointer_expression "*(int *)param_3[3]" * (cast_expression "(int *)param_3[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) + number_literal) ))))) ;) (expression_statement "uVar10 = gettext("cannot mix -static with dynamic object %s");" (assignment_expression "uVar10 = gettext("cannot mix -static with dynamic object %s")" identifier = (call_expression "gettext("cannot mix -static with dynamic object %s")" identifier (argument_list "("cannot mix -static with dynamic object %s")" ( (string_literal ""cannot mix -static with dynamic object %s"" " string_content ") )))) ;) (expression_statement "FUN_000d1330(uVar10,uVar3);" (call_expression "FUN_000d1330(uVar10,uVar3)" identifier (argument_list "(uVar10,uVar3)" ( identifier , identifier ))) ;) })) (if_statement "if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;" if (parenthesized_expression "(*(int *)(DAT_004144e8 + 8) == 0)" ( (binary_expression "*(int *)(DAT_004144e8 + 8) == 0" (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_000dac36;" goto statement_identifier ;)) (if_statement "if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) != '\0') {\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      pcVar9 = "cannot mix -r with dynamic object %s";\nLAB_000db04c:\n      uVar10 = gettext(pcVar9);\n                    /* WARNING: Subroutine does not return */\n      FUN_000d12d0(uVar10,uVar3);\n    }" if (parenthesized_expression "(*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) != '\0')" ( (binary_expression "*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) != '\0'" (pointer_expression "*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d)" * (cast_expression "(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_004144e8 + 8) + 0x318d)" ( (binary_expression "*(int *)(DAT_004144e8 + 8) + 0x318d" (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      pcVar9 = "cannot mix -r with dynamic object %s";\nLAB_000db04c:\n      uVar10 = gettext(pcVar9);\n                    /* WARNING: Subroutine does not return */\n      FUN_000d12d0(uVar10,uVar3);\n    }" { (expression_statement "uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);" (assignment_expression "uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4)" identifier = (pointer_expression "*(undefined4 *)(*(int *)param_3[3] + 4)" * (cast_expression "(undefined4 *)(*(int *)param_3[3] + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)param_3[3] + 4)" ( (binary_expression "*(int *)param_3[3] + 4" (pointer_expression "*(int *)param_3[3]" * (cast_expression "(int *)param_3[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) + number_literal) ))))) ;) (expression_statement "pcVar9 = "cannot mix -r with dynamic object %s";" (assignment_expression "pcVar9 = "cannot mix -r with dynamic object %s"" identifier = (string_literal ""cannot mix -r with dynamic object %s"" " string_content ")) ;) (labeled_statement "LAB_000db04c:\n      uVar10 = gettext(pcVar9);" statement_identifier : (expression_statement "uVar10 = gettext(pcVar9);" (assignment_expression "uVar10 = gettext(pcVar9)" identifier = (call_expression "gettext(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier )))) ;)) comment (expression_statement "FUN_000d12d0(uVar10,uVar3);" (call_expression "FUN_000d12d0(uVar10,uVar3)" identifier (argument_list "(uVar10,uVar3)" ( identifier , identifier ))) ;) })) (expression_statement "iVar4 = FUN_0014c1c0(param_1);" (assignment_expression "iVar4 = FUN_0014c1c0(param_1)" identifier = (call_expression "FUN_0014c1c0(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (iVar4 != 0) {\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      pcVar9 = "cannot use non-ELF output format with dynamic object %s";\n      goto LAB_000db04c;\n    }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      pcVar9 = "cannot use non-ELF output format with dynamic object %s";\n      goto LAB_000db04c;\n    }" { (expression_statement "uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);" (assignment_expression "uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4)" identifier = (pointer_expression "*(undefined4 *)(*(int *)param_3[3] + 4)" * (cast_expression "(undefined4 *)(*(int *)param_3[3] + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)param_3[3] + 4)" ( (binary_expression "*(int *)param_3[3] + 4" (pointer_expression "*(int *)param_3[3]" * (cast_expression "(int *)param_3[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) + number_literal) ))))) ;) (expression_statement "pcVar9 = "cannot use non-ELF output format with dynamic object %s";" (assignment_expression "pcVar9 = "cannot use non-ELF output format with dynamic object %s"" identifier = (string_literal ""cannot use non-ELF output format with dynamic object %s"" " string_content ")) ;) (goto_statement "goto LAB_000db04c;" goto statement_identifier ;) })) }))) (if_statement "if (*(int *)(DAT_004144e8 + 8) == 0) {\nLAB_000dac36:\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../gold/parameters.h",0x5c,"options");\n  }" if (parenthesized_expression "(*(int *)(DAT_004144e8 + 8) == 0)" ( (binary_expression "*(int *)(DAT_004144e8 + 8) == 0" (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_000dac36:\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../gold/parameters.h",0x5c,"options");\n  }" { (labeled_statement "LAB_000dac36:\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../gold/parameters.h",0x5c,"options");" statement_identifier : comment (expression_statement "FUN_000da200("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_000da200("../../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 ") ))) ;)) })) (if_statement "if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) != '\0') {\n    piVar14 = (int *)*param_3;\n    piVar16 = (int *)param_3[1];\n    if (piVar16 != piVar14) {\n      bVar13 = *(byte *)(*piVar14 + 0x2c) >> 2 & 1;\n      if (piVar16 != piVar14 + 1) {\n        iVar4 = piVar14[1];\n        if ((*(byte *)(iVar4 + 0x2c) >> 2 & 1) == bVar13) {\n          piVar12 = piVar14 + 2;\n          do {\n            if (piVar16 == piVar12) goto LAB_000da77b;\n            iVar4 = *piVar12;\n            piVar12 = piVar12 + 1;\n          } while (bVar13 == (*(byte *)(iVar4 + 0x2c) >> 2 & 1));\n        }\n        uVar3 = *(undefined4 *)(iVar4 + 4);\n        uVar10 = *(undefined4 *)(*piVar14 + 4);\n        uVar8 = gettext("cannot mix split-stack \'%s\' and non-split-stack \'%s\' when using -r");\n                    /* WARNING: Subroutine does not return */\n        FUN_000d12d0(uVar8,uVar10,uVar3);\n      }\n    }\n  }" if (parenthesized_expression "(*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) != '\0')" ( (binary_expression "*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) != '\0'" (pointer_expression "*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d)" * (cast_expression "(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_004144e8 + 8) + 0x318d)" ( (binary_expression "*(int *)(DAT_004144e8 + 8) + 0x318d" (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    piVar14 = (int *)*param_3;\n    piVar16 = (int *)param_3[1];\n    if (piVar16 != piVar14) {\n      bVar13 = *(byte *)(*piVar14 + 0x2c) >> 2 & 1;\n      if (piVar16 != piVar14 + 1) {\n        iVar4 = piVar14[1];\n        if ((*(byte *)(iVar4 + 0x2c) >> 2 & 1) == bVar13) {\n          piVar12 = piVar14 + 2;\n          do {\n            if (piVar16 == piVar12) goto LAB_000da77b;\n            iVar4 = *piVar12;\n            piVar12 = piVar12 + 1;\n          } while (bVar13 == (*(byte *)(iVar4 + 0x2c) >> 2 & 1));\n        }\n        uVar3 = *(undefined4 *)(iVar4 + 4);\n        uVar10 = *(undefined4 *)(*piVar14 + 4);\n        uVar8 = gettext("cannot mix split-stack \'%s\' and non-split-stack \'%s\' when using -r");\n                    /* WARNING: Subroutine does not return */\n        FUN_000d12d0(uVar8,uVar10,uVar3);\n      }\n    }\n  }" { (expression_statement "piVar14 = (int *)*param_3;" (assignment_expression "piVar14 = (int *)*param_3" identifier = (cast_expression "(int *)*param_3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_3" * identifier))) ;) (expression_statement "piVar16 = (int *)param_3[1];" (assignment_expression "piVar16 = (int *)param_3[1]" identifier = (cast_expression "(int *)param_3[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[1]" identifier [ number_literal ]))) ;) (if_statement "if (piVar16 != piVar14) {\n      bVar13 = *(byte *)(*piVar14 + 0x2c) >> 2 & 1;\n      if (piVar16 != piVar14 + 1) {\n        iVar4 = piVar14[1];\n        if ((*(byte *)(iVar4 + 0x2c) >> 2 & 1) == bVar13) {\n          piVar12 = piVar14 + 2;\n          do {\n            if (piVar16 == piVar12) goto LAB_000da77b;\n            iVar4 = *piVar12;\n            piVar12 = piVar12 + 1;\n          } while (bVar13 == (*(byte *)(iVar4 + 0x2c) >> 2 & 1));\n        }\n        uVar3 = *(undefined4 *)(iVar4 + 4);\n        uVar10 = *(undefined4 *)(*piVar14 + 4);\n        uVar8 = gettext("cannot mix split-stack \'%s\' and non-split-stack \'%s\' when using -r");\n                    /* WARNING: Subroutine does not return */\n        FUN_000d12d0(uVar8,uVar10,uVar3);\n      }\n    }" if (parenthesized_expression "(piVar16 != piVar14)" ( (binary_expression "piVar16 != piVar14" identifier != identifier) )) (compound_statement "{\n      bVar13 = *(byte *)(*piVar14 + 0x2c) >> 2 & 1;\n      if (piVar16 != piVar14 + 1) {\n        iVar4 = piVar14[1];\n        if ((*(byte *)(iVar4 + 0x2c) >> 2 & 1) == bVar13) {\n          piVar12 = piVar14 + 2;\n          do {\n            if (piVar16 == piVar12) goto LAB_000da77b;\n            iVar4 = *piVar12;\n            piVar12 = piVar12 + 1;\n          } while (bVar13 == (*(byte *)(iVar4 + 0x2c) >> 2 & 1));\n        }\n        uVar3 = *(undefined4 *)(iVar4 + 4);\n        uVar10 = *(undefined4 *)(*piVar14 + 4);\n        uVar8 = gettext("cannot mix split-stack \'%s\' and non-split-stack \'%s\' when using -r");\n                    /* WARNING: Subroutine does not return */\n        FUN_000d12d0(uVar8,uVar10,uVar3);\n      }\n    }" { (expression_statement "bVar13 = *(byte *)(*piVar14 + 0x2c) >> 2 & 1;" (assignment_expression "bVar13 = *(byte *)(*piVar14 + 0x2c) >> 2 & 1" identifier = (binary_expression "*(byte *)(*piVar14 + 0x2c) >> 2 & 1" (binary_expression "*(byte *)(*piVar14 + 0x2c) >> 2" (pointer_expression "*(byte *)(*piVar14 + 0x2c)" * (cast_expression "(byte *)(*piVar14 + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar14 + 0x2c)" ( (binary_expression "*piVar14 + 0x2c" (pointer_expression "*piVar14" * identifier) + number_literal) )))) >> number_literal) & number_literal)) ;) (if_statement "if (piVar16 != piVar14 + 1) {\n        iVar4 = piVar14[1];\n        if ((*(byte *)(iVar4 + 0x2c) >> 2 & 1) == bVar13) {\n          piVar12 = piVar14 + 2;\n          do {\n            if (piVar16 == piVar12) goto LAB_000da77b;\n            iVar4 = *piVar12;\n            piVar12 = piVar12 + 1;\n          } while (bVar13 == (*(byte *)(iVar4 + 0x2c) >> 2 & 1));\n        }\n        uVar3 = *(undefined4 *)(iVar4 + 4);\n        uVar10 = *(undefined4 *)(*piVar14 + 4);\n        uVar8 = gettext("cannot mix split-stack \'%s\' and non-split-stack \'%s\' when using -r");\n                    /* WARNING: Subroutine does not return */\n        FUN_000d12d0(uVar8,uVar10,uVar3);\n      }" if (parenthesized_expression "(piVar16 != piVar14 + 1)" ( (binary_expression "piVar16 != piVar14 + 1" identifier != (binary_expression "piVar14 + 1" identifier + number_literal)) )) (compound_statement "{\n        iVar4 = piVar14[1];\n        if ((*(byte *)(iVar4 + 0x2c) >> 2 & 1) == bVar13) {\n          piVar12 = piVar14 + 2;\n          do {\n            if (piVar16 == piVar12) goto LAB_000da77b;\n            iVar4 = *piVar12;\n            piVar12 = piVar12 + 1;\n          } while (bVar13 == (*(byte *)(iVar4 + 0x2c) >> 2 & 1));\n        }\n        uVar3 = *(undefined4 *)(iVar4 + 4);\n        uVar10 = *(undefined4 *)(*piVar14 + 4);\n        uVar8 = gettext("cannot mix split-stack \'%s\' and non-split-stack \'%s\' when using -r");\n                    /* WARNING: Subroutine does not return */\n        FUN_000d12d0(uVar8,uVar10,uVar3);\n      }" { (expression_statement "iVar4 = piVar14[1];" (assignment_expression "iVar4 = piVar14[1]" identifier = (subscript_expression "piVar14[1]" identifier [ number_literal ])) ;) (if_statement "if ((*(byte *)(iVar4 + 0x2c) >> 2 & 1) == bVar13) {\n          piVar12 = piVar14 + 2;\n          do {\n            if (piVar16 == piVar12) goto LAB_000da77b;\n            iVar4 = *piVar12;\n            piVar12 = piVar12 + 1;\n          } while (bVar13 == (*(byte *)(iVar4 + 0x2c) >> 2 & 1));\n        }" if (parenthesized_expression "((*(byte *)(iVar4 + 0x2c) >> 2 & 1) == bVar13)" ( (binary_expression "(*(byte *)(iVar4 + 0x2c) >> 2 & 1) == bVar13" (parenthesized_expression "(*(byte *)(iVar4 + 0x2c) >> 2 & 1)" ( (binary_expression "*(byte *)(iVar4 + 0x2c) >> 2 & 1" (binary_expression "*(byte *)(iVar4 + 0x2c) >> 2" (pointer_expression "*(byte *)(iVar4 + 0x2c)" * (cast_expression "(byte *)(iVar4 + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2c)" ( (binary_expression "iVar4 + 0x2c" identifier + number_literal) )))) >> number_literal) & number_literal) )) == identifier) )) (compound_statement "{\n          piVar12 = piVar14 + 2;\n          do {\n            if (piVar16 == piVar12) goto LAB_000da77b;\n            iVar4 = *piVar12;\n            piVar12 = piVar12 + 1;\n          } while (bVar13 == (*(byte *)(iVar4 + 0x2c) >> 2 & 1));\n        }" { (expression_statement "piVar12 = piVar14 + 2;" (assignment_expression "piVar12 = piVar14 + 2" identifier = (binary_expression "piVar14 + 2" identifier + number_literal)) ;) (do_statement "do {\n            if (piVar16 == piVar12) goto LAB_000da77b;\n            iVar4 = *piVar12;\n            piVar12 = piVar12 + 1;\n          } while (bVar13 == (*(byte *)(iVar4 + 0x2c) >> 2 & 1));" do (compound_statement "{\n            if (piVar16 == piVar12) goto LAB_000da77b;\n            iVar4 = *piVar12;\n            piVar12 = piVar12 + 1;\n          }" { (if_statement "if (piVar16 == piVar12) goto LAB_000da77b;" if (parenthesized_expression "(piVar16 == piVar12)" ( (binary_expression "piVar16 == piVar12" identifier == identifier) )) (goto_statement "goto LAB_000da77b;" goto statement_identifier ;)) (expression_statement "iVar4 = *piVar12;" (assignment_expression "iVar4 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "piVar12 = piVar12 + 1;" (assignment_expression "piVar12 = piVar12 + 1" identifier = (binary_expression "piVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar13 == (*(byte *)(iVar4 + 0x2c) >> 2 & 1))" ( (binary_expression "bVar13 == (*(byte *)(iVar4 + 0x2c) >> 2 & 1)" identifier == (parenthesized_expression "(*(byte *)(iVar4 + 0x2c) >> 2 & 1)" ( (binary_expression "*(byte *)(iVar4 + 0x2c) >> 2 & 1" (binary_expression "*(byte *)(iVar4 + 0x2c) >> 2" (pointer_expression "*(byte *)(iVar4 + 0x2c)" * (cast_expression "(byte *)(iVar4 + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2c)" ( (binary_expression "iVar4 + 0x2c" identifier + number_literal) )))) >> number_literal) & number_literal) ))) )) ;) })) (expression_statement "uVar3 = *(undefined4 *)(iVar4 + 4);" (assignment_expression "uVar3 = *(undefined4 *)(iVar4 + 4)" identifier = (pointer_expression "*(undefined4 *)(iVar4 + 4)" * (cast_expression "(undefined4 *)(iVar4 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 4)" ( (binary_expression "iVar4 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = *(undefined4 *)(*piVar14 + 4);" (assignment_expression "uVar10 = *(undefined4 *)(*piVar14 + 4)" identifier = (pointer_expression "*(undefined4 *)(*piVar14 + 4)" * (cast_expression "(undefined4 *)(*piVar14 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar14 + 4)" ( (binary_expression "*piVar14 + 4" (pointer_expression "*piVar14" * identifier) + number_literal) ))))) ;) (expression_statement "uVar8 = gettext("cannot mix split-stack \'%s\' and non-split-stack \'%s\' when using -r");" (assignment_expression "uVar8 = gettext("cannot mix split-stack \'%s\' and non-split-stack \'%s\' when using -r")" identifier = (call_expression "gettext("cannot mix split-stack \'%s\' and non-split-stack \'%s\' when using -r")" identifier (argument_list "("cannot mix split-stack \'%s\' and non-split-stack \'%s\' when using -r")" ( (string_literal ""cannot mix split-stack \'%s\' and non-split-stack \'%s\' when using -r"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") )))) ;) comment (expression_statement "FUN_000d12d0(uVar8,uVar10,uVar3);" (call_expression "FUN_000d12d0(uVar8,uVar10,uVar3)" identifier (argument_list "(uVar8,uVar10,uVar3)" ( identifier , identifier , identifier ))) ;) })) })) })) (labeled_statement "LAB_000da77b:\n  cVar2 = FUN_001a5190(DAT_004144e8);" statement_identifier : (expression_statement "cVar2 = FUN_001a5190(DAT_004144e8);" (assignment_expression "cVar2 = FUN_001a5190(DAT_004144e8)" identifier = (call_expression "FUN_001a5190(DAT_004144e8)" identifier (argument_list "(DAT_004144e8)" ( identifier )))) ;)) (if_statement "if (cVar2 != '\0') {\n    piVar14 = *(int **)(param_5 + 0x244);\n    (**(code **)(*piVar14 + 0x18))(piVar14,param_4,param_5);\n    (**(code **)(*piVar14 + 0x1c))(piVar14,param_4);\n  }" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    piVar14 = *(int **)(param_5 + 0x244);\n    (**(code **)(*piVar14 + 0x18))(piVar14,param_4,param_5);\n    (**(code **)(*piVar14 + 0x1c))(piVar14,param_4);\n  }" { (expression_statement "piVar14 = *(int **)(param_5 + 0x244);" (assignment_expression "piVar14 = *(int **)(param_5 + 0x244)" identifier = (pointer_expression "*(int **)(param_5 + 0x244)" * (cast_expression "(int **)(param_5 + 0x244)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_5 + 0x244)" ( (binary_expression "param_5 + 0x244" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(*piVar14 + 0x18))(piVar14,param_4,param_5);" (call_expression "(**(code **)(*piVar14 + 0x18))(piVar14,param_4,param_5)" (parenthesized_expression "(**(code **)(*piVar14 + 0x18))" ( (pointer_expression "**(code **)(*piVar14 + 0x18)" * (pointer_expression "*(code **)(*piVar14 + 0x18)" * (cast_expression "(code **)(*piVar14 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar14 + 0x18)" ( (binary_expression "*piVar14 + 0x18" (pointer_expression "*piVar14" * identifier) + number_literal) ))))) )) (argument_list "(piVar14,param_4,param_5)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(*piVar14 + 0x1c))(piVar14,param_4);" (call_expression "(**(code **)(*piVar14 + 0x1c))(piVar14,param_4)" (parenthesized_expression "(**(code **)(*piVar14 + 0x1c))" ( (pointer_expression "**(code **)(*piVar14 + 0x1c)" * (pointer_expression "*(code **)(*piVar14 + 0x1c)" * (cast_expression "(code **)(*piVar14 + 0x1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar14 + 0x1c)" ( (binary_expression "*piVar14 + 0x1c" (pointer_expression "*piVar14" * identifier) + number_literal) ))))) )) (argument_list "(piVar14,param_4)" ( identifier , identifier ))) ;) })) (if_statement "if ((*(int *)(DAT_004144e8 + 8) != 0) && ((*(byte *)(DAT_004144e8 + 0x14) & 2) != 0)) {\n    FUN_001d9e80(*(undefined4 *)(param_5 + 4),*(undefined4 *)PTR_stderr_00413fbc);\n  }" if (parenthesized_expression "((*(int *)(DAT_004144e8 + 8) != 0) && ((*(byte *)(DAT_004144e8 + 0x14) & 2) != 0))" ( (binary_expression "(*(int *)(DAT_004144e8 + 8) != 0) && ((*(byte *)(DAT_004144e8 + 0x14) & 2) != 0)" (parenthesized_expression "(*(int *)(DAT_004144e8 + 8) != 0)" ( (binary_expression "*(int *)(DAT_004144e8 + 8) != 0" (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "((*(byte *)(DAT_004144e8 + 0x14) & 2) != 0)" ( (binary_expression "(*(byte *)(DAT_004144e8 + 0x14) & 2) != 0" (parenthesized_expression "(*(byte *)(DAT_004144e8 + 0x14) & 2)" ( (binary_expression "*(byte *)(DAT_004144e8 + 0x14) & 2" (pointer_expression "*(byte *)(DAT_004144e8 + 0x14)" * (cast_expression "(byte *)(DAT_004144e8 + 0x14)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 0x14)" ( (binary_expression "DAT_004144e8 + 0x14" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    FUN_001d9e80(*(undefined4 *)(param_5 + 4),*(undefined4 *)PTR_stderr_00413fbc);\n  }" { (expression_statement "FUN_001d9e80(*(undefined4 *)(param_5 + 4),*(undefined4 *)PTR_stderr_00413fbc);" (call_expression "FUN_001d9e80(*(undefined4 *)(param_5 + 4),*(undefined4 *)PTR_stderr_00413fbc)" identifier (argument_list "(*(undefined4 *)(param_5 + 4),*(undefined4 *)PTR_stderr_00413fbc)" ( (pointer_expression "*(undefined4 *)(param_5 + 4)" * (cast_expression "(undefined4 *)(param_5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 4)" ( (binary_expression "param_5 + 4" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)PTR_stderr_00413fbc" * (cast_expression "(undefined4 *)PTR_stderr_00413fbc" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) })) (expression_statement "FUN_00122e00(param_3);" (call_expression "FUN_00122e00(param_3)" identifier (argument_list "(param_3)" ( identifier ))) ;) (if_statement "if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;" if (parenthesized_expression "(*(int *)(DAT_004144e8 + 8) == 0)" ( (binary_expression "*(int *)(DAT_004144e8 + 8) == 0" (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_000dac36;" goto statement_identifier ;)) (if_statement "if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x4c2d) == '\0') {\n    FUN_001dc4a0(*(int *)(param_5 + 4) + 0x68,param_4);\n  }" if (parenthesized_expression "(*(char *)(*(int *)(DAT_004144e8 + 8) + 0x4c2d) == '\0')" ( (binary_expression "*(char *)(*(int *)(DAT_004144e8 + 8) + 0x4c2d) == '\0'" (pointer_expression "*(char *)(*(int *)(DAT_004144e8 + 8) + 0x4c2d)" * (cast_expression "(char *)(*(int *)(DAT_004144e8 + 8) + 0x4c2d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_004144e8 + 8) + 0x4c2d)" ( (binary_expression "*(int *)(DAT_004144e8 + 8) + 0x4c2d" (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    FUN_001dc4a0(*(int *)(param_5 + 4) + 0x68,param_4);\n  }" { (expression_statement "FUN_001dc4a0(*(int *)(param_5 + 4) + 0x68,param_4);" (call_expression "FUN_001dc4a0(*(int *)(param_5 + 4) + 0x68,param_4)" identifier (argument_list "(*(int *)(param_5 + 4) + 0x68,param_4)" ( (binary_expression "*(int *)(param_5 + 4) + 0x68" (pointer_expression "*(int *)(param_5 + 4)" * (cast_expression "(int *)(param_5 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 4)" ( (binary_expression "param_5 + 4" identifier + number_literal) )))) + number_literal) , identifier ))) ;) })) (expression_statement "FUN_001121d0(param_5);" (call_expression "FUN_001121d0(param_5)" identifier (argument_list "(param_5)" ( identifier ))) ;) (expression_statement "FUN_001d9480(*(undefined4 *)(param_5 + 4),param_5);" (call_expression "FUN_001d9480(*(undefined4 *)(param_5 + 4),param_5)" identifier (argument_list "(*(undefined4 *)(param_5 + 4),param_5)" ( (pointer_expression "*(undefined4 *)(param_5 + 4)" * (cast_expression "(undefined4 *)(param_5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 4)" ( (binary_expression "param_5 + 4" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "FUN_001112f0(param_5,param_4);" (call_expression "FUN_001112f0(param_5,param_4)" identifier (argument_list "(param_5,param_4)" ( identifier , identifier ))) ;) (expression_statement "FUN_001d94d0(*(undefined4 *)(param_5 + 4),param_4);" (call_expression "FUN_001d94d0(*(undefined4 *)(param_5 + 4),param_4)" identifier (argument_list "(*(undefined4 *)(param_5 + 4),param_4)" ( (pointer_expression "*(undefined4 *)(param_5 + 4)" * (cast_expression "(undefined4 *)(param_5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 4)" ( (binary_expression "param_5 + 4" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "piVar14 = *(int **)(DAT_004144e8 + 0xc);" (assignment_expression "piVar14 = *(int **)(DAT_004144e8 + 0xc)" identifier = (pointer_expression "*(int **)(DAT_004144e8 + 0xc)" * (cast_expression "(int **)(DAT_004144e8 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_004144e8 + 0xc)" ( (binary_expression "DAT_004144e8 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (piVar14 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../gold/parameters.h",0x69,"target",extraout_ECX);\n  }" if (parenthesized_expression "(piVar14 == (int *)0x0)" ( (binary_expression "piVar14 == (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_000da200("../../gold/parameters.h",0x69,"target",extraout_ECX);\n  }" { comment (expression_statement "FUN_000da200("../../gold/parameters.h",0x69,"target",extraout_ECX);" (call_expression "FUN_000da200("../../gold/parameters.h",0x69,"target",extraout_ECX)" identifier (argument_list "("../../gold/parameters.h",0x69,"target",extraout_ECX)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""target"" " string_content ") , identifier ))) ;) })) (expression_statement "FUN_0010c300(param_5,piVar14);" (call_expression "FUN_0010c300(param_5,piVar14)" identifier (argument_list "(param_5,piVar14)" ( identifier , identifier ))) ;) (if_statement "if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;" if (parenthesized_expression "(*(int *)(DAT_004144e8 + 8) == 0)" ( (binary_expression "*(int *)(DAT_004144e8 + 8) == 0" (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_000dac36;" goto statement_identifier ;)) (if_statement "if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) == '\0') {\n    FUN_0020afd0(param_4,param_5);\n    FUN_0010ee10(param_5,param_4);\n    if (*(code **)(*piVar14 + 0x84) != FUN_000a4200) {\n      (**(code **)(*piVar14 + 0x84))(piVar14,param_4,param_5);\n    }\n  }" if (parenthesized_expression "(*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) == '\0')" ( (binary_expression "*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) == '\0'" (pointer_expression "*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d)" * (cast_expression "(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_004144e8 + 8) + 0x318d)" ( (binary_expression "*(int *)(DAT_004144e8 + 8) + 0x318d" (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    FUN_0020afd0(param_4,param_5);\n    FUN_0010ee10(param_5,param_4);\n    if (*(code **)(*piVar14 + 0x84) != FUN_000a4200) {\n      (**(code **)(*piVar14 + 0x84))(piVar14,param_4,param_5);\n    }\n  }" { (expression_statement "FUN_0020afd0(param_4,param_5);" (call_expression "FUN_0020afd0(param_4,param_5)" identifier (argument_list "(param_4,param_5)" ( identifier , identifier ))) ;) (expression_statement "FUN_0010ee10(param_5,param_4);" (call_expression "FUN_0010ee10(param_5,param_4)" identifier (argument_list "(param_5,param_4)" ( identifier , identifier ))) ;) (if_statement "if (*(code **)(*piVar14 + 0x84) != FUN_000a4200) {\n      (**(code **)(*piVar14 + 0x84))(piVar14,param_4,param_5);\n    }" if (parenthesized_expression "(*(code **)(*piVar14 + 0x84) != FUN_000a4200)" ( (binary_expression "*(code **)(*piVar14 + 0x84) != FUN_000a4200" (pointer_expression "*(code **)(*piVar14 + 0x84)" * (cast_expression "(code **)(*piVar14 + 0x84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar14 + 0x84)" ( (binary_expression "*piVar14 + 0x84" (pointer_expression "*piVar14" * identifier) + number_literal) )))) != identifier) )) (compound_statement "{\n      (**(code **)(*piVar14 + 0x84))(piVar14,param_4,param_5);\n    }" { (expression_statement "(**(code **)(*piVar14 + 0x84))(piVar14,param_4,param_5);" (call_expression "(**(code **)(*piVar14 + 0x84))(piVar14,param_4,param_5)" (parenthesized_expression "(**(code **)(*piVar14 + 0x84))" ( (pointer_expression "**(code **)(*piVar14 + 0x84)" * (pointer_expression "*(code **)(*piVar14 + 0x84)" * (cast_expression "(code **)(*piVar14 + 0x84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar14 + 0x84)" ( (binary_expression "*piVar14 + 0x84" (pointer_expression "*piVar14" * identifier) + number_literal) ))))) )) (argument_list "(piVar14,param_4,param_5)" ( identifier , identifier , identifier ))) ;) })) })) (expression_statement "FUN_001081d0(param_5,param_4);" (call_expression "FUN_001081d0(param_5,param_4)" identifier (argument_list "(param_5,param_4)" ( identifier , identifier ))) ;) (expression_statement "iVar4 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar4 = *(int *)(DAT_004144e8 + 8)" identifier = (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar4 == 0) goto LAB_000dac36;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000dac36;" goto statement_identifier ;)) (expression_statement "local_20 = (undefined1 *)0x0;" (assignment_expression "local_20 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (*(char *)(iVar4 + 0xb51) != '\0') {\n    local_20 = (undefined1 *)FUN_00246670(0x14);\n    *local_20 = 1;\n    *(undefined4 *)(local_20 + 8) = 0;\n    *(undefined4 *)(local_20 + 0xc) = 0;\n    *(undefined4 *)(local_20 + 0x10) = 0;\n    *(undefined4 *)(local_20 + 4) = 1;\n    puVar6 = (undefined4 *)FUN_00246670(0x34);\n    puVar6[1] = 0;\n    puVar6[9] = param_4;\n    puVar6[2] = puVar6 + 4;\n    puVar6[10] = param_5;\n    puVar6[3] = 0;\n    *(undefined1 *)(puVar6 + 4) = 0;\n    *(undefined1 *)(puVar6 + 8) = 0;\n    *puVar6 = &PTR_FUN_00408d4c;\n    puVar6[0xb] = param_7;\n    puVar6[0xc] = local_20;\n    FUN_002000e0(param_6,puVar6);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }" if (parenthesized_expression "(*(char *)(iVar4 + 0xb51) != '\0')" ( (binary_expression "*(char *)(iVar4 + 0xb51) != '\0'" (pointer_expression "*(char *)(iVar4 + 0xb51)" * (cast_expression "(char *)(iVar4 + 0xb51)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xb51)" ( (binary_expression "iVar4 + 0xb51" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    local_20 = (undefined1 *)FUN_00246670(0x14);\n    *local_20 = 1;\n    *(undefined4 *)(local_20 + 8) = 0;\n    *(undefined4 *)(local_20 + 0xc) = 0;\n    *(undefined4 *)(local_20 + 0x10) = 0;\n    *(undefined4 *)(local_20 + 4) = 1;\n    puVar6 = (undefined4 *)FUN_00246670(0x34);\n    puVar6[1] = 0;\n    puVar6[9] = param_4;\n    puVar6[2] = puVar6 + 4;\n    puVar6[10] = param_5;\n    puVar6[3] = 0;\n    *(undefined1 *)(puVar6 + 4) = 0;\n    *(undefined1 *)(puVar6 + 8) = 0;\n    *puVar6 = &PTR_FUN_00408d4c;\n    puVar6[0xb] = param_7;\n    puVar6[0xc] = local_20;\n    FUN_002000e0(param_6,puVar6);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }" { (expression_statement "local_20 = (undefined1 *)FUN_00246670(0x14);" (assignment_expression "local_20 = (undefined1 *)FUN_00246670(0x14)" identifier = (cast_expression "(undefined1 *)FUN_00246670(0x14)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00246670(0x14)" identifier (argument_list "(0x14)" ( number_literal ))))) ;) (expression_statement "*local_20 = 1;" (assignment_expression "*local_20 = 1" (pointer_expression "*local_20" * identifier) = number_literal) ;) (expression_statement "*(undefined4 *)(local_20 + 8) = 0;" (assignment_expression "*(undefined4 *)(local_20 + 8) = 0" (pointer_expression "*(undefined4 *)(local_20 + 8)" * (cast_expression "(undefined4 *)(local_20 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_20 + 8)" ( (binary_expression "local_20 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(local_20 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(local_20 + 0xc) = 0" (pointer_expression "*(undefined4 *)(local_20 + 0xc)" * (cast_expression "(undefined4 *)(local_20 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_20 + 0xc)" ( (binary_expression "local_20 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(local_20 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(local_20 + 0x10) = 0" (pointer_expression "*(undefined4 *)(local_20 + 0x10)" * (cast_expression "(undefined4 *)(local_20 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_20 + 0x10)" ( (binary_expression "local_20 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(local_20 + 4) = 1;" (assignment_expression "*(undefined4 *)(local_20 + 4) = 1" (pointer_expression "*(undefined4 *)(local_20 + 4)" * (cast_expression "(undefined4 *)(local_20 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_20 + 4)" ( (binary_expression "local_20 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar6 = (undefined4 *)FUN_00246670(0x34);" (assignment_expression "puVar6 = (undefined4 *)FUN_00246670(0x34)" identifier = (cast_expression "(undefined4 *)FUN_00246670(0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00246670(0x34)" identifier (argument_list "(0x34)" ( number_literal ))))) ;) (expression_statement "puVar6[1] = 0;" (assignment_expression "puVar6[1] = 0" (subscript_expression "puVar6[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar6[9] = param_4;" (assignment_expression "puVar6[9] = param_4" (subscript_expression "puVar6[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[2] = puVar6 + 4;" (assignment_expression "puVar6[2] = puVar6 + 4" (subscript_expression "puVar6[2]" identifier [ number_literal ]) = (binary_expression "puVar6 + 4" identifier + number_literal)) ;) (expression_statement "puVar6[10] = param_5;" (assignment_expression "puVar6[10] = param_5" (subscript_expression "puVar6[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[3] = 0;" (assignment_expression "puVar6[3] = 0" (subscript_expression "puVar6[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar6 + 4) = 0;" (assignment_expression "*(undefined1 *)(puVar6 + 4) = 0" (pointer_expression "*(undefined1 *)(puVar6 + 4)" * (cast_expression "(undefined1 *)(puVar6 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 4)" ( (binary_expression "puVar6 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar6 + 8) = 0;" (assignment_expression "*(undefined1 *)(puVar6 + 8) = 0" (pointer_expression "*(undefined1 *)(puVar6 + 8)" * (cast_expression "(undefined1 *)(puVar6 + 8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 8)" ( (binary_expression "puVar6 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*puVar6 = &PTR_FUN_00408d4c;" (assignment_expression "*puVar6 = &PTR_FUN_00408d4c" (pointer_expression "*puVar6" * identifier) = (pointer_expression "&PTR_FUN_00408d4c" & identifier)) ;) (expression_statement "puVar6[0xb] = param_7;" (assignment_expression "puVar6[0xb] = param_7" (subscript_expression "puVar6[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[0xc] = local_20;" (assignment_expression "puVar6[0xc] = local_20" (subscript_expression "puVar6[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_002000e0(param_6,puVar6);" (call_expression "FUN_002000e0(param_6,puVar6)" identifier (argument_list "(param_6,puVar6)" ( identifier , identifier ))) ;) (expression_statement "iVar4 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar4 = *(int *)(DAT_004144e8 + 8)" identifier = (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar4 == 0) goto LAB_000dac36;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000dac36;" goto statement_identifier ;)) })) (expression_statement "piVar16 = (int *)*param_3;" (assignment_expression "piVar16 = (int *)*param_3" identifier = (cast_expression "(int *)*param_3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_3" * identifier))) ;) (if_statement "if ((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)) {\n    if (piVar16 != (int *)param_3[1]) {\n      do {\n        piVar12 = piVar16 + 1;\n        puVar5 = (undefined1 *)FUN_00246670(0x14);\n        iVar4 = *piVar16;\n        *puVar5 = 1;\n        *(undefined4 *)(puVar5 + 8) = 0;\n        *(undefined4 *)(puVar5 + 0xc) = 0;\n        *(undefined4 *)(puVar5 + 0x10) = 0;\n        *(undefined4 *)(puVar5 + 4) = 1;\n        puVar6 = (undefined4 *)FUN_00246670(0x38);\n        puVar6[0xc] = local_20;\n        *puVar6 = &PTR_FUN_00408390;\n        puVar6[2] = puVar6 + 4;\n        puVar6[9] = param_4;\n        puVar6[1] = 0;\n        puVar6[10] = param_5;\n        puVar6[3] = 0;\n        *(undefined1 *)(puVar6 + 4) = 0;\n        *(undefined1 *)(puVar6 + 8) = 0;\n        puVar6[0xb] = iVar4;\n        puVar6[0xd] = puVar5;\n        FUN_002000e0(param_6,puVar6);\n        local_20 = puVar5;\n        piVar16 = piVar12;\n      } while ((int *)param_3[1] != piVar12);\n      goto LAB_000da9b3;\n    }\n  }\n  else if (piVar16 != (int *)param_3[1]) {\n    do {\n      piVar12 = piVar16 + 1;\n      puVar5 = (undefined1 *)FUN_00246670(0x14);\n      iVar4 = *piVar16;\n      *puVar5 = 1;\n      *(undefined4 *)(puVar5 + 8) = 0;\n      uVar3 = *(undefined4 *)(iVar4 + 0x50);\n      *(undefined4 *)(puVar5 + 0xc) = 0;\n      *(undefined4 *)(puVar5 + 0x10) = 0;\n      *(undefined4 *)(puVar5 + 4) = 1;\n      puVar6 = (undefined4 *)FUN_00246670(0x3c);\n      puVar6[0xd] = local_20;\n      *puVar6 = &PTR_FUN_004083d0;\n      puVar6[1] = 0;\n      puVar6[9] = param_4;\n      puVar6[2] = puVar6 + 4;\n      puVar6[10] = param_5;\n      puVar6[3] = 0;\n      *(undefined1 *)(puVar6 + 4) = 0;\n      *(undefined1 *)(puVar6 + 8) = 0;\n      puVar6[0xb] = iVar4;\n      puVar6[0xc] = uVar3;\n      puVar6[0xe] = puVar5;\n      FUN_002000e0(param_6,puVar6);\n      local_20 = puVar5;\n      piVar16 = piVar12;\n    } while ((int *)param_3[1] != piVar12);\n    goto LAB_000da9b3;\n  }" if (parenthesized_expression "((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0))" ( (binary_expression "(*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)" (parenthesized_expression "(*(char *)(iVar4 + 0x18b1) == '\0')" ( (binary_expression "*(char *)(iVar4 + 0x18b1) == '\0'" (pointer_expression "*(char *)(iVar4 + 0x18b1)" * (cast_expression "(char *)(iVar4 + 0x18b1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18b1)" ( (binary_expression "iVar4 + 0x18b1" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(int *)(iVar4 + 0x5934) == 0)" ( (binary_expression "*(int *)(iVar4 + 0x5934) == 0" (pointer_expression "*(int *)(iVar4 + 0x5934)" * (cast_expression "(int *)(iVar4 + 0x5934)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x5934)" ( (binary_expression "iVar4 + 0x5934" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n    if (piVar16 != (int *)param_3[1]) {\n      do {\n        piVar12 = piVar16 + 1;\n        puVar5 = (undefined1 *)FUN_00246670(0x14);\n        iVar4 = *piVar16;\n        *puVar5 = 1;\n        *(undefined4 *)(puVar5 + 8) = 0;\n        *(undefined4 *)(puVar5 + 0xc) = 0;\n        *(undefined4 *)(puVar5 + 0x10) = 0;\n        *(undefined4 *)(puVar5 + 4) = 1;\n        puVar6 = (undefined4 *)FUN_00246670(0x38);\n        puVar6[0xc] = local_20;\n        *puVar6 = &PTR_FUN_00408390;\n        puVar6[2] = puVar6 + 4;\n        puVar6[9] = param_4;\n        puVar6[1] = 0;\n        puVar6[10] = param_5;\n        puVar6[3] = 0;\n        *(undefined1 *)(puVar6 + 4) = 0;\n        *(undefined1 *)(puVar6 + 8) = 0;\n        puVar6[0xb] = iVar4;\n        puVar6[0xd] = puVar5;\n        FUN_002000e0(param_6,puVar6);\n        local_20 = puVar5;\n        piVar16 = piVar12;\n      } while ((int *)param_3[1] != piVar12);\n      goto LAB_000da9b3;\n    }\n  }" { (if_statement "if (piVar16 != (int *)param_3[1]) {\n      do {\n        piVar12 = piVar16 + 1;\n        puVar5 = (undefined1 *)FUN_00246670(0x14);\n        iVar4 = *piVar16;\n        *puVar5 = 1;\n        *(undefined4 *)(puVar5 + 8) = 0;\n        *(undefined4 *)(puVar5 + 0xc) = 0;\n        *(undefined4 *)(puVar5 + 0x10) = 0;\n        *(undefined4 *)(puVar5 + 4) = 1;\n        puVar6 = (undefined4 *)FUN_00246670(0x38);\n        puVar6[0xc] = local_20;\n        *puVar6 = &PTR_FUN_00408390;\n        puVar6[2] = puVar6 + 4;\n        puVar6[9] = param_4;\n        puVar6[1] = 0;\n        puVar6[10] = param_5;\n        puVar6[3] = 0;\n        *(undefined1 *)(puVar6 + 4) = 0;\n        *(undefined1 *)(puVar6 + 8) = 0;\n        puVar6[0xb] = iVar4;\n        puVar6[0xd] = puVar5;\n        FUN_002000e0(param_6,puVar6);\n        local_20 = puVar5;\n        piVar16 = piVar12;\n      } while ((int *)param_3[1] != piVar12);\n      goto LAB_000da9b3;\n    }" if (parenthesized_expression "(piVar16 != (int *)param_3[1])" ( (binary_expression "piVar16 != (int *)param_3[1]" identifier != (cast_expression "(int *)param_3[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[1]" identifier [ number_literal ]))) )) (compound_statement "{\n      do {\n        piVar12 = piVar16 + 1;\n        puVar5 = (undefined1 *)FUN_00246670(0x14);\n        iVar4 = *piVar16;\n        *puVar5 = 1;\n        *(undefined4 *)(puVar5 + 8) = 0;\n        *(undefined4 *)(puVar5 + 0xc) = 0;\n        *(undefined4 *)(puVar5 + 0x10) = 0;\n        *(undefined4 *)(puVar5 + 4) = 1;\n        puVar6 = (undefined4 *)FUN_00246670(0x38);\n        puVar6[0xc] = local_20;\n        *puVar6 = &PTR_FUN_00408390;\n        puVar6[2] = puVar6 + 4;\n        puVar6[9] = param_4;\n        puVar6[1] = 0;\n        puVar6[10] = param_5;\n        puVar6[3] = 0;\n        *(undefined1 *)(puVar6 + 4) = 0;\n        *(undefined1 *)(puVar6 + 8) = 0;\n        puVar6[0xb] = iVar4;\n        puVar6[0xd] = puVar5;\n        FUN_002000e0(param_6,puVar6);\n        local_20 = puVar5;\n        piVar16 = piVar12;\n      } while ((int *)param_3[1] != piVar12);\n      goto LAB_000da9b3;\n    }" { (do_statement "do {\n        piVar12 = piVar16 + 1;\n        puVar5 = (undefined1 *)FUN_00246670(0x14);\n        iVar4 = *piVar16;\n        *puVar5 = 1;\n        *(undefined4 *)(puVar5 + 8) = 0;\n        *(undefined4 *)(puVar5 + 0xc) = 0;\n        *(undefined4 *)(puVar5 + 0x10) = 0;\n        *(undefined4 *)(puVar5 + 4) = 1;\n        puVar6 = (undefined4 *)FUN_00246670(0x38);\n        puVar6[0xc] = local_20;\n        *puVar6 = &PTR_FUN_00408390;\n        puVar6[2] = puVar6 + 4;\n        puVar6[9] = param_4;\n        puVar6[1] = 0;\n        puVar6[10] = param_5;\n        puVar6[3] = 0;\n        *(undefined1 *)(puVar6 + 4) = 0;\n        *(undefined1 *)(puVar6 + 8) = 0;\n        puVar6[0xb] = iVar4;\n        puVar6[0xd] = puVar5;\n        FUN_002000e0(param_6,puVar6);\n        local_20 = puVar5;\n        piVar16 = piVar12;\n      } while ((int *)param_3[1] != piVar12);" do (compound_statement "{\n        piVar12 = piVar16 + 1;\n        puVar5 = (undefined1 *)FUN_00246670(0x14);\n        iVar4 = *piVar16;\n        *puVar5 = 1;\n        *(undefined4 *)(puVar5 + 8) = 0;\n        *(undefined4 *)(puVar5 + 0xc) = 0;\n        *(undefined4 *)(puVar5 + 0x10) = 0;\n        *(undefined4 *)(puVar5 + 4) = 1;\n        puVar6 = (undefined4 *)FUN_00246670(0x38);\n        puVar6[0xc] = local_20;\n        *puVar6 = &PTR_FUN_00408390;\n        puVar6[2] = puVar6 + 4;\n        puVar6[9] = param_4;\n        puVar6[1] = 0;\n        puVar6[10] = param_5;\n        puVar6[3] = 0;\n        *(undefined1 *)(puVar6 + 4) = 0;\n        *(undefined1 *)(puVar6 + 8) = 0;\n        puVar6[0xb] = iVar4;\n        puVar6[0xd] = puVar5;\n        FUN_002000e0(param_6,puVar6);\n        local_20 = puVar5;\n        piVar16 = piVar12;\n      }" { (expression_statement "piVar12 = piVar16 + 1;" (assignment_expression "piVar12 = piVar16 + 1" identifier = (binary_expression "piVar16 + 1" identifier + number_literal)) ;) (expression_statement "puVar5 = (undefined1 *)FUN_00246670(0x14);" (assignment_expression "puVar5 = (undefined1 *)FUN_00246670(0x14)" identifier = (cast_expression "(undefined1 *)FUN_00246670(0x14)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00246670(0x14)" identifier (argument_list "(0x14)" ( number_literal ))))) ;) (expression_statement "iVar4 = *piVar16;" (assignment_expression "iVar4 = *piVar16" identifier = (pointer_expression "*piVar16" * identifier)) ;) (expression_statement "*puVar5 = 1;" (assignment_expression "*puVar5 = 1" (pointer_expression "*puVar5" * identifier) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar5 + 8) = 0;" (assignment_expression "*(undefined4 *)(puVar5 + 8) = 0" (pointer_expression "*(undefined4 *)(puVar5 + 8)" * (cast_expression "(undefined4 *)(puVar5 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 8)" ( (binary_expression "puVar5 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar5 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar5 + 0xc) = 0" (pointer_expression "*(undefined4 *)(puVar5 + 0xc)" * (cast_expression "(undefined4 *)(puVar5 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0xc)" ( (binary_expression "puVar5 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar5 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar5 + 0x10) = 0" (pointer_expression "*(undefined4 *)(puVar5 + 0x10)" * (cast_expression "(undefined4 *)(puVar5 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0x10)" ( (binary_expression "puVar5 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar5 + 4) = 1;" (assignment_expression "*(undefined4 *)(puVar5 + 4) = 1" (pointer_expression "*(undefined4 *)(puVar5 + 4)" * (cast_expression "(undefined4 *)(puVar5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 4)" ( (binary_expression "puVar5 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar6 = (undefined4 *)FUN_00246670(0x38);" (assignment_expression "puVar6 = (undefined4 *)FUN_00246670(0x38)" identifier = (cast_expression "(undefined4 *)FUN_00246670(0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00246670(0x38)" identifier (argument_list "(0x38)" ( number_literal ))))) ;) (expression_statement "puVar6[0xc] = local_20;" (assignment_expression "puVar6[0xc] = local_20" (subscript_expression "puVar6[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar6 = &PTR_FUN_00408390;" (assignment_expression "*puVar6 = &PTR_FUN_00408390" (pointer_expression "*puVar6" * identifier) = (pointer_expression "&PTR_FUN_00408390" & identifier)) ;) (expression_statement "puVar6[2] = puVar6 + 4;" (assignment_expression "puVar6[2] = puVar6 + 4" (subscript_expression "puVar6[2]" identifier [ number_literal ]) = (binary_expression "puVar6 + 4" identifier + number_literal)) ;) (expression_statement "puVar6[9] = param_4;" (assignment_expression "puVar6[9] = param_4" (subscript_expression "puVar6[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[1] = 0;" (assignment_expression "puVar6[1] = 0" (subscript_expression "puVar6[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar6[10] = param_5;" (assignment_expression "puVar6[10] = param_5" (subscript_expression "puVar6[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[3] = 0;" (assignment_expression "puVar6[3] = 0" (subscript_expression "puVar6[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar6 + 4) = 0;" (assignment_expression "*(undefined1 *)(puVar6 + 4) = 0" (pointer_expression "*(undefined1 *)(puVar6 + 4)" * (cast_expression "(undefined1 *)(puVar6 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 4)" ( (binary_expression "puVar6 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar6 + 8) = 0;" (assignment_expression "*(undefined1 *)(puVar6 + 8) = 0" (pointer_expression "*(undefined1 *)(puVar6 + 8)" * (cast_expression "(undefined1 *)(puVar6 + 8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 8)" ( (binary_expression "puVar6 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar6[0xb] = iVar4;" (assignment_expression "puVar6[0xb] = iVar4" (subscript_expression "puVar6[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[0xd] = puVar5;" (assignment_expression "puVar6[0xd] = puVar5" (subscript_expression "puVar6[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_002000e0(param_6,puVar6);" (call_expression "FUN_002000e0(param_6,puVar6)" identifier (argument_list "(param_6,puVar6)" ( identifier , identifier ))) ;) (expression_statement "local_20 = puVar5;" (assignment_expression "local_20 = puVar5" identifier = identifier) ;) (expression_statement "piVar16 = piVar12;" (assignment_expression "piVar16 = piVar12" identifier = identifier) ;) }) while (parenthesized_expression "((int *)param_3[1] != piVar12)" ( (binary_expression "(int *)param_3[1] != piVar12" (cast_expression "(int *)param_3[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[1]" identifier [ number_literal ])) != identifier) )) ;) (goto_statement "goto LAB_000da9b3;" goto statement_identifier ;) })) }) (else_clause "else if (piVar16 != (int *)param_3[1]) {\n    do {\n      piVar12 = piVar16 + 1;\n      puVar5 = (undefined1 *)FUN_00246670(0x14);\n      iVar4 = *piVar16;\n      *puVar5 = 1;\n      *(undefined4 *)(puVar5 + 8) = 0;\n      uVar3 = *(undefined4 *)(iVar4 + 0x50);\n      *(undefined4 *)(puVar5 + 0xc) = 0;\n      *(undefined4 *)(puVar5 + 0x10) = 0;\n      *(undefined4 *)(puVar5 + 4) = 1;\n      puVar6 = (undefined4 *)FUN_00246670(0x3c);\n      puVar6[0xd] = local_20;\n      *puVar6 = &PTR_FUN_004083d0;\n      puVar6[1] = 0;\n      puVar6[9] = param_4;\n      puVar6[2] = puVar6 + 4;\n      puVar6[10] = param_5;\n      puVar6[3] = 0;\n      *(undefined1 *)(puVar6 + 4) = 0;\n      *(undefined1 *)(puVar6 + 8) = 0;\n      puVar6[0xb] = iVar4;\n      puVar6[0xc] = uVar3;\n      puVar6[0xe] = puVar5;\n      FUN_002000e0(param_6,puVar6);\n      local_20 = puVar5;\n      piVar16 = piVar12;\n    } while ((int *)param_3[1] != piVar12);\n    goto LAB_000da9b3;\n  }" else (if_statement "if (piVar16 != (int *)param_3[1]) {\n    do {\n      piVar12 = piVar16 + 1;\n      puVar5 = (undefined1 *)FUN_00246670(0x14);\n      iVar4 = *piVar16;\n      *puVar5 = 1;\n      *(undefined4 *)(puVar5 + 8) = 0;\n      uVar3 = *(undefined4 *)(iVar4 + 0x50);\n      *(undefined4 *)(puVar5 + 0xc) = 0;\n      *(undefined4 *)(puVar5 + 0x10) = 0;\n      *(undefined4 *)(puVar5 + 4) = 1;\n      puVar6 = (undefined4 *)FUN_00246670(0x3c);\n      puVar6[0xd] = local_20;\n      *puVar6 = &PTR_FUN_004083d0;\n      puVar6[1] = 0;\n      puVar6[9] = param_4;\n      puVar6[2] = puVar6 + 4;\n      puVar6[10] = param_5;\n      puVar6[3] = 0;\n      *(undefined1 *)(puVar6 + 4) = 0;\n      *(undefined1 *)(puVar6 + 8) = 0;\n      puVar6[0xb] = iVar4;\n      puVar6[0xc] = uVar3;\n      puVar6[0xe] = puVar5;\n      FUN_002000e0(param_6,puVar6);\n      local_20 = puVar5;\n      piVar16 = piVar12;\n    } while ((int *)param_3[1] != piVar12);\n    goto LAB_000da9b3;\n  }" if (parenthesized_expression "(piVar16 != (int *)param_3[1])" ( (binary_expression "piVar16 != (int *)param_3[1]" identifier != (cast_expression "(int *)param_3[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[1]" identifier [ number_literal ]))) )) (compound_statement "{\n    do {\n      piVar12 = piVar16 + 1;\n      puVar5 = (undefined1 *)FUN_00246670(0x14);\n      iVar4 = *piVar16;\n      *puVar5 = 1;\n      *(undefined4 *)(puVar5 + 8) = 0;\n      uVar3 = *(undefined4 *)(iVar4 + 0x50);\n      *(undefined4 *)(puVar5 + 0xc) = 0;\n      *(undefined4 *)(puVar5 + 0x10) = 0;\n      *(undefined4 *)(puVar5 + 4) = 1;\n      puVar6 = (undefined4 *)FUN_00246670(0x3c);\n      puVar6[0xd] = local_20;\n      *puVar6 = &PTR_FUN_004083d0;\n      puVar6[1] = 0;\n      puVar6[9] = param_4;\n      puVar6[2] = puVar6 + 4;\n      puVar6[10] = param_5;\n      puVar6[3] = 0;\n      *(undefined1 *)(puVar6 + 4) = 0;\n      *(undefined1 *)(puVar6 + 8) = 0;\n      puVar6[0xb] = iVar4;\n      puVar6[0xc] = uVar3;\n      puVar6[0xe] = puVar5;\n      FUN_002000e0(param_6,puVar6);\n      local_20 = puVar5;\n      piVar16 = piVar12;\n    } while ((int *)param_3[1] != piVar12);\n    goto LAB_000da9b3;\n  }" { (do_statement "do {\n      piVar12 = piVar16 + 1;\n      puVar5 = (undefined1 *)FUN_00246670(0x14);\n      iVar4 = *piVar16;\n      *puVar5 = 1;\n      *(undefined4 *)(puVar5 + 8) = 0;\n      uVar3 = *(undefined4 *)(iVar4 + 0x50);\n      *(undefined4 *)(puVar5 + 0xc) = 0;\n      *(undefined4 *)(puVar5 + 0x10) = 0;\n      *(undefined4 *)(puVar5 + 4) = 1;\n      puVar6 = (undefined4 *)FUN_00246670(0x3c);\n      puVar6[0xd] = local_20;\n      *puVar6 = &PTR_FUN_004083d0;\n      puVar6[1] = 0;\n      puVar6[9] = param_4;\n      puVar6[2] = puVar6 + 4;\n      puVar6[10] = param_5;\n      puVar6[3] = 0;\n      *(undefined1 *)(puVar6 + 4) = 0;\n      *(undefined1 *)(puVar6 + 8) = 0;\n      puVar6[0xb] = iVar4;\n      puVar6[0xc] = uVar3;\n      puVar6[0xe] = puVar5;\n      FUN_002000e0(param_6,puVar6);\n      local_20 = puVar5;\n      piVar16 = piVar12;\n    } while ((int *)param_3[1] != piVar12);" do (compound_statement "{\n      piVar12 = piVar16 + 1;\n      puVar5 = (undefined1 *)FUN_00246670(0x14);\n      iVar4 = *piVar16;\n      *puVar5 = 1;\n      *(undefined4 *)(puVar5 + 8) = 0;\n      uVar3 = *(undefined4 *)(iVar4 + 0x50);\n      *(undefined4 *)(puVar5 + 0xc) = 0;\n      *(undefined4 *)(puVar5 + 0x10) = 0;\n      *(undefined4 *)(puVar5 + 4) = 1;\n      puVar6 = (undefined4 *)FUN_00246670(0x3c);\n      puVar6[0xd] = local_20;\n      *puVar6 = &PTR_FUN_004083d0;\n      puVar6[1] = 0;\n      puVar6[9] = param_4;\n      puVar6[2] = puVar6 + 4;\n      puVar6[10] = param_5;\n      puVar6[3] = 0;\n      *(undefined1 *)(puVar6 + 4) = 0;\n      *(undefined1 *)(puVar6 + 8) = 0;\n      puVar6[0xb] = iVar4;\n      puVar6[0xc] = uVar3;\n      puVar6[0xe] = puVar5;\n      FUN_002000e0(param_6,puVar6);\n      local_20 = puVar5;\n      piVar16 = piVar12;\n    }" { (expression_statement "piVar12 = piVar16 + 1;" (assignment_expression "piVar12 = piVar16 + 1" identifier = (binary_expression "piVar16 + 1" identifier + number_literal)) ;) (expression_statement "puVar5 = (undefined1 *)FUN_00246670(0x14);" (assignment_expression "puVar5 = (undefined1 *)FUN_00246670(0x14)" identifier = (cast_expression "(undefined1 *)FUN_00246670(0x14)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00246670(0x14)" identifier (argument_list "(0x14)" ( number_literal ))))) ;) (expression_statement "iVar4 = *piVar16;" (assignment_expression "iVar4 = *piVar16" identifier = (pointer_expression "*piVar16" * identifier)) ;) (expression_statement "*puVar5 = 1;" (assignment_expression "*puVar5 = 1" (pointer_expression "*puVar5" * identifier) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar5 + 8) = 0;" (assignment_expression "*(undefined4 *)(puVar5 + 8) = 0" (pointer_expression "*(undefined4 *)(puVar5 + 8)" * (cast_expression "(undefined4 *)(puVar5 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 8)" ( (binary_expression "puVar5 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar3 = *(undefined4 *)(iVar4 + 0x50);" (assignment_expression "uVar3 = *(undefined4 *)(iVar4 + 0x50)" identifier = (pointer_expression "*(undefined4 *)(iVar4 + 0x50)" * (cast_expression "(undefined4 *)(iVar4 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x50)" ( (binary_expression "iVar4 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar5 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar5 + 0xc) = 0" (pointer_expression "*(undefined4 *)(puVar5 + 0xc)" * (cast_expression "(undefined4 *)(puVar5 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0xc)" ( (binary_expression "puVar5 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar5 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar5 + 0x10) = 0" (pointer_expression "*(undefined4 *)(puVar5 + 0x10)" * (cast_expression "(undefined4 *)(puVar5 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0x10)" ( (binary_expression "puVar5 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar5 + 4) = 1;" (assignment_expression "*(undefined4 *)(puVar5 + 4) = 1" (pointer_expression "*(undefined4 *)(puVar5 + 4)" * (cast_expression "(undefined4 *)(puVar5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 4)" ( (binary_expression "puVar5 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar6 = (undefined4 *)FUN_00246670(0x3c);" (assignment_expression "puVar6 = (undefined4 *)FUN_00246670(0x3c)" identifier = (cast_expression "(undefined4 *)FUN_00246670(0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00246670(0x3c)" identifier (argument_list "(0x3c)" ( number_literal ))))) ;) (expression_statement "puVar6[0xd] = local_20;" (assignment_expression "puVar6[0xd] = local_20" (subscript_expression "puVar6[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar6 = &PTR_FUN_004083d0;" (assignment_expression "*puVar6 = &PTR_FUN_004083d0" (pointer_expression "*puVar6" * identifier) = (pointer_expression "&PTR_FUN_004083d0" & identifier)) ;) (expression_statement "puVar6[1] = 0;" (assignment_expression "puVar6[1] = 0" (subscript_expression "puVar6[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar6[9] = param_4;" (assignment_expression "puVar6[9] = param_4" (subscript_expression "puVar6[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[2] = puVar6 + 4;" (assignment_expression "puVar6[2] = puVar6 + 4" (subscript_expression "puVar6[2]" identifier [ number_literal ]) = (binary_expression "puVar6 + 4" identifier + number_literal)) ;) (expression_statement "puVar6[10] = param_5;" (assignment_expression "puVar6[10] = param_5" (subscript_expression "puVar6[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[3] = 0;" (assignment_expression "puVar6[3] = 0" (subscript_expression "puVar6[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar6 + 4) = 0;" (assignment_expression "*(undefined1 *)(puVar6 + 4) = 0" (pointer_expression "*(undefined1 *)(puVar6 + 4)" * (cast_expression "(undefined1 *)(puVar6 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 4)" ( (binary_expression "puVar6 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar6 + 8) = 0;" (assignment_expression "*(undefined1 *)(puVar6 + 8) = 0" (pointer_expression "*(undefined1 *)(puVar6 + 8)" * (cast_expression "(undefined1 *)(puVar6 + 8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 8)" ( (binary_expression "puVar6 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar6[0xb] = iVar4;" (assignment_expression "puVar6[0xb] = iVar4" (subscript_expression "puVar6[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[0xc] = uVar3;" (assignment_expression "puVar6[0xc] = uVar3" (subscript_expression "puVar6[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[0xe] = puVar5;" (assignment_expression "puVar6[0xe] = puVar5" (subscript_expression "puVar6[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_002000e0(param_6,puVar6);" (call_expression "FUN_002000e0(param_6,puVar6)" identifier (argument_list "(param_6,puVar6)" ( identifier , identifier ))) ;) (expression_statement "local_20 = puVar5;" (assignment_expression "local_20 = puVar5" identifier = identifier) ;) (expression_statement "piVar16 = piVar12;" (assignment_expression "piVar16 = piVar12" identifier = identifier) ;) }) while (parenthesized_expression "((int *)param_3[1] != piVar12)" ( (binary_expression "(int *)param_3[1] != piVar12" (cast_expression "(int *)param_3[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[1]" identifier [ number_literal ])) != identifier) )) ;) (goto_statement "goto LAB_000da9b3;" goto statement_identifier ;) })))) (expression_statement "puVar5 = local_20;" (assignment_expression "puVar5 = local_20" identifier = identifier) ;) (if_statement "if (local_20 == (undefined1 *)0x0) {\n    puVar5 = (undefined1 *)FUN_00246670(0x14);\n    *puVar5 = 1;\n    *(undefined4 *)(puVar5 + 4) = 0;\n    *(undefined4 *)(puVar5 + 8) = 0;\n    *(undefined4 *)(puVar5 + 0xc) = 0;\n    *(undefined4 *)(puVar5 + 0x10) = 0;\n  }" if (parenthesized_expression "(local_20 == (undefined1 *)0x0)" ( (binary_expression "local_20 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar5 = (undefined1 *)FUN_00246670(0x14);\n    *puVar5 = 1;\n    *(undefined4 *)(puVar5 + 4) = 0;\n    *(undefined4 *)(puVar5 + 8) = 0;\n    *(undefined4 *)(puVar5 + 0xc) = 0;\n    *(undefined4 *)(puVar5 + 0x10) = 0;\n  }" { (expression_statement "puVar5 = (undefined1 *)FUN_00246670(0x14);" (assignment_expression "puVar5 = (undefined1 *)FUN_00246670(0x14)" identifier = (cast_expression "(undefined1 *)FUN_00246670(0x14)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00246670(0x14)" identifier (argument_list "(0x14)" ( number_literal ))))) ;) (expression_statement "*puVar5 = 1;" (assignment_expression "*puVar5 = 1" (pointer_expression "*puVar5" * identifier) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar5 + 4) = 0;" (assignment_expression "*(undefined4 *)(puVar5 + 4) = 0" (pointer_expression "*(undefined4 *)(puVar5 + 4)" * (cast_expression "(undefined4 *)(puVar5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 4)" ( (binary_expression "puVar5 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar5 + 8) = 0;" (assignment_expression "*(undefined4 *)(puVar5 + 8) = 0" (pointer_expression "*(undefined4 *)(puVar5 + 8)" * (cast_expression "(undefined4 *)(puVar5 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 8)" ( (binary_expression "puVar5 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar5 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar5 + 0xc) = 0" (pointer_expression "*(undefined4 *)(puVar5 + 0xc)" * (cast_expression "(undefined4 *)(puVar5 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0xc)" ( (binary_expression "puVar5 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar5 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar5 + 0x10) = 0" (pointer_expression "*(undefined4 *)(puVar5 + 0x10)" * (cast_expression "(undefined4 *)(puVar5 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0x10)" ( (binary_expression "puVar5 + 0x10" identifier + number_literal) )))) = number_literal) ;) })) (labeled_statement "LAB_000da9b3:\n  puVar6 = (undefined4 *)FUN_00246670(0x1c);" statement_identifier : (expression_statement "puVar6 = (undefined4 *)FUN_00246670(0x1c);" (assignment_expression "puVar6 = (undefined4 *)FUN_00246670(0x1c)" identifier = (cast_expression "(undefined4 *)FUN_00246670(0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00246670(0x1c)" identifier (argument_list "(0x1c)" ( number_literal ))))) ;)) (expression_statement "*puVar6 = &PTR_FUN_00406ca0;" (assignment_expression "*puVar6 = &PTR_FUN_00406ca0" (pointer_expression "*puVar6" * identifier) = (pointer_expression "&PTR_FUN_00406ca0" & identifier)) ;) (expression_statement "puVar6[1] = param_1;" (assignment_expression "puVar6[1] = param_1" (subscript_expression "puVar6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[2] = param_3;" (assignment_expression "puVar6[2] = param_3" (subscript_expression "puVar6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[3] = param_4;" (assignment_expression "puVar6[3] = param_4" (subscript_expression "puVar6[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[4] = piVar14;" (assignment_expression "puVar6[4] = piVar14" (subscript_expression "puVar6[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[5] = param_5;" (assignment_expression "puVar6[5] = param_5" (subscript_expression "puVar6[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[6] = param_7;" (assignment_expression "puVar6[6] = param_7" (subscript_expression "puVar6[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7 = (undefined4 *)FUN_00246670(0x30);" (assignment_expression "puVar7 = (undefined4 *)FUN_00246670(0x30)" identifier = (cast_expression "(undefined4 *)FUN_00246670(0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00246670(0x30)" identifier (argument_list "(0x30)" ( number_literal ))))) ;) (expression_statement "puVar7[1] = 0;" (assignment_expression "puVar7[1] = 0" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[2] = puVar7 + 4;" (assignment_expression "puVar7[2] = puVar7 + 4" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = (binary_expression "puVar7 + 4" identifier + number_literal)) ;) (expression_statement "*puVar7 = &PTR_FUN_004066fc;" (assignment_expression "*puVar7 = &PTR_FUN_004066fc" (pointer_expression "*puVar7" * identifier) = (pointer_expression "&PTR_FUN_004066fc" & identifier)) ;) (expression_statement "puVar7[3] = 0;" (assignment_expression "puVar7[3] = 0" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar7 + 4) = 0;" (assignment_expression "*(undefined1 *)(puVar7 + 4) = 0" (pointer_expression "*(undefined1 *)(puVar7 + 4)" * (cast_expression "(undefined1 *)(puVar7 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 4)" ( (binary_expression "puVar7 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar7 + 8) = 0;" (assignment_expression "*(undefined1 *)(puVar7 + 8) = 0" (pointer_expression "*(undefined1 *)(puVar7 + 8)" * (cast_expression "(undefined1 *)(puVar7 + 8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 8)" ( (binary_expression "puVar7 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar7[9] = puVar6;" (assignment_expression "puVar7[9] = puVar6" (subscript_expression "puVar7[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[10] = puVar5;" (assignment_expression "puVar7[10] = puVar5" (subscript_expression "puVar7[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[0xb] = "Task_function Layout_task_runner";" (assignment_expression "puVar7[0xb] = "Task_function Layout_task_runner"" (subscript_expression "puVar7[0xb]" identifier [ number_literal ]) = (string_literal ""Task_function Layout_task_runner"" " string_content ")) ;) (expression_statement "FUN_002000e0(param_6,puVar7);" (call_expression "FUN_002000e0(param_6,puVar7)" identifier (argument_list "(param_6,puVar7)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Enum "DT": Some values do not have unique names */\n\nvoid gold::queue_middle_tasks\n               (General_options *options,Task *task,Input_objects *input_objects,\n               Symbol_table *symtab,Layout *layout,Workqueue *workqueue,Mapfile *mapfile)\n\n{\n}\n\n" comment comment (function_definition "void gold::queue_middle_tasks\n               (General_options *options,Task *task,Input_objects *input_objects,\n               Symbol_table *symtab,Layout *layout,Workqueue *workqueue,Mapfile *mapfile)\n\n{\n}" primitive_type (ERROR "gold::" identifier : :) (function_declarator "queue_middle_tasks\n               (General_options *options,Task *task,Input_objects *input_objects,\n               Symbol_table *symtab,Layout *layout,Workqueue *workqueue,Mapfile *mapfile)" identifier (parameter_list "(General_options *options,Task *task,Input_objects *input_objects,\n               Symbol_table *symtab,Layout *layout,Workqueue *workqueue,Mapfile *mapfile)" ( (parameter_declaration "General_options *options" type_identifier (pointer_declarator "*options" * identifier)) , (parameter_declaration "Task *task" type_identifier (pointer_declarator "*task" * identifier)) , (parameter_declaration "Input_objects *input_objects" type_identifier (pointer_declarator "*input_objects" * identifier)) , (parameter_declaration "Symbol_table *symtab" type_identifier (pointer_declarator "*symtab" * identifier)) , (parameter_declaration "Layout *layout" type_identifier (pointer_declarator "*layout" * identifier)) , (parameter_declaration "Workqueue *workqueue" type_identifier (pointer_declarator "*workqueue" * identifier)) , (parameter_declaration "Mapfile *mapfile" type_identifier (pointer_declarator "*mapfile" * identifier)) ))) (compound_statement "{\n}" { })))
(translation_unit "void FUN_000da420(int param_1,undefined4 param_2,int *param_3,int param_4,int param_5,\n                 undefined4 param_6,undefined4 param_7)\n\n{\n  undefined1 uVar1;\n  char cVar2;\n  undefined4 uVar3;\n  int iVar4;\n  undefined1 *puVar5;\n  undefined4 *puVar6;\n  undefined4 *puVar7;\n  undefined4 uVar8;\n  char *pcVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  undefined4 extraout_ECX;\n  int *piVar12;\n  byte bVar13;\n  int *piVar14;\n  int iVar15;\n  int *piVar16;\n  undefined1 *local_20;\n  \n  if (*(int *)(DAT_004144e8 + 4) != 0) {\n    FUN_001ffac0(*(int *)(DAT_004144e8 + 4),0);\n  }\n  if (((param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2) == 0) &&\n     (*(int *)(param_5 + 0x244) == 0)) {\n    FUN_001a5350();\n  }\n  FUN_001e9d80(param_4,param_5);\n  iVar4 = *(int *)(DAT_004144e8 + 8);\n  if (iVar4 == 0) goto LAB_000dac36;\n  if (*(char *)(iVar4 + 0x18b1) != '\0') {\n    uVar3 = FUN_001a50c0(DAT_004144e8);\n    iVar4 = FUN_001e9100(param_4,uVar3,0);\n    if (iVar4 != 0) {\n      FUN_001e7b10(param_4,iVar4);\n    }\n    if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n    iVar4 = FUN_001e9100(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1f20),0);\n    if (iVar4 != 0) {\n      if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf2c;\n            goto LAB_000dacd3;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dacd3:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf2c;\n        }\n      }\n      else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf2c:\n        FUN_001e7b10(param_4,iVar4);\n      }\n    }\n    if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n    iVar4 = FUN_001e9100(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1538),0);\n    if (iVar4 != 0) {\n      if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf0d;\n            goto LAB_000dad2d;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dad2d:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf0d;\n        }\n      }\n      else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf0d:\n        FUN_001e7b10(param_4,iVar4);\n      }\n    }\n    FUN_001e95f0(param_4,param_5);\n    if (*(int *)(param_4 + 0x158) == 0) {\n                    \n      FUN_000da200("../../gold/gold.cc",0x20b,"queue_middle_tasks",&__DT_PLTGOT);\n    }\n    FUN_00229ab0(*(int *)(param_4 + 0x158));\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }\n  if (*(int *)(iVar4 + 0x5934) == 0) {\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n  }\n  else {\n    FUN_000ded60(*(undefined4 *)(param_4 + 0x15c),param_3,param_4);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }\n  if ((((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)) &&\n      (*(char *)(param_5 + 0x1ce) == '\0')) ||\n     (piVar14 = (int *)*param_3, piVar14 == (int *)param_3[1])) {\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n  }\n  else {\n    do {\n      piVar16 = (int *)*piVar14;\n      piVar12 = piVar16;\n      if (piVar16[7] != 0) {\n        FUN_000d2820(piVar16[7] + 0x1c,param_2);\n        piVar12 = (int *)*piVar14;\n      }\n                    \n      (**(code **)(*piVar12 + 0x24))(piVar12,param_4,param_5,0);\n      if (piVar16[7] != 0) {\n        FUN_000d3850(piVar16[7] + 0x1c,param_2);\n      }\n      piVar14 = piVar14 + 1;\n    } while ((int *)param_3[1] != piVar14);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }\n  if (*(int *)(iVar4 + 0x593c) != 0) {\n    FUN_001a6980(*(int *)(iVar4 + 0x593c));\n  }\n  FUN_00107c00(param_5);\n  iVar4 = *(int *)(DAT_004144e8 + 8);\n  if (iVar4 == 0) goto LAB_000dac36;\n  if (((*(int *)(iVar4 + 0x593c) != 0) && (*(char *)(param_5 + 0x1cd) != '\0')) &&\n     ((*(int *)(iVar4 + 0x36d8) == 0 &&\n      (*(undefined4 **)(param_5 + 0x130) != *(undefined4 **)(param_5 + 0x134))))) {\n    puVar6 = *(undefined4 **)(param_5 + 0x130);\n    do {\n      puVar7 = puVar6 + 1;\n      FUN_0015d7d0(*puVar6,param_5 + 0x1ec);\n      puVar6 = puVar7;\n    } while (*(undefined4 **)(param_5 + 0x134) != puVar7);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }\n  if ((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)) {\n    iVar4 = *(int *)(param_1 + 0x3e70);\n  }\n  else {\n    piVar14 = (int *)*param_3;\n    if (piVar14 != (int *)param_3[1]) {\n      do {\n        piVar12 = (int *)*piVar14;\n        piVar16 = (int *)piVar12[0x14];\n        iVar4 = *piVar16;\n        if (iVar4 != piVar16[1]) {\n          while( true ) {\n            iVar15 = *piVar12;\n            uVar11 = *(uint *)(iVar4 + 4);\n            if (*(code **)(iVar15 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4);\n            }\n            else {\n              uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);\n              uVar11 = *(uint *)(iVar4 + 4);\n              piVar12 = (int *)*piVar14;\n              iVar15 = *piVar12;\n            }\n            *(undefined4 *)(iVar4 + 0x14) = uVar3;\n            uVar1 = (**(code **)(iVar15 + 0x88))(piVar12,uVar11);\n            *(undefined1 *)(iVar4 + 0x18) = uVar1;\n            if (piVar16[1] == iVar4 + 0x1c) break;\n            piVar12 = (int *)*piVar14;\n            iVar4 = iVar4 + 0x1c;\n          }\n        }\n        piVar14 = piVar14 + 1;\n      } while ((int *)param_3[1] != piVar14);\n    }\n    iVar4 = *(int *)(param_1 + 0x3e70);\n  }\n  if ((iVar4 == 0) &&\n     (iVar4 = (param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2), iVar4 < 2)) {\n    iVar4 = 2;\n  }\n  FUN_002007c0(param_6,iVar4);\n  if (param_3[4] == param_3[3]) {\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n    if ((*(char *)(iVar4 + 0x1a25) != '\0') || (*(char *)(iVar4 + 0x2931) != '\0'))\n    goto LAB_000da6a6;\n    FUN_001a52b0(1);\n  }\n  else {\nLAB_000da6a6:\n    FUN_001a52b0(0);\n    if (*(char *)(param_1 + 0x5938) != '\0') {\n      if ((int *)param_3[3] == (int *)param_3[4]) {\n                    \n        FUN_000da200("../../gold/gold.cc",0x265,"queue_middle_tasks",&__DT_PLTGOT);\n      }\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      uVar10 = gettext("cannot mix -static with dynamic object %s");\n      FUN_000d1330(uVar10,uVar3);\n    }\n    if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n    if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) != '\0') {\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      pcVar9 = "cannot mix -r with dynamic object %s";\nLAB_000db04c:\n      uVar10 = gettext(pcVar9);\n                    \n      FUN_000d12d0(uVar10,uVar3);\n    }\n    iVar4 = FUN_0014c1c0(param_1);\n    if (iVar4 != 0) {\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      pcVar9 = "cannot use non-ELF output format with dynamic object %s";\n      goto LAB_000db04c;\n    }\n  }\n  if (*(int *)(DAT_004144e8 + 8) == 0) {\nLAB_000dac36:\n                    \n    FUN_000da200("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) != '\0') {\n    piVar14 = (int *)*param_3;\n    piVar16 = (int *)param_3[1];\n    if (piVar16 != piVar14) {\n      bVar13 = *(byte *)(*piVar14 + 0x2c) >> 2 & 1;\n      if (piVar16 != piVar14 + 1) {\n        iVar4 = piVar14[1];\n        if ((*(byte *)(iVar4 + 0x2c) >> 2 & 1) == bVar13) {\n          piVar12 = piVar14 + 2;\n          do {\n            if (piVar16 == piVar12) goto LAB_000da77b;\n            iVar4 = *piVar12;\n            piVar12 = piVar12 + 1;\n          } while (bVar13 == (*(byte *)(iVar4 + 0x2c) >> 2 & 1));\n        }\n        uVar3 = *(undefined4 *)(iVar4 + 4);\n        uVar10 = *(undefined4 *)(*piVar14 + 4);\n        uVar8 = gettext("cannot mix split-stack \'%s\' and non-split-stack \'%s\' when using -r");\n                    \n        FUN_000d12d0(uVar8,uVar10,uVar3);\n      }\n    }\n  }\nLAB_000da77b:\n  cVar2 = FUN_001a5190(DAT_004144e8);\n  if (cVar2 != '\0') {\n    piVar14 = *(int **)(param_5 + 0x244);\n    (**(code **)(*piVar14 + 0x18))(piVar14,param_4,param_5);\n    (**(code **)(*piVar14 + 0x1c))(piVar14,param_4);\n  }\n  if ((*(int *)(DAT_004144e8 + 8) != 0) && ((*(byte *)(DAT_004144e8 + 0x14) & 2) != 0)) {\n    FUN_001d9e80(*(undefined4 *)(param_5 + 4),*(undefined4 *)PTR_stderr_00413fbc);\n  }\n  FUN_00122e00(param_3);\n  if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n  if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x4c2d) == '\0') {\n    FUN_001dc4a0(*(int *)(param_5 + 4) + 0x68,param_4);\n  }\n  FUN_001121d0(param_5);\n  FUN_001d9480(*(undefined4 *)(param_5 + 4),param_5);\n  FUN_001112f0(param_5,param_4);\n  FUN_001d94d0(*(undefined4 *)(param_5 + 4),param_4);\n  piVar14 = *(int **)(DAT_004144e8 + 0xc);\n  if (piVar14 == (int *)0x0) {\n                    \n    FUN_000da200("../../gold/parameters.h",0x69,"target",extraout_ECX);\n  }\n  FUN_0010c300(param_5,piVar14);\n  if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n  if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) == '\0') {\n    FUN_0020afd0(param_4,param_5);\n    FUN_0010ee10(param_5,param_4);\n    if (*(code **)(*piVar14 + 0x84) != FUN_000a4200) {\n      (**(code **)(*piVar14 + 0x84))(piVar14,param_4,param_5);\n    }\n  }\n  FUN_001081d0(param_5,param_4);\n  iVar4 = *(int *)(DAT_004144e8 + 8);\n  if (iVar4 == 0) goto LAB_000dac36;\n  local_20 = (undefined1 *)0x0;\n  if (*(char *)(iVar4 + 0xb51) != '\0') {\n    local_20 = (undefined1 *)FUN_00246670(0x14);\n    *local_20 = 1;\n    *(undefined4 *)(local_20 + 8) = 0;\n    *(undefined4 *)(local_20 + 0xc) = 0;\n    *(undefined4 *)(local_20 + 0x10) = 0;\n    *(undefined4 *)(local_20 + 4) = 1;\n    puVar6 = (undefined4 *)FUN_00246670(0x34);\n    puVar6[1] = 0;\n    puVar6[9] = param_4;\n    puVar6[2] = puVar6 + 4;\n    puVar6[10] = param_5;\n    puVar6[3] = 0;\n    *(undefined1 *)(puVar6 + 4) = 0;\n    *(undefined1 *)(puVar6 + 8) = 0;\n    *puVar6 = &PTR_FUN_00408d4c;\n    puVar6[0xb] = param_7;\n    puVar6[0xc] = local_20;\n    FUN_002000e0(param_6,puVar6);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }\n  piVar16 = (int *)*param_3;\n  if ((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)) {\n    if (piVar16 != (int *)param_3[1]) {\n      do {\n        piVar12 = piVar16 + 1;\n        puVar5 = (undefined1 *)FUN_00246670(0x14);\n        iVar4 = *piVar16;\n        *puVar5 = 1;\n        *(undefined4 *)(puVar5 + 8) = 0;\n        *(undefined4 *)(puVar5 + 0xc) = 0;\n        *(undefined4 *)(puVar5 + 0x10) = 0;\n        *(undefined4 *)(puVar5 + 4) = 1;\n        puVar6 = (undefined4 *)FUN_00246670(0x38);\n        puVar6[0xc] = local_20;\n        *puVar6 = &PTR_FUN_00408390;\n        puVar6[2] = puVar6 + 4;\n        puVar6[9] = param_4;\n        puVar6[1] = 0;\n        puVar6[10] = param_5;\n        puVar6[3] = 0;\n        *(undefined1 *)(puVar6 + 4) = 0;\n        *(undefined1 *)(puVar6 + 8) = 0;\n        puVar6[0xb] = iVar4;\n        puVar6[0xd] = puVar5;\n        FUN_002000e0(param_6,puVar6);\n        local_20 = puVar5;\n        piVar16 = piVar12;\n      } while ((int *)param_3[1] != piVar12);\n      goto LAB_000da9b3;\n    }\n  }\n  else if (piVar16 != (int *)param_3[1]) {\n    do {\n      piVar12 = piVar16 + 1;\n      puVar5 = (undefined1 *)FUN_00246670(0x14);\n      iVar4 = *piVar16;\n      *puVar5 = 1;\n      *(undefined4 *)(puVar5 + 8) = 0;\n      uVar3 = *(undefined4 *)(iVar4 + 0x50);\n      *(undefined4 *)(puVar5 + 0xc) = 0;\n      *(undefined4 *)(puVar5 + 0x10) = 0;\n      *(undefined4 *)(puVar5 + 4) = 1;\n      puVar6 = (undefined4 *)FUN_00246670(0x3c);\n      puVar6[0xd] = local_20;\n      *puVar6 = &PTR_FUN_004083d0;\n      puVar6[1] = 0;\n      puVar6[9] = param_4;\n      puVar6[2] = puVar6 + 4;\n      puVar6[10] = param_5;\n      puVar6[3] = 0;\n      *(undefined1 *)(puVar6 + 4) = 0;\n      *(undefined1 *)(puVar6 + 8) = 0;\n      puVar6[0xb] = iVar4;\n      puVar6[0xc] = uVar3;\n      puVar6[0xe] = puVar5;\n      FUN_002000e0(param_6,puVar6);\n      local_20 = puVar5;\n      piVar16 = piVar12;\n    } while ((int *)param_3[1] != piVar12);\n    goto LAB_000da9b3;\n  }\n  puVar5 = local_20;\n  if (local_20 == (undefined1 *)0x0) {\n    puVar5 = (undefined1 *)FUN_00246670(0x14);\n    *puVar5 = 1;\n    *(undefined4 *)(puVar5 + 4) = 0;\n    *(undefined4 *)(puVar5 + 8) = 0;\n    *(undefined4 *)(puVar5 + 0xc) = 0;\n    *(undefined4 *)(puVar5 + 0x10) = 0;\n  }\nLAB_000da9b3:\n  puVar6 = (undefined4 *)FUN_00246670(0x1c);\n  *puVar6 = &PTR_FUN_00406ca0;\n  puVar6[1] = param_1;\n  puVar6[2] = param_3;\n  puVar6[3] = param_4;\n  puVar6[4] = piVar14;\n  puVar6[5] = param_5;\n  puVar6[6] = param_7;\n  puVar7 = (undefined4 *)FUN_00246670(0x30);\n  puVar7[1] = 0;\n  puVar7[2] = puVar7 + 4;\n  *puVar7 = &PTR_FUN_004066fc;\n  puVar7[3] = 0;\n  *(undefined1 *)(puVar7 + 4) = 0;\n  *(undefined1 *)(puVar7 + 8) = 0;\n  puVar7[9] = puVar6;\n  puVar7[10] = puVar5;\n  puVar7[0xb] = "Task_function Layout_task_runner";\n  FUN_002000e0(param_6,puVar7);\n  return;\n}\n\n" (function_definition "void FUN_000da420(int param_1,undefined4 param_2,int *param_3,int param_4,int param_5,\n                 undefined4 param_6,undefined4 param_7)\n\n{\n  undefined1 uVar1;\n  char cVar2;\n  undefined4 uVar3;\n  int iVar4;\n  undefined1 *puVar5;\n  undefined4 *puVar6;\n  undefined4 *puVar7;\n  undefined4 uVar8;\n  char *pcVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  undefined4 extraout_ECX;\n  int *piVar12;\n  byte bVar13;\n  int *piVar14;\n  int iVar15;\n  int *piVar16;\n  undefined1 *local_20;\n  \n  if (*(int *)(DAT_004144e8 + 4) != 0) {\n    FUN_001ffac0(*(int *)(DAT_004144e8 + 4),0);\n  }\n  if (((param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2) == 0) &&\n     (*(int *)(param_5 + 0x244) == 0)) {\n    FUN_001a5350();\n  }\n  FUN_001e9d80(param_4,param_5);\n  iVar4 = *(int *)(DAT_004144e8 + 8);\n  if (iVar4 == 0) goto LAB_000dac36;\n  if (*(char *)(iVar4 + 0x18b1) != '\0') {\n    uVar3 = FUN_001a50c0(DAT_004144e8);\n    iVar4 = FUN_001e9100(param_4,uVar3,0);\n    if (iVar4 != 0) {\n      FUN_001e7b10(param_4,iVar4);\n    }\n    if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n    iVar4 = FUN_001e9100(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1f20),0);\n    if (iVar4 != 0) {\n      if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf2c;\n            goto LAB_000dacd3;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dacd3:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf2c;\n        }\n      }\n      else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf2c:\n        FUN_001e7b10(param_4,iVar4);\n      }\n    }\n    if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n    iVar4 = FUN_001e9100(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1538),0);\n    if (iVar4 != 0) {\n      if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf0d;\n            goto LAB_000dad2d;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dad2d:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf0d;\n        }\n      }\n      else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf0d:\n        FUN_001e7b10(param_4,iVar4);\n      }\n    }\n    FUN_001e95f0(param_4,param_5);\n    if (*(int *)(param_4 + 0x158) == 0) {\n                    \n      FUN_000da200("../../gold/gold.cc",0x20b,"queue_middle_tasks",&__DT_PLTGOT);\n    }\n    FUN_00229ab0(*(int *)(param_4 + 0x158));\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }\n  if (*(int *)(iVar4 + 0x5934) == 0) {\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n  }\n  else {\n    FUN_000ded60(*(undefined4 *)(param_4 + 0x15c),param_3,param_4);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }\n  if ((((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)) &&\n      (*(char *)(param_5 + 0x1ce) == '\0')) ||\n     (piVar14 = (int *)*param_3, piVar14 == (int *)param_3[1])) {\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n  }\n  else {\n    do {\n      piVar16 = (int *)*piVar14;\n      piVar12 = piVar16;\n      if (piVar16[7] != 0) {\n        FUN_000d2820(piVar16[7] + 0x1c,param_2);\n        piVar12 = (int *)*piVar14;\n      }\n                    \n      (**(code **)(*piVar12 + 0x24))(piVar12,param_4,param_5,0);\n      if (piVar16[7] != 0) {\n        FUN_000d3850(piVar16[7] + 0x1c,param_2);\n      }\n      piVar14 = piVar14 + 1;\n    } while ((int *)param_3[1] != piVar14);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }\n  if (*(int *)(iVar4 + 0x593c) != 0) {\n    FUN_001a6980(*(int *)(iVar4 + 0x593c));\n  }\n  FUN_00107c00(param_5);\n  iVar4 = *(int *)(DAT_004144e8 + 8);\n  if (iVar4 == 0) goto LAB_000dac36;\n  if (((*(int *)(iVar4 + 0x593c) != 0) && (*(char *)(param_5 + 0x1cd) != '\0')) &&\n     ((*(int *)(iVar4 + 0x36d8) == 0 &&\n      (*(undefined4 **)(param_5 + 0x130) != *(undefined4 **)(param_5 + 0x134))))) {\n    puVar6 = *(undefined4 **)(param_5 + 0x130);\n    do {\n      puVar7 = puVar6 + 1;\n      FUN_0015d7d0(*puVar6,param_5 + 0x1ec);\n      puVar6 = puVar7;\n    } while (*(undefined4 **)(param_5 + 0x134) != puVar7);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }\n  if ((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)) {\n    iVar4 = *(int *)(param_1 + 0x3e70);\n  }\n  else {\n    piVar14 = (int *)*param_3;\n    if (piVar14 != (int *)param_3[1]) {\n      do {\n        piVar12 = (int *)*piVar14;\n        piVar16 = (int *)piVar12[0x14];\n        iVar4 = *piVar16;\n        if (iVar4 != piVar16[1]) {\n          while( true ) {\n            iVar15 = *piVar12;\n            uVar11 = *(uint *)(iVar4 + 4);\n            if (*(code **)(iVar15 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4);\n            }\n            else {\n              uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);\n              uVar11 = *(uint *)(iVar4 + 4);\n              piVar12 = (int *)*piVar14;\n              iVar15 = *piVar12;\n            }\n            *(undefined4 *)(iVar4 + 0x14) = uVar3;\n            uVar1 = (**(code **)(iVar15 + 0x88))(piVar12,uVar11);\n            *(undefined1 *)(iVar4 + 0x18) = uVar1;\n            if (piVar16[1] == iVar4 + 0x1c) break;\n            piVar12 = (int *)*piVar14;\n            iVar4 = iVar4 + 0x1c;\n          }\n        }\n        piVar14 = piVar14 + 1;\n      } while ((int *)param_3[1] != piVar14);\n    }\n    iVar4 = *(int *)(param_1 + 0x3e70);\n  }\n  if ((iVar4 == 0) &&\n     (iVar4 = (param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2), iVar4 < 2)) {\n    iVar4 = 2;\n  }\n  FUN_002007c0(param_6,iVar4);\n  if (param_3[4] == param_3[3]) {\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n    if ((*(char *)(iVar4 + 0x1a25) != '\0') || (*(char *)(iVar4 + 0x2931) != '\0'))\n    goto LAB_000da6a6;\n    FUN_001a52b0(1);\n  }\n  else {\nLAB_000da6a6:\n    FUN_001a52b0(0);\n    if (*(char *)(param_1 + 0x5938) != '\0') {\n      if ((int *)param_3[3] == (int *)param_3[4]) {\n                    \n        FUN_000da200("../../gold/gold.cc",0x265,"queue_middle_tasks",&__DT_PLTGOT);\n      }\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      uVar10 = gettext("cannot mix -static with dynamic object %s");\n      FUN_000d1330(uVar10,uVar3);\n    }\n    if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n    if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) != '\0') {\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      pcVar9 = "cannot mix -r with dynamic object %s";\nLAB_000db04c:\n      uVar10 = gettext(pcVar9);\n                    \n      FUN_000d12d0(uVar10,uVar3);\n    }\n    iVar4 = FUN_0014c1c0(param_1);\n    if (iVar4 != 0) {\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      pcVar9 = "cannot use non-ELF output format with dynamic object %s";\n      goto LAB_000db04c;\n    }\n  }\n  if (*(int *)(DAT_004144e8 + 8) == 0) {\nLAB_000dac36:\n                    \n    FUN_000da200("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) != '\0') {\n    piVar14 = (int *)*param_3;\n    piVar16 = (int *)param_3[1];\n    if (piVar16 != piVar14) {\n      bVar13 = *(byte *)(*piVar14 + 0x2c) >> 2 & 1;\n      if (piVar16 != piVar14 + 1) {\n        iVar4 = piVar14[1];\n        if ((*(byte *)(iVar4 + 0x2c) >> 2 & 1) == bVar13) {\n          piVar12 = piVar14 + 2;\n          do {\n            if (piVar16 == piVar12) goto LAB_000da77b;\n            iVar4 = *piVar12;\n            piVar12 = piVar12 + 1;\n          } while (bVar13 == (*(byte *)(iVar4 + 0x2c) >> 2 & 1));\n        }\n        uVar3 = *(undefined4 *)(iVar4 + 4);\n        uVar10 = *(undefined4 *)(*piVar14 + 4);\n        uVar8 = gettext("cannot mix split-stack \'%s\' and non-split-stack \'%s\' when using -r");\n                    \n        FUN_000d12d0(uVar8,uVar10,uVar3);\n      }\n    }\n  }\nLAB_000da77b:\n  cVar2 = FUN_001a5190(DAT_004144e8);\n  if (cVar2 != '\0') {\n    piVar14 = *(int **)(param_5 + 0x244);\n    (**(code **)(*piVar14 + 0x18))(piVar14,param_4,param_5);\n    (**(code **)(*piVar14 + 0x1c))(piVar14,param_4);\n  }\n  if ((*(int *)(DAT_004144e8 + 8) != 0) && ((*(byte *)(DAT_004144e8 + 0x14) & 2) != 0)) {\n    FUN_001d9e80(*(undefined4 *)(param_5 + 4),*(undefined4 *)PTR_stderr_00413fbc);\n  }\n  FUN_00122e00(param_3);\n  if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n  if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x4c2d) == '\0') {\n    FUN_001dc4a0(*(int *)(param_5 + 4) + 0x68,param_4);\n  }\n  FUN_001121d0(param_5);\n  FUN_001d9480(*(undefined4 *)(param_5 + 4),param_5);\n  FUN_001112f0(param_5,param_4);\n  FUN_001d94d0(*(undefined4 *)(param_5 + 4),param_4);\n  piVar14 = *(int **)(DAT_004144e8 + 0xc);\n  if (piVar14 == (int *)0x0) {\n                    \n    FUN_000da200("../../gold/parameters.h",0x69,"target",extraout_ECX);\n  }\n  FUN_0010c300(param_5,piVar14);\n  if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n  if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) == '\0') {\n    FUN_0020afd0(param_4,param_5);\n    FUN_0010ee10(param_5,param_4);\n    if (*(code **)(*piVar14 + 0x84) != FUN_000a4200) {\n      (**(code **)(*piVar14 + 0x84))(piVar14,param_4,param_5);\n    }\n  }\n  FUN_001081d0(param_5,param_4);\n  iVar4 = *(int *)(DAT_004144e8 + 8);\n  if (iVar4 == 0) goto LAB_000dac36;\n  local_20 = (undefined1 *)0x0;\n  if (*(char *)(iVar4 + 0xb51) != '\0') {\n    local_20 = (undefined1 *)FUN_00246670(0x14);\n    *local_20 = 1;\n    *(undefined4 *)(local_20 + 8) = 0;\n    *(undefined4 *)(local_20 + 0xc) = 0;\n    *(undefined4 *)(local_20 + 0x10) = 0;\n    *(undefined4 *)(local_20 + 4) = 1;\n    puVar6 = (undefined4 *)FUN_00246670(0x34);\n    puVar6[1] = 0;\n    puVar6[9] = param_4;\n    puVar6[2] = puVar6 + 4;\n    puVar6[10] = param_5;\n    puVar6[3] = 0;\n    *(undefined1 *)(puVar6 + 4) = 0;\n    *(undefined1 *)(puVar6 + 8) = 0;\n    *puVar6 = &PTR_FUN_00408d4c;\n    puVar6[0xb] = param_7;\n    puVar6[0xc] = local_20;\n    FUN_002000e0(param_6,puVar6);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }\n  piVar16 = (int *)*param_3;\n  if ((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)) {\n    if (piVar16 != (int *)param_3[1]) {\n      do {\n        piVar12 = piVar16 + 1;\n        puVar5 = (undefined1 *)FUN_00246670(0x14);\n        iVar4 = *piVar16;\n        *puVar5 = 1;\n        *(undefined4 *)(puVar5 + 8) = 0;\n        *(undefined4 *)(puVar5 + 0xc) = 0;\n        *(undefined4 *)(puVar5 + 0x10) = 0;\n        *(undefined4 *)(puVar5 + 4) = 1;\n        puVar6 = (undefined4 *)FUN_00246670(0x38);\n        puVar6[0xc] = local_20;\n        *puVar6 = &PTR_FUN_00408390;\n        puVar6[2] = puVar6 + 4;\n        puVar6[9] = param_4;\n        puVar6[1] = 0;\n        puVar6[10] = param_5;\n        puVar6[3] = 0;\n        *(undefined1 *)(puVar6 + 4) = 0;\n        *(undefined1 *)(puVar6 + 8) = 0;\n        puVar6[0xb] = iVar4;\n        puVar6[0xd] = puVar5;\n        FUN_002000e0(param_6,puVar6);\n        local_20 = puVar5;\n        piVar16 = piVar12;\n      } while ((int *)param_3[1] != piVar12);\n      goto LAB_000da9b3;\n    }\n  }\n  else if (piVar16 != (int *)param_3[1]) {\n    do {\n      piVar12 = piVar16 + 1;\n      puVar5 = (undefined1 *)FUN_00246670(0x14);\n      iVar4 = *piVar16;\n      *puVar5 = 1;\n      *(undefined4 *)(puVar5 + 8) = 0;\n      uVar3 = *(undefined4 *)(iVar4 + 0x50);\n      *(undefined4 *)(puVar5 + 0xc) = 0;\n      *(undefined4 *)(puVar5 + 0x10) = 0;\n      *(undefined4 *)(puVar5 + 4) = 1;\n      puVar6 = (undefined4 *)FUN_00246670(0x3c);\n      puVar6[0xd] = local_20;\n      *puVar6 = &PTR_FUN_004083d0;\n      puVar6[1] = 0;\n      puVar6[9] = param_4;\n      puVar6[2] = puVar6 + 4;\n      puVar6[10] = param_5;\n      puVar6[3] = 0;\n      *(undefined1 *)(puVar6 + 4) = 0;\n      *(undefined1 *)(puVar6 + 8) = 0;\n      puVar6[0xb] = iVar4;\n      puVar6[0xc] = uVar3;\n      puVar6[0xe] = puVar5;\n      FUN_002000e0(param_6,puVar6);\n      local_20 = puVar5;\n      piVar16 = piVar12;\n    } while ((int *)param_3[1] != piVar12);\n    goto LAB_000da9b3;\n  }\n  puVar5 = local_20;\n  if (local_20 == (undefined1 *)0x0) {\n    puVar5 = (undefined1 *)FUN_00246670(0x14);\n    *puVar5 = 1;\n    *(undefined4 *)(puVar5 + 4) = 0;\n    *(undefined4 *)(puVar5 + 8) = 0;\n    *(undefined4 *)(puVar5 + 0xc) = 0;\n    *(undefined4 *)(puVar5 + 0x10) = 0;\n  }\nLAB_000da9b3:\n  puVar6 = (undefined4 *)FUN_00246670(0x1c);\n  *puVar6 = &PTR_FUN_00406ca0;\n  puVar6[1] = param_1;\n  puVar6[2] = param_3;\n  puVar6[3] = param_4;\n  puVar6[4] = piVar14;\n  puVar6[5] = param_5;\n  puVar6[6] = param_7;\n  puVar7 = (undefined4 *)FUN_00246670(0x30);\n  puVar7[1] = 0;\n  puVar7[2] = puVar7 + 4;\n  *puVar7 = &PTR_FUN_004066fc;\n  puVar7[3] = 0;\n  *(undefined1 *)(puVar7 + 4) = 0;\n  *(undefined1 *)(puVar7 + 8) = 0;\n  puVar7[9] = puVar6;\n  puVar7[10] = puVar5;\n  puVar7[0xb] = "Task_function Layout_task_runner";\n  FUN_002000e0(param_6,puVar7);\n  return;\n}" primitive_type (function_declarator "FUN_000da420(int param_1,undefined4 param_2,int *param_3,int param_4,int param_5,\n                 undefined4 param_6,undefined4 param_7)" identifier (parameter_list "(int param_1,undefined4 param_2,int *param_3,int param_4,int param_5,\n                 undefined4 param_6,undefined4 param_7)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "undefined4 param_6" type_identifier identifier) , (parameter_declaration "undefined4 param_7" type_identifier identifier) ))) (compound_statement "{\n  undefined1 uVar1;\n  char cVar2;\n  undefined4 uVar3;\n  int iVar4;\n  undefined1 *puVar5;\n  undefined4 *puVar6;\n  undefined4 *puVar7;\n  undefined4 uVar8;\n  char *pcVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  undefined4 extraout_ECX;\n  int *piVar12;\n  byte bVar13;\n  int *piVar14;\n  int iVar15;\n  int *piVar16;\n  undefined1 *local_20;\n  \n  if (*(int *)(DAT_004144e8 + 4) != 0) {\n    FUN_001ffac0(*(int *)(DAT_004144e8 + 4),0);\n  }\n  if (((param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2) == 0) &&\n     (*(int *)(param_5 + 0x244) == 0)) {\n    FUN_001a5350();\n  }\n  FUN_001e9d80(param_4,param_5);\n  iVar4 = *(int *)(DAT_004144e8 + 8);\n  if (iVar4 == 0) goto LAB_000dac36;\n  if (*(char *)(iVar4 + 0x18b1) != '\0') {\n    uVar3 = FUN_001a50c0(DAT_004144e8);\n    iVar4 = FUN_001e9100(param_4,uVar3,0);\n    if (iVar4 != 0) {\n      FUN_001e7b10(param_4,iVar4);\n    }\n    if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n    iVar4 = FUN_001e9100(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1f20),0);\n    if (iVar4 != 0) {\n      if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf2c;\n            goto LAB_000dacd3;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dacd3:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf2c;\n        }\n      }\n      else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf2c:\n        FUN_001e7b10(param_4,iVar4);\n      }\n    }\n    if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n    iVar4 = FUN_001e9100(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1538),0);\n    if (iVar4 != 0) {\n      if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf0d;\n            goto LAB_000dad2d;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dad2d:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf0d;\n        }\n      }\n      else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf0d:\n        FUN_001e7b10(param_4,iVar4);\n      }\n    }\n    FUN_001e95f0(param_4,param_5);\n    if (*(int *)(param_4 + 0x158) == 0) {\n                    \n      FUN_000da200("../../gold/gold.cc",0x20b,"queue_middle_tasks",&__DT_PLTGOT);\n    }\n    FUN_00229ab0(*(int *)(param_4 + 0x158));\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }\n  if (*(int *)(iVar4 + 0x5934) == 0) {\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n  }\n  else {\n    FUN_000ded60(*(undefined4 *)(param_4 + 0x15c),param_3,param_4);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }\n  if ((((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)) &&\n      (*(char *)(param_5 + 0x1ce) == '\0')) ||\n     (piVar14 = (int *)*param_3, piVar14 == (int *)param_3[1])) {\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n  }\n  else {\n    do {\n      piVar16 = (int *)*piVar14;\n      piVar12 = piVar16;\n      if (piVar16[7] != 0) {\n        FUN_000d2820(piVar16[7] + 0x1c,param_2);\n        piVar12 = (int *)*piVar14;\n      }\n                    \n      (**(code **)(*piVar12 + 0x24))(piVar12,param_4,param_5,0);\n      if (piVar16[7] != 0) {\n        FUN_000d3850(piVar16[7] + 0x1c,param_2);\n      }\n      piVar14 = piVar14 + 1;\n    } while ((int *)param_3[1] != piVar14);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }\n  if (*(int *)(iVar4 + 0x593c) != 0) {\n    FUN_001a6980(*(int *)(iVar4 + 0x593c));\n  }\n  FUN_00107c00(param_5);\n  iVar4 = *(int *)(DAT_004144e8 + 8);\n  if (iVar4 == 0) goto LAB_000dac36;\n  if (((*(int *)(iVar4 + 0x593c) != 0) && (*(char *)(param_5 + 0x1cd) != '\0')) &&\n     ((*(int *)(iVar4 + 0x36d8) == 0 &&\n      (*(undefined4 **)(param_5 + 0x130) != *(undefined4 **)(param_5 + 0x134))))) {\n    puVar6 = *(undefined4 **)(param_5 + 0x130);\n    do {\n      puVar7 = puVar6 + 1;\n      FUN_0015d7d0(*puVar6,param_5 + 0x1ec);\n      puVar6 = puVar7;\n    } while (*(undefined4 **)(param_5 + 0x134) != puVar7);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }\n  if ((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)) {\n    iVar4 = *(int *)(param_1 + 0x3e70);\n  }\n  else {\n    piVar14 = (int *)*param_3;\n    if (piVar14 != (int *)param_3[1]) {\n      do {\n        piVar12 = (int *)*piVar14;\n        piVar16 = (int *)piVar12[0x14];\n        iVar4 = *piVar16;\n        if (iVar4 != piVar16[1]) {\n          while( true ) {\n            iVar15 = *piVar12;\n            uVar11 = *(uint *)(iVar4 + 4);\n            if (*(code **)(iVar15 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4);\n            }\n            else {\n              uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);\n              uVar11 = *(uint *)(iVar4 + 4);\n              piVar12 = (int *)*piVar14;\n              iVar15 = *piVar12;\n            }\n            *(undefined4 *)(iVar4 + 0x14) = uVar3;\n            uVar1 = (**(code **)(iVar15 + 0x88))(piVar12,uVar11);\n            *(undefined1 *)(iVar4 + 0x18) = uVar1;\n            if (piVar16[1] == iVar4 + 0x1c) break;\n            piVar12 = (int *)*piVar14;\n            iVar4 = iVar4 + 0x1c;\n          }\n        }\n        piVar14 = piVar14 + 1;\n      } while ((int *)param_3[1] != piVar14);\n    }\n    iVar4 = *(int *)(param_1 + 0x3e70);\n  }\n  if ((iVar4 == 0) &&\n     (iVar4 = (param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2), iVar4 < 2)) {\n    iVar4 = 2;\n  }\n  FUN_002007c0(param_6,iVar4);\n  if (param_3[4] == param_3[3]) {\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n    if ((*(char *)(iVar4 + 0x1a25) != '\0') || (*(char *)(iVar4 + 0x2931) != '\0'))\n    goto LAB_000da6a6;\n    FUN_001a52b0(1);\n  }\n  else {\nLAB_000da6a6:\n    FUN_001a52b0(0);\n    if (*(char *)(param_1 + 0x5938) != '\0') {\n      if ((int *)param_3[3] == (int *)param_3[4]) {\n                    \n        FUN_000da200("../../gold/gold.cc",0x265,"queue_middle_tasks",&__DT_PLTGOT);\n      }\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      uVar10 = gettext("cannot mix -static with dynamic object %s");\n      FUN_000d1330(uVar10,uVar3);\n    }\n    if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n    if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) != '\0') {\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      pcVar9 = "cannot mix -r with dynamic object %s";\nLAB_000db04c:\n      uVar10 = gettext(pcVar9);\n                    \n      FUN_000d12d0(uVar10,uVar3);\n    }\n    iVar4 = FUN_0014c1c0(param_1);\n    if (iVar4 != 0) {\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      pcVar9 = "cannot use non-ELF output format with dynamic object %s";\n      goto LAB_000db04c;\n    }\n  }\n  if (*(int *)(DAT_004144e8 + 8) == 0) {\nLAB_000dac36:\n                    \n    FUN_000da200("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) != '\0') {\n    piVar14 = (int *)*param_3;\n    piVar16 = (int *)param_3[1];\n    if (piVar16 != piVar14) {\n      bVar13 = *(byte *)(*piVar14 + 0x2c) >> 2 & 1;\n      if (piVar16 != piVar14 + 1) {\n        iVar4 = piVar14[1];\n        if ((*(byte *)(iVar4 + 0x2c) >> 2 & 1) == bVar13) {\n          piVar12 = piVar14 + 2;\n          do {\n            if (piVar16 == piVar12) goto LAB_000da77b;\n            iVar4 = *piVar12;\n            piVar12 = piVar12 + 1;\n          } while (bVar13 == (*(byte *)(iVar4 + 0x2c) >> 2 & 1));\n        }\n        uVar3 = *(undefined4 *)(iVar4 + 4);\n        uVar10 = *(undefined4 *)(*piVar14 + 4);\n        uVar8 = gettext("cannot mix split-stack \'%s\' and non-split-stack \'%s\' when using -r");\n                    \n        FUN_000d12d0(uVar8,uVar10,uVar3);\n      }\n    }\n  }\nLAB_000da77b:\n  cVar2 = FUN_001a5190(DAT_004144e8);\n  if (cVar2 != '\0') {\n    piVar14 = *(int **)(param_5 + 0x244);\n    (**(code **)(*piVar14 + 0x18))(piVar14,param_4,param_5);\n    (**(code **)(*piVar14 + 0x1c))(piVar14,param_4);\n  }\n  if ((*(int *)(DAT_004144e8 + 8) != 0) && ((*(byte *)(DAT_004144e8 + 0x14) & 2) != 0)) {\n    FUN_001d9e80(*(undefined4 *)(param_5 + 4),*(undefined4 *)PTR_stderr_00413fbc);\n  }\n  FUN_00122e00(param_3);\n  if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n  if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x4c2d) == '\0') {\n    FUN_001dc4a0(*(int *)(param_5 + 4) + 0x68,param_4);\n  }\n  FUN_001121d0(param_5);\n  FUN_001d9480(*(undefined4 *)(param_5 + 4),param_5);\n  FUN_001112f0(param_5,param_4);\n  FUN_001d94d0(*(undefined4 *)(param_5 + 4),param_4);\n  piVar14 = *(int **)(DAT_004144e8 + 0xc);\n  if (piVar14 == (int *)0x0) {\n                    \n    FUN_000da200("../../gold/parameters.h",0x69,"target",extraout_ECX);\n  }\n  FUN_0010c300(param_5,piVar14);\n  if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n  if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) == '\0') {\n    FUN_0020afd0(param_4,param_5);\n    FUN_0010ee10(param_5,param_4);\n    if (*(code **)(*piVar14 + 0x84) != FUN_000a4200) {\n      (**(code **)(*piVar14 + 0x84))(piVar14,param_4,param_5);\n    }\n  }\n  FUN_001081d0(param_5,param_4);\n  iVar4 = *(int *)(DAT_004144e8 + 8);\n  if (iVar4 == 0) goto LAB_000dac36;\n  local_20 = (undefined1 *)0x0;\n  if (*(char *)(iVar4 + 0xb51) != '\0') {\n    local_20 = (undefined1 *)FUN_00246670(0x14);\n    *local_20 = 1;\n    *(undefined4 *)(local_20 + 8) = 0;\n    *(undefined4 *)(local_20 + 0xc) = 0;\n    *(undefined4 *)(local_20 + 0x10) = 0;\n    *(undefined4 *)(local_20 + 4) = 1;\n    puVar6 = (undefined4 *)FUN_00246670(0x34);\n    puVar6[1] = 0;\n    puVar6[9] = param_4;\n    puVar6[2] = puVar6 + 4;\n    puVar6[10] = param_5;\n    puVar6[3] = 0;\n    *(undefined1 *)(puVar6 + 4) = 0;\n    *(undefined1 *)(puVar6 + 8) = 0;\n    *puVar6 = &PTR_FUN_00408d4c;\n    puVar6[0xb] = param_7;\n    puVar6[0xc] = local_20;\n    FUN_002000e0(param_6,puVar6);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }\n  piVar16 = (int *)*param_3;\n  if ((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)) {\n    if (piVar16 != (int *)param_3[1]) {\n      do {\n        piVar12 = piVar16 + 1;\n        puVar5 = (undefined1 *)FUN_00246670(0x14);\n        iVar4 = *piVar16;\n        *puVar5 = 1;\n        *(undefined4 *)(puVar5 + 8) = 0;\n        *(undefined4 *)(puVar5 + 0xc) = 0;\n        *(undefined4 *)(puVar5 + 0x10) = 0;\n        *(undefined4 *)(puVar5 + 4) = 1;\n        puVar6 = (undefined4 *)FUN_00246670(0x38);\n        puVar6[0xc] = local_20;\n        *puVar6 = &PTR_FUN_00408390;\n        puVar6[2] = puVar6 + 4;\n        puVar6[9] = param_4;\n        puVar6[1] = 0;\n        puVar6[10] = param_5;\n        puVar6[3] = 0;\n        *(undefined1 *)(puVar6 + 4) = 0;\n        *(undefined1 *)(puVar6 + 8) = 0;\n        puVar6[0xb] = iVar4;\n        puVar6[0xd] = puVar5;\n        FUN_002000e0(param_6,puVar6);\n        local_20 = puVar5;\n        piVar16 = piVar12;\n      } while ((int *)param_3[1] != piVar12);\n      goto LAB_000da9b3;\n    }\n  }\n  else if (piVar16 != (int *)param_3[1]) {\n    do {\n      piVar12 = piVar16 + 1;\n      puVar5 = (undefined1 *)FUN_00246670(0x14);\n      iVar4 = *piVar16;\n      *puVar5 = 1;\n      *(undefined4 *)(puVar5 + 8) = 0;\n      uVar3 = *(undefined4 *)(iVar4 + 0x50);\n      *(undefined4 *)(puVar5 + 0xc) = 0;\n      *(undefined4 *)(puVar5 + 0x10) = 0;\n      *(undefined4 *)(puVar5 + 4) = 1;\n      puVar6 = (undefined4 *)FUN_00246670(0x3c);\n      puVar6[0xd] = local_20;\n      *puVar6 = &PTR_FUN_004083d0;\n      puVar6[1] = 0;\n      puVar6[9] = param_4;\n      puVar6[2] = puVar6 + 4;\n      puVar6[10] = param_5;\n      puVar6[3] = 0;\n      *(undefined1 *)(puVar6 + 4) = 0;\n      *(undefined1 *)(puVar6 + 8) = 0;\n      puVar6[0xb] = iVar4;\n      puVar6[0xc] = uVar3;\n      puVar6[0xe] = puVar5;\n      FUN_002000e0(param_6,puVar6);\n      local_20 = puVar5;\n      piVar16 = piVar12;\n    } while ((int *)param_3[1] != piVar12);\n    goto LAB_000da9b3;\n  }\n  puVar5 = local_20;\n  if (local_20 == (undefined1 *)0x0) {\n    puVar5 = (undefined1 *)FUN_00246670(0x14);\n    *puVar5 = 1;\n    *(undefined4 *)(puVar5 + 4) = 0;\n    *(undefined4 *)(puVar5 + 8) = 0;\n    *(undefined4 *)(puVar5 + 0xc) = 0;\n    *(undefined4 *)(puVar5 + 0x10) = 0;\n  }\nLAB_000da9b3:\n  puVar6 = (undefined4 *)FUN_00246670(0x1c);\n  *puVar6 = &PTR_FUN_00406ca0;\n  puVar6[1] = param_1;\n  puVar6[2] = param_3;\n  puVar6[3] = param_4;\n  puVar6[4] = piVar14;\n  puVar6[5] = param_5;\n  puVar6[6] = param_7;\n  puVar7 = (undefined4 *)FUN_00246670(0x30);\n  puVar7[1] = 0;\n  puVar7[2] = puVar7 + 4;\n  *puVar7 = &PTR_FUN_004066fc;\n  puVar7[3] = 0;\n  *(undefined1 *)(puVar7 + 4) = 0;\n  *(undefined1 *)(puVar7 + 8) = 0;\n  puVar7[9] = puVar6;\n  puVar7[10] = puVar5;\n  puVar7[0xb] = "Task_function Layout_task_runner";\n  FUN_002000e0(param_6,puVar7);\n  return;\n}" { (declaration "undefined1 uVar1;" type_identifier identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined1 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX;" type_identifier identifier ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "byte bVar13;" type_identifier identifier ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "int *piVar16;" primitive_type (pointer_declarator "*piVar16" * identifier) ;) (declaration "undefined1 *local_20;" type_identifier (pointer_declarator "*local_20" * identifier) ;) (if_statement "if (*(int *)(DAT_004144e8 + 4) != 0) {\n    FUN_001ffac0(*(int *)(DAT_004144e8 + 4),0);\n  }" if (parenthesized_expression "(*(int *)(DAT_004144e8 + 4) != 0)" ( (binary_expression "*(int *)(DAT_004144e8 + 4) != 0" (pointer_expression "*(int *)(DAT_004144e8 + 4)" * (cast_expression "(int *)(DAT_004144e8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 4)" ( (binary_expression "DAT_004144e8 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    FUN_001ffac0(*(int *)(DAT_004144e8 + 4),0);\n  }" { (expression_statement "FUN_001ffac0(*(int *)(DAT_004144e8 + 4),0);" (call_expression "FUN_001ffac0(*(int *)(DAT_004144e8 + 4),0)" identifier (argument_list "(*(int *)(DAT_004144e8 + 4),0)" ( (pointer_expression "*(int *)(DAT_004144e8 + 4)" * (cast_expression "(int *)(DAT_004144e8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 4)" ( (binary_expression "DAT_004144e8 + 4" identifier + number_literal) )))) , number_literal ))) ;) })) (if_statement "if (((param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2) == 0) &&\n     (*(int *)(param_5 + 0x244) == 0)) {\n    FUN_001a5350();\n  }" if (parenthesized_expression "(((param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2) == 0) &&\n     (*(int *)(param_5 + 0x244) == 0))" ( (binary_expression "((param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2) == 0) &&\n     (*(int *)(param_5 + 0x244) == 0)" (parenthesized_expression "((param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2) == 0)" ( (binary_expression "(param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2) == 0" (binary_expression "(param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2)" (parenthesized_expression "(param_3[4] - param_3[3] >> 2)" ( (binary_expression "param_3[4] - param_3[3] >> 2" (binary_expression "param_3[4] - param_3[3]" (subscript_expression "param_3[4]" identifier [ number_literal ]) - (subscript_expression "param_3[3]" identifier [ number_literal ])) >> number_literal) )) + (parenthesized_expression "(param_3[1] - *param_3 >> 2)" ( (binary_expression "param_3[1] - *param_3 >> 2" (binary_expression "param_3[1] - *param_3" (subscript_expression "param_3[1]" identifier [ number_literal ]) - (pointer_expression "*param_3" * identifier)) >> number_literal) ))) == number_literal) )) && (parenthesized_expression "(*(int *)(param_5 + 0x244) == 0)" ( (binary_expression "*(int *)(param_5 + 0x244) == 0" (pointer_expression "*(int *)(param_5 + 0x244)" * (cast_expression "(int *)(param_5 + 0x244)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x244)" ( (binary_expression "param_5 + 0x244" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n    FUN_001a5350();\n  }" { (expression_statement "FUN_001a5350();" (call_expression "FUN_001a5350()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_001e9d80(param_4,param_5);" (call_expression "FUN_001e9d80(param_4,param_5)" identifier (argument_list "(param_4,param_5)" ( identifier , identifier ))) ;) (expression_statement "iVar4 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar4 = *(int *)(DAT_004144e8 + 8)" identifier = (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar4 == 0) goto LAB_000dac36;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000dac36;" goto statement_identifier ;)) (if_statement "if (*(char *)(iVar4 + 0x18b1) != '\0') {\n    uVar3 = FUN_001a50c0(DAT_004144e8);\n    iVar4 = FUN_001e9100(param_4,uVar3,0);\n    if (iVar4 != 0) {\n      FUN_001e7b10(param_4,iVar4);\n    }\n    if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n    iVar4 = FUN_001e9100(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1f20),0);\n    if (iVar4 != 0) {\n      if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf2c;\n            goto LAB_000dacd3;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dacd3:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf2c;\n        }\n      }\n      else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf2c:\n        FUN_001e7b10(param_4,iVar4);\n      }\n    }\n    if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n    iVar4 = FUN_001e9100(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1538),0);\n    if (iVar4 != 0) {\n      if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf0d;\n            goto LAB_000dad2d;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dad2d:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf0d;\n        }\n      }\n      else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf0d:\n        FUN_001e7b10(param_4,iVar4);\n      }\n    }\n    FUN_001e95f0(param_4,param_5);\n    if (*(int *)(param_4 + 0x158) == 0) {\n                    \n      FUN_000da200("../../gold/gold.cc",0x20b,"queue_middle_tasks",&__DT_PLTGOT);\n    }\n    FUN_00229ab0(*(int *)(param_4 + 0x158));\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }" if (parenthesized_expression "(*(char *)(iVar4 + 0x18b1) != '\0')" ( (binary_expression "*(char *)(iVar4 + 0x18b1) != '\0'" (pointer_expression "*(char *)(iVar4 + 0x18b1)" * (cast_expression "(char *)(iVar4 + 0x18b1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18b1)" ( (binary_expression "iVar4 + 0x18b1" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    uVar3 = FUN_001a50c0(DAT_004144e8);\n    iVar4 = FUN_001e9100(param_4,uVar3,0);\n    if (iVar4 != 0) {\n      FUN_001e7b10(param_4,iVar4);\n    }\n    if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n    iVar4 = FUN_001e9100(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1f20),0);\n    if (iVar4 != 0) {\n      if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf2c;\n            goto LAB_000dacd3;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dacd3:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf2c;\n        }\n      }\n      else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf2c:\n        FUN_001e7b10(param_4,iVar4);\n      }\n    }\n    if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n    iVar4 = FUN_001e9100(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1538),0);\n    if (iVar4 != 0) {\n      if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf0d;\n            goto LAB_000dad2d;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dad2d:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf0d;\n        }\n      }\n      else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf0d:\n        FUN_001e7b10(param_4,iVar4);\n      }\n    }\n    FUN_001e95f0(param_4,param_5);\n    if (*(int *)(param_4 + 0x158) == 0) {\n                    \n      FUN_000da200("../../gold/gold.cc",0x20b,"queue_middle_tasks",&__DT_PLTGOT);\n    }\n    FUN_00229ab0(*(int *)(param_4 + 0x158));\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }" { (expression_statement "uVar3 = FUN_001a50c0(DAT_004144e8);" (assignment_expression "uVar3 = FUN_001a50c0(DAT_004144e8)" identifier = (call_expression "FUN_001a50c0(DAT_004144e8)" identifier (argument_list "(DAT_004144e8)" ( identifier )))) ;) (expression_statement "iVar4 = FUN_001e9100(param_4,uVar3,0);" (assignment_expression "iVar4 = FUN_001e9100(param_4,uVar3,0)" identifier = (call_expression "FUN_001e9100(param_4,uVar3,0)" identifier (argument_list "(param_4,uVar3,0)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (iVar4 != 0) {\n      FUN_001e7b10(param_4,iVar4);\n    }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_001e7b10(param_4,iVar4);\n    }" { (expression_statement "FUN_001e7b10(param_4,iVar4);" (call_expression "FUN_001e7b10(param_4,iVar4)" identifier (argument_list "(param_4,iVar4)" ( identifier , identifier ))) ;) })) (if_statement "if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;" if (parenthesized_expression "(*(int *)(DAT_004144e8 + 8) == 0)" ( (binary_expression "*(int *)(DAT_004144e8 + 8) == 0" (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_000dac36;" goto statement_identifier ;)) (expression_statement "iVar4 = FUN_001e9100(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1f20),0);" (assignment_expression "iVar4 = FUN_001e9100(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1f20),0)" identifier = (call_expression "FUN_001e9100(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1f20),0)" identifier (argument_list "(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1f20),0)" ( identifier , (pointer_expression "*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1f20)" * (cast_expression "(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1f20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_004144e8 + 8) + 0x1f20)" ( (binary_expression "*(int *)(DAT_004144e8 + 8) + 0x1f20" (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) )))) + number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar4 != 0) {\n      if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf2c;\n            goto LAB_000dacd3;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dacd3:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf2c;\n        }\n      }\n      else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf2c:\n        FUN_001e7b10(param_4,iVar4);\n      }\n    }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf2c;\n            goto LAB_000dacd3;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dacd3:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf2c;\n        }\n      }\n      else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf2c:\n        FUN_001e7b10(param_4,iVar4);\n      }\n    }" { (if_statement "if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf2c;\n            goto LAB_000dacd3;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dacd3:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf2c;\n        }\n      }\n      else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf2c:\n        FUN_001e7b10(param_4,iVar4);\n      }" if (parenthesized_expression "((*(byte *)(iVar4 + 0x2a) & 7) == 0)" ( (binary_expression "(*(byte *)(iVar4 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)(iVar4 + 0x2a) & 7)" ( (binary_expression "*(byte *)(iVar4 + 0x2a) & 7" (pointer_expression "*(byte *)(iVar4 + 0x2a)" * (cast_expression "(byte *)(iVar4 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2a)" ( (binary_expression "iVar4 + 0x2a" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf2c;\n            goto LAB_000dacd3;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dacd3:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf2c;\n        }\n      }" { (if_statement "if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf2c;\n            goto LAB_000dacd3;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dacd3:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf2c;\n        }" if (parenthesized_expression "((*(byte *)(iVar4 + 0x2b) & 0x20) == 0)" ( (binary_expression "(*(byte *)(iVar4 + 0x2b) & 0x20) == 0" (parenthesized_expression "(*(byte *)(iVar4 + 0x2b) & 0x20)" ( (binary_expression "*(byte *)(iVar4 + 0x2b) & 0x20" (pointer_expression "*(byte *)(iVar4 + 0x2b)" * (cast_expression "(byte *)(iVar4 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2b)" ( (binary_expression "iVar4 + 0x2b" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf2c;\n            goto LAB_000dacd3;\n          }\n        }" { (expression_statement "cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));" (assignment_expression "cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc))" identifier = (call_expression "FUN_001e6ac0(*(int *)(iVar4 + 0xc))" identifier (argument_list "(*(int *)(iVar4 + 0xc))" ( (pointer_expression "*(int *)(iVar4 + 0xc)" * (cast_expression "(int *)(iVar4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) )))) ;) (if_statement "if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf2c;\n            goto LAB_000dacd3;\n          }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf2c;\n            goto LAB_000dacd3;\n          }" { (if_statement "if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf2c;" if (parenthesized_expression "((*(byte *)(iVar4 + 0x2a) & 7) != 0)" ( (binary_expression "(*(byte *)(iVar4 + 0x2a) & 7) != 0" (parenthesized_expression "(*(byte *)(iVar4 + 0x2a) & 7)" ( (binary_expression "*(byte *)(iVar4 + 0x2a) & 7" (pointer_expression "*(byte *)(iVar4 + 0x2a)" * (cast_expression "(byte *)(iVar4 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2a)" ( (binary_expression "iVar4 + 0x2a" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000daf2c;" goto statement_identifier ;)) (goto_statement "goto LAB_000dacd3;" goto statement_identifier ;) })) }) (else_clause "else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dacd3:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf2c;\n        }" else (if_statement "if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dacd3:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf2c;\n        }" if (parenthesized_expression "(*(int *)(iVar4 + 0xc) != 0)" ( (binary_expression "*(int *)(iVar4 + 0xc) != 0" (pointer_expression "*(int *)(iVar4 + 0xc)" * (cast_expression "(int *)(iVar4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\nLAB_000dacd3:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf2c;\n        }" { (labeled_statement "LAB_000dacd3:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf2c;" statement_identifier : (if_statement "if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf2c;" if (parenthesized_expression "((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0)" ( (binary_expression "(*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0" (parenthesized_expression "(*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1)" ( (binary_expression "*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1" (pointer_expression "*(byte *)(*(int *)(iVar4 + 8) + 0x2c)" * (cast_expression "(byte *)(*(int *)(iVar4 + 8) + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar4 + 8) + 0x2c)" ( (binary_expression "*(int *)(iVar4 + 8) + 0x2c" (pointer_expression "*(int *)(iVar4 + 8)" * (cast_expression "(int *)(iVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000daf2c;" goto statement_identifier ;))) })))) }) (else_clause "else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf2c:\n        FUN_001e7b10(param_4,iVar4);\n      }" else (if_statement "if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf2c:\n        FUN_001e7b10(param_4,iVar4);\n      }" if (parenthesized_expression "((*(byte *)(iVar4 + 0x2a) & 7) != 4)" ( (binary_expression "(*(byte *)(iVar4 + 0x2a) & 7) != 4" (parenthesized_expression "(*(byte *)(iVar4 + 0x2a) & 7)" ( (binary_expression "*(byte *)(iVar4 + 0x2a) & 7" (pointer_expression "*(byte *)(iVar4 + 0x2a)" * (cast_expression "(byte *)(iVar4 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2a)" ( (binary_expression "iVar4 + 0x2a" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_000daf2c:\n        FUN_001e7b10(param_4,iVar4);\n      }" { (labeled_statement "LAB_000daf2c:\n        FUN_001e7b10(param_4,iVar4);" statement_identifier : (expression_statement "FUN_001e7b10(param_4,iVar4);" (call_expression "FUN_001e7b10(param_4,iVar4)" identifier (argument_list "(param_4,iVar4)" ( identifier , identifier ))) ;)) })))) })) (if_statement "if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;" if (parenthesized_expression "(*(int *)(DAT_004144e8 + 8) == 0)" ( (binary_expression "*(int *)(DAT_004144e8 + 8) == 0" (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_000dac36;" goto statement_identifier ;)) (expression_statement "iVar4 = FUN_001e9100(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1538),0);" (assignment_expression "iVar4 = FUN_001e9100(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1538),0)" identifier = (call_expression "FUN_001e9100(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1538),0)" identifier (argument_list "(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1538),0)" ( identifier , (pointer_expression "*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1538)" * (cast_expression "(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1538)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_004144e8 + 8) + 0x1538)" ( (binary_expression "*(int *)(DAT_004144e8 + 8) + 0x1538" (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) )))) + number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar4 != 0) {\n      if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf0d;\n            goto LAB_000dad2d;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dad2d:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf0d;\n        }\n      }\n      else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf0d:\n        FUN_001e7b10(param_4,iVar4);\n      }\n    }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf0d;\n            goto LAB_000dad2d;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dad2d:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf0d;\n        }\n      }\n      else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf0d:\n        FUN_001e7b10(param_4,iVar4);\n      }\n    }" { (if_statement "if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf0d;\n            goto LAB_000dad2d;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dad2d:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf0d;\n        }\n      }\n      else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf0d:\n        FUN_001e7b10(param_4,iVar4);\n      }" if (parenthesized_expression "((*(byte *)(iVar4 + 0x2a) & 7) == 0)" ( (binary_expression "(*(byte *)(iVar4 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)(iVar4 + 0x2a) & 7)" ( (binary_expression "*(byte *)(iVar4 + 0x2a) & 7" (pointer_expression "*(byte *)(iVar4 + 0x2a)" * (cast_expression "(byte *)(iVar4 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2a)" ( (binary_expression "iVar4 + 0x2a" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf0d;\n            goto LAB_000dad2d;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dad2d:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf0d;\n        }\n      }" { (if_statement "if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf0d;\n            goto LAB_000dad2d;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dad2d:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf0d;\n        }" if (parenthesized_expression "((*(byte *)(iVar4 + 0x2b) & 0x20) == 0)" ( (binary_expression "(*(byte *)(iVar4 + 0x2b) & 0x20) == 0" (parenthesized_expression "(*(byte *)(iVar4 + 0x2b) & 0x20)" ( (binary_expression "*(byte *)(iVar4 + 0x2b) & 0x20" (pointer_expression "*(byte *)(iVar4 + 0x2b)" * (cast_expression "(byte *)(iVar4 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2b)" ( (binary_expression "iVar4 + 0x2b" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf0d;\n            goto LAB_000dad2d;\n          }\n        }" { (expression_statement "cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));" (assignment_expression "cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc))" identifier = (call_expression "FUN_001e6ac0(*(int *)(iVar4 + 0xc))" identifier (argument_list "(*(int *)(iVar4 + 0xc))" ( (pointer_expression "*(int *)(iVar4 + 0xc)" * (cast_expression "(int *)(iVar4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) )))) ;) (if_statement "if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf0d;\n            goto LAB_000dad2d;\n          }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf0d;\n            goto LAB_000dad2d;\n          }" { (if_statement "if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf0d;" if (parenthesized_expression "((*(byte *)(iVar4 + 0x2a) & 7) != 0)" ( (binary_expression "(*(byte *)(iVar4 + 0x2a) & 7) != 0" (parenthesized_expression "(*(byte *)(iVar4 + 0x2a) & 7)" ( (binary_expression "*(byte *)(iVar4 + 0x2a) & 7" (pointer_expression "*(byte *)(iVar4 + 0x2a)" * (cast_expression "(byte *)(iVar4 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2a)" ( (binary_expression "iVar4 + 0x2a" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000daf0d;" goto statement_identifier ;)) (goto_statement "goto LAB_000dad2d;" goto statement_identifier ;) })) }) (else_clause "else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dad2d:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf0d;\n        }" else (if_statement "if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dad2d:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf0d;\n        }" if (parenthesized_expression "(*(int *)(iVar4 + 0xc) != 0)" ( (binary_expression "*(int *)(iVar4 + 0xc) != 0" (pointer_expression "*(int *)(iVar4 + 0xc)" * (cast_expression "(int *)(iVar4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\nLAB_000dad2d:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf0d;\n        }" { (labeled_statement "LAB_000dad2d:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf0d;" statement_identifier : (if_statement "if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf0d;" if (parenthesized_expression "((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0)" ( (binary_expression "(*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0" (parenthesized_expression "(*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1)" ( (binary_expression "*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1" (pointer_expression "*(byte *)(*(int *)(iVar4 + 8) + 0x2c)" * (cast_expression "(byte *)(*(int *)(iVar4 + 8) + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar4 + 8) + 0x2c)" ( (binary_expression "*(int *)(iVar4 + 8) + 0x2c" (pointer_expression "*(int *)(iVar4 + 8)" * (cast_expression "(int *)(iVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000daf0d;" goto statement_identifier ;))) })))) }) (else_clause "else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf0d:\n        FUN_001e7b10(param_4,iVar4);\n      }" else (if_statement "if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf0d:\n        FUN_001e7b10(param_4,iVar4);\n      }" if (parenthesized_expression "((*(byte *)(iVar4 + 0x2a) & 7) != 4)" ( (binary_expression "(*(byte *)(iVar4 + 0x2a) & 7) != 4" (parenthesized_expression "(*(byte *)(iVar4 + 0x2a) & 7)" ( (binary_expression "*(byte *)(iVar4 + 0x2a) & 7" (pointer_expression "*(byte *)(iVar4 + 0x2a)" * (cast_expression "(byte *)(iVar4 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2a)" ( (binary_expression "iVar4 + 0x2a" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_000daf0d:\n        FUN_001e7b10(param_4,iVar4);\n      }" { (labeled_statement "LAB_000daf0d:\n        FUN_001e7b10(param_4,iVar4);" statement_identifier : (expression_statement "FUN_001e7b10(param_4,iVar4);" (call_expression "FUN_001e7b10(param_4,iVar4)" identifier (argument_list "(param_4,iVar4)" ( identifier , identifier ))) ;)) })))) })) (expression_statement "FUN_001e95f0(param_4,param_5);" (call_expression "FUN_001e95f0(param_4,param_5)" identifier (argument_list "(param_4,param_5)" ( identifier , identifier ))) ;) (if_statement "if (*(int *)(param_4 + 0x158) == 0) {\n                    \n      FUN_000da200("../../gold/gold.cc",0x20b,"queue_middle_tasks",&__DT_PLTGOT);\n    }" if (parenthesized_expression "(*(int *)(param_4 + 0x158) == 0)" ( (binary_expression "*(int *)(param_4 + 0x158) == 0" (pointer_expression "*(int *)(param_4 + 0x158)" * (cast_expression "(int *)(param_4 + 0x158)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x158)" ( (binary_expression "param_4 + 0x158" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    \n      FUN_000da200("../../gold/gold.cc",0x20b,"queue_middle_tasks",&__DT_PLTGOT);\n    }" { (expression_statement "FUN_000da200("../../gold/gold.cc",0x20b,"queue_middle_tasks",&__DT_PLTGOT);" (call_expression "FUN_000da200("../../gold/gold.cc",0x20b,"queue_middle_tasks",&__DT_PLTGOT)" identifier (argument_list "("../../gold/gold.cc",0x20b,"queue_middle_tasks",&__DT_PLTGOT)" ( (string_literal ""../../gold/gold.cc"" " string_content ") , number_literal , (string_literal ""queue_middle_tasks"" " string_content ") , (pointer_expression "&__DT_PLTGOT" & identifier) ))) ;) })) (expression_statement "FUN_00229ab0(*(int *)(param_4 + 0x158));" (call_expression "FUN_00229ab0(*(int *)(param_4 + 0x158))" identifier (argument_list "(*(int *)(param_4 + 0x158))" ( (pointer_expression "*(int *)(param_4 + 0x158)" * (cast_expression "(int *)(param_4 + 0x158)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x158)" ( (binary_expression "param_4 + 0x158" identifier + number_literal) )))) ))) ;) (expression_statement "iVar4 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar4 = *(int *)(DAT_004144e8 + 8)" identifier = (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar4 == 0) goto LAB_000dac36;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000dac36;" goto statement_identifier ;)) })) (if_statement "if (*(int *)(iVar4 + 0x5934) == 0) {\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n  }\n  else {\n    FUN_000ded60(*(undefined4 *)(param_4 + 0x15c),param_3,param_4);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }" if (parenthesized_expression "(*(int *)(iVar4 + 0x5934) == 0)" ( (binary_expression "*(int *)(iVar4 + 0x5934) == 0" (pointer_expression "*(int *)(iVar4 + 0x5934)" * (cast_expression "(int *)(iVar4 + 0x5934)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x5934)" ( (binary_expression "iVar4 + 0x5934" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n  }" { (expression_statement "iVar4 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar4 = *(int *)(DAT_004144e8 + 8)" identifier = (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    FUN_000ded60(*(undefined4 *)(param_4 + 0x15c),param_3,param_4);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }" else (compound_statement "{\n    FUN_000ded60(*(undefined4 *)(param_4 + 0x15c),param_3,param_4);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }" { (expression_statement "FUN_000ded60(*(undefined4 *)(param_4 + 0x15c),param_3,param_4);" (call_expression "FUN_000ded60(*(undefined4 *)(param_4 + 0x15c),param_3,param_4)" identifier (argument_list "(*(undefined4 *)(param_4 + 0x15c),param_3,param_4)" ( (pointer_expression "*(undefined4 *)(param_4 + 0x15c)" * (cast_expression "(undefined4 *)(param_4 + 0x15c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x15c)" ( (binary_expression "param_4 + 0x15c" identifier + number_literal) )))) , identifier , identifier ))) ;) (expression_statement "iVar4 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar4 = *(int *)(DAT_004144e8 + 8)" identifier = (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar4 == 0) goto LAB_000dac36;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000dac36;" goto statement_identifier ;)) }))) (if_statement "if ((((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)) &&\n      (*(char *)(param_5 + 0x1ce) == '\0')) ||\n     (piVar14 = (int *)*param_3, piVar14 == (int *)param_3[1])) {\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n  }\n  else {\n    do {\n      piVar16 = (int *)*piVar14;\n      piVar12 = piVar16;\n      if (piVar16[7] != 0) {\n        FUN_000d2820(piVar16[7] + 0x1c,param_2);\n        piVar12 = (int *)*piVar14;\n      }\n                    \n      (**(code **)(*piVar12 + 0x24))(piVar12,param_4,param_5,0);\n      if (piVar16[7] != 0) {\n        FUN_000d3850(piVar16[7] + 0x1c,param_2);\n      }\n      piVar14 = piVar14 + 1;\n    } while ((int *)param_3[1] != piVar14);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }" if (parenthesized_expression "((((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)) &&\n      (*(char *)(param_5 + 0x1ce) == '\0')) ||\n     (piVar14 = (int *)*param_3, piVar14 == (int *)param_3[1]))" ( (binary_expression "(((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)) &&\n      (*(char *)(param_5 + 0x1ce) == '\0')) ||\n     (piVar14 = (int *)*param_3, piVar14 == (int *)param_3[1])" (parenthesized_expression "(((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)) &&\n      (*(char *)(param_5 + 0x1ce) == '\0'))" ( (binary_expression "((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)) &&\n      (*(char *)(param_5 + 0x1ce) == '\0')" (parenthesized_expression "((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0))" ( (binary_expression "(*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)" (parenthesized_expression "(*(char *)(iVar4 + 0x18b1) == '\0')" ( (binary_expression "*(char *)(iVar4 + 0x18b1) == '\0'" (pointer_expression "*(char *)(iVar4 + 0x18b1)" * (cast_expression "(char *)(iVar4 + 0x18b1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18b1)" ( (binary_expression "iVar4 + 0x18b1" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(int *)(iVar4 + 0x5934) == 0)" ( (binary_expression "*(int *)(iVar4 + 0x5934) == 0" (pointer_expression "*(int *)(iVar4 + 0x5934)" * (cast_expression "(int *)(iVar4 + 0x5934)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x5934)" ( (binary_expression "iVar4 + 0x5934" identifier + number_literal) )))) == number_literal) ))) )) && (parenthesized_expression "(*(char *)(param_5 + 0x1ce) == '\0')" ( (binary_expression "*(char *)(param_5 + 0x1ce) == '\0'" (pointer_expression "*(char *)(param_5 + 0x1ce)" * (cast_expression "(char *)(param_5 + 0x1ce)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x1ce)" ( (binary_expression "param_5 + 0x1ce" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) || (parenthesized_expression "(piVar14 = (int *)*param_3, piVar14 == (int *)param_3[1])" ( (comma_expression "piVar14 = (int *)*param_3, piVar14 == (int *)param_3[1]" (assignment_expression "piVar14 = (int *)*param_3" identifier = (cast_expression "(int *)*param_3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_3" * identifier))) , (binary_expression "piVar14 == (int *)param_3[1]" identifier == (cast_expression "(int *)param_3[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[1]" identifier [ number_literal ])))) ))) )) (compound_statement "{\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n  }" { (expression_statement "iVar4 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar4 = *(int *)(DAT_004144e8 + 8)" identifier = (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    do {\n      piVar16 = (int *)*piVar14;\n      piVar12 = piVar16;\n      if (piVar16[7] != 0) {\n        FUN_000d2820(piVar16[7] + 0x1c,param_2);\n        piVar12 = (int *)*piVar14;\n      }\n                    \n      (**(code **)(*piVar12 + 0x24))(piVar12,param_4,param_5,0);\n      if (piVar16[7] != 0) {\n        FUN_000d3850(piVar16[7] + 0x1c,param_2);\n      }\n      piVar14 = piVar14 + 1;\n    } while ((int *)param_3[1] != piVar14);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }" else (compound_statement "{\n    do {\n      piVar16 = (int *)*piVar14;\n      piVar12 = piVar16;\n      if (piVar16[7] != 0) {\n        FUN_000d2820(piVar16[7] + 0x1c,param_2);\n        piVar12 = (int *)*piVar14;\n      }\n                    \n      (**(code **)(*piVar12 + 0x24))(piVar12,param_4,param_5,0);\n      if (piVar16[7] != 0) {\n        FUN_000d3850(piVar16[7] + 0x1c,param_2);\n      }\n      piVar14 = piVar14 + 1;\n    } while ((int *)param_3[1] != piVar14);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }" { (do_statement "do {\n      piVar16 = (int *)*piVar14;\n      piVar12 = piVar16;\n      if (piVar16[7] != 0) {\n        FUN_000d2820(piVar16[7] + 0x1c,param_2);\n        piVar12 = (int *)*piVar14;\n      }\n                    \n      (**(code **)(*piVar12 + 0x24))(piVar12,param_4,param_5,0);\n      if (piVar16[7] != 0) {\n        FUN_000d3850(piVar16[7] + 0x1c,param_2);\n      }\n      piVar14 = piVar14 + 1;\n    } while ((int *)param_3[1] != piVar14);" do (compound_statement "{\n      piVar16 = (int *)*piVar14;\n      piVar12 = piVar16;\n      if (piVar16[7] != 0) {\n        FUN_000d2820(piVar16[7] + 0x1c,param_2);\n        piVar12 = (int *)*piVar14;\n      }\n                    \n      (**(code **)(*piVar12 + 0x24))(piVar12,param_4,param_5,0);\n      if (piVar16[7] != 0) {\n        FUN_000d3850(piVar16[7] + 0x1c,param_2);\n      }\n      piVar14 = piVar14 + 1;\n    }" { (expression_statement "piVar16 = (int *)*piVar14;" (assignment_expression "piVar16 = (int *)*piVar14" identifier = (cast_expression "(int *)*piVar14" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar14" * identifier))) ;) (expression_statement "piVar12 = piVar16;" (assignment_expression "piVar12 = piVar16" identifier = identifier) ;) (if_statement "if (piVar16[7] != 0) {\n        FUN_000d2820(piVar16[7] + 0x1c,param_2);\n        piVar12 = (int *)*piVar14;\n      }" if (parenthesized_expression "(piVar16[7] != 0)" ( (binary_expression "piVar16[7] != 0" (subscript_expression "piVar16[7]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        FUN_000d2820(piVar16[7] + 0x1c,param_2);\n        piVar12 = (int *)*piVar14;\n      }" { (expression_statement "FUN_000d2820(piVar16[7] + 0x1c,param_2);" (call_expression "FUN_000d2820(piVar16[7] + 0x1c,param_2)" identifier (argument_list "(piVar16[7] + 0x1c,param_2)" ( (binary_expression "piVar16[7] + 0x1c" (subscript_expression "piVar16[7]" identifier [ number_literal ]) + number_literal) , identifier ))) ;) (expression_statement "piVar12 = (int *)*piVar14;" (assignment_expression "piVar12 = (int *)*piVar14" identifier = (cast_expression "(int *)*piVar14" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar14" * identifier))) ;) })) (expression_statement "(**(code **)(*piVar12 + 0x24))(piVar12,param_4,param_5,0);" (call_expression "(**(code **)(*piVar12 + 0x24))(piVar12,param_4,param_5,0)" (parenthesized_expression "(**(code **)(*piVar12 + 0x24))" ( (pointer_expression "**(code **)(*piVar12 + 0x24)" * (pointer_expression "*(code **)(*piVar12 + 0x24)" * (cast_expression "(code **)(*piVar12 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar12 + 0x24)" ( (binary_expression "*piVar12 + 0x24" (pointer_expression "*piVar12" * identifier) + number_literal) ))))) )) (argument_list "(piVar12,param_4,param_5,0)" ( identifier , identifier , identifier , number_literal ))) ;) (if_statement "if (piVar16[7] != 0) {\n        FUN_000d3850(piVar16[7] + 0x1c,param_2);\n      }" if (parenthesized_expression "(piVar16[7] != 0)" ( (binary_expression "piVar16[7] != 0" (subscript_expression "piVar16[7]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        FUN_000d3850(piVar16[7] + 0x1c,param_2);\n      }" { (expression_statement "FUN_000d3850(piVar16[7] + 0x1c,param_2);" (call_expression "FUN_000d3850(piVar16[7] + 0x1c,param_2)" identifier (argument_list "(piVar16[7] + 0x1c,param_2)" ( (binary_expression "piVar16[7] + 0x1c" (subscript_expression "piVar16[7]" identifier [ number_literal ]) + number_literal) , identifier ))) ;) })) (expression_statement "piVar14 = piVar14 + 1;" (assignment_expression "piVar14 = piVar14 + 1" identifier = (binary_expression "piVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((int *)param_3[1] != piVar14)" ( (binary_expression "(int *)param_3[1] != piVar14" (cast_expression "(int *)param_3[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[1]" identifier [ number_literal ])) != identifier) )) ;) (expression_statement "iVar4 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar4 = *(int *)(DAT_004144e8 + 8)" identifier = (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar4 == 0) goto LAB_000dac36;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000dac36;" goto statement_identifier ;)) }))) (if_statement "if (*(int *)(iVar4 + 0x593c) != 0) {\n    FUN_001a6980(*(int *)(iVar4 + 0x593c));\n  }" if (parenthesized_expression "(*(int *)(iVar4 + 0x593c) != 0)" ( (binary_expression "*(int *)(iVar4 + 0x593c) != 0" (pointer_expression "*(int *)(iVar4 + 0x593c)" * (cast_expression "(int *)(iVar4 + 0x593c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x593c)" ( (binary_expression "iVar4 + 0x593c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    FUN_001a6980(*(int *)(iVar4 + 0x593c));\n  }" { (expression_statement "FUN_001a6980(*(int *)(iVar4 + 0x593c));" (call_expression "FUN_001a6980(*(int *)(iVar4 + 0x593c))" identifier (argument_list "(*(int *)(iVar4 + 0x593c))" ( (pointer_expression "*(int *)(iVar4 + 0x593c)" * (cast_expression "(int *)(iVar4 + 0x593c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x593c)" ( (binary_expression "iVar4 + 0x593c" identifier + number_literal) )))) ))) ;) })) (expression_statement "FUN_00107c00(param_5);" (call_expression "FUN_00107c00(param_5)" identifier (argument_list "(param_5)" ( identifier ))) ;) (expression_statement "iVar4 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar4 = *(int *)(DAT_004144e8 + 8)" identifier = (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar4 == 0) goto LAB_000dac36;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000dac36;" goto statement_identifier ;)) (if_statement "if (((*(int *)(iVar4 + 0x593c) != 0) && (*(char *)(param_5 + 0x1cd) != '\0')) &&\n     ((*(int *)(iVar4 + 0x36d8) == 0 &&\n      (*(undefined4 **)(param_5 + 0x130) != *(undefined4 **)(param_5 + 0x134))))) {\n    puVar6 = *(undefined4 **)(param_5 + 0x130);\n    do {\n      puVar7 = puVar6 + 1;\n      FUN_0015d7d0(*puVar6,param_5 + 0x1ec);\n      puVar6 = puVar7;\n    } while (*(undefined4 **)(param_5 + 0x134) != puVar7);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }" if (parenthesized_expression "(((*(int *)(iVar4 + 0x593c) != 0) && (*(char *)(param_5 + 0x1cd) != '\0')) &&\n     ((*(int *)(iVar4 + 0x36d8) == 0 &&\n      (*(undefined4 **)(param_5 + 0x130) != *(undefined4 **)(param_5 + 0x134)))))" ( (binary_expression "((*(int *)(iVar4 + 0x593c) != 0) && (*(char *)(param_5 + 0x1cd) != '\0')) &&\n     ((*(int *)(iVar4 + 0x36d8) == 0 &&\n      (*(undefined4 **)(param_5 + 0x130) != *(undefined4 **)(param_5 + 0x134))))" (parenthesized_expression "((*(int *)(iVar4 + 0x593c) != 0) && (*(char *)(param_5 + 0x1cd) != '\0'))" ( (binary_expression "(*(int *)(iVar4 + 0x593c) != 0) && (*(char *)(param_5 + 0x1cd) != '\0')" (parenthesized_expression "(*(int *)(iVar4 + 0x593c) != 0)" ( (binary_expression "*(int *)(iVar4 + 0x593c) != 0" (pointer_expression "*(int *)(iVar4 + 0x593c)" * (cast_expression "(int *)(iVar4 + 0x593c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x593c)" ( (binary_expression "iVar4 + 0x593c" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(*(char *)(param_5 + 0x1cd) != '\0')" ( (binary_expression "*(char *)(param_5 + 0x1cd) != '\0'" (pointer_expression "*(char *)(param_5 + 0x1cd)" * (cast_expression "(char *)(param_5 + 0x1cd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x1cd)" ( (binary_expression "param_5 + 0x1cd" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "((*(int *)(iVar4 + 0x36d8) == 0 &&\n      (*(undefined4 **)(param_5 + 0x130) != *(undefined4 **)(param_5 + 0x134))))" ( (parenthesized_expression "(*(int *)(iVar4 + 0x36d8) == 0 &&\n      (*(undefined4 **)(param_5 + 0x130) != *(undefined4 **)(param_5 + 0x134)))" ( (binary_expression "*(int *)(iVar4 + 0x36d8) == 0 &&\n      (*(undefined4 **)(param_5 + 0x130) != *(undefined4 **)(param_5 + 0x134))" (binary_expression "*(int *)(iVar4 + 0x36d8) == 0" (pointer_expression "*(int *)(iVar4 + 0x36d8)" * (cast_expression "(int *)(iVar4 + 0x36d8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x36d8)" ( (binary_expression "iVar4 + 0x36d8" identifier + number_literal) )))) == number_literal) && (parenthesized_expression "(*(undefined4 **)(param_5 + 0x130) != *(undefined4 **)(param_5 + 0x134))" ( (binary_expression "*(undefined4 **)(param_5 + 0x130) != *(undefined4 **)(param_5 + 0x134)" (pointer_expression "*(undefined4 **)(param_5 + 0x130)" * (cast_expression "(undefined4 **)(param_5 + 0x130)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_5 + 0x130)" ( (binary_expression "param_5 + 0x130" identifier + number_literal) )))) != (pointer_expression "*(undefined4 **)(param_5 + 0x134)" * (cast_expression "(undefined4 **)(param_5 + 0x134)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_5 + 0x134)" ( (binary_expression "param_5 + 0x134" identifier + number_literal) ))))) ))) )) ))) )) (compound_statement "{\n    puVar6 = *(undefined4 **)(param_5 + 0x130);\n    do {\n      puVar7 = puVar6 + 1;\n      FUN_0015d7d0(*puVar6,param_5 + 0x1ec);\n      puVar6 = puVar7;\n    } while (*(undefined4 **)(param_5 + 0x134) != puVar7);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }" { (expression_statement "puVar6 = *(undefined4 **)(param_5 + 0x130);" (assignment_expression "puVar6 = *(undefined4 **)(param_5 + 0x130)" identifier = (pointer_expression "*(undefined4 **)(param_5 + 0x130)" * (cast_expression "(undefined4 **)(param_5 + 0x130)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_5 + 0x130)" ( (binary_expression "param_5 + 0x130" identifier + number_literal) ))))) ;) (do_statement "do {\n      puVar7 = puVar6 + 1;\n      FUN_0015d7d0(*puVar6,param_5 + 0x1ec);\n      puVar6 = puVar7;\n    } while (*(undefined4 **)(param_5 + 0x134) != puVar7);" do (compound_statement "{\n      puVar7 = puVar6 + 1;\n      FUN_0015d7d0(*puVar6,param_5 + 0x1ec);\n      puVar6 = puVar7;\n    }" { (expression_statement "puVar7 = puVar6 + 1;" (assignment_expression "puVar7 = puVar6 + 1" identifier = (binary_expression "puVar6 + 1" identifier + number_literal)) ;) (expression_statement "FUN_0015d7d0(*puVar6,param_5 + 0x1ec);" (call_expression "FUN_0015d7d0(*puVar6,param_5 + 0x1ec)" identifier (argument_list "(*puVar6,param_5 + 0x1ec)" ( (pointer_expression "*puVar6" * identifier) , (binary_expression "param_5 + 0x1ec" identifier + number_literal) ))) ;) (expression_statement "puVar6 = puVar7;" (assignment_expression "puVar6 = puVar7" identifier = identifier) ;) }) while (parenthesized_expression "(*(undefined4 **)(param_5 + 0x134) != puVar7)" ( (binary_expression "*(undefined4 **)(param_5 + 0x134) != puVar7" (pointer_expression "*(undefined4 **)(param_5 + 0x134)" * (cast_expression "(undefined4 **)(param_5 + 0x134)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_5 + 0x134)" ( (binary_expression "param_5 + 0x134" identifier + number_literal) )))) != identifier) )) ;) (expression_statement "iVar4 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar4 = *(int *)(DAT_004144e8 + 8)" identifier = (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar4 == 0) goto LAB_000dac36;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000dac36;" goto statement_identifier ;)) })) (if_statement "if ((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)) {\n    iVar4 = *(int *)(param_1 + 0x3e70);\n  }\n  else {\n    piVar14 = (int *)*param_3;\n    if (piVar14 != (int *)param_3[1]) {\n      do {\n        piVar12 = (int *)*piVar14;\n        piVar16 = (int *)piVar12[0x14];\n        iVar4 = *piVar16;\n        if (iVar4 != piVar16[1]) {\n          while( true ) {\n            iVar15 = *piVar12;\n            uVar11 = *(uint *)(iVar4 + 4);\n            if (*(code **)(iVar15 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4);\n            }\n            else {\n              uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);\n              uVar11 = *(uint *)(iVar4 + 4);\n              piVar12 = (int *)*piVar14;\n              iVar15 = *piVar12;\n            }\n            *(undefined4 *)(iVar4 + 0x14) = uVar3;\n            uVar1 = (**(code **)(iVar15 + 0x88))(piVar12,uVar11);\n            *(undefined1 *)(iVar4 + 0x18) = uVar1;\n            if (piVar16[1] == iVar4 + 0x1c) break;\n            piVar12 = (int *)*piVar14;\n            iVar4 = iVar4 + 0x1c;\n          }\n        }\n        piVar14 = piVar14 + 1;\n      } while ((int *)param_3[1] != piVar14);\n    }\n    iVar4 = *(int *)(param_1 + 0x3e70);\n  }" if (parenthesized_expression "((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0))" ( (binary_expression "(*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)" (parenthesized_expression "(*(char *)(iVar4 + 0x18b1) == '\0')" ( (binary_expression "*(char *)(iVar4 + 0x18b1) == '\0'" (pointer_expression "*(char *)(iVar4 + 0x18b1)" * (cast_expression "(char *)(iVar4 + 0x18b1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18b1)" ( (binary_expression "iVar4 + 0x18b1" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(int *)(iVar4 + 0x5934) == 0)" ( (binary_expression "*(int *)(iVar4 + 0x5934) == 0" (pointer_expression "*(int *)(iVar4 + 0x5934)" * (cast_expression "(int *)(iVar4 + 0x5934)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x5934)" ( (binary_expression "iVar4 + 0x5934" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n    iVar4 = *(int *)(param_1 + 0x3e70);\n  }" { (expression_statement "iVar4 = *(int *)(param_1 + 0x3e70);" (assignment_expression "iVar4 = *(int *)(param_1 + 0x3e70)" identifier = (pointer_expression "*(int *)(param_1 + 0x3e70)" * (cast_expression "(int *)(param_1 + 0x3e70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3e70)" ( (binary_expression "param_1 + 0x3e70" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    piVar14 = (int *)*param_3;\n    if (piVar14 != (int *)param_3[1]) {\n      do {\n        piVar12 = (int *)*piVar14;\n        piVar16 = (int *)piVar12[0x14];\n        iVar4 = *piVar16;\n        if (iVar4 != piVar16[1]) {\n          while( true ) {\n            iVar15 = *piVar12;\n            uVar11 = *(uint *)(iVar4 + 4);\n            if (*(code **)(iVar15 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4);\n            }\n            else {\n              uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);\n              uVar11 = *(uint *)(iVar4 + 4);\n              piVar12 = (int *)*piVar14;\n              iVar15 = *piVar12;\n            }\n            *(undefined4 *)(iVar4 + 0x14) = uVar3;\n            uVar1 = (**(code **)(iVar15 + 0x88))(piVar12,uVar11);\n            *(undefined1 *)(iVar4 + 0x18) = uVar1;\n            if (piVar16[1] == iVar4 + 0x1c) break;\n            piVar12 = (int *)*piVar14;\n            iVar4 = iVar4 + 0x1c;\n          }\n        }\n        piVar14 = piVar14 + 1;\n      } while ((int *)param_3[1] != piVar14);\n    }\n    iVar4 = *(int *)(param_1 + 0x3e70);\n  }" else (compound_statement "{\n    piVar14 = (int *)*param_3;\n    if (piVar14 != (int *)param_3[1]) {\n      do {\n        piVar12 = (int *)*piVar14;\n        piVar16 = (int *)piVar12[0x14];\n        iVar4 = *piVar16;\n        if (iVar4 != piVar16[1]) {\n          while( true ) {\n            iVar15 = *piVar12;\n            uVar11 = *(uint *)(iVar4 + 4);\n            if (*(code **)(iVar15 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4);\n            }\n            else {\n              uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);\n              uVar11 = *(uint *)(iVar4 + 4);\n              piVar12 = (int *)*piVar14;\n              iVar15 = *piVar12;\n            }\n            *(undefined4 *)(iVar4 + 0x14) = uVar3;\n            uVar1 = (**(code **)(iVar15 + 0x88))(piVar12,uVar11);\n            *(undefined1 *)(iVar4 + 0x18) = uVar1;\n            if (piVar16[1] == iVar4 + 0x1c) break;\n            piVar12 = (int *)*piVar14;\n            iVar4 = iVar4 + 0x1c;\n          }\n        }\n        piVar14 = piVar14 + 1;\n      } while ((int *)param_3[1] != piVar14);\n    }\n    iVar4 = *(int *)(param_1 + 0x3e70);\n  }" { (expression_statement "piVar14 = (int *)*param_3;" (assignment_expression "piVar14 = (int *)*param_3" identifier = (cast_expression "(int *)*param_3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_3" * identifier))) ;) (if_statement "if (piVar14 != (int *)param_3[1]) {\n      do {\n        piVar12 = (int *)*piVar14;\n        piVar16 = (int *)piVar12[0x14];\n        iVar4 = *piVar16;\n        if (iVar4 != piVar16[1]) {\n          while( true ) {\n            iVar15 = *piVar12;\n            uVar11 = *(uint *)(iVar4 + 4);\n            if (*(code **)(iVar15 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4);\n            }\n            else {\n              uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);\n              uVar11 = *(uint *)(iVar4 + 4);\n              piVar12 = (int *)*piVar14;\n              iVar15 = *piVar12;\n            }\n            *(undefined4 *)(iVar4 + 0x14) = uVar3;\n            uVar1 = (**(code **)(iVar15 + 0x88))(piVar12,uVar11);\n            *(undefined1 *)(iVar4 + 0x18) = uVar1;\n            if (piVar16[1] == iVar4 + 0x1c) break;\n            piVar12 = (int *)*piVar14;\n            iVar4 = iVar4 + 0x1c;\n          }\n        }\n        piVar14 = piVar14 + 1;\n      } while ((int *)param_3[1] != piVar14);\n    }" if (parenthesized_expression "(piVar14 != (int *)param_3[1])" ( (binary_expression "piVar14 != (int *)param_3[1]" identifier != (cast_expression "(int *)param_3[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[1]" identifier [ number_literal ]))) )) (compound_statement "{\n      do {\n        piVar12 = (int *)*piVar14;\n        piVar16 = (int *)piVar12[0x14];\n        iVar4 = *piVar16;\n        if (iVar4 != piVar16[1]) {\n          while( true ) {\n            iVar15 = *piVar12;\n            uVar11 = *(uint *)(iVar4 + 4);\n            if (*(code **)(iVar15 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4);\n            }\n            else {\n              uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);\n              uVar11 = *(uint *)(iVar4 + 4);\n              piVar12 = (int *)*piVar14;\n              iVar15 = *piVar12;\n            }\n            *(undefined4 *)(iVar4 + 0x14) = uVar3;\n            uVar1 = (**(code **)(iVar15 + 0x88))(piVar12,uVar11);\n            *(undefined1 *)(iVar4 + 0x18) = uVar1;\n            if (piVar16[1] == iVar4 + 0x1c) break;\n            piVar12 = (int *)*piVar14;\n            iVar4 = iVar4 + 0x1c;\n          }\n        }\n        piVar14 = piVar14 + 1;\n      } while ((int *)param_3[1] != piVar14);\n    }" { (do_statement "do {\n        piVar12 = (int *)*piVar14;\n        piVar16 = (int *)piVar12[0x14];\n        iVar4 = *piVar16;\n        if (iVar4 != piVar16[1]) {\n          while( true ) {\n            iVar15 = *piVar12;\n            uVar11 = *(uint *)(iVar4 + 4);\n            if (*(code **)(iVar15 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4);\n            }\n            else {\n              uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);\n              uVar11 = *(uint *)(iVar4 + 4);\n              piVar12 = (int *)*piVar14;\n              iVar15 = *piVar12;\n            }\n            *(undefined4 *)(iVar4 + 0x14) = uVar3;\n            uVar1 = (**(code **)(iVar15 + 0x88))(piVar12,uVar11);\n            *(undefined1 *)(iVar4 + 0x18) = uVar1;\n            if (piVar16[1] == iVar4 + 0x1c) break;\n            piVar12 = (int *)*piVar14;\n            iVar4 = iVar4 + 0x1c;\n          }\n        }\n        piVar14 = piVar14 + 1;\n      } while ((int *)param_3[1] != piVar14);" do (compound_statement "{\n        piVar12 = (int *)*piVar14;\n        piVar16 = (int *)piVar12[0x14];\n        iVar4 = *piVar16;\n        if (iVar4 != piVar16[1]) {\n          while( true ) {\n            iVar15 = *piVar12;\n            uVar11 = *(uint *)(iVar4 + 4);\n            if (*(code **)(iVar15 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4);\n            }\n            else {\n              uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);\n              uVar11 = *(uint *)(iVar4 + 4);\n              piVar12 = (int *)*piVar14;\n              iVar15 = *piVar12;\n            }\n            *(undefined4 *)(iVar4 + 0x14) = uVar3;\n            uVar1 = (**(code **)(iVar15 + 0x88))(piVar12,uVar11);\n            *(undefined1 *)(iVar4 + 0x18) = uVar1;\n            if (piVar16[1] == iVar4 + 0x1c) break;\n            piVar12 = (int *)*piVar14;\n            iVar4 = iVar4 + 0x1c;\n          }\n        }\n        piVar14 = piVar14 + 1;\n      }" { (expression_statement "piVar12 = (int *)*piVar14;" (assignment_expression "piVar12 = (int *)*piVar14" identifier = (cast_expression "(int *)*piVar14" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar14" * identifier))) ;) (expression_statement "piVar16 = (int *)piVar12[0x14];" (assignment_expression "piVar16 = (int *)piVar12[0x14]" identifier = (cast_expression "(int *)piVar12[0x14]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x14]" identifier [ number_literal ]))) ;) (expression_statement "iVar4 = *piVar16;" (assignment_expression "iVar4 = *piVar16" identifier = (pointer_expression "*piVar16" * identifier)) ;) (if_statement "if (iVar4 != piVar16[1]) {\n          while( true ) {\n            iVar15 = *piVar12;\n            uVar11 = *(uint *)(iVar4 + 4);\n            if (*(code **)(iVar15 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4);\n            }\n            else {\n              uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);\n              uVar11 = *(uint *)(iVar4 + 4);\n              piVar12 = (int *)*piVar14;\n              iVar15 = *piVar12;\n            }\n            *(undefined4 *)(iVar4 + 0x14) = uVar3;\n            uVar1 = (**(code **)(iVar15 + 0x88))(piVar12,uVar11);\n            *(undefined1 *)(iVar4 + 0x18) = uVar1;\n            if (piVar16[1] == iVar4 + 0x1c) break;\n            piVar12 = (int *)*piVar14;\n            iVar4 = iVar4 + 0x1c;\n          }\n        }" if (parenthesized_expression "(iVar4 != piVar16[1])" ( (binary_expression "iVar4 != piVar16[1]" identifier != (subscript_expression "piVar16[1]" identifier [ number_literal ])) )) (compound_statement "{\n          while( true ) {\n            iVar15 = *piVar12;\n            uVar11 = *(uint *)(iVar4 + 4);\n            if (*(code **)(iVar15 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4);\n            }\n            else {\n              uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);\n              uVar11 = *(uint *)(iVar4 + 4);\n              piVar12 = (int *)*piVar14;\n              iVar15 = *piVar12;\n            }\n            *(undefined4 *)(iVar4 + 0x14) = uVar3;\n            uVar1 = (**(code **)(iVar15 + 0x88))(piVar12,uVar11);\n            *(undefined1 *)(iVar4 + 0x18) = uVar1;\n            if (piVar16[1] == iVar4 + 0x1c) break;\n            piVar12 = (int *)*piVar14;\n            iVar4 = iVar4 + 0x1c;\n          }\n        }" { (while_statement "while( true ) {\n            iVar15 = *piVar12;\n            uVar11 = *(uint *)(iVar4 + 4);\n            if (*(code **)(iVar15 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4);\n            }\n            else {\n              uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);\n              uVar11 = *(uint *)(iVar4 + 4);\n              piVar12 = (int *)*piVar14;\n              iVar15 = *piVar12;\n            }\n            *(undefined4 *)(iVar4 + 0x14) = uVar3;\n            uVar1 = (**(code **)(iVar15 + 0x88))(piVar12,uVar11);\n            *(undefined1 *)(iVar4 + 0x18) = uVar1;\n            if (piVar16[1] == iVar4 + 0x1c) break;\n            piVar12 = (int *)*piVar14;\n            iVar4 = iVar4 + 0x1c;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            iVar15 = *piVar12;\n            uVar11 = *(uint *)(iVar4 + 4);\n            if (*(code **)(iVar15 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4);\n            }\n            else {\n              uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);\n              uVar11 = *(uint *)(iVar4 + 4);\n              piVar12 = (int *)*piVar14;\n              iVar15 = *piVar12;\n            }\n            *(undefined4 *)(iVar4 + 0x14) = uVar3;\n            uVar1 = (**(code **)(iVar15 + 0x88))(piVar12,uVar11);\n            *(undefined1 *)(iVar4 + 0x18) = uVar1;\n            if (piVar16[1] == iVar4 + 0x1c) break;\n            piVar12 = (int *)*piVar14;\n            iVar4 = iVar4 + 0x1c;\n          }" { (expression_statement "iVar15 = *piVar12;" (assignment_expression "iVar15 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "uVar11 = *(uint *)(iVar4 + 4);" (assignment_expression "uVar11 = *(uint *)(iVar4 + 4)" identifier = (pointer_expression "*(uint *)(iVar4 + 4)" * (cast_expression "(uint *)(iVar4 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 4)" ( (binary_expression "iVar4 + 4" identifier + number_literal) ))))) ;) (if_statement "if (*(code **)(iVar15 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4);\n            }\n            else {\n              uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);\n              uVar11 = *(uint *)(iVar4 + 4);\n              piVar12 = (int *)*piVar14;\n              iVar15 = *piVar12;\n            }" if (parenthesized_expression "(*(code **)(iVar15 + 0x60) == FUN_000a5850)" ( (binary_expression "*(code **)(iVar15 + 0x60) == FUN_000a5850" (pointer_expression "*(code **)(iVar15 + 0x60)" * (cast_expression "(code **)(iVar15 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + 0x60)" ( (binary_expression "iVar15 + 0x60" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4);\n            }" { (if_statement "if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }" if (parenthesized_expression "((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11)" ( (binary_expression "(uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11" (call_expression "(uint)(piVar12[0xf] - piVar12[0xe] >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar12[0xf] - piVar12[0xe] >> 2)" ( (binary_expression "piVar12[0xf] - piVar12[0xe] >> 2" (binary_expression "piVar12[0xf] - piVar12[0xe]" (subscript_expression "piVar12[0xf]" identifier [ number_literal ]) - (subscript_expression "piVar12[0xe]" identifier [ number_literal ])) >> number_literal) ))) <= identifier) )) (compound_statement "{\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }" { (expression_statement "FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");" (call_expression "FUN_000da200("../../gold/object.h",0x5c8,"do_output_section")" identifier (argument_list "("../../gold/object.h",0x5c8,"do_output_section")" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""do_output_section"" " string_content ") ))) ;) })) (expression_statement "uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4);" (assignment_expression "uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4)" identifier = (pointer_expression "*(undefined4 *)(piVar12[0xe] + uVar11 * 4)" * (cast_expression "(undefined4 *)(piVar12[0xe] + uVar11 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12[0xe] + uVar11 * 4)" ( (binary_expression "piVar12[0xe] + uVar11 * 4" (subscript_expression "piVar12[0xe]" identifier [ number_literal ]) + (binary_expression "uVar11 * 4" identifier * number_literal)) ))))) ;) }) (else_clause "else {\n              uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);\n              uVar11 = *(uint *)(iVar4 + 4);\n              piVar12 = (int *)*piVar14;\n              iVar15 = *piVar12;\n            }" else (compound_statement "{\n              uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);\n              uVar11 = *(uint *)(iVar4 + 4);\n              piVar12 = (int *)*piVar14;\n              iVar15 = *piVar12;\n            }" { (expression_statement "uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);" (assignment_expression "uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11)" identifier = (call_expression "(**(code **)(iVar15 + 0x60))(piVar12,uVar11)" (parenthesized_expression "(**(code **)(iVar15 + 0x60))" ( (pointer_expression "**(code **)(iVar15 + 0x60)" * (pointer_expression "*(code **)(iVar15 + 0x60)" * (cast_expression "(code **)(iVar15 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + 0x60)" ( (binary_expression "iVar15 + 0x60" identifier + number_literal) ))))) )) (argument_list "(piVar12,uVar11)" ( identifier , identifier )))) ;) (expression_statement "uVar11 = *(uint *)(iVar4 + 4);" (assignment_expression "uVar11 = *(uint *)(iVar4 + 4)" identifier = (pointer_expression "*(uint *)(iVar4 + 4)" * (cast_expression "(uint *)(iVar4 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 4)" ( (binary_expression "iVar4 + 4" identifier + number_literal) ))))) ;) (expression_statement "piVar12 = (int *)*piVar14;" (assignment_expression "piVar12 = (int *)*piVar14" identifier = (cast_expression "(int *)*piVar14" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar14" * identifier))) ;) (expression_statement "iVar15 = *piVar12;" (assignment_expression "iVar15 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) }))) (expression_statement "*(undefined4 *)(iVar4 + 0x14) = uVar3;" (assignment_expression "*(undefined4 *)(iVar4 + 0x14) = uVar3" (pointer_expression "*(undefined4 *)(iVar4 + 0x14)" * (cast_expression "(undefined4 *)(iVar4 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar1 = (**(code **)(iVar15 + 0x88))(piVar12,uVar11);" (assignment_expression "uVar1 = (**(code **)(iVar15 + 0x88))(piVar12,uVar11)" identifier = (call_expression "(**(code **)(iVar15 + 0x88))(piVar12,uVar11)" (parenthesized_expression "(**(code **)(iVar15 + 0x88))" ( (pointer_expression "**(code **)(iVar15 + 0x88)" * (pointer_expression "*(code **)(iVar15 + 0x88)" * (cast_expression "(code **)(iVar15 + 0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + 0x88)" ( (binary_expression "iVar15 + 0x88" identifier + number_literal) ))))) )) (argument_list "(piVar12,uVar11)" ( identifier , identifier )))) ;) (expression_statement "*(undefined1 *)(iVar4 + 0x18) = uVar1;" (assignment_expression "*(undefined1 *)(iVar4 + 0x18) = uVar1" (pointer_expression "*(undefined1 *)(iVar4 + 0x18)" * (cast_expression "(undefined1 *)(iVar4 + 0x18)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) )))) = identifier) ;) (if_statement "if (piVar16[1] == iVar4 + 0x1c) break;" if (parenthesized_expression "(piVar16[1] == iVar4 + 0x1c)" ( (binary_expression "piVar16[1] == iVar4 + 0x1c" (subscript_expression "piVar16[1]" identifier [ number_literal ]) == (binary_expression "iVar4 + 0x1c" identifier + number_literal)) )) (break_statement "break;" break ;)) (expression_statement "piVar12 = (int *)*piVar14;" (assignment_expression "piVar12 = (int *)*piVar14" identifier = (cast_expression "(int *)*piVar14" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar14" * identifier))) ;) (expression_statement "iVar4 = iVar4 + 0x1c;" (assignment_expression "iVar4 = iVar4 + 0x1c" identifier = (binary_expression "iVar4 + 0x1c" identifier + number_literal)) ;) })) })) (expression_statement "piVar14 = piVar14 + 1;" (assignment_expression "piVar14 = piVar14 + 1" identifier = (binary_expression "piVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((int *)param_3[1] != piVar14)" ( (binary_expression "(int *)param_3[1] != piVar14" (cast_expression "(int *)param_3[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[1]" identifier [ number_literal ])) != identifier) )) ;) })) (expression_statement "iVar4 = *(int *)(param_1 + 0x3e70);" (assignment_expression "iVar4 = *(int *)(param_1 + 0x3e70)" identifier = (pointer_expression "*(int *)(param_1 + 0x3e70)" * (cast_expression "(int *)(param_1 + 0x3e70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3e70)" ( (binary_expression "param_1 + 0x3e70" identifier + number_literal) ))))) ;) }))) (if_statement "if ((iVar4 == 0) &&\n     (iVar4 = (param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2), iVar4 < 2)) {\n    iVar4 = 2;\n  }" if (parenthesized_expression "((iVar4 == 0) &&\n     (iVar4 = (param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2), iVar4 < 2))" ( (binary_expression "(iVar4 == 0) &&\n     (iVar4 = (param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2), iVar4 < 2)" (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar4 = (param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2), iVar4 < 2)" ( (comma_expression "iVar4 = (param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2), iVar4 < 2" (assignment_expression "iVar4 = (param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2)" identifier = (binary_expression "(param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2)" (parenthesized_expression "(param_3[4] - param_3[3] >> 2)" ( (binary_expression "param_3[4] - param_3[3] >> 2" (binary_expression "param_3[4] - param_3[3]" (subscript_expression "param_3[4]" identifier [ number_literal ]) - (subscript_expression "param_3[3]" identifier [ number_literal ])) >> number_literal) )) + (parenthesized_expression "(param_3[1] - *param_3 >> 2)" ( (binary_expression "param_3[1] - *param_3 >> 2" (binary_expression "param_3[1] - *param_3" (subscript_expression "param_3[1]" identifier [ number_literal ]) - (pointer_expression "*param_3" * identifier)) >> number_literal) )))) , (binary_expression "iVar4 < 2" identifier < number_literal)) ))) )) (compound_statement "{\n    iVar4 = 2;\n  }" { (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" identifier = number_literal) ;) })) (expression_statement "FUN_002007c0(param_6,iVar4);" (call_expression "FUN_002007c0(param_6,iVar4)" identifier (argument_list "(param_6,iVar4)" ( identifier , identifier ))) ;) (if_statement "if (param_3[4] == param_3[3]) {\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n    if ((*(char *)(iVar4 + 0x1a25) != '\0') || (*(char *)(iVar4 + 0x2931) != '\0'))\n    goto LAB_000da6a6;\n    FUN_001a52b0(1);\n  }\n  else {\nLAB_000da6a6:\n    FUN_001a52b0(0);\n    if (*(char *)(param_1 + 0x5938) != '\0') {\n      if ((int *)param_3[3] == (int *)param_3[4]) {\n                    \n        FUN_000da200("../../gold/gold.cc",0x265,"queue_middle_tasks",&__DT_PLTGOT);\n      }\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      uVar10 = gettext("cannot mix -static with dynamic object %s");\n      FUN_000d1330(uVar10,uVar3);\n    }\n    if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n    if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) != '\0') {\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      pcVar9 = "cannot mix -r with dynamic object %s";\nLAB_000db04c:\n      uVar10 = gettext(pcVar9);\n                    \n      FUN_000d12d0(uVar10,uVar3);\n    }\n    iVar4 = FUN_0014c1c0(param_1);\n    if (iVar4 != 0) {\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      pcVar9 = "cannot use non-ELF output format with dynamic object %s";\n      goto LAB_000db04c;\n    }\n  }" if (parenthesized_expression "(param_3[4] == param_3[3])" ( (binary_expression "param_3[4] == param_3[3]" (subscript_expression "param_3[4]" identifier [ number_literal ]) == (subscript_expression "param_3[3]" identifier [ number_literal ])) )) (compound_statement "{\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n    if ((*(char *)(iVar4 + 0x1a25) != '\0') || (*(char *)(iVar4 + 0x2931) != '\0'))\n    goto LAB_000da6a6;\n    FUN_001a52b0(1);\n  }" { (expression_statement "iVar4 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar4 = *(int *)(DAT_004144e8 + 8)" identifier = (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar4 == 0) goto LAB_000dac36;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000dac36;" goto statement_identifier ;)) (if_statement "if ((*(char *)(iVar4 + 0x1a25) != '\0') || (*(char *)(iVar4 + 0x2931) != '\0'))\n    goto LAB_000da6a6;" if (parenthesized_expression "((*(char *)(iVar4 + 0x1a25) != '\0') || (*(char *)(iVar4 + 0x2931) != '\0'))" ( (binary_expression "(*(char *)(iVar4 + 0x1a25) != '\0') || (*(char *)(iVar4 + 0x2931) != '\0')" (parenthesized_expression "(*(char *)(iVar4 + 0x1a25) != '\0')" ( (binary_expression "*(char *)(iVar4 + 0x1a25) != '\0'" (pointer_expression "*(char *)(iVar4 + 0x1a25)" * (cast_expression "(char *)(iVar4 + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1a25)" ( (binary_expression "iVar4 + 0x1a25" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(*(char *)(iVar4 + 0x2931) != '\0')" ( (binary_expression "*(char *)(iVar4 + 0x2931) != '\0'" (pointer_expression "*(char *)(iVar4 + 0x2931)" * (cast_expression "(char *)(iVar4 + 0x2931)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2931)" ( (binary_expression "iVar4 + 0x2931" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_000da6a6;" goto statement_identifier ;)) (expression_statement "FUN_001a52b0(1);" (call_expression "FUN_001a52b0(1)" identifier (argument_list "(1)" ( number_literal ))) ;) }) (else_clause "else {\nLAB_000da6a6:\n    FUN_001a52b0(0);\n    if (*(char *)(param_1 + 0x5938) != '\0') {\n      if ((int *)param_3[3] == (int *)param_3[4]) {\n                    \n        FUN_000da200("../../gold/gold.cc",0x265,"queue_middle_tasks",&__DT_PLTGOT);\n      }\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      uVar10 = gettext("cannot mix -static with dynamic object %s");\n      FUN_000d1330(uVar10,uVar3);\n    }\n    if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n    if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) != '\0') {\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      pcVar9 = "cannot mix -r with dynamic object %s";\nLAB_000db04c:\n      uVar10 = gettext(pcVar9);\n                    \n      FUN_000d12d0(uVar10,uVar3);\n    }\n    iVar4 = FUN_0014c1c0(param_1);\n    if (iVar4 != 0) {\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      pcVar9 = "cannot use non-ELF output format with dynamic object %s";\n      goto LAB_000db04c;\n    }\n  }" else (compound_statement "{\nLAB_000da6a6:\n    FUN_001a52b0(0);\n    if (*(char *)(param_1 + 0x5938) != '\0') {\n      if ((int *)param_3[3] == (int *)param_3[4]) {\n                    \n        FUN_000da200("../../gold/gold.cc",0x265,"queue_middle_tasks",&__DT_PLTGOT);\n      }\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      uVar10 = gettext("cannot mix -static with dynamic object %s");\n      FUN_000d1330(uVar10,uVar3);\n    }\n    if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n    if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) != '\0') {\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      pcVar9 = "cannot mix -r with dynamic object %s";\nLAB_000db04c:\n      uVar10 = gettext(pcVar9);\n                    \n      FUN_000d12d0(uVar10,uVar3);\n    }\n    iVar4 = FUN_0014c1c0(param_1);\n    if (iVar4 != 0) {\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      pcVar9 = "cannot use non-ELF output format with dynamic object %s";\n      goto LAB_000db04c;\n    }\n  }" { (labeled_statement "LAB_000da6a6:\n    FUN_001a52b0(0);" statement_identifier : (expression_statement "FUN_001a52b0(0);" (call_expression "FUN_001a52b0(0)" identifier (argument_list "(0)" ( number_literal ))) ;)) (if_statement "if (*(char *)(param_1 + 0x5938) != '\0') {\n      if ((int *)param_3[3] == (int *)param_3[4]) {\n                    \n        FUN_000da200("../../gold/gold.cc",0x265,"queue_middle_tasks",&__DT_PLTGOT);\n      }\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      uVar10 = gettext("cannot mix -static with dynamic object %s");\n      FUN_000d1330(uVar10,uVar3);\n    }" if (parenthesized_expression "(*(char *)(param_1 + 0x5938) != '\0')" ( (binary_expression "*(char *)(param_1 + 0x5938) != '\0'" (pointer_expression "*(char *)(param_1 + 0x5938)" * (cast_expression "(char *)(param_1 + 0x5938)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5938)" ( (binary_expression "param_1 + 0x5938" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if ((int *)param_3[3] == (int *)param_3[4]) {\n                    \n        FUN_000da200("../../gold/gold.cc",0x265,"queue_middle_tasks",&__DT_PLTGOT);\n      }\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      uVar10 = gettext("cannot mix -static with dynamic object %s");\n      FUN_000d1330(uVar10,uVar3);\n    }" { (if_statement "if ((int *)param_3[3] == (int *)param_3[4]) {\n                    \n        FUN_000da200("../../gold/gold.cc",0x265,"queue_middle_tasks",&__DT_PLTGOT);\n      }" if (parenthesized_expression "((int *)param_3[3] == (int *)param_3[4])" ( (binary_expression "(int *)param_3[3] == (int *)param_3[4]" (cast_expression "(int *)param_3[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ])) == (cast_expression "(int *)param_3[4]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[4]" identifier [ number_literal ]))) )) (compound_statement "{\n                    \n        FUN_000da200("../../gold/gold.cc",0x265,"queue_middle_tasks",&__DT_PLTGOT);\n      }" { (expression_statement "FUN_000da200("../../gold/gold.cc",0x265,"queue_middle_tasks",&__DT_PLTGOT);" (call_expression "FUN_000da200("../../gold/gold.cc",0x265,"queue_middle_tasks",&__DT_PLTGOT)" identifier (argument_list "("../../gold/gold.cc",0x265,"queue_middle_tasks",&__DT_PLTGOT)" ( (string_literal ""../../gold/gold.cc"" " string_content ") , number_literal , (string_literal ""queue_middle_tasks"" " string_content ") , (pointer_expression "&__DT_PLTGOT" & identifier) ))) ;) })) (expression_statement "uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);" (assignment_expression "uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4)" identifier = (pointer_expression "*(undefined4 *)(*(int *)param_3[3] + 4)" * (cast_expression "(undefined4 *)(*(int *)param_3[3] + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)param_3[3] + 4)" ( (binary_expression "*(int *)param_3[3] + 4" (pointer_expression "*(int *)param_3[3]" * (cast_expression "(int *)param_3[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) + number_literal) ))))) ;) (expression_statement "uVar10 = gettext("cannot mix -static with dynamic object %s");" (assignment_expression "uVar10 = gettext("cannot mix -static with dynamic object %s")" identifier = (call_expression "gettext("cannot mix -static with dynamic object %s")" identifier (argument_list "("cannot mix -static with dynamic object %s")" ( (string_literal ""cannot mix -static with dynamic object %s"" " string_content ") )))) ;) (expression_statement "FUN_000d1330(uVar10,uVar3);" (call_expression "FUN_000d1330(uVar10,uVar3)" identifier (argument_list "(uVar10,uVar3)" ( identifier , identifier ))) ;) })) (if_statement "if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;" if (parenthesized_expression "(*(int *)(DAT_004144e8 + 8) == 0)" ( (binary_expression "*(int *)(DAT_004144e8 + 8) == 0" (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_000dac36;" goto statement_identifier ;)) (if_statement "if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) != '\0') {\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      pcVar9 = "cannot mix -r with dynamic object %s";\nLAB_000db04c:\n      uVar10 = gettext(pcVar9);\n                    \n      FUN_000d12d0(uVar10,uVar3);\n    }" if (parenthesized_expression "(*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) != '\0')" ( (binary_expression "*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) != '\0'" (pointer_expression "*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d)" * (cast_expression "(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_004144e8 + 8) + 0x318d)" ( (binary_expression "*(int *)(DAT_004144e8 + 8) + 0x318d" (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      pcVar9 = "cannot mix -r with dynamic object %s";\nLAB_000db04c:\n      uVar10 = gettext(pcVar9);\n                    \n      FUN_000d12d0(uVar10,uVar3);\n    }" { (expression_statement "uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);" (assignment_expression "uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4)" identifier = (pointer_expression "*(undefined4 *)(*(int *)param_3[3] + 4)" * (cast_expression "(undefined4 *)(*(int *)param_3[3] + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)param_3[3] + 4)" ( (binary_expression "*(int *)param_3[3] + 4" (pointer_expression "*(int *)param_3[3]" * (cast_expression "(int *)param_3[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) + number_literal) ))))) ;) (expression_statement "pcVar9 = "cannot mix -r with dynamic object %s";" (assignment_expression "pcVar9 = "cannot mix -r with dynamic object %s"" identifier = (string_literal ""cannot mix -r with dynamic object %s"" " string_content ")) ;) (labeled_statement "LAB_000db04c:\n      uVar10 = gettext(pcVar9);" statement_identifier : (expression_statement "uVar10 = gettext(pcVar9);" (assignment_expression "uVar10 = gettext(pcVar9)" identifier = (call_expression "gettext(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier )))) ;)) (expression_statement "FUN_000d12d0(uVar10,uVar3);" (call_expression "FUN_000d12d0(uVar10,uVar3)" identifier (argument_list "(uVar10,uVar3)" ( identifier , identifier ))) ;) })) (expression_statement "iVar4 = FUN_0014c1c0(param_1);" (assignment_expression "iVar4 = FUN_0014c1c0(param_1)" identifier = (call_expression "FUN_0014c1c0(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (iVar4 != 0) {\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      pcVar9 = "cannot use non-ELF output format with dynamic object %s";\n      goto LAB_000db04c;\n    }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      pcVar9 = "cannot use non-ELF output format with dynamic object %s";\n      goto LAB_000db04c;\n    }" { (expression_statement "uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);" (assignment_expression "uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4)" identifier = (pointer_expression "*(undefined4 *)(*(int *)param_3[3] + 4)" * (cast_expression "(undefined4 *)(*(int *)param_3[3] + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)param_3[3] + 4)" ( (binary_expression "*(int *)param_3[3] + 4" (pointer_expression "*(int *)param_3[3]" * (cast_expression "(int *)param_3[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) + number_literal) ))))) ;) (expression_statement "pcVar9 = "cannot use non-ELF output format with dynamic object %s";" (assignment_expression "pcVar9 = "cannot use non-ELF output format with dynamic object %s"" identifier = (string_literal ""cannot use non-ELF output format with dynamic object %s"" " string_content ")) ;) (goto_statement "goto LAB_000db04c;" goto statement_identifier ;) })) }))) (if_statement "if (*(int *)(DAT_004144e8 + 8) == 0) {\nLAB_000dac36:\n                    \n    FUN_000da200("../../gold/parameters.h",0x5c,"options");\n  }" if (parenthesized_expression "(*(int *)(DAT_004144e8 + 8) == 0)" ( (binary_expression "*(int *)(DAT_004144e8 + 8) == 0" (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_000dac36:\n                    \n    FUN_000da200("../../gold/parameters.h",0x5c,"options");\n  }" { (labeled_statement "LAB_000dac36:\n                    \n    FUN_000da200("../../gold/parameters.h",0x5c,"options");" statement_identifier : (expression_statement "FUN_000da200("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_000da200("../../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 ") ))) ;)) })) (if_statement "if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) != '\0') {\n    piVar14 = (int *)*param_3;\n    piVar16 = (int *)param_3[1];\n    if (piVar16 != piVar14) {\n      bVar13 = *(byte *)(*piVar14 + 0x2c) >> 2 & 1;\n      if (piVar16 != piVar14 + 1) {\n        iVar4 = piVar14[1];\n        if ((*(byte *)(iVar4 + 0x2c) >> 2 & 1) == bVar13) {\n          piVar12 = piVar14 + 2;\n          do {\n            if (piVar16 == piVar12) goto LAB_000da77b;\n            iVar4 = *piVar12;\n            piVar12 = piVar12 + 1;\n          } while (bVar13 == (*(byte *)(iVar4 + 0x2c) >> 2 & 1));\n        }\n        uVar3 = *(undefined4 *)(iVar4 + 4);\n        uVar10 = *(undefined4 *)(*piVar14 + 4);\n        uVar8 = gettext("cannot mix split-stack \'%s\' and non-split-stack \'%s\' when using -r");\n                    \n        FUN_000d12d0(uVar8,uVar10,uVar3);\n      }\n    }\n  }" if (parenthesized_expression "(*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) != '\0')" ( (binary_expression "*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) != '\0'" (pointer_expression "*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d)" * (cast_expression "(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_004144e8 + 8) + 0x318d)" ( (binary_expression "*(int *)(DAT_004144e8 + 8) + 0x318d" (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    piVar14 = (int *)*param_3;\n    piVar16 = (int *)param_3[1];\n    if (piVar16 != piVar14) {\n      bVar13 = *(byte *)(*piVar14 + 0x2c) >> 2 & 1;\n      if (piVar16 != piVar14 + 1) {\n        iVar4 = piVar14[1];\n        if ((*(byte *)(iVar4 + 0x2c) >> 2 & 1) == bVar13) {\n          piVar12 = piVar14 + 2;\n          do {\n            if (piVar16 == piVar12) goto LAB_000da77b;\n            iVar4 = *piVar12;\n            piVar12 = piVar12 + 1;\n          } while (bVar13 == (*(byte *)(iVar4 + 0x2c) >> 2 & 1));\n        }\n        uVar3 = *(undefined4 *)(iVar4 + 4);\n        uVar10 = *(undefined4 *)(*piVar14 + 4);\n        uVar8 = gettext("cannot mix split-stack \'%s\' and non-split-stack \'%s\' when using -r");\n                    \n        FUN_000d12d0(uVar8,uVar10,uVar3);\n      }\n    }\n  }" { (expression_statement "piVar14 = (int *)*param_3;" (assignment_expression "piVar14 = (int *)*param_3" identifier = (cast_expression "(int *)*param_3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_3" * identifier))) ;) (expression_statement "piVar16 = (int *)param_3[1];" (assignment_expression "piVar16 = (int *)param_3[1]" identifier = (cast_expression "(int *)param_3[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[1]" identifier [ number_literal ]))) ;) (if_statement "if (piVar16 != piVar14) {\n      bVar13 = *(byte *)(*piVar14 + 0x2c) >> 2 & 1;\n      if (piVar16 != piVar14 + 1) {\n        iVar4 = piVar14[1];\n        if ((*(byte *)(iVar4 + 0x2c) >> 2 & 1) == bVar13) {\n          piVar12 = piVar14 + 2;\n          do {\n            if (piVar16 == piVar12) goto LAB_000da77b;\n            iVar4 = *piVar12;\n            piVar12 = piVar12 + 1;\n          } while (bVar13 == (*(byte *)(iVar4 + 0x2c) >> 2 & 1));\n        }\n        uVar3 = *(undefined4 *)(iVar4 + 4);\n        uVar10 = *(undefined4 *)(*piVar14 + 4);\n        uVar8 = gettext("cannot mix split-stack \'%s\' and non-split-stack \'%s\' when using -r");\n                    \n        FUN_000d12d0(uVar8,uVar10,uVar3);\n      }\n    }" if (parenthesized_expression "(piVar16 != piVar14)" ( (binary_expression "piVar16 != piVar14" identifier != identifier) )) (compound_statement "{\n      bVar13 = *(byte *)(*piVar14 + 0x2c) >> 2 & 1;\n      if (piVar16 != piVar14 + 1) {\n        iVar4 = piVar14[1];\n        if ((*(byte *)(iVar4 + 0x2c) >> 2 & 1) == bVar13) {\n          piVar12 = piVar14 + 2;\n          do {\n            if (piVar16 == piVar12) goto LAB_000da77b;\n            iVar4 = *piVar12;\n            piVar12 = piVar12 + 1;\n          } while (bVar13 == (*(byte *)(iVar4 + 0x2c) >> 2 & 1));\n        }\n        uVar3 = *(undefined4 *)(iVar4 + 4);\n        uVar10 = *(undefined4 *)(*piVar14 + 4);\n        uVar8 = gettext("cannot mix split-stack \'%s\' and non-split-stack \'%s\' when using -r");\n                    \n        FUN_000d12d0(uVar8,uVar10,uVar3);\n      }\n    }" { (expression_statement "bVar13 = *(byte *)(*piVar14 + 0x2c) >> 2 & 1;" (assignment_expression "bVar13 = *(byte *)(*piVar14 + 0x2c) >> 2 & 1" identifier = (binary_expression "*(byte *)(*piVar14 + 0x2c) >> 2 & 1" (binary_expression "*(byte *)(*piVar14 + 0x2c) >> 2" (pointer_expression "*(byte *)(*piVar14 + 0x2c)" * (cast_expression "(byte *)(*piVar14 + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar14 + 0x2c)" ( (binary_expression "*piVar14 + 0x2c" (pointer_expression "*piVar14" * identifier) + number_literal) )))) >> number_literal) & number_literal)) ;) (if_statement "if (piVar16 != piVar14 + 1) {\n        iVar4 = piVar14[1];\n        if ((*(byte *)(iVar4 + 0x2c) >> 2 & 1) == bVar13) {\n          piVar12 = piVar14 + 2;\n          do {\n            if (piVar16 == piVar12) goto LAB_000da77b;\n            iVar4 = *piVar12;\n            piVar12 = piVar12 + 1;\n          } while (bVar13 == (*(byte *)(iVar4 + 0x2c) >> 2 & 1));\n        }\n        uVar3 = *(undefined4 *)(iVar4 + 4);\n        uVar10 = *(undefined4 *)(*piVar14 + 4);\n        uVar8 = gettext("cannot mix split-stack \'%s\' and non-split-stack \'%s\' when using -r");\n                    \n        FUN_000d12d0(uVar8,uVar10,uVar3);\n      }" if (parenthesized_expression "(piVar16 != piVar14 + 1)" ( (binary_expression "piVar16 != piVar14 + 1" identifier != (binary_expression "piVar14 + 1" identifier + number_literal)) )) (compound_statement "{\n        iVar4 = piVar14[1];\n        if ((*(byte *)(iVar4 + 0x2c) >> 2 & 1) == bVar13) {\n          piVar12 = piVar14 + 2;\n          do {\n            if (piVar16 == piVar12) goto LAB_000da77b;\n            iVar4 = *piVar12;\n            piVar12 = piVar12 + 1;\n          } while (bVar13 == (*(byte *)(iVar4 + 0x2c) >> 2 & 1));\n        }\n        uVar3 = *(undefined4 *)(iVar4 + 4);\n        uVar10 = *(undefined4 *)(*piVar14 + 4);\n        uVar8 = gettext("cannot mix split-stack \'%s\' and non-split-stack \'%s\' when using -r");\n                    \n        FUN_000d12d0(uVar8,uVar10,uVar3);\n      }" { (expression_statement "iVar4 = piVar14[1];" (assignment_expression "iVar4 = piVar14[1]" identifier = (subscript_expression "piVar14[1]" identifier [ number_literal ])) ;) (if_statement "if ((*(byte *)(iVar4 + 0x2c) >> 2 & 1) == bVar13) {\n          piVar12 = piVar14 + 2;\n          do {\n            if (piVar16 == piVar12) goto LAB_000da77b;\n            iVar4 = *piVar12;\n            piVar12 = piVar12 + 1;\n          } while (bVar13 == (*(byte *)(iVar4 + 0x2c) >> 2 & 1));\n        }" if (parenthesized_expression "((*(byte *)(iVar4 + 0x2c) >> 2 & 1) == bVar13)" ( (binary_expression "(*(byte *)(iVar4 + 0x2c) >> 2 & 1) == bVar13" (parenthesized_expression "(*(byte *)(iVar4 + 0x2c) >> 2 & 1)" ( (binary_expression "*(byte *)(iVar4 + 0x2c) >> 2 & 1" (binary_expression "*(byte *)(iVar4 + 0x2c) >> 2" (pointer_expression "*(byte *)(iVar4 + 0x2c)" * (cast_expression "(byte *)(iVar4 + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2c)" ( (binary_expression "iVar4 + 0x2c" identifier + number_literal) )))) >> number_literal) & number_literal) )) == identifier) )) (compound_statement "{\n          piVar12 = piVar14 + 2;\n          do {\n            if (piVar16 == piVar12) goto LAB_000da77b;\n            iVar4 = *piVar12;\n            piVar12 = piVar12 + 1;\n          } while (bVar13 == (*(byte *)(iVar4 + 0x2c) >> 2 & 1));\n        }" { (expression_statement "piVar12 = piVar14 + 2;" (assignment_expression "piVar12 = piVar14 + 2" identifier = (binary_expression "piVar14 + 2" identifier + number_literal)) ;) (do_statement "do {\n            if (piVar16 == piVar12) goto LAB_000da77b;\n            iVar4 = *piVar12;\n            piVar12 = piVar12 + 1;\n          } while (bVar13 == (*(byte *)(iVar4 + 0x2c) >> 2 & 1));" do (compound_statement "{\n            if (piVar16 == piVar12) goto LAB_000da77b;\n            iVar4 = *piVar12;\n            piVar12 = piVar12 + 1;\n          }" { (if_statement "if (piVar16 == piVar12) goto LAB_000da77b;" if (parenthesized_expression "(piVar16 == piVar12)" ( (binary_expression "piVar16 == piVar12" identifier == identifier) )) (goto_statement "goto LAB_000da77b;" goto statement_identifier ;)) (expression_statement "iVar4 = *piVar12;" (assignment_expression "iVar4 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "piVar12 = piVar12 + 1;" (assignment_expression "piVar12 = piVar12 + 1" identifier = (binary_expression "piVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar13 == (*(byte *)(iVar4 + 0x2c) >> 2 & 1))" ( (binary_expression "bVar13 == (*(byte *)(iVar4 + 0x2c) >> 2 & 1)" identifier == (parenthesized_expression "(*(byte *)(iVar4 + 0x2c) >> 2 & 1)" ( (binary_expression "*(byte *)(iVar4 + 0x2c) >> 2 & 1" (binary_expression "*(byte *)(iVar4 + 0x2c) >> 2" (pointer_expression "*(byte *)(iVar4 + 0x2c)" * (cast_expression "(byte *)(iVar4 + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2c)" ( (binary_expression "iVar4 + 0x2c" identifier + number_literal) )))) >> number_literal) & number_literal) ))) )) ;) })) (expression_statement "uVar3 = *(undefined4 *)(iVar4 + 4);" (assignment_expression "uVar3 = *(undefined4 *)(iVar4 + 4)" identifier = (pointer_expression "*(undefined4 *)(iVar4 + 4)" * (cast_expression "(undefined4 *)(iVar4 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 4)" ( (binary_expression "iVar4 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = *(undefined4 *)(*piVar14 + 4);" (assignment_expression "uVar10 = *(undefined4 *)(*piVar14 + 4)" identifier = (pointer_expression "*(undefined4 *)(*piVar14 + 4)" * (cast_expression "(undefined4 *)(*piVar14 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar14 + 4)" ( (binary_expression "*piVar14 + 4" (pointer_expression "*piVar14" * identifier) + number_literal) ))))) ;) (expression_statement "uVar8 = gettext("cannot mix split-stack \'%s\' and non-split-stack \'%s\' when using -r");" (assignment_expression "uVar8 = gettext("cannot mix split-stack \'%s\' and non-split-stack \'%s\' when using -r")" identifier = (call_expression "gettext("cannot mix split-stack \'%s\' and non-split-stack \'%s\' when using -r")" identifier (argument_list "("cannot mix split-stack \'%s\' and non-split-stack \'%s\' when using -r")" ( (string_literal ""cannot mix split-stack \'%s\' and non-split-stack \'%s\' when using -r"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") )))) ;) (expression_statement "FUN_000d12d0(uVar8,uVar10,uVar3);" (call_expression "FUN_000d12d0(uVar8,uVar10,uVar3)" identifier (argument_list "(uVar8,uVar10,uVar3)" ( identifier , identifier , identifier ))) ;) })) })) })) (labeled_statement "LAB_000da77b:\n  cVar2 = FUN_001a5190(DAT_004144e8);" statement_identifier : (expression_statement "cVar2 = FUN_001a5190(DAT_004144e8);" (assignment_expression "cVar2 = FUN_001a5190(DAT_004144e8)" identifier = (call_expression "FUN_001a5190(DAT_004144e8)" identifier (argument_list "(DAT_004144e8)" ( identifier )))) ;)) (if_statement "if (cVar2 != '\0') {\n    piVar14 = *(int **)(param_5 + 0x244);\n    (**(code **)(*piVar14 + 0x18))(piVar14,param_4,param_5);\n    (**(code **)(*piVar14 + 0x1c))(piVar14,param_4);\n  }" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    piVar14 = *(int **)(param_5 + 0x244);\n    (**(code **)(*piVar14 + 0x18))(piVar14,param_4,param_5);\n    (**(code **)(*piVar14 + 0x1c))(piVar14,param_4);\n  }" { (expression_statement "piVar14 = *(int **)(param_5 + 0x244);" (assignment_expression "piVar14 = *(int **)(param_5 + 0x244)" identifier = (pointer_expression "*(int **)(param_5 + 0x244)" * (cast_expression "(int **)(param_5 + 0x244)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_5 + 0x244)" ( (binary_expression "param_5 + 0x244" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(*piVar14 + 0x18))(piVar14,param_4,param_5);" (call_expression "(**(code **)(*piVar14 + 0x18))(piVar14,param_4,param_5)" (parenthesized_expression "(**(code **)(*piVar14 + 0x18))" ( (pointer_expression "**(code **)(*piVar14 + 0x18)" * (pointer_expression "*(code **)(*piVar14 + 0x18)" * (cast_expression "(code **)(*piVar14 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar14 + 0x18)" ( (binary_expression "*piVar14 + 0x18" (pointer_expression "*piVar14" * identifier) + number_literal) ))))) )) (argument_list "(piVar14,param_4,param_5)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(*piVar14 + 0x1c))(piVar14,param_4);" (call_expression "(**(code **)(*piVar14 + 0x1c))(piVar14,param_4)" (parenthesized_expression "(**(code **)(*piVar14 + 0x1c))" ( (pointer_expression "**(code **)(*piVar14 + 0x1c)" * (pointer_expression "*(code **)(*piVar14 + 0x1c)" * (cast_expression "(code **)(*piVar14 + 0x1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar14 + 0x1c)" ( (binary_expression "*piVar14 + 0x1c" (pointer_expression "*piVar14" * identifier) + number_literal) ))))) )) (argument_list "(piVar14,param_4)" ( identifier , identifier ))) ;) })) (if_statement "if ((*(int *)(DAT_004144e8 + 8) != 0) && ((*(byte *)(DAT_004144e8 + 0x14) & 2) != 0)) {\n    FUN_001d9e80(*(undefined4 *)(param_5 + 4),*(undefined4 *)PTR_stderr_00413fbc);\n  }" if (parenthesized_expression "((*(int *)(DAT_004144e8 + 8) != 0) && ((*(byte *)(DAT_004144e8 + 0x14) & 2) != 0))" ( (binary_expression "(*(int *)(DAT_004144e8 + 8) != 0) && ((*(byte *)(DAT_004144e8 + 0x14) & 2) != 0)" (parenthesized_expression "(*(int *)(DAT_004144e8 + 8) != 0)" ( (binary_expression "*(int *)(DAT_004144e8 + 8) != 0" (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "((*(byte *)(DAT_004144e8 + 0x14) & 2) != 0)" ( (binary_expression "(*(byte *)(DAT_004144e8 + 0x14) & 2) != 0" (parenthesized_expression "(*(byte *)(DAT_004144e8 + 0x14) & 2)" ( (binary_expression "*(byte *)(DAT_004144e8 + 0x14) & 2" (pointer_expression "*(byte *)(DAT_004144e8 + 0x14)" * (cast_expression "(byte *)(DAT_004144e8 + 0x14)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 0x14)" ( (binary_expression "DAT_004144e8 + 0x14" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    FUN_001d9e80(*(undefined4 *)(param_5 + 4),*(undefined4 *)PTR_stderr_00413fbc);\n  }" { (expression_statement "FUN_001d9e80(*(undefined4 *)(param_5 + 4),*(undefined4 *)PTR_stderr_00413fbc);" (call_expression "FUN_001d9e80(*(undefined4 *)(param_5 + 4),*(undefined4 *)PTR_stderr_00413fbc)" identifier (argument_list "(*(undefined4 *)(param_5 + 4),*(undefined4 *)PTR_stderr_00413fbc)" ( (pointer_expression "*(undefined4 *)(param_5 + 4)" * (cast_expression "(undefined4 *)(param_5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 4)" ( (binary_expression "param_5 + 4" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)PTR_stderr_00413fbc" * (cast_expression "(undefined4 *)PTR_stderr_00413fbc" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) })) (expression_statement "FUN_00122e00(param_3);" (call_expression "FUN_00122e00(param_3)" identifier (argument_list "(param_3)" ( identifier ))) ;) (if_statement "if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;" if (parenthesized_expression "(*(int *)(DAT_004144e8 + 8) == 0)" ( (binary_expression "*(int *)(DAT_004144e8 + 8) == 0" (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_000dac36;" goto statement_identifier ;)) (if_statement "if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x4c2d) == '\0') {\n    FUN_001dc4a0(*(int *)(param_5 + 4) + 0x68,param_4);\n  }" if (parenthesized_expression "(*(char *)(*(int *)(DAT_004144e8 + 8) + 0x4c2d) == '\0')" ( (binary_expression "*(char *)(*(int *)(DAT_004144e8 + 8) + 0x4c2d) == '\0'" (pointer_expression "*(char *)(*(int *)(DAT_004144e8 + 8) + 0x4c2d)" * (cast_expression "(char *)(*(int *)(DAT_004144e8 + 8) + 0x4c2d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_004144e8 + 8) + 0x4c2d)" ( (binary_expression "*(int *)(DAT_004144e8 + 8) + 0x4c2d" (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    FUN_001dc4a0(*(int *)(param_5 + 4) + 0x68,param_4);\n  }" { (expression_statement "FUN_001dc4a0(*(int *)(param_5 + 4) + 0x68,param_4);" (call_expression "FUN_001dc4a0(*(int *)(param_5 + 4) + 0x68,param_4)" identifier (argument_list "(*(int *)(param_5 + 4) + 0x68,param_4)" ( (binary_expression "*(int *)(param_5 + 4) + 0x68" (pointer_expression "*(int *)(param_5 + 4)" * (cast_expression "(int *)(param_5 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 4)" ( (binary_expression "param_5 + 4" identifier + number_literal) )))) + number_literal) , identifier ))) ;) })) (expression_statement "FUN_001121d0(param_5);" (call_expression "FUN_001121d0(param_5)" identifier (argument_list "(param_5)" ( identifier ))) ;) (expression_statement "FUN_001d9480(*(undefined4 *)(param_5 + 4),param_5);" (call_expression "FUN_001d9480(*(undefined4 *)(param_5 + 4),param_5)" identifier (argument_list "(*(undefined4 *)(param_5 + 4),param_5)" ( (pointer_expression "*(undefined4 *)(param_5 + 4)" * (cast_expression "(undefined4 *)(param_5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 4)" ( (binary_expression "param_5 + 4" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "FUN_001112f0(param_5,param_4);" (call_expression "FUN_001112f0(param_5,param_4)" identifier (argument_list "(param_5,param_4)" ( identifier , identifier ))) ;) (expression_statement "FUN_001d94d0(*(undefined4 *)(param_5 + 4),param_4);" (call_expression "FUN_001d94d0(*(undefined4 *)(param_5 + 4),param_4)" identifier (argument_list "(*(undefined4 *)(param_5 + 4),param_4)" ( (pointer_expression "*(undefined4 *)(param_5 + 4)" * (cast_expression "(undefined4 *)(param_5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 4)" ( (binary_expression "param_5 + 4" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "piVar14 = *(int **)(DAT_004144e8 + 0xc);" (assignment_expression "piVar14 = *(int **)(DAT_004144e8 + 0xc)" identifier = (pointer_expression "*(int **)(DAT_004144e8 + 0xc)" * (cast_expression "(int **)(DAT_004144e8 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_004144e8 + 0xc)" ( (binary_expression "DAT_004144e8 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (piVar14 == (int *)0x0) {\n                    \n    FUN_000da200("../../gold/parameters.h",0x69,"target",extraout_ECX);\n  }" if (parenthesized_expression "(piVar14 == (int *)0x0)" ( (binary_expression "piVar14 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n    FUN_000da200("../../gold/parameters.h",0x69,"target",extraout_ECX);\n  }" { (expression_statement "FUN_000da200("../../gold/parameters.h",0x69,"target",extraout_ECX);" (call_expression "FUN_000da200("../../gold/parameters.h",0x69,"target",extraout_ECX)" identifier (argument_list "("../../gold/parameters.h",0x69,"target",extraout_ECX)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""target"" " string_content ") , identifier ))) ;) })) (expression_statement "FUN_0010c300(param_5,piVar14);" (call_expression "FUN_0010c300(param_5,piVar14)" identifier (argument_list "(param_5,piVar14)" ( identifier , identifier ))) ;) (if_statement "if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;" if (parenthesized_expression "(*(int *)(DAT_004144e8 + 8) == 0)" ( (binary_expression "*(int *)(DAT_004144e8 + 8) == 0" (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_000dac36;" goto statement_identifier ;)) (if_statement "if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) == '\0') {\n    FUN_0020afd0(param_4,param_5);\n    FUN_0010ee10(param_5,param_4);\n    if (*(code **)(*piVar14 + 0x84) != FUN_000a4200) {\n      (**(code **)(*piVar14 + 0x84))(piVar14,param_4,param_5);\n    }\n  }" if (parenthesized_expression "(*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) == '\0')" ( (binary_expression "*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) == '\0'" (pointer_expression "*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d)" * (cast_expression "(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_004144e8 + 8) + 0x318d)" ( (binary_expression "*(int *)(DAT_004144e8 + 8) + 0x318d" (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    FUN_0020afd0(param_4,param_5);\n    FUN_0010ee10(param_5,param_4);\n    if (*(code **)(*piVar14 + 0x84) != FUN_000a4200) {\n      (**(code **)(*piVar14 + 0x84))(piVar14,param_4,param_5);\n    }\n  }" { (expression_statement "FUN_0020afd0(param_4,param_5);" (call_expression "FUN_0020afd0(param_4,param_5)" identifier (argument_list "(param_4,param_5)" ( identifier , identifier ))) ;) (expression_statement "FUN_0010ee10(param_5,param_4);" (call_expression "FUN_0010ee10(param_5,param_4)" identifier (argument_list "(param_5,param_4)" ( identifier , identifier ))) ;) (if_statement "if (*(code **)(*piVar14 + 0x84) != FUN_000a4200) {\n      (**(code **)(*piVar14 + 0x84))(piVar14,param_4,param_5);\n    }" if (parenthesized_expression "(*(code **)(*piVar14 + 0x84) != FUN_000a4200)" ( (binary_expression "*(code **)(*piVar14 + 0x84) != FUN_000a4200" (pointer_expression "*(code **)(*piVar14 + 0x84)" * (cast_expression "(code **)(*piVar14 + 0x84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar14 + 0x84)" ( (binary_expression "*piVar14 + 0x84" (pointer_expression "*piVar14" * identifier) + number_literal) )))) != identifier) )) (compound_statement "{\n      (**(code **)(*piVar14 + 0x84))(piVar14,param_4,param_5);\n    }" { (expression_statement "(**(code **)(*piVar14 + 0x84))(piVar14,param_4,param_5);" (call_expression "(**(code **)(*piVar14 + 0x84))(piVar14,param_4,param_5)" (parenthesized_expression "(**(code **)(*piVar14 + 0x84))" ( (pointer_expression "**(code **)(*piVar14 + 0x84)" * (pointer_expression "*(code **)(*piVar14 + 0x84)" * (cast_expression "(code **)(*piVar14 + 0x84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar14 + 0x84)" ( (binary_expression "*piVar14 + 0x84" (pointer_expression "*piVar14" * identifier) + number_literal) ))))) )) (argument_list "(piVar14,param_4,param_5)" ( identifier , identifier , identifier ))) ;) })) })) (expression_statement "FUN_001081d0(param_5,param_4);" (call_expression "FUN_001081d0(param_5,param_4)" identifier (argument_list "(param_5,param_4)" ( identifier , identifier ))) ;) (expression_statement "iVar4 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar4 = *(int *)(DAT_004144e8 + 8)" identifier = (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar4 == 0) goto LAB_000dac36;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000dac36;" goto statement_identifier ;)) (expression_statement "local_20 = (undefined1 *)0x0;" (assignment_expression "local_20 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (*(char *)(iVar4 + 0xb51) != '\0') {\n    local_20 = (undefined1 *)FUN_00246670(0x14);\n    *local_20 = 1;\n    *(undefined4 *)(local_20 + 8) = 0;\n    *(undefined4 *)(local_20 + 0xc) = 0;\n    *(undefined4 *)(local_20 + 0x10) = 0;\n    *(undefined4 *)(local_20 + 4) = 1;\n    puVar6 = (undefined4 *)FUN_00246670(0x34);\n    puVar6[1] = 0;\n    puVar6[9] = param_4;\n    puVar6[2] = puVar6 + 4;\n    puVar6[10] = param_5;\n    puVar6[3] = 0;\n    *(undefined1 *)(puVar6 + 4) = 0;\n    *(undefined1 *)(puVar6 + 8) = 0;\n    *puVar6 = &PTR_FUN_00408d4c;\n    puVar6[0xb] = param_7;\n    puVar6[0xc] = local_20;\n    FUN_002000e0(param_6,puVar6);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }" if (parenthesized_expression "(*(char *)(iVar4 + 0xb51) != '\0')" ( (binary_expression "*(char *)(iVar4 + 0xb51) != '\0'" (pointer_expression "*(char *)(iVar4 + 0xb51)" * (cast_expression "(char *)(iVar4 + 0xb51)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xb51)" ( (binary_expression "iVar4 + 0xb51" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    local_20 = (undefined1 *)FUN_00246670(0x14);\n    *local_20 = 1;\n    *(undefined4 *)(local_20 + 8) = 0;\n    *(undefined4 *)(local_20 + 0xc) = 0;\n    *(undefined4 *)(local_20 + 0x10) = 0;\n    *(undefined4 *)(local_20 + 4) = 1;\n    puVar6 = (undefined4 *)FUN_00246670(0x34);\n    puVar6[1] = 0;\n    puVar6[9] = param_4;\n    puVar6[2] = puVar6 + 4;\n    puVar6[10] = param_5;\n    puVar6[3] = 0;\n    *(undefined1 *)(puVar6 + 4) = 0;\n    *(undefined1 *)(puVar6 + 8) = 0;\n    *puVar6 = &PTR_FUN_00408d4c;\n    puVar6[0xb] = param_7;\n    puVar6[0xc] = local_20;\n    FUN_002000e0(param_6,puVar6);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }" { (expression_statement "local_20 = (undefined1 *)FUN_00246670(0x14);" (assignment_expression "local_20 = (undefined1 *)FUN_00246670(0x14)" identifier = (cast_expression "(undefined1 *)FUN_00246670(0x14)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00246670(0x14)" identifier (argument_list "(0x14)" ( number_literal ))))) ;) (expression_statement "*local_20 = 1;" (assignment_expression "*local_20 = 1" (pointer_expression "*local_20" * identifier) = number_literal) ;) (expression_statement "*(undefined4 *)(local_20 + 8) = 0;" (assignment_expression "*(undefined4 *)(local_20 + 8) = 0" (pointer_expression "*(undefined4 *)(local_20 + 8)" * (cast_expression "(undefined4 *)(local_20 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_20 + 8)" ( (binary_expression "local_20 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(local_20 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(local_20 + 0xc) = 0" (pointer_expression "*(undefined4 *)(local_20 + 0xc)" * (cast_expression "(undefined4 *)(local_20 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_20 + 0xc)" ( (binary_expression "local_20 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(local_20 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(local_20 + 0x10) = 0" (pointer_expression "*(undefined4 *)(local_20 + 0x10)" * (cast_expression "(undefined4 *)(local_20 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_20 + 0x10)" ( (binary_expression "local_20 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(local_20 + 4) = 1;" (assignment_expression "*(undefined4 *)(local_20 + 4) = 1" (pointer_expression "*(undefined4 *)(local_20 + 4)" * (cast_expression "(undefined4 *)(local_20 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_20 + 4)" ( (binary_expression "local_20 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar6 = (undefined4 *)FUN_00246670(0x34);" (assignment_expression "puVar6 = (undefined4 *)FUN_00246670(0x34)" identifier = (cast_expression "(undefined4 *)FUN_00246670(0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00246670(0x34)" identifier (argument_list "(0x34)" ( number_literal ))))) ;) (expression_statement "puVar6[1] = 0;" (assignment_expression "puVar6[1] = 0" (subscript_expression "puVar6[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar6[9] = param_4;" (assignment_expression "puVar6[9] = param_4" (subscript_expression "puVar6[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[2] = puVar6 + 4;" (assignment_expression "puVar6[2] = puVar6 + 4" (subscript_expression "puVar6[2]" identifier [ number_literal ]) = (binary_expression "puVar6 + 4" identifier + number_literal)) ;) (expression_statement "puVar6[10] = param_5;" (assignment_expression "puVar6[10] = param_5" (subscript_expression "puVar6[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[3] = 0;" (assignment_expression "puVar6[3] = 0" (subscript_expression "puVar6[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar6 + 4) = 0;" (assignment_expression "*(undefined1 *)(puVar6 + 4) = 0" (pointer_expression "*(undefined1 *)(puVar6 + 4)" * (cast_expression "(undefined1 *)(puVar6 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 4)" ( (binary_expression "puVar6 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar6 + 8) = 0;" (assignment_expression "*(undefined1 *)(puVar6 + 8) = 0" (pointer_expression "*(undefined1 *)(puVar6 + 8)" * (cast_expression "(undefined1 *)(puVar6 + 8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 8)" ( (binary_expression "puVar6 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*puVar6 = &PTR_FUN_00408d4c;" (assignment_expression "*puVar6 = &PTR_FUN_00408d4c" (pointer_expression "*puVar6" * identifier) = (pointer_expression "&PTR_FUN_00408d4c" & identifier)) ;) (expression_statement "puVar6[0xb] = param_7;" (assignment_expression "puVar6[0xb] = param_7" (subscript_expression "puVar6[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[0xc] = local_20;" (assignment_expression "puVar6[0xc] = local_20" (subscript_expression "puVar6[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_002000e0(param_6,puVar6);" (call_expression "FUN_002000e0(param_6,puVar6)" identifier (argument_list "(param_6,puVar6)" ( identifier , identifier ))) ;) (expression_statement "iVar4 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar4 = *(int *)(DAT_004144e8 + 8)" identifier = (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar4 == 0) goto LAB_000dac36;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000dac36;" goto statement_identifier ;)) })) (expression_statement "piVar16 = (int *)*param_3;" (assignment_expression "piVar16 = (int *)*param_3" identifier = (cast_expression "(int *)*param_3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_3" * identifier))) ;) (if_statement "if ((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)) {\n    if (piVar16 != (int *)param_3[1]) {\n      do {\n        piVar12 = piVar16 + 1;\n        puVar5 = (undefined1 *)FUN_00246670(0x14);\n        iVar4 = *piVar16;\n        *puVar5 = 1;\n        *(undefined4 *)(puVar5 + 8) = 0;\n        *(undefined4 *)(puVar5 + 0xc) = 0;\n        *(undefined4 *)(puVar5 + 0x10) = 0;\n        *(undefined4 *)(puVar5 + 4) = 1;\n        puVar6 = (undefined4 *)FUN_00246670(0x38);\n        puVar6[0xc] = local_20;\n        *puVar6 = &PTR_FUN_00408390;\n        puVar6[2] = puVar6 + 4;\n        puVar6[9] = param_4;\n        puVar6[1] = 0;\n        puVar6[10] = param_5;\n        puVar6[3] = 0;\n        *(undefined1 *)(puVar6 + 4) = 0;\n        *(undefined1 *)(puVar6 + 8) = 0;\n        puVar6[0xb] = iVar4;\n        puVar6[0xd] = puVar5;\n        FUN_002000e0(param_6,puVar6);\n        local_20 = puVar5;\n        piVar16 = piVar12;\n      } while ((int *)param_3[1] != piVar12);\n      goto LAB_000da9b3;\n    }\n  }\n  else if (piVar16 != (int *)param_3[1]) {\n    do {\n      piVar12 = piVar16 + 1;\n      puVar5 = (undefined1 *)FUN_00246670(0x14);\n      iVar4 = *piVar16;\n      *puVar5 = 1;\n      *(undefined4 *)(puVar5 + 8) = 0;\n      uVar3 = *(undefined4 *)(iVar4 + 0x50);\n      *(undefined4 *)(puVar5 + 0xc) = 0;\n      *(undefined4 *)(puVar5 + 0x10) = 0;\n      *(undefined4 *)(puVar5 + 4) = 1;\n      puVar6 = (undefined4 *)FUN_00246670(0x3c);\n      puVar6[0xd] = local_20;\n      *puVar6 = &PTR_FUN_004083d0;\n      puVar6[1] = 0;\n      puVar6[9] = param_4;\n      puVar6[2] = puVar6 + 4;\n      puVar6[10] = param_5;\n      puVar6[3] = 0;\n      *(undefined1 *)(puVar6 + 4) = 0;\n      *(undefined1 *)(puVar6 + 8) = 0;\n      puVar6[0xb] = iVar4;\n      puVar6[0xc] = uVar3;\n      puVar6[0xe] = puVar5;\n      FUN_002000e0(param_6,puVar6);\n      local_20 = puVar5;\n      piVar16 = piVar12;\n    } while ((int *)param_3[1] != piVar12);\n    goto LAB_000da9b3;\n  }" if (parenthesized_expression "((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0))" ( (binary_expression "(*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)" (parenthesized_expression "(*(char *)(iVar4 + 0x18b1) == '\0')" ( (binary_expression "*(char *)(iVar4 + 0x18b1) == '\0'" (pointer_expression "*(char *)(iVar4 + 0x18b1)" * (cast_expression "(char *)(iVar4 + 0x18b1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18b1)" ( (binary_expression "iVar4 + 0x18b1" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(int *)(iVar4 + 0x5934) == 0)" ( (binary_expression "*(int *)(iVar4 + 0x5934) == 0" (pointer_expression "*(int *)(iVar4 + 0x5934)" * (cast_expression "(int *)(iVar4 + 0x5934)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x5934)" ( (binary_expression "iVar4 + 0x5934" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n    if (piVar16 != (int *)param_3[1]) {\n      do {\n        piVar12 = piVar16 + 1;\n        puVar5 = (undefined1 *)FUN_00246670(0x14);\n        iVar4 = *piVar16;\n        *puVar5 = 1;\n        *(undefined4 *)(puVar5 + 8) = 0;\n        *(undefined4 *)(puVar5 + 0xc) = 0;\n        *(undefined4 *)(puVar5 + 0x10) = 0;\n        *(undefined4 *)(puVar5 + 4) = 1;\n        puVar6 = (undefined4 *)FUN_00246670(0x38);\n        puVar6[0xc] = local_20;\n        *puVar6 = &PTR_FUN_00408390;\n        puVar6[2] = puVar6 + 4;\n        puVar6[9] = param_4;\n        puVar6[1] = 0;\n        puVar6[10] = param_5;\n        puVar6[3] = 0;\n        *(undefined1 *)(puVar6 + 4) = 0;\n        *(undefined1 *)(puVar6 + 8) = 0;\n        puVar6[0xb] = iVar4;\n        puVar6[0xd] = puVar5;\n        FUN_002000e0(param_6,puVar6);\n        local_20 = puVar5;\n        piVar16 = piVar12;\n      } while ((int *)param_3[1] != piVar12);\n      goto LAB_000da9b3;\n    }\n  }" { (if_statement "if (piVar16 != (int *)param_3[1]) {\n      do {\n        piVar12 = piVar16 + 1;\n        puVar5 = (undefined1 *)FUN_00246670(0x14);\n        iVar4 = *piVar16;\n        *puVar5 = 1;\n        *(undefined4 *)(puVar5 + 8) = 0;\n        *(undefined4 *)(puVar5 + 0xc) = 0;\n        *(undefined4 *)(puVar5 + 0x10) = 0;\n        *(undefined4 *)(puVar5 + 4) = 1;\n        puVar6 = (undefined4 *)FUN_00246670(0x38);\n        puVar6[0xc] = local_20;\n        *puVar6 = &PTR_FUN_00408390;\n        puVar6[2] = puVar6 + 4;\n        puVar6[9] = param_4;\n        puVar6[1] = 0;\n        puVar6[10] = param_5;\n        puVar6[3] = 0;\n        *(undefined1 *)(puVar6 + 4) = 0;\n        *(undefined1 *)(puVar6 + 8) = 0;\n        puVar6[0xb] = iVar4;\n        puVar6[0xd] = puVar5;\n        FUN_002000e0(param_6,puVar6);\n        local_20 = puVar5;\n        piVar16 = piVar12;\n      } while ((int *)param_3[1] != piVar12);\n      goto LAB_000da9b3;\n    }" if (parenthesized_expression "(piVar16 != (int *)param_3[1])" ( (binary_expression "piVar16 != (int *)param_3[1]" identifier != (cast_expression "(int *)param_3[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[1]" identifier [ number_literal ]))) )) (compound_statement "{\n      do {\n        piVar12 = piVar16 + 1;\n        puVar5 = (undefined1 *)FUN_00246670(0x14);\n        iVar4 = *piVar16;\n        *puVar5 = 1;\n        *(undefined4 *)(puVar5 + 8) = 0;\n        *(undefined4 *)(puVar5 + 0xc) = 0;\n        *(undefined4 *)(puVar5 + 0x10) = 0;\n        *(undefined4 *)(puVar5 + 4) = 1;\n        puVar6 = (undefined4 *)FUN_00246670(0x38);\n        puVar6[0xc] = local_20;\n        *puVar6 = &PTR_FUN_00408390;\n        puVar6[2] = puVar6 + 4;\n        puVar6[9] = param_4;\n        puVar6[1] = 0;\n        puVar6[10] = param_5;\n        puVar6[3] = 0;\n        *(undefined1 *)(puVar6 + 4) = 0;\n        *(undefined1 *)(puVar6 + 8) = 0;\n        puVar6[0xb] = iVar4;\n        puVar6[0xd] = puVar5;\n        FUN_002000e0(param_6,puVar6);\n        local_20 = puVar5;\n        piVar16 = piVar12;\n      } while ((int *)param_3[1] != piVar12);\n      goto LAB_000da9b3;\n    }" { (do_statement "do {\n        piVar12 = piVar16 + 1;\n        puVar5 = (undefined1 *)FUN_00246670(0x14);\n        iVar4 = *piVar16;\n        *puVar5 = 1;\n        *(undefined4 *)(puVar5 + 8) = 0;\n        *(undefined4 *)(puVar5 + 0xc) = 0;\n        *(undefined4 *)(puVar5 + 0x10) = 0;\n        *(undefined4 *)(puVar5 + 4) = 1;\n        puVar6 = (undefined4 *)FUN_00246670(0x38);\n        puVar6[0xc] = local_20;\n        *puVar6 = &PTR_FUN_00408390;\n        puVar6[2] = puVar6 + 4;\n        puVar6[9] = param_4;\n        puVar6[1] = 0;\n        puVar6[10] = param_5;\n        puVar6[3] = 0;\n        *(undefined1 *)(puVar6 + 4) = 0;\n        *(undefined1 *)(puVar6 + 8) = 0;\n        puVar6[0xb] = iVar4;\n        puVar6[0xd] = puVar5;\n        FUN_002000e0(param_6,puVar6);\n        local_20 = puVar5;\n        piVar16 = piVar12;\n      } while ((int *)param_3[1] != piVar12);" do (compound_statement "{\n        piVar12 = piVar16 + 1;\n        puVar5 = (undefined1 *)FUN_00246670(0x14);\n        iVar4 = *piVar16;\n        *puVar5 = 1;\n        *(undefined4 *)(puVar5 + 8) = 0;\n        *(undefined4 *)(puVar5 + 0xc) = 0;\n        *(undefined4 *)(puVar5 + 0x10) = 0;\n        *(undefined4 *)(puVar5 + 4) = 1;\n        puVar6 = (undefined4 *)FUN_00246670(0x38);\n        puVar6[0xc] = local_20;\n        *puVar6 = &PTR_FUN_00408390;\n        puVar6[2] = puVar6 + 4;\n        puVar6[9] = param_4;\n        puVar6[1] = 0;\n        puVar6[10] = param_5;\n        puVar6[3] = 0;\n        *(undefined1 *)(puVar6 + 4) = 0;\n        *(undefined1 *)(puVar6 + 8) = 0;\n        puVar6[0xb] = iVar4;\n        puVar6[0xd] = puVar5;\n        FUN_002000e0(param_6,puVar6);\n        local_20 = puVar5;\n        piVar16 = piVar12;\n      }" { (expression_statement "piVar12 = piVar16 + 1;" (assignment_expression "piVar12 = piVar16 + 1" identifier = (binary_expression "piVar16 + 1" identifier + number_literal)) ;) (expression_statement "puVar5 = (undefined1 *)FUN_00246670(0x14);" (assignment_expression "puVar5 = (undefined1 *)FUN_00246670(0x14)" identifier = (cast_expression "(undefined1 *)FUN_00246670(0x14)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00246670(0x14)" identifier (argument_list "(0x14)" ( number_literal ))))) ;) (expression_statement "iVar4 = *piVar16;" (assignment_expression "iVar4 = *piVar16" identifier = (pointer_expression "*piVar16" * identifier)) ;) (expression_statement "*puVar5 = 1;" (assignment_expression "*puVar5 = 1" (pointer_expression "*puVar5" * identifier) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar5 + 8) = 0;" (assignment_expression "*(undefined4 *)(puVar5 + 8) = 0" (pointer_expression "*(undefined4 *)(puVar5 + 8)" * (cast_expression "(undefined4 *)(puVar5 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 8)" ( (binary_expression "puVar5 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar5 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar5 + 0xc) = 0" (pointer_expression "*(undefined4 *)(puVar5 + 0xc)" * (cast_expression "(undefined4 *)(puVar5 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0xc)" ( (binary_expression "puVar5 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar5 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar5 + 0x10) = 0" (pointer_expression "*(undefined4 *)(puVar5 + 0x10)" * (cast_expression "(undefined4 *)(puVar5 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0x10)" ( (binary_expression "puVar5 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar5 + 4) = 1;" (assignment_expression "*(undefined4 *)(puVar5 + 4) = 1" (pointer_expression "*(undefined4 *)(puVar5 + 4)" * (cast_expression "(undefined4 *)(puVar5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 4)" ( (binary_expression "puVar5 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar6 = (undefined4 *)FUN_00246670(0x38);" (assignment_expression "puVar6 = (undefined4 *)FUN_00246670(0x38)" identifier = (cast_expression "(undefined4 *)FUN_00246670(0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00246670(0x38)" identifier (argument_list "(0x38)" ( number_literal ))))) ;) (expression_statement "puVar6[0xc] = local_20;" (assignment_expression "puVar6[0xc] = local_20" (subscript_expression "puVar6[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar6 = &PTR_FUN_00408390;" (assignment_expression "*puVar6 = &PTR_FUN_00408390" (pointer_expression "*puVar6" * identifier) = (pointer_expression "&PTR_FUN_00408390" & identifier)) ;) (expression_statement "puVar6[2] = puVar6 + 4;" (assignment_expression "puVar6[2] = puVar6 + 4" (subscript_expression "puVar6[2]" identifier [ number_literal ]) = (binary_expression "puVar6 + 4" identifier + number_literal)) ;) (expression_statement "puVar6[9] = param_4;" (assignment_expression "puVar6[9] = param_4" (subscript_expression "puVar6[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[1] = 0;" (assignment_expression "puVar6[1] = 0" (subscript_expression "puVar6[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar6[10] = param_5;" (assignment_expression "puVar6[10] = param_5" (subscript_expression "puVar6[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[3] = 0;" (assignment_expression "puVar6[3] = 0" (subscript_expression "puVar6[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar6 + 4) = 0;" (assignment_expression "*(undefined1 *)(puVar6 + 4) = 0" (pointer_expression "*(undefined1 *)(puVar6 + 4)" * (cast_expression "(undefined1 *)(puVar6 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 4)" ( (binary_expression "puVar6 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar6 + 8) = 0;" (assignment_expression "*(undefined1 *)(puVar6 + 8) = 0" (pointer_expression "*(undefined1 *)(puVar6 + 8)" * (cast_expression "(undefined1 *)(puVar6 + 8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 8)" ( (binary_expression "puVar6 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar6[0xb] = iVar4;" (assignment_expression "puVar6[0xb] = iVar4" (subscript_expression "puVar6[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[0xd] = puVar5;" (assignment_expression "puVar6[0xd] = puVar5" (subscript_expression "puVar6[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_002000e0(param_6,puVar6);" (call_expression "FUN_002000e0(param_6,puVar6)" identifier (argument_list "(param_6,puVar6)" ( identifier , identifier ))) ;) (expression_statement "local_20 = puVar5;" (assignment_expression "local_20 = puVar5" identifier = identifier) ;) (expression_statement "piVar16 = piVar12;" (assignment_expression "piVar16 = piVar12" identifier = identifier) ;) }) while (parenthesized_expression "((int *)param_3[1] != piVar12)" ( (binary_expression "(int *)param_3[1] != piVar12" (cast_expression "(int *)param_3[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[1]" identifier [ number_literal ])) != identifier) )) ;) (goto_statement "goto LAB_000da9b3;" goto statement_identifier ;) })) }) (else_clause "else if (piVar16 != (int *)param_3[1]) {\n    do {\n      piVar12 = piVar16 + 1;\n      puVar5 = (undefined1 *)FUN_00246670(0x14);\n      iVar4 = *piVar16;\n      *puVar5 = 1;\n      *(undefined4 *)(puVar5 + 8) = 0;\n      uVar3 = *(undefined4 *)(iVar4 + 0x50);\n      *(undefined4 *)(puVar5 + 0xc) = 0;\n      *(undefined4 *)(puVar5 + 0x10) = 0;\n      *(undefined4 *)(puVar5 + 4) = 1;\n      puVar6 = (undefined4 *)FUN_00246670(0x3c);\n      puVar6[0xd] = local_20;\n      *puVar6 = &PTR_FUN_004083d0;\n      puVar6[1] = 0;\n      puVar6[9] = param_4;\n      puVar6[2] = puVar6 + 4;\n      puVar6[10] = param_5;\n      puVar6[3] = 0;\n      *(undefined1 *)(puVar6 + 4) = 0;\n      *(undefined1 *)(puVar6 + 8) = 0;\n      puVar6[0xb] = iVar4;\n      puVar6[0xc] = uVar3;\n      puVar6[0xe] = puVar5;\n      FUN_002000e0(param_6,puVar6);\n      local_20 = puVar5;\n      piVar16 = piVar12;\n    } while ((int *)param_3[1] != piVar12);\n    goto LAB_000da9b3;\n  }" else (if_statement "if (piVar16 != (int *)param_3[1]) {\n    do {\n      piVar12 = piVar16 + 1;\n      puVar5 = (undefined1 *)FUN_00246670(0x14);\n      iVar4 = *piVar16;\n      *puVar5 = 1;\n      *(undefined4 *)(puVar5 + 8) = 0;\n      uVar3 = *(undefined4 *)(iVar4 + 0x50);\n      *(undefined4 *)(puVar5 + 0xc) = 0;\n      *(undefined4 *)(puVar5 + 0x10) = 0;\n      *(undefined4 *)(puVar5 + 4) = 1;\n      puVar6 = (undefined4 *)FUN_00246670(0x3c);\n      puVar6[0xd] = local_20;\n      *puVar6 = &PTR_FUN_004083d0;\n      puVar6[1] = 0;\n      puVar6[9] = param_4;\n      puVar6[2] = puVar6 + 4;\n      puVar6[10] = param_5;\n      puVar6[3] = 0;\n      *(undefined1 *)(puVar6 + 4) = 0;\n      *(undefined1 *)(puVar6 + 8) = 0;\n      puVar6[0xb] = iVar4;\n      puVar6[0xc] = uVar3;\n      puVar6[0xe] = puVar5;\n      FUN_002000e0(param_6,puVar6);\n      local_20 = puVar5;\n      piVar16 = piVar12;\n    } while ((int *)param_3[1] != piVar12);\n    goto LAB_000da9b3;\n  }" if (parenthesized_expression "(piVar16 != (int *)param_3[1])" ( (binary_expression "piVar16 != (int *)param_3[1]" identifier != (cast_expression "(int *)param_3[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[1]" identifier [ number_literal ]))) )) (compound_statement "{\n    do {\n      piVar12 = piVar16 + 1;\n      puVar5 = (undefined1 *)FUN_00246670(0x14);\n      iVar4 = *piVar16;\n      *puVar5 = 1;\n      *(undefined4 *)(puVar5 + 8) = 0;\n      uVar3 = *(undefined4 *)(iVar4 + 0x50);\n      *(undefined4 *)(puVar5 + 0xc) = 0;\n      *(undefined4 *)(puVar5 + 0x10) = 0;\n      *(undefined4 *)(puVar5 + 4) = 1;\n      puVar6 = (undefined4 *)FUN_00246670(0x3c);\n      puVar6[0xd] = local_20;\n      *puVar6 = &PTR_FUN_004083d0;\n      puVar6[1] = 0;\n      puVar6[9] = param_4;\n      puVar6[2] = puVar6 + 4;\n      puVar6[10] = param_5;\n      puVar6[3] = 0;\n      *(undefined1 *)(puVar6 + 4) = 0;\n      *(undefined1 *)(puVar6 + 8) = 0;\n      puVar6[0xb] = iVar4;\n      puVar6[0xc] = uVar3;\n      puVar6[0xe] = puVar5;\n      FUN_002000e0(param_6,puVar6);\n      local_20 = puVar5;\n      piVar16 = piVar12;\n    } while ((int *)param_3[1] != piVar12);\n    goto LAB_000da9b3;\n  }" { (do_statement "do {\n      piVar12 = piVar16 + 1;\n      puVar5 = (undefined1 *)FUN_00246670(0x14);\n      iVar4 = *piVar16;\n      *puVar5 = 1;\n      *(undefined4 *)(puVar5 + 8) = 0;\n      uVar3 = *(undefined4 *)(iVar4 + 0x50);\n      *(undefined4 *)(puVar5 + 0xc) = 0;\n      *(undefined4 *)(puVar5 + 0x10) = 0;\n      *(undefined4 *)(puVar5 + 4) = 1;\n      puVar6 = (undefined4 *)FUN_00246670(0x3c);\n      puVar6[0xd] = local_20;\n      *puVar6 = &PTR_FUN_004083d0;\n      puVar6[1] = 0;\n      puVar6[9] = param_4;\n      puVar6[2] = puVar6 + 4;\n      puVar6[10] = param_5;\n      puVar6[3] = 0;\n      *(undefined1 *)(puVar6 + 4) = 0;\n      *(undefined1 *)(puVar6 + 8) = 0;\n      puVar6[0xb] = iVar4;\n      puVar6[0xc] = uVar3;\n      puVar6[0xe] = puVar5;\n      FUN_002000e0(param_6,puVar6);\n      local_20 = puVar5;\n      piVar16 = piVar12;\n    } while ((int *)param_3[1] != piVar12);" do (compound_statement "{\n      piVar12 = piVar16 + 1;\n      puVar5 = (undefined1 *)FUN_00246670(0x14);\n      iVar4 = *piVar16;\n      *puVar5 = 1;\n      *(undefined4 *)(puVar5 + 8) = 0;\n      uVar3 = *(undefined4 *)(iVar4 + 0x50);\n      *(undefined4 *)(puVar5 + 0xc) = 0;\n      *(undefined4 *)(puVar5 + 0x10) = 0;\n      *(undefined4 *)(puVar5 + 4) = 1;\n      puVar6 = (undefined4 *)FUN_00246670(0x3c);\n      puVar6[0xd] = local_20;\n      *puVar6 = &PTR_FUN_004083d0;\n      puVar6[1] = 0;\n      puVar6[9] = param_4;\n      puVar6[2] = puVar6 + 4;\n      puVar6[10] = param_5;\n      puVar6[3] = 0;\n      *(undefined1 *)(puVar6 + 4) = 0;\n      *(undefined1 *)(puVar6 + 8) = 0;\n      puVar6[0xb] = iVar4;\n      puVar6[0xc] = uVar3;\n      puVar6[0xe] = puVar5;\n      FUN_002000e0(param_6,puVar6);\n      local_20 = puVar5;\n      piVar16 = piVar12;\n    }" { (expression_statement "piVar12 = piVar16 + 1;" (assignment_expression "piVar12 = piVar16 + 1" identifier = (binary_expression "piVar16 + 1" identifier + number_literal)) ;) (expression_statement "puVar5 = (undefined1 *)FUN_00246670(0x14);" (assignment_expression "puVar5 = (undefined1 *)FUN_00246670(0x14)" identifier = (cast_expression "(undefined1 *)FUN_00246670(0x14)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00246670(0x14)" identifier (argument_list "(0x14)" ( number_literal ))))) ;) (expression_statement "iVar4 = *piVar16;" (assignment_expression "iVar4 = *piVar16" identifier = (pointer_expression "*piVar16" * identifier)) ;) (expression_statement "*puVar5 = 1;" (assignment_expression "*puVar5 = 1" (pointer_expression "*puVar5" * identifier) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar5 + 8) = 0;" (assignment_expression "*(undefined4 *)(puVar5 + 8) = 0" (pointer_expression "*(undefined4 *)(puVar5 + 8)" * (cast_expression "(undefined4 *)(puVar5 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 8)" ( (binary_expression "puVar5 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar3 = *(undefined4 *)(iVar4 + 0x50);" (assignment_expression "uVar3 = *(undefined4 *)(iVar4 + 0x50)" identifier = (pointer_expression "*(undefined4 *)(iVar4 + 0x50)" * (cast_expression "(undefined4 *)(iVar4 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x50)" ( (binary_expression "iVar4 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar5 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar5 + 0xc) = 0" (pointer_expression "*(undefined4 *)(puVar5 + 0xc)" * (cast_expression "(undefined4 *)(puVar5 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0xc)" ( (binary_expression "puVar5 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar5 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar5 + 0x10) = 0" (pointer_expression "*(undefined4 *)(puVar5 + 0x10)" * (cast_expression "(undefined4 *)(puVar5 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0x10)" ( (binary_expression "puVar5 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar5 + 4) = 1;" (assignment_expression "*(undefined4 *)(puVar5 + 4) = 1" (pointer_expression "*(undefined4 *)(puVar5 + 4)" * (cast_expression "(undefined4 *)(puVar5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 4)" ( (binary_expression "puVar5 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar6 = (undefined4 *)FUN_00246670(0x3c);" (assignment_expression "puVar6 = (undefined4 *)FUN_00246670(0x3c)" identifier = (cast_expression "(undefined4 *)FUN_00246670(0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00246670(0x3c)" identifier (argument_list "(0x3c)" ( number_literal ))))) ;) (expression_statement "puVar6[0xd] = local_20;" (assignment_expression "puVar6[0xd] = local_20" (subscript_expression "puVar6[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar6 = &PTR_FUN_004083d0;" (assignment_expression "*puVar6 = &PTR_FUN_004083d0" (pointer_expression "*puVar6" * identifier) = (pointer_expression "&PTR_FUN_004083d0" & identifier)) ;) (expression_statement "puVar6[1] = 0;" (assignment_expression "puVar6[1] = 0" (subscript_expression "puVar6[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar6[9] = param_4;" (assignment_expression "puVar6[9] = param_4" (subscript_expression "puVar6[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[2] = puVar6 + 4;" (assignment_expression "puVar6[2] = puVar6 + 4" (subscript_expression "puVar6[2]" identifier [ number_literal ]) = (binary_expression "puVar6 + 4" identifier + number_literal)) ;) (expression_statement "puVar6[10] = param_5;" (assignment_expression "puVar6[10] = param_5" (subscript_expression "puVar6[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[3] = 0;" (assignment_expression "puVar6[3] = 0" (subscript_expression "puVar6[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar6 + 4) = 0;" (assignment_expression "*(undefined1 *)(puVar6 + 4) = 0" (pointer_expression "*(undefined1 *)(puVar6 + 4)" * (cast_expression "(undefined1 *)(puVar6 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 4)" ( (binary_expression "puVar6 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar6 + 8) = 0;" (assignment_expression "*(undefined1 *)(puVar6 + 8) = 0" (pointer_expression "*(undefined1 *)(puVar6 + 8)" * (cast_expression "(undefined1 *)(puVar6 + 8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 8)" ( (binary_expression "puVar6 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar6[0xb] = iVar4;" (assignment_expression "puVar6[0xb] = iVar4" (subscript_expression "puVar6[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[0xc] = uVar3;" (assignment_expression "puVar6[0xc] = uVar3" (subscript_expression "puVar6[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[0xe] = puVar5;" (assignment_expression "puVar6[0xe] = puVar5" (subscript_expression "puVar6[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_002000e0(param_6,puVar6);" (call_expression "FUN_002000e0(param_6,puVar6)" identifier (argument_list "(param_6,puVar6)" ( identifier , identifier ))) ;) (expression_statement "local_20 = puVar5;" (assignment_expression "local_20 = puVar5" identifier = identifier) ;) (expression_statement "piVar16 = piVar12;" (assignment_expression "piVar16 = piVar12" identifier = identifier) ;) }) while (parenthesized_expression "((int *)param_3[1] != piVar12)" ( (binary_expression "(int *)param_3[1] != piVar12" (cast_expression "(int *)param_3[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[1]" identifier [ number_literal ])) != identifier) )) ;) (goto_statement "goto LAB_000da9b3;" goto statement_identifier ;) })))) (expression_statement "puVar5 = local_20;" (assignment_expression "puVar5 = local_20" identifier = identifier) ;) (if_statement "if (local_20 == (undefined1 *)0x0) {\n    puVar5 = (undefined1 *)FUN_00246670(0x14);\n    *puVar5 = 1;\n    *(undefined4 *)(puVar5 + 4) = 0;\n    *(undefined4 *)(puVar5 + 8) = 0;\n    *(undefined4 *)(puVar5 + 0xc) = 0;\n    *(undefined4 *)(puVar5 + 0x10) = 0;\n  }" if (parenthesized_expression "(local_20 == (undefined1 *)0x0)" ( (binary_expression "local_20 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar5 = (undefined1 *)FUN_00246670(0x14);\n    *puVar5 = 1;\n    *(undefined4 *)(puVar5 + 4) = 0;\n    *(undefined4 *)(puVar5 + 8) = 0;\n    *(undefined4 *)(puVar5 + 0xc) = 0;\n    *(undefined4 *)(puVar5 + 0x10) = 0;\n  }" { (expression_statement "puVar5 = (undefined1 *)FUN_00246670(0x14);" (assignment_expression "puVar5 = (undefined1 *)FUN_00246670(0x14)" identifier = (cast_expression "(undefined1 *)FUN_00246670(0x14)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00246670(0x14)" identifier (argument_list "(0x14)" ( number_literal ))))) ;) (expression_statement "*puVar5 = 1;" (assignment_expression "*puVar5 = 1" (pointer_expression "*puVar5" * identifier) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar5 + 4) = 0;" (assignment_expression "*(undefined4 *)(puVar5 + 4) = 0" (pointer_expression "*(undefined4 *)(puVar5 + 4)" * (cast_expression "(undefined4 *)(puVar5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 4)" ( (binary_expression "puVar5 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar5 + 8) = 0;" (assignment_expression "*(undefined4 *)(puVar5 + 8) = 0" (pointer_expression "*(undefined4 *)(puVar5 + 8)" * (cast_expression "(undefined4 *)(puVar5 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 8)" ( (binary_expression "puVar5 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar5 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar5 + 0xc) = 0" (pointer_expression "*(undefined4 *)(puVar5 + 0xc)" * (cast_expression "(undefined4 *)(puVar5 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0xc)" ( (binary_expression "puVar5 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar5 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar5 + 0x10) = 0" (pointer_expression "*(undefined4 *)(puVar5 + 0x10)" * (cast_expression "(undefined4 *)(puVar5 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0x10)" ( (binary_expression "puVar5 + 0x10" identifier + number_literal) )))) = number_literal) ;) })) (labeled_statement "LAB_000da9b3:\n  puVar6 = (undefined4 *)FUN_00246670(0x1c);" statement_identifier : (expression_statement "puVar6 = (undefined4 *)FUN_00246670(0x1c);" (assignment_expression "puVar6 = (undefined4 *)FUN_00246670(0x1c)" identifier = (cast_expression "(undefined4 *)FUN_00246670(0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00246670(0x1c)" identifier (argument_list "(0x1c)" ( number_literal ))))) ;)) (expression_statement "*puVar6 = &PTR_FUN_00406ca0;" (assignment_expression "*puVar6 = &PTR_FUN_00406ca0" (pointer_expression "*puVar6" * identifier) = (pointer_expression "&PTR_FUN_00406ca0" & identifier)) ;) (expression_statement "puVar6[1] = param_1;" (assignment_expression "puVar6[1] = param_1" (subscript_expression "puVar6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[2] = param_3;" (assignment_expression "puVar6[2] = param_3" (subscript_expression "puVar6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[3] = param_4;" (assignment_expression "puVar6[3] = param_4" (subscript_expression "puVar6[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[4] = piVar14;" (assignment_expression "puVar6[4] = piVar14" (subscript_expression "puVar6[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[5] = param_5;" (assignment_expression "puVar6[5] = param_5" (subscript_expression "puVar6[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[6] = param_7;" (assignment_expression "puVar6[6] = param_7" (subscript_expression "puVar6[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7 = (undefined4 *)FUN_00246670(0x30);" (assignment_expression "puVar7 = (undefined4 *)FUN_00246670(0x30)" identifier = (cast_expression "(undefined4 *)FUN_00246670(0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00246670(0x30)" identifier (argument_list "(0x30)" ( number_literal ))))) ;) (expression_statement "puVar7[1] = 0;" (assignment_expression "puVar7[1] = 0" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[2] = puVar7 + 4;" (assignment_expression "puVar7[2] = puVar7 + 4" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = (binary_expression "puVar7 + 4" identifier + number_literal)) ;) (expression_statement "*puVar7 = &PTR_FUN_004066fc;" (assignment_expression "*puVar7 = &PTR_FUN_004066fc" (pointer_expression "*puVar7" * identifier) = (pointer_expression "&PTR_FUN_004066fc" & identifier)) ;) (expression_statement "puVar7[3] = 0;" (assignment_expression "puVar7[3] = 0" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar7 + 4) = 0;" (assignment_expression "*(undefined1 *)(puVar7 + 4) = 0" (pointer_expression "*(undefined1 *)(puVar7 + 4)" * (cast_expression "(undefined1 *)(puVar7 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 4)" ( (binary_expression "puVar7 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar7 + 8) = 0;" (assignment_expression "*(undefined1 *)(puVar7 + 8) = 0" (pointer_expression "*(undefined1 *)(puVar7 + 8)" * (cast_expression "(undefined1 *)(puVar7 + 8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 8)" ( (binary_expression "puVar7 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar7[9] = puVar6;" (assignment_expression "puVar7[9] = puVar6" (subscript_expression "puVar7[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[10] = puVar5;" (assignment_expression "puVar7[10] = puVar5" (subscript_expression "puVar7[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[0xb] = "Task_function Layout_task_runner";" (assignment_expression "puVar7[0xb] = "Task_function Layout_task_runner"" (subscript_expression "puVar7[0xb]" identifier [ number_literal ]) = (string_literal ""Task_function Layout_task_runner"" " string_content ")) ;) (expression_statement "FUN_002000e0(param_6,puVar7);" (call_expression "FUN_002000e0(param_6,puVar7)" identifier (argument_list "(param_6,puVar7)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (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 (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - (subscript_expression IDENT [ LIT ])) >> LIT) )) + (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - (pointer_expression * IDENT)) >> LIT) ))) == LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( 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 ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;))) })))) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( 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 ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;))) })))) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;)) })))) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , (pointer_expression & IDENT) ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) ))) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) })) (expression_statement (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 , IDENT , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (subscript_expression IDENT [ LIT ])) )) (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - (subscript_expression IDENT [ LIT ])) >> LIT) ))) <= IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) ))))) ;) }) (else_clause else (compound_statement { (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 IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (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 IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (binary_expression IDENT + LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - (subscript_expression IDENT [ LIT ])) >> LIT) )) + (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - (pointer_expression * IDENT)) >> LIT) )))) , (binary_expression IDENT < LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto 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) )))) != (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( 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 (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , (pointer_expression & IDENT) ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( 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 { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (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) )))) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) >> LIT) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) & LIT) )) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT == (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) & LIT) ))) )) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) })) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( 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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (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 , IDENT ))) ;) (expression_statement (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 (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( 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 { (expression_statement (call_expression IDENT (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 ") , IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( 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 { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) != IDENT) )) (compound_statement { (expression_statement (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 , IDENT ))) ;) })) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != IDENT) )) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != IDENT) )) ;) (goto_statement goto statement_identifier ;) })))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (string_literal " string_content ")) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (return_statement return ;) })))
(function_definition "void FUN_000da420(int param_1,undefined4 param_2,int *param_3,int param_4,int param_5,\n                 undefined4 param_6,undefined4 param_7)\n\n{\n  undefined1 uVar1;\n  char cVar2;\n  undefined4 uVar3;\n  int iVar4;\n  undefined1 *puVar5;\n  undefined4 *puVar6;\n  undefined4 *puVar7;\n  undefined4 uVar8;\n  char *pcVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  undefined4 extraout_ECX;\n  int *piVar12;\n  byte bVar13;\n  int *piVar14;\n  int iVar15;\n  int *piVar16;\n  undefined1 *local_20;\n  \n  if (*(int *)(DAT_004144e8 + 4) != 0) {\n    FUN_001ffac0(*(int *)(DAT_004144e8 + 4),0);\n  }\n  if (((param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2) == 0) &&\n     (*(int *)(param_5 + 0x244) == 0)) {\n    FUN_001a5350();\n  }\n  FUN_001e9d80(param_4,param_5);\n  iVar4 = *(int *)(DAT_004144e8 + 8);\n  if (iVar4 == 0) goto LAB_000dac36;\n  if (*(char *)(iVar4 + 0x18b1) != '\0') {\n    uVar3 = FUN_001a50c0(DAT_004144e8);\n    iVar4 = FUN_001e9100(param_4,uVar3,0);\n    if (iVar4 != 0) {\n      FUN_001e7b10(param_4,iVar4);\n    }\n    if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n    iVar4 = FUN_001e9100(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1f20),0);\n    if (iVar4 != 0) {\n      if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf2c;\n            goto LAB_000dacd3;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dacd3:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf2c;\n        }\n      }\n      else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf2c:\n        FUN_001e7b10(param_4,iVar4);\n      }\n    }\n    if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n    iVar4 = FUN_001e9100(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1538),0);\n    if (iVar4 != 0) {\n      if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf0d;\n            goto LAB_000dad2d;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dad2d:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf0d;\n        }\n      }\n      else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf0d:\n        FUN_001e7b10(param_4,iVar4);\n      }\n    }\n    FUN_001e95f0(param_4,param_5);\n    if (*(int *)(param_4 + 0x158) == 0) {\n                    \n      FUN_000da200("../../gold/gold.cc",0x20b,"queue_middle_tasks",&__DT_PLTGOT);\n    }\n    FUN_00229ab0(*(int *)(param_4 + 0x158));\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }\n  if (*(int *)(iVar4 + 0x5934) == 0) {\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n  }\n  else {\n    FUN_000ded60(*(undefined4 *)(param_4 + 0x15c),param_3,param_4);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }\n  if ((((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)) &&\n      (*(char *)(param_5 + 0x1ce) == '\0')) ||\n     (piVar14 = (int *)*param_3, piVar14 == (int *)param_3[1])) {\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n  }\n  else {\n    do {\n      piVar16 = (int *)*piVar14;\n      piVar12 = piVar16;\n      if (piVar16[7] != 0) {\n        FUN_000d2820(piVar16[7] + 0x1c,param_2);\n        piVar12 = (int *)*piVar14;\n      }\n                    \n      (**(code **)(*piVar12 + 0x24))(piVar12,param_4,param_5,0);\n      if (piVar16[7] != 0) {\n        FUN_000d3850(piVar16[7] + 0x1c,param_2);\n      }\n      piVar14 = piVar14 + 1;\n    } while ((int *)param_3[1] != piVar14);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }\n  if (*(int *)(iVar4 + 0x593c) != 0) {\n    FUN_001a6980(*(int *)(iVar4 + 0x593c));\n  }\n  FUN_00107c00(param_5);\n  iVar4 = *(int *)(DAT_004144e8 + 8);\n  if (iVar4 == 0) goto LAB_000dac36;\n  if (((*(int *)(iVar4 + 0x593c) != 0) && (*(char *)(param_5 + 0x1cd) != '\0')) &&\n     ((*(int *)(iVar4 + 0x36d8) == 0 &&\n      (*(undefined4 **)(param_5 + 0x130) != *(undefined4 **)(param_5 + 0x134))))) {\n    puVar6 = *(undefined4 **)(param_5 + 0x130);\n    do {\n      puVar7 = puVar6 + 1;\n      FUN_0015d7d0(*puVar6,param_5 + 0x1ec);\n      puVar6 = puVar7;\n    } while (*(undefined4 **)(param_5 + 0x134) != puVar7);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }\n  if ((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)) {\n    iVar4 = *(int *)(param_1 + 0x3e70);\n  }\n  else {\n    piVar14 = (int *)*param_3;\n    if (piVar14 != (int *)param_3[1]) {\n      do {\n        piVar12 = (int *)*piVar14;\n        piVar16 = (int *)piVar12[0x14];\n        iVar4 = *piVar16;\n        if (iVar4 != piVar16[1]) {\n          while( true ) {\n            iVar15 = *piVar12;\n            uVar11 = *(uint *)(iVar4 + 4);\n            if (*(code **)(iVar15 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4);\n            }\n            else {\n              uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);\n              uVar11 = *(uint *)(iVar4 + 4);\n              piVar12 = (int *)*piVar14;\n              iVar15 = *piVar12;\n            }\n            *(undefined4 *)(iVar4 + 0x14) = uVar3;\n            uVar1 = (**(code **)(iVar15 + 0x88))(piVar12,uVar11);\n            *(undefined1 *)(iVar4 + 0x18) = uVar1;\n            if (piVar16[1] == iVar4 + 0x1c) break;\n            piVar12 = (int *)*piVar14;\n            iVar4 = iVar4 + 0x1c;\n          }\n        }\n        piVar14 = piVar14 + 1;\n      } while ((int *)param_3[1] != piVar14);\n    }\n    iVar4 = *(int *)(param_1 + 0x3e70);\n  }\n  if ((iVar4 == 0) &&\n     (iVar4 = (param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2), iVar4 < 2)) {\n    iVar4 = 2;\n  }\n  FUN_002007c0(param_6,iVar4);\n  if (param_3[4] == param_3[3]) {\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n    if ((*(char *)(iVar4 + 0x1a25) != '\0') || (*(char *)(iVar4 + 0x2931) != '\0'))\n    goto LAB_000da6a6;\n    FUN_001a52b0(1);\n  }\n  else {\nLAB_000da6a6:\n    FUN_001a52b0(0);\n    if (*(char *)(param_1 + 0x5938) != '\0') {\n      if ((int *)param_3[3] == (int *)param_3[4]) {\n                    \n        FUN_000da200("../../gold/gold.cc",0x265,"queue_middle_tasks",&__DT_PLTGOT);\n      }\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      uVar10 = gettext("cannot mix -static with dynamic object %s");\n      FUN_000d1330(uVar10,uVar3);\n    }\n    if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n    if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) != '\0') {\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      pcVar9 = "cannot mix -r with dynamic object %s";\nLAB_000db04c:\n      uVar10 = gettext(pcVar9);\n                    \n      FUN_000d12d0(uVar10,uVar3);\n    }\n    iVar4 = FUN_0014c1c0(param_1);\n    if (iVar4 != 0) {\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      pcVar9 = "cannot use non-ELF output format with dynamic object %s";\n      goto LAB_000db04c;\n    }\n  }\n  if (*(int *)(DAT_004144e8 + 8) == 0) {\nLAB_000dac36:\n                    \n    FUN_000da200("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) != '\0') {\n    piVar14 = (int *)*param_3;\n    piVar16 = (int *)param_3[1];\n    if (piVar16 != piVar14) {\n      bVar13 = *(byte *)(*piVar14 + 0x2c) >> 2 & 1;\n      if (piVar16 != piVar14 + 1) {\n        iVar4 = piVar14[1];\n        if ((*(byte *)(iVar4 + 0x2c) >> 2 & 1) == bVar13) {\n          piVar12 = piVar14 + 2;\n          do {\n            if (piVar16 == piVar12) goto LAB_000da77b;\n            iVar4 = *piVar12;\n            piVar12 = piVar12 + 1;\n          } while (bVar13 == (*(byte *)(iVar4 + 0x2c) >> 2 & 1));\n        }\n        uVar3 = *(undefined4 *)(iVar4 + 4);\n        uVar10 = *(undefined4 *)(*piVar14 + 4);\n        uVar8 = gettext("cannot mix split-stack \'%s\' and non-split-stack \'%s\' when using -r");\n                    \n        FUN_000d12d0(uVar8,uVar10,uVar3);\n      }\n    }\n  }\nLAB_000da77b:\n  cVar2 = FUN_001a5190(DAT_004144e8);\n  if (cVar2 != '\0') {\n    piVar14 = *(int **)(param_5 + 0x244);\n    (**(code **)(*piVar14 + 0x18))(piVar14,param_4,param_5);\n    (**(code **)(*piVar14 + 0x1c))(piVar14,param_4);\n  }\n  if ((*(int *)(DAT_004144e8 + 8) != 0) && ((*(byte *)(DAT_004144e8 + 0x14) & 2) != 0)) {\n    FUN_001d9e80(*(undefined4 *)(param_5 + 4),*(undefined4 *)PTR_stderr_00413fbc);\n  }\n  FUN_00122e00(param_3);\n  if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n  if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x4c2d) == '\0') {\n    FUN_001dc4a0(*(int *)(param_5 + 4) + 0x68,param_4);\n  }\n  FUN_001121d0(param_5);\n  FUN_001d9480(*(undefined4 *)(param_5 + 4),param_5);\n  FUN_001112f0(param_5,param_4);\n  FUN_001d94d0(*(undefined4 *)(param_5 + 4),param_4);\n  piVar14 = *(int **)(DAT_004144e8 + 0xc);\n  if (piVar14 == (int *)0x0) {\n                    \n    FUN_000da200("../../gold/parameters.h",0x69,"target",extraout_ECX);\n  }\n  FUN_0010c300(param_5,piVar14);\n  if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n  if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) == '\0') {\n    FUN_0020afd0(param_4,param_5);\n    FUN_0010ee10(param_5,param_4);\n    if (*(code **)(*piVar14 + 0x84) != FUN_000a4200) {\n      (**(code **)(*piVar14 + 0x84))(piVar14,param_4,param_5);\n    }\n  }\n  FUN_001081d0(param_5,param_4);\n  iVar4 = *(int *)(DAT_004144e8 + 8);\n  if (iVar4 == 0) goto LAB_000dac36;\n  local_20 = (undefined1 *)0x0;\n  if (*(char *)(iVar4 + 0xb51) != '\0') {\n    local_20 = (undefined1 *)FUN_00246670(0x14);\n    *local_20 = 1;\n    *(undefined4 *)(local_20 + 8) = 0;\n    *(undefined4 *)(local_20 + 0xc) = 0;\n    *(undefined4 *)(local_20 + 0x10) = 0;\n    *(undefined4 *)(local_20 + 4) = 1;\n    puVar6 = (undefined4 *)FUN_00246670(0x34);\n    puVar6[1] = 0;\n    puVar6[9] = param_4;\n    puVar6[2] = puVar6 + 4;\n    puVar6[10] = param_5;\n    puVar6[3] = 0;\n    *(undefined1 *)(puVar6 + 4) = 0;\n    *(undefined1 *)(puVar6 + 8) = 0;\n    *puVar6 = &PTR_FUN_00408d4c;\n    puVar6[0xb] = param_7;\n    puVar6[0xc] = local_20;\n    FUN_002000e0(param_6,puVar6);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }\n  piVar16 = (int *)*param_3;\n  if ((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)) {\n    if (piVar16 != (int *)param_3[1]) {\n      do {\n        piVar12 = piVar16 + 1;\n        puVar5 = (undefined1 *)FUN_00246670(0x14);\n        iVar4 = *piVar16;\n        *puVar5 = 1;\n        *(undefined4 *)(puVar5 + 8) = 0;\n        *(undefined4 *)(puVar5 + 0xc) = 0;\n        *(undefined4 *)(puVar5 + 0x10) = 0;\n        *(undefined4 *)(puVar5 + 4) = 1;\n        puVar6 = (undefined4 *)FUN_00246670(0x38);\n        puVar6[0xc] = local_20;\n        *puVar6 = &PTR_FUN_00408390;\n        puVar6[2] = puVar6 + 4;\n        puVar6[9] = param_4;\n        puVar6[1] = 0;\n        puVar6[10] = param_5;\n        puVar6[3] = 0;\n        *(undefined1 *)(puVar6 + 4) = 0;\n        *(undefined1 *)(puVar6 + 8) = 0;\n        puVar6[0xb] = iVar4;\n        puVar6[0xd] = puVar5;\n        FUN_002000e0(param_6,puVar6);\n        local_20 = puVar5;\n        piVar16 = piVar12;\n      } while ((int *)param_3[1] != piVar12);\n      goto LAB_000da9b3;\n    }\n  }\n  else if (piVar16 != (int *)param_3[1]) {\n    do {\n      piVar12 = piVar16 + 1;\n      puVar5 = (undefined1 *)FUN_00246670(0x14);\n      iVar4 = *piVar16;\n      *puVar5 = 1;\n      *(undefined4 *)(puVar5 + 8) = 0;\n      uVar3 = *(undefined4 *)(iVar4 + 0x50);\n      *(undefined4 *)(puVar5 + 0xc) = 0;\n      *(undefined4 *)(puVar5 + 0x10) = 0;\n      *(undefined4 *)(puVar5 + 4) = 1;\n      puVar6 = (undefined4 *)FUN_00246670(0x3c);\n      puVar6[0xd] = local_20;\n      *puVar6 = &PTR_FUN_004083d0;\n      puVar6[1] = 0;\n      puVar6[9] = param_4;\n      puVar6[2] = puVar6 + 4;\n      puVar6[10] = param_5;\n      puVar6[3] = 0;\n      *(undefined1 *)(puVar6 + 4) = 0;\n      *(undefined1 *)(puVar6 + 8) = 0;\n      puVar6[0xb] = iVar4;\n      puVar6[0xc] = uVar3;\n      puVar6[0xe] = puVar5;\n      FUN_002000e0(param_6,puVar6);\n      local_20 = puVar5;\n      piVar16 = piVar12;\n    } while ((int *)param_3[1] != piVar12);\n    goto LAB_000da9b3;\n  }\n  puVar5 = local_20;\n  if (local_20 == (undefined1 *)0x0) {\n    puVar5 = (undefined1 *)FUN_00246670(0x14);\n    *puVar5 = 1;\n    *(undefined4 *)(puVar5 + 4) = 0;\n    *(undefined4 *)(puVar5 + 8) = 0;\n    *(undefined4 *)(puVar5 + 0xc) = 0;\n    *(undefined4 *)(puVar5 + 0x10) = 0;\n  }\nLAB_000da9b3:\n  puVar6 = (undefined4 *)FUN_00246670(0x1c);\n  *puVar6 = &PTR_FUN_00406ca0;\n  puVar6[1] = param_1;\n  puVar6[2] = param_3;\n  puVar6[3] = param_4;\n  puVar6[4] = piVar14;\n  puVar6[5] = param_5;\n  puVar6[6] = param_7;\n  puVar7 = (undefined4 *)FUN_00246670(0x30);\n  puVar7[1] = 0;\n  puVar7[2] = puVar7 + 4;\n  *puVar7 = &PTR_FUN_004066fc;\n  puVar7[3] = 0;\n  *(undefined1 *)(puVar7 + 4) = 0;\n  *(undefined1 *)(puVar7 + 8) = 0;\n  puVar7[9] = puVar6;\n  puVar7[10] = puVar5;\n  puVar7[0xb] = "Task_function Layout_task_runner";\n  FUN_002000e0(param_6,puVar7);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_000da420(int param_1,undefined4 param_2,int *param_3,int param_4,int param_5,\n                 undefined4 param_6,undefined4 param_7)" (identifier "FUN_000da420") (parameter_list "(int param_1,undefined4 param_2,int *param_3,int param_4,int param_5,\n                 undefined4 param_6,undefined4 param_7)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "int *param_3" (primitive_type "int") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) (, ",") (parameter_declaration "int param_5" (primitive_type "int") (identifier "param_5")) (, ",") (parameter_declaration "undefined4 param_6" (type_identifier "undefined4") (identifier "param_6")) (, ",") (parameter_declaration "undefined4 param_7" (type_identifier "undefined4") (identifier "param_7")) () ")"))) (compound_statement "{\n  undefined1 uVar1;\n  char cVar2;\n  undefined4 uVar3;\n  int iVar4;\n  undefined1 *puVar5;\n  undefined4 *puVar6;\n  undefined4 *puVar7;\n  undefined4 uVar8;\n  char *pcVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  undefined4 extraout_ECX;\n  int *piVar12;\n  byte bVar13;\n  int *piVar14;\n  int iVar15;\n  int *piVar16;\n  undefined1 *local_20;\n  \n  if (*(int *)(DAT_004144e8 + 4) != 0) {\n    FUN_001ffac0(*(int *)(DAT_004144e8 + 4),0);\n  }\n  if (((param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2) == 0) &&\n     (*(int *)(param_5 + 0x244) == 0)) {\n    FUN_001a5350();\n  }\n  FUN_001e9d80(param_4,param_5);\n  iVar4 = *(int *)(DAT_004144e8 + 8);\n  if (iVar4 == 0) goto LAB_000dac36;\n  if (*(char *)(iVar4 + 0x18b1) != '\0') {\n    uVar3 = FUN_001a50c0(DAT_004144e8);\n    iVar4 = FUN_001e9100(param_4,uVar3,0);\n    if (iVar4 != 0) {\n      FUN_001e7b10(param_4,iVar4);\n    }\n    if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n    iVar4 = FUN_001e9100(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1f20),0);\n    if (iVar4 != 0) {\n      if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf2c;\n            goto LAB_000dacd3;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dacd3:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf2c;\n        }\n      }\n      else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf2c:\n        FUN_001e7b10(param_4,iVar4);\n      }\n    }\n    if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n    iVar4 = FUN_001e9100(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1538),0);\n    if (iVar4 != 0) {\n      if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf0d;\n            goto LAB_000dad2d;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dad2d:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf0d;\n        }\n      }\n      else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf0d:\n        FUN_001e7b10(param_4,iVar4);\n      }\n    }\n    FUN_001e95f0(param_4,param_5);\n    if (*(int *)(param_4 + 0x158) == 0) {\n                    \n      FUN_000da200("../../gold/gold.cc",0x20b,"queue_middle_tasks",&__DT_PLTGOT);\n    }\n    FUN_00229ab0(*(int *)(param_4 + 0x158));\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }\n  if (*(int *)(iVar4 + 0x5934) == 0) {\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n  }\n  else {\n    FUN_000ded60(*(undefined4 *)(param_4 + 0x15c),param_3,param_4);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }\n  if ((((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)) &&\n      (*(char *)(param_5 + 0x1ce) == '\0')) ||\n     (piVar14 = (int *)*param_3, piVar14 == (int *)param_3[1])) {\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n  }\n  else {\n    do {\n      piVar16 = (int *)*piVar14;\n      piVar12 = piVar16;\n      if (piVar16[7] != 0) {\n        FUN_000d2820(piVar16[7] + 0x1c,param_2);\n        piVar12 = (int *)*piVar14;\n      }\n                    \n      (**(code **)(*piVar12 + 0x24))(piVar12,param_4,param_5,0);\n      if (piVar16[7] != 0) {\n        FUN_000d3850(piVar16[7] + 0x1c,param_2);\n      }\n      piVar14 = piVar14 + 1;\n    } while ((int *)param_3[1] != piVar14);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }\n  if (*(int *)(iVar4 + 0x593c) != 0) {\n    FUN_001a6980(*(int *)(iVar4 + 0x593c));\n  }\n  FUN_00107c00(param_5);\n  iVar4 = *(int *)(DAT_004144e8 + 8);\n  if (iVar4 == 0) goto LAB_000dac36;\n  if (((*(int *)(iVar4 + 0x593c) != 0) && (*(char *)(param_5 + 0x1cd) != '\0')) &&\n     ((*(int *)(iVar4 + 0x36d8) == 0 &&\n      (*(undefined4 **)(param_5 + 0x130) != *(undefined4 **)(param_5 + 0x134))))) {\n    puVar6 = *(undefined4 **)(param_5 + 0x130);\n    do {\n      puVar7 = puVar6 + 1;\n      FUN_0015d7d0(*puVar6,param_5 + 0x1ec);\n      puVar6 = puVar7;\n    } while (*(undefined4 **)(param_5 + 0x134) != puVar7);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }\n  if ((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)) {\n    iVar4 = *(int *)(param_1 + 0x3e70);\n  }\n  else {\n    piVar14 = (int *)*param_3;\n    if (piVar14 != (int *)param_3[1]) {\n      do {\n        piVar12 = (int *)*piVar14;\n        piVar16 = (int *)piVar12[0x14];\n        iVar4 = *piVar16;\n        if (iVar4 != piVar16[1]) {\n          while( true ) {\n            iVar15 = *piVar12;\n            uVar11 = *(uint *)(iVar4 + 4);\n            if (*(code **)(iVar15 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4);\n            }\n            else {\n              uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);\n              uVar11 = *(uint *)(iVar4 + 4);\n              piVar12 = (int *)*piVar14;\n              iVar15 = *piVar12;\n            }\n            *(undefined4 *)(iVar4 + 0x14) = uVar3;\n            uVar1 = (**(code **)(iVar15 + 0x88))(piVar12,uVar11);\n            *(undefined1 *)(iVar4 + 0x18) = uVar1;\n            if (piVar16[1] == iVar4 + 0x1c) break;\n            piVar12 = (int *)*piVar14;\n            iVar4 = iVar4 + 0x1c;\n          }\n        }\n        piVar14 = piVar14 + 1;\n      } while ((int *)param_3[1] != piVar14);\n    }\n    iVar4 = *(int *)(param_1 + 0x3e70);\n  }\n  if ((iVar4 == 0) &&\n     (iVar4 = (param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2), iVar4 < 2)) {\n    iVar4 = 2;\n  }\n  FUN_002007c0(param_6,iVar4);\n  if (param_3[4] == param_3[3]) {\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n    if ((*(char *)(iVar4 + 0x1a25) != '\0') || (*(char *)(iVar4 + 0x2931) != '\0'))\n    goto LAB_000da6a6;\n    FUN_001a52b0(1);\n  }\n  else {\nLAB_000da6a6:\n    FUN_001a52b0(0);\n    if (*(char *)(param_1 + 0x5938) != '\0') {\n      if ((int *)param_3[3] == (int *)param_3[4]) {\n                    \n        FUN_000da200("../../gold/gold.cc",0x265,"queue_middle_tasks",&__DT_PLTGOT);\n      }\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      uVar10 = gettext("cannot mix -static with dynamic object %s");\n      FUN_000d1330(uVar10,uVar3);\n    }\n    if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n    if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) != '\0') {\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      pcVar9 = "cannot mix -r with dynamic object %s";\nLAB_000db04c:\n      uVar10 = gettext(pcVar9);\n                    \n      FUN_000d12d0(uVar10,uVar3);\n    }\n    iVar4 = FUN_0014c1c0(param_1);\n    if (iVar4 != 0) {\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      pcVar9 = "cannot use non-ELF output format with dynamic object %s";\n      goto LAB_000db04c;\n    }\n  }\n  if (*(int *)(DAT_004144e8 + 8) == 0) {\nLAB_000dac36:\n                    \n    FUN_000da200("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) != '\0') {\n    piVar14 = (int *)*param_3;\n    piVar16 = (int *)param_3[1];\n    if (piVar16 != piVar14) {\n      bVar13 = *(byte *)(*piVar14 + 0x2c) >> 2 & 1;\n      if (piVar16 != piVar14 + 1) {\n        iVar4 = piVar14[1];\n        if ((*(byte *)(iVar4 + 0x2c) >> 2 & 1) == bVar13) {\n          piVar12 = piVar14 + 2;\n          do {\n            if (piVar16 == piVar12) goto LAB_000da77b;\n            iVar4 = *piVar12;\n            piVar12 = piVar12 + 1;\n          } while (bVar13 == (*(byte *)(iVar4 + 0x2c) >> 2 & 1));\n        }\n        uVar3 = *(undefined4 *)(iVar4 + 4);\n        uVar10 = *(undefined4 *)(*piVar14 + 4);\n        uVar8 = gettext("cannot mix split-stack \'%s\' and non-split-stack \'%s\' when using -r");\n                    \n        FUN_000d12d0(uVar8,uVar10,uVar3);\n      }\n    }\n  }\nLAB_000da77b:\n  cVar2 = FUN_001a5190(DAT_004144e8);\n  if (cVar2 != '\0') {\n    piVar14 = *(int **)(param_5 + 0x244);\n    (**(code **)(*piVar14 + 0x18))(piVar14,param_4,param_5);\n    (**(code **)(*piVar14 + 0x1c))(piVar14,param_4);\n  }\n  if ((*(int *)(DAT_004144e8 + 8) != 0) && ((*(byte *)(DAT_004144e8 + 0x14) & 2) != 0)) {\n    FUN_001d9e80(*(undefined4 *)(param_5 + 4),*(undefined4 *)PTR_stderr_00413fbc);\n  }\n  FUN_00122e00(param_3);\n  if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n  if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x4c2d) == '\0') {\n    FUN_001dc4a0(*(int *)(param_5 + 4) + 0x68,param_4);\n  }\n  FUN_001121d0(param_5);\n  FUN_001d9480(*(undefined4 *)(param_5 + 4),param_5);\n  FUN_001112f0(param_5,param_4);\n  FUN_001d94d0(*(undefined4 *)(param_5 + 4),param_4);\n  piVar14 = *(int **)(DAT_004144e8 + 0xc);\n  if (piVar14 == (int *)0x0) {\n                    \n    FUN_000da200("../../gold/parameters.h",0x69,"target",extraout_ECX);\n  }\n  FUN_0010c300(param_5,piVar14);\n  if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n  if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) == '\0') {\n    FUN_0020afd0(param_4,param_5);\n    FUN_0010ee10(param_5,param_4);\n    if (*(code **)(*piVar14 + 0x84) != FUN_000a4200) {\n      (**(code **)(*piVar14 + 0x84))(piVar14,param_4,param_5);\n    }\n  }\n  FUN_001081d0(param_5,param_4);\n  iVar4 = *(int *)(DAT_004144e8 + 8);\n  if (iVar4 == 0) goto LAB_000dac36;\n  local_20 = (undefined1 *)0x0;\n  if (*(char *)(iVar4 + 0xb51) != '\0') {\n    local_20 = (undefined1 *)FUN_00246670(0x14);\n    *local_20 = 1;\n    *(undefined4 *)(local_20 + 8) = 0;\n    *(undefined4 *)(local_20 + 0xc) = 0;\n    *(undefined4 *)(local_20 + 0x10) = 0;\n    *(undefined4 *)(local_20 + 4) = 1;\n    puVar6 = (undefined4 *)FUN_00246670(0x34);\n    puVar6[1] = 0;\n    puVar6[9] = param_4;\n    puVar6[2] = puVar6 + 4;\n    puVar6[10] = param_5;\n    puVar6[3] = 0;\n    *(undefined1 *)(puVar6 + 4) = 0;\n    *(undefined1 *)(puVar6 + 8) = 0;\n    *puVar6 = &PTR_FUN_00408d4c;\n    puVar6[0xb] = param_7;\n    puVar6[0xc] = local_20;\n    FUN_002000e0(param_6,puVar6);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }\n  piVar16 = (int *)*param_3;\n  if ((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)) {\n    if (piVar16 != (int *)param_3[1]) {\n      do {\n        piVar12 = piVar16 + 1;\n        puVar5 = (undefined1 *)FUN_00246670(0x14);\n        iVar4 = *piVar16;\n        *puVar5 = 1;\n        *(undefined4 *)(puVar5 + 8) = 0;\n        *(undefined4 *)(puVar5 + 0xc) = 0;\n        *(undefined4 *)(puVar5 + 0x10) = 0;\n        *(undefined4 *)(puVar5 + 4) = 1;\n        puVar6 = (undefined4 *)FUN_00246670(0x38);\n        puVar6[0xc] = local_20;\n        *puVar6 = &PTR_FUN_00408390;\n        puVar6[2] = puVar6 + 4;\n        puVar6[9] = param_4;\n        puVar6[1] = 0;\n        puVar6[10] = param_5;\n        puVar6[3] = 0;\n        *(undefined1 *)(puVar6 + 4) = 0;\n        *(undefined1 *)(puVar6 + 8) = 0;\n        puVar6[0xb] = iVar4;\n        puVar6[0xd] = puVar5;\n        FUN_002000e0(param_6,puVar6);\n        local_20 = puVar5;\n        piVar16 = piVar12;\n      } while ((int *)param_3[1] != piVar12);\n      goto LAB_000da9b3;\n    }\n  }\n  else if (piVar16 != (int *)param_3[1]) {\n    do {\n      piVar12 = piVar16 + 1;\n      puVar5 = (undefined1 *)FUN_00246670(0x14);\n      iVar4 = *piVar16;\n      *puVar5 = 1;\n      *(undefined4 *)(puVar5 + 8) = 0;\n      uVar3 = *(undefined4 *)(iVar4 + 0x50);\n      *(undefined4 *)(puVar5 + 0xc) = 0;\n      *(undefined4 *)(puVar5 + 0x10) = 0;\n      *(undefined4 *)(puVar5 + 4) = 1;\n      puVar6 = (undefined4 *)FUN_00246670(0x3c);\n      puVar6[0xd] = local_20;\n      *puVar6 = &PTR_FUN_004083d0;\n      puVar6[1] = 0;\n      puVar6[9] = param_4;\n      puVar6[2] = puVar6 + 4;\n      puVar6[10] = param_5;\n      puVar6[3] = 0;\n      *(undefined1 *)(puVar6 + 4) = 0;\n      *(undefined1 *)(puVar6 + 8) = 0;\n      puVar6[0xb] = iVar4;\n      puVar6[0xc] = uVar3;\n      puVar6[0xe] = puVar5;\n      FUN_002000e0(param_6,puVar6);\n      local_20 = puVar5;\n      piVar16 = piVar12;\n    } while ((int *)param_3[1] != piVar12);\n    goto LAB_000da9b3;\n  }\n  puVar5 = local_20;\n  if (local_20 == (undefined1 *)0x0) {\n    puVar5 = (undefined1 *)FUN_00246670(0x14);\n    *puVar5 = 1;\n    *(undefined4 *)(puVar5 + 4) = 0;\n    *(undefined4 *)(puVar5 + 8) = 0;\n    *(undefined4 *)(puVar5 + 0xc) = 0;\n    *(undefined4 *)(puVar5 + 0x10) = 0;\n  }\nLAB_000da9b3:\n  puVar6 = (undefined4 *)FUN_00246670(0x1c);\n  *puVar6 = &PTR_FUN_00406ca0;\n  puVar6[1] = param_1;\n  puVar6[2] = param_3;\n  puVar6[3] = param_4;\n  puVar6[4] = piVar14;\n  puVar6[5] = param_5;\n  puVar6[6] = param_7;\n  puVar7 = (undefined4 *)FUN_00246670(0x30);\n  puVar7[1] = 0;\n  puVar7[2] = puVar7 + 4;\n  *puVar7 = &PTR_FUN_004066fc;\n  puVar7[3] = 0;\n  *(undefined1 *)(puVar7 + 4) = 0;\n  *(undefined1 *)(puVar7 + 8) = 0;\n  puVar7[9] = puVar6;\n  puVar7[10] = puVar5;\n  puVar7[0xb] = "Task_function Layout_task_runner";\n  FUN_002000e0(param_6,puVar7);\n  return;\n}" ({ "{") (declaration "undefined1 uVar1;" (type_identifier "undefined1") (identifier "uVar1") (; ";")) (declaration "char cVar2;" (primitive_type "char") (identifier "cVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "undefined1 *puVar5;" (type_identifier "undefined1") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "undefined4 *puVar6;" (type_identifier "undefined4") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "undefined4 *puVar7;" (type_identifier "undefined4") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "undefined4 uVar8;" (type_identifier "undefined4") (identifier "uVar8") (; ";")) (declaration "char *pcVar9;" (primitive_type "char") (pointer_declarator "*pcVar9" (* "*") (identifier "pcVar9")) (; ";")) (declaration "undefined4 uVar10;" (type_identifier "undefined4") (identifier "uVar10") (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "undefined4 extraout_ECX;" (type_identifier "undefined4") (identifier "extraout_ECX") (; ";")) (declaration "int *piVar12;" (primitive_type "int") (pointer_declarator "*piVar12" (* "*") (identifier "piVar12")) (; ";")) (declaration "byte bVar13;" (type_identifier "byte") (identifier "bVar13") (; ";")) (declaration "int *piVar14;" (primitive_type "int") (pointer_declarator "*piVar14" (* "*") (identifier "piVar14")) (; ";")) (declaration "int iVar15;" (primitive_type "int") (identifier "iVar15") (; ";")) (declaration "int *piVar16;" (primitive_type "int") (pointer_declarator "*piVar16" (* "*") (identifier "piVar16")) (; ";")) (declaration "undefined1 *local_20;" (type_identifier "undefined1") (pointer_declarator "*local_20" (* "*") (identifier "local_20")) (; ";")) (if_statement "if (*(int *)(DAT_004144e8 + 4) != 0) {\n    FUN_001ffac0(*(int *)(DAT_004144e8 + 4),0);\n  }" (if "if") (parenthesized_expression "(*(int *)(DAT_004144e8 + 4) != 0)" (( "(") (binary_expression "*(int *)(DAT_004144e8 + 4) != 0" (pointer_expression "*(int *)(DAT_004144e8 + 4)" (* "*") (cast_expression "(int *)(DAT_004144e8 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_004144e8 + 4)" (( "(") (binary_expression "DAT_004144e8 + 4" (identifier "DAT_004144e8") (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_001ffac0(*(int *)(DAT_004144e8 + 4),0);\n  }" ({ "{") (expression_statement "FUN_001ffac0(*(int *)(DAT_004144e8 + 4),0);" (call_expression "FUN_001ffac0(*(int *)(DAT_004144e8 + 4),0)" (identifier "FUN_001ffac0") (argument_list "(*(int *)(DAT_004144e8 + 4),0)" (( "(") (pointer_expression "*(int *)(DAT_004144e8 + 4)" (* "*") (cast_expression "(int *)(DAT_004144e8 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_004144e8 + 4)" (( "(") (binary_expression "DAT_004144e8 + 4" (identifier "DAT_004144e8") (+ "+") (number_literal "4")) () ")")))) (, ",") (number_literal "0") () ")"))) (; ";")) (} "}"))) (if_statement "if (((param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2) == 0) &&\n     (*(int *)(param_5 + 0x244) == 0)) {\n    FUN_001a5350();\n  }" (if "if") (parenthesized_expression "(((param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2) == 0) &&\n     (*(int *)(param_5 + 0x244) == 0))" (( "(") (binary_expression "((param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2) == 0) &&\n     (*(int *)(param_5 + 0x244) == 0)" (parenthesized_expression "((param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2) == 0)" (( "(") (binary_expression "(param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2) == 0" (binary_expression "(param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2)" (parenthesized_expression "(param_3[4] - param_3[3] >> 2)" (( "(") (binary_expression "param_3[4] - param_3[3] >> 2" (binary_expression "param_3[4] - param_3[3]" (subscript_expression "param_3[4]" (identifier "param_3") ([ "[") (number_literal "4") (] "]")) (- "-") (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]"))) (>> ">>") (number_literal "2")) () ")")) (+ "+") (parenthesized_expression "(param_3[1] - *param_3 >> 2)" (( "(") (binary_expression "param_3[1] - *param_3 >> 2" (binary_expression "param_3[1] - *param_3" (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")) (- "-") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (>> ">>") (number_literal "2")) () ")"))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(param_5 + 0x244) == 0)" (( "(") (binary_expression "*(int *)(param_5 + 0x244) == 0" (pointer_expression "*(int *)(param_5 + 0x244)" (* "*") (cast_expression "(int *)(param_5 + 0x244)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0x244)" (( "(") (binary_expression "param_5 + 0x244" (identifier "param_5") (+ "+") (number_literal "0x244")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    FUN_001a5350();\n  }" ({ "{") (expression_statement "FUN_001a5350();" (call_expression "FUN_001a5350()" (identifier "FUN_001a5350") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_001e9d80(param_4,param_5);" (call_expression "FUN_001e9d80(param_4,param_5)" (identifier "FUN_001e9d80") (argument_list "(param_4,param_5)" (( "(") (identifier "param_4") (, ",") (identifier "param_5") () ")"))) (; ";")) (expression_statement "iVar4 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar4 = *(int *)(DAT_004144e8 + 8)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(DAT_004144e8 + 8)" (* "*") (cast_expression "(int *)(DAT_004144e8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_004144e8 + 8)" (( "(") (binary_expression "DAT_004144e8 + 8" (identifier "DAT_004144e8") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar4 == 0) goto LAB_000dac36;" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000dac36;" (goto "goto") (statement_identifier "LAB_000dac36") (; ";"))) (if_statement "if (*(char *)(iVar4 + 0x18b1) != '\0') {\n    uVar3 = FUN_001a50c0(DAT_004144e8);\n    iVar4 = FUN_001e9100(param_4,uVar3,0);\n    if (iVar4 != 0) {\n      FUN_001e7b10(param_4,iVar4);\n    }\n    if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n    iVar4 = FUN_001e9100(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1f20),0);\n    if (iVar4 != 0) {\n      if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf2c;\n            goto LAB_000dacd3;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dacd3:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf2c;\n        }\n      }\n      else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf2c:\n        FUN_001e7b10(param_4,iVar4);\n      }\n    }\n    if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n    iVar4 = FUN_001e9100(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1538),0);\n    if (iVar4 != 0) {\n      if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf0d;\n            goto LAB_000dad2d;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dad2d:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf0d;\n        }\n      }\n      else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf0d:\n        FUN_001e7b10(param_4,iVar4);\n      }\n    }\n    FUN_001e95f0(param_4,param_5);\n    if (*(int *)(param_4 + 0x158) == 0) {\n                    \n      FUN_000da200("../../gold/gold.cc",0x20b,"queue_middle_tasks",&__DT_PLTGOT);\n    }\n    FUN_00229ab0(*(int *)(param_4 + 0x158));\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }" (if "if") (parenthesized_expression "(*(char *)(iVar4 + 0x18b1) != '\0')" (( "(") (binary_expression "*(char *)(iVar4 + 0x18b1) != '\0'" (pointer_expression "*(char *)(iVar4 + 0x18b1)" (* "*") (cast_expression "(char *)(iVar4 + 0x18b1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x18b1)" (( "(") (binary_expression "iVar4 + 0x18b1" (identifier "iVar4") (+ "+") (number_literal "0x18b1")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    uVar3 = FUN_001a50c0(DAT_004144e8);\n    iVar4 = FUN_001e9100(param_4,uVar3,0);\n    if (iVar4 != 0) {\n      FUN_001e7b10(param_4,iVar4);\n    }\n    if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n    iVar4 = FUN_001e9100(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1f20),0);\n    if (iVar4 != 0) {\n      if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf2c;\n            goto LAB_000dacd3;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dacd3:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf2c;\n        }\n      }\n      else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf2c:\n        FUN_001e7b10(param_4,iVar4);\n      }\n    }\n    if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n    iVar4 = FUN_001e9100(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1538),0);\n    if (iVar4 != 0) {\n      if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf0d;\n            goto LAB_000dad2d;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dad2d:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf0d;\n        }\n      }\n      else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf0d:\n        FUN_001e7b10(param_4,iVar4);\n      }\n    }\n    FUN_001e95f0(param_4,param_5);\n    if (*(int *)(param_4 + 0x158) == 0) {\n                    \n      FUN_000da200("../../gold/gold.cc",0x20b,"queue_middle_tasks",&__DT_PLTGOT);\n    }\n    FUN_00229ab0(*(int *)(param_4 + 0x158));\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }" ({ "{") (expression_statement "uVar3 = FUN_001a50c0(DAT_004144e8);" (assignment_expression "uVar3 = FUN_001a50c0(DAT_004144e8)" (identifier "uVar3") (= "=") (call_expression "FUN_001a50c0(DAT_004144e8)" (identifier "FUN_001a50c0") (argument_list "(DAT_004144e8)" (( "(") (identifier "DAT_004144e8") () ")")))) (; ";")) (expression_statement "iVar4 = FUN_001e9100(param_4,uVar3,0);" (assignment_expression "iVar4 = FUN_001e9100(param_4,uVar3,0)" (identifier "iVar4") (= "=") (call_expression "FUN_001e9100(param_4,uVar3,0)" (identifier "FUN_001e9100") (argument_list "(param_4,uVar3,0)" (( "(") (identifier "param_4") (, ",") (identifier "uVar3") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar4 != 0) {\n      FUN_001e7b10(param_4,iVar4);\n    }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_001e7b10(param_4,iVar4);\n    }" ({ "{") (expression_statement "FUN_001e7b10(param_4,iVar4);" (call_expression "FUN_001e7b10(param_4,iVar4)" (identifier "FUN_001e7b10") (argument_list "(param_4,iVar4)" (( "(") (identifier "param_4") (, ",") (identifier "iVar4") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;" (if "if") (parenthesized_expression "(*(int *)(DAT_004144e8 + 8) == 0)" (( "(") (binary_expression "*(int *)(DAT_004144e8 + 8) == 0" (pointer_expression "*(int *)(DAT_004144e8 + 8)" (* "*") (cast_expression "(int *)(DAT_004144e8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_004144e8 + 8)" (( "(") (binary_expression "DAT_004144e8 + 8" (identifier "DAT_004144e8") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000dac36;" (goto "goto") (statement_identifier "LAB_000dac36") (; ";"))) (expression_statement "iVar4 = FUN_001e9100(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1f20),0);" (assignment_expression "iVar4 = FUN_001e9100(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1f20),0)" (identifier "iVar4") (= "=") (call_expression "FUN_001e9100(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1f20),0)" (identifier "FUN_001e9100") (argument_list "(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1f20),0)" (( "(") (identifier "param_4") (, ",") (pointer_expression "*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1f20)" (* "*") (cast_expression "(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1f20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_004144e8 + 8) + 0x1f20)" (( "(") (binary_expression "*(int *)(DAT_004144e8 + 8) + 0x1f20" (pointer_expression "*(int *)(DAT_004144e8 + 8)" (* "*") (cast_expression "(int *)(DAT_004144e8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_004144e8 + 8)" (( "(") (binary_expression "DAT_004144e8 + 8" (identifier "DAT_004144e8") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x1f20")) () ")")))) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar4 != 0) {\n      if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf2c;\n            goto LAB_000dacd3;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dacd3:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf2c;\n        }\n      }\n      else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf2c:\n        FUN_001e7b10(param_4,iVar4);\n      }\n    }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf2c;\n            goto LAB_000dacd3;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dacd3:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf2c;\n        }\n      }\n      else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf2c:\n        FUN_001e7b10(param_4,iVar4);\n      }\n    }" ({ "{") (if_statement "if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf2c;\n            goto LAB_000dacd3;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dacd3:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf2c;\n        }\n      }\n      else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf2c:\n        FUN_001e7b10(param_4,iVar4);\n      }" (if "if") (parenthesized_expression "((*(byte *)(iVar4 + 0x2a) & 7) == 0)" (( "(") (binary_expression "(*(byte *)(iVar4 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)(iVar4 + 0x2a) & 7)" (( "(") (binary_expression "*(byte *)(iVar4 + 0x2a) & 7" (pointer_expression "*(byte *)(iVar4 + 0x2a)" (* "*") (cast_expression "(byte *)(iVar4 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x2a)" (( "(") (binary_expression "iVar4 + 0x2a" (identifier "iVar4") (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf2c;\n            goto LAB_000dacd3;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dacd3:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf2c;\n        }\n      }" ({ "{") (if_statement "if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf2c;\n            goto LAB_000dacd3;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dacd3:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf2c;\n        }" (if "if") (parenthesized_expression "((*(byte *)(iVar4 + 0x2b) & 0x20) == 0)" (( "(") (binary_expression "(*(byte *)(iVar4 + 0x2b) & 0x20) == 0" (parenthesized_expression "(*(byte *)(iVar4 + 0x2b) & 0x20)" (( "(") (binary_expression "*(byte *)(iVar4 + 0x2b) & 0x20" (pointer_expression "*(byte *)(iVar4 + 0x2b)" (* "*") (cast_expression "(byte *)(iVar4 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x2b)" (( "(") (binary_expression "iVar4 + 0x2b" (identifier "iVar4") (+ "+") (number_literal "0x2b")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf2c;\n            goto LAB_000dacd3;\n          }\n        }" ({ "{") (expression_statement "cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));" (assignment_expression "cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc))" (identifier "cVar2") (= "=") (call_expression "FUN_001e6ac0(*(int *)(iVar4 + 0xc))" (identifier "FUN_001e6ac0") (argument_list "(*(int *)(iVar4 + 0xc))" (( "(") (pointer_expression "*(int *)(iVar4 + 0xc)" (* "*") (cast_expression "(int *)(iVar4 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xc)" (( "(") (binary_expression "iVar4 + 0xc" (identifier "iVar4") (+ "+") (number_literal "0xc")) () ")")))) () ")")))) (; ";")) (if_statement "if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf2c;\n            goto LAB_000dacd3;\n          }" (if "if") (parenthesized_expression "(cVar2 == '\0')" (( "(") (binary_expression "cVar2 == '\0'" (identifier "cVar2") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf2c;\n            goto LAB_000dacd3;\n          }" ({ "{") (if_statement "if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf2c;" (if "if") (parenthesized_expression "((*(byte *)(iVar4 + 0x2a) & 7) != 0)" (( "(") (binary_expression "(*(byte *)(iVar4 + 0x2a) & 7) != 0" (parenthesized_expression "(*(byte *)(iVar4 + 0x2a) & 7)" (( "(") (binary_expression "*(byte *)(iVar4 + 0x2a) & 7" (pointer_expression "*(byte *)(iVar4 + 0x2a)" (* "*") (cast_expression "(byte *)(iVar4 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x2a)" (( "(") (binary_expression "iVar4 + 0x2a" (identifier "iVar4") (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000daf2c;" (goto "goto") (statement_identifier "LAB_000daf2c") (; ";"))) (goto_statement "goto LAB_000dacd3;" (goto "goto") (statement_identifier "LAB_000dacd3") (; ";")) (} "}"))) (} "}")) (else_clause "else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dacd3:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf2c;\n        }" (else "else") (if_statement "if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dacd3:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf2c;\n        }" (if "if") (parenthesized_expression "(*(int *)(iVar4 + 0xc) != 0)" (( "(") (binary_expression "*(int *)(iVar4 + 0xc) != 0" (pointer_expression "*(int *)(iVar4 + 0xc)" (* "*") (cast_expression "(int *)(iVar4 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xc)" (( "(") (binary_expression "iVar4 + 0xc" (identifier "iVar4") (+ "+") (number_literal "0xc")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000dacd3:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf2c;\n        }" ({ "{") (labeled_statement "LAB_000dacd3:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf2c;" (statement_identifier "LAB_000dacd3") (: ":") (if_statement "if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf2c;" (if "if") (parenthesized_expression "((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0)" (( "(") (binary_expression "(*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0" (parenthesized_expression "(*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1)" (( "(") (binary_expression "*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1" (pointer_expression "*(byte *)(*(int *)(iVar4 + 8) + 0x2c)" (* "*") (cast_expression "(byte *)(*(int *)(iVar4 + 8) + 0x2c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar4 + 8) + 0x2c)" (( "(") (binary_expression "*(int *)(iVar4 + 8) + 0x2c" (pointer_expression "*(int *)(iVar4 + 8)" (* "*") (cast_expression "(int *)(iVar4 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 8)" (( "(") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x2c")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000daf2c;" (goto "goto") (statement_identifier "LAB_000daf2c") (; ";")))) (} "}"))))) (} "}")) (else_clause "else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf2c:\n        FUN_001e7b10(param_4,iVar4);\n      }" (else "else") (if_statement "if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf2c:\n        FUN_001e7b10(param_4,iVar4);\n      }" (if "if") (parenthesized_expression "((*(byte *)(iVar4 + 0x2a) & 7) != 4)" (( "(") (binary_expression "(*(byte *)(iVar4 + 0x2a) & 7) != 4" (parenthesized_expression "(*(byte *)(iVar4 + 0x2a) & 7)" (( "(") (binary_expression "*(byte *)(iVar4 + 0x2a) & 7" (pointer_expression "*(byte *)(iVar4 + 0x2a)" (* "*") (cast_expression "(byte *)(iVar4 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x2a)" (( "(") (binary_expression "iVar4 + 0x2a" (identifier "iVar4") (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "4")) () ")")) (compound_statement "{\nLAB_000daf2c:\n        FUN_001e7b10(param_4,iVar4);\n      }" ({ "{") (labeled_statement "LAB_000daf2c:\n        FUN_001e7b10(param_4,iVar4);" (statement_identifier "LAB_000daf2c") (: ":") (expression_statement "FUN_001e7b10(param_4,iVar4);" (call_expression "FUN_001e7b10(param_4,iVar4)" (identifier "FUN_001e7b10") (argument_list "(param_4,iVar4)" (( "(") (identifier "param_4") (, ",") (identifier "iVar4") () ")"))) (; ";"))) (} "}"))))) (} "}"))) (if_statement "if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;" (if "if") (parenthesized_expression "(*(int *)(DAT_004144e8 + 8) == 0)" (( "(") (binary_expression "*(int *)(DAT_004144e8 + 8) == 0" (pointer_expression "*(int *)(DAT_004144e8 + 8)" (* "*") (cast_expression "(int *)(DAT_004144e8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_004144e8 + 8)" (( "(") (binary_expression "DAT_004144e8 + 8" (identifier "DAT_004144e8") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000dac36;" (goto "goto") (statement_identifier "LAB_000dac36") (; ";"))) (expression_statement "iVar4 = FUN_001e9100(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1538),0);" (assignment_expression "iVar4 = FUN_001e9100(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1538),0)" (identifier "iVar4") (= "=") (call_expression "FUN_001e9100(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1538),0)" (identifier "FUN_001e9100") (argument_list "(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1538),0)" (( "(") (identifier "param_4") (, ",") (pointer_expression "*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1538)" (* "*") (cast_expression "(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1538)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_004144e8 + 8) + 0x1538)" (( "(") (binary_expression "*(int *)(DAT_004144e8 + 8) + 0x1538" (pointer_expression "*(int *)(DAT_004144e8 + 8)" (* "*") (cast_expression "(int *)(DAT_004144e8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_004144e8 + 8)" (( "(") (binary_expression "DAT_004144e8 + 8" (identifier "DAT_004144e8") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x1538")) () ")")))) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar4 != 0) {\n      if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf0d;\n            goto LAB_000dad2d;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dad2d:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf0d;\n        }\n      }\n      else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf0d:\n        FUN_001e7b10(param_4,iVar4);\n      }\n    }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf0d;\n            goto LAB_000dad2d;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dad2d:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf0d;\n        }\n      }\n      else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf0d:\n        FUN_001e7b10(param_4,iVar4);\n      }\n    }" ({ "{") (if_statement "if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {\n        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf0d;\n            goto LAB_000dad2d;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dad2d:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf0d;\n        }\n      }\n      else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf0d:\n        FUN_001e7b10(param_4,iVar4);\n      }" (if "if") (parenthesized_expression "((*(byte *)(iVar4 + 0x2a) & 7) == 0)" (( "(") (binary_expression "(*(byte *)(iVar4 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)(iVar4 + 0x2a) & 7)" (( "(") (binary_expression "*(byte *)(iVar4 + 0x2a) & 7" (pointer_expression "*(byte *)(iVar4 + 0x2a)" (* "*") (cast_expression "(byte *)(iVar4 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x2a)" (( "(") (binary_expression "iVar4 + 0x2a" (identifier "iVar4") (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf0d;\n            goto LAB_000dad2d;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dad2d:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf0d;\n        }\n      }" ({ "{") (if_statement "if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf0d;\n            goto LAB_000dad2d;\n          }\n        }\n        else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dad2d:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf0d;\n        }" (if "if") (parenthesized_expression "((*(byte *)(iVar4 + 0x2b) & 0x20) == 0)" (( "(") (binary_expression "(*(byte *)(iVar4 + 0x2b) & 0x20) == 0" (parenthesized_expression "(*(byte *)(iVar4 + 0x2b) & 0x20)" (( "(") (binary_expression "*(byte *)(iVar4 + 0x2b) & 0x20" (pointer_expression "*(byte *)(iVar4 + 0x2b)" (* "*") (cast_expression "(byte *)(iVar4 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x2b)" (( "(") (binary_expression "iVar4 + 0x2b" (identifier "iVar4") (+ "+") (number_literal "0x2b")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));\n          if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf0d;\n            goto LAB_000dad2d;\n          }\n        }" ({ "{") (expression_statement "cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));" (assignment_expression "cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc))" (identifier "cVar2") (= "=") (call_expression "FUN_001e6ac0(*(int *)(iVar4 + 0xc))" (identifier "FUN_001e6ac0") (argument_list "(*(int *)(iVar4 + 0xc))" (( "(") (pointer_expression "*(int *)(iVar4 + 0xc)" (* "*") (cast_expression "(int *)(iVar4 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xc)" (( "(") (binary_expression "iVar4 + 0xc" (identifier "iVar4") (+ "+") (number_literal "0xc")) () ")")))) () ")")))) (; ";")) (if_statement "if (cVar2 == '\0') {\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf0d;\n            goto LAB_000dad2d;\n          }" (if "if") (parenthesized_expression "(cVar2 == '\0')" (( "(") (binary_expression "cVar2 == '\0'" (identifier "cVar2") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf0d;\n            goto LAB_000dad2d;\n          }" ({ "{") (if_statement "if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf0d;" (if "if") (parenthesized_expression "((*(byte *)(iVar4 + 0x2a) & 7) != 0)" (( "(") (binary_expression "(*(byte *)(iVar4 + 0x2a) & 7) != 0" (parenthesized_expression "(*(byte *)(iVar4 + 0x2a) & 7)" (( "(") (binary_expression "*(byte *)(iVar4 + 0x2a) & 7" (pointer_expression "*(byte *)(iVar4 + 0x2a)" (* "*") (cast_expression "(byte *)(iVar4 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x2a)" (( "(") (binary_expression "iVar4 + 0x2a" (identifier "iVar4") (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000daf0d;" (goto "goto") (statement_identifier "LAB_000daf0d") (; ";"))) (goto_statement "goto LAB_000dad2d;" (goto "goto") (statement_identifier "LAB_000dad2d") (; ";")) (} "}"))) (} "}")) (else_clause "else if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dad2d:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf0d;\n        }" (else "else") (if_statement "if (*(int *)(iVar4 + 0xc) != 0) {\nLAB_000dad2d:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf0d;\n        }" (if "if") (parenthesized_expression "(*(int *)(iVar4 + 0xc) != 0)" (( "(") (binary_expression "*(int *)(iVar4 + 0xc) != 0" (pointer_expression "*(int *)(iVar4 + 0xc)" (* "*") (cast_expression "(int *)(iVar4 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xc)" (( "(") (binary_expression "iVar4 + 0xc" (identifier "iVar4") (+ "+") (number_literal "0xc")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000dad2d:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf0d;\n        }" ({ "{") (labeled_statement "LAB_000dad2d:\n          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf0d;" (statement_identifier "LAB_000dad2d") (: ":") (if_statement "if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf0d;" (if "if") (parenthesized_expression "((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0)" (( "(") (binary_expression "(*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0" (parenthesized_expression "(*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1)" (( "(") (binary_expression "*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1" (pointer_expression "*(byte *)(*(int *)(iVar4 + 8) + 0x2c)" (* "*") (cast_expression "(byte *)(*(int *)(iVar4 + 8) + 0x2c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar4 + 8) + 0x2c)" (( "(") (binary_expression "*(int *)(iVar4 + 8) + 0x2c" (pointer_expression "*(int *)(iVar4 + 8)" (* "*") (cast_expression "(int *)(iVar4 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 8)" (( "(") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x2c")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000daf0d;" (goto "goto") (statement_identifier "LAB_000daf0d") (; ";")))) (} "}"))))) (} "}")) (else_clause "else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf0d:\n        FUN_001e7b10(param_4,iVar4);\n      }" (else "else") (if_statement "if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {\nLAB_000daf0d:\n        FUN_001e7b10(param_4,iVar4);\n      }" (if "if") (parenthesized_expression "((*(byte *)(iVar4 + 0x2a) & 7) != 4)" (( "(") (binary_expression "(*(byte *)(iVar4 + 0x2a) & 7) != 4" (parenthesized_expression "(*(byte *)(iVar4 + 0x2a) & 7)" (( "(") (binary_expression "*(byte *)(iVar4 + 0x2a) & 7" (pointer_expression "*(byte *)(iVar4 + 0x2a)" (* "*") (cast_expression "(byte *)(iVar4 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x2a)" (( "(") (binary_expression "iVar4 + 0x2a" (identifier "iVar4") (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "4")) () ")")) (compound_statement "{\nLAB_000daf0d:\n        FUN_001e7b10(param_4,iVar4);\n      }" ({ "{") (labeled_statement "LAB_000daf0d:\n        FUN_001e7b10(param_4,iVar4);" (statement_identifier "LAB_000daf0d") (: ":") (expression_statement "FUN_001e7b10(param_4,iVar4);" (call_expression "FUN_001e7b10(param_4,iVar4)" (identifier "FUN_001e7b10") (argument_list "(param_4,iVar4)" (( "(") (identifier "param_4") (, ",") (identifier "iVar4") () ")"))) (; ";"))) (} "}"))))) (} "}"))) (expression_statement "FUN_001e95f0(param_4,param_5);" (call_expression "FUN_001e95f0(param_4,param_5)" (identifier "FUN_001e95f0") (argument_list "(param_4,param_5)" (( "(") (identifier "param_4") (, ",") (identifier "param_5") () ")"))) (; ";")) (if_statement "if (*(int *)(param_4 + 0x158) == 0) {\n                    \n      FUN_000da200("../../gold/gold.cc",0x20b,"queue_middle_tasks",&__DT_PLTGOT);\n    }" (if "if") (parenthesized_expression "(*(int *)(param_4 + 0x158) == 0)" (( "(") (binary_expression "*(int *)(param_4 + 0x158) == 0" (pointer_expression "*(int *)(param_4 + 0x158)" (* "*") (cast_expression "(int *)(param_4 + 0x158)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x158)" (( "(") (binary_expression "param_4 + 0x158" (identifier "param_4") (+ "+") (number_literal "0x158")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n      FUN_000da200("../../gold/gold.cc",0x20b,"queue_middle_tasks",&__DT_PLTGOT);\n    }" ({ "{") (expression_statement "FUN_000da200("../../gold/gold.cc",0x20b,"queue_middle_tasks",&__DT_PLTGOT);" (call_expression "FUN_000da200("../../gold/gold.cc",0x20b,"queue_middle_tasks",&__DT_PLTGOT)" (identifier "FUN_000da200") (argument_list "("../../gold/gold.cc",0x20b,"queue_middle_tasks",&__DT_PLTGOT)" (( "(") (string_literal ""../../gold/gold.cc"" (" """) (string_content "../../gold/gold.cc") (" """)) (, ",") (number_literal "0x20b") (, ",") (string_literal ""queue_middle_tasks"" (" """) (string_content "queue_middle_tasks") (" """)) (, ",") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT")) () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_00229ab0(*(int *)(param_4 + 0x158));" (call_expression "FUN_00229ab0(*(int *)(param_4 + 0x158))" (identifier "FUN_00229ab0") (argument_list "(*(int *)(param_4 + 0x158))" (( "(") (pointer_expression "*(int *)(param_4 + 0x158)" (* "*") (cast_expression "(int *)(param_4 + 0x158)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x158)" (( "(") (binary_expression "param_4 + 0x158" (identifier "param_4") (+ "+") (number_literal "0x158")) () ")")))) () ")"))) (; ";")) (expression_statement "iVar4 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar4 = *(int *)(DAT_004144e8 + 8)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(DAT_004144e8 + 8)" (* "*") (cast_expression "(int *)(DAT_004144e8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_004144e8 + 8)" (( "(") (binary_expression "DAT_004144e8 + 8" (identifier "DAT_004144e8") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar4 == 0) goto LAB_000dac36;" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000dac36;" (goto "goto") (statement_identifier "LAB_000dac36") (; ";"))) (} "}"))) (if_statement "if (*(int *)(iVar4 + 0x5934) == 0) {\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n  }\n  else {\n    FUN_000ded60(*(undefined4 *)(param_4 + 0x15c),param_3,param_4);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar4 + 0x5934) == 0)" (( "(") (binary_expression "*(int *)(iVar4 + 0x5934) == 0" (pointer_expression "*(int *)(iVar4 + 0x5934)" (* "*") (cast_expression "(int *)(iVar4 + 0x5934)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x5934)" (( "(") (binary_expression "iVar4 + 0x5934" (identifier "iVar4") (+ "+") (number_literal "0x5934")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n  }" ({ "{") (expression_statement "iVar4 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar4 = *(int *)(DAT_004144e8 + 8)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(DAT_004144e8 + 8)" (* "*") (cast_expression "(int *)(DAT_004144e8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_004144e8 + 8)" (( "(") (binary_expression "DAT_004144e8 + 8" (identifier "DAT_004144e8") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    FUN_000ded60(*(undefined4 *)(param_4 + 0x15c),param_3,param_4);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }" (else "else") (compound_statement "{\n    FUN_000ded60(*(undefined4 *)(param_4 + 0x15c),param_3,param_4);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }" ({ "{") (expression_statement "FUN_000ded60(*(undefined4 *)(param_4 + 0x15c),param_3,param_4);" (call_expression "FUN_000ded60(*(undefined4 *)(param_4 + 0x15c),param_3,param_4)" (identifier "FUN_000ded60") (argument_list "(*(undefined4 *)(param_4 + 0x15c),param_3,param_4)" (( "(") (pointer_expression "*(undefined4 *)(param_4 + 0x15c)" (* "*") (cast_expression "(undefined4 *)(param_4 + 0x15c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x15c)" (( "(") (binary_expression "param_4 + 0x15c" (identifier "param_4") (+ "+") (number_literal "0x15c")) () ")")))) (, ",") (identifier "param_3") (, ",") (identifier "param_4") () ")"))) (; ";")) (expression_statement "iVar4 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar4 = *(int *)(DAT_004144e8 + 8)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(DAT_004144e8 + 8)" (* "*") (cast_expression "(int *)(DAT_004144e8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_004144e8 + 8)" (( "(") (binary_expression "DAT_004144e8 + 8" (identifier "DAT_004144e8") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar4 == 0) goto LAB_000dac36;" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000dac36;" (goto "goto") (statement_identifier "LAB_000dac36") (; ";"))) (} "}")))) (if_statement "if ((((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)) &&\n      (*(char *)(param_5 + 0x1ce) == '\0')) ||\n     (piVar14 = (int *)*param_3, piVar14 == (int *)param_3[1])) {\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n  }\n  else {\n    do {\n      piVar16 = (int *)*piVar14;\n      piVar12 = piVar16;\n      if (piVar16[7] != 0) {\n        FUN_000d2820(piVar16[7] + 0x1c,param_2);\n        piVar12 = (int *)*piVar14;\n      }\n                    \n      (**(code **)(*piVar12 + 0x24))(piVar12,param_4,param_5,0);\n      if (piVar16[7] != 0) {\n        FUN_000d3850(piVar16[7] + 0x1c,param_2);\n      }\n      piVar14 = piVar14 + 1;\n    } while ((int *)param_3[1] != piVar14);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }" (if "if") (parenthesized_expression "((((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)) &&\n      (*(char *)(param_5 + 0x1ce) == '\0')) ||\n     (piVar14 = (int *)*param_3, piVar14 == (int *)param_3[1]))" (( "(") (binary_expression "(((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)) &&\n      (*(char *)(param_5 + 0x1ce) == '\0')) ||\n     (piVar14 = (int *)*param_3, piVar14 == (int *)param_3[1])" (parenthesized_expression "(((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)) &&\n      (*(char *)(param_5 + 0x1ce) == '\0'))" (( "(") (binary_expression "((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)) &&\n      (*(char *)(param_5 + 0x1ce) == '\0')" (parenthesized_expression "((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0))" (( "(") (binary_expression "(*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)" (parenthesized_expression "(*(char *)(iVar4 + 0x18b1) == '\0')" (( "(") (binary_expression "*(char *)(iVar4 + 0x18b1) == '\0'" (pointer_expression "*(char *)(iVar4 + 0x18b1)" (* "*") (cast_expression "(char *)(iVar4 + 0x18b1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x18b1)" (( "(") (binary_expression "iVar4 + 0x18b1" (identifier "iVar4") (+ "+") (number_literal "0x18b1")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(iVar4 + 0x5934) == 0)" (( "(") (binary_expression "*(int *)(iVar4 + 0x5934) == 0" (pointer_expression "*(int *)(iVar4 + 0x5934)" (* "*") (cast_expression "(int *)(iVar4 + 0x5934)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x5934)" (( "(") (binary_expression "iVar4 + 0x5934" (identifier "iVar4") (+ "+") (number_literal "0x5934")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(param_5 + 0x1ce) == '\0')" (( "(") (binary_expression "*(char *)(param_5 + 0x1ce) == '\0'" (pointer_expression "*(char *)(param_5 + 0x1ce)" (* "*") (cast_expression "(char *)(param_5 + 0x1ce)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0x1ce)" (( "(") (binary_expression "param_5 + 0x1ce" (identifier "param_5") (+ "+") (number_literal "0x1ce")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(piVar14 = (int *)*param_3, piVar14 == (int *)param_3[1])" (( "(") (comma_expression "piVar14 = (int *)*param_3, piVar14 == (int *)param_3[1]" (assignment_expression "piVar14 = (int *)*param_3" (identifier "piVar14") (= "=") (cast_expression "(int *)*param_3" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_3" (* "*") (identifier "param_3")))) (, ",") (binary_expression "piVar14 == (int *)param_3[1]" (identifier "piVar14") (== "==") (cast_expression "(int *)param_3[1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))))) () ")"))) () ")")) (compound_statement "{\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n  }" ({ "{") (expression_statement "iVar4 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar4 = *(int *)(DAT_004144e8 + 8)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(DAT_004144e8 + 8)" (* "*") (cast_expression "(int *)(DAT_004144e8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_004144e8 + 8)" (( "(") (binary_expression "DAT_004144e8 + 8" (identifier "DAT_004144e8") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    do {\n      piVar16 = (int *)*piVar14;\n      piVar12 = piVar16;\n      if (piVar16[7] != 0) {\n        FUN_000d2820(piVar16[7] + 0x1c,param_2);\n        piVar12 = (int *)*piVar14;\n      }\n                    \n      (**(code **)(*piVar12 + 0x24))(piVar12,param_4,param_5,0);\n      if (piVar16[7] != 0) {\n        FUN_000d3850(piVar16[7] + 0x1c,param_2);\n      }\n      piVar14 = piVar14 + 1;\n    } while ((int *)param_3[1] != piVar14);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }" (else "else") (compound_statement "{\n    do {\n      piVar16 = (int *)*piVar14;\n      piVar12 = piVar16;\n      if (piVar16[7] != 0) {\n        FUN_000d2820(piVar16[7] + 0x1c,param_2);\n        piVar12 = (int *)*piVar14;\n      }\n                    \n      (**(code **)(*piVar12 + 0x24))(piVar12,param_4,param_5,0);\n      if (piVar16[7] != 0) {\n        FUN_000d3850(piVar16[7] + 0x1c,param_2);\n      }\n      piVar14 = piVar14 + 1;\n    } while ((int *)param_3[1] != piVar14);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }" ({ "{") (do_statement "do {\n      piVar16 = (int *)*piVar14;\n      piVar12 = piVar16;\n      if (piVar16[7] != 0) {\n        FUN_000d2820(piVar16[7] + 0x1c,param_2);\n        piVar12 = (int *)*piVar14;\n      }\n                    \n      (**(code **)(*piVar12 + 0x24))(piVar12,param_4,param_5,0);\n      if (piVar16[7] != 0) {\n        FUN_000d3850(piVar16[7] + 0x1c,param_2);\n      }\n      piVar14 = piVar14 + 1;\n    } while ((int *)param_3[1] != piVar14);" (do "do") (compound_statement "{\n      piVar16 = (int *)*piVar14;\n      piVar12 = piVar16;\n      if (piVar16[7] != 0) {\n        FUN_000d2820(piVar16[7] + 0x1c,param_2);\n        piVar12 = (int *)*piVar14;\n      }\n                    \n      (**(code **)(*piVar12 + 0x24))(piVar12,param_4,param_5,0);\n      if (piVar16[7] != 0) {\n        FUN_000d3850(piVar16[7] + 0x1c,param_2);\n      }\n      piVar14 = piVar14 + 1;\n    }" ({ "{") (expression_statement "piVar16 = (int *)*piVar14;" (assignment_expression "piVar16 = (int *)*piVar14" (identifier "piVar16") (= "=") (cast_expression "(int *)*piVar14" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar14" (* "*") (identifier "piVar14")))) (; ";")) (expression_statement "piVar12 = piVar16;" (assignment_expression "piVar12 = piVar16" (identifier "piVar12") (= "=") (identifier "piVar16")) (; ";")) (if_statement "if (piVar16[7] != 0) {\n        FUN_000d2820(piVar16[7] + 0x1c,param_2);\n        piVar12 = (int *)*piVar14;\n      }" (if "if") (parenthesized_expression "(piVar16[7] != 0)" (( "(") (binary_expression "piVar16[7] != 0" (subscript_expression "piVar16[7]" (identifier "piVar16") ([ "[") (number_literal "7") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_000d2820(piVar16[7] + 0x1c,param_2);\n        piVar12 = (int *)*piVar14;\n      }" ({ "{") (expression_statement "FUN_000d2820(piVar16[7] + 0x1c,param_2);" (call_expression "FUN_000d2820(piVar16[7] + 0x1c,param_2)" (identifier "FUN_000d2820") (argument_list "(piVar16[7] + 0x1c,param_2)" (( "(") (binary_expression "piVar16[7] + 0x1c" (subscript_expression "piVar16[7]" (identifier "piVar16") ([ "[") (number_literal "7") (] "]")) (+ "+") (number_literal "0x1c")) (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "piVar12 = (int *)*piVar14;" (assignment_expression "piVar12 = (int *)*piVar14" (identifier "piVar12") (= "=") (cast_expression "(int *)*piVar14" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar14" (* "*") (identifier "piVar14")))) (; ";")) (} "}"))) (expression_statement "(**(code **)(*piVar12 + 0x24))(piVar12,param_4,param_5,0);" (call_expression "(**(code **)(*piVar12 + 0x24))(piVar12,param_4,param_5,0)" (parenthesized_expression "(**(code **)(*piVar12 + 0x24))" (( "(") (pointer_expression "**(code **)(*piVar12 + 0x24)" (* "*") (pointer_expression "*(code **)(*piVar12 + 0x24)" (* "*") (cast_expression "(code **)(*piVar12 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar12 + 0x24)" (( "(") (binary_expression "*piVar12 + 0x24" (pointer_expression "*piVar12" (* "*") (identifier "piVar12")) (+ "+") (number_literal "0x24")) () ")"))))) () ")")) (argument_list "(piVar12,param_4,param_5,0)" (( "(") (identifier "piVar12") (, ",") (identifier "param_4") (, ",") (identifier "param_5") (, ",") (number_literal "0") () ")"))) (; ";")) (if_statement "if (piVar16[7] != 0) {\n        FUN_000d3850(piVar16[7] + 0x1c,param_2);\n      }" (if "if") (parenthesized_expression "(piVar16[7] != 0)" (( "(") (binary_expression "piVar16[7] != 0" (subscript_expression "piVar16[7]" (identifier "piVar16") ([ "[") (number_literal "7") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_000d3850(piVar16[7] + 0x1c,param_2);\n      }" ({ "{") (expression_statement "FUN_000d3850(piVar16[7] + 0x1c,param_2);" (call_expression "FUN_000d3850(piVar16[7] + 0x1c,param_2)" (identifier "FUN_000d3850") (argument_list "(piVar16[7] + 0x1c,param_2)" (( "(") (binary_expression "piVar16[7] + 0x1c" (subscript_expression "piVar16[7]" (identifier "piVar16") ([ "[") (number_literal "7") (] "]")) (+ "+") (number_literal "0x1c")) (, ",") (identifier "param_2") () ")"))) (; ";")) (} "}"))) (expression_statement "piVar14 = piVar14 + 1;" (assignment_expression "piVar14 = piVar14 + 1" (identifier "piVar14") (= "=") (binary_expression "piVar14 + 1" (identifier "piVar14") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int *)param_3[1] != piVar14)" (( "(") (binary_expression "(int *)param_3[1] != piVar14" (cast_expression "(int *)param_3[1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) (!= "!=") (identifier "piVar14")) () ")")) (; ";")) (expression_statement "iVar4 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar4 = *(int *)(DAT_004144e8 + 8)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(DAT_004144e8 + 8)" (* "*") (cast_expression "(int *)(DAT_004144e8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_004144e8 + 8)" (( "(") (binary_expression "DAT_004144e8 + 8" (identifier "DAT_004144e8") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar4 == 0) goto LAB_000dac36;" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000dac36;" (goto "goto") (statement_identifier "LAB_000dac36") (; ";"))) (} "}")))) (if_statement "if (*(int *)(iVar4 + 0x593c) != 0) {\n    FUN_001a6980(*(int *)(iVar4 + 0x593c));\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar4 + 0x593c) != 0)" (( "(") (binary_expression "*(int *)(iVar4 + 0x593c) != 0" (pointer_expression "*(int *)(iVar4 + 0x593c)" (* "*") (cast_expression "(int *)(iVar4 + 0x593c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x593c)" (( "(") (binary_expression "iVar4 + 0x593c" (identifier "iVar4") (+ "+") (number_literal "0x593c")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_001a6980(*(int *)(iVar4 + 0x593c));\n  }" ({ "{") (expression_statement "FUN_001a6980(*(int *)(iVar4 + 0x593c));" (call_expression "FUN_001a6980(*(int *)(iVar4 + 0x593c))" (identifier "FUN_001a6980") (argument_list "(*(int *)(iVar4 + 0x593c))" (( "(") (pointer_expression "*(int *)(iVar4 + 0x593c)" (* "*") (cast_expression "(int *)(iVar4 + 0x593c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x593c)" (( "(") (binary_expression "iVar4 + 0x593c" (identifier "iVar4") (+ "+") (number_literal "0x593c")) () ")")))) () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_00107c00(param_5);" (call_expression "FUN_00107c00(param_5)" (identifier "FUN_00107c00") (argument_list "(param_5)" (( "(") (identifier "param_5") () ")"))) (; ";")) (expression_statement "iVar4 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar4 = *(int *)(DAT_004144e8 + 8)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(DAT_004144e8 + 8)" (* "*") (cast_expression "(int *)(DAT_004144e8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_004144e8 + 8)" (( "(") (binary_expression "DAT_004144e8 + 8" (identifier "DAT_004144e8") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar4 == 0) goto LAB_000dac36;" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000dac36;" (goto "goto") (statement_identifier "LAB_000dac36") (; ";"))) (if_statement "if (((*(int *)(iVar4 + 0x593c) != 0) && (*(char *)(param_5 + 0x1cd) != '\0')) &&\n     ((*(int *)(iVar4 + 0x36d8) == 0 &&\n      (*(undefined4 **)(param_5 + 0x130) != *(undefined4 **)(param_5 + 0x134))))) {\n    puVar6 = *(undefined4 **)(param_5 + 0x130);\n    do {\n      puVar7 = puVar6 + 1;\n      FUN_0015d7d0(*puVar6,param_5 + 0x1ec);\n      puVar6 = puVar7;\n    } while (*(undefined4 **)(param_5 + 0x134) != puVar7);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }" (if "if") (parenthesized_expression "(((*(int *)(iVar4 + 0x593c) != 0) && (*(char *)(param_5 + 0x1cd) != '\0')) &&\n     ((*(int *)(iVar4 + 0x36d8) == 0 &&\n      (*(undefined4 **)(param_5 + 0x130) != *(undefined4 **)(param_5 + 0x134)))))" (( "(") (binary_expression "((*(int *)(iVar4 + 0x593c) != 0) && (*(char *)(param_5 + 0x1cd) != '\0')) &&\n     ((*(int *)(iVar4 + 0x36d8) == 0 &&\n      (*(undefined4 **)(param_5 + 0x130) != *(undefined4 **)(param_5 + 0x134))))" (parenthesized_expression "((*(int *)(iVar4 + 0x593c) != 0) && (*(char *)(param_5 + 0x1cd) != '\0'))" (( "(") (binary_expression "(*(int *)(iVar4 + 0x593c) != 0) && (*(char *)(param_5 + 0x1cd) != '\0')" (parenthesized_expression "(*(int *)(iVar4 + 0x593c) != 0)" (( "(") (binary_expression "*(int *)(iVar4 + 0x593c) != 0" (pointer_expression "*(int *)(iVar4 + 0x593c)" (* "*") (cast_expression "(int *)(iVar4 + 0x593c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x593c)" (( "(") (binary_expression "iVar4 + 0x593c" (identifier "iVar4") (+ "+") (number_literal "0x593c")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(param_5 + 0x1cd) != '\0')" (( "(") (binary_expression "*(char *)(param_5 + 0x1cd) != '\0'" (pointer_expression "*(char *)(param_5 + 0x1cd)" (* "*") (cast_expression "(char *)(param_5 + 0x1cd)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0x1cd)" (( "(") (binary_expression "param_5 + 0x1cd" (identifier "param_5") (+ "+") (number_literal "0x1cd")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((*(int *)(iVar4 + 0x36d8) == 0 &&\n      (*(undefined4 **)(param_5 + 0x130) != *(undefined4 **)(param_5 + 0x134))))" (( "(") (parenthesized_expression "(*(int *)(iVar4 + 0x36d8) == 0 &&\n      (*(undefined4 **)(param_5 + 0x130) != *(undefined4 **)(param_5 + 0x134)))" (( "(") (binary_expression "*(int *)(iVar4 + 0x36d8) == 0 &&\n      (*(undefined4 **)(param_5 + 0x130) != *(undefined4 **)(param_5 + 0x134))" (binary_expression "*(int *)(iVar4 + 0x36d8) == 0" (pointer_expression "*(int *)(iVar4 + 0x36d8)" (* "*") (cast_expression "(int *)(iVar4 + 0x36d8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x36d8)" (( "(") (binary_expression "iVar4 + 0x36d8" (identifier "iVar4") (+ "+") (number_literal "0x36d8")) () ")")))) (== "==") (number_literal "0")) (&& "&&") (parenthesized_expression "(*(undefined4 **)(param_5 + 0x130) != *(undefined4 **)(param_5 + 0x134))" (( "(") (binary_expression "*(undefined4 **)(param_5 + 0x130) != *(undefined4 **)(param_5 + 0x134)" (pointer_expression "*(undefined4 **)(param_5 + 0x130)" (* "*") (cast_expression "(undefined4 **)(param_5 + 0x130)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_5 + 0x130)" (( "(") (binary_expression "param_5 + 0x130" (identifier "param_5") (+ "+") (number_literal "0x130")) () ")")))) (!= "!=") (pointer_expression "*(undefined4 **)(param_5 + 0x134)" (* "*") (cast_expression "(undefined4 **)(param_5 + 0x134)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_5 + 0x134)" (( "(") (binary_expression "param_5 + 0x134" (identifier "param_5") (+ "+") (number_literal "0x134")) () ")"))))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n    puVar6 = *(undefined4 **)(param_5 + 0x130);\n    do {\n      puVar7 = puVar6 + 1;\n      FUN_0015d7d0(*puVar6,param_5 + 0x1ec);\n      puVar6 = puVar7;\n    } while (*(undefined4 **)(param_5 + 0x134) != puVar7);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }" ({ "{") (expression_statement "puVar6 = *(undefined4 **)(param_5 + 0x130);" (assignment_expression "puVar6 = *(undefined4 **)(param_5 + 0x130)" (identifier "puVar6") (= "=") (pointer_expression "*(undefined4 **)(param_5 + 0x130)" (* "*") (cast_expression "(undefined4 **)(param_5 + 0x130)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_5 + 0x130)" (( "(") (binary_expression "param_5 + 0x130" (identifier "param_5") (+ "+") (number_literal "0x130")) () ")"))))) (; ";")) (do_statement "do {\n      puVar7 = puVar6 + 1;\n      FUN_0015d7d0(*puVar6,param_5 + 0x1ec);\n      puVar6 = puVar7;\n    } while (*(undefined4 **)(param_5 + 0x134) != puVar7);" (do "do") (compound_statement "{\n      puVar7 = puVar6 + 1;\n      FUN_0015d7d0(*puVar6,param_5 + 0x1ec);\n      puVar6 = puVar7;\n    }" ({ "{") (expression_statement "puVar7 = puVar6 + 1;" (assignment_expression "puVar7 = puVar6 + 1" (identifier "puVar7") (= "=") (binary_expression "puVar6 + 1" (identifier "puVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "FUN_0015d7d0(*puVar6,param_5 + 0x1ec);" (call_expression "FUN_0015d7d0(*puVar6,param_5 + 0x1ec)" (identifier "FUN_0015d7d0") (argument_list "(*puVar6,param_5 + 0x1ec)" (( "(") (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) (, ",") (binary_expression "param_5 + 0x1ec" (identifier "param_5") (+ "+") (number_literal "0x1ec")) () ")"))) (; ";")) (expression_statement "puVar6 = puVar7;" (assignment_expression "puVar6 = puVar7" (identifier "puVar6") (= "=") (identifier "puVar7")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(undefined4 **)(param_5 + 0x134) != puVar7)" (( "(") (binary_expression "*(undefined4 **)(param_5 + 0x134) != puVar7" (pointer_expression "*(undefined4 **)(param_5 + 0x134)" (* "*") (cast_expression "(undefined4 **)(param_5 + 0x134)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_5 + 0x134)" (( "(") (binary_expression "param_5 + 0x134" (identifier "param_5") (+ "+") (number_literal "0x134")) () ")")))) (!= "!=") (identifier "puVar7")) () ")")) (; ";")) (expression_statement "iVar4 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar4 = *(int *)(DAT_004144e8 + 8)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(DAT_004144e8 + 8)" (* "*") (cast_expression "(int *)(DAT_004144e8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_004144e8 + 8)" (( "(") (binary_expression "DAT_004144e8 + 8" (identifier "DAT_004144e8") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar4 == 0) goto LAB_000dac36;" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000dac36;" (goto "goto") (statement_identifier "LAB_000dac36") (; ";"))) (} "}"))) (if_statement "if ((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)) {\n    iVar4 = *(int *)(param_1 + 0x3e70);\n  }\n  else {\n    piVar14 = (int *)*param_3;\n    if (piVar14 != (int *)param_3[1]) {\n      do {\n        piVar12 = (int *)*piVar14;\n        piVar16 = (int *)piVar12[0x14];\n        iVar4 = *piVar16;\n        if (iVar4 != piVar16[1]) {\n          while( true ) {\n            iVar15 = *piVar12;\n            uVar11 = *(uint *)(iVar4 + 4);\n            if (*(code **)(iVar15 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4);\n            }\n            else {\n              uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);\n              uVar11 = *(uint *)(iVar4 + 4);\n              piVar12 = (int *)*piVar14;\n              iVar15 = *piVar12;\n            }\n            *(undefined4 *)(iVar4 + 0x14) = uVar3;\n            uVar1 = (**(code **)(iVar15 + 0x88))(piVar12,uVar11);\n            *(undefined1 *)(iVar4 + 0x18) = uVar1;\n            if (piVar16[1] == iVar4 + 0x1c) break;\n            piVar12 = (int *)*piVar14;\n            iVar4 = iVar4 + 0x1c;\n          }\n        }\n        piVar14 = piVar14 + 1;\n      } while ((int *)param_3[1] != piVar14);\n    }\n    iVar4 = *(int *)(param_1 + 0x3e70);\n  }" (if "if") (parenthesized_expression "((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0))" (( "(") (binary_expression "(*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)" (parenthesized_expression "(*(char *)(iVar4 + 0x18b1) == '\0')" (( "(") (binary_expression "*(char *)(iVar4 + 0x18b1) == '\0'" (pointer_expression "*(char *)(iVar4 + 0x18b1)" (* "*") (cast_expression "(char *)(iVar4 + 0x18b1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x18b1)" (( "(") (binary_expression "iVar4 + 0x18b1" (identifier "iVar4") (+ "+") (number_literal "0x18b1")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(iVar4 + 0x5934) == 0)" (( "(") (binary_expression "*(int *)(iVar4 + 0x5934) == 0" (pointer_expression "*(int *)(iVar4 + 0x5934)" (* "*") (cast_expression "(int *)(iVar4 + 0x5934)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x5934)" (( "(") (binary_expression "iVar4 + 0x5934" (identifier "iVar4") (+ "+") (number_literal "0x5934")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    iVar4 = *(int *)(param_1 + 0x3e70);\n  }" ({ "{") (expression_statement "iVar4 = *(int *)(param_1 + 0x3e70);" (assignment_expression "iVar4 = *(int *)(param_1 + 0x3e70)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(param_1 + 0x3e70)" (* "*") (cast_expression "(int *)(param_1 + 0x3e70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x3e70)" (( "(") (binary_expression "param_1 + 0x3e70" (identifier "param_1") (+ "+") (number_literal "0x3e70")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    piVar14 = (int *)*param_3;\n    if (piVar14 != (int *)param_3[1]) {\n      do {\n        piVar12 = (int *)*piVar14;\n        piVar16 = (int *)piVar12[0x14];\n        iVar4 = *piVar16;\n        if (iVar4 != piVar16[1]) {\n          while( true ) {\n            iVar15 = *piVar12;\n            uVar11 = *(uint *)(iVar4 + 4);\n            if (*(code **)(iVar15 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4);\n            }\n            else {\n              uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);\n              uVar11 = *(uint *)(iVar4 + 4);\n              piVar12 = (int *)*piVar14;\n              iVar15 = *piVar12;\n            }\n            *(undefined4 *)(iVar4 + 0x14) = uVar3;\n            uVar1 = (**(code **)(iVar15 + 0x88))(piVar12,uVar11);\n            *(undefined1 *)(iVar4 + 0x18) = uVar1;\n            if (piVar16[1] == iVar4 + 0x1c) break;\n            piVar12 = (int *)*piVar14;\n            iVar4 = iVar4 + 0x1c;\n          }\n        }\n        piVar14 = piVar14 + 1;\n      } while ((int *)param_3[1] != piVar14);\n    }\n    iVar4 = *(int *)(param_1 + 0x3e70);\n  }" (else "else") (compound_statement "{\n    piVar14 = (int *)*param_3;\n    if (piVar14 != (int *)param_3[1]) {\n      do {\n        piVar12 = (int *)*piVar14;\n        piVar16 = (int *)piVar12[0x14];\n        iVar4 = *piVar16;\n        if (iVar4 != piVar16[1]) {\n          while( true ) {\n            iVar15 = *piVar12;\n            uVar11 = *(uint *)(iVar4 + 4);\n            if (*(code **)(iVar15 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4);\n            }\n            else {\n              uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);\n              uVar11 = *(uint *)(iVar4 + 4);\n              piVar12 = (int *)*piVar14;\n              iVar15 = *piVar12;\n            }\n            *(undefined4 *)(iVar4 + 0x14) = uVar3;\n            uVar1 = (**(code **)(iVar15 + 0x88))(piVar12,uVar11);\n            *(undefined1 *)(iVar4 + 0x18) = uVar1;\n            if (piVar16[1] == iVar4 + 0x1c) break;\n            piVar12 = (int *)*piVar14;\n            iVar4 = iVar4 + 0x1c;\n          }\n        }\n        piVar14 = piVar14 + 1;\n      } while ((int *)param_3[1] != piVar14);\n    }\n    iVar4 = *(int *)(param_1 + 0x3e70);\n  }" ({ "{") (expression_statement "piVar14 = (int *)*param_3;" (assignment_expression "piVar14 = (int *)*param_3" (identifier "piVar14") (= "=") (cast_expression "(int *)*param_3" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_3" (* "*") (identifier "param_3")))) (; ";")) (if_statement "if (piVar14 != (int *)param_3[1]) {\n      do {\n        piVar12 = (int *)*piVar14;\n        piVar16 = (int *)piVar12[0x14];\n        iVar4 = *piVar16;\n        if (iVar4 != piVar16[1]) {\n          while( true ) {\n            iVar15 = *piVar12;\n            uVar11 = *(uint *)(iVar4 + 4);\n            if (*(code **)(iVar15 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4);\n            }\n            else {\n              uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);\n              uVar11 = *(uint *)(iVar4 + 4);\n              piVar12 = (int *)*piVar14;\n              iVar15 = *piVar12;\n            }\n            *(undefined4 *)(iVar4 + 0x14) = uVar3;\n            uVar1 = (**(code **)(iVar15 + 0x88))(piVar12,uVar11);\n            *(undefined1 *)(iVar4 + 0x18) = uVar1;\n            if (piVar16[1] == iVar4 + 0x1c) break;\n            piVar12 = (int *)*piVar14;\n            iVar4 = iVar4 + 0x1c;\n          }\n        }\n        piVar14 = piVar14 + 1;\n      } while ((int *)param_3[1] != piVar14);\n    }" (if "if") (parenthesized_expression "(piVar14 != (int *)param_3[1])" (( "(") (binary_expression "piVar14 != (int *)param_3[1]" (identifier "piVar14") (!= "!=") (cast_expression "(int *)param_3[1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")))) () ")")) (compound_statement "{\n      do {\n        piVar12 = (int *)*piVar14;\n        piVar16 = (int *)piVar12[0x14];\n        iVar4 = *piVar16;\n        if (iVar4 != piVar16[1]) {\n          while( true ) {\n            iVar15 = *piVar12;\n            uVar11 = *(uint *)(iVar4 + 4);\n            if (*(code **)(iVar15 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4);\n            }\n            else {\n              uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);\n              uVar11 = *(uint *)(iVar4 + 4);\n              piVar12 = (int *)*piVar14;\n              iVar15 = *piVar12;\n            }\n            *(undefined4 *)(iVar4 + 0x14) = uVar3;\n            uVar1 = (**(code **)(iVar15 + 0x88))(piVar12,uVar11);\n            *(undefined1 *)(iVar4 + 0x18) = uVar1;\n            if (piVar16[1] == iVar4 + 0x1c) break;\n            piVar12 = (int *)*piVar14;\n            iVar4 = iVar4 + 0x1c;\n          }\n        }\n        piVar14 = piVar14 + 1;\n      } while ((int *)param_3[1] != piVar14);\n    }" ({ "{") (do_statement "do {\n        piVar12 = (int *)*piVar14;\n        piVar16 = (int *)piVar12[0x14];\n        iVar4 = *piVar16;\n        if (iVar4 != piVar16[1]) {\n          while( true ) {\n            iVar15 = *piVar12;\n            uVar11 = *(uint *)(iVar4 + 4);\n            if (*(code **)(iVar15 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4);\n            }\n            else {\n              uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);\n              uVar11 = *(uint *)(iVar4 + 4);\n              piVar12 = (int *)*piVar14;\n              iVar15 = *piVar12;\n            }\n            *(undefined4 *)(iVar4 + 0x14) = uVar3;\n            uVar1 = (**(code **)(iVar15 + 0x88))(piVar12,uVar11);\n            *(undefined1 *)(iVar4 + 0x18) = uVar1;\n            if (piVar16[1] == iVar4 + 0x1c) break;\n            piVar12 = (int *)*piVar14;\n            iVar4 = iVar4 + 0x1c;\n          }\n        }\n        piVar14 = piVar14 + 1;\n      } while ((int *)param_3[1] != piVar14);" (do "do") (compound_statement "{\n        piVar12 = (int *)*piVar14;\n        piVar16 = (int *)piVar12[0x14];\n        iVar4 = *piVar16;\n        if (iVar4 != piVar16[1]) {\n          while( true ) {\n            iVar15 = *piVar12;\n            uVar11 = *(uint *)(iVar4 + 4);\n            if (*(code **)(iVar15 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4);\n            }\n            else {\n              uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);\n              uVar11 = *(uint *)(iVar4 + 4);\n              piVar12 = (int *)*piVar14;\n              iVar15 = *piVar12;\n            }\n            *(undefined4 *)(iVar4 + 0x14) = uVar3;\n            uVar1 = (**(code **)(iVar15 + 0x88))(piVar12,uVar11);\n            *(undefined1 *)(iVar4 + 0x18) = uVar1;\n            if (piVar16[1] == iVar4 + 0x1c) break;\n            piVar12 = (int *)*piVar14;\n            iVar4 = iVar4 + 0x1c;\n          }\n        }\n        piVar14 = piVar14 + 1;\n      }" ({ "{") (expression_statement "piVar12 = (int *)*piVar14;" (assignment_expression "piVar12 = (int *)*piVar14" (identifier "piVar12") (= "=") (cast_expression "(int *)*piVar14" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar14" (* "*") (identifier "piVar14")))) (; ";")) (expression_statement "piVar16 = (int *)piVar12[0x14];" (assignment_expression "piVar16 = (int *)piVar12[0x14]" (identifier "piVar16") (= "=") (cast_expression "(int *)piVar12[0x14]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar12[0x14]" (identifier "piVar12") ([ "[") (number_literal "0x14") (] "]")))) (; ";")) (expression_statement "iVar4 = *piVar16;" (assignment_expression "iVar4 = *piVar16" (identifier "iVar4") (= "=") (pointer_expression "*piVar16" (* "*") (identifier "piVar16"))) (; ";")) (if_statement "if (iVar4 != piVar16[1]) {\n          while( true ) {\n            iVar15 = *piVar12;\n            uVar11 = *(uint *)(iVar4 + 4);\n            if (*(code **)(iVar15 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4);\n            }\n            else {\n              uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);\n              uVar11 = *(uint *)(iVar4 + 4);\n              piVar12 = (int *)*piVar14;\n              iVar15 = *piVar12;\n            }\n            *(undefined4 *)(iVar4 + 0x14) = uVar3;\n            uVar1 = (**(code **)(iVar15 + 0x88))(piVar12,uVar11);\n            *(undefined1 *)(iVar4 + 0x18) = uVar1;\n            if (piVar16[1] == iVar4 + 0x1c) break;\n            piVar12 = (int *)*piVar14;\n            iVar4 = iVar4 + 0x1c;\n          }\n        }" (if "if") (parenthesized_expression "(iVar4 != piVar16[1])" (( "(") (binary_expression "iVar4 != piVar16[1]" (identifier "iVar4") (!= "!=") (subscript_expression "piVar16[1]" (identifier "piVar16") ([ "[") (number_literal "1") (] "]"))) () ")")) (compound_statement "{\n          while( true ) {\n            iVar15 = *piVar12;\n            uVar11 = *(uint *)(iVar4 + 4);\n            if (*(code **)(iVar15 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4);\n            }\n            else {\n              uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);\n              uVar11 = *(uint *)(iVar4 + 4);\n              piVar12 = (int *)*piVar14;\n              iVar15 = *piVar12;\n            }\n            *(undefined4 *)(iVar4 + 0x14) = uVar3;\n            uVar1 = (**(code **)(iVar15 + 0x88))(piVar12,uVar11);\n            *(undefined1 *)(iVar4 + 0x18) = uVar1;\n            if (piVar16[1] == iVar4 + 0x1c) break;\n            piVar12 = (int *)*piVar14;\n            iVar4 = iVar4 + 0x1c;\n          }\n        }" ({ "{") (while_statement "while( true ) {\n            iVar15 = *piVar12;\n            uVar11 = *(uint *)(iVar4 + 4);\n            if (*(code **)(iVar15 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4);\n            }\n            else {\n              uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);\n              uVar11 = *(uint *)(iVar4 + 4);\n              piVar12 = (int *)*piVar14;\n              iVar15 = *piVar12;\n            }\n            *(undefined4 *)(iVar4 + 0x14) = uVar3;\n            uVar1 = (**(code **)(iVar15 + 0x88))(piVar12,uVar11);\n            *(undefined1 *)(iVar4 + 0x18) = uVar1;\n            if (piVar16[1] == iVar4 + 0x1c) break;\n            piVar12 = (int *)*piVar14;\n            iVar4 = iVar4 + 0x1c;\n          }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n            iVar15 = *piVar12;\n            uVar11 = *(uint *)(iVar4 + 4);\n            if (*(code **)(iVar15 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4);\n            }\n            else {\n              uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);\n              uVar11 = *(uint *)(iVar4 + 4);\n              piVar12 = (int *)*piVar14;\n              iVar15 = *piVar12;\n            }\n            *(undefined4 *)(iVar4 + 0x14) = uVar3;\n            uVar1 = (**(code **)(iVar15 + 0x88))(piVar12,uVar11);\n            *(undefined1 *)(iVar4 + 0x18) = uVar1;\n            if (piVar16[1] == iVar4 + 0x1c) break;\n            piVar12 = (int *)*piVar14;\n            iVar4 = iVar4 + 0x1c;\n          }" ({ "{") (expression_statement "iVar15 = *piVar12;" (assignment_expression "iVar15 = *piVar12" (identifier "iVar15") (= "=") (pointer_expression "*piVar12" (* "*") (identifier "piVar12"))) (; ";")) (expression_statement "uVar11 = *(uint *)(iVar4 + 4);" (assignment_expression "uVar11 = *(uint *)(iVar4 + 4)" (identifier "uVar11") (= "=") (pointer_expression "*(uint *)(iVar4 + 4)" (* "*") (cast_expression "(uint *)(iVar4 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 4)" (( "(") (binary_expression "iVar4 + 4" (identifier "iVar4") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (*(code **)(iVar15 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4);\n            }\n            else {\n              uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);\n              uVar11 = *(uint *)(iVar4 + 4);\n              piVar12 = (int *)*piVar14;\n              iVar15 = *piVar12;\n            }" (if "if") (parenthesized_expression "(*(code **)(iVar15 + 0x60) == FUN_000a5850)" (( "(") (binary_expression "*(code **)(iVar15 + 0x60) == FUN_000a5850" (pointer_expression "*(code **)(iVar15 + 0x60)" (* "*") (cast_expression "(code **)(iVar15 + 0x60)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar15 + 0x60)" (( "(") (binary_expression "iVar15 + 0x60" (identifier "iVar15") (+ "+") (number_literal "0x60")) () ")")))) (== "==") (identifier "FUN_000a5850")) () ")")) (compound_statement "{\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4);\n            }" ({ "{") (if_statement "if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }" (if "if") (parenthesized_expression "((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11)" (( "(") (binary_expression "(uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11" (call_expression "(uint)(piVar12[0xf] - piVar12[0xe] >> 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(piVar12[0xf] - piVar12[0xe] >> 2)" (( "(") (binary_expression "piVar12[0xf] - piVar12[0xe] >> 2" (binary_expression "piVar12[0xf] - piVar12[0xe]" (subscript_expression "piVar12[0xf]" (identifier "piVar12") ([ "[") (number_literal "0xf") (] "]")) (- "-") (subscript_expression "piVar12[0xe]" (identifier "piVar12") ([ "[") (number_literal "0xe") (] "]"))) (>> ">>") (number_literal "2")) () ")"))) (<= "<=") (identifier "uVar11")) () ")")) (compound_statement "{\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }" ({ "{") (expression_statement "FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");" (call_expression "FUN_000da200("../../gold/object.h",0x5c8,"do_output_section")" (identifier "FUN_000da200") (argument_list "("../../gold/object.h",0x5c8,"do_output_section")" (( "(") (string_literal ""../../gold/object.h"" (" """) (string_content "../../gold/object.h") (" """)) (, ",") (number_literal "0x5c8") (, ",") (string_literal ""do_output_section"" (" """) (string_content "do_output_section") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4);" (assignment_expression "uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4)" (identifier "uVar3") (= "=") (pointer_expression "*(undefined4 *)(piVar12[0xe] + uVar11 * 4)" (* "*") (cast_expression "(undefined4 *)(piVar12[0xe] + uVar11 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar12[0xe] + uVar11 * 4)" (( "(") (binary_expression "piVar12[0xe] + uVar11 * 4" (subscript_expression "piVar12[0xe]" (identifier "piVar12") ([ "[") (number_literal "0xe") (] "]")) (+ "+") (binary_expression "uVar11 * 4" (identifier "uVar11") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n              uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);\n              uVar11 = *(uint *)(iVar4 + 4);\n              piVar12 = (int *)*piVar14;\n              iVar15 = *piVar12;\n            }" (else "else") (compound_statement "{\n              uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);\n              uVar11 = *(uint *)(iVar4 + 4);\n              piVar12 = (int *)*piVar14;\n              iVar15 = *piVar12;\n            }" ({ "{") (expression_statement "uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);" (assignment_expression "uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11)" (identifier "uVar3") (= "=") (call_expression "(**(code **)(iVar15 + 0x60))(piVar12,uVar11)" (parenthesized_expression "(**(code **)(iVar15 + 0x60))" (( "(") (pointer_expression "**(code **)(iVar15 + 0x60)" (* "*") (pointer_expression "*(code **)(iVar15 + 0x60)" (* "*") (cast_expression "(code **)(iVar15 + 0x60)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar15 + 0x60)" (( "(") (binary_expression "iVar15 + 0x60" (identifier "iVar15") (+ "+") (number_literal "0x60")) () ")"))))) () ")")) (argument_list "(piVar12,uVar11)" (( "(") (identifier "piVar12") (, ",") (identifier "uVar11") () ")")))) (; ";")) (expression_statement "uVar11 = *(uint *)(iVar4 + 4);" (assignment_expression "uVar11 = *(uint *)(iVar4 + 4)" (identifier "uVar11") (= "=") (pointer_expression "*(uint *)(iVar4 + 4)" (* "*") (cast_expression "(uint *)(iVar4 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 4)" (( "(") (binary_expression "iVar4 + 4" (identifier "iVar4") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "piVar12 = (int *)*piVar14;" (assignment_expression "piVar12 = (int *)*piVar14" (identifier "piVar12") (= "=") (cast_expression "(int *)*piVar14" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar14" (* "*") (identifier "piVar14")))) (; ";")) (expression_statement "iVar15 = *piVar12;" (assignment_expression "iVar15 = *piVar12" (identifier "iVar15") (= "=") (pointer_expression "*piVar12" (* "*") (identifier "piVar12"))) (; ";")) (} "}")))) (expression_statement "*(undefined4 *)(iVar4 + 0x14) = uVar3;" (assignment_expression "*(undefined4 *)(iVar4 + 0x14) = uVar3" (pointer_expression "*(undefined4 *)(iVar4 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x14)" (( "(") (binary_expression "iVar4 + 0x14" (identifier "iVar4") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "uVar1 = (**(code **)(iVar15 + 0x88))(piVar12,uVar11);" (assignment_expression "uVar1 = (**(code **)(iVar15 + 0x88))(piVar12,uVar11)" (identifier "uVar1") (= "=") (call_expression "(**(code **)(iVar15 + 0x88))(piVar12,uVar11)" (parenthesized_expression "(**(code **)(iVar15 + 0x88))" (( "(") (pointer_expression "**(code **)(iVar15 + 0x88)" (* "*") (pointer_expression "*(code **)(iVar15 + 0x88)" (* "*") (cast_expression "(code **)(iVar15 + 0x88)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar15 + 0x88)" (( "(") (binary_expression "iVar15 + 0x88" (identifier "iVar15") (+ "+") (number_literal "0x88")) () ")"))))) () ")")) (argument_list "(piVar12,uVar11)" (( "(") (identifier "piVar12") (, ",") (identifier "uVar11") () ")")))) (; ";")) (expression_statement "*(undefined1 *)(iVar4 + 0x18) = uVar1;" (assignment_expression "*(undefined1 *)(iVar4 + 0x18) = uVar1" (pointer_expression "*(undefined1 *)(iVar4 + 0x18)" (* "*") (cast_expression "(undefined1 *)(iVar4 + 0x18)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x18)" (( "(") (binary_expression "iVar4 + 0x18" (identifier "iVar4") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (if_statement "if (piVar16[1] == iVar4 + 0x1c) break;" (if "if") (parenthesized_expression "(piVar16[1] == iVar4 + 0x1c)" (( "(") (binary_expression "piVar16[1] == iVar4 + 0x1c" (subscript_expression "piVar16[1]" (identifier "piVar16") ([ "[") (number_literal "1") (] "]")) (== "==") (binary_expression "iVar4 + 0x1c" (identifier "iVar4") (+ "+") (number_literal "0x1c"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "piVar12 = (int *)*piVar14;" (assignment_expression "piVar12 = (int *)*piVar14" (identifier "piVar12") (= "=") (cast_expression "(int *)*piVar14" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar14" (* "*") (identifier "piVar14")))) (; ";")) (expression_statement "iVar4 = iVar4 + 0x1c;" (assignment_expression "iVar4 = iVar4 + 0x1c" (identifier "iVar4") (= "=") (binary_expression "iVar4 + 0x1c" (identifier "iVar4") (+ "+") (number_literal "0x1c"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "piVar14 = piVar14 + 1;" (assignment_expression "piVar14 = piVar14 + 1" (identifier "piVar14") (= "=") (binary_expression "piVar14 + 1" (identifier "piVar14") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int *)param_3[1] != piVar14)" (( "(") (binary_expression "(int *)param_3[1] != piVar14" (cast_expression "(int *)param_3[1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) (!= "!=") (identifier "piVar14")) () ")")) (; ";")) (} "}"))) (expression_statement "iVar4 = *(int *)(param_1 + 0x3e70);" (assignment_expression "iVar4 = *(int *)(param_1 + 0x3e70)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(param_1 + 0x3e70)" (* "*") (cast_expression "(int *)(param_1 + 0x3e70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x3e70)" (( "(") (binary_expression "param_1 + 0x3e70" (identifier "param_1") (+ "+") (number_literal "0x3e70")) () ")"))))) (; ";")) (} "}")))) (if_statement "if ((iVar4 == 0) &&\n     (iVar4 = (param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2), iVar4 < 2)) {\n    iVar4 = 2;\n  }" (if "if") (parenthesized_expression "((iVar4 == 0) &&\n     (iVar4 = (param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2), iVar4 < 2))" (( "(") (binary_expression "(iVar4 == 0) &&\n     (iVar4 = (param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2), iVar4 < 2)" (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar4 = (param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2), iVar4 < 2)" (( "(") (comma_expression "iVar4 = (param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2), iVar4 < 2" (assignment_expression "iVar4 = (param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2)" (identifier "iVar4") (= "=") (binary_expression "(param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2)" (parenthesized_expression "(param_3[4] - param_3[3] >> 2)" (( "(") (binary_expression "param_3[4] - param_3[3] >> 2" (binary_expression "param_3[4] - param_3[3]" (subscript_expression "param_3[4]" (identifier "param_3") ([ "[") (number_literal "4") (] "]")) (- "-") (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]"))) (>> ">>") (number_literal "2")) () ")")) (+ "+") (parenthesized_expression "(param_3[1] - *param_3 >> 2)" (( "(") (binary_expression "param_3[1] - *param_3 >> 2" (binary_expression "param_3[1] - *param_3" (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")) (- "-") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (>> ">>") (number_literal "2")) () ")")))) (, ",") (binary_expression "iVar4 < 2" (identifier "iVar4") (< "<") (number_literal "2"))) () ")"))) () ")")) (compound_statement "{\n    iVar4 = 2;\n  }" ({ "{") (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" (identifier "iVar4") (= "=") (number_literal "2")) (; ";")) (} "}"))) (expression_statement "FUN_002007c0(param_6,iVar4);" (call_expression "FUN_002007c0(param_6,iVar4)" (identifier "FUN_002007c0") (argument_list "(param_6,iVar4)" (( "(") (identifier "param_6") (, ",") (identifier "iVar4") () ")"))) (; ";")) (if_statement "if (param_3[4] == param_3[3]) {\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n    if ((*(char *)(iVar4 + 0x1a25) != '\0') || (*(char *)(iVar4 + 0x2931) != '\0'))\n    goto LAB_000da6a6;\n    FUN_001a52b0(1);\n  }\n  else {\nLAB_000da6a6:\n    FUN_001a52b0(0);\n    if (*(char *)(param_1 + 0x5938) != '\0') {\n      if ((int *)param_3[3] == (int *)param_3[4]) {\n                    \n        FUN_000da200("../../gold/gold.cc",0x265,"queue_middle_tasks",&__DT_PLTGOT);\n      }\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      uVar10 = gettext("cannot mix -static with dynamic object %s");\n      FUN_000d1330(uVar10,uVar3);\n    }\n    if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n    if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) != '\0') {\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      pcVar9 = "cannot mix -r with dynamic object %s";\nLAB_000db04c:\n      uVar10 = gettext(pcVar9);\n                    \n      FUN_000d12d0(uVar10,uVar3);\n    }\n    iVar4 = FUN_0014c1c0(param_1);\n    if (iVar4 != 0) {\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      pcVar9 = "cannot use non-ELF output format with dynamic object %s";\n      goto LAB_000db04c;\n    }\n  }" (if "if") (parenthesized_expression "(param_3[4] == param_3[3])" (( "(") (binary_expression "param_3[4] == param_3[3]" (subscript_expression "param_3[4]" (identifier "param_3") ([ "[") (number_literal "4") (] "]")) (== "==") (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]"))) () ")")) (compound_statement "{\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n    if ((*(char *)(iVar4 + 0x1a25) != '\0') || (*(char *)(iVar4 + 0x2931) != '\0'))\n    goto LAB_000da6a6;\n    FUN_001a52b0(1);\n  }" ({ "{") (expression_statement "iVar4 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar4 = *(int *)(DAT_004144e8 + 8)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(DAT_004144e8 + 8)" (* "*") (cast_expression "(int *)(DAT_004144e8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_004144e8 + 8)" (( "(") (binary_expression "DAT_004144e8 + 8" (identifier "DAT_004144e8") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar4 == 0) goto LAB_000dac36;" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000dac36;" (goto "goto") (statement_identifier "LAB_000dac36") (; ";"))) (if_statement "if ((*(char *)(iVar4 + 0x1a25) != '\0') || (*(char *)(iVar4 + 0x2931) != '\0'))\n    goto LAB_000da6a6;" (if "if") (parenthesized_expression "((*(char *)(iVar4 + 0x1a25) != '\0') || (*(char *)(iVar4 + 0x2931) != '\0'))" (( "(") (binary_expression "(*(char *)(iVar4 + 0x1a25) != '\0') || (*(char *)(iVar4 + 0x2931) != '\0')" (parenthesized_expression "(*(char *)(iVar4 + 0x1a25) != '\0')" (( "(") (binary_expression "*(char *)(iVar4 + 0x1a25) != '\0'" (pointer_expression "*(char *)(iVar4 + 0x1a25)" (* "*") (cast_expression "(char *)(iVar4 + 0x1a25)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x1a25)" (( "(") (binary_expression "iVar4 + 0x1a25" (identifier "iVar4") (+ "+") (number_literal "0x1a25")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(*(char *)(iVar4 + 0x2931) != '\0')" (( "(") (binary_expression "*(char *)(iVar4 + 0x2931) != '\0'" (pointer_expression "*(char *)(iVar4 + 0x2931)" (* "*") (cast_expression "(char *)(iVar4 + 0x2931)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x2931)" (( "(") (binary_expression "iVar4 + 0x2931" (identifier "iVar4") (+ "+") (number_literal "0x2931")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (goto_statement "goto LAB_000da6a6;" (goto "goto") (statement_identifier "LAB_000da6a6") (; ";"))) (expression_statement "FUN_001a52b0(1);" (call_expression "FUN_001a52b0(1)" (identifier "FUN_001a52b0") (argument_list "(1)" (( "(") (number_literal "1") () ")"))) (; ";")) (} "}")) (else_clause "else {\nLAB_000da6a6:\n    FUN_001a52b0(0);\n    if (*(char *)(param_1 + 0x5938) != '\0') {\n      if ((int *)param_3[3] == (int *)param_3[4]) {\n                    \n        FUN_000da200("../../gold/gold.cc",0x265,"queue_middle_tasks",&__DT_PLTGOT);\n      }\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      uVar10 = gettext("cannot mix -static with dynamic object %s");\n      FUN_000d1330(uVar10,uVar3);\n    }\n    if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n    if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) != '\0') {\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      pcVar9 = "cannot mix -r with dynamic object %s";\nLAB_000db04c:\n      uVar10 = gettext(pcVar9);\n                    \n      FUN_000d12d0(uVar10,uVar3);\n    }\n    iVar4 = FUN_0014c1c0(param_1);\n    if (iVar4 != 0) {\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      pcVar9 = "cannot use non-ELF output format with dynamic object %s";\n      goto LAB_000db04c;\n    }\n  }" (else "else") (compound_statement "{\nLAB_000da6a6:\n    FUN_001a52b0(0);\n    if (*(char *)(param_1 + 0x5938) != '\0') {\n      if ((int *)param_3[3] == (int *)param_3[4]) {\n                    \n        FUN_000da200("../../gold/gold.cc",0x265,"queue_middle_tasks",&__DT_PLTGOT);\n      }\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      uVar10 = gettext("cannot mix -static with dynamic object %s");\n      FUN_000d1330(uVar10,uVar3);\n    }\n    if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;\n    if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) != '\0') {\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      pcVar9 = "cannot mix -r with dynamic object %s";\nLAB_000db04c:\n      uVar10 = gettext(pcVar9);\n                    \n      FUN_000d12d0(uVar10,uVar3);\n    }\n    iVar4 = FUN_0014c1c0(param_1);\n    if (iVar4 != 0) {\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      pcVar9 = "cannot use non-ELF output format with dynamic object %s";\n      goto LAB_000db04c;\n    }\n  }" ({ "{") (labeled_statement "LAB_000da6a6:\n    FUN_001a52b0(0);" (statement_identifier "LAB_000da6a6") (: ":") (expression_statement "FUN_001a52b0(0);" (call_expression "FUN_001a52b0(0)" (identifier "FUN_001a52b0") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";"))) (if_statement "if (*(char *)(param_1 + 0x5938) != '\0') {\n      if ((int *)param_3[3] == (int *)param_3[4]) {\n                    \n        FUN_000da200("../../gold/gold.cc",0x265,"queue_middle_tasks",&__DT_PLTGOT);\n      }\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      uVar10 = gettext("cannot mix -static with dynamic object %s");\n      FUN_000d1330(uVar10,uVar3);\n    }" (if "if") (parenthesized_expression "(*(char *)(param_1 + 0x5938) != '\0')" (( "(") (binary_expression "*(char *)(param_1 + 0x5938) != '\0'" (pointer_expression "*(char *)(param_1 + 0x5938)" (* "*") (cast_expression "(char *)(param_1 + 0x5938)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x5938)" (( "(") (binary_expression "param_1 + 0x5938" (identifier "param_1") (+ "+") (number_literal "0x5938")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      if ((int *)param_3[3] == (int *)param_3[4]) {\n                    \n        FUN_000da200("../../gold/gold.cc",0x265,"queue_middle_tasks",&__DT_PLTGOT);\n      }\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      uVar10 = gettext("cannot mix -static with dynamic object %s");\n      FUN_000d1330(uVar10,uVar3);\n    }" ({ "{") (if_statement "if ((int *)param_3[3] == (int *)param_3[4]) {\n                    \n        FUN_000da200("../../gold/gold.cc",0x265,"queue_middle_tasks",&__DT_PLTGOT);\n      }" (if "if") (parenthesized_expression "((int *)param_3[3] == (int *)param_3[4])" (( "(") (binary_expression "(int *)param_3[3] == (int *)param_3[4]" (cast_expression "(int *)param_3[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]"))) (== "==") (cast_expression "(int *)param_3[4]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[4]" (identifier "param_3") ([ "[") (number_literal "4") (] "]")))) () ")")) (compound_statement "{\n                    \n        FUN_000da200("../../gold/gold.cc",0x265,"queue_middle_tasks",&__DT_PLTGOT);\n      }" ({ "{") (expression_statement "FUN_000da200("../../gold/gold.cc",0x265,"queue_middle_tasks",&__DT_PLTGOT);" (call_expression "FUN_000da200("../../gold/gold.cc",0x265,"queue_middle_tasks",&__DT_PLTGOT)" (identifier "FUN_000da200") (argument_list "("../../gold/gold.cc",0x265,"queue_middle_tasks",&__DT_PLTGOT)" (( "(") (string_literal ""../../gold/gold.cc"" (" """) (string_content "../../gold/gold.cc") (" """)) (, ",") (number_literal "0x265") (, ",") (string_literal ""queue_middle_tasks"" (" """) (string_content "queue_middle_tasks") (" """)) (, ",") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT")) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);" (assignment_expression "uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4)" (identifier "uVar3") (= "=") (pointer_expression "*(undefined4 *)(*(int *)param_3[3] + 4)" (* "*") (cast_expression "(undefined4 *)(*(int *)param_3[3] + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)param_3[3] + 4)" (( "(") (binary_expression "*(int *)param_3[3] + 4" (pointer_expression "*(int *)param_3[3]" (* "*") (cast_expression "(int *)param_3[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]")))) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar10 = gettext("cannot mix -static with dynamic object %s");" (assignment_expression "uVar10 = gettext("cannot mix -static with dynamic object %s")" (identifier "uVar10") (= "=") (call_expression "gettext("cannot mix -static with dynamic object %s")" (identifier "gettext") (argument_list "("cannot mix -static with dynamic object %s")" (( "(") (string_literal ""cannot mix -static with dynamic object %s"" (" """) (string_content "cannot mix -static with dynamic object %s") (" """)) () ")")))) (; ";")) (expression_statement "FUN_000d1330(uVar10,uVar3);" (call_expression "FUN_000d1330(uVar10,uVar3)" (identifier "FUN_000d1330") (argument_list "(uVar10,uVar3)" (( "(") (identifier "uVar10") (, ",") (identifier "uVar3") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;" (if "if") (parenthesized_expression "(*(int *)(DAT_004144e8 + 8) == 0)" (( "(") (binary_expression "*(int *)(DAT_004144e8 + 8) == 0" (pointer_expression "*(int *)(DAT_004144e8 + 8)" (* "*") (cast_expression "(int *)(DAT_004144e8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_004144e8 + 8)" (( "(") (binary_expression "DAT_004144e8 + 8" (identifier "DAT_004144e8") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000dac36;" (goto "goto") (statement_identifier "LAB_000dac36") (; ";"))) (if_statement "if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) != '\0') {\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      pcVar9 = "cannot mix -r with dynamic object %s";\nLAB_000db04c:\n      uVar10 = gettext(pcVar9);\n                    \n      FUN_000d12d0(uVar10,uVar3);\n    }" (if "if") (parenthesized_expression "(*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) != '\0')" (( "(") (binary_expression "*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) != '\0'" (pointer_expression "*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d)" (* "*") (cast_expression "(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_004144e8 + 8) + 0x318d)" (( "(") (binary_expression "*(int *)(DAT_004144e8 + 8) + 0x318d" (pointer_expression "*(int *)(DAT_004144e8 + 8)" (* "*") (cast_expression "(int *)(DAT_004144e8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_004144e8 + 8)" (( "(") (binary_expression "DAT_004144e8 + 8" (identifier "DAT_004144e8") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x318d")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      pcVar9 = "cannot mix -r with dynamic object %s";\nLAB_000db04c:\n      uVar10 = gettext(pcVar9);\n                    \n      FUN_000d12d0(uVar10,uVar3);\n    }" ({ "{") (expression_statement "uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);" (assignment_expression "uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4)" (identifier "uVar3") (= "=") (pointer_expression "*(undefined4 *)(*(int *)param_3[3] + 4)" (* "*") (cast_expression "(undefined4 *)(*(int *)param_3[3] + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)param_3[3] + 4)" (( "(") (binary_expression "*(int *)param_3[3] + 4" (pointer_expression "*(int *)param_3[3]" (* "*") (cast_expression "(int *)param_3[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]")))) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "pcVar9 = "cannot mix -r with dynamic object %s";" (assignment_expression "pcVar9 = "cannot mix -r with dynamic object %s"" (identifier "pcVar9") (= "=") (string_literal ""cannot mix -r with dynamic object %s"" (" """) (string_content "cannot mix -r with dynamic object %s") (" """))) (; ";")) (labeled_statement "LAB_000db04c:\n      uVar10 = gettext(pcVar9);" (statement_identifier "LAB_000db04c") (: ":") (expression_statement "uVar10 = gettext(pcVar9);" (assignment_expression "uVar10 = gettext(pcVar9)" (identifier "uVar10") (= "=") (call_expression "gettext(pcVar9)" (identifier "gettext") (argument_list "(pcVar9)" (( "(") (identifier "pcVar9") () ")")))) (; ";"))) (expression_statement "FUN_000d12d0(uVar10,uVar3);" (call_expression "FUN_000d12d0(uVar10,uVar3)" (identifier "FUN_000d12d0") (argument_list "(uVar10,uVar3)" (( "(") (identifier "uVar10") (, ",") (identifier "uVar3") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar4 = FUN_0014c1c0(param_1);" (assignment_expression "iVar4 = FUN_0014c1c0(param_1)" (identifier "iVar4") (= "=") (call_expression "FUN_0014c1c0(param_1)" (identifier "FUN_0014c1c0") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar4 != 0) {\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      pcVar9 = "cannot use non-ELF output format with dynamic object %s";\n      goto LAB_000db04c;\n    }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);\n      pcVar9 = "cannot use non-ELF output format with dynamic object %s";\n      goto LAB_000db04c;\n    }" ({ "{") (expression_statement "uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);" (assignment_expression "uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4)" (identifier "uVar3") (= "=") (pointer_expression "*(undefined4 *)(*(int *)param_3[3] + 4)" (* "*") (cast_expression "(undefined4 *)(*(int *)param_3[3] + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)param_3[3] + 4)" (( "(") (binary_expression "*(int *)param_3[3] + 4" (pointer_expression "*(int *)param_3[3]" (* "*") (cast_expression "(int *)param_3[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]")))) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "pcVar9 = "cannot use non-ELF output format with dynamic object %s";" (assignment_expression "pcVar9 = "cannot use non-ELF output format with dynamic object %s"" (identifier "pcVar9") (= "=") (string_literal ""cannot use non-ELF output format with dynamic object %s"" (" """) (string_content "cannot use non-ELF output format with dynamic object %s") (" """))) (; ";")) (goto_statement "goto LAB_000db04c;" (goto "goto") (statement_identifier "LAB_000db04c") (; ";")) (} "}"))) (} "}")))) (if_statement "if (*(int *)(DAT_004144e8 + 8) == 0) {\nLAB_000dac36:\n                    \n    FUN_000da200("../../gold/parameters.h",0x5c,"options");\n  }" (if "if") (parenthesized_expression "(*(int *)(DAT_004144e8 + 8) == 0)" (( "(") (binary_expression "*(int *)(DAT_004144e8 + 8) == 0" (pointer_expression "*(int *)(DAT_004144e8 + 8)" (* "*") (cast_expression "(int *)(DAT_004144e8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_004144e8 + 8)" (( "(") (binary_expression "DAT_004144e8 + 8" (identifier "DAT_004144e8") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000dac36:\n                    \n    FUN_000da200("../../gold/parameters.h",0x5c,"options");\n  }" ({ "{") (labeled_statement "LAB_000dac36:\n                    \n    FUN_000da200("../../gold/parameters.h",0x5c,"options");" (statement_identifier "LAB_000dac36") (: ":") (expression_statement "FUN_000da200("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_000da200("../../gold/parameters.h",0x5c,"options")" (identifier "FUN_000da200") (argument_list "("../../gold/parameters.h",0x5c,"options")" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x5c") (, ",") (string_literal ""options"" (" """) (string_content "options") (" """)) () ")"))) (; ";"))) (} "}"))) (if_statement "if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) != '\0') {\n    piVar14 = (int *)*param_3;\n    piVar16 = (int *)param_3[1];\n    if (piVar16 != piVar14) {\n      bVar13 = *(byte *)(*piVar14 + 0x2c) >> 2 & 1;\n      if (piVar16 != piVar14 + 1) {\n        iVar4 = piVar14[1];\n        if ((*(byte *)(iVar4 + 0x2c) >> 2 & 1) == bVar13) {\n          piVar12 = piVar14 + 2;\n          do {\n            if (piVar16 == piVar12) goto LAB_000da77b;\n            iVar4 = *piVar12;\n            piVar12 = piVar12 + 1;\n          } while (bVar13 == (*(byte *)(iVar4 + 0x2c) >> 2 & 1));\n        }\n        uVar3 = *(undefined4 *)(iVar4 + 4);\n        uVar10 = *(undefined4 *)(*piVar14 + 4);\n        uVar8 = gettext("cannot mix split-stack \'%s\' and non-split-stack \'%s\' when using -r");\n                    \n        FUN_000d12d0(uVar8,uVar10,uVar3);\n      }\n    }\n  }" (if "if") (parenthesized_expression "(*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) != '\0')" (( "(") (binary_expression "*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) != '\0'" (pointer_expression "*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d)" (* "*") (cast_expression "(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_004144e8 + 8) + 0x318d)" (( "(") (binary_expression "*(int *)(DAT_004144e8 + 8) + 0x318d" (pointer_expression "*(int *)(DAT_004144e8 + 8)" (* "*") (cast_expression "(int *)(DAT_004144e8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_004144e8 + 8)" (( "(") (binary_expression "DAT_004144e8 + 8" (identifier "DAT_004144e8") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x318d")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    piVar14 = (int *)*param_3;\n    piVar16 = (int *)param_3[1];\n    if (piVar16 != piVar14) {\n      bVar13 = *(byte *)(*piVar14 + 0x2c) >> 2 & 1;\n      if (piVar16 != piVar14 + 1) {\n        iVar4 = piVar14[1];\n        if ((*(byte *)(iVar4 + 0x2c) >> 2 & 1) == bVar13) {\n          piVar12 = piVar14 + 2;\n          do {\n            if (piVar16 == piVar12) goto LAB_000da77b;\n            iVar4 = *piVar12;\n            piVar12 = piVar12 + 1;\n          } while (bVar13 == (*(byte *)(iVar4 + 0x2c) >> 2 & 1));\n        }\n        uVar3 = *(undefined4 *)(iVar4 + 4);\n        uVar10 = *(undefined4 *)(*piVar14 + 4);\n        uVar8 = gettext("cannot mix split-stack \'%s\' and non-split-stack \'%s\' when using -r");\n                    \n        FUN_000d12d0(uVar8,uVar10,uVar3);\n      }\n    }\n  }" ({ "{") (expression_statement "piVar14 = (int *)*param_3;" (assignment_expression "piVar14 = (int *)*param_3" (identifier "piVar14") (= "=") (cast_expression "(int *)*param_3" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_3" (* "*") (identifier "param_3")))) (; ";")) (expression_statement "piVar16 = (int *)param_3[1];" (assignment_expression "piVar16 = (int *)param_3[1]" (identifier "piVar16") (= "=") (cast_expression "(int *)param_3[1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")))) (; ";")) (if_statement "if (piVar16 != piVar14) {\n      bVar13 = *(byte *)(*piVar14 + 0x2c) >> 2 & 1;\n      if (piVar16 != piVar14 + 1) {\n        iVar4 = piVar14[1];\n        if ((*(byte *)(iVar4 + 0x2c) >> 2 & 1) == bVar13) {\n          piVar12 = piVar14 + 2;\n          do {\n            if (piVar16 == piVar12) goto LAB_000da77b;\n            iVar4 = *piVar12;\n            piVar12 = piVar12 + 1;\n          } while (bVar13 == (*(byte *)(iVar4 + 0x2c) >> 2 & 1));\n        }\n        uVar3 = *(undefined4 *)(iVar4 + 4);\n        uVar10 = *(undefined4 *)(*piVar14 + 4);\n        uVar8 = gettext("cannot mix split-stack \'%s\' and non-split-stack \'%s\' when using -r");\n                    \n        FUN_000d12d0(uVar8,uVar10,uVar3);\n      }\n    }" (if "if") (parenthesized_expression "(piVar16 != piVar14)" (( "(") (binary_expression "piVar16 != piVar14" (identifier "piVar16") (!= "!=") (identifier "piVar14")) () ")")) (compound_statement "{\n      bVar13 = *(byte *)(*piVar14 + 0x2c) >> 2 & 1;\n      if (piVar16 != piVar14 + 1) {\n        iVar4 = piVar14[1];\n        if ((*(byte *)(iVar4 + 0x2c) >> 2 & 1) == bVar13) {\n          piVar12 = piVar14 + 2;\n          do {\n            if (piVar16 == piVar12) goto LAB_000da77b;\n            iVar4 = *piVar12;\n            piVar12 = piVar12 + 1;\n          } while (bVar13 == (*(byte *)(iVar4 + 0x2c) >> 2 & 1));\n        }\n        uVar3 = *(undefined4 *)(iVar4 + 4);\n        uVar10 = *(undefined4 *)(*piVar14 + 4);\n        uVar8 = gettext("cannot mix split-stack \'%s\' and non-split-stack \'%s\' when using -r");\n                    \n        FUN_000d12d0(uVar8,uVar10,uVar3);\n      }\n    }" ({ "{") (expression_statement "bVar13 = *(byte *)(*piVar14 + 0x2c) >> 2 & 1;" (assignment_expression "bVar13 = *(byte *)(*piVar14 + 0x2c) >> 2 & 1" (identifier "bVar13") (= "=") (binary_expression "*(byte *)(*piVar14 + 0x2c) >> 2 & 1" (binary_expression "*(byte *)(*piVar14 + 0x2c) >> 2" (pointer_expression "*(byte *)(*piVar14 + 0x2c)" (* "*") (cast_expression "(byte *)(*piVar14 + 0x2c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar14 + 0x2c)" (( "(") (binary_expression "*piVar14 + 0x2c" (pointer_expression "*piVar14" (* "*") (identifier "piVar14")) (+ "+") (number_literal "0x2c")) () ")")))) (>> ">>") (number_literal "2")) (& "&") (number_literal "1"))) (; ";")) (if_statement "if (piVar16 != piVar14 + 1) {\n        iVar4 = piVar14[1];\n        if ((*(byte *)(iVar4 + 0x2c) >> 2 & 1) == bVar13) {\n          piVar12 = piVar14 + 2;\n          do {\n            if (piVar16 == piVar12) goto LAB_000da77b;\n            iVar4 = *piVar12;\n            piVar12 = piVar12 + 1;\n          } while (bVar13 == (*(byte *)(iVar4 + 0x2c) >> 2 & 1));\n        }\n        uVar3 = *(undefined4 *)(iVar4 + 4);\n        uVar10 = *(undefined4 *)(*piVar14 + 4);\n        uVar8 = gettext("cannot mix split-stack \'%s\' and non-split-stack \'%s\' when using -r");\n                    \n        FUN_000d12d0(uVar8,uVar10,uVar3);\n      }" (if "if") (parenthesized_expression "(piVar16 != piVar14 + 1)" (( "(") (binary_expression "piVar16 != piVar14 + 1" (identifier "piVar16") (!= "!=") (binary_expression "piVar14 + 1" (identifier "piVar14") (+ "+") (number_literal "1"))) () ")")) (compound_statement "{\n        iVar4 = piVar14[1];\n        if ((*(byte *)(iVar4 + 0x2c) >> 2 & 1) == bVar13) {\n          piVar12 = piVar14 + 2;\n          do {\n            if (piVar16 == piVar12) goto LAB_000da77b;\n            iVar4 = *piVar12;\n            piVar12 = piVar12 + 1;\n          } while (bVar13 == (*(byte *)(iVar4 + 0x2c) >> 2 & 1));\n        }\n        uVar3 = *(undefined4 *)(iVar4 + 4);\n        uVar10 = *(undefined4 *)(*piVar14 + 4);\n        uVar8 = gettext("cannot mix split-stack \'%s\' and non-split-stack \'%s\' when using -r");\n                    \n        FUN_000d12d0(uVar8,uVar10,uVar3);\n      }" ({ "{") (expression_statement "iVar4 = piVar14[1];" (assignment_expression "iVar4 = piVar14[1]" (identifier "iVar4") (= "=") (subscript_expression "piVar14[1]" (identifier "piVar14") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if ((*(byte *)(iVar4 + 0x2c) >> 2 & 1) == bVar13) {\n          piVar12 = piVar14 + 2;\n          do {\n            if (piVar16 == piVar12) goto LAB_000da77b;\n            iVar4 = *piVar12;\n            piVar12 = piVar12 + 1;\n          } while (bVar13 == (*(byte *)(iVar4 + 0x2c) >> 2 & 1));\n        }" (if "if") (parenthesized_expression "((*(byte *)(iVar4 + 0x2c) >> 2 & 1) == bVar13)" (( "(") (binary_expression "(*(byte *)(iVar4 + 0x2c) >> 2 & 1) == bVar13" (parenthesized_expression "(*(byte *)(iVar4 + 0x2c) >> 2 & 1)" (( "(") (binary_expression "*(byte *)(iVar4 + 0x2c) >> 2 & 1" (binary_expression "*(byte *)(iVar4 + 0x2c) >> 2" (pointer_expression "*(byte *)(iVar4 + 0x2c)" (* "*") (cast_expression "(byte *)(iVar4 + 0x2c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x2c)" (( "(") (binary_expression "iVar4 + 0x2c" (identifier "iVar4") (+ "+") (number_literal "0x2c")) () ")")))) (>> ">>") (number_literal "2")) (& "&") (number_literal "1")) () ")")) (== "==") (identifier "bVar13")) () ")")) (compound_statement "{\n          piVar12 = piVar14 + 2;\n          do {\n            if (piVar16 == piVar12) goto LAB_000da77b;\n            iVar4 = *piVar12;\n            piVar12 = piVar12 + 1;\n          } while (bVar13 == (*(byte *)(iVar4 + 0x2c) >> 2 & 1));\n        }" ({ "{") (expression_statement "piVar12 = piVar14 + 2;" (assignment_expression "piVar12 = piVar14 + 2" (identifier "piVar12") (= "=") (binary_expression "piVar14 + 2" (identifier "piVar14") (+ "+") (number_literal "2"))) (; ";")) (do_statement "do {\n            if (piVar16 == piVar12) goto LAB_000da77b;\n            iVar4 = *piVar12;\n            piVar12 = piVar12 + 1;\n          } while (bVar13 == (*(byte *)(iVar4 + 0x2c) >> 2 & 1));" (do "do") (compound_statement "{\n            if (piVar16 == piVar12) goto LAB_000da77b;\n            iVar4 = *piVar12;\n            piVar12 = piVar12 + 1;\n          }" ({ "{") (if_statement "if (piVar16 == piVar12) goto LAB_000da77b;" (if "if") (parenthesized_expression "(piVar16 == piVar12)" (( "(") (binary_expression "piVar16 == piVar12" (identifier "piVar16") (== "==") (identifier "piVar12")) () ")")) (goto_statement "goto LAB_000da77b;" (goto "goto") (statement_identifier "LAB_000da77b") (; ";"))) (expression_statement "iVar4 = *piVar12;" (assignment_expression "iVar4 = *piVar12" (identifier "iVar4") (= "=") (pointer_expression "*piVar12" (* "*") (identifier "piVar12"))) (; ";")) (expression_statement "piVar12 = piVar12 + 1;" (assignment_expression "piVar12 = piVar12 + 1" (identifier "piVar12") (= "=") (binary_expression "piVar12 + 1" (identifier "piVar12") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar13 == (*(byte *)(iVar4 + 0x2c) >> 2 & 1))" (( "(") (binary_expression "bVar13 == (*(byte *)(iVar4 + 0x2c) >> 2 & 1)" (identifier "bVar13") (== "==") (parenthesized_expression "(*(byte *)(iVar4 + 0x2c) >> 2 & 1)" (( "(") (binary_expression "*(byte *)(iVar4 + 0x2c) >> 2 & 1" (binary_expression "*(byte *)(iVar4 + 0x2c) >> 2" (pointer_expression "*(byte *)(iVar4 + 0x2c)" (* "*") (cast_expression "(byte *)(iVar4 + 0x2c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x2c)" (( "(") (binary_expression "iVar4 + 0x2c" (identifier "iVar4") (+ "+") (number_literal "0x2c")) () ")")))) (>> ">>") (number_literal "2")) (& "&") (number_literal "1")) () ")"))) () ")")) (; ";")) (} "}"))) (expression_statement "uVar3 = *(undefined4 *)(iVar4 + 4);" (assignment_expression "uVar3 = *(undefined4 *)(iVar4 + 4)" (identifier "uVar3") (= "=") (pointer_expression "*(undefined4 *)(iVar4 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 4)" (( "(") (binary_expression "iVar4 + 4" (identifier "iVar4") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar10 = *(undefined4 *)(*piVar14 + 4);" (assignment_expression "uVar10 = *(undefined4 *)(*piVar14 + 4)" (identifier "uVar10") (= "=") (pointer_expression "*(undefined4 *)(*piVar14 + 4)" (* "*") (cast_expression "(undefined4 *)(*piVar14 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar14 + 4)" (( "(") (binary_expression "*piVar14 + 4" (pointer_expression "*piVar14" (* "*") (identifier "piVar14")) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar8 = gettext("cannot mix split-stack \'%s\' and non-split-stack \'%s\' when using -r");" (assignment_expression "uVar8 = gettext("cannot mix split-stack \'%s\' and non-split-stack \'%s\' when using -r")" (identifier "uVar8") (= "=") (call_expression "gettext("cannot mix split-stack \'%s\' and non-split-stack \'%s\' when using -r")" (identifier "gettext") (argument_list "("cannot mix split-stack \'%s\' and non-split-stack \'%s\' when using -r")" (( "(") (string_literal ""cannot mix split-stack \'%s\' and non-split-stack \'%s\' when using -r"" (" """) (string_content "cannot mix split-stack ") (escape_sequence "\'") (string_content "%s") (escape_sequence "\'") (string_content " and non-split-stack ") (escape_sequence "\'") (string_content "%s") (escape_sequence "\'") (string_content " when using -r") (" """)) () ")")))) (; ";")) (expression_statement "FUN_000d12d0(uVar8,uVar10,uVar3);" (call_expression "FUN_000d12d0(uVar8,uVar10,uVar3)" (identifier "FUN_000d12d0") (argument_list "(uVar8,uVar10,uVar3)" (( "(") (identifier "uVar8") (, ",") (identifier "uVar10") (, ",") (identifier "uVar3") () ")"))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (labeled_statement "LAB_000da77b:\n  cVar2 = FUN_001a5190(DAT_004144e8);" (statement_identifier "LAB_000da77b") (: ":") (expression_statement "cVar2 = FUN_001a5190(DAT_004144e8);" (assignment_expression "cVar2 = FUN_001a5190(DAT_004144e8)" (identifier "cVar2") (= "=") (call_expression "FUN_001a5190(DAT_004144e8)" (identifier "FUN_001a5190") (argument_list "(DAT_004144e8)" (( "(") (identifier "DAT_004144e8") () ")")))) (; ";"))) (if_statement "if (cVar2 != '\0') {\n    piVar14 = *(int **)(param_5 + 0x244);\n    (**(code **)(*piVar14 + 0x18))(piVar14,param_4,param_5);\n    (**(code **)(*piVar14 + 0x1c))(piVar14,param_4);\n  }" (if "if") (parenthesized_expression "(cVar2 != '\0')" (( "(") (binary_expression "cVar2 != '\0'" (identifier "cVar2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    piVar14 = *(int **)(param_5 + 0x244);\n    (**(code **)(*piVar14 + 0x18))(piVar14,param_4,param_5);\n    (**(code **)(*piVar14 + 0x1c))(piVar14,param_4);\n  }" ({ "{") (expression_statement "piVar14 = *(int **)(param_5 + 0x244);" (assignment_expression "piVar14 = *(int **)(param_5 + 0x244)" (identifier "piVar14") (= "=") (pointer_expression "*(int **)(param_5 + 0x244)" (* "*") (cast_expression "(int **)(param_5 + 0x244)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_5 + 0x244)" (( "(") (binary_expression "param_5 + 0x244" (identifier "param_5") (+ "+") (number_literal "0x244")) () ")"))))) (; ";")) (expression_statement "(**(code **)(*piVar14 + 0x18))(piVar14,param_4,param_5);" (call_expression "(**(code **)(*piVar14 + 0x18))(piVar14,param_4,param_5)" (parenthesized_expression "(**(code **)(*piVar14 + 0x18))" (( "(") (pointer_expression "**(code **)(*piVar14 + 0x18)" (* "*") (pointer_expression "*(code **)(*piVar14 + 0x18)" (* "*") (cast_expression "(code **)(*piVar14 + 0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar14 + 0x18)" (( "(") (binary_expression "*piVar14 + 0x18" (pointer_expression "*piVar14" (* "*") (identifier "piVar14")) (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (argument_list "(piVar14,param_4,param_5)" (( "(") (identifier "piVar14") (, ",") (identifier "param_4") (, ",") (identifier "param_5") () ")"))) (; ";")) (expression_statement "(**(code **)(*piVar14 + 0x1c))(piVar14,param_4);" (call_expression "(**(code **)(*piVar14 + 0x1c))(piVar14,param_4)" (parenthesized_expression "(**(code **)(*piVar14 + 0x1c))" (( "(") (pointer_expression "**(code **)(*piVar14 + 0x1c)" (* "*") (pointer_expression "*(code **)(*piVar14 + 0x1c)" (* "*") (cast_expression "(code **)(*piVar14 + 0x1c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar14 + 0x1c)" (( "(") (binary_expression "*piVar14 + 0x1c" (pointer_expression "*piVar14" (* "*") (identifier "piVar14")) (+ "+") (number_literal "0x1c")) () ")"))))) () ")")) (argument_list "(piVar14,param_4)" (( "(") (identifier "piVar14") (, ",") (identifier "param_4") () ")"))) (; ";")) (} "}"))) (if_statement "if ((*(int *)(DAT_004144e8 + 8) != 0) && ((*(byte *)(DAT_004144e8 + 0x14) & 2) != 0)) {\n    FUN_001d9e80(*(undefined4 *)(param_5 + 4),*(undefined4 *)PTR_stderr_00413fbc);\n  }" (if "if") (parenthesized_expression "((*(int *)(DAT_004144e8 + 8) != 0) && ((*(byte *)(DAT_004144e8 + 0x14) & 2) != 0))" (( "(") (binary_expression "(*(int *)(DAT_004144e8 + 8) != 0) && ((*(byte *)(DAT_004144e8 + 0x14) & 2) != 0)" (parenthesized_expression "(*(int *)(DAT_004144e8 + 8) != 0)" (( "(") (binary_expression "*(int *)(DAT_004144e8 + 8) != 0" (pointer_expression "*(int *)(DAT_004144e8 + 8)" (* "*") (cast_expression "(int *)(DAT_004144e8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_004144e8 + 8)" (( "(") (binary_expression "DAT_004144e8 + 8" (identifier "DAT_004144e8") (+ "+") (number_literal "8")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)(DAT_004144e8 + 0x14) & 2) != 0)" (( "(") (binary_expression "(*(byte *)(DAT_004144e8 + 0x14) & 2) != 0" (parenthesized_expression "(*(byte *)(DAT_004144e8 + 0x14) & 2)" (( "(") (binary_expression "*(byte *)(DAT_004144e8 + 0x14) & 2" (pointer_expression "*(byte *)(DAT_004144e8 + 0x14)" (* "*") (cast_expression "(byte *)(DAT_004144e8 + 0x14)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_004144e8 + 0x14)" (( "(") (binary_expression "DAT_004144e8 + 0x14" (identifier "DAT_004144e8") (+ "+") (number_literal "0x14")) () ")")))) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    FUN_001d9e80(*(undefined4 *)(param_5 + 4),*(undefined4 *)PTR_stderr_00413fbc);\n  }" ({ "{") (expression_statement "FUN_001d9e80(*(undefined4 *)(param_5 + 4),*(undefined4 *)PTR_stderr_00413fbc);" (call_expression "FUN_001d9e80(*(undefined4 *)(param_5 + 4),*(undefined4 *)PTR_stderr_00413fbc)" (identifier "FUN_001d9e80") (argument_list "(*(undefined4 *)(param_5 + 4),*(undefined4 *)PTR_stderr_00413fbc)" (( "(") (pointer_expression "*(undefined4 *)(param_5 + 4)" (* "*") (cast_expression "(undefined4 *)(param_5 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 4)" (( "(") (binary_expression "param_5 + 4" (identifier "param_5") (+ "+") (number_literal "4")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)PTR_stderr_00413fbc" (* "*") (cast_expression "(undefined4 *)PTR_stderr_00413fbc" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_stderr_00413fbc"))) () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_00122e00(param_3);" (call_expression "FUN_00122e00(param_3)" (identifier "FUN_00122e00") (argument_list "(param_3)" (( "(") (identifier "param_3") () ")"))) (; ";")) (if_statement "if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;" (if "if") (parenthesized_expression "(*(int *)(DAT_004144e8 + 8) == 0)" (( "(") (binary_expression "*(int *)(DAT_004144e8 + 8) == 0" (pointer_expression "*(int *)(DAT_004144e8 + 8)" (* "*") (cast_expression "(int *)(DAT_004144e8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_004144e8 + 8)" (( "(") (binary_expression "DAT_004144e8 + 8" (identifier "DAT_004144e8") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000dac36;" (goto "goto") (statement_identifier "LAB_000dac36") (; ";"))) (if_statement "if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x4c2d) == '\0') {\n    FUN_001dc4a0(*(int *)(param_5 + 4) + 0x68,param_4);\n  }" (if "if") (parenthesized_expression "(*(char *)(*(int *)(DAT_004144e8 + 8) + 0x4c2d) == '\0')" (( "(") (binary_expression "*(char *)(*(int *)(DAT_004144e8 + 8) + 0x4c2d) == '\0'" (pointer_expression "*(char *)(*(int *)(DAT_004144e8 + 8) + 0x4c2d)" (* "*") (cast_expression "(char *)(*(int *)(DAT_004144e8 + 8) + 0x4c2d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_004144e8 + 8) + 0x4c2d)" (( "(") (binary_expression "*(int *)(DAT_004144e8 + 8) + 0x4c2d" (pointer_expression "*(int *)(DAT_004144e8 + 8)" (* "*") (cast_expression "(int *)(DAT_004144e8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_004144e8 + 8)" (( "(") (binary_expression "DAT_004144e8 + 8" (identifier "DAT_004144e8") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x4c2d")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    FUN_001dc4a0(*(int *)(param_5 + 4) + 0x68,param_4);\n  }" ({ "{") (expression_statement "FUN_001dc4a0(*(int *)(param_5 + 4) + 0x68,param_4);" (call_expression "FUN_001dc4a0(*(int *)(param_5 + 4) + 0x68,param_4)" (identifier "FUN_001dc4a0") (argument_list "(*(int *)(param_5 + 4) + 0x68,param_4)" (( "(") (binary_expression "*(int *)(param_5 + 4) + 0x68" (pointer_expression "*(int *)(param_5 + 4)" (* "*") (cast_expression "(int *)(param_5 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 4)" (( "(") (binary_expression "param_5 + 4" (identifier "param_5") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x68")) (, ",") (identifier "param_4") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_001121d0(param_5);" (call_expression "FUN_001121d0(param_5)" (identifier "FUN_001121d0") (argument_list "(param_5)" (( "(") (identifier "param_5") () ")"))) (; ";")) (expression_statement "FUN_001d9480(*(undefined4 *)(param_5 + 4),param_5);" (call_expression "FUN_001d9480(*(undefined4 *)(param_5 + 4),param_5)" (identifier "FUN_001d9480") (argument_list "(*(undefined4 *)(param_5 + 4),param_5)" (( "(") (pointer_expression "*(undefined4 *)(param_5 + 4)" (* "*") (cast_expression "(undefined4 *)(param_5 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 4)" (( "(") (binary_expression "param_5 + 4" (identifier "param_5") (+ "+") (number_literal "4")) () ")")))) (, ",") (identifier "param_5") () ")"))) (; ";")) (expression_statement "FUN_001112f0(param_5,param_4);" (call_expression "FUN_001112f0(param_5,param_4)" (identifier "FUN_001112f0") (argument_list "(param_5,param_4)" (( "(") (identifier "param_5") (, ",") (identifier "param_4") () ")"))) (; ";")) (expression_statement "FUN_001d94d0(*(undefined4 *)(param_5 + 4),param_4);" (call_expression "FUN_001d94d0(*(undefined4 *)(param_5 + 4),param_4)" (identifier "FUN_001d94d0") (argument_list "(*(undefined4 *)(param_5 + 4),param_4)" (( "(") (pointer_expression "*(undefined4 *)(param_5 + 4)" (* "*") (cast_expression "(undefined4 *)(param_5 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 4)" (( "(") (binary_expression "param_5 + 4" (identifier "param_5") (+ "+") (number_literal "4")) () ")")))) (, ",") (identifier "param_4") () ")"))) (; ";")) (expression_statement "piVar14 = *(int **)(DAT_004144e8 + 0xc);" (assignment_expression "piVar14 = *(int **)(DAT_004144e8 + 0xc)" (identifier "piVar14") (= "=") (pointer_expression "*(int **)(DAT_004144e8 + 0xc)" (* "*") (cast_expression "(int **)(DAT_004144e8 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(DAT_004144e8 + 0xc)" (( "(") (binary_expression "DAT_004144e8 + 0xc" (identifier "DAT_004144e8") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (piVar14 == (int *)0x0) {\n                    \n    FUN_000da200("../../gold/parameters.h",0x69,"target",extraout_ECX);\n  }" (if "if") (parenthesized_expression "(piVar14 == (int *)0x0)" (( "(") (binary_expression "piVar14 == (int *)0x0" (identifier "piVar14") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n    FUN_000da200("../../gold/parameters.h",0x69,"target",extraout_ECX);\n  }" ({ "{") (expression_statement "FUN_000da200("../../gold/parameters.h",0x69,"target",extraout_ECX);" (call_expression "FUN_000da200("../../gold/parameters.h",0x69,"target",extraout_ECX)" (identifier "FUN_000da200") (argument_list "("../../gold/parameters.h",0x69,"target",extraout_ECX)" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x69") (, ",") (string_literal ""target"" (" """) (string_content "target") (" """)) (, ",") (identifier "extraout_ECX") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_0010c300(param_5,piVar14);" (call_expression "FUN_0010c300(param_5,piVar14)" (identifier "FUN_0010c300") (argument_list "(param_5,piVar14)" (( "(") (identifier "param_5") (, ",") (identifier "piVar14") () ")"))) (; ";")) (if_statement "if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;" (if "if") (parenthesized_expression "(*(int *)(DAT_004144e8 + 8) == 0)" (( "(") (binary_expression "*(int *)(DAT_004144e8 + 8) == 0" (pointer_expression "*(int *)(DAT_004144e8 + 8)" (* "*") (cast_expression "(int *)(DAT_004144e8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_004144e8 + 8)" (( "(") (binary_expression "DAT_004144e8 + 8" (identifier "DAT_004144e8") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000dac36;" (goto "goto") (statement_identifier "LAB_000dac36") (; ";"))) (if_statement "if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) == '\0') {\n    FUN_0020afd0(param_4,param_5);\n    FUN_0010ee10(param_5,param_4);\n    if (*(code **)(*piVar14 + 0x84) != FUN_000a4200) {\n      (**(code **)(*piVar14 + 0x84))(piVar14,param_4,param_5);\n    }\n  }" (if "if") (parenthesized_expression "(*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) == '\0')" (( "(") (binary_expression "*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) == '\0'" (pointer_expression "*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d)" (* "*") (cast_expression "(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_004144e8 + 8) + 0x318d)" (( "(") (binary_expression "*(int *)(DAT_004144e8 + 8) + 0x318d" (pointer_expression "*(int *)(DAT_004144e8 + 8)" (* "*") (cast_expression "(int *)(DAT_004144e8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_004144e8 + 8)" (( "(") (binary_expression "DAT_004144e8 + 8" (identifier "DAT_004144e8") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x318d")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    FUN_0020afd0(param_4,param_5);\n    FUN_0010ee10(param_5,param_4);\n    if (*(code **)(*piVar14 + 0x84) != FUN_000a4200) {\n      (**(code **)(*piVar14 + 0x84))(piVar14,param_4,param_5);\n    }\n  }" ({ "{") (expression_statement "FUN_0020afd0(param_4,param_5);" (call_expression "FUN_0020afd0(param_4,param_5)" (identifier "FUN_0020afd0") (argument_list "(param_4,param_5)" (( "(") (identifier "param_4") (, ",") (identifier "param_5") () ")"))) (; ";")) (expression_statement "FUN_0010ee10(param_5,param_4);" (call_expression "FUN_0010ee10(param_5,param_4)" (identifier "FUN_0010ee10") (argument_list "(param_5,param_4)" (( "(") (identifier "param_5") (, ",") (identifier "param_4") () ")"))) (; ";")) (if_statement "if (*(code **)(*piVar14 + 0x84) != FUN_000a4200) {\n      (**(code **)(*piVar14 + 0x84))(piVar14,param_4,param_5);\n    }" (if "if") (parenthesized_expression "(*(code **)(*piVar14 + 0x84) != FUN_000a4200)" (( "(") (binary_expression "*(code **)(*piVar14 + 0x84) != FUN_000a4200" (pointer_expression "*(code **)(*piVar14 + 0x84)" (* "*") (cast_expression "(code **)(*piVar14 + 0x84)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar14 + 0x84)" (( "(") (binary_expression "*piVar14 + 0x84" (pointer_expression "*piVar14" (* "*") (identifier "piVar14")) (+ "+") (number_literal "0x84")) () ")")))) (!= "!=") (identifier "FUN_000a4200")) () ")")) (compound_statement "{\n      (**(code **)(*piVar14 + 0x84))(piVar14,param_4,param_5);\n    }" ({ "{") (expression_statement "(**(code **)(*piVar14 + 0x84))(piVar14,param_4,param_5);" (call_expression "(**(code **)(*piVar14 + 0x84))(piVar14,param_4,param_5)" (parenthesized_expression "(**(code **)(*piVar14 + 0x84))" (( "(") (pointer_expression "**(code **)(*piVar14 + 0x84)" (* "*") (pointer_expression "*(code **)(*piVar14 + 0x84)" (* "*") (cast_expression "(code **)(*piVar14 + 0x84)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar14 + 0x84)" (( "(") (binary_expression "*piVar14 + 0x84" (pointer_expression "*piVar14" (* "*") (identifier "piVar14")) (+ "+") (number_literal "0x84")) () ")"))))) () ")")) (argument_list "(piVar14,param_4,param_5)" (( "(") (identifier "piVar14") (, ",") (identifier "param_4") (, ",") (identifier "param_5") () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "FUN_001081d0(param_5,param_4);" (call_expression "FUN_001081d0(param_5,param_4)" (identifier "FUN_001081d0") (argument_list "(param_5,param_4)" (( "(") (identifier "param_5") (, ",") (identifier "param_4") () ")"))) (; ";")) (expression_statement "iVar4 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar4 = *(int *)(DAT_004144e8 + 8)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(DAT_004144e8 + 8)" (* "*") (cast_expression "(int *)(DAT_004144e8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_004144e8 + 8)" (( "(") (binary_expression "DAT_004144e8 + 8" (identifier "DAT_004144e8") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar4 == 0) goto LAB_000dac36;" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000dac36;" (goto "goto") (statement_identifier "LAB_000dac36") (; ";"))) (expression_statement "local_20 = (undefined1 *)0x0;" (assignment_expression "local_20 = (undefined1 *)0x0" (identifier "local_20") (= "=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (*(char *)(iVar4 + 0xb51) != '\0') {\n    local_20 = (undefined1 *)FUN_00246670(0x14);\n    *local_20 = 1;\n    *(undefined4 *)(local_20 + 8) = 0;\n    *(undefined4 *)(local_20 + 0xc) = 0;\n    *(undefined4 *)(local_20 + 0x10) = 0;\n    *(undefined4 *)(local_20 + 4) = 1;\n    puVar6 = (undefined4 *)FUN_00246670(0x34);\n    puVar6[1] = 0;\n    puVar6[9] = param_4;\n    puVar6[2] = puVar6 + 4;\n    puVar6[10] = param_5;\n    puVar6[3] = 0;\n    *(undefined1 *)(puVar6 + 4) = 0;\n    *(undefined1 *)(puVar6 + 8) = 0;\n    *puVar6 = &PTR_FUN_00408d4c;\n    puVar6[0xb] = param_7;\n    puVar6[0xc] = local_20;\n    FUN_002000e0(param_6,puVar6);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }" (if "if") (parenthesized_expression "(*(char *)(iVar4 + 0xb51) != '\0')" (( "(") (binary_expression "*(char *)(iVar4 + 0xb51) != '\0'" (pointer_expression "*(char *)(iVar4 + 0xb51)" (* "*") (cast_expression "(char *)(iVar4 + 0xb51)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xb51)" (( "(") (binary_expression "iVar4 + 0xb51" (identifier "iVar4") (+ "+") (number_literal "0xb51")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    local_20 = (undefined1 *)FUN_00246670(0x14);\n    *local_20 = 1;\n    *(undefined4 *)(local_20 + 8) = 0;\n    *(undefined4 *)(local_20 + 0xc) = 0;\n    *(undefined4 *)(local_20 + 0x10) = 0;\n    *(undefined4 *)(local_20 + 4) = 1;\n    puVar6 = (undefined4 *)FUN_00246670(0x34);\n    puVar6[1] = 0;\n    puVar6[9] = param_4;\n    puVar6[2] = puVar6 + 4;\n    puVar6[10] = param_5;\n    puVar6[3] = 0;\n    *(undefined1 *)(puVar6 + 4) = 0;\n    *(undefined1 *)(puVar6 + 8) = 0;\n    *puVar6 = &PTR_FUN_00408d4c;\n    puVar6[0xb] = param_7;\n    puVar6[0xc] = local_20;\n    FUN_002000e0(param_6,puVar6);\n    iVar4 = *(int *)(DAT_004144e8 + 8);\n    if (iVar4 == 0) goto LAB_000dac36;\n  }" ({ "{") (expression_statement "local_20 = (undefined1 *)FUN_00246670(0x14);" (assignment_expression "local_20 = (undefined1 *)FUN_00246670(0x14)" (identifier "local_20") (= "=") (cast_expression "(undefined1 *)FUN_00246670(0x14)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00246670(0x14)" (identifier "FUN_00246670") (argument_list "(0x14)" (( "(") (number_literal "0x14") () ")"))))) (; ";")) (expression_statement "*local_20 = 1;" (assignment_expression "*local_20 = 1" (pointer_expression "*local_20" (* "*") (identifier "local_20")) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)(local_20 + 8) = 0;" (assignment_expression "*(undefined4 *)(local_20 + 8) = 0" (pointer_expression "*(undefined4 *)(local_20 + 8)" (* "*") (cast_expression "(undefined4 *)(local_20 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_20 + 8)" (( "(") (binary_expression "local_20 + 8" (identifier "local_20") (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(local_20 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(local_20 + 0xc) = 0" (pointer_expression "*(undefined4 *)(local_20 + 0xc)" (* "*") (cast_expression "(undefined4 *)(local_20 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_20 + 0xc)" (( "(") (binary_expression "local_20 + 0xc" (identifier "local_20") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(local_20 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(local_20 + 0x10) = 0" (pointer_expression "*(undefined4 *)(local_20 + 0x10)" (* "*") (cast_expression "(undefined4 *)(local_20 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_20 + 0x10)" (( "(") (binary_expression "local_20 + 0x10" (identifier "local_20") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(local_20 + 4) = 1;" (assignment_expression "*(undefined4 *)(local_20 + 4) = 1" (pointer_expression "*(undefined4 *)(local_20 + 4)" (* "*") (cast_expression "(undefined4 *)(local_20 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_20 + 4)" (( "(") (binary_expression "local_20 + 4" (identifier "local_20") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar6 = (undefined4 *)FUN_00246670(0x34);" (assignment_expression "puVar6 = (undefined4 *)FUN_00246670(0x34)" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)FUN_00246670(0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00246670(0x34)" (identifier "FUN_00246670") (argument_list "(0x34)" (( "(") (number_literal "0x34") () ")"))))) (; ";")) (expression_statement "puVar6[1] = 0;" (assignment_expression "puVar6[1] = 0" (subscript_expression "puVar6[1]" (identifier "puVar6") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar6[9] = param_4;" (assignment_expression "puVar6[9] = param_4" (subscript_expression "puVar6[9]" (identifier "puVar6") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "param_4")) (; ";")) (expression_statement "puVar6[2] = puVar6 + 4;" (assignment_expression "puVar6[2] = puVar6 + 4" (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "puVar6 + 4" (identifier "puVar6") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "puVar6[10] = param_5;" (assignment_expression "puVar6[10] = param_5" (subscript_expression "puVar6[10]" (identifier "puVar6") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "param_5")) (; ";")) (expression_statement "puVar6[3] = 0;" (assignment_expression "puVar6[3] = 0" (subscript_expression "puVar6[3]" (identifier "puVar6") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(puVar6 + 4) = 0;" (assignment_expression "*(undefined1 *)(puVar6 + 4) = 0" (pointer_expression "*(undefined1 *)(puVar6 + 4)" (* "*") (cast_expression "(undefined1 *)(puVar6 + 4)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 4)" (( "(") (binary_expression "puVar6 + 4" (identifier "puVar6") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(puVar6 + 8) = 0;" (assignment_expression "*(undefined1 *)(puVar6 + 8) = 0" (pointer_expression "*(undefined1 *)(puVar6 + 8)" (* "*") (cast_expression "(undefined1 *)(puVar6 + 8)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 8)" (( "(") (binary_expression "puVar6 + 8" (identifier "puVar6") (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*puVar6 = &PTR_FUN_00408d4c;" (assignment_expression "*puVar6 = &PTR_FUN_00408d4c" (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) (= "=") (pointer_expression "&PTR_FUN_00408d4c" (& "&") (identifier "PTR_FUN_00408d4c"))) (; ";")) (expression_statement "puVar6[0xb] = param_7;" (assignment_expression "puVar6[0xb] = param_7" (subscript_expression "puVar6[0xb]" (identifier "puVar6") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "param_7")) (; ";")) (expression_statement "puVar6[0xc] = local_20;" (assignment_expression "puVar6[0xc] = local_20" (subscript_expression "puVar6[0xc]" (identifier "puVar6") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "local_20")) (; ";")) (expression_statement "FUN_002000e0(param_6,puVar6);" (call_expression "FUN_002000e0(param_6,puVar6)" (identifier "FUN_002000e0") (argument_list "(param_6,puVar6)" (( "(") (identifier "param_6") (, ",") (identifier "puVar6") () ")"))) (; ";")) (expression_statement "iVar4 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar4 = *(int *)(DAT_004144e8 + 8)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(DAT_004144e8 + 8)" (* "*") (cast_expression "(int *)(DAT_004144e8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_004144e8 + 8)" (( "(") (binary_expression "DAT_004144e8 + 8" (identifier "DAT_004144e8") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar4 == 0) goto LAB_000dac36;" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000dac36;" (goto "goto") (statement_identifier "LAB_000dac36") (; ";"))) (} "}"))) (expression_statement "piVar16 = (int *)*param_3;" (assignment_expression "piVar16 = (int *)*param_3" (identifier "piVar16") (= "=") (cast_expression "(int *)*param_3" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_3" (* "*") (identifier "param_3")))) (; ";")) (if_statement "if ((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)) {\n    if (piVar16 != (int *)param_3[1]) {\n      do {\n        piVar12 = piVar16 + 1;\n        puVar5 = (undefined1 *)FUN_00246670(0x14);\n        iVar4 = *piVar16;\n        *puVar5 = 1;\n        *(undefined4 *)(puVar5 + 8) = 0;\n        *(undefined4 *)(puVar5 + 0xc) = 0;\n        *(undefined4 *)(puVar5 + 0x10) = 0;\n        *(undefined4 *)(puVar5 + 4) = 1;\n        puVar6 = (undefined4 *)FUN_00246670(0x38);\n        puVar6[0xc] = local_20;\n        *puVar6 = &PTR_FUN_00408390;\n        puVar6[2] = puVar6 + 4;\n        puVar6[9] = param_4;\n        puVar6[1] = 0;\n        puVar6[10] = param_5;\n        puVar6[3] = 0;\n        *(undefined1 *)(puVar6 + 4) = 0;\n        *(undefined1 *)(puVar6 + 8) = 0;\n        puVar6[0xb] = iVar4;\n        puVar6[0xd] = puVar5;\n        FUN_002000e0(param_6,puVar6);\n        local_20 = puVar5;\n        piVar16 = piVar12;\n      } while ((int *)param_3[1] != piVar12);\n      goto LAB_000da9b3;\n    }\n  }\n  else if (piVar16 != (int *)param_3[1]) {\n    do {\n      piVar12 = piVar16 + 1;\n      puVar5 = (undefined1 *)FUN_00246670(0x14);\n      iVar4 = *piVar16;\n      *puVar5 = 1;\n      *(undefined4 *)(puVar5 + 8) = 0;\n      uVar3 = *(undefined4 *)(iVar4 + 0x50);\n      *(undefined4 *)(puVar5 + 0xc) = 0;\n      *(undefined4 *)(puVar5 + 0x10) = 0;\n      *(undefined4 *)(puVar5 + 4) = 1;\n      puVar6 = (undefined4 *)FUN_00246670(0x3c);\n      puVar6[0xd] = local_20;\n      *puVar6 = &PTR_FUN_004083d0;\n      puVar6[1] = 0;\n      puVar6[9] = param_4;\n      puVar6[2] = puVar6 + 4;\n      puVar6[10] = param_5;\n      puVar6[3] = 0;\n      *(undefined1 *)(puVar6 + 4) = 0;\n      *(undefined1 *)(puVar6 + 8) = 0;\n      puVar6[0xb] = iVar4;\n      puVar6[0xc] = uVar3;\n      puVar6[0xe] = puVar5;\n      FUN_002000e0(param_6,puVar6);\n      local_20 = puVar5;\n      piVar16 = piVar12;\n    } while ((int *)param_3[1] != piVar12);\n    goto LAB_000da9b3;\n  }" (if "if") (parenthesized_expression "((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0))" (( "(") (binary_expression "(*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)" (parenthesized_expression "(*(char *)(iVar4 + 0x18b1) == '\0')" (( "(") (binary_expression "*(char *)(iVar4 + 0x18b1) == '\0'" (pointer_expression "*(char *)(iVar4 + 0x18b1)" (* "*") (cast_expression "(char *)(iVar4 + 0x18b1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x18b1)" (( "(") (binary_expression "iVar4 + 0x18b1" (identifier "iVar4") (+ "+") (number_literal "0x18b1")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(iVar4 + 0x5934) == 0)" (( "(") (binary_expression "*(int *)(iVar4 + 0x5934) == 0" (pointer_expression "*(int *)(iVar4 + 0x5934)" (* "*") (cast_expression "(int *)(iVar4 + 0x5934)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x5934)" (( "(") (binary_expression "iVar4 + 0x5934" (identifier "iVar4") (+ "+") (number_literal "0x5934")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    if (piVar16 != (int *)param_3[1]) {\n      do {\n        piVar12 = piVar16 + 1;\n        puVar5 = (undefined1 *)FUN_00246670(0x14);\n        iVar4 = *piVar16;\n        *puVar5 = 1;\n        *(undefined4 *)(puVar5 + 8) = 0;\n        *(undefined4 *)(puVar5 + 0xc) = 0;\n        *(undefined4 *)(puVar5 + 0x10) = 0;\n        *(undefined4 *)(puVar5 + 4) = 1;\n        puVar6 = (undefined4 *)FUN_00246670(0x38);\n        puVar6[0xc] = local_20;\n        *puVar6 = &PTR_FUN_00408390;\n        puVar6[2] = puVar6 + 4;\n        puVar6[9] = param_4;\n        puVar6[1] = 0;\n        puVar6[10] = param_5;\n        puVar6[3] = 0;\n        *(undefined1 *)(puVar6 + 4) = 0;\n        *(undefined1 *)(puVar6 + 8) = 0;\n        puVar6[0xb] = iVar4;\n        puVar6[0xd] = puVar5;\n        FUN_002000e0(param_6,puVar6);\n        local_20 = puVar5;\n        piVar16 = piVar12;\n      } while ((int *)param_3[1] != piVar12);\n      goto LAB_000da9b3;\n    }\n  }" ({ "{") (if_statement "if (piVar16 != (int *)param_3[1]) {\n      do {\n        piVar12 = piVar16 + 1;\n        puVar5 = (undefined1 *)FUN_00246670(0x14);\n        iVar4 = *piVar16;\n        *puVar5 = 1;\n        *(undefined4 *)(puVar5 + 8) = 0;\n        *(undefined4 *)(puVar5 + 0xc) = 0;\n        *(undefined4 *)(puVar5 + 0x10) = 0;\n        *(undefined4 *)(puVar5 + 4) = 1;\n        puVar6 = (undefined4 *)FUN_00246670(0x38);\n        puVar6[0xc] = local_20;\n        *puVar6 = &PTR_FUN_00408390;\n        puVar6[2] = puVar6 + 4;\n        puVar6[9] = param_4;\n        puVar6[1] = 0;\n        puVar6[10] = param_5;\n        puVar6[3] = 0;\n        *(undefined1 *)(puVar6 + 4) = 0;\n        *(undefined1 *)(puVar6 + 8) = 0;\n        puVar6[0xb] = iVar4;\n        puVar6[0xd] = puVar5;\n        FUN_002000e0(param_6,puVar6);\n        local_20 = puVar5;\n        piVar16 = piVar12;\n      } while ((int *)param_3[1] != piVar12);\n      goto LAB_000da9b3;\n    }" (if "if") (parenthesized_expression "(piVar16 != (int *)param_3[1])" (( "(") (binary_expression "piVar16 != (int *)param_3[1]" (identifier "piVar16") (!= "!=") (cast_expression "(int *)param_3[1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")))) () ")")) (compound_statement "{\n      do {\n        piVar12 = piVar16 + 1;\n        puVar5 = (undefined1 *)FUN_00246670(0x14);\n        iVar4 = *piVar16;\n        *puVar5 = 1;\n        *(undefined4 *)(puVar5 + 8) = 0;\n        *(undefined4 *)(puVar5 + 0xc) = 0;\n        *(undefined4 *)(puVar5 + 0x10) = 0;\n        *(undefined4 *)(puVar5 + 4) = 1;\n        puVar6 = (undefined4 *)FUN_00246670(0x38);\n        puVar6[0xc] = local_20;\n        *puVar6 = &PTR_FUN_00408390;\n        puVar6[2] = puVar6 + 4;\n        puVar6[9] = param_4;\n        puVar6[1] = 0;\n        puVar6[10] = param_5;\n        puVar6[3] = 0;\n        *(undefined1 *)(puVar6 + 4) = 0;\n        *(undefined1 *)(puVar6 + 8) = 0;\n        puVar6[0xb] = iVar4;\n        puVar6[0xd] = puVar5;\n        FUN_002000e0(param_6,puVar6);\n        local_20 = puVar5;\n        piVar16 = piVar12;\n      } while ((int *)param_3[1] != piVar12);\n      goto LAB_000da9b3;\n    }" ({ "{") (do_statement "do {\n        piVar12 = piVar16 + 1;\n        puVar5 = (undefined1 *)FUN_00246670(0x14);\n        iVar4 = *piVar16;\n        *puVar5 = 1;\n        *(undefined4 *)(puVar5 + 8) = 0;\n        *(undefined4 *)(puVar5 + 0xc) = 0;\n        *(undefined4 *)(puVar5 + 0x10) = 0;\n        *(undefined4 *)(puVar5 + 4) = 1;\n        puVar6 = (undefined4 *)FUN_00246670(0x38);\n        puVar6[0xc] = local_20;\n        *puVar6 = &PTR_FUN_00408390;\n        puVar6[2] = puVar6 + 4;\n        puVar6[9] = param_4;\n        puVar6[1] = 0;\n        puVar6[10] = param_5;\n        puVar6[3] = 0;\n        *(undefined1 *)(puVar6 + 4) = 0;\n        *(undefined1 *)(puVar6 + 8) = 0;\n        puVar6[0xb] = iVar4;\n        puVar6[0xd] = puVar5;\n        FUN_002000e0(param_6,puVar6);\n        local_20 = puVar5;\n        piVar16 = piVar12;\n      } while ((int *)param_3[1] != piVar12);" (do "do") (compound_statement "{\n        piVar12 = piVar16 + 1;\n        puVar5 = (undefined1 *)FUN_00246670(0x14);\n        iVar4 = *piVar16;\n        *puVar5 = 1;\n        *(undefined4 *)(puVar5 + 8) = 0;\n        *(undefined4 *)(puVar5 + 0xc) = 0;\n        *(undefined4 *)(puVar5 + 0x10) = 0;\n        *(undefined4 *)(puVar5 + 4) = 1;\n        puVar6 = (undefined4 *)FUN_00246670(0x38);\n        puVar6[0xc] = local_20;\n        *puVar6 = &PTR_FUN_00408390;\n        puVar6[2] = puVar6 + 4;\n        puVar6[9] = param_4;\n        puVar6[1] = 0;\n        puVar6[10] = param_5;\n        puVar6[3] = 0;\n        *(undefined1 *)(puVar6 + 4) = 0;\n        *(undefined1 *)(puVar6 + 8) = 0;\n        puVar6[0xb] = iVar4;\n        puVar6[0xd] = puVar5;\n        FUN_002000e0(param_6,puVar6);\n        local_20 = puVar5;\n        piVar16 = piVar12;\n      }" ({ "{") (expression_statement "piVar12 = piVar16 + 1;" (assignment_expression "piVar12 = piVar16 + 1" (identifier "piVar12") (= "=") (binary_expression "piVar16 + 1" (identifier "piVar16") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar5 = (undefined1 *)FUN_00246670(0x14);" (assignment_expression "puVar5 = (undefined1 *)FUN_00246670(0x14)" (identifier "puVar5") (= "=") (cast_expression "(undefined1 *)FUN_00246670(0x14)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00246670(0x14)" (identifier "FUN_00246670") (argument_list "(0x14)" (( "(") (number_literal "0x14") () ")"))))) (; ";")) (expression_statement "iVar4 = *piVar16;" (assignment_expression "iVar4 = *piVar16" (identifier "iVar4") (= "=") (pointer_expression "*piVar16" (* "*") (identifier "piVar16"))) (; ";")) (expression_statement "*puVar5 = 1;" (assignment_expression "*puVar5 = 1" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)(puVar5 + 8) = 0;" (assignment_expression "*(undefined4 *)(puVar5 + 8) = 0" (pointer_expression "*(undefined4 *)(puVar5 + 8)" (* "*") (cast_expression "(undefined4 *)(puVar5 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 8)" (( "(") (binary_expression "puVar5 + 8" (identifier "puVar5") (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar5 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar5 + 0xc) = 0" (pointer_expression "*(undefined4 *)(puVar5 + 0xc)" (* "*") (cast_expression "(undefined4 *)(puVar5 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 0xc)" (( "(") (binary_expression "puVar5 + 0xc" (identifier "puVar5") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar5 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar5 + 0x10) = 0" (pointer_expression "*(undefined4 *)(puVar5 + 0x10)" (* "*") (cast_expression "(undefined4 *)(puVar5 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 0x10)" (( "(") (binary_expression "puVar5 + 0x10" (identifier "puVar5") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar5 + 4) = 1;" (assignment_expression "*(undefined4 *)(puVar5 + 4) = 1" (pointer_expression "*(undefined4 *)(puVar5 + 4)" (* "*") (cast_expression "(undefined4 *)(puVar5 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 4)" (( "(") (binary_expression "puVar5 + 4" (identifier "puVar5") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar6 = (undefined4 *)FUN_00246670(0x38);" (assignment_expression "puVar6 = (undefined4 *)FUN_00246670(0x38)" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)FUN_00246670(0x38)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00246670(0x38)" (identifier "FUN_00246670") (argument_list "(0x38)" (( "(") (number_literal "0x38") () ")"))))) (; ";")) (expression_statement "puVar6[0xc] = local_20;" (assignment_expression "puVar6[0xc] = local_20" (subscript_expression "puVar6[0xc]" (identifier "puVar6") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "local_20")) (; ";")) (expression_statement "*puVar6 = &PTR_FUN_00408390;" (assignment_expression "*puVar6 = &PTR_FUN_00408390" (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) (= "=") (pointer_expression "&PTR_FUN_00408390" (& "&") (identifier "PTR_FUN_00408390"))) (; ";")) (expression_statement "puVar6[2] = puVar6 + 4;" (assignment_expression "puVar6[2] = puVar6 + 4" (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "puVar6 + 4" (identifier "puVar6") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "puVar6[9] = param_4;" (assignment_expression "puVar6[9] = param_4" (subscript_expression "puVar6[9]" (identifier "puVar6") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "param_4")) (; ";")) (expression_statement "puVar6[1] = 0;" (assignment_expression "puVar6[1] = 0" (subscript_expression "puVar6[1]" (identifier "puVar6") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar6[10] = param_5;" (assignment_expression "puVar6[10] = param_5" (subscript_expression "puVar6[10]" (identifier "puVar6") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "param_5")) (; ";")) (expression_statement "puVar6[3] = 0;" (assignment_expression "puVar6[3] = 0" (subscript_expression "puVar6[3]" (identifier "puVar6") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(puVar6 + 4) = 0;" (assignment_expression "*(undefined1 *)(puVar6 + 4) = 0" (pointer_expression "*(undefined1 *)(puVar6 + 4)" (* "*") (cast_expression "(undefined1 *)(puVar6 + 4)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 4)" (( "(") (binary_expression "puVar6 + 4" (identifier "puVar6") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(puVar6 + 8) = 0;" (assignment_expression "*(undefined1 *)(puVar6 + 8) = 0" (pointer_expression "*(undefined1 *)(puVar6 + 8)" (* "*") (cast_expression "(undefined1 *)(puVar6 + 8)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 8)" (( "(") (binary_expression "puVar6 + 8" (identifier "puVar6") (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar6[0xb] = iVar4;" (assignment_expression "puVar6[0xb] = iVar4" (subscript_expression "puVar6[0xb]" (identifier "puVar6") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "iVar4")) (; ";")) (expression_statement "puVar6[0xd] = puVar5;" (assignment_expression "puVar6[0xd] = puVar5" (subscript_expression "puVar6[0xd]" (identifier "puVar6") ([ "[") (number_literal "0xd") (] "]")) (= "=") (identifier "puVar5")) (; ";")) (expression_statement "FUN_002000e0(param_6,puVar6);" (call_expression "FUN_002000e0(param_6,puVar6)" (identifier "FUN_002000e0") (argument_list "(param_6,puVar6)" (( "(") (identifier "param_6") (, ",") (identifier "puVar6") () ")"))) (; ";")) (expression_statement "local_20 = puVar5;" (assignment_expression "local_20 = puVar5" (identifier "local_20") (= "=") (identifier "puVar5")) (; ";")) (expression_statement "piVar16 = piVar12;" (assignment_expression "piVar16 = piVar12" (identifier "piVar16") (= "=") (identifier "piVar12")) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int *)param_3[1] != piVar12)" (( "(") (binary_expression "(int *)param_3[1] != piVar12" (cast_expression "(int *)param_3[1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) (!= "!=") (identifier "piVar12")) () ")")) (; ";")) (goto_statement "goto LAB_000da9b3;" (goto "goto") (statement_identifier "LAB_000da9b3") (; ";")) (} "}"))) (} "}")) (else_clause "else if (piVar16 != (int *)param_3[1]) {\n    do {\n      piVar12 = piVar16 + 1;\n      puVar5 = (undefined1 *)FUN_00246670(0x14);\n      iVar4 = *piVar16;\n      *puVar5 = 1;\n      *(undefined4 *)(puVar5 + 8) = 0;\n      uVar3 = *(undefined4 *)(iVar4 + 0x50);\n      *(undefined4 *)(puVar5 + 0xc) = 0;\n      *(undefined4 *)(puVar5 + 0x10) = 0;\n      *(undefined4 *)(puVar5 + 4) = 1;\n      puVar6 = (undefined4 *)FUN_00246670(0x3c);\n      puVar6[0xd] = local_20;\n      *puVar6 = &PTR_FUN_004083d0;\n      puVar6[1] = 0;\n      puVar6[9] = param_4;\n      puVar6[2] = puVar6 + 4;\n      puVar6[10] = param_5;\n      puVar6[3] = 0;\n      *(undefined1 *)(puVar6 + 4) = 0;\n      *(undefined1 *)(puVar6 + 8) = 0;\n      puVar6[0xb] = iVar4;\n      puVar6[0xc] = uVar3;\n      puVar6[0xe] = puVar5;\n      FUN_002000e0(param_6,puVar6);\n      local_20 = puVar5;\n      piVar16 = piVar12;\n    } while ((int *)param_3[1] != piVar12);\n    goto LAB_000da9b3;\n  }" (else "else") (if_statement "if (piVar16 != (int *)param_3[1]) {\n    do {\n      piVar12 = piVar16 + 1;\n      puVar5 = (undefined1 *)FUN_00246670(0x14);\n      iVar4 = *piVar16;\n      *puVar5 = 1;\n      *(undefined4 *)(puVar5 + 8) = 0;\n      uVar3 = *(undefined4 *)(iVar4 + 0x50);\n      *(undefined4 *)(puVar5 + 0xc) = 0;\n      *(undefined4 *)(puVar5 + 0x10) = 0;\n      *(undefined4 *)(puVar5 + 4) = 1;\n      puVar6 = (undefined4 *)FUN_00246670(0x3c);\n      puVar6[0xd] = local_20;\n      *puVar6 = &PTR_FUN_004083d0;\n      puVar6[1] = 0;\n      puVar6[9] = param_4;\n      puVar6[2] = puVar6 + 4;\n      puVar6[10] = param_5;\n      puVar6[3] = 0;\n      *(undefined1 *)(puVar6 + 4) = 0;\n      *(undefined1 *)(puVar6 + 8) = 0;\n      puVar6[0xb] = iVar4;\n      puVar6[0xc] = uVar3;\n      puVar6[0xe] = puVar5;\n      FUN_002000e0(param_6,puVar6);\n      local_20 = puVar5;\n      piVar16 = piVar12;\n    } while ((int *)param_3[1] != piVar12);\n    goto LAB_000da9b3;\n  }" (if "if") (parenthesized_expression "(piVar16 != (int *)param_3[1])" (( "(") (binary_expression "piVar16 != (int *)param_3[1]" (identifier "piVar16") (!= "!=") (cast_expression "(int *)param_3[1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")))) () ")")) (compound_statement "{\n    do {\n      piVar12 = piVar16 + 1;\n      puVar5 = (undefined1 *)FUN_00246670(0x14);\n      iVar4 = *piVar16;\n      *puVar5 = 1;\n      *(undefined4 *)(puVar5 + 8) = 0;\n      uVar3 = *(undefined4 *)(iVar4 + 0x50);\n      *(undefined4 *)(puVar5 + 0xc) = 0;\n      *(undefined4 *)(puVar5 + 0x10) = 0;\n      *(undefined4 *)(puVar5 + 4) = 1;\n      puVar6 = (undefined4 *)FUN_00246670(0x3c);\n      puVar6[0xd] = local_20;\n      *puVar6 = &PTR_FUN_004083d0;\n      puVar6[1] = 0;\n      puVar6[9] = param_4;\n      puVar6[2] = puVar6 + 4;\n      puVar6[10] = param_5;\n      puVar6[3] = 0;\n      *(undefined1 *)(puVar6 + 4) = 0;\n      *(undefined1 *)(puVar6 + 8) = 0;\n      puVar6[0xb] = iVar4;\n      puVar6[0xc] = uVar3;\n      puVar6[0xe] = puVar5;\n      FUN_002000e0(param_6,puVar6);\n      local_20 = puVar5;\n      piVar16 = piVar12;\n    } while ((int *)param_3[1] != piVar12);\n    goto LAB_000da9b3;\n  }" ({ "{") (do_statement "do {\n      piVar12 = piVar16 + 1;\n      puVar5 = (undefined1 *)FUN_00246670(0x14);\n      iVar4 = *piVar16;\n      *puVar5 = 1;\n      *(undefined4 *)(puVar5 + 8) = 0;\n      uVar3 = *(undefined4 *)(iVar4 + 0x50);\n      *(undefined4 *)(puVar5 + 0xc) = 0;\n      *(undefined4 *)(puVar5 + 0x10) = 0;\n      *(undefined4 *)(puVar5 + 4) = 1;\n      puVar6 = (undefined4 *)FUN_00246670(0x3c);\n      puVar6[0xd] = local_20;\n      *puVar6 = &PTR_FUN_004083d0;\n      puVar6[1] = 0;\n      puVar6[9] = param_4;\n      puVar6[2] = puVar6 + 4;\n      puVar6[10] = param_5;\n      puVar6[3] = 0;\n      *(undefined1 *)(puVar6 + 4) = 0;\n      *(undefined1 *)(puVar6 + 8) = 0;\n      puVar6[0xb] = iVar4;\n      puVar6[0xc] = uVar3;\n      puVar6[0xe] = puVar5;\n      FUN_002000e0(param_6,puVar6);\n      local_20 = puVar5;\n      piVar16 = piVar12;\n    } while ((int *)param_3[1] != piVar12);" (do "do") (compound_statement "{\n      piVar12 = piVar16 + 1;\n      puVar5 = (undefined1 *)FUN_00246670(0x14);\n      iVar4 = *piVar16;\n      *puVar5 = 1;\n      *(undefined4 *)(puVar5 + 8) = 0;\n      uVar3 = *(undefined4 *)(iVar4 + 0x50);\n      *(undefined4 *)(puVar5 + 0xc) = 0;\n      *(undefined4 *)(puVar5 + 0x10) = 0;\n      *(undefined4 *)(puVar5 + 4) = 1;\n      puVar6 = (undefined4 *)FUN_00246670(0x3c);\n      puVar6[0xd] = local_20;\n      *puVar6 = &PTR_FUN_004083d0;\n      puVar6[1] = 0;\n      puVar6[9] = param_4;\n      puVar6[2] = puVar6 + 4;\n      puVar6[10] = param_5;\n      puVar6[3] = 0;\n      *(undefined1 *)(puVar6 + 4) = 0;\n      *(undefined1 *)(puVar6 + 8) = 0;\n      puVar6[0xb] = iVar4;\n      puVar6[0xc] = uVar3;\n      puVar6[0xe] = puVar5;\n      FUN_002000e0(param_6,puVar6);\n      local_20 = puVar5;\n      piVar16 = piVar12;\n    }" ({ "{") (expression_statement "piVar12 = piVar16 + 1;" (assignment_expression "piVar12 = piVar16 + 1" (identifier "piVar12") (= "=") (binary_expression "piVar16 + 1" (identifier "piVar16") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar5 = (undefined1 *)FUN_00246670(0x14);" (assignment_expression "puVar5 = (undefined1 *)FUN_00246670(0x14)" (identifier "puVar5") (= "=") (cast_expression "(undefined1 *)FUN_00246670(0x14)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00246670(0x14)" (identifier "FUN_00246670") (argument_list "(0x14)" (( "(") (number_literal "0x14") () ")"))))) (; ";")) (expression_statement "iVar4 = *piVar16;" (assignment_expression "iVar4 = *piVar16" (identifier "iVar4") (= "=") (pointer_expression "*piVar16" (* "*") (identifier "piVar16"))) (; ";")) (expression_statement "*puVar5 = 1;" (assignment_expression "*puVar5 = 1" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)(puVar5 + 8) = 0;" (assignment_expression "*(undefined4 *)(puVar5 + 8) = 0" (pointer_expression "*(undefined4 *)(puVar5 + 8)" (* "*") (cast_expression "(undefined4 *)(puVar5 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 8)" (( "(") (binary_expression "puVar5 + 8" (identifier "puVar5") (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar3 = *(undefined4 *)(iVar4 + 0x50);" (assignment_expression "uVar3 = *(undefined4 *)(iVar4 + 0x50)" (identifier "uVar3") (= "=") (pointer_expression "*(undefined4 *)(iVar4 + 0x50)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x50)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x50)" (( "(") (binary_expression "iVar4 + 0x50" (identifier "iVar4") (+ "+") (number_literal "0x50")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar5 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar5 + 0xc) = 0" (pointer_expression "*(undefined4 *)(puVar5 + 0xc)" (* "*") (cast_expression "(undefined4 *)(puVar5 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 0xc)" (( "(") (binary_expression "puVar5 + 0xc" (identifier "puVar5") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar5 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar5 + 0x10) = 0" (pointer_expression "*(undefined4 *)(puVar5 + 0x10)" (* "*") (cast_expression "(undefined4 *)(puVar5 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 0x10)" (( "(") (binary_expression "puVar5 + 0x10" (identifier "puVar5") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar5 + 4) = 1;" (assignment_expression "*(undefined4 *)(puVar5 + 4) = 1" (pointer_expression "*(undefined4 *)(puVar5 + 4)" (* "*") (cast_expression "(undefined4 *)(puVar5 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 4)" (( "(") (binary_expression "puVar5 + 4" (identifier "puVar5") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar6 = (undefined4 *)FUN_00246670(0x3c);" (assignment_expression "puVar6 = (undefined4 *)FUN_00246670(0x3c)" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)FUN_00246670(0x3c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00246670(0x3c)" (identifier "FUN_00246670") (argument_list "(0x3c)" (( "(") (number_literal "0x3c") () ")"))))) (; ";")) (expression_statement "puVar6[0xd] = local_20;" (assignment_expression "puVar6[0xd] = local_20" (subscript_expression "puVar6[0xd]" (identifier "puVar6") ([ "[") (number_literal "0xd") (] "]")) (= "=") (identifier "local_20")) (; ";")) (expression_statement "*puVar6 = &PTR_FUN_004083d0;" (assignment_expression "*puVar6 = &PTR_FUN_004083d0" (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) (= "=") (pointer_expression "&PTR_FUN_004083d0" (& "&") (identifier "PTR_FUN_004083d0"))) (; ";")) (expression_statement "puVar6[1] = 0;" (assignment_expression "puVar6[1] = 0" (subscript_expression "puVar6[1]" (identifier "puVar6") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar6[9] = param_4;" (assignment_expression "puVar6[9] = param_4" (subscript_expression "puVar6[9]" (identifier "puVar6") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "param_4")) (; ";")) (expression_statement "puVar6[2] = puVar6 + 4;" (assignment_expression "puVar6[2] = puVar6 + 4" (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "puVar6 + 4" (identifier "puVar6") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "puVar6[10] = param_5;" (assignment_expression "puVar6[10] = param_5" (subscript_expression "puVar6[10]" (identifier "puVar6") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "param_5")) (; ";")) (expression_statement "puVar6[3] = 0;" (assignment_expression "puVar6[3] = 0" (subscript_expression "puVar6[3]" (identifier "puVar6") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(puVar6 + 4) = 0;" (assignment_expression "*(undefined1 *)(puVar6 + 4) = 0" (pointer_expression "*(undefined1 *)(puVar6 + 4)" (* "*") (cast_expression "(undefined1 *)(puVar6 + 4)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 4)" (( "(") (binary_expression "puVar6 + 4" (identifier "puVar6") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(puVar6 + 8) = 0;" (assignment_expression "*(undefined1 *)(puVar6 + 8) = 0" (pointer_expression "*(undefined1 *)(puVar6 + 8)" (* "*") (cast_expression "(undefined1 *)(puVar6 + 8)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 8)" (( "(") (binary_expression "puVar6 + 8" (identifier "puVar6") (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar6[0xb] = iVar4;" (assignment_expression "puVar6[0xb] = iVar4" (subscript_expression "puVar6[0xb]" (identifier "puVar6") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "iVar4")) (; ";")) (expression_statement "puVar6[0xc] = uVar3;" (assignment_expression "puVar6[0xc] = uVar3" (subscript_expression "puVar6[0xc]" (identifier "puVar6") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "puVar6[0xe] = puVar5;" (assignment_expression "puVar6[0xe] = puVar5" (subscript_expression "puVar6[0xe]" (identifier "puVar6") ([ "[") (number_literal "0xe") (] "]")) (= "=") (identifier "puVar5")) (; ";")) (expression_statement "FUN_002000e0(param_6,puVar6);" (call_expression "FUN_002000e0(param_6,puVar6)" (identifier "FUN_002000e0") (argument_list "(param_6,puVar6)" (( "(") (identifier "param_6") (, ",") (identifier "puVar6") () ")"))) (; ";")) (expression_statement "local_20 = puVar5;" (assignment_expression "local_20 = puVar5" (identifier "local_20") (= "=") (identifier "puVar5")) (; ";")) (expression_statement "piVar16 = piVar12;" (assignment_expression "piVar16 = piVar12" (identifier "piVar16") (= "=") (identifier "piVar12")) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int *)param_3[1] != piVar12)" (( "(") (binary_expression "(int *)param_3[1] != piVar12" (cast_expression "(int *)param_3[1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) (!= "!=") (identifier "piVar12")) () ")")) (; ";")) (goto_statement "goto LAB_000da9b3;" (goto "goto") (statement_identifier "LAB_000da9b3") (; ";")) (} "}"))))) (expression_statement "puVar5 = local_20;" (assignment_expression "puVar5 = local_20" (identifier "puVar5") (= "=") (identifier "local_20")) (; ";")) (if_statement "if (local_20 == (undefined1 *)0x0) {\n    puVar5 = (undefined1 *)FUN_00246670(0x14);\n    *puVar5 = 1;\n    *(undefined4 *)(puVar5 + 4) = 0;\n    *(undefined4 *)(puVar5 + 8) = 0;\n    *(undefined4 *)(puVar5 + 0xc) = 0;\n    *(undefined4 *)(puVar5 + 0x10) = 0;\n  }" (if "if") (parenthesized_expression "(local_20 == (undefined1 *)0x0)" (( "(") (binary_expression "local_20 == (undefined1 *)0x0" (identifier "local_20") (== "==") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    puVar5 = (undefined1 *)FUN_00246670(0x14);\n    *puVar5 = 1;\n    *(undefined4 *)(puVar5 + 4) = 0;\n    *(undefined4 *)(puVar5 + 8) = 0;\n    *(undefined4 *)(puVar5 + 0xc) = 0;\n    *(undefined4 *)(puVar5 + 0x10) = 0;\n  }" ({ "{") (expression_statement "puVar5 = (undefined1 *)FUN_00246670(0x14);" (assignment_expression "puVar5 = (undefined1 *)FUN_00246670(0x14)" (identifier "puVar5") (= "=") (cast_expression "(undefined1 *)FUN_00246670(0x14)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00246670(0x14)" (identifier "FUN_00246670") (argument_list "(0x14)" (( "(") (number_literal "0x14") () ")"))))) (; ";")) (expression_statement "*puVar5 = 1;" (assignment_expression "*puVar5 = 1" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)(puVar5 + 4) = 0;" (assignment_expression "*(undefined4 *)(puVar5 + 4) = 0" (pointer_expression "*(undefined4 *)(puVar5 + 4)" (* "*") (cast_expression "(undefined4 *)(puVar5 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 4)" (( "(") (binary_expression "puVar5 + 4" (identifier "puVar5") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar5 + 8) = 0;" (assignment_expression "*(undefined4 *)(puVar5 + 8) = 0" (pointer_expression "*(undefined4 *)(puVar5 + 8)" (* "*") (cast_expression "(undefined4 *)(puVar5 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 8)" (( "(") (binary_expression "puVar5 + 8" (identifier "puVar5") (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar5 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar5 + 0xc) = 0" (pointer_expression "*(undefined4 *)(puVar5 + 0xc)" (* "*") (cast_expression "(undefined4 *)(puVar5 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 0xc)" (( "(") (binary_expression "puVar5 + 0xc" (identifier "puVar5") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar5 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar5 + 0x10) = 0" (pointer_expression "*(undefined4 *)(puVar5 + 0x10)" (* "*") (cast_expression "(undefined4 *)(puVar5 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 0x10)" (( "(") (binary_expression "puVar5 + 0x10" (identifier "puVar5") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (labeled_statement "LAB_000da9b3:\n  puVar6 = (undefined4 *)FUN_00246670(0x1c);" (statement_identifier "LAB_000da9b3") (: ":") (expression_statement "puVar6 = (undefined4 *)FUN_00246670(0x1c);" (assignment_expression "puVar6 = (undefined4 *)FUN_00246670(0x1c)" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)FUN_00246670(0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00246670(0x1c)" (identifier "FUN_00246670") (argument_list "(0x1c)" (( "(") (number_literal "0x1c") () ")"))))) (; ";"))) (expression_statement "*puVar6 = &PTR_FUN_00406ca0;" (assignment_expression "*puVar6 = &PTR_FUN_00406ca0" (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) (= "=") (pointer_expression "&PTR_FUN_00406ca0" (& "&") (identifier "PTR_FUN_00406ca0"))) (; ";")) (expression_statement "puVar6[1] = param_1;" (assignment_expression "puVar6[1] = param_1" (subscript_expression "puVar6[1]" (identifier "puVar6") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "param_1")) (; ";")) (expression_statement "puVar6[2] = param_3;" (assignment_expression "puVar6[2] = param_3" (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "param_3")) (; ";")) (expression_statement "puVar6[3] = param_4;" (assignment_expression "puVar6[3] = param_4" (subscript_expression "puVar6[3]" (identifier "puVar6") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "param_4")) (; ";")) (expression_statement "puVar6[4] = piVar14;" (assignment_expression "puVar6[4] = piVar14" (subscript_expression "puVar6[4]" (identifier "puVar6") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "piVar14")) (; ";")) (expression_statement "puVar6[5] = param_5;" (assignment_expression "puVar6[5] = param_5" (subscript_expression "puVar6[5]" (identifier "puVar6") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "param_5")) (; ";")) (expression_statement "puVar6[6] = param_7;" (assignment_expression "puVar6[6] = param_7" (subscript_expression "puVar6[6]" (identifier "puVar6") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "param_7")) (; ";")) (expression_statement "puVar7 = (undefined4 *)FUN_00246670(0x30);" (assignment_expression "puVar7 = (undefined4 *)FUN_00246670(0x30)" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)FUN_00246670(0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00246670(0x30)" (identifier "FUN_00246670") (argument_list "(0x30)" (( "(") (number_literal "0x30") () ")"))))) (; ";")) (expression_statement "puVar7[1] = 0;" (assignment_expression "puVar7[1] = 0" (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[2] = puVar7 + 4;" (assignment_expression "puVar7[2] = puVar7 + 4" (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "puVar7 + 4" (identifier "puVar7") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "*puVar7 = &PTR_FUN_004066fc;" (assignment_expression "*puVar7 = &PTR_FUN_004066fc" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (pointer_expression "&PTR_FUN_004066fc" (& "&") (identifier "PTR_FUN_004066fc"))) (; ";")) (expression_statement "puVar7[3] = 0;" (assignment_expression "puVar7[3] = 0" (subscript_expression "puVar7[3]" (identifier "puVar7") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(puVar7 + 4) = 0;" (assignment_expression "*(undefined1 *)(puVar7 + 4) = 0" (pointer_expression "*(undefined1 *)(puVar7 + 4)" (* "*") (cast_expression "(undefined1 *)(puVar7 + 4)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 4)" (( "(") (binary_expression "puVar7 + 4" (identifier "puVar7") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(puVar7 + 8) = 0;" (assignment_expression "*(undefined1 *)(puVar7 + 8) = 0" (pointer_expression "*(undefined1 *)(puVar7 + 8)" (* "*") (cast_expression "(undefined1 *)(puVar7 + 8)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 8)" (( "(") (binary_expression "puVar7 + 8" (identifier "puVar7") (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[9] = puVar6;" (assignment_expression "puVar7[9] = puVar6" (subscript_expression "puVar7[9]" (identifier "puVar7") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "puVar6")) (; ";")) (expression_statement "puVar7[10] = puVar5;" (assignment_expression "puVar7[10] = puVar5" (subscript_expression "puVar7[10]" (identifier "puVar7") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "puVar5")) (; ";")) (expression_statement "puVar7[0xb] = "Task_function Layout_task_runner";" (assignment_expression "puVar7[0xb] = "Task_function Layout_task_runner"" (subscript_expression "puVar7[0xb]" (identifier "puVar7") ([ "[") (number_literal "0xb") (] "]")) (= "=") (string_literal ""Task_function Layout_task_runner"" (" """) (string_content "Task_function Layout_task_runner") (" """))) (; ";")) (expression_statement "FUN_002000e0(param_6,puVar7);" (call_expression "FUN_002000e0(param_6,puVar7)" (identifier "FUN_002000e0") (argument_list "(param_6,puVar7)" (( "(") (identifier "param_6") (, ",") (identifier "puVar7") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

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

void gold::function_1
               (type_1 *options,type_2 *task,type_3 *input_objects,
               type_4 *symtab,type_5 *layout,type_6 *workqueue,type_7 *mapfile)

{
}


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

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

void MASKED(int param_1,undefined4 param_2,int *param_3,int param_4,int param_5,
                 undefined4 param_6,undefined4 param_7)

{
  undefined1 uVar1;
  char cVar2;
  undefined4 uVar3;
  int iVar4;
  undefined1 *puVar5;
  undefined4 *puVar6;
  undefined4 *puVar7;
  undefined4 uVar8;
  char *pcVar9;
  undefined4 uVar10;
  uint uVar11;
  undefined4 extraout_ECX;
  int *piVar12;
  byte bVar13;
  int *piVar14;
  int iVar15;
  int *piVar16;
  undefined1 *local_20;
  
  if (*(int *)(DAT_004144e8 + 4) != 0) {
    FUN_001ffac0(*(int *)(DAT_004144e8 + 4),0);
  }
  if (((param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2) == 0) &&
     (*(int *)(param_5 + 0x244) == 0)) {
    FUN_001a5350();
  }
  FUN_001e9d80(param_4,param_5);
  iVar4 = *(int *)(DAT_004144e8 + 8);
  if (iVar4 == 0) goto LAB_000dac36;
  if (*(char *)(iVar4 + 0x18b1) != '\0') {
    uVar3 = FUN_001a50c0(DAT_004144e8);
    iVar4 = FUN_001e9100(param_4,uVar3,0);
    if (iVar4 != 0) {
      FUN_001e7b10(param_4,iVar4);
    }
    if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;
    iVar4 = FUN_001e9100(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1f20),0);
    if (iVar4 != 0) {
      if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {
        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {
          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));
          if (cVar2 == '\0') {
            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf2c;
            goto LAB_000dacd3;
          }
        }
        else if (*(int *)(iVar4 + 0xc) != 0) {
LAB_000dacd3:
          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf2c;
        }
      }
      else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {
LAB_000daf2c:
        FUN_001e7b10(param_4,iVar4);
      }
    }
    if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;
    iVar4 = FUN_001e9100(param_4,*(undefined4 *)(*(int *)(DAT_004144e8 + 8) + 0x1538),0);
    if (iVar4 != 0) {
      if ((*(byte *)(iVar4 + 0x2a) & 7) == 0) {
        if ((*(byte *)(iVar4 + 0x2b) & 0x20) == 0) {
          cVar2 = FUN_001e6ac0(*(int *)(iVar4 + 0xc));
          if (cVar2 == '\0') {
            if ((*(byte *)(iVar4 + 0x2a) & 7) != 0) goto LAB_000daf0d;
            goto LAB_000dad2d;
          }
        }
        else if (*(int *)(iVar4 + 0xc) != 0) {
LAB_000dad2d:
          if ((*(byte *)(*(int *)(iVar4 + 8) + 0x2c) & 1) == 0) goto LAB_000daf0d;
        }
      }
      else if ((*(byte *)(iVar4 + 0x2a) & 7) != 4) {
LAB_000daf0d:
        FUN_001e7b10(param_4,iVar4);
      }
    }
    FUN_001e95f0(param_4,param_5);
    if (*(int *)(param_4 + 0x158) == 0) {
                    /* WARNING: Subroutine does not return */
      FUN_000da200("../../gold/gold.cc",0x20b,"queue_middle_tasks",&__DT_PLTGOT);
    }
    FUN_00229ab0(*(int *)(param_4 + 0x158));
    iVar4 = *(int *)(DAT_004144e8 + 8);
    if (iVar4 == 0) goto LAB_000dac36;
  }
  if (*(int *)(iVar4 + 0x5934) == 0) {
    iVar4 = *(int *)(DAT_004144e8 + 8);
  }
  else {
    FUN_000ded60(*(undefined4 *)(param_4 + 0x15c),param_3,param_4);
    iVar4 = *(int *)(DAT_004144e8 + 8);
    if (iVar4 == 0) goto LAB_000dac36;
  }
  if ((((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)) &&
      (*(char *)(param_5 + 0x1ce) == '\0')) ||
     (piVar14 = (int *)*param_3, piVar14 == (int *)param_3[1])) {
    iVar4 = *(int *)(DAT_004144e8 + 8);
  }
  else {
    do {
      piVar16 = (int *)*piVar14;
      piVar12 = piVar16;
      if (piVar16[7] != 0) {
        FUN_000d2820(piVar16[7] + 0x1c,param_2);
        piVar12 = (int *)*piVar14;
      }
                    /* try { // try from 000da515 to 000da517 has its CatchHandler @ 000db0ab */
      (**(code **)(*piVar12 + 0x24))(piVar12,param_4,param_5,0);
      if (piVar16[7] != 0) {
        FUN_000d3850(piVar16[7] + 0x1c,param_2);
      }
      piVar14 = piVar14 + 1;
    } while ((int *)param_3[1] != piVar14);
    iVar4 = *(int *)(DAT_004144e8 + 8);
    if (iVar4 == 0) goto LAB_000dac36;
  }
  if (*(int *)(iVar4 + 0x593c) != 0) {
    FUN_001a6980(*(int *)(iVar4 + 0x593c));
  }
  FUN_00107c00(param_5);
  iVar4 = *(int *)(DAT_004144e8 + 8);
  if (iVar4 == 0) goto LAB_000dac36;
  if (((*(int *)(iVar4 + 0x593c) != 0) && (*(char *)(param_5 + 0x1cd) != '\0')) &&
     ((*(int *)(iVar4 + 0x36d8) == 0 &&
      (*(undefined4 **)(param_5 + 0x130) != *(undefined4 **)(param_5 + 0x134))))) {
    puVar6 = *(undefined4 **)(param_5 + 0x130);
    do {
      puVar7 = puVar6 + 1;
      FUN_0015d7d0(*puVar6,param_5 + 0x1ec);
      puVar6 = puVar7;
    } while (*(undefined4 **)(param_5 + 0x134) != puVar7);
    iVar4 = *(int *)(DAT_004144e8 + 8);
    if (iVar4 == 0) goto LAB_000dac36;
  }
  if ((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)) {
    iVar4 = *(int *)(param_1 + 0x3e70);
  }
  else {
    piVar14 = (int *)*param_3;
    if (piVar14 != (int *)param_3[1]) {
      do {
        piVar12 = (int *)*piVar14;
        piVar16 = (int *)piVar12[0x14];
        iVar4 = *piVar16;
        if (iVar4 != piVar16[1]) {
          while( true ) {
            iVar15 = *piVar12;
            uVar11 = *(uint *)(iVar4 + 4);
            if (*(code **)(iVar15 + 0x60) == FUN_000a5850) {
              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar11) {
                    /* WARNING: Subroutine does not return */
                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");
              }
              uVar3 = *(undefined4 *)(piVar12[0xe] + uVar11 * 4);
            }
            else {
              uVar3 = (**(code **)(iVar15 + 0x60))(piVar12,uVar11);
              uVar11 = *(uint *)(iVar4 + 4);
              piVar12 = (int *)*piVar14;
              iVar15 = *piVar12;
            }
            *(undefined4 *)(iVar4 + 0x14) = uVar3;
            uVar1 = (**(code **)(iVar15 + 0x88))(piVar12,uVar11);
            *(undefined1 *)(iVar4 + 0x18) = uVar1;
            if (piVar16[1] == iVar4 + 0x1c) break;
            piVar12 = (int *)*piVar14;
            iVar4 = iVar4 + 0x1c;
          }
        }
        piVar14 = piVar14 + 1;
      } while ((int *)param_3[1] != piVar14);
    }
    iVar4 = *(int *)(param_1 + 0x3e70);
  }
  if ((iVar4 == 0) &&
     (iVar4 = (param_3[4] - param_3[3] >> 2) + (param_3[1] - *param_3 >> 2), iVar4 < 2)) {
    iVar4 = 2;
  }
  FUN_002007c0(param_6,iVar4);
  if (param_3[4] == param_3[3]) {
    iVar4 = *(int *)(DAT_004144e8 + 8);
    if (iVar4 == 0) goto LAB_000dac36;
    if ((*(char *)(iVar4 + 0x1a25) != '\0') || (*(char *)(iVar4 + 0x2931) != '\0'))
    goto LAB_000da6a6;
    FUN_001a52b0(1);
  }
  else {
LAB_000da6a6:
    FUN_001a52b0(0);
    if (*(char *)(param_1 + 0x5938) != '\0') {
      if ((int *)param_3[3] == (int *)param_3[4]) {
                    /* WARNING: Subroutine does not return */
        FUN_000da200("../../gold/gold.cc",0x265,"queue_middle_tasks",&__DT_PLTGOT);
      }
      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);
      uVar10 = gettext("cannot mix -static with dynamic object %s");
      FUN_000d1330(uVar10,uVar3);
    }
    if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;
    if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) != '\0') {
      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);
      pcVar9 = "cannot mix -r with dynamic object %s";
LAB_000db04c:
      uVar10 = gettext(pcVar9);
                    /* WARNING: Subroutine does not return */
      FUN_000d12d0(uVar10,uVar3);
    }
    iVar4 = FUN_0014c1c0(param_1);
    if (iVar4 != 0) {
      uVar3 = *(undefined4 *)(*(int *)param_3[3] + 4);
      pcVar9 = "cannot use non-ELF output format with dynamic object %s";
      goto LAB_000db04c;
    }
  }
  if (*(int *)(DAT_004144e8 + 8) == 0) {
LAB_000dac36:
                    /* WARNING: Subroutine does not return */
    FUN_000da200("../../gold/parameters.h",0x5c,"options");
  }
  if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) != '\0') {
    piVar14 = (int *)*param_3;
    piVar16 = (int *)param_3[1];
    if (piVar16 != piVar14) {
      bVar13 = *(byte *)(*piVar14 + 0x2c) >> 2 & 1;
      if (piVar16 != piVar14 + 1) {
        iVar4 = piVar14[1];
        if ((*(byte *)(iVar4 + 0x2c) >> 2 & 1) == bVar13) {
          piVar12 = piVar14 + 2;
          do {
            if (piVar16 == piVar12) goto LAB_000da77b;
            iVar4 = *piVar12;
            piVar12 = piVar12 + 1;
          } while (bVar13 == (*(byte *)(iVar4 + 0x2c) >> 2 & 1));
        }
        uVar3 = *(undefined4 *)(iVar4 + 4);
        uVar10 = *(undefined4 *)(*piVar14 + 4);
        uVar8 = gettext("cannot mix split-stack \'%s\' and non-split-stack \'%s\' when using -r");
                    /* WARNING: Subroutine does not return */
        FUN_000d12d0(uVar8,uVar10,uVar3);
      }
    }
  }
LAB_000da77b:
  cVar2 = FUN_001a5190(DAT_004144e8);
  if (cVar2 != '\0') {
    piVar14 = *(int **)(param_5 + 0x244);
    (**(code **)(*piVar14 + 0x18))(piVar14,param_4,param_5);
    (**(code **)(*piVar14 + 0x1c))(piVar14,param_4);
  }
  if ((*(int *)(DAT_004144e8 + 8) != 0) && ((*(byte *)(DAT_004144e8 + 0x14) & 2) != 0)) {
    FUN_001d9e80(*(undefined4 *)(param_5 + 4),*(undefined4 *)PTR_stderr_00413fbc);
  }
  FUN_00122e00(param_3);
  if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;
  if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x4c2d) == '\0') {
    FUN_001dc4a0(*(int *)(param_5 + 4) + 0x68,param_4);
  }
  FUN_001121d0(param_5);
  FUN_001d9480(*(undefined4 *)(param_5 + 4),param_5);
  FUN_001112f0(param_5,param_4);
  FUN_001d94d0(*(undefined4 *)(param_5 + 4),param_4);
  piVar14 = *(int **)(DAT_004144e8 + 0xc);
  if (piVar14 == (int *)0x0) {
                    /* WARNING: Subroutine does not return */
    FUN_000da200("../../gold/parameters.h",0x69,"target",extraout_ECX);
  }
  FUN_0010c300(param_5,piVar14);
  if (*(int *)(DAT_004144e8 + 8) == 0) goto LAB_000dac36;
  if (*(char *)(*(int *)(DAT_004144e8 + 8) + 0x318d) == '\0') {
    FUN_0020afd0(param_4,param_5);
    FUN_0010ee10(param_5,param_4);
    if (*(code **)(*piVar14 + 0x84) != FUN_000a4200) {
      (**(code **)(*piVar14 + 0x84))(piVar14,param_4,param_5);
    }
  }
  FUN_001081d0(param_5,param_4);
  iVar4 = *(int *)(DAT_004144e8 + 8);
  if (iVar4 == 0) goto LAB_000dac36;
  local_20 = (undefined1 *)0x0;
  if (*(char *)(iVar4 + 0xb51) != '\0') {
    local_20 = (undefined1 *)FUN_00246670(0x14);
    *local_20 = 1;
    *(undefined4 *)(local_20 + 8) = 0;
    *(undefined4 *)(local_20 + 0xc) = 0;
    *(undefined4 *)(local_20 + 0x10) = 0;
    *(undefined4 *)(local_20 + 4) = 1;
    puVar6 = (undefined4 *)FUN_00246670(0x34);
    puVar6[1] = 0;
    puVar6[9] = param_4;
    puVar6[2] = puVar6 + 4;
    puVar6[10] = param_5;
    puVar6[3] = 0;
    *(undefined1 *)(puVar6 + 4) = 0;
    *(undefined1 *)(puVar6 + 8) = 0;
    *puVar6 = &PTR_FUN_00408d4c;
    puVar6[0xb] = param_7;
    puVar6[0xc] = local_20;
    FUN_002000e0(param_6,puVar6);
    iVar4 = *(int *)(DAT_004144e8 + 8);
    if (iVar4 == 0) goto LAB_000dac36;
  }
  piVar16 = (int *)*param_3;
  if ((*(char *)(iVar4 + 0x18b1) == '\0') && (*(int *)(iVar4 + 0x5934) == 0)) {
    if (piVar16 != (int *)param_3[1]) {
      do {
        piVar12 = piVar16 + 1;
        puVar5 = (undefined1 *)FUN_00246670(0x14);
        iVar4 = *piVar16;
        *puVar5 = 1;
        *(undefined4 *)(puVar5 + 8) = 0;
        *(undefined4 *)(puVar5 + 0xc) = 0;
        *(undefined4 *)(puVar5 + 0x10) = 0;
        *(undefined4 *)(puVar5 + 4) = 1;
        puVar6 = (undefined4 *)FUN_00246670(0x38);
        puVar6[0xc] = local_20;
        *puVar6 = &PTR_FUN_00408390;
        puVar6[2] = puVar6 + 4;
        puVar6[9] = param_4;
        puVar6[1] = 0;
        puVar6[10] = param_5;
        puVar6[3] = 0;
        *(undefined1 *)(puVar6 + 4) = 0;
        *(undefined1 *)(puVar6 + 8) = 0;
        puVar6[0xb] = iVar4;
        puVar6[0xd] = puVar5;
        FUN_002000e0(param_6,puVar6);
        local_20 = puVar5;
        piVar16 = piVar12;
      } while ((int *)param_3[1] != piVar12);
      goto LAB_000da9b3;
    }
  }
  else if (piVar16 != (int *)param_3[1]) {
    do {
      piVar12 = piVar16 + 1;
      puVar5 = (undefined1 *)FUN_00246670(0x14);
      iVar4 = *piVar16;
      *puVar5 = 1;
      *(undefined4 *)(puVar5 + 8) = 0;
      uVar3 = *(undefined4 *)(iVar4 + 0x50);
      *(undefined4 *)(puVar5 + 0xc) = 0;
      *(undefined4 *)(puVar5 + 0x10) = 0;
      *(undefined4 *)(puVar5 + 4) = 1;
      puVar6 = (undefined4 *)FUN_00246670(0x3c);
      puVar6[0xd] = local_20;
      *puVar6 = &PTR_FUN_004083d0;
      puVar6[1] = 0;
      puVar6[9] = param_4;
      puVar6[2] = puVar6 + 4;
      puVar6[10] = param_5;
      puVar6[3] = 0;
      *(undefined1 *)(puVar6 + 4) = 0;
      *(undefined1 *)(puVar6 + 8) = 0;
      puVar6[0xb] = iVar4;
      puVar6[0xc] = uVar3;
      puVar6[0xe] = puVar5;
      FUN_002000e0(param_6,puVar6);
      local_20 = puVar5;
      piVar16 = piVar12;
    } while ((int *)param_3[1] != piVar12);
    goto LAB_000da9b3;
  }
  puVar5 = local_20;
  if (local_20 == (undefined1 *)0x0) {
    puVar5 = (undefined1 *)FUN_00246670(0x14);
    *puVar5 = 1;
    *(undefined4 *)(puVar5 + 4) = 0;
    *(undefined4 *)(puVar5 + 8) = 0;
    *(undefined4 *)(puVar5 + 0xc) = 0;
    *(undefined4 *)(puVar5 + 0x10) = 0;
  }
LAB_000da9b3:
  puVar6 = (undefined4 *)FUN_00246670(0x1c);
  *puVar6 = &PTR_FUN_00406ca0;
  puVar6[1] = param_1;
  puVar6[2] = param_3;
  puVar6[3] = param_4;
  puVar6[4] = piVar14;
  puVar6[5] = param_5;
  puVar6[6] = param_7;
  puVar7 = (undefined4 *)FUN_00246670(0x30);
  puVar7[1] = 0;
  puVar7[2] = puVar7 + 4;
  *puVar7 = &PTR_FUN_004066fc;
  puVar7[3] = 0;
  *(undefined1 *)(puVar7 + 4) = 0;
  *(undefined1 *)(puVar7 + 8) = 0;
  puVar7[9] = puVar6;
  puVar7[10] = puVar5;
  puVar7[0xb] = "Task_function Layout_task_runner";
  FUN_002000e0(param_6,puVar7);
  return;
}

