
/* DWARF original name: sized_create_gnu_hash_table<64, true> */

void gold::Dynobj::sized_create_gnu_hash_table<64,_true>
               (vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *hashed_dynsyms,
               vector<unsigned_int,_std::allocator<unsigned_int>_> *dynsym_hashvals,
               uint unhashed_dynsym_count,uchar **pphash,uint *phashlen)

{
  int *piVar1;
  pointer ppSVar2;
  int iVar3;
  pointer puVar4;
  Symbol *pSVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  void *pvVar9;
  void *pvVar10;
  uint *puVar11;
  undefined8 *puVar12;
  undefined8 *puVar13;
  uchar *puVar14;
  long lVar15;
  uint uVar16;
  long lVar17;
  uint *puVar18;
  ulong uVar19;
  pointer ppSVar20;
  ulong uVar21;
  uint *puVar22;
  ulong uVar23;
  bool bVar24;
  uint local_70;
  uint local_6c;
  uint local_40;
  
  if ((hashed_dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.
      _M_finish ==
      (hashed_dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.
      _M_start) {
    puVar14 = (uchar *)operator_new__(0x1c);
    puVar14[0] = '\0';
    puVar14[1] = '\0';
    puVar14[2] = '\0';
    puVar14[3] = '\x01';
    *phashlen = 0x1c;
    puVar14[8] = '\0';
    puVar14[9] = '\0';
    puVar14[10] = '\0';
    puVar14[0xb] = '\x01';
    puVar14[0xc] = '\0';
    puVar14[0xd] = '\0';
    puVar14[0xe] = '\0';
    puVar14[0xf] = '\0';
    *(uint *)(puVar14 + 4) =
         unhashed_dynsym_count >> 0x18 | (unhashed_dynsym_count & 0xff0000) >> 8 |
         (unhashed_dynsym_count & 0xff00) << 8 | unhashed_dynsym_count << 0x18;
    puVar14[0x10] = '\0';
    puVar14[0x11] = '\0';
    puVar14[0x12] = '\0';
    puVar14[0x13] = '\0';
    puVar14[0x14] = '\0';
    puVar14[0x15] = '\0';
    puVar14[0x16] = '\0';
    puVar14[0x17] = '\0';
    puVar14[0x18] = '\0';
    puVar14[0x19] = '\0';
    puVar14[0x1a] = '\0';
    puVar14[0x1b] = '\0';
    *pphash = puVar14;
    return;
  }
  uVar6 = compute_bucket_count(dynsym_hashvals,true);
  uVar7 = (uint)((long)(hashed_dynsyms->
                       super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.
                       _M_finish -
                 (long)(hashed_dynsyms->
                       super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.
                       _M_start >> 3);
  uVar8 = uVar7 >> 1;
  if (uVar8 == 0) {
LAB_001da120:
    local_40 = 1;
    uVar21 = 8;
    uVar19 = 1;
    local_6c = 0x40;
    local_70 = 6;
LAB_001da142:
    puVar12 = (undefined8 *)operator_new(uVar21);
    puVar13 = puVar12;
    do {
      *puVar13 = 0;
      puVar13 = puVar13 + 1;
    } while (puVar13 != puVar12 + uVar19);
    if (uVar6 != 0) goto LAB_001d9e70;
LAB_001da16d:
    pvVar10 = (void *)0x0;
    pvVar9 = (void *)0x0;
    if (uVar7 == 0) goto LAB_001d9f2b;
LAB_001d9ed4:
    lVar15 = 0;
    puVar4 = (dynsym_hashvals->super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>).
             _M_impl._M_start;
    do {
      puVar11 = puVar4 + lVar15;
      lVar15 = lVar15 + 1;
      piVar1 = (int *)((long)pvVar9 + ((ulong)*puVar11 % (ulong)uVar6) * 4);
      *piVar1 = *piVar1 + 1;
    } while ((uint)lVar15 < uVar7);
  }
  else {
    uVar16 = 1;
    do {
      local_70 = uVar16;
      uVar8 = uVar8 >> 1;
      uVar16 = local_70 + 1;
    } while (uVar8 != 0);
    if (local_70 + 1 < 3) goto LAB_001da120;
    if ((uVar7 >> (local_70 - 1 & 0x1f) & 1) == 0) {
      local_70 = local_70 + 3;
      if (local_70 == 5) goto LAB_001da120;
    }
    else {
      local_70 = local_70 + 4;
    }
    puVar12 = (undefined8 *)0x0;
    local_6c = 1 << ((byte)local_70 & 0x1f);
    local_40 = 1 << ((byte)local_70 - 6 & 0x1f);
    uVar19 = (ulong)local_40;
    if (local_40 != 0) {
      uVar21 = uVar19 * 8;
      goto LAB_001da142;
    }
    if (uVar6 == 0) goto LAB_001da16d;
LAB_001d9e70:
    uVar21 = (ulong)uVar6 * 4;
                    /* try { // try from 001d9e80 to 001d9e84 has its CatchHandler @ 001da1ff */
    pvVar9 = operator_new(uVar21);
    uVar19 = 0;
    do {
      uVar23 = uVar19;
      *(undefined4 *)((long)pvVar9 + uVar23 * 4) = 0;
      uVar19 = uVar23 + 1;
    } while ((ulong)uVar6 != uVar23 + 1);
                    /* try { // try from 001d9ea9 to 001d9ead has its CatchHandler @ 001da209 */
    pvVar10 = operator_new(uVar21);
    uVar21 = 0;
    do {
      *(undefined4 *)((long)pvVar10 + uVar21 * 4) = 0;
      bVar24 = uVar23 != uVar21;
      uVar21 = uVar21 + 1;
    } while (bVar24);
    if (uVar7 != 0) goto LAB_001d9ed4;
  }
  if (uVar6 != 0) {
    uVar21 = 0;
    uVar8 = unhashed_dynsym_count;
    do {
      *(uint *)((long)pvVar10 + uVar21 * 4) = uVar8;
      uVar8 = uVar8 + *(int *)((long)pvVar9 + uVar21 * 4);
      bVar24 = uVar6 - 1 != uVar21;
      uVar21 = uVar21 + 1;
    } while (bVar24);
  }
LAB_001d9f2b:
  uVar8 = (local_6c >> 3) + (uVar6 + 4 + uVar7) * 4;
                    /* try { // try from 001d9f4b to 001d9f4f has its CatchHandler @ 001da204 */
  puVar11 = (uint *)operator_new__((ulong)uVar8);
  *puVar11 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;
  lVar15 = (long)puVar11 + (ulong)(local_6c >> 3) + 0x10;
  puVar11[1] = unhashed_dynsym_count >> 0x18 | (unhashed_dynsym_count & 0xff0000) >> 8 |
               (unhashed_dynsym_count & 0xff00) << 8 | unhashed_dynsym_count << 0x18;
  puVar11[2] = local_40 >> 0x18 | (local_40 & 0xff0000) >> 8 | (local_40 & 0xff00) << 8 |
               local_40 << 0x18;
  puVar11[3] = local_70 >> 0x18 | (local_70 & 0xff0000) >> 8 | (local_70 & 0xff00) << 8 |
               local_70 << 0x18;
  if (uVar6 != 0) {
    uVar21 = 0;
    do {
      uVar16 = *(uint *)((long)pvVar9 + uVar21 * 4);
      if (uVar16 != 0) {
        uVar16 = *(uint *)((long)pvVar10 + uVar21 * 4);
        uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18
        ;
      }
      *(uint *)(lVar15 + uVar21 * 4) = uVar16;
      bVar24 = uVar6 - 1 != uVar21;
      uVar21 = uVar21 + 1;
    } while (bVar24);
    lVar15 = lVar15 + ((ulong)(uVar6 - 1) + 1) * 4;
  }
  if (uVar7 != 0) {
    ppSVar20 = (hashed_dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).
               _M_impl._M_start;
    puVar22 = (dynsym_hashvals->super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>).
              _M_impl._M_start;
    ppSVar2 = ppSVar20 + (ulong)(uVar7 - 1) + 1;
    do {
      uVar7 = *puVar22;
      pSVar5 = *ppSVar20;
      puVar12[uVar7 >> 6 & (local_6c >> 6) - 1] =
           puVar12[uVar7 >> 6 & (local_6c >> 6) - 1] |
           1L << ((byte)(uVar7 >> ((byte)local_70 & 0x1f)) & 0x3f) | 1L << ((byte)uVar7 & 0x3f);
      lVar17 = ((ulong)uVar7 % (ulong)uVar6) * 4;
      piVar1 = (int *)((long)pvVar9 + lVar17);
      iVar3 = *piVar1;
      uVar16 = uVar7 & 0xfffffffe;
      if (iVar3 == 1) {
        uVar16 = uVar7 & 0xfffffffe | 1;
      }
      puVar18 = (uint *)(lVar17 + (long)pvVar10);
      uVar7 = *puVar18;
      *piVar1 = iVar3 + -1;
      *(uint *)(lVar15 + (ulong)((uVar7 - unhashed_dynsym_count) * 4)) =
           uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;
      if (uVar7 == 0) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 001da1fa to 001da1fe has its CatchHandler @ 001da204 */
        do_gold_unreachable("../../gold/symtab.h",0x1a2,"set_dynsym_index");
      }
      pSVar5->dynsym_index_ = uVar7;
      ppSVar20 = ppSVar20 + 1;
      puVar22 = puVar22 + 1;
      *puVar18 = uVar7 + 1;
    } while (ppSVar2 != ppSVar20);
  }
  if (local_40 != 0) {
    uVar21 = 0;
    do {
      uVar19 = puVar12[uVar21];
      *(ulong *)(puVar11 + uVar21 * 2 + 4) =
           uVar19 >> 0x38 | (uVar19 & 0xff000000000000) >> 0x28 | (uVar19 & 0xff0000000000) >> 0x18
           | (uVar19 & 0xff00000000) >> 8 | (uVar19 & 0xff000000) << 8 | (uVar19 & 0xff0000) << 0x18
           | (uVar19 & 0xff00) << 0x28 | uVar19 << 0x38;
      bVar24 = uVar21 != local_40 - 1;
      uVar21 = uVar21 + 1;
    } while (bVar24);
  }
  *phashlen = uVar8;
  *pphash = (uchar *)puVar11;
  if (pvVar10 != (void *)0x0) {
    operator_delete(pvVar10);
  }
  if (pvVar9 != (void *)0x0) {
    operator_delete(pvVar9);
  }
  if (puVar12 == (undefined8 *)0x0) {
    return;
  }
  operator_delete(puVar12);
  return;
}



void FUN_001d9da0(long *param_1,long *param_2,uint param_3,undefined8 *param_4,int *param_5)

{
  int *piVar1;
  long *plVar2;
  int iVar3;
  int iVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  long lVar9;
  long lVar10;
  uint *puVar11;
  undefined8 *puVar12;
  undefined8 *puVar13;
  undefined4 *puVar14;
  long lVar15;
  long lVar16;
  int *piVar17;
  ulong uVar18;
  uint *puVar19;
  long lVar20;
  ulong uVar21;
  bool bVar22;
  uint local_70;
  uint local_6c;
  uint local_40;
  
  if (param_1[1] == *param_1) {
    puVar14 = (undefined4 *)thunk_FUN_00337280(0x1c);
    *puVar14 = 0x1000000;
    *param_5 = 0x1c;
    *(undefined8 *)(puVar14 + 2) = 0x1000000;
    puVar14[1] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |
                 param_3 << 0x18;
    *(undefined8 *)(puVar14 + 4) = 0;
    puVar14[6] = 0;
    *param_4 = puVar14;
    return;
  }
  uVar6 = FUN_001d5250(param_2,1);
  uVar7 = (uint)(param_1[1] - *param_1 >> 3);
  uVar8 = uVar7 >> 1;
  if (uVar8 == 0) {
LAB_001da120:
    local_40 = 1;
    lVar9 = 8;
    uVar18 = 1;
    local_6c = 0x40;
    local_70 = 6;
LAB_001da142:
    puVar12 = (undefined8 *)FUN_00337280(lVar9);
    puVar13 = puVar12;
    do {
      *puVar13 = 0;
      puVar13 = puVar13 + 1;
    } while (puVar13 != puVar12 + uVar18);
    if (uVar6 != 0) goto LAB_001d9e70;
LAB_001da16d:
    lVar10 = 0;
    lVar9 = 0;
    if (uVar7 == 0) goto LAB_001d9f2b;
LAB_001d9ed4:
    lVar15 = 0;
    lVar20 = *param_2;
    do {
      lVar16 = lVar15 * 4;
      lVar15 = lVar15 + 1;
      piVar1 = (int *)(lVar9 + ((ulong)*(uint *)(lVar20 + lVar16) % (ulong)uVar6) * 4);
      *piVar1 = *piVar1 + 1;
    } while ((uint)lVar15 < uVar7);
  }
  else {
    uVar5 = 1;
    do {
      local_70 = uVar5;
      uVar8 = uVar8 >> 1;
      uVar5 = local_70 + 1;
    } while (uVar8 != 0);
    if (local_70 + 1 < 3) goto LAB_001da120;
    if ((uVar7 >> (local_70 - 1 & 0x1f) & 1) == 0) {
      local_70 = local_70 + 3;
      if (local_70 == 5) goto LAB_001da120;
    }
    else {
      local_70 = local_70 + 4;
    }
    puVar12 = (undefined8 *)0x0;
    local_6c = 1 << ((byte)local_70 & 0x1f);
    local_40 = 1 << ((byte)local_70 - 6 & 0x1f);
    uVar18 = (ulong)local_40;
    if (local_40 != 0) {
      lVar9 = uVar18 * 8;
      goto LAB_001da142;
    }
    if (uVar6 == 0) goto LAB_001da16d;
LAB_001d9e70:
    lVar10 = (ulong)uVar6 * 4;
                    /* try { // try from 001d9e80 to 001d9e84 has its CatchHandler @ 001da1ff */
    lVar9 = FUN_00337280(lVar10);
    uVar18 = 0;
    do {
      uVar21 = uVar18;
      *(undefined4 *)(lVar9 + uVar21 * 4) = 0;
      uVar18 = uVar21 + 1;
    } while ((ulong)uVar6 != uVar21 + 1);
                    /* try { // try from 001d9ea9 to 001d9ead has its CatchHandler @ 001da209 */
    lVar10 = FUN_00337280(lVar10);
    uVar18 = 0;
    do {
      *(undefined4 *)(lVar10 + uVar18 * 4) = 0;
      bVar22 = uVar21 != uVar18;
      uVar18 = uVar18 + 1;
    } while (bVar22);
    if (uVar7 != 0) goto LAB_001d9ed4;
  }
  if (uVar6 != 0) {
    uVar18 = 0;
    uVar8 = param_3;
    do {
      *(uint *)(lVar10 + uVar18 * 4) = uVar8;
      uVar8 = uVar8 + *(int *)(lVar9 + uVar18 * 4);
      bVar22 = uVar6 - 1 != uVar18;
      uVar18 = uVar18 + 1;
    } while (bVar22);
  }
LAB_001d9f2b:
                    /* try { // try from 001d9f4b to 001d9f4f has its CatchHandler @ 001da204 */
  puVar11 = (uint *)thunk_FUN_00337280();
  *puVar11 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;
  lVar20 = (long)puVar11 + (ulong)(local_6c >> 3) + 0x10;
  puVar11[1] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |
               param_3 << 0x18;
  puVar11[2] = local_40 >> 0x18 | (local_40 & 0xff0000) >> 8 | (local_40 & 0xff00) << 8 |
               local_40 << 0x18;
  puVar11[3] = local_70 >> 0x18 | (local_70 & 0xff0000) >> 8 | (local_70 & 0xff00) << 8 |
               local_70 << 0x18;
  if (uVar6 != 0) {
    uVar18 = 0;
    do {
      uVar8 = *(uint *)(lVar9 + uVar18 * 4);
      if (uVar8 != 0) {
        uVar8 = *(uint *)(lVar10 + uVar18 * 4);
        uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;
      }
      *(uint *)(lVar20 + uVar18 * 4) = uVar8;
      bVar22 = uVar6 - 1 != uVar18;
      uVar18 = uVar18 + 1;
    } while (bVar22);
    lVar20 = lVar20 + ((ulong)(uVar6 - 1) + 1) * 4;
  }
  if (uVar7 != 0) {
    param_1 = (long *)*param_1;
    puVar19 = (uint *)*param_2;
    plVar2 = param_1 + (ulong)(uVar7 - 1) + 1;
    do {
      uVar8 = *puVar19;
      lVar15 = *param_1;
      puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] =
           puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] |
           1L << ((byte)(uVar8 >> ((byte)local_70 & 0x1f)) & 0x3f) | 1L << ((byte)uVar8 & 0x3f);
      lVar16 = ((ulong)uVar8 % (ulong)uVar6) * 4;
      piVar1 = (int *)(lVar9 + lVar16);
      iVar3 = *piVar1;
      uVar5 = uVar8 & 0xfffffffe;
      if (iVar3 == 1) {
        uVar5 = uVar8 & 0xfffffffe | 1;
      }
      piVar17 = (int *)(lVar16 + lVar10);
      iVar4 = *piVar17;
      *piVar1 = iVar3 + -1;
      *(uint *)(lVar20 + (ulong)((iVar4 - param_3) * 4)) =
           uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;
      if (iVar4 == 0) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 001da1fa to 001da1fe has its CatchHandler @ 001da204 */
        FUN_001e9890("../../gold/symtab.h",0x1a2,"set_dynsym_index");
      }
      *(int *)(lVar15 + 0x20) = iVar4;
      param_1 = param_1 + 1;
      puVar19 = puVar19 + 1;
      *piVar17 = iVar4 + 1;
    } while (plVar2 != param_1);
  }
  if (local_40 != 0) {
    uVar18 = 0;
    do {
      uVar21 = puVar12[uVar18];
      *(ulong *)(puVar11 + uVar18 * 2 + 4) =
           uVar21 >> 0x38 | (uVar21 & 0xff000000000000) >> 0x28 | (uVar21 & 0xff0000000000) >> 0x18
           | (uVar21 & 0xff00000000) >> 8 | (uVar21 & 0xff000000) << 8 | (uVar21 & 0xff0000) << 0x18
           | (uVar21 & 0xff00) << 0x28 | uVar21 << 0x38;
      bVar22 = uVar18 != local_40 - 1;
      uVar18 = uVar18 + 1;
    } while (bVar22);
  }
  *param_5 = (local_6c >> 3) + (uVar6 + 4 + uVar7) * 4;
  *param_4 = puVar11;
  if (lVar10 != 0) {
    FUN_00338a50(lVar10);
  }
  if (lVar9 != 0) {
    FUN_00338a50(lVar9);
  }
  if (puVar12 == (undefined8 *)0x0) {
    return;
  }
  FUN_00338a50(puVar12);
  return;
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x48
MOV RAX,qword ptr [RDI]
MOV qword ptr [RSP + 0x18],RSI
MOV dword ptr [RSP + 0x4],EDX
MOV qword ptr [RSP + 0x28],RCX
MOV qword ptr [RSP + 0x30],R8
CMP qword ptr [RDI + 0x8],RAX
JZ 0x001da188
MOV R15,RDI
MOV RDI,qword ptr [RSP + 0x18]
MOV ESI,0x1
CALL 0x001d5250
MOV dword ptr [RSP],EAX
MOV RAX,qword ptr [R15 + 0x8]
SUB RAX,qword ptr [R15]
SAR RAX,0x3
MOV qword ptr [RSP + 0x10],RAX
MOV R14D,EAX
SHR EAX,0x1
JZ 0x001da120
MOV EDX,0x1
JMP 0x001d9e0a
MOV EDX,ECX
SHR EAX,0x1
LEA ECX,[RDX + 0x1]
JNZ 0x001d9e08
CMP ECX,0x2
JBE 0x001da120
MOV EBX,dword ptr [RSP + 0x10]
LEA EAX,[RDX + -0x1]
BT EBX,EAX
JNC 0x001da110
LEA EAX,[RDX + 0x4]
MOV dword ptr [RSP + 0x8],EAX
MOV EDI,dword ptr [RSP + 0x8]
MOV EAX,0x1
XOR EBP,EBP
MOV EBX,EAX
MOV ECX,EDI
SHL EBX,CL
LEA ECX,[RDI + -0x6]
SHL EAX,CL
MOV dword ptr [RSP + 0xc],EBX
MOV dword ptr [RSP + 0x38],EAX
MOV EBX,EAX
TEST EAX,EAX
JNZ 0x001da1da
MOV R12D,dword ptr [RSP]
TEST R12,R12
JZ 0x001da16d
NOP word ptr CS:[RAX + RAX*0x1]
LEA RAX,[R12*0x4]
MOV RDI,RAX
MOV qword ptr [RSP + 0x20],RAX
CALL 0x00337280
MOV RBX,RAX
XOR R13D,R13D
JMP 0x001d9e93
MOV R13,RAX
LEA RAX,[R13 + 0x1]
MOV dword ptr [RBX + R13*0x4],0x0
CMP R12,RAX
JNZ 0x001d9e90
MOV RDI,qword ptr [RSP + 0x20]
CALL 0x00337280
MOV R12,RAX
XOR EAX,EAX
JMP 0x001d9ebb
MOV RAX,RDX
MOV dword ptr [R12 + RAX*0x4],0x0
LEA RDX,[RAX + 0x1]
CMP R13,RAX
JNZ 0x001d9eb8
MOV EDI,dword ptr [RSP + 0x10]
TEST EDI,EDI
JZ 0x001d9efc
MOV RAX,qword ptr [RSP + 0x18]
MOV EDI,dword ptr [RSP]
XOR ECX,ECX
MOV RSI,qword ptr [RAX]
NOP dword ptr [RAX]
MOV EAX,dword ptr [RSI + RCX*0x4]
XOR EDX,EDX
ADD RCX,0x1
DIV EDI
ADD dword ptr [RBX + RDX*0x4],0x1
CMP R14D,ECX
JA 0x001d9ee8
MOV ESI,dword ptr [RSP]
TEST ESI,ESI
JZ 0x001d9f2b
MOV EAX,dword ptr [RSP]
MOV EDX,dword ptr [RSP + 0x4]
LEA ESI,[RAX + -0x1]
XOR EAX,EAX
JMP 0x001d9f1b
MOV RAX,RCX
MOV dword ptr [R12 + RAX*0x4],EDX
LEA RCX,[RAX + 0x1]
ADD EDX,dword ptr [RBX + RAX*0x4]
CMP RSI,RAX
JNZ 0x001d9f18
MOV R14D,dword ptr [RSP]
MOV RAX,qword ptr [RSP + 0x10]
MOV R13D,dword ptr [RSP + 0xc]
LEA EAX,[R14 + RAX*0x1 + 0x4]
SHR R13D,0x3
LEA EDI,[R13 + RAX*0x4]
MOV dword ptr [RSP + 0x3c],EDI
CALL 0x00337220
MOV RDI,RAX
MOV qword ptr [RSP + 0x20],RAX
MOV EAX,R14D
BSWAP EAX
MOV dword ptr [RDI],EAX
MOV EAX,dword ptr [RSP + 0x4]
LEA R11,[RDI + R13*0x1 + 0x10]
BSWAP EAX
MOV dword ptr [RDI + 0x4],EAX
MOV EAX,dword ptr [RSP + 0x38]
BSWAP EAX
MOV dword ptr [RDI + 0x8],EAX
MOV EAX,dword ptr [RSP + 0x8]
BSWAP EAX
MOV dword ptr [RDI + 0xc],EAX
TEST R14D,R14D
JZ 0x001d9fb9
MOV EAX,dword ptr [RSP]
LEA ECX,[RAX + -0x1]
XOR EAX,EAX
LEA RSI,[RCX + 0x1]
JMP 0x001d9f9b
MOV RAX,RDX
MOV EDX,dword ptr [RBX + RAX*0x4]
TEST EDX,EDX
JZ 0x001d9fa8
MOV EDX,dword ptr [R12 + RAX*0x4]
BSWAP EDX
MOV dword ptr [R11 + RAX*0x4],EDX
LEA RDX,[RAX + 0x1]
CMP RCX,RAX
JNZ 0x001d9f98
LEA R11,[R11 + RSI*0x4]
MOV ECX,dword ptr [RSP + 0x10]
TEST ECX,ECX
JZ 0x001da086
MOV EAX,dword ptr [RSP + 0xc]
MOV RDI,qword ptr [R15]
MOV R9D,0x1
SHR EAX,0x6
SUB EAX,0x1
MOV dword ptr [RSP + 0xc],EAX
MOV RAX,qword ptr [RSP + 0x18]
MOV R8,qword ptr [RAX]
MOV RAX,qword ptr [RSP + 0x10]
SUB EAX,0x1
LEA R13,[RDI + RAX*0x8 + 0x8]
NOP dword ptr [RAX]
MOV EAX,dword ptr [R8]
MOVZX ECX,byte ptr [RSP + 0x8]
MOV R15,R9
MOV R10,qword ptr [RDI]
MOV ESI,EAX
MOV EDX,EAX
SHR ESI,CL
SHR EDX,0x6
AND EDX,dword ptr [RSP + 0xc]
MOV ECX,ESI
MOV RSI,R9
SHL RSI,CL
MOV ECX,EAX
SHL R15,CL
OR RSI,R15
OR qword ptr [RBP + RDX*0x8],RSI
XOR EDX,EDX
MOV ESI,EAX
DIV dword ptr [RSP]
AND ESI,0xfffffffe
MOV EAX,ESI
OR EAX,0x1
SHL RDX,0x2
LEA R15,[RBX + RDX*0x1]
MOV R14D,dword ptr [R15]
CMP R14D,0x1
CMOVZ ESI,EAX
ADD RDX,R12
SUB R14D,0x1
MOV EAX,dword ptr [RDX]
MOV dword ptr [R15],R14D
BSWAP ESI
MOV ECX,EAX
SUB ECX,dword ptr [RSP + 0x4]
SHL ECX,0x2
MOV dword ptr [R11 + RCX*0x1],ESI
TEST EAX,EAX
JZ 0x001da1e7
MOV dword ptr [R10 + 0x20],EAX
ADD RDI,0x8
ADD EAX,0x1
ADD R8,0x4
MOV dword ptr [RDX],EAX
CMP R13,RDI
JNZ 0x001d9ff8
MOV EDX,dword ptr [RSP + 0x38]
TEST EDX,EDX
JZ 0x001da0b9
MOV EAX,dword ptr [RSP + 0x38]
MOV RSI,qword ptr [RSP + 0x20]
LEA ECX,[RAX + -0x1]
XOR EAX,EAX
JMP 0x001da0a3
MOV RAX,RDX
MOV RDX,qword ptr [RBP + RAX*0x8]
BSWAP RDX
MOV qword ptr [RSI + RAX*0x8 + 0x10],RDX
LEA RDX,[RAX + 0x1]
CMP RAX,RCX
JNZ 0x001da0a0
MOV RAX,qword ptr [RSP + 0x30]
MOV EDI,dword ptr [RSP + 0x3c]
MOV dword ptr [RAX],EDI
MOV RAX,qword ptr [RSP + 0x28]
MOV RDI,qword ptr [RSP + 0x20]
MOV qword ptr [RAX],RDI
TEST R12,R12
JZ 0x001da0de
MOV RDI,R12
CALL 0x00338a50
TEST RBX,RBX
JZ 0x001da0eb
MOV RDI,RBX
CALL 0x00338a50
TEST RBP,RBP
JZ 0x001da1cb
ADD RSP,0x48
MOV RDI,RBP
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
JMP 0x00338a50
LEA EAX,[RDX + 0x3]
MOV dword ptr [RSP + 0x8],EAX
CMP EAX,0x5
JNZ 0x001d9e31
MOV dword ptr [RSP + 0x38],0x1
MOV EDI,0x8
MOV EBX,0x1
MOV dword ptr [RSP + 0xc],0x40
MOV dword ptr [RSP + 0x8],0x6
CALL 0x00337280
MOV RBP,RAX
LEA RDX,[RAX + RBX*0x8]
NOP
MOV qword ptr [RAX],0x0
ADD RAX,0x8
CMP RAX,RDX
JNZ 0x001da150
MOV R12D,dword ptr [RSP]
TEST R12,R12
JNZ 0x001d9e70
MOV EAX,dword ptr [RSP + 0x10]
XOR R12D,R12D
XOR EBX,EBX
TEST EAX,EAX
JNZ 0x001d9ed4
JMP 0x001d9f2b
MOV EDI,0x1c
CALL 0x00337220
MOV RBX,qword ptr [RSP + 0x30]
MOV EDX,dword ptr [RSP + 0x4]
MOV dword ptr [RAX],0x1000000
MOV dword ptr [RBX],0x1c
MOV RBX,qword ptr [RSP + 0x28]
BSWAP EDX
MOV qword ptr [RAX + 0x8],0x1000000
MOV dword ptr [RAX + 0x4],EDX
MOV qword ptr [RAX + 0x10],0x0
MOV dword ptr [RAX + 0x18],0x0
MOV qword ptr [RBX],RAX
ADD RSP,0x48
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
LEA RDI,[RBX*0x8]
JMP 0x001da142
LEA RDX,[0x3e1140]
MOV ESI,0x1a2
LEA RDI,[0x3de4db]
CALL 0x001e9890
(translation_unit "void FUN_001d9da0(long *param_1,long *param_2,uint param_3,undefined8 *param_4,int *param_5)\n\n{\n  int *piVar1;\n  long *plVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  long lVar9;\n  long lVar10;\n  uint *puVar11;\n  undefined8 *puVar12;\n  undefined8 *puVar13;\n  undefined4 *puVar14;\n  long lVar15;\n  long lVar16;\n  int *piVar17;\n  ulong uVar18;\n  uint *puVar19;\n  long lVar20;\n  ulong uVar21;\n  bool bVar22;\n  uint local_70;\n  uint local_6c;\n  uint local_40;\n  \n  if (param_1[1] == *param_1) {\n    puVar14 = (undefined4 *)thunk_FUN_00337280(0x1c);\n    *puVar14 = 0x1000000;\n    *param_5 = 0x1c;\n    *(undefined8 *)(puVar14 + 2) = 0x1000000;\n    puVar14[1] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n                 param_3 << 0x18;\n    *(undefined8 *)(puVar14 + 4) = 0;\n    puVar14[6] = 0;\n    *param_4 = puVar14;\n    return;\n  }\n  uVar6 = FUN_001d5250(param_2,1);\n  uVar7 = (uint)(param_1[1] - *param_1 >> 3);\n  uVar8 = uVar7 >> 1;\n  if (uVar8 == 0) {\nLAB_001da120:\n    local_40 = 1;\n    lVar9 = 8;\n    uVar18 = 1;\n    local_6c = 0x40;\n    local_70 = 6;\nLAB_001da142:\n    puVar12 = (undefined8 *)FUN_00337280(lVar9);\n    puVar13 = puVar12;\n    do {\n      *puVar13 = 0;\n      puVar13 = puVar13 + 1;\n    } while (puVar13 != puVar12 + uVar18);\n    if (uVar6 != 0) goto LAB_001d9e70;\nLAB_001da16d:\n    lVar10 = 0;\n    lVar9 = 0;\n    if (uVar7 == 0) goto LAB_001d9f2b;\nLAB_001d9ed4:\n    lVar15 = 0;\n    lVar20 = *param_2;\n    do {\n      lVar16 = lVar15 * 4;\n      lVar15 = lVar15 + 1;\n      piVar1 = (int *)(lVar9 + ((ulong)*(uint *)(lVar20 + lVar16) % (ulong)uVar6) * 4);\n      *piVar1 = *piVar1 + 1;\n    } while ((uint)lVar15 < uVar7);\n  }\n  else {\n    uVar5 = 1;\n    do {\n      local_70 = uVar5;\n      uVar8 = uVar8 >> 1;\n      uVar5 = local_70 + 1;\n    } while (uVar8 != 0);\n    if (local_70 + 1 < 3) goto LAB_001da120;\n    if ((uVar7 >> (local_70 - 1 & 0x1f) & 1) == 0) {\n      local_70 = local_70 + 3;\n      if (local_70 == 5) goto LAB_001da120;\n    }\n    else {\n      local_70 = local_70 + 4;\n    }\n    puVar12 = (undefined8 *)0x0;\n    local_6c = 1 << ((byte)local_70 & 0x1f);\n    local_40 = 1 << ((byte)local_70 - 6 & 0x1f);\n    uVar18 = (ulong)local_40;\n    if (local_40 != 0) {\n      lVar9 = uVar18 * 8;\n      goto LAB_001da142;\n    }\n    if (uVar6 == 0) goto LAB_001da16d;\nLAB_001d9e70:\n    lVar10 = (ulong)uVar6 * 4;\n                    /* try { // try from 001d9e80 to 001d9e84 has its CatchHandler @ 001da1ff */\n    lVar9 = FUN_00337280(lVar10);\n    uVar18 = 0;\n    do {\n      uVar21 = uVar18;\n      *(undefined4 *)(lVar9 + uVar21 * 4) = 0;\n      uVar18 = uVar21 + 1;\n    } while ((ulong)uVar6 != uVar21 + 1);\n                    /* try { // try from 001d9ea9 to 001d9ead has its CatchHandler @ 001da209 */\n    lVar10 = FUN_00337280(lVar10);\n    uVar18 = 0;\n    do {\n      *(undefined4 *)(lVar10 + uVar18 * 4) = 0;\n      bVar22 = uVar21 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n    if (uVar7 != 0) goto LAB_001d9ed4;\n  }\n  if (uVar6 != 0) {\n    uVar18 = 0;\n    uVar8 = param_3;\n    do {\n      *(uint *)(lVar10 + uVar18 * 4) = uVar8;\n      uVar8 = uVar8 + *(int *)(lVar9 + uVar18 * 4);\n      bVar22 = uVar6 - 1 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n  }\nLAB_001d9f2b:\n                    /* try { // try from 001d9f4b to 001d9f4f has its CatchHandler @ 001da204 */\n  puVar11 = (uint *)thunk_FUN_00337280();\n  *puVar11 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n  lVar20 = (long)puVar11 + (ulong)(local_6c >> 3) + 0x10;\n  puVar11[1] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n               param_3 << 0x18;\n  puVar11[2] = local_40 >> 0x18 | (local_40 & 0xff0000) >> 8 | (local_40 & 0xff00) << 8 |\n               local_40 << 0x18;\n  puVar11[3] = local_70 >> 0x18 | (local_70 & 0xff0000) >> 8 | (local_70 & 0xff00) << 8 |\n               local_70 << 0x18;\n  if (uVar6 != 0) {\n    uVar18 = 0;\n    do {\n      uVar8 = *(uint *)(lVar9 + uVar18 * 4);\n      if (uVar8 != 0) {\n        uVar8 = *(uint *)(lVar10 + uVar18 * 4);\n        uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      }\n      *(uint *)(lVar20 + uVar18 * 4) = uVar8;\n      bVar22 = uVar6 - 1 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n    lVar20 = lVar20 + ((ulong)(uVar6 - 1) + 1) * 4;\n  }\n  if (uVar7 != 0) {\n    param_1 = (long *)*param_1;\n    puVar19 = (uint *)*param_2;\n    plVar2 = param_1 + (ulong)(uVar7 - 1) + 1;\n    do {\n      uVar8 = *puVar19;\n      lVar15 = *param_1;\n      puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] =\n           puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] |\n           1L << ((byte)(uVar8 >> ((byte)local_70 & 0x1f)) & 0x3f) | 1L << ((byte)uVar8 & 0x3f);\n      lVar16 = ((ulong)uVar8 % (ulong)uVar6) * 4;\n      piVar1 = (int *)(lVar9 + lVar16);\n      iVar3 = *piVar1;\n      uVar5 = uVar8 & 0xfffffffe;\n      if (iVar3 == 1) {\n        uVar5 = uVar8 & 0xfffffffe | 1;\n      }\n      piVar17 = (int *)(lVar16 + lVar10);\n      iVar4 = *piVar17;\n      *piVar1 = iVar3 + -1;\n      *(uint *)(lVar20 + (ulong)((iVar4 - param_3) * 4)) =\n           uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n      if (iVar4 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001da1fa to 001da1fe has its CatchHandler @ 001da204 */\n        FUN_001e9890("../../gold/symtab.h",0x1a2,"set_dynsym_index");\n      }\n      *(int *)(lVar15 + 0x20) = iVar4;\n      param_1 = param_1 + 1;\n      puVar19 = puVar19 + 1;\n      *piVar17 = iVar4 + 1;\n    } while (plVar2 != param_1);\n  }\n  if (local_40 != 0) {\n    uVar18 = 0;\n    do {\n      uVar21 = puVar12[uVar18];\n      *(ulong *)(puVar11 + uVar18 * 2 + 4) =\n           uVar21 >> 0x38 | (uVar21 & 0xff000000000000) >> 0x28 | (uVar21 & 0xff0000000000) >> 0x18\n           | (uVar21 & 0xff00000000) >> 8 | (uVar21 & 0xff000000) << 8 | (uVar21 & 0xff0000) << 0x18\n           | (uVar21 & 0xff00) << 0x28 | uVar21 << 0x38;\n      bVar22 = uVar18 != local_40 - 1;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n  }\n  *param_5 = (local_6c >> 3) + (uVar6 + 4 + uVar7) * 4;\n  *param_4 = puVar11;\n  if (lVar10 != 0) {\n    FUN_00338a50(lVar10);\n  }\n  if (lVar9 != 0) {\n    FUN_00338a50(lVar9);\n  }\n  if (puVar12 == (undefined8 *)0x0) {\n    return;\n  }\n  FUN_00338a50(puVar12);\n  return;\n}\n\n" (function_definition "void FUN_001d9da0(long *param_1,long *param_2,uint param_3,undefined8 *param_4,int *param_5)\n\n{\n  int *piVar1;\n  long *plVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  long lVar9;\n  long lVar10;\n  uint *puVar11;\n  undefined8 *puVar12;\n  undefined8 *puVar13;\n  undefined4 *puVar14;\n  long lVar15;\n  long lVar16;\n  int *piVar17;\n  ulong uVar18;\n  uint *puVar19;\n  long lVar20;\n  ulong uVar21;\n  bool bVar22;\n  uint local_70;\n  uint local_6c;\n  uint local_40;\n  \n  if (param_1[1] == *param_1) {\n    puVar14 = (undefined4 *)thunk_FUN_00337280(0x1c);\n    *puVar14 = 0x1000000;\n    *param_5 = 0x1c;\n    *(undefined8 *)(puVar14 + 2) = 0x1000000;\n    puVar14[1] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n                 param_3 << 0x18;\n    *(undefined8 *)(puVar14 + 4) = 0;\n    puVar14[6] = 0;\n    *param_4 = puVar14;\n    return;\n  }\n  uVar6 = FUN_001d5250(param_2,1);\n  uVar7 = (uint)(param_1[1] - *param_1 >> 3);\n  uVar8 = uVar7 >> 1;\n  if (uVar8 == 0) {\nLAB_001da120:\n    local_40 = 1;\n    lVar9 = 8;\n    uVar18 = 1;\n    local_6c = 0x40;\n    local_70 = 6;\nLAB_001da142:\n    puVar12 = (undefined8 *)FUN_00337280(lVar9);\n    puVar13 = puVar12;\n    do {\n      *puVar13 = 0;\n      puVar13 = puVar13 + 1;\n    } while (puVar13 != puVar12 + uVar18);\n    if (uVar6 != 0) goto LAB_001d9e70;\nLAB_001da16d:\n    lVar10 = 0;\n    lVar9 = 0;\n    if (uVar7 == 0) goto LAB_001d9f2b;\nLAB_001d9ed4:\n    lVar15 = 0;\n    lVar20 = *param_2;\n    do {\n      lVar16 = lVar15 * 4;\n      lVar15 = lVar15 + 1;\n      piVar1 = (int *)(lVar9 + ((ulong)*(uint *)(lVar20 + lVar16) % (ulong)uVar6) * 4);\n      *piVar1 = *piVar1 + 1;\n    } while ((uint)lVar15 < uVar7);\n  }\n  else {\n    uVar5 = 1;\n    do {\n      local_70 = uVar5;\n      uVar8 = uVar8 >> 1;\n      uVar5 = local_70 + 1;\n    } while (uVar8 != 0);\n    if (local_70 + 1 < 3) goto LAB_001da120;\n    if ((uVar7 >> (local_70 - 1 & 0x1f) & 1) == 0) {\n      local_70 = local_70 + 3;\n      if (local_70 == 5) goto LAB_001da120;\n    }\n    else {\n      local_70 = local_70 + 4;\n    }\n    puVar12 = (undefined8 *)0x0;\n    local_6c = 1 << ((byte)local_70 & 0x1f);\n    local_40 = 1 << ((byte)local_70 - 6 & 0x1f);\n    uVar18 = (ulong)local_40;\n    if (local_40 != 0) {\n      lVar9 = uVar18 * 8;\n      goto LAB_001da142;\n    }\n    if (uVar6 == 0) goto LAB_001da16d;\nLAB_001d9e70:\n    lVar10 = (ulong)uVar6 * 4;\n                    /* try { // try from 001d9e80 to 001d9e84 has its CatchHandler @ 001da1ff */\n    lVar9 = FUN_00337280(lVar10);\n    uVar18 = 0;\n    do {\n      uVar21 = uVar18;\n      *(undefined4 *)(lVar9 + uVar21 * 4) = 0;\n      uVar18 = uVar21 + 1;\n    } while ((ulong)uVar6 != uVar21 + 1);\n                    /* try { // try from 001d9ea9 to 001d9ead has its CatchHandler @ 001da209 */\n    lVar10 = FUN_00337280(lVar10);\n    uVar18 = 0;\n    do {\n      *(undefined4 *)(lVar10 + uVar18 * 4) = 0;\n      bVar22 = uVar21 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n    if (uVar7 != 0) goto LAB_001d9ed4;\n  }\n  if (uVar6 != 0) {\n    uVar18 = 0;\n    uVar8 = param_3;\n    do {\n      *(uint *)(lVar10 + uVar18 * 4) = uVar8;\n      uVar8 = uVar8 + *(int *)(lVar9 + uVar18 * 4);\n      bVar22 = uVar6 - 1 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n  }\nLAB_001d9f2b:\n                    /* try { // try from 001d9f4b to 001d9f4f has its CatchHandler @ 001da204 */\n  puVar11 = (uint *)thunk_FUN_00337280();\n  *puVar11 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n  lVar20 = (long)puVar11 + (ulong)(local_6c >> 3) + 0x10;\n  puVar11[1] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n               param_3 << 0x18;\n  puVar11[2] = local_40 >> 0x18 | (local_40 & 0xff0000) >> 8 | (local_40 & 0xff00) << 8 |\n               local_40 << 0x18;\n  puVar11[3] = local_70 >> 0x18 | (local_70 & 0xff0000) >> 8 | (local_70 & 0xff00) << 8 |\n               local_70 << 0x18;\n  if (uVar6 != 0) {\n    uVar18 = 0;\n    do {\n      uVar8 = *(uint *)(lVar9 + uVar18 * 4);\n      if (uVar8 != 0) {\n        uVar8 = *(uint *)(lVar10 + uVar18 * 4);\n        uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      }\n      *(uint *)(lVar20 + uVar18 * 4) = uVar8;\n      bVar22 = uVar6 - 1 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n    lVar20 = lVar20 + ((ulong)(uVar6 - 1) + 1) * 4;\n  }\n  if (uVar7 != 0) {\n    param_1 = (long *)*param_1;\n    puVar19 = (uint *)*param_2;\n    plVar2 = param_1 + (ulong)(uVar7 - 1) + 1;\n    do {\n      uVar8 = *puVar19;\n      lVar15 = *param_1;\n      puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] =\n           puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] |\n           1L << ((byte)(uVar8 >> ((byte)local_70 & 0x1f)) & 0x3f) | 1L << ((byte)uVar8 & 0x3f);\n      lVar16 = ((ulong)uVar8 % (ulong)uVar6) * 4;\n      piVar1 = (int *)(lVar9 + lVar16);\n      iVar3 = *piVar1;\n      uVar5 = uVar8 & 0xfffffffe;\n      if (iVar3 == 1) {\n        uVar5 = uVar8 & 0xfffffffe | 1;\n      }\n      piVar17 = (int *)(lVar16 + lVar10);\n      iVar4 = *piVar17;\n      *piVar1 = iVar3 + -1;\n      *(uint *)(lVar20 + (ulong)((iVar4 - param_3) * 4)) =\n           uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n      if (iVar4 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001da1fa to 001da1fe has its CatchHandler @ 001da204 */\n        FUN_001e9890("../../gold/symtab.h",0x1a2,"set_dynsym_index");\n      }\n      *(int *)(lVar15 + 0x20) = iVar4;\n      param_1 = param_1 + 1;\n      puVar19 = puVar19 + 1;\n      *piVar17 = iVar4 + 1;\n    } while (plVar2 != param_1);\n  }\n  if (local_40 != 0) {\n    uVar18 = 0;\n    do {\n      uVar21 = puVar12[uVar18];\n      *(ulong *)(puVar11 + uVar18 * 2 + 4) =\n           uVar21 >> 0x38 | (uVar21 & 0xff000000000000) >> 0x28 | (uVar21 & 0xff0000000000) >> 0x18\n           | (uVar21 & 0xff00000000) >> 8 | (uVar21 & 0xff000000) << 8 | (uVar21 & 0xff0000) << 0x18\n           | (uVar21 & 0xff00) << 0x28 | uVar21 << 0x38;\n      bVar22 = uVar18 != local_40 - 1;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n  }\n  *param_5 = (local_6c >> 3) + (uVar6 + 4 + uVar7) * 4;\n  *param_4 = puVar11;\n  if (lVar10 != 0) {\n    FUN_00338a50(lVar10);\n  }\n  if (lVar9 != 0) {\n    FUN_00338a50(lVar9);\n  }\n  if (puVar12 == (undefined8 *)0x0) {\n    return;\n  }\n  FUN_00338a50(puVar12);\n  return;\n}" primitive_type (function_declarator "FUN_001d9da0(long *param_1,long *param_2,uint param_3,undefined8 *param_4,int *param_5)" identifier (parameter_list "(long *param_1,long *param_2,uint param_3,undefined8 *param_4,int *param_5)" ( (parameter_declaration "long *param_1" (sized_type_specifier "long" long) (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "long *param_2" (sized_type_specifier "long" long) (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "undefined8 *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "int *param_5" primitive_type (pointer_declarator "*param_5" * identifier)) ))) (compound_statement "{\n  int *piVar1;\n  long *plVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  long lVar9;\n  long lVar10;\n  uint *puVar11;\n  undefined8 *puVar12;\n  undefined8 *puVar13;\n  undefined4 *puVar14;\n  long lVar15;\n  long lVar16;\n  int *piVar17;\n  ulong uVar18;\n  uint *puVar19;\n  long lVar20;\n  ulong uVar21;\n  bool bVar22;\n  uint local_70;\n  uint local_6c;\n  uint local_40;\n  \n  if (param_1[1] == *param_1) {\n    puVar14 = (undefined4 *)thunk_FUN_00337280(0x1c);\n    *puVar14 = 0x1000000;\n    *param_5 = 0x1c;\n    *(undefined8 *)(puVar14 + 2) = 0x1000000;\n    puVar14[1] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n                 param_3 << 0x18;\n    *(undefined8 *)(puVar14 + 4) = 0;\n    puVar14[6] = 0;\n    *param_4 = puVar14;\n    return;\n  }\n  uVar6 = FUN_001d5250(param_2,1);\n  uVar7 = (uint)(param_1[1] - *param_1 >> 3);\n  uVar8 = uVar7 >> 1;\n  if (uVar8 == 0) {\nLAB_001da120:\n    local_40 = 1;\n    lVar9 = 8;\n    uVar18 = 1;\n    local_6c = 0x40;\n    local_70 = 6;\nLAB_001da142:\n    puVar12 = (undefined8 *)FUN_00337280(lVar9);\n    puVar13 = puVar12;\n    do {\n      *puVar13 = 0;\n      puVar13 = puVar13 + 1;\n    } while (puVar13 != puVar12 + uVar18);\n    if (uVar6 != 0) goto LAB_001d9e70;\nLAB_001da16d:\n    lVar10 = 0;\n    lVar9 = 0;\n    if (uVar7 == 0) goto LAB_001d9f2b;\nLAB_001d9ed4:\n    lVar15 = 0;\n    lVar20 = *param_2;\n    do {\n      lVar16 = lVar15 * 4;\n      lVar15 = lVar15 + 1;\n      piVar1 = (int *)(lVar9 + ((ulong)*(uint *)(lVar20 + lVar16) % (ulong)uVar6) * 4);\n      *piVar1 = *piVar1 + 1;\n    } while ((uint)lVar15 < uVar7);\n  }\n  else {\n    uVar5 = 1;\n    do {\n      local_70 = uVar5;\n      uVar8 = uVar8 >> 1;\n      uVar5 = local_70 + 1;\n    } while (uVar8 != 0);\n    if (local_70 + 1 < 3) goto LAB_001da120;\n    if ((uVar7 >> (local_70 - 1 & 0x1f) & 1) == 0) {\n      local_70 = local_70 + 3;\n      if (local_70 == 5) goto LAB_001da120;\n    }\n    else {\n      local_70 = local_70 + 4;\n    }\n    puVar12 = (undefined8 *)0x0;\n    local_6c = 1 << ((byte)local_70 & 0x1f);\n    local_40 = 1 << ((byte)local_70 - 6 & 0x1f);\n    uVar18 = (ulong)local_40;\n    if (local_40 != 0) {\n      lVar9 = uVar18 * 8;\n      goto LAB_001da142;\n    }\n    if (uVar6 == 0) goto LAB_001da16d;\nLAB_001d9e70:\n    lVar10 = (ulong)uVar6 * 4;\n                    /* try { // try from 001d9e80 to 001d9e84 has its CatchHandler @ 001da1ff */\n    lVar9 = FUN_00337280(lVar10);\n    uVar18 = 0;\n    do {\n      uVar21 = uVar18;\n      *(undefined4 *)(lVar9 + uVar21 * 4) = 0;\n      uVar18 = uVar21 + 1;\n    } while ((ulong)uVar6 != uVar21 + 1);\n                    /* try { // try from 001d9ea9 to 001d9ead has its CatchHandler @ 001da209 */\n    lVar10 = FUN_00337280(lVar10);\n    uVar18 = 0;\n    do {\n      *(undefined4 *)(lVar10 + uVar18 * 4) = 0;\n      bVar22 = uVar21 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n    if (uVar7 != 0) goto LAB_001d9ed4;\n  }\n  if (uVar6 != 0) {\n    uVar18 = 0;\n    uVar8 = param_3;\n    do {\n      *(uint *)(lVar10 + uVar18 * 4) = uVar8;\n      uVar8 = uVar8 + *(int *)(lVar9 + uVar18 * 4);\n      bVar22 = uVar6 - 1 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n  }\nLAB_001d9f2b:\n                    /* try { // try from 001d9f4b to 001d9f4f has its CatchHandler @ 001da204 */\n  puVar11 = (uint *)thunk_FUN_00337280();\n  *puVar11 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n  lVar20 = (long)puVar11 + (ulong)(local_6c >> 3) + 0x10;\n  puVar11[1] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n               param_3 << 0x18;\n  puVar11[2] = local_40 >> 0x18 | (local_40 & 0xff0000) >> 8 | (local_40 & 0xff00) << 8 |\n               local_40 << 0x18;\n  puVar11[3] = local_70 >> 0x18 | (local_70 & 0xff0000) >> 8 | (local_70 & 0xff00) << 8 |\n               local_70 << 0x18;\n  if (uVar6 != 0) {\n    uVar18 = 0;\n    do {\n      uVar8 = *(uint *)(lVar9 + uVar18 * 4);\n      if (uVar8 != 0) {\n        uVar8 = *(uint *)(lVar10 + uVar18 * 4);\n        uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      }\n      *(uint *)(lVar20 + uVar18 * 4) = uVar8;\n      bVar22 = uVar6 - 1 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n    lVar20 = lVar20 + ((ulong)(uVar6 - 1) + 1) * 4;\n  }\n  if (uVar7 != 0) {\n    param_1 = (long *)*param_1;\n    puVar19 = (uint *)*param_2;\n    plVar2 = param_1 + (ulong)(uVar7 - 1) + 1;\n    do {\n      uVar8 = *puVar19;\n      lVar15 = *param_1;\n      puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] =\n           puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] |\n           1L << ((byte)(uVar8 >> ((byte)local_70 & 0x1f)) & 0x3f) | 1L << ((byte)uVar8 & 0x3f);\n      lVar16 = ((ulong)uVar8 % (ulong)uVar6) * 4;\n      piVar1 = (int *)(lVar9 + lVar16);\n      iVar3 = *piVar1;\n      uVar5 = uVar8 & 0xfffffffe;\n      if (iVar3 == 1) {\n        uVar5 = uVar8 & 0xfffffffe | 1;\n      }\n      piVar17 = (int *)(lVar16 + lVar10);\n      iVar4 = *piVar17;\n      *piVar1 = iVar3 + -1;\n      *(uint *)(lVar20 + (ulong)((iVar4 - param_3) * 4)) =\n           uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n      if (iVar4 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001da1fa to 001da1fe has its CatchHandler @ 001da204 */\n        FUN_001e9890("../../gold/symtab.h",0x1a2,"set_dynsym_index");\n      }\n      *(int *)(lVar15 + 0x20) = iVar4;\n      param_1 = param_1 + 1;\n      puVar19 = puVar19 + 1;\n      *piVar17 = iVar4 + 1;\n    } while (plVar2 != param_1);\n  }\n  if (local_40 != 0) {\n    uVar18 = 0;\n    do {\n      uVar21 = puVar12[uVar18];\n      *(ulong *)(puVar11 + uVar18 * 2 + 4) =\n           uVar21 >> 0x38 | (uVar21 & 0xff000000000000) >> 0x28 | (uVar21 & 0xff0000000000) >> 0x18\n           | (uVar21 & 0xff00000000) >> 8 | (uVar21 & 0xff000000) << 8 | (uVar21 & 0xff0000) << 0x18\n           | (uVar21 & 0xff00) << 0x28 | uVar21 << 0x38;\n      bVar22 = uVar18 != local_40 - 1;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n  }\n  *param_5 = (local_6c >> 3) + (uVar6 + 4 + uVar7) * 4;\n  *param_4 = puVar11;\n  if (lVar10 != 0) {\n    FUN_00338a50(lVar10);\n  }\n  if (lVar9 != 0) {\n    FUN_00338a50(lVar9);\n  }\n  if (puVar12 == (undefined8 *)0x0) {\n    return;\n  }\n  FUN_00338a50(puVar12);\n  return;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "long *plVar2;" (sized_type_specifier "long" long) (pointer_declarator "*plVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "uint *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined8 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined8 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "long lVar15;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar16;" (sized_type_specifier "long" long) identifier ;) (declaration "int *piVar17;" primitive_type (pointer_declarator "*piVar17" * identifier) ;) (declaration "ulong uVar18;" type_identifier identifier ;) (declaration "uint *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "long lVar20;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar21;" type_identifier identifier ;) (declaration "bool bVar22;" primitive_type identifier ;) (declaration "uint local_70;" type_identifier identifier ;) (declaration "uint local_6c;" type_identifier identifier ;) (declaration "uint local_40;" type_identifier identifier ;) (if_statement "if (param_1[1] == *param_1) {\n    puVar14 = (undefined4 *)thunk_FUN_00337280(0x1c);\n    *puVar14 = 0x1000000;\n    *param_5 = 0x1c;\n    *(undefined8 *)(puVar14 + 2) = 0x1000000;\n    puVar14[1] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n                 param_3 << 0x18;\n    *(undefined8 *)(puVar14 + 4) = 0;\n    puVar14[6] = 0;\n    *param_4 = puVar14;\n    return;\n  }" if (parenthesized_expression "(param_1[1] == *param_1)" ( (binary_expression "param_1[1] == *param_1" (subscript_expression "param_1[1]" identifier [ number_literal ]) == (pointer_expression "*param_1" * identifier)) )) (compound_statement "{\n    puVar14 = (undefined4 *)thunk_FUN_00337280(0x1c);\n    *puVar14 = 0x1000000;\n    *param_5 = 0x1c;\n    *(undefined8 *)(puVar14 + 2) = 0x1000000;\n    puVar14[1] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n                 param_3 << 0x18;\n    *(undefined8 *)(puVar14 + 4) = 0;\n    puVar14[6] = 0;\n    *param_4 = puVar14;\n    return;\n  }" { (expression_statement "puVar14 = (undefined4 *)thunk_FUN_00337280(0x1c);" (assignment_expression "puVar14 = (undefined4 *)thunk_FUN_00337280(0x1c)" identifier = (cast_expression "(undefined4 *)thunk_FUN_00337280(0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "thunk_FUN_00337280(0x1c)" identifier (argument_list "(0x1c)" ( number_literal ))))) ;) (expression_statement "*puVar14 = 0x1000000;" (assignment_expression "*puVar14 = 0x1000000" (pointer_expression "*puVar14" * identifier) = number_literal) ;) (expression_statement "*param_5 = 0x1c;" (assignment_expression "*param_5 = 0x1c" (pointer_expression "*param_5" * identifier) = number_literal) ;) (expression_statement "*(undefined8 *)(puVar14 + 2) = 0x1000000;" (assignment_expression "*(undefined8 *)(puVar14 + 2) = 0x1000000" (pointer_expression "*(undefined8 *)(puVar14 + 2)" * (cast_expression "(undefined8 *)(puVar14 + 2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 2)" ( (binary_expression "puVar14 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar14[1] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n                 param_3 << 0x18;" (assignment_expression "puVar14[1] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n                 param_3 << 0x18" (subscript_expression "puVar14[1]" identifier [ number_literal ]) = (binary_expression "param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n                 param_3 << 0x18" (binary_expression "param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8" (binary_expression "param_3 >> 0x18 | (param_3 & 0xff0000) >> 8" (binary_expression "param_3 >> 0x18" identifier >> number_literal) | (binary_expression "(param_3 & 0xff0000) >> 8" (parenthesized_expression "(param_3 & 0xff0000)" ( (binary_expression "param_3 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(param_3 & 0xff00) << 8" (parenthesized_expression "(param_3 & 0xff00)" ( (binary_expression "param_3 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "param_3 << 0x18" identifier << number_literal))) ;) (expression_statement "*(undefined8 *)(puVar14 + 4) = 0;" (assignment_expression "*(undefined8 *)(puVar14 + 4) = 0" (pointer_expression "*(undefined8 *)(puVar14 + 4)" * (cast_expression "(undefined8 *)(puVar14 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 4)" ( (binary_expression "puVar14 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar14[6] = 0;" (assignment_expression "puVar14[6] = 0" (subscript_expression "puVar14[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*param_4 = puVar14;" (assignment_expression "*param_4 = puVar14" (pointer_expression "*param_4" * identifier) = identifier) ;) (return_statement "return;" return ;) })) (expression_statement "uVar6 = FUN_001d5250(param_2,1);" (assignment_expression "uVar6 = FUN_001d5250(param_2,1)" identifier = (call_expression "FUN_001d5250(param_2,1)" identifier (argument_list "(param_2,1)" ( identifier , number_literal )))) ;) (expression_statement "uVar7 = (uint)(param_1[1] - *param_1 >> 3);" (assignment_expression "uVar7 = (uint)(param_1[1] - *param_1 >> 3)" identifier = (call_expression "(uint)(param_1[1] - *param_1 >> 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_1[1] - *param_1 >> 3)" ( (binary_expression "param_1[1] - *param_1 >> 3" (binary_expression "param_1[1] - *param_1" (subscript_expression "param_1[1]" identifier [ number_literal ]) - (pointer_expression "*param_1" * identifier)) >> number_literal) )))) ;) (expression_statement "uVar8 = uVar7 >> 1;" (assignment_expression "uVar8 = uVar7 >> 1" identifier = (binary_expression "uVar7 >> 1" identifier >> number_literal)) ;) (if_statement "if (uVar8 == 0) {\nLAB_001da120:\n    local_40 = 1;\n    lVar9 = 8;\n    uVar18 = 1;\n    local_6c = 0x40;\n    local_70 = 6;\nLAB_001da142:\n    puVar12 = (undefined8 *)FUN_00337280(lVar9);\n    puVar13 = puVar12;\n    do {\n      *puVar13 = 0;\n      puVar13 = puVar13 + 1;\n    } while (puVar13 != puVar12 + uVar18);\n    if (uVar6 != 0) goto LAB_001d9e70;\nLAB_001da16d:\n    lVar10 = 0;\n    lVar9 = 0;\n    if (uVar7 == 0) goto LAB_001d9f2b;\nLAB_001d9ed4:\n    lVar15 = 0;\n    lVar20 = *param_2;\n    do {\n      lVar16 = lVar15 * 4;\n      lVar15 = lVar15 + 1;\n      piVar1 = (int *)(lVar9 + ((ulong)*(uint *)(lVar20 + lVar16) % (ulong)uVar6) * 4);\n      *piVar1 = *piVar1 + 1;\n    } while ((uint)lVar15 < uVar7);\n  }\n  else {\n    uVar5 = 1;\n    do {\n      local_70 = uVar5;\n      uVar8 = uVar8 >> 1;\n      uVar5 = local_70 + 1;\n    } while (uVar8 != 0);\n    if (local_70 + 1 < 3) goto LAB_001da120;\n    if ((uVar7 >> (local_70 - 1 & 0x1f) & 1) == 0) {\n      local_70 = local_70 + 3;\n      if (local_70 == 5) goto LAB_001da120;\n    }\n    else {\n      local_70 = local_70 + 4;\n    }\n    puVar12 = (undefined8 *)0x0;\n    local_6c = 1 << ((byte)local_70 & 0x1f);\n    local_40 = 1 << ((byte)local_70 - 6 & 0x1f);\n    uVar18 = (ulong)local_40;\n    if (local_40 != 0) {\n      lVar9 = uVar18 * 8;\n      goto LAB_001da142;\n    }\n    if (uVar6 == 0) goto LAB_001da16d;\nLAB_001d9e70:\n    lVar10 = (ulong)uVar6 * 4;\n                    /* try { // try from 001d9e80 to 001d9e84 has its CatchHandler @ 001da1ff */\n    lVar9 = FUN_00337280(lVar10);\n    uVar18 = 0;\n    do {\n      uVar21 = uVar18;\n      *(undefined4 *)(lVar9 + uVar21 * 4) = 0;\n      uVar18 = uVar21 + 1;\n    } while ((ulong)uVar6 != uVar21 + 1);\n                    /* try { // try from 001d9ea9 to 001d9ead has its CatchHandler @ 001da209 */\n    lVar10 = FUN_00337280(lVar10);\n    uVar18 = 0;\n    do {\n      *(undefined4 *)(lVar10 + uVar18 * 4) = 0;\n      bVar22 = uVar21 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n    if (uVar7 != 0) goto LAB_001d9ed4;\n  }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_001da120:\n    local_40 = 1;\n    lVar9 = 8;\n    uVar18 = 1;\n    local_6c = 0x40;\n    local_70 = 6;\nLAB_001da142:\n    puVar12 = (undefined8 *)FUN_00337280(lVar9);\n    puVar13 = puVar12;\n    do {\n      *puVar13 = 0;\n      puVar13 = puVar13 + 1;\n    } while (puVar13 != puVar12 + uVar18);\n    if (uVar6 != 0) goto LAB_001d9e70;\nLAB_001da16d:\n    lVar10 = 0;\n    lVar9 = 0;\n    if (uVar7 == 0) goto LAB_001d9f2b;\nLAB_001d9ed4:\n    lVar15 = 0;\n    lVar20 = *param_2;\n    do {\n      lVar16 = lVar15 * 4;\n      lVar15 = lVar15 + 1;\n      piVar1 = (int *)(lVar9 + ((ulong)*(uint *)(lVar20 + lVar16) % (ulong)uVar6) * 4);\n      *piVar1 = *piVar1 + 1;\n    } while ((uint)lVar15 < uVar7);\n  }" { (labeled_statement "LAB_001da120:\n    local_40 = 1;" statement_identifier : (expression_statement "local_40 = 1;" (assignment_expression "local_40 = 1" identifier = number_literal) ;)) (expression_statement "lVar9 = 8;" (assignment_expression "lVar9 = 8" identifier = number_literal) ;) (expression_statement "uVar18 = 1;" (assignment_expression "uVar18 = 1" identifier = number_literal) ;) (expression_statement "local_6c = 0x40;" (assignment_expression "local_6c = 0x40" identifier = number_literal) ;) (expression_statement "local_70 = 6;" (assignment_expression "local_70 = 6" identifier = number_literal) ;) (labeled_statement "LAB_001da142:\n    puVar12 = (undefined8 *)FUN_00337280(lVar9);" statement_identifier : (expression_statement "puVar12 = (undefined8 *)FUN_00337280(lVar9);" (assignment_expression "puVar12 = (undefined8 *)FUN_00337280(lVar9)" identifier = (cast_expression "(undefined8 *)FUN_00337280(lVar9)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00337280(lVar9)" identifier (argument_list "(lVar9)" ( identifier ))))) ;)) (expression_statement "puVar13 = puVar12;" (assignment_expression "puVar13 = puVar12" identifier = identifier) ;) (do_statement "do {\n      *puVar13 = 0;\n      puVar13 = puVar13 + 1;\n    } while (puVar13 != puVar12 + uVar18);" do (compound_statement "{\n      *puVar13 = 0;\n      puVar13 = puVar13 + 1;\n    }" { (expression_statement "*puVar13 = 0;" (assignment_expression "*puVar13 = 0" (pointer_expression "*puVar13" * identifier) = number_literal) ;) (expression_statement "puVar13 = puVar13 + 1;" (assignment_expression "puVar13 = puVar13 + 1" identifier = (binary_expression "puVar13 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar13 != puVar12 + uVar18)" ( (binary_expression "puVar13 != puVar12 + uVar18" identifier != (binary_expression "puVar12 + uVar18" identifier + identifier)) )) ;) (if_statement "if (uVar6 != 0) goto LAB_001d9e70;" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (goto_statement "goto LAB_001d9e70;" goto statement_identifier ;)) (labeled_statement "LAB_001da16d:\n    lVar10 = 0;" statement_identifier : (expression_statement "lVar10 = 0;" (assignment_expression "lVar10 = 0" identifier = number_literal) ;)) (expression_statement "lVar9 = 0;" (assignment_expression "lVar9 = 0" identifier = number_literal) ;) (if_statement "if (uVar7 == 0) goto LAB_001d9f2b;" if (parenthesized_expression "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001d9f2b;" goto statement_identifier ;)) (labeled_statement "LAB_001d9ed4:\n    lVar15 = 0;" statement_identifier : (expression_statement "lVar15 = 0;" (assignment_expression "lVar15 = 0" identifier = number_literal) ;)) (expression_statement "lVar20 = *param_2;" (assignment_expression "lVar20 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (do_statement "do {\n      lVar16 = lVar15 * 4;\n      lVar15 = lVar15 + 1;\n      piVar1 = (int *)(lVar9 + ((ulong)*(uint *)(lVar20 + lVar16) % (ulong)uVar6) * 4);\n      *piVar1 = *piVar1 + 1;\n    } while ((uint)lVar15 < uVar7);" do (compound_statement "{\n      lVar16 = lVar15 * 4;\n      lVar15 = lVar15 + 1;\n      piVar1 = (int *)(lVar9 + ((ulong)*(uint *)(lVar20 + lVar16) % (ulong)uVar6) * 4);\n      *piVar1 = *piVar1 + 1;\n    }" { (expression_statement "lVar16 = lVar15 * 4;" (assignment_expression "lVar16 = lVar15 * 4" identifier = (binary_expression "lVar15 * 4" identifier * number_literal)) ;) (expression_statement "lVar15 = lVar15 + 1;" (assignment_expression "lVar15 = lVar15 + 1" identifier = (binary_expression "lVar15 + 1" identifier + number_literal)) ;) (expression_statement "piVar1 = (int *)(lVar9 + ((ulong)*(uint *)(lVar20 + lVar16) % (ulong)uVar6) * 4);" (assignment_expression "piVar1 = (int *)(lVar9 + ((ulong)*(uint *)(lVar20 + lVar16) % (ulong)uVar6) * 4)" identifier = (cast_expression "(int *)(lVar9 + ((ulong)*(uint *)(lVar20 + lVar16) % (ulong)uVar6) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + ((ulong)*(uint *)(lVar20 + lVar16) % (ulong)uVar6) * 4)" ( (binary_expression "lVar9 + ((ulong)*(uint *)(lVar20 + lVar16) % (ulong)uVar6) * 4" identifier + (binary_expression "((ulong)*(uint *)(lVar20 + lVar16) % (ulong)uVar6) * 4" (parenthesized_expression "((ulong)*(uint *)(lVar20 + lVar16) % (ulong)uVar6)" ( (binary_expression "(ulong)*(uint *)(lVar20 + lVar16) % (ulong)uVar6" (binary_expression "(ulong)*(uint *)(lVar20 + lVar16)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)(lVar20 + lVar16)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar20 + lVar16)" ( (binary_expression "lVar20 + lVar16" identifier + identifier) )))) % (cast_expression "(ulong)uVar6" ( (type_descriptor "ulong" type_identifier) ) identifier)) )) * number_literal)) )))) ;) (expression_statement "*piVar1 = *piVar1 + 1;" (assignment_expression "*piVar1 = *piVar1 + 1" (pointer_expression "*piVar1" * identifier) = (binary_expression "*piVar1 + 1" (pointer_expression "*piVar1" * identifier) + number_literal)) ;) }) while (parenthesized_expression "((uint)lVar15 < uVar7)" ( (binary_expression "(uint)lVar15 < uVar7" (cast_expression "(uint)lVar15" ( (type_descriptor "uint" type_identifier) ) identifier) < identifier) )) ;) }) (else_clause "else {\n    uVar5 = 1;\n    do {\n      local_70 = uVar5;\n      uVar8 = uVar8 >> 1;\n      uVar5 = local_70 + 1;\n    } while (uVar8 != 0);\n    if (local_70 + 1 < 3) goto LAB_001da120;\n    if ((uVar7 >> (local_70 - 1 & 0x1f) & 1) == 0) {\n      local_70 = local_70 + 3;\n      if (local_70 == 5) goto LAB_001da120;\n    }\n    else {\n      local_70 = local_70 + 4;\n    }\n    puVar12 = (undefined8 *)0x0;\n    local_6c = 1 << ((byte)local_70 & 0x1f);\n    local_40 = 1 << ((byte)local_70 - 6 & 0x1f);\n    uVar18 = (ulong)local_40;\n    if (local_40 != 0) {\n      lVar9 = uVar18 * 8;\n      goto LAB_001da142;\n    }\n    if (uVar6 == 0) goto LAB_001da16d;\nLAB_001d9e70:\n    lVar10 = (ulong)uVar6 * 4;\n                    /* try { // try from 001d9e80 to 001d9e84 has its CatchHandler @ 001da1ff */\n    lVar9 = FUN_00337280(lVar10);\n    uVar18 = 0;\n    do {\n      uVar21 = uVar18;\n      *(undefined4 *)(lVar9 + uVar21 * 4) = 0;\n      uVar18 = uVar21 + 1;\n    } while ((ulong)uVar6 != uVar21 + 1);\n                    /* try { // try from 001d9ea9 to 001d9ead has its CatchHandler @ 001da209 */\n    lVar10 = FUN_00337280(lVar10);\n    uVar18 = 0;\n    do {\n      *(undefined4 *)(lVar10 + uVar18 * 4) = 0;\n      bVar22 = uVar21 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n    if (uVar7 != 0) goto LAB_001d9ed4;\n  }" else (compound_statement "{\n    uVar5 = 1;\n    do {\n      local_70 = uVar5;\n      uVar8 = uVar8 >> 1;\n      uVar5 = local_70 + 1;\n    } while (uVar8 != 0);\n    if (local_70 + 1 < 3) goto LAB_001da120;\n    if ((uVar7 >> (local_70 - 1 & 0x1f) & 1) == 0) {\n      local_70 = local_70 + 3;\n      if (local_70 == 5) goto LAB_001da120;\n    }\n    else {\n      local_70 = local_70 + 4;\n    }\n    puVar12 = (undefined8 *)0x0;\n    local_6c = 1 << ((byte)local_70 & 0x1f);\n    local_40 = 1 << ((byte)local_70 - 6 & 0x1f);\n    uVar18 = (ulong)local_40;\n    if (local_40 != 0) {\n      lVar9 = uVar18 * 8;\n      goto LAB_001da142;\n    }\n    if (uVar6 == 0) goto LAB_001da16d;\nLAB_001d9e70:\n    lVar10 = (ulong)uVar6 * 4;\n                    /* try { // try from 001d9e80 to 001d9e84 has its CatchHandler @ 001da1ff */\n    lVar9 = FUN_00337280(lVar10);\n    uVar18 = 0;\n    do {\n      uVar21 = uVar18;\n      *(undefined4 *)(lVar9 + uVar21 * 4) = 0;\n      uVar18 = uVar21 + 1;\n    } while ((ulong)uVar6 != uVar21 + 1);\n                    /* try { // try from 001d9ea9 to 001d9ead has its CatchHandler @ 001da209 */\n    lVar10 = FUN_00337280(lVar10);\n    uVar18 = 0;\n    do {\n      *(undefined4 *)(lVar10 + uVar18 * 4) = 0;\n      bVar22 = uVar21 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n    if (uVar7 != 0) goto LAB_001d9ed4;\n  }" { (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (do_statement "do {\n      local_70 = uVar5;\n      uVar8 = uVar8 >> 1;\n      uVar5 = local_70 + 1;\n    } while (uVar8 != 0);" do (compound_statement "{\n      local_70 = uVar5;\n      uVar8 = uVar8 >> 1;\n      uVar5 = local_70 + 1;\n    }" { (expression_statement "local_70 = uVar5;" (assignment_expression "local_70 = uVar5" identifier = identifier) ;) (expression_statement "uVar8 = uVar8 >> 1;" (assignment_expression "uVar8 = uVar8 >> 1" identifier = (binary_expression "uVar8 >> 1" identifier >> number_literal)) ;) (expression_statement "uVar5 = local_70 + 1;" (assignment_expression "uVar5 = local_70 + 1" identifier = (binary_expression "local_70 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar8 != 0)" ( (binary_expression "uVar8 != 0" identifier != number_literal) )) ;) (if_statement "if (local_70 + 1 < 3) goto LAB_001da120;" if (parenthesized_expression "(local_70 + 1 < 3)" ( (binary_expression "local_70 + 1 < 3" (binary_expression "local_70 + 1" identifier + number_literal) < number_literal) )) (goto_statement "goto LAB_001da120;" goto statement_identifier ;)) (if_statement "if ((uVar7 >> (local_70 - 1 & 0x1f) & 1) == 0) {\n      local_70 = local_70 + 3;\n      if (local_70 == 5) goto LAB_001da120;\n    }\n    else {\n      local_70 = local_70 + 4;\n    }" if (parenthesized_expression "((uVar7 >> (local_70 - 1 & 0x1f) & 1) == 0)" ( (binary_expression "(uVar7 >> (local_70 - 1 & 0x1f) & 1) == 0" (parenthesized_expression "(uVar7 >> (local_70 - 1 & 0x1f) & 1)" ( (binary_expression "uVar7 >> (local_70 - 1 & 0x1f) & 1" (binary_expression "uVar7 >> (local_70 - 1 & 0x1f)" identifier >> (parenthesized_expression "(local_70 - 1 & 0x1f)" ( (binary_expression "local_70 - 1 & 0x1f" (binary_expression "local_70 - 1" identifier - number_literal) & number_literal) ))) & number_literal) )) == number_literal) )) (compound_statement "{\n      local_70 = local_70 + 3;\n      if (local_70 == 5) goto LAB_001da120;\n    }" { (expression_statement "local_70 = local_70 + 3;" (assignment_expression "local_70 = local_70 + 3" identifier = (binary_expression "local_70 + 3" identifier + number_literal)) ;) (if_statement "if (local_70 == 5) goto LAB_001da120;" if (parenthesized_expression "(local_70 == 5)" ( (binary_expression "local_70 == 5" identifier == number_literal) )) (goto_statement "goto LAB_001da120;" goto statement_identifier ;)) }) (else_clause "else {\n      local_70 = local_70 + 4;\n    }" else (compound_statement "{\n      local_70 = local_70 + 4;\n    }" { (expression_statement "local_70 = local_70 + 4;" (assignment_expression "local_70 = local_70 + 4" identifier = (binary_expression "local_70 + 4" identifier + number_literal)) ;) }))) (expression_statement "puVar12 = (undefined8 *)0x0;" (assignment_expression "puVar12 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_6c = 1 << ((byte)local_70 & 0x1f);" (assignment_expression "local_6c = 1 << ((byte)local_70 & 0x1f)" identifier = (binary_expression "1 << ((byte)local_70 & 0x1f)" number_literal << (parenthesized_expression "((byte)local_70 & 0x1f)" ( (binary_expression "(byte)local_70 & 0x1f" (cast_expression "(byte)local_70" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "local_40 = 1 << ((byte)local_70 - 6 & 0x1f);" (assignment_expression "local_40 = 1 << ((byte)local_70 - 6 & 0x1f)" identifier = (binary_expression "1 << ((byte)local_70 - 6 & 0x1f)" number_literal << (parenthesized_expression "((byte)local_70 - 6 & 0x1f)" ( (binary_expression "(byte)local_70 - 6 & 0x1f" (binary_expression "(byte)local_70 - 6" (cast_expression "(byte)local_70" ( (type_descriptor "byte" type_identifier) ) identifier) - number_literal) & number_literal) )))) ;) (expression_statement "uVar18 = (ulong)local_40;" (assignment_expression "uVar18 = (ulong)local_40" identifier = (cast_expression "(ulong)local_40" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (local_40 != 0) {\n      lVar9 = uVar18 * 8;\n      goto LAB_001da142;\n    }" if (parenthesized_expression "(local_40 != 0)" ( (binary_expression "local_40 != 0" identifier != number_literal) )) (compound_statement "{\n      lVar9 = uVar18 * 8;\n      goto LAB_001da142;\n    }" { (expression_statement "lVar9 = uVar18 * 8;" (assignment_expression "lVar9 = uVar18 * 8" identifier = (binary_expression "uVar18 * 8" identifier * number_literal)) ;) (goto_statement "goto LAB_001da142;" goto statement_identifier ;) })) (if_statement "if (uVar6 == 0) goto LAB_001da16d;" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001da16d;" goto statement_identifier ;)) (labeled_statement "LAB_001d9e70:\n    lVar10 = (ulong)uVar6 * 4;" statement_identifier : (expression_statement "lVar10 = (ulong)uVar6 * 4;" (assignment_expression "lVar10 = (ulong)uVar6 * 4" identifier = (binary_expression "(ulong)uVar6 * 4" (cast_expression "(ulong)uVar6" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) ;)) comment (expression_statement "lVar9 = FUN_00337280(lVar10);" (assignment_expression "lVar9 = FUN_00337280(lVar10)" identifier = (call_expression "FUN_00337280(lVar10)" identifier (argument_list "(lVar10)" ( identifier )))) ;) (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n      uVar21 = uVar18;\n      *(undefined4 *)(lVar9 + uVar21 * 4) = 0;\n      uVar18 = uVar21 + 1;\n    } while ((ulong)uVar6 != uVar21 + 1);" do (compound_statement "{\n      uVar21 = uVar18;\n      *(undefined4 *)(lVar9 + uVar21 * 4) = 0;\n      uVar18 = uVar21 + 1;\n    }" { (expression_statement "uVar21 = uVar18;" (assignment_expression "uVar21 = uVar18" identifier = identifier) ;) (expression_statement "*(undefined4 *)(lVar9 + uVar21 * 4) = 0;" (assignment_expression "*(undefined4 *)(lVar9 + uVar21 * 4) = 0" (pointer_expression "*(undefined4 *)(lVar9 + uVar21 * 4)" * (cast_expression "(undefined4 *)(lVar9 + uVar21 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + uVar21 * 4)" ( (binary_expression "lVar9 + uVar21 * 4" identifier + (binary_expression "uVar21 * 4" identifier * number_literal)) )))) = number_literal) ;) (expression_statement "uVar18 = uVar21 + 1;" (assignment_expression "uVar18 = uVar21 + 1" identifier = (binary_expression "uVar21 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((ulong)uVar6 != uVar21 + 1)" ( (binary_expression "(ulong)uVar6 != uVar21 + 1" (cast_expression "(ulong)uVar6" ( (type_descriptor "ulong" type_identifier) ) identifier) != (binary_expression "uVar21 + 1" identifier + number_literal)) )) ;) comment (expression_statement "lVar10 = FUN_00337280(lVar10);" (assignment_expression "lVar10 = FUN_00337280(lVar10)" identifier = (call_expression "FUN_00337280(lVar10)" identifier (argument_list "(lVar10)" ( identifier )))) ;) (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n      *(undefined4 *)(lVar10 + uVar18 * 4) = 0;\n      bVar22 = uVar21 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);" do (compound_statement "{\n      *(undefined4 *)(lVar10 + uVar18 * 4) = 0;\n      bVar22 = uVar21 != uVar18;\n      uVar18 = uVar18 + 1;\n    }" { (expression_statement "*(undefined4 *)(lVar10 + uVar18 * 4) = 0;" (assignment_expression "*(undefined4 *)(lVar10 + uVar18 * 4) = 0" (pointer_expression "*(undefined4 *)(lVar10 + uVar18 * 4)" * (cast_expression "(undefined4 *)(lVar10 + uVar18 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + uVar18 * 4)" ( (binary_expression "lVar10 + uVar18 * 4" identifier + (binary_expression "uVar18 * 4" identifier * number_literal)) )))) = number_literal) ;) (expression_statement "bVar22 = uVar21 != uVar18;" (assignment_expression "bVar22 = uVar21 != uVar18" identifier = (binary_expression "uVar21 != uVar18" identifier != identifier)) ;) (expression_statement "uVar18 = uVar18 + 1;" (assignment_expression "uVar18 = uVar18 + 1" identifier = (binary_expression "uVar18 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (if_statement "if (uVar7 != 0) goto LAB_001d9ed4;" if (parenthesized_expression "(uVar7 != 0)" ( (binary_expression "uVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_001d9ed4;" goto statement_identifier ;)) }))) (if_statement "if (uVar6 != 0) {\n    uVar18 = 0;\n    uVar8 = param_3;\n    do {\n      *(uint *)(lVar10 + uVar18 * 4) = uVar8;\n      uVar8 = uVar8 + *(int *)(lVar9 + uVar18 * 4);\n      bVar22 = uVar6 - 1 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n  }" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar18 = 0;\n    uVar8 = param_3;\n    do {\n      *(uint *)(lVar10 + uVar18 * 4) = uVar8;\n      uVar8 = uVar8 + *(int *)(lVar9 + uVar18 * 4);\n      bVar22 = uVar6 - 1 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n  }" { (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (expression_statement "uVar8 = param_3;" (assignment_expression "uVar8 = param_3" identifier = identifier) ;) (do_statement "do {\n      *(uint *)(lVar10 + uVar18 * 4) = uVar8;\n      uVar8 = uVar8 + *(int *)(lVar9 + uVar18 * 4);\n      bVar22 = uVar6 - 1 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);" do (compound_statement "{\n      *(uint *)(lVar10 + uVar18 * 4) = uVar8;\n      uVar8 = uVar8 + *(int *)(lVar9 + uVar18 * 4);\n      bVar22 = uVar6 - 1 != uVar18;\n      uVar18 = uVar18 + 1;\n    }" { (expression_statement "*(uint *)(lVar10 + uVar18 * 4) = uVar8;" (assignment_expression "*(uint *)(lVar10 + uVar18 * 4) = uVar8" (pointer_expression "*(uint *)(lVar10 + uVar18 * 4)" * (cast_expression "(uint *)(lVar10 + uVar18 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + uVar18 * 4)" ( (binary_expression "lVar10 + uVar18 * 4" identifier + (binary_expression "uVar18 * 4" identifier * number_literal)) )))) = identifier) ;) (expression_statement "uVar8 = uVar8 + *(int *)(lVar9 + uVar18 * 4);" (assignment_expression "uVar8 = uVar8 + *(int *)(lVar9 + uVar18 * 4)" identifier = (binary_expression "uVar8 + *(int *)(lVar9 + uVar18 * 4)" identifier + (pointer_expression "*(int *)(lVar9 + uVar18 * 4)" * (cast_expression "(int *)(lVar9 + uVar18 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + uVar18 * 4)" ( (binary_expression "lVar9 + uVar18 * 4" identifier + (binary_expression "uVar18 * 4" identifier * number_literal)) )))))) ;) (expression_statement "bVar22 = uVar6 - 1 != uVar18;" (assignment_expression "bVar22 = uVar6 - 1 != uVar18" identifier = (binary_expression "uVar6 - 1 != uVar18" (binary_expression "uVar6 - 1" identifier - number_literal) != identifier)) ;) (expression_statement "uVar18 = uVar18 + 1;" (assignment_expression "uVar18 = uVar18 + 1" identifier = (binary_expression "uVar18 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) })) (labeled_statement "LAB_001d9f2b:\n                    /* try { // try from 001d9f4b to 001d9f4f has its CatchHandler @ 001da204 */\n  puVar11 = (uint *)thunk_FUN_00337280();" statement_identifier : comment (expression_statement "puVar11 = (uint *)thunk_FUN_00337280();" (assignment_expression "puVar11 = (uint *)thunk_FUN_00337280()" identifier = (cast_expression "(uint *)thunk_FUN_00337280()" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "thunk_FUN_00337280()" identifier (argument_list "()" ( ))))) ;)) (expression_statement "*puVar11 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;" (assignment_expression "*puVar11 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18" (pointer_expression "*puVar11" * identifier) = (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8" (binary_expression "uVar6 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff0000) >> 8" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00) << 8" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x18" identifier << number_literal))) ;) (expression_statement "lVar20 = (long)puVar11 + (ulong)(local_6c >> 3) + 0x10;" (assignment_expression "lVar20 = (long)puVar11 + (ulong)(local_6c >> 3) + 0x10" identifier = (binary_expression "(long)puVar11 + (ulong)(local_6c >> 3) + 0x10" (binary_expression "(long)puVar11 + (ulong)(local_6c >> 3)" (cast_expression "(long)puVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (call_expression "(ulong)(local_6c >> 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(local_6c >> 3)" ( (binary_expression "local_6c >> 3" identifier >> number_literal) )))) + number_literal)) ;) (expression_statement "puVar11[1] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n               param_3 << 0x18;" (assignment_expression "puVar11[1] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n               param_3 << 0x18" (subscript_expression "puVar11[1]" identifier [ number_literal ]) = (binary_expression "param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n               param_3 << 0x18" (binary_expression "param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8" (binary_expression "param_3 >> 0x18 | (param_3 & 0xff0000) >> 8" (binary_expression "param_3 >> 0x18" identifier >> number_literal) | (binary_expression "(param_3 & 0xff0000) >> 8" (parenthesized_expression "(param_3 & 0xff0000)" ( (binary_expression "param_3 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(param_3 & 0xff00) << 8" (parenthesized_expression "(param_3 & 0xff00)" ( (binary_expression "param_3 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "param_3 << 0x18" identifier << number_literal))) ;) (expression_statement "puVar11[2] = local_40 >> 0x18 | (local_40 & 0xff0000) >> 8 | (local_40 & 0xff00) << 8 |\n               local_40 << 0x18;" (assignment_expression "puVar11[2] = local_40 >> 0x18 | (local_40 & 0xff0000) >> 8 | (local_40 & 0xff00) << 8 |\n               local_40 << 0x18" (subscript_expression "puVar11[2]" identifier [ number_literal ]) = (binary_expression "local_40 >> 0x18 | (local_40 & 0xff0000) >> 8 | (local_40 & 0xff00) << 8 |\n               local_40 << 0x18" (binary_expression "local_40 >> 0x18 | (local_40 & 0xff0000) >> 8 | (local_40 & 0xff00) << 8" (binary_expression "local_40 >> 0x18 | (local_40 & 0xff0000) >> 8" (binary_expression "local_40 >> 0x18" identifier >> number_literal) | (binary_expression "(local_40 & 0xff0000) >> 8" (parenthesized_expression "(local_40 & 0xff0000)" ( (binary_expression "local_40 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(local_40 & 0xff00) << 8" (parenthesized_expression "(local_40 & 0xff00)" ( (binary_expression "local_40 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "local_40 << 0x18" identifier << number_literal))) ;) (expression_statement "puVar11[3] = local_70 >> 0x18 | (local_70 & 0xff0000) >> 8 | (local_70 & 0xff00) << 8 |\n               local_70 << 0x18;" (assignment_expression "puVar11[3] = local_70 >> 0x18 | (local_70 & 0xff0000) >> 8 | (local_70 & 0xff00) << 8 |\n               local_70 << 0x18" (subscript_expression "puVar11[3]" identifier [ number_literal ]) = (binary_expression "local_70 >> 0x18 | (local_70 & 0xff0000) >> 8 | (local_70 & 0xff00) << 8 |\n               local_70 << 0x18" (binary_expression "local_70 >> 0x18 | (local_70 & 0xff0000) >> 8 | (local_70 & 0xff00) << 8" (binary_expression "local_70 >> 0x18 | (local_70 & 0xff0000) >> 8" (binary_expression "local_70 >> 0x18" identifier >> number_literal) | (binary_expression "(local_70 & 0xff0000) >> 8" (parenthesized_expression "(local_70 & 0xff0000)" ( (binary_expression "local_70 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(local_70 & 0xff00) << 8" (parenthesized_expression "(local_70 & 0xff00)" ( (binary_expression "local_70 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "local_70 << 0x18" identifier << number_literal))) ;) (if_statement "if (uVar6 != 0) {\n    uVar18 = 0;\n    do {\n      uVar8 = *(uint *)(lVar9 + uVar18 * 4);\n      if (uVar8 != 0) {\n        uVar8 = *(uint *)(lVar10 + uVar18 * 4);\n        uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      }\n      *(uint *)(lVar20 + uVar18 * 4) = uVar8;\n      bVar22 = uVar6 - 1 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n    lVar20 = lVar20 + ((ulong)(uVar6 - 1) + 1) * 4;\n  }" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar18 = 0;\n    do {\n      uVar8 = *(uint *)(lVar9 + uVar18 * 4);\n      if (uVar8 != 0) {\n        uVar8 = *(uint *)(lVar10 + uVar18 * 4);\n        uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      }\n      *(uint *)(lVar20 + uVar18 * 4) = uVar8;\n      bVar22 = uVar6 - 1 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n    lVar20 = lVar20 + ((ulong)(uVar6 - 1) + 1) * 4;\n  }" { (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n      uVar8 = *(uint *)(lVar9 + uVar18 * 4);\n      if (uVar8 != 0) {\n        uVar8 = *(uint *)(lVar10 + uVar18 * 4);\n        uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      }\n      *(uint *)(lVar20 + uVar18 * 4) = uVar8;\n      bVar22 = uVar6 - 1 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);" do (compound_statement "{\n      uVar8 = *(uint *)(lVar9 + uVar18 * 4);\n      if (uVar8 != 0) {\n        uVar8 = *(uint *)(lVar10 + uVar18 * 4);\n        uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      }\n      *(uint *)(lVar20 + uVar18 * 4) = uVar8;\n      bVar22 = uVar6 - 1 != uVar18;\n      uVar18 = uVar18 + 1;\n    }" { (expression_statement "uVar8 = *(uint *)(lVar9 + uVar18 * 4);" (assignment_expression "uVar8 = *(uint *)(lVar9 + uVar18 * 4)" identifier = (pointer_expression "*(uint *)(lVar9 + uVar18 * 4)" * (cast_expression "(uint *)(lVar9 + uVar18 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + uVar18 * 4)" ( (binary_expression "lVar9 + uVar18 * 4" identifier + (binary_expression "uVar18 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (uVar8 != 0) {\n        uVar8 = *(uint *)(lVar10 + uVar18 * 4);\n        uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      }" if (parenthesized_expression "(uVar8 != 0)" ( (binary_expression "uVar8 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar8 = *(uint *)(lVar10 + uVar18 * 4);\n        uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      }" { (expression_statement "uVar8 = *(uint *)(lVar10 + uVar18 * 4);" (assignment_expression "uVar8 = *(uint *)(lVar10 + uVar18 * 4)" identifier = (pointer_expression "*(uint *)(lVar10 + uVar18 * 4)" * (cast_expression "(uint *)(lVar10 + uVar18 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + uVar18 * 4)" ( (binary_expression "lVar10 + uVar18 * 4" identifier + (binary_expression "uVar18 * 4" identifier * number_literal)) ))))) ;) (expression_statement "uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;" (assignment_expression "uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18" identifier = (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8" (binary_expression "uVar8 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar8 & 0xff0000) >> 8" (parenthesized_expression "(uVar8 & 0xff0000)" ( (binary_expression "uVar8 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar8 & 0xff00) << 8" (parenthesized_expression "(uVar8 & 0xff00)" ( (binary_expression "uVar8 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar8 << 0x18" identifier << number_literal))) ;) })) (expression_statement "*(uint *)(lVar20 + uVar18 * 4) = uVar8;" (assignment_expression "*(uint *)(lVar20 + uVar18 * 4) = uVar8" (pointer_expression "*(uint *)(lVar20 + uVar18 * 4)" * (cast_expression "(uint *)(lVar20 + uVar18 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar20 + uVar18 * 4)" ( (binary_expression "lVar20 + uVar18 * 4" identifier + (binary_expression "uVar18 * 4" identifier * number_literal)) )))) = identifier) ;) (expression_statement "bVar22 = uVar6 - 1 != uVar18;" (assignment_expression "bVar22 = uVar6 - 1 != uVar18" identifier = (binary_expression "uVar6 - 1 != uVar18" (binary_expression "uVar6 - 1" identifier - number_literal) != identifier)) ;) (expression_statement "uVar18 = uVar18 + 1;" (assignment_expression "uVar18 = uVar18 + 1" identifier = (binary_expression "uVar18 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (expression_statement "lVar20 = lVar20 + ((ulong)(uVar6 - 1) + 1) * 4;" (assignment_expression "lVar20 = lVar20 + ((ulong)(uVar6 - 1) + 1) * 4" identifier = (binary_expression "lVar20 + ((ulong)(uVar6 - 1) + 1) * 4" identifier + (binary_expression "((ulong)(uVar6 - 1) + 1) * 4" (parenthesized_expression "((ulong)(uVar6 - 1) + 1)" ( (binary_expression "(ulong)(uVar6 - 1) + 1" (call_expression "(ulong)(uVar6 - 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar6 - 1)" ( (binary_expression "uVar6 - 1" identifier - number_literal) ))) + number_literal) )) * number_literal))) ;) })) (if_statement "if (uVar7 != 0) {\n    param_1 = (long *)*param_1;\n    puVar19 = (uint *)*param_2;\n    plVar2 = param_1 + (ulong)(uVar7 - 1) + 1;\n    do {\n      uVar8 = *puVar19;\n      lVar15 = *param_1;\n      puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] =\n           puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] |\n           1L << ((byte)(uVar8 >> ((byte)local_70 & 0x1f)) & 0x3f) | 1L << ((byte)uVar8 & 0x3f);\n      lVar16 = ((ulong)uVar8 % (ulong)uVar6) * 4;\n      piVar1 = (int *)(lVar9 + lVar16);\n      iVar3 = *piVar1;\n      uVar5 = uVar8 & 0xfffffffe;\n      if (iVar3 == 1) {\n        uVar5 = uVar8 & 0xfffffffe | 1;\n      }\n      piVar17 = (int *)(lVar16 + lVar10);\n      iVar4 = *piVar17;\n      *piVar1 = iVar3 + -1;\n      *(uint *)(lVar20 + (ulong)((iVar4 - param_3) * 4)) =\n           uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n      if (iVar4 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001da1fa to 001da1fe has its CatchHandler @ 001da204 */\n        FUN_001e9890("../../gold/symtab.h",0x1a2,"set_dynsym_index");\n      }\n      *(int *)(lVar15 + 0x20) = iVar4;\n      param_1 = param_1 + 1;\n      puVar19 = puVar19 + 1;\n      *piVar17 = iVar4 + 1;\n    } while (plVar2 != param_1);\n  }" if (parenthesized_expression "(uVar7 != 0)" ( (binary_expression "uVar7 != 0" identifier != number_literal) )) (compound_statement "{\n    param_1 = (long *)*param_1;\n    puVar19 = (uint *)*param_2;\n    plVar2 = param_1 + (ulong)(uVar7 - 1) + 1;\n    do {\n      uVar8 = *puVar19;\n      lVar15 = *param_1;\n      puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] =\n           puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] |\n           1L << ((byte)(uVar8 >> ((byte)local_70 & 0x1f)) & 0x3f) | 1L << ((byte)uVar8 & 0x3f);\n      lVar16 = ((ulong)uVar8 % (ulong)uVar6) * 4;\n      piVar1 = (int *)(lVar9 + lVar16);\n      iVar3 = *piVar1;\n      uVar5 = uVar8 & 0xfffffffe;\n      if (iVar3 == 1) {\n        uVar5 = uVar8 & 0xfffffffe | 1;\n      }\n      piVar17 = (int *)(lVar16 + lVar10);\n      iVar4 = *piVar17;\n      *piVar1 = iVar3 + -1;\n      *(uint *)(lVar20 + (ulong)((iVar4 - param_3) * 4)) =\n           uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n      if (iVar4 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001da1fa to 001da1fe has its CatchHandler @ 001da204 */\n        FUN_001e9890("../../gold/symtab.h",0x1a2,"set_dynsym_index");\n      }\n      *(int *)(lVar15 + 0x20) = iVar4;\n      param_1 = param_1 + 1;\n      puVar19 = puVar19 + 1;\n      *piVar17 = iVar4 + 1;\n    } while (plVar2 != param_1);\n  }" { (expression_statement "param_1 = (long *)*param_1;" (assignment_expression "param_1 = (long *)*param_1" identifier = (cast_expression "(long *)*param_1" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "puVar19 = (uint *)*param_2;" (assignment_expression "puVar19 = (uint *)*param_2" identifier = (cast_expression "(uint *)*param_2" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (expression_statement "plVar2 = param_1 + (ulong)(uVar7 - 1) + 1;" (assignment_expression "plVar2 = param_1 + (ulong)(uVar7 - 1) + 1" identifier = (binary_expression "param_1 + (ulong)(uVar7 - 1) + 1" (binary_expression "param_1 + (ulong)(uVar7 - 1)" identifier + (call_expression "(ulong)(uVar7 - 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar7 - 1)" ( (binary_expression "uVar7 - 1" identifier - number_literal) )))) + number_literal)) ;) (do_statement "do {\n      uVar8 = *puVar19;\n      lVar15 = *param_1;\n      puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] =\n           puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] |\n           1L << ((byte)(uVar8 >> ((byte)local_70 & 0x1f)) & 0x3f) | 1L << ((byte)uVar8 & 0x3f);\n      lVar16 = ((ulong)uVar8 % (ulong)uVar6) * 4;\n      piVar1 = (int *)(lVar9 + lVar16);\n      iVar3 = *piVar1;\n      uVar5 = uVar8 & 0xfffffffe;\n      if (iVar3 == 1) {\n        uVar5 = uVar8 & 0xfffffffe | 1;\n      }\n      piVar17 = (int *)(lVar16 + lVar10);\n      iVar4 = *piVar17;\n      *piVar1 = iVar3 + -1;\n      *(uint *)(lVar20 + (ulong)((iVar4 - param_3) * 4)) =\n           uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n      if (iVar4 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001da1fa to 001da1fe has its CatchHandler @ 001da204 */\n        FUN_001e9890("../../gold/symtab.h",0x1a2,"set_dynsym_index");\n      }\n      *(int *)(lVar15 + 0x20) = iVar4;\n      param_1 = param_1 + 1;\n      puVar19 = puVar19 + 1;\n      *piVar17 = iVar4 + 1;\n    } while (plVar2 != param_1);" do (compound_statement "{\n      uVar8 = *puVar19;\n      lVar15 = *param_1;\n      puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] =\n           puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] |\n           1L << ((byte)(uVar8 >> ((byte)local_70 & 0x1f)) & 0x3f) | 1L << ((byte)uVar8 & 0x3f);\n      lVar16 = ((ulong)uVar8 % (ulong)uVar6) * 4;\n      piVar1 = (int *)(lVar9 + lVar16);\n      iVar3 = *piVar1;\n      uVar5 = uVar8 & 0xfffffffe;\n      if (iVar3 == 1) {\n        uVar5 = uVar8 & 0xfffffffe | 1;\n      }\n      piVar17 = (int *)(lVar16 + lVar10);\n      iVar4 = *piVar17;\n      *piVar1 = iVar3 + -1;\n      *(uint *)(lVar20 + (ulong)((iVar4 - param_3) * 4)) =\n           uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n      if (iVar4 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001da1fa to 001da1fe has its CatchHandler @ 001da204 */\n        FUN_001e9890("../../gold/symtab.h",0x1a2,"set_dynsym_index");\n      }\n      *(int *)(lVar15 + 0x20) = iVar4;\n      param_1 = param_1 + 1;\n      puVar19 = puVar19 + 1;\n      *piVar17 = iVar4 + 1;\n    }" { (expression_statement "uVar8 = *puVar19;" (assignment_expression "uVar8 = *puVar19" identifier = (pointer_expression "*puVar19" * identifier)) ;) (expression_statement "lVar15 = *param_1;" (assignment_expression "lVar15 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] =\n           puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] |\n           1L << ((byte)(uVar8 >> ((byte)local_70 & 0x1f)) & 0x3f) | 1L << ((byte)uVar8 & 0x3f);" (assignment_expression "puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] =\n           puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] |\n           1L << ((byte)(uVar8 >> ((byte)local_70 & 0x1f)) & 0x3f) | 1L << ((byte)uVar8 & 0x3f)" (subscript_expression "puVar12[uVar8 >> 6 & (local_6c >> 6) - 1]" identifier [ (binary_expression "uVar8 >> 6 & (local_6c >> 6) - 1" (binary_expression "uVar8 >> 6" identifier >> number_literal) & (binary_expression "(local_6c >> 6) - 1" (parenthesized_expression "(local_6c >> 6)" ( (binary_expression "local_6c >> 6" identifier >> number_literal) )) - number_literal)) ]) = (binary_expression "puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] |\n           1L << ((byte)(uVar8 >> ((byte)local_70 & 0x1f)) & 0x3f) | 1L << ((byte)uVar8 & 0x3f)" (binary_expression "puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] |\n           1L << ((byte)(uVar8 >> ((byte)local_70 & 0x1f)) & 0x3f)" (subscript_expression "puVar12[uVar8 >> 6 & (local_6c >> 6) - 1]" identifier [ (binary_expression "uVar8 >> 6 & (local_6c >> 6) - 1" (binary_expression "uVar8 >> 6" identifier >> number_literal) & (binary_expression "(local_6c >> 6) - 1" (parenthesized_expression "(local_6c >> 6)" ( (binary_expression "local_6c >> 6" identifier >> number_literal) )) - number_literal)) ]) | (binary_expression "1L << ((byte)(uVar8 >> ((byte)local_70 & 0x1f)) & 0x3f)" number_literal << (parenthesized_expression "((byte)(uVar8 >> ((byte)local_70 & 0x1f)) & 0x3f)" ( (binary_expression "(byte)(uVar8 >> ((byte)local_70 & 0x1f)) & 0x3f" (call_expression "(byte)(uVar8 >> ((byte)local_70 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar8 >> ((byte)local_70 & 0x1f))" ( (binary_expression "uVar8 >> ((byte)local_70 & 0x1f)" identifier >> (parenthesized_expression "((byte)local_70 & 0x1f)" ( (binary_expression "(byte)local_70 & 0x1f" (cast_expression "(byte)local_70" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & number_literal) )))) | (binary_expression "1L << ((byte)uVar8 & 0x3f)" number_literal << (parenthesized_expression "((byte)uVar8 & 0x3f)" ( (binary_expression "(byte)uVar8 & 0x3f" (cast_expression "(byte)uVar8" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))))) ;) (expression_statement "lVar16 = ((ulong)uVar8 % (ulong)uVar6) * 4;" (assignment_expression "lVar16 = ((ulong)uVar8 % (ulong)uVar6) * 4" identifier = (binary_expression "((ulong)uVar8 % (ulong)uVar6) * 4" (parenthesized_expression "((ulong)uVar8 % (ulong)uVar6)" ( (binary_expression "(ulong)uVar8 % (ulong)uVar6" (cast_expression "(ulong)uVar8" ( (type_descriptor "ulong" type_identifier) ) identifier) % (cast_expression "(ulong)uVar6" ( (type_descriptor "ulong" type_identifier) ) identifier)) )) * number_literal)) ;) (expression_statement "piVar1 = (int *)(lVar9 + lVar16);" (assignment_expression "piVar1 = (int *)(lVar9 + lVar16)" identifier = (cast_expression "(int *)(lVar9 + lVar16)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + lVar16)" ( (binary_expression "lVar9 + lVar16" identifier + identifier) )))) ;) (expression_statement "iVar3 = *piVar1;" (assignment_expression "iVar3 = *piVar1" identifier = (pointer_expression "*piVar1" * identifier)) ;) (expression_statement "uVar5 = uVar8 & 0xfffffffe;" (assignment_expression "uVar5 = uVar8 & 0xfffffffe" identifier = (binary_expression "uVar8 & 0xfffffffe" identifier & number_literal)) ;) (if_statement "if (iVar3 == 1) {\n        uVar5 = uVar8 & 0xfffffffe | 1;\n      }" if (parenthesized_expression "(iVar3 == 1)" ( (binary_expression "iVar3 == 1" identifier == number_literal) )) (compound_statement "{\n        uVar5 = uVar8 & 0xfffffffe | 1;\n      }" { (expression_statement "uVar5 = uVar8 & 0xfffffffe | 1;" (assignment_expression "uVar5 = uVar8 & 0xfffffffe | 1" identifier = (binary_expression "uVar8 & 0xfffffffe | 1" (binary_expression "uVar8 & 0xfffffffe" identifier & number_literal) | number_literal)) ;) })) (expression_statement "piVar17 = (int *)(lVar16 + lVar10);" (assignment_expression "piVar17 = (int *)(lVar16 + lVar10)" identifier = (cast_expression "(int *)(lVar16 + lVar10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + lVar10)" ( (binary_expression "lVar16 + lVar10" identifier + identifier) )))) ;) (expression_statement "iVar4 = *piVar17;" (assignment_expression "iVar4 = *piVar17" identifier = (pointer_expression "*piVar17" * identifier)) ;) (expression_statement "*piVar1 = iVar3 + -1;" (assignment_expression "*piVar1 = iVar3 + -1" (pointer_expression "*piVar1" * identifier) = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) (expression_statement "*(uint *)(lVar20 + (ulong)((iVar4 - param_3) * 4)) =\n           uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;" (assignment_expression "*(uint *)(lVar20 + (ulong)((iVar4 - param_3) * 4)) =\n           uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18" (pointer_expression "*(uint *)(lVar20 + (ulong)((iVar4 - param_3) * 4))" * (cast_expression "(uint *)(lVar20 + (ulong)((iVar4 - param_3) * 4))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar20 + (ulong)((iVar4 - param_3) * 4))" ( (binary_expression "lVar20 + (ulong)((iVar4 - param_3) * 4)" identifier + (call_expression "(ulong)((iVar4 - param_3) * 4)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((iVar4 - param_3) * 4)" ( (binary_expression "(iVar4 - param_3) * 4" (parenthesized_expression "(iVar4 - param_3)" ( (binary_expression "iVar4 - param_3" identifier - identifier) )) * number_literal) )))) )))) = (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18" (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8" (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8" (binary_expression "uVar5 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar5 & 0xff0000) >> 8" (parenthesized_expression "(uVar5 & 0xff0000)" ( (binary_expression "uVar5 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar5 & 0xff00) << 8" (parenthesized_expression "(uVar5 & 0xff00)" ( (binary_expression "uVar5 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar5 << 0x18" identifier << number_literal))) ;) (if_statement "if (iVar4 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001da1fa to 001da1fe has its CatchHandler @ 001da204 */\n        FUN_001e9890("../../gold/symtab.h",0x1a2,"set_dynsym_index");\n      }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001da1fa to 001da1fe has its CatchHandler @ 001da204 */\n        FUN_001e9890("../../gold/symtab.h",0x1a2,"set_dynsym_index");\n      }" { comment comment (expression_statement "FUN_001e9890("../../gold/symtab.h",0x1a2,"set_dynsym_index");" (call_expression "FUN_001e9890("../../gold/symtab.h",0x1a2,"set_dynsym_index")" identifier (argument_list "("../../gold/symtab.h",0x1a2,"set_dynsym_index")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""set_dynsym_index"" " string_content ") ))) ;) })) (expression_statement "*(int *)(lVar15 + 0x20) = iVar4;" (assignment_expression "*(int *)(lVar15 + 0x20) = iVar4" (pointer_expression "*(int *)(lVar15 + 0x20)" * (cast_expression "(int *)(lVar15 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x20)" ( (binary_expression "lVar15 + 0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (expression_statement "puVar19 = puVar19 + 1;" (assignment_expression "puVar19 = puVar19 + 1" identifier = (binary_expression "puVar19 + 1" identifier + number_literal)) ;) (expression_statement "*piVar17 = iVar4 + 1;" (assignment_expression "*piVar17 = iVar4 + 1" (pointer_expression "*piVar17" * identifier) = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(plVar2 != param_1)" ( (binary_expression "plVar2 != param_1" identifier != identifier) )) ;) })) (if_statement "if (local_40 != 0) {\n    uVar18 = 0;\n    do {\n      uVar21 = puVar12[uVar18];\n      *(ulong *)(puVar11 + uVar18 * 2 + 4) =\n           uVar21 >> 0x38 | (uVar21 & 0xff000000000000) >> 0x28 | (uVar21 & 0xff0000000000) >> 0x18\n           | (uVar21 & 0xff00000000) >> 8 | (uVar21 & 0xff000000) << 8 | (uVar21 & 0xff0000) << 0x18\n           | (uVar21 & 0xff00) << 0x28 | uVar21 << 0x38;\n      bVar22 = uVar18 != local_40 - 1;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n  }" if (parenthesized_expression "(local_40 != 0)" ( (binary_expression "local_40 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar18 = 0;\n    do {\n      uVar21 = puVar12[uVar18];\n      *(ulong *)(puVar11 + uVar18 * 2 + 4) =\n           uVar21 >> 0x38 | (uVar21 & 0xff000000000000) >> 0x28 | (uVar21 & 0xff0000000000) >> 0x18\n           | (uVar21 & 0xff00000000) >> 8 | (uVar21 & 0xff000000) << 8 | (uVar21 & 0xff0000) << 0x18\n           | (uVar21 & 0xff00) << 0x28 | uVar21 << 0x38;\n      bVar22 = uVar18 != local_40 - 1;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n  }" { (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n      uVar21 = puVar12[uVar18];\n      *(ulong *)(puVar11 + uVar18 * 2 + 4) =\n           uVar21 >> 0x38 | (uVar21 & 0xff000000000000) >> 0x28 | (uVar21 & 0xff0000000000) >> 0x18\n           | (uVar21 & 0xff00000000) >> 8 | (uVar21 & 0xff000000) << 8 | (uVar21 & 0xff0000) << 0x18\n           | (uVar21 & 0xff00) << 0x28 | uVar21 << 0x38;\n      bVar22 = uVar18 != local_40 - 1;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);" do (compound_statement "{\n      uVar21 = puVar12[uVar18];\n      *(ulong *)(puVar11 + uVar18 * 2 + 4) =\n           uVar21 >> 0x38 | (uVar21 & 0xff000000000000) >> 0x28 | (uVar21 & 0xff0000000000) >> 0x18\n           | (uVar21 & 0xff00000000) >> 8 | (uVar21 & 0xff000000) << 8 | (uVar21 & 0xff0000) << 0x18\n           | (uVar21 & 0xff00) << 0x28 | uVar21 << 0x38;\n      bVar22 = uVar18 != local_40 - 1;\n      uVar18 = uVar18 + 1;\n    }" { (expression_statement "uVar21 = puVar12[uVar18];" (assignment_expression "uVar21 = puVar12[uVar18]" identifier = (subscript_expression "puVar12[uVar18]" identifier [ identifier ])) ;) (expression_statement "*(ulong *)(puVar11 + uVar18 * 2 + 4) =\n           uVar21 >> 0x38 | (uVar21 & 0xff000000000000) >> 0x28 | (uVar21 & 0xff0000000000) >> 0x18\n           | (uVar21 & 0xff00000000) >> 8 | (uVar21 & 0xff000000) << 8 | (uVar21 & 0xff0000) << 0x18\n           | (uVar21 & 0xff00) << 0x28 | uVar21 << 0x38;" (assignment_expression "*(ulong *)(puVar11 + uVar18 * 2 + 4) =\n           uVar21 >> 0x38 | (uVar21 & 0xff000000000000) >> 0x28 | (uVar21 & 0xff0000000000) >> 0x18\n           | (uVar21 & 0xff00000000) >> 8 | (uVar21 & 0xff000000) << 8 | (uVar21 & 0xff0000) << 0x18\n           | (uVar21 & 0xff00) << 0x28 | uVar21 << 0x38" (pointer_expression "*(ulong *)(puVar11 + uVar18 * 2 + 4)" * (cast_expression "(ulong *)(puVar11 + uVar18 * 2 + 4)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + uVar18 * 2 + 4)" ( (binary_expression "puVar11 + uVar18 * 2 + 4" (binary_expression "puVar11 + uVar18 * 2" identifier + (binary_expression "uVar18 * 2" identifier * number_literal)) + number_literal) )))) = (binary_expression "uVar21 >> 0x38 | (uVar21 & 0xff000000000000) >> 0x28 | (uVar21 & 0xff0000000000) >> 0x18\n           | (uVar21 & 0xff00000000) >> 8 | (uVar21 & 0xff000000) << 8 | (uVar21 & 0xff0000) << 0x18\n           | (uVar21 & 0xff00) << 0x28 | uVar21 << 0x38" (binary_expression "uVar21 >> 0x38 | (uVar21 & 0xff000000000000) >> 0x28 | (uVar21 & 0xff0000000000) >> 0x18\n           | (uVar21 & 0xff00000000) >> 8 | (uVar21 & 0xff000000) << 8 | (uVar21 & 0xff0000) << 0x18\n           | (uVar21 & 0xff00) << 0x28" (binary_expression "uVar21 >> 0x38 | (uVar21 & 0xff000000000000) >> 0x28 | (uVar21 & 0xff0000000000) >> 0x18\n           | (uVar21 & 0xff00000000) >> 8 | (uVar21 & 0xff000000) << 8 | (uVar21 & 0xff0000) << 0x18" (binary_expression "uVar21 >> 0x38 | (uVar21 & 0xff000000000000) >> 0x28 | (uVar21 & 0xff0000000000) >> 0x18\n           | (uVar21 & 0xff00000000) >> 8 | (uVar21 & 0xff000000) << 8" (binary_expression "uVar21 >> 0x38 | (uVar21 & 0xff000000000000) >> 0x28 | (uVar21 & 0xff0000000000) >> 0x18\n           | (uVar21 & 0xff00000000) >> 8" (binary_expression "uVar21 >> 0x38 | (uVar21 & 0xff000000000000) >> 0x28 | (uVar21 & 0xff0000000000) >> 0x18" (binary_expression "uVar21 >> 0x38 | (uVar21 & 0xff000000000000) >> 0x28" (binary_expression "uVar21 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar21 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar21 & 0xff000000000000)" ( (binary_expression "uVar21 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar21 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar21 & 0xff0000000000)" ( (binary_expression "uVar21 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar21 & 0xff00000000) >> 8" (parenthesized_expression "(uVar21 & 0xff00000000)" ( (binary_expression "uVar21 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar21 & 0xff000000) << 8" (parenthesized_expression "(uVar21 & 0xff000000)" ( (binary_expression "uVar21 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar21 & 0xff0000) << 0x18" (parenthesized_expression "(uVar21 & 0xff0000)" ( (binary_expression "uVar21 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar21 & 0xff00) << 0x28" (parenthesized_expression "(uVar21 & 0xff00)" ( (binary_expression "uVar21 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar21 << 0x38" identifier << number_literal))) ;) (expression_statement "bVar22 = uVar18 != local_40 - 1;" (assignment_expression "bVar22 = uVar18 != local_40 - 1" identifier = (binary_expression "uVar18 != local_40 - 1" identifier != (binary_expression "local_40 - 1" identifier - number_literal))) ;) (expression_statement "uVar18 = uVar18 + 1;" (assignment_expression "uVar18 = uVar18 + 1" identifier = (binary_expression "uVar18 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) })) (expression_statement "*param_5 = (local_6c >> 3) + (uVar6 + 4 + uVar7) * 4;" (assignment_expression "*param_5 = (local_6c >> 3) + (uVar6 + 4 + uVar7) * 4" (pointer_expression "*param_5" * identifier) = (binary_expression "(local_6c >> 3) + (uVar6 + 4 + uVar7) * 4" (parenthesized_expression "(local_6c >> 3)" ( (binary_expression "local_6c >> 3" identifier >> number_literal) )) + (binary_expression "(uVar6 + 4 + uVar7) * 4" (parenthesized_expression "(uVar6 + 4 + uVar7)" ( (binary_expression "uVar6 + 4 + uVar7" (binary_expression "uVar6 + 4" identifier + number_literal) + identifier) )) * number_literal))) ;) (expression_statement "*param_4 = puVar11;" (assignment_expression "*param_4 = puVar11" (pointer_expression "*param_4" * identifier) = identifier) ;) (if_statement "if (lVar10 != 0) {\n    FUN_00338a50(lVar10);\n  }" if (parenthesized_expression "(lVar10 != 0)" ( (binary_expression "lVar10 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_00338a50(lVar10);\n  }" { (expression_statement "FUN_00338a50(lVar10);" (call_expression "FUN_00338a50(lVar10)" identifier (argument_list "(lVar10)" ( identifier ))) ;) })) (if_statement "if (lVar9 != 0) {\n    FUN_00338a50(lVar9);\n  }" if (parenthesized_expression "(lVar9 != 0)" ( (binary_expression "lVar9 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_00338a50(lVar9);\n  }" { (expression_statement "FUN_00338a50(lVar9);" (call_expression "FUN_00338a50(lVar9)" identifier (argument_list "(lVar9)" ( identifier ))) ;) })) (if_statement "if (puVar12 == (undefined8 *)0x0) {\n    return;\n  }" if (parenthesized_expression "(puVar12 == (undefined8 *)0x0)" ( (binary_expression "puVar12 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "FUN_00338a50(puVar12);" (call_expression "FUN_00338a50(puVar12)" identifier (argument_list "(puVar12)" ( identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* DWARF original name: sized_create_gnu_hash_table<64, true> */\n\nvoid gold::Dynobj::sized_create_gnu_hash_table<64,_true>\n               (vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *hashed_dynsyms,\n               vector<unsigned_int,_std::allocator<unsigned_int>_> *dynsym_hashvals,\n               uint unhashed_dynsym_count,uchar **pphash,uint *phashlen)\n\n{\n  int *piVar1;\n  pointer ppSVar2;\n  int iVar3;\n  pointer puVar4;\n  Symbol *pSVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  void *pvVar9;\n  void *pvVar10;\n  uint *puVar11;\n  undefined8 *puVar12;\n  undefined8 *puVar13;\n  uchar *puVar14;\n  long lVar15;\n  uint uVar16;\n  long lVar17;\n  uint *puVar18;\n  ulong uVar19;\n  pointer ppSVar20;\n  ulong uVar21;\n  uint *puVar22;\n  ulong uVar23;\n  bool bVar24;\n  uint local_70;\n  uint local_6c;\n  uint local_40;\n  \n  if ((hashed_dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n      _M_finish ==\n      (hashed_dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n      _M_start) {\n    puVar14 = (uchar *)operator_new__(0x1c);\n    puVar14[0] = '\0';\n    puVar14[1] = '\0';\n    puVar14[2] = '\0';\n    puVar14[3] = '\x01';\n    *phashlen = 0x1c;\n    puVar14[8] = '\0';\n    puVar14[9] = '\0';\n    puVar14[10] = '\0';\n    puVar14[0xb] = '\x01';\n    puVar14[0xc] = '\0';\n    puVar14[0xd] = '\0';\n    puVar14[0xe] = '\0';\n    puVar14[0xf] = '\0';\n    *(uint *)(puVar14 + 4) =\n         unhashed_dynsym_count >> 0x18 | (unhashed_dynsym_count & 0xff0000) >> 8 |\n         (unhashed_dynsym_count & 0xff00) << 8 | unhashed_dynsym_count << 0x18;\n    puVar14[0x10] = '\0';\n    puVar14[0x11] = '\0';\n    puVar14[0x12] = '\0';\n    puVar14[0x13] = '\0';\n    puVar14[0x14] = '\0';\n    puVar14[0x15] = '\0';\n    puVar14[0x16] = '\0';\n    puVar14[0x17] = '\0';\n    puVar14[0x18] = '\0';\n    puVar14[0x19] = '\0';\n    puVar14[0x1a] = '\0';\n    puVar14[0x1b] = '\0';\n    *pphash = puVar14;\n    return;\n  }\n  uVar6 = compute_bucket_count(dynsym_hashvals,true);\n  uVar7 = (uint)((long)(hashed_dynsyms->\n                       super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n                       _M_finish -\n                 (long)(hashed_dynsyms->\n                       super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n                       _M_start >> 3);\n  uVar8 = uVar7 >> 1;\n  if (uVar8 == 0) {\nLAB_001da120:\n    local_40 = 1;\n    uVar21 = 8;\n    uVar19 = 1;\n    local_6c = 0x40;\n    local_70 = 6;\nLAB_001da142:\n    puVar12 = (undefined8 *)operator_new(uVar21);\n    puVar13 = puVar12;\n    do {\n      *puVar13 = 0;\n      puVar13 = puVar13 + 1;\n    } while (puVar13 != puVar12 + uVar19);\n    if (uVar6 != 0) goto LAB_001d9e70;\nLAB_001da16d:\n    pvVar10 = (void *)0x0;\n    pvVar9 = (void *)0x0;\n    if (uVar7 == 0) goto LAB_001d9f2b;\nLAB_001d9ed4:\n    lVar15 = 0;\n    puVar4 = (dynsym_hashvals->super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>).\n             _M_impl._M_start;\n    do {\n      puVar11 = puVar4 + lVar15;\n      lVar15 = lVar15 + 1;\n      piVar1 = (int *)((long)pvVar9 + ((ulong)*puVar11 % (ulong)uVar6) * 4);\n      *piVar1 = *piVar1 + 1;\n    } while ((uint)lVar15 < uVar7);\n  }\n  else {\n    uVar16 = 1;\n    do {\n      local_70 = uVar16;\n      uVar8 = uVar8 >> 1;\n      uVar16 = local_70 + 1;\n    } while (uVar8 != 0);\n    if (local_70 + 1 < 3) goto LAB_001da120;\n    if ((uVar7 >> (local_70 - 1 & 0x1f) & 1) == 0) {\n      local_70 = local_70 + 3;\n      if (local_70 == 5) goto LAB_001da120;\n    }\n    else {\n      local_70 = local_70 + 4;\n    }\n    puVar12 = (undefined8 *)0x0;\n    local_6c = 1 << ((byte)local_70 & 0x1f);\n    local_40 = 1 << ((byte)local_70 - 6 & 0x1f);\n    uVar19 = (ulong)local_40;\n    if (local_40 != 0) {\n      uVar21 = uVar19 * 8;\n      goto LAB_001da142;\n    }\n    if (uVar6 == 0) goto LAB_001da16d;\nLAB_001d9e70:\n    uVar21 = (ulong)uVar6 * 4;\n                    /* try { // try from 001d9e80 to 001d9e84 has its CatchHandler @ 001da1ff */\n    pvVar9 = operator_new(uVar21);\n    uVar19 = 0;\n    do {\n      uVar23 = uVar19;\n      *(undefined4 *)((long)pvVar9 + uVar23 * 4) = 0;\n      uVar19 = uVar23 + 1;\n    } while ((ulong)uVar6 != uVar23 + 1);\n                    /* try { // try from 001d9ea9 to 001d9ead has its CatchHandler @ 001da209 */\n    pvVar10 = operator_new(uVar21);\n    uVar21 = 0;\n    do {\n      *(undefined4 *)((long)pvVar10 + uVar21 * 4) = 0;\n      bVar24 = uVar23 != uVar21;\n      uVar21 = uVar21 + 1;\n    } while (bVar24);\n    if (uVar7 != 0) goto LAB_001d9ed4;\n  }\n  if (uVar6 != 0) {\n    uVar21 = 0;\n    uVar8 = unhashed_dynsym_count;\n    do {\n      *(uint *)((long)pvVar10 + uVar21 * 4) = uVar8;\n      uVar8 = uVar8 + *(int *)((long)pvVar9 + uVar21 * 4);\n      bVar24 = uVar6 - 1 != uVar21;\n      uVar21 = uVar21 + 1;\n    } while (bVar24);\n  }\nLAB_001d9f2b:\n  uVar8 = (local_6c >> 3) + (uVar6 + 4 + uVar7) * 4;\n                    /* try { // try from 001d9f4b to 001d9f4f has its CatchHandler @ 001da204 */\n  puVar11 = (uint *)operator_new__((ulong)uVar8);\n  *puVar11 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n  lVar15 = (long)puVar11 + (ulong)(local_6c >> 3) + 0x10;\n  puVar11[1] = unhashed_dynsym_count >> 0x18 | (unhashed_dynsym_count & 0xff0000) >> 8 |\n               (unhashed_dynsym_count & 0xff00) << 8 | unhashed_dynsym_count << 0x18;\n  puVar11[2] = local_40 >> 0x18 | (local_40 & 0xff0000) >> 8 | (local_40 & 0xff00) << 8 |\n               local_40 << 0x18;\n  puVar11[3] = local_70 >> 0x18 | (local_70 & 0xff0000) >> 8 | (local_70 & 0xff00) << 8 |\n               local_70 << 0x18;\n  if (uVar6 != 0) {\n    uVar21 = 0;\n    do {\n      uVar16 = *(uint *)((long)pvVar9 + uVar21 * 4);\n      if (uVar16 != 0) {\n        uVar16 = *(uint *)((long)pvVar10 + uVar21 * 4);\n        uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n        ;\n      }\n      *(uint *)(lVar15 + uVar21 * 4) = uVar16;\n      bVar24 = uVar6 - 1 != uVar21;\n      uVar21 = uVar21 + 1;\n    } while (bVar24);\n    lVar15 = lVar15 + ((ulong)(uVar6 - 1) + 1) * 4;\n  }\n  if (uVar7 != 0) {\n    ppSVar20 = (hashed_dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n               _M_impl._M_start;\n    puVar22 = (dynsym_hashvals->super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>).\n              _M_impl._M_start;\n    ppSVar2 = ppSVar20 + (ulong)(uVar7 - 1) + 1;\n    do {\n      uVar7 = *puVar22;\n      pSVar5 = *ppSVar20;\n      puVar12[uVar7 >> 6 & (local_6c >> 6) - 1] =\n           puVar12[uVar7 >> 6 & (local_6c >> 6) - 1] |\n           1L << ((byte)(uVar7 >> ((byte)local_70 & 0x1f)) & 0x3f) | 1L << ((byte)uVar7 & 0x3f);\n      lVar17 = ((ulong)uVar7 % (ulong)uVar6) * 4;\n      piVar1 = (int *)((long)pvVar9 + lVar17);\n      iVar3 = *piVar1;\n      uVar16 = uVar7 & 0xfffffffe;\n      if (iVar3 == 1) {\n        uVar16 = uVar7 & 0xfffffffe | 1;\n      }\n      puVar18 = (uint *)(lVar17 + (long)pvVar10);\n      uVar7 = *puVar18;\n      *piVar1 = iVar3 + -1;\n      *(uint *)(lVar15 + (ulong)((uVar7 - unhashed_dynsym_count) * 4)) =\n           uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;\n      if (uVar7 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001da1fa to 001da1fe has its CatchHandler @ 001da204 */\n        do_gold_unreachable("../../gold/symtab.h",0x1a2,"set_dynsym_index");\n      }\n      pSVar5->dynsym_index_ = uVar7;\n      ppSVar20 = ppSVar20 + 1;\n      puVar22 = puVar22 + 1;\n      *puVar18 = uVar7 + 1;\n    } while (ppSVar2 != ppSVar20);\n  }\n  if (local_40 != 0) {\n    uVar21 = 0;\n    do {\n      uVar19 = puVar12[uVar21];\n      *(ulong *)(puVar11 + uVar21 * 2 + 4) =\n           uVar19 >> 0x38 | (uVar19 & 0xff000000000000) >> 0x28 | (uVar19 & 0xff0000000000) >> 0x18\n           | (uVar19 & 0xff00000000) >> 8 | (uVar19 & 0xff000000) << 8 | (uVar19 & 0xff0000) << 0x18\n           | (uVar19 & 0xff00) << 0x28 | uVar19 << 0x38;\n      bVar24 = uVar21 != local_40 - 1;\n      uVar21 = uVar21 + 1;\n    } while (bVar24);\n  }\n  *phashlen = uVar8;\n  *pphash = (uchar *)puVar11;\n  if (pvVar10 != (void *)0x0) {\n    operator_delete(pvVar10);\n  }\n  if (pvVar9 != (void *)0x0) {\n    operator_delete(pvVar9);\n  }\n  if (puVar12 == (undefined8 *)0x0) {\n    return;\n  }\n  operator_delete(puVar12);\n  return;\n}\n\n" comment (declaration "void gold::Dynobj::sized_create_gnu_hash_table<64,_true>\n               (vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *hashed_dynsyms,\n               vector<unsigned_int,_std::allocator<unsigned_int>_> *dynsym_hashvals,\n               uint unhashed_dynsym_count,uchar **pphash,uint *phashlen)\n\n{\n  int *piVar1;" primitive_type (ERROR "gold::Dynobj::" identifier : : identifier : :) identifier (ERROR "<64" < number_literal) , (ERROR "_true>\n               (vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *hashed_dynsyms,\n               vector<unsigned_int,_std::allocator<unsigned_int>_> *dynsym_hashvals,\n               uint unhashed_dynsym_count,uchar **pphash,uint *phashlen)\n\n{\n  int" (function_declarator "_true>\n               (vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *hashed_dynsyms,\n               vector<unsigned_int,_std::allocator<unsigned_int>_> *dynsym_hashvals,\n               uint unhashed_dynsym_count,uchar **pphash,uint *phashlen)" identifier (ERROR ">" >) (parameter_list "(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *hashed_dynsyms,\n               vector<unsigned_int,_std::allocator<unsigned_int>_> *dynsym_hashvals,\n               uint unhashed_dynsym_count,uchar **pphash,uint *phashlen)" ( (parameter_declaration "vector<gold::Symbol*" type_identifier (ERROR "<gold::Symbol" < identifier : : identifier) (abstract_pointer_declarator "*" *)) , (parameter_declaration "_std::allocator<gold::Symbol*>_> *hashed_dynsyms" type_identifier (ERROR "::allocator<gold::Symbol*>_>" : : identifier < identifier : : identifier * > identifier >) (pointer_declarator "*hashed_dynsyms" * identifier)) , (parameter_declaration "vector<unsigned_int" type_identifier (ERROR "<" <) identifier) , (parameter_declaration "_std::allocator<unsigned_int>_> *dynsym_hashvals" type_identifier (ERROR "::allocator<unsigned_int>_>" : : identifier < identifier > identifier >) (pointer_declarator "*dynsym_hashvals" * identifier)) , (parameter_declaration "uint unhashed_dynsym_count" type_identifier identifier) , (parameter_declaration "uchar **pphash" type_identifier (pointer_declarator "**pphash" * (pointer_declarator "*pphash" * identifier))) , (parameter_declaration "uint *phashlen" type_identifier (pointer_declarator "*phashlen" * identifier)) ))) { primitive_type) (pointer_declarator "*piVar1" * identifier) ;) (declaration "pointer ppSVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "pointer puVar4;" type_identifier identifier ;) (declaration "Symbol *pSVar5;" type_identifier (pointer_declarator "*pSVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "void *pvVar9;" primitive_type (pointer_declarator "*pvVar9" * identifier) ;) (declaration "void *pvVar10;" primitive_type (pointer_declarator "*pvVar10" * identifier) ;) (declaration "uint *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined8 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined8 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "uchar *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "long lVar15;" (sized_type_specifier "long" long) identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "long lVar17;" (sized_type_specifier "long" long) identifier ;) (declaration "uint *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "ulong uVar19;" type_identifier identifier ;) (declaration "pointer ppSVar20;" type_identifier identifier ;) (declaration "ulong uVar21;" type_identifier identifier ;) (declaration "uint *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "ulong uVar23;" type_identifier identifier ;) (declaration "bool bVar24;" primitive_type identifier ;) (declaration "uint local_70;" type_identifier identifier ;) (declaration "uint local_6c;" type_identifier identifier ;) (declaration "uint local_40;" type_identifier identifier ;) (if_statement "if ((hashed_dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n      _M_finish ==\n      (hashed_dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n      _M_start) {\n    puVar14 = (uchar *)operator_new__(0x1c);\n    puVar14[0] = '\0';\n    puVar14[1] = '\0';\n    puVar14[2] = '\0';\n    puVar14[3] = '\x01';\n    *phashlen = 0x1c;\n    puVar14[8] = '\0';\n    puVar14[9] = '\0';\n    puVar14[10] = '\0';\n    puVar14[0xb] = '\x01';\n    puVar14[0xc] = '\0';\n    puVar14[0xd] = '\0';\n    puVar14[0xe] = '\0';\n    puVar14[0xf] = '\0';\n    *(uint *)(puVar14 + 4) =\n         unhashed_dynsym_count >> 0x18 | (unhashed_dynsym_count & 0xff0000) >> 8 |\n         (unhashed_dynsym_count & 0xff00) << 8 | unhashed_dynsym_count << 0x18;\n    puVar14[0x10] = '\0';\n    puVar14[0x11] = '\0';\n    puVar14[0x12] = '\0';\n    puVar14[0x13] = '\0';\n    puVar14[0x14] = '\0';\n    puVar14[0x15] = '\0';\n    puVar14[0x16] = '\0';\n    puVar14[0x17] = '\0';\n    puVar14[0x18] = '\0';\n    puVar14[0x19] = '\0';\n    puVar14[0x1a] = '\0';\n    puVar14[0x1b] = '\0';\n    *pphash = puVar14;\n    return;\n  }" if (parenthesized_expression "((hashed_dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n      _M_finish ==\n      (hashed_dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n      _M_start)" ( (binary_expression "(hashed_dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n      _M_finish ==\n      (hashed_dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n      _M_start" (field_expression "(hashed_dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n      _M_finish" (field_expression "(hashed_dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl" (parenthesized_expression "(hashed_dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)" ( (binary_expression "hashed_dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>" (binary_expression "hashed_dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "hashed_dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "hashed_dynsyms->super__Vector_base<gold::Symbol*,_std" (binary_expression "hashed_dynsyms->super__Vector_base<gold" (field_expression "hashed_dynsyms->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR ">" >) identifier) > identifier) )) . field_identifier) . field_identifier) == (field_expression "(hashed_dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n      _M_start" (field_expression "(hashed_dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl" (parenthesized_expression "(hashed_dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)" ( (binary_expression "hashed_dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>" (binary_expression "hashed_dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "hashed_dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "hashed_dynsyms->super__Vector_base<gold::Symbol*,_std" (binary_expression "hashed_dynsyms->super__Vector_base<gold" (field_expression "hashed_dynsyms->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR ">" >) identifier) > identifier) )) . field_identifier) . field_identifier)) )) (compound_statement "{\n    puVar14 = (uchar *)operator_new__(0x1c);\n    puVar14[0] = '\0';\n    puVar14[1] = '\0';\n    puVar14[2] = '\0';\n    puVar14[3] = '\x01';\n    *phashlen = 0x1c;\n    puVar14[8] = '\0';\n    puVar14[9] = '\0';\n    puVar14[10] = '\0';\n    puVar14[0xb] = '\x01';\n    puVar14[0xc] = '\0';\n    puVar14[0xd] = '\0';\n    puVar14[0xe] = '\0';\n    puVar14[0xf] = '\0';\n    *(uint *)(puVar14 + 4) =\n         unhashed_dynsym_count >> 0x18 | (unhashed_dynsym_count & 0xff0000) >> 8 |\n         (unhashed_dynsym_count & 0xff00) << 8 | unhashed_dynsym_count << 0x18;\n    puVar14[0x10] = '\0';\n    puVar14[0x11] = '\0';\n    puVar14[0x12] = '\0';\n    puVar14[0x13] = '\0';\n    puVar14[0x14] = '\0';\n    puVar14[0x15] = '\0';\n    puVar14[0x16] = '\0';\n    puVar14[0x17] = '\0';\n    puVar14[0x18] = '\0';\n    puVar14[0x19] = '\0';\n    puVar14[0x1a] = '\0';\n    puVar14[0x1b] = '\0';\n    *pphash = puVar14;\n    return;\n  }" { (expression_statement "puVar14 = (uchar *)operator_new__(0x1c);" (assignment_expression "puVar14 = (uchar *)operator_new__(0x1c)" identifier = (cast_expression "(uchar *)operator_new__(0x1c)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new__(0x1c)" identifier (argument_list "(0x1c)" ( number_literal ))))) ;) (expression_statement "puVar14[0] = '\0';" (assignment_expression "puVar14[0] = '\0'" (subscript_expression "puVar14[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar14[1] = '\0';" (assignment_expression "puVar14[1] = '\0'" (subscript_expression "puVar14[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar14[2] = '\0';" (assignment_expression "puVar14[2] = '\0'" (subscript_expression "puVar14[2]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar14[3] = '\x01';" (assignment_expression "puVar14[3] = '\x01'" (subscript_expression "puVar14[3]" identifier [ number_literal ]) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "*phashlen = 0x1c;" (assignment_expression "*phashlen = 0x1c" (pointer_expression "*phashlen" * identifier) = number_literal) ;) (expression_statement "puVar14[8] = '\0';" (assignment_expression "puVar14[8] = '\0'" (subscript_expression "puVar14[8]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar14[9] = '\0';" (assignment_expression "puVar14[9] = '\0'" (subscript_expression "puVar14[9]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar14[10] = '\0';" (assignment_expression "puVar14[10] = '\0'" (subscript_expression "puVar14[10]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar14[0xb] = '\x01';" (assignment_expression "puVar14[0xb] = '\x01'" (subscript_expression "puVar14[0xb]" identifier [ number_literal ]) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "puVar14[0xc] = '\0';" (assignment_expression "puVar14[0xc] = '\0'" (subscript_expression "puVar14[0xc]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar14[0xd] = '\0';" (assignment_expression "puVar14[0xd] = '\0'" (subscript_expression "puVar14[0xd]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar14[0xe] = '\0';" (assignment_expression "puVar14[0xe] = '\0'" (subscript_expression "puVar14[0xe]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar14[0xf] = '\0';" (assignment_expression "puVar14[0xf] = '\0'" (subscript_expression "puVar14[0xf]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "*(uint *)(puVar14 + 4) =\n         unhashed_dynsym_count >> 0x18 | (unhashed_dynsym_count & 0xff0000) >> 8 |\n         (unhashed_dynsym_count & 0xff00) << 8 | unhashed_dynsym_count << 0x18;" (assignment_expression "*(uint *)(puVar14 + 4) =\n         unhashed_dynsym_count >> 0x18 | (unhashed_dynsym_count & 0xff0000) >> 8 |\n         (unhashed_dynsym_count & 0xff00) << 8 | unhashed_dynsym_count << 0x18" (pointer_expression "*(uint *)(puVar14 + 4)" * (cast_expression "(uint *)(puVar14 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 4)" ( (binary_expression "puVar14 + 4" identifier + number_literal) )))) = (binary_expression "unhashed_dynsym_count >> 0x18 | (unhashed_dynsym_count & 0xff0000) >> 8 |\n         (unhashed_dynsym_count & 0xff00) << 8 | unhashed_dynsym_count << 0x18" (binary_expression "unhashed_dynsym_count >> 0x18 | (unhashed_dynsym_count & 0xff0000) >> 8 |\n         (unhashed_dynsym_count & 0xff00) << 8" (binary_expression "unhashed_dynsym_count >> 0x18 | (unhashed_dynsym_count & 0xff0000) >> 8" (binary_expression "unhashed_dynsym_count >> 0x18" identifier >> number_literal) | (binary_expression "(unhashed_dynsym_count & 0xff0000) >> 8" (parenthesized_expression "(unhashed_dynsym_count & 0xff0000)" ( (binary_expression "unhashed_dynsym_count & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(unhashed_dynsym_count & 0xff00) << 8" (parenthesized_expression "(unhashed_dynsym_count & 0xff00)" ( (binary_expression "unhashed_dynsym_count & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "unhashed_dynsym_count << 0x18" identifier << number_literal))) ;) (expression_statement "puVar14[0x10] = '\0';" (assignment_expression "puVar14[0x10] = '\0'" (subscript_expression "puVar14[0x10]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar14[0x11] = '\0';" (assignment_expression "puVar14[0x11] = '\0'" (subscript_expression "puVar14[0x11]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar14[0x12] = '\0';" (assignment_expression "puVar14[0x12] = '\0'" (subscript_expression "puVar14[0x12]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar14[0x13] = '\0';" (assignment_expression "puVar14[0x13] = '\0'" (subscript_expression "puVar14[0x13]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar14[0x14] = '\0';" (assignment_expression "puVar14[0x14] = '\0'" (subscript_expression "puVar14[0x14]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar14[0x15] = '\0';" (assignment_expression "puVar14[0x15] = '\0'" (subscript_expression "puVar14[0x15]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar14[0x16] = '\0';" (assignment_expression "puVar14[0x16] = '\0'" (subscript_expression "puVar14[0x16]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar14[0x17] = '\0';" (assignment_expression "puVar14[0x17] = '\0'" (subscript_expression "puVar14[0x17]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar14[0x18] = '\0';" (assignment_expression "puVar14[0x18] = '\0'" (subscript_expression "puVar14[0x18]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar14[0x19] = '\0';" (assignment_expression "puVar14[0x19] = '\0'" (subscript_expression "puVar14[0x19]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar14[0x1a] = '\0';" (assignment_expression "puVar14[0x1a] = '\0'" (subscript_expression "puVar14[0x1a]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar14[0x1b] = '\0';" (assignment_expression "puVar14[0x1b] = '\0'" (subscript_expression "puVar14[0x1b]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "*pphash = puVar14;" (assignment_expression "*pphash = puVar14" (pointer_expression "*pphash" * identifier) = identifier) ;) (return_statement "return;" return ;) })) (expression_statement "uVar6 = compute_bucket_count(dynsym_hashvals,true);" (assignment_expression "uVar6 = compute_bucket_count(dynsym_hashvals,true)" identifier = (call_expression "compute_bucket_count(dynsym_hashvals,true)" identifier (argument_list "(dynsym_hashvals,true)" ( identifier , true )))) ;) (expression_statement "uVar7 = (uint)((long)(hashed_dynsyms->\n                       super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n                       _M_finish -\n                 (long)(hashed_dynsyms->\n                       super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n                       _M_start >> 3);" (assignment_expression "uVar7 = (uint)((long)(hashed_dynsyms->\n                       super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n                       _M_finish -\n                 (long)(hashed_dynsyms->\n                       super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n                       _M_start >> 3)" identifier = (call_expression "(uint)((long)(hashed_dynsyms->\n                       super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n                       _M_finish -\n                 (long)(hashed_dynsyms->\n                       super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n                       _M_start >> 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((long)(hashed_dynsyms->\n                       super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n                       _M_finish -\n                 (long)(hashed_dynsyms->\n                       super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n                       _M_start >> 3)" ( (binary_expression "(long)(hashed_dynsyms->\n                       super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n                       _M_finish -\n                 (long)(hashed_dynsyms->\n                       super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n                       _M_start >> 3" (binary_expression "(long)(hashed_dynsyms->\n                       super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n                       _M_finish -\n                 (long)(hashed_dynsyms->\n                       super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n                       _M_start" (cast_expression "(long)(hashed_dynsyms->\n                       super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n                       _M_finish" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "(hashed_dynsyms->\n                       super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n                       _M_finish" (field_expression "(hashed_dynsyms->\n                       super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl" (parenthesized_expression "(hashed_dynsyms->\n                       super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)" ( (binary_expression "hashed_dynsyms->\n                       super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>" (binary_expression "hashed_dynsyms->\n                       super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "hashed_dynsyms->\n                       super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "hashed_dynsyms->\n                       super__Vector_base<gold::Symbol*,_std" (binary_expression "hashed_dynsyms->\n                       super__Vector_base<gold" (field_expression "hashed_dynsyms->\n                       super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR ">" >) identifier) > identifier) )) . field_identifier) . field_identifier)) - (cast_expression "(long)(hashed_dynsyms->\n                       super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n                       _M_start" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "(hashed_dynsyms->\n                       super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n                       _M_start" (field_expression "(hashed_dynsyms->\n                       super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl" (parenthesized_expression "(hashed_dynsyms->\n                       super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)" ( (binary_expression "hashed_dynsyms->\n                       super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>" (binary_expression "hashed_dynsyms->\n                       super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "hashed_dynsyms->\n                       super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "hashed_dynsyms->\n                       super__Vector_base<gold::Symbol*,_std" (binary_expression "hashed_dynsyms->\n                       super__Vector_base<gold" (field_expression "hashed_dynsyms->\n                       super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR ">" >) identifier) > identifier) )) . field_identifier) . field_identifier))) >> number_literal) )))) ;) (expression_statement "uVar8 = uVar7 >> 1;" (assignment_expression "uVar8 = uVar7 >> 1" identifier = (binary_expression "uVar7 >> 1" identifier >> number_literal)) ;) (if_statement "if (uVar8 == 0) {\nLAB_001da120:\n    local_40 = 1;\n    uVar21 = 8;\n    uVar19 = 1;\n    local_6c = 0x40;\n    local_70 = 6;\nLAB_001da142:\n    puVar12 = (undefined8 *)operator_new(uVar21);\n    puVar13 = puVar12;\n    do {\n      *puVar13 = 0;\n      puVar13 = puVar13 + 1;\n    } while (puVar13 != puVar12 + uVar19);\n    if (uVar6 != 0) goto LAB_001d9e70;\nLAB_001da16d:\n    pvVar10 = (void *)0x0;\n    pvVar9 = (void *)0x0;\n    if (uVar7 == 0) goto LAB_001d9f2b;\nLAB_001d9ed4:\n    lVar15 = 0;\n    puVar4 = (dynsym_hashvals->super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>).\n             _M_impl._M_start;\n    do {\n      puVar11 = puVar4 + lVar15;\n      lVar15 = lVar15 + 1;\n      piVar1 = (int *)((long)pvVar9 + ((ulong)*puVar11 % (ulong)uVar6) * 4);\n      *piVar1 = *piVar1 + 1;\n    } while ((uint)lVar15 < uVar7);\n  }\n  else {\n    uVar16 = 1;\n    do {\n      local_70 = uVar16;\n      uVar8 = uVar8 >> 1;\n      uVar16 = local_70 + 1;\n    } while (uVar8 != 0);\n    if (local_70 + 1 < 3) goto LAB_001da120;\n    if ((uVar7 >> (local_70 - 1 & 0x1f) & 1) == 0) {\n      local_70 = local_70 + 3;\n      if (local_70 == 5) goto LAB_001da120;\n    }\n    else {\n      local_70 = local_70 + 4;\n    }\n    puVar12 = (undefined8 *)0x0;\n    local_6c = 1 << ((byte)local_70 & 0x1f);\n    local_40 = 1 << ((byte)local_70 - 6 & 0x1f);\n    uVar19 = (ulong)local_40;\n    if (local_40 != 0) {\n      uVar21 = uVar19 * 8;\n      goto LAB_001da142;\n    }\n    if (uVar6 == 0) goto LAB_001da16d;\nLAB_001d9e70:\n    uVar21 = (ulong)uVar6 * 4;\n                    /* try { // try from 001d9e80 to 001d9e84 has its CatchHandler @ 001da1ff */\n    pvVar9 = operator_new(uVar21);\n    uVar19 = 0;\n    do {\n      uVar23 = uVar19;\n      *(undefined4 *)((long)pvVar9 + uVar23 * 4) = 0;\n      uVar19 = uVar23 + 1;\n    } while ((ulong)uVar6 != uVar23 + 1);\n                    /* try { // try from 001d9ea9 to 001d9ead has its CatchHandler @ 001da209 */\n    pvVar10 = operator_new(uVar21);\n    uVar21 = 0;\n    do {\n      *(undefined4 *)((long)pvVar10 + uVar21 * 4) = 0;\n      bVar24 = uVar23 != uVar21;\n      uVar21 = uVar21 + 1;\n    } while (bVar24);\n    if (uVar7 != 0) goto LAB_001d9ed4;\n  }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_001da120:\n    local_40 = 1;\n    uVar21 = 8;\n    uVar19 = 1;\n    local_6c = 0x40;\n    local_70 = 6;\nLAB_001da142:\n    puVar12 = (undefined8 *)operator_new(uVar21);\n    puVar13 = puVar12;\n    do {\n      *puVar13 = 0;\n      puVar13 = puVar13 + 1;\n    } while (puVar13 != puVar12 + uVar19);\n    if (uVar6 != 0) goto LAB_001d9e70;\nLAB_001da16d:\n    pvVar10 = (void *)0x0;\n    pvVar9 = (void *)0x0;\n    if (uVar7 == 0) goto LAB_001d9f2b;\nLAB_001d9ed4:\n    lVar15 = 0;\n    puVar4 = (dynsym_hashvals->super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>).\n             _M_impl._M_start;\n    do {\n      puVar11 = puVar4 + lVar15;\n      lVar15 = lVar15 + 1;\n      piVar1 = (int *)((long)pvVar9 + ((ulong)*puVar11 % (ulong)uVar6) * 4);\n      *piVar1 = *piVar1 + 1;\n    } while ((uint)lVar15 < uVar7);\n  }" { (labeled_statement "LAB_001da120:\n    local_40 = 1;" statement_identifier : (expression_statement "local_40 = 1;" (assignment_expression "local_40 = 1" identifier = number_literal) ;)) (expression_statement "uVar21 = 8;" (assignment_expression "uVar21 = 8" identifier = number_literal) ;) (expression_statement "uVar19 = 1;" (assignment_expression "uVar19 = 1" identifier = number_literal) ;) (expression_statement "local_6c = 0x40;" (assignment_expression "local_6c = 0x40" identifier = number_literal) ;) (expression_statement "local_70 = 6;" (assignment_expression "local_70 = 6" identifier = number_literal) ;) (labeled_statement "LAB_001da142:\n    puVar12 = (undefined8 *)operator_new(uVar21);" statement_identifier : (expression_statement "puVar12 = (undefined8 *)operator_new(uVar21);" (assignment_expression "puVar12 = (undefined8 *)operator_new(uVar21)" identifier = (cast_expression "(undefined8 *)operator_new(uVar21)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(uVar21)" identifier (argument_list "(uVar21)" ( identifier ))))) ;)) (expression_statement "puVar13 = puVar12;" (assignment_expression "puVar13 = puVar12" identifier = identifier) ;) (do_statement "do {\n      *puVar13 = 0;\n      puVar13 = puVar13 + 1;\n    } while (puVar13 != puVar12 + uVar19);" do (compound_statement "{\n      *puVar13 = 0;\n      puVar13 = puVar13 + 1;\n    }" { (expression_statement "*puVar13 = 0;" (assignment_expression "*puVar13 = 0" (pointer_expression "*puVar13" * identifier) = number_literal) ;) (expression_statement "puVar13 = puVar13 + 1;" (assignment_expression "puVar13 = puVar13 + 1" identifier = (binary_expression "puVar13 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar13 != puVar12 + uVar19)" ( (binary_expression "puVar13 != puVar12 + uVar19" identifier != (binary_expression "puVar12 + uVar19" identifier + identifier)) )) ;) (if_statement "if (uVar6 != 0) goto LAB_001d9e70;" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (goto_statement "goto LAB_001d9e70;" goto statement_identifier ;)) (labeled_statement "LAB_001da16d:\n    pvVar10 = (void *)0x0;" statement_identifier : (expression_statement "pvVar10 = (void *)0x0;" (assignment_expression "pvVar10 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pvVar9 = (void *)0x0;" (assignment_expression "pvVar9 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (uVar7 == 0) goto LAB_001d9f2b;" if (parenthesized_expression "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001d9f2b;" goto statement_identifier ;)) (labeled_statement "LAB_001d9ed4:\n    lVar15 = 0;" statement_identifier : (expression_statement "lVar15 = 0;" (assignment_expression "lVar15 = 0" identifier = number_literal) ;)) (expression_statement "puVar4 = (dynsym_hashvals->super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>).\n             _M_impl._M_start;" (assignment_expression "puVar4 = (dynsym_hashvals->super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>).\n             _M_impl._M_start" identifier = (field_expression "(dynsym_hashvals->super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>).\n             _M_impl._M_start" (field_expression "(dynsym_hashvals->super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>).\n             _M_impl" (parenthesized_expression "(dynsym_hashvals->super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>)" ( (ERROR "dynsym_hashvals->super__Vector_base<unsigned_int,_std::" (comma_expression "dynsym_hashvals->super__Vector_base<unsigned_int,_std" (binary_expression "dynsym_hashvals->super__Vector_base<unsigned_int" (field_expression "dynsym_hashvals->super__Vector_base" identifier -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<unsigned_int>_>" (binary_expression "allocator<unsigned_int>_" (binary_expression "allocator<unsigned_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (do_statement "do {\n      puVar11 = puVar4 + lVar15;\n      lVar15 = lVar15 + 1;\n      piVar1 = (int *)((long)pvVar9 + ((ulong)*puVar11 % (ulong)uVar6) * 4);\n      *piVar1 = *piVar1 + 1;\n    } while ((uint)lVar15 < uVar7);" do (compound_statement "{\n      puVar11 = puVar4 + lVar15;\n      lVar15 = lVar15 + 1;\n      piVar1 = (int *)((long)pvVar9 + ((ulong)*puVar11 % (ulong)uVar6) * 4);\n      *piVar1 = *piVar1 + 1;\n    }" { (expression_statement "puVar11 = puVar4 + lVar15;" (assignment_expression "puVar11 = puVar4 + lVar15" identifier = (binary_expression "puVar4 + lVar15" identifier + identifier)) ;) (expression_statement "lVar15 = lVar15 + 1;" (assignment_expression "lVar15 = lVar15 + 1" identifier = (binary_expression "lVar15 + 1" identifier + number_literal)) ;) (expression_statement "piVar1 = (int *)((long)pvVar9 + ((ulong)*puVar11 % (ulong)uVar6) * 4);" (assignment_expression "piVar1 = (int *)((long)pvVar9 + ((ulong)*puVar11 % (ulong)uVar6) * 4)" identifier = (cast_expression "(int *)((long)pvVar9 + ((ulong)*puVar11 % (ulong)uVar6) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar9 + ((ulong)*puVar11 % (ulong)uVar6) * 4)" ( (binary_expression "(long)pvVar9 + ((ulong)*puVar11 % (ulong)uVar6) * 4" (cast_expression "(long)pvVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "((ulong)*puVar11 % (ulong)uVar6) * 4" (parenthesized_expression "((ulong)*puVar11 % (ulong)uVar6)" ( (binary_expression "(ulong)*puVar11 % (ulong)uVar6" (binary_expression "(ulong)*puVar11" (parenthesized_expression "(ulong)" ( identifier )) * identifier) % (cast_expression "(ulong)uVar6" ( (type_descriptor "ulong" type_identifier) ) identifier)) )) * number_literal)) )))) ;) (expression_statement "*piVar1 = *piVar1 + 1;" (assignment_expression "*piVar1 = *piVar1 + 1" (pointer_expression "*piVar1" * identifier) = (binary_expression "*piVar1 + 1" (pointer_expression "*piVar1" * identifier) + number_literal)) ;) }) while (parenthesized_expression "((uint)lVar15 < uVar7)" ( (binary_expression "(uint)lVar15 < uVar7" (cast_expression "(uint)lVar15" ( (type_descriptor "uint" type_identifier) ) identifier) < identifier) )) ;) }) (else_clause "else {\n    uVar16 = 1;\n    do {\n      local_70 = uVar16;\n      uVar8 = uVar8 >> 1;\n      uVar16 = local_70 + 1;\n    } while (uVar8 != 0);\n    if (local_70 + 1 < 3) goto LAB_001da120;\n    if ((uVar7 >> (local_70 - 1 & 0x1f) & 1) == 0) {\n      local_70 = local_70 + 3;\n      if (local_70 == 5) goto LAB_001da120;\n    }\n    else {\n      local_70 = local_70 + 4;\n    }\n    puVar12 = (undefined8 *)0x0;\n    local_6c = 1 << ((byte)local_70 & 0x1f);\n    local_40 = 1 << ((byte)local_70 - 6 & 0x1f);\n    uVar19 = (ulong)local_40;\n    if (local_40 != 0) {\n      uVar21 = uVar19 * 8;\n      goto LAB_001da142;\n    }\n    if (uVar6 == 0) goto LAB_001da16d;\nLAB_001d9e70:\n    uVar21 = (ulong)uVar6 * 4;\n                    /* try { // try from 001d9e80 to 001d9e84 has its CatchHandler @ 001da1ff */\n    pvVar9 = operator_new(uVar21);\n    uVar19 = 0;\n    do {\n      uVar23 = uVar19;\n      *(undefined4 *)((long)pvVar9 + uVar23 * 4) = 0;\n      uVar19 = uVar23 + 1;\n    } while ((ulong)uVar6 != uVar23 + 1);\n                    /* try { // try from 001d9ea9 to 001d9ead has its CatchHandler @ 001da209 */\n    pvVar10 = operator_new(uVar21);\n    uVar21 = 0;\n    do {\n      *(undefined4 *)((long)pvVar10 + uVar21 * 4) = 0;\n      bVar24 = uVar23 != uVar21;\n      uVar21 = uVar21 + 1;\n    } while (bVar24);\n    if (uVar7 != 0) goto LAB_001d9ed4;\n  }" else (compound_statement "{\n    uVar16 = 1;\n    do {\n      local_70 = uVar16;\n      uVar8 = uVar8 >> 1;\n      uVar16 = local_70 + 1;\n    } while (uVar8 != 0);\n    if (local_70 + 1 < 3) goto LAB_001da120;\n    if ((uVar7 >> (local_70 - 1 & 0x1f) & 1) == 0) {\n      local_70 = local_70 + 3;\n      if (local_70 == 5) goto LAB_001da120;\n    }\n    else {\n      local_70 = local_70 + 4;\n    }\n    puVar12 = (undefined8 *)0x0;\n    local_6c = 1 << ((byte)local_70 & 0x1f);\n    local_40 = 1 << ((byte)local_70 - 6 & 0x1f);\n    uVar19 = (ulong)local_40;\n    if (local_40 != 0) {\n      uVar21 = uVar19 * 8;\n      goto LAB_001da142;\n    }\n    if (uVar6 == 0) goto LAB_001da16d;\nLAB_001d9e70:\n    uVar21 = (ulong)uVar6 * 4;\n                    /* try { // try from 001d9e80 to 001d9e84 has its CatchHandler @ 001da1ff */\n    pvVar9 = operator_new(uVar21);\n    uVar19 = 0;\n    do {\n      uVar23 = uVar19;\n      *(undefined4 *)((long)pvVar9 + uVar23 * 4) = 0;\n      uVar19 = uVar23 + 1;\n    } while ((ulong)uVar6 != uVar23 + 1);\n                    /* try { // try from 001d9ea9 to 001d9ead has its CatchHandler @ 001da209 */\n    pvVar10 = operator_new(uVar21);\n    uVar21 = 0;\n    do {\n      *(undefined4 *)((long)pvVar10 + uVar21 * 4) = 0;\n      bVar24 = uVar23 != uVar21;\n      uVar21 = uVar21 + 1;\n    } while (bVar24);\n    if (uVar7 != 0) goto LAB_001d9ed4;\n  }" { (expression_statement "uVar16 = 1;" (assignment_expression "uVar16 = 1" identifier = number_literal) ;) (do_statement "do {\n      local_70 = uVar16;\n      uVar8 = uVar8 >> 1;\n      uVar16 = local_70 + 1;\n    } while (uVar8 != 0);" do (compound_statement "{\n      local_70 = uVar16;\n      uVar8 = uVar8 >> 1;\n      uVar16 = local_70 + 1;\n    }" { (expression_statement "local_70 = uVar16;" (assignment_expression "local_70 = uVar16" identifier = identifier) ;) (expression_statement "uVar8 = uVar8 >> 1;" (assignment_expression "uVar8 = uVar8 >> 1" identifier = (binary_expression "uVar8 >> 1" identifier >> number_literal)) ;) (expression_statement "uVar16 = local_70 + 1;" (assignment_expression "uVar16 = local_70 + 1" identifier = (binary_expression "local_70 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar8 != 0)" ( (binary_expression "uVar8 != 0" identifier != number_literal) )) ;) (if_statement "if (local_70 + 1 < 3) goto LAB_001da120;" if (parenthesized_expression "(local_70 + 1 < 3)" ( (binary_expression "local_70 + 1 < 3" (binary_expression "local_70 + 1" identifier + number_literal) < number_literal) )) (goto_statement "goto LAB_001da120;" goto statement_identifier ;)) (if_statement "if ((uVar7 >> (local_70 - 1 & 0x1f) & 1) == 0) {\n      local_70 = local_70 + 3;\n      if (local_70 == 5) goto LAB_001da120;\n    }\n    else {\n      local_70 = local_70 + 4;\n    }" if (parenthesized_expression "((uVar7 >> (local_70 - 1 & 0x1f) & 1) == 0)" ( (binary_expression "(uVar7 >> (local_70 - 1 & 0x1f) & 1) == 0" (parenthesized_expression "(uVar7 >> (local_70 - 1 & 0x1f) & 1)" ( (binary_expression "uVar7 >> (local_70 - 1 & 0x1f) & 1" (binary_expression "uVar7 >> (local_70 - 1 & 0x1f)" identifier >> (parenthesized_expression "(local_70 - 1 & 0x1f)" ( (binary_expression "local_70 - 1 & 0x1f" (binary_expression "local_70 - 1" identifier - number_literal) & number_literal) ))) & number_literal) )) == number_literal) )) (compound_statement "{\n      local_70 = local_70 + 3;\n      if (local_70 == 5) goto LAB_001da120;\n    }" { (expression_statement "local_70 = local_70 + 3;" (assignment_expression "local_70 = local_70 + 3" identifier = (binary_expression "local_70 + 3" identifier + number_literal)) ;) (if_statement "if (local_70 == 5) goto LAB_001da120;" if (parenthesized_expression "(local_70 == 5)" ( (binary_expression "local_70 == 5" identifier == number_literal) )) (goto_statement "goto LAB_001da120;" goto statement_identifier ;)) }) (else_clause "else {\n      local_70 = local_70 + 4;\n    }" else (compound_statement "{\n      local_70 = local_70 + 4;\n    }" { (expression_statement "local_70 = local_70 + 4;" (assignment_expression "local_70 = local_70 + 4" identifier = (binary_expression "local_70 + 4" identifier + number_literal)) ;) }))) (expression_statement "puVar12 = (undefined8 *)0x0;" (assignment_expression "puVar12 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_6c = 1 << ((byte)local_70 & 0x1f);" (assignment_expression "local_6c = 1 << ((byte)local_70 & 0x1f)" identifier = (binary_expression "1 << ((byte)local_70 & 0x1f)" number_literal << (parenthesized_expression "((byte)local_70 & 0x1f)" ( (binary_expression "(byte)local_70 & 0x1f" (cast_expression "(byte)local_70" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "local_40 = 1 << ((byte)local_70 - 6 & 0x1f);" (assignment_expression "local_40 = 1 << ((byte)local_70 - 6 & 0x1f)" identifier = (binary_expression "1 << ((byte)local_70 - 6 & 0x1f)" number_literal << (parenthesized_expression "((byte)local_70 - 6 & 0x1f)" ( (binary_expression "(byte)local_70 - 6 & 0x1f" (binary_expression "(byte)local_70 - 6" (cast_expression "(byte)local_70" ( (type_descriptor "byte" type_identifier) ) identifier) - number_literal) & number_literal) )))) ;) (expression_statement "uVar19 = (ulong)local_40;" (assignment_expression "uVar19 = (ulong)local_40" identifier = (cast_expression "(ulong)local_40" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (local_40 != 0) {\n      uVar21 = uVar19 * 8;\n      goto LAB_001da142;\n    }" if (parenthesized_expression "(local_40 != 0)" ( (binary_expression "local_40 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar21 = uVar19 * 8;\n      goto LAB_001da142;\n    }" { (expression_statement "uVar21 = uVar19 * 8;" (assignment_expression "uVar21 = uVar19 * 8" identifier = (binary_expression "uVar19 * 8" identifier * number_literal)) ;) (goto_statement "goto LAB_001da142;" goto statement_identifier ;) })) (if_statement "if (uVar6 == 0) goto LAB_001da16d;" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001da16d;" goto statement_identifier ;)) (labeled_statement "LAB_001d9e70:\n    uVar21 = (ulong)uVar6 * 4;" statement_identifier : (expression_statement "uVar21 = (ulong)uVar6 * 4;" (assignment_expression "uVar21 = (ulong)uVar6 * 4" identifier = (binary_expression "(ulong)uVar6 * 4" (cast_expression "(ulong)uVar6" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) ;)) comment (expression_statement "pvVar9 = operator_new(uVar21);" (assignment_expression "pvVar9 = operator_new(uVar21)" identifier = (call_expression "operator_new(uVar21)" identifier (argument_list "(uVar21)" ( identifier )))) ;) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (do_statement "do {\n      uVar23 = uVar19;\n      *(undefined4 *)((long)pvVar9 + uVar23 * 4) = 0;\n      uVar19 = uVar23 + 1;\n    } while ((ulong)uVar6 != uVar23 + 1);" do (compound_statement "{\n      uVar23 = uVar19;\n      *(undefined4 *)((long)pvVar9 + uVar23 * 4) = 0;\n      uVar19 = uVar23 + 1;\n    }" { (expression_statement "uVar23 = uVar19;" (assignment_expression "uVar23 = uVar19" identifier = identifier) ;) (expression_statement "*(undefined4 *)((long)pvVar9 + uVar23 * 4) = 0;" (assignment_expression "*(undefined4 *)((long)pvVar9 + uVar23 * 4) = 0" (pointer_expression "*(undefined4 *)((long)pvVar9 + uVar23 * 4)" * (cast_expression "(undefined4 *)((long)pvVar9 + uVar23 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar9 + uVar23 * 4)" ( (binary_expression "(long)pvVar9 + uVar23 * 4" (cast_expression "(long)pvVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "uVar23 * 4" identifier * number_literal)) )))) = number_literal) ;) (expression_statement "uVar19 = uVar23 + 1;" (assignment_expression "uVar19 = uVar23 + 1" identifier = (binary_expression "uVar23 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((ulong)uVar6 != uVar23 + 1)" ( (binary_expression "(ulong)uVar6 != uVar23 + 1" (cast_expression "(ulong)uVar6" ( (type_descriptor "ulong" type_identifier) ) identifier) != (binary_expression "uVar23 + 1" identifier + number_literal)) )) ;) comment (expression_statement "pvVar10 = operator_new(uVar21);" (assignment_expression "pvVar10 = operator_new(uVar21)" identifier = (call_expression "operator_new(uVar21)" identifier (argument_list "(uVar21)" ( identifier )))) ;) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (do_statement "do {\n      *(undefined4 *)((long)pvVar10 + uVar21 * 4) = 0;\n      bVar24 = uVar23 != uVar21;\n      uVar21 = uVar21 + 1;\n    } while (bVar24);" do (compound_statement "{\n      *(undefined4 *)((long)pvVar10 + uVar21 * 4) = 0;\n      bVar24 = uVar23 != uVar21;\n      uVar21 = uVar21 + 1;\n    }" { (expression_statement "*(undefined4 *)((long)pvVar10 + uVar21 * 4) = 0;" (assignment_expression "*(undefined4 *)((long)pvVar10 + uVar21 * 4) = 0" (pointer_expression "*(undefined4 *)((long)pvVar10 + uVar21 * 4)" * (cast_expression "(undefined4 *)((long)pvVar10 + uVar21 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar10 + uVar21 * 4)" ( (binary_expression "(long)pvVar10 + uVar21 * 4" (cast_expression "(long)pvVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "uVar21 * 4" identifier * number_literal)) )))) = number_literal) ;) (expression_statement "bVar24 = uVar23 != uVar21;" (assignment_expression "bVar24 = uVar23 != uVar21" identifier = (binary_expression "uVar23 != uVar21" identifier != identifier)) ;) (expression_statement "uVar21 = uVar21 + 1;" (assignment_expression "uVar21 = uVar21 + 1" identifier = (binary_expression "uVar21 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (if_statement "if (uVar7 != 0) goto LAB_001d9ed4;" if (parenthesized_expression "(uVar7 != 0)" ( (binary_expression "uVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_001d9ed4;" goto statement_identifier ;)) }))) (if_statement "if (uVar6 != 0) {\n    uVar21 = 0;\n    uVar8 = unhashed_dynsym_count;\n    do {\n      *(uint *)((long)pvVar10 + uVar21 * 4) = uVar8;\n      uVar8 = uVar8 + *(int *)((long)pvVar9 + uVar21 * 4);\n      bVar24 = uVar6 - 1 != uVar21;\n      uVar21 = uVar21 + 1;\n    } while (bVar24);\n  }" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar21 = 0;\n    uVar8 = unhashed_dynsym_count;\n    do {\n      *(uint *)((long)pvVar10 + uVar21 * 4) = uVar8;\n      uVar8 = uVar8 + *(int *)((long)pvVar9 + uVar21 * 4);\n      bVar24 = uVar6 - 1 != uVar21;\n      uVar21 = uVar21 + 1;\n    } while (bVar24);\n  }" { (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (expression_statement "uVar8 = unhashed_dynsym_count;" (assignment_expression "uVar8 = unhashed_dynsym_count" identifier = identifier) ;) (do_statement "do {\n      *(uint *)((long)pvVar10 + uVar21 * 4) = uVar8;\n      uVar8 = uVar8 + *(int *)((long)pvVar9 + uVar21 * 4);\n      bVar24 = uVar6 - 1 != uVar21;\n      uVar21 = uVar21 + 1;\n    } while (bVar24);" do (compound_statement "{\n      *(uint *)((long)pvVar10 + uVar21 * 4) = uVar8;\n      uVar8 = uVar8 + *(int *)((long)pvVar9 + uVar21 * 4);\n      bVar24 = uVar6 - 1 != uVar21;\n      uVar21 = uVar21 + 1;\n    }" { (expression_statement "*(uint *)((long)pvVar10 + uVar21 * 4) = uVar8;" (assignment_expression "*(uint *)((long)pvVar10 + uVar21 * 4) = uVar8" (pointer_expression "*(uint *)((long)pvVar10 + uVar21 * 4)" * (cast_expression "(uint *)((long)pvVar10 + uVar21 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar10 + uVar21 * 4)" ( (binary_expression "(long)pvVar10 + uVar21 * 4" (cast_expression "(long)pvVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "uVar21 * 4" identifier * number_literal)) )))) = identifier) ;) (expression_statement "uVar8 = uVar8 + *(int *)((long)pvVar9 + uVar21 * 4);" (assignment_expression "uVar8 = uVar8 + *(int *)((long)pvVar9 + uVar21 * 4)" identifier = (binary_expression "uVar8 + *(int *)((long)pvVar9 + uVar21 * 4)" identifier + (pointer_expression "*(int *)((long)pvVar9 + uVar21 * 4)" * (cast_expression "(int *)((long)pvVar9 + uVar21 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar9 + uVar21 * 4)" ( (binary_expression "(long)pvVar9 + uVar21 * 4" (cast_expression "(long)pvVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "uVar21 * 4" identifier * number_literal)) )))))) ;) (expression_statement "bVar24 = uVar6 - 1 != uVar21;" (assignment_expression "bVar24 = uVar6 - 1 != uVar21" identifier = (binary_expression "uVar6 - 1 != uVar21" (binary_expression "uVar6 - 1" identifier - number_literal) != identifier)) ;) (expression_statement "uVar21 = uVar21 + 1;" (assignment_expression "uVar21 = uVar21 + 1" identifier = (binary_expression "uVar21 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) })) (labeled_statement "LAB_001d9f2b:\n  uVar8 = (local_6c >> 3) + (uVar6 + 4 + uVar7) * 4;" statement_identifier : (expression_statement "uVar8 = (local_6c >> 3) + (uVar6 + 4 + uVar7) * 4;" (assignment_expression "uVar8 = (local_6c >> 3) + (uVar6 + 4 + uVar7) * 4" identifier = (binary_expression "(local_6c >> 3) + (uVar6 + 4 + uVar7) * 4" (parenthesized_expression "(local_6c >> 3)" ( (binary_expression "local_6c >> 3" identifier >> number_literal) )) + (binary_expression "(uVar6 + 4 + uVar7) * 4" (parenthesized_expression "(uVar6 + 4 + uVar7)" ( (binary_expression "uVar6 + 4 + uVar7" (binary_expression "uVar6 + 4" identifier + number_literal) + identifier) )) * number_literal))) ;)) comment (expression_statement "puVar11 = (uint *)operator_new__((ulong)uVar8);" (assignment_expression "puVar11 = (uint *)operator_new__((ulong)uVar8)" identifier = (cast_expression "(uint *)operator_new__((ulong)uVar8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new__((ulong)uVar8)" identifier (argument_list "((ulong)uVar8)" ( (cast_expression "(ulong)uVar8" ( (type_descriptor "ulong" type_identifier) ) identifier) ))))) ;) (expression_statement "*puVar11 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;" (assignment_expression "*puVar11 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18" (pointer_expression "*puVar11" * identifier) = (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8" (binary_expression "uVar6 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff0000) >> 8" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00) << 8" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x18" identifier << number_literal))) ;) (expression_statement "lVar15 = (long)puVar11 + (ulong)(local_6c >> 3) + 0x10;" (assignment_expression "lVar15 = (long)puVar11 + (ulong)(local_6c >> 3) + 0x10" identifier = (binary_expression "(long)puVar11 + (ulong)(local_6c >> 3) + 0x10" (binary_expression "(long)puVar11 + (ulong)(local_6c >> 3)" (cast_expression "(long)puVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (call_expression "(ulong)(local_6c >> 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(local_6c >> 3)" ( (binary_expression "local_6c >> 3" identifier >> number_literal) )))) + number_literal)) ;) (expression_statement "puVar11[1] = unhashed_dynsym_count >> 0x18 | (unhashed_dynsym_count & 0xff0000) >> 8 |\n               (unhashed_dynsym_count & 0xff00) << 8 | unhashed_dynsym_count << 0x18;" (assignment_expression "puVar11[1] = unhashed_dynsym_count >> 0x18 | (unhashed_dynsym_count & 0xff0000) >> 8 |\n               (unhashed_dynsym_count & 0xff00) << 8 | unhashed_dynsym_count << 0x18" (subscript_expression "puVar11[1]" identifier [ number_literal ]) = (binary_expression "unhashed_dynsym_count >> 0x18 | (unhashed_dynsym_count & 0xff0000) >> 8 |\n               (unhashed_dynsym_count & 0xff00) << 8 | unhashed_dynsym_count << 0x18" (binary_expression "unhashed_dynsym_count >> 0x18 | (unhashed_dynsym_count & 0xff0000) >> 8 |\n               (unhashed_dynsym_count & 0xff00) << 8" (binary_expression "unhashed_dynsym_count >> 0x18 | (unhashed_dynsym_count & 0xff0000) >> 8" (binary_expression "unhashed_dynsym_count >> 0x18" identifier >> number_literal) | (binary_expression "(unhashed_dynsym_count & 0xff0000) >> 8" (parenthesized_expression "(unhashed_dynsym_count & 0xff0000)" ( (binary_expression "unhashed_dynsym_count & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(unhashed_dynsym_count & 0xff00) << 8" (parenthesized_expression "(unhashed_dynsym_count & 0xff00)" ( (binary_expression "unhashed_dynsym_count & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "unhashed_dynsym_count << 0x18" identifier << number_literal))) ;) (expression_statement "puVar11[2] = local_40 >> 0x18 | (local_40 & 0xff0000) >> 8 | (local_40 & 0xff00) << 8 |\n               local_40 << 0x18;" (assignment_expression "puVar11[2] = local_40 >> 0x18 | (local_40 & 0xff0000) >> 8 | (local_40 & 0xff00) << 8 |\n               local_40 << 0x18" (subscript_expression "puVar11[2]" identifier [ number_literal ]) = (binary_expression "local_40 >> 0x18 | (local_40 & 0xff0000) >> 8 | (local_40 & 0xff00) << 8 |\n               local_40 << 0x18" (binary_expression "local_40 >> 0x18 | (local_40 & 0xff0000) >> 8 | (local_40 & 0xff00) << 8" (binary_expression "local_40 >> 0x18 | (local_40 & 0xff0000) >> 8" (binary_expression "local_40 >> 0x18" identifier >> number_literal) | (binary_expression "(local_40 & 0xff0000) >> 8" (parenthesized_expression "(local_40 & 0xff0000)" ( (binary_expression "local_40 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(local_40 & 0xff00) << 8" (parenthesized_expression "(local_40 & 0xff00)" ( (binary_expression "local_40 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "local_40 << 0x18" identifier << number_literal))) ;) (expression_statement "puVar11[3] = local_70 >> 0x18 | (local_70 & 0xff0000) >> 8 | (local_70 & 0xff00) << 8 |\n               local_70 << 0x18;" (assignment_expression "puVar11[3] = local_70 >> 0x18 | (local_70 & 0xff0000) >> 8 | (local_70 & 0xff00) << 8 |\n               local_70 << 0x18" (subscript_expression "puVar11[3]" identifier [ number_literal ]) = (binary_expression "local_70 >> 0x18 | (local_70 & 0xff0000) >> 8 | (local_70 & 0xff00) << 8 |\n               local_70 << 0x18" (binary_expression "local_70 >> 0x18 | (local_70 & 0xff0000) >> 8 | (local_70 & 0xff00) << 8" (binary_expression "local_70 >> 0x18 | (local_70 & 0xff0000) >> 8" (binary_expression "local_70 >> 0x18" identifier >> number_literal) | (binary_expression "(local_70 & 0xff0000) >> 8" (parenthesized_expression "(local_70 & 0xff0000)" ( (binary_expression "local_70 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(local_70 & 0xff00) << 8" (parenthesized_expression "(local_70 & 0xff00)" ( (binary_expression "local_70 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "local_70 << 0x18" identifier << number_literal))) ;) (if_statement "if (uVar6 != 0) {\n    uVar21 = 0;\n    do {\n      uVar16 = *(uint *)((long)pvVar9 + uVar21 * 4);\n      if (uVar16 != 0) {\n        uVar16 = *(uint *)((long)pvVar10 + uVar21 * 4);\n        uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n        ;\n      }\n      *(uint *)(lVar15 + uVar21 * 4) = uVar16;\n      bVar24 = uVar6 - 1 != uVar21;\n      uVar21 = uVar21 + 1;\n    } while (bVar24);\n    lVar15 = lVar15 + ((ulong)(uVar6 - 1) + 1) * 4;\n  }" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar21 = 0;\n    do {\n      uVar16 = *(uint *)((long)pvVar9 + uVar21 * 4);\n      if (uVar16 != 0) {\n        uVar16 = *(uint *)((long)pvVar10 + uVar21 * 4);\n        uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n        ;\n      }\n      *(uint *)(lVar15 + uVar21 * 4) = uVar16;\n      bVar24 = uVar6 - 1 != uVar21;\n      uVar21 = uVar21 + 1;\n    } while (bVar24);\n    lVar15 = lVar15 + ((ulong)(uVar6 - 1) + 1) * 4;\n  }" { (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (do_statement "do {\n      uVar16 = *(uint *)((long)pvVar9 + uVar21 * 4);\n      if (uVar16 != 0) {\n        uVar16 = *(uint *)((long)pvVar10 + uVar21 * 4);\n        uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n        ;\n      }\n      *(uint *)(lVar15 + uVar21 * 4) = uVar16;\n      bVar24 = uVar6 - 1 != uVar21;\n      uVar21 = uVar21 + 1;\n    } while (bVar24);" do (compound_statement "{\n      uVar16 = *(uint *)((long)pvVar9 + uVar21 * 4);\n      if (uVar16 != 0) {\n        uVar16 = *(uint *)((long)pvVar10 + uVar21 * 4);\n        uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n        ;\n      }\n      *(uint *)(lVar15 + uVar21 * 4) = uVar16;\n      bVar24 = uVar6 - 1 != uVar21;\n      uVar21 = uVar21 + 1;\n    }" { (expression_statement "uVar16 = *(uint *)((long)pvVar9 + uVar21 * 4);" (assignment_expression "uVar16 = *(uint *)((long)pvVar9 + uVar21 * 4)" identifier = (pointer_expression "*(uint *)((long)pvVar9 + uVar21 * 4)" * (cast_expression "(uint *)((long)pvVar9 + uVar21 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar9 + uVar21 * 4)" ( (binary_expression "(long)pvVar9 + uVar21 * 4" (cast_expression "(long)pvVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "uVar21 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (uVar16 != 0) {\n        uVar16 = *(uint *)((long)pvVar10 + uVar21 * 4);\n        uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n        ;\n      }" if (parenthesized_expression "(uVar16 != 0)" ( (binary_expression "uVar16 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar16 = *(uint *)((long)pvVar10 + uVar21 * 4);\n        uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n        ;\n      }" { (expression_statement "uVar16 = *(uint *)((long)pvVar10 + uVar21 * 4);" (assignment_expression "uVar16 = *(uint *)((long)pvVar10 + uVar21 * 4)" identifier = (pointer_expression "*(uint *)((long)pvVar10 + uVar21 * 4)" * (cast_expression "(uint *)((long)pvVar10 + uVar21 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar10 + uVar21 * 4)" ( (binary_expression "(long)pvVar10 + uVar21 * 4" (cast_expression "(long)pvVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "uVar21 * 4" identifier * number_literal)) ))))) ;) (expression_statement "uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n        ;" (assignment_expression "uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" identifier = (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" ( (binary_expression "uVar16 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" ( (binary_expression "uVar16 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar16 << 0x18" identifier << number_literal))) ;) })) (expression_statement "*(uint *)(lVar15 + uVar21 * 4) = uVar16;" (assignment_expression "*(uint *)(lVar15 + uVar21 * 4) = uVar16" (pointer_expression "*(uint *)(lVar15 + uVar21 * 4)" * (cast_expression "(uint *)(lVar15 + uVar21 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + uVar21 * 4)" ( (binary_expression "lVar15 + uVar21 * 4" identifier + (binary_expression "uVar21 * 4" identifier * number_literal)) )))) = identifier) ;) (expression_statement "bVar24 = uVar6 - 1 != uVar21;" (assignment_expression "bVar24 = uVar6 - 1 != uVar21" identifier = (binary_expression "uVar6 - 1 != uVar21" (binary_expression "uVar6 - 1" identifier - number_literal) != identifier)) ;) (expression_statement "uVar21 = uVar21 + 1;" (assignment_expression "uVar21 = uVar21 + 1" identifier = (binary_expression "uVar21 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (expression_statement "lVar15 = lVar15 + ((ulong)(uVar6 - 1) + 1) * 4;" (assignment_expression "lVar15 = lVar15 + ((ulong)(uVar6 - 1) + 1) * 4" identifier = (binary_expression "lVar15 + ((ulong)(uVar6 - 1) + 1) * 4" identifier + (binary_expression "((ulong)(uVar6 - 1) + 1) * 4" (parenthesized_expression "((ulong)(uVar6 - 1) + 1)" ( (binary_expression "(ulong)(uVar6 - 1) + 1" (call_expression "(ulong)(uVar6 - 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar6 - 1)" ( (binary_expression "uVar6 - 1" identifier - number_literal) ))) + number_literal) )) * number_literal))) ;) })) (if_statement "if (uVar7 != 0) {\n    ppSVar20 = (hashed_dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n               _M_impl._M_start;\n    puVar22 = (dynsym_hashvals->super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>).\n              _M_impl._M_start;\n    ppSVar2 = ppSVar20 + (ulong)(uVar7 - 1) + 1;\n    do {\n      uVar7 = *puVar22;\n      pSVar5 = *ppSVar20;\n      puVar12[uVar7 >> 6 & (local_6c >> 6) - 1] =\n           puVar12[uVar7 >> 6 & (local_6c >> 6) - 1] |\n           1L << ((byte)(uVar7 >> ((byte)local_70 & 0x1f)) & 0x3f) | 1L << ((byte)uVar7 & 0x3f);\n      lVar17 = ((ulong)uVar7 % (ulong)uVar6) * 4;\n      piVar1 = (int *)((long)pvVar9 + lVar17);\n      iVar3 = *piVar1;\n      uVar16 = uVar7 & 0xfffffffe;\n      if (iVar3 == 1) {\n        uVar16 = uVar7 & 0xfffffffe | 1;\n      }\n      puVar18 = (uint *)(lVar17 + (long)pvVar10);\n      uVar7 = *puVar18;\n      *piVar1 = iVar3 + -1;\n      *(uint *)(lVar15 + (ulong)((uVar7 - unhashed_dynsym_count) * 4)) =\n           uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;\n      if (uVar7 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001da1fa to 001da1fe has its CatchHandler @ 001da204 */\n        do_gold_unreachable("../../gold/symtab.h",0x1a2,"set_dynsym_index");\n      }\n      pSVar5->dynsym_index_ = uVar7;\n      ppSVar20 = ppSVar20 + 1;\n      puVar22 = puVar22 + 1;\n      *puVar18 = uVar7 + 1;\n    } while (ppSVar2 != ppSVar20);\n  }" if (parenthesized_expression "(uVar7 != 0)" ( (binary_expression "uVar7 != 0" identifier != number_literal) )) (compound_statement "{\n    ppSVar20 = (hashed_dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n               _M_impl._M_start;\n    puVar22 = (dynsym_hashvals->super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>).\n              _M_impl._M_start;\n    ppSVar2 = ppSVar20 + (ulong)(uVar7 - 1) + 1;\n    do {\n      uVar7 = *puVar22;\n      pSVar5 = *ppSVar20;\n      puVar12[uVar7 >> 6 & (local_6c >> 6) - 1] =\n           puVar12[uVar7 >> 6 & (local_6c >> 6) - 1] |\n           1L << ((byte)(uVar7 >> ((byte)local_70 & 0x1f)) & 0x3f) | 1L << ((byte)uVar7 & 0x3f);\n      lVar17 = ((ulong)uVar7 % (ulong)uVar6) * 4;\n      piVar1 = (int *)((long)pvVar9 + lVar17);\n      iVar3 = *piVar1;\n      uVar16 = uVar7 & 0xfffffffe;\n      if (iVar3 == 1) {\n        uVar16 = uVar7 & 0xfffffffe | 1;\n      }\n      puVar18 = (uint *)(lVar17 + (long)pvVar10);\n      uVar7 = *puVar18;\n      *piVar1 = iVar3 + -1;\n      *(uint *)(lVar15 + (ulong)((uVar7 - unhashed_dynsym_count) * 4)) =\n           uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;\n      if (uVar7 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001da1fa to 001da1fe has its CatchHandler @ 001da204 */\n        do_gold_unreachable("../../gold/symtab.h",0x1a2,"set_dynsym_index");\n      }\n      pSVar5->dynsym_index_ = uVar7;\n      ppSVar20 = ppSVar20 + 1;\n      puVar22 = puVar22 + 1;\n      *puVar18 = uVar7 + 1;\n    } while (ppSVar2 != ppSVar20);\n  }" { (expression_statement "ppSVar20 = (hashed_dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n               _M_impl._M_start;" (assignment_expression "ppSVar20 = (hashed_dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n               _M_impl._M_start" identifier = (field_expression "(hashed_dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n               _M_impl._M_start" (field_expression "(hashed_dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n               _M_impl" (parenthesized_expression "(hashed_dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)" ( (ERROR "hashed_dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold::" (comma_expression "hashed_dynsyms->super__Vector_base<gold::Symbol*,_std" (binary_expression "hashed_dynsyms->super__Vector_base<gold::Symbol*" (binary_expression "hashed_dynsyms->super__Vector_base<gold" (field_expression "hashed_dynsyms->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Symbol" : : identifier) * identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Symbol*>_>" (binary_expression "Symbol*>_" identifier * (ERROR ">" >) identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "puVar22 = (dynsym_hashvals->super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>).\n              _M_impl._M_start;" (assignment_expression "puVar22 = (dynsym_hashvals->super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>).\n              _M_impl._M_start" identifier = (field_expression "(dynsym_hashvals->super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>).\n              _M_impl._M_start" (field_expression "(dynsym_hashvals->super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>).\n              _M_impl" (parenthesized_expression "(dynsym_hashvals->super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>)" ( (ERROR "dynsym_hashvals->super__Vector_base<unsigned_int,_std::" (comma_expression "dynsym_hashvals->super__Vector_base<unsigned_int,_std" (binary_expression "dynsym_hashvals->super__Vector_base<unsigned_int" (field_expression "dynsym_hashvals->super__Vector_base" identifier -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<unsigned_int>_>" (binary_expression "allocator<unsigned_int>_" (binary_expression "allocator<unsigned_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "ppSVar2 = ppSVar20 + (ulong)(uVar7 - 1) + 1;" (assignment_expression "ppSVar2 = ppSVar20 + (ulong)(uVar7 - 1) + 1" identifier = (binary_expression "ppSVar20 + (ulong)(uVar7 - 1) + 1" (binary_expression "ppSVar20 + (ulong)(uVar7 - 1)" identifier + (call_expression "(ulong)(uVar7 - 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar7 - 1)" ( (binary_expression "uVar7 - 1" identifier - number_literal) )))) + number_literal)) ;) (do_statement "do {\n      uVar7 = *puVar22;\n      pSVar5 = *ppSVar20;\n      puVar12[uVar7 >> 6 & (local_6c >> 6) - 1] =\n           puVar12[uVar7 >> 6 & (local_6c >> 6) - 1] |\n           1L << ((byte)(uVar7 >> ((byte)local_70 & 0x1f)) & 0x3f) | 1L << ((byte)uVar7 & 0x3f);\n      lVar17 = ((ulong)uVar7 % (ulong)uVar6) * 4;\n      piVar1 = (int *)((long)pvVar9 + lVar17);\n      iVar3 = *piVar1;\n      uVar16 = uVar7 & 0xfffffffe;\n      if (iVar3 == 1) {\n        uVar16 = uVar7 & 0xfffffffe | 1;\n      }\n      puVar18 = (uint *)(lVar17 + (long)pvVar10);\n      uVar7 = *puVar18;\n      *piVar1 = iVar3 + -1;\n      *(uint *)(lVar15 + (ulong)((uVar7 - unhashed_dynsym_count) * 4)) =\n           uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;\n      if (uVar7 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001da1fa to 001da1fe has its CatchHandler @ 001da204 */\n        do_gold_unreachable("../../gold/symtab.h",0x1a2,"set_dynsym_index");\n      }\n      pSVar5->dynsym_index_ = uVar7;\n      ppSVar20 = ppSVar20 + 1;\n      puVar22 = puVar22 + 1;\n      *puVar18 = uVar7 + 1;\n    } while (ppSVar2 != ppSVar20);" do (compound_statement "{\n      uVar7 = *puVar22;\n      pSVar5 = *ppSVar20;\n      puVar12[uVar7 >> 6 & (local_6c >> 6) - 1] =\n           puVar12[uVar7 >> 6 & (local_6c >> 6) - 1] |\n           1L << ((byte)(uVar7 >> ((byte)local_70 & 0x1f)) & 0x3f) | 1L << ((byte)uVar7 & 0x3f);\n      lVar17 = ((ulong)uVar7 % (ulong)uVar6) * 4;\n      piVar1 = (int *)((long)pvVar9 + lVar17);\n      iVar3 = *piVar1;\n      uVar16 = uVar7 & 0xfffffffe;\n      if (iVar3 == 1) {\n        uVar16 = uVar7 & 0xfffffffe | 1;\n      }\n      puVar18 = (uint *)(lVar17 + (long)pvVar10);\n      uVar7 = *puVar18;\n      *piVar1 = iVar3 + -1;\n      *(uint *)(lVar15 + (ulong)((uVar7 - unhashed_dynsym_count) * 4)) =\n           uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;\n      if (uVar7 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001da1fa to 001da1fe has its CatchHandler @ 001da204 */\n        do_gold_unreachable("../../gold/symtab.h",0x1a2,"set_dynsym_index");\n      }\n      pSVar5->dynsym_index_ = uVar7;\n      ppSVar20 = ppSVar20 + 1;\n      puVar22 = puVar22 + 1;\n      *puVar18 = uVar7 + 1;\n    }" { (expression_statement "uVar7 = *puVar22;" (assignment_expression "uVar7 = *puVar22" identifier = (pointer_expression "*puVar22" * identifier)) ;) (expression_statement "pSVar5 = *ppSVar20;" (assignment_expression "pSVar5 = *ppSVar20" identifier = (pointer_expression "*ppSVar20" * identifier)) ;) (expression_statement "puVar12[uVar7 >> 6 & (local_6c >> 6) - 1] =\n           puVar12[uVar7 >> 6 & (local_6c >> 6) - 1] |\n           1L << ((byte)(uVar7 >> ((byte)local_70 & 0x1f)) & 0x3f) | 1L << ((byte)uVar7 & 0x3f);" (assignment_expression "puVar12[uVar7 >> 6 & (local_6c >> 6) - 1] =\n           puVar12[uVar7 >> 6 & (local_6c >> 6) - 1] |\n           1L << ((byte)(uVar7 >> ((byte)local_70 & 0x1f)) & 0x3f) | 1L << ((byte)uVar7 & 0x3f)" (subscript_expression "puVar12[uVar7 >> 6 & (local_6c >> 6) - 1]" identifier [ (binary_expression "uVar7 >> 6 & (local_6c >> 6) - 1" (binary_expression "uVar7 >> 6" identifier >> number_literal) & (binary_expression "(local_6c >> 6) - 1" (parenthesized_expression "(local_6c >> 6)" ( (binary_expression "local_6c >> 6" identifier >> number_literal) )) - number_literal)) ]) = (binary_expression "puVar12[uVar7 >> 6 & (local_6c >> 6) - 1] |\n           1L << ((byte)(uVar7 >> ((byte)local_70 & 0x1f)) & 0x3f) | 1L << ((byte)uVar7 & 0x3f)" (binary_expression "puVar12[uVar7 >> 6 & (local_6c >> 6) - 1] |\n           1L << ((byte)(uVar7 >> ((byte)local_70 & 0x1f)) & 0x3f)" (subscript_expression "puVar12[uVar7 >> 6 & (local_6c >> 6) - 1]" identifier [ (binary_expression "uVar7 >> 6 & (local_6c >> 6) - 1" (binary_expression "uVar7 >> 6" identifier >> number_literal) & (binary_expression "(local_6c >> 6) - 1" (parenthesized_expression "(local_6c >> 6)" ( (binary_expression "local_6c >> 6" identifier >> number_literal) )) - number_literal)) ]) | (binary_expression "1L << ((byte)(uVar7 >> ((byte)local_70 & 0x1f)) & 0x3f)" number_literal << (parenthesized_expression "((byte)(uVar7 >> ((byte)local_70 & 0x1f)) & 0x3f)" ( (binary_expression "(byte)(uVar7 >> ((byte)local_70 & 0x1f)) & 0x3f" (call_expression "(byte)(uVar7 >> ((byte)local_70 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar7 >> ((byte)local_70 & 0x1f))" ( (binary_expression "uVar7 >> ((byte)local_70 & 0x1f)" identifier >> (parenthesized_expression "((byte)local_70 & 0x1f)" ( (binary_expression "(byte)local_70 & 0x1f" (cast_expression "(byte)local_70" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & number_literal) )))) | (binary_expression "1L << ((byte)uVar7 & 0x3f)" number_literal << (parenthesized_expression "((byte)uVar7 & 0x3f)" ( (binary_expression "(byte)uVar7 & 0x3f" (cast_expression "(byte)uVar7" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))))) ;) (expression_statement "lVar17 = ((ulong)uVar7 % (ulong)uVar6) * 4;" (assignment_expression "lVar17 = ((ulong)uVar7 % (ulong)uVar6) * 4" identifier = (binary_expression "((ulong)uVar7 % (ulong)uVar6) * 4" (parenthesized_expression "((ulong)uVar7 % (ulong)uVar6)" ( (binary_expression "(ulong)uVar7 % (ulong)uVar6" (cast_expression "(ulong)uVar7" ( (type_descriptor "ulong" type_identifier) ) identifier) % (cast_expression "(ulong)uVar6" ( (type_descriptor "ulong" type_identifier) ) identifier)) )) * number_literal)) ;) (expression_statement "piVar1 = (int *)((long)pvVar9 + lVar17);" (assignment_expression "piVar1 = (int *)((long)pvVar9 + lVar17)" identifier = (cast_expression "(int *)((long)pvVar9 + lVar17)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar9 + lVar17)" ( (binary_expression "(long)pvVar9 + lVar17" (cast_expression "(long)pvVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ;) (expression_statement "iVar3 = *piVar1;" (assignment_expression "iVar3 = *piVar1" identifier = (pointer_expression "*piVar1" * identifier)) ;) (expression_statement "uVar16 = uVar7 & 0xfffffffe;" (assignment_expression "uVar16 = uVar7 & 0xfffffffe" identifier = (binary_expression "uVar7 & 0xfffffffe" identifier & number_literal)) ;) (if_statement "if (iVar3 == 1) {\n        uVar16 = uVar7 & 0xfffffffe | 1;\n      }" if (parenthesized_expression "(iVar3 == 1)" ( (binary_expression "iVar3 == 1" identifier == number_literal) )) (compound_statement "{\n        uVar16 = uVar7 & 0xfffffffe | 1;\n      }" { (expression_statement "uVar16 = uVar7 & 0xfffffffe | 1;" (assignment_expression "uVar16 = uVar7 & 0xfffffffe | 1" identifier = (binary_expression "uVar7 & 0xfffffffe | 1" (binary_expression "uVar7 & 0xfffffffe" identifier & number_literal) | number_literal)) ;) })) (expression_statement "puVar18 = (uint *)(lVar17 + (long)pvVar10);" (assignment_expression "puVar18 = (uint *)(lVar17 + (long)pvVar10)" identifier = (cast_expression "(uint *)(lVar17 + (long)pvVar10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar17 + (long)pvVar10)" ( (binary_expression "lVar17 + (long)pvVar10" identifier + (cast_expression "(long)pvVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) (expression_statement "uVar7 = *puVar18;" (assignment_expression "uVar7 = *puVar18" identifier = (pointer_expression "*puVar18" * identifier)) ;) (expression_statement "*piVar1 = iVar3 + -1;" (assignment_expression "*piVar1 = iVar3 + -1" (pointer_expression "*piVar1" * identifier) = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) (expression_statement "*(uint *)(lVar15 + (ulong)((uVar7 - unhashed_dynsym_count) * 4)) =\n           uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;" (assignment_expression "*(uint *)(lVar15 + (ulong)((uVar7 - unhashed_dynsym_count) * 4)) =\n           uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" (pointer_expression "*(uint *)(lVar15 + (ulong)((uVar7 - unhashed_dynsym_count) * 4))" * (cast_expression "(uint *)(lVar15 + (ulong)((uVar7 - unhashed_dynsym_count) * 4))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + (ulong)((uVar7 - unhashed_dynsym_count) * 4))" ( (binary_expression "lVar15 + (ulong)((uVar7 - unhashed_dynsym_count) * 4)" identifier + (call_expression "(ulong)((uVar7 - unhashed_dynsym_count) * 4)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((uVar7 - unhashed_dynsym_count) * 4)" ( (binary_expression "(uVar7 - unhashed_dynsym_count) * 4" (parenthesized_expression "(uVar7 - unhashed_dynsym_count)" ( (binary_expression "uVar7 - unhashed_dynsym_count" identifier - identifier) )) * number_literal) )))) )))) = (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" ( (binary_expression "uVar16 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" ( (binary_expression "uVar16 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar16 << 0x18" identifier << number_literal))) ;) (if_statement "if (uVar7 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001da1fa to 001da1fe has its CatchHandler @ 001da204 */\n        do_gold_unreachable("../../gold/symtab.h",0x1a2,"set_dynsym_index");\n      }" if (parenthesized_expression "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001da1fa to 001da1fe has its CatchHandler @ 001da204 */\n        do_gold_unreachable("../../gold/symtab.h",0x1a2,"set_dynsym_index");\n      }" { comment comment (expression_statement "do_gold_unreachable("../../gold/symtab.h",0x1a2,"set_dynsym_index");" (call_expression "do_gold_unreachable("../../gold/symtab.h",0x1a2,"set_dynsym_index")" identifier (argument_list "("../../gold/symtab.h",0x1a2,"set_dynsym_index")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""set_dynsym_index"" " string_content ") ))) ;) })) (expression_statement "pSVar5->dynsym_index_ = uVar7;" (assignment_expression "pSVar5->dynsym_index_ = uVar7" (field_expression "pSVar5->dynsym_index_" identifier -> field_identifier) = identifier) ;) (expression_statement "ppSVar20 = ppSVar20 + 1;" (assignment_expression "ppSVar20 = ppSVar20 + 1" identifier = (binary_expression "ppSVar20 + 1" identifier + number_literal)) ;) (expression_statement "puVar22 = puVar22 + 1;" (assignment_expression "puVar22 = puVar22 + 1" identifier = (binary_expression "puVar22 + 1" identifier + number_literal)) ;) (expression_statement "*puVar18 = uVar7 + 1;" (assignment_expression "*puVar18 = uVar7 + 1" (pointer_expression "*puVar18" * identifier) = (binary_expression "uVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(ppSVar2 != ppSVar20)" ( (binary_expression "ppSVar2 != ppSVar20" identifier != identifier) )) ;) })) (if_statement "if (local_40 != 0) {\n    uVar21 = 0;\n    do {\n      uVar19 = puVar12[uVar21];\n      *(ulong *)(puVar11 + uVar21 * 2 + 4) =\n           uVar19 >> 0x38 | (uVar19 & 0xff000000000000) >> 0x28 | (uVar19 & 0xff0000000000) >> 0x18\n           | (uVar19 & 0xff00000000) >> 8 | (uVar19 & 0xff000000) << 8 | (uVar19 & 0xff0000) << 0x18\n           | (uVar19 & 0xff00) << 0x28 | uVar19 << 0x38;\n      bVar24 = uVar21 != local_40 - 1;\n      uVar21 = uVar21 + 1;\n    } while (bVar24);\n  }" if (parenthesized_expression "(local_40 != 0)" ( (binary_expression "local_40 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar21 = 0;\n    do {\n      uVar19 = puVar12[uVar21];\n      *(ulong *)(puVar11 + uVar21 * 2 + 4) =\n           uVar19 >> 0x38 | (uVar19 & 0xff000000000000) >> 0x28 | (uVar19 & 0xff0000000000) >> 0x18\n           | (uVar19 & 0xff00000000) >> 8 | (uVar19 & 0xff000000) << 8 | (uVar19 & 0xff0000) << 0x18\n           | (uVar19 & 0xff00) << 0x28 | uVar19 << 0x38;\n      bVar24 = uVar21 != local_40 - 1;\n      uVar21 = uVar21 + 1;\n    } while (bVar24);\n  }" { (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (do_statement "do {\n      uVar19 = puVar12[uVar21];\n      *(ulong *)(puVar11 + uVar21 * 2 + 4) =\n           uVar19 >> 0x38 | (uVar19 & 0xff000000000000) >> 0x28 | (uVar19 & 0xff0000000000) >> 0x18\n           | (uVar19 & 0xff00000000) >> 8 | (uVar19 & 0xff000000) << 8 | (uVar19 & 0xff0000) << 0x18\n           | (uVar19 & 0xff00) << 0x28 | uVar19 << 0x38;\n      bVar24 = uVar21 != local_40 - 1;\n      uVar21 = uVar21 + 1;\n    } while (bVar24);" do (compound_statement "{\n      uVar19 = puVar12[uVar21];\n      *(ulong *)(puVar11 + uVar21 * 2 + 4) =\n           uVar19 >> 0x38 | (uVar19 & 0xff000000000000) >> 0x28 | (uVar19 & 0xff0000000000) >> 0x18\n           | (uVar19 & 0xff00000000) >> 8 | (uVar19 & 0xff000000) << 8 | (uVar19 & 0xff0000) << 0x18\n           | (uVar19 & 0xff00) << 0x28 | uVar19 << 0x38;\n      bVar24 = uVar21 != local_40 - 1;\n      uVar21 = uVar21 + 1;\n    }" { (expression_statement "uVar19 = puVar12[uVar21];" (assignment_expression "uVar19 = puVar12[uVar21]" identifier = (subscript_expression "puVar12[uVar21]" identifier [ identifier ])) ;) (expression_statement "*(ulong *)(puVar11 + uVar21 * 2 + 4) =\n           uVar19 >> 0x38 | (uVar19 & 0xff000000000000) >> 0x28 | (uVar19 & 0xff0000000000) >> 0x18\n           | (uVar19 & 0xff00000000) >> 8 | (uVar19 & 0xff000000) << 8 | (uVar19 & 0xff0000) << 0x18\n           | (uVar19 & 0xff00) << 0x28 | uVar19 << 0x38;" (assignment_expression "*(ulong *)(puVar11 + uVar21 * 2 + 4) =\n           uVar19 >> 0x38 | (uVar19 & 0xff000000000000) >> 0x28 | (uVar19 & 0xff0000000000) >> 0x18\n           | (uVar19 & 0xff00000000) >> 8 | (uVar19 & 0xff000000) << 8 | (uVar19 & 0xff0000) << 0x18\n           | (uVar19 & 0xff00) << 0x28 | uVar19 << 0x38" (pointer_expression "*(ulong *)(puVar11 + uVar21 * 2 + 4)" * (cast_expression "(ulong *)(puVar11 + uVar21 * 2 + 4)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + uVar21 * 2 + 4)" ( (binary_expression "puVar11 + uVar21 * 2 + 4" (binary_expression "puVar11 + uVar21 * 2" identifier + (binary_expression "uVar21 * 2" identifier * number_literal)) + number_literal) )))) = (binary_expression "uVar19 >> 0x38 | (uVar19 & 0xff000000000000) >> 0x28 | (uVar19 & 0xff0000000000) >> 0x18\n           | (uVar19 & 0xff00000000) >> 8 | (uVar19 & 0xff000000) << 8 | (uVar19 & 0xff0000) << 0x18\n           | (uVar19 & 0xff00) << 0x28 | uVar19 << 0x38" (binary_expression "uVar19 >> 0x38 | (uVar19 & 0xff000000000000) >> 0x28 | (uVar19 & 0xff0000000000) >> 0x18\n           | (uVar19 & 0xff00000000) >> 8 | (uVar19 & 0xff000000) << 8 | (uVar19 & 0xff0000) << 0x18\n           | (uVar19 & 0xff00) << 0x28" (binary_expression "uVar19 >> 0x38 | (uVar19 & 0xff000000000000) >> 0x28 | (uVar19 & 0xff0000000000) >> 0x18\n           | (uVar19 & 0xff00000000) >> 8 | (uVar19 & 0xff000000) << 8 | (uVar19 & 0xff0000) << 0x18" (binary_expression "uVar19 >> 0x38 | (uVar19 & 0xff000000000000) >> 0x28 | (uVar19 & 0xff0000000000) >> 0x18\n           | (uVar19 & 0xff00000000) >> 8 | (uVar19 & 0xff000000) << 8" (binary_expression "uVar19 >> 0x38 | (uVar19 & 0xff000000000000) >> 0x28 | (uVar19 & 0xff0000000000) >> 0x18\n           | (uVar19 & 0xff00000000) >> 8" (binary_expression "uVar19 >> 0x38 | (uVar19 & 0xff000000000000) >> 0x28 | (uVar19 & 0xff0000000000) >> 0x18" (binary_expression "uVar19 >> 0x38 | (uVar19 & 0xff000000000000) >> 0x28" (binary_expression "uVar19 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar19 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar19 & 0xff000000000000)" ( (binary_expression "uVar19 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar19 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar19 & 0xff0000000000)" ( (binary_expression "uVar19 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar19 & 0xff00000000) >> 8" (parenthesized_expression "(uVar19 & 0xff00000000)" ( (binary_expression "uVar19 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar19 & 0xff000000) << 8" (parenthesized_expression "(uVar19 & 0xff000000)" ( (binary_expression "uVar19 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar19 & 0xff0000) << 0x18" (parenthesized_expression "(uVar19 & 0xff0000)" ( (binary_expression "uVar19 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar19 & 0xff00) << 0x28" (parenthesized_expression "(uVar19 & 0xff00)" ( (binary_expression "uVar19 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar19 << 0x38" identifier << number_literal))) ;) (expression_statement "bVar24 = uVar21 != local_40 - 1;" (assignment_expression "bVar24 = uVar21 != local_40 - 1" identifier = (binary_expression "uVar21 != local_40 - 1" identifier != (binary_expression "local_40 - 1" identifier - number_literal))) ;) (expression_statement "uVar21 = uVar21 + 1;" (assignment_expression "uVar21 = uVar21 + 1" identifier = (binary_expression "uVar21 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) })) (expression_statement "*phashlen = uVar8;" (assignment_expression "*phashlen = uVar8" (pointer_expression "*phashlen" * identifier) = identifier) ;) (expression_statement "*pphash = (uchar *)puVar11;" (assignment_expression "*pphash = (uchar *)puVar11" (pointer_expression "*pphash" * identifier) = (cast_expression "(uchar *)puVar11" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (pvVar10 != (void *)0x0) {\n    operator_delete(pvVar10);\n  }" if (parenthesized_expression "(pvVar10 != (void *)0x0)" ( (binary_expression "pvVar10 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    operator_delete(pvVar10);\n  }" { (expression_statement "operator_delete(pvVar10);" (call_expression "operator_delete(pvVar10)" identifier (argument_list "(pvVar10)" ( identifier ))) ;) })) (if_statement "if (pvVar9 != (void *)0x0) {\n    operator_delete(pvVar9);\n  }" if (parenthesized_expression "(pvVar9 != (void *)0x0)" ( (binary_expression "pvVar9 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    operator_delete(pvVar9);\n  }" { (expression_statement "operator_delete(pvVar9);" (call_expression "operator_delete(pvVar9)" identifier (argument_list "(pvVar9)" ( identifier ))) ;) })) (if_statement "if (puVar12 == (undefined8 *)0x0) {\n    return;\n  }" if (parenthesized_expression "(puVar12 == (undefined8 *)0x0)" ( (binary_expression "puVar12 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "operator_delete(puVar12);" (call_expression "operator_delete(puVar12)" identifier (argument_list "(puVar12)" ( identifier ))) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void FUN_001d9da0(long *param_1,long *param_2,uint param_3,undefined8 *param_4,int *param_5)\n\n{\n  int *piVar1;\n  long *plVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  long lVar9;\n  long lVar10;\n  uint *puVar11;\n  undefined8 *puVar12;\n  undefined8 *puVar13;\n  undefined4 *puVar14;\n  long lVar15;\n  long lVar16;\n  int *piVar17;\n  ulong uVar18;\n  uint *puVar19;\n  long lVar20;\n  ulong uVar21;\n  bool bVar22;\n  uint local_70;\n  uint local_6c;\n  uint local_40;\n  \n  if (param_1[1] == *param_1) {\n    puVar14 = (undefined4 *)thunk_FUN_00337280(0x1c);\n    *puVar14 = 0x1000000;\n    *param_5 = 0x1c;\n    *(undefined8 *)(puVar14 + 2) = 0x1000000;\n    puVar14[1] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n                 param_3 << 0x18;\n    *(undefined8 *)(puVar14 + 4) = 0;\n    puVar14[6] = 0;\n    *param_4 = puVar14;\n    return;\n  }\n  uVar6 = FUN_001d5250(param_2,1);\n  uVar7 = (uint)(param_1[1] - *param_1 >> 3);\n  uVar8 = uVar7 >> 1;\n  if (uVar8 == 0) {\nLAB_001da120:\n    local_40 = 1;\n    lVar9 = 8;\n    uVar18 = 1;\n    local_6c = 0x40;\n    local_70 = 6;\nLAB_001da142:\n    puVar12 = (undefined8 *)FUN_00337280(lVar9);\n    puVar13 = puVar12;\n    do {\n      *puVar13 = 0;\n      puVar13 = puVar13 + 1;\n    } while (puVar13 != puVar12 + uVar18);\n    if (uVar6 != 0) goto LAB_001d9e70;\nLAB_001da16d:\n    lVar10 = 0;\n    lVar9 = 0;\n    if (uVar7 == 0) goto LAB_001d9f2b;\nLAB_001d9ed4:\n    lVar15 = 0;\n    lVar20 = *param_2;\n    do {\n      lVar16 = lVar15 * 4;\n      lVar15 = lVar15 + 1;\n      piVar1 = (int *)(lVar9 + ((ulong)*(uint *)(lVar20 + lVar16) % (ulong)uVar6) * 4);\n      *piVar1 = *piVar1 + 1;\n    } while ((uint)lVar15 < uVar7);\n  }\n  else {\n    uVar5 = 1;\n    do {\n      local_70 = uVar5;\n      uVar8 = uVar8 >> 1;\n      uVar5 = local_70 + 1;\n    } while (uVar8 != 0);\n    if (local_70 + 1 < 3) goto LAB_001da120;\n    if ((uVar7 >> (local_70 - 1 & 0x1f) & 1) == 0) {\n      local_70 = local_70 + 3;\n      if (local_70 == 5) goto LAB_001da120;\n    }\n    else {\n      local_70 = local_70 + 4;\n    }\n    puVar12 = (undefined8 *)0x0;\n    local_6c = 1 << ((byte)local_70 & 0x1f);\n    local_40 = 1 << ((byte)local_70 - 6 & 0x1f);\n    uVar18 = (ulong)local_40;\n    if (local_40 != 0) {\n      lVar9 = uVar18 * 8;\n      goto LAB_001da142;\n    }\n    if (uVar6 == 0) goto LAB_001da16d;\nLAB_001d9e70:\n    lVar10 = (ulong)uVar6 * 4;\n                    \n    lVar9 = FUN_00337280(lVar10);\n    uVar18 = 0;\n    do {\n      uVar21 = uVar18;\n      *(undefined4 *)(lVar9 + uVar21 * 4) = 0;\n      uVar18 = uVar21 + 1;\n    } while ((ulong)uVar6 != uVar21 + 1);\n                    \n    lVar10 = FUN_00337280(lVar10);\n    uVar18 = 0;\n    do {\n      *(undefined4 *)(lVar10 + uVar18 * 4) = 0;\n      bVar22 = uVar21 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n    if (uVar7 != 0) goto LAB_001d9ed4;\n  }\n  if (uVar6 != 0) {\n    uVar18 = 0;\n    uVar8 = param_3;\n    do {\n      *(uint *)(lVar10 + uVar18 * 4) = uVar8;\n      uVar8 = uVar8 + *(int *)(lVar9 + uVar18 * 4);\n      bVar22 = uVar6 - 1 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n  }\nLAB_001d9f2b:\n                    \n  puVar11 = (uint *)thunk_FUN_00337280();\n  *puVar11 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n  lVar20 = (long)puVar11 + (ulong)(local_6c >> 3) + 0x10;\n  puVar11[1] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n               param_3 << 0x18;\n  puVar11[2] = local_40 >> 0x18 | (local_40 & 0xff0000) >> 8 | (local_40 & 0xff00) << 8 |\n               local_40 << 0x18;\n  puVar11[3] = local_70 >> 0x18 | (local_70 & 0xff0000) >> 8 | (local_70 & 0xff00) << 8 |\n               local_70 << 0x18;\n  if (uVar6 != 0) {\n    uVar18 = 0;\n    do {\n      uVar8 = *(uint *)(lVar9 + uVar18 * 4);\n      if (uVar8 != 0) {\n        uVar8 = *(uint *)(lVar10 + uVar18 * 4);\n        uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      }\n      *(uint *)(lVar20 + uVar18 * 4) = uVar8;\n      bVar22 = uVar6 - 1 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n    lVar20 = lVar20 + ((ulong)(uVar6 - 1) + 1) * 4;\n  }\n  if (uVar7 != 0) {\n    param_1 = (long *)*param_1;\n    puVar19 = (uint *)*param_2;\n    plVar2 = param_1 + (ulong)(uVar7 - 1) + 1;\n    do {\n      uVar8 = *puVar19;\n      lVar15 = *param_1;\n      puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] =\n           puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] |\n           1L << ((byte)(uVar8 >> ((byte)local_70 & 0x1f)) & 0x3f) | 1L << ((byte)uVar8 & 0x3f);\n      lVar16 = ((ulong)uVar8 % (ulong)uVar6) * 4;\n      piVar1 = (int *)(lVar9 + lVar16);\n      iVar3 = *piVar1;\n      uVar5 = uVar8 & 0xfffffffe;\n      if (iVar3 == 1) {\n        uVar5 = uVar8 & 0xfffffffe | 1;\n      }\n      piVar17 = (int *)(lVar16 + lVar10);\n      iVar4 = *piVar17;\n      *piVar1 = iVar3 + -1;\n      *(uint *)(lVar20 + (ulong)((iVar4 - param_3) * 4)) =\n           uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n      if (iVar4 == 0) {\n                    \n                    \n        FUN_001e9890("../../gold/symtab.h",0x1a2,"set_dynsym_index");\n      }\n      *(int *)(lVar15 + 0x20) = iVar4;\n      param_1 = param_1 + 1;\n      puVar19 = puVar19 + 1;\n      *piVar17 = iVar4 + 1;\n    } while (plVar2 != param_1);\n  }\n  if (local_40 != 0) {\n    uVar18 = 0;\n    do {\n      uVar21 = puVar12[uVar18];\n      *(ulong *)(puVar11 + uVar18 * 2 + 4) =\n           uVar21 >> 0x38 | (uVar21 & 0xff000000000000) >> 0x28 | (uVar21 & 0xff0000000000) >> 0x18\n           | (uVar21 & 0xff00000000) >> 8 | (uVar21 & 0xff000000) << 8 | (uVar21 & 0xff0000) << 0x18\n           | (uVar21 & 0xff00) << 0x28 | uVar21 << 0x38;\n      bVar22 = uVar18 != local_40 - 1;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n  }\n  *param_5 = (local_6c >> 3) + (uVar6 + 4 + uVar7) * 4;\n  *param_4 = puVar11;\n  if (lVar10 != 0) {\n    FUN_00338a50(lVar10);\n  }\n  if (lVar9 != 0) {\n    FUN_00338a50(lVar9);\n  }\n  if (puVar12 == (undefined8 *)0x0) {\n    return;\n  }\n  FUN_00338a50(puVar12);\n  return;\n}\n\n" (function_definition "void FUN_001d9da0(long *param_1,long *param_2,uint param_3,undefined8 *param_4,int *param_5)\n\n{\n  int *piVar1;\n  long *plVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  long lVar9;\n  long lVar10;\n  uint *puVar11;\n  undefined8 *puVar12;\n  undefined8 *puVar13;\n  undefined4 *puVar14;\n  long lVar15;\n  long lVar16;\n  int *piVar17;\n  ulong uVar18;\n  uint *puVar19;\n  long lVar20;\n  ulong uVar21;\n  bool bVar22;\n  uint local_70;\n  uint local_6c;\n  uint local_40;\n  \n  if (param_1[1] == *param_1) {\n    puVar14 = (undefined4 *)thunk_FUN_00337280(0x1c);\n    *puVar14 = 0x1000000;\n    *param_5 = 0x1c;\n    *(undefined8 *)(puVar14 + 2) = 0x1000000;\n    puVar14[1] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n                 param_3 << 0x18;\n    *(undefined8 *)(puVar14 + 4) = 0;\n    puVar14[6] = 0;\n    *param_4 = puVar14;\n    return;\n  }\n  uVar6 = FUN_001d5250(param_2,1);\n  uVar7 = (uint)(param_1[1] - *param_1 >> 3);\n  uVar8 = uVar7 >> 1;\n  if (uVar8 == 0) {\nLAB_001da120:\n    local_40 = 1;\n    lVar9 = 8;\n    uVar18 = 1;\n    local_6c = 0x40;\n    local_70 = 6;\nLAB_001da142:\n    puVar12 = (undefined8 *)FUN_00337280(lVar9);\n    puVar13 = puVar12;\n    do {\n      *puVar13 = 0;\n      puVar13 = puVar13 + 1;\n    } while (puVar13 != puVar12 + uVar18);\n    if (uVar6 != 0) goto LAB_001d9e70;\nLAB_001da16d:\n    lVar10 = 0;\n    lVar9 = 0;\n    if (uVar7 == 0) goto LAB_001d9f2b;\nLAB_001d9ed4:\n    lVar15 = 0;\n    lVar20 = *param_2;\n    do {\n      lVar16 = lVar15 * 4;\n      lVar15 = lVar15 + 1;\n      piVar1 = (int *)(lVar9 + ((ulong)*(uint *)(lVar20 + lVar16) % (ulong)uVar6) * 4);\n      *piVar1 = *piVar1 + 1;\n    } while ((uint)lVar15 < uVar7);\n  }\n  else {\n    uVar5 = 1;\n    do {\n      local_70 = uVar5;\n      uVar8 = uVar8 >> 1;\n      uVar5 = local_70 + 1;\n    } while (uVar8 != 0);\n    if (local_70 + 1 < 3) goto LAB_001da120;\n    if ((uVar7 >> (local_70 - 1 & 0x1f) & 1) == 0) {\n      local_70 = local_70 + 3;\n      if (local_70 == 5) goto LAB_001da120;\n    }\n    else {\n      local_70 = local_70 + 4;\n    }\n    puVar12 = (undefined8 *)0x0;\n    local_6c = 1 << ((byte)local_70 & 0x1f);\n    local_40 = 1 << ((byte)local_70 - 6 & 0x1f);\n    uVar18 = (ulong)local_40;\n    if (local_40 != 0) {\n      lVar9 = uVar18 * 8;\n      goto LAB_001da142;\n    }\n    if (uVar6 == 0) goto LAB_001da16d;\nLAB_001d9e70:\n    lVar10 = (ulong)uVar6 * 4;\n                    \n    lVar9 = FUN_00337280(lVar10);\n    uVar18 = 0;\n    do {\n      uVar21 = uVar18;\n      *(undefined4 *)(lVar9 + uVar21 * 4) = 0;\n      uVar18 = uVar21 + 1;\n    } while ((ulong)uVar6 != uVar21 + 1);\n                    \n    lVar10 = FUN_00337280(lVar10);\n    uVar18 = 0;\n    do {\n      *(undefined4 *)(lVar10 + uVar18 * 4) = 0;\n      bVar22 = uVar21 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n    if (uVar7 != 0) goto LAB_001d9ed4;\n  }\n  if (uVar6 != 0) {\n    uVar18 = 0;\n    uVar8 = param_3;\n    do {\n      *(uint *)(lVar10 + uVar18 * 4) = uVar8;\n      uVar8 = uVar8 + *(int *)(lVar9 + uVar18 * 4);\n      bVar22 = uVar6 - 1 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n  }\nLAB_001d9f2b:\n                    \n  puVar11 = (uint *)thunk_FUN_00337280();\n  *puVar11 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n  lVar20 = (long)puVar11 + (ulong)(local_6c >> 3) + 0x10;\n  puVar11[1] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n               param_3 << 0x18;\n  puVar11[2] = local_40 >> 0x18 | (local_40 & 0xff0000) >> 8 | (local_40 & 0xff00) << 8 |\n               local_40 << 0x18;\n  puVar11[3] = local_70 >> 0x18 | (local_70 & 0xff0000) >> 8 | (local_70 & 0xff00) << 8 |\n               local_70 << 0x18;\n  if (uVar6 != 0) {\n    uVar18 = 0;\n    do {\n      uVar8 = *(uint *)(lVar9 + uVar18 * 4);\n      if (uVar8 != 0) {\n        uVar8 = *(uint *)(lVar10 + uVar18 * 4);\n        uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      }\n      *(uint *)(lVar20 + uVar18 * 4) = uVar8;\n      bVar22 = uVar6 - 1 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n    lVar20 = lVar20 + ((ulong)(uVar6 - 1) + 1) * 4;\n  }\n  if (uVar7 != 0) {\n    param_1 = (long *)*param_1;\n    puVar19 = (uint *)*param_2;\n    plVar2 = param_1 + (ulong)(uVar7 - 1) + 1;\n    do {\n      uVar8 = *puVar19;\n      lVar15 = *param_1;\n      puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] =\n           puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] |\n           1L << ((byte)(uVar8 >> ((byte)local_70 & 0x1f)) & 0x3f) | 1L << ((byte)uVar8 & 0x3f);\n      lVar16 = ((ulong)uVar8 % (ulong)uVar6) * 4;\n      piVar1 = (int *)(lVar9 + lVar16);\n      iVar3 = *piVar1;\n      uVar5 = uVar8 & 0xfffffffe;\n      if (iVar3 == 1) {\n        uVar5 = uVar8 & 0xfffffffe | 1;\n      }\n      piVar17 = (int *)(lVar16 + lVar10);\n      iVar4 = *piVar17;\n      *piVar1 = iVar3 + -1;\n      *(uint *)(lVar20 + (ulong)((iVar4 - param_3) * 4)) =\n           uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n      if (iVar4 == 0) {\n                    \n                    \n        FUN_001e9890("../../gold/symtab.h",0x1a2,"set_dynsym_index");\n      }\n      *(int *)(lVar15 + 0x20) = iVar4;\n      param_1 = param_1 + 1;\n      puVar19 = puVar19 + 1;\n      *piVar17 = iVar4 + 1;\n    } while (plVar2 != param_1);\n  }\n  if (local_40 != 0) {\n    uVar18 = 0;\n    do {\n      uVar21 = puVar12[uVar18];\n      *(ulong *)(puVar11 + uVar18 * 2 + 4) =\n           uVar21 >> 0x38 | (uVar21 & 0xff000000000000) >> 0x28 | (uVar21 & 0xff0000000000) >> 0x18\n           | (uVar21 & 0xff00000000) >> 8 | (uVar21 & 0xff000000) << 8 | (uVar21 & 0xff0000) << 0x18\n           | (uVar21 & 0xff00) << 0x28 | uVar21 << 0x38;\n      bVar22 = uVar18 != local_40 - 1;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n  }\n  *param_5 = (local_6c >> 3) + (uVar6 + 4 + uVar7) * 4;\n  *param_4 = puVar11;\n  if (lVar10 != 0) {\n    FUN_00338a50(lVar10);\n  }\n  if (lVar9 != 0) {\n    FUN_00338a50(lVar9);\n  }\n  if (puVar12 == (undefined8 *)0x0) {\n    return;\n  }\n  FUN_00338a50(puVar12);\n  return;\n}" primitive_type (function_declarator "FUN_001d9da0(long *param_1,long *param_2,uint param_3,undefined8 *param_4,int *param_5)" identifier (parameter_list "(long *param_1,long *param_2,uint param_3,undefined8 *param_4,int *param_5)" ( (parameter_declaration "long *param_1" (sized_type_specifier "long" long) (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "long *param_2" (sized_type_specifier "long" long) (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "undefined8 *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "int *param_5" primitive_type (pointer_declarator "*param_5" * identifier)) ))) (compound_statement "{\n  int *piVar1;\n  long *plVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  long lVar9;\n  long lVar10;\n  uint *puVar11;\n  undefined8 *puVar12;\n  undefined8 *puVar13;\n  undefined4 *puVar14;\n  long lVar15;\n  long lVar16;\n  int *piVar17;\n  ulong uVar18;\n  uint *puVar19;\n  long lVar20;\n  ulong uVar21;\n  bool bVar22;\n  uint local_70;\n  uint local_6c;\n  uint local_40;\n  \n  if (param_1[1] == *param_1) {\n    puVar14 = (undefined4 *)thunk_FUN_00337280(0x1c);\n    *puVar14 = 0x1000000;\n    *param_5 = 0x1c;\n    *(undefined8 *)(puVar14 + 2) = 0x1000000;\n    puVar14[1] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n                 param_3 << 0x18;\n    *(undefined8 *)(puVar14 + 4) = 0;\n    puVar14[6] = 0;\n    *param_4 = puVar14;\n    return;\n  }\n  uVar6 = FUN_001d5250(param_2,1);\n  uVar7 = (uint)(param_1[1] - *param_1 >> 3);\n  uVar8 = uVar7 >> 1;\n  if (uVar8 == 0) {\nLAB_001da120:\n    local_40 = 1;\n    lVar9 = 8;\n    uVar18 = 1;\n    local_6c = 0x40;\n    local_70 = 6;\nLAB_001da142:\n    puVar12 = (undefined8 *)FUN_00337280(lVar9);\n    puVar13 = puVar12;\n    do {\n      *puVar13 = 0;\n      puVar13 = puVar13 + 1;\n    } while (puVar13 != puVar12 + uVar18);\n    if (uVar6 != 0) goto LAB_001d9e70;\nLAB_001da16d:\n    lVar10 = 0;\n    lVar9 = 0;\n    if (uVar7 == 0) goto LAB_001d9f2b;\nLAB_001d9ed4:\n    lVar15 = 0;\n    lVar20 = *param_2;\n    do {\n      lVar16 = lVar15 * 4;\n      lVar15 = lVar15 + 1;\n      piVar1 = (int *)(lVar9 + ((ulong)*(uint *)(lVar20 + lVar16) % (ulong)uVar6) * 4);\n      *piVar1 = *piVar1 + 1;\n    } while ((uint)lVar15 < uVar7);\n  }\n  else {\n    uVar5 = 1;\n    do {\n      local_70 = uVar5;\n      uVar8 = uVar8 >> 1;\n      uVar5 = local_70 + 1;\n    } while (uVar8 != 0);\n    if (local_70 + 1 < 3) goto LAB_001da120;\n    if ((uVar7 >> (local_70 - 1 & 0x1f) & 1) == 0) {\n      local_70 = local_70 + 3;\n      if (local_70 == 5) goto LAB_001da120;\n    }\n    else {\n      local_70 = local_70 + 4;\n    }\n    puVar12 = (undefined8 *)0x0;\n    local_6c = 1 << ((byte)local_70 & 0x1f);\n    local_40 = 1 << ((byte)local_70 - 6 & 0x1f);\n    uVar18 = (ulong)local_40;\n    if (local_40 != 0) {\n      lVar9 = uVar18 * 8;\n      goto LAB_001da142;\n    }\n    if (uVar6 == 0) goto LAB_001da16d;\nLAB_001d9e70:\n    lVar10 = (ulong)uVar6 * 4;\n                    \n    lVar9 = FUN_00337280(lVar10);\n    uVar18 = 0;\n    do {\n      uVar21 = uVar18;\n      *(undefined4 *)(lVar9 + uVar21 * 4) = 0;\n      uVar18 = uVar21 + 1;\n    } while ((ulong)uVar6 != uVar21 + 1);\n                    \n    lVar10 = FUN_00337280(lVar10);\n    uVar18 = 0;\n    do {\n      *(undefined4 *)(lVar10 + uVar18 * 4) = 0;\n      bVar22 = uVar21 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n    if (uVar7 != 0) goto LAB_001d9ed4;\n  }\n  if (uVar6 != 0) {\n    uVar18 = 0;\n    uVar8 = param_3;\n    do {\n      *(uint *)(lVar10 + uVar18 * 4) = uVar8;\n      uVar8 = uVar8 + *(int *)(lVar9 + uVar18 * 4);\n      bVar22 = uVar6 - 1 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n  }\nLAB_001d9f2b:\n                    \n  puVar11 = (uint *)thunk_FUN_00337280();\n  *puVar11 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n  lVar20 = (long)puVar11 + (ulong)(local_6c >> 3) + 0x10;\n  puVar11[1] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n               param_3 << 0x18;\n  puVar11[2] = local_40 >> 0x18 | (local_40 & 0xff0000) >> 8 | (local_40 & 0xff00) << 8 |\n               local_40 << 0x18;\n  puVar11[3] = local_70 >> 0x18 | (local_70 & 0xff0000) >> 8 | (local_70 & 0xff00) << 8 |\n               local_70 << 0x18;\n  if (uVar6 != 0) {\n    uVar18 = 0;\n    do {\n      uVar8 = *(uint *)(lVar9 + uVar18 * 4);\n      if (uVar8 != 0) {\n        uVar8 = *(uint *)(lVar10 + uVar18 * 4);\n        uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      }\n      *(uint *)(lVar20 + uVar18 * 4) = uVar8;\n      bVar22 = uVar6 - 1 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n    lVar20 = lVar20 + ((ulong)(uVar6 - 1) + 1) * 4;\n  }\n  if (uVar7 != 0) {\n    param_1 = (long *)*param_1;\n    puVar19 = (uint *)*param_2;\n    plVar2 = param_1 + (ulong)(uVar7 - 1) + 1;\n    do {\n      uVar8 = *puVar19;\n      lVar15 = *param_1;\n      puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] =\n           puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] |\n           1L << ((byte)(uVar8 >> ((byte)local_70 & 0x1f)) & 0x3f) | 1L << ((byte)uVar8 & 0x3f);\n      lVar16 = ((ulong)uVar8 % (ulong)uVar6) * 4;\n      piVar1 = (int *)(lVar9 + lVar16);\n      iVar3 = *piVar1;\n      uVar5 = uVar8 & 0xfffffffe;\n      if (iVar3 == 1) {\n        uVar5 = uVar8 & 0xfffffffe | 1;\n      }\n      piVar17 = (int *)(lVar16 + lVar10);\n      iVar4 = *piVar17;\n      *piVar1 = iVar3 + -1;\n      *(uint *)(lVar20 + (ulong)((iVar4 - param_3) * 4)) =\n           uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n      if (iVar4 == 0) {\n                    \n                    \n        FUN_001e9890("../../gold/symtab.h",0x1a2,"set_dynsym_index");\n      }\n      *(int *)(lVar15 + 0x20) = iVar4;\n      param_1 = param_1 + 1;\n      puVar19 = puVar19 + 1;\n      *piVar17 = iVar4 + 1;\n    } while (plVar2 != param_1);\n  }\n  if (local_40 != 0) {\n    uVar18 = 0;\n    do {\n      uVar21 = puVar12[uVar18];\n      *(ulong *)(puVar11 + uVar18 * 2 + 4) =\n           uVar21 >> 0x38 | (uVar21 & 0xff000000000000) >> 0x28 | (uVar21 & 0xff0000000000) >> 0x18\n           | (uVar21 & 0xff00000000) >> 8 | (uVar21 & 0xff000000) << 8 | (uVar21 & 0xff0000) << 0x18\n           | (uVar21 & 0xff00) << 0x28 | uVar21 << 0x38;\n      bVar22 = uVar18 != local_40 - 1;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n  }\n  *param_5 = (local_6c >> 3) + (uVar6 + 4 + uVar7) * 4;\n  *param_4 = puVar11;\n  if (lVar10 != 0) {\n    FUN_00338a50(lVar10);\n  }\n  if (lVar9 != 0) {\n    FUN_00338a50(lVar9);\n  }\n  if (puVar12 == (undefined8 *)0x0) {\n    return;\n  }\n  FUN_00338a50(puVar12);\n  return;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "long *plVar2;" (sized_type_specifier "long" long) (pointer_declarator "*plVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "uint *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined8 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined8 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "long lVar15;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar16;" (sized_type_specifier "long" long) identifier ;) (declaration "int *piVar17;" primitive_type (pointer_declarator "*piVar17" * identifier) ;) (declaration "ulong uVar18;" type_identifier identifier ;) (declaration "uint *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "long lVar20;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar21;" type_identifier identifier ;) (declaration "bool bVar22;" primitive_type identifier ;) (declaration "uint local_70;" type_identifier identifier ;) (declaration "uint local_6c;" type_identifier identifier ;) (declaration "uint local_40;" type_identifier identifier ;) (if_statement "if (param_1[1] == *param_1) {\n    puVar14 = (undefined4 *)thunk_FUN_00337280(0x1c);\n    *puVar14 = 0x1000000;\n    *param_5 = 0x1c;\n    *(undefined8 *)(puVar14 + 2) = 0x1000000;\n    puVar14[1] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n                 param_3 << 0x18;\n    *(undefined8 *)(puVar14 + 4) = 0;\n    puVar14[6] = 0;\n    *param_4 = puVar14;\n    return;\n  }" if (parenthesized_expression "(param_1[1] == *param_1)" ( (binary_expression "param_1[1] == *param_1" (subscript_expression "param_1[1]" identifier [ number_literal ]) == (pointer_expression "*param_1" * identifier)) )) (compound_statement "{\n    puVar14 = (undefined4 *)thunk_FUN_00337280(0x1c);\n    *puVar14 = 0x1000000;\n    *param_5 = 0x1c;\n    *(undefined8 *)(puVar14 + 2) = 0x1000000;\n    puVar14[1] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n                 param_3 << 0x18;\n    *(undefined8 *)(puVar14 + 4) = 0;\n    puVar14[6] = 0;\n    *param_4 = puVar14;\n    return;\n  }" { (expression_statement "puVar14 = (undefined4 *)thunk_FUN_00337280(0x1c);" (assignment_expression "puVar14 = (undefined4 *)thunk_FUN_00337280(0x1c)" identifier = (cast_expression "(undefined4 *)thunk_FUN_00337280(0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "thunk_FUN_00337280(0x1c)" identifier (argument_list "(0x1c)" ( number_literal ))))) ;) (expression_statement "*puVar14 = 0x1000000;" (assignment_expression "*puVar14 = 0x1000000" (pointer_expression "*puVar14" * identifier) = number_literal) ;) (expression_statement "*param_5 = 0x1c;" (assignment_expression "*param_5 = 0x1c" (pointer_expression "*param_5" * identifier) = number_literal) ;) (expression_statement "*(undefined8 *)(puVar14 + 2) = 0x1000000;" (assignment_expression "*(undefined8 *)(puVar14 + 2) = 0x1000000" (pointer_expression "*(undefined8 *)(puVar14 + 2)" * (cast_expression "(undefined8 *)(puVar14 + 2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 2)" ( (binary_expression "puVar14 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar14[1] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n                 param_3 << 0x18;" (assignment_expression "puVar14[1] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n                 param_3 << 0x18" (subscript_expression "puVar14[1]" identifier [ number_literal ]) = (binary_expression "param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n                 param_3 << 0x18" (binary_expression "param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8" (binary_expression "param_3 >> 0x18 | (param_3 & 0xff0000) >> 8" (binary_expression "param_3 >> 0x18" identifier >> number_literal) | (binary_expression "(param_3 & 0xff0000) >> 8" (parenthesized_expression "(param_3 & 0xff0000)" ( (binary_expression "param_3 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(param_3 & 0xff00) << 8" (parenthesized_expression "(param_3 & 0xff00)" ( (binary_expression "param_3 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "param_3 << 0x18" identifier << number_literal))) ;) (expression_statement "*(undefined8 *)(puVar14 + 4) = 0;" (assignment_expression "*(undefined8 *)(puVar14 + 4) = 0" (pointer_expression "*(undefined8 *)(puVar14 + 4)" * (cast_expression "(undefined8 *)(puVar14 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 4)" ( (binary_expression "puVar14 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar14[6] = 0;" (assignment_expression "puVar14[6] = 0" (subscript_expression "puVar14[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*param_4 = puVar14;" (assignment_expression "*param_4 = puVar14" (pointer_expression "*param_4" * identifier) = identifier) ;) (return_statement "return;" return ;) })) (expression_statement "uVar6 = FUN_001d5250(param_2,1);" (assignment_expression "uVar6 = FUN_001d5250(param_2,1)" identifier = (call_expression "FUN_001d5250(param_2,1)" identifier (argument_list "(param_2,1)" ( identifier , number_literal )))) ;) (expression_statement "uVar7 = (uint)(param_1[1] - *param_1 >> 3);" (assignment_expression "uVar7 = (uint)(param_1[1] - *param_1 >> 3)" identifier = (call_expression "(uint)(param_1[1] - *param_1 >> 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_1[1] - *param_1 >> 3)" ( (binary_expression "param_1[1] - *param_1 >> 3" (binary_expression "param_1[1] - *param_1" (subscript_expression "param_1[1]" identifier [ number_literal ]) - (pointer_expression "*param_1" * identifier)) >> number_literal) )))) ;) (expression_statement "uVar8 = uVar7 >> 1;" (assignment_expression "uVar8 = uVar7 >> 1" identifier = (binary_expression "uVar7 >> 1" identifier >> number_literal)) ;) (if_statement "if (uVar8 == 0) {\nLAB_001da120:\n    local_40 = 1;\n    lVar9 = 8;\n    uVar18 = 1;\n    local_6c = 0x40;\n    local_70 = 6;\nLAB_001da142:\n    puVar12 = (undefined8 *)FUN_00337280(lVar9);\n    puVar13 = puVar12;\n    do {\n      *puVar13 = 0;\n      puVar13 = puVar13 + 1;\n    } while (puVar13 != puVar12 + uVar18);\n    if (uVar6 != 0) goto LAB_001d9e70;\nLAB_001da16d:\n    lVar10 = 0;\n    lVar9 = 0;\n    if (uVar7 == 0) goto LAB_001d9f2b;\nLAB_001d9ed4:\n    lVar15 = 0;\n    lVar20 = *param_2;\n    do {\n      lVar16 = lVar15 * 4;\n      lVar15 = lVar15 + 1;\n      piVar1 = (int *)(lVar9 + ((ulong)*(uint *)(lVar20 + lVar16) % (ulong)uVar6) * 4);\n      *piVar1 = *piVar1 + 1;\n    } while ((uint)lVar15 < uVar7);\n  }\n  else {\n    uVar5 = 1;\n    do {\n      local_70 = uVar5;\n      uVar8 = uVar8 >> 1;\n      uVar5 = local_70 + 1;\n    } while (uVar8 != 0);\n    if (local_70 + 1 < 3) goto LAB_001da120;\n    if ((uVar7 >> (local_70 - 1 & 0x1f) & 1) == 0) {\n      local_70 = local_70 + 3;\n      if (local_70 == 5) goto LAB_001da120;\n    }\n    else {\n      local_70 = local_70 + 4;\n    }\n    puVar12 = (undefined8 *)0x0;\n    local_6c = 1 << ((byte)local_70 & 0x1f);\n    local_40 = 1 << ((byte)local_70 - 6 & 0x1f);\n    uVar18 = (ulong)local_40;\n    if (local_40 != 0) {\n      lVar9 = uVar18 * 8;\n      goto LAB_001da142;\n    }\n    if (uVar6 == 0) goto LAB_001da16d;\nLAB_001d9e70:\n    lVar10 = (ulong)uVar6 * 4;\n                    \n    lVar9 = FUN_00337280(lVar10);\n    uVar18 = 0;\n    do {\n      uVar21 = uVar18;\n      *(undefined4 *)(lVar9 + uVar21 * 4) = 0;\n      uVar18 = uVar21 + 1;\n    } while ((ulong)uVar6 != uVar21 + 1);\n                    \n    lVar10 = FUN_00337280(lVar10);\n    uVar18 = 0;\n    do {\n      *(undefined4 *)(lVar10 + uVar18 * 4) = 0;\n      bVar22 = uVar21 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n    if (uVar7 != 0) goto LAB_001d9ed4;\n  }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_001da120:\n    local_40 = 1;\n    lVar9 = 8;\n    uVar18 = 1;\n    local_6c = 0x40;\n    local_70 = 6;\nLAB_001da142:\n    puVar12 = (undefined8 *)FUN_00337280(lVar9);\n    puVar13 = puVar12;\n    do {\n      *puVar13 = 0;\n      puVar13 = puVar13 + 1;\n    } while (puVar13 != puVar12 + uVar18);\n    if (uVar6 != 0) goto LAB_001d9e70;\nLAB_001da16d:\n    lVar10 = 0;\n    lVar9 = 0;\n    if (uVar7 == 0) goto LAB_001d9f2b;\nLAB_001d9ed4:\n    lVar15 = 0;\n    lVar20 = *param_2;\n    do {\n      lVar16 = lVar15 * 4;\n      lVar15 = lVar15 + 1;\n      piVar1 = (int *)(lVar9 + ((ulong)*(uint *)(lVar20 + lVar16) % (ulong)uVar6) * 4);\n      *piVar1 = *piVar1 + 1;\n    } while ((uint)lVar15 < uVar7);\n  }" { (labeled_statement "LAB_001da120:\n    local_40 = 1;" statement_identifier : (expression_statement "local_40 = 1;" (assignment_expression "local_40 = 1" identifier = number_literal) ;)) (expression_statement "lVar9 = 8;" (assignment_expression "lVar9 = 8" identifier = number_literal) ;) (expression_statement "uVar18 = 1;" (assignment_expression "uVar18 = 1" identifier = number_literal) ;) (expression_statement "local_6c = 0x40;" (assignment_expression "local_6c = 0x40" identifier = number_literal) ;) (expression_statement "local_70 = 6;" (assignment_expression "local_70 = 6" identifier = number_literal) ;) (labeled_statement "LAB_001da142:\n    puVar12 = (undefined8 *)FUN_00337280(lVar9);" statement_identifier : (expression_statement "puVar12 = (undefined8 *)FUN_00337280(lVar9);" (assignment_expression "puVar12 = (undefined8 *)FUN_00337280(lVar9)" identifier = (cast_expression "(undefined8 *)FUN_00337280(lVar9)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00337280(lVar9)" identifier (argument_list "(lVar9)" ( identifier ))))) ;)) (expression_statement "puVar13 = puVar12;" (assignment_expression "puVar13 = puVar12" identifier = identifier) ;) (do_statement "do {\n      *puVar13 = 0;\n      puVar13 = puVar13 + 1;\n    } while (puVar13 != puVar12 + uVar18);" do (compound_statement "{\n      *puVar13 = 0;\n      puVar13 = puVar13 + 1;\n    }" { (expression_statement "*puVar13 = 0;" (assignment_expression "*puVar13 = 0" (pointer_expression "*puVar13" * identifier) = number_literal) ;) (expression_statement "puVar13 = puVar13 + 1;" (assignment_expression "puVar13 = puVar13 + 1" identifier = (binary_expression "puVar13 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar13 != puVar12 + uVar18)" ( (binary_expression "puVar13 != puVar12 + uVar18" identifier != (binary_expression "puVar12 + uVar18" identifier + identifier)) )) ;) (if_statement "if (uVar6 != 0) goto LAB_001d9e70;" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (goto_statement "goto LAB_001d9e70;" goto statement_identifier ;)) (labeled_statement "LAB_001da16d:\n    lVar10 = 0;" statement_identifier : (expression_statement "lVar10 = 0;" (assignment_expression "lVar10 = 0" identifier = number_literal) ;)) (expression_statement "lVar9 = 0;" (assignment_expression "lVar9 = 0" identifier = number_literal) ;) (if_statement "if (uVar7 == 0) goto LAB_001d9f2b;" if (parenthesized_expression "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001d9f2b;" goto statement_identifier ;)) (labeled_statement "LAB_001d9ed4:\n    lVar15 = 0;" statement_identifier : (expression_statement "lVar15 = 0;" (assignment_expression "lVar15 = 0" identifier = number_literal) ;)) (expression_statement "lVar20 = *param_2;" (assignment_expression "lVar20 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (do_statement "do {\n      lVar16 = lVar15 * 4;\n      lVar15 = lVar15 + 1;\n      piVar1 = (int *)(lVar9 + ((ulong)*(uint *)(lVar20 + lVar16) % (ulong)uVar6) * 4);\n      *piVar1 = *piVar1 + 1;\n    } while ((uint)lVar15 < uVar7);" do (compound_statement "{\n      lVar16 = lVar15 * 4;\n      lVar15 = lVar15 + 1;\n      piVar1 = (int *)(lVar9 + ((ulong)*(uint *)(lVar20 + lVar16) % (ulong)uVar6) * 4);\n      *piVar1 = *piVar1 + 1;\n    }" { (expression_statement "lVar16 = lVar15 * 4;" (assignment_expression "lVar16 = lVar15 * 4" identifier = (binary_expression "lVar15 * 4" identifier * number_literal)) ;) (expression_statement "lVar15 = lVar15 + 1;" (assignment_expression "lVar15 = lVar15 + 1" identifier = (binary_expression "lVar15 + 1" identifier + number_literal)) ;) (expression_statement "piVar1 = (int *)(lVar9 + ((ulong)*(uint *)(lVar20 + lVar16) % (ulong)uVar6) * 4);" (assignment_expression "piVar1 = (int *)(lVar9 + ((ulong)*(uint *)(lVar20 + lVar16) % (ulong)uVar6) * 4)" identifier = (cast_expression "(int *)(lVar9 + ((ulong)*(uint *)(lVar20 + lVar16) % (ulong)uVar6) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + ((ulong)*(uint *)(lVar20 + lVar16) % (ulong)uVar6) * 4)" ( (binary_expression "lVar9 + ((ulong)*(uint *)(lVar20 + lVar16) % (ulong)uVar6) * 4" identifier + (binary_expression "((ulong)*(uint *)(lVar20 + lVar16) % (ulong)uVar6) * 4" (parenthesized_expression "((ulong)*(uint *)(lVar20 + lVar16) % (ulong)uVar6)" ( (binary_expression "(ulong)*(uint *)(lVar20 + lVar16) % (ulong)uVar6" (binary_expression "(ulong)*(uint *)(lVar20 + lVar16)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)(lVar20 + lVar16)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar20 + lVar16)" ( (binary_expression "lVar20 + lVar16" identifier + identifier) )))) % (cast_expression "(ulong)uVar6" ( (type_descriptor "ulong" type_identifier) ) identifier)) )) * number_literal)) )))) ;) (expression_statement "*piVar1 = *piVar1 + 1;" (assignment_expression "*piVar1 = *piVar1 + 1" (pointer_expression "*piVar1" * identifier) = (binary_expression "*piVar1 + 1" (pointer_expression "*piVar1" * identifier) + number_literal)) ;) }) while (parenthesized_expression "((uint)lVar15 < uVar7)" ( (binary_expression "(uint)lVar15 < uVar7" (cast_expression "(uint)lVar15" ( (type_descriptor "uint" type_identifier) ) identifier) < identifier) )) ;) }) (else_clause "else {\n    uVar5 = 1;\n    do {\n      local_70 = uVar5;\n      uVar8 = uVar8 >> 1;\n      uVar5 = local_70 + 1;\n    } while (uVar8 != 0);\n    if (local_70 + 1 < 3) goto LAB_001da120;\n    if ((uVar7 >> (local_70 - 1 & 0x1f) & 1) == 0) {\n      local_70 = local_70 + 3;\n      if (local_70 == 5) goto LAB_001da120;\n    }\n    else {\n      local_70 = local_70 + 4;\n    }\n    puVar12 = (undefined8 *)0x0;\n    local_6c = 1 << ((byte)local_70 & 0x1f);\n    local_40 = 1 << ((byte)local_70 - 6 & 0x1f);\n    uVar18 = (ulong)local_40;\n    if (local_40 != 0) {\n      lVar9 = uVar18 * 8;\n      goto LAB_001da142;\n    }\n    if (uVar6 == 0) goto LAB_001da16d;\nLAB_001d9e70:\n    lVar10 = (ulong)uVar6 * 4;\n                    \n    lVar9 = FUN_00337280(lVar10);\n    uVar18 = 0;\n    do {\n      uVar21 = uVar18;\n      *(undefined4 *)(lVar9 + uVar21 * 4) = 0;\n      uVar18 = uVar21 + 1;\n    } while ((ulong)uVar6 != uVar21 + 1);\n                    \n    lVar10 = FUN_00337280(lVar10);\n    uVar18 = 0;\n    do {\n      *(undefined4 *)(lVar10 + uVar18 * 4) = 0;\n      bVar22 = uVar21 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n    if (uVar7 != 0) goto LAB_001d9ed4;\n  }" else (compound_statement "{\n    uVar5 = 1;\n    do {\n      local_70 = uVar5;\n      uVar8 = uVar8 >> 1;\n      uVar5 = local_70 + 1;\n    } while (uVar8 != 0);\n    if (local_70 + 1 < 3) goto LAB_001da120;\n    if ((uVar7 >> (local_70 - 1 & 0x1f) & 1) == 0) {\n      local_70 = local_70 + 3;\n      if (local_70 == 5) goto LAB_001da120;\n    }\n    else {\n      local_70 = local_70 + 4;\n    }\n    puVar12 = (undefined8 *)0x0;\n    local_6c = 1 << ((byte)local_70 & 0x1f);\n    local_40 = 1 << ((byte)local_70 - 6 & 0x1f);\n    uVar18 = (ulong)local_40;\n    if (local_40 != 0) {\n      lVar9 = uVar18 * 8;\n      goto LAB_001da142;\n    }\n    if (uVar6 == 0) goto LAB_001da16d;\nLAB_001d9e70:\n    lVar10 = (ulong)uVar6 * 4;\n                    \n    lVar9 = FUN_00337280(lVar10);\n    uVar18 = 0;\n    do {\n      uVar21 = uVar18;\n      *(undefined4 *)(lVar9 + uVar21 * 4) = 0;\n      uVar18 = uVar21 + 1;\n    } while ((ulong)uVar6 != uVar21 + 1);\n                    \n    lVar10 = FUN_00337280(lVar10);\n    uVar18 = 0;\n    do {\n      *(undefined4 *)(lVar10 + uVar18 * 4) = 0;\n      bVar22 = uVar21 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n    if (uVar7 != 0) goto LAB_001d9ed4;\n  }" { (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (do_statement "do {\n      local_70 = uVar5;\n      uVar8 = uVar8 >> 1;\n      uVar5 = local_70 + 1;\n    } while (uVar8 != 0);" do (compound_statement "{\n      local_70 = uVar5;\n      uVar8 = uVar8 >> 1;\n      uVar5 = local_70 + 1;\n    }" { (expression_statement "local_70 = uVar5;" (assignment_expression "local_70 = uVar5" identifier = identifier) ;) (expression_statement "uVar8 = uVar8 >> 1;" (assignment_expression "uVar8 = uVar8 >> 1" identifier = (binary_expression "uVar8 >> 1" identifier >> number_literal)) ;) (expression_statement "uVar5 = local_70 + 1;" (assignment_expression "uVar5 = local_70 + 1" identifier = (binary_expression "local_70 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar8 != 0)" ( (binary_expression "uVar8 != 0" identifier != number_literal) )) ;) (if_statement "if (local_70 + 1 < 3) goto LAB_001da120;" if (parenthesized_expression "(local_70 + 1 < 3)" ( (binary_expression "local_70 + 1 < 3" (binary_expression "local_70 + 1" identifier + number_literal) < number_literal) )) (goto_statement "goto LAB_001da120;" goto statement_identifier ;)) (if_statement "if ((uVar7 >> (local_70 - 1 & 0x1f) & 1) == 0) {\n      local_70 = local_70 + 3;\n      if (local_70 == 5) goto LAB_001da120;\n    }\n    else {\n      local_70 = local_70 + 4;\n    }" if (parenthesized_expression "((uVar7 >> (local_70 - 1 & 0x1f) & 1) == 0)" ( (binary_expression "(uVar7 >> (local_70 - 1 & 0x1f) & 1) == 0" (parenthesized_expression "(uVar7 >> (local_70 - 1 & 0x1f) & 1)" ( (binary_expression "uVar7 >> (local_70 - 1 & 0x1f) & 1" (binary_expression "uVar7 >> (local_70 - 1 & 0x1f)" identifier >> (parenthesized_expression "(local_70 - 1 & 0x1f)" ( (binary_expression "local_70 - 1 & 0x1f" (binary_expression "local_70 - 1" identifier - number_literal) & number_literal) ))) & number_literal) )) == number_literal) )) (compound_statement "{\n      local_70 = local_70 + 3;\n      if (local_70 == 5) goto LAB_001da120;\n    }" { (expression_statement "local_70 = local_70 + 3;" (assignment_expression "local_70 = local_70 + 3" identifier = (binary_expression "local_70 + 3" identifier + number_literal)) ;) (if_statement "if (local_70 == 5) goto LAB_001da120;" if (parenthesized_expression "(local_70 == 5)" ( (binary_expression "local_70 == 5" identifier == number_literal) )) (goto_statement "goto LAB_001da120;" goto statement_identifier ;)) }) (else_clause "else {\n      local_70 = local_70 + 4;\n    }" else (compound_statement "{\n      local_70 = local_70 + 4;\n    }" { (expression_statement "local_70 = local_70 + 4;" (assignment_expression "local_70 = local_70 + 4" identifier = (binary_expression "local_70 + 4" identifier + number_literal)) ;) }))) (expression_statement "puVar12 = (undefined8 *)0x0;" (assignment_expression "puVar12 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_6c = 1 << ((byte)local_70 & 0x1f);" (assignment_expression "local_6c = 1 << ((byte)local_70 & 0x1f)" identifier = (binary_expression "1 << ((byte)local_70 & 0x1f)" number_literal << (parenthesized_expression "((byte)local_70 & 0x1f)" ( (binary_expression "(byte)local_70 & 0x1f" (cast_expression "(byte)local_70" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "local_40 = 1 << ((byte)local_70 - 6 & 0x1f);" (assignment_expression "local_40 = 1 << ((byte)local_70 - 6 & 0x1f)" identifier = (binary_expression "1 << ((byte)local_70 - 6 & 0x1f)" number_literal << (parenthesized_expression "((byte)local_70 - 6 & 0x1f)" ( (binary_expression "(byte)local_70 - 6 & 0x1f" (binary_expression "(byte)local_70 - 6" (cast_expression "(byte)local_70" ( (type_descriptor "byte" type_identifier) ) identifier) - number_literal) & number_literal) )))) ;) (expression_statement "uVar18 = (ulong)local_40;" (assignment_expression "uVar18 = (ulong)local_40" identifier = (cast_expression "(ulong)local_40" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (local_40 != 0) {\n      lVar9 = uVar18 * 8;\n      goto LAB_001da142;\n    }" if (parenthesized_expression "(local_40 != 0)" ( (binary_expression "local_40 != 0" identifier != number_literal) )) (compound_statement "{\n      lVar9 = uVar18 * 8;\n      goto LAB_001da142;\n    }" { (expression_statement "lVar9 = uVar18 * 8;" (assignment_expression "lVar9 = uVar18 * 8" identifier = (binary_expression "uVar18 * 8" identifier * number_literal)) ;) (goto_statement "goto LAB_001da142;" goto statement_identifier ;) })) (if_statement "if (uVar6 == 0) goto LAB_001da16d;" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001da16d;" goto statement_identifier ;)) (labeled_statement "LAB_001d9e70:\n    lVar10 = (ulong)uVar6 * 4;" statement_identifier : (expression_statement "lVar10 = (ulong)uVar6 * 4;" (assignment_expression "lVar10 = (ulong)uVar6 * 4" identifier = (binary_expression "(ulong)uVar6 * 4" (cast_expression "(ulong)uVar6" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) ;)) (expression_statement "lVar9 = FUN_00337280(lVar10);" (assignment_expression "lVar9 = FUN_00337280(lVar10)" identifier = (call_expression "FUN_00337280(lVar10)" identifier (argument_list "(lVar10)" ( identifier )))) ;) (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n      uVar21 = uVar18;\n      *(undefined4 *)(lVar9 + uVar21 * 4) = 0;\n      uVar18 = uVar21 + 1;\n    } while ((ulong)uVar6 != uVar21 + 1);" do (compound_statement "{\n      uVar21 = uVar18;\n      *(undefined4 *)(lVar9 + uVar21 * 4) = 0;\n      uVar18 = uVar21 + 1;\n    }" { (expression_statement "uVar21 = uVar18;" (assignment_expression "uVar21 = uVar18" identifier = identifier) ;) (expression_statement "*(undefined4 *)(lVar9 + uVar21 * 4) = 0;" (assignment_expression "*(undefined4 *)(lVar9 + uVar21 * 4) = 0" (pointer_expression "*(undefined4 *)(lVar9 + uVar21 * 4)" * (cast_expression "(undefined4 *)(lVar9 + uVar21 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + uVar21 * 4)" ( (binary_expression "lVar9 + uVar21 * 4" identifier + (binary_expression "uVar21 * 4" identifier * number_literal)) )))) = number_literal) ;) (expression_statement "uVar18 = uVar21 + 1;" (assignment_expression "uVar18 = uVar21 + 1" identifier = (binary_expression "uVar21 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((ulong)uVar6 != uVar21 + 1)" ( (binary_expression "(ulong)uVar6 != uVar21 + 1" (cast_expression "(ulong)uVar6" ( (type_descriptor "ulong" type_identifier) ) identifier) != (binary_expression "uVar21 + 1" identifier + number_literal)) )) ;) (expression_statement "lVar10 = FUN_00337280(lVar10);" (assignment_expression "lVar10 = FUN_00337280(lVar10)" identifier = (call_expression "FUN_00337280(lVar10)" identifier (argument_list "(lVar10)" ( identifier )))) ;) (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n      *(undefined4 *)(lVar10 + uVar18 * 4) = 0;\n      bVar22 = uVar21 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);" do (compound_statement "{\n      *(undefined4 *)(lVar10 + uVar18 * 4) = 0;\n      bVar22 = uVar21 != uVar18;\n      uVar18 = uVar18 + 1;\n    }" { (expression_statement "*(undefined4 *)(lVar10 + uVar18 * 4) = 0;" (assignment_expression "*(undefined4 *)(lVar10 + uVar18 * 4) = 0" (pointer_expression "*(undefined4 *)(lVar10 + uVar18 * 4)" * (cast_expression "(undefined4 *)(lVar10 + uVar18 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + uVar18 * 4)" ( (binary_expression "lVar10 + uVar18 * 4" identifier + (binary_expression "uVar18 * 4" identifier * number_literal)) )))) = number_literal) ;) (expression_statement "bVar22 = uVar21 != uVar18;" (assignment_expression "bVar22 = uVar21 != uVar18" identifier = (binary_expression "uVar21 != uVar18" identifier != identifier)) ;) (expression_statement "uVar18 = uVar18 + 1;" (assignment_expression "uVar18 = uVar18 + 1" identifier = (binary_expression "uVar18 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (if_statement "if (uVar7 != 0) goto LAB_001d9ed4;" if (parenthesized_expression "(uVar7 != 0)" ( (binary_expression "uVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_001d9ed4;" goto statement_identifier ;)) }))) (if_statement "if (uVar6 != 0) {\n    uVar18 = 0;\n    uVar8 = param_3;\n    do {\n      *(uint *)(lVar10 + uVar18 * 4) = uVar8;\n      uVar8 = uVar8 + *(int *)(lVar9 + uVar18 * 4);\n      bVar22 = uVar6 - 1 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n  }" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar18 = 0;\n    uVar8 = param_3;\n    do {\n      *(uint *)(lVar10 + uVar18 * 4) = uVar8;\n      uVar8 = uVar8 + *(int *)(lVar9 + uVar18 * 4);\n      bVar22 = uVar6 - 1 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n  }" { (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (expression_statement "uVar8 = param_3;" (assignment_expression "uVar8 = param_3" identifier = identifier) ;) (do_statement "do {\n      *(uint *)(lVar10 + uVar18 * 4) = uVar8;\n      uVar8 = uVar8 + *(int *)(lVar9 + uVar18 * 4);\n      bVar22 = uVar6 - 1 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);" do (compound_statement "{\n      *(uint *)(lVar10 + uVar18 * 4) = uVar8;\n      uVar8 = uVar8 + *(int *)(lVar9 + uVar18 * 4);\n      bVar22 = uVar6 - 1 != uVar18;\n      uVar18 = uVar18 + 1;\n    }" { (expression_statement "*(uint *)(lVar10 + uVar18 * 4) = uVar8;" (assignment_expression "*(uint *)(lVar10 + uVar18 * 4) = uVar8" (pointer_expression "*(uint *)(lVar10 + uVar18 * 4)" * (cast_expression "(uint *)(lVar10 + uVar18 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + uVar18 * 4)" ( (binary_expression "lVar10 + uVar18 * 4" identifier + (binary_expression "uVar18 * 4" identifier * number_literal)) )))) = identifier) ;) (expression_statement "uVar8 = uVar8 + *(int *)(lVar9 + uVar18 * 4);" (assignment_expression "uVar8 = uVar8 + *(int *)(lVar9 + uVar18 * 4)" identifier = (binary_expression "uVar8 + *(int *)(lVar9 + uVar18 * 4)" identifier + (pointer_expression "*(int *)(lVar9 + uVar18 * 4)" * (cast_expression "(int *)(lVar9 + uVar18 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + uVar18 * 4)" ( (binary_expression "lVar9 + uVar18 * 4" identifier + (binary_expression "uVar18 * 4" identifier * number_literal)) )))))) ;) (expression_statement "bVar22 = uVar6 - 1 != uVar18;" (assignment_expression "bVar22 = uVar6 - 1 != uVar18" identifier = (binary_expression "uVar6 - 1 != uVar18" (binary_expression "uVar6 - 1" identifier - number_literal) != identifier)) ;) (expression_statement "uVar18 = uVar18 + 1;" (assignment_expression "uVar18 = uVar18 + 1" identifier = (binary_expression "uVar18 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) })) (labeled_statement "LAB_001d9f2b:\n                    \n  puVar11 = (uint *)thunk_FUN_00337280();" statement_identifier : (expression_statement "puVar11 = (uint *)thunk_FUN_00337280();" (assignment_expression "puVar11 = (uint *)thunk_FUN_00337280()" identifier = (cast_expression "(uint *)thunk_FUN_00337280()" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "thunk_FUN_00337280()" identifier (argument_list "()" ( ))))) ;)) (expression_statement "*puVar11 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;" (assignment_expression "*puVar11 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18" (pointer_expression "*puVar11" * identifier) = (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8" (binary_expression "uVar6 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff0000) >> 8" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00) << 8" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x18" identifier << number_literal))) ;) (expression_statement "lVar20 = (long)puVar11 + (ulong)(local_6c >> 3) + 0x10;" (assignment_expression "lVar20 = (long)puVar11 + (ulong)(local_6c >> 3) + 0x10" identifier = (binary_expression "(long)puVar11 + (ulong)(local_6c >> 3) + 0x10" (binary_expression "(long)puVar11 + (ulong)(local_6c >> 3)" (cast_expression "(long)puVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (call_expression "(ulong)(local_6c >> 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(local_6c >> 3)" ( (binary_expression "local_6c >> 3" identifier >> number_literal) )))) + number_literal)) ;) (expression_statement "puVar11[1] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n               param_3 << 0x18;" (assignment_expression "puVar11[1] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n               param_3 << 0x18" (subscript_expression "puVar11[1]" identifier [ number_literal ]) = (binary_expression "param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n               param_3 << 0x18" (binary_expression "param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8" (binary_expression "param_3 >> 0x18 | (param_3 & 0xff0000) >> 8" (binary_expression "param_3 >> 0x18" identifier >> number_literal) | (binary_expression "(param_3 & 0xff0000) >> 8" (parenthesized_expression "(param_3 & 0xff0000)" ( (binary_expression "param_3 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(param_3 & 0xff00) << 8" (parenthesized_expression "(param_3 & 0xff00)" ( (binary_expression "param_3 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "param_3 << 0x18" identifier << number_literal))) ;) (expression_statement "puVar11[2] = local_40 >> 0x18 | (local_40 & 0xff0000) >> 8 | (local_40 & 0xff00) << 8 |\n               local_40 << 0x18;" (assignment_expression "puVar11[2] = local_40 >> 0x18 | (local_40 & 0xff0000) >> 8 | (local_40 & 0xff00) << 8 |\n               local_40 << 0x18" (subscript_expression "puVar11[2]" identifier [ number_literal ]) = (binary_expression "local_40 >> 0x18 | (local_40 & 0xff0000) >> 8 | (local_40 & 0xff00) << 8 |\n               local_40 << 0x18" (binary_expression "local_40 >> 0x18 | (local_40 & 0xff0000) >> 8 | (local_40 & 0xff00) << 8" (binary_expression "local_40 >> 0x18 | (local_40 & 0xff0000) >> 8" (binary_expression "local_40 >> 0x18" identifier >> number_literal) | (binary_expression "(local_40 & 0xff0000) >> 8" (parenthesized_expression "(local_40 & 0xff0000)" ( (binary_expression "local_40 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(local_40 & 0xff00) << 8" (parenthesized_expression "(local_40 & 0xff00)" ( (binary_expression "local_40 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "local_40 << 0x18" identifier << number_literal))) ;) (expression_statement "puVar11[3] = local_70 >> 0x18 | (local_70 & 0xff0000) >> 8 | (local_70 & 0xff00) << 8 |\n               local_70 << 0x18;" (assignment_expression "puVar11[3] = local_70 >> 0x18 | (local_70 & 0xff0000) >> 8 | (local_70 & 0xff00) << 8 |\n               local_70 << 0x18" (subscript_expression "puVar11[3]" identifier [ number_literal ]) = (binary_expression "local_70 >> 0x18 | (local_70 & 0xff0000) >> 8 | (local_70 & 0xff00) << 8 |\n               local_70 << 0x18" (binary_expression "local_70 >> 0x18 | (local_70 & 0xff0000) >> 8 | (local_70 & 0xff00) << 8" (binary_expression "local_70 >> 0x18 | (local_70 & 0xff0000) >> 8" (binary_expression "local_70 >> 0x18" identifier >> number_literal) | (binary_expression "(local_70 & 0xff0000) >> 8" (parenthesized_expression "(local_70 & 0xff0000)" ( (binary_expression "local_70 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(local_70 & 0xff00) << 8" (parenthesized_expression "(local_70 & 0xff00)" ( (binary_expression "local_70 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "local_70 << 0x18" identifier << number_literal))) ;) (if_statement "if (uVar6 != 0) {\n    uVar18 = 0;\n    do {\n      uVar8 = *(uint *)(lVar9 + uVar18 * 4);\n      if (uVar8 != 0) {\n        uVar8 = *(uint *)(lVar10 + uVar18 * 4);\n        uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      }\n      *(uint *)(lVar20 + uVar18 * 4) = uVar8;\n      bVar22 = uVar6 - 1 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n    lVar20 = lVar20 + ((ulong)(uVar6 - 1) + 1) * 4;\n  }" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar18 = 0;\n    do {\n      uVar8 = *(uint *)(lVar9 + uVar18 * 4);\n      if (uVar8 != 0) {\n        uVar8 = *(uint *)(lVar10 + uVar18 * 4);\n        uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      }\n      *(uint *)(lVar20 + uVar18 * 4) = uVar8;\n      bVar22 = uVar6 - 1 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n    lVar20 = lVar20 + ((ulong)(uVar6 - 1) + 1) * 4;\n  }" { (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n      uVar8 = *(uint *)(lVar9 + uVar18 * 4);\n      if (uVar8 != 0) {\n        uVar8 = *(uint *)(lVar10 + uVar18 * 4);\n        uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      }\n      *(uint *)(lVar20 + uVar18 * 4) = uVar8;\n      bVar22 = uVar6 - 1 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);" do (compound_statement "{\n      uVar8 = *(uint *)(lVar9 + uVar18 * 4);\n      if (uVar8 != 0) {\n        uVar8 = *(uint *)(lVar10 + uVar18 * 4);\n        uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      }\n      *(uint *)(lVar20 + uVar18 * 4) = uVar8;\n      bVar22 = uVar6 - 1 != uVar18;\n      uVar18 = uVar18 + 1;\n    }" { (expression_statement "uVar8 = *(uint *)(lVar9 + uVar18 * 4);" (assignment_expression "uVar8 = *(uint *)(lVar9 + uVar18 * 4)" identifier = (pointer_expression "*(uint *)(lVar9 + uVar18 * 4)" * (cast_expression "(uint *)(lVar9 + uVar18 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + uVar18 * 4)" ( (binary_expression "lVar9 + uVar18 * 4" identifier + (binary_expression "uVar18 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (uVar8 != 0) {\n        uVar8 = *(uint *)(lVar10 + uVar18 * 4);\n        uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      }" if (parenthesized_expression "(uVar8 != 0)" ( (binary_expression "uVar8 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar8 = *(uint *)(lVar10 + uVar18 * 4);\n        uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      }" { (expression_statement "uVar8 = *(uint *)(lVar10 + uVar18 * 4);" (assignment_expression "uVar8 = *(uint *)(lVar10 + uVar18 * 4)" identifier = (pointer_expression "*(uint *)(lVar10 + uVar18 * 4)" * (cast_expression "(uint *)(lVar10 + uVar18 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + uVar18 * 4)" ( (binary_expression "lVar10 + uVar18 * 4" identifier + (binary_expression "uVar18 * 4" identifier * number_literal)) ))))) ;) (expression_statement "uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;" (assignment_expression "uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18" identifier = (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8" (binary_expression "uVar8 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar8 & 0xff0000) >> 8" (parenthesized_expression "(uVar8 & 0xff0000)" ( (binary_expression "uVar8 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar8 & 0xff00) << 8" (parenthesized_expression "(uVar8 & 0xff00)" ( (binary_expression "uVar8 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar8 << 0x18" identifier << number_literal))) ;) })) (expression_statement "*(uint *)(lVar20 + uVar18 * 4) = uVar8;" (assignment_expression "*(uint *)(lVar20 + uVar18 * 4) = uVar8" (pointer_expression "*(uint *)(lVar20 + uVar18 * 4)" * (cast_expression "(uint *)(lVar20 + uVar18 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar20 + uVar18 * 4)" ( (binary_expression "lVar20 + uVar18 * 4" identifier + (binary_expression "uVar18 * 4" identifier * number_literal)) )))) = identifier) ;) (expression_statement "bVar22 = uVar6 - 1 != uVar18;" (assignment_expression "bVar22 = uVar6 - 1 != uVar18" identifier = (binary_expression "uVar6 - 1 != uVar18" (binary_expression "uVar6 - 1" identifier - number_literal) != identifier)) ;) (expression_statement "uVar18 = uVar18 + 1;" (assignment_expression "uVar18 = uVar18 + 1" identifier = (binary_expression "uVar18 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (expression_statement "lVar20 = lVar20 + ((ulong)(uVar6 - 1) + 1) * 4;" (assignment_expression "lVar20 = lVar20 + ((ulong)(uVar6 - 1) + 1) * 4" identifier = (binary_expression "lVar20 + ((ulong)(uVar6 - 1) + 1) * 4" identifier + (binary_expression "((ulong)(uVar6 - 1) + 1) * 4" (parenthesized_expression "((ulong)(uVar6 - 1) + 1)" ( (binary_expression "(ulong)(uVar6 - 1) + 1" (call_expression "(ulong)(uVar6 - 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar6 - 1)" ( (binary_expression "uVar6 - 1" identifier - number_literal) ))) + number_literal) )) * number_literal))) ;) })) (if_statement "if (uVar7 != 0) {\n    param_1 = (long *)*param_1;\n    puVar19 = (uint *)*param_2;\n    plVar2 = param_1 + (ulong)(uVar7 - 1) + 1;\n    do {\n      uVar8 = *puVar19;\n      lVar15 = *param_1;\n      puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] =\n           puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] |\n           1L << ((byte)(uVar8 >> ((byte)local_70 & 0x1f)) & 0x3f) | 1L << ((byte)uVar8 & 0x3f);\n      lVar16 = ((ulong)uVar8 % (ulong)uVar6) * 4;\n      piVar1 = (int *)(lVar9 + lVar16);\n      iVar3 = *piVar1;\n      uVar5 = uVar8 & 0xfffffffe;\n      if (iVar3 == 1) {\n        uVar5 = uVar8 & 0xfffffffe | 1;\n      }\n      piVar17 = (int *)(lVar16 + lVar10);\n      iVar4 = *piVar17;\n      *piVar1 = iVar3 + -1;\n      *(uint *)(lVar20 + (ulong)((iVar4 - param_3) * 4)) =\n           uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n      if (iVar4 == 0) {\n                    \n                    \n        FUN_001e9890("../../gold/symtab.h",0x1a2,"set_dynsym_index");\n      }\n      *(int *)(lVar15 + 0x20) = iVar4;\n      param_1 = param_1 + 1;\n      puVar19 = puVar19 + 1;\n      *piVar17 = iVar4 + 1;\n    } while (plVar2 != param_1);\n  }" if (parenthesized_expression "(uVar7 != 0)" ( (binary_expression "uVar7 != 0" identifier != number_literal) )) (compound_statement "{\n    param_1 = (long *)*param_1;\n    puVar19 = (uint *)*param_2;\n    plVar2 = param_1 + (ulong)(uVar7 - 1) + 1;\n    do {\n      uVar8 = *puVar19;\n      lVar15 = *param_1;\n      puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] =\n           puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] |\n           1L << ((byte)(uVar8 >> ((byte)local_70 & 0x1f)) & 0x3f) | 1L << ((byte)uVar8 & 0x3f);\n      lVar16 = ((ulong)uVar8 % (ulong)uVar6) * 4;\n      piVar1 = (int *)(lVar9 + lVar16);\n      iVar3 = *piVar1;\n      uVar5 = uVar8 & 0xfffffffe;\n      if (iVar3 == 1) {\n        uVar5 = uVar8 & 0xfffffffe | 1;\n      }\n      piVar17 = (int *)(lVar16 + lVar10);\n      iVar4 = *piVar17;\n      *piVar1 = iVar3 + -1;\n      *(uint *)(lVar20 + (ulong)((iVar4 - param_3) * 4)) =\n           uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n      if (iVar4 == 0) {\n                    \n                    \n        FUN_001e9890("../../gold/symtab.h",0x1a2,"set_dynsym_index");\n      }\n      *(int *)(lVar15 + 0x20) = iVar4;\n      param_1 = param_1 + 1;\n      puVar19 = puVar19 + 1;\n      *piVar17 = iVar4 + 1;\n    } while (plVar2 != param_1);\n  }" { (expression_statement "param_1 = (long *)*param_1;" (assignment_expression "param_1 = (long *)*param_1" identifier = (cast_expression "(long *)*param_1" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "puVar19 = (uint *)*param_2;" (assignment_expression "puVar19 = (uint *)*param_2" identifier = (cast_expression "(uint *)*param_2" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (expression_statement "plVar2 = param_1 + (ulong)(uVar7 - 1) + 1;" (assignment_expression "plVar2 = param_1 + (ulong)(uVar7 - 1) + 1" identifier = (binary_expression "param_1 + (ulong)(uVar7 - 1) + 1" (binary_expression "param_1 + (ulong)(uVar7 - 1)" identifier + (call_expression "(ulong)(uVar7 - 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar7 - 1)" ( (binary_expression "uVar7 - 1" identifier - number_literal) )))) + number_literal)) ;) (do_statement "do {\n      uVar8 = *puVar19;\n      lVar15 = *param_1;\n      puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] =\n           puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] |\n           1L << ((byte)(uVar8 >> ((byte)local_70 & 0x1f)) & 0x3f) | 1L << ((byte)uVar8 & 0x3f);\n      lVar16 = ((ulong)uVar8 % (ulong)uVar6) * 4;\n      piVar1 = (int *)(lVar9 + lVar16);\n      iVar3 = *piVar1;\n      uVar5 = uVar8 & 0xfffffffe;\n      if (iVar3 == 1) {\n        uVar5 = uVar8 & 0xfffffffe | 1;\n      }\n      piVar17 = (int *)(lVar16 + lVar10);\n      iVar4 = *piVar17;\n      *piVar1 = iVar3 + -1;\n      *(uint *)(lVar20 + (ulong)((iVar4 - param_3) * 4)) =\n           uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n      if (iVar4 == 0) {\n                    \n                    \n        FUN_001e9890("../../gold/symtab.h",0x1a2,"set_dynsym_index");\n      }\n      *(int *)(lVar15 + 0x20) = iVar4;\n      param_1 = param_1 + 1;\n      puVar19 = puVar19 + 1;\n      *piVar17 = iVar4 + 1;\n    } while (plVar2 != param_1);" do (compound_statement "{\n      uVar8 = *puVar19;\n      lVar15 = *param_1;\n      puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] =\n           puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] |\n           1L << ((byte)(uVar8 >> ((byte)local_70 & 0x1f)) & 0x3f) | 1L << ((byte)uVar8 & 0x3f);\n      lVar16 = ((ulong)uVar8 % (ulong)uVar6) * 4;\n      piVar1 = (int *)(lVar9 + lVar16);\n      iVar3 = *piVar1;\n      uVar5 = uVar8 & 0xfffffffe;\n      if (iVar3 == 1) {\n        uVar5 = uVar8 & 0xfffffffe | 1;\n      }\n      piVar17 = (int *)(lVar16 + lVar10);\n      iVar4 = *piVar17;\n      *piVar1 = iVar3 + -1;\n      *(uint *)(lVar20 + (ulong)((iVar4 - param_3) * 4)) =\n           uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n      if (iVar4 == 0) {\n                    \n                    \n        FUN_001e9890("../../gold/symtab.h",0x1a2,"set_dynsym_index");\n      }\n      *(int *)(lVar15 + 0x20) = iVar4;\n      param_1 = param_1 + 1;\n      puVar19 = puVar19 + 1;\n      *piVar17 = iVar4 + 1;\n    }" { (expression_statement "uVar8 = *puVar19;" (assignment_expression "uVar8 = *puVar19" identifier = (pointer_expression "*puVar19" * identifier)) ;) (expression_statement "lVar15 = *param_1;" (assignment_expression "lVar15 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] =\n           puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] |\n           1L << ((byte)(uVar8 >> ((byte)local_70 & 0x1f)) & 0x3f) | 1L << ((byte)uVar8 & 0x3f);" (assignment_expression "puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] =\n           puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] |\n           1L << ((byte)(uVar8 >> ((byte)local_70 & 0x1f)) & 0x3f) | 1L << ((byte)uVar8 & 0x3f)" (subscript_expression "puVar12[uVar8 >> 6 & (local_6c >> 6) - 1]" identifier [ (binary_expression "uVar8 >> 6 & (local_6c >> 6) - 1" (binary_expression "uVar8 >> 6" identifier >> number_literal) & (binary_expression "(local_6c >> 6) - 1" (parenthesized_expression "(local_6c >> 6)" ( (binary_expression "local_6c >> 6" identifier >> number_literal) )) - number_literal)) ]) = (binary_expression "puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] |\n           1L << ((byte)(uVar8 >> ((byte)local_70 & 0x1f)) & 0x3f) | 1L << ((byte)uVar8 & 0x3f)" (binary_expression "puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] |\n           1L << ((byte)(uVar8 >> ((byte)local_70 & 0x1f)) & 0x3f)" (subscript_expression "puVar12[uVar8 >> 6 & (local_6c >> 6) - 1]" identifier [ (binary_expression "uVar8 >> 6 & (local_6c >> 6) - 1" (binary_expression "uVar8 >> 6" identifier >> number_literal) & (binary_expression "(local_6c >> 6) - 1" (parenthesized_expression "(local_6c >> 6)" ( (binary_expression "local_6c >> 6" identifier >> number_literal) )) - number_literal)) ]) | (binary_expression "1L << ((byte)(uVar8 >> ((byte)local_70 & 0x1f)) & 0x3f)" number_literal << (parenthesized_expression "((byte)(uVar8 >> ((byte)local_70 & 0x1f)) & 0x3f)" ( (binary_expression "(byte)(uVar8 >> ((byte)local_70 & 0x1f)) & 0x3f" (call_expression "(byte)(uVar8 >> ((byte)local_70 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar8 >> ((byte)local_70 & 0x1f))" ( (binary_expression "uVar8 >> ((byte)local_70 & 0x1f)" identifier >> (parenthesized_expression "((byte)local_70 & 0x1f)" ( (binary_expression "(byte)local_70 & 0x1f" (cast_expression "(byte)local_70" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & number_literal) )))) | (binary_expression "1L << ((byte)uVar8 & 0x3f)" number_literal << (parenthesized_expression "((byte)uVar8 & 0x3f)" ( (binary_expression "(byte)uVar8 & 0x3f" (cast_expression "(byte)uVar8" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))))) ;) (expression_statement "lVar16 = ((ulong)uVar8 % (ulong)uVar6) * 4;" (assignment_expression "lVar16 = ((ulong)uVar8 % (ulong)uVar6) * 4" identifier = (binary_expression "((ulong)uVar8 % (ulong)uVar6) * 4" (parenthesized_expression "((ulong)uVar8 % (ulong)uVar6)" ( (binary_expression "(ulong)uVar8 % (ulong)uVar6" (cast_expression "(ulong)uVar8" ( (type_descriptor "ulong" type_identifier) ) identifier) % (cast_expression "(ulong)uVar6" ( (type_descriptor "ulong" type_identifier) ) identifier)) )) * number_literal)) ;) (expression_statement "piVar1 = (int *)(lVar9 + lVar16);" (assignment_expression "piVar1 = (int *)(lVar9 + lVar16)" identifier = (cast_expression "(int *)(lVar9 + lVar16)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + lVar16)" ( (binary_expression "lVar9 + lVar16" identifier + identifier) )))) ;) (expression_statement "iVar3 = *piVar1;" (assignment_expression "iVar3 = *piVar1" identifier = (pointer_expression "*piVar1" * identifier)) ;) (expression_statement "uVar5 = uVar8 & 0xfffffffe;" (assignment_expression "uVar5 = uVar8 & 0xfffffffe" identifier = (binary_expression "uVar8 & 0xfffffffe" identifier & number_literal)) ;) (if_statement "if (iVar3 == 1) {\n        uVar5 = uVar8 & 0xfffffffe | 1;\n      }" if (parenthesized_expression "(iVar3 == 1)" ( (binary_expression "iVar3 == 1" identifier == number_literal) )) (compound_statement "{\n        uVar5 = uVar8 & 0xfffffffe | 1;\n      }" { (expression_statement "uVar5 = uVar8 & 0xfffffffe | 1;" (assignment_expression "uVar5 = uVar8 & 0xfffffffe | 1" identifier = (binary_expression "uVar8 & 0xfffffffe | 1" (binary_expression "uVar8 & 0xfffffffe" identifier & number_literal) | number_literal)) ;) })) (expression_statement "piVar17 = (int *)(lVar16 + lVar10);" (assignment_expression "piVar17 = (int *)(lVar16 + lVar10)" identifier = (cast_expression "(int *)(lVar16 + lVar10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + lVar10)" ( (binary_expression "lVar16 + lVar10" identifier + identifier) )))) ;) (expression_statement "iVar4 = *piVar17;" (assignment_expression "iVar4 = *piVar17" identifier = (pointer_expression "*piVar17" * identifier)) ;) (expression_statement "*piVar1 = iVar3 + -1;" (assignment_expression "*piVar1 = iVar3 + -1" (pointer_expression "*piVar1" * identifier) = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) (expression_statement "*(uint *)(lVar20 + (ulong)((iVar4 - param_3) * 4)) =\n           uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;" (assignment_expression "*(uint *)(lVar20 + (ulong)((iVar4 - param_3) * 4)) =\n           uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18" (pointer_expression "*(uint *)(lVar20 + (ulong)((iVar4 - param_3) * 4))" * (cast_expression "(uint *)(lVar20 + (ulong)((iVar4 - param_3) * 4))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar20 + (ulong)((iVar4 - param_3) * 4))" ( (binary_expression "lVar20 + (ulong)((iVar4 - param_3) * 4)" identifier + (call_expression "(ulong)((iVar4 - param_3) * 4)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((iVar4 - param_3) * 4)" ( (binary_expression "(iVar4 - param_3) * 4" (parenthesized_expression "(iVar4 - param_3)" ( (binary_expression "iVar4 - param_3" identifier - identifier) )) * number_literal) )))) )))) = (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18" (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8" (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8" (binary_expression "uVar5 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar5 & 0xff0000) >> 8" (parenthesized_expression "(uVar5 & 0xff0000)" ( (binary_expression "uVar5 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar5 & 0xff00) << 8" (parenthesized_expression "(uVar5 & 0xff00)" ( (binary_expression "uVar5 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar5 << 0x18" identifier << number_literal))) ;) (if_statement "if (iVar4 == 0) {\n                    \n                    \n        FUN_001e9890("../../gold/symtab.h",0x1a2,"set_dynsym_index");\n      }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n                    \n        FUN_001e9890("../../gold/symtab.h",0x1a2,"set_dynsym_index");\n      }" { (expression_statement "FUN_001e9890("../../gold/symtab.h",0x1a2,"set_dynsym_index");" (call_expression "FUN_001e9890("../../gold/symtab.h",0x1a2,"set_dynsym_index")" identifier (argument_list "("../../gold/symtab.h",0x1a2,"set_dynsym_index")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""set_dynsym_index"" " string_content ") ))) ;) })) (expression_statement "*(int *)(lVar15 + 0x20) = iVar4;" (assignment_expression "*(int *)(lVar15 + 0x20) = iVar4" (pointer_expression "*(int *)(lVar15 + 0x20)" * (cast_expression "(int *)(lVar15 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x20)" ( (binary_expression "lVar15 + 0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (expression_statement "puVar19 = puVar19 + 1;" (assignment_expression "puVar19 = puVar19 + 1" identifier = (binary_expression "puVar19 + 1" identifier + number_literal)) ;) (expression_statement "*piVar17 = iVar4 + 1;" (assignment_expression "*piVar17 = iVar4 + 1" (pointer_expression "*piVar17" * identifier) = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(plVar2 != param_1)" ( (binary_expression "plVar2 != param_1" identifier != identifier) )) ;) })) (if_statement "if (local_40 != 0) {\n    uVar18 = 0;\n    do {\n      uVar21 = puVar12[uVar18];\n      *(ulong *)(puVar11 + uVar18 * 2 + 4) =\n           uVar21 >> 0x38 | (uVar21 & 0xff000000000000) >> 0x28 | (uVar21 & 0xff0000000000) >> 0x18\n           | (uVar21 & 0xff00000000) >> 8 | (uVar21 & 0xff000000) << 8 | (uVar21 & 0xff0000) << 0x18\n           | (uVar21 & 0xff00) << 0x28 | uVar21 << 0x38;\n      bVar22 = uVar18 != local_40 - 1;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n  }" if (parenthesized_expression "(local_40 != 0)" ( (binary_expression "local_40 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar18 = 0;\n    do {\n      uVar21 = puVar12[uVar18];\n      *(ulong *)(puVar11 + uVar18 * 2 + 4) =\n           uVar21 >> 0x38 | (uVar21 & 0xff000000000000) >> 0x28 | (uVar21 & 0xff0000000000) >> 0x18\n           | (uVar21 & 0xff00000000) >> 8 | (uVar21 & 0xff000000) << 8 | (uVar21 & 0xff0000) << 0x18\n           | (uVar21 & 0xff00) << 0x28 | uVar21 << 0x38;\n      bVar22 = uVar18 != local_40 - 1;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n  }" { (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n      uVar21 = puVar12[uVar18];\n      *(ulong *)(puVar11 + uVar18 * 2 + 4) =\n           uVar21 >> 0x38 | (uVar21 & 0xff000000000000) >> 0x28 | (uVar21 & 0xff0000000000) >> 0x18\n           | (uVar21 & 0xff00000000) >> 8 | (uVar21 & 0xff000000) << 8 | (uVar21 & 0xff0000) << 0x18\n           | (uVar21 & 0xff00) << 0x28 | uVar21 << 0x38;\n      bVar22 = uVar18 != local_40 - 1;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);" do (compound_statement "{\n      uVar21 = puVar12[uVar18];\n      *(ulong *)(puVar11 + uVar18 * 2 + 4) =\n           uVar21 >> 0x38 | (uVar21 & 0xff000000000000) >> 0x28 | (uVar21 & 0xff0000000000) >> 0x18\n           | (uVar21 & 0xff00000000) >> 8 | (uVar21 & 0xff000000) << 8 | (uVar21 & 0xff0000) << 0x18\n           | (uVar21 & 0xff00) << 0x28 | uVar21 << 0x38;\n      bVar22 = uVar18 != local_40 - 1;\n      uVar18 = uVar18 + 1;\n    }" { (expression_statement "uVar21 = puVar12[uVar18];" (assignment_expression "uVar21 = puVar12[uVar18]" identifier = (subscript_expression "puVar12[uVar18]" identifier [ identifier ])) ;) (expression_statement "*(ulong *)(puVar11 + uVar18 * 2 + 4) =\n           uVar21 >> 0x38 | (uVar21 & 0xff000000000000) >> 0x28 | (uVar21 & 0xff0000000000) >> 0x18\n           | (uVar21 & 0xff00000000) >> 8 | (uVar21 & 0xff000000) << 8 | (uVar21 & 0xff0000) << 0x18\n           | (uVar21 & 0xff00) << 0x28 | uVar21 << 0x38;" (assignment_expression "*(ulong *)(puVar11 + uVar18 * 2 + 4) =\n           uVar21 >> 0x38 | (uVar21 & 0xff000000000000) >> 0x28 | (uVar21 & 0xff0000000000) >> 0x18\n           | (uVar21 & 0xff00000000) >> 8 | (uVar21 & 0xff000000) << 8 | (uVar21 & 0xff0000) << 0x18\n           | (uVar21 & 0xff00) << 0x28 | uVar21 << 0x38" (pointer_expression "*(ulong *)(puVar11 + uVar18 * 2 + 4)" * (cast_expression "(ulong *)(puVar11 + uVar18 * 2 + 4)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + uVar18 * 2 + 4)" ( (binary_expression "puVar11 + uVar18 * 2 + 4" (binary_expression "puVar11 + uVar18 * 2" identifier + (binary_expression "uVar18 * 2" identifier * number_literal)) + number_literal) )))) = (binary_expression "uVar21 >> 0x38 | (uVar21 & 0xff000000000000) >> 0x28 | (uVar21 & 0xff0000000000) >> 0x18\n           | (uVar21 & 0xff00000000) >> 8 | (uVar21 & 0xff000000) << 8 | (uVar21 & 0xff0000) << 0x18\n           | (uVar21 & 0xff00) << 0x28 | uVar21 << 0x38" (binary_expression "uVar21 >> 0x38 | (uVar21 & 0xff000000000000) >> 0x28 | (uVar21 & 0xff0000000000) >> 0x18\n           | (uVar21 & 0xff00000000) >> 8 | (uVar21 & 0xff000000) << 8 | (uVar21 & 0xff0000) << 0x18\n           | (uVar21 & 0xff00) << 0x28" (binary_expression "uVar21 >> 0x38 | (uVar21 & 0xff000000000000) >> 0x28 | (uVar21 & 0xff0000000000) >> 0x18\n           | (uVar21 & 0xff00000000) >> 8 | (uVar21 & 0xff000000) << 8 | (uVar21 & 0xff0000) << 0x18" (binary_expression "uVar21 >> 0x38 | (uVar21 & 0xff000000000000) >> 0x28 | (uVar21 & 0xff0000000000) >> 0x18\n           | (uVar21 & 0xff00000000) >> 8 | (uVar21 & 0xff000000) << 8" (binary_expression "uVar21 >> 0x38 | (uVar21 & 0xff000000000000) >> 0x28 | (uVar21 & 0xff0000000000) >> 0x18\n           | (uVar21 & 0xff00000000) >> 8" (binary_expression "uVar21 >> 0x38 | (uVar21 & 0xff000000000000) >> 0x28 | (uVar21 & 0xff0000000000) >> 0x18" (binary_expression "uVar21 >> 0x38 | (uVar21 & 0xff000000000000) >> 0x28" (binary_expression "uVar21 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar21 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar21 & 0xff000000000000)" ( (binary_expression "uVar21 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar21 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar21 & 0xff0000000000)" ( (binary_expression "uVar21 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar21 & 0xff00000000) >> 8" (parenthesized_expression "(uVar21 & 0xff00000000)" ( (binary_expression "uVar21 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar21 & 0xff000000) << 8" (parenthesized_expression "(uVar21 & 0xff000000)" ( (binary_expression "uVar21 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar21 & 0xff0000) << 0x18" (parenthesized_expression "(uVar21 & 0xff0000)" ( (binary_expression "uVar21 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar21 & 0xff00) << 0x28" (parenthesized_expression "(uVar21 & 0xff00)" ( (binary_expression "uVar21 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar21 << 0x38" identifier << number_literal))) ;) (expression_statement "bVar22 = uVar18 != local_40 - 1;" (assignment_expression "bVar22 = uVar18 != local_40 - 1" identifier = (binary_expression "uVar18 != local_40 - 1" identifier != (binary_expression "local_40 - 1" identifier - number_literal))) ;) (expression_statement "uVar18 = uVar18 + 1;" (assignment_expression "uVar18 = uVar18 + 1" identifier = (binary_expression "uVar18 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) })) (expression_statement "*param_5 = (local_6c >> 3) + (uVar6 + 4 + uVar7) * 4;" (assignment_expression "*param_5 = (local_6c >> 3) + (uVar6 + 4 + uVar7) * 4" (pointer_expression "*param_5" * identifier) = (binary_expression "(local_6c >> 3) + (uVar6 + 4 + uVar7) * 4" (parenthesized_expression "(local_6c >> 3)" ( (binary_expression "local_6c >> 3" identifier >> number_literal) )) + (binary_expression "(uVar6 + 4 + uVar7) * 4" (parenthesized_expression "(uVar6 + 4 + uVar7)" ( (binary_expression "uVar6 + 4 + uVar7" (binary_expression "uVar6 + 4" identifier + number_literal) + identifier) )) * number_literal))) ;) (expression_statement "*param_4 = puVar11;" (assignment_expression "*param_4 = puVar11" (pointer_expression "*param_4" * identifier) = identifier) ;) (if_statement "if (lVar10 != 0) {\n    FUN_00338a50(lVar10);\n  }" if (parenthesized_expression "(lVar10 != 0)" ( (binary_expression "lVar10 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_00338a50(lVar10);\n  }" { (expression_statement "FUN_00338a50(lVar10);" (call_expression "FUN_00338a50(lVar10)" identifier (argument_list "(lVar10)" ( identifier ))) ;) })) (if_statement "if (lVar9 != 0) {\n    FUN_00338a50(lVar9);\n  }" if (parenthesized_expression "(lVar9 != 0)" ( (binary_expression "lVar9 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_00338a50(lVar9);\n  }" { (expression_statement "FUN_00338a50(lVar9);" (call_expression "FUN_00338a50(lVar9)" identifier (argument_list "(lVar9)" ( identifier ))) ;) })) (if_statement "if (puVar12 == (undefined8 *)0x0) {\n    return;\n  }" if (parenthesized_expression "(puVar12 == (undefined8 *)0x0)" ( (binary_expression "puVar12 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "FUN_00338a50(puVar12);" (call_expression "FUN_00338a50(puVar12)" identifier (argument_list "(puVar12)" ( identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (pointer_expression * IDENT)) )) (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 * 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 (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - (pointer_expression * IDENT)) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + IDENT)) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) % (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) * LIT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < IDENT) )) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT >> (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & LIT) ))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression LIT << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression LIT << (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - LIT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != (binary_expression IDENT + LIT)) )) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT != IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT - LIT) != IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT - LIT) != IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) ))) + LIT) )) * LIT))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) )))) + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression (binary_expression IDENT >> LIT) & (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) - LIT)) ]) = (binary_expression (binary_expression (subscript_expression IDENT [ (binary_expression (binary_expression IDENT >> LIT) & (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) - LIT)) ]) | (binary_expression LIT << (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) ))) & LIT) )))) | (binary_expression LIT << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) % (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) * LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT & LIT) | LIT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) * LIT) )))) )))) = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ IDENT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) )))) = (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT != (binary_expression IDENT - LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) )) * LIT))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return ;) })))
(function_definition "void FUN_001d9da0(long *param_1,long *param_2,uint param_3,undefined8 *param_4,int *param_5)\n\n{\n  int *piVar1;\n  long *plVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  long lVar9;\n  long lVar10;\n  uint *puVar11;\n  undefined8 *puVar12;\n  undefined8 *puVar13;\n  undefined4 *puVar14;\n  long lVar15;\n  long lVar16;\n  int *piVar17;\n  ulong uVar18;\n  uint *puVar19;\n  long lVar20;\n  ulong uVar21;\n  bool bVar22;\n  uint local_70;\n  uint local_6c;\n  uint local_40;\n  \n  if (param_1[1] == *param_1) {\n    puVar14 = (undefined4 *)thunk_FUN_00337280(0x1c);\n    *puVar14 = 0x1000000;\n    *param_5 = 0x1c;\n    *(undefined8 *)(puVar14 + 2) = 0x1000000;\n    puVar14[1] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n                 param_3 << 0x18;\n    *(undefined8 *)(puVar14 + 4) = 0;\n    puVar14[6] = 0;\n    *param_4 = puVar14;\n    return;\n  }\n  uVar6 = FUN_001d5250(param_2,1);\n  uVar7 = (uint)(param_1[1] - *param_1 >> 3);\n  uVar8 = uVar7 >> 1;\n  if (uVar8 == 0) {\nLAB_001da120:\n    local_40 = 1;\n    lVar9 = 8;\n    uVar18 = 1;\n    local_6c = 0x40;\n    local_70 = 6;\nLAB_001da142:\n    puVar12 = (undefined8 *)FUN_00337280(lVar9);\n    puVar13 = puVar12;\n    do {\n      *puVar13 = 0;\n      puVar13 = puVar13 + 1;\n    } while (puVar13 != puVar12 + uVar18);\n    if (uVar6 != 0) goto LAB_001d9e70;\nLAB_001da16d:\n    lVar10 = 0;\n    lVar9 = 0;\n    if (uVar7 == 0) goto LAB_001d9f2b;\nLAB_001d9ed4:\n    lVar15 = 0;\n    lVar20 = *param_2;\n    do {\n      lVar16 = lVar15 * 4;\n      lVar15 = lVar15 + 1;\n      piVar1 = (int *)(lVar9 + ((ulong)*(uint *)(lVar20 + lVar16) % (ulong)uVar6) * 4);\n      *piVar1 = *piVar1 + 1;\n    } while ((uint)lVar15 < uVar7);\n  }\n  else {\n    uVar5 = 1;\n    do {\n      local_70 = uVar5;\n      uVar8 = uVar8 >> 1;\n      uVar5 = local_70 + 1;\n    } while (uVar8 != 0);\n    if (local_70 + 1 < 3) goto LAB_001da120;\n    if ((uVar7 >> (local_70 - 1 & 0x1f) & 1) == 0) {\n      local_70 = local_70 + 3;\n      if (local_70 == 5) goto LAB_001da120;\n    }\n    else {\n      local_70 = local_70 + 4;\n    }\n    puVar12 = (undefined8 *)0x0;\n    local_6c = 1 << ((byte)local_70 & 0x1f);\n    local_40 = 1 << ((byte)local_70 - 6 & 0x1f);\n    uVar18 = (ulong)local_40;\n    if (local_40 != 0) {\n      lVar9 = uVar18 * 8;\n      goto LAB_001da142;\n    }\n    if (uVar6 == 0) goto LAB_001da16d;\nLAB_001d9e70:\n    lVar10 = (ulong)uVar6 * 4;\n                    \n    lVar9 = FUN_00337280(lVar10);\n    uVar18 = 0;\n    do {\n      uVar21 = uVar18;\n      *(undefined4 *)(lVar9 + uVar21 * 4) = 0;\n      uVar18 = uVar21 + 1;\n    } while ((ulong)uVar6 != uVar21 + 1);\n                    \n    lVar10 = FUN_00337280(lVar10);\n    uVar18 = 0;\n    do {\n      *(undefined4 *)(lVar10 + uVar18 * 4) = 0;\n      bVar22 = uVar21 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n    if (uVar7 != 0) goto LAB_001d9ed4;\n  }\n  if (uVar6 != 0) {\n    uVar18 = 0;\n    uVar8 = param_3;\n    do {\n      *(uint *)(lVar10 + uVar18 * 4) = uVar8;\n      uVar8 = uVar8 + *(int *)(lVar9 + uVar18 * 4);\n      bVar22 = uVar6 - 1 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n  }\nLAB_001d9f2b:\n                    \n  puVar11 = (uint *)thunk_FUN_00337280();\n  *puVar11 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n  lVar20 = (long)puVar11 + (ulong)(local_6c >> 3) + 0x10;\n  puVar11[1] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n               param_3 << 0x18;\n  puVar11[2] = local_40 >> 0x18 | (local_40 & 0xff0000) >> 8 | (local_40 & 0xff00) << 8 |\n               local_40 << 0x18;\n  puVar11[3] = local_70 >> 0x18 | (local_70 & 0xff0000) >> 8 | (local_70 & 0xff00) << 8 |\n               local_70 << 0x18;\n  if (uVar6 != 0) {\n    uVar18 = 0;\n    do {\n      uVar8 = *(uint *)(lVar9 + uVar18 * 4);\n      if (uVar8 != 0) {\n        uVar8 = *(uint *)(lVar10 + uVar18 * 4);\n        uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      }\n      *(uint *)(lVar20 + uVar18 * 4) = uVar8;\n      bVar22 = uVar6 - 1 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n    lVar20 = lVar20 + ((ulong)(uVar6 - 1) + 1) * 4;\n  }\n  if (uVar7 != 0) {\n    param_1 = (long *)*param_1;\n    puVar19 = (uint *)*param_2;\n    plVar2 = param_1 + (ulong)(uVar7 - 1) + 1;\n    do {\n      uVar8 = *puVar19;\n      lVar15 = *param_1;\n      puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] =\n           puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] |\n           1L << ((byte)(uVar8 >> ((byte)local_70 & 0x1f)) & 0x3f) | 1L << ((byte)uVar8 & 0x3f);\n      lVar16 = ((ulong)uVar8 % (ulong)uVar6) * 4;\n      piVar1 = (int *)(lVar9 + lVar16);\n      iVar3 = *piVar1;\n      uVar5 = uVar8 & 0xfffffffe;\n      if (iVar3 == 1) {\n        uVar5 = uVar8 & 0xfffffffe | 1;\n      }\n      piVar17 = (int *)(lVar16 + lVar10);\n      iVar4 = *piVar17;\n      *piVar1 = iVar3 + -1;\n      *(uint *)(lVar20 + (ulong)((iVar4 - param_3) * 4)) =\n           uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n      if (iVar4 == 0) {\n                    \n                    \n        FUN_001e9890("../../gold/symtab.h",0x1a2,"set_dynsym_index");\n      }\n      *(int *)(lVar15 + 0x20) = iVar4;\n      param_1 = param_1 + 1;\n      puVar19 = puVar19 + 1;\n      *piVar17 = iVar4 + 1;\n    } while (plVar2 != param_1);\n  }\n  if (local_40 != 0) {\n    uVar18 = 0;\n    do {\n      uVar21 = puVar12[uVar18];\n      *(ulong *)(puVar11 + uVar18 * 2 + 4) =\n           uVar21 >> 0x38 | (uVar21 & 0xff000000000000) >> 0x28 | (uVar21 & 0xff0000000000) >> 0x18\n           | (uVar21 & 0xff00000000) >> 8 | (uVar21 & 0xff000000) << 8 | (uVar21 & 0xff0000) << 0x18\n           | (uVar21 & 0xff00) << 0x28 | uVar21 << 0x38;\n      bVar22 = uVar18 != local_40 - 1;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n  }\n  *param_5 = (local_6c >> 3) + (uVar6 + 4 + uVar7) * 4;\n  *param_4 = puVar11;\n  if (lVar10 != 0) {\n    FUN_00338a50(lVar10);\n  }\n  if (lVar9 != 0) {\n    FUN_00338a50(lVar9);\n  }\n  if (puVar12 == (undefined8 *)0x0) {\n    return;\n  }\n  FUN_00338a50(puVar12);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_001d9da0(long *param_1,long *param_2,uint param_3,undefined8 *param_4,int *param_5)" (identifier "FUN_001d9da0") (parameter_list "(long *param_1,long *param_2,uint param_3,undefined8 *param_4,int *param_5)" (( "(") (parameter_declaration "long *param_1" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "long *param_2" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "uint param_3" (type_identifier "uint") (identifier "param_3")) (, ",") (parameter_declaration "undefined8 *param_4" (type_identifier "undefined8") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "int *param_5" (primitive_type "int") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) () ")"))) (compound_statement "{\n  int *piVar1;\n  long *plVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  long lVar9;\n  long lVar10;\n  uint *puVar11;\n  undefined8 *puVar12;\n  undefined8 *puVar13;\n  undefined4 *puVar14;\n  long lVar15;\n  long lVar16;\n  int *piVar17;\n  ulong uVar18;\n  uint *puVar19;\n  long lVar20;\n  ulong uVar21;\n  bool bVar22;\n  uint local_70;\n  uint local_6c;\n  uint local_40;\n  \n  if (param_1[1] == *param_1) {\n    puVar14 = (undefined4 *)thunk_FUN_00337280(0x1c);\n    *puVar14 = 0x1000000;\n    *param_5 = 0x1c;\n    *(undefined8 *)(puVar14 + 2) = 0x1000000;\n    puVar14[1] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n                 param_3 << 0x18;\n    *(undefined8 *)(puVar14 + 4) = 0;\n    puVar14[6] = 0;\n    *param_4 = puVar14;\n    return;\n  }\n  uVar6 = FUN_001d5250(param_2,1);\n  uVar7 = (uint)(param_1[1] - *param_1 >> 3);\n  uVar8 = uVar7 >> 1;\n  if (uVar8 == 0) {\nLAB_001da120:\n    local_40 = 1;\n    lVar9 = 8;\n    uVar18 = 1;\n    local_6c = 0x40;\n    local_70 = 6;\nLAB_001da142:\n    puVar12 = (undefined8 *)FUN_00337280(lVar9);\n    puVar13 = puVar12;\n    do {\n      *puVar13 = 0;\n      puVar13 = puVar13 + 1;\n    } while (puVar13 != puVar12 + uVar18);\n    if (uVar6 != 0) goto LAB_001d9e70;\nLAB_001da16d:\n    lVar10 = 0;\n    lVar9 = 0;\n    if (uVar7 == 0) goto LAB_001d9f2b;\nLAB_001d9ed4:\n    lVar15 = 0;\n    lVar20 = *param_2;\n    do {\n      lVar16 = lVar15 * 4;\n      lVar15 = lVar15 + 1;\n      piVar1 = (int *)(lVar9 + ((ulong)*(uint *)(lVar20 + lVar16) % (ulong)uVar6) * 4);\n      *piVar1 = *piVar1 + 1;\n    } while ((uint)lVar15 < uVar7);\n  }\n  else {\n    uVar5 = 1;\n    do {\n      local_70 = uVar5;\n      uVar8 = uVar8 >> 1;\n      uVar5 = local_70 + 1;\n    } while (uVar8 != 0);\n    if (local_70 + 1 < 3) goto LAB_001da120;\n    if ((uVar7 >> (local_70 - 1 & 0x1f) & 1) == 0) {\n      local_70 = local_70 + 3;\n      if (local_70 == 5) goto LAB_001da120;\n    }\n    else {\n      local_70 = local_70 + 4;\n    }\n    puVar12 = (undefined8 *)0x0;\n    local_6c = 1 << ((byte)local_70 & 0x1f);\n    local_40 = 1 << ((byte)local_70 - 6 & 0x1f);\n    uVar18 = (ulong)local_40;\n    if (local_40 != 0) {\n      lVar9 = uVar18 * 8;\n      goto LAB_001da142;\n    }\n    if (uVar6 == 0) goto LAB_001da16d;\nLAB_001d9e70:\n    lVar10 = (ulong)uVar6 * 4;\n                    \n    lVar9 = FUN_00337280(lVar10);\n    uVar18 = 0;\n    do {\n      uVar21 = uVar18;\n      *(undefined4 *)(lVar9 + uVar21 * 4) = 0;\n      uVar18 = uVar21 + 1;\n    } while ((ulong)uVar6 != uVar21 + 1);\n                    \n    lVar10 = FUN_00337280(lVar10);\n    uVar18 = 0;\n    do {\n      *(undefined4 *)(lVar10 + uVar18 * 4) = 0;\n      bVar22 = uVar21 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n    if (uVar7 != 0) goto LAB_001d9ed4;\n  }\n  if (uVar6 != 0) {\n    uVar18 = 0;\n    uVar8 = param_3;\n    do {\n      *(uint *)(lVar10 + uVar18 * 4) = uVar8;\n      uVar8 = uVar8 + *(int *)(lVar9 + uVar18 * 4);\n      bVar22 = uVar6 - 1 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n  }\nLAB_001d9f2b:\n                    \n  puVar11 = (uint *)thunk_FUN_00337280();\n  *puVar11 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n  lVar20 = (long)puVar11 + (ulong)(local_6c >> 3) + 0x10;\n  puVar11[1] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n               param_3 << 0x18;\n  puVar11[2] = local_40 >> 0x18 | (local_40 & 0xff0000) >> 8 | (local_40 & 0xff00) << 8 |\n               local_40 << 0x18;\n  puVar11[3] = local_70 >> 0x18 | (local_70 & 0xff0000) >> 8 | (local_70 & 0xff00) << 8 |\n               local_70 << 0x18;\n  if (uVar6 != 0) {\n    uVar18 = 0;\n    do {\n      uVar8 = *(uint *)(lVar9 + uVar18 * 4);\n      if (uVar8 != 0) {\n        uVar8 = *(uint *)(lVar10 + uVar18 * 4);\n        uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      }\n      *(uint *)(lVar20 + uVar18 * 4) = uVar8;\n      bVar22 = uVar6 - 1 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n    lVar20 = lVar20 + ((ulong)(uVar6 - 1) + 1) * 4;\n  }\n  if (uVar7 != 0) {\n    param_1 = (long *)*param_1;\n    puVar19 = (uint *)*param_2;\n    plVar2 = param_1 + (ulong)(uVar7 - 1) + 1;\n    do {\n      uVar8 = *puVar19;\n      lVar15 = *param_1;\n      puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] =\n           puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] |\n           1L << ((byte)(uVar8 >> ((byte)local_70 & 0x1f)) & 0x3f) | 1L << ((byte)uVar8 & 0x3f);\n      lVar16 = ((ulong)uVar8 % (ulong)uVar6) * 4;\n      piVar1 = (int *)(lVar9 + lVar16);\n      iVar3 = *piVar1;\n      uVar5 = uVar8 & 0xfffffffe;\n      if (iVar3 == 1) {\n        uVar5 = uVar8 & 0xfffffffe | 1;\n      }\n      piVar17 = (int *)(lVar16 + lVar10);\n      iVar4 = *piVar17;\n      *piVar1 = iVar3 + -1;\n      *(uint *)(lVar20 + (ulong)((iVar4 - param_3) * 4)) =\n           uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n      if (iVar4 == 0) {\n                    \n                    \n        FUN_001e9890("../../gold/symtab.h",0x1a2,"set_dynsym_index");\n      }\n      *(int *)(lVar15 + 0x20) = iVar4;\n      param_1 = param_1 + 1;\n      puVar19 = puVar19 + 1;\n      *piVar17 = iVar4 + 1;\n    } while (plVar2 != param_1);\n  }\n  if (local_40 != 0) {\n    uVar18 = 0;\n    do {\n      uVar21 = puVar12[uVar18];\n      *(ulong *)(puVar11 + uVar18 * 2 + 4) =\n           uVar21 >> 0x38 | (uVar21 & 0xff000000000000) >> 0x28 | (uVar21 & 0xff0000000000) >> 0x18\n           | (uVar21 & 0xff00000000) >> 8 | (uVar21 & 0xff000000) << 8 | (uVar21 & 0xff0000) << 0x18\n           | (uVar21 & 0xff00) << 0x28 | uVar21 << 0x38;\n      bVar22 = uVar18 != local_40 - 1;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n  }\n  *param_5 = (local_6c >> 3) + (uVar6 + 4 + uVar7) * 4;\n  *param_4 = puVar11;\n  if (lVar10 != 0) {\n    FUN_00338a50(lVar10);\n  }\n  if (lVar9 != 0) {\n    FUN_00338a50(lVar9);\n  }\n  if (puVar12 == (undefined8 *)0x0) {\n    return;\n  }\n  FUN_00338a50(puVar12);\n  return;\n}" ({ "{") (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "long *plVar2;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar2" (* "*") (identifier "plVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "long lVar9;" (sized_type_specifier "long" (long "long")) (identifier "lVar9") (; ";")) (declaration "long lVar10;" (sized_type_specifier "long" (long "long")) (identifier "lVar10") (; ";")) (declaration "uint *puVar11;" (type_identifier "uint") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "undefined8 *puVar12;" (type_identifier "undefined8") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "undefined8 *puVar13;" (type_identifier "undefined8") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "undefined4 *puVar14;" (type_identifier "undefined4") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "long lVar15;" (sized_type_specifier "long" (long "long")) (identifier "lVar15") (; ";")) (declaration "long lVar16;" (sized_type_specifier "long" (long "long")) (identifier "lVar16") (; ";")) (declaration "int *piVar17;" (primitive_type "int") (pointer_declarator "*piVar17" (* "*") (identifier "piVar17")) (; ";")) (declaration "ulong uVar18;" (type_identifier "ulong") (identifier "uVar18") (; ";")) (declaration "uint *puVar19;" (type_identifier "uint") (pointer_declarator "*puVar19" (* "*") (identifier "puVar19")) (; ";")) (declaration "long lVar20;" (sized_type_specifier "long" (long "long")) (identifier "lVar20") (; ";")) (declaration "ulong uVar21;" (type_identifier "ulong") (identifier "uVar21") (; ";")) (declaration "bool bVar22;" (primitive_type "bool") (identifier "bVar22") (; ";")) (declaration "uint local_70;" (type_identifier "uint") (identifier "local_70") (; ";")) (declaration "uint local_6c;" (type_identifier "uint") (identifier "local_6c") (; ";")) (declaration "uint local_40;" (type_identifier "uint") (identifier "local_40") (; ";")) (if_statement "if (param_1[1] == *param_1) {\n    puVar14 = (undefined4 *)thunk_FUN_00337280(0x1c);\n    *puVar14 = 0x1000000;\n    *param_5 = 0x1c;\n    *(undefined8 *)(puVar14 + 2) = 0x1000000;\n    puVar14[1] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n                 param_3 << 0x18;\n    *(undefined8 *)(puVar14 + 4) = 0;\n    puVar14[6] = 0;\n    *param_4 = puVar14;\n    return;\n  }" (if "if") (parenthesized_expression "(param_1[1] == *param_1)" (( "(") (binary_expression "param_1[1] == *param_1" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (== "==") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) () ")")) (compound_statement "{\n    puVar14 = (undefined4 *)thunk_FUN_00337280(0x1c);\n    *puVar14 = 0x1000000;\n    *param_5 = 0x1c;\n    *(undefined8 *)(puVar14 + 2) = 0x1000000;\n    puVar14[1] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n                 param_3 << 0x18;\n    *(undefined8 *)(puVar14 + 4) = 0;\n    puVar14[6] = 0;\n    *param_4 = puVar14;\n    return;\n  }" ({ "{") (expression_statement "puVar14 = (undefined4 *)thunk_FUN_00337280(0x1c);" (assignment_expression "puVar14 = (undefined4 *)thunk_FUN_00337280(0x1c)" (identifier "puVar14") (= "=") (cast_expression "(undefined4 *)thunk_FUN_00337280(0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "thunk_FUN_00337280(0x1c)" (identifier "thunk_FUN_00337280") (argument_list "(0x1c)" (( "(") (number_literal "0x1c") () ")"))))) (; ";")) (expression_statement "*puVar14 = 0x1000000;" (assignment_expression "*puVar14 = 0x1000000" (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (= "=") (number_literal "0x1000000")) (; ";")) (expression_statement "*param_5 = 0x1c;" (assignment_expression "*param_5 = 0x1c" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (number_literal "0x1c")) (; ";")) (expression_statement "*(undefined8 *)(puVar14 + 2) = 0x1000000;" (assignment_expression "*(undefined8 *)(puVar14 + 2) = 0x1000000" (pointer_expression "*(undefined8 *)(puVar14 + 2)" (* "*") (cast_expression "(undefined8 *)(puVar14 + 2)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 2)" (( "(") (binary_expression "puVar14 + 2" (identifier "puVar14") (+ "+") (number_literal "2")) () ")")))) (= "=") (number_literal "0x1000000")) (; ";")) (expression_statement "puVar14[1] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n                 param_3 << 0x18;" (assignment_expression "puVar14[1] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n                 param_3 << 0x18" (subscript_expression "puVar14[1]" (identifier "puVar14") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n                 param_3 << 0x18" (binary_expression "param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8" (binary_expression "param_3 >> 0x18 | (param_3 & 0xff0000) >> 8" (binary_expression "param_3 >> 0x18" (identifier "param_3") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(param_3 & 0xff0000) >> 8" (parenthesized_expression "(param_3 & 0xff0000)" (( "(") (binary_expression "param_3 & 0xff0000" (identifier "param_3") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(param_3 & 0xff00) << 8" (parenthesized_expression "(param_3 & 0xff00)" (( "(") (binary_expression "param_3 & 0xff00" (identifier "param_3") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "param_3 << 0x18" (identifier "param_3") (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "*(undefined8 *)(puVar14 + 4) = 0;" (assignment_expression "*(undefined8 *)(puVar14 + 4) = 0" (pointer_expression "*(undefined8 *)(puVar14 + 4)" (* "*") (cast_expression "(undefined8 *)(puVar14 + 4)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 4)" (( "(") (binary_expression "puVar14 + 4" (identifier "puVar14") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar14[6] = 0;" (assignment_expression "puVar14[6] = 0" (subscript_expression "puVar14[6]" (identifier "puVar14") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*param_4 = puVar14;" (assignment_expression "*param_4 = puVar14" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (identifier "puVar14")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar6 = FUN_001d5250(param_2,1);" (assignment_expression "uVar6 = FUN_001d5250(param_2,1)" (identifier "uVar6") (= "=") (call_expression "FUN_001d5250(param_2,1)" (identifier "FUN_001d5250") (argument_list "(param_2,1)" (( "(") (identifier "param_2") (, ",") (number_literal "1") () ")")))) (; ";")) (expression_statement "uVar7 = (uint)(param_1[1] - *param_1 >> 3);" (assignment_expression "uVar7 = (uint)(param_1[1] - *param_1 >> 3)" (identifier "uVar7") (= "=") (call_expression "(uint)(param_1[1] - *param_1 >> 3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_1[1] - *param_1 >> 3)" (( "(") (binary_expression "param_1[1] - *param_1 >> 3" (binary_expression "param_1[1] - *param_1" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (- "-") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (>> ">>") (number_literal "3")) () ")")))) (; ";")) (expression_statement "uVar8 = uVar7 >> 1;" (assignment_expression "uVar8 = uVar7 >> 1" (identifier "uVar8") (= "=") (binary_expression "uVar7 >> 1" (identifier "uVar7") (>> ">>") (number_literal "1"))) (; ";")) (if_statement "if (uVar8 == 0) {\nLAB_001da120:\n    local_40 = 1;\n    lVar9 = 8;\n    uVar18 = 1;\n    local_6c = 0x40;\n    local_70 = 6;\nLAB_001da142:\n    puVar12 = (undefined8 *)FUN_00337280(lVar9);\n    puVar13 = puVar12;\n    do {\n      *puVar13 = 0;\n      puVar13 = puVar13 + 1;\n    } while (puVar13 != puVar12 + uVar18);\n    if (uVar6 != 0) goto LAB_001d9e70;\nLAB_001da16d:\n    lVar10 = 0;\n    lVar9 = 0;\n    if (uVar7 == 0) goto LAB_001d9f2b;\nLAB_001d9ed4:\n    lVar15 = 0;\n    lVar20 = *param_2;\n    do {\n      lVar16 = lVar15 * 4;\n      lVar15 = lVar15 + 1;\n      piVar1 = (int *)(lVar9 + ((ulong)*(uint *)(lVar20 + lVar16) % (ulong)uVar6) * 4);\n      *piVar1 = *piVar1 + 1;\n    } while ((uint)lVar15 < uVar7);\n  }\n  else {\n    uVar5 = 1;\n    do {\n      local_70 = uVar5;\n      uVar8 = uVar8 >> 1;\n      uVar5 = local_70 + 1;\n    } while (uVar8 != 0);\n    if (local_70 + 1 < 3) goto LAB_001da120;\n    if ((uVar7 >> (local_70 - 1 & 0x1f) & 1) == 0) {\n      local_70 = local_70 + 3;\n      if (local_70 == 5) goto LAB_001da120;\n    }\n    else {\n      local_70 = local_70 + 4;\n    }\n    puVar12 = (undefined8 *)0x0;\n    local_6c = 1 << ((byte)local_70 & 0x1f);\n    local_40 = 1 << ((byte)local_70 - 6 & 0x1f);\n    uVar18 = (ulong)local_40;\n    if (local_40 != 0) {\n      lVar9 = uVar18 * 8;\n      goto LAB_001da142;\n    }\n    if (uVar6 == 0) goto LAB_001da16d;\nLAB_001d9e70:\n    lVar10 = (ulong)uVar6 * 4;\n                    \n    lVar9 = FUN_00337280(lVar10);\n    uVar18 = 0;\n    do {\n      uVar21 = uVar18;\n      *(undefined4 *)(lVar9 + uVar21 * 4) = 0;\n      uVar18 = uVar21 + 1;\n    } while ((ulong)uVar6 != uVar21 + 1);\n                    \n    lVar10 = FUN_00337280(lVar10);\n    uVar18 = 0;\n    do {\n      *(undefined4 *)(lVar10 + uVar18 * 4) = 0;\n      bVar22 = uVar21 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n    if (uVar7 != 0) goto LAB_001d9ed4;\n  }" (if "if") (parenthesized_expression "(uVar8 == 0)" (( "(") (binary_expression "uVar8 == 0" (identifier "uVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_001da120:\n    local_40 = 1;\n    lVar9 = 8;\n    uVar18 = 1;\n    local_6c = 0x40;\n    local_70 = 6;\nLAB_001da142:\n    puVar12 = (undefined8 *)FUN_00337280(lVar9);\n    puVar13 = puVar12;\n    do {\n      *puVar13 = 0;\n      puVar13 = puVar13 + 1;\n    } while (puVar13 != puVar12 + uVar18);\n    if (uVar6 != 0) goto LAB_001d9e70;\nLAB_001da16d:\n    lVar10 = 0;\n    lVar9 = 0;\n    if (uVar7 == 0) goto LAB_001d9f2b;\nLAB_001d9ed4:\n    lVar15 = 0;\n    lVar20 = *param_2;\n    do {\n      lVar16 = lVar15 * 4;\n      lVar15 = lVar15 + 1;\n      piVar1 = (int *)(lVar9 + ((ulong)*(uint *)(lVar20 + lVar16) % (ulong)uVar6) * 4);\n      *piVar1 = *piVar1 + 1;\n    } while ((uint)lVar15 < uVar7);\n  }" ({ "{") (labeled_statement "LAB_001da120:\n    local_40 = 1;" (statement_identifier "LAB_001da120") (: ":") (expression_statement "local_40 = 1;" (assignment_expression "local_40 = 1" (identifier "local_40") (= "=") (number_literal "1")) (; ";"))) (expression_statement "lVar9 = 8;" (assignment_expression "lVar9 = 8" (identifier "lVar9") (= "=") (number_literal "8")) (; ";")) (expression_statement "uVar18 = 1;" (assignment_expression "uVar18 = 1" (identifier "uVar18") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_6c = 0x40;" (assignment_expression "local_6c = 0x40" (identifier "local_6c") (= "=") (number_literal "0x40")) (; ";")) (expression_statement "local_70 = 6;" (assignment_expression "local_70 = 6" (identifier "local_70") (= "=") (number_literal "6")) (; ";")) (labeled_statement "LAB_001da142:\n    puVar12 = (undefined8 *)FUN_00337280(lVar9);" (statement_identifier "LAB_001da142") (: ":") (expression_statement "puVar12 = (undefined8 *)FUN_00337280(lVar9);" (assignment_expression "puVar12 = (undefined8 *)FUN_00337280(lVar9)" (identifier "puVar12") (= "=") (cast_expression "(undefined8 *)FUN_00337280(lVar9)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00337280(lVar9)" (identifier "FUN_00337280") (argument_list "(lVar9)" (( "(") (identifier "lVar9") () ")"))))) (; ";"))) (expression_statement "puVar13 = puVar12;" (assignment_expression "puVar13 = puVar12" (identifier "puVar13") (= "=") (identifier "puVar12")) (; ";")) (do_statement "do {\n      *puVar13 = 0;\n      puVar13 = puVar13 + 1;\n    } while (puVar13 != puVar12 + uVar18);" (do "do") (compound_statement "{\n      *puVar13 = 0;\n      puVar13 = puVar13 + 1;\n    }" ({ "{") (expression_statement "*puVar13 = 0;" (assignment_expression "*puVar13 = 0" (pointer_expression "*puVar13" (* "*") (identifier "puVar13")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar13 = puVar13 + 1;" (assignment_expression "puVar13 = puVar13 + 1" (identifier "puVar13") (= "=") (binary_expression "puVar13 + 1" (identifier "puVar13") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar13 != puVar12 + uVar18)" (( "(") (binary_expression "puVar13 != puVar12 + uVar18" (identifier "puVar13") (!= "!=") (binary_expression "puVar12 + uVar18" (identifier "puVar12") (+ "+") (identifier "uVar18"))) () ")")) (; ";")) (if_statement "if (uVar6 != 0) goto LAB_001d9e70;" (if "if") (parenthesized_expression "(uVar6 != 0)" (( "(") (binary_expression "uVar6 != 0" (identifier "uVar6") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_001d9e70;" (goto "goto") (statement_identifier "LAB_001d9e70") (; ";"))) (labeled_statement "LAB_001da16d:\n    lVar10 = 0;" (statement_identifier "LAB_001da16d") (: ":") (expression_statement "lVar10 = 0;" (assignment_expression "lVar10 = 0" (identifier "lVar10") (= "=") (number_literal "0")) (; ";"))) (expression_statement "lVar9 = 0;" (assignment_expression "lVar9 = 0" (identifier "lVar9") (= "=") (number_literal "0")) (; ";")) (if_statement "if (uVar7 == 0) goto LAB_001d9f2b;" (if "if") (parenthesized_expression "(uVar7 == 0)" (( "(") (binary_expression "uVar7 == 0" (identifier "uVar7") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001d9f2b;" (goto "goto") (statement_identifier "LAB_001d9f2b") (; ";"))) (labeled_statement "LAB_001d9ed4:\n    lVar15 = 0;" (statement_identifier "LAB_001d9ed4") (: ":") (expression_statement "lVar15 = 0;" (assignment_expression "lVar15 = 0" (identifier "lVar15") (= "=") (number_literal "0")) (; ";"))) (expression_statement "lVar20 = *param_2;" (assignment_expression "lVar20 = *param_2" (identifier "lVar20") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (do_statement "do {\n      lVar16 = lVar15 * 4;\n      lVar15 = lVar15 + 1;\n      piVar1 = (int *)(lVar9 + ((ulong)*(uint *)(lVar20 + lVar16) % (ulong)uVar6) * 4);\n      *piVar1 = *piVar1 + 1;\n    } while ((uint)lVar15 < uVar7);" (do "do") (compound_statement "{\n      lVar16 = lVar15 * 4;\n      lVar15 = lVar15 + 1;\n      piVar1 = (int *)(lVar9 + ((ulong)*(uint *)(lVar20 + lVar16) % (ulong)uVar6) * 4);\n      *piVar1 = *piVar1 + 1;\n    }" ({ "{") (expression_statement "lVar16 = lVar15 * 4;" (assignment_expression "lVar16 = lVar15 * 4" (identifier "lVar16") (= "=") (binary_expression "lVar15 * 4" (identifier "lVar15") (* "*") (number_literal "4"))) (; ";")) (expression_statement "lVar15 = lVar15 + 1;" (assignment_expression "lVar15 = lVar15 + 1" (identifier "lVar15") (= "=") (binary_expression "lVar15 + 1" (identifier "lVar15") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar1 = (int *)(lVar9 + ((ulong)*(uint *)(lVar20 + lVar16) % (ulong)uVar6) * 4);" (assignment_expression "piVar1 = (int *)(lVar9 + ((ulong)*(uint *)(lVar20 + lVar16) % (ulong)uVar6) * 4)" (identifier "piVar1") (= "=") (cast_expression "(int *)(lVar9 + ((ulong)*(uint *)(lVar20 + lVar16) % (ulong)uVar6) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + ((ulong)*(uint *)(lVar20 + lVar16) % (ulong)uVar6) * 4)" (( "(") (binary_expression "lVar9 + ((ulong)*(uint *)(lVar20 + lVar16) % (ulong)uVar6) * 4" (identifier "lVar9") (+ "+") (binary_expression "((ulong)*(uint *)(lVar20 + lVar16) % (ulong)uVar6) * 4" (parenthesized_expression "((ulong)*(uint *)(lVar20 + lVar16) % (ulong)uVar6)" (( "(") (binary_expression "(ulong)*(uint *)(lVar20 + lVar16) % (ulong)uVar6" (binary_expression "(ulong)*(uint *)(lVar20 + lVar16)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (cast_expression "(uint *)(lVar20 + lVar16)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar20 + lVar16)" (( "(") (binary_expression "lVar20 + lVar16" (identifier "lVar20") (+ "+") (identifier "lVar16")) () ")")))) (% "%") (cast_expression "(ulong)uVar6" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar6"))) () ")")) (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "*piVar1 = *piVar1 + 1;" (assignment_expression "*piVar1 = *piVar1 + 1" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (= "=") (binary_expression "*piVar1 + 1" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((uint)lVar15 < uVar7)" (( "(") (binary_expression "(uint)lVar15 < uVar7" (cast_expression "(uint)lVar15" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar15")) (< "<") (identifier "uVar7")) () ")")) (; ";")) (} "}")) (else_clause "else {\n    uVar5 = 1;\n    do {\n      local_70 = uVar5;\n      uVar8 = uVar8 >> 1;\n      uVar5 = local_70 + 1;\n    } while (uVar8 != 0);\n    if (local_70 + 1 < 3) goto LAB_001da120;\n    if ((uVar7 >> (local_70 - 1 & 0x1f) & 1) == 0) {\n      local_70 = local_70 + 3;\n      if (local_70 == 5) goto LAB_001da120;\n    }\n    else {\n      local_70 = local_70 + 4;\n    }\n    puVar12 = (undefined8 *)0x0;\n    local_6c = 1 << ((byte)local_70 & 0x1f);\n    local_40 = 1 << ((byte)local_70 - 6 & 0x1f);\n    uVar18 = (ulong)local_40;\n    if (local_40 != 0) {\n      lVar9 = uVar18 * 8;\n      goto LAB_001da142;\n    }\n    if (uVar6 == 0) goto LAB_001da16d;\nLAB_001d9e70:\n    lVar10 = (ulong)uVar6 * 4;\n                    \n    lVar9 = FUN_00337280(lVar10);\n    uVar18 = 0;\n    do {\n      uVar21 = uVar18;\n      *(undefined4 *)(lVar9 + uVar21 * 4) = 0;\n      uVar18 = uVar21 + 1;\n    } while ((ulong)uVar6 != uVar21 + 1);\n                    \n    lVar10 = FUN_00337280(lVar10);\n    uVar18 = 0;\n    do {\n      *(undefined4 *)(lVar10 + uVar18 * 4) = 0;\n      bVar22 = uVar21 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n    if (uVar7 != 0) goto LAB_001d9ed4;\n  }" (else "else") (compound_statement "{\n    uVar5 = 1;\n    do {\n      local_70 = uVar5;\n      uVar8 = uVar8 >> 1;\n      uVar5 = local_70 + 1;\n    } while (uVar8 != 0);\n    if (local_70 + 1 < 3) goto LAB_001da120;\n    if ((uVar7 >> (local_70 - 1 & 0x1f) & 1) == 0) {\n      local_70 = local_70 + 3;\n      if (local_70 == 5) goto LAB_001da120;\n    }\n    else {\n      local_70 = local_70 + 4;\n    }\n    puVar12 = (undefined8 *)0x0;\n    local_6c = 1 << ((byte)local_70 & 0x1f);\n    local_40 = 1 << ((byte)local_70 - 6 & 0x1f);\n    uVar18 = (ulong)local_40;\n    if (local_40 != 0) {\n      lVar9 = uVar18 * 8;\n      goto LAB_001da142;\n    }\n    if (uVar6 == 0) goto LAB_001da16d;\nLAB_001d9e70:\n    lVar10 = (ulong)uVar6 * 4;\n                    \n    lVar9 = FUN_00337280(lVar10);\n    uVar18 = 0;\n    do {\n      uVar21 = uVar18;\n      *(undefined4 *)(lVar9 + uVar21 * 4) = 0;\n      uVar18 = uVar21 + 1;\n    } while ((ulong)uVar6 != uVar21 + 1);\n                    \n    lVar10 = FUN_00337280(lVar10);\n    uVar18 = 0;\n    do {\n      *(undefined4 *)(lVar10 + uVar18 * 4) = 0;\n      bVar22 = uVar21 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n    if (uVar7 != 0) goto LAB_001d9ed4;\n  }" ({ "{") (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" (identifier "uVar5") (= "=") (number_literal "1")) (; ";")) (do_statement "do {\n      local_70 = uVar5;\n      uVar8 = uVar8 >> 1;\n      uVar5 = local_70 + 1;\n    } while (uVar8 != 0);" (do "do") (compound_statement "{\n      local_70 = uVar5;\n      uVar8 = uVar8 >> 1;\n      uVar5 = local_70 + 1;\n    }" ({ "{") (expression_statement "local_70 = uVar5;" (assignment_expression "local_70 = uVar5" (identifier "local_70") (= "=") (identifier "uVar5")) (; ";")) (expression_statement "uVar8 = uVar8 >> 1;" (assignment_expression "uVar8 = uVar8 >> 1" (identifier "uVar8") (= "=") (binary_expression "uVar8 >> 1" (identifier "uVar8") (>> ">>") (number_literal "1"))) (; ";")) (expression_statement "uVar5 = local_70 + 1;" (assignment_expression "uVar5 = local_70 + 1" (identifier "uVar5") (= "=") (binary_expression "local_70 + 1" (identifier "local_70") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar8 != 0)" (( "(") (binary_expression "uVar8 != 0" (identifier "uVar8") (!= "!=") (number_literal "0")) () ")")) (; ";")) (if_statement "if (local_70 + 1 < 3) goto LAB_001da120;" (if "if") (parenthesized_expression "(local_70 + 1 < 3)" (( "(") (binary_expression "local_70 + 1 < 3" (binary_expression "local_70 + 1" (identifier "local_70") (+ "+") (number_literal "1")) (< "<") (number_literal "3")) () ")")) (goto_statement "goto LAB_001da120;" (goto "goto") (statement_identifier "LAB_001da120") (; ";"))) (if_statement "if ((uVar7 >> (local_70 - 1 & 0x1f) & 1) == 0) {\n      local_70 = local_70 + 3;\n      if (local_70 == 5) goto LAB_001da120;\n    }\n    else {\n      local_70 = local_70 + 4;\n    }" (if "if") (parenthesized_expression "((uVar7 >> (local_70 - 1 & 0x1f) & 1) == 0)" (( "(") (binary_expression "(uVar7 >> (local_70 - 1 & 0x1f) & 1) == 0" (parenthesized_expression "(uVar7 >> (local_70 - 1 & 0x1f) & 1)" (( "(") (binary_expression "uVar7 >> (local_70 - 1 & 0x1f) & 1" (binary_expression "uVar7 >> (local_70 - 1 & 0x1f)" (identifier "uVar7") (>> ">>") (parenthesized_expression "(local_70 - 1 & 0x1f)" (( "(") (binary_expression "local_70 - 1 & 0x1f" (binary_expression "local_70 - 1" (identifier "local_70") (- "-") (number_literal "1")) (& "&") (number_literal "0x1f")) () ")"))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      local_70 = local_70 + 3;\n      if (local_70 == 5) goto LAB_001da120;\n    }" ({ "{") (expression_statement "local_70 = local_70 + 3;" (assignment_expression "local_70 = local_70 + 3" (identifier "local_70") (= "=") (binary_expression "local_70 + 3" (identifier "local_70") (+ "+") (number_literal "3"))) (; ";")) (if_statement "if (local_70 == 5) goto LAB_001da120;" (if "if") (parenthesized_expression "(local_70 == 5)" (( "(") (binary_expression "local_70 == 5" (identifier "local_70") (== "==") (number_literal "5")) () ")")) (goto_statement "goto LAB_001da120;" (goto "goto") (statement_identifier "LAB_001da120") (; ";"))) (} "}")) (else_clause "else {\n      local_70 = local_70 + 4;\n    }" (else "else") (compound_statement "{\n      local_70 = local_70 + 4;\n    }" ({ "{") (expression_statement "local_70 = local_70 + 4;" (assignment_expression "local_70 = local_70 + 4" (identifier "local_70") (= "=") (binary_expression "local_70 + 4" (identifier "local_70") (+ "+") (number_literal "4"))) (; ";")) (} "}")))) (expression_statement "puVar12 = (undefined8 *)0x0;" (assignment_expression "puVar12 = (undefined8 *)0x0" (identifier "puVar12") (= "=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_6c = 1 << ((byte)local_70 & 0x1f);" (assignment_expression "local_6c = 1 << ((byte)local_70 & 0x1f)" (identifier "local_6c") (= "=") (binary_expression "1 << ((byte)local_70 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "((byte)local_70 & 0x1f)" (( "(") (binary_expression "(byte)local_70 & 0x1f" (cast_expression "(byte)local_70" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_70")) (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "local_40 = 1 << ((byte)local_70 - 6 & 0x1f);" (assignment_expression "local_40 = 1 << ((byte)local_70 - 6 & 0x1f)" (identifier "local_40") (= "=") (binary_expression "1 << ((byte)local_70 - 6 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "((byte)local_70 - 6 & 0x1f)" (( "(") (binary_expression "(byte)local_70 - 6 & 0x1f" (binary_expression "(byte)local_70 - 6" (cast_expression "(byte)local_70" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_70")) (- "-") (number_literal "6")) (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "uVar18 = (ulong)local_40;" (assignment_expression "uVar18 = (ulong)local_40" (identifier "uVar18") (= "=") (cast_expression "(ulong)local_40" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_40"))) (; ";")) (if_statement "if (local_40 != 0) {\n      lVar9 = uVar18 * 8;\n      goto LAB_001da142;\n    }" (if "if") (parenthesized_expression "(local_40 != 0)" (( "(") (binary_expression "local_40 != 0" (identifier "local_40") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      lVar9 = uVar18 * 8;\n      goto LAB_001da142;\n    }" ({ "{") (expression_statement "lVar9 = uVar18 * 8;" (assignment_expression "lVar9 = uVar18 * 8" (identifier "lVar9") (= "=") (binary_expression "uVar18 * 8" (identifier "uVar18") (* "*") (number_literal "8"))) (; ";")) (goto_statement "goto LAB_001da142;" (goto "goto") (statement_identifier "LAB_001da142") (; ";")) (} "}"))) (if_statement "if (uVar6 == 0) goto LAB_001da16d;" (if "if") (parenthesized_expression "(uVar6 == 0)" (( "(") (binary_expression "uVar6 == 0" (identifier "uVar6") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001da16d;" (goto "goto") (statement_identifier "LAB_001da16d") (; ";"))) (labeled_statement "LAB_001d9e70:\n    lVar10 = (ulong)uVar6 * 4;" (statement_identifier "LAB_001d9e70") (: ":") (expression_statement "lVar10 = (ulong)uVar6 * 4;" (assignment_expression "lVar10 = (ulong)uVar6 * 4" (identifier "lVar10") (= "=") (binary_expression "(ulong)uVar6 * 4" (cast_expression "(ulong)uVar6" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar6")) (* "*") (number_literal "4"))) (; ";"))) (expression_statement "lVar9 = FUN_00337280(lVar10);" (assignment_expression "lVar9 = FUN_00337280(lVar10)" (identifier "lVar9") (= "=") (call_expression "FUN_00337280(lVar10)" (identifier "FUN_00337280") (argument_list "(lVar10)" (( "(") (identifier "lVar10") () ")")))) (; ";")) (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" (identifier "uVar18") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      uVar21 = uVar18;\n      *(undefined4 *)(lVar9 + uVar21 * 4) = 0;\n      uVar18 = uVar21 + 1;\n    } while ((ulong)uVar6 != uVar21 + 1);" (do "do") (compound_statement "{\n      uVar21 = uVar18;\n      *(undefined4 *)(lVar9 + uVar21 * 4) = 0;\n      uVar18 = uVar21 + 1;\n    }" ({ "{") (expression_statement "uVar21 = uVar18;" (assignment_expression "uVar21 = uVar18" (identifier "uVar21") (= "=") (identifier "uVar18")) (; ";")) (expression_statement "*(undefined4 *)(lVar9 + uVar21 * 4) = 0;" (assignment_expression "*(undefined4 *)(lVar9 + uVar21 * 4) = 0" (pointer_expression "*(undefined4 *)(lVar9 + uVar21 * 4)" (* "*") (cast_expression "(undefined4 *)(lVar9 + uVar21 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + uVar21 * 4)" (( "(") (binary_expression "lVar9 + uVar21 * 4" (identifier "lVar9") (+ "+") (binary_expression "uVar21 * 4" (identifier "uVar21") (* "*") (number_literal "4"))) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar18 = uVar21 + 1;" (assignment_expression "uVar18 = uVar21 + 1" (identifier "uVar18") (= "=") (binary_expression "uVar21 + 1" (identifier "uVar21") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((ulong)uVar6 != uVar21 + 1)" (( "(") (binary_expression "(ulong)uVar6 != uVar21 + 1" (cast_expression "(ulong)uVar6" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar6")) (!= "!=") (binary_expression "uVar21 + 1" (identifier "uVar21") (+ "+") (number_literal "1"))) () ")")) (; ";")) (expression_statement "lVar10 = FUN_00337280(lVar10);" (assignment_expression "lVar10 = FUN_00337280(lVar10)" (identifier "lVar10") (= "=") (call_expression "FUN_00337280(lVar10)" (identifier "FUN_00337280") (argument_list "(lVar10)" (( "(") (identifier "lVar10") () ")")))) (; ";")) (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" (identifier "uVar18") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      *(undefined4 *)(lVar10 + uVar18 * 4) = 0;\n      bVar22 = uVar21 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);" (do "do") (compound_statement "{\n      *(undefined4 *)(lVar10 + uVar18 * 4) = 0;\n      bVar22 = uVar21 != uVar18;\n      uVar18 = uVar18 + 1;\n    }" ({ "{") (expression_statement "*(undefined4 *)(lVar10 + uVar18 * 4) = 0;" (assignment_expression "*(undefined4 *)(lVar10 + uVar18 * 4) = 0" (pointer_expression "*(undefined4 *)(lVar10 + uVar18 * 4)" (* "*") (cast_expression "(undefined4 *)(lVar10 + uVar18 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + uVar18 * 4)" (( "(") (binary_expression "lVar10 + uVar18 * 4" (identifier "lVar10") (+ "+") (binary_expression "uVar18 * 4" (identifier "uVar18") (* "*") (number_literal "4"))) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar22 = uVar21 != uVar18;" (assignment_expression "bVar22 = uVar21 != uVar18" (identifier "bVar22") (= "=") (binary_expression "uVar21 != uVar18" (identifier "uVar21") (!= "!=") (identifier "uVar18"))) (; ";")) (expression_statement "uVar18 = uVar18 + 1;" (assignment_expression "uVar18 = uVar18 + 1" (identifier "uVar18") (= "=") (binary_expression "uVar18 + 1" (identifier "uVar18") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar22)" (( "(") (identifier "bVar22") () ")")) (; ";")) (if_statement "if (uVar7 != 0) goto LAB_001d9ed4;" (if "if") (parenthesized_expression "(uVar7 != 0)" (( "(") (binary_expression "uVar7 != 0" (identifier "uVar7") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_001d9ed4;" (goto "goto") (statement_identifier "LAB_001d9ed4") (; ";"))) (} "}")))) (if_statement "if (uVar6 != 0) {\n    uVar18 = 0;\n    uVar8 = param_3;\n    do {\n      *(uint *)(lVar10 + uVar18 * 4) = uVar8;\n      uVar8 = uVar8 + *(int *)(lVar9 + uVar18 * 4);\n      bVar22 = uVar6 - 1 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n  }" (if "if") (parenthesized_expression "(uVar6 != 0)" (( "(") (binary_expression "uVar6 != 0" (identifier "uVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar18 = 0;\n    uVar8 = param_3;\n    do {\n      *(uint *)(lVar10 + uVar18 * 4) = uVar8;\n      uVar8 = uVar8 + *(int *)(lVar9 + uVar18 * 4);\n      bVar22 = uVar6 - 1 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n  }" ({ "{") (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" (identifier "uVar18") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar8 = param_3;" (assignment_expression "uVar8 = param_3" (identifier "uVar8") (= "=") (identifier "param_3")) (; ";")) (do_statement "do {\n      *(uint *)(lVar10 + uVar18 * 4) = uVar8;\n      uVar8 = uVar8 + *(int *)(lVar9 + uVar18 * 4);\n      bVar22 = uVar6 - 1 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);" (do "do") (compound_statement "{\n      *(uint *)(lVar10 + uVar18 * 4) = uVar8;\n      uVar8 = uVar8 + *(int *)(lVar9 + uVar18 * 4);\n      bVar22 = uVar6 - 1 != uVar18;\n      uVar18 = uVar18 + 1;\n    }" ({ "{") (expression_statement "*(uint *)(lVar10 + uVar18 * 4) = uVar8;" (assignment_expression "*(uint *)(lVar10 + uVar18 * 4) = uVar8" (pointer_expression "*(uint *)(lVar10 + uVar18 * 4)" (* "*") (cast_expression "(uint *)(lVar10 + uVar18 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + uVar18 * 4)" (( "(") (binary_expression "lVar10 + uVar18 * 4" (identifier "lVar10") (+ "+") (binary_expression "uVar18 * 4" (identifier "uVar18") (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "uVar8 = uVar8 + *(int *)(lVar9 + uVar18 * 4);" (assignment_expression "uVar8 = uVar8 + *(int *)(lVar9 + uVar18 * 4)" (identifier "uVar8") (= "=") (binary_expression "uVar8 + *(int *)(lVar9 + uVar18 * 4)" (identifier "uVar8") (+ "+") (pointer_expression "*(int *)(lVar9 + uVar18 * 4)" (* "*") (cast_expression "(int *)(lVar9 + uVar18 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + uVar18 * 4)" (( "(") (binary_expression "lVar9 + uVar18 * 4" (identifier "lVar9") (+ "+") (binary_expression "uVar18 * 4" (identifier "uVar18") (* "*") (number_literal "4"))) () ")")))))) (; ";")) (expression_statement "bVar22 = uVar6 - 1 != uVar18;" (assignment_expression "bVar22 = uVar6 - 1 != uVar18" (identifier "bVar22") (= "=") (binary_expression "uVar6 - 1 != uVar18" (binary_expression "uVar6 - 1" (identifier "uVar6") (- "-") (number_literal "1")) (!= "!=") (identifier "uVar18"))) (; ";")) (expression_statement "uVar18 = uVar18 + 1;" (assignment_expression "uVar18 = uVar18 + 1" (identifier "uVar18") (= "=") (binary_expression "uVar18 + 1" (identifier "uVar18") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar22)" (( "(") (identifier "bVar22") () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_001d9f2b:\n                    \n  puVar11 = (uint *)thunk_FUN_00337280();" (statement_identifier "LAB_001d9f2b") (: ":") (expression_statement "puVar11 = (uint *)thunk_FUN_00337280();" (assignment_expression "puVar11 = (uint *)thunk_FUN_00337280()" (identifier "puVar11") (= "=") (cast_expression "(uint *)thunk_FUN_00337280()" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "thunk_FUN_00337280()" (identifier "thunk_FUN_00337280") (argument_list "()" (( "(") () ")"))))) (; ";"))) (expression_statement "*puVar11 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;" (assignment_expression "*puVar11 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18" (pointer_expression "*puVar11" (* "*") (identifier "puVar11")) (= "=") (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8" (binary_expression "uVar6 >> 0x18" (identifier "uVar6") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar6 & 0xff0000) >> 8" (parenthesized_expression "(uVar6 & 0xff0000)" (( "(") (binary_expression "uVar6 & 0xff0000" (identifier "uVar6") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar6 & 0xff00) << 8" (parenthesized_expression "(uVar6 & 0xff00)" (( "(") (binary_expression "uVar6 & 0xff00" (identifier "uVar6") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar6 << 0x18" (identifier "uVar6") (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "lVar20 = (long)puVar11 + (ulong)(local_6c >> 3) + 0x10;" (assignment_expression "lVar20 = (long)puVar11 + (ulong)(local_6c >> 3) + 0x10" (identifier "lVar20") (= "=") (binary_expression "(long)puVar11 + (ulong)(local_6c >> 3) + 0x10" (binary_expression "(long)puVar11 + (ulong)(local_6c >> 3)" (cast_expression "(long)puVar11" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar11")) (+ "+") (call_expression "(ulong)(local_6c >> 3)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(local_6c >> 3)" (( "(") (binary_expression "local_6c >> 3" (identifier "local_6c") (>> ">>") (number_literal "3")) () ")")))) (+ "+") (number_literal "0x10"))) (; ";")) (expression_statement "puVar11[1] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n               param_3 << 0x18;" (assignment_expression "puVar11[1] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n               param_3 << 0x18" (subscript_expression "puVar11[1]" (identifier "puVar11") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |\n               param_3 << 0x18" (binary_expression "param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8" (binary_expression "param_3 >> 0x18 | (param_3 & 0xff0000) >> 8" (binary_expression "param_3 >> 0x18" (identifier "param_3") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(param_3 & 0xff0000) >> 8" (parenthesized_expression "(param_3 & 0xff0000)" (( "(") (binary_expression "param_3 & 0xff0000" (identifier "param_3") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(param_3 & 0xff00) << 8" (parenthesized_expression "(param_3 & 0xff00)" (( "(") (binary_expression "param_3 & 0xff00" (identifier "param_3") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "param_3 << 0x18" (identifier "param_3") (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "puVar11[2] = local_40 >> 0x18 | (local_40 & 0xff0000) >> 8 | (local_40 & 0xff00) << 8 |\n               local_40 << 0x18;" (assignment_expression "puVar11[2] = local_40 >> 0x18 | (local_40 & 0xff0000) >> 8 | (local_40 & 0xff00) << 8 |\n               local_40 << 0x18" (subscript_expression "puVar11[2]" (identifier "puVar11") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "local_40 >> 0x18 | (local_40 & 0xff0000) >> 8 | (local_40 & 0xff00) << 8 |\n               local_40 << 0x18" (binary_expression "local_40 >> 0x18 | (local_40 & 0xff0000) >> 8 | (local_40 & 0xff00) << 8" (binary_expression "local_40 >> 0x18 | (local_40 & 0xff0000) >> 8" (binary_expression "local_40 >> 0x18" (identifier "local_40") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(local_40 & 0xff0000) >> 8" (parenthesized_expression "(local_40 & 0xff0000)" (( "(") (binary_expression "local_40 & 0xff0000" (identifier "local_40") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(local_40 & 0xff00) << 8" (parenthesized_expression "(local_40 & 0xff00)" (( "(") (binary_expression "local_40 & 0xff00" (identifier "local_40") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "local_40 << 0x18" (identifier "local_40") (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "puVar11[3] = local_70 >> 0x18 | (local_70 & 0xff0000) >> 8 | (local_70 & 0xff00) << 8 |\n               local_70 << 0x18;" (assignment_expression "puVar11[3] = local_70 >> 0x18 | (local_70 & 0xff0000) >> 8 | (local_70 & 0xff00) << 8 |\n               local_70 << 0x18" (subscript_expression "puVar11[3]" (identifier "puVar11") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "local_70 >> 0x18 | (local_70 & 0xff0000) >> 8 | (local_70 & 0xff00) << 8 |\n               local_70 << 0x18" (binary_expression "local_70 >> 0x18 | (local_70 & 0xff0000) >> 8 | (local_70 & 0xff00) << 8" (binary_expression "local_70 >> 0x18 | (local_70 & 0xff0000) >> 8" (binary_expression "local_70 >> 0x18" (identifier "local_70") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(local_70 & 0xff0000) >> 8" (parenthesized_expression "(local_70 & 0xff0000)" (( "(") (binary_expression "local_70 & 0xff0000" (identifier "local_70") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(local_70 & 0xff00) << 8" (parenthesized_expression "(local_70 & 0xff00)" (( "(") (binary_expression "local_70 & 0xff00" (identifier "local_70") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "local_70 << 0x18" (identifier "local_70") (<< "<<") (number_literal "0x18")))) (; ";")) (if_statement "if (uVar6 != 0) {\n    uVar18 = 0;\n    do {\n      uVar8 = *(uint *)(lVar9 + uVar18 * 4);\n      if (uVar8 != 0) {\n        uVar8 = *(uint *)(lVar10 + uVar18 * 4);\n        uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      }\n      *(uint *)(lVar20 + uVar18 * 4) = uVar8;\n      bVar22 = uVar6 - 1 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n    lVar20 = lVar20 + ((ulong)(uVar6 - 1) + 1) * 4;\n  }" (if "if") (parenthesized_expression "(uVar6 != 0)" (( "(") (binary_expression "uVar6 != 0" (identifier "uVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar18 = 0;\n    do {\n      uVar8 = *(uint *)(lVar9 + uVar18 * 4);\n      if (uVar8 != 0) {\n        uVar8 = *(uint *)(lVar10 + uVar18 * 4);\n        uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      }\n      *(uint *)(lVar20 + uVar18 * 4) = uVar8;\n      bVar22 = uVar6 - 1 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n    lVar20 = lVar20 + ((ulong)(uVar6 - 1) + 1) * 4;\n  }" ({ "{") (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" (identifier "uVar18") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      uVar8 = *(uint *)(lVar9 + uVar18 * 4);\n      if (uVar8 != 0) {\n        uVar8 = *(uint *)(lVar10 + uVar18 * 4);\n        uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      }\n      *(uint *)(lVar20 + uVar18 * 4) = uVar8;\n      bVar22 = uVar6 - 1 != uVar18;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);" (do "do") (compound_statement "{\n      uVar8 = *(uint *)(lVar9 + uVar18 * 4);\n      if (uVar8 != 0) {\n        uVar8 = *(uint *)(lVar10 + uVar18 * 4);\n        uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      }\n      *(uint *)(lVar20 + uVar18 * 4) = uVar8;\n      bVar22 = uVar6 - 1 != uVar18;\n      uVar18 = uVar18 + 1;\n    }" ({ "{") (expression_statement "uVar8 = *(uint *)(lVar9 + uVar18 * 4);" (assignment_expression "uVar8 = *(uint *)(lVar9 + uVar18 * 4)" (identifier "uVar8") (= "=") (pointer_expression "*(uint *)(lVar9 + uVar18 * 4)" (* "*") (cast_expression "(uint *)(lVar9 + uVar18 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + uVar18 * 4)" (( "(") (binary_expression "lVar9 + uVar18 * 4" (identifier "lVar9") (+ "+") (binary_expression "uVar18 * 4" (identifier "uVar18") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (uVar8 != 0) {\n        uVar8 = *(uint *)(lVar10 + uVar18 * 4);\n        uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      }" (if "if") (parenthesized_expression "(uVar8 != 0)" (( "(") (binary_expression "uVar8 != 0" (identifier "uVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar8 = *(uint *)(lVar10 + uVar18 * 4);\n        uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n      }" ({ "{") (expression_statement "uVar8 = *(uint *)(lVar10 + uVar18 * 4);" (assignment_expression "uVar8 = *(uint *)(lVar10 + uVar18 * 4)" (identifier "uVar8") (= "=") (pointer_expression "*(uint *)(lVar10 + uVar18 * 4)" (* "*") (cast_expression "(uint *)(lVar10 + uVar18 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + uVar18 * 4)" (( "(") (binary_expression "lVar10 + uVar18 * 4" (identifier "lVar10") (+ "+") (binary_expression "uVar18 * 4" (identifier "uVar18") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;" (assignment_expression "uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18" (identifier "uVar8") (= "=") (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8" (binary_expression "uVar8 >> 0x18" (identifier "uVar8") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar8 & 0xff0000) >> 8" (parenthesized_expression "(uVar8 & 0xff0000)" (( "(") (binary_expression "uVar8 & 0xff0000" (identifier "uVar8") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar8 & 0xff00) << 8" (parenthesized_expression "(uVar8 & 0xff00)" (( "(") (binary_expression "uVar8 & 0xff00" (identifier "uVar8") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar8 << 0x18" (identifier "uVar8") (<< "<<") (number_literal "0x18")))) (; ";")) (} "}"))) (expression_statement "*(uint *)(lVar20 + uVar18 * 4) = uVar8;" (assignment_expression "*(uint *)(lVar20 + uVar18 * 4) = uVar8" (pointer_expression "*(uint *)(lVar20 + uVar18 * 4)" (* "*") (cast_expression "(uint *)(lVar20 + uVar18 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar20 + uVar18 * 4)" (( "(") (binary_expression "lVar20 + uVar18 * 4" (identifier "lVar20") (+ "+") (binary_expression "uVar18 * 4" (identifier "uVar18") (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "bVar22 = uVar6 - 1 != uVar18;" (assignment_expression "bVar22 = uVar6 - 1 != uVar18" (identifier "bVar22") (= "=") (binary_expression "uVar6 - 1 != uVar18" (binary_expression "uVar6 - 1" (identifier "uVar6") (- "-") (number_literal "1")) (!= "!=") (identifier "uVar18"))) (; ";")) (expression_statement "uVar18 = uVar18 + 1;" (assignment_expression "uVar18 = uVar18 + 1" (identifier "uVar18") (= "=") (binary_expression "uVar18 + 1" (identifier "uVar18") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar22)" (( "(") (identifier "bVar22") () ")")) (; ";")) (expression_statement "lVar20 = lVar20 + ((ulong)(uVar6 - 1) + 1) * 4;" (assignment_expression "lVar20 = lVar20 + ((ulong)(uVar6 - 1) + 1) * 4" (identifier "lVar20") (= "=") (binary_expression "lVar20 + ((ulong)(uVar6 - 1) + 1) * 4" (identifier "lVar20") (+ "+") (binary_expression "((ulong)(uVar6 - 1) + 1) * 4" (parenthesized_expression "((ulong)(uVar6 - 1) + 1)" (( "(") (binary_expression "(ulong)(uVar6 - 1) + 1" (call_expression "(ulong)(uVar6 - 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar6 - 1)" (( "(") (binary_expression "uVar6 - 1" (identifier "uVar6") (- "-") (number_literal "1")) () ")"))) (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "4")))) (; ";")) (} "}"))) (if_statement "if (uVar7 != 0) {\n    param_1 = (long *)*param_1;\n    puVar19 = (uint *)*param_2;\n    plVar2 = param_1 + (ulong)(uVar7 - 1) + 1;\n    do {\n      uVar8 = *puVar19;\n      lVar15 = *param_1;\n      puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] =\n           puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] |\n           1L << ((byte)(uVar8 >> ((byte)local_70 & 0x1f)) & 0x3f) | 1L << ((byte)uVar8 & 0x3f);\n      lVar16 = ((ulong)uVar8 % (ulong)uVar6) * 4;\n      piVar1 = (int *)(lVar9 + lVar16);\n      iVar3 = *piVar1;\n      uVar5 = uVar8 & 0xfffffffe;\n      if (iVar3 == 1) {\n        uVar5 = uVar8 & 0xfffffffe | 1;\n      }\n      piVar17 = (int *)(lVar16 + lVar10);\n      iVar4 = *piVar17;\n      *piVar1 = iVar3 + -1;\n      *(uint *)(lVar20 + (ulong)((iVar4 - param_3) * 4)) =\n           uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n      if (iVar4 == 0) {\n                    \n                    \n        FUN_001e9890("../../gold/symtab.h",0x1a2,"set_dynsym_index");\n      }\n      *(int *)(lVar15 + 0x20) = iVar4;\n      param_1 = param_1 + 1;\n      puVar19 = puVar19 + 1;\n      *piVar17 = iVar4 + 1;\n    } while (plVar2 != param_1);\n  }" (if "if") (parenthesized_expression "(uVar7 != 0)" (( "(") (binary_expression "uVar7 != 0" (identifier "uVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    param_1 = (long *)*param_1;\n    puVar19 = (uint *)*param_2;\n    plVar2 = param_1 + (ulong)(uVar7 - 1) + 1;\n    do {\n      uVar8 = *puVar19;\n      lVar15 = *param_1;\n      puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] =\n           puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] |\n           1L << ((byte)(uVar8 >> ((byte)local_70 & 0x1f)) & 0x3f) | 1L << ((byte)uVar8 & 0x3f);\n      lVar16 = ((ulong)uVar8 % (ulong)uVar6) * 4;\n      piVar1 = (int *)(lVar9 + lVar16);\n      iVar3 = *piVar1;\n      uVar5 = uVar8 & 0xfffffffe;\n      if (iVar3 == 1) {\n        uVar5 = uVar8 & 0xfffffffe | 1;\n      }\n      piVar17 = (int *)(lVar16 + lVar10);\n      iVar4 = *piVar17;\n      *piVar1 = iVar3 + -1;\n      *(uint *)(lVar20 + (ulong)((iVar4 - param_3) * 4)) =\n           uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n      if (iVar4 == 0) {\n                    \n                    \n        FUN_001e9890("../../gold/symtab.h",0x1a2,"set_dynsym_index");\n      }\n      *(int *)(lVar15 + 0x20) = iVar4;\n      param_1 = param_1 + 1;\n      puVar19 = puVar19 + 1;\n      *piVar17 = iVar4 + 1;\n    } while (plVar2 != param_1);\n  }" ({ "{") (expression_statement "param_1 = (long *)*param_1;" (assignment_expression "param_1 = (long *)*param_1" (identifier "param_1") (= "=") (cast_expression "(long *)*param_1" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (expression_statement "puVar19 = (uint *)*param_2;" (assignment_expression "puVar19 = (uint *)*param_2" (identifier "puVar19") (= "=") (cast_expression "(uint *)*param_2" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (; ";")) (expression_statement "plVar2 = param_1 + (ulong)(uVar7 - 1) + 1;" (assignment_expression "plVar2 = param_1 + (ulong)(uVar7 - 1) + 1" (identifier "plVar2") (= "=") (binary_expression "param_1 + (ulong)(uVar7 - 1) + 1" (binary_expression "param_1 + (ulong)(uVar7 - 1)" (identifier "param_1") (+ "+") (call_expression "(ulong)(uVar7 - 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar7 - 1)" (( "(") (binary_expression "uVar7 - 1" (identifier "uVar7") (- "-") (number_literal "1")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (do_statement "do {\n      uVar8 = *puVar19;\n      lVar15 = *param_1;\n      puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] =\n           puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] |\n           1L << ((byte)(uVar8 >> ((byte)local_70 & 0x1f)) & 0x3f) | 1L << ((byte)uVar8 & 0x3f);\n      lVar16 = ((ulong)uVar8 % (ulong)uVar6) * 4;\n      piVar1 = (int *)(lVar9 + lVar16);\n      iVar3 = *piVar1;\n      uVar5 = uVar8 & 0xfffffffe;\n      if (iVar3 == 1) {\n        uVar5 = uVar8 & 0xfffffffe | 1;\n      }\n      piVar17 = (int *)(lVar16 + lVar10);\n      iVar4 = *piVar17;\n      *piVar1 = iVar3 + -1;\n      *(uint *)(lVar20 + (ulong)((iVar4 - param_3) * 4)) =\n           uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n      if (iVar4 == 0) {\n                    \n                    \n        FUN_001e9890("../../gold/symtab.h",0x1a2,"set_dynsym_index");\n      }\n      *(int *)(lVar15 + 0x20) = iVar4;\n      param_1 = param_1 + 1;\n      puVar19 = puVar19 + 1;\n      *piVar17 = iVar4 + 1;\n    } while (plVar2 != param_1);" (do "do") (compound_statement "{\n      uVar8 = *puVar19;\n      lVar15 = *param_1;\n      puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] =\n           puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] |\n           1L << ((byte)(uVar8 >> ((byte)local_70 & 0x1f)) & 0x3f) | 1L << ((byte)uVar8 & 0x3f);\n      lVar16 = ((ulong)uVar8 % (ulong)uVar6) * 4;\n      piVar1 = (int *)(lVar9 + lVar16);\n      iVar3 = *piVar1;\n      uVar5 = uVar8 & 0xfffffffe;\n      if (iVar3 == 1) {\n        uVar5 = uVar8 & 0xfffffffe | 1;\n      }\n      piVar17 = (int *)(lVar16 + lVar10);\n      iVar4 = *piVar17;\n      *piVar1 = iVar3 + -1;\n      *(uint *)(lVar20 + (ulong)((iVar4 - param_3) * 4)) =\n           uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n      if (iVar4 == 0) {\n                    \n                    \n        FUN_001e9890("../../gold/symtab.h",0x1a2,"set_dynsym_index");\n      }\n      *(int *)(lVar15 + 0x20) = iVar4;\n      param_1 = param_1 + 1;\n      puVar19 = puVar19 + 1;\n      *piVar17 = iVar4 + 1;\n    }" ({ "{") (expression_statement "uVar8 = *puVar19;" (assignment_expression "uVar8 = *puVar19" (identifier "uVar8") (= "=") (pointer_expression "*puVar19" (* "*") (identifier "puVar19"))) (; ";")) (expression_statement "lVar15 = *param_1;" (assignment_expression "lVar15 = *param_1" (identifier "lVar15") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] =\n           puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] |\n           1L << ((byte)(uVar8 >> ((byte)local_70 & 0x1f)) & 0x3f) | 1L << ((byte)uVar8 & 0x3f);" (assignment_expression "puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] =\n           puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] |\n           1L << ((byte)(uVar8 >> ((byte)local_70 & 0x1f)) & 0x3f) | 1L << ((byte)uVar8 & 0x3f)" (subscript_expression "puVar12[uVar8 >> 6 & (local_6c >> 6) - 1]" (identifier "puVar12") ([ "[") (binary_expression "uVar8 >> 6 & (local_6c >> 6) - 1" (binary_expression "uVar8 >> 6" (identifier "uVar8") (>> ">>") (number_literal "6")) (& "&") (binary_expression "(local_6c >> 6) - 1" (parenthesized_expression "(local_6c >> 6)" (( "(") (binary_expression "local_6c >> 6" (identifier "local_6c") (>> ">>") (number_literal "6")) () ")")) (- "-") (number_literal "1"))) (] "]")) (= "=") (binary_expression "puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] |\n           1L << ((byte)(uVar8 >> ((byte)local_70 & 0x1f)) & 0x3f) | 1L << ((byte)uVar8 & 0x3f)" (binary_expression "puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] |\n           1L << ((byte)(uVar8 >> ((byte)local_70 & 0x1f)) & 0x3f)" (subscript_expression "puVar12[uVar8 >> 6 & (local_6c >> 6) - 1]" (identifier "puVar12") ([ "[") (binary_expression "uVar8 >> 6 & (local_6c >> 6) - 1" (binary_expression "uVar8 >> 6" (identifier "uVar8") (>> ">>") (number_literal "6")) (& "&") (binary_expression "(local_6c >> 6) - 1" (parenthesized_expression "(local_6c >> 6)" (( "(") (binary_expression "local_6c >> 6" (identifier "local_6c") (>> ">>") (number_literal "6")) () ")")) (- "-") (number_literal "1"))) (] "]")) (| "|") (binary_expression "1L << ((byte)(uVar8 >> ((byte)local_70 & 0x1f)) & 0x3f)" (number_literal "1L") (<< "<<") (parenthesized_expression "((byte)(uVar8 >> ((byte)local_70 & 0x1f)) & 0x3f)" (( "(") (binary_expression "(byte)(uVar8 >> ((byte)local_70 & 0x1f)) & 0x3f" (call_expression "(byte)(uVar8 >> ((byte)local_70 & 0x1f))" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(uVar8 >> ((byte)local_70 & 0x1f))" (( "(") (binary_expression "uVar8 >> ((byte)local_70 & 0x1f)" (identifier "uVar8") (>> ">>") (parenthesized_expression "((byte)local_70 & 0x1f)" (( "(") (binary_expression "(byte)local_70 & 0x1f" (cast_expression "(byte)local_70" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_70")) (& "&") (number_literal "0x1f")) () ")"))) () ")"))) (& "&") (number_literal "0x3f")) () ")")))) (| "|") (binary_expression "1L << ((byte)uVar8 & 0x3f)" (number_literal "1L") (<< "<<") (parenthesized_expression "((byte)uVar8 & 0x3f)" (( "(") (binary_expression "(byte)uVar8 & 0x3f" (cast_expression "(byte)uVar8" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar8")) (& "&") (number_literal "0x3f")) () ")"))))) (; ";")) (expression_statement "lVar16 = ((ulong)uVar8 % (ulong)uVar6) * 4;" (assignment_expression "lVar16 = ((ulong)uVar8 % (ulong)uVar6) * 4" (identifier "lVar16") (= "=") (binary_expression "((ulong)uVar8 % (ulong)uVar6) * 4" (parenthesized_expression "((ulong)uVar8 % (ulong)uVar6)" (( "(") (binary_expression "(ulong)uVar8 % (ulong)uVar6" (cast_expression "(ulong)uVar8" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar8")) (% "%") (cast_expression "(ulong)uVar6" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar6"))) () ")")) (* "*") (number_literal "4"))) (; ";")) (expression_statement "piVar1 = (int *)(lVar9 + lVar16);" (assignment_expression "piVar1 = (int *)(lVar9 + lVar16)" (identifier "piVar1") (= "=") (cast_expression "(int *)(lVar9 + lVar16)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + lVar16)" (( "(") (binary_expression "lVar9 + lVar16" (identifier "lVar9") (+ "+") (identifier "lVar16")) () ")")))) (; ";")) (expression_statement "iVar3 = *piVar1;" (assignment_expression "iVar3 = *piVar1" (identifier "iVar3") (= "=") (pointer_expression "*piVar1" (* "*") (identifier "piVar1"))) (; ";")) (expression_statement "uVar5 = uVar8 & 0xfffffffe;" (assignment_expression "uVar5 = uVar8 & 0xfffffffe" (identifier "uVar5") (= "=") (binary_expression "uVar8 & 0xfffffffe" (identifier "uVar8") (& "&") (number_literal "0xfffffffe"))) (; ";")) (if_statement "if (iVar3 == 1) {\n        uVar5 = uVar8 & 0xfffffffe | 1;\n      }" (if "if") (parenthesized_expression "(iVar3 == 1)" (( "(") (binary_expression "iVar3 == 1" (identifier "iVar3") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n        uVar5 = uVar8 & 0xfffffffe | 1;\n      }" ({ "{") (expression_statement "uVar5 = uVar8 & 0xfffffffe | 1;" (assignment_expression "uVar5 = uVar8 & 0xfffffffe | 1" (identifier "uVar5") (= "=") (binary_expression "uVar8 & 0xfffffffe | 1" (binary_expression "uVar8 & 0xfffffffe" (identifier "uVar8") (& "&") (number_literal "0xfffffffe")) (| "|") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "piVar17 = (int *)(lVar16 + lVar10);" (assignment_expression "piVar17 = (int *)(lVar16 + lVar10)" (identifier "piVar17") (= "=") (cast_expression "(int *)(lVar16 + lVar10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + lVar10)" (( "(") (binary_expression "lVar16 + lVar10" (identifier "lVar16") (+ "+") (identifier "lVar10")) () ")")))) (; ";")) (expression_statement "iVar4 = *piVar17;" (assignment_expression "iVar4 = *piVar17" (identifier "iVar4") (= "=") (pointer_expression "*piVar17" (* "*") (identifier "piVar17"))) (; ";")) (expression_statement "*piVar1 = iVar3 + -1;" (assignment_expression "*piVar1 = iVar3 + -1" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (= "=") (binary_expression "iVar3 + -1" (identifier "iVar3") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "*(uint *)(lVar20 + (ulong)((iVar4 - param_3) * 4)) =\n           uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;" (assignment_expression "*(uint *)(lVar20 + (ulong)((iVar4 - param_3) * 4)) =\n           uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18" (pointer_expression "*(uint *)(lVar20 + (ulong)((iVar4 - param_3) * 4))" (* "*") (cast_expression "(uint *)(lVar20 + (ulong)((iVar4 - param_3) * 4))" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar20 + (ulong)((iVar4 - param_3) * 4))" (( "(") (binary_expression "lVar20 + (ulong)((iVar4 - param_3) * 4)" (identifier "lVar20") (+ "+") (call_expression "(ulong)((iVar4 - param_3) * 4)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((iVar4 - param_3) * 4)" (( "(") (binary_expression "(iVar4 - param_3) * 4" (parenthesized_expression "(iVar4 - param_3)" (( "(") (binary_expression "iVar4 - param_3" (identifier "iVar4") (- "-") (identifier "param_3")) () ")")) (* "*") (number_literal "4")) () ")")))) () ")")))) (= "=") (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18" (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8" (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8" (binary_expression "uVar5 >> 0x18" (identifier "uVar5") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar5 & 0xff0000) >> 8" (parenthesized_expression "(uVar5 & 0xff0000)" (( "(") (binary_expression "uVar5 & 0xff0000" (identifier "uVar5") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar5 & 0xff00) << 8" (parenthesized_expression "(uVar5 & 0xff00)" (( "(") (binary_expression "uVar5 & 0xff00" (identifier "uVar5") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar5 << 0x18" (identifier "uVar5") (<< "<<") (number_literal "0x18")))) (; ";")) (if_statement "if (iVar4 == 0) {\n                    \n                    \n        FUN_001e9890("../../gold/symtab.h",0x1a2,"set_dynsym_index");\n      }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n                    \n        FUN_001e9890("../../gold/symtab.h",0x1a2,"set_dynsym_index");\n      }" ({ "{") (expression_statement "FUN_001e9890("../../gold/symtab.h",0x1a2,"set_dynsym_index");" (call_expression "FUN_001e9890("../../gold/symtab.h",0x1a2,"set_dynsym_index")" (identifier "FUN_001e9890") (argument_list "("../../gold/symtab.h",0x1a2,"set_dynsym_index")" (( "(") (string_literal ""../../gold/symtab.h"" (" """) (string_content "../../gold/symtab.h") (" """)) (, ",") (number_literal "0x1a2") (, ",") (string_literal ""set_dynsym_index"" (" """) (string_content "set_dynsym_index") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "*(int *)(lVar15 + 0x20) = iVar4;" (assignment_expression "*(int *)(lVar15 + 0x20) = iVar4" (pointer_expression "*(int *)(lVar15 + 0x20)" (* "*") (cast_expression "(int *)(lVar15 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0x20)" (( "(") (binary_expression "lVar15 + 0x20" (identifier "lVar15") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "iVar4")) (; ";")) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" (identifier "param_1") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar19 = puVar19 + 1;" (assignment_expression "puVar19 = puVar19 + 1" (identifier "puVar19") (= "=") (binary_expression "puVar19 + 1" (identifier "puVar19") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*piVar17 = iVar4 + 1;" (assignment_expression "*piVar17 = iVar4 + 1" (pointer_expression "*piVar17" (* "*") (identifier "piVar17")) (= "=") (binary_expression "iVar4 + 1" (identifier "iVar4") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(plVar2 != param_1)" (( "(") (binary_expression "plVar2 != param_1" (identifier "plVar2") (!= "!=") (identifier "param_1")) () ")")) (; ";")) (} "}"))) (if_statement "if (local_40 != 0) {\n    uVar18 = 0;\n    do {\n      uVar21 = puVar12[uVar18];\n      *(ulong *)(puVar11 + uVar18 * 2 + 4) =\n           uVar21 >> 0x38 | (uVar21 & 0xff000000000000) >> 0x28 | (uVar21 & 0xff0000000000) >> 0x18\n           | (uVar21 & 0xff00000000) >> 8 | (uVar21 & 0xff000000) << 8 | (uVar21 & 0xff0000) << 0x18\n           | (uVar21 & 0xff00) << 0x28 | uVar21 << 0x38;\n      bVar22 = uVar18 != local_40 - 1;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n  }" (if "if") (parenthesized_expression "(local_40 != 0)" (( "(") (binary_expression "local_40 != 0" (identifier "local_40") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar18 = 0;\n    do {\n      uVar21 = puVar12[uVar18];\n      *(ulong *)(puVar11 + uVar18 * 2 + 4) =\n           uVar21 >> 0x38 | (uVar21 & 0xff000000000000) >> 0x28 | (uVar21 & 0xff0000000000) >> 0x18\n           | (uVar21 & 0xff00000000) >> 8 | (uVar21 & 0xff000000) << 8 | (uVar21 & 0xff0000) << 0x18\n           | (uVar21 & 0xff00) << 0x28 | uVar21 << 0x38;\n      bVar22 = uVar18 != local_40 - 1;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);\n  }" ({ "{") (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" (identifier "uVar18") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      uVar21 = puVar12[uVar18];\n      *(ulong *)(puVar11 + uVar18 * 2 + 4) =\n           uVar21 >> 0x38 | (uVar21 & 0xff000000000000) >> 0x28 | (uVar21 & 0xff0000000000) >> 0x18\n           | (uVar21 & 0xff00000000) >> 8 | (uVar21 & 0xff000000) << 8 | (uVar21 & 0xff0000) << 0x18\n           | (uVar21 & 0xff00) << 0x28 | uVar21 << 0x38;\n      bVar22 = uVar18 != local_40 - 1;\n      uVar18 = uVar18 + 1;\n    } while (bVar22);" (do "do") (compound_statement "{\n      uVar21 = puVar12[uVar18];\n      *(ulong *)(puVar11 + uVar18 * 2 + 4) =\n           uVar21 >> 0x38 | (uVar21 & 0xff000000000000) >> 0x28 | (uVar21 & 0xff0000000000) >> 0x18\n           | (uVar21 & 0xff00000000) >> 8 | (uVar21 & 0xff000000) << 8 | (uVar21 & 0xff0000) << 0x18\n           | (uVar21 & 0xff00) << 0x28 | uVar21 << 0x38;\n      bVar22 = uVar18 != local_40 - 1;\n      uVar18 = uVar18 + 1;\n    }" ({ "{") (expression_statement "uVar21 = puVar12[uVar18];" (assignment_expression "uVar21 = puVar12[uVar18]" (identifier "uVar21") (= "=") (subscript_expression "puVar12[uVar18]" (identifier "puVar12") ([ "[") (identifier "uVar18") (] "]"))) (; ";")) (expression_statement "*(ulong *)(puVar11 + uVar18 * 2 + 4) =\n           uVar21 >> 0x38 | (uVar21 & 0xff000000000000) >> 0x28 | (uVar21 & 0xff0000000000) >> 0x18\n           | (uVar21 & 0xff00000000) >> 8 | (uVar21 & 0xff000000) << 8 | (uVar21 & 0xff0000) << 0x18\n           | (uVar21 & 0xff00) << 0x28 | uVar21 << 0x38;" (assignment_expression "*(ulong *)(puVar11 + uVar18 * 2 + 4) =\n           uVar21 >> 0x38 | (uVar21 & 0xff000000000000) >> 0x28 | (uVar21 & 0xff0000000000) >> 0x18\n           | (uVar21 & 0xff00000000) >> 8 | (uVar21 & 0xff000000) << 8 | (uVar21 & 0xff0000) << 0x18\n           | (uVar21 & 0xff00) << 0x28 | uVar21 << 0x38" (pointer_expression "*(ulong *)(puVar11 + uVar18 * 2 + 4)" (* "*") (cast_expression "(ulong *)(puVar11 + uVar18 * 2 + 4)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + uVar18 * 2 + 4)" (( "(") (binary_expression "puVar11 + uVar18 * 2 + 4" (binary_expression "puVar11 + uVar18 * 2" (identifier "puVar11") (+ "+") (binary_expression "uVar18 * 2" (identifier "uVar18") (* "*") (number_literal "2"))) (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "uVar21 >> 0x38 | (uVar21 & 0xff000000000000) >> 0x28 | (uVar21 & 0xff0000000000) >> 0x18\n           | (uVar21 & 0xff00000000) >> 8 | (uVar21 & 0xff000000) << 8 | (uVar21 & 0xff0000) << 0x18\n           | (uVar21 & 0xff00) << 0x28 | uVar21 << 0x38" (binary_expression "uVar21 >> 0x38 | (uVar21 & 0xff000000000000) >> 0x28 | (uVar21 & 0xff0000000000) >> 0x18\n           | (uVar21 & 0xff00000000) >> 8 | (uVar21 & 0xff000000) << 8 | (uVar21 & 0xff0000) << 0x18\n           | (uVar21 & 0xff00) << 0x28" (binary_expression "uVar21 >> 0x38 | (uVar21 & 0xff000000000000) >> 0x28 | (uVar21 & 0xff0000000000) >> 0x18\n           | (uVar21 & 0xff00000000) >> 8 | (uVar21 & 0xff000000) << 8 | (uVar21 & 0xff0000) << 0x18" (binary_expression "uVar21 >> 0x38 | (uVar21 & 0xff000000000000) >> 0x28 | (uVar21 & 0xff0000000000) >> 0x18\n           | (uVar21 & 0xff00000000) >> 8 | (uVar21 & 0xff000000) << 8" (binary_expression "uVar21 >> 0x38 | (uVar21 & 0xff000000000000) >> 0x28 | (uVar21 & 0xff0000000000) >> 0x18\n           | (uVar21 & 0xff00000000) >> 8" (binary_expression "uVar21 >> 0x38 | (uVar21 & 0xff000000000000) >> 0x28 | (uVar21 & 0xff0000000000) >> 0x18" (binary_expression "uVar21 >> 0x38 | (uVar21 & 0xff000000000000) >> 0x28" (binary_expression "uVar21 >> 0x38" (identifier "uVar21") (>> ">>") (number_literal "0x38")) (| "|") (binary_expression "(uVar21 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar21 & 0xff000000000000)" (( "(") (binary_expression "uVar21 & 0xff000000000000" (identifier "uVar21") (& "&") (number_literal "0xff000000000000")) () ")")) (>> ">>") (number_literal "0x28"))) (| "|") (binary_expression "(uVar21 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar21 & 0xff0000000000)" (( "(") (binary_expression "uVar21 & 0xff0000000000" (identifier "uVar21") (& "&") (number_literal "0xff0000000000")) () ")")) (>> ">>") (number_literal "0x18"))) (| "|") (binary_expression "(uVar21 & 0xff00000000) >> 8" (parenthesized_expression "(uVar21 & 0xff00000000)" (( "(") (binary_expression "uVar21 & 0xff00000000" (identifier "uVar21") (& "&") (number_literal "0xff00000000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar21 & 0xff000000) << 8" (parenthesized_expression "(uVar21 & 0xff000000)" (( "(") (binary_expression "uVar21 & 0xff000000" (identifier "uVar21") (& "&") (number_literal "0xff000000")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "(uVar21 & 0xff0000) << 0x18" (parenthesized_expression "(uVar21 & 0xff0000)" (( "(") (binary_expression "uVar21 & 0xff0000" (identifier "uVar21") (& "&") (number_literal "0xff0000")) () ")")) (<< "<<") (number_literal "0x18"))) (| "|") (binary_expression "(uVar21 & 0xff00) << 0x28" (parenthesized_expression "(uVar21 & 0xff00)" (( "(") (binary_expression "uVar21 & 0xff00" (identifier "uVar21") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "0x28"))) (| "|") (binary_expression "uVar21 << 0x38" (identifier "uVar21") (<< "<<") (number_literal "0x38")))) (; ";")) (expression_statement "bVar22 = uVar18 != local_40 - 1;" (assignment_expression "bVar22 = uVar18 != local_40 - 1" (identifier "bVar22") (= "=") (binary_expression "uVar18 != local_40 - 1" (identifier "uVar18") (!= "!=") (binary_expression "local_40 - 1" (identifier "local_40") (- "-") (number_literal "1")))) (; ";")) (expression_statement "uVar18 = uVar18 + 1;" (assignment_expression "uVar18 = uVar18 + 1" (identifier "uVar18") (= "=") (binary_expression "uVar18 + 1" (identifier "uVar18") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar22)" (( "(") (identifier "bVar22") () ")")) (; ";")) (} "}"))) (expression_statement "*param_5 = (local_6c >> 3) + (uVar6 + 4 + uVar7) * 4;" (assignment_expression "*param_5 = (local_6c >> 3) + (uVar6 + 4 + uVar7) * 4" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (binary_expression "(local_6c >> 3) + (uVar6 + 4 + uVar7) * 4" (parenthesized_expression "(local_6c >> 3)" (( "(") (binary_expression "local_6c >> 3" (identifier "local_6c") (>> ">>") (number_literal "3")) () ")")) (+ "+") (binary_expression "(uVar6 + 4 + uVar7) * 4" (parenthesized_expression "(uVar6 + 4 + uVar7)" (( "(") (binary_expression "uVar6 + 4 + uVar7" (binary_expression "uVar6 + 4" (identifier "uVar6") (+ "+") (number_literal "4")) (+ "+") (identifier "uVar7")) () ")")) (* "*") (number_literal "4")))) (; ";")) (expression_statement "*param_4 = puVar11;" (assignment_expression "*param_4 = puVar11" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (identifier "puVar11")) (; ";")) (if_statement "if (lVar10 != 0) {\n    FUN_00338a50(lVar10);\n  }" (if "if") (parenthesized_expression "(lVar10 != 0)" (( "(") (binary_expression "lVar10 != 0" (identifier "lVar10") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_00338a50(lVar10);\n  }" ({ "{") (expression_statement "FUN_00338a50(lVar10);" (call_expression "FUN_00338a50(lVar10)" (identifier "FUN_00338a50") (argument_list "(lVar10)" (( "(") (identifier "lVar10") () ")"))) (; ";")) (} "}"))) (if_statement "if (lVar9 != 0) {\n    FUN_00338a50(lVar9);\n  }" (if "if") (parenthesized_expression "(lVar9 != 0)" (( "(") (binary_expression "lVar9 != 0" (identifier "lVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_00338a50(lVar9);\n  }" ({ "{") (expression_statement "FUN_00338a50(lVar9);" (call_expression "FUN_00338a50(lVar9)" (identifier "FUN_00338a50") (argument_list "(lVar9)" (( "(") (identifier "lVar9") () ")"))) (; ";")) (} "}"))) (if_statement "if (puVar12 == (undefined8 *)0x0) {\n    return;\n  }" (if "if") (parenthesized_expression "(puVar12 == (undefined8 *)0x0)" (( "(") (binary_expression "puVar12 == (undefined8 *)0x0" (identifier "puVar12") (== "==") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_00338a50(puVar12);" (call_expression "FUN_00338a50(puVar12)" (identifier "FUN_00338a50") (argument_list "(puVar12)" (( "(") (identifier "puVar12") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* DWARF original name: sized_create_gnu_hash_table<64, true> */

void var_1::Dynobj::sized_create_gnu_hash_table<64,_true>
               (vector<var_1::type_2*,var_2::var_16<var_1::type_2*>var_3> *hashed_dynsyms,
               vector<var_17,var_2::var_16<var_17>var_3> *dynsym_hashvals,
               type_3 var_7,type_5 **pphash,type_3 *phashlen)

{
  int *piVar1;
  type_1 var_32;
  int var_29;
  type_1 var_18;
  type_2 *pSVar5;
  type_3 var_15;
  type_3 var_9;
  type_3 var_10;
  void *var_35;
  void *var_33;
  type_3 *var_20;
  type_4 *var_13;
  type_4 *var_12;
  type_5 *var_6;
  long var_19;
  type_3 var_26;
  long var_28;
  type_3 *puVar18;
  type_6 var_14;
  type_1 var_27;
  type_6 var_24;
  type_3 *var_31;
  type_6 var_23;
  bool bVar24;
  type_3 var_21;
  type_3 var_25;
  type_3 var_22;
  
  if ((hashed_dynsyms->super__Vector_base<var_1::type_2*,var_2::var_16<var_1::type_2*>var_3>var_4)._M_impl.
      _M_finish ==
      (hashed_dynsyms->super__Vector_base<var_1::type_2*,var_2::var_16<var_1::type_2*>var_3>var_4)._M_impl.
      _M_start) {
    var_6 = (type_5 *)var_5(0x1c);
    var_6[0] = '\0';
    var_6[1] = '\0';
    var_6[2] = '\0';
    var_6[3] = '\x01';
    *phashlen = 0x1c;
    var_6[8] = '\0';
    var_6[9] = '\0';
    var_6[10] = '\0';
    var_6[0xb] = '\x01';
    var_6[0xc] = '\0';
    var_6[0xd] = '\0';
    var_6[0xe] = '\0';
    var_6[0xf] = '\0';
    *(type_3 *)(var_6 + 4) =
         var_7 >> 0x18 | (var_7 & 0xff0000) >> 8 |
         (var_7 & 0xff00) << 8 | var_7 << 0x18;
    var_6[0x10] = '\0';
    var_6[0x11] = '\0';
    var_6[0x12] = '\0';
    var_6[0x13] = '\0';
    var_6[0x14] = '\0';
    var_6[0x15] = '\0';
    var_6[0x16] = '\0';
    var_6[0x17] = '\0';
    var_6[0x18] = '\0';
    var_6[0x19] = '\0';
    var_6[0x1a] = '\0';
    var_6[0x1b] = '\0';
    *pphash = var_6;
    return;
  }
  var_15 = var_8(dynsym_hashvals,true);
  var_9 = (type_3)((long)(hashed_dynsyms->
                       super__Vector_base<var_1::type_2*,var_2::var_16<var_1::type_2*>var_3>var_4)._M_impl.
                       _M_finish -
                 (long)(hashed_dynsyms->
                       super__Vector_base<var_1::type_2*,var_2::var_16<var_1::type_2*>var_3>var_4)._M_impl.
                       _M_start >> 3);
  var_10 = var_9 >> 1;
  if (var_10 == 0) {
LAB_001da120:
    var_22 = 1;
    var_24 = 8;
    var_14 = 1;
    var_25 = 0x40;
    var_21 = 6;
LAB_001da142:
    var_13 = (type_4 *)var_11(var_24);
    var_12 = var_13;
    do {
      *var_12 = 0;
      var_12 = var_12 + 1;
    } while (var_12 != var_13 + var_14);
    if (var_15 != 0) goto LAB_001d9e70;
LAB_001da16d:
    var_33 = (void *)0x0;
    var_35 = (void *)0x0;
    if (var_9 == 0) goto LAB_001d9f2b;
LAB_001d9ed4:
    var_19 = 0;
    var_18 = (dynsym_hashvals->super__Vector_base<var_17,var_2::var_16<var_17>var_3>var_4).
             _M_impl._M_start;
    do {
      var_20 = var_18 + var_19;
      var_19 = var_19 + 1;
      piVar1 = (int *)((long)var_35 + ((type_6)*var_20 % (type_6)var_15) * 4);
      *piVar1 = *piVar1 + 1;
    } while ((type_3)var_19 < var_9);
  }
  else {
    var_26 = 1;
    do {
      var_21 = var_26;
      var_10 = var_10 >> 1;
      var_26 = var_21 + 1;
    } while (var_10 != 0);
    if (var_21 + 1 < 3) goto LAB_001da120;
    if ((var_9 >> (var_21 - 1 & 0x1f) & 1) == 0) {
      var_21 = var_21 + 3;
      if (var_21 == 5) goto LAB_001da120;
    }
    else {
      var_21 = var_21 + 4;
    }
    var_13 = (type_4 *)0x0;
    var_25 = 1 << ((type_7)var_21 & 0x1f);
    var_22 = 1 << ((type_7)var_21 - 6 & 0x1f);
    var_14 = (type_6)var_22;
    if (var_22 != 0) {
      var_24 = var_14 * 8;
      goto LAB_001da142;
    }
    if (var_15 == 0) goto LAB_001da16d;
LAB_001d9e70:
    var_24 = (type_6)var_15 * 4;
                    /* try { // try from 001d9e80 to 001d9e84 has its CatchHandler @ 001da1ff */
    var_35 = var_11(var_24);
    var_14 = 0;
    do {
      var_23 = var_14;
      *(type_8 *)((long)var_35 + var_23 * 4) = 0;
      var_14 = var_23 + 1;
    } while ((type_6)var_15 != var_23 + 1);
                    /* try { // try from 001d9ea9 to 001d9ead has its CatchHandler @ 001da209 */
    var_33 = var_11(var_24);
    var_24 = 0;
    do {
      *(type_8 *)((long)var_33 + var_24 * 4) = 0;
      bVar24 = var_23 != var_24;
      var_24 = var_24 + 1;
    } while (bVar24);
    if (var_9 != 0) goto LAB_001d9ed4;
  }
  if (var_15 != 0) {
    var_24 = 0;
    var_10 = var_7;
    do {
      *(type_3 *)((long)var_33 + var_24 * 4) = var_10;
      var_10 = var_10 + *(int *)((long)var_35 + var_24 * 4);
      bVar24 = var_15 - 1 != var_24;
      var_24 = var_24 + 1;
    } while (bVar24);
  }
LAB_001d9f2b:
  var_10 = (var_25 >> 3) + (var_15 + 4 + var_9) * 4;
                    /* try { // try from 001d9f4b to 001d9f4f has its CatchHandler @ 001da204 */
  var_20 = (type_3 *)var_5((type_6)var_10);
  *var_20 = var_15 >> 0x18 | (var_15 & 0xff0000) >> 8 | (var_15 & 0xff00) << 8 | var_15 << 0x18;
  var_19 = (long)var_20 + (type_6)(var_25 >> 3) + 0x10;
  var_20[1] = var_7 >> 0x18 | (var_7 & 0xff0000) >> 8 |
               (var_7 & 0xff00) << 8 | var_7 << 0x18;
  var_20[2] = var_22 >> 0x18 | (var_22 & 0xff0000) >> 8 | (var_22 & 0xff00) << 8 |
               var_22 << 0x18;
  var_20[3] = var_21 >> 0x18 | (var_21 & 0xff0000) >> 8 | (var_21 & 0xff00) << 8 |
               var_21 << 0x18;
  if (var_15 != 0) {
    var_24 = 0;
    do {
      var_26 = *(type_3 *)((long)var_35 + var_24 * 4);
      if (var_26 != 0) {
        var_26 = *(type_3 *)((long)var_33 + var_24 * 4);
        var_26 = var_26 >> 0x18 | (var_26 & 0xff0000) >> 8 | (var_26 & 0xff00) << 8 | var_26 << 0x18
        ;
      }
      *(type_3 *)(var_19 + var_24 * 4) = var_26;
      bVar24 = var_15 - 1 != var_24;
      var_24 = var_24 + 1;
    } while (bVar24);
    var_19 = var_19 + ((type_6)(var_15 - 1) + 1) * 4;
  }
  if (var_9 != 0) {
    var_27 = (hashed_dynsyms->super__Vector_base<var_1::type_2*var_4,var_2::var_16<var_1::type_2*>var_3>var_4).
               _M_impl._M_start;
    var_31 = (dynsym_hashvals->super__Vector_base<var_17,var_2::var_16<var_17>var_3>var_4).
              _M_impl._M_start;
    var_32 = var_27 + (type_6)(var_9 - 1) + 1;
    do {
      var_9 = *var_31;
      pSVar5 = *var_27;
      var_13[var_9 >> 6 & (var_25 >> 6) - 1] =
           var_13[var_9 >> 6 & (var_25 >> 6) - 1] |
           1L << ((type_7)(var_9 >> ((type_7)var_21 & 0x1f)) & 0x3f) | 1L << ((type_7)var_9 & 0x3f);
      var_28 = ((type_6)var_9 % (type_6)var_15) * 4;
      piVar1 = (int *)((long)var_35 + var_28);
      var_29 = *piVar1;
      var_26 = var_9 & 0xfffffffe;
      if (var_29 == 1) {
        var_26 = var_9 & 0xfffffffe | 1;
      }
      puVar18 = (type_3 *)(var_28 + (long)var_33);
      var_9 = *puVar18;
      *piVar1 = var_29 + -1;
      *(type_3 *)(var_19 + (type_6)((var_9 - var_7) * 4)) =
           var_26 >> 0x18 | (var_26 & 0xff0000) >> 8 | (var_26 & 0xff00) << 8 | var_26 << 0x18;
      if (var_9 == 0) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 001da1fa to 001da1fe has its CatchHandler @ 001da204 */
        var_30("../../gold/symtab.h",0x1a2,"set_dynsym_index");
      }
      pSVar5->dynsym_index_ = var_9;
      var_27 = var_27 + 1;
      var_31 = var_31 + 1;
      *puVar18 = var_9 + 1;
    } while (var_32 != var_27);
  }
  if (var_22 != 0) {
    var_24 = 0;
    do {
      var_14 = var_13[var_24];
      *(type_6 *)(var_20 + var_24 * 2 + 4) =
           var_14 >> 0x38 | (var_14 & 0xff000000000000) >> 0x28 | (var_14 & 0xff0000000000) >> 0x18
           | (var_14 & 0xff00000000) >> 8 | (var_14 & 0xff000000) << 8 | (var_14 & 0xff0000) << 0x18
           | (var_14 & 0xff00) << 0x28 | var_14 << 0x38;
      bVar24 = var_24 != var_22 - 1;
      var_24 = var_24 + 1;
    } while (bVar24);
  }
  *phashlen = var_10;
  *pphash = (type_5 *)var_20;
  if (var_33 != (void *)0x0) {
    var_34(var_33);
  }
  if (var_35 != (void *)0x0) {
    var_34(var_35);
  }
  if (var_13 == (type_4 *)0x0) {
    return;
  }
  var_34(var_13);
  return;
}


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

void MASKED(long *param_1,long *param_2,uint param_3,undefined8 *param_4,int *param_5)

{
  int *piVar1;
  long *plVar2;
  int iVar3;
  int iVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  long lVar9;
  long lVar10;
  uint *puVar11;
  undefined8 *puVar12;
  undefined8 *puVar13;
  undefined4 *puVar14;
  long lVar15;
  long lVar16;
  int *piVar17;
  ulong uVar18;
  uint *puVar19;
  long lVar20;
  ulong uVar21;
  bool bVar22;
  uint local_70;
  uint local_6c;
  uint local_40;
  
  if (param_1[1] == *param_1) {
    puVar14 = (undefined4 *)thunk_FUN_00337280(0x1c);
    *puVar14 = 0x1000000;
    *param_5 = 0x1c;
    *(undefined8 *)(puVar14 + 2) = 0x1000000;
    puVar14[1] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |
                 param_3 << 0x18;
    *(undefined8 *)(puVar14 + 4) = 0;
    puVar14[6] = 0;
    *param_4 = puVar14;
    return;
  }
  uVar6 = FUN_001d5250(param_2,1);
  uVar7 = (uint)(param_1[1] - *param_1 >> 3);
  uVar8 = uVar7 >> 1;
  if (uVar8 == 0) {
LAB_001da120:
    local_40 = 1;
    lVar9 = 8;
    uVar18 = 1;
    local_6c = 0x40;
    local_70 = 6;
LAB_001da142:
    puVar12 = (undefined8 *)FUN_00337280(lVar9);
    puVar13 = puVar12;
    do {
      *puVar13 = 0;
      puVar13 = puVar13 + 1;
    } while (puVar13 != puVar12 + uVar18);
    if (uVar6 != 0) goto LAB_001d9e70;
LAB_001da16d:
    lVar10 = 0;
    lVar9 = 0;
    if (uVar7 == 0) goto LAB_001d9f2b;
LAB_001d9ed4:
    lVar15 = 0;
    lVar20 = *param_2;
    do {
      lVar16 = lVar15 * 4;
      lVar15 = lVar15 + 1;
      piVar1 = (int *)(lVar9 + ((ulong)*(uint *)(lVar20 + lVar16) % (ulong)uVar6) * 4);
      *piVar1 = *piVar1 + 1;
    } while ((uint)lVar15 < uVar7);
  }
  else {
    uVar5 = 1;
    do {
      local_70 = uVar5;
      uVar8 = uVar8 >> 1;
      uVar5 = local_70 + 1;
    } while (uVar8 != 0);
    if (local_70 + 1 < 3) goto LAB_001da120;
    if ((uVar7 >> (local_70 - 1 & 0x1f) & 1) == 0) {
      local_70 = local_70 + 3;
      if (local_70 == 5) goto LAB_001da120;
    }
    else {
      local_70 = local_70 + 4;
    }
    puVar12 = (undefined8 *)0x0;
    local_6c = 1 << ((byte)local_70 & 0x1f);
    local_40 = 1 << ((byte)local_70 - 6 & 0x1f);
    uVar18 = (ulong)local_40;
    if (local_40 != 0) {
      lVar9 = uVar18 * 8;
      goto LAB_001da142;
    }
    if (uVar6 == 0) goto LAB_001da16d;
LAB_001d9e70:
    lVar10 = (ulong)uVar6 * 4;
                    /* try { // try from 001d9e80 to 001d9e84 has its CatchHandler @ 001da1ff */
    lVar9 = FUN_00337280(lVar10);
    uVar18 = 0;
    do {
      uVar21 = uVar18;
      *(undefined4 *)(lVar9 + uVar21 * 4) = 0;
      uVar18 = uVar21 + 1;
    } while ((ulong)uVar6 != uVar21 + 1);
                    /* try { // try from 001d9ea9 to 001d9ead has its CatchHandler @ 001da209 */
    lVar10 = FUN_00337280(lVar10);
    uVar18 = 0;
    do {
      *(undefined4 *)(lVar10 + uVar18 * 4) = 0;
      bVar22 = uVar21 != uVar18;
      uVar18 = uVar18 + 1;
    } while (bVar22);
    if (uVar7 != 0) goto LAB_001d9ed4;
  }
  if (uVar6 != 0) {
    uVar18 = 0;
    uVar8 = param_3;
    do {
      *(uint *)(lVar10 + uVar18 * 4) = uVar8;
      uVar8 = uVar8 + *(int *)(lVar9 + uVar18 * 4);
      bVar22 = uVar6 - 1 != uVar18;
      uVar18 = uVar18 + 1;
    } while (bVar22);
  }
LAB_001d9f2b:
                    /* try { // try from 001d9f4b to 001d9f4f has its CatchHandler @ 001da204 */
  puVar11 = (uint *)thunk_FUN_00337280();
  *puVar11 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;
  lVar20 = (long)puVar11 + (ulong)(local_6c >> 3) + 0x10;
  puVar11[1] = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 |
               param_3 << 0x18;
  puVar11[2] = local_40 >> 0x18 | (local_40 & 0xff0000) >> 8 | (local_40 & 0xff00) << 8 |
               local_40 << 0x18;
  puVar11[3] = local_70 >> 0x18 | (local_70 & 0xff0000) >> 8 | (local_70 & 0xff00) << 8 |
               local_70 << 0x18;
  if (uVar6 != 0) {
    uVar18 = 0;
    do {
      uVar8 = *(uint *)(lVar9 + uVar18 * 4);
      if (uVar8 != 0) {
        uVar8 = *(uint *)(lVar10 + uVar18 * 4);
        uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;
      }
      *(uint *)(lVar20 + uVar18 * 4) = uVar8;
      bVar22 = uVar6 - 1 != uVar18;
      uVar18 = uVar18 + 1;
    } while (bVar22);
    lVar20 = lVar20 + ((ulong)(uVar6 - 1) + 1) * 4;
  }
  if (uVar7 != 0) {
    param_1 = (long *)*param_1;
    puVar19 = (uint *)*param_2;
    plVar2 = param_1 + (ulong)(uVar7 - 1) + 1;
    do {
      uVar8 = *puVar19;
      lVar15 = *param_1;
      puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] =
           puVar12[uVar8 >> 6 & (local_6c >> 6) - 1] |
           1L << ((byte)(uVar8 >> ((byte)local_70 & 0x1f)) & 0x3f) | 1L << ((byte)uVar8 & 0x3f);
      lVar16 = ((ulong)uVar8 % (ulong)uVar6) * 4;
      piVar1 = (int *)(lVar9 + lVar16);
      iVar3 = *piVar1;
      uVar5 = uVar8 & 0xfffffffe;
      if (iVar3 == 1) {
        uVar5 = uVar8 & 0xfffffffe | 1;
      }
      piVar17 = (int *)(lVar16 + lVar10);
      iVar4 = *piVar17;
      *piVar1 = iVar3 + -1;
      *(uint *)(lVar20 + (ulong)((iVar4 - param_3) * 4)) =
           uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;
      if (iVar4 == 0) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 001da1fa to 001da1fe has its CatchHandler @ 001da204 */
        FUN_001e9890("../../gold/symtab.h",0x1a2,"set_dynsym_index");
      }
      *(int *)(lVar15 + 0x20) = iVar4;
      param_1 = param_1 + 1;
      puVar19 = puVar19 + 1;
      *piVar17 = iVar4 + 1;
    } while (plVar2 != param_1);
  }
  if (local_40 != 0) {
    uVar18 = 0;
    do {
      uVar21 = puVar12[uVar18];
      *(ulong *)(puVar11 + uVar18 * 2 + 4) =
           uVar21 >> 0x38 | (uVar21 & 0xff000000000000) >> 0x28 | (uVar21 & 0xff0000000000) >> 0x18
           | (uVar21 & 0xff00000000) >> 8 | (uVar21 & 0xff000000) << 8 | (uVar21 & 0xff0000) << 0x18
           | (uVar21 & 0xff00) << 0x28 | uVar21 << 0x38;
      bVar22 = uVar18 != local_40 - 1;
      uVar18 = uVar18 + 1;
    } while (bVar22);
  }
  *param_5 = (local_6c >> 3) + (uVar6 + 4 + uVar7) * 4;
  *param_4 = puVar11;
  if (lVar10 != 0) {
    FUN_00338a50(lVar10);
  }
  if (lVar9 != 0) {
    FUN_00338a50(lVar9);
  }
  if (puVar12 == (undefined8 *)0x0) {
    return;
  }
  FUN_00338a50(puVar12);
  return;
}

