
void symtab_finalize(Sym_Table *tab)

{
  char cVar1;
  byte bVar2;
  byte bVar3;
  bfd_vma bVar4;
  bfd_vma bVar5;
  uint uVar6;
  Sym *pSVar7;
  Source_File *pSVar8;
  Sym *pSVar9;
  undefined4 uVar10;
  uint uVar11;
  Sym *pSVar12;
  uint uVar13;
  uint uVar14;
  char *pcVar15;
  uint uVar16;
  undefined4 uVar17;
  int iVar18;
  int iVar19;
  undefined4 uVar20;
  Sym *pSVar21;
  int iVar22;
  undefined4 uVar23;
  char *pcVar24;
  Sym *pSVar25;
  Sym *pSVar26;
  undefined *puVar27;
  undefined *puVar28;
  undefined *puVar29;
  uint uVar30;
  uint uVar31;
  
  if (tab->len == 0) {
    return;
  }
  (*(code *)PTR_qsort_0003a5f0)(tab->base,tab->len,0x108,PTR_LAB_0003a3e8 + -0x1890);
  puVar28 = PTR_debug_level_0003a418;
  pSVar25 = tab->base;
  pSVar21 = tab->limit;
  uVar14 = (uint)pSVar25->addr;
  uVar6 = *(uint *)&pSVar25->addr;
  uVar31 = uVar14 + 1;
  uVar30 = (uVar31 < uVar14) + uVar6;
  if (pSVar21 <= pSVar25) {
    uVar6 = 0;
    uVar13 = *(uint *)PTR_debug_level_0003a418 & 0x1080;
LAB_0001ea58:
    uVar14 = tab->len;
    if ((uVar14 != 0) && (*(int *)&pSVar25[-1].end_addr == 0 && (int)pSVar25[-1].end_addr == 0)) {
      iVar18 = *(int *)PTR_core_text_sect_0003a534;
      uVar31 = *(uint *)(iVar18 + 0x24);
      iVar22 = *(int *)(iVar18 + 0x20);
      iVar19 = *(int *)(iVar18 + 0x30);
      uVar30 = uVar31 + *(int *)(iVar18 + 0x34);
      *(uint *)((int)&pSVar25[-1].end_addr + 4) = uVar30 - 1;
      *(uint *)&pSVar25[-1].end_addr =
           (uint)(uVar30 - 1 < uVar30) + (uint)(uVar30 < uVar31) + iVar22 + iVar19 + -1;
    }
    if (uVar13 == 0) {
      tab->limit = pSVar25;
      tab->len = uVar6;
    }
    else {
      (*(code *)PTR_printf_0003a6f4)(PTR_LAB_0003a3e8 + 0x6b20,uVar14 - uVar6);
      pSVar21 = tab->base;
      uVar14 = *(uint *)puVar28;
      tab->limit = pSVar25;
      uVar6 = ((int)pSVar25 - (int)pSVar21 >> 3) * 0x3e0f83e1;
      tab->len = uVar6;
      if (((uVar14 & 0x1080) != 0) && (uVar6 != 0)) {
        uVar6 = 0;
        puVar28 = PTR_LAB_0003a3e8 + 0x6b54;
        iVar18 = 0;
        while( true ) {
          uVar6 = uVar6 + 1;
          (*(code *)PTR_printf_0003a6f4)
                    (puVar28,*(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x24),
                     *(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x1c),
                     *(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x18));
          if (tab->len <= uVar6) break;
          pSVar21 = tab->base;
          iVar18 = iVar18 + 0x108;
        }
        return;
      }
    }
    return;
  }
  uVar13 = *(uint *)PTR_debug_level_0003a418 & 0x1080;
  puVar29 = PTR_LAB_0003a3e8 + 0x6ae0;
  puVar27 = PTR_LAB_0003a3e8 + 0x6b10;
  pSVar26 = pSVar25;
  if (uVar6 == uVar30) goto LAB_0001e9b8;
LAB_0001e92c:
  if ((tab->base < pSVar26) &&
     (*(int *)&pSVar26[-1].end_addr == 0 && (int)pSVar26[-1].end_addr == 0)) {
    *(uint *)((int)&pSVar26[-1].end_addr + 4) = uVar14 - 1;
    *(uint *)&pSVar26[-1].end_addr = (uint)(uVar14 - 1 < uVar14) + (uVar6 - 1);
  }
  uVar11 = *(uint *)&pSVar25->end_addr;
  uVar16 = (uint)pSVar25->end_addr;
  pSVar9 = pSVar25;
  pSVar7 = pSVar26;
  if ((uVar11 == 0 && uVar16 == 0) ||
     ((uVar6 <= uVar11 && ((uVar6 != uVar11 || (uVar14 <= uVar16)))))) {
    do {
      pSVar12 = pSVar7;
      pSVar21 = pSVar9;
      pSVar9 = (Sym *)&pSVar21->name;
      bVar4 = pSVar21->addr;
      uVar17 = *(undefined4 *)&pSVar21->end_addr;
      bVar5 = pSVar21->end_addr;
      *(undefined4 *)&pSVar12->addr = *(undefined4 *)&pSVar21->addr;
      *(int *)((int)&pSVar12->addr + 4) = (int)bVar4;
      *(undefined4 *)&pSVar12->end_addr = uVar17;
      *(int *)((int)&pSVar12->end_addr + 4) = (int)bVar5;
      pSVar7 = (Sym *)&pSVar12->name;
    } while (pSVar9 != (Sym *)&(pSVar25->cg).children);
    pSVar26 = pSVar26 + 1;
    pSVar8 = pSVar21->file;
    pSVar12->name = *(char **)pSVar9;
    pSVar12->file = pSVar8;
    uVar30 = *(uint *)&pSVar25->addr;
    uVar31 = (uint)pSVar25->addr;
    pSVar21 = tab->limit;
  }
LAB_0001e998:
  pSVar25 = pSVar25 + 1;
  if (pSVar25 < pSVar21) {
    do {
      uVar6 = *(uint *)&pSVar25->addr;
      uVar14 = (uint)pSVar25->addr;
      if (uVar6 != uVar30) goto LAB_0001e92c;
LAB_0001e9b8:
      if (uVar14 != uVar31) goto LAB_0001e92c;
      bVar2 = pSVar25->field_0x1c;
      bVar3 = pSVar26[-1].field_0x1c;
      if (((bVar2 & 0x40) == 0) && ((bVar3 & 0x40) != 0)) {
        if (uVar13 != 0) {
          pcVar15 = pSVar25->name;
          uVar23 = 0x66;
          pcVar24 = pSVar26[-1].name;
          uVar20 = 0x54;
          if ((char)bVar2 < '\0') {
            uVar23 = 0x46;
          }
          uVar17 = 0x74;
LAB_0001ecec:
          uVar10 = 0x66;
          if ((char)bVar3 < '\0') {
            uVar10 = 0x46;
          }
          (*(code *)PTR_printf_0003a6f4)(puVar29,pcVar15,uVar20,uVar23,pcVar24,uVar17,uVar10);
          (*(code *)PTR_printf_0003a6f4)(puVar27,(int)pSVar25->addr);
          uVar13 = *(uint *)puVar28 & 0x1080;
        }
      }
      else {
        if (((bVar2 ^ bVar3) & 0x40) != 0) goto LAB_0001eb60;
        if ((-1 < (char)bVar2) || ((char)bVar3 < '\0')) {
          if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;
          cVar1 = *pSVar25->name;
          if (cVar1 != '_') {
            if (*pSVar26[-1].name == '_') goto LAB_0001ecb8;
            if (cVar1 == '\0') goto LAB_0001eb60;
          }
          if ((pSVar25->name[1] == '_') || (pSVar26[-1].name[1] != '_')) goto LAB_0001eb60;
        }
LAB_0001ecb8:
        if (uVar13 != 0) {
          pcVar15 = pSVar25->name;
          uVar17 = 0x74;
          pcVar24 = pSVar26[-1].name;
          uVar23 = 0x66;
          uVar20 = 0x74;
          if ((bVar3 & 0x40) == 0) {
            uVar17 = 0x54;
          }
          if ((bVar2 & 0x40) == 0) {
            uVar20 = 0x54;
          }
          if ((char)bVar2 < '\0') {
            uVar23 = 0x46;
          }
          goto LAB_0001ecec;
        }
      }
      pSVar21 = pSVar25;
      pSVar9 = pSVar26 + -1;
      do {
        pSVar12 = pSVar9;
        pSVar7 = pSVar21;
        pSVar21 = (Sym *)&pSVar7->name;
        bVar4 = pSVar7->addr;
        uVar17 = *(undefined4 *)&pSVar7->end_addr;
        bVar5 = pSVar7->end_addr;
        *(undefined4 *)&pSVar12->addr = *(undefined4 *)&pSVar7->addr;
        *(int *)((int)&pSVar12->addr + 4) = (int)bVar4;
        *(undefined4 *)&pSVar12->end_addr = uVar17;
        *(int *)((int)&pSVar12->end_addr + 4) = (int)bVar5;
        pSVar9 = (Sym *)&pSVar12->name;
      } while (pSVar21 != (Sym *)&(pSVar25->cg).children);
      pSVar25 = pSVar25 + 1;
      pSVar8 = pSVar7->file;
      pSVar12->name = *(char **)pSVar21;
      pSVar12->file = pSVar8;
      pSVar21 = tab->limit;
      if (pSVar21 <= pSVar25) break;
    } while( true );
  }
  uVar6 = ((int)pSVar26 - (int)tab->base >> 3) * 0x3e0f83e1;
  pSVar25 = pSVar26;
  goto LAB_0001ea58;
LAB_0001eb60:
  uVar17 = 0x54;
  if (uVar13 != 0) {
    uVar20 = 0x54;
    if ((bVar2 & 0x40) != 0) {
      uVar20 = 0x74;
    }
    uVar23 = 0x66;
    if ((bVar3 & 0x40) != 0) {
      uVar17 = 0x74;
    }
    uVar10 = 0x66;
    if ((char)bVar2 < '\0') {
      uVar10 = 0x46;
    }
    if ((char)bVar3 < '\0') {
      uVar23 = 0x46;
    }
    (*(code *)PTR_printf_0003a6f4)
              (puVar29,pSVar26[-1].name,uVar17,uVar23,pSVar25->name,uVar20,uVar10);
    (*(code *)PTR_printf_0003a6f4)(puVar27,(int)pSVar25->addr);
    pSVar21 = tab->limit;
    uVar13 = *(uint *)puVar28 & 0x1080;
  }
  goto LAB_0001e998;
}



void symtab_finalize(uint *param_1)

{
  char cVar1;
  byte bVar2;
  byte bVar3;
  uint uVar4;
  uint *puVar5;
  uint *puVar6;
  int iVar7;
  undefined4 uVar8;
  undefined4 uVar9;
  uint uVar10;
  uint *puVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  uint *puVar15;
  int iVar16;
  undefined4 uVar17;
  uint *puVar18;
  uint *puVar19;
  int iVar20;
  undefined *puVar21;
  undefined *puVar22;
  undefined *puVar23;
  uint uVar24;
  uint uVar25;
  
  if (*param_1 == 0) {
    return;
  }
  (*(code *)PTR_qsort_0003a5f0)(param_1[1],*param_1,0x108,PTR_LAB_0003a3e8 + -0x1890);
  puVar22 = PTR_debug_level_0003a418;
  puVar18 = (uint *)param_1[1];
  puVar15 = (uint *)param_1[2];
  uVar13 = puVar18[1];
  uVar4 = *puVar18;
  uVar25 = uVar13 + 1;
  uVar24 = (uVar25 < uVar13) + uVar4;
  if (puVar15 <= puVar18) {
    uVar4 = 0;
    uVar12 = *(uint *)PTR_debug_level_0003a418 & 0x1080;
LAB_0001ea58:
    uVar13 = *param_1;
    if ((uVar13 != 0) && (puVar18[-0x40] == 0 && puVar18[-0x3f] == 0)) {
      iVar20 = *(int *)PTR_core_text_sect_0003a534;
      uVar25 = *(uint *)(iVar20 + 0x24);
      iVar16 = *(int *)(iVar20 + 0x20);
      iVar7 = *(int *)(iVar20 + 0x30);
      uVar24 = uVar25 + *(int *)(iVar20 + 0x34);
      puVar18[-0x3f] = uVar24 - 1;
      puVar18[-0x40] = (uint)(uVar24 - 1 < uVar24) + (uint)(uVar24 < uVar25) + iVar16 + iVar7 + -1;
    }
    if (uVar12 == 0) {
      param_1[2] = (uint)puVar18;
      *param_1 = uVar4;
    }
    else {
      (*(code *)PTR_printf_0003a6f4)(PTR_LAB_0003a3e8 + 0x6b20,uVar13 - uVar4);
      uVar4 = param_1[1];
      uVar24 = *(uint *)puVar22;
      param_1[2] = (uint)puVar18;
      uVar13 = ((int)((int)puVar18 - uVar4) >> 3) * 0x3e0f83e1;
      *param_1 = uVar13;
      if (((uVar24 & 0x1080) != 0) && (uVar13 != 0)) {
        iVar20 = 0;
        uVar13 = 0;
        puVar22 = PTR_LAB_0003a3e8 + 0x6b54;
        while( true ) {
          iVar7 = uVar4 + iVar20;
          uVar13 = uVar13 + 1;
          iVar20 = iVar20 + 0x108;
          (*(code *)PTR_printf_0003a6f4)
                    (puVar22,*(undefined4 *)(iVar7 + 4),*(undefined4 *)(iVar7 + 0xc),
                     *(undefined4 *)(iVar7 + 0x10));
          if (*param_1 <= uVar13) break;
          uVar4 = param_1[1];
        }
        return;
      }
    }
    return;
  }
  uVar12 = *(uint *)PTR_debug_level_0003a418 & 0x1080;
  puVar23 = PTR_LAB_0003a3e8 + 0x6ae0;
  puVar21 = PTR_LAB_0003a3e8 + 0x6b10;
  puVar19 = puVar18;
  if (uVar4 == uVar24) goto LAB_0001e9b8;
LAB_0001e92c:
  if (((uint *)param_1[1] < puVar19) && (puVar19[-0x40] == 0 && puVar19[-0x3f] == 0)) {
    puVar19[-0x3f] = uVar13 - 1;
    puVar19[-0x40] = (uint)(uVar13 - 1 < uVar13) + (uVar4 - 1);
  }
  uVar10 = puVar18[2];
  puVar6 = puVar18;
  puVar5 = puVar19;
  if ((uVar10 == 0 && puVar18[3] == 0) ||
     ((uVar4 <= uVar10 && ((uVar4 != uVar10 || (uVar13 <= puVar18[3])))))) {
    do {
      puVar11 = puVar5;
      puVar15 = puVar6;
      puVar6 = puVar15 + 4;
      uVar24 = puVar15[1];
      uVar13 = puVar15[2];
      uVar4 = puVar15[3];
      *puVar11 = *puVar15;
      puVar11[1] = uVar24;
      puVar11[2] = uVar13;
      puVar11[3] = uVar4;
      puVar5 = puVar11 + 4;
    } while (puVar6 != puVar18 + 0x40);
    puVar19 = puVar19 + 0x42;
    uVar4 = puVar15[5];
    puVar11[4] = *puVar6;
    puVar11[5] = uVar4;
    uVar24 = *puVar18;
    uVar25 = puVar18[1];
    puVar15 = (uint *)param_1[2];
  }
LAB_0001e998:
  puVar18 = puVar18 + 0x42;
  if (puVar18 < puVar15) {
    do {
      uVar4 = *puVar18;
      uVar13 = puVar18[1];
      if (uVar4 != uVar24) goto LAB_0001e92c;
LAB_0001e9b8:
      if (uVar13 != uVar25) goto LAB_0001e92c;
      bVar2 = *(byte *)(puVar18 + 7);
      bVar3 = *(byte *)(puVar19 + -0x3b);
      if (((bVar2 & 0x40) == 0) && ((bVar3 & 0x40) != 0)) {
        if (uVar12 != 0) {
          uVar4 = puVar18[4];
          uVar17 = 0x66;
          uVar13 = puVar19[-0x3e];
          uVar14 = 0x54;
          if ((char)bVar2 < '\0') {
            uVar17 = 0x46;
          }
          uVar9 = 0x74;
LAB_0001ecec:
          uVar8 = 0x66;
          if ((char)bVar3 < '\0') {
            uVar8 = 0x46;
          }
          (*(code *)PTR_printf_0003a6f4)(puVar23,uVar4,uVar14,uVar17,uVar13,uVar9,uVar8);
          (*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);
          uVar12 = *(uint *)puVar22 & 0x1080;
        }
      }
      else {
        if (((bVar2 ^ bVar3) & 0x40) != 0) goto LAB_0001eb60;
        if ((-1 < (char)bVar2) || ((char)bVar3 < '\0')) {
          if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;
          cVar1 = *(char *)puVar18[4];
          if (cVar1 != '_') {
            if (*(char *)puVar19[-0x3e] == '_') goto LAB_0001ecb8;
            if (cVar1 == '\0') goto LAB_0001eb60;
          }
          if ((((char *)puVar18[4])[1] == '_') || (*(char *)(puVar19[-0x3e] + 1) != '_'))
          goto LAB_0001eb60;
        }
LAB_0001ecb8:
        if (uVar12 != 0) {
          uVar4 = puVar18[4];
          uVar9 = 0x74;
          uVar13 = puVar19[-0x3e];
          uVar17 = 0x66;
          uVar14 = 0x74;
          if ((bVar3 & 0x40) == 0) {
            uVar9 = 0x54;
          }
          if ((bVar2 & 0x40) == 0) {
            uVar14 = 0x54;
          }
          if ((char)bVar2 < '\0') {
            uVar17 = 0x46;
          }
          goto LAB_0001ecec;
        }
      }
      puVar15 = puVar18;
      puVar6 = puVar19 + -0x42;
      do {
        puVar11 = puVar6;
        puVar5 = puVar15;
        puVar15 = puVar5 + 4;
        uVar10 = puVar5[1];
        uVar13 = puVar5[2];
        uVar4 = puVar5[3];
        *puVar11 = *puVar5;
        puVar11[1] = uVar10;
        puVar11[2] = uVar13;
        puVar11[3] = uVar4;
        puVar6 = puVar11 + 4;
      } while (puVar15 != puVar18 + 0x40);
      puVar18 = puVar18 + 0x42;
      uVar4 = puVar5[5];
      puVar11[4] = *puVar15;
      puVar11[5] = uVar4;
      puVar15 = (uint *)param_1[2];
      if (puVar15 <= puVar18) break;
    } while( true );
  }
  uVar4 = ((int)((int)puVar19 - param_1[1]) >> 3) * 0x3e0f83e1;
  puVar18 = puVar19;
  goto LAB_0001ea58;
LAB_0001eb60:
  uVar9 = 0x54;
  if (uVar12 != 0) {
    uVar14 = 0x54;
    if ((bVar2 & 0x40) != 0) {
      uVar14 = 0x74;
    }
    uVar17 = 0x66;
    if ((bVar3 & 0x40) != 0) {
      uVar9 = 0x74;
    }
    uVar8 = 0x66;
    if ((char)bVar2 < '\0') {
      uVar8 = 0x46;
    }
    if ((char)bVar3 < '\0') {
      uVar17 = 0x46;
    }
    (*(code *)PTR_printf_0003a6f4)(puVar23,puVar19[-0x3e],uVar9,uVar17,puVar18[4],uVar14,uVar8);
    (*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);
    puVar15 = (uint *)param_1[2];
    uVar12 = *(uint *)puVar22 & 0x1080;
  }
  goto LAB_0001e998;
}


lui gp,0x2
addiu gp,gp,0x3b44
addu gp,gp,t9
lw a1,0x0(a0)
bne a1,zero,0x0001e88c
_nop
jr ra
_nop
addiu sp,sp,-0x50
lw a3,-0x7fc8(gp)
lw t9,-0x7dc0(gp)
li a2,0x108
sw s2,0x30(sp)
or s2,a0,zero
sw gp,0x20(sp)
addiu a3,a3,-0x1890
sw s8,0x48(sp)
sw s7,0x44(sp)
sw s5,0x3c(sp)
sw s1,0x2c(sp)
sw ra,0x4c(sp)
sw s6,0x40(sp)
sw s4,0x38(sp)
sw s3,0x34(sp)
sw s0,0x28(sp)
jalr t9
_lw a0,0x4(a0)
lw s1,0x4(s2)
lw gp,0x20(sp)
lw a3,0x8(s2)
lw a1,0x4(s1)
lw v0,0x0(s1)
sltu v1,s1,a3
lw s5,-0x7f98(gp)
addiu s8,a1,0x1
sltu s7,s8,a1
beq v1,zero,0x0001edbc
_addu s7,s7,v0
lw a0,0x0(s5)
li s6,0x46
lw s4,-0x7fc8(gp)
or s0,s1,zero
lw s3,-0x7fc8(gp)
andi a0,a0,0x1080
addiu s4,s4,0x6ae0
addiu s3,s3,0x6b10
beq v0,s7,0x0001e9b8
_or t1,a0,zero
lw v1,0x4(s2)
sltu v1,v1,s1
beq v1,zero,0x0001e964
_nop
lw v1,-0x100(s1)
lw a2,-0xfc(s1)
or v1,v1,a2
bne v1,zero,0x0001e964
_addiu t0,a1,-0x1
addiu v1,v0,-0x1
sltu a2,t0,a1
sw t0,-0xfc(s1)
addu v1,a2,v1
sw v1,-0x100(s1)
lw v1,0x8(s0)
lw a2,0xc(s0)
or t0,v1,a2
beq t0,zero,0x0001eab8
_addiu t2,s0,0x100
sltu t0,v1,v0
bne t0,zero,0x0001e998
_nop
bne v0,v1,0x0001eabc
_or v0,s0,zero
sltu a1,a2,a1
beq a1,zero,0x0001eac0
_or v1,s1,zero
addiu s0,s0,0x108
sltu v0,s0,a3
beq v0,zero,0x0001ea40
_nop
lw v0,0x0(s0)
or t1,a0,zero
bne v0,s7,0x0001e92c
_lw a1,0x4(s0)
bne a1,s8,0x0001e92c
_nop
lbu v0,0x1c(s0)
andi v1,v0,0x40
bne v1,zero,0x0001eb10
_lbu t2,-0xec(s1)
andi a1,t2,0x40
beq a1,zero,0x0001eb10
_nop
bne a0,zero,0x0001eda0
_srl v0,v0,0x7
addiu v1,s1,-0x108
addiu t2,s0,0x100
or v0,s0,zero
lw t0,0x0(v0)
addiu v0,v0,0x10
addiu v1,v1,0x10
lw a3,-0xc(v0)
lw a2,-0x8(v0)
lw a1,-0x4(v0)
sw t0,-0x10(v1)
sw a3,-0xc(v1)
sw a2,-0x8(v1)
bne v0,t2,0x0001e9f0
_sw a1,-0x4(v1)
lw a1,0x0(v0)
addiu s0,s0,0x108
lw v0,0x4(v0)
sw a1,0x0(v1)
sw v0,0x4(v1)
lw a3,0x8(s2)
sltu v0,s0,a3
bne v0,zero,0x0001e9a8
_nop
lw v0,0x4(s2)
lui a1,0x3e0f
ori a1,a1,0x83e1
subu v0,s1,v0
sra v0,v0,0x3
mul v0,v0,a1
lw a1,0x0(s2)
beq a1,zero,0x0001ea78
_nop
lw v1,-0x100(s1)
lw a0,-0xfc(s1)
or v1,v1,a0
beq v1,zero,0x0001ed38
_lw v1,-0x7e7c(gp)
bne t1,zero,0x0001ebf0
_lw a0,-0x7fc8(gp)
sw s1,0x8(s2)
sw v0,0x0(s2)
lw ra,0x4c(sp)
lw s8,0x48(sp)
lw s7,0x44(sp)
lw s6,0x40(sp)
lw s5,0x3c(sp)
lw s4,0x38(sp)
lw s3,0x34(sp)
lw s2,0x30(sp)
lw s1,0x2c(sp)
lw s0,0x28(sp)
jr ra
_addiu sp,sp,0x50
or v0,s0,zero
or v1,s1,zero
lw t0,0x0(v0)
addiu v0,v0,0x10
addiu v1,v1,0x10
lw a3,-0xc(v0)
lw a2,-0x8(v0)
lw a1,-0x4(v0)
sw t0,-0x10(v1)
sw a3,-0xc(v1)
sw a2,-0x8(v1)
bne v0,t2,0x0001eac0
_sw a1,-0x4(v1)
lw a1,0x0(v0)
addiu s1,s1,0x108
lw v0,0x4(v0)
sw a1,0x0(v1)
sw v0,0x4(v1)
lw s7,0x0(s0)
lw s8,0x4(s0)
b 0x0001e998
_lw a3,0x8(s2)
xor a1,v0,t2
andi t0,a1,0x40
bne t0,zero,0x0001eb60
_nop
seb t0,v0
bltz t0,0x0001ecb0
_seb a2,t2
seb a1,a1
bltz a1,0x0001eb60
_li a1,0x5f
lw t3,0x10(s0)
lb a2,0x0(t3)
beq a2,a1,0x0001ed78
_nop
lw t4,-0xf8(s1)
lb t4,0x0(t4)
beq t4,a1,0x0001ecb8
_nop
bne a2,zero,0x0001ed78
_nop
beq a0,zero,0x0001e998
_li t0,0x54
lw t3,0x10(s0)
li t1,0x74
lw t9,-0x7cbc(gp)
or a1,t0,zero
movn a1,t1,v1
li a0,0x66
srl v0,v0,0x7
srl a3,t2,0x7
andi a2,t2,0x40
or v1,a1,zero
movn t0,t1,a2
or a1,a0,zero
movn a1,s6,v0
movn a0,s6,a3
or a2,t0,zero
or v0,a1,zero
lw a1,-0xf8(s1)
sw v1,0x14(sp)
or a3,a0,zero
sw t3,0x10(sp)
or a0,s4,zero
jalr t9
_sw v0,0x18(sp)
or a0,s3,zero
lw gp,0x20(sp)
lw t9,-0x7cbc(gp)
jalr t9
_lw a1,0x4(s0)
lw a0,0x0(s5)
lw gp,0x20(sp)
lw a3,0x8(s2)
andi a0,a0,0x1080
b 0x0001e998
_or t1,a0,zero
subu a1,a1,v0
lw t9,-0x7cbc(gp)
jalr t9
_addiu a0,a0,0x6b20
lui a1,0x3e0f
lw v0,0x4(s2)
ori a1,a1,0x83e1
lw a0,0x0(s5)
lw gp,0x20(sp)
subu v1,s1,v0
sw s1,0x8(s2)
andi a0,a0,0x1080
sra v1,v1,0x3
mul v1,v1,a1
beq a0,zero,0x0001ea88
_sw v1,0x0(s2)
beq v1,zero,0x0001ea88
_lw s3,-0x7fc8(gp)
or s1,zero,zero
or s0,zero,zero
b 0x0001ec4c
_addiu s3,s3,0x6b54
lw v0,0x4(s2)
addu v0,v0,s1
lw t9,-0x7cbc(gp)
or a0,s3,zero
addiu s0,s0,0x1
lw a3,0x10(v0)
addiu s1,s1,0x108
lw a2,0xc(v0)
jalr t9
_lw a1,0x4(v0)
lw v0,0x0(s2)
sltu v0,s0,v0
bne v0,zero,0x0001ec48
_lw gp,0x20(sp)
lw ra,0x4c(sp)
lw s8,0x48(sp)
lw s7,0x44(sp)
lw s6,0x40(sp)
lw s5,0x3c(sp)
lw s4,0x38(sp)
lw s3,0x34(sp)
lw s2,0x30(sp)
lw s1,0x2c(sp)
lw s0,0x28(sp)
jr ra
_addiu sp,sp,0x50
bltz a2,0x0001eb2c
_nop
beq a0,zero,0x0001e9e4
_li t3,0x54
lw a1,0x10(s0)
li a0,0x74
lw t1,-0xf8(s1)
andi v0,t2,0x40
li a3,0x66
or a2,a0,zero
movz a0,t3,v0
slti t0,t0,0x0
movz a2,t3,v1
movn a3,s6,t0
or v0,a0,zero
srl t2,t2,0x7
lw t9,-0x7cbc(gp)
or a0,s4,zero
sw v0,0x14(sp)
li v0,0x66
sw t1,0x10(sp)
movn v0,s6,t2
jalr t9
_sw v0,0x18(sp)
or a0,s3,zero
lw gp,0x20(sp)
lw t9,-0x7cbc(gp)
jalr t9
_lw a1,0x4(s0)
lw a0,0x0(s5)
lw gp,0x20(sp)
andi a0,a0,0x1080
b 0x0001e9e4
_or t1,a0,zero
lw a2,0x0(v1)
lw a0,0x24(a2)
lw v1,0x34(a2)
lw a3,0x20(a2)
lw a2,0x30(a2)
addu v1,a0,v1
addu a2,a3,a2
sltu a0,v1,a0
addu a0,a0,a2
addiu a2,v1,-0x1
addiu a0,a0,-0x1
sltu v1,a2,v1
sw a2,-0xfc(s1)
addu v1,v1,a0
b 0x0001ea78
_sw v1,-0x100(s1)
lb a2,0x1(t3)
li a1,0x5f
beq a2,a1,0x0001eb60
_nop
lw a2,-0xf8(s1)
lb a2,0x1(a2)
bne a2,a1,0x0001eb60
_nop
b 0x0001ecb8
_nop
lw a1,0x10(s0)
li a3,0x66
lw t1,-0xf8(s1)
li a2,0x54
movn a3,s6,v0
b 0x0001ecec
_li v0,0x74
lw t1,0x0(s5)
or v0,zero,zero
b 0x0001ea58
_andi t1,t1,0x1080
(translation_unit "void symtab_finalize(uint *param_1)\n\n{\n  char cVar1;\n  byte bVar2;\n  byte bVar3;\n  uint uVar4;\n  uint *puVar5;\n  uint *puVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  uint uVar10;\n  uint *puVar11;\n  uint uVar12;\n  uint uVar13;\n  undefined4 uVar14;\n  uint *puVar15;\n  int iVar16;\n  undefined4 uVar17;\n  uint *puVar18;\n  uint *puVar19;\n  int iVar20;\n  undefined *puVar21;\n  undefined *puVar22;\n  undefined *puVar23;\n  uint uVar24;\n  uint uVar25;\n  \n  if (*param_1 == 0) {\n    return;\n  }\n  (*(code *)PTR_qsort_0003a5f0)(param_1[1],*param_1,0x108,PTR_LAB_0003a3e8 + -0x1890);\n  puVar22 = PTR_debug_level_0003a418;\n  puVar18 = (uint *)param_1[1];\n  puVar15 = (uint *)param_1[2];\n  uVar13 = puVar18[1];\n  uVar4 = *puVar18;\n  uVar25 = uVar13 + 1;\n  uVar24 = (uVar25 < uVar13) + uVar4;\n  if (puVar15 <= puVar18) {\n    uVar4 = 0;\n    uVar12 = *(uint *)PTR_debug_level_0003a418 & 0x1080;\nLAB_0001ea58:\n    uVar13 = *param_1;\n    if ((uVar13 != 0) && (puVar18[-0x40] == 0 && puVar18[-0x3f] == 0)) {\n      iVar20 = *(int *)PTR_core_text_sect_0003a534;\n      uVar25 = *(uint *)(iVar20 + 0x24);\n      iVar16 = *(int *)(iVar20 + 0x20);\n      iVar7 = *(int *)(iVar20 + 0x30);\n      uVar24 = uVar25 + *(int *)(iVar20 + 0x34);\n      puVar18[-0x3f] = uVar24 - 1;\n      puVar18[-0x40] = (uint)(uVar24 - 1 < uVar24) + (uint)(uVar24 < uVar25) + iVar16 + iVar7 + -1;\n    }\n    if (uVar12 == 0) {\n      param_1[2] = (uint)puVar18;\n      *param_1 = uVar4;\n    }\n    else {\n      (*(code *)PTR_printf_0003a6f4)(PTR_LAB_0003a3e8 + 0x6b20,uVar13 - uVar4);\n      uVar4 = param_1[1];\n      uVar24 = *(uint *)puVar22;\n      param_1[2] = (uint)puVar18;\n      uVar13 = ((int)((int)puVar18 - uVar4) >> 3) * 0x3e0f83e1;\n      *param_1 = uVar13;\n      if (((uVar24 & 0x1080) != 0) && (uVar13 != 0)) {\n        iVar20 = 0;\n        uVar13 = 0;\n        puVar22 = PTR_LAB_0003a3e8 + 0x6b54;\n        while( true ) {\n          iVar7 = uVar4 + iVar20;\n          uVar13 = uVar13 + 1;\n          iVar20 = iVar20 + 0x108;\n          (*(code *)PTR_printf_0003a6f4)\n                    (puVar22,*(undefined4 *)(iVar7 + 4),*(undefined4 *)(iVar7 + 0xc),\n                     *(undefined4 *)(iVar7 + 0x10));\n          if (*param_1 <= uVar13) break;\n          uVar4 = param_1[1];\n        }\n        return;\n      }\n    }\n    return;\n  }\n  uVar12 = *(uint *)PTR_debug_level_0003a418 & 0x1080;\n  puVar23 = PTR_LAB_0003a3e8 + 0x6ae0;\n  puVar21 = PTR_LAB_0003a3e8 + 0x6b10;\n  puVar19 = puVar18;\n  if (uVar4 == uVar24) goto LAB_0001e9b8;\nLAB_0001e92c:\n  if (((uint *)param_1[1] < puVar19) && (puVar19[-0x40] == 0 && puVar19[-0x3f] == 0)) {\n    puVar19[-0x3f] = uVar13 - 1;\n    puVar19[-0x40] = (uint)(uVar13 - 1 < uVar13) + (uVar4 - 1);\n  }\n  uVar10 = puVar18[2];\n  puVar6 = puVar18;\n  puVar5 = puVar19;\n  if ((uVar10 == 0 && puVar18[3] == 0) ||\n     ((uVar4 <= uVar10 && ((uVar4 != uVar10 || (uVar13 <= puVar18[3])))))) {\n    do {\n      puVar11 = puVar5;\n      puVar15 = puVar6;\n      puVar6 = puVar15 + 4;\n      uVar24 = puVar15[1];\n      uVar13 = puVar15[2];\n      uVar4 = puVar15[3];\n      *puVar11 = *puVar15;\n      puVar11[1] = uVar24;\n      puVar11[2] = uVar13;\n      puVar11[3] = uVar4;\n      puVar5 = puVar11 + 4;\n    } while (puVar6 != puVar18 + 0x40);\n    puVar19 = puVar19 + 0x42;\n    uVar4 = puVar15[5];\n    puVar11[4] = *puVar6;\n    puVar11[5] = uVar4;\n    uVar24 = *puVar18;\n    uVar25 = puVar18[1];\n    puVar15 = (uint *)param_1[2];\n  }\nLAB_0001e998:\n  puVar18 = puVar18 + 0x42;\n  if (puVar18 < puVar15) {\n    do {\n      uVar4 = *puVar18;\n      uVar13 = puVar18[1];\n      if (uVar4 != uVar24) goto LAB_0001e92c;\nLAB_0001e9b8:\n      if (uVar13 != uVar25) goto LAB_0001e92c;\n      bVar2 = *(byte *)(puVar18 + 7);\n      bVar3 = *(byte *)(puVar19 + -0x3b);\n      if (((bVar2 & 0x40) == 0) && ((bVar3 & 0x40) != 0)) {\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar17 = 0x66;\n          uVar13 = puVar19[-0x3e];\n          uVar14 = 0x54;\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          uVar9 = 0x74;\nLAB_0001ecec:\n          uVar8 = 0x66;\n          if ((char)bVar3 < '\0') {\n            uVar8 = 0x46;\n          }\n          (*(code *)PTR_printf_0003a6f4)(puVar23,uVar4,uVar14,uVar17,uVar13,uVar9,uVar8);\n          (*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);\n          uVar12 = *(uint *)puVar22 & 0x1080;\n        }\n      }\n      else {\n        if (((bVar2 ^ bVar3) & 0x40) != 0) goto LAB_0001eb60;\n        if ((-1 < (char)bVar2) || ((char)bVar3 < '\0')) {\n          if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;\n          cVar1 = *(char *)puVar18[4];\n          if (cVar1 != '_') {\n            if (*(char *)puVar19[-0x3e] == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }\n          if ((((char *)puVar18[4])[1] == '_') || (*(char *)(puVar19[-0x3e] + 1) != '_'))\n          goto LAB_0001eb60;\n        }\nLAB_0001ecb8:\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar9 = 0x74;\n          uVar13 = puVar19[-0x3e];\n          uVar17 = 0x66;\n          uVar14 = 0x74;\n          if ((bVar3 & 0x40) == 0) {\n            uVar9 = 0x54;\n          }\n          if ((bVar2 & 0x40) == 0) {\n            uVar14 = 0x54;\n          }\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          goto LAB_0001ecec;\n        }\n      }\n      puVar15 = puVar18;\n      puVar6 = puVar19 + -0x42;\n      do {\n        puVar11 = puVar6;\n        puVar5 = puVar15;\n        puVar15 = puVar5 + 4;\n        uVar10 = puVar5[1];\n        uVar13 = puVar5[2];\n        uVar4 = puVar5[3];\n        *puVar11 = *puVar5;\n        puVar11[1] = uVar10;\n        puVar11[2] = uVar13;\n        puVar11[3] = uVar4;\n        puVar6 = puVar11 + 4;\n      } while (puVar15 != puVar18 + 0x40);\n      puVar18 = puVar18 + 0x42;\n      uVar4 = puVar5[5];\n      puVar11[4] = *puVar15;\n      puVar11[5] = uVar4;\n      puVar15 = (uint *)param_1[2];\n      if (puVar15 <= puVar18) break;\n    } while( true );\n  }\n  uVar4 = ((int)((int)puVar19 - param_1[1]) >> 3) * 0x3e0f83e1;\n  puVar18 = puVar19;\n  goto LAB_0001ea58;\nLAB_0001eb60:\n  uVar9 = 0x54;\n  if (uVar12 != 0) {\n    uVar14 = 0x54;\n    if ((bVar2 & 0x40) != 0) {\n      uVar14 = 0x74;\n    }\n    uVar17 = 0x66;\n    if ((bVar3 & 0x40) != 0) {\n      uVar9 = 0x74;\n    }\n    uVar8 = 0x66;\n    if ((char)bVar2 < '\0') {\n      uVar8 = 0x46;\n    }\n    if ((char)bVar3 < '\0') {\n      uVar17 = 0x46;\n    }\n    (*(code *)PTR_printf_0003a6f4)(puVar23,puVar19[-0x3e],uVar9,uVar17,puVar18[4],uVar14,uVar8);\n    (*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);\n    puVar15 = (uint *)param_1[2];\n    uVar12 = *(uint *)puVar22 & 0x1080;\n  }\n  goto LAB_0001e998;\n}\n\n" (function_definition "void symtab_finalize(uint *param_1)\n\n{\n  char cVar1;\n  byte bVar2;\n  byte bVar3;\n  uint uVar4;\n  uint *puVar5;\n  uint *puVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  uint uVar10;\n  uint *puVar11;\n  uint uVar12;\n  uint uVar13;\n  undefined4 uVar14;\n  uint *puVar15;\n  int iVar16;\n  undefined4 uVar17;\n  uint *puVar18;\n  uint *puVar19;\n  int iVar20;\n  undefined *puVar21;\n  undefined *puVar22;\n  undefined *puVar23;\n  uint uVar24;\n  uint uVar25;\n  \n  if (*param_1 == 0) {\n    return;\n  }\n  (*(code *)PTR_qsort_0003a5f0)(param_1[1],*param_1,0x108,PTR_LAB_0003a3e8 + -0x1890);\n  puVar22 = PTR_debug_level_0003a418;\n  puVar18 = (uint *)param_1[1];\n  puVar15 = (uint *)param_1[2];\n  uVar13 = puVar18[1];\n  uVar4 = *puVar18;\n  uVar25 = uVar13 + 1;\n  uVar24 = (uVar25 < uVar13) + uVar4;\n  if (puVar15 <= puVar18) {\n    uVar4 = 0;\n    uVar12 = *(uint *)PTR_debug_level_0003a418 & 0x1080;\nLAB_0001ea58:\n    uVar13 = *param_1;\n    if ((uVar13 != 0) && (puVar18[-0x40] == 0 && puVar18[-0x3f] == 0)) {\n      iVar20 = *(int *)PTR_core_text_sect_0003a534;\n      uVar25 = *(uint *)(iVar20 + 0x24);\n      iVar16 = *(int *)(iVar20 + 0x20);\n      iVar7 = *(int *)(iVar20 + 0x30);\n      uVar24 = uVar25 + *(int *)(iVar20 + 0x34);\n      puVar18[-0x3f] = uVar24 - 1;\n      puVar18[-0x40] = (uint)(uVar24 - 1 < uVar24) + (uint)(uVar24 < uVar25) + iVar16 + iVar7 + -1;\n    }\n    if (uVar12 == 0) {\n      param_1[2] = (uint)puVar18;\n      *param_1 = uVar4;\n    }\n    else {\n      (*(code *)PTR_printf_0003a6f4)(PTR_LAB_0003a3e8 + 0x6b20,uVar13 - uVar4);\n      uVar4 = param_1[1];\n      uVar24 = *(uint *)puVar22;\n      param_1[2] = (uint)puVar18;\n      uVar13 = ((int)((int)puVar18 - uVar4) >> 3) * 0x3e0f83e1;\n      *param_1 = uVar13;\n      if (((uVar24 & 0x1080) != 0) && (uVar13 != 0)) {\n        iVar20 = 0;\n        uVar13 = 0;\n        puVar22 = PTR_LAB_0003a3e8 + 0x6b54;\n        while( true ) {\n          iVar7 = uVar4 + iVar20;\n          uVar13 = uVar13 + 1;\n          iVar20 = iVar20 + 0x108;\n          (*(code *)PTR_printf_0003a6f4)\n                    (puVar22,*(undefined4 *)(iVar7 + 4),*(undefined4 *)(iVar7 + 0xc),\n                     *(undefined4 *)(iVar7 + 0x10));\n          if (*param_1 <= uVar13) break;\n          uVar4 = param_1[1];\n        }\n        return;\n      }\n    }\n    return;\n  }\n  uVar12 = *(uint *)PTR_debug_level_0003a418 & 0x1080;\n  puVar23 = PTR_LAB_0003a3e8 + 0x6ae0;\n  puVar21 = PTR_LAB_0003a3e8 + 0x6b10;\n  puVar19 = puVar18;\n  if (uVar4 == uVar24) goto LAB_0001e9b8;\nLAB_0001e92c:\n  if (((uint *)param_1[1] < puVar19) && (puVar19[-0x40] == 0 && puVar19[-0x3f] == 0)) {\n    puVar19[-0x3f] = uVar13 - 1;\n    puVar19[-0x40] = (uint)(uVar13 - 1 < uVar13) + (uVar4 - 1);\n  }\n  uVar10 = puVar18[2];\n  puVar6 = puVar18;\n  puVar5 = puVar19;\n  if ((uVar10 == 0 && puVar18[3] == 0) ||\n     ((uVar4 <= uVar10 && ((uVar4 != uVar10 || (uVar13 <= puVar18[3])))))) {\n    do {\n      puVar11 = puVar5;\n      puVar15 = puVar6;\n      puVar6 = puVar15 + 4;\n      uVar24 = puVar15[1];\n      uVar13 = puVar15[2];\n      uVar4 = puVar15[3];\n      *puVar11 = *puVar15;\n      puVar11[1] = uVar24;\n      puVar11[2] = uVar13;\n      puVar11[3] = uVar4;\n      puVar5 = puVar11 + 4;\n    } while (puVar6 != puVar18 + 0x40);\n    puVar19 = puVar19 + 0x42;\n    uVar4 = puVar15[5];\n    puVar11[4] = *puVar6;\n    puVar11[5] = uVar4;\n    uVar24 = *puVar18;\n    uVar25 = puVar18[1];\n    puVar15 = (uint *)param_1[2];\n  }\nLAB_0001e998:\n  puVar18 = puVar18 + 0x42;\n  if (puVar18 < puVar15) {\n    do {\n      uVar4 = *puVar18;\n      uVar13 = puVar18[1];\n      if (uVar4 != uVar24) goto LAB_0001e92c;\nLAB_0001e9b8:\n      if (uVar13 != uVar25) goto LAB_0001e92c;\n      bVar2 = *(byte *)(puVar18 + 7);\n      bVar3 = *(byte *)(puVar19 + -0x3b);\n      if (((bVar2 & 0x40) == 0) && ((bVar3 & 0x40) != 0)) {\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar17 = 0x66;\n          uVar13 = puVar19[-0x3e];\n          uVar14 = 0x54;\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          uVar9 = 0x74;\nLAB_0001ecec:\n          uVar8 = 0x66;\n          if ((char)bVar3 < '\0') {\n            uVar8 = 0x46;\n          }\n          (*(code *)PTR_printf_0003a6f4)(puVar23,uVar4,uVar14,uVar17,uVar13,uVar9,uVar8);\n          (*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);\n          uVar12 = *(uint *)puVar22 & 0x1080;\n        }\n      }\n      else {\n        if (((bVar2 ^ bVar3) & 0x40) != 0) goto LAB_0001eb60;\n        if ((-1 < (char)bVar2) || ((char)bVar3 < '\0')) {\n          if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;\n          cVar1 = *(char *)puVar18[4];\n          if (cVar1 != '_') {\n            if (*(char *)puVar19[-0x3e] == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }\n          if ((((char *)puVar18[4])[1] == '_') || (*(char *)(puVar19[-0x3e] + 1) != '_'))\n          goto LAB_0001eb60;\n        }\nLAB_0001ecb8:\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar9 = 0x74;\n          uVar13 = puVar19[-0x3e];\n          uVar17 = 0x66;\n          uVar14 = 0x74;\n          if ((bVar3 & 0x40) == 0) {\n            uVar9 = 0x54;\n          }\n          if ((bVar2 & 0x40) == 0) {\n            uVar14 = 0x54;\n          }\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          goto LAB_0001ecec;\n        }\n      }\n      puVar15 = puVar18;\n      puVar6 = puVar19 + -0x42;\n      do {\n        puVar11 = puVar6;\n        puVar5 = puVar15;\n        puVar15 = puVar5 + 4;\n        uVar10 = puVar5[1];\n        uVar13 = puVar5[2];\n        uVar4 = puVar5[3];\n        *puVar11 = *puVar5;\n        puVar11[1] = uVar10;\n        puVar11[2] = uVar13;\n        puVar11[3] = uVar4;\n        puVar6 = puVar11 + 4;\n      } while (puVar15 != puVar18 + 0x40);\n      puVar18 = puVar18 + 0x42;\n      uVar4 = puVar5[5];\n      puVar11[4] = *puVar15;\n      puVar11[5] = uVar4;\n      puVar15 = (uint *)param_1[2];\n      if (puVar15 <= puVar18) break;\n    } while( true );\n  }\n  uVar4 = ((int)((int)puVar19 - param_1[1]) >> 3) * 0x3e0f83e1;\n  puVar18 = puVar19;\n  goto LAB_0001ea58;\nLAB_0001eb60:\n  uVar9 = 0x54;\n  if (uVar12 != 0) {\n    uVar14 = 0x54;\n    if ((bVar2 & 0x40) != 0) {\n      uVar14 = 0x74;\n    }\n    uVar17 = 0x66;\n    if ((bVar3 & 0x40) != 0) {\n      uVar9 = 0x74;\n    }\n    uVar8 = 0x66;\n    if ((char)bVar2 < '\0') {\n      uVar8 = 0x46;\n    }\n    if ((char)bVar3 < '\0') {\n      uVar17 = 0x46;\n    }\n    (*(code *)PTR_printf_0003a6f4)(puVar23,puVar19[-0x3e],uVar9,uVar17,puVar18[4],uVar14,uVar8);\n    (*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);\n    puVar15 = (uint *)param_1[2];\n    uVar12 = *(uint *)puVar22 & 0x1080;\n  }\n  goto LAB_0001e998;\n}" primitive_type (function_declarator "symtab_finalize(uint *param_1)" identifier (parameter_list "(uint *param_1)" ( (parameter_declaration "uint *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  byte bVar2;\n  byte bVar3;\n  uint uVar4;\n  uint *puVar5;\n  uint *puVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  uint uVar10;\n  uint *puVar11;\n  uint uVar12;\n  uint uVar13;\n  undefined4 uVar14;\n  uint *puVar15;\n  int iVar16;\n  undefined4 uVar17;\n  uint *puVar18;\n  uint *puVar19;\n  int iVar20;\n  undefined *puVar21;\n  undefined *puVar22;\n  undefined *puVar23;\n  uint uVar24;\n  uint uVar25;\n  \n  if (*param_1 == 0) {\n    return;\n  }\n  (*(code *)PTR_qsort_0003a5f0)(param_1[1],*param_1,0x108,PTR_LAB_0003a3e8 + -0x1890);\n  puVar22 = PTR_debug_level_0003a418;\n  puVar18 = (uint *)param_1[1];\n  puVar15 = (uint *)param_1[2];\n  uVar13 = puVar18[1];\n  uVar4 = *puVar18;\n  uVar25 = uVar13 + 1;\n  uVar24 = (uVar25 < uVar13) + uVar4;\n  if (puVar15 <= puVar18) {\n    uVar4 = 0;\n    uVar12 = *(uint *)PTR_debug_level_0003a418 & 0x1080;\nLAB_0001ea58:\n    uVar13 = *param_1;\n    if ((uVar13 != 0) && (puVar18[-0x40] == 0 && puVar18[-0x3f] == 0)) {\n      iVar20 = *(int *)PTR_core_text_sect_0003a534;\n      uVar25 = *(uint *)(iVar20 + 0x24);\n      iVar16 = *(int *)(iVar20 + 0x20);\n      iVar7 = *(int *)(iVar20 + 0x30);\n      uVar24 = uVar25 + *(int *)(iVar20 + 0x34);\n      puVar18[-0x3f] = uVar24 - 1;\n      puVar18[-0x40] = (uint)(uVar24 - 1 < uVar24) + (uint)(uVar24 < uVar25) + iVar16 + iVar7 + -1;\n    }\n    if (uVar12 == 0) {\n      param_1[2] = (uint)puVar18;\n      *param_1 = uVar4;\n    }\n    else {\n      (*(code *)PTR_printf_0003a6f4)(PTR_LAB_0003a3e8 + 0x6b20,uVar13 - uVar4);\n      uVar4 = param_1[1];\n      uVar24 = *(uint *)puVar22;\n      param_1[2] = (uint)puVar18;\n      uVar13 = ((int)((int)puVar18 - uVar4) >> 3) * 0x3e0f83e1;\n      *param_1 = uVar13;\n      if (((uVar24 & 0x1080) != 0) && (uVar13 != 0)) {\n        iVar20 = 0;\n        uVar13 = 0;\n        puVar22 = PTR_LAB_0003a3e8 + 0x6b54;\n        while( true ) {\n          iVar7 = uVar4 + iVar20;\n          uVar13 = uVar13 + 1;\n          iVar20 = iVar20 + 0x108;\n          (*(code *)PTR_printf_0003a6f4)\n                    (puVar22,*(undefined4 *)(iVar7 + 4),*(undefined4 *)(iVar7 + 0xc),\n                     *(undefined4 *)(iVar7 + 0x10));\n          if (*param_1 <= uVar13) break;\n          uVar4 = param_1[1];\n        }\n        return;\n      }\n    }\n    return;\n  }\n  uVar12 = *(uint *)PTR_debug_level_0003a418 & 0x1080;\n  puVar23 = PTR_LAB_0003a3e8 + 0x6ae0;\n  puVar21 = PTR_LAB_0003a3e8 + 0x6b10;\n  puVar19 = puVar18;\n  if (uVar4 == uVar24) goto LAB_0001e9b8;\nLAB_0001e92c:\n  if (((uint *)param_1[1] < puVar19) && (puVar19[-0x40] == 0 && puVar19[-0x3f] == 0)) {\n    puVar19[-0x3f] = uVar13 - 1;\n    puVar19[-0x40] = (uint)(uVar13 - 1 < uVar13) + (uVar4 - 1);\n  }\n  uVar10 = puVar18[2];\n  puVar6 = puVar18;\n  puVar5 = puVar19;\n  if ((uVar10 == 0 && puVar18[3] == 0) ||\n     ((uVar4 <= uVar10 && ((uVar4 != uVar10 || (uVar13 <= puVar18[3])))))) {\n    do {\n      puVar11 = puVar5;\n      puVar15 = puVar6;\n      puVar6 = puVar15 + 4;\n      uVar24 = puVar15[1];\n      uVar13 = puVar15[2];\n      uVar4 = puVar15[3];\n      *puVar11 = *puVar15;\n      puVar11[1] = uVar24;\n      puVar11[2] = uVar13;\n      puVar11[3] = uVar4;\n      puVar5 = puVar11 + 4;\n    } while (puVar6 != puVar18 + 0x40);\n    puVar19 = puVar19 + 0x42;\n    uVar4 = puVar15[5];\n    puVar11[4] = *puVar6;\n    puVar11[5] = uVar4;\n    uVar24 = *puVar18;\n    uVar25 = puVar18[1];\n    puVar15 = (uint *)param_1[2];\n  }\nLAB_0001e998:\n  puVar18 = puVar18 + 0x42;\n  if (puVar18 < puVar15) {\n    do {\n      uVar4 = *puVar18;\n      uVar13 = puVar18[1];\n      if (uVar4 != uVar24) goto LAB_0001e92c;\nLAB_0001e9b8:\n      if (uVar13 != uVar25) goto LAB_0001e92c;\n      bVar2 = *(byte *)(puVar18 + 7);\n      bVar3 = *(byte *)(puVar19 + -0x3b);\n      if (((bVar2 & 0x40) == 0) && ((bVar3 & 0x40) != 0)) {\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar17 = 0x66;\n          uVar13 = puVar19[-0x3e];\n          uVar14 = 0x54;\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          uVar9 = 0x74;\nLAB_0001ecec:\n          uVar8 = 0x66;\n          if ((char)bVar3 < '\0') {\n            uVar8 = 0x46;\n          }\n          (*(code *)PTR_printf_0003a6f4)(puVar23,uVar4,uVar14,uVar17,uVar13,uVar9,uVar8);\n          (*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);\n          uVar12 = *(uint *)puVar22 & 0x1080;\n        }\n      }\n      else {\n        if (((bVar2 ^ bVar3) & 0x40) != 0) goto LAB_0001eb60;\n        if ((-1 < (char)bVar2) || ((char)bVar3 < '\0')) {\n          if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;\n          cVar1 = *(char *)puVar18[4];\n          if (cVar1 != '_') {\n            if (*(char *)puVar19[-0x3e] == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }\n          if ((((char *)puVar18[4])[1] == '_') || (*(char *)(puVar19[-0x3e] + 1) != '_'))\n          goto LAB_0001eb60;\n        }\nLAB_0001ecb8:\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar9 = 0x74;\n          uVar13 = puVar19[-0x3e];\n          uVar17 = 0x66;\n          uVar14 = 0x74;\n          if ((bVar3 & 0x40) == 0) {\n            uVar9 = 0x54;\n          }\n          if ((bVar2 & 0x40) == 0) {\n            uVar14 = 0x54;\n          }\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          goto LAB_0001ecec;\n        }\n      }\n      puVar15 = puVar18;\n      puVar6 = puVar19 + -0x42;\n      do {\n        puVar11 = puVar6;\n        puVar5 = puVar15;\n        puVar15 = puVar5 + 4;\n        uVar10 = puVar5[1];\n        uVar13 = puVar5[2];\n        uVar4 = puVar5[3];\n        *puVar11 = *puVar5;\n        puVar11[1] = uVar10;\n        puVar11[2] = uVar13;\n        puVar11[3] = uVar4;\n        puVar6 = puVar11 + 4;\n      } while (puVar15 != puVar18 + 0x40);\n      puVar18 = puVar18 + 0x42;\n      uVar4 = puVar5[5];\n      puVar11[4] = *puVar15;\n      puVar11[5] = uVar4;\n      puVar15 = (uint *)param_1[2];\n      if (puVar15 <= puVar18) break;\n    } while( true );\n  }\n  uVar4 = ((int)((int)puVar19 - param_1[1]) >> 3) * 0x3e0f83e1;\n  puVar18 = puVar19;\n  goto LAB_0001ea58;\nLAB_0001eb60:\n  uVar9 = 0x54;\n  if (uVar12 != 0) {\n    uVar14 = 0x54;\n    if ((bVar2 & 0x40) != 0) {\n      uVar14 = 0x74;\n    }\n    uVar17 = 0x66;\n    if ((bVar3 & 0x40) != 0) {\n      uVar9 = 0x74;\n    }\n    uVar8 = 0x66;\n    if ((char)bVar2 < '\0') {\n      uVar8 = 0x46;\n    }\n    if ((char)bVar3 < '\0') {\n      uVar17 = 0x46;\n    }\n    (*(code *)PTR_printf_0003a6f4)(puVar23,puVar19[-0x3e],uVar9,uVar17,puVar18[4],uVar14,uVar8);\n    (*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);\n    puVar15 = (uint *)param_1[2];\n    uVar12 = *(uint *)puVar22 & 0x1080;\n  }\n  goto LAB_0001e998;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "uint *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "undefined4 uVar14;" type_identifier identifier ;) (declaration "uint *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "undefined4 uVar17;" type_identifier identifier ;) (declaration "uint *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "uint *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "undefined *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "undefined *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "undefined *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "uint uVar24;" type_identifier identifier ;) (declaration "uint uVar25;" type_identifier identifier ;) (if_statement "if (*param_1 == 0) {\n    return;\n  }" if (parenthesized_expression "(*param_1 == 0)" ( (binary_expression "*param_1 == 0" (pointer_expression "*param_1" * identifier) == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "(*(code *)PTR_qsort_0003a5f0)(param_1[1],*param_1,0x108,PTR_LAB_0003a3e8 + -0x1890);" (call_expression "(*(code *)PTR_qsort_0003a5f0)(param_1[1],*param_1,0x108,PTR_LAB_0003a3e8 + -0x1890)" (parenthesized_expression "(*(code *)PTR_qsort_0003a5f0)" ( (pointer_expression "*(code *)PTR_qsort_0003a5f0" * (cast_expression "(code *)PTR_qsort_0003a5f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1[1],*param_1,0x108,PTR_LAB_0003a3e8 + -0x1890)" ( (subscript_expression "param_1[1]" identifier [ number_literal ]) , (pointer_expression "*param_1" * identifier) , number_literal , (binary_expression "PTR_LAB_0003a3e8 + -0x1890" identifier + number_literal) ))) ;) (expression_statement "puVar22 = PTR_debug_level_0003a418;" (assignment_expression "puVar22 = PTR_debug_level_0003a418" identifier = identifier) ;) (expression_statement "puVar18 = (uint *)param_1[1];" (assignment_expression "puVar18 = (uint *)param_1[1]" identifier = (cast_expression "(uint *)param_1[1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar15 = (uint *)param_1[2];" (assignment_expression "puVar15 = (uint *)param_1[2]" identifier = (cast_expression "(uint *)param_1[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (expression_statement "uVar13 = puVar18[1];" (assignment_expression "uVar13 = puVar18[1]" identifier = (subscript_expression "puVar18[1]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = *puVar18;" (assignment_expression "uVar4 = *puVar18" identifier = (pointer_expression "*puVar18" * identifier)) ;) (expression_statement "uVar25 = uVar13 + 1;" (assignment_expression "uVar25 = uVar13 + 1" identifier = (binary_expression "uVar13 + 1" identifier + number_literal)) ;) (expression_statement "uVar24 = (uVar25 < uVar13) + uVar4;" (assignment_expression "uVar24 = (uVar25 < uVar13) + uVar4" identifier = (binary_expression "(uVar25 < uVar13) + uVar4" (parenthesized_expression "(uVar25 < uVar13)" ( (binary_expression "uVar25 < uVar13" identifier < identifier) )) + identifier)) ;) (if_statement "if (puVar15 <= puVar18) {\n    uVar4 = 0;\n    uVar12 = *(uint *)PTR_debug_level_0003a418 & 0x1080;\nLAB_0001ea58:\n    uVar13 = *param_1;\n    if ((uVar13 != 0) && (puVar18[-0x40] == 0 && puVar18[-0x3f] == 0)) {\n      iVar20 = *(int *)PTR_core_text_sect_0003a534;\n      uVar25 = *(uint *)(iVar20 + 0x24);\n      iVar16 = *(int *)(iVar20 + 0x20);\n      iVar7 = *(int *)(iVar20 + 0x30);\n      uVar24 = uVar25 + *(int *)(iVar20 + 0x34);\n      puVar18[-0x3f] = uVar24 - 1;\n      puVar18[-0x40] = (uint)(uVar24 - 1 < uVar24) + (uint)(uVar24 < uVar25) + iVar16 + iVar7 + -1;\n    }\n    if (uVar12 == 0) {\n      param_1[2] = (uint)puVar18;\n      *param_1 = uVar4;\n    }\n    else {\n      (*(code *)PTR_printf_0003a6f4)(PTR_LAB_0003a3e8 + 0x6b20,uVar13 - uVar4);\n      uVar4 = param_1[1];\n      uVar24 = *(uint *)puVar22;\n      param_1[2] = (uint)puVar18;\n      uVar13 = ((int)((int)puVar18 - uVar4) >> 3) * 0x3e0f83e1;\n      *param_1 = uVar13;\n      if (((uVar24 & 0x1080) != 0) && (uVar13 != 0)) {\n        iVar20 = 0;\n        uVar13 = 0;\n        puVar22 = PTR_LAB_0003a3e8 + 0x6b54;\n        while( true ) {\n          iVar7 = uVar4 + iVar20;\n          uVar13 = uVar13 + 1;\n          iVar20 = iVar20 + 0x108;\n          (*(code *)PTR_printf_0003a6f4)\n                    (puVar22,*(undefined4 *)(iVar7 + 4),*(undefined4 *)(iVar7 + 0xc),\n                     *(undefined4 *)(iVar7 + 0x10));\n          if (*param_1 <= uVar13) break;\n          uVar4 = param_1[1];\n        }\n        return;\n      }\n    }\n    return;\n  }" if (parenthesized_expression "(puVar15 <= puVar18)" ( (binary_expression "puVar15 <= puVar18" identifier <= identifier) )) (compound_statement "{\n    uVar4 = 0;\n    uVar12 = *(uint *)PTR_debug_level_0003a418 & 0x1080;\nLAB_0001ea58:\n    uVar13 = *param_1;\n    if ((uVar13 != 0) && (puVar18[-0x40] == 0 && puVar18[-0x3f] == 0)) {\n      iVar20 = *(int *)PTR_core_text_sect_0003a534;\n      uVar25 = *(uint *)(iVar20 + 0x24);\n      iVar16 = *(int *)(iVar20 + 0x20);\n      iVar7 = *(int *)(iVar20 + 0x30);\n      uVar24 = uVar25 + *(int *)(iVar20 + 0x34);\n      puVar18[-0x3f] = uVar24 - 1;\n      puVar18[-0x40] = (uint)(uVar24 - 1 < uVar24) + (uint)(uVar24 < uVar25) + iVar16 + iVar7 + -1;\n    }\n    if (uVar12 == 0) {\n      param_1[2] = (uint)puVar18;\n      *param_1 = uVar4;\n    }\n    else {\n      (*(code *)PTR_printf_0003a6f4)(PTR_LAB_0003a3e8 + 0x6b20,uVar13 - uVar4);\n      uVar4 = param_1[1];\n      uVar24 = *(uint *)puVar22;\n      param_1[2] = (uint)puVar18;\n      uVar13 = ((int)((int)puVar18 - uVar4) >> 3) * 0x3e0f83e1;\n      *param_1 = uVar13;\n      if (((uVar24 & 0x1080) != 0) && (uVar13 != 0)) {\n        iVar20 = 0;\n        uVar13 = 0;\n        puVar22 = PTR_LAB_0003a3e8 + 0x6b54;\n        while( true ) {\n          iVar7 = uVar4 + iVar20;\n          uVar13 = uVar13 + 1;\n          iVar20 = iVar20 + 0x108;\n          (*(code *)PTR_printf_0003a6f4)\n                    (puVar22,*(undefined4 *)(iVar7 + 4),*(undefined4 *)(iVar7 + 0xc),\n                     *(undefined4 *)(iVar7 + 0x10));\n          if (*param_1 <= uVar13) break;\n          uVar4 = param_1[1];\n        }\n        return;\n      }\n    }\n    return;\n  }" { (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (expression_statement "uVar12 = *(uint *)PTR_debug_level_0003a418 & 0x1080;" (assignment_expression "uVar12 = *(uint *)PTR_debug_level_0003a418 & 0x1080" identifier = (binary_expression "*(uint *)PTR_debug_level_0003a418 & 0x1080" (pointer_expression "*(uint *)PTR_debug_level_0003a418" * (cast_expression "(uint *)PTR_debug_level_0003a418" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal)) ;) (labeled_statement "LAB_0001ea58:\n    uVar13 = *param_1;" statement_identifier : (expression_statement "uVar13 = *param_1;" (assignment_expression "uVar13 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;)) (if_statement "if ((uVar13 != 0) && (puVar18[-0x40] == 0 && puVar18[-0x3f] == 0)) {\n      iVar20 = *(int *)PTR_core_text_sect_0003a534;\n      uVar25 = *(uint *)(iVar20 + 0x24);\n      iVar16 = *(int *)(iVar20 + 0x20);\n      iVar7 = *(int *)(iVar20 + 0x30);\n      uVar24 = uVar25 + *(int *)(iVar20 + 0x34);\n      puVar18[-0x3f] = uVar24 - 1;\n      puVar18[-0x40] = (uint)(uVar24 - 1 < uVar24) + (uint)(uVar24 < uVar25) + iVar16 + iVar7 + -1;\n    }" if (parenthesized_expression "((uVar13 != 0) && (puVar18[-0x40] == 0 && puVar18[-0x3f] == 0))" ( (binary_expression "(uVar13 != 0) && (puVar18[-0x40] == 0 && puVar18[-0x3f] == 0)" (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )) && (parenthesized_expression "(puVar18[-0x40] == 0 && puVar18[-0x3f] == 0)" ( (binary_expression "puVar18[-0x40] == 0 && puVar18[-0x3f] == 0" (binary_expression "puVar18[-0x40] == 0" (subscript_expression "puVar18[-0x40]" identifier [ number_literal ]) == number_literal) && (binary_expression "puVar18[-0x3f] == 0" (subscript_expression "puVar18[-0x3f]" identifier [ number_literal ]) == number_literal)) ))) )) (compound_statement "{\n      iVar20 = *(int *)PTR_core_text_sect_0003a534;\n      uVar25 = *(uint *)(iVar20 + 0x24);\n      iVar16 = *(int *)(iVar20 + 0x20);\n      iVar7 = *(int *)(iVar20 + 0x30);\n      uVar24 = uVar25 + *(int *)(iVar20 + 0x34);\n      puVar18[-0x3f] = uVar24 - 1;\n      puVar18[-0x40] = (uint)(uVar24 - 1 < uVar24) + (uint)(uVar24 < uVar25) + iVar16 + iVar7 + -1;\n    }" { (expression_statement "iVar20 = *(int *)PTR_core_text_sect_0003a534;" (assignment_expression "iVar20 = *(int *)PTR_core_text_sect_0003a534" identifier = (pointer_expression "*(int *)PTR_core_text_sect_0003a534" * (cast_expression "(int *)PTR_core_text_sect_0003a534" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar25 = *(uint *)(iVar20 + 0x24);" (assignment_expression "uVar25 = *(uint *)(iVar20 + 0x24)" identifier = (pointer_expression "*(uint *)(iVar20 + 0x24)" * (cast_expression "(uint *)(iVar20 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x24)" ( (binary_expression "iVar20 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "iVar16 = *(int *)(iVar20 + 0x20);" (assignment_expression "iVar16 = *(int *)(iVar20 + 0x20)" identifier = (pointer_expression "*(int *)(iVar20 + 0x20)" * (cast_expression "(int *)(iVar20 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x20)" ( (binary_expression "iVar20 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(iVar20 + 0x30);" (assignment_expression "iVar7 = *(int *)(iVar20 + 0x30)" identifier = (pointer_expression "*(int *)(iVar20 + 0x30)" * (cast_expression "(int *)(iVar20 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x30)" ( (binary_expression "iVar20 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "uVar24 = uVar25 + *(int *)(iVar20 + 0x34);" (assignment_expression "uVar24 = uVar25 + *(int *)(iVar20 + 0x34)" identifier = (binary_expression "uVar25 + *(int *)(iVar20 + 0x34)" identifier + (pointer_expression "*(int *)(iVar20 + 0x34)" * (cast_expression "(int *)(iVar20 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x34)" ( (binary_expression "iVar20 + 0x34" identifier + number_literal) )))))) ;) (expression_statement "puVar18[-0x3f] = uVar24 - 1;" (assignment_expression "puVar18[-0x3f] = uVar24 - 1" (subscript_expression "puVar18[-0x3f]" identifier [ number_literal ]) = (binary_expression "uVar24 - 1" identifier - number_literal)) ;) (expression_statement "puVar18[-0x40] = (uint)(uVar24 - 1 < uVar24) + (uint)(uVar24 < uVar25) + iVar16 + iVar7 + -1;" (assignment_expression "puVar18[-0x40] = (uint)(uVar24 - 1 < uVar24) + (uint)(uVar24 < uVar25) + iVar16 + iVar7 + -1" (subscript_expression "puVar18[-0x40]" identifier [ number_literal ]) = (binary_expression "(uint)(uVar24 - 1 < uVar24) + (uint)(uVar24 < uVar25) + iVar16 + iVar7 + -1" (binary_expression "(uint)(uVar24 - 1 < uVar24) + (uint)(uVar24 < uVar25) + iVar16 + iVar7" (binary_expression "(uint)(uVar24 - 1 < uVar24) + (uint)(uVar24 < uVar25) + iVar16" (binary_expression "(uint)(uVar24 - 1 < uVar24) + (uint)(uVar24 < uVar25)" (call_expression "(uint)(uVar24 - 1 < uVar24)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar24 - 1 < uVar24)" ( (binary_expression "uVar24 - 1 < uVar24" (binary_expression "uVar24 - 1" identifier - number_literal) < identifier) ))) + (call_expression "(uint)(uVar24 < uVar25)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar24 < uVar25)" ( (binary_expression "uVar24 < uVar25" identifier < identifier) )))) + identifier) + identifier) + number_literal)) ;) })) (if_statement "if (uVar12 == 0) {\n      param_1[2] = (uint)puVar18;\n      *param_1 = uVar4;\n    }\n    else {\n      (*(code *)PTR_printf_0003a6f4)(PTR_LAB_0003a3e8 + 0x6b20,uVar13 - uVar4);\n      uVar4 = param_1[1];\n      uVar24 = *(uint *)puVar22;\n      param_1[2] = (uint)puVar18;\n      uVar13 = ((int)((int)puVar18 - uVar4) >> 3) * 0x3e0f83e1;\n      *param_1 = uVar13;\n      if (((uVar24 & 0x1080) != 0) && (uVar13 != 0)) {\n        iVar20 = 0;\n        uVar13 = 0;\n        puVar22 = PTR_LAB_0003a3e8 + 0x6b54;\n        while( true ) {\n          iVar7 = uVar4 + iVar20;\n          uVar13 = uVar13 + 1;\n          iVar20 = iVar20 + 0x108;\n          (*(code *)PTR_printf_0003a6f4)\n                    (puVar22,*(undefined4 *)(iVar7 + 4),*(undefined4 *)(iVar7 + 0xc),\n                     *(undefined4 *)(iVar7 + 0x10));\n          if (*param_1 <= uVar13) break;\n          uVar4 = param_1[1];\n        }\n        return;\n      }\n    }" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (compound_statement "{\n      param_1[2] = (uint)puVar18;\n      *param_1 = uVar4;\n    }" { (expression_statement "param_1[2] = (uint)puVar18;" (assignment_expression "param_1[2] = (uint)puVar18" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (cast_expression "(uint)puVar18" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*param_1 = uVar4;" (assignment_expression "*param_1 = uVar4" (pointer_expression "*param_1" * identifier) = identifier) ;) }) (else_clause "else {\n      (*(code *)PTR_printf_0003a6f4)(PTR_LAB_0003a3e8 + 0x6b20,uVar13 - uVar4);\n      uVar4 = param_1[1];\n      uVar24 = *(uint *)puVar22;\n      param_1[2] = (uint)puVar18;\n      uVar13 = ((int)((int)puVar18 - uVar4) >> 3) * 0x3e0f83e1;\n      *param_1 = uVar13;\n      if (((uVar24 & 0x1080) != 0) && (uVar13 != 0)) {\n        iVar20 = 0;\n        uVar13 = 0;\n        puVar22 = PTR_LAB_0003a3e8 + 0x6b54;\n        while( true ) {\n          iVar7 = uVar4 + iVar20;\n          uVar13 = uVar13 + 1;\n          iVar20 = iVar20 + 0x108;\n          (*(code *)PTR_printf_0003a6f4)\n                    (puVar22,*(undefined4 *)(iVar7 + 4),*(undefined4 *)(iVar7 + 0xc),\n                     *(undefined4 *)(iVar7 + 0x10));\n          if (*param_1 <= uVar13) break;\n          uVar4 = param_1[1];\n        }\n        return;\n      }\n    }" else (compound_statement "{\n      (*(code *)PTR_printf_0003a6f4)(PTR_LAB_0003a3e8 + 0x6b20,uVar13 - uVar4);\n      uVar4 = param_1[1];\n      uVar24 = *(uint *)puVar22;\n      param_1[2] = (uint)puVar18;\n      uVar13 = ((int)((int)puVar18 - uVar4) >> 3) * 0x3e0f83e1;\n      *param_1 = uVar13;\n      if (((uVar24 & 0x1080) != 0) && (uVar13 != 0)) {\n        iVar20 = 0;\n        uVar13 = 0;\n        puVar22 = PTR_LAB_0003a3e8 + 0x6b54;\n        while( true ) {\n          iVar7 = uVar4 + iVar20;\n          uVar13 = uVar13 + 1;\n          iVar20 = iVar20 + 0x108;\n          (*(code *)PTR_printf_0003a6f4)\n                    (puVar22,*(undefined4 *)(iVar7 + 4),*(undefined4 *)(iVar7 + 0xc),\n                     *(undefined4 *)(iVar7 + 0x10));\n          if (*param_1 <= uVar13) break;\n          uVar4 = param_1[1];\n        }\n        return;\n      }\n    }" { (expression_statement "(*(code *)PTR_printf_0003a6f4)(PTR_LAB_0003a3e8 + 0x6b20,uVar13 - uVar4);" (call_expression "(*(code *)PTR_printf_0003a6f4)(PTR_LAB_0003a3e8 + 0x6b20,uVar13 - uVar4)" (parenthesized_expression "(*(code *)PTR_printf_0003a6f4)" ( (pointer_expression "*(code *)PTR_printf_0003a6f4" * (cast_expression "(code *)PTR_printf_0003a6f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_0003a3e8 + 0x6b20,uVar13 - uVar4)" ( (binary_expression "PTR_LAB_0003a3e8 + 0x6b20" identifier + number_literal) , (binary_expression "uVar13 - uVar4" identifier - identifier) ))) ;) (expression_statement "uVar4 = param_1[1];" (assignment_expression "uVar4 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "uVar24 = *(uint *)puVar22;" (assignment_expression "uVar24 = *(uint *)puVar22" identifier = (pointer_expression "*(uint *)puVar22" * (cast_expression "(uint *)puVar22" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "param_1[2] = (uint)puVar18;" (assignment_expression "param_1[2] = (uint)puVar18" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (cast_expression "(uint)puVar18" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar13 = ((int)((int)puVar18 - uVar4) >> 3) * 0x3e0f83e1;" (assignment_expression "uVar13 = ((int)((int)puVar18 - uVar4) >> 3) * 0x3e0f83e1" identifier = (binary_expression "((int)((int)puVar18 - uVar4) >> 3) * 0x3e0f83e1" (parenthesized_expression "((int)((int)puVar18 - uVar4) >> 3)" ( (binary_expression "(int)((int)puVar18 - uVar4) >> 3" (cast_expression "(int)((int)puVar18 - uVar4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)puVar18 - uVar4)" ( (binary_expression "(int)puVar18 - uVar4" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) ))) >> number_literal) )) * number_literal)) ;) (expression_statement "*param_1 = uVar13;" (assignment_expression "*param_1 = uVar13" (pointer_expression "*param_1" * identifier) = identifier) ;) (if_statement "if (((uVar24 & 0x1080) != 0) && (uVar13 != 0)) {\n        iVar20 = 0;\n        uVar13 = 0;\n        puVar22 = PTR_LAB_0003a3e8 + 0x6b54;\n        while( true ) {\n          iVar7 = uVar4 + iVar20;\n          uVar13 = uVar13 + 1;\n          iVar20 = iVar20 + 0x108;\n          (*(code *)PTR_printf_0003a6f4)\n                    (puVar22,*(undefined4 *)(iVar7 + 4),*(undefined4 *)(iVar7 + 0xc),\n                     *(undefined4 *)(iVar7 + 0x10));\n          if (*param_1 <= uVar13) break;\n          uVar4 = param_1[1];\n        }\n        return;\n      }" if (parenthesized_expression "(((uVar24 & 0x1080) != 0) && (uVar13 != 0))" ( (binary_expression "((uVar24 & 0x1080) != 0) && (uVar13 != 0)" (parenthesized_expression "((uVar24 & 0x1080) != 0)" ( (binary_expression "(uVar24 & 0x1080) != 0" (parenthesized_expression "(uVar24 & 0x1080)" ( (binary_expression "uVar24 & 0x1080" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) ))) )) (compound_statement "{\n        iVar20 = 0;\n        uVar13 = 0;\n        puVar22 = PTR_LAB_0003a3e8 + 0x6b54;\n        while( true ) {\n          iVar7 = uVar4 + iVar20;\n          uVar13 = uVar13 + 1;\n          iVar20 = iVar20 + 0x108;\n          (*(code *)PTR_printf_0003a6f4)\n                    (puVar22,*(undefined4 *)(iVar7 + 4),*(undefined4 *)(iVar7 + 0xc),\n                     *(undefined4 *)(iVar7 + 0x10));\n          if (*param_1 <= uVar13) break;\n          uVar4 = param_1[1];\n        }\n        return;\n      }" { (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" identifier = number_literal) ;) (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) (expression_statement "puVar22 = PTR_LAB_0003a3e8 + 0x6b54;" (assignment_expression "puVar22 = PTR_LAB_0003a3e8 + 0x6b54" identifier = (binary_expression "PTR_LAB_0003a3e8 + 0x6b54" identifier + number_literal)) ;) (while_statement "while( true ) {\n          iVar7 = uVar4 + iVar20;\n          uVar13 = uVar13 + 1;\n          iVar20 = iVar20 + 0x108;\n          (*(code *)PTR_printf_0003a6f4)\n                    (puVar22,*(undefined4 *)(iVar7 + 4),*(undefined4 *)(iVar7 + 0xc),\n                     *(undefined4 *)(iVar7 + 0x10));\n          if (*param_1 <= uVar13) break;\n          uVar4 = param_1[1];\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          iVar7 = uVar4 + iVar20;\n          uVar13 = uVar13 + 1;\n          iVar20 = iVar20 + 0x108;\n          (*(code *)PTR_printf_0003a6f4)\n                    (puVar22,*(undefined4 *)(iVar7 + 4),*(undefined4 *)(iVar7 + 0xc),\n                     *(undefined4 *)(iVar7 + 0x10));\n          if (*param_1 <= uVar13) break;\n          uVar4 = param_1[1];\n        }" { (expression_statement "iVar7 = uVar4 + iVar20;" (assignment_expression "iVar7 = uVar4 + iVar20" identifier = (binary_expression "uVar4 + iVar20" identifier + identifier)) ;) (expression_statement "uVar13 = uVar13 + 1;" (assignment_expression "uVar13 = uVar13 + 1" identifier = (binary_expression "uVar13 + 1" identifier + number_literal)) ;) (expression_statement "iVar20 = iVar20 + 0x108;" (assignment_expression "iVar20 = iVar20 + 0x108" identifier = (binary_expression "iVar20 + 0x108" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR_printf_0003a6f4)\n                    (puVar22,*(undefined4 *)(iVar7 + 4),*(undefined4 *)(iVar7 + 0xc),\n                     *(undefined4 *)(iVar7 + 0x10));" (call_expression "(*(code *)PTR_printf_0003a6f4)\n                    (puVar22,*(undefined4 *)(iVar7 + 4),*(undefined4 *)(iVar7 + 0xc),\n                     *(undefined4 *)(iVar7 + 0x10))" (parenthesized_expression "(*(code *)PTR_printf_0003a6f4)" ( (pointer_expression "*(code *)PTR_printf_0003a6f4" * (cast_expression "(code *)PTR_printf_0003a6f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar22,*(undefined4 *)(iVar7 + 4),*(undefined4 *)(iVar7 + 0xc),\n                     *(undefined4 *)(iVar7 + 0x10))" ( identifier , (pointer_expression "*(undefined4 *)(iVar7 + 4)" * (cast_expression "(undefined4 *)(iVar7 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar7 + 0xc)" * (cast_expression "(undefined4 *)(iVar7 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar7 + 0x10)" * (cast_expression "(undefined4 *)(iVar7 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) )))) ))) ;) (if_statement "if (*param_1 <= uVar13) break;" if (parenthesized_expression "(*param_1 <= uVar13)" ( (binary_expression "*param_1 <= uVar13" (pointer_expression "*param_1" * identifier) <= identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar4 = param_1[1];" (assignment_expression "uVar4 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) })) (return_statement "return;" return ;) })) }))) (return_statement "return;" return ;) })) (expression_statement "uVar12 = *(uint *)PTR_debug_level_0003a418 & 0x1080;" (assignment_expression "uVar12 = *(uint *)PTR_debug_level_0003a418 & 0x1080" identifier = (binary_expression "*(uint *)PTR_debug_level_0003a418 & 0x1080" (pointer_expression "*(uint *)PTR_debug_level_0003a418" * (cast_expression "(uint *)PTR_debug_level_0003a418" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal)) ;) (expression_statement "puVar23 = PTR_LAB_0003a3e8 + 0x6ae0;" (assignment_expression "puVar23 = PTR_LAB_0003a3e8 + 0x6ae0" identifier = (binary_expression "PTR_LAB_0003a3e8 + 0x6ae0" identifier + number_literal)) ;) (expression_statement "puVar21 = PTR_LAB_0003a3e8 + 0x6b10;" (assignment_expression "puVar21 = PTR_LAB_0003a3e8 + 0x6b10" identifier = (binary_expression "PTR_LAB_0003a3e8 + 0x6b10" identifier + number_literal)) ;) (expression_statement "puVar19 = puVar18;" (assignment_expression "puVar19 = puVar18" identifier = identifier) ;) (if_statement "if (uVar4 == uVar24) goto LAB_0001e9b8;" if (parenthesized_expression "(uVar4 == uVar24)" ( (binary_expression "uVar4 == uVar24" identifier == identifier) )) (goto_statement "goto LAB_0001e9b8;" goto statement_identifier ;)) (labeled_statement "LAB_0001e92c:\n  if (((uint *)param_1[1] < puVar19) && (puVar19[-0x40] == 0 && puVar19[-0x3f] == 0)) {\n    puVar19[-0x3f] = uVar13 - 1;\n    puVar19[-0x40] = (uint)(uVar13 - 1 < uVar13) + (uVar4 - 1);\n  }" statement_identifier : (if_statement "if (((uint *)param_1[1] < puVar19) && (puVar19[-0x40] == 0 && puVar19[-0x3f] == 0)) {\n    puVar19[-0x3f] = uVar13 - 1;\n    puVar19[-0x40] = (uint)(uVar13 - 1 < uVar13) + (uVar4 - 1);\n  }" if (parenthesized_expression "(((uint *)param_1[1] < puVar19) && (puVar19[-0x40] == 0 && puVar19[-0x3f] == 0))" ( (binary_expression "((uint *)param_1[1] < puVar19) && (puVar19[-0x40] == 0 && puVar19[-0x3f] == 0)" (parenthesized_expression "((uint *)param_1[1] < puVar19)" ( (binary_expression "(uint *)param_1[1] < puVar19" (cast_expression "(uint *)param_1[1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ])) < identifier) )) && (parenthesized_expression "(puVar19[-0x40] == 0 && puVar19[-0x3f] == 0)" ( (binary_expression "puVar19[-0x40] == 0 && puVar19[-0x3f] == 0" (binary_expression "puVar19[-0x40] == 0" (subscript_expression "puVar19[-0x40]" identifier [ number_literal ]) == number_literal) && (binary_expression "puVar19[-0x3f] == 0" (subscript_expression "puVar19[-0x3f]" identifier [ number_literal ]) == number_literal)) ))) )) (compound_statement "{\n    puVar19[-0x3f] = uVar13 - 1;\n    puVar19[-0x40] = (uint)(uVar13 - 1 < uVar13) + (uVar4 - 1);\n  }" { (expression_statement "puVar19[-0x3f] = uVar13 - 1;" (assignment_expression "puVar19[-0x3f] = uVar13 - 1" (subscript_expression "puVar19[-0x3f]" identifier [ number_literal ]) = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "puVar19[-0x40] = (uint)(uVar13 - 1 < uVar13) + (uVar4 - 1);" (assignment_expression "puVar19[-0x40] = (uint)(uVar13 - 1 < uVar13) + (uVar4 - 1)" (subscript_expression "puVar19[-0x40]" identifier [ number_literal ]) = (binary_expression "(uint)(uVar13 - 1 < uVar13) + (uVar4 - 1)" (call_expression "(uint)(uVar13 - 1 < uVar13)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar13 - 1 < uVar13)" ( (binary_expression "uVar13 - 1 < uVar13" (binary_expression "uVar13 - 1" identifier - number_literal) < identifier) ))) + (parenthesized_expression "(uVar4 - 1)" ( (binary_expression "uVar4 - 1" identifier - number_literal) )))) ;) }))) (expression_statement "uVar10 = puVar18[2];" (assignment_expression "uVar10 = puVar18[2]" identifier = (subscript_expression "puVar18[2]" identifier [ number_literal ])) ;) (expression_statement "puVar6 = puVar18;" (assignment_expression "puVar6 = puVar18" identifier = identifier) ;) (expression_statement "puVar5 = puVar19;" (assignment_expression "puVar5 = puVar19" identifier = identifier) ;) (if_statement "if ((uVar10 == 0 && puVar18[3] == 0) ||\n     ((uVar4 <= uVar10 && ((uVar4 != uVar10 || (uVar13 <= puVar18[3])))))) {\n    do {\n      puVar11 = puVar5;\n      puVar15 = puVar6;\n      puVar6 = puVar15 + 4;\n      uVar24 = puVar15[1];\n      uVar13 = puVar15[2];\n      uVar4 = puVar15[3];\n      *puVar11 = *puVar15;\n      puVar11[1] = uVar24;\n      puVar11[2] = uVar13;\n      puVar11[3] = uVar4;\n      puVar5 = puVar11 + 4;\n    } while (puVar6 != puVar18 + 0x40);\n    puVar19 = puVar19 + 0x42;\n    uVar4 = puVar15[5];\n    puVar11[4] = *puVar6;\n    puVar11[5] = uVar4;\n    uVar24 = *puVar18;\n    uVar25 = puVar18[1];\n    puVar15 = (uint *)param_1[2];\n  }" if (parenthesized_expression "((uVar10 == 0 && puVar18[3] == 0) ||\n     ((uVar4 <= uVar10 && ((uVar4 != uVar10 || (uVar13 <= puVar18[3]))))))" ( (binary_expression "(uVar10 == 0 && puVar18[3] == 0) ||\n     ((uVar4 <= uVar10 && ((uVar4 != uVar10 || (uVar13 <= puVar18[3])))))" (parenthesized_expression "(uVar10 == 0 && puVar18[3] == 0)" ( (binary_expression "uVar10 == 0 && puVar18[3] == 0" (binary_expression "uVar10 == 0" identifier == number_literal) && (binary_expression "puVar18[3] == 0" (subscript_expression "puVar18[3]" identifier [ number_literal ]) == number_literal)) )) || (parenthesized_expression "((uVar4 <= uVar10 && ((uVar4 != uVar10 || (uVar13 <= puVar18[3])))))" ( (parenthesized_expression "(uVar4 <= uVar10 && ((uVar4 != uVar10 || (uVar13 <= puVar18[3]))))" ( (binary_expression "uVar4 <= uVar10 && ((uVar4 != uVar10 || (uVar13 <= puVar18[3])))" (binary_expression "uVar4 <= uVar10" identifier <= identifier) && (parenthesized_expression "((uVar4 != uVar10 || (uVar13 <= puVar18[3])))" ( (parenthesized_expression "(uVar4 != uVar10 || (uVar13 <= puVar18[3]))" ( (binary_expression "uVar4 != uVar10 || (uVar13 <= puVar18[3])" (binary_expression "uVar4 != uVar10" identifier != identifier) || (parenthesized_expression "(uVar13 <= puVar18[3])" ( (binary_expression "uVar13 <= puVar18[3]" identifier <= (subscript_expression "puVar18[3]" identifier [ number_literal ])) ))) )) ))) )) ))) )) (compound_statement "{\n    do {\n      puVar11 = puVar5;\n      puVar15 = puVar6;\n      puVar6 = puVar15 + 4;\n      uVar24 = puVar15[1];\n      uVar13 = puVar15[2];\n      uVar4 = puVar15[3];\n      *puVar11 = *puVar15;\n      puVar11[1] = uVar24;\n      puVar11[2] = uVar13;\n      puVar11[3] = uVar4;\n      puVar5 = puVar11 + 4;\n    } while (puVar6 != puVar18 + 0x40);\n    puVar19 = puVar19 + 0x42;\n    uVar4 = puVar15[5];\n    puVar11[4] = *puVar6;\n    puVar11[5] = uVar4;\n    uVar24 = *puVar18;\n    uVar25 = puVar18[1];\n    puVar15 = (uint *)param_1[2];\n  }" { (do_statement "do {\n      puVar11 = puVar5;\n      puVar15 = puVar6;\n      puVar6 = puVar15 + 4;\n      uVar24 = puVar15[1];\n      uVar13 = puVar15[2];\n      uVar4 = puVar15[3];\n      *puVar11 = *puVar15;\n      puVar11[1] = uVar24;\n      puVar11[2] = uVar13;\n      puVar11[3] = uVar4;\n      puVar5 = puVar11 + 4;\n    } while (puVar6 != puVar18 + 0x40);" do (compound_statement "{\n      puVar11 = puVar5;\n      puVar15 = puVar6;\n      puVar6 = puVar15 + 4;\n      uVar24 = puVar15[1];\n      uVar13 = puVar15[2];\n      uVar4 = puVar15[3];\n      *puVar11 = *puVar15;\n      puVar11[1] = uVar24;\n      puVar11[2] = uVar13;\n      puVar11[3] = uVar4;\n      puVar5 = puVar11 + 4;\n    }" { (expression_statement "puVar11 = puVar5;" (assignment_expression "puVar11 = puVar5" identifier = identifier) ;) (expression_statement "puVar15 = puVar6;" (assignment_expression "puVar15 = puVar6" identifier = identifier) ;) (expression_statement "puVar6 = puVar15 + 4;" (assignment_expression "puVar6 = puVar15 + 4" identifier = (binary_expression "puVar15 + 4" identifier + number_literal)) ;) (expression_statement "uVar24 = puVar15[1];" (assignment_expression "uVar24 = puVar15[1]" identifier = (subscript_expression "puVar15[1]" identifier [ number_literal ])) ;) (expression_statement "uVar13 = puVar15[2];" (assignment_expression "uVar13 = puVar15[2]" identifier = (subscript_expression "puVar15[2]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = puVar15[3];" (assignment_expression "uVar4 = puVar15[3]" identifier = (subscript_expression "puVar15[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar11 = *puVar15;" (assignment_expression "*puVar11 = *puVar15" (pointer_expression "*puVar11" * identifier) = (pointer_expression "*puVar15" * identifier)) ;) (expression_statement "puVar11[1] = uVar24;" (assignment_expression "puVar11[1] = uVar24" (subscript_expression "puVar11[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar11[2] = uVar13;" (assignment_expression "puVar11[2] = uVar13" (subscript_expression "puVar11[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar11[3] = uVar4;" (assignment_expression "puVar11[3] = uVar4" (subscript_expression "puVar11[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5 = puVar11 + 4;" (assignment_expression "puVar5 = puVar11 + 4" identifier = (binary_expression "puVar11 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar6 != puVar18 + 0x40)" ( (binary_expression "puVar6 != puVar18 + 0x40" identifier != (binary_expression "puVar18 + 0x40" identifier + number_literal)) )) ;) (expression_statement "puVar19 = puVar19 + 0x42;" (assignment_expression "puVar19 = puVar19 + 0x42" identifier = (binary_expression "puVar19 + 0x42" identifier + number_literal)) ;) (expression_statement "uVar4 = puVar15[5];" (assignment_expression "uVar4 = puVar15[5]" identifier = (subscript_expression "puVar15[5]" identifier [ number_literal ])) ;) (expression_statement "puVar11[4] = *puVar6;" (assignment_expression "puVar11[4] = *puVar6" (subscript_expression "puVar11[4]" identifier [ number_literal ]) = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "puVar11[5] = uVar4;" (assignment_expression "puVar11[5] = uVar4" (subscript_expression "puVar11[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar24 = *puVar18;" (assignment_expression "uVar24 = *puVar18" identifier = (pointer_expression "*puVar18" * identifier)) ;) (expression_statement "uVar25 = puVar18[1];" (assignment_expression "uVar25 = puVar18[1]" identifier = (subscript_expression "puVar18[1]" identifier [ number_literal ])) ;) (expression_statement "puVar15 = (uint *)param_1[2];" (assignment_expression "puVar15 = (uint *)param_1[2]" identifier = (cast_expression "(uint *)param_1[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) })) (labeled_statement "LAB_0001e998:\n  puVar18 = puVar18 + 0x42;" statement_identifier : (expression_statement "puVar18 = puVar18 + 0x42;" (assignment_expression "puVar18 = puVar18 + 0x42" identifier = (binary_expression "puVar18 + 0x42" identifier + number_literal)) ;)) (if_statement "if (puVar18 < puVar15) {\n    do {\n      uVar4 = *puVar18;\n      uVar13 = puVar18[1];\n      if (uVar4 != uVar24) goto LAB_0001e92c;\nLAB_0001e9b8:\n      if (uVar13 != uVar25) goto LAB_0001e92c;\n      bVar2 = *(byte *)(puVar18 + 7);\n      bVar3 = *(byte *)(puVar19 + -0x3b);\n      if (((bVar2 & 0x40) == 0) && ((bVar3 & 0x40) != 0)) {\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar17 = 0x66;\n          uVar13 = puVar19[-0x3e];\n          uVar14 = 0x54;\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          uVar9 = 0x74;\nLAB_0001ecec:\n          uVar8 = 0x66;\n          if ((char)bVar3 < '\0') {\n            uVar8 = 0x46;\n          }\n          (*(code *)PTR_printf_0003a6f4)(puVar23,uVar4,uVar14,uVar17,uVar13,uVar9,uVar8);\n          (*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);\n          uVar12 = *(uint *)puVar22 & 0x1080;\n        }\n      }\n      else {\n        if (((bVar2 ^ bVar3) & 0x40) != 0) goto LAB_0001eb60;\n        if ((-1 < (char)bVar2) || ((char)bVar3 < '\0')) {\n          if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;\n          cVar1 = *(char *)puVar18[4];\n          if (cVar1 != '_') {\n            if (*(char *)puVar19[-0x3e] == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }\n          if ((((char *)puVar18[4])[1] == '_') || (*(char *)(puVar19[-0x3e] + 1) != '_'))\n          goto LAB_0001eb60;\n        }\nLAB_0001ecb8:\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar9 = 0x74;\n          uVar13 = puVar19[-0x3e];\n          uVar17 = 0x66;\n          uVar14 = 0x74;\n          if ((bVar3 & 0x40) == 0) {\n            uVar9 = 0x54;\n          }\n          if ((bVar2 & 0x40) == 0) {\n            uVar14 = 0x54;\n          }\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          goto LAB_0001ecec;\n        }\n      }\n      puVar15 = puVar18;\n      puVar6 = puVar19 + -0x42;\n      do {\n        puVar11 = puVar6;\n        puVar5 = puVar15;\n        puVar15 = puVar5 + 4;\n        uVar10 = puVar5[1];\n        uVar13 = puVar5[2];\n        uVar4 = puVar5[3];\n        *puVar11 = *puVar5;\n        puVar11[1] = uVar10;\n        puVar11[2] = uVar13;\n        puVar11[3] = uVar4;\n        puVar6 = puVar11 + 4;\n      } while (puVar15 != puVar18 + 0x40);\n      puVar18 = puVar18 + 0x42;\n      uVar4 = puVar5[5];\n      puVar11[4] = *puVar15;\n      puVar11[5] = uVar4;\n      puVar15 = (uint *)param_1[2];\n      if (puVar15 <= puVar18) break;\n    } while( true );\n  }" if (parenthesized_expression "(puVar18 < puVar15)" ( (binary_expression "puVar18 < puVar15" identifier < identifier) )) (compound_statement "{\n    do {\n      uVar4 = *puVar18;\n      uVar13 = puVar18[1];\n      if (uVar4 != uVar24) goto LAB_0001e92c;\nLAB_0001e9b8:\n      if (uVar13 != uVar25) goto LAB_0001e92c;\n      bVar2 = *(byte *)(puVar18 + 7);\n      bVar3 = *(byte *)(puVar19 + -0x3b);\n      if (((bVar2 & 0x40) == 0) && ((bVar3 & 0x40) != 0)) {\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar17 = 0x66;\n          uVar13 = puVar19[-0x3e];\n          uVar14 = 0x54;\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          uVar9 = 0x74;\nLAB_0001ecec:\n          uVar8 = 0x66;\n          if ((char)bVar3 < '\0') {\n            uVar8 = 0x46;\n          }\n          (*(code *)PTR_printf_0003a6f4)(puVar23,uVar4,uVar14,uVar17,uVar13,uVar9,uVar8);\n          (*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);\n          uVar12 = *(uint *)puVar22 & 0x1080;\n        }\n      }\n      else {\n        if (((bVar2 ^ bVar3) & 0x40) != 0) goto LAB_0001eb60;\n        if ((-1 < (char)bVar2) || ((char)bVar3 < '\0')) {\n          if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;\n          cVar1 = *(char *)puVar18[4];\n          if (cVar1 != '_') {\n            if (*(char *)puVar19[-0x3e] == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }\n          if ((((char *)puVar18[4])[1] == '_') || (*(char *)(puVar19[-0x3e] + 1) != '_'))\n          goto LAB_0001eb60;\n        }\nLAB_0001ecb8:\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar9 = 0x74;\n          uVar13 = puVar19[-0x3e];\n          uVar17 = 0x66;\n          uVar14 = 0x74;\n          if ((bVar3 & 0x40) == 0) {\n            uVar9 = 0x54;\n          }\n          if ((bVar2 & 0x40) == 0) {\n            uVar14 = 0x54;\n          }\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          goto LAB_0001ecec;\n        }\n      }\n      puVar15 = puVar18;\n      puVar6 = puVar19 + -0x42;\n      do {\n        puVar11 = puVar6;\n        puVar5 = puVar15;\n        puVar15 = puVar5 + 4;\n        uVar10 = puVar5[1];\n        uVar13 = puVar5[2];\n        uVar4 = puVar5[3];\n        *puVar11 = *puVar5;\n        puVar11[1] = uVar10;\n        puVar11[2] = uVar13;\n        puVar11[3] = uVar4;\n        puVar6 = puVar11 + 4;\n      } while (puVar15 != puVar18 + 0x40);\n      puVar18 = puVar18 + 0x42;\n      uVar4 = puVar5[5];\n      puVar11[4] = *puVar15;\n      puVar11[5] = uVar4;\n      puVar15 = (uint *)param_1[2];\n      if (puVar15 <= puVar18) break;\n    } while( true );\n  }" { (do_statement "do {\n      uVar4 = *puVar18;\n      uVar13 = puVar18[1];\n      if (uVar4 != uVar24) goto LAB_0001e92c;\nLAB_0001e9b8:\n      if (uVar13 != uVar25) goto LAB_0001e92c;\n      bVar2 = *(byte *)(puVar18 + 7);\n      bVar3 = *(byte *)(puVar19 + -0x3b);\n      if (((bVar2 & 0x40) == 0) && ((bVar3 & 0x40) != 0)) {\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar17 = 0x66;\n          uVar13 = puVar19[-0x3e];\n          uVar14 = 0x54;\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          uVar9 = 0x74;\nLAB_0001ecec:\n          uVar8 = 0x66;\n          if ((char)bVar3 < '\0') {\n            uVar8 = 0x46;\n          }\n          (*(code *)PTR_printf_0003a6f4)(puVar23,uVar4,uVar14,uVar17,uVar13,uVar9,uVar8);\n          (*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);\n          uVar12 = *(uint *)puVar22 & 0x1080;\n        }\n      }\n      else {\n        if (((bVar2 ^ bVar3) & 0x40) != 0) goto LAB_0001eb60;\n        if ((-1 < (char)bVar2) || ((char)bVar3 < '\0')) {\n          if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;\n          cVar1 = *(char *)puVar18[4];\n          if (cVar1 != '_') {\n            if (*(char *)puVar19[-0x3e] == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }\n          if ((((char *)puVar18[4])[1] == '_') || (*(char *)(puVar19[-0x3e] + 1) != '_'))\n          goto LAB_0001eb60;\n        }\nLAB_0001ecb8:\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar9 = 0x74;\n          uVar13 = puVar19[-0x3e];\n          uVar17 = 0x66;\n          uVar14 = 0x74;\n          if ((bVar3 & 0x40) == 0) {\n            uVar9 = 0x54;\n          }\n          if ((bVar2 & 0x40) == 0) {\n            uVar14 = 0x54;\n          }\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          goto LAB_0001ecec;\n        }\n      }\n      puVar15 = puVar18;\n      puVar6 = puVar19 + -0x42;\n      do {\n        puVar11 = puVar6;\n        puVar5 = puVar15;\n        puVar15 = puVar5 + 4;\n        uVar10 = puVar5[1];\n        uVar13 = puVar5[2];\n        uVar4 = puVar5[3];\n        *puVar11 = *puVar5;\n        puVar11[1] = uVar10;\n        puVar11[2] = uVar13;\n        puVar11[3] = uVar4;\n        puVar6 = puVar11 + 4;\n      } while (puVar15 != puVar18 + 0x40);\n      puVar18 = puVar18 + 0x42;\n      uVar4 = puVar5[5];\n      puVar11[4] = *puVar15;\n      puVar11[5] = uVar4;\n      puVar15 = (uint *)param_1[2];\n      if (puVar15 <= puVar18) break;\n    } while( true );" do (compound_statement "{\n      uVar4 = *puVar18;\n      uVar13 = puVar18[1];\n      if (uVar4 != uVar24) goto LAB_0001e92c;\nLAB_0001e9b8:\n      if (uVar13 != uVar25) goto LAB_0001e92c;\n      bVar2 = *(byte *)(puVar18 + 7);\n      bVar3 = *(byte *)(puVar19 + -0x3b);\n      if (((bVar2 & 0x40) == 0) && ((bVar3 & 0x40) != 0)) {\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar17 = 0x66;\n          uVar13 = puVar19[-0x3e];\n          uVar14 = 0x54;\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          uVar9 = 0x74;\nLAB_0001ecec:\n          uVar8 = 0x66;\n          if ((char)bVar3 < '\0') {\n            uVar8 = 0x46;\n          }\n          (*(code *)PTR_printf_0003a6f4)(puVar23,uVar4,uVar14,uVar17,uVar13,uVar9,uVar8);\n          (*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);\n          uVar12 = *(uint *)puVar22 & 0x1080;\n        }\n      }\n      else {\n        if (((bVar2 ^ bVar3) & 0x40) != 0) goto LAB_0001eb60;\n        if ((-1 < (char)bVar2) || ((char)bVar3 < '\0')) {\n          if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;\n          cVar1 = *(char *)puVar18[4];\n          if (cVar1 != '_') {\n            if (*(char *)puVar19[-0x3e] == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }\n          if ((((char *)puVar18[4])[1] == '_') || (*(char *)(puVar19[-0x3e] + 1) != '_'))\n          goto LAB_0001eb60;\n        }\nLAB_0001ecb8:\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar9 = 0x74;\n          uVar13 = puVar19[-0x3e];\n          uVar17 = 0x66;\n          uVar14 = 0x74;\n          if ((bVar3 & 0x40) == 0) {\n            uVar9 = 0x54;\n          }\n          if ((bVar2 & 0x40) == 0) {\n            uVar14 = 0x54;\n          }\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          goto LAB_0001ecec;\n        }\n      }\n      puVar15 = puVar18;\n      puVar6 = puVar19 + -0x42;\n      do {\n        puVar11 = puVar6;\n        puVar5 = puVar15;\n        puVar15 = puVar5 + 4;\n        uVar10 = puVar5[1];\n        uVar13 = puVar5[2];\n        uVar4 = puVar5[3];\n        *puVar11 = *puVar5;\n        puVar11[1] = uVar10;\n        puVar11[2] = uVar13;\n        puVar11[3] = uVar4;\n        puVar6 = puVar11 + 4;\n      } while (puVar15 != puVar18 + 0x40);\n      puVar18 = puVar18 + 0x42;\n      uVar4 = puVar5[5];\n      puVar11[4] = *puVar15;\n      puVar11[5] = uVar4;\n      puVar15 = (uint *)param_1[2];\n      if (puVar15 <= puVar18) break;\n    }" { (expression_statement "uVar4 = *puVar18;" (assignment_expression "uVar4 = *puVar18" identifier = (pointer_expression "*puVar18" * identifier)) ;) (expression_statement "uVar13 = puVar18[1];" (assignment_expression "uVar13 = puVar18[1]" identifier = (subscript_expression "puVar18[1]" identifier [ number_literal ])) ;) (if_statement "if (uVar4 != uVar24) goto LAB_0001e92c;" if (parenthesized_expression "(uVar4 != uVar24)" ( (binary_expression "uVar4 != uVar24" identifier != identifier) )) (goto_statement "goto LAB_0001e92c;" goto statement_identifier ;)) (labeled_statement "LAB_0001e9b8:\n      if (uVar13 != uVar25) goto LAB_0001e92c;" statement_identifier : (if_statement "if (uVar13 != uVar25) goto LAB_0001e92c;" if (parenthesized_expression "(uVar13 != uVar25)" ( (binary_expression "uVar13 != uVar25" identifier != identifier) )) (goto_statement "goto LAB_0001e92c;" goto statement_identifier ;))) (expression_statement "bVar2 = *(byte *)(puVar18 + 7);" (assignment_expression "bVar2 = *(byte *)(puVar18 + 7)" identifier = (pointer_expression "*(byte *)(puVar18 + 7)" * (cast_expression "(byte *)(puVar18 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 7)" ( (binary_expression "puVar18 + 7" identifier + number_literal) ))))) ;) (expression_statement "bVar3 = *(byte *)(puVar19 + -0x3b);" (assignment_expression "bVar3 = *(byte *)(puVar19 + -0x3b)" identifier = (pointer_expression "*(byte *)(puVar19 + -0x3b)" * (cast_expression "(byte *)(puVar19 + -0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x3b)" ( (binary_expression "puVar19 + -0x3b" identifier + number_literal) ))))) ;) (if_statement "if (((bVar2 & 0x40) == 0) && ((bVar3 & 0x40) != 0)) {\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar17 = 0x66;\n          uVar13 = puVar19[-0x3e];\n          uVar14 = 0x54;\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          uVar9 = 0x74;\nLAB_0001ecec:\n          uVar8 = 0x66;\n          if ((char)bVar3 < '\0') {\n            uVar8 = 0x46;\n          }\n          (*(code *)PTR_printf_0003a6f4)(puVar23,uVar4,uVar14,uVar17,uVar13,uVar9,uVar8);\n          (*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);\n          uVar12 = *(uint *)puVar22 & 0x1080;\n        }\n      }\n      else {\n        if (((bVar2 ^ bVar3) & 0x40) != 0) goto LAB_0001eb60;\n        if ((-1 < (char)bVar2) || ((char)bVar3 < '\0')) {\n          if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;\n          cVar1 = *(char *)puVar18[4];\n          if (cVar1 != '_') {\n            if (*(char *)puVar19[-0x3e] == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }\n          if ((((char *)puVar18[4])[1] == '_') || (*(char *)(puVar19[-0x3e] + 1) != '_'))\n          goto LAB_0001eb60;\n        }\nLAB_0001ecb8:\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar9 = 0x74;\n          uVar13 = puVar19[-0x3e];\n          uVar17 = 0x66;\n          uVar14 = 0x74;\n          if ((bVar3 & 0x40) == 0) {\n            uVar9 = 0x54;\n          }\n          if ((bVar2 & 0x40) == 0) {\n            uVar14 = 0x54;\n          }\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          goto LAB_0001ecec;\n        }\n      }" if (parenthesized_expression "(((bVar2 & 0x40) == 0) && ((bVar3 & 0x40) != 0))" ( (binary_expression "((bVar2 & 0x40) == 0) && ((bVar3 & 0x40) != 0)" (parenthesized_expression "((bVar2 & 0x40) == 0)" ( (binary_expression "(bVar2 & 0x40) == 0" (parenthesized_expression "(bVar2 & 0x40)" ( (binary_expression "bVar2 & 0x40" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "((bVar3 & 0x40) != 0)" ( (binary_expression "(bVar3 & 0x40) != 0" (parenthesized_expression "(bVar3 & 0x40)" ( (binary_expression "bVar3 & 0x40" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar17 = 0x66;\n          uVar13 = puVar19[-0x3e];\n          uVar14 = 0x54;\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          uVar9 = 0x74;\nLAB_0001ecec:\n          uVar8 = 0x66;\n          if ((char)bVar3 < '\0') {\n            uVar8 = 0x46;\n          }\n          (*(code *)PTR_printf_0003a6f4)(puVar23,uVar4,uVar14,uVar17,uVar13,uVar9,uVar8);\n          (*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);\n          uVar12 = *(uint *)puVar22 & 0x1080;\n        }\n      }" { (if_statement "if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar17 = 0x66;\n          uVar13 = puVar19[-0x3e];\n          uVar14 = 0x54;\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          uVar9 = 0x74;\nLAB_0001ecec:\n          uVar8 = 0x66;\n          if ((char)bVar3 < '\0') {\n            uVar8 = 0x46;\n          }\n          (*(code *)PTR_printf_0003a6f4)(puVar23,uVar4,uVar14,uVar17,uVar13,uVar9,uVar8);\n          (*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);\n          uVar12 = *(uint *)puVar22 & 0x1080;\n        }" if (parenthesized_expression "(uVar12 != 0)" ( (binary_expression "uVar12 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar4 = puVar18[4];\n          uVar17 = 0x66;\n          uVar13 = puVar19[-0x3e];\n          uVar14 = 0x54;\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          uVar9 = 0x74;\nLAB_0001ecec:\n          uVar8 = 0x66;\n          if ((char)bVar3 < '\0') {\n            uVar8 = 0x46;\n          }\n          (*(code *)PTR_printf_0003a6f4)(puVar23,uVar4,uVar14,uVar17,uVar13,uVar9,uVar8);\n          (*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);\n          uVar12 = *(uint *)puVar22 & 0x1080;\n        }" { (expression_statement "uVar4 = puVar18[4];" (assignment_expression "uVar4 = puVar18[4]" identifier = (subscript_expression "puVar18[4]" identifier [ number_literal ])) ;) (expression_statement "uVar17 = 0x66;" (assignment_expression "uVar17 = 0x66" identifier = number_literal) ;) (expression_statement "uVar13 = puVar19[-0x3e];" (assignment_expression "uVar13 = puVar19[-0x3e]" identifier = (subscript_expression "puVar19[-0x3e]" identifier [ number_literal ])) ;) (expression_statement "uVar14 = 0x54;" (assignment_expression "uVar14 = 0x54" identifier = number_literal) ;) (if_statement "if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }" if (parenthesized_expression "((char)bVar2 < '\0')" ( (binary_expression "(char)bVar2 < '\0'" (cast_expression "(char)bVar2" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            uVar17 = 0x46;\n          }" { (expression_statement "uVar17 = 0x46;" (assignment_expression "uVar17 = 0x46" identifier = number_literal) ;) })) (expression_statement "uVar9 = 0x74;" (assignment_expression "uVar9 = 0x74" identifier = number_literal) ;) (labeled_statement "LAB_0001ecec:\n          uVar8 = 0x66;" statement_identifier : (expression_statement "uVar8 = 0x66;" (assignment_expression "uVar8 = 0x66" identifier = number_literal) ;)) (if_statement "if ((char)bVar3 < '\0') {\n            uVar8 = 0x46;\n          }" if (parenthesized_expression "((char)bVar3 < '\0')" ( (binary_expression "(char)bVar3 < '\0'" (cast_expression "(char)bVar3" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            uVar8 = 0x46;\n          }" { (expression_statement "uVar8 = 0x46;" (assignment_expression "uVar8 = 0x46" identifier = number_literal) ;) })) (expression_statement "(*(code *)PTR_printf_0003a6f4)(puVar23,uVar4,uVar14,uVar17,uVar13,uVar9,uVar8);" (call_expression "(*(code *)PTR_printf_0003a6f4)(puVar23,uVar4,uVar14,uVar17,uVar13,uVar9,uVar8)" (parenthesized_expression "(*(code *)PTR_printf_0003a6f4)" ( (pointer_expression "*(code *)PTR_printf_0003a6f4" * (cast_expression "(code *)PTR_printf_0003a6f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar23,uVar4,uVar14,uVar17,uVar13,uVar9,uVar8)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);" (call_expression "(*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1])" (parenthesized_expression "(*(code *)PTR_printf_0003a6f4)" ( (pointer_expression "*(code *)PTR_printf_0003a6f4" * (cast_expression "(code *)PTR_printf_0003a6f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar21,puVar18[1])" ( identifier , (subscript_expression "puVar18[1]" identifier [ number_literal ]) ))) ;) (expression_statement "uVar12 = *(uint *)puVar22 & 0x1080;" (assignment_expression "uVar12 = *(uint *)puVar22 & 0x1080" identifier = (binary_expression "*(uint *)puVar22 & 0x1080" (pointer_expression "*(uint *)puVar22" * (cast_expression "(uint *)puVar22" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal)) ;) })) }) (else_clause "else {\n        if (((bVar2 ^ bVar3) & 0x40) != 0) goto LAB_0001eb60;\n        if ((-1 < (char)bVar2) || ((char)bVar3 < '\0')) {\n          if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;\n          cVar1 = *(char *)puVar18[4];\n          if (cVar1 != '_') {\n            if (*(char *)puVar19[-0x3e] == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }\n          if ((((char *)puVar18[4])[1] == '_') || (*(char *)(puVar19[-0x3e] + 1) != '_'))\n          goto LAB_0001eb60;\n        }\nLAB_0001ecb8:\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar9 = 0x74;\n          uVar13 = puVar19[-0x3e];\n          uVar17 = 0x66;\n          uVar14 = 0x74;\n          if ((bVar3 & 0x40) == 0) {\n            uVar9 = 0x54;\n          }\n          if ((bVar2 & 0x40) == 0) {\n            uVar14 = 0x54;\n          }\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          goto LAB_0001ecec;\n        }\n      }" else (compound_statement "{\n        if (((bVar2 ^ bVar3) & 0x40) != 0) goto LAB_0001eb60;\n        if ((-1 < (char)bVar2) || ((char)bVar3 < '\0')) {\n          if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;\n          cVar1 = *(char *)puVar18[4];\n          if (cVar1 != '_') {\n            if (*(char *)puVar19[-0x3e] == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }\n          if ((((char *)puVar18[4])[1] == '_') || (*(char *)(puVar19[-0x3e] + 1) != '_'))\n          goto LAB_0001eb60;\n        }\nLAB_0001ecb8:\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar9 = 0x74;\n          uVar13 = puVar19[-0x3e];\n          uVar17 = 0x66;\n          uVar14 = 0x74;\n          if ((bVar3 & 0x40) == 0) {\n            uVar9 = 0x54;\n          }\n          if ((bVar2 & 0x40) == 0) {\n            uVar14 = 0x54;\n          }\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          goto LAB_0001ecec;\n        }\n      }" { (if_statement "if (((bVar2 ^ bVar3) & 0x40) != 0) goto LAB_0001eb60;" if (parenthesized_expression "(((bVar2 ^ bVar3) & 0x40) != 0)" ( (binary_expression "((bVar2 ^ bVar3) & 0x40) != 0" (parenthesized_expression "((bVar2 ^ bVar3) & 0x40)" ( (binary_expression "(bVar2 ^ bVar3) & 0x40" (parenthesized_expression "(bVar2 ^ bVar3)" ( (binary_expression "bVar2 ^ bVar3" identifier ^ identifier) )) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0001eb60;" goto statement_identifier ;)) (if_statement "if ((-1 < (char)bVar2) || ((char)bVar3 < '\0')) {\n          if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;\n          cVar1 = *(char *)puVar18[4];\n          if (cVar1 != '_') {\n            if (*(char *)puVar19[-0x3e] == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }\n          if ((((char *)puVar18[4])[1] == '_') || (*(char *)(puVar19[-0x3e] + 1) != '_'))\n          goto LAB_0001eb60;\n        }" if (parenthesized_expression "((-1 < (char)bVar2) || ((char)bVar3 < '\0'))" ( (binary_expression "(-1 < (char)bVar2) || ((char)bVar3 < '\0')" (parenthesized_expression "(-1 < (char)bVar2)" ( (binary_expression "-1 < (char)bVar2" number_literal < (cast_expression "(char)bVar2" ( (type_descriptor "char" primitive_type) ) identifier)) )) || (parenthesized_expression "((char)bVar3 < '\0')" ( (binary_expression "(char)bVar3 < '\0'" (cast_expression "(char)bVar3" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;\n          cVar1 = *(char *)puVar18[4];\n          if (cVar1 != '_') {\n            if (*(char *)puVar19[-0x3e] == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }\n          if ((((char *)puVar18[4])[1] == '_') || (*(char *)(puVar19[-0x3e] + 1) != '_'))\n          goto LAB_0001eb60;\n        }" { (if_statement "if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;" if (parenthesized_expression "((char)(bVar2 ^ bVar3) < '\0')" ( (binary_expression "(char)(bVar2 ^ bVar3) < '\0'" (cast_expression "(char)(bVar2 ^ bVar3)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(bVar2 ^ bVar3)" ( (binary_expression "bVar2 ^ bVar3" identifier ^ identifier) ))) < (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0001eb60;" goto statement_identifier ;)) (expression_statement "cVar1 = *(char *)puVar18[4];" (assignment_expression "cVar1 = *(char *)puVar18[4]" identifier = (pointer_expression "*(char *)puVar18[4]" * (cast_expression "(char *)puVar18[4]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar18[4]" identifier [ number_literal ])))) ;) (if_statement "if (cVar1 != '_') {\n            if (*(char *)puVar19[-0x3e] == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }" if (parenthesized_expression "(cVar1 != '_')" ( (binary_expression "cVar1 != '_'" identifier != (char_literal "'_'" ' character ')) )) (compound_statement "{\n            if (*(char *)puVar19[-0x3e] == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }" { (if_statement "if (*(char *)puVar19[-0x3e] == '_') goto LAB_0001ecb8;" if (parenthesized_expression "(*(char *)puVar19[-0x3e] == '_')" ( (binary_expression "*(char *)puVar19[-0x3e] == '_'" (pointer_expression "*(char *)puVar19[-0x3e]" * (cast_expression "(char *)puVar19[-0x3e]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar19[-0x3e]" identifier [ number_literal ]))) == (char_literal "'_'" ' character ')) )) (goto_statement "goto LAB_0001ecb8;" goto statement_identifier ;)) (if_statement "if (cVar1 == '\0') goto LAB_0001eb60;" if (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0001eb60;" goto statement_identifier ;)) })) (if_statement "if ((((char *)puVar18[4])[1] == '_') || (*(char *)(puVar19[-0x3e] + 1) != '_'))\n          goto LAB_0001eb60;" if (parenthesized_expression "((((char *)puVar18[4])[1] == '_') || (*(char *)(puVar19[-0x3e] + 1) != '_'))" ( (binary_expression "(((char *)puVar18[4])[1] == '_') || (*(char *)(puVar19[-0x3e] + 1) != '_')" (parenthesized_expression "(((char *)puVar18[4])[1] == '_')" ( (binary_expression "((char *)puVar18[4])[1] == '_'" (subscript_expression "((char *)puVar18[4])[1]" (parenthesized_expression "((char *)puVar18[4])" ( (cast_expression "(char *)puVar18[4]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar18[4]" identifier [ number_literal ])) )) [ number_literal ]) == (char_literal "'_'" ' character ')) )) || (parenthesized_expression "(*(char *)(puVar19[-0x3e] + 1) != '_')" ( (binary_expression "*(char *)(puVar19[-0x3e] + 1) != '_'" (pointer_expression "*(char *)(puVar19[-0x3e] + 1)" * (cast_expression "(char *)(puVar19[-0x3e] + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19[-0x3e] + 1)" ( (binary_expression "puVar19[-0x3e] + 1" (subscript_expression "puVar19[-0x3e]" identifier [ number_literal ]) + number_literal) )))) != (char_literal "'_'" ' character ')) ))) )) (goto_statement "goto LAB_0001eb60;" goto statement_identifier ;)) })) (labeled_statement "LAB_0001ecb8:\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar9 = 0x74;\n          uVar13 = puVar19[-0x3e];\n          uVar17 = 0x66;\n          uVar14 = 0x74;\n          if ((bVar3 & 0x40) == 0) {\n            uVar9 = 0x54;\n          }\n          if ((bVar2 & 0x40) == 0) {\n            uVar14 = 0x54;\n          }\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          goto LAB_0001ecec;\n        }" statement_identifier : (if_statement "if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar9 = 0x74;\n          uVar13 = puVar19[-0x3e];\n          uVar17 = 0x66;\n          uVar14 = 0x74;\n          if ((bVar3 & 0x40) == 0) {\n            uVar9 = 0x54;\n          }\n          if ((bVar2 & 0x40) == 0) {\n            uVar14 = 0x54;\n          }\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          goto LAB_0001ecec;\n        }" if (parenthesized_expression "(uVar12 != 0)" ( (binary_expression "uVar12 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar4 = puVar18[4];\n          uVar9 = 0x74;\n          uVar13 = puVar19[-0x3e];\n          uVar17 = 0x66;\n          uVar14 = 0x74;\n          if ((bVar3 & 0x40) == 0) {\n            uVar9 = 0x54;\n          }\n          if ((bVar2 & 0x40) == 0) {\n            uVar14 = 0x54;\n          }\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          goto LAB_0001ecec;\n        }" { (expression_statement "uVar4 = puVar18[4];" (assignment_expression "uVar4 = puVar18[4]" identifier = (subscript_expression "puVar18[4]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = 0x74;" (assignment_expression "uVar9 = 0x74" identifier = number_literal) ;) (expression_statement "uVar13 = puVar19[-0x3e];" (assignment_expression "uVar13 = puVar19[-0x3e]" identifier = (subscript_expression "puVar19[-0x3e]" identifier [ number_literal ])) ;) (expression_statement "uVar17 = 0x66;" (assignment_expression "uVar17 = 0x66" identifier = number_literal) ;) (expression_statement "uVar14 = 0x74;" (assignment_expression "uVar14 = 0x74" identifier = number_literal) ;) (if_statement "if ((bVar3 & 0x40) == 0) {\n            uVar9 = 0x54;\n          }" if (parenthesized_expression "((bVar3 & 0x40) == 0)" ( (binary_expression "(bVar3 & 0x40) == 0" (parenthesized_expression "(bVar3 & 0x40)" ( (binary_expression "bVar3 & 0x40" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            uVar9 = 0x54;\n          }" { (expression_statement "uVar9 = 0x54;" (assignment_expression "uVar9 = 0x54" identifier = number_literal) ;) })) (if_statement "if ((bVar2 & 0x40) == 0) {\n            uVar14 = 0x54;\n          }" if (parenthesized_expression "((bVar2 & 0x40) == 0)" ( (binary_expression "(bVar2 & 0x40) == 0" (parenthesized_expression "(bVar2 & 0x40)" ( (binary_expression "bVar2 & 0x40" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            uVar14 = 0x54;\n          }" { (expression_statement "uVar14 = 0x54;" (assignment_expression "uVar14 = 0x54" identifier = number_literal) ;) })) (if_statement "if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }" if (parenthesized_expression "((char)bVar2 < '\0')" ( (binary_expression "(char)bVar2 < '\0'" (cast_expression "(char)bVar2" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            uVar17 = 0x46;\n          }" { (expression_statement "uVar17 = 0x46;" (assignment_expression "uVar17 = 0x46" identifier = number_literal) ;) })) (goto_statement "goto LAB_0001ecec;" goto statement_identifier ;) }))) }))) (expression_statement "puVar15 = puVar18;" (assignment_expression "puVar15 = puVar18" identifier = identifier) ;) (expression_statement "puVar6 = puVar19 + -0x42;" (assignment_expression "puVar6 = puVar19 + -0x42" identifier = (binary_expression "puVar19 + -0x42" identifier + number_literal)) ;) (do_statement "do {\n        puVar11 = puVar6;\n        puVar5 = puVar15;\n        puVar15 = puVar5 + 4;\n        uVar10 = puVar5[1];\n        uVar13 = puVar5[2];\n        uVar4 = puVar5[3];\n        *puVar11 = *puVar5;\n        puVar11[1] = uVar10;\n        puVar11[2] = uVar13;\n        puVar11[3] = uVar4;\n        puVar6 = puVar11 + 4;\n      } while (puVar15 != puVar18 + 0x40);" do (compound_statement "{\n        puVar11 = puVar6;\n        puVar5 = puVar15;\n        puVar15 = puVar5 + 4;\n        uVar10 = puVar5[1];\n        uVar13 = puVar5[2];\n        uVar4 = puVar5[3];\n        *puVar11 = *puVar5;\n        puVar11[1] = uVar10;\n        puVar11[2] = uVar13;\n        puVar11[3] = uVar4;\n        puVar6 = puVar11 + 4;\n      }" { (expression_statement "puVar11 = puVar6;" (assignment_expression "puVar11 = puVar6" identifier = identifier) ;) (expression_statement "puVar5 = puVar15;" (assignment_expression "puVar5 = puVar15" identifier = identifier) ;) (expression_statement "puVar15 = puVar5 + 4;" (assignment_expression "puVar15 = puVar5 + 4" identifier = (binary_expression "puVar5 + 4" identifier + number_literal)) ;) (expression_statement "uVar10 = puVar5[1];" (assignment_expression "uVar10 = puVar5[1]" identifier = (subscript_expression "puVar5[1]" identifier [ number_literal ])) ;) (expression_statement "uVar13 = puVar5[2];" (assignment_expression "uVar13 = puVar5[2]" identifier = (subscript_expression "puVar5[2]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = puVar5[3];" (assignment_expression "uVar4 = puVar5[3]" identifier = (subscript_expression "puVar5[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar11 = *puVar5;" (assignment_expression "*puVar11 = *puVar5" (pointer_expression "*puVar11" * identifier) = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "puVar11[1] = uVar10;" (assignment_expression "puVar11[1] = uVar10" (subscript_expression "puVar11[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar11[2] = uVar13;" (assignment_expression "puVar11[2] = uVar13" (subscript_expression "puVar11[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar11[3] = uVar4;" (assignment_expression "puVar11[3] = uVar4" (subscript_expression "puVar11[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6 = puVar11 + 4;" (assignment_expression "puVar6 = puVar11 + 4" identifier = (binary_expression "puVar11 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar15 != puVar18 + 0x40)" ( (binary_expression "puVar15 != puVar18 + 0x40" identifier != (binary_expression "puVar18 + 0x40" identifier + number_literal)) )) ;) (expression_statement "puVar18 = puVar18 + 0x42;" (assignment_expression "puVar18 = puVar18 + 0x42" identifier = (binary_expression "puVar18 + 0x42" identifier + number_literal)) ;) (expression_statement "uVar4 = puVar5[5];" (assignment_expression "uVar4 = puVar5[5]" identifier = (subscript_expression "puVar5[5]" identifier [ number_literal ])) ;) (expression_statement "puVar11[4] = *puVar15;" (assignment_expression "puVar11[4] = *puVar15" (subscript_expression "puVar11[4]" identifier [ number_literal ]) = (pointer_expression "*puVar15" * identifier)) ;) (expression_statement "puVar11[5] = uVar4;" (assignment_expression "puVar11[5] = uVar4" (subscript_expression "puVar11[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15 = (uint *)param_1[2];" (assignment_expression "puVar15 = (uint *)param_1[2]" identifier = (cast_expression "(uint *)param_1[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (if_statement "if (puVar15 <= puVar18) break;" if (parenthesized_expression "(puVar15 <= puVar18)" ( (binary_expression "puVar15 <= puVar18" identifier <= identifier) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "uVar4 = ((int)((int)puVar19 - param_1[1]) >> 3) * 0x3e0f83e1;" (assignment_expression "uVar4 = ((int)((int)puVar19 - param_1[1]) >> 3) * 0x3e0f83e1" identifier = (binary_expression "((int)((int)puVar19 - param_1[1]) >> 3) * 0x3e0f83e1" (parenthesized_expression "((int)((int)puVar19 - param_1[1]) >> 3)" ( (binary_expression "(int)((int)puVar19 - param_1[1]) >> 3" (cast_expression "(int)((int)puVar19 - param_1[1])" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)puVar19 - param_1[1])" ( (binary_expression "(int)puVar19 - param_1[1]" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) - (subscript_expression "param_1[1]" identifier [ number_literal ])) ))) >> number_literal) )) * number_literal)) ;) (expression_statement "puVar18 = puVar19;" (assignment_expression "puVar18 = puVar19" identifier = identifier) ;) (goto_statement "goto LAB_0001ea58;" goto statement_identifier ;) (labeled_statement "LAB_0001eb60:\n  uVar9 = 0x54;" statement_identifier : (expression_statement "uVar9 = 0x54;" (assignment_expression "uVar9 = 0x54" identifier = number_literal) ;)) (if_statement "if (uVar12 != 0) {\n    uVar14 = 0x54;\n    if ((bVar2 & 0x40) != 0) {\n      uVar14 = 0x74;\n    }\n    uVar17 = 0x66;\n    if ((bVar3 & 0x40) != 0) {\n      uVar9 = 0x74;\n    }\n    uVar8 = 0x66;\n    if ((char)bVar2 < '\0') {\n      uVar8 = 0x46;\n    }\n    if ((char)bVar3 < '\0') {\n      uVar17 = 0x46;\n    }\n    (*(code *)PTR_printf_0003a6f4)(puVar23,puVar19[-0x3e],uVar9,uVar17,puVar18[4],uVar14,uVar8);\n    (*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);\n    puVar15 = (uint *)param_1[2];\n    uVar12 = *(uint *)puVar22 & 0x1080;\n  }" if (parenthesized_expression "(uVar12 != 0)" ( (binary_expression "uVar12 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar14 = 0x54;\n    if ((bVar2 & 0x40) != 0) {\n      uVar14 = 0x74;\n    }\n    uVar17 = 0x66;\n    if ((bVar3 & 0x40) != 0) {\n      uVar9 = 0x74;\n    }\n    uVar8 = 0x66;\n    if ((char)bVar2 < '\0') {\n      uVar8 = 0x46;\n    }\n    if ((char)bVar3 < '\0') {\n      uVar17 = 0x46;\n    }\n    (*(code *)PTR_printf_0003a6f4)(puVar23,puVar19[-0x3e],uVar9,uVar17,puVar18[4],uVar14,uVar8);\n    (*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);\n    puVar15 = (uint *)param_1[2];\n    uVar12 = *(uint *)puVar22 & 0x1080;\n  }" { (expression_statement "uVar14 = 0x54;" (assignment_expression "uVar14 = 0x54" identifier = number_literal) ;) (if_statement "if ((bVar2 & 0x40) != 0) {\n      uVar14 = 0x74;\n    }" if (parenthesized_expression "((bVar2 & 0x40) != 0)" ( (binary_expression "(bVar2 & 0x40) != 0" (parenthesized_expression "(bVar2 & 0x40)" ( (binary_expression "bVar2 & 0x40" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar14 = 0x74;\n    }" { (expression_statement "uVar14 = 0x74;" (assignment_expression "uVar14 = 0x74" identifier = number_literal) ;) })) (expression_statement "uVar17 = 0x66;" (assignment_expression "uVar17 = 0x66" identifier = number_literal) ;) (if_statement "if ((bVar3 & 0x40) != 0) {\n      uVar9 = 0x74;\n    }" if (parenthesized_expression "((bVar3 & 0x40) != 0)" ( (binary_expression "(bVar3 & 0x40) != 0" (parenthesized_expression "(bVar3 & 0x40)" ( (binary_expression "bVar3 & 0x40" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar9 = 0x74;\n    }" { (expression_statement "uVar9 = 0x74;" (assignment_expression "uVar9 = 0x74" identifier = number_literal) ;) })) (expression_statement "uVar8 = 0x66;" (assignment_expression "uVar8 = 0x66" identifier = number_literal) ;) (if_statement "if ((char)bVar2 < '\0') {\n      uVar8 = 0x46;\n    }" if (parenthesized_expression "((char)bVar2 < '\0')" ( (binary_expression "(char)bVar2 < '\0'" (cast_expression "(char)bVar2" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar8 = 0x46;\n    }" { (expression_statement "uVar8 = 0x46;" (assignment_expression "uVar8 = 0x46" identifier = number_literal) ;) })) (if_statement "if ((char)bVar3 < '\0') {\n      uVar17 = 0x46;\n    }" if (parenthesized_expression "((char)bVar3 < '\0')" ( (binary_expression "(char)bVar3 < '\0'" (cast_expression "(char)bVar3" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar17 = 0x46;\n    }" { (expression_statement "uVar17 = 0x46;" (assignment_expression "uVar17 = 0x46" identifier = number_literal) ;) })) (expression_statement "(*(code *)PTR_printf_0003a6f4)(puVar23,puVar19[-0x3e],uVar9,uVar17,puVar18[4],uVar14,uVar8);" (call_expression "(*(code *)PTR_printf_0003a6f4)(puVar23,puVar19[-0x3e],uVar9,uVar17,puVar18[4],uVar14,uVar8)" (parenthesized_expression "(*(code *)PTR_printf_0003a6f4)" ( (pointer_expression "*(code *)PTR_printf_0003a6f4" * (cast_expression "(code *)PTR_printf_0003a6f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar23,puVar19[-0x3e],uVar9,uVar17,puVar18[4],uVar14,uVar8)" ( identifier , (subscript_expression "puVar19[-0x3e]" identifier [ number_literal ]) , identifier , identifier , (subscript_expression "puVar18[4]" identifier [ number_literal ]) , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);" (call_expression "(*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1])" (parenthesized_expression "(*(code *)PTR_printf_0003a6f4)" ( (pointer_expression "*(code *)PTR_printf_0003a6f4" * (cast_expression "(code *)PTR_printf_0003a6f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar21,puVar18[1])" ( identifier , (subscript_expression "puVar18[1]" identifier [ number_literal ]) ))) ;) (expression_statement "puVar15 = (uint *)param_1[2];" (assignment_expression "puVar15 = (uint *)param_1[2]" identifier = (cast_expression "(uint *)param_1[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (expression_statement "uVar12 = *(uint *)puVar22 & 0x1080;" (assignment_expression "uVar12 = *(uint *)puVar22 & 0x1080" identifier = (binary_expression "*(uint *)puVar22 & 0x1080" (pointer_expression "*(uint *)puVar22" * (cast_expression "(uint *)puVar22" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal)) ;) })) (goto_statement "goto LAB_0001e998;" goto statement_identifier ;) })))
(translation_unit "void symtab_finalize(Sym_Table *tab)\n\n{\n  char cVar1;\n  byte bVar2;\n  byte bVar3;\n  bfd_vma bVar4;\n  bfd_vma bVar5;\n  uint uVar6;\n  Sym *pSVar7;\n  Source_File *pSVar8;\n  Sym *pSVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  Sym *pSVar12;\n  uint uVar13;\n  uint uVar14;\n  char *pcVar15;\n  uint uVar16;\n  undefined4 uVar17;\n  int iVar18;\n  int iVar19;\n  undefined4 uVar20;\n  Sym *pSVar21;\n  int iVar22;\n  undefined4 uVar23;\n  char *pcVar24;\n  Sym *pSVar25;\n  Sym *pSVar26;\n  undefined *puVar27;\n  undefined *puVar28;\n  undefined *puVar29;\n  uint uVar30;\n  uint uVar31;\n  \n  if (tab->len == 0) {\n    return;\n  }\n  (*(code *)PTR_qsort_0003a5f0)(tab->base,tab->len,0x108,PTR_LAB_0003a3e8 + -0x1890);\n  puVar28 = PTR_debug_level_0003a418;\n  pSVar25 = tab->base;\n  pSVar21 = tab->limit;\n  uVar14 = (uint)pSVar25->addr;\n  uVar6 = *(uint *)&pSVar25->addr;\n  uVar31 = uVar14 + 1;\n  uVar30 = (uVar31 < uVar14) + uVar6;\n  if (pSVar21 <= pSVar25) {\n    uVar6 = 0;\n    uVar13 = *(uint *)PTR_debug_level_0003a418 & 0x1080;\nLAB_0001ea58:\n    uVar14 = tab->len;\n    if ((uVar14 != 0) && (*(int *)&pSVar25[-1].end_addr == 0 && (int)pSVar25[-1].end_addr == 0)) {\n      iVar18 = *(int *)PTR_core_text_sect_0003a534;\n      uVar31 = *(uint *)(iVar18 + 0x24);\n      iVar22 = *(int *)(iVar18 + 0x20);\n      iVar19 = *(int *)(iVar18 + 0x30);\n      uVar30 = uVar31 + *(int *)(iVar18 + 0x34);\n      *(uint *)((int)&pSVar25[-1].end_addr + 4) = uVar30 - 1;\n      *(uint *)&pSVar25[-1].end_addr =\n           (uint)(uVar30 - 1 < uVar30) + (uint)(uVar30 < uVar31) + iVar22 + iVar19 + -1;\n    }\n    if (uVar13 == 0) {\n      tab->limit = pSVar25;\n      tab->len = uVar6;\n    }\n    else {\n      (*(code *)PTR_printf_0003a6f4)(PTR_LAB_0003a3e8 + 0x6b20,uVar14 - uVar6);\n      pSVar21 = tab->base;\n      uVar14 = *(uint *)puVar28;\n      tab->limit = pSVar25;\n      uVar6 = ((int)pSVar25 - (int)pSVar21 >> 3) * 0x3e0f83e1;\n      tab->len = uVar6;\n      if (((uVar14 & 0x1080) != 0) && (uVar6 != 0)) {\n        uVar6 = 0;\n        puVar28 = PTR_LAB_0003a3e8 + 0x6b54;\n        iVar18 = 0;\n        while( true ) {\n          uVar6 = uVar6 + 1;\n          (*(code *)PTR_printf_0003a6f4)\n                    (puVar28,*(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x24),\n                     *(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x1c),\n                     *(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x18));\n          if (tab->len <= uVar6) break;\n          pSVar21 = tab->base;\n          iVar18 = iVar18 + 0x108;\n        }\n        return;\n      }\n    }\n    return;\n  }\n  uVar13 = *(uint *)PTR_debug_level_0003a418 & 0x1080;\n  puVar29 = PTR_LAB_0003a3e8 + 0x6ae0;\n  puVar27 = PTR_LAB_0003a3e8 + 0x6b10;\n  pSVar26 = pSVar25;\n  if (uVar6 == uVar30) goto LAB_0001e9b8;\nLAB_0001e92c:\n  if ((tab->base < pSVar26) &&\n     (*(int *)&pSVar26[-1].end_addr == 0 && (int)pSVar26[-1].end_addr == 0)) {\n    *(uint *)((int)&pSVar26[-1].end_addr + 4) = uVar14 - 1;\n    *(uint *)&pSVar26[-1].end_addr = (uint)(uVar14 - 1 < uVar14) + (uVar6 - 1);\n  }\n  uVar11 = *(uint *)&pSVar25->end_addr;\n  uVar16 = (uint)pSVar25->end_addr;\n  pSVar9 = pSVar25;\n  pSVar7 = pSVar26;\n  if ((uVar11 == 0 && uVar16 == 0) ||\n     ((uVar6 <= uVar11 && ((uVar6 != uVar11 || (uVar14 <= uVar16)))))) {\n    do {\n      pSVar12 = pSVar7;\n      pSVar21 = pSVar9;\n      pSVar9 = (Sym *)&pSVar21->name;\n      bVar4 = pSVar21->addr;\n      uVar17 = *(undefined4 *)&pSVar21->end_addr;\n      bVar5 = pSVar21->end_addr;\n      *(undefined4 *)&pSVar12->addr = *(undefined4 *)&pSVar21->addr;\n      *(int *)((int)&pSVar12->addr + 4) = (int)bVar4;\n      *(undefined4 *)&pSVar12->end_addr = uVar17;\n      *(int *)((int)&pSVar12->end_addr + 4) = (int)bVar5;\n      pSVar7 = (Sym *)&pSVar12->name;\n    } while (pSVar9 != (Sym *)&(pSVar25->cg).children);\n    pSVar26 = pSVar26 + 1;\n    pSVar8 = pSVar21->file;\n    pSVar12->name = *(char **)pSVar9;\n    pSVar12->file = pSVar8;\n    uVar30 = *(uint *)&pSVar25->addr;\n    uVar31 = (uint)pSVar25->addr;\n    pSVar21 = tab->limit;\n  }\nLAB_0001e998:\n  pSVar25 = pSVar25 + 1;\n  if (pSVar25 < pSVar21) {\n    do {\n      uVar6 = *(uint *)&pSVar25->addr;\n      uVar14 = (uint)pSVar25->addr;\n      if (uVar6 != uVar30) goto LAB_0001e92c;\nLAB_0001e9b8:\n      if (uVar14 != uVar31) goto LAB_0001e92c;\n      bVar2 = pSVar25->field_0x1c;\n      bVar3 = pSVar26[-1].field_0x1c;\n      if (((bVar2 & 0x40) == 0) && ((bVar3 & 0x40) != 0)) {\n        if (uVar13 != 0) {\n          pcVar15 = pSVar25->name;\n          uVar23 = 0x66;\n          pcVar24 = pSVar26[-1].name;\n          uVar20 = 0x54;\n          if ((char)bVar2 < '\0') {\n            uVar23 = 0x46;\n          }\n          uVar17 = 0x74;\nLAB_0001ecec:\n          uVar10 = 0x66;\n          if ((char)bVar3 < '\0') {\n            uVar10 = 0x46;\n          }\n          (*(code *)PTR_printf_0003a6f4)(puVar29,pcVar15,uVar20,uVar23,pcVar24,uVar17,uVar10);\n          (*(code *)PTR_printf_0003a6f4)(puVar27,(int)pSVar25->addr);\n          uVar13 = *(uint *)puVar28 & 0x1080;\n        }\n      }\n      else {\n        if (((bVar2 ^ bVar3) & 0x40) != 0) goto LAB_0001eb60;\n        if ((-1 < (char)bVar2) || ((char)bVar3 < '\0')) {\n          if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;\n          cVar1 = *pSVar25->name;\n          if (cVar1 != '_') {\n            if (*pSVar26[-1].name == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }\n          if ((pSVar25->name[1] == '_') || (pSVar26[-1].name[1] != '_')) goto LAB_0001eb60;\n        }\nLAB_0001ecb8:\n        if (uVar13 != 0) {\n          pcVar15 = pSVar25->name;\n          uVar17 = 0x74;\n          pcVar24 = pSVar26[-1].name;\n          uVar23 = 0x66;\n          uVar20 = 0x74;\n          if ((bVar3 & 0x40) == 0) {\n            uVar17 = 0x54;\n          }\n          if ((bVar2 & 0x40) == 0) {\n            uVar20 = 0x54;\n          }\n          if ((char)bVar2 < '\0') {\n            uVar23 = 0x46;\n          }\n          goto LAB_0001ecec;\n        }\n      }\n      pSVar21 = pSVar25;\n      pSVar9 = pSVar26 + -1;\n      do {\n        pSVar12 = pSVar9;\n        pSVar7 = pSVar21;\n        pSVar21 = (Sym *)&pSVar7->name;\n        bVar4 = pSVar7->addr;\n        uVar17 = *(undefined4 *)&pSVar7->end_addr;\n        bVar5 = pSVar7->end_addr;\n        *(undefined4 *)&pSVar12->addr = *(undefined4 *)&pSVar7->addr;\n        *(int *)((int)&pSVar12->addr + 4) = (int)bVar4;\n        *(undefined4 *)&pSVar12->end_addr = uVar17;\n        *(int *)((int)&pSVar12->end_addr + 4) = (int)bVar5;\n        pSVar9 = (Sym *)&pSVar12->name;\n      } while (pSVar21 != (Sym *)&(pSVar25->cg).children);\n      pSVar25 = pSVar25 + 1;\n      pSVar8 = pSVar7->file;\n      pSVar12->name = *(char **)pSVar21;\n      pSVar12->file = pSVar8;\n      pSVar21 = tab->limit;\n      if (pSVar21 <= pSVar25) break;\n    } while( true );\n  }\n  uVar6 = ((int)pSVar26 - (int)tab->base >> 3) * 0x3e0f83e1;\n  pSVar25 = pSVar26;\n  goto LAB_0001ea58;\nLAB_0001eb60:\n  uVar17 = 0x54;\n  if (uVar13 != 0) {\n    uVar20 = 0x54;\n    if ((bVar2 & 0x40) != 0) {\n      uVar20 = 0x74;\n    }\n    uVar23 = 0x66;\n    if ((bVar3 & 0x40) != 0) {\n      uVar17 = 0x74;\n    }\n    uVar10 = 0x66;\n    if ((char)bVar2 < '\0') {\n      uVar10 = 0x46;\n    }\n    if ((char)bVar3 < '\0') {\n      uVar23 = 0x46;\n    }\n    (*(code *)PTR_printf_0003a6f4)\n              (puVar29,pSVar26[-1].name,uVar17,uVar23,pSVar25->name,uVar20,uVar10);\n    (*(code *)PTR_printf_0003a6f4)(puVar27,(int)pSVar25->addr);\n    pSVar21 = tab->limit;\n    uVar13 = *(uint *)puVar28 & 0x1080;\n  }\n  goto LAB_0001e998;\n}\n\n" (function_definition "void symtab_finalize(Sym_Table *tab)\n\n{\n  char cVar1;\n  byte bVar2;\n  byte bVar3;\n  bfd_vma bVar4;\n  bfd_vma bVar5;\n  uint uVar6;\n  Sym *pSVar7;\n  Source_File *pSVar8;\n  Sym *pSVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  Sym *pSVar12;\n  uint uVar13;\n  uint uVar14;\n  char *pcVar15;\n  uint uVar16;\n  undefined4 uVar17;\n  int iVar18;\n  int iVar19;\n  undefined4 uVar20;\n  Sym *pSVar21;\n  int iVar22;\n  undefined4 uVar23;\n  char *pcVar24;\n  Sym *pSVar25;\n  Sym *pSVar26;\n  undefined *puVar27;\n  undefined *puVar28;\n  undefined *puVar29;\n  uint uVar30;\n  uint uVar31;\n  \n  if (tab->len == 0) {\n    return;\n  }\n  (*(code *)PTR_qsort_0003a5f0)(tab->base,tab->len,0x108,PTR_LAB_0003a3e8 + -0x1890);\n  puVar28 = PTR_debug_level_0003a418;\n  pSVar25 = tab->base;\n  pSVar21 = tab->limit;\n  uVar14 = (uint)pSVar25->addr;\n  uVar6 = *(uint *)&pSVar25->addr;\n  uVar31 = uVar14 + 1;\n  uVar30 = (uVar31 < uVar14) + uVar6;\n  if (pSVar21 <= pSVar25) {\n    uVar6 = 0;\n    uVar13 = *(uint *)PTR_debug_level_0003a418 & 0x1080;\nLAB_0001ea58:\n    uVar14 = tab->len;\n    if ((uVar14 != 0) && (*(int *)&pSVar25[-1].end_addr == 0 && (int)pSVar25[-1].end_addr == 0)) {\n      iVar18 = *(int *)PTR_core_text_sect_0003a534;\n      uVar31 = *(uint *)(iVar18 + 0x24);\n      iVar22 = *(int *)(iVar18 + 0x20);\n      iVar19 = *(int *)(iVar18 + 0x30);\n      uVar30 = uVar31 + *(int *)(iVar18 + 0x34);\n      *(uint *)((int)&pSVar25[-1].end_addr + 4) = uVar30 - 1;\n      *(uint *)&pSVar25[-1].end_addr =\n           (uint)(uVar30 - 1 < uVar30) + (uint)(uVar30 < uVar31) + iVar22 + iVar19 + -1;\n    }\n    if (uVar13 == 0) {\n      tab->limit = pSVar25;\n      tab->len = uVar6;\n    }\n    else {\n      (*(code *)PTR_printf_0003a6f4)(PTR_LAB_0003a3e8 + 0x6b20,uVar14 - uVar6);\n      pSVar21 = tab->base;\n      uVar14 = *(uint *)puVar28;\n      tab->limit = pSVar25;\n      uVar6 = ((int)pSVar25 - (int)pSVar21 >> 3) * 0x3e0f83e1;\n      tab->len = uVar6;\n      if (((uVar14 & 0x1080) != 0) && (uVar6 != 0)) {\n        uVar6 = 0;\n        puVar28 = PTR_LAB_0003a3e8 + 0x6b54;\n        iVar18 = 0;\n        while( true ) {\n          uVar6 = uVar6 + 1;\n          (*(code *)PTR_printf_0003a6f4)\n                    (puVar28,*(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x24),\n                     *(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x1c),\n                     *(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x18));\n          if (tab->len <= uVar6) break;\n          pSVar21 = tab->base;\n          iVar18 = iVar18 + 0x108;\n        }\n        return;\n      }\n    }\n    return;\n  }\n  uVar13 = *(uint *)PTR_debug_level_0003a418 & 0x1080;\n  puVar29 = PTR_LAB_0003a3e8 + 0x6ae0;\n  puVar27 = PTR_LAB_0003a3e8 + 0x6b10;\n  pSVar26 = pSVar25;\n  if (uVar6 == uVar30) goto LAB_0001e9b8;\nLAB_0001e92c:\n  if ((tab->base < pSVar26) &&\n     (*(int *)&pSVar26[-1].end_addr == 0 && (int)pSVar26[-1].end_addr == 0)) {\n    *(uint *)((int)&pSVar26[-1].end_addr + 4) = uVar14 - 1;\n    *(uint *)&pSVar26[-1].end_addr = (uint)(uVar14 - 1 < uVar14) + (uVar6 - 1);\n  }\n  uVar11 = *(uint *)&pSVar25->end_addr;\n  uVar16 = (uint)pSVar25->end_addr;\n  pSVar9 = pSVar25;\n  pSVar7 = pSVar26;\n  if ((uVar11 == 0 && uVar16 == 0) ||\n     ((uVar6 <= uVar11 && ((uVar6 != uVar11 || (uVar14 <= uVar16)))))) {\n    do {\n      pSVar12 = pSVar7;\n      pSVar21 = pSVar9;\n      pSVar9 = (Sym *)&pSVar21->name;\n      bVar4 = pSVar21->addr;\n      uVar17 = *(undefined4 *)&pSVar21->end_addr;\n      bVar5 = pSVar21->end_addr;\n      *(undefined4 *)&pSVar12->addr = *(undefined4 *)&pSVar21->addr;\n      *(int *)((int)&pSVar12->addr + 4) = (int)bVar4;\n      *(undefined4 *)&pSVar12->end_addr = uVar17;\n      *(int *)((int)&pSVar12->end_addr + 4) = (int)bVar5;\n      pSVar7 = (Sym *)&pSVar12->name;\n    } while (pSVar9 != (Sym *)&(pSVar25->cg).children);\n    pSVar26 = pSVar26 + 1;\n    pSVar8 = pSVar21->file;\n    pSVar12->name = *(char **)pSVar9;\n    pSVar12->file = pSVar8;\n    uVar30 = *(uint *)&pSVar25->addr;\n    uVar31 = (uint)pSVar25->addr;\n    pSVar21 = tab->limit;\n  }\nLAB_0001e998:\n  pSVar25 = pSVar25 + 1;\n  if (pSVar25 < pSVar21) {\n    do {\n      uVar6 = *(uint *)&pSVar25->addr;\n      uVar14 = (uint)pSVar25->addr;\n      if (uVar6 != uVar30) goto LAB_0001e92c;\nLAB_0001e9b8:\n      if (uVar14 != uVar31) goto LAB_0001e92c;\n      bVar2 = pSVar25->field_0x1c;\n      bVar3 = pSVar26[-1].field_0x1c;\n      if (((bVar2 & 0x40) == 0) && ((bVar3 & 0x40) != 0)) {\n        if (uVar13 != 0) {\n          pcVar15 = pSVar25->name;\n          uVar23 = 0x66;\n          pcVar24 = pSVar26[-1].name;\n          uVar20 = 0x54;\n          if ((char)bVar2 < '\0') {\n            uVar23 = 0x46;\n          }\n          uVar17 = 0x74;\nLAB_0001ecec:\n          uVar10 = 0x66;\n          if ((char)bVar3 < '\0') {\n            uVar10 = 0x46;\n          }\n          (*(code *)PTR_printf_0003a6f4)(puVar29,pcVar15,uVar20,uVar23,pcVar24,uVar17,uVar10);\n          (*(code *)PTR_printf_0003a6f4)(puVar27,(int)pSVar25->addr);\n          uVar13 = *(uint *)puVar28 & 0x1080;\n        }\n      }\n      else {\n        if (((bVar2 ^ bVar3) & 0x40) != 0) goto LAB_0001eb60;\n        if ((-1 < (char)bVar2) || ((char)bVar3 < '\0')) {\n          if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;\n          cVar1 = *pSVar25->name;\n          if (cVar1 != '_') {\n            if (*pSVar26[-1].name == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }\n          if ((pSVar25->name[1] == '_') || (pSVar26[-1].name[1] != '_')) goto LAB_0001eb60;\n        }\nLAB_0001ecb8:\n        if (uVar13 != 0) {\n          pcVar15 = pSVar25->name;\n          uVar17 = 0x74;\n          pcVar24 = pSVar26[-1].name;\n          uVar23 = 0x66;\n          uVar20 = 0x74;\n          if ((bVar3 & 0x40) == 0) {\n            uVar17 = 0x54;\n          }\n          if ((bVar2 & 0x40) == 0) {\n            uVar20 = 0x54;\n          }\n          if ((char)bVar2 < '\0') {\n            uVar23 = 0x46;\n          }\n          goto LAB_0001ecec;\n        }\n      }\n      pSVar21 = pSVar25;\n      pSVar9 = pSVar26 + -1;\n      do {\n        pSVar12 = pSVar9;\n        pSVar7 = pSVar21;\n        pSVar21 = (Sym *)&pSVar7->name;\n        bVar4 = pSVar7->addr;\n        uVar17 = *(undefined4 *)&pSVar7->end_addr;\n        bVar5 = pSVar7->end_addr;\n        *(undefined4 *)&pSVar12->addr = *(undefined4 *)&pSVar7->addr;\n        *(int *)((int)&pSVar12->addr + 4) = (int)bVar4;\n        *(undefined4 *)&pSVar12->end_addr = uVar17;\n        *(int *)((int)&pSVar12->end_addr + 4) = (int)bVar5;\n        pSVar9 = (Sym *)&pSVar12->name;\n      } while (pSVar21 != (Sym *)&(pSVar25->cg).children);\n      pSVar25 = pSVar25 + 1;\n      pSVar8 = pSVar7->file;\n      pSVar12->name = *(char **)pSVar21;\n      pSVar12->file = pSVar8;\n      pSVar21 = tab->limit;\n      if (pSVar21 <= pSVar25) break;\n    } while( true );\n  }\n  uVar6 = ((int)pSVar26 - (int)tab->base >> 3) * 0x3e0f83e1;\n  pSVar25 = pSVar26;\n  goto LAB_0001ea58;\nLAB_0001eb60:\n  uVar17 = 0x54;\n  if (uVar13 != 0) {\n    uVar20 = 0x54;\n    if ((bVar2 & 0x40) != 0) {\n      uVar20 = 0x74;\n    }\n    uVar23 = 0x66;\n    if ((bVar3 & 0x40) != 0) {\n      uVar17 = 0x74;\n    }\n    uVar10 = 0x66;\n    if ((char)bVar2 < '\0') {\n      uVar10 = 0x46;\n    }\n    if ((char)bVar3 < '\0') {\n      uVar23 = 0x46;\n    }\n    (*(code *)PTR_printf_0003a6f4)\n              (puVar29,pSVar26[-1].name,uVar17,uVar23,pSVar25->name,uVar20,uVar10);\n    (*(code *)PTR_printf_0003a6f4)(puVar27,(int)pSVar25->addr);\n    pSVar21 = tab->limit;\n    uVar13 = *(uint *)puVar28 & 0x1080;\n  }\n  goto LAB_0001e998;\n}" primitive_type (function_declarator "symtab_finalize(Sym_Table *tab)" identifier (parameter_list "(Sym_Table *tab)" ( (parameter_declaration "Sym_Table *tab" type_identifier (pointer_declarator "*tab" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  byte bVar2;\n  byte bVar3;\n  bfd_vma bVar4;\n  bfd_vma bVar5;\n  uint uVar6;\n  Sym *pSVar7;\n  Source_File *pSVar8;\n  Sym *pSVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  Sym *pSVar12;\n  uint uVar13;\n  uint uVar14;\n  char *pcVar15;\n  uint uVar16;\n  undefined4 uVar17;\n  int iVar18;\n  int iVar19;\n  undefined4 uVar20;\n  Sym *pSVar21;\n  int iVar22;\n  undefined4 uVar23;\n  char *pcVar24;\n  Sym *pSVar25;\n  Sym *pSVar26;\n  undefined *puVar27;\n  undefined *puVar28;\n  undefined *puVar29;\n  uint uVar30;\n  uint uVar31;\n  \n  if (tab->len == 0) {\n    return;\n  }\n  (*(code *)PTR_qsort_0003a5f0)(tab->base,tab->len,0x108,PTR_LAB_0003a3e8 + -0x1890);\n  puVar28 = PTR_debug_level_0003a418;\n  pSVar25 = tab->base;\n  pSVar21 = tab->limit;\n  uVar14 = (uint)pSVar25->addr;\n  uVar6 = *(uint *)&pSVar25->addr;\n  uVar31 = uVar14 + 1;\n  uVar30 = (uVar31 < uVar14) + uVar6;\n  if (pSVar21 <= pSVar25) {\n    uVar6 = 0;\n    uVar13 = *(uint *)PTR_debug_level_0003a418 & 0x1080;\nLAB_0001ea58:\n    uVar14 = tab->len;\n    if ((uVar14 != 0) && (*(int *)&pSVar25[-1].end_addr == 0 && (int)pSVar25[-1].end_addr == 0)) {\n      iVar18 = *(int *)PTR_core_text_sect_0003a534;\n      uVar31 = *(uint *)(iVar18 + 0x24);\n      iVar22 = *(int *)(iVar18 + 0x20);\n      iVar19 = *(int *)(iVar18 + 0x30);\n      uVar30 = uVar31 + *(int *)(iVar18 + 0x34);\n      *(uint *)((int)&pSVar25[-1].end_addr + 4) = uVar30 - 1;\n      *(uint *)&pSVar25[-1].end_addr =\n           (uint)(uVar30 - 1 < uVar30) + (uint)(uVar30 < uVar31) + iVar22 + iVar19 + -1;\n    }\n    if (uVar13 == 0) {\n      tab->limit = pSVar25;\n      tab->len = uVar6;\n    }\n    else {\n      (*(code *)PTR_printf_0003a6f4)(PTR_LAB_0003a3e8 + 0x6b20,uVar14 - uVar6);\n      pSVar21 = tab->base;\n      uVar14 = *(uint *)puVar28;\n      tab->limit = pSVar25;\n      uVar6 = ((int)pSVar25 - (int)pSVar21 >> 3) * 0x3e0f83e1;\n      tab->len = uVar6;\n      if (((uVar14 & 0x1080) != 0) && (uVar6 != 0)) {\n        uVar6 = 0;\n        puVar28 = PTR_LAB_0003a3e8 + 0x6b54;\n        iVar18 = 0;\n        while( true ) {\n          uVar6 = uVar6 + 1;\n          (*(code *)PTR_printf_0003a6f4)\n                    (puVar28,*(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x24),\n                     *(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x1c),\n                     *(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x18));\n          if (tab->len <= uVar6) break;\n          pSVar21 = tab->base;\n          iVar18 = iVar18 + 0x108;\n        }\n        return;\n      }\n    }\n    return;\n  }\n  uVar13 = *(uint *)PTR_debug_level_0003a418 & 0x1080;\n  puVar29 = PTR_LAB_0003a3e8 + 0x6ae0;\n  puVar27 = PTR_LAB_0003a3e8 + 0x6b10;\n  pSVar26 = pSVar25;\n  if (uVar6 == uVar30) goto LAB_0001e9b8;\nLAB_0001e92c:\n  if ((tab->base < pSVar26) &&\n     (*(int *)&pSVar26[-1].end_addr == 0 && (int)pSVar26[-1].end_addr == 0)) {\n    *(uint *)((int)&pSVar26[-1].end_addr + 4) = uVar14 - 1;\n    *(uint *)&pSVar26[-1].end_addr = (uint)(uVar14 - 1 < uVar14) + (uVar6 - 1);\n  }\n  uVar11 = *(uint *)&pSVar25->end_addr;\n  uVar16 = (uint)pSVar25->end_addr;\n  pSVar9 = pSVar25;\n  pSVar7 = pSVar26;\n  if ((uVar11 == 0 && uVar16 == 0) ||\n     ((uVar6 <= uVar11 && ((uVar6 != uVar11 || (uVar14 <= uVar16)))))) {\n    do {\n      pSVar12 = pSVar7;\n      pSVar21 = pSVar9;\n      pSVar9 = (Sym *)&pSVar21->name;\n      bVar4 = pSVar21->addr;\n      uVar17 = *(undefined4 *)&pSVar21->end_addr;\n      bVar5 = pSVar21->end_addr;\n      *(undefined4 *)&pSVar12->addr = *(undefined4 *)&pSVar21->addr;\n      *(int *)((int)&pSVar12->addr + 4) = (int)bVar4;\n      *(undefined4 *)&pSVar12->end_addr = uVar17;\n      *(int *)((int)&pSVar12->end_addr + 4) = (int)bVar5;\n      pSVar7 = (Sym *)&pSVar12->name;\n    } while (pSVar9 != (Sym *)&(pSVar25->cg).children);\n    pSVar26 = pSVar26 + 1;\n    pSVar8 = pSVar21->file;\n    pSVar12->name = *(char **)pSVar9;\n    pSVar12->file = pSVar8;\n    uVar30 = *(uint *)&pSVar25->addr;\n    uVar31 = (uint)pSVar25->addr;\n    pSVar21 = tab->limit;\n  }\nLAB_0001e998:\n  pSVar25 = pSVar25 + 1;\n  if (pSVar25 < pSVar21) {\n    do {\n      uVar6 = *(uint *)&pSVar25->addr;\n      uVar14 = (uint)pSVar25->addr;\n      if (uVar6 != uVar30) goto LAB_0001e92c;\nLAB_0001e9b8:\n      if (uVar14 != uVar31) goto LAB_0001e92c;\n      bVar2 = pSVar25->field_0x1c;\n      bVar3 = pSVar26[-1].field_0x1c;\n      if (((bVar2 & 0x40) == 0) && ((bVar3 & 0x40) != 0)) {\n        if (uVar13 != 0) {\n          pcVar15 = pSVar25->name;\n          uVar23 = 0x66;\n          pcVar24 = pSVar26[-1].name;\n          uVar20 = 0x54;\n          if ((char)bVar2 < '\0') {\n            uVar23 = 0x46;\n          }\n          uVar17 = 0x74;\nLAB_0001ecec:\n          uVar10 = 0x66;\n          if ((char)bVar3 < '\0') {\n            uVar10 = 0x46;\n          }\n          (*(code *)PTR_printf_0003a6f4)(puVar29,pcVar15,uVar20,uVar23,pcVar24,uVar17,uVar10);\n          (*(code *)PTR_printf_0003a6f4)(puVar27,(int)pSVar25->addr);\n          uVar13 = *(uint *)puVar28 & 0x1080;\n        }\n      }\n      else {\n        if (((bVar2 ^ bVar3) & 0x40) != 0) goto LAB_0001eb60;\n        if ((-1 < (char)bVar2) || ((char)bVar3 < '\0')) {\n          if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;\n          cVar1 = *pSVar25->name;\n          if (cVar1 != '_') {\n            if (*pSVar26[-1].name == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }\n          if ((pSVar25->name[1] == '_') || (pSVar26[-1].name[1] != '_')) goto LAB_0001eb60;\n        }\nLAB_0001ecb8:\n        if (uVar13 != 0) {\n          pcVar15 = pSVar25->name;\n          uVar17 = 0x74;\n          pcVar24 = pSVar26[-1].name;\n          uVar23 = 0x66;\n          uVar20 = 0x74;\n          if ((bVar3 & 0x40) == 0) {\n            uVar17 = 0x54;\n          }\n          if ((bVar2 & 0x40) == 0) {\n            uVar20 = 0x54;\n          }\n          if ((char)bVar2 < '\0') {\n            uVar23 = 0x46;\n          }\n          goto LAB_0001ecec;\n        }\n      }\n      pSVar21 = pSVar25;\n      pSVar9 = pSVar26 + -1;\n      do {\n        pSVar12 = pSVar9;\n        pSVar7 = pSVar21;\n        pSVar21 = (Sym *)&pSVar7->name;\n        bVar4 = pSVar7->addr;\n        uVar17 = *(undefined4 *)&pSVar7->end_addr;\n        bVar5 = pSVar7->end_addr;\n        *(undefined4 *)&pSVar12->addr = *(undefined4 *)&pSVar7->addr;\n        *(int *)((int)&pSVar12->addr + 4) = (int)bVar4;\n        *(undefined4 *)&pSVar12->end_addr = uVar17;\n        *(int *)((int)&pSVar12->end_addr + 4) = (int)bVar5;\n        pSVar9 = (Sym *)&pSVar12->name;\n      } while (pSVar21 != (Sym *)&(pSVar25->cg).children);\n      pSVar25 = pSVar25 + 1;\n      pSVar8 = pSVar7->file;\n      pSVar12->name = *(char **)pSVar21;\n      pSVar12->file = pSVar8;\n      pSVar21 = tab->limit;\n      if (pSVar21 <= pSVar25) break;\n    } while( true );\n  }\n  uVar6 = ((int)pSVar26 - (int)tab->base >> 3) * 0x3e0f83e1;\n  pSVar25 = pSVar26;\n  goto LAB_0001ea58;\nLAB_0001eb60:\n  uVar17 = 0x54;\n  if (uVar13 != 0) {\n    uVar20 = 0x54;\n    if ((bVar2 & 0x40) != 0) {\n      uVar20 = 0x74;\n    }\n    uVar23 = 0x66;\n    if ((bVar3 & 0x40) != 0) {\n      uVar17 = 0x74;\n    }\n    uVar10 = 0x66;\n    if ((char)bVar2 < '\0') {\n      uVar10 = 0x46;\n    }\n    if ((char)bVar3 < '\0') {\n      uVar23 = 0x46;\n    }\n    (*(code *)PTR_printf_0003a6f4)\n              (puVar29,pSVar26[-1].name,uVar17,uVar23,pSVar25->name,uVar20,uVar10);\n    (*(code *)PTR_printf_0003a6f4)(puVar27,(int)pSVar25->addr);\n    pSVar21 = tab->limit;\n    uVar13 = *(uint *)puVar28 & 0x1080;\n  }\n  goto LAB_0001e998;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "bfd_vma bVar4;" type_identifier identifier ;) (declaration "bfd_vma bVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "Sym *pSVar7;" type_identifier (pointer_declarator "*pSVar7" * identifier) ;) (declaration "Source_File *pSVar8;" type_identifier (pointer_declarator "*pSVar8" * identifier) ;) (declaration "Sym *pSVar9;" type_identifier (pointer_declarator "*pSVar9" * identifier) ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "Sym *pSVar12;" type_identifier (pointer_declarator "*pSVar12" * identifier) ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "undefined4 uVar17;" type_identifier identifier ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "undefined4 uVar20;" type_identifier identifier ;) (declaration "Sym *pSVar21;" type_identifier (pointer_declarator "*pSVar21" * identifier) ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "undefined4 uVar23;" type_identifier identifier ;) (declaration "char *pcVar24;" primitive_type (pointer_declarator "*pcVar24" * identifier) ;) (declaration "Sym *pSVar25;" type_identifier (pointer_declarator "*pSVar25" * identifier) ;) (declaration "Sym *pSVar26;" type_identifier (pointer_declarator "*pSVar26" * identifier) ;) (declaration "undefined *puVar27;" type_identifier (pointer_declarator "*puVar27" * identifier) ;) (declaration "undefined *puVar28;" type_identifier (pointer_declarator "*puVar28" * identifier) ;) (declaration "undefined *puVar29;" type_identifier (pointer_declarator "*puVar29" * identifier) ;) (declaration "uint uVar30;" type_identifier identifier ;) (declaration "uint uVar31;" type_identifier identifier ;) (if_statement "if (tab->len == 0) {\n    return;\n  }" if (parenthesized_expression "(tab->len == 0)" ( (binary_expression "tab->len == 0" (field_expression "tab->len" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "(*(code *)PTR_qsort_0003a5f0)(tab->base,tab->len,0x108,PTR_LAB_0003a3e8 + -0x1890);" (call_expression "(*(code *)PTR_qsort_0003a5f0)(tab->base,tab->len,0x108,PTR_LAB_0003a3e8 + -0x1890)" (parenthesized_expression "(*(code *)PTR_qsort_0003a5f0)" ( (pointer_expression "*(code *)PTR_qsort_0003a5f0" * (cast_expression "(code *)PTR_qsort_0003a5f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(tab->base,tab->len,0x108,PTR_LAB_0003a3e8 + -0x1890)" ( (field_expression "tab->base" identifier -> field_identifier) , (field_expression "tab->len" identifier -> field_identifier) , number_literal , (binary_expression "PTR_LAB_0003a3e8 + -0x1890" identifier + number_literal) ))) ;) (expression_statement "puVar28 = PTR_debug_level_0003a418;" (assignment_expression "puVar28 = PTR_debug_level_0003a418" identifier = identifier) ;) (expression_statement "pSVar25 = tab->base;" (assignment_expression "pSVar25 = tab->base" identifier = (field_expression "tab->base" identifier -> field_identifier)) ;) (expression_statement "pSVar21 = tab->limit;" (assignment_expression "pSVar21 = tab->limit" identifier = (field_expression "tab->limit" identifier -> field_identifier)) ;) (expression_statement "uVar14 = (uint)pSVar25->addr;" (assignment_expression "uVar14 = (uint)pSVar25->addr" identifier = (cast_expression "(uint)pSVar25->addr" ( (type_descriptor "uint" type_identifier) ) (field_expression "pSVar25->addr" identifier -> field_identifier))) ;) (expression_statement "uVar6 = *(uint *)&pSVar25->addr;" (assignment_expression "uVar6 = *(uint *)&pSVar25->addr" identifier = (pointer_expression "*(uint *)&pSVar25->addr" * (cast_expression "(uint *)&pSVar25->addr" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pSVar25->addr" & (field_expression "pSVar25->addr" identifier -> field_identifier))))) ;) (expression_statement "uVar31 = uVar14 + 1;" (assignment_expression "uVar31 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) (expression_statement "uVar30 = (uVar31 < uVar14) + uVar6;" (assignment_expression "uVar30 = (uVar31 < uVar14) + uVar6" identifier = (binary_expression "(uVar31 < uVar14) + uVar6" (parenthesized_expression "(uVar31 < uVar14)" ( (binary_expression "uVar31 < uVar14" identifier < identifier) )) + identifier)) ;) (if_statement "if (pSVar21 <= pSVar25) {\n    uVar6 = 0;\n    uVar13 = *(uint *)PTR_debug_level_0003a418 & 0x1080;\nLAB_0001ea58:\n    uVar14 = tab->len;\n    if ((uVar14 != 0) && (*(int *)&pSVar25[-1].end_addr == 0 && (int)pSVar25[-1].end_addr == 0)) {\n      iVar18 = *(int *)PTR_core_text_sect_0003a534;\n      uVar31 = *(uint *)(iVar18 + 0x24);\n      iVar22 = *(int *)(iVar18 + 0x20);\n      iVar19 = *(int *)(iVar18 + 0x30);\n      uVar30 = uVar31 + *(int *)(iVar18 + 0x34);\n      *(uint *)((int)&pSVar25[-1].end_addr + 4) = uVar30 - 1;\n      *(uint *)&pSVar25[-1].end_addr =\n           (uint)(uVar30 - 1 < uVar30) + (uint)(uVar30 < uVar31) + iVar22 + iVar19 + -1;\n    }\n    if (uVar13 == 0) {\n      tab->limit = pSVar25;\n      tab->len = uVar6;\n    }\n    else {\n      (*(code *)PTR_printf_0003a6f4)(PTR_LAB_0003a3e8 + 0x6b20,uVar14 - uVar6);\n      pSVar21 = tab->base;\n      uVar14 = *(uint *)puVar28;\n      tab->limit = pSVar25;\n      uVar6 = ((int)pSVar25 - (int)pSVar21 >> 3) * 0x3e0f83e1;\n      tab->len = uVar6;\n      if (((uVar14 & 0x1080) != 0) && (uVar6 != 0)) {\n        uVar6 = 0;\n        puVar28 = PTR_LAB_0003a3e8 + 0x6b54;\n        iVar18 = 0;\n        while( true ) {\n          uVar6 = uVar6 + 1;\n          (*(code *)PTR_printf_0003a6f4)\n                    (puVar28,*(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x24),\n                     *(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x1c),\n                     *(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x18));\n          if (tab->len <= uVar6) break;\n          pSVar21 = tab->base;\n          iVar18 = iVar18 + 0x108;\n        }\n        return;\n      }\n    }\n    return;\n  }" if (parenthesized_expression "(pSVar21 <= pSVar25)" ( (binary_expression "pSVar21 <= pSVar25" identifier <= identifier) )) (compound_statement "{\n    uVar6 = 0;\n    uVar13 = *(uint *)PTR_debug_level_0003a418 & 0x1080;\nLAB_0001ea58:\n    uVar14 = tab->len;\n    if ((uVar14 != 0) && (*(int *)&pSVar25[-1].end_addr == 0 && (int)pSVar25[-1].end_addr == 0)) {\n      iVar18 = *(int *)PTR_core_text_sect_0003a534;\n      uVar31 = *(uint *)(iVar18 + 0x24);\n      iVar22 = *(int *)(iVar18 + 0x20);\n      iVar19 = *(int *)(iVar18 + 0x30);\n      uVar30 = uVar31 + *(int *)(iVar18 + 0x34);\n      *(uint *)((int)&pSVar25[-1].end_addr + 4) = uVar30 - 1;\n      *(uint *)&pSVar25[-1].end_addr =\n           (uint)(uVar30 - 1 < uVar30) + (uint)(uVar30 < uVar31) + iVar22 + iVar19 + -1;\n    }\n    if (uVar13 == 0) {\n      tab->limit = pSVar25;\n      tab->len = uVar6;\n    }\n    else {\n      (*(code *)PTR_printf_0003a6f4)(PTR_LAB_0003a3e8 + 0x6b20,uVar14 - uVar6);\n      pSVar21 = tab->base;\n      uVar14 = *(uint *)puVar28;\n      tab->limit = pSVar25;\n      uVar6 = ((int)pSVar25 - (int)pSVar21 >> 3) * 0x3e0f83e1;\n      tab->len = uVar6;\n      if (((uVar14 & 0x1080) != 0) && (uVar6 != 0)) {\n        uVar6 = 0;\n        puVar28 = PTR_LAB_0003a3e8 + 0x6b54;\n        iVar18 = 0;\n        while( true ) {\n          uVar6 = uVar6 + 1;\n          (*(code *)PTR_printf_0003a6f4)\n                    (puVar28,*(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x24),\n                     *(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x1c),\n                     *(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x18));\n          if (tab->len <= uVar6) break;\n          pSVar21 = tab->base;\n          iVar18 = iVar18 + 0x108;\n        }\n        return;\n      }\n    }\n    return;\n  }" { (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (expression_statement "uVar13 = *(uint *)PTR_debug_level_0003a418 & 0x1080;" (assignment_expression "uVar13 = *(uint *)PTR_debug_level_0003a418 & 0x1080" identifier = (binary_expression "*(uint *)PTR_debug_level_0003a418 & 0x1080" (pointer_expression "*(uint *)PTR_debug_level_0003a418" * (cast_expression "(uint *)PTR_debug_level_0003a418" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal)) ;) (labeled_statement "LAB_0001ea58:\n    uVar14 = tab->len;" statement_identifier : (expression_statement "uVar14 = tab->len;" (assignment_expression "uVar14 = tab->len" identifier = (field_expression "tab->len" identifier -> field_identifier)) ;)) (if_statement "if ((uVar14 != 0) && (*(int *)&pSVar25[-1].end_addr == 0 && (int)pSVar25[-1].end_addr == 0)) {\n      iVar18 = *(int *)PTR_core_text_sect_0003a534;\n      uVar31 = *(uint *)(iVar18 + 0x24);\n      iVar22 = *(int *)(iVar18 + 0x20);\n      iVar19 = *(int *)(iVar18 + 0x30);\n      uVar30 = uVar31 + *(int *)(iVar18 + 0x34);\n      *(uint *)((int)&pSVar25[-1].end_addr + 4) = uVar30 - 1;\n      *(uint *)&pSVar25[-1].end_addr =\n           (uint)(uVar30 - 1 < uVar30) + (uint)(uVar30 < uVar31) + iVar22 + iVar19 + -1;\n    }" if (parenthesized_expression "((uVar14 != 0) && (*(int *)&pSVar25[-1].end_addr == 0 && (int)pSVar25[-1].end_addr == 0))" ( (binary_expression "(uVar14 != 0) && (*(int *)&pSVar25[-1].end_addr == 0 && (int)pSVar25[-1].end_addr == 0)" (parenthesized_expression "(uVar14 != 0)" ( (binary_expression "uVar14 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(int *)&pSVar25[-1].end_addr == 0 && (int)pSVar25[-1].end_addr == 0)" ( (binary_expression "*(int *)&pSVar25[-1].end_addr == 0 && (int)pSVar25[-1].end_addr == 0" (binary_expression "*(int *)&pSVar25[-1].end_addr == 0" (pointer_expression "*(int *)&pSVar25[-1].end_addr" * (cast_expression "(int *)&pSVar25[-1].end_addr" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pSVar25[-1].end_addr" & (field_expression "pSVar25[-1].end_addr" (subscript_expression "pSVar25[-1]" identifier [ number_literal ]) . field_identifier)))) == number_literal) && (binary_expression "(int)pSVar25[-1].end_addr == 0" (cast_expression "(int)pSVar25[-1].end_addr" ( (type_descriptor "int" primitive_type) ) (field_expression "pSVar25[-1].end_addr" (subscript_expression "pSVar25[-1]" identifier [ number_literal ]) . field_identifier)) == number_literal)) ))) )) (compound_statement "{\n      iVar18 = *(int *)PTR_core_text_sect_0003a534;\n      uVar31 = *(uint *)(iVar18 + 0x24);\n      iVar22 = *(int *)(iVar18 + 0x20);\n      iVar19 = *(int *)(iVar18 + 0x30);\n      uVar30 = uVar31 + *(int *)(iVar18 + 0x34);\n      *(uint *)((int)&pSVar25[-1].end_addr + 4) = uVar30 - 1;\n      *(uint *)&pSVar25[-1].end_addr =\n           (uint)(uVar30 - 1 < uVar30) + (uint)(uVar30 < uVar31) + iVar22 + iVar19 + -1;\n    }" { (expression_statement "iVar18 = *(int *)PTR_core_text_sect_0003a534;" (assignment_expression "iVar18 = *(int *)PTR_core_text_sect_0003a534" identifier = (pointer_expression "*(int *)PTR_core_text_sect_0003a534" * (cast_expression "(int *)PTR_core_text_sect_0003a534" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar31 = *(uint *)(iVar18 + 0x24);" (assignment_expression "uVar31 = *(uint *)(iVar18 + 0x24)" identifier = (pointer_expression "*(uint *)(iVar18 + 0x24)" * (cast_expression "(uint *)(iVar18 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x24)" ( (binary_expression "iVar18 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "iVar22 = *(int *)(iVar18 + 0x20);" (assignment_expression "iVar22 = *(int *)(iVar18 + 0x20)" identifier = (pointer_expression "*(int *)(iVar18 + 0x20)" * (cast_expression "(int *)(iVar18 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x20)" ( (binary_expression "iVar18 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "iVar19 = *(int *)(iVar18 + 0x30);" (assignment_expression "iVar19 = *(int *)(iVar18 + 0x30)" identifier = (pointer_expression "*(int *)(iVar18 + 0x30)" * (cast_expression "(int *)(iVar18 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x30)" ( (binary_expression "iVar18 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "uVar30 = uVar31 + *(int *)(iVar18 + 0x34);" (assignment_expression "uVar30 = uVar31 + *(int *)(iVar18 + 0x34)" identifier = (binary_expression "uVar31 + *(int *)(iVar18 + 0x34)" identifier + (pointer_expression "*(int *)(iVar18 + 0x34)" * (cast_expression "(int *)(iVar18 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x34)" ( (binary_expression "iVar18 + 0x34" identifier + number_literal) )))))) ;) (expression_statement "*(uint *)((int)&pSVar25[-1].end_addr + 4) = uVar30 - 1;" (assignment_expression "*(uint *)((int)&pSVar25[-1].end_addr + 4) = uVar30 - 1" (pointer_expression "*(uint *)((int)&pSVar25[-1].end_addr + 4)" * (cast_expression "(uint *)((int)&pSVar25[-1].end_addr + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pSVar25[-1].end_addr + 4)" ( (binary_expression "(int)&pSVar25[-1].end_addr + 4" (cast_expression "(int)&pSVar25[-1].end_addr" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pSVar25[-1].end_addr" & (field_expression "pSVar25[-1].end_addr" (subscript_expression "pSVar25[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) = (binary_expression "uVar30 - 1" identifier - number_literal)) ;) (expression_statement "*(uint *)&pSVar25[-1].end_addr =\n           (uint)(uVar30 - 1 < uVar30) + (uint)(uVar30 < uVar31) + iVar22 + iVar19 + -1;" (assignment_expression "*(uint *)&pSVar25[-1].end_addr =\n           (uint)(uVar30 - 1 < uVar30) + (uint)(uVar30 < uVar31) + iVar22 + iVar19 + -1" (pointer_expression "*(uint *)&pSVar25[-1].end_addr" * (cast_expression "(uint *)&pSVar25[-1].end_addr" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pSVar25[-1].end_addr" & (field_expression "pSVar25[-1].end_addr" (subscript_expression "pSVar25[-1]" identifier [ number_literal ]) . field_identifier)))) = (binary_expression "(uint)(uVar30 - 1 < uVar30) + (uint)(uVar30 < uVar31) + iVar22 + iVar19 + -1" (binary_expression "(uint)(uVar30 - 1 < uVar30) + (uint)(uVar30 < uVar31) + iVar22 + iVar19" (binary_expression "(uint)(uVar30 - 1 < uVar30) + (uint)(uVar30 < uVar31) + iVar22" (binary_expression "(uint)(uVar30 - 1 < uVar30) + (uint)(uVar30 < uVar31)" (call_expression "(uint)(uVar30 - 1 < uVar30)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar30 - 1 < uVar30)" ( (binary_expression "uVar30 - 1 < uVar30" (binary_expression "uVar30 - 1" identifier - number_literal) < identifier) ))) + (call_expression "(uint)(uVar30 < uVar31)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar30 < uVar31)" ( (binary_expression "uVar30 < uVar31" identifier < identifier) )))) + identifier) + identifier) + number_literal)) ;) })) (if_statement "if (uVar13 == 0) {\n      tab->limit = pSVar25;\n      tab->len = uVar6;\n    }\n    else {\n      (*(code *)PTR_printf_0003a6f4)(PTR_LAB_0003a3e8 + 0x6b20,uVar14 - uVar6);\n      pSVar21 = tab->base;\n      uVar14 = *(uint *)puVar28;\n      tab->limit = pSVar25;\n      uVar6 = ((int)pSVar25 - (int)pSVar21 >> 3) * 0x3e0f83e1;\n      tab->len = uVar6;\n      if (((uVar14 & 0x1080) != 0) && (uVar6 != 0)) {\n        uVar6 = 0;\n        puVar28 = PTR_LAB_0003a3e8 + 0x6b54;\n        iVar18 = 0;\n        while( true ) {\n          uVar6 = uVar6 + 1;\n          (*(code *)PTR_printf_0003a6f4)\n                    (puVar28,*(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x24),\n                     *(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x1c),\n                     *(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x18));\n          if (tab->len <= uVar6) break;\n          pSVar21 = tab->base;\n          iVar18 = iVar18 + 0x108;\n        }\n        return;\n      }\n    }" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (compound_statement "{\n      tab->limit = pSVar25;\n      tab->len = uVar6;\n    }" { (expression_statement "tab->limit = pSVar25;" (assignment_expression "tab->limit = pSVar25" (field_expression "tab->limit" identifier -> field_identifier) = identifier) ;) (expression_statement "tab->len = uVar6;" (assignment_expression "tab->len = uVar6" (field_expression "tab->len" identifier -> field_identifier) = identifier) ;) }) (else_clause "else {\n      (*(code *)PTR_printf_0003a6f4)(PTR_LAB_0003a3e8 + 0x6b20,uVar14 - uVar6);\n      pSVar21 = tab->base;\n      uVar14 = *(uint *)puVar28;\n      tab->limit = pSVar25;\n      uVar6 = ((int)pSVar25 - (int)pSVar21 >> 3) * 0x3e0f83e1;\n      tab->len = uVar6;\n      if (((uVar14 & 0x1080) != 0) && (uVar6 != 0)) {\n        uVar6 = 0;\n        puVar28 = PTR_LAB_0003a3e8 + 0x6b54;\n        iVar18 = 0;\n        while( true ) {\n          uVar6 = uVar6 + 1;\n          (*(code *)PTR_printf_0003a6f4)\n                    (puVar28,*(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x24),\n                     *(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x1c),\n                     *(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x18));\n          if (tab->len <= uVar6) break;\n          pSVar21 = tab->base;\n          iVar18 = iVar18 + 0x108;\n        }\n        return;\n      }\n    }" else (compound_statement "{\n      (*(code *)PTR_printf_0003a6f4)(PTR_LAB_0003a3e8 + 0x6b20,uVar14 - uVar6);\n      pSVar21 = tab->base;\n      uVar14 = *(uint *)puVar28;\n      tab->limit = pSVar25;\n      uVar6 = ((int)pSVar25 - (int)pSVar21 >> 3) * 0x3e0f83e1;\n      tab->len = uVar6;\n      if (((uVar14 & 0x1080) != 0) && (uVar6 != 0)) {\n        uVar6 = 0;\n        puVar28 = PTR_LAB_0003a3e8 + 0x6b54;\n        iVar18 = 0;\n        while( true ) {\n          uVar6 = uVar6 + 1;\n          (*(code *)PTR_printf_0003a6f4)\n                    (puVar28,*(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x24),\n                     *(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x1c),\n                     *(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x18));\n          if (tab->len <= uVar6) break;\n          pSVar21 = tab->base;\n          iVar18 = iVar18 + 0x108;\n        }\n        return;\n      }\n    }" { (expression_statement "(*(code *)PTR_printf_0003a6f4)(PTR_LAB_0003a3e8 + 0x6b20,uVar14 - uVar6);" (call_expression "(*(code *)PTR_printf_0003a6f4)(PTR_LAB_0003a3e8 + 0x6b20,uVar14 - uVar6)" (parenthesized_expression "(*(code *)PTR_printf_0003a6f4)" ( (pointer_expression "*(code *)PTR_printf_0003a6f4" * (cast_expression "(code *)PTR_printf_0003a6f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_0003a3e8 + 0x6b20,uVar14 - uVar6)" ( (binary_expression "PTR_LAB_0003a3e8 + 0x6b20" identifier + number_literal) , (binary_expression "uVar14 - uVar6" identifier - identifier) ))) ;) (expression_statement "pSVar21 = tab->base;" (assignment_expression "pSVar21 = tab->base" identifier = (field_expression "tab->base" identifier -> field_identifier)) ;) (expression_statement "uVar14 = *(uint *)puVar28;" (assignment_expression "uVar14 = *(uint *)puVar28" identifier = (pointer_expression "*(uint *)puVar28" * (cast_expression "(uint *)puVar28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "tab->limit = pSVar25;" (assignment_expression "tab->limit = pSVar25" (field_expression "tab->limit" identifier -> field_identifier) = identifier) ;) (expression_statement "uVar6 = ((int)pSVar25 - (int)pSVar21 >> 3) * 0x3e0f83e1;" (assignment_expression "uVar6 = ((int)pSVar25 - (int)pSVar21 >> 3) * 0x3e0f83e1" identifier = (binary_expression "((int)pSVar25 - (int)pSVar21 >> 3) * 0x3e0f83e1" (parenthesized_expression "((int)pSVar25 - (int)pSVar21 >> 3)" ( (binary_expression "(int)pSVar25 - (int)pSVar21 >> 3" (binary_expression "(int)pSVar25 - (int)pSVar21" (cast_expression "(int)pSVar25" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pSVar21" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )) * number_literal)) ;) (expression_statement "tab->len = uVar6;" (assignment_expression "tab->len = uVar6" (field_expression "tab->len" identifier -> field_identifier) = identifier) ;) (if_statement "if (((uVar14 & 0x1080) != 0) && (uVar6 != 0)) {\n        uVar6 = 0;\n        puVar28 = PTR_LAB_0003a3e8 + 0x6b54;\n        iVar18 = 0;\n        while( true ) {\n          uVar6 = uVar6 + 1;\n          (*(code *)PTR_printf_0003a6f4)\n                    (puVar28,*(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x24),\n                     *(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x1c),\n                     *(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x18));\n          if (tab->len <= uVar6) break;\n          pSVar21 = tab->base;\n          iVar18 = iVar18 + 0x108;\n        }\n        return;\n      }" if (parenthesized_expression "(((uVar14 & 0x1080) != 0) && (uVar6 != 0))" ( (binary_expression "((uVar14 & 0x1080) != 0) && (uVar6 != 0)" (parenthesized_expression "((uVar14 & 0x1080) != 0)" ( (binary_expression "(uVar14 & 0x1080) != 0" (parenthesized_expression "(uVar14 & 0x1080)" ( (binary_expression "uVar14 & 0x1080" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) ))) )) (compound_statement "{\n        uVar6 = 0;\n        puVar28 = PTR_LAB_0003a3e8 + 0x6b54;\n        iVar18 = 0;\n        while( true ) {\n          uVar6 = uVar6 + 1;\n          (*(code *)PTR_printf_0003a6f4)\n                    (puVar28,*(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x24),\n                     *(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x1c),\n                     *(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x18));\n          if (tab->len <= uVar6) break;\n          pSVar21 = tab->base;\n          iVar18 = iVar18 + 0x108;\n        }\n        return;\n      }" { (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (expression_statement "puVar28 = PTR_LAB_0003a3e8 + 0x6b54;" (assignment_expression "puVar28 = PTR_LAB_0003a3e8 + 0x6b54" identifier = (binary_expression "PTR_LAB_0003a3e8 + 0x6b54" identifier + number_literal)) ;) (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n          uVar6 = uVar6 + 1;\n          (*(code *)PTR_printf_0003a6f4)\n                    (puVar28,*(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x24),\n                     *(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x1c),\n                     *(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x18));\n          if (tab->len <= uVar6) break;\n          pSVar21 = tab->base;\n          iVar18 = iVar18 + 0x108;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          uVar6 = uVar6 + 1;\n          (*(code *)PTR_printf_0003a6f4)\n                    (puVar28,*(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x24),\n                     *(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x1c),\n                     *(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x18));\n          if (tab->len <= uVar6) break;\n          pSVar21 = tab->base;\n          iVar18 = iVar18 + 0x108;\n        }" { (expression_statement "uVar6 = uVar6 + 1;" (assignment_expression "uVar6 = uVar6 + 1" identifier = (binary_expression "uVar6 + 1" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR_printf_0003a6f4)\n                    (puVar28,*(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x24),\n                     *(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x1c),\n                     *(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x18));" (call_expression "(*(code *)PTR_printf_0003a6f4)\n                    (puVar28,*(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x24),\n                     *(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x1c),\n                     *(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x18))" (parenthesized_expression "(*(code *)PTR_printf_0003a6f4)" ( (pointer_expression "*(code *)PTR_printf_0003a6f4" * (cast_expression "(code *)PTR_printf_0003a6f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar28,*(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x24),\n                     *(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x1c),\n                     *(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x18))" ( identifier , (pointer_expression "*(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x24)" * (cast_expression "(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pSVar21->bb_addr + iVar18 + -0x24)" ( (binary_expression "(int)pSVar21->bb_addr + iVar18 + -0x24" (binary_expression "(int)pSVar21->bb_addr + iVar18" (cast_expression "(int)pSVar21->bb_addr" ( (type_descriptor "int" primitive_type) ) (field_expression "pSVar21->bb_addr" identifier -> field_identifier)) + identifier) + number_literal) )))) , (pointer_expression "*(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x1c)" * (cast_expression "(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pSVar21->bb_addr + iVar18 + -0x1c)" ( (binary_expression "(int)pSVar21->bb_addr + iVar18 + -0x1c" (binary_expression "(int)pSVar21->bb_addr + iVar18" (cast_expression "(int)pSVar21->bb_addr" ( (type_descriptor "int" primitive_type) ) (field_expression "pSVar21->bb_addr" identifier -> field_identifier)) + identifier) + number_literal) )))) , (pointer_expression "*(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x18)" * (cast_expression "(undefined4 *)((int)pSVar21->bb_addr + iVar18 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pSVar21->bb_addr + iVar18 + -0x18)" ( (binary_expression "(int)pSVar21->bb_addr + iVar18 + -0x18" (binary_expression "(int)pSVar21->bb_addr + iVar18" (cast_expression "(int)pSVar21->bb_addr" ( (type_descriptor "int" primitive_type) ) (field_expression "pSVar21->bb_addr" identifier -> field_identifier)) + identifier) + number_literal) )))) ))) ;) (if_statement "if (tab->len <= uVar6) break;" if (parenthesized_expression "(tab->len <= uVar6)" ( (binary_expression "tab->len <= uVar6" (field_expression "tab->len" identifier -> field_identifier) <= identifier) )) (break_statement "break;" break ;)) (expression_statement "pSVar21 = tab->base;" (assignment_expression "pSVar21 = tab->base" identifier = (field_expression "tab->base" identifier -> field_identifier)) ;) (expression_statement "iVar18 = iVar18 + 0x108;" (assignment_expression "iVar18 = iVar18 + 0x108" identifier = (binary_expression "iVar18 + 0x108" identifier + number_literal)) ;) })) (return_statement "return;" return ;) })) }))) (return_statement "return;" return ;) })) (expression_statement "uVar13 = *(uint *)PTR_debug_level_0003a418 & 0x1080;" (assignment_expression "uVar13 = *(uint *)PTR_debug_level_0003a418 & 0x1080" identifier = (binary_expression "*(uint *)PTR_debug_level_0003a418 & 0x1080" (pointer_expression "*(uint *)PTR_debug_level_0003a418" * (cast_expression "(uint *)PTR_debug_level_0003a418" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal)) ;) (expression_statement "puVar29 = PTR_LAB_0003a3e8 + 0x6ae0;" (assignment_expression "puVar29 = PTR_LAB_0003a3e8 + 0x6ae0" identifier = (binary_expression "PTR_LAB_0003a3e8 + 0x6ae0" identifier + number_literal)) ;) (expression_statement "puVar27 = PTR_LAB_0003a3e8 + 0x6b10;" (assignment_expression "puVar27 = PTR_LAB_0003a3e8 + 0x6b10" identifier = (binary_expression "PTR_LAB_0003a3e8 + 0x6b10" identifier + number_literal)) ;) (expression_statement "pSVar26 = pSVar25;" (assignment_expression "pSVar26 = pSVar25" identifier = identifier) ;) (if_statement "if (uVar6 == uVar30) goto LAB_0001e9b8;" if (parenthesized_expression "(uVar6 == uVar30)" ( (binary_expression "uVar6 == uVar30" identifier == identifier) )) (goto_statement "goto LAB_0001e9b8;" goto statement_identifier ;)) (labeled_statement "LAB_0001e92c:\n  if ((tab->base < pSVar26) &&\n     (*(int *)&pSVar26[-1].end_addr == 0 && (int)pSVar26[-1].end_addr == 0)) {\n    *(uint *)((int)&pSVar26[-1].end_addr + 4) = uVar14 - 1;\n    *(uint *)&pSVar26[-1].end_addr = (uint)(uVar14 - 1 < uVar14) + (uVar6 - 1);\n  }" statement_identifier : (if_statement "if ((tab->base < pSVar26) &&\n     (*(int *)&pSVar26[-1].end_addr == 0 && (int)pSVar26[-1].end_addr == 0)) {\n    *(uint *)((int)&pSVar26[-1].end_addr + 4) = uVar14 - 1;\n    *(uint *)&pSVar26[-1].end_addr = (uint)(uVar14 - 1 < uVar14) + (uVar6 - 1);\n  }" if (parenthesized_expression "((tab->base < pSVar26) &&\n     (*(int *)&pSVar26[-1].end_addr == 0 && (int)pSVar26[-1].end_addr == 0))" ( (binary_expression "(tab->base < pSVar26) &&\n     (*(int *)&pSVar26[-1].end_addr == 0 && (int)pSVar26[-1].end_addr == 0)" (parenthesized_expression "(tab->base < pSVar26)" ( (binary_expression "tab->base < pSVar26" (field_expression "tab->base" identifier -> field_identifier) < identifier) )) && (parenthesized_expression "(*(int *)&pSVar26[-1].end_addr == 0 && (int)pSVar26[-1].end_addr == 0)" ( (binary_expression "*(int *)&pSVar26[-1].end_addr == 0 && (int)pSVar26[-1].end_addr == 0" (binary_expression "*(int *)&pSVar26[-1].end_addr == 0" (pointer_expression "*(int *)&pSVar26[-1].end_addr" * (cast_expression "(int *)&pSVar26[-1].end_addr" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pSVar26[-1].end_addr" & (field_expression "pSVar26[-1].end_addr" (subscript_expression "pSVar26[-1]" identifier [ number_literal ]) . field_identifier)))) == number_literal) && (binary_expression "(int)pSVar26[-1].end_addr == 0" (cast_expression "(int)pSVar26[-1].end_addr" ( (type_descriptor "int" primitive_type) ) (field_expression "pSVar26[-1].end_addr" (subscript_expression "pSVar26[-1]" identifier [ number_literal ]) . field_identifier)) == number_literal)) ))) )) (compound_statement "{\n    *(uint *)((int)&pSVar26[-1].end_addr + 4) = uVar14 - 1;\n    *(uint *)&pSVar26[-1].end_addr = (uint)(uVar14 - 1 < uVar14) + (uVar6 - 1);\n  }" { (expression_statement "*(uint *)((int)&pSVar26[-1].end_addr + 4) = uVar14 - 1;" (assignment_expression "*(uint *)((int)&pSVar26[-1].end_addr + 4) = uVar14 - 1" (pointer_expression "*(uint *)((int)&pSVar26[-1].end_addr + 4)" * (cast_expression "(uint *)((int)&pSVar26[-1].end_addr + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pSVar26[-1].end_addr + 4)" ( (binary_expression "(int)&pSVar26[-1].end_addr + 4" (cast_expression "(int)&pSVar26[-1].end_addr" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pSVar26[-1].end_addr" & (field_expression "pSVar26[-1].end_addr" (subscript_expression "pSVar26[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) = (binary_expression "uVar14 - 1" identifier - number_literal)) ;) (expression_statement "*(uint *)&pSVar26[-1].end_addr = (uint)(uVar14 - 1 < uVar14) + (uVar6 - 1);" (assignment_expression "*(uint *)&pSVar26[-1].end_addr = (uint)(uVar14 - 1 < uVar14) + (uVar6 - 1)" (pointer_expression "*(uint *)&pSVar26[-1].end_addr" * (cast_expression "(uint *)&pSVar26[-1].end_addr" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pSVar26[-1].end_addr" & (field_expression "pSVar26[-1].end_addr" (subscript_expression "pSVar26[-1]" identifier [ number_literal ]) . field_identifier)))) = (binary_expression "(uint)(uVar14 - 1 < uVar14) + (uVar6 - 1)" (call_expression "(uint)(uVar14 - 1 < uVar14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar14 - 1 < uVar14)" ( (binary_expression "uVar14 - 1 < uVar14" (binary_expression "uVar14 - 1" identifier - number_literal) < identifier) ))) + (parenthesized_expression "(uVar6 - 1)" ( (binary_expression "uVar6 - 1" identifier - number_literal) )))) ;) }))) (expression_statement "uVar11 = *(uint *)&pSVar25->end_addr;" (assignment_expression "uVar11 = *(uint *)&pSVar25->end_addr" identifier = (pointer_expression "*(uint *)&pSVar25->end_addr" * (cast_expression "(uint *)&pSVar25->end_addr" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pSVar25->end_addr" & (field_expression "pSVar25->end_addr" identifier -> field_identifier))))) ;) (expression_statement "uVar16 = (uint)pSVar25->end_addr;" (assignment_expression "uVar16 = (uint)pSVar25->end_addr" identifier = (cast_expression "(uint)pSVar25->end_addr" ( (type_descriptor "uint" type_identifier) ) (field_expression "pSVar25->end_addr" identifier -> field_identifier))) ;) (expression_statement "pSVar9 = pSVar25;" (assignment_expression "pSVar9 = pSVar25" identifier = identifier) ;) (expression_statement "pSVar7 = pSVar26;" (assignment_expression "pSVar7 = pSVar26" identifier = identifier) ;) (if_statement "if ((uVar11 == 0 && uVar16 == 0) ||\n     ((uVar6 <= uVar11 && ((uVar6 != uVar11 || (uVar14 <= uVar16)))))) {\n    do {\n      pSVar12 = pSVar7;\n      pSVar21 = pSVar9;\n      pSVar9 = (Sym *)&pSVar21->name;\n      bVar4 = pSVar21->addr;\n      uVar17 = *(undefined4 *)&pSVar21->end_addr;\n      bVar5 = pSVar21->end_addr;\n      *(undefined4 *)&pSVar12->addr = *(undefined4 *)&pSVar21->addr;\n      *(int *)((int)&pSVar12->addr + 4) = (int)bVar4;\n      *(undefined4 *)&pSVar12->end_addr = uVar17;\n      *(int *)((int)&pSVar12->end_addr + 4) = (int)bVar5;\n      pSVar7 = (Sym *)&pSVar12->name;\n    } while (pSVar9 != (Sym *)&(pSVar25->cg).children);\n    pSVar26 = pSVar26 + 1;\n    pSVar8 = pSVar21->file;\n    pSVar12->name = *(char **)pSVar9;\n    pSVar12->file = pSVar8;\n    uVar30 = *(uint *)&pSVar25->addr;\n    uVar31 = (uint)pSVar25->addr;\n    pSVar21 = tab->limit;\n  }" if (parenthesized_expression "((uVar11 == 0 && uVar16 == 0) ||\n     ((uVar6 <= uVar11 && ((uVar6 != uVar11 || (uVar14 <= uVar16))))))" ( (binary_expression "(uVar11 == 0 && uVar16 == 0) ||\n     ((uVar6 <= uVar11 && ((uVar6 != uVar11 || (uVar14 <= uVar16)))))" (parenthesized_expression "(uVar11 == 0 && uVar16 == 0)" ( (binary_expression "uVar11 == 0 && uVar16 == 0" (binary_expression "uVar11 == 0" identifier == number_literal) && (binary_expression "uVar16 == 0" identifier == number_literal)) )) || (parenthesized_expression "((uVar6 <= uVar11 && ((uVar6 != uVar11 || (uVar14 <= uVar16)))))" ( (parenthesized_expression "(uVar6 <= uVar11 && ((uVar6 != uVar11 || (uVar14 <= uVar16))))" ( (binary_expression "uVar6 <= uVar11 && ((uVar6 != uVar11 || (uVar14 <= uVar16)))" (binary_expression "uVar6 <= uVar11" identifier <= identifier) && (parenthesized_expression "((uVar6 != uVar11 || (uVar14 <= uVar16)))" ( (parenthesized_expression "(uVar6 != uVar11 || (uVar14 <= uVar16))" ( (binary_expression "uVar6 != uVar11 || (uVar14 <= uVar16)" (binary_expression "uVar6 != uVar11" identifier != identifier) || (parenthesized_expression "(uVar14 <= uVar16)" ( (binary_expression "uVar14 <= uVar16" identifier <= identifier) ))) )) ))) )) ))) )) (compound_statement "{\n    do {\n      pSVar12 = pSVar7;\n      pSVar21 = pSVar9;\n      pSVar9 = (Sym *)&pSVar21->name;\n      bVar4 = pSVar21->addr;\n      uVar17 = *(undefined4 *)&pSVar21->end_addr;\n      bVar5 = pSVar21->end_addr;\n      *(undefined4 *)&pSVar12->addr = *(undefined4 *)&pSVar21->addr;\n      *(int *)((int)&pSVar12->addr + 4) = (int)bVar4;\n      *(undefined4 *)&pSVar12->end_addr = uVar17;\n      *(int *)((int)&pSVar12->end_addr + 4) = (int)bVar5;\n      pSVar7 = (Sym *)&pSVar12->name;\n    } while (pSVar9 != (Sym *)&(pSVar25->cg).children);\n    pSVar26 = pSVar26 + 1;\n    pSVar8 = pSVar21->file;\n    pSVar12->name = *(char **)pSVar9;\n    pSVar12->file = pSVar8;\n    uVar30 = *(uint *)&pSVar25->addr;\n    uVar31 = (uint)pSVar25->addr;\n    pSVar21 = tab->limit;\n  }" { (do_statement "do {\n      pSVar12 = pSVar7;\n      pSVar21 = pSVar9;\n      pSVar9 = (Sym *)&pSVar21->name;\n      bVar4 = pSVar21->addr;\n      uVar17 = *(undefined4 *)&pSVar21->end_addr;\n      bVar5 = pSVar21->end_addr;\n      *(undefined4 *)&pSVar12->addr = *(undefined4 *)&pSVar21->addr;\n      *(int *)((int)&pSVar12->addr + 4) = (int)bVar4;\n      *(undefined4 *)&pSVar12->end_addr = uVar17;\n      *(int *)((int)&pSVar12->end_addr + 4) = (int)bVar5;\n      pSVar7 = (Sym *)&pSVar12->name;\n    } while (pSVar9 != (Sym *)&(pSVar25->cg).children);" do (compound_statement "{\n      pSVar12 = pSVar7;\n      pSVar21 = pSVar9;\n      pSVar9 = (Sym *)&pSVar21->name;\n      bVar4 = pSVar21->addr;\n      uVar17 = *(undefined4 *)&pSVar21->end_addr;\n      bVar5 = pSVar21->end_addr;\n      *(undefined4 *)&pSVar12->addr = *(undefined4 *)&pSVar21->addr;\n      *(int *)((int)&pSVar12->addr + 4) = (int)bVar4;\n      *(undefined4 *)&pSVar12->end_addr = uVar17;\n      *(int *)((int)&pSVar12->end_addr + 4) = (int)bVar5;\n      pSVar7 = (Sym *)&pSVar12->name;\n    }" { (expression_statement "pSVar12 = pSVar7;" (assignment_expression "pSVar12 = pSVar7" identifier = identifier) ;) (expression_statement "pSVar21 = pSVar9;" (assignment_expression "pSVar21 = pSVar9" identifier = identifier) ;) (expression_statement "pSVar9 = (Sym *)&pSVar21->name;" (assignment_expression "pSVar9 = (Sym *)&pSVar21->name" identifier = (cast_expression "(Sym *)&pSVar21->name" ( (type_descriptor "Sym *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pSVar21->name" & (field_expression "pSVar21->name" identifier -> field_identifier)))) ;) (expression_statement "bVar4 = pSVar21->addr;" (assignment_expression "bVar4 = pSVar21->addr" identifier = (field_expression "pSVar21->addr" identifier -> field_identifier)) ;) (expression_statement "uVar17 = *(undefined4 *)&pSVar21->end_addr;" (assignment_expression "uVar17 = *(undefined4 *)&pSVar21->end_addr" identifier = (pointer_expression "*(undefined4 *)&pSVar21->end_addr" * (cast_expression "(undefined4 *)&pSVar21->end_addr" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pSVar21->end_addr" & (field_expression "pSVar21->end_addr" identifier -> field_identifier))))) ;) (expression_statement "bVar5 = pSVar21->end_addr;" (assignment_expression "bVar5 = pSVar21->end_addr" identifier = (field_expression "pSVar21->end_addr" identifier -> field_identifier)) ;) (expression_statement "*(undefined4 *)&pSVar12->addr = *(undefined4 *)&pSVar21->addr;" (assignment_expression "*(undefined4 *)&pSVar12->addr = *(undefined4 *)&pSVar21->addr" (pointer_expression "*(undefined4 *)&pSVar12->addr" * (cast_expression "(undefined4 *)&pSVar12->addr" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pSVar12->addr" & (field_expression "pSVar12->addr" identifier -> field_identifier)))) = (pointer_expression "*(undefined4 *)&pSVar21->addr" * (cast_expression "(undefined4 *)&pSVar21->addr" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pSVar21->addr" & (field_expression "pSVar21->addr" identifier -> field_identifier))))) ;) (expression_statement "*(int *)((int)&pSVar12->addr + 4) = (int)bVar4;" (assignment_expression "*(int *)((int)&pSVar12->addr + 4) = (int)bVar4" (pointer_expression "*(int *)((int)&pSVar12->addr + 4)" * (cast_expression "(int *)((int)&pSVar12->addr + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pSVar12->addr + 4)" ( (binary_expression "(int)&pSVar12->addr + 4" (cast_expression "(int)&pSVar12->addr" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pSVar12->addr" & (field_expression "pSVar12->addr" identifier -> field_identifier))) + number_literal) )))) = (cast_expression "(int)bVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*(undefined4 *)&pSVar12->end_addr = uVar17;" (assignment_expression "*(undefined4 *)&pSVar12->end_addr = uVar17" (pointer_expression "*(undefined4 *)&pSVar12->end_addr" * (cast_expression "(undefined4 *)&pSVar12->end_addr" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pSVar12->end_addr" & (field_expression "pSVar12->end_addr" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(int *)((int)&pSVar12->end_addr + 4) = (int)bVar5;" (assignment_expression "*(int *)((int)&pSVar12->end_addr + 4) = (int)bVar5" (pointer_expression "*(int *)((int)&pSVar12->end_addr + 4)" * (cast_expression "(int *)((int)&pSVar12->end_addr + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pSVar12->end_addr + 4)" ( (binary_expression "(int)&pSVar12->end_addr + 4" (cast_expression "(int)&pSVar12->end_addr" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pSVar12->end_addr" & (field_expression "pSVar12->end_addr" identifier -> field_identifier))) + number_literal) )))) = (cast_expression "(int)bVar5" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pSVar7 = (Sym *)&pSVar12->name;" (assignment_expression "pSVar7 = (Sym *)&pSVar12->name" identifier = (cast_expression "(Sym *)&pSVar12->name" ( (type_descriptor "Sym *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pSVar12->name" & (field_expression "pSVar12->name" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(pSVar9 != (Sym *)&(pSVar25->cg).children)" ( (binary_expression "pSVar9 != (Sym *)&(pSVar25->cg).children" identifier != (cast_expression "(Sym *)&(pSVar25->cg).children" ( (type_descriptor "Sym *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pSVar25->cg).children" & (field_expression "(pSVar25->cg).children" (parenthesized_expression "(pSVar25->cg)" ( (field_expression "pSVar25->cg" identifier -> field_identifier) )) . field_identifier)))) )) ;) (expression_statement "pSVar26 = pSVar26 + 1;" (assignment_expression "pSVar26 = pSVar26 + 1" identifier = (binary_expression "pSVar26 + 1" identifier + number_literal)) ;) (expression_statement "pSVar8 = pSVar21->file;" (assignment_expression "pSVar8 = pSVar21->file" identifier = (field_expression "pSVar21->file" identifier -> field_identifier)) ;) (expression_statement "pSVar12->name = *(char **)pSVar9;" (assignment_expression "pSVar12->name = *(char **)pSVar9" (field_expression "pSVar12->name" identifier -> field_identifier) = (pointer_expression "*(char **)pSVar9" * (cast_expression "(char **)pSVar9" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pSVar12->file = pSVar8;" (assignment_expression "pSVar12->file = pSVar8" (field_expression "pSVar12->file" identifier -> field_identifier) = identifier) ;) (expression_statement "uVar30 = *(uint *)&pSVar25->addr;" (assignment_expression "uVar30 = *(uint *)&pSVar25->addr" identifier = (pointer_expression "*(uint *)&pSVar25->addr" * (cast_expression "(uint *)&pSVar25->addr" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pSVar25->addr" & (field_expression "pSVar25->addr" identifier -> field_identifier))))) ;) (expression_statement "uVar31 = (uint)pSVar25->addr;" (assignment_expression "uVar31 = (uint)pSVar25->addr" identifier = (cast_expression "(uint)pSVar25->addr" ( (type_descriptor "uint" type_identifier) ) (field_expression "pSVar25->addr" identifier -> field_identifier))) ;) (expression_statement "pSVar21 = tab->limit;" (assignment_expression "pSVar21 = tab->limit" identifier = (field_expression "tab->limit" identifier -> field_identifier)) ;) })) (labeled_statement "LAB_0001e998:\n  pSVar25 = pSVar25 + 1;" statement_identifier : (expression_statement "pSVar25 = pSVar25 + 1;" (assignment_expression "pSVar25 = pSVar25 + 1" identifier = (binary_expression "pSVar25 + 1" identifier + number_literal)) ;)) (if_statement "if (pSVar25 < pSVar21) {\n    do {\n      uVar6 = *(uint *)&pSVar25->addr;\n      uVar14 = (uint)pSVar25->addr;\n      if (uVar6 != uVar30) goto LAB_0001e92c;\nLAB_0001e9b8:\n      if (uVar14 != uVar31) goto LAB_0001e92c;\n      bVar2 = pSVar25->field_0x1c;\n      bVar3 = pSVar26[-1].field_0x1c;\n      if (((bVar2 & 0x40) == 0) && ((bVar3 & 0x40) != 0)) {\n        if (uVar13 != 0) {\n          pcVar15 = pSVar25->name;\n          uVar23 = 0x66;\n          pcVar24 = pSVar26[-1].name;\n          uVar20 = 0x54;\n          if ((char)bVar2 < '\0') {\n            uVar23 = 0x46;\n          }\n          uVar17 = 0x74;\nLAB_0001ecec:\n          uVar10 = 0x66;\n          if ((char)bVar3 < '\0') {\n            uVar10 = 0x46;\n          }\n          (*(code *)PTR_printf_0003a6f4)(puVar29,pcVar15,uVar20,uVar23,pcVar24,uVar17,uVar10);\n          (*(code *)PTR_printf_0003a6f4)(puVar27,(int)pSVar25->addr);\n          uVar13 = *(uint *)puVar28 & 0x1080;\n        }\n      }\n      else {\n        if (((bVar2 ^ bVar3) & 0x40) != 0) goto LAB_0001eb60;\n        if ((-1 < (char)bVar2) || ((char)bVar3 < '\0')) {\n          if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;\n          cVar1 = *pSVar25->name;\n          if (cVar1 != '_') {\n            if (*pSVar26[-1].name == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }\n          if ((pSVar25->name[1] == '_') || (pSVar26[-1].name[1] != '_')) goto LAB_0001eb60;\n        }\nLAB_0001ecb8:\n        if (uVar13 != 0) {\n          pcVar15 = pSVar25->name;\n          uVar17 = 0x74;\n          pcVar24 = pSVar26[-1].name;\n          uVar23 = 0x66;\n          uVar20 = 0x74;\n          if ((bVar3 & 0x40) == 0) {\n            uVar17 = 0x54;\n          }\n          if ((bVar2 & 0x40) == 0) {\n            uVar20 = 0x54;\n          }\n          if ((char)bVar2 < '\0') {\n            uVar23 = 0x46;\n          }\n          goto LAB_0001ecec;\n        }\n      }\n      pSVar21 = pSVar25;\n      pSVar9 = pSVar26 + -1;\n      do {\n        pSVar12 = pSVar9;\n        pSVar7 = pSVar21;\n        pSVar21 = (Sym *)&pSVar7->name;\n        bVar4 = pSVar7->addr;\n        uVar17 = *(undefined4 *)&pSVar7->end_addr;\n        bVar5 = pSVar7->end_addr;\n        *(undefined4 *)&pSVar12->addr = *(undefined4 *)&pSVar7->addr;\n        *(int *)((int)&pSVar12->addr + 4) = (int)bVar4;\n        *(undefined4 *)&pSVar12->end_addr = uVar17;\n        *(int *)((int)&pSVar12->end_addr + 4) = (int)bVar5;\n        pSVar9 = (Sym *)&pSVar12->name;\n      } while (pSVar21 != (Sym *)&(pSVar25->cg).children);\n      pSVar25 = pSVar25 + 1;\n      pSVar8 = pSVar7->file;\n      pSVar12->name = *(char **)pSVar21;\n      pSVar12->file = pSVar8;\n      pSVar21 = tab->limit;\n      if (pSVar21 <= pSVar25) break;\n    } while( true );\n  }" if (parenthesized_expression "(pSVar25 < pSVar21)" ( (binary_expression "pSVar25 < pSVar21" identifier < identifier) )) (compound_statement "{\n    do {\n      uVar6 = *(uint *)&pSVar25->addr;\n      uVar14 = (uint)pSVar25->addr;\n      if (uVar6 != uVar30) goto LAB_0001e92c;\nLAB_0001e9b8:\n      if (uVar14 != uVar31) goto LAB_0001e92c;\n      bVar2 = pSVar25->field_0x1c;\n      bVar3 = pSVar26[-1].field_0x1c;\n      if (((bVar2 & 0x40) == 0) && ((bVar3 & 0x40) != 0)) {\n        if (uVar13 != 0) {\n          pcVar15 = pSVar25->name;\n          uVar23 = 0x66;\n          pcVar24 = pSVar26[-1].name;\n          uVar20 = 0x54;\n          if ((char)bVar2 < '\0') {\n            uVar23 = 0x46;\n          }\n          uVar17 = 0x74;\nLAB_0001ecec:\n          uVar10 = 0x66;\n          if ((char)bVar3 < '\0') {\n            uVar10 = 0x46;\n          }\n          (*(code *)PTR_printf_0003a6f4)(puVar29,pcVar15,uVar20,uVar23,pcVar24,uVar17,uVar10);\n          (*(code *)PTR_printf_0003a6f4)(puVar27,(int)pSVar25->addr);\n          uVar13 = *(uint *)puVar28 & 0x1080;\n        }\n      }\n      else {\n        if (((bVar2 ^ bVar3) & 0x40) != 0) goto LAB_0001eb60;\n        if ((-1 < (char)bVar2) || ((char)bVar3 < '\0')) {\n          if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;\n          cVar1 = *pSVar25->name;\n          if (cVar1 != '_') {\n            if (*pSVar26[-1].name == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }\n          if ((pSVar25->name[1] == '_') || (pSVar26[-1].name[1] != '_')) goto LAB_0001eb60;\n        }\nLAB_0001ecb8:\n        if (uVar13 != 0) {\n          pcVar15 = pSVar25->name;\n          uVar17 = 0x74;\n          pcVar24 = pSVar26[-1].name;\n          uVar23 = 0x66;\n          uVar20 = 0x74;\n          if ((bVar3 & 0x40) == 0) {\n            uVar17 = 0x54;\n          }\n          if ((bVar2 & 0x40) == 0) {\n            uVar20 = 0x54;\n          }\n          if ((char)bVar2 < '\0') {\n            uVar23 = 0x46;\n          }\n          goto LAB_0001ecec;\n        }\n      }\n      pSVar21 = pSVar25;\n      pSVar9 = pSVar26 + -1;\n      do {\n        pSVar12 = pSVar9;\n        pSVar7 = pSVar21;\n        pSVar21 = (Sym *)&pSVar7->name;\n        bVar4 = pSVar7->addr;\n        uVar17 = *(undefined4 *)&pSVar7->end_addr;\n        bVar5 = pSVar7->end_addr;\n        *(undefined4 *)&pSVar12->addr = *(undefined4 *)&pSVar7->addr;\n        *(int *)((int)&pSVar12->addr + 4) = (int)bVar4;\n        *(undefined4 *)&pSVar12->end_addr = uVar17;\n        *(int *)((int)&pSVar12->end_addr + 4) = (int)bVar5;\n        pSVar9 = (Sym *)&pSVar12->name;\n      } while (pSVar21 != (Sym *)&(pSVar25->cg).children);\n      pSVar25 = pSVar25 + 1;\n      pSVar8 = pSVar7->file;\n      pSVar12->name = *(char **)pSVar21;\n      pSVar12->file = pSVar8;\n      pSVar21 = tab->limit;\n      if (pSVar21 <= pSVar25) break;\n    } while( true );\n  }" { (do_statement "do {\n      uVar6 = *(uint *)&pSVar25->addr;\n      uVar14 = (uint)pSVar25->addr;\n      if (uVar6 != uVar30) goto LAB_0001e92c;\nLAB_0001e9b8:\n      if (uVar14 != uVar31) goto LAB_0001e92c;\n      bVar2 = pSVar25->field_0x1c;\n      bVar3 = pSVar26[-1].field_0x1c;\n      if (((bVar2 & 0x40) == 0) && ((bVar3 & 0x40) != 0)) {\n        if (uVar13 != 0) {\n          pcVar15 = pSVar25->name;\n          uVar23 = 0x66;\n          pcVar24 = pSVar26[-1].name;\n          uVar20 = 0x54;\n          if ((char)bVar2 < '\0') {\n            uVar23 = 0x46;\n          }\n          uVar17 = 0x74;\nLAB_0001ecec:\n          uVar10 = 0x66;\n          if ((char)bVar3 < '\0') {\n            uVar10 = 0x46;\n          }\n          (*(code *)PTR_printf_0003a6f4)(puVar29,pcVar15,uVar20,uVar23,pcVar24,uVar17,uVar10);\n          (*(code *)PTR_printf_0003a6f4)(puVar27,(int)pSVar25->addr);\n          uVar13 = *(uint *)puVar28 & 0x1080;\n        }\n      }\n      else {\n        if (((bVar2 ^ bVar3) & 0x40) != 0) goto LAB_0001eb60;\n        if ((-1 < (char)bVar2) || ((char)bVar3 < '\0')) {\n          if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;\n          cVar1 = *pSVar25->name;\n          if (cVar1 != '_') {\n            if (*pSVar26[-1].name == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }\n          if ((pSVar25->name[1] == '_') || (pSVar26[-1].name[1] != '_')) goto LAB_0001eb60;\n        }\nLAB_0001ecb8:\n        if (uVar13 != 0) {\n          pcVar15 = pSVar25->name;\n          uVar17 = 0x74;\n          pcVar24 = pSVar26[-1].name;\n          uVar23 = 0x66;\n          uVar20 = 0x74;\n          if ((bVar3 & 0x40) == 0) {\n            uVar17 = 0x54;\n          }\n          if ((bVar2 & 0x40) == 0) {\n            uVar20 = 0x54;\n          }\n          if ((char)bVar2 < '\0') {\n            uVar23 = 0x46;\n          }\n          goto LAB_0001ecec;\n        }\n      }\n      pSVar21 = pSVar25;\n      pSVar9 = pSVar26 + -1;\n      do {\n        pSVar12 = pSVar9;\n        pSVar7 = pSVar21;\n        pSVar21 = (Sym *)&pSVar7->name;\n        bVar4 = pSVar7->addr;\n        uVar17 = *(undefined4 *)&pSVar7->end_addr;\n        bVar5 = pSVar7->end_addr;\n        *(undefined4 *)&pSVar12->addr = *(undefined4 *)&pSVar7->addr;\n        *(int *)((int)&pSVar12->addr + 4) = (int)bVar4;\n        *(undefined4 *)&pSVar12->end_addr = uVar17;\n        *(int *)((int)&pSVar12->end_addr + 4) = (int)bVar5;\n        pSVar9 = (Sym *)&pSVar12->name;\n      } while (pSVar21 != (Sym *)&(pSVar25->cg).children);\n      pSVar25 = pSVar25 + 1;\n      pSVar8 = pSVar7->file;\n      pSVar12->name = *(char **)pSVar21;\n      pSVar12->file = pSVar8;\n      pSVar21 = tab->limit;\n      if (pSVar21 <= pSVar25) break;\n    } while( true );" do (compound_statement "{\n      uVar6 = *(uint *)&pSVar25->addr;\n      uVar14 = (uint)pSVar25->addr;\n      if (uVar6 != uVar30) goto LAB_0001e92c;\nLAB_0001e9b8:\n      if (uVar14 != uVar31) goto LAB_0001e92c;\n      bVar2 = pSVar25->field_0x1c;\n      bVar3 = pSVar26[-1].field_0x1c;\n      if (((bVar2 & 0x40) == 0) && ((bVar3 & 0x40) != 0)) {\n        if (uVar13 != 0) {\n          pcVar15 = pSVar25->name;\n          uVar23 = 0x66;\n          pcVar24 = pSVar26[-1].name;\n          uVar20 = 0x54;\n          if ((char)bVar2 < '\0') {\n            uVar23 = 0x46;\n          }\n          uVar17 = 0x74;\nLAB_0001ecec:\n          uVar10 = 0x66;\n          if ((char)bVar3 < '\0') {\n            uVar10 = 0x46;\n          }\n          (*(code *)PTR_printf_0003a6f4)(puVar29,pcVar15,uVar20,uVar23,pcVar24,uVar17,uVar10);\n          (*(code *)PTR_printf_0003a6f4)(puVar27,(int)pSVar25->addr);\n          uVar13 = *(uint *)puVar28 & 0x1080;\n        }\n      }\n      else {\n        if (((bVar2 ^ bVar3) & 0x40) != 0) goto LAB_0001eb60;\n        if ((-1 < (char)bVar2) || ((char)bVar3 < '\0')) {\n          if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;\n          cVar1 = *pSVar25->name;\n          if (cVar1 != '_') {\n            if (*pSVar26[-1].name == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }\n          if ((pSVar25->name[1] == '_') || (pSVar26[-1].name[1] != '_')) goto LAB_0001eb60;\n        }\nLAB_0001ecb8:\n        if (uVar13 != 0) {\n          pcVar15 = pSVar25->name;\n          uVar17 = 0x74;\n          pcVar24 = pSVar26[-1].name;\n          uVar23 = 0x66;\n          uVar20 = 0x74;\n          if ((bVar3 & 0x40) == 0) {\n            uVar17 = 0x54;\n          }\n          if ((bVar2 & 0x40) == 0) {\n            uVar20 = 0x54;\n          }\n          if ((char)bVar2 < '\0') {\n            uVar23 = 0x46;\n          }\n          goto LAB_0001ecec;\n        }\n      }\n      pSVar21 = pSVar25;\n      pSVar9 = pSVar26 + -1;\n      do {\n        pSVar12 = pSVar9;\n        pSVar7 = pSVar21;\n        pSVar21 = (Sym *)&pSVar7->name;\n        bVar4 = pSVar7->addr;\n        uVar17 = *(undefined4 *)&pSVar7->end_addr;\n        bVar5 = pSVar7->end_addr;\n        *(undefined4 *)&pSVar12->addr = *(undefined4 *)&pSVar7->addr;\n        *(int *)((int)&pSVar12->addr + 4) = (int)bVar4;\n        *(undefined4 *)&pSVar12->end_addr = uVar17;\n        *(int *)((int)&pSVar12->end_addr + 4) = (int)bVar5;\n        pSVar9 = (Sym *)&pSVar12->name;\n      } while (pSVar21 != (Sym *)&(pSVar25->cg).children);\n      pSVar25 = pSVar25 + 1;\n      pSVar8 = pSVar7->file;\n      pSVar12->name = *(char **)pSVar21;\n      pSVar12->file = pSVar8;\n      pSVar21 = tab->limit;\n      if (pSVar21 <= pSVar25) break;\n    }" { (expression_statement "uVar6 = *(uint *)&pSVar25->addr;" (assignment_expression "uVar6 = *(uint *)&pSVar25->addr" identifier = (pointer_expression "*(uint *)&pSVar25->addr" * (cast_expression "(uint *)&pSVar25->addr" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pSVar25->addr" & (field_expression "pSVar25->addr" identifier -> field_identifier))))) ;) (expression_statement "uVar14 = (uint)pSVar25->addr;" (assignment_expression "uVar14 = (uint)pSVar25->addr" identifier = (cast_expression "(uint)pSVar25->addr" ( (type_descriptor "uint" type_identifier) ) (field_expression "pSVar25->addr" identifier -> field_identifier))) ;) (if_statement "if (uVar6 != uVar30) goto LAB_0001e92c;" if (parenthesized_expression "(uVar6 != uVar30)" ( (binary_expression "uVar6 != uVar30" identifier != identifier) )) (goto_statement "goto LAB_0001e92c;" goto statement_identifier ;)) (labeled_statement "LAB_0001e9b8:\n      if (uVar14 != uVar31) goto LAB_0001e92c;" statement_identifier : (if_statement "if (uVar14 != uVar31) goto LAB_0001e92c;" if (parenthesized_expression "(uVar14 != uVar31)" ( (binary_expression "uVar14 != uVar31" identifier != identifier) )) (goto_statement "goto LAB_0001e92c;" goto statement_identifier ;))) (expression_statement "bVar2 = pSVar25->field_0x1c;" (assignment_expression "bVar2 = pSVar25->field_0x1c" identifier = (field_expression "pSVar25->field_0x1c" identifier -> field_identifier)) ;) (expression_statement "bVar3 = pSVar26[-1].field_0x1c;" (assignment_expression "bVar3 = pSVar26[-1].field_0x1c" identifier = (field_expression "pSVar26[-1].field_0x1c" (subscript_expression "pSVar26[-1]" identifier [ number_literal ]) . field_identifier)) ;) (if_statement "if (((bVar2 & 0x40) == 0) && ((bVar3 & 0x40) != 0)) {\n        if (uVar13 != 0) {\n          pcVar15 = pSVar25->name;\n          uVar23 = 0x66;\n          pcVar24 = pSVar26[-1].name;\n          uVar20 = 0x54;\n          if ((char)bVar2 < '\0') {\n            uVar23 = 0x46;\n          }\n          uVar17 = 0x74;\nLAB_0001ecec:\n          uVar10 = 0x66;\n          if ((char)bVar3 < '\0') {\n            uVar10 = 0x46;\n          }\n          (*(code *)PTR_printf_0003a6f4)(puVar29,pcVar15,uVar20,uVar23,pcVar24,uVar17,uVar10);\n          (*(code *)PTR_printf_0003a6f4)(puVar27,(int)pSVar25->addr);\n          uVar13 = *(uint *)puVar28 & 0x1080;\n        }\n      }\n      else {\n        if (((bVar2 ^ bVar3) & 0x40) != 0) goto LAB_0001eb60;\n        if ((-1 < (char)bVar2) || ((char)bVar3 < '\0')) {\n          if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;\n          cVar1 = *pSVar25->name;\n          if (cVar1 != '_') {\n            if (*pSVar26[-1].name == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }\n          if ((pSVar25->name[1] == '_') || (pSVar26[-1].name[1] != '_')) goto LAB_0001eb60;\n        }\nLAB_0001ecb8:\n        if (uVar13 != 0) {\n          pcVar15 = pSVar25->name;\n          uVar17 = 0x74;\n          pcVar24 = pSVar26[-1].name;\n          uVar23 = 0x66;\n          uVar20 = 0x74;\n          if ((bVar3 & 0x40) == 0) {\n            uVar17 = 0x54;\n          }\n          if ((bVar2 & 0x40) == 0) {\n            uVar20 = 0x54;\n          }\n          if ((char)bVar2 < '\0') {\n            uVar23 = 0x46;\n          }\n          goto LAB_0001ecec;\n        }\n      }" if (parenthesized_expression "(((bVar2 & 0x40) == 0) && ((bVar3 & 0x40) != 0))" ( (binary_expression "((bVar2 & 0x40) == 0) && ((bVar3 & 0x40) != 0)" (parenthesized_expression "((bVar2 & 0x40) == 0)" ( (binary_expression "(bVar2 & 0x40) == 0" (parenthesized_expression "(bVar2 & 0x40)" ( (binary_expression "bVar2 & 0x40" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "((bVar3 & 0x40) != 0)" ( (binary_expression "(bVar3 & 0x40) != 0" (parenthesized_expression "(bVar3 & 0x40)" ( (binary_expression "bVar3 & 0x40" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n        if (uVar13 != 0) {\n          pcVar15 = pSVar25->name;\n          uVar23 = 0x66;\n          pcVar24 = pSVar26[-1].name;\n          uVar20 = 0x54;\n          if ((char)bVar2 < '\0') {\n            uVar23 = 0x46;\n          }\n          uVar17 = 0x74;\nLAB_0001ecec:\n          uVar10 = 0x66;\n          if ((char)bVar3 < '\0') {\n            uVar10 = 0x46;\n          }\n          (*(code *)PTR_printf_0003a6f4)(puVar29,pcVar15,uVar20,uVar23,pcVar24,uVar17,uVar10);\n          (*(code *)PTR_printf_0003a6f4)(puVar27,(int)pSVar25->addr);\n          uVar13 = *(uint *)puVar28 & 0x1080;\n        }\n      }" { (if_statement "if (uVar13 != 0) {\n          pcVar15 = pSVar25->name;\n          uVar23 = 0x66;\n          pcVar24 = pSVar26[-1].name;\n          uVar20 = 0x54;\n          if ((char)bVar2 < '\0') {\n            uVar23 = 0x46;\n          }\n          uVar17 = 0x74;\nLAB_0001ecec:\n          uVar10 = 0x66;\n          if ((char)bVar3 < '\0') {\n            uVar10 = 0x46;\n          }\n          (*(code *)PTR_printf_0003a6f4)(puVar29,pcVar15,uVar20,uVar23,pcVar24,uVar17,uVar10);\n          (*(code *)PTR_printf_0003a6f4)(puVar27,(int)pSVar25->addr);\n          uVar13 = *(uint *)puVar28 & 0x1080;\n        }" if (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )) (compound_statement "{\n          pcVar15 = pSVar25->name;\n          uVar23 = 0x66;\n          pcVar24 = pSVar26[-1].name;\n          uVar20 = 0x54;\n          if ((char)bVar2 < '\0') {\n            uVar23 = 0x46;\n          }\n          uVar17 = 0x74;\nLAB_0001ecec:\n          uVar10 = 0x66;\n          if ((char)bVar3 < '\0') {\n            uVar10 = 0x46;\n          }\n          (*(code *)PTR_printf_0003a6f4)(puVar29,pcVar15,uVar20,uVar23,pcVar24,uVar17,uVar10);\n          (*(code *)PTR_printf_0003a6f4)(puVar27,(int)pSVar25->addr);\n          uVar13 = *(uint *)puVar28 & 0x1080;\n        }" { (expression_statement "pcVar15 = pSVar25->name;" (assignment_expression "pcVar15 = pSVar25->name" identifier = (field_expression "pSVar25->name" identifier -> field_identifier)) ;) (expression_statement "uVar23 = 0x66;" (assignment_expression "uVar23 = 0x66" identifier = number_literal) ;) (expression_statement "pcVar24 = pSVar26[-1].name;" (assignment_expression "pcVar24 = pSVar26[-1].name" identifier = (field_expression "pSVar26[-1].name" (subscript_expression "pSVar26[-1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "uVar20 = 0x54;" (assignment_expression "uVar20 = 0x54" identifier = number_literal) ;) (if_statement "if ((char)bVar2 < '\0') {\n            uVar23 = 0x46;\n          }" if (parenthesized_expression "((char)bVar2 < '\0')" ( (binary_expression "(char)bVar2 < '\0'" (cast_expression "(char)bVar2" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            uVar23 = 0x46;\n          }" { (expression_statement "uVar23 = 0x46;" (assignment_expression "uVar23 = 0x46" identifier = number_literal) ;) })) (expression_statement "uVar17 = 0x74;" (assignment_expression "uVar17 = 0x74" identifier = number_literal) ;) (labeled_statement "LAB_0001ecec:\n          uVar10 = 0x66;" statement_identifier : (expression_statement "uVar10 = 0x66;" (assignment_expression "uVar10 = 0x66" identifier = number_literal) ;)) (if_statement "if ((char)bVar3 < '\0') {\n            uVar10 = 0x46;\n          }" if (parenthesized_expression "((char)bVar3 < '\0')" ( (binary_expression "(char)bVar3 < '\0'" (cast_expression "(char)bVar3" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            uVar10 = 0x46;\n          }" { (expression_statement "uVar10 = 0x46;" (assignment_expression "uVar10 = 0x46" identifier = number_literal) ;) })) (expression_statement "(*(code *)PTR_printf_0003a6f4)(puVar29,pcVar15,uVar20,uVar23,pcVar24,uVar17,uVar10);" (call_expression "(*(code *)PTR_printf_0003a6f4)(puVar29,pcVar15,uVar20,uVar23,pcVar24,uVar17,uVar10)" (parenthesized_expression "(*(code *)PTR_printf_0003a6f4)" ( (pointer_expression "*(code *)PTR_printf_0003a6f4" * (cast_expression "(code *)PTR_printf_0003a6f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar29,pcVar15,uVar20,uVar23,pcVar24,uVar17,uVar10)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_printf_0003a6f4)(puVar27,(int)pSVar25->addr);" (call_expression "(*(code *)PTR_printf_0003a6f4)(puVar27,(int)pSVar25->addr)" (parenthesized_expression "(*(code *)PTR_printf_0003a6f4)" ( (pointer_expression "*(code *)PTR_printf_0003a6f4" * (cast_expression "(code *)PTR_printf_0003a6f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar27,(int)pSVar25->addr)" ( identifier , (cast_expression "(int)pSVar25->addr" ( (type_descriptor "int" primitive_type) ) (field_expression "pSVar25->addr" identifier -> field_identifier)) ))) ;) (expression_statement "uVar13 = *(uint *)puVar28 & 0x1080;" (assignment_expression "uVar13 = *(uint *)puVar28 & 0x1080" identifier = (binary_expression "*(uint *)puVar28 & 0x1080" (pointer_expression "*(uint *)puVar28" * (cast_expression "(uint *)puVar28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal)) ;) })) }) (else_clause "else {\n        if (((bVar2 ^ bVar3) & 0x40) != 0) goto LAB_0001eb60;\n        if ((-1 < (char)bVar2) || ((char)bVar3 < '\0')) {\n          if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;\n          cVar1 = *pSVar25->name;\n          if (cVar1 != '_') {\n            if (*pSVar26[-1].name == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }\n          if ((pSVar25->name[1] == '_') || (pSVar26[-1].name[1] != '_')) goto LAB_0001eb60;\n        }\nLAB_0001ecb8:\n        if (uVar13 != 0) {\n          pcVar15 = pSVar25->name;\n          uVar17 = 0x74;\n          pcVar24 = pSVar26[-1].name;\n          uVar23 = 0x66;\n          uVar20 = 0x74;\n          if ((bVar3 & 0x40) == 0) {\n            uVar17 = 0x54;\n          }\n          if ((bVar2 & 0x40) == 0) {\n            uVar20 = 0x54;\n          }\n          if ((char)bVar2 < '\0') {\n            uVar23 = 0x46;\n          }\n          goto LAB_0001ecec;\n        }\n      }" else (compound_statement "{\n        if (((bVar2 ^ bVar3) & 0x40) != 0) goto LAB_0001eb60;\n        if ((-1 < (char)bVar2) || ((char)bVar3 < '\0')) {\n          if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;\n          cVar1 = *pSVar25->name;\n          if (cVar1 != '_') {\n            if (*pSVar26[-1].name == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }\n          if ((pSVar25->name[1] == '_') || (pSVar26[-1].name[1] != '_')) goto LAB_0001eb60;\n        }\nLAB_0001ecb8:\n        if (uVar13 != 0) {\n          pcVar15 = pSVar25->name;\n          uVar17 = 0x74;\n          pcVar24 = pSVar26[-1].name;\n          uVar23 = 0x66;\n          uVar20 = 0x74;\n          if ((bVar3 & 0x40) == 0) {\n            uVar17 = 0x54;\n          }\n          if ((bVar2 & 0x40) == 0) {\n            uVar20 = 0x54;\n          }\n          if ((char)bVar2 < '\0') {\n            uVar23 = 0x46;\n          }\n          goto LAB_0001ecec;\n        }\n      }" { (if_statement "if (((bVar2 ^ bVar3) & 0x40) != 0) goto LAB_0001eb60;" if (parenthesized_expression "(((bVar2 ^ bVar3) & 0x40) != 0)" ( (binary_expression "((bVar2 ^ bVar3) & 0x40) != 0" (parenthesized_expression "((bVar2 ^ bVar3) & 0x40)" ( (binary_expression "(bVar2 ^ bVar3) & 0x40" (parenthesized_expression "(bVar2 ^ bVar3)" ( (binary_expression "bVar2 ^ bVar3" identifier ^ identifier) )) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0001eb60;" goto statement_identifier ;)) (if_statement "if ((-1 < (char)bVar2) || ((char)bVar3 < '\0')) {\n          if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;\n          cVar1 = *pSVar25->name;\n          if (cVar1 != '_') {\n            if (*pSVar26[-1].name == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }\n          if ((pSVar25->name[1] == '_') || (pSVar26[-1].name[1] != '_')) goto LAB_0001eb60;\n        }" if (parenthesized_expression "((-1 < (char)bVar2) || ((char)bVar3 < '\0'))" ( (binary_expression "(-1 < (char)bVar2) || ((char)bVar3 < '\0')" (parenthesized_expression "(-1 < (char)bVar2)" ( (binary_expression "-1 < (char)bVar2" number_literal < (cast_expression "(char)bVar2" ( (type_descriptor "char" primitive_type) ) identifier)) )) || (parenthesized_expression "((char)bVar3 < '\0')" ( (binary_expression "(char)bVar3 < '\0'" (cast_expression "(char)bVar3" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;\n          cVar1 = *pSVar25->name;\n          if (cVar1 != '_') {\n            if (*pSVar26[-1].name == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }\n          if ((pSVar25->name[1] == '_') || (pSVar26[-1].name[1] != '_')) goto LAB_0001eb60;\n        }" { (if_statement "if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;" if (parenthesized_expression "((char)(bVar2 ^ bVar3) < '\0')" ( (binary_expression "(char)(bVar2 ^ bVar3) < '\0'" (cast_expression "(char)(bVar2 ^ bVar3)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(bVar2 ^ bVar3)" ( (binary_expression "bVar2 ^ bVar3" identifier ^ identifier) ))) < (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0001eb60;" goto statement_identifier ;)) (expression_statement "cVar1 = *pSVar25->name;" (assignment_expression "cVar1 = *pSVar25->name" identifier = (pointer_expression "*pSVar25->name" * (field_expression "pSVar25->name" identifier -> field_identifier))) ;) (if_statement "if (cVar1 != '_') {\n            if (*pSVar26[-1].name == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }" if (parenthesized_expression "(cVar1 != '_')" ( (binary_expression "cVar1 != '_'" identifier != (char_literal "'_'" ' character ')) )) (compound_statement "{\n            if (*pSVar26[-1].name == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }" { (if_statement "if (*pSVar26[-1].name == '_') goto LAB_0001ecb8;" if (parenthesized_expression "(*pSVar26[-1].name == '_')" ( (binary_expression "*pSVar26[-1].name == '_'" (pointer_expression "*pSVar26[-1].name" * (field_expression "pSVar26[-1].name" (subscript_expression "pSVar26[-1]" identifier [ number_literal ]) . field_identifier)) == (char_literal "'_'" ' character ')) )) (goto_statement "goto LAB_0001ecb8;" goto statement_identifier ;)) (if_statement "if (cVar1 == '\0') goto LAB_0001eb60;" if (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0001eb60;" goto statement_identifier ;)) })) (if_statement "if ((pSVar25->name[1] == '_') || (pSVar26[-1].name[1] != '_')) goto LAB_0001eb60;" if (parenthesized_expression "((pSVar25->name[1] == '_') || (pSVar26[-1].name[1] != '_'))" ( (binary_expression "(pSVar25->name[1] == '_') || (pSVar26[-1].name[1] != '_')" (parenthesized_expression "(pSVar25->name[1] == '_')" ( (binary_expression "pSVar25->name[1] == '_'" (subscript_expression "pSVar25->name[1]" (field_expression "pSVar25->name" identifier -> field_identifier) [ number_literal ]) == (char_literal "'_'" ' character ')) )) || (parenthesized_expression "(pSVar26[-1].name[1] != '_')" ( (binary_expression "pSVar26[-1].name[1] != '_'" (subscript_expression "pSVar26[-1].name[1]" (field_expression "pSVar26[-1].name" (subscript_expression "pSVar26[-1]" identifier [ number_literal ]) . field_identifier) [ number_literal ]) != (char_literal "'_'" ' character ')) ))) )) (goto_statement "goto LAB_0001eb60;" goto statement_identifier ;)) })) (labeled_statement "LAB_0001ecb8:\n        if (uVar13 != 0) {\n          pcVar15 = pSVar25->name;\n          uVar17 = 0x74;\n          pcVar24 = pSVar26[-1].name;\n          uVar23 = 0x66;\n          uVar20 = 0x74;\n          if ((bVar3 & 0x40) == 0) {\n            uVar17 = 0x54;\n          }\n          if ((bVar2 & 0x40) == 0) {\n            uVar20 = 0x54;\n          }\n          if ((char)bVar2 < '\0') {\n            uVar23 = 0x46;\n          }\n          goto LAB_0001ecec;\n        }" statement_identifier : (if_statement "if (uVar13 != 0) {\n          pcVar15 = pSVar25->name;\n          uVar17 = 0x74;\n          pcVar24 = pSVar26[-1].name;\n          uVar23 = 0x66;\n          uVar20 = 0x74;\n          if ((bVar3 & 0x40) == 0) {\n            uVar17 = 0x54;\n          }\n          if ((bVar2 & 0x40) == 0) {\n            uVar20 = 0x54;\n          }\n          if ((char)bVar2 < '\0') {\n            uVar23 = 0x46;\n          }\n          goto LAB_0001ecec;\n        }" if (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )) (compound_statement "{\n          pcVar15 = pSVar25->name;\n          uVar17 = 0x74;\n          pcVar24 = pSVar26[-1].name;\n          uVar23 = 0x66;\n          uVar20 = 0x74;\n          if ((bVar3 & 0x40) == 0) {\n            uVar17 = 0x54;\n          }\n          if ((bVar2 & 0x40) == 0) {\n            uVar20 = 0x54;\n          }\n          if ((char)bVar2 < '\0') {\n            uVar23 = 0x46;\n          }\n          goto LAB_0001ecec;\n        }" { (expression_statement "pcVar15 = pSVar25->name;" (assignment_expression "pcVar15 = pSVar25->name" identifier = (field_expression "pSVar25->name" identifier -> field_identifier)) ;) (expression_statement "uVar17 = 0x74;" (assignment_expression "uVar17 = 0x74" identifier = number_literal) ;) (expression_statement "pcVar24 = pSVar26[-1].name;" (assignment_expression "pcVar24 = pSVar26[-1].name" identifier = (field_expression "pSVar26[-1].name" (subscript_expression "pSVar26[-1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "uVar23 = 0x66;" (assignment_expression "uVar23 = 0x66" identifier = number_literal) ;) (expression_statement "uVar20 = 0x74;" (assignment_expression "uVar20 = 0x74" identifier = number_literal) ;) (if_statement "if ((bVar3 & 0x40) == 0) {\n            uVar17 = 0x54;\n          }" if (parenthesized_expression "((bVar3 & 0x40) == 0)" ( (binary_expression "(bVar3 & 0x40) == 0" (parenthesized_expression "(bVar3 & 0x40)" ( (binary_expression "bVar3 & 0x40" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            uVar17 = 0x54;\n          }" { (expression_statement "uVar17 = 0x54;" (assignment_expression "uVar17 = 0x54" identifier = number_literal) ;) })) (if_statement "if ((bVar2 & 0x40) == 0) {\n            uVar20 = 0x54;\n          }" if (parenthesized_expression "((bVar2 & 0x40) == 0)" ( (binary_expression "(bVar2 & 0x40) == 0" (parenthesized_expression "(bVar2 & 0x40)" ( (binary_expression "bVar2 & 0x40" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            uVar20 = 0x54;\n          }" { (expression_statement "uVar20 = 0x54;" (assignment_expression "uVar20 = 0x54" identifier = number_literal) ;) })) (if_statement "if ((char)bVar2 < '\0') {\n            uVar23 = 0x46;\n          }" if (parenthesized_expression "((char)bVar2 < '\0')" ( (binary_expression "(char)bVar2 < '\0'" (cast_expression "(char)bVar2" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            uVar23 = 0x46;\n          }" { (expression_statement "uVar23 = 0x46;" (assignment_expression "uVar23 = 0x46" identifier = number_literal) ;) })) (goto_statement "goto LAB_0001ecec;" goto statement_identifier ;) }))) }))) (expression_statement "pSVar21 = pSVar25;" (assignment_expression "pSVar21 = pSVar25" identifier = identifier) ;) (expression_statement "pSVar9 = pSVar26 + -1;" (assignment_expression "pSVar9 = pSVar26 + -1" identifier = (binary_expression "pSVar26 + -1" identifier + number_literal)) ;) (do_statement "do {\n        pSVar12 = pSVar9;\n        pSVar7 = pSVar21;\n        pSVar21 = (Sym *)&pSVar7->name;\n        bVar4 = pSVar7->addr;\n        uVar17 = *(undefined4 *)&pSVar7->end_addr;\n        bVar5 = pSVar7->end_addr;\n        *(undefined4 *)&pSVar12->addr = *(undefined4 *)&pSVar7->addr;\n        *(int *)((int)&pSVar12->addr + 4) = (int)bVar4;\n        *(undefined4 *)&pSVar12->end_addr = uVar17;\n        *(int *)((int)&pSVar12->end_addr + 4) = (int)bVar5;\n        pSVar9 = (Sym *)&pSVar12->name;\n      } while (pSVar21 != (Sym *)&(pSVar25->cg).children);" do (compound_statement "{\n        pSVar12 = pSVar9;\n        pSVar7 = pSVar21;\n        pSVar21 = (Sym *)&pSVar7->name;\n        bVar4 = pSVar7->addr;\n        uVar17 = *(undefined4 *)&pSVar7->end_addr;\n        bVar5 = pSVar7->end_addr;\n        *(undefined4 *)&pSVar12->addr = *(undefined4 *)&pSVar7->addr;\n        *(int *)((int)&pSVar12->addr + 4) = (int)bVar4;\n        *(undefined4 *)&pSVar12->end_addr = uVar17;\n        *(int *)((int)&pSVar12->end_addr + 4) = (int)bVar5;\n        pSVar9 = (Sym *)&pSVar12->name;\n      }" { (expression_statement "pSVar12 = pSVar9;" (assignment_expression "pSVar12 = pSVar9" identifier = identifier) ;) (expression_statement "pSVar7 = pSVar21;" (assignment_expression "pSVar7 = pSVar21" identifier = identifier) ;) (expression_statement "pSVar21 = (Sym *)&pSVar7->name;" (assignment_expression "pSVar21 = (Sym *)&pSVar7->name" identifier = (cast_expression "(Sym *)&pSVar7->name" ( (type_descriptor "Sym *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pSVar7->name" & (field_expression "pSVar7->name" identifier -> field_identifier)))) ;) (expression_statement "bVar4 = pSVar7->addr;" (assignment_expression "bVar4 = pSVar7->addr" identifier = (field_expression "pSVar7->addr" identifier -> field_identifier)) ;) (expression_statement "uVar17 = *(undefined4 *)&pSVar7->end_addr;" (assignment_expression "uVar17 = *(undefined4 *)&pSVar7->end_addr" identifier = (pointer_expression "*(undefined4 *)&pSVar7->end_addr" * (cast_expression "(undefined4 *)&pSVar7->end_addr" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pSVar7->end_addr" & (field_expression "pSVar7->end_addr" identifier -> field_identifier))))) ;) (expression_statement "bVar5 = pSVar7->end_addr;" (assignment_expression "bVar5 = pSVar7->end_addr" identifier = (field_expression "pSVar7->end_addr" identifier -> field_identifier)) ;) (expression_statement "*(undefined4 *)&pSVar12->addr = *(undefined4 *)&pSVar7->addr;" (assignment_expression "*(undefined4 *)&pSVar12->addr = *(undefined4 *)&pSVar7->addr" (pointer_expression "*(undefined4 *)&pSVar12->addr" * (cast_expression "(undefined4 *)&pSVar12->addr" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pSVar12->addr" & (field_expression "pSVar12->addr" identifier -> field_identifier)))) = (pointer_expression "*(undefined4 *)&pSVar7->addr" * (cast_expression "(undefined4 *)&pSVar7->addr" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pSVar7->addr" & (field_expression "pSVar7->addr" identifier -> field_identifier))))) ;) (expression_statement "*(int *)((int)&pSVar12->addr + 4) = (int)bVar4;" (assignment_expression "*(int *)((int)&pSVar12->addr + 4) = (int)bVar4" (pointer_expression "*(int *)((int)&pSVar12->addr + 4)" * (cast_expression "(int *)((int)&pSVar12->addr + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pSVar12->addr + 4)" ( (binary_expression "(int)&pSVar12->addr + 4" (cast_expression "(int)&pSVar12->addr" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pSVar12->addr" & (field_expression "pSVar12->addr" identifier -> field_identifier))) + number_literal) )))) = (cast_expression "(int)bVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*(undefined4 *)&pSVar12->end_addr = uVar17;" (assignment_expression "*(undefined4 *)&pSVar12->end_addr = uVar17" (pointer_expression "*(undefined4 *)&pSVar12->end_addr" * (cast_expression "(undefined4 *)&pSVar12->end_addr" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pSVar12->end_addr" & (field_expression "pSVar12->end_addr" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(int *)((int)&pSVar12->end_addr + 4) = (int)bVar5;" (assignment_expression "*(int *)((int)&pSVar12->end_addr + 4) = (int)bVar5" (pointer_expression "*(int *)((int)&pSVar12->end_addr + 4)" * (cast_expression "(int *)((int)&pSVar12->end_addr + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pSVar12->end_addr + 4)" ( (binary_expression "(int)&pSVar12->end_addr + 4" (cast_expression "(int)&pSVar12->end_addr" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pSVar12->end_addr" & (field_expression "pSVar12->end_addr" identifier -> field_identifier))) + number_literal) )))) = (cast_expression "(int)bVar5" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pSVar9 = (Sym *)&pSVar12->name;" (assignment_expression "pSVar9 = (Sym *)&pSVar12->name" identifier = (cast_expression "(Sym *)&pSVar12->name" ( (type_descriptor "Sym *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pSVar12->name" & (field_expression "pSVar12->name" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(pSVar21 != (Sym *)&(pSVar25->cg).children)" ( (binary_expression "pSVar21 != (Sym *)&(pSVar25->cg).children" identifier != (cast_expression "(Sym *)&(pSVar25->cg).children" ( (type_descriptor "Sym *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pSVar25->cg).children" & (field_expression "(pSVar25->cg).children" (parenthesized_expression "(pSVar25->cg)" ( (field_expression "pSVar25->cg" identifier -> field_identifier) )) . field_identifier)))) )) ;) (expression_statement "pSVar25 = pSVar25 + 1;" (assignment_expression "pSVar25 = pSVar25 + 1" identifier = (binary_expression "pSVar25 + 1" identifier + number_literal)) ;) (expression_statement "pSVar8 = pSVar7->file;" (assignment_expression "pSVar8 = pSVar7->file" identifier = (field_expression "pSVar7->file" identifier -> field_identifier)) ;) (expression_statement "pSVar12->name = *(char **)pSVar21;" (assignment_expression "pSVar12->name = *(char **)pSVar21" (field_expression "pSVar12->name" identifier -> field_identifier) = (pointer_expression "*(char **)pSVar21" * (cast_expression "(char **)pSVar21" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pSVar12->file = pSVar8;" (assignment_expression "pSVar12->file = pSVar8" (field_expression "pSVar12->file" identifier -> field_identifier) = identifier) ;) (expression_statement "pSVar21 = tab->limit;" (assignment_expression "pSVar21 = tab->limit" identifier = (field_expression "tab->limit" identifier -> field_identifier)) ;) (if_statement "if (pSVar21 <= pSVar25) break;" if (parenthesized_expression "(pSVar21 <= pSVar25)" ( (binary_expression "pSVar21 <= pSVar25" identifier <= identifier) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "uVar6 = ((int)pSVar26 - (int)tab->base >> 3) * 0x3e0f83e1;" (assignment_expression "uVar6 = ((int)pSVar26 - (int)tab->base >> 3) * 0x3e0f83e1" identifier = (binary_expression "((int)pSVar26 - (int)tab->base >> 3) * 0x3e0f83e1" (parenthesized_expression "((int)pSVar26 - (int)tab->base >> 3)" ( (binary_expression "(int)pSVar26 - (int)tab->base >> 3" (binary_expression "(int)pSVar26 - (int)tab->base" (cast_expression "(int)pSVar26" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)tab->base" ( (type_descriptor "int" primitive_type) ) (field_expression "tab->base" identifier -> field_identifier))) >> number_literal) )) * number_literal)) ;) (expression_statement "pSVar25 = pSVar26;" (assignment_expression "pSVar25 = pSVar26" identifier = identifier) ;) (goto_statement "goto LAB_0001ea58;" goto statement_identifier ;) (labeled_statement "LAB_0001eb60:\n  uVar17 = 0x54;" statement_identifier : (expression_statement "uVar17 = 0x54;" (assignment_expression "uVar17 = 0x54" identifier = number_literal) ;)) (if_statement "if (uVar13 != 0) {\n    uVar20 = 0x54;\n    if ((bVar2 & 0x40) != 0) {\n      uVar20 = 0x74;\n    }\n    uVar23 = 0x66;\n    if ((bVar3 & 0x40) != 0) {\n      uVar17 = 0x74;\n    }\n    uVar10 = 0x66;\n    if ((char)bVar2 < '\0') {\n      uVar10 = 0x46;\n    }\n    if ((char)bVar3 < '\0') {\n      uVar23 = 0x46;\n    }\n    (*(code *)PTR_printf_0003a6f4)\n              (puVar29,pSVar26[-1].name,uVar17,uVar23,pSVar25->name,uVar20,uVar10);\n    (*(code *)PTR_printf_0003a6f4)(puVar27,(int)pSVar25->addr);\n    pSVar21 = tab->limit;\n    uVar13 = *(uint *)puVar28 & 0x1080;\n  }" if (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar20 = 0x54;\n    if ((bVar2 & 0x40) != 0) {\n      uVar20 = 0x74;\n    }\n    uVar23 = 0x66;\n    if ((bVar3 & 0x40) != 0) {\n      uVar17 = 0x74;\n    }\n    uVar10 = 0x66;\n    if ((char)bVar2 < '\0') {\n      uVar10 = 0x46;\n    }\n    if ((char)bVar3 < '\0') {\n      uVar23 = 0x46;\n    }\n    (*(code *)PTR_printf_0003a6f4)\n              (puVar29,pSVar26[-1].name,uVar17,uVar23,pSVar25->name,uVar20,uVar10);\n    (*(code *)PTR_printf_0003a6f4)(puVar27,(int)pSVar25->addr);\n    pSVar21 = tab->limit;\n    uVar13 = *(uint *)puVar28 & 0x1080;\n  }" { (expression_statement "uVar20 = 0x54;" (assignment_expression "uVar20 = 0x54" identifier = number_literal) ;) (if_statement "if ((bVar2 & 0x40) != 0) {\n      uVar20 = 0x74;\n    }" if (parenthesized_expression "((bVar2 & 0x40) != 0)" ( (binary_expression "(bVar2 & 0x40) != 0" (parenthesized_expression "(bVar2 & 0x40)" ( (binary_expression "bVar2 & 0x40" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar20 = 0x74;\n    }" { (expression_statement "uVar20 = 0x74;" (assignment_expression "uVar20 = 0x74" identifier = number_literal) ;) })) (expression_statement "uVar23 = 0x66;" (assignment_expression "uVar23 = 0x66" identifier = number_literal) ;) (if_statement "if ((bVar3 & 0x40) != 0) {\n      uVar17 = 0x74;\n    }" if (parenthesized_expression "((bVar3 & 0x40) != 0)" ( (binary_expression "(bVar3 & 0x40) != 0" (parenthesized_expression "(bVar3 & 0x40)" ( (binary_expression "bVar3 & 0x40" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar17 = 0x74;\n    }" { (expression_statement "uVar17 = 0x74;" (assignment_expression "uVar17 = 0x74" identifier = number_literal) ;) })) (expression_statement "uVar10 = 0x66;" (assignment_expression "uVar10 = 0x66" identifier = number_literal) ;) (if_statement "if ((char)bVar2 < '\0') {\n      uVar10 = 0x46;\n    }" if (parenthesized_expression "((char)bVar2 < '\0')" ( (binary_expression "(char)bVar2 < '\0'" (cast_expression "(char)bVar2" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar10 = 0x46;\n    }" { (expression_statement "uVar10 = 0x46;" (assignment_expression "uVar10 = 0x46" identifier = number_literal) ;) })) (if_statement "if ((char)bVar3 < '\0') {\n      uVar23 = 0x46;\n    }" if (parenthesized_expression "((char)bVar3 < '\0')" ( (binary_expression "(char)bVar3 < '\0'" (cast_expression "(char)bVar3" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar23 = 0x46;\n    }" { (expression_statement "uVar23 = 0x46;" (assignment_expression "uVar23 = 0x46" identifier = number_literal) ;) })) (expression_statement "(*(code *)PTR_printf_0003a6f4)\n              (puVar29,pSVar26[-1].name,uVar17,uVar23,pSVar25->name,uVar20,uVar10);" (call_expression "(*(code *)PTR_printf_0003a6f4)\n              (puVar29,pSVar26[-1].name,uVar17,uVar23,pSVar25->name,uVar20,uVar10)" (parenthesized_expression "(*(code *)PTR_printf_0003a6f4)" ( (pointer_expression "*(code *)PTR_printf_0003a6f4" * (cast_expression "(code *)PTR_printf_0003a6f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar29,pSVar26[-1].name,uVar17,uVar23,pSVar25->name,uVar20,uVar10)" ( identifier , (field_expression "pSVar26[-1].name" (subscript_expression "pSVar26[-1]" identifier [ number_literal ]) . field_identifier) , identifier , identifier , (field_expression "pSVar25->name" identifier -> field_identifier) , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_printf_0003a6f4)(puVar27,(int)pSVar25->addr);" (call_expression "(*(code *)PTR_printf_0003a6f4)(puVar27,(int)pSVar25->addr)" (parenthesized_expression "(*(code *)PTR_printf_0003a6f4)" ( (pointer_expression "*(code *)PTR_printf_0003a6f4" * (cast_expression "(code *)PTR_printf_0003a6f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar27,(int)pSVar25->addr)" ( identifier , (cast_expression "(int)pSVar25->addr" ( (type_descriptor "int" primitive_type) ) (field_expression "pSVar25->addr" identifier -> field_identifier)) ))) ;) (expression_statement "pSVar21 = tab->limit;" (assignment_expression "pSVar21 = tab->limit" identifier = (field_expression "tab->limit" identifier -> field_identifier)) ;) (expression_statement "uVar13 = *(uint *)puVar28 & 0x1080;" (assignment_expression "uVar13 = *(uint *)puVar28 & 0x1080" identifier = (binary_expression "*(uint *)puVar28 & 0x1080" (pointer_expression "*(uint *)puVar28" * (cast_expression "(uint *)puVar28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal)) ;) })) (goto_statement "goto LAB_0001e998;" goto statement_identifier ;) })))
(translation_unit "void symtab_finalize(uint *param_1)\n\n{\n  char cVar1;\n  byte bVar2;\n  byte bVar3;\n  uint uVar4;\n  uint *puVar5;\n  uint *puVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  uint uVar10;\n  uint *puVar11;\n  uint uVar12;\n  uint uVar13;\n  undefined4 uVar14;\n  uint *puVar15;\n  int iVar16;\n  undefined4 uVar17;\n  uint *puVar18;\n  uint *puVar19;\n  int iVar20;\n  undefined *puVar21;\n  undefined *puVar22;\n  undefined *puVar23;\n  uint uVar24;\n  uint uVar25;\n  \n  if (*param_1 == 0) {\n    return;\n  }\n  (*(code *)PTR_qsort_0003a5f0)(param_1[1],*param_1,0x108,PTR_LAB_0003a3e8 + -0x1890);\n  puVar22 = PTR_debug_level_0003a418;\n  puVar18 = (uint *)param_1[1];\n  puVar15 = (uint *)param_1[2];\n  uVar13 = puVar18[1];\n  uVar4 = *puVar18;\n  uVar25 = uVar13 + 1;\n  uVar24 = (uVar25 < uVar13) + uVar4;\n  if (puVar15 <= puVar18) {\n    uVar4 = 0;\n    uVar12 = *(uint *)PTR_debug_level_0003a418 & 0x1080;\nLAB_0001ea58:\n    uVar13 = *param_1;\n    if ((uVar13 != 0) && (puVar18[-0x40] == 0 && puVar18[-0x3f] == 0)) {\n      iVar20 = *(int *)PTR_core_text_sect_0003a534;\n      uVar25 = *(uint *)(iVar20 + 0x24);\n      iVar16 = *(int *)(iVar20 + 0x20);\n      iVar7 = *(int *)(iVar20 + 0x30);\n      uVar24 = uVar25 + *(int *)(iVar20 + 0x34);\n      puVar18[-0x3f] = uVar24 - 1;\n      puVar18[-0x40] = (uint)(uVar24 - 1 < uVar24) + (uint)(uVar24 < uVar25) + iVar16 + iVar7 + -1;\n    }\n    if (uVar12 == 0) {\n      param_1[2] = (uint)puVar18;\n      *param_1 = uVar4;\n    }\n    else {\n      (*(code *)PTR_printf_0003a6f4)(PTR_LAB_0003a3e8 + 0x6b20,uVar13 - uVar4);\n      uVar4 = param_1[1];\n      uVar24 = *(uint *)puVar22;\n      param_1[2] = (uint)puVar18;\n      uVar13 = ((int)((int)puVar18 - uVar4) >> 3) * 0x3e0f83e1;\n      *param_1 = uVar13;\n      if (((uVar24 & 0x1080) != 0) && (uVar13 != 0)) {\n        iVar20 = 0;\n        uVar13 = 0;\n        puVar22 = PTR_LAB_0003a3e8 + 0x6b54;\n        while( true ) {\n          iVar7 = uVar4 + iVar20;\n          uVar13 = uVar13 + 1;\n          iVar20 = iVar20 + 0x108;\n          (*(code *)PTR_printf_0003a6f4)\n                    (puVar22,*(undefined4 *)(iVar7 + 4),*(undefined4 *)(iVar7 + 0xc),\n                     *(undefined4 *)(iVar7 + 0x10));\n          if (*param_1 <= uVar13) break;\n          uVar4 = param_1[1];\n        }\n        return;\n      }\n    }\n    return;\n  }\n  uVar12 = *(uint *)PTR_debug_level_0003a418 & 0x1080;\n  puVar23 = PTR_LAB_0003a3e8 + 0x6ae0;\n  puVar21 = PTR_LAB_0003a3e8 + 0x6b10;\n  puVar19 = puVar18;\n  if (uVar4 == uVar24) goto LAB_0001e9b8;\nLAB_0001e92c:\n  if (((uint *)param_1[1] < puVar19) && (puVar19[-0x40] == 0 && puVar19[-0x3f] == 0)) {\n    puVar19[-0x3f] = uVar13 - 1;\n    puVar19[-0x40] = (uint)(uVar13 - 1 < uVar13) + (uVar4 - 1);\n  }\n  uVar10 = puVar18[2];\n  puVar6 = puVar18;\n  puVar5 = puVar19;\n  if ((uVar10 == 0 && puVar18[3] == 0) ||\n     ((uVar4 <= uVar10 && ((uVar4 != uVar10 || (uVar13 <= puVar18[3])))))) {\n    do {\n      puVar11 = puVar5;\n      puVar15 = puVar6;\n      puVar6 = puVar15 + 4;\n      uVar24 = puVar15[1];\n      uVar13 = puVar15[2];\n      uVar4 = puVar15[3];\n      *puVar11 = *puVar15;\n      puVar11[1] = uVar24;\n      puVar11[2] = uVar13;\n      puVar11[3] = uVar4;\n      puVar5 = puVar11 + 4;\n    } while (puVar6 != puVar18 + 0x40);\n    puVar19 = puVar19 + 0x42;\n    uVar4 = puVar15[5];\n    puVar11[4] = *puVar6;\n    puVar11[5] = uVar4;\n    uVar24 = *puVar18;\n    uVar25 = puVar18[1];\n    puVar15 = (uint *)param_1[2];\n  }\nLAB_0001e998:\n  puVar18 = puVar18 + 0x42;\n  if (puVar18 < puVar15) {\n    do {\n      uVar4 = *puVar18;\n      uVar13 = puVar18[1];\n      if (uVar4 != uVar24) goto LAB_0001e92c;\nLAB_0001e9b8:\n      if (uVar13 != uVar25) goto LAB_0001e92c;\n      bVar2 = *(byte *)(puVar18 + 7);\n      bVar3 = *(byte *)(puVar19 + -0x3b);\n      if (((bVar2 & 0x40) == 0) && ((bVar3 & 0x40) != 0)) {\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar17 = 0x66;\n          uVar13 = puVar19[-0x3e];\n          uVar14 = 0x54;\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          uVar9 = 0x74;\nLAB_0001ecec:\n          uVar8 = 0x66;\n          if ((char)bVar3 < '\0') {\n            uVar8 = 0x46;\n          }\n          (*(code *)PTR_printf_0003a6f4)(puVar23,uVar4,uVar14,uVar17,uVar13,uVar9,uVar8);\n          (*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);\n          uVar12 = *(uint *)puVar22 & 0x1080;\n        }\n      }\n      else {\n        if (((bVar2 ^ bVar3) & 0x40) != 0) goto LAB_0001eb60;\n        if ((-1 < (char)bVar2) || ((char)bVar3 < '\0')) {\n          if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;\n          cVar1 = *(char *)puVar18[4];\n          if (cVar1 != '_') {\n            if (*(char *)puVar19[-0x3e] == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }\n          if ((((char *)puVar18[4])[1] == '_') || (*(char *)(puVar19[-0x3e] + 1) != '_'))\n          goto LAB_0001eb60;\n        }\nLAB_0001ecb8:\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar9 = 0x74;\n          uVar13 = puVar19[-0x3e];\n          uVar17 = 0x66;\n          uVar14 = 0x74;\n          if ((bVar3 & 0x40) == 0) {\n            uVar9 = 0x54;\n          }\n          if ((bVar2 & 0x40) == 0) {\n            uVar14 = 0x54;\n          }\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          goto LAB_0001ecec;\n        }\n      }\n      puVar15 = puVar18;\n      puVar6 = puVar19 + -0x42;\n      do {\n        puVar11 = puVar6;\n        puVar5 = puVar15;\n        puVar15 = puVar5 + 4;\n        uVar10 = puVar5[1];\n        uVar13 = puVar5[2];\n        uVar4 = puVar5[3];\n        *puVar11 = *puVar5;\n        puVar11[1] = uVar10;\n        puVar11[2] = uVar13;\n        puVar11[3] = uVar4;\n        puVar6 = puVar11 + 4;\n      } while (puVar15 != puVar18 + 0x40);\n      puVar18 = puVar18 + 0x42;\n      uVar4 = puVar5[5];\n      puVar11[4] = *puVar15;\n      puVar11[5] = uVar4;\n      puVar15 = (uint *)param_1[2];\n      if (puVar15 <= puVar18) break;\n    } while( true );\n  }\n  uVar4 = ((int)((int)puVar19 - param_1[1]) >> 3) * 0x3e0f83e1;\n  puVar18 = puVar19;\n  goto LAB_0001ea58;\nLAB_0001eb60:\n  uVar9 = 0x54;\n  if (uVar12 != 0) {\n    uVar14 = 0x54;\n    if ((bVar2 & 0x40) != 0) {\n      uVar14 = 0x74;\n    }\n    uVar17 = 0x66;\n    if ((bVar3 & 0x40) != 0) {\n      uVar9 = 0x74;\n    }\n    uVar8 = 0x66;\n    if ((char)bVar2 < '\0') {\n      uVar8 = 0x46;\n    }\n    if ((char)bVar3 < '\0') {\n      uVar17 = 0x46;\n    }\n    (*(code *)PTR_printf_0003a6f4)(puVar23,puVar19[-0x3e],uVar9,uVar17,puVar18[4],uVar14,uVar8);\n    (*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);\n    puVar15 = (uint *)param_1[2];\n    uVar12 = *(uint *)puVar22 & 0x1080;\n  }\n  goto LAB_0001e998;\n}\n\n" (function_definition "void symtab_finalize(uint *param_1)\n\n{\n  char cVar1;\n  byte bVar2;\n  byte bVar3;\n  uint uVar4;\n  uint *puVar5;\n  uint *puVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  uint uVar10;\n  uint *puVar11;\n  uint uVar12;\n  uint uVar13;\n  undefined4 uVar14;\n  uint *puVar15;\n  int iVar16;\n  undefined4 uVar17;\n  uint *puVar18;\n  uint *puVar19;\n  int iVar20;\n  undefined *puVar21;\n  undefined *puVar22;\n  undefined *puVar23;\n  uint uVar24;\n  uint uVar25;\n  \n  if (*param_1 == 0) {\n    return;\n  }\n  (*(code *)PTR_qsort_0003a5f0)(param_1[1],*param_1,0x108,PTR_LAB_0003a3e8 + -0x1890);\n  puVar22 = PTR_debug_level_0003a418;\n  puVar18 = (uint *)param_1[1];\n  puVar15 = (uint *)param_1[2];\n  uVar13 = puVar18[1];\n  uVar4 = *puVar18;\n  uVar25 = uVar13 + 1;\n  uVar24 = (uVar25 < uVar13) + uVar4;\n  if (puVar15 <= puVar18) {\n    uVar4 = 0;\n    uVar12 = *(uint *)PTR_debug_level_0003a418 & 0x1080;\nLAB_0001ea58:\n    uVar13 = *param_1;\n    if ((uVar13 != 0) && (puVar18[-0x40] == 0 && puVar18[-0x3f] == 0)) {\n      iVar20 = *(int *)PTR_core_text_sect_0003a534;\n      uVar25 = *(uint *)(iVar20 + 0x24);\n      iVar16 = *(int *)(iVar20 + 0x20);\n      iVar7 = *(int *)(iVar20 + 0x30);\n      uVar24 = uVar25 + *(int *)(iVar20 + 0x34);\n      puVar18[-0x3f] = uVar24 - 1;\n      puVar18[-0x40] = (uint)(uVar24 - 1 < uVar24) + (uint)(uVar24 < uVar25) + iVar16 + iVar7 + -1;\n    }\n    if (uVar12 == 0) {\n      param_1[2] = (uint)puVar18;\n      *param_1 = uVar4;\n    }\n    else {\n      (*(code *)PTR_printf_0003a6f4)(PTR_LAB_0003a3e8 + 0x6b20,uVar13 - uVar4);\n      uVar4 = param_1[1];\n      uVar24 = *(uint *)puVar22;\n      param_1[2] = (uint)puVar18;\n      uVar13 = ((int)((int)puVar18 - uVar4) >> 3) * 0x3e0f83e1;\n      *param_1 = uVar13;\n      if (((uVar24 & 0x1080) != 0) && (uVar13 != 0)) {\n        iVar20 = 0;\n        uVar13 = 0;\n        puVar22 = PTR_LAB_0003a3e8 + 0x6b54;\n        while( true ) {\n          iVar7 = uVar4 + iVar20;\n          uVar13 = uVar13 + 1;\n          iVar20 = iVar20 + 0x108;\n          (*(code *)PTR_printf_0003a6f4)\n                    (puVar22,*(undefined4 *)(iVar7 + 4),*(undefined4 *)(iVar7 + 0xc),\n                     *(undefined4 *)(iVar7 + 0x10));\n          if (*param_1 <= uVar13) break;\n          uVar4 = param_1[1];\n        }\n        return;\n      }\n    }\n    return;\n  }\n  uVar12 = *(uint *)PTR_debug_level_0003a418 & 0x1080;\n  puVar23 = PTR_LAB_0003a3e8 + 0x6ae0;\n  puVar21 = PTR_LAB_0003a3e8 + 0x6b10;\n  puVar19 = puVar18;\n  if (uVar4 == uVar24) goto LAB_0001e9b8;\nLAB_0001e92c:\n  if (((uint *)param_1[1] < puVar19) && (puVar19[-0x40] == 0 && puVar19[-0x3f] == 0)) {\n    puVar19[-0x3f] = uVar13 - 1;\n    puVar19[-0x40] = (uint)(uVar13 - 1 < uVar13) + (uVar4 - 1);\n  }\n  uVar10 = puVar18[2];\n  puVar6 = puVar18;\n  puVar5 = puVar19;\n  if ((uVar10 == 0 && puVar18[3] == 0) ||\n     ((uVar4 <= uVar10 && ((uVar4 != uVar10 || (uVar13 <= puVar18[3])))))) {\n    do {\n      puVar11 = puVar5;\n      puVar15 = puVar6;\n      puVar6 = puVar15 + 4;\n      uVar24 = puVar15[1];\n      uVar13 = puVar15[2];\n      uVar4 = puVar15[3];\n      *puVar11 = *puVar15;\n      puVar11[1] = uVar24;\n      puVar11[2] = uVar13;\n      puVar11[3] = uVar4;\n      puVar5 = puVar11 + 4;\n    } while (puVar6 != puVar18 + 0x40);\n    puVar19 = puVar19 + 0x42;\n    uVar4 = puVar15[5];\n    puVar11[4] = *puVar6;\n    puVar11[5] = uVar4;\n    uVar24 = *puVar18;\n    uVar25 = puVar18[1];\n    puVar15 = (uint *)param_1[2];\n  }\nLAB_0001e998:\n  puVar18 = puVar18 + 0x42;\n  if (puVar18 < puVar15) {\n    do {\n      uVar4 = *puVar18;\n      uVar13 = puVar18[1];\n      if (uVar4 != uVar24) goto LAB_0001e92c;\nLAB_0001e9b8:\n      if (uVar13 != uVar25) goto LAB_0001e92c;\n      bVar2 = *(byte *)(puVar18 + 7);\n      bVar3 = *(byte *)(puVar19 + -0x3b);\n      if (((bVar2 & 0x40) == 0) && ((bVar3 & 0x40) != 0)) {\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar17 = 0x66;\n          uVar13 = puVar19[-0x3e];\n          uVar14 = 0x54;\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          uVar9 = 0x74;\nLAB_0001ecec:\n          uVar8 = 0x66;\n          if ((char)bVar3 < '\0') {\n            uVar8 = 0x46;\n          }\n          (*(code *)PTR_printf_0003a6f4)(puVar23,uVar4,uVar14,uVar17,uVar13,uVar9,uVar8);\n          (*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);\n          uVar12 = *(uint *)puVar22 & 0x1080;\n        }\n      }\n      else {\n        if (((bVar2 ^ bVar3) & 0x40) != 0) goto LAB_0001eb60;\n        if ((-1 < (char)bVar2) || ((char)bVar3 < '\0')) {\n          if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;\n          cVar1 = *(char *)puVar18[4];\n          if (cVar1 != '_') {\n            if (*(char *)puVar19[-0x3e] == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }\n          if ((((char *)puVar18[4])[1] == '_') || (*(char *)(puVar19[-0x3e] + 1) != '_'))\n          goto LAB_0001eb60;\n        }\nLAB_0001ecb8:\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar9 = 0x74;\n          uVar13 = puVar19[-0x3e];\n          uVar17 = 0x66;\n          uVar14 = 0x74;\n          if ((bVar3 & 0x40) == 0) {\n            uVar9 = 0x54;\n          }\n          if ((bVar2 & 0x40) == 0) {\n            uVar14 = 0x54;\n          }\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          goto LAB_0001ecec;\n        }\n      }\n      puVar15 = puVar18;\n      puVar6 = puVar19 + -0x42;\n      do {\n        puVar11 = puVar6;\n        puVar5 = puVar15;\n        puVar15 = puVar5 + 4;\n        uVar10 = puVar5[1];\n        uVar13 = puVar5[2];\n        uVar4 = puVar5[3];\n        *puVar11 = *puVar5;\n        puVar11[1] = uVar10;\n        puVar11[2] = uVar13;\n        puVar11[3] = uVar4;\n        puVar6 = puVar11 + 4;\n      } while (puVar15 != puVar18 + 0x40);\n      puVar18 = puVar18 + 0x42;\n      uVar4 = puVar5[5];\n      puVar11[4] = *puVar15;\n      puVar11[5] = uVar4;\n      puVar15 = (uint *)param_1[2];\n      if (puVar15 <= puVar18) break;\n    } while( true );\n  }\n  uVar4 = ((int)((int)puVar19 - param_1[1]) >> 3) * 0x3e0f83e1;\n  puVar18 = puVar19;\n  goto LAB_0001ea58;\nLAB_0001eb60:\n  uVar9 = 0x54;\n  if (uVar12 != 0) {\n    uVar14 = 0x54;\n    if ((bVar2 & 0x40) != 0) {\n      uVar14 = 0x74;\n    }\n    uVar17 = 0x66;\n    if ((bVar3 & 0x40) != 0) {\n      uVar9 = 0x74;\n    }\n    uVar8 = 0x66;\n    if ((char)bVar2 < '\0') {\n      uVar8 = 0x46;\n    }\n    if ((char)bVar3 < '\0') {\n      uVar17 = 0x46;\n    }\n    (*(code *)PTR_printf_0003a6f4)(puVar23,puVar19[-0x3e],uVar9,uVar17,puVar18[4],uVar14,uVar8);\n    (*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);\n    puVar15 = (uint *)param_1[2];\n    uVar12 = *(uint *)puVar22 & 0x1080;\n  }\n  goto LAB_0001e998;\n}" primitive_type (function_declarator "symtab_finalize(uint *param_1)" identifier (parameter_list "(uint *param_1)" ( (parameter_declaration "uint *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  byte bVar2;\n  byte bVar3;\n  uint uVar4;\n  uint *puVar5;\n  uint *puVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  uint uVar10;\n  uint *puVar11;\n  uint uVar12;\n  uint uVar13;\n  undefined4 uVar14;\n  uint *puVar15;\n  int iVar16;\n  undefined4 uVar17;\n  uint *puVar18;\n  uint *puVar19;\n  int iVar20;\n  undefined *puVar21;\n  undefined *puVar22;\n  undefined *puVar23;\n  uint uVar24;\n  uint uVar25;\n  \n  if (*param_1 == 0) {\n    return;\n  }\n  (*(code *)PTR_qsort_0003a5f0)(param_1[1],*param_1,0x108,PTR_LAB_0003a3e8 + -0x1890);\n  puVar22 = PTR_debug_level_0003a418;\n  puVar18 = (uint *)param_1[1];\n  puVar15 = (uint *)param_1[2];\n  uVar13 = puVar18[1];\n  uVar4 = *puVar18;\n  uVar25 = uVar13 + 1;\n  uVar24 = (uVar25 < uVar13) + uVar4;\n  if (puVar15 <= puVar18) {\n    uVar4 = 0;\n    uVar12 = *(uint *)PTR_debug_level_0003a418 & 0x1080;\nLAB_0001ea58:\n    uVar13 = *param_1;\n    if ((uVar13 != 0) && (puVar18[-0x40] == 0 && puVar18[-0x3f] == 0)) {\n      iVar20 = *(int *)PTR_core_text_sect_0003a534;\n      uVar25 = *(uint *)(iVar20 + 0x24);\n      iVar16 = *(int *)(iVar20 + 0x20);\n      iVar7 = *(int *)(iVar20 + 0x30);\n      uVar24 = uVar25 + *(int *)(iVar20 + 0x34);\n      puVar18[-0x3f] = uVar24 - 1;\n      puVar18[-0x40] = (uint)(uVar24 - 1 < uVar24) + (uint)(uVar24 < uVar25) + iVar16 + iVar7 + -1;\n    }\n    if (uVar12 == 0) {\n      param_1[2] = (uint)puVar18;\n      *param_1 = uVar4;\n    }\n    else {\n      (*(code *)PTR_printf_0003a6f4)(PTR_LAB_0003a3e8 + 0x6b20,uVar13 - uVar4);\n      uVar4 = param_1[1];\n      uVar24 = *(uint *)puVar22;\n      param_1[2] = (uint)puVar18;\n      uVar13 = ((int)((int)puVar18 - uVar4) >> 3) * 0x3e0f83e1;\n      *param_1 = uVar13;\n      if (((uVar24 & 0x1080) != 0) && (uVar13 != 0)) {\n        iVar20 = 0;\n        uVar13 = 0;\n        puVar22 = PTR_LAB_0003a3e8 + 0x6b54;\n        while( true ) {\n          iVar7 = uVar4 + iVar20;\n          uVar13 = uVar13 + 1;\n          iVar20 = iVar20 + 0x108;\n          (*(code *)PTR_printf_0003a6f4)\n                    (puVar22,*(undefined4 *)(iVar7 + 4),*(undefined4 *)(iVar7 + 0xc),\n                     *(undefined4 *)(iVar7 + 0x10));\n          if (*param_1 <= uVar13) break;\n          uVar4 = param_1[1];\n        }\n        return;\n      }\n    }\n    return;\n  }\n  uVar12 = *(uint *)PTR_debug_level_0003a418 & 0x1080;\n  puVar23 = PTR_LAB_0003a3e8 + 0x6ae0;\n  puVar21 = PTR_LAB_0003a3e8 + 0x6b10;\n  puVar19 = puVar18;\n  if (uVar4 == uVar24) goto LAB_0001e9b8;\nLAB_0001e92c:\n  if (((uint *)param_1[1] < puVar19) && (puVar19[-0x40] == 0 && puVar19[-0x3f] == 0)) {\n    puVar19[-0x3f] = uVar13 - 1;\n    puVar19[-0x40] = (uint)(uVar13 - 1 < uVar13) + (uVar4 - 1);\n  }\n  uVar10 = puVar18[2];\n  puVar6 = puVar18;\n  puVar5 = puVar19;\n  if ((uVar10 == 0 && puVar18[3] == 0) ||\n     ((uVar4 <= uVar10 && ((uVar4 != uVar10 || (uVar13 <= puVar18[3])))))) {\n    do {\n      puVar11 = puVar5;\n      puVar15 = puVar6;\n      puVar6 = puVar15 + 4;\n      uVar24 = puVar15[1];\n      uVar13 = puVar15[2];\n      uVar4 = puVar15[3];\n      *puVar11 = *puVar15;\n      puVar11[1] = uVar24;\n      puVar11[2] = uVar13;\n      puVar11[3] = uVar4;\n      puVar5 = puVar11 + 4;\n    } while (puVar6 != puVar18 + 0x40);\n    puVar19 = puVar19 + 0x42;\n    uVar4 = puVar15[5];\n    puVar11[4] = *puVar6;\n    puVar11[5] = uVar4;\n    uVar24 = *puVar18;\n    uVar25 = puVar18[1];\n    puVar15 = (uint *)param_1[2];\n  }\nLAB_0001e998:\n  puVar18 = puVar18 + 0x42;\n  if (puVar18 < puVar15) {\n    do {\n      uVar4 = *puVar18;\n      uVar13 = puVar18[1];\n      if (uVar4 != uVar24) goto LAB_0001e92c;\nLAB_0001e9b8:\n      if (uVar13 != uVar25) goto LAB_0001e92c;\n      bVar2 = *(byte *)(puVar18 + 7);\n      bVar3 = *(byte *)(puVar19 + -0x3b);\n      if (((bVar2 & 0x40) == 0) && ((bVar3 & 0x40) != 0)) {\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar17 = 0x66;\n          uVar13 = puVar19[-0x3e];\n          uVar14 = 0x54;\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          uVar9 = 0x74;\nLAB_0001ecec:\n          uVar8 = 0x66;\n          if ((char)bVar3 < '\0') {\n            uVar8 = 0x46;\n          }\n          (*(code *)PTR_printf_0003a6f4)(puVar23,uVar4,uVar14,uVar17,uVar13,uVar9,uVar8);\n          (*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);\n          uVar12 = *(uint *)puVar22 & 0x1080;\n        }\n      }\n      else {\n        if (((bVar2 ^ bVar3) & 0x40) != 0) goto LAB_0001eb60;\n        if ((-1 < (char)bVar2) || ((char)bVar3 < '\0')) {\n          if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;\n          cVar1 = *(char *)puVar18[4];\n          if (cVar1 != '_') {\n            if (*(char *)puVar19[-0x3e] == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }\n          if ((((char *)puVar18[4])[1] == '_') || (*(char *)(puVar19[-0x3e] + 1) != '_'))\n          goto LAB_0001eb60;\n        }\nLAB_0001ecb8:\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar9 = 0x74;\n          uVar13 = puVar19[-0x3e];\n          uVar17 = 0x66;\n          uVar14 = 0x74;\n          if ((bVar3 & 0x40) == 0) {\n            uVar9 = 0x54;\n          }\n          if ((bVar2 & 0x40) == 0) {\n            uVar14 = 0x54;\n          }\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          goto LAB_0001ecec;\n        }\n      }\n      puVar15 = puVar18;\n      puVar6 = puVar19 + -0x42;\n      do {\n        puVar11 = puVar6;\n        puVar5 = puVar15;\n        puVar15 = puVar5 + 4;\n        uVar10 = puVar5[1];\n        uVar13 = puVar5[2];\n        uVar4 = puVar5[3];\n        *puVar11 = *puVar5;\n        puVar11[1] = uVar10;\n        puVar11[2] = uVar13;\n        puVar11[3] = uVar4;\n        puVar6 = puVar11 + 4;\n      } while (puVar15 != puVar18 + 0x40);\n      puVar18 = puVar18 + 0x42;\n      uVar4 = puVar5[5];\n      puVar11[4] = *puVar15;\n      puVar11[5] = uVar4;\n      puVar15 = (uint *)param_1[2];\n      if (puVar15 <= puVar18) break;\n    } while( true );\n  }\n  uVar4 = ((int)((int)puVar19 - param_1[1]) >> 3) * 0x3e0f83e1;\n  puVar18 = puVar19;\n  goto LAB_0001ea58;\nLAB_0001eb60:\n  uVar9 = 0x54;\n  if (uVar12 != 0) {\n    uVar14 = 0x54;\n    if ((bVar2 & 0x40) != 0) {\n      uVar14 = 0x74;\n    }\n    uVar17 = 0x66;\n    if ((bVar3 & 0x40) != 0) {\n      uVar9 = 0x74;\n    }\n    uVar8 = 0x66;\n    if ((char)bVar2 < '\0') {\n      uVar8 = 0x46;\n    }\n    if ((char)bVar3 < '\0') {\n      uVar17 = 0x46;\n    }\n    (*(code *)PTR_printf_0003a6f4)(puVar23,puVar19[-0x3e],uVar9,uVar17,puVar18[4],uVar14,uVar8);\n    (*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);\n    puVar15 = (uint *)param_1[2];\n    uVar12 = *(uint *)puVar22 & 0x1080;\n  }\n  goto LAB_0001e998;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "uint *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "undefined4 uVar14;" type_identifier identifier ;) (declaration "uint *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "undefined4 uVar17;" type_identifier identifier ;) (declaration "uint *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "uint *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "undefined *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "undefined *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "undefined *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "uint uVar24;" type_identifier identifier ;) (declaration "uint uVar25;" type_identifier identifier ;) (if_statement "if (*param_1 == 0) {\n    return;\n  }" if (parenthesized_expression "(*param_1 == 0)" ( (binary_expression "*param_1 == 0" (pointer_expression "*param_1" * identifier) == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "(*(code *)PTR_qsort_0003a5f0)(param_1[1],*param_1,0x108,PTR_LAB_0003a3e8 + -0x1890);" (call_expression "(*(code *)PTR_qsort_0003a5f0)(param_1[1],*param_1,0x108,PTR_LAB_0003a3e8 + -0x1890)" (parenthesized_expression "(*(code *)PTR_qsort_0003a5f0)" ( (pointer_expression "*(code *)PTR_qsort_0003a5f0" * (cast_expression "(code *)PTR_qsort_0003a5f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1[1],*param_1,0x108,PTR_LAB_0003a3e8 + -0x1890)" ( (subscript_expression "param_1[1]" identifier [ number_literal ]) , (pointer_expression "*param_1" * identifier) , number_literal , (binary_expression "PTR_LAB_0003a3e8 + -0x1890" identifier + number_literal) ))) ;) (expression_statement "puVar22 = PTR_debug_level_0003a418;" (assignment_expression "puVar22 = PTR_debug_level_0003a418" identifier = identifier) ;) (expression_statement "puVar18 = (uint *)param_1[1];" (assignment_expression "puVar18 = (uint *)param_1[1]" identifier = (cast_expression "(uint *)param_1[1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar15 = (uint *)param_1[2];" (assignment_expression "puVar15 = (uint *)param_1[2]" identifier = (cast_expression "(uint *)param_1[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (expression_statement "uVar13 = puVar18[1];" (assignment_expression "uVar13 = puVar18[1]" identifier = (subscript_expression "puVar18[1]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = *puVar18;" (assignment_expression "uVar4 = *puVar18" identifier = (pointer_expression "*puVar18" * identifier)) ;) (expression_statement "uVar25 = uVar13 + 1;" (assignment_expression "uVar25 = uVar13 + 1" identifier = (binary_expression "uVar13 + 1" identifier + number_literal)) ;) (expression_statement "uVar24 = (uVar25 < uVar13) + uVar4;" (assignment_expression "uVar24 = (uVar25 < uVar13) + uVar4" identifier = (binary_expression "(uVar25 < uVar13) + uVar4" (parenthesized_expression "(uVar25 < uVar13)" ( (binary_expression "uVar25 < uVar13" identifier < identifier) )) + identifier)) ;) (if_statement "if (puVar15 <= puVar18) {\n    uVar4 = 0;\n    uVar12 = *(uint *)PTR_debug_level_0003a418 & 0x1080;\nLAB_0001ea58:\n    uVar13 = *param_1;\n    if ((uVar13 != 0) && (puVar18[-0x40] == 0 && puVar18[-0x3f] == 0)) {\n      iVar20 = *(int *)PTR_core_text_sect_0003a534;\n      uVar25 = *(uint *)(iVar20 + 0x24);\n      iVar16 = *(int *)(iVar20 + 0x20);\n      iVar7 = *(int *)(iVar20 + 0x30);\n      uVar24 = uVar25 + *(int *)(iVar20 + 0x34);\n      puVar18[-0x3f] = uVar24 - 1;\n      puVar18[-0x40] = (uint)(uVar24 - 1 < uVar24) + (uint)(uVar24 < uVar25) + iVar16 + iVar7 + -1;\n    }\n    if (uVar12 == 0) {\n      param_1[2] = (uint)puVar18;\n      *param_1 = uVar4;\n    }\n    else {\n      (*(code *)PTR_printf_0003a6f4)(PTR_LAB_0003a3e8 + 0x6b20,uVar13 - uVar4);\n      uVar4 = param_1[1];\n      uVar24 = *(uint *)puVar22;\n      param_1[2] = (uint)puVar18;\n      uVar13 = ((int)((int)puVar18 - uVar4) >> 3) * 0x3e0f83e1;\n      *param_1 = uVar13;\n      if (((uVar24 & 0x1080) != 0) && (uVar13 != 0)) {\n        iVar20 = 0;\n        uVar13 = 0;\n        puVar22 = PTR_LAB_0003a3e8 + 0x6b54;\n        while( true ) {\n          iVar7 = uVar4 + iVar20;\n          uVar13 = uVar13 + 1;\n          iVar20 = iVar20 + 0x108;\n          (*(code *)PTR_printf_0003a6f4)\n                    (puVar22,*(undefined4 *)(iVar7 + 4),*(undefined4 *)(iVar7 + 0xc),\n                     *(undefined4 *)(iVar7 + 0x10));\n          if (*param_1 <= uVar13) break;\n          uVar4 = param_1[1];\n        }\n        return;\n      }\n    }\n    return;\n  }" if (parenthesized_expression "(puVar15 <= puVar18)" ( (binary_expression "puVar15 <= puVar18" identifier <= identifier) )) (compound_statement "{\n    uVar4 = 0;\n    uVar12 = *(uint *)PTR_debug_level_0003a418 & 0x1080;\nLAB_0001ea58:\n    uVar13 = *param_1;\n    if ((uVar13 != 0) && (puVar18[-0x40] == 0 && puVar18[-0x3f] == 0)) {\n      iVar20 = *(int *)PTR_core_text_sect_0003a534;\n      uVar25 = *(uint *)(iVar20 + 0x24);\n      iVar16 = *(int *)(iVar20 + 0x20);\n      iVar7 = *(int *)(iVar20 + 0x30);\n      uVar24 = uVar25 + *(int *)(iVar20 + 0x34);\n      puVar18[-0x3f] = uVar24 - 1;\n      puVar18[-0x40] = (uint)(uVar24 - 1 < uVar24) + (uint)(uVar24 < uVar25) + iVar16 + iVar7 + -1;\n    }\n    if (uVar12 == 0) {\n      param_1[2] = (uint)puVar18;\n      *param_1 = uVar4;\n    }\n    else {\n      (*(code *)PTR_printf_0003a6f4)(PTR_LAB_0003a3e8 + 0x6b20,uVar13 - uVar4);\n      uVar4 = param_1[1];\n      uVar24 = *(uint *)puVar22;\n      param_1[2] = (uint)puVar18;\n      uVar13 = ((int)((int)puVar18 - uVar4) >> 3) * 0x3e0f83e1;\n      *param_1 = uVar13;\n      if (((uVar24 & 0x1080) != 0) && (uVar13 != 0)) {\n        iVar20 = 0;\n        uVar13 = 0;\n        puVar22 = PTR_LAB_0003a3e8 + 0x6b54;\n        while( true ) {\n          iVar7 = uVar4 + iVar20;\n          uVar13 = uVar13 + 1;\n          iVar20 = iVar20 + 0x108;\n          (*(code *)PTR_printf_0003a6f4)\n                    (puVar22,*(undefined4 *)(iVar7 + 4),*(undefined4 *)(iVar7 + 0xc),\n                     *(undefined4 *)(iVar7 + 0x10));\n          if (*param_1 <= uVar13) break;\n          uVar4 = param_1[1];\n        }\n        return;\n      }\n    }\n    return;\n  }" { (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (expression_statement "uVar12 = *(uint *)PTR_debug_level_0003a418 & 0x1080;" (assignment_expression "uVar12 = *(uint *)PTR_debug_level_0003a418 & 0x1080" identifier = (binary_expression "*(uint *)PTR_debug_level_0003a418 & 0x1080" (pointer_expression "*(uint *)PTR_debug_level_0003a418" * (cast_expression "(uint *)PTR_debug_level_0003a418" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal)) ;) (labeled_statement "LAB_0001ea58:\n    uVar13 = *param_1;" statement_identifier : (expression_statement "uVar13 = *param_1;" (assignment_expression "uVar13 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;)) (if_statement "if ((uVar13 != 0) && (puVar18[-0x40] == 0 && puVar18[-0x3f] == 0)) {\n      iVar20 = *(int *)PTR_core_text_sect_0003a534;\n      uVar25 = *(uint *)(iVar20 + 0x24);\n      iVar16 = *(int *)(iVar20 + 0x20);\n      iVar7 = *(int *)(iVar20 + 0x30);\n      uVar24 = uVar25 + *(int *)(iVar20 + 0x34);\n      puVar18[-0x3f] = uVar24 - 1;\n      puVar18[-0x40] = (uint)(uVar24 - 1 < uVar24) + (uint)(uVar24 < uVar25) + iVar16 + iVar7 + -1;\n    }" if (parenthesized_expression "((uVar13 != 0) && (puVar18[-0x40] == 0 && puVar18[-0x3f] == 0))" ( (binary_expression "(uVar13 != 0) && (puVar18[-0x40] == 0 && puVar18[-0x3f] == 0)" (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )) && (parenthesized_expression "(puVar18[-0x40] == 0 && puVar18[-0x3f] == 0)" ( (binary_expression "puVar18[-0x40] == 0 && puVar18[-0x3f] == 0" (binary_expression "puVar18[-0x40] == 0" (subscript_expression "puVar18[-0x40]" identifier [ number_literal ]) == number_literal) && (binary_expression "puVar18[-0x3f] == 0" (subscript_expression "puVar18[-0x3f]" identifier [ number_literal ]) == number_literal)) ))) )) (compound_statement "{\n      iVar20 = *(int *)PTR_core_text_sect_0003a534;\n      uVar25 = *(uint *)(iVar20 + 0x24);\n      iVar16 = *(int *)(iVar20 + 0x20);\n      iVar7 = *(int *)(iVar20 + 0x30);\n      uVar24 = uVar25 + *(int *)(iVar20 + 0x34);\n      puVar18[-0x3f] = uVar24 - 1;\n      puVar18[-0x40] = (uint)(uVar24 - 1 < uVar24) + (uint)(uVar24 < uVar25) + iVar16 + iVar7 + -1;\n    }" { (expression_statement "iVar20 = *(int *)PTR_core_text_sect_0003a534;" (assignment_expression "iVar20 = *(int *)PTR_core_text_sect_0003a534" identifier = (pointer_expression "*(int *)PTR_core_text_sect_0003a534" * (cast_expression "(int *)PTR_core_text_sect_0003a534" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar25 = *(uint *)(iVar20 + 0x24);" (assignment_expression "uVar25 = *(uint *)(iVar20 + 0x24)" identifier = (pointer_expression "*(uint *)(iVar20 + 0x24)" * (cast_expression "(uint *)(iVar20 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x24)" ( (binary_expression "iVar20 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "iVar16 = *(int *)(iVar20 + 0x20);" (assignment_expression "iVar16 = *(int *)(iVar20 + 0x20)" identifier = (pointer_expression "*(int *)(iVar20 + 0x20)" * (cast_expression "(int *)(iVar20 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x20)" ( (binary_expression "iVar20 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(iVar20 + 0x30);" (assignment_expression "iVar7 = *(int *)(iVar20 + 0x30)" identifier = (pointer_expression "*(int *)(iVar20 + 0x30)" * (cast_expression "(int *)(iVar20 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x30)" ( (binary_expression "iVar20 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "uVar24 = uVar25 + *(int *)(iVar20 + 0x34);" (assignment_expression "uVar24 = uVar25 + *(int *)(iVar20 + 0x34)" identifier = (binary_expression "uVar25 + *(int *)(iVar20 + 0x34)" identifier + (pointer_expression "*(int *)(iVar20 + 0x34)" * (cast_expression "(int *)(iVar20 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x34)" ( (binary_expression "iVar20 + 0x34" identifier + number_literal) )))))) ;) (expression_statement "puVar18[-0x3f] = uVar24 - 1;" (assignment_expression "puVar18[-0x3f] = uVar24 - 1" (subscript_expression "puVar18[-0x3f]" identifier [ number_literal ]) = (binary_expression "uVar24 - 1" identifier - number_literal)) ;) (expression_statement "puVar18[-0x40] = (uint)(uVar24 - 1 < uVar24) + (uint)(uVar24 < uVar25) + iVar16 + iVar7 + -1;" (assignment_expression "puVar18[-0x40] = (uint)(uVar24 - 1 < uVar24) + (uint)(uVar24 < uVar25) + iVar16 + iVar7 + -1" (subscript_expression "puVar18[-0x40]" identifier [ number_literal ]) = (binary_expression "(uint)(uVar24 - 1 < uVar24) + (uint)(uVar24 < uVar25) + iVar16 + iVar7 + -1" (binary_expression "(uint)(uVar24 - 1 < uVar24) + (uint)(uVar24 < uVar25) + iVar16 + iVar7" (binary_expression "(uint)(uVar24 - 1 < uVar24) + (uint)(uVar24 < uVar25) + iVar16" (binary_expression "(uint)(uVar24 - 1 < uVar24) + (uint)(uVar24 < uVar25)" (call_expression "(uint)(uVar24 - 1 < uVar24)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar24 - 1 < uVar24)" ( (binary_expression "uVar24 - 1 < uVar24" (binary_expression "uVar24 - 1" identifier - number_literal) < identifier) ))) + (call_expression "(uint)(uVar24 < uVar25)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar24 < uVar25)" ( (binary_expression "uVar24 < uVar25" identifier < identifier) )))) + identifier) + identifier) + number_literal)) ;) })) (if_statement "if (uVar12 == 0) {\n      param_1[2] = (uint)puVar18;\n      *param_1 = uVar4;\n    }\n    else {\n      (*(code *)PTR_printf_0003a6f4)(PTR_LAB_0003a3e8 + 0x6b20,uVar13 - uVar4);\n      uVar4 = param_1[1];\n      uVar24 = *(uint *)puVar22;\n      param_1[2] = (uint)puVar18;\n      uVar13 = ((int)((int)puVar18 - uVar4) >> 3) * 0x3e0f83e1;\n      *param_1 = uVar13;\n      if (((uVar24 & 0x1080) != 0) && (uVar13 != 0)) {\n        iVar20 = 0;\n        uVar13 = 0;\n        puVar22 = PTR_LAB_0003a3e8 + 0x6b54;\n        while( true ) {\n          iVar7 = uVar4 + iVar20;\n          uVar13 = uVar13 + 1;\n          iVar20 = iVar20 + 0x108;\n          (*(code *)PTR_printf_0003a6f4)\n                    (puVar22,*(undefined4 *)(iVar7 + 4),*(undefined4 *)(iVar7 + 0xc),\n                     *(undefined4 *)(iVar7 + 0x10));\n          if (*param_1 <= uVar13) break;\n          uVar4 = param_1[1];\n        }\n        return;\n      }\n    }" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (compound_statement "{\n      param_1[2] = (uint)puVar18;\n      *param_1 = uVar4;\n    }" { (expression_statement "param_1[2] = (uint)puVar18;" (assignment_expression "param_1[2] = (uint)puVar18" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (cast_expression "(uint)puVar18" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*param_1 = uVar4;" (assignment_expression "*param_1 = uVar4" (pointer_expression "*param_1" * identifier) = identifier) ;) }) (else_clause "else {\n      (*(code *)PTR_printf_0003a6f4)(PTR_LAB_0003a3e8 + 0x6b20,uVar13 - uVar4);\n      uVar4 = param_1[1];\n      uVar24 = *(uint *)puVar22;\n      param_1[2] = (uint)puVar18;\n      uVar13 = ((int)((int)puVar18 - uVar4) >> 3) * 0x3e0f83e1;\n      *param_1 = uVar13;\n      if (((uVar24 & 0x1080) != 0) && (uVar13 != 0)) {\n        iVar20 = 0;\n        uVar13 = 0;\n        puVar22 = PTR_LAB_0003a3e8 + 0x6b54;\n        while( true ) {\n          iVar7 = uVar4 + iVar20;\n          uVar13 = uVar13 + 1;\n          iVar20 = iVar20 + 0x108;\n          (*(code *)PTR_printf_0003a6f4)\n                    (puVar22,*(undefined4 *)(iVar7 + 4),*(undefined4 *)(iVar7 + 0xc),\n                     *(undefined4 *)(iVar7 + 0x10));\n          if (*param_1 <= uVar13) break;\n          uVar4 = param_1[1];\n        }\n        return;\n      }\n    }" else (compound_statement "{\n      (*(code *)PTR_printf_0003a6f4)(PTR_LAB_0003a3e8 + 0x6b20,uVar13 - uVar4);\n      uVar4 = param_1[1];\n      uVar24 = *(uint *)puVar22;\n      param_1[2] = (uint)puVar18;\n      uVar13 = ((int)((int)puVar18 - uVar4) >> 3) * 0x3e0f83e1;\n      *param_1 = uVar13;\n      if (((uVar24 & 0x1080) != 0) && (uVar13 != 0)) {\n        iVar20 = 0;\n        uVar13 = 0;\n        puVar22 = PTR_LAB_0003a3e8 + 0x6b54;\n        while( true ) {\n          iVar7 = uVar4 + iVar20;\n          uVar13 = uVar13 + 1;\n          iVar20 = iVar20 + 0x108;\n          (*(code *)PTR_printf_0003a6f4)\n                    (puVar22,*(undefined4 *)(iVar7 + 4),*(undefined4 *)(iVar7 + 0xc),\n                     *(undefined4 *)(iVar7 + 0x10));\n          if (*param_1 <= uVar13) break;\n          uVar4 = param_1[1];\n        }\n        return;\n      }\n    }" { (expression_statement "(*(code *)PTR_printf_0003a6f4)(PTR_LAB_0003a3e8 + 0x6b20,uVar13 - uVar4);" (call_expression "(*(code *)PTR_printf_0003a6f4)(PTR_LAB_0003a3e8 + 0x6b20,uVar13 - uVar4)" (parenthesized_expression "(*(code *)PTR_printf_0003a6f4)" ( (pointer_expression "*(code *)PTR_printf_0003a6f4" * (cast_expression "(code *)PTR_printf_0003a6f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_0003a3e8 + 0x6b20,uVar13 - uVar4)" ( (binary_expression "PTR_LAB_0003a3e8 + 0x6b20" identifier + number_literal) , (binary_expression "uVar13 - uVar4" identifier - identifier) ))) ;) (expression_statement "uVar4 = param_1[1];" (assignment_expression "uVar4 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "uVar24 = *(uint *)puVar22;" (assignment_expression "uVar24 = *(uint *)puVar22" identifier = (pointer_expression "*(uint *)puVar22" * (cast_expression "(uint *)puVar22" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "param_1[2] = (uint)puVar18;" (assignment_expression "param_1[2] = (uint)puVar18" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (cast_expression "(uint)puVar18" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar13 = ((int)((int)puVar18 - uVar4) >> 3) * 0x3e0f83e1;" (assignment_expression "uVar13 = ((int)((int)puVar18 - uVar4) >> 3) * 0x3e0f83e1" identifier = (binary_expression "((int)((int)puVar18 - uVar4) >> 3) * 0x3e0f83e1" (parenthesized_expression "((int)((int)puVar18 - uVar4) >> 3)" ( (binary_expression "(int)((int)puVar18 - uVar4) >> 3" (cast_expression "(int)((int)puVar18 - uVar4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)puVar18 - uVar4)" ( (binary_expression "(int)puVar18 - uVar4" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) ))) >> number_literal) )) * number_literal)) ;) (expression_statement "*param_1 = uVar13;" (assignment_expression "*param_1 = uVar13" (pointer_expression "*param_1" * identifier) = identifier) ;) (if_statement "if (((uVar24 & 0x1080) != 0) && (uVar13 != 0)) {\n        iVar20 = 0;\n        uVar13 = 0;\n        puVar22 = PTR_LAB_0003a3e8 + 0x6b54;\n        while( true ) {\n          iVar7 = uVar4 + iVar20;\n          uVar13 = uVar13 + 1;\n          iVar20 = iVar20 + 0x108;\n          (*(code *)PTR_printf_0003a6f4)\n                    (puVar22,*(undefined4 *)(iVar7 + 4),*(undefined4 *)(iVar7 + 0xc),\n                     *(undefined4 *)(iVar7 + 0x10));\n          if (*param_1 <= uVar13) break;\n          uVar4 = param_1[1];\n        }\n        return;\n      }" if (parenthesized_expression "(((uVar24 & 0x1080) != 0) && (uVar13 != 0))" ( (binary_expression "((uVar24 & 0x1080) != 0) && (uVar13 != 0)" (parenthesized_expression "((uVar24 & 0x1080) != 0)" ( (binary_expression "(uVar24 & 0x1080) != 0" (parenthesized_expression "(uVar24 & 0x1080)" ( (binary_expression "uVar24 & 0x1080" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) ))) )) (compound_statement "{\n        iVar20 = 0;\n        uVar13 = 0;\n        puVar22 = PTR_LAB_0003a3e8 + 0x6b54;\n        while( true ) {\n          iVar7 = uVar4 + iVar20;\n          uVar13 = uVar13 + 1;\n          iVar20 = iVar20 + 0x108;\n          (*(code *)PTR_printf_0003a6f4)\n                    (puVar22,*(undefined4 *)(iVar7 + 4),*(undefined4 *)(iVar7 + 0xc),\n                     *(undefined4 *)(iVar7 + 0x10));\n          if (*param_1 <= uVar13) break;\n          uVar4 = param_1[1];\n        }\n        return;\n      }" { (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" identifier = number_literal) ;) (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) (expression_statement "puVar22 = PTR_LAB_0003a3e8 + 0x6b54;" (assignment_expression "puVar22 = PTR_LAB_0003a3e8 + 0x6b54" identifier = (binary_expression "PTR_LAB_0003a3e8 + 0x6b54" identifier + number_literal)) ;) (while_statement "while( true ) {\n          iVar7 = uVar4 + iVar20;\n          uVar13 = uVar13 + 1;\n          iVar20 = iVar20 + 0x108;\n          (*(code *)PTR_printf_0003a6f4)\n                    (puVar22,*(undefined4 *)(iVar7 + 4),*(undefined4 *)(iVar7 + 0xc),\n                     *(undefined4 *)(iVar7 + 0x10));\n          if (*param_1 <= uVar13) break;\n          uVar4 = param_1[1];\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          iVar7 = uVar4 + iVar20;\n          uVar13 = uVar13 + 1;\n          iVar20 = iVar20 + 0x108;\n          (*(code *)PTR_printf_0003a6f4)\n                    (puVar22,*(undefined4 *)(iVar7 + 4),*(undefined4 *)(iVar7 + 0xc),\n                     *(undefined4 *)(iVar7 + 0x10));\n          if (*param_1 <= uVar13) break;\n          uVar4 = param_1[1];\n        }" { (expression_statement "iVar7 = uVar4 + iVar20;" (assignment_expression "iVar7 = uVar4 + iVar20" identifier = (binary_expression "uVar4 + iVar20" identifier + identifier)) ;) (expression_statement "uVar13 = uVar13 + 1;" (assignment_expression "uVar13 = uVar13 + 1" identifier = (binary_expression "uVar13 + 1" identifier + number_literal)) ;) (expression_statement "iVar20 = iVar20 + 0x108;" (assignment_expression "iVar20 = iVar20 + 0x108" identifier = (binary_expression "iVar20 + 0x108" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR_printf_0003a6f4)\n                    (puVar22,*(undefined4 *)(iVar7 + 4),*(undefined4 *)(iVar7 + 0xc),\n                     *(undefined4 *)(iVar7 + 0x10));" (call_expression "(*(code *)PTR_printf_0003a6f4)\n                    (puVar22,*(undefined4 *)(iVar7 + 4),*(undefined4 *)(iVar7 + 0xc),\n                     *(undefined4 *)(iVar7 + 0x10))" (parenthesized_expression "(*(code *)PTR_printf_0003a6f4)" ( (pointer_expression "*(code *)PTR_printf_0003a6f4" * (cast_expression "(code *)PTR_printf_0003a6f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar22,*(undefined4 *)(iVar7 + 4),*(undefined4 *)(iVar7 + 0xc),\n                     *(undefined4 *)(iVar7 + 0x10))" ( identifier , (pointer_expression "*(undefined4 *)(iVar7 + 4)" * (cast_expression "(undefined4 *)(iVar7 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar7 + 0xc)" * (cast_expression "(undefined4 *)(iVar7 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar7 + 0x10)" * (cast_expression "(undefined4 *)(iVar7 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) )))) ))) ;) (if_statement "if (*param_1 <= uVar13) break;" if (parenthesized_expression "(*param_1 <= uVar13)" ( (binary_expression "*param_1 <= uVar13" (pointer_expression "*param_1" * identifier) <= identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar4 = param_1[1];" (assignment_expression "uVar4 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) })) (return_statement "return;" return ;) })) }))) (return_statement "return;" return ;) })) (expression_statement "uVar12 = *(uint *)PTR_debug_level_0003a418 & 0x1080;" (assignment_expression "uVar12 = *(uint *)PTR_debug_level_0003a418 & 0x1080" identifier = (binary_expression "*(uint *)PTR_debug_level_0003a418 & 0x1080" (pointer_expression "*(uint *)PTR_debug_level_0003a418" * (cast_expression "(uint *)PTR_debug_level_0003a418" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal)) ;) (expression_statement "puVar23 = PTR_LAB_0003a3e8 + 0x6ae0;" (assignment_expression "puVar23 = PTR_LAB_0003a3e8 + 0x6ae0" identifier = (binary_expression "PTR_LAB_0003a3e8 + 0x6ae0" identifier + number_literal)) ;) (expression_statement "puVar21 = PTR_LAB_0003a3e8 + 0x6b10;" (assignment_expression "puVar21 = PTR_LAB_0003a3e8 + 0x6b10" identifier = (binary_expression "PTR_LAB_0003a3e8 + 0x6b10" identifier + number_literal)) ;) (expression_statement "puVar19 = puVar18;" (assignment_expression "puVar19 = puVar18" identifier = identifier) ;) (if_statement "if (uVar4 == uVar24) goto LAB_0001e9b8;" if (parenthesized_expression "(uVar4 == uVar24)" ( (binary_expression "uVar4 == uVar24" identifier == identifier) )) (goto_statement "goto LAB_0001e9b8;" goto statement_identifier ;)) (labeled_statement "LAB_0001e92c:\n  if (((uint *)param_1[1] < puVar19) && (puVar19[-0x40] == 0 && puVar19[-0x3f] == 0)) {\n    puVar19[-0x3f] = uVar13 - 1;\n    puVar19[-0x40] = (uint)(uVar13 - 1 < uVar13) + (uVar4 - 1);\n  }" statement_identifier : (if_statement "if (((uint *)param_1[1] < puVar19) && (puVar19[-0x40] == 0 && puVar19[-0x3f] == 0)) {\n    puVar19[-0x3f] = uVar13 - 1;\n    puVar19[-0x40] = (uint)(uVar13 - 1 < uVar13) + (uVar4 - 1);\n  }" if (parenthesized_expression "(((uint *)param_1[1] < puVar19) && (puVar19[-0x40] == 0 && puVar19[-0x3f] == 0))" ( (binary_expression "((uint *)param_1[1] < puVar19) && (puVar19[-0x40] == 0 && puVar19[-0x3f] == 0)" (parenthesized_expression "((uint *)param_1[1] < puVar19)" ( (binary_expression "(uint *)param_1[1] < puVar19" (cast_expression "(uint *)param_1[1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ])) < identifier) )) && (parenthesized_expression "(puVar19[-0x40] == 0 && puVar19[-0x3f] == 0)" ( (binary_expression "puVar19[-0x40] == 0 && puVar19[-0x3f] == 0" (binary_expression "puVar19[-0x40] == 0" (subscript_expression "puVar19[-0x40]" identifier [ number_literal ]) == number_literal) && (binary_expression "puVar19[-0x3f] == 0" (subscript_expression "puVar19[-0x3f]" identifier [ number_literal ]) == number_literal)) ))) )) (compound_statement "{\n    puVar19[-0x3f] = uVar13 - 1;\n    puVar19[-0x40] = (uint)(uVar13 - 1 < uVar13) + (uVar4 - 1);\n  }" { (expression_statement "puVar19[-0x3f] = uVar13 - 1;" (assignment_expression "puVar19[-0x3f] = uVar13 - 1" (subscript_expression "puVar19[-0x3f]" identifier [ number_literal ]) = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "puVar19[-0x40] = (uint)(uVar13 - 1 < uVar13) + (uVar4 - 1);" (assignment_expression "puVar19[-0x40] = (uint)(uVar13 - 1 < uVar13) + (uVar4 - 1)" (subscript_expression "puVar19[-0x40]" identifier [ number_literal ]) = (binary_expression "(uint)(uVar13 - 1 < uVar13) + (uVar4 - 1)" (call_expression "(uint)(uVar13 - 1 < uVar13)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar13 - 1 < uVar13)" ( (binary_expression "uVar13 - 1 < uVar13" (binary_expression "uVar13 - 1" identifier - number_literal) < identifier) ))) + (parenthesized_expression "(uVar4 - 1)" ( (binary_expression "uVar4 - 1" identifier - number_literal) )))) ;) }))) (expression_statement "uVar10 = puVar18[2];" (assignment_expression "uVar10 = puVar18[2]" identifier = (subscript_expression "puVar18[2]" identifier [ number_literal ])) ;) (expression_statement "puVar6 = puVar18;" (assignment_expression "puVar6 = puVar18" identifier = identifier) ;) (expression_statement "puVar5 = puVar19;" (assignment_expression "puVar5 = puVar19" identifier = identifier) ;) (if_statement "if ((uVar10 == 0 && puVar18[3] == 0) ||\n     ((uVar4 <= uVar10 && ((uVar4 != uVar10 || (uVar13 <= puVar18[3])))))) {\n    do {\n      puVar11 = puVar5;\n      puVar15 = puVar6;\n      puVar6 = puVar15 + 4;\n      uVar24 = puVar15[1];\n      uVar13 = puVar15[2];\n      uVar4 = puVar15[3];\n      *puVar11 = *puVar15;\n      puVar11[1] = uVar24;\n      puVar11[2] = uVar13;\n      puVar11[3] = uVar4;\n      puVar5 = puVar11 + 4;\n    } while (puVar6 != puVar18 + 0x40);\n    puVar19 = puVar19 + 0x42;\n    uVar4 = puVar15[5];\n    puVar11[4] = *puVar6;\n    puVar11[5] = uVar4;\n    uVar24 = *puVar18;\n    uVar25 = puVar18[1];\n    puVar15 = (uint *)param_1[2];\n  }" if (parenthesized_expression "((uVar10 == 0 && puVar18[3] == 0) ||\n     ((uVar4 <= uVar10 && ((uVar4 != uVar10 || (uVar13 <= puVar18[3]))))))" ( (binary_expression "(uVar10 == 0 && puVar18[3] == 0) ||\n     ((uVar4 <= uVar10 && ((uVar4 != uVar10 || (uVar13 <= puVar18[3])))))" (parenthesized_expression "(uVar10 == 0 && puVar18[3] == 0)" ( (binary_expression "uVar10 == 0 && puVar18[3] == 0" (binary_expression "uVar10 == 0" identifier == number_literal) && (binary_expression "puVar18[3] == 0" (subscript_expression "puVar18[3]" identifier [ number_literal ]) == number_literal)) )) || (parenthesized_expression "((uVar4 <= uVar10 && ((uVar4 != uVar10 || (uVar13 <= puVar18[3])))))" ( (parenthesized_expression "(uVar4 <= uVar10 && ((uVar4 != uVar10 || (uVar13 <= puVar18[3]))))" ( (binary_expression "uVar4 <= uVar10 && ((uVar4 != uVar10 || (uVar13 <= puVar18[3])))" (binary_expression "uVar4 <= uVar10" identifier <= identifier) && (parenthesized_expression "((uVar4 != uVar10 || (uVar13 <= puVar18[3])))" ( (parenthesized_expression "(uVar4 != uVar10 || (uVar13 <= puVar18[3]))" ( (binary_expression "uVar4 != uVar10 || (uVar13 <= puVar18[3])" (binary_expression "uVar4 != uVar10" identifier != identifier) || (parenthesized_expression "(uVar13 <= puVar18[3])" ( (binary_expression "uVar13 <= puVar18[3]" identifier <= (subscript_expression "puVar18[3]" identifier [ number_literal ])) ))) )) ))) )) ))) )) (compound_statement "{\n    do {\n      puVar11 = puVar5;\n      puVar15 = puVar6;\n      puVar6 = puVar15 + 4;\n      uVar24 = puVar15[1];\n      uVar13 = puVar15[2];\n      uVar4 = puVar15[3];\n      *puVar11 = *puVar15;\n      puVar11[1] = uVar24;\n      puVar11[2] = uVar13;\n      puVar11[3] = uVar4;\n      puVar5 = puVar11 + 4;\n    } while (puVar6 != puVar18 + 0x40);\n    puVar19 = puVar19 + 0x42;\n    uVar4 = puVar15[5];\n    puVar11[4] = *puVar6;\n    puVar11[5] = uVar4;\n    uVar24 = *puVar18;\n    uVar25 = puVar18[1];\n    puVar15 = (uint *)param_1[2];\n  }" { (do_statement "do {\n      puVar11 = puVar5;\n      puVar15 = puVar6;\n      puVar6 = puVar15 + 4;\n      uVar24 = puVar15[1];\n      uVar13 = puVar15[2];\n      uVar4 = puVar15[3];\n      *puVar11 = *puVar15;\n      puVar11[1] = uVar24;\n      puVar11[2] = uVar13;\n      puVar11[3] = uVar4;\n      puVar5 = puVar11 + 4;\n    } while (puVar6 != puVar18 + 0x40);" do (compound_statement "{\n      puVar11 = puVar5;\n      puVar15 = puVar6;\n      puVar6 = puVar15 + 4;\n      uVar24 = puVar15[1];\n      uVar13 = puVar15[2];\n      uVar4 = puVar15[3];\n      *puVar11 = *puVar15;\n      puVar11[1] = uVar24;\n      puVar11[2] = uVar13;\n      puVar11[3] = uVar4;\n      puVar5 = puVar11 + 4;\n    }" { (expression_statement "puVar11 = puVar5;" (assignment_expression "puVar11 = puVar5" identifier = identifier) ;) (expression_statement "puVar15 = puVar6;" (assignment_expression "puVar15 = puVar6" identifier = identifier) ;) (expression_statement "puVar6 = puVar15 + 4;" (assignment_expression "puVar6 = puVar15 + 4" identifier = (binary_expression "puVar15 + 4" identifier + number_literal)) ;) (expression_statement "uVar24 = puVar15[1];" (assignment_expression "uVar24 = puVar15[1]" identifier = (subscript_expression "puVar15[1]" identifier [ number_literal ])) ;) (expression_statement "uVar13 = puVar15[2];" (assignment_expression "uVar13 = puVar15[2]" identifier = (subscript_expression "puVar15[2]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = puVar15[3];" (assignment_expression "uVar4 = puVar15[3]" identifier = (subscript_expression "puVar15[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar11 = *puVar15;" (assignment_expression "*puVar11 = *puVar15" (pointer_expression "*puVar11" * identifier) = (pointer_expression "*puVar15" * identifier)) ;) (expression_statement "puVar11[1] = uVar24;" (assignment_expression "puVar11[1] = uVar24" (subscript_expression "puVar11[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar11[2] = uVar13;" (assignment_expression "puVar11[2] = uVar13" (subscript_expression "puVar11[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar11[3] = uVar4;" (assignment_expression "puVar11[3] = uVar4" (subscript_expression "puVar11[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5 = puVar11 + 4;" (assignment_expression "puVar5 = puVar11 + 4" identifier = (binary_expression "puVar11 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar6 != puVar18 + 0x40)" ( (binary_expression "puVar6 != puVar18 + 0x40" identifier != (binary_expression "puVar18 + 0x40" identifier + number_literal)) )) ;) (expression_statement "puVar19 = puVar19 + 0x42;" (assignment_expression "puVar19 = puVar19 + 0x42" identifier = (binary_expression "puVar19 + 0x42" identifier + number_literal)) ;) (expression_statement "uVar4 = puVar15[5];" (assignment_expression "uVar4 = puVar15[5]" identifier = (subscript_expression "puVar15[5]" identifier [ number_literal ])) ;) (expression_statement "puVar11[4] = *puVar6;" (assignment_expression "puVar11[4] = *puVar6" (subscript_expression "puVar11[4]" identifier [ number_literal ]) = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "puVar11[5] = uVar4;" (assignment_expression "puVar11[5] = uVar4" (subscript_expression "puVar11[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar24 = *puVar18;" (assignment_expression "uVar24 = *puVar18" identifier = (pointer_expression "*puVar18" * identifier)) ;) (expression_statement "uVar25 = puVar18[1];" (assignment_expression "uVar25 = puVar18[1]" identifier = (subscript_expression "puVar18[1]" identifier [ number_literal ])) ;) (expression_statement "puVar15 = (uint *)param_1[2];" (assignment_expression "puVar15 = (uint *)param_1[2]" identifier = (cast_expression "(uint *)param_1[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) })) (labeled_statement "LAB_0001e998:\n  puVar18 = puVar18 + 0x42;" statement_identifier : (expression_statement "puVar18 = puVar18 + 0x42;" (assignment_expression "puVar18 = puVar18 + 0x42" identifier = (binary_expression "puVar18 + 0x42" identifier + number_literal)) ;)) (if_statement "if (puVar18 < puVar15) {\n    do {\n      uVar4 = *puVar18;\n      uVar13 = puVar18[1];\n      if (uVar4 != uVar24) goto LAB_0001e92c;\nLAB_0001e9b8:\n      if (uVar13 != uVar25) goto LAB_0001e92c;\n      bVar2 = *(byte *)(puVar18 + 7);\n      bVar3 = *(byte *)(puVar19 + -0x3b);\n      if (((bVar2 & 0x40) == 0) && ((bVar3 & 0x40) != 0)) {\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar17 = 0x66;\n          uVar13 = puVar19[-0x3e];\n          uVar14 = 0x54;\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          uVar9 = 0x74;\nLAB_0001ecec:\n          uVar8 = 0x66;\n          if ((char)bVar3 < '\0') {\n            uVar8 = 0x46;\n          }\n          (*(code *)PTR_printf_0003a6f4)(puVar23,uVar4,uVar14,uVar17,uVar13,uVar9,uVar8);\n          (*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);\n          uVar12 = *(uint *)puVar22 & 0x1080;\n        }\n      }\n      else {\n        if (((bVar2 ^ bVar3) & 0x40) != 0) goto LAB_0001eb60;\n        if ((-1 < (char)bVar2) || ((char)bVar3 < '\0')) {\n          if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;\n          cVar1 = *(char *)puVar18[4];\n          if (cVar1 != '_') {\n            if (*(char *)puVar19[-0x3e] == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }\n          if ((((char *)puVar18[4])[1] == '_') || (*(char *)(puVar19[-0x3e] + 1) != '_'))\n          goto LAB_0001eb60;\n        }\nLAB_0001ecb8:\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar9 = 0x74;\n          uVar13 = puVar19[-0x3e];\n          uVar17 = 0x66;\n          uVar14 = 0x74;\n          if ((bVar3 & 0x40) == 0) {\n            uVar9 = 0x54;\n          }\n          if ((bVar2 & 0x40) == 0) {\n            uVar14 = 0x54;\n          }\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          goto LAB_0001ecec;\n        }\n      }\n      puVar15 = puVar18;\n      puVar6 = puVar19 + -0x42;\n      do {\n        puVar11 = puVar6;\n        puVar5 = puVar15;\n        puVar15 = puVar5 + 4;\n        uVar10 = puVar5[1];\n        uVar13 = puVar5[2];\n        uVar4 = puVar5[3];\n        *puVar11 = *puVar5;\n        puVar11[1] = uVar10;\n        puVar11[2] = uVar13;\n        puVar11[3] = uVar4;\n        puVar6 = puVar11 + 4;\n      } while (puVar15 != puVar18 + 0x40);\n      puVar18 = puVar18 + 0x42;\n      uVar4 = puVar5[5];\n      puVar11[4] = *puVar15;\n      puVar11[5] = uVar4;\n      puVar15 = (uint *)param_1[2];\n      if (puVar15 <= puVar18) break;\n    } while( true );\n  }" if (parenthesized_expression "(puVar18 < puVar15)" ( (binary_expression "puVar18 < puVar15" identifier < identifier) )) (compound_statement "{\n    do {\n      uVar4 = *puVar18;\n      uVar13 = puVar18[1];\n      if (uVar4 != uVar24) goto LAB_0001e92c;\nLAB_0001e9b8:\n      if (uVar13 != uVar25) goto LAB_0001e92c;\n      bVar2 = *(byte *)(puVar18 + 7);\n      bVar3 = *(byte *)(puVar19 + -0x3b);\n      if (((bVar2 & 0x40) == 0) && ((bVar3 & 0x40) != 0)) {\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar17 = 0x66;\n          uVar13 = puVar19[-0x3e];\n          uVar14 = 0x54;\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          uVar9 = 0x74;\nLAB_0001ecec:\n          uVar8 = 0x66;\n          if ((char)bVar3 < '\0') {\n            uVar8 = 0x46;\n          }\n          (*(code *)PTR_printf_0003a6f4)(puVar23,uVar4,uVar14,uVar17,uVar13,uVar9,uVar8);\n          (*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);\n          uVar12 = *(uint *)puVar22 & 0x1080;\n        }\n      }\n      else {\n        if (((bVar2 ^ bVar3) & 0x40) != 0) goto LAB_0001eb60;\n        if ((-1 < (char)bVar2) || ((char)bVar3 < '\0')) {\n          if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;\n          cVar1 = *(char *)puVar18[4];\n          if (cVar1 != '_') {\n            if (*(char *)puVar19[-0x3e] == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }\n          if ((((char *)puVar18[4])[1] == '_') || (*(char *)(puVar19[-0x3e] + 1) != '_'))\n          goto LAB_0001eb60;\n        }\nLAB_0001ecb8:\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar9 = 0x74;\n          uVar13 = puVar19[-0x3e];\n          uVar17 = 0x66;\n          uVar14 = 0x74;\n          if ((bVar3 & 0x40) == 0) {\n            uVar9 = 0x54;\n          }\n          if ((bVar2 & 0x40) == 0) {\n            uVar14 = 0x54;\n          }\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          goto LAB_0001ecec;\n        }\n      }\n      puVar15 = puVar18;\n      puVar6 = puVar19 + -0x42;\n      do {\n        puVar11 = puVar6;\n        puVar5 = puVar15;\n        puVar15 = puVar5 + 4;\n        uVar10 = puVar5[1];\n        uVar13 = puVar5[2];\n        uVar4 = puVar5[3];\n        *puVar11 = *puVar5;\n        puVar11[1] = uVar10;\n        puVar11[2] = uVar13;\n        puVar11[3] = uVar4;\n        puVar6 = puVar11 + 4;\n      } while (puVar15 != puVar18 + 0x40);\n      puVar18 = puVar18 + 0x42;\n      uVar4 = puVar5[5];\n      puVar11[4] = *puVar15;\n      puVar11[5] = uVar4;\n      puVar15 = (uint *)param_1[2];\n      if (puVar15 <= puVar18) break;\n    } while( true );\n  }" { (do_statement "do {\n      uVar4 = *puVar18;\n      uVar13 = puVar18[1];\n      if (uVar4 != uVar24) goto LAB_0001e92c;\nLAB_0001e9b8:\n      if (uVar13 != uVar25) goto LAB_0001e92c;\n      bVar2 = *(byte *)(puVar18 + 7);\n      bVar3 = *(byte *)(puVar19 + -0x3b);\n      if (((bVar2 & 0x40) == 0) && ((bVar3 & 0x40) != 0)) {\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar17 = 0x66;\n          uVar13 = puVar19[-0x3e];\n          uVar14 = 0x54;\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          uVar9 = 0x74;\nLAB_0001ecec:\n          uVar8 = 0x66;\n          if ((char)bVar3 < '\0') {\n            uVar8 = 0x46;\n          }\n          (*(code *)PTR_printf_0003a6f4)(puVar23,uVar4,uVar14,uVar17,uVar13,uVar9,uVar8);\n          (*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);\n          uVar12 = *(uint *)puVar22 & 0x1080;\n        }\n      }\n      else {\n        if (((bVar2 ^ bVar3) & 0x40) != 0) goto LAB_0001eb60;\n        if ((-1 < (char)bVar2) || ((char)bVar3 < '\0')) {\n          if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;\n          cVar1 = *(char *)puVar18[4];\n          if (cVar1 != '_') {\n            if (*(char *)puVar19[-0x3e] == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }\n          if ((((char *)puVar18[4])[1] == '_') || (*(char *)(puVar19[-0x3e] + 1) != '_'))\n          goto LAB_0001eb60;\n        }\nLAB_0001ecb8:\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar9 = 0x74;\n          uVar13 = puVar19[-0x3e];\n          uVar17 = 0x66;\n          uVar14 = 0x74;\n          if ((bVar3 & 0x40) == 0) {\n            uVar9 = 0x54;\n          }\n          if ((bVar2 & 0x40) == 0) {\n            uVar14 = 0x54;\n          }\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          goto LAB_0001ecec;\n        }\n      }\n      puVar15 = puVar18;\n      puVar6 = puVar19 + -0x42;\n      do {\n        puVar11 = puVar6;\n        puVar5 = puVar15;\n        puVar15 = puVar5 + 4;\n        uVar10 = puVar5[1];\n        uVar13 = puVar5[2];\n        uVar4 = puVar5[3];\n        *puVar11 = *puVar5;\n        puVar11[1] = uVar10;\n        puVar11[2] = uVar13;\n        puVar11[3] = uVar4;\n        puVar6 = puVar11 + 4;\n      } while (puVar15 != puVar18 + 0x40);\n      puVar18 = puVar18 + 0x42;\n      uVar4 = puVar5[5];\n      puVar11[4] = *puVar15;\n      puVar11[5] = uVar4;\n      puVar15 = (uint *)param_1[2];\n      if (puVar15 <= puVar18) break;\n    } while( true );" do (compound_statement "{\n      uVar4 = *puVar18;\n      uVar13 = puVar18[1];\n      if (uVar4 != uVar24) goto LAB_0001e92c;\nLAB_0001e9b8:\n      if (uVar13 != uVar25) goto LAB_0001e92c;\n      bVar2 = *(byte *)(puVar18 + 7);\n      bVar3 = *(byte *)(puVar19 + -0x3b);\n      if (((bVar2 & 0x40) == 0) && ((bVar3 & 0x40) != 0)) {\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar17 = 0x66;\n          uVar13 = puVar19[-0x3e];\n          uVar14 = 0x54;\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          uVar9 = 0x74;\nLAB_0001ecec:\n          uVar8 = 0x66;\n          if ((char)bVar3 < '\0') {\n            uVar8 = 0x46;\n          }\n          (*(code *)PTR_printf_0003a6f4)(puVar23,uVar4,uVar14,uVar17,uVar13,uVar9,uVar8);\n          (*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);\n          uVar12 = *(uint *)puVar22 & 0x1080;\n        }\n      }\n      else {\n        if (((bVar2 ^ bVar3) & 0x40) != 0) goto LAB_0001eb60;\n        if ((-1 < (char)bVar2) || ((char)bVar3 < '\0')) {\n          if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;\n          cVar1 = *(char *)puVar18[4];\n          if (cVar1 != '_') {\n            if (*(char *)puVar19[-0x3e] == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }\n          if ((((char *)puVar18[4])[1] == '_') || (*(char *)(puVar19[-0x3e] + 1) != '_'))\n          goto LAB_0001eb60;\n        }\nLAB_0001ecb8:\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar9 = 0x74;\n          uVar13 = puVar19[-0x3e];\n          uVar17 = 0x66;\n          uVar14 = 0x74;\n          if ((bVar3 & 0x40) == 0) {\n            uVar9 = 0x54;\n          }\n          if ((bVar2 & 0x40) == 0) {\n            uVar14 = 0x54;\n          }\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          goto LAB_0001ecec;\n        }\n      }\n      puVar15 = puVar18;\n      puVar6 = puVar19 + -0x42;\n      do {\n        puVar11 = puVar6;\n        puVar5 = puVar15;\n        puVar15 = puVar5 + 4;\n        uVar10 = puVar5[1];\n        uVar13 = puVar5[2];\n        uVar4 = puVar5[3];\n        *puVar11 = *puVar5;\n        puVar11[1] = uVar10;\n        puVar11[2] = uVar13;\n        puVar11[3] = uVar4;\n        puVar6 = puVar11 + 4;\n      } while (puVar15 != puVar18 + 0x40);\n      puVar18 = puVar18 + 0x42;\n      uVar4 = puVar5[5];\n      puVar11[4] = *puVar15;\n      puVar11[5] = uVar4;\n      puVar15 = (uint *)param_1[2];\n      if (puVar15 <= puVar18) break;\n    }" { (expression_statement "uVar4 = *puVar18;" (assignment_expression "uVar4 = *puVar18" identifier = (pointer_expression "*puVar18" * identifier)) ;) (expression_statement "uVar13 = puVar18[1];" (assignment_expression "uVar13 = puVar18[1]" identifier = (subscript_expression "puVar18[1]" identifier [ number_literal ])) ;) (if_statement "if (uVar4 != uVar24) goto LAB_0001e92c;" if (parenthesized_expression "(uVar4 != uVar24)" ( (binary_expression "uVar4 != uVar24" identifier != identifier) )) (goto_statement "goto LAB_0001e92c;" goto statement_identifier ;)) (labeled_statement "LAB_0001e9b8:\n      if (uVar13 != uVar25) goto LAB_0001e92c;" statement_identifier : (if_statement "if (uVar13 != uVar25) goto LAB_0001e92c;" if (parenthesized_expression "(uVar13 != uVar25)" ( (binary_expression "uVar13 != uVar25" identifier != identifier) )) (goto_statement "goto LAB_0001e92c;" goto statement_identifier ;))) (expression_statement "bVar2 = *(byte *)(puVar18 + 7);" (assignment_expression "bVar2 = *(byte *)(puVar18 + 7)" identifier = (pointer_expression "*(byte *)(puVar18 + 7)" * (cast_expression "(byte *)(puVar18 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 7)" ( (binary_expression "puVar18 + 7" identifier + number_literal) ))))) ;) (expression_statement "bVar3 = *(byte *)(puVar19 + -0x3b);" (assignment_expression "bVar3 = *(byte *)(puVar19 + -0x3b)" identifier = (pointer_expression "*(byte *)(puVar19 + -0x3b)" * (cast_expression "(byte *)(puVar19 + -0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x3b)" ( (binary_expression "puVar19 + -0x3b" identifier + number_literal) ))))) ;) (if_statement "if (((bVar2 & 0x40) == 0) && ((bVar3 & 0x40) != 0)) {\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar17 = 0x66;\n          uVar13 = puVar19[-0x3e];\n          uVar14 = 0x54;\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          uVar9 = 0x74;\nLAB_0001ecec:\n          uVar8 = 0x66;\n          if ((char)bVar3 < '\0') {\n            uVar8 = 0x46;\n          }\n          (*(code *)PTR_printf_0003a6f4)(puVar23,uVar4,uVar14,uVar17,uVar13,uVar9,uVar8);\n          (*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);\n          uVar12 = *(uint *)puVar22 & 0x1080;\n        }\n      }\n      else {\n        if (((bVar2 ^ bVar3) & 0x40) != 0) goto LAB_0001eb60;\n        if ((-1 < (char)bVar2) || ((char)bVar3 < '\0')) {\n          if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;\n          cVar1 = *(char *)puVar18[4];\n          if (cVar1 != '_') {\n            if (*(char *)puVar19[-0x3e] == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }\n          if ((((char *)puVar18[4])[1] == '_') || (*(char *)(puVar19[-0x3e] + 1) != '_'))\n          goto LAB_0001eb60;\n        }\nLAB_0001ecb8:\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar9 = 0x74;\n          uVar13 = puVar19[-0x3e];\n          uVar17 = 0x66;\n          uVar14 = 0x74;\n          if ((bVar3 & 0x40) == 0) {\n            uVar9 = 0x54;\n          }\n          if ((bVar2 & 0x40) == 0) {\n            uVar14 = 0x54;\n          }\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          goto LAB_0001ecec;\n        }\n      }" if (parenthesized_expression "(((bVar2 & 0x40) == 0) && ((bVar3 & 0x40) != 0))" ( (binary_expression "((bVar2 & 0x40) == 0) && ((bVar3 & 0x40) != 0)" (parenthesized_expression "((bVar2 & 0x40) == 0)" ( (binary_expression "(bVar2 & 0x40) == 0" (parenthesized_expression "(bVar2 & 0x40)" ( (binary_expression "bVar2 & 0x40" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "((bVar3 & 0x40) != 0)" ( (binary_expression "(bVar3 & 0x40) != 0" (parenthesized_expression "(bVar3 & 0x40)" ( (binary_expression "bVar3 & 0x40" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar17 = 0x66;\n          uVar13 = puVar19[-0x3e];\n          uVar14 = 0x54;\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          uVar9 = 0x74;\nLAB_0001ecec:\n          uVar8 = 0x66;\n          if ((char)bVar3 < '\0') {\n            uVar8 = 0x46;\n          }\n          (*(code *)PTR_printf_0003a6f4)(puVar23,uVar4,uVar14,uVar17,uVar13,uVar9,uVar8);\n          (*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);\n          uVar12 = *(uint *)puVar22 & 0x1080;\n        }\n      }" { (if_statement "if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar17 = 0x66;\n          uVar13 = puVar19[-0x3e];\n          uVar14 = 0x54;\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          uVar9 = 0x74;\nLAB_0001ecec:\n          uVar8 = 0x66;\n          if ((char)bVar3 < '\0') {\n            uVar8 = 0x46;\n          }\n          (*(code *)PTR_printf_0003a6f4)(puVar23,uVar4,uVar14,uVar17,uVar13,uVar9,uVar8);\n          (*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);\n          uVar12 = *(uint *)puVar22 & 0x1080;\n        }" if (parenthesized_expression "(uVar12 != 0)" ( (binary_expression "uVar12 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar4 = puVar18[4];\n          uVar17 = 0x66;\n          uVar13 = puVar19[-0x3e];\n          uVar14 = 0x54;\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          uVar9 = 0x74;\nLAB_0001ecec:\n          uVar8 = 0x66;\n          if ((char)bVar3 < '\0') {\n            uVar8 = 0x46;\n          }\n          (*(code *)PTR_printf_0003a6f4)(puVar23,uVar4,uVar14,uVar17,uVar13,uVar9,uVar8);\n          (*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);\n          uVar12 = *(uint *)puVar22 & 0x1080;\n        }" { (expression_statement "uVar4 = puVar18[4];" (assignment_expression "uVar4 = puVar18[4]" identifier = (subscript_expression "puVar18[4]" identifier [ number_literal ])) ;) (expression_statement "uVar17 = 0x66;" (assignment_expression "uVar17 = 0x66" identifier = number_literal) ;) (expression_statement "uVar13 = puVar19[-0x3e];" (assignment_expression "uVar13 = puVar19[-0x3e]" identifier = (subscript_expression "puVar19[-0x3e]" identifier [ number_literal ])) ;) (expression_statement "uVar14 = 0x54;" (assignment_expression "uVar14 = 0x54" identifier = number_literal) ;) (if_statement "if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }" if (parenthesized_expression "((char)bVar2 < '\0')" ( (binary_expression "(char)bVar2 < '\0'" (cast_expression "(char)bVar2" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            uVar17 = 0x46;\n          }" { (expression_statement "uVar17 = 0x46;" (assignment_expression "uVar17 = 0x46" identifier = number_literal) ;) })) (expression_statement "uVar9 = 0x74;" (assignment_expression "uVar9 = 0x74" identifier = number_literal) ;) (labeled_statement "LAB_0001ecec:\n          uVar8 = 0x66;" statement_identifier : (expression_statement "uVar8 = 0x66;" (assignment_expression "uVar8 = 0x66" identifier = number_literal) ;)) (if_statement "if ((char)bVar3 < '\0') {\n            uVar8 = 0x46;\n          }" if (parenthesized_expression "((char)bVar3 < '\0')" ( (binary_expression "(char)bVar3 < '\0'" (cast_expression "(char)bVar3" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            uVar8 = 0x46;\n          }" { (expression_statement "uVar8 = 0x46;" (assignment_expression "uVar8 = 0x46" identifier = number_literal) ;) })) (expression_statement "(*(code *)PTR_printf_0003a6f4)(puVar23,uVar4,uVar14,uVar17,uVar13,uVar9,uVar8);" (call_expression "(*(code *)PTR_printf_0003a6f4)(puVar23,uVar4,uVar14,uVar17,uVar13,uVar9,uVar8)" (parenthesized_expression "(*(code *)PTR_printf_0003a6f4)" ( (pointer_expression "*(code *)PTR_printf_0003a6f4" * (cast_expression "(code *)PTR_printf_0003a6f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar23,uVar4,uVar14,uVar17,uVar13,uVar9,uVar8)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);" (call_expression "(*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1])" (parenthesized_expression "(*(code *)PTR_printf_0003a6f4)" ( (pointer_expression "*(code *)PTR_printf_0003a6f4" * (cast_expression "(code *)PTR_printf_0003a6f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar21,puVar18[1])" ( identifier , (subscript_expression "puVar18[1]" identifier [ number_literal ]) ))) ;) (expression_statement "uVar12 = *(uint *)puVar22 & 0x1080;" (assignment_expression "uVar12 = *(uint *)puVar22 & 0x1080" identifier = (binary_expression "*(uint *)puVar22 & 0x1080" (pointer_expression "*(uint *)puVar22" * (cast_expression "(uint *)puVar22" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal)) ;) })) }) (else_clause "else {\n        if (((bVar2 ^ bVar3) & 0x40) != 0) goto LAB_0001eb60;\n        if ((-1 < (char)bVar2) || ((char)bVar3 < '\0')) {\n          if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;\n          cVar1 = *(char *)puVar18[4];\n          if (cVar1 != '_') {\n            if (*(char *)puVar19[-0x3e] == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }\n          if ((((char *)puVar18[4])[1] == '_') || (*(char *)(puVar19[-0x3e] + 1) != '_'))\n          goto LAB_0001eb60;\n        }\nLAB_0001ecb8:\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar9 = 0x74;\n          uVar13 = puVar19[-0x3e];\n          uVar17 = 0x66;\n          uVar14 = 0x74;\n          if ((bVar3 & 0x40) == 0) {\n            uVar9 = 0x54;\n          }\n          if ((bVar2 & 0x40) == 0) {\n            uVar14 = 0x54;\n          }\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          goto LAB_0001ecec;\n        }\n      }" else (compound_statement "{\n        if (((bVar2 ^ bVar3) & 0x40) != 0) goto LAB_0001eb60;\n        if ((-1 < (char)bVar2) || ((char)bVar3 < '\0')) {\n          if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;\n          cVar1 = *(char *)puVar18[4];\n          if (cVar1 != '_') {\n            if (*(char *)puVar19[-0x3e] == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }\n          if ((((char *)puVar18[4])[1] == '_') || (*(char *)(puVar19[-0x3e] + 1) != '_'))\n          goto LAB_0001eb60;\n        }\nLAB_0001ecb8:\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar9 = 0x74;\n          uVar13 = puVar19[-0x3e];\n          uVar17 = 0x66;\n          uVar14 = 0x74;\n          if ((bVar3 & 0x40) == 0) {\n            uVar9 = 0x54;\n          }\n          if ((bVar2 & 0x40) == 0) {\n            uVar14 = 0x54;\n          }\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          goto LAB_0001ecec;\n        }\n      }" { (if_statement "if (((bVar2 ^ bVar3) & 0x40) != 0) goto LAB_0001eb60;" if (parenthesized_expression "(((bVar2 ^ bVar3) & 0x40) != 0)" ( (binary_expression "((bVar2 ^ bVar3) & 0x40) != 0" (parenthesized_expression "((bVar2 ^ bVar3) & 0x40)" ( (binary_expression "(bVar2 ^ bVar3) & 0x40" (parenthesized_expression "(bVar2 ^ bVar3)" ( (binary_expression "bVar2 ^ bVar3" identifier ^ identifier) )) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0001eb60;" goto statement_identifier ;)) (if_statement "if ((-1 < (char)bVar2) || ((char)bVar3 < '\0')) {\n          if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;\n          cVar1 = *(char *)puVar18[4];\n          if (cVar1 != '_') {\n            if (*(char *)puVar19[-0x3e] == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }\n          if ((((char *)puVar18[4])[1] == '_') || (*(char *)(puVar19[-0x3e] + 1) != '_'))\n          goto LAB_0001eb60;\n        }" if (parenthesized_expression "((-1 < (char)bVar2) || ((char)bVar3 < '\0'))" ( (binary_expression "(-1 < (char)bVar2) || ((char)bVar3 < '\0')" (parenthesized_expression "(-1 < (char)bVar2)" ( (binary_expression "-1 < (char)bVar2" number_literal < (cast_expression "(char)bVar2" ( (type_descriptor "char" primitive_type) ) identifier)) )) || (parenthesized_expression "((char)bVar3 < '\0')" ( (binary_expression "(char)bVar3 < '\0'" (cast_expression "(char)bVar3" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;\n          cVar1 = *(char *)puVar18[4];\n          if (cVar1 != '_') {\n            if (*(char *)puVar19[-0x3e] == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }\n          if ((((char *)puVar18[4])[1] == '_') || (*(char *)(puVar19[-0x3e] + 1) != '_'))\n          goto LAB_0001eb60;\n        }" { (if_statement "if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;" if (parenthesized_expression "((char)(bVar2 ^ bVar3) < '\0')" ( (binary_expression "(char)(bVar2 ^ bVar3) < '\0'" (cast_expression "(char)(bVar2 ^ bVar3)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(bVar2 ^ bVar3)" ( (binary_expression "bVar2 ^ bVar3" identifier ^ identifier) ))) < (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0001eb60;" goto statement_identifier ;)) (expression_statement "cVar1 = *(char *)puVar18[4];" (assignment_expression "cVar1 = *(char *)puVar18[4]" identifier = (pointer_expression "*(char *)puVar18[4]" * (cast_expression "(char *)puVar18[4]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar18[4]" identifier [ number_literal ])))) ;) (if_statement "if (cVar1 != '_') {\n            if (*(char *)puVar19[-0x3e] == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }" if (parenthesized_expression "(cVar1 != '_')" ( (binary_expression "cVar1 != '_'" identifier != (char_literal "'_'" ' character ')) )) (compound_statement "{\n            if (*(char *)puVar19[-0x3e] == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }" { (if_statement "if (*(char *)puVar19[-0x3e] == '_') goto LAB_0001ecb8;" if (parenthesized_expression "(*(char *)puVar19[-0x3e] == '_')" ( (binary_expression "*(char *)puVar19[-0x3e] == '_'" (pointer_expression "*(char *)puVar19[-0x3e]" * (cast_expression "(char *)puVar19[-0x3e]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar19[-0x3e]" identifier [ number_literal ]))) == (char_literal "'_'" ' character ')) )) (goto_statement "goto LAB_0001ecb8;" goto statement_identifier ;)) (if_statement "if (cVar1 == '\0') goto LAB_0001eb60;" if (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0001eb60;" goto statement_identifier ;)) })) (if_statement "if ((((char *)puVar18[4])[1] == '_') || (*(char *)(puVar19[-0x3e] + 1) != '_'))\n          goto LAB_0001eb60;" if (parenthesized_expression "((((char *)puVar18[4])[1] == '_') || (*(char *)(puVar19[-0x3e] + 1) != '_'))" ( (binary_expression "(((char *)puVar18[4])[1] == '_') || (*(char *)(puVar19[-0x3e] + 1) != '_')" (parenthesized_expression "(((char *)puVar18[4])[1] == '_')" ( (binary_expression "((char *)puVar18[4])[1] == '_'" (subscript_expression "((char *)puVar18[4])[1]" (parenthesized_expression "((char *)puVar18[4])" ( (cast_expression "(char *)puVar18[4]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar18[4]" identifier [ number_literal ])) )) [ number_literal ]) == (char_literal "'_'" ' character ')) )) || (parenthesized_expression "(*(char *)(puVar19[-0x3e] + 1) != '_')" ( (binary_expression "*(char *)(puVar19[-0x3e] + 1) != '_'" (pointer_expression "*(char *)(puVar19[-0x3e] + 1)" * (cast_expression "(char *)(puVar19[-0x3e] + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19[-0x3e] + 1)" ( (binary_expression "puVar19[-0x3e] + 1" (subscript_expression "puVar19[-0x3e]" identifier [ number_literal ]) + number_literal) )))) != (char_literal "'_'" ' character ')) ))) )) (goto_statement "goto LAB_0001eb60;" goto statement_identifier ;)) })) (labeled_statement "LAB_0001ecb8:\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar9 = 0x74;\n          uVar13 = puVar19[-0x3e];\n          uVar17 = 0x66;\n          uVar14 = 0x74;\n          if ((bVar3 & 0x40) == 0) {\n            uVar9 = 0x54;\n          }\n          if ((bVar2 & 0x40) == 0) {\n            uVar14 = 0x54;\n          }\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          goto LAB_0001ecec;\n        }" statement_identifier : (if_statement "if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar9 = 0x74;\n          uVar13 = puVar19[-0x3e];\n          uVar17 = 0x66;\n          uVar14 = 0x74;\n          if ((bVar3 & 0x40) == 0) {\n            uVar9 = 0x54;\n          }\n          if ((bVar2 & 0x40) == 0) {\n            uVar14 = 0x54;\n          }\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          goto LAB_0001ecec;\n        }" if (parenthesized_expression "(uVar12 != 0)" ( (binary_expression "uVar12 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar4 = puVar18[4];\n          uVar9 = 0x74;\n          uVar13 = puVar19[-0x3e];\n          uVar17 = 0x66;\n          uVar14 = 0x74;\n          if ((bVar3 & 0x40) == 0) {\n            uVar9 = 0x54;\n          }\n          if ((bVar2 & 0x40) == 0) {\n            uVar14 = 0x54;\n          }\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          goto LAB_0001ecec;\n        }" { (expression_statement "uVar4 = puVar18[4];" (assignment_expression "uVar4 = puVar18[4]" identifier = (subscript_expression "puVar18[4]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = 0x74;" (assignment_expression "uVar9 = 0x74" identifier = number_literal) ;) (expression_statement "uVar13 = puVar19[-0x3e];" (assignment_expression "uVar13 = puVar19[-0x3e]" identifier = (subscript_expression "puVar19[-0x3e]" identifier [ number_literal ])) ;) (expression_statement "uVar17 = 0x66;" (assignment_expression "uVar17 = 0x66" identifier = number_literal) ;) (expression_statement "uVar14 = 0x74;" (assignment_expression "uVar14 = 0x74" identifier = number_literal) ;) (if_statement "if ((bVar3 & 0x40) == 0) {\n            uVar9 = 0x54;\n          }" if (parenthesized_expression "((bVar3 & 0x40) == 0)" ( (binary_expression "(bVar3 & 0x40) == 0" (parenthesized_expression "(bVar3 & 0x40)" ( (binary_expression "bVar3 & 0x40" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            uVar9 = 0x54;\n          }" { (expression_statement "uVar9 = 0x54;" (assignment_expression "uVar9 = 0x54" identifier = number_literal) ;) })) (if_statement "if ((bVar2 & 0x40) == 0) {\n            uVar14 = 0x54;\n          }" if (parenthesized_expression "((bVar2 & 0x40) == 0)" ( (binary_expression "(bVar2 & 0x40) == 0" (parenthesized_expression "(bVar2 & 0x40)" ( (binary_expression "bVar2 & 0x40" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            uVar14 = 0x54;\n          }" { (expression_statement "uVar14 = 0x54;" (assignment_expression "uVar14 = 0x54" identifier = number_literal) ;) })) (if_statement "if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }" if (parenthesized_expression "((char)bVar2 < '\0')" ( (binary_expression "(char)bVar2 < '\0'" (cast_expression "(char)bVar2" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            uVar17 = 0x46;\n          }" { (expression_statement "uVar17 = 0x46;" (assignment_expression "uVar17 = 0x46" identifier = number_literal) ;) })) (goto_statement "goto LAB_0001ecec;" goto statement_identifier ;) }))) }))) (expression_statement "puVar15 = puVar18;" (assignment_expression "puVar15 = puVar18" identifier = identifier) ;) (expression_statement "puVar6 = puVar19 + -0x42;" (assignment_expression "puVar6 = puVar19 + -0x42" identifier = (binary_expression "puVar19 + -0x42" identifier + number_literal)) ;) (do_statement "do {\n        puVar11 = puVar6;\n        puVar5 = puVar15;\n        puVar15 = puVar5 + 4;\n        uVar10 = puVar5[1];\n        uVar13 = puVar5[2];\n        uVar4 = puVar5[3];\n        *puVar11 = *puVar5;\n        puVar11[1] = uVar10;\n        puVar11[2] = uVar13;\n        puVar11[3] = uVar4;\n        puVar6 = puVar11 + 4;\n      } while (puVar15 != puVar18 + 0x40);" do (compound_statement "{\n        puVar11 = puVar6;\n        puVar5 = puVar15;\n        puVar15 = puVar5 + 4;\n        uVar10 = puVar5[1];\n        uVar13 = puVar5[2];\n        uVar4 = puVar5[3];\n        *puVar11 = *puVar5;\n        puVar11[1] = uVar10;\n        puVar11[2] = uVar13;\n        puVar11[3] = uVar4;\n        puVar6 = puVar11 + 4;\n      }" { (expression_statement "puVar11 = puVar6;" (assignment_expression "puVar11 = puVar6" identifier = identifier) ;) (expression_statement "puVar5 = puVar15;" (assignment_expression "puVar5 = puVar15" identifier = identifier) ;) (expression_statement "puVar15 = puVar5 + 4;" (assignment_expression "puVar15 = puVar5 + 4" identifier = (binary_expression "puVar5 + 4" identifier + number_literal)) ;) (expression_statement "uVar10 = puVar5[1];" (assignment_expression "uVar10 = puVar5[1]" identifier = (subscript_expression "puVar5[1]" identifier [ number_literal ])) ;) (expression_statement "uVar13 = puVar5[2];" (assignment_expression "uVar13 = puVar5[2]" identifier = (subscript_expression "puVar5[2]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = puVar5[3];" (assignment_expression "uVar4 = puVar5[3]" identifier = (subscript_expression "puVar5[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar11 = *puVar5;" (assignment_expression "*puVar11 = *puVar5" (pointer_expression "*puVar11" * identifier) = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "puVar11[1] = uVar10;" (assignment_expression "puVar11[1] = uVar10" (subscript_expression "puVar11[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar11[2] = uVar13;" (assignment_expression "puVar11[2] = uVar13" (subscript_expression "puVar11[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar11[3] = uVar4;" (assignment_expression "puVar11[3] = uVar4" (subscript_expression "puVar11[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6 = puVar11 + 4;" (assignment_expression "puVar6 = puVar11 + 4" identifier = (binary_expression "puVar11 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar15 != puVar18 + 0x40)" ( (binary_expression "puVar15 != puVar18 + 0x40" identifier != (binary_expression "puVar18 + 0x40" identifier + number_literal)) )) ;) (expression_statement "puVar18 = puVar18 + 0x42;" (assignment_expression "puVar18 = puVar18 + 0x42" identifier = (binary_expression "puVar18 + 0x42" identifier + number_literal)) ;) (expression_statement "uVar4 = puVar5[5];" (assignment_expression "uVar4 = puVar5[5]" identifier = (subscript_expression "puVar5[5]" identifier [ number_literal ])) ;) (expression_statement "puVar11[4] = *puVar15;" (assignment_expression "puVar11[4] = *puVar15" (subscript_expression "puVar11[4]" identifier [ number_literal ]) = (pointer_expression "*puVar15" * identifier)) ;) (expression_statement "puVar11[5] = uVar4;" (assignment_expression "puVar11[5] = uVar4" (subscript_expression "puVar11[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15 = (uint *)param_1[2];" (assignment_expression "puVar15 = (uint *)param_1[2]" identifier = (cast_expression "(uint *)param_1[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (if_statement "if (puVar15 <= puVar18) break;" if (parenthesized_expression "(puVar15 <= puVar18)" ( (binary_expression "puVar15 <= puVar18" identifier <= identifier) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "uVar4 = ((int)((int)puVar19 - param_1[1]) >> 3) * 0x3e0f83e1;" (assignment_expression "uVar4 = ((int)((int)puVar19 - param_1[1]) >> 3) * 0x3e0f83e1" identifier = (binary_expression "((int)((int)puVar19 - param_1[1]) >> 3) * 0x3e0f83e1" (parenthesized_expression "((int)((int)puVar19 - param_1[1]) >> 3)" ( (binary_expression "(int)((int)puVar19 - param_1[1]) >> 3" (cast_expression "(int)((int)puVar19 - param_1[1])" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)puVar19 - param_1[1])" ( (binary_expression "(int)puVar19 - param_1[1]" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) - (subscript_expression "param_1[1]" identifier [ number_literal ])) ))) >> number_literal) )) * number_literal)) ;) (expression_statement "puVar18 = puVar19;" (assignment_expression "puVar18 = puVar19" identifier = identifier) ;) (goto_statement "goto LAB_0001ea58;" goto statement_identifier ;) (labeled_statement "LAB_0001eb60:\n  uVar9 = 0x54;" statement_identifier : (expression_statement "uVar9 = 0x54;" (assignment_expression "uVar9 = 0x54" identifier = number_literal) ;)) (if_statement "if (uVar12 != 0) {\n    uVar14 = 0x54;\n    if ((bVar2 & 0x40) != 0) {\n      uVar14 = 0x74;\n    }\n    uVar17 = 0x66;\n    if ((bVar3 & 0x40) != 0) {\n      uVar9 = 0x74;\n    }\n    uVar8 = 0x66;\n    if ((char)bVar2 < '\0') {\n      uVar8 = 0x46;\n    }\n    if ((char)bVar3 < '\0') {\n      uVar17 = 0x46;\n    }\n    (*(code *)PTR_printf_0003a6f4)(puVar23,puVar19[-0x3e],uVar9,uVar17,puVar18[4],uVar14,uVar8);\n    (*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);\n    puVar15 = (uint *)param_1[2];\n    uVar12 = *(uint *)puVar22 & 0x1080;\n  }" if (parenthesized_expression "(uVar12 != 0)" ( (binary_expression "uVar12 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar14 = 0x54;\n    if ((bVar2 & 0x40) != 0) {\n      uVar14 = 0x74;\n    }\n    uVar17 = 0x66;\n    if ((bVar3 & 0x40) != 0) {\n      uVar9 = 0x74;\n    }\n    uVar8 = 0x66;\n    if ((char)bVar2 < '\0') {\n      uVar8 = 0x46;\n    }\n    if ((char)bVar3 < '\0') {\n      uVar17 = 0x46;\n    }\n    (*(code *)PTR_printf_0003a6f4)(puVar23,puVar19[-0x3e],uVar9,uVar17,puVar18[4],uVar14,uVar8);\n    (*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);\n    puVar15 = (uint *)param_1[2];\n    uVar12 = *(uint *)puVar22 & 0x1080;\n  }" { (expression_statement "uVar14 = 0x54;" (assignment_expression "uVar14 = 0x54" identifier = number_literal) ;) (if_statement "if ((bVar2 & 0x40) != 0) {\n      uVar14 = 0x74;\n    }" if (parenthesized_expression "((bVar2 & 0x40) != 0)" ( (binary_expression "(bVar2 & 0x40) != 0" (parenthesized_expression "(bVar2 & 0x40)" ( (binary_expression "bVar2 & 0x40" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar14 = 0x74;\n    }" { (expression_statement "uVar14 = 0x74;" (assignment_expression "uVar14 = 0x74" identifier = number_literal) ;) })) (expression_statement "uVar17 = 0x66;" (assignment_expression "uVar17 = 0x66" identifier = number_literal) ;) (if_statement "if ((bVar3 & 0x40) != 0) {\n      uVar9 = 0x74;\n    }" if (parenthesized_expression "((bVar3 & 0x40) != 0)" ( (binary_expression "(bVar3 & 0x40) != 0" (parenthesized_expression "(bVar3 & 0x40)" ( (binary_expression "bVar3 & 0x40" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar9 = 0x74;\n    }" { (expression_statement "uVar9 = 0x74;" (assignment_expression "uVar9 = 0x74" identifier = number_literal) ;) })) (expression_statement "uVar8 = 0x66;" (assignment_expression "uVar8 = 0x66" identifier = number_literal) ;) (if_statement "if ((char)bVar2 < '\0') {\n      uVar8 = 0x46;\n    }" if (parenthesized_expression "((char)bVar2 < '\0')" ( (binary_expression "(char)bVar2 < '\0'" (cast_expression "(char)bVar2" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar8 = 0x46;\n    }" { (expression_statement "uVar8 = 0x46;" (assignment_expression "uVar8 = 0x46" identifier = number_literal) ;) })) (if_statement "if ((char)bVar3 < '\0') {\n      uVar17 = 0x46;\n    }" if (parenthesized_expression "((char)bVar3 < '\0')" ( (binary_expression "(char)bVar3 < '\0'" (cast_expression "(char)bVar3" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar17 = 0x46;\n    }" { (expression_statement "uVar17 = 0x46;" (assignment_expression "uVar17 = 0x46" identifier = number_literal) ;) })) (expression_statement "(*(code *)PTR_printf_0003a6f4)(puVar23,puVar19[-0x3e],uVar9,uVar17,puVar18[4],uVar14,uVar8);" (call_expression "(*(code *)PTR_printf_0003a6f4)(puVar23,puVar19[-0x3e],uVar9,uVar17,puVar18[4],uVar14,uVar8)" (parenthesized_expression "(*(code *)PTR_printf_0003a6f4)" ( (pointer_expression "*(code *)PTR_printf_0003a6f4" * (cast_expression "(code *)PTR_printf_0003a6f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar23,puVar19[-0x3e],uVar9,uVar17,puVar18[4],uVar14,uVar8)" ( identifier , (subscript_expression "puVar19[-0x3e]" identifier [ number_literal ]) , identifier , identifier , (subscript_expression "puVar18[4]" identifier [ number_literal ]) , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);" (call_expression "(*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1])" (parenthesized_expression "(*(code *)PTR_printf_0003a6f4)" ( (pointer_expression "*(code *)PTR_printf_0003a6f4" * (cast_expression "(code *)PTR_printf_0003a6f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar21,puVar18[1])" ( identifier , (subscript_expression "puVar18[1]" identifier [ number_literal ]) ))) ;) (expression_statement "puVar15 = (uint *)param_1[2];" (assignment_expression "puVar15 = (uint *)param_1[2]" identifier = (cast_expression "(uint *)param_1[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (expression_statement "uVar12 = *(uint *)puVar22 & 0x1080;" (assignment_expression "uVar12 = *(uint *)puVar22 & 0x1080" identifier = (binary_expression "*(uint *)puVar22 & 0x1080" (pointer_expression "*(uint *)puVar22" * (cast_expression "(uint *)puVar22" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal)) ;) })) (goto_statement "goto LAB_0001e998;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , (pointer_expression * IDENT) , LIT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) & LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) && (binary_expression (subscript_expression IDENT [ LIT ]) == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT - LIT) < IDENT) ))) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) )))) + IDENT) + IDENT) + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT - IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT) ))) >> LIT) )) * LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) <= IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (return_statement return ;) })) }))) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) < IDENT) )) && (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) && (binary_expression (subscript_expression IDENT [ LIT ]) == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT - LIT) < IDENT) ))) + (parenthesized_expression ( (binary_expression IDENT - LIT) )))) ;) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression (subscript_expression IDENT [ LIT ]) == LIT)) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT <= IDENT) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != IDENT) || (parenthesized_expression ( (binary_expression IDENT <= (subscript_expression IDENT [ LIT ])) ))) )) ))) )) ))) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) & LIT)) ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT ^ IDENT) )) & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (char_literal ' escape_sequence ')) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT ^ IDENT) ))) < (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' character ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) == (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) )) [ LIT ]) == (char_literal ' character ')) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) != (char_literal ' character ')) ))) )) (goto_statement goto statement_identifier ;)) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (goto_statement goto statement_identifier ;) }))) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (break_statement break ;)) }) while (parenthesized_expression ( BOOL )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (subscript_expression IDENT [ LIT ])) ))) >> LIT) )) * LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) , IDENT , IDENT , (subscript_expression IDENT [ LIT ]) , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) & LIT)) ;) })) (goto_statement goto statement_identifier ;) })))
(function_definition "void symtab_finalize(uint *param_1)\n\n{\n  char cVar1;\n  byte bVar2;\n  byte bVar3;\n  uint uVar4;\n  uint *puVar5;\n  uint *puVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  uint uVar10;\n  uint *puVar11;\n  uint uVar12;\n  uint uVar13;\n  undefined4 uVar14;\n  uint *puVar15;\n  int iVar16;\n  undefined4 uVar17;\n  uint *puVar18;\n  uint *puVar19;\n  int iVar20;\n  undefined *puVar21;\n  undefined *puVar22;\n  undefined *puVar23;\n  uint uVar24;\n  uint uVar25;\n  \n  if (*param_1 == 0) {\n    return;\n  }\n  (*(code *)PTR_qsort_0003a5f0)(param_1[1],*param_1,0x108,PTR_LAB_0003a3e8 + -0x1890);\n  puVar22 = PTR_debug_level_0003a418;\n  puVar18 = (uint *)param_1[1];\n  puVar15 = (uint *)param_1[2];\n  uVar13 = puVar18[1];\n  uVar4 = *puVar18;\n  uVar25 = uVar13 + 1;\n  uVar24 = (uVar25 < uVar13) + uVar4;\n  if (puVar15 <= puVar18) {\n    uVar4 = 0;\n    uVar12 = *(uint *)PTR_debug_level_0003a418 & 0x1080;\nLAB_0001ea58:\n    uVar13 = *param_1;\n    if ((uVar13 != 0) && (puVar18[-0x40] == 0 && puVar18[-0x3f] == 0)) {\n      iVar20 = *(int *)PTR_core_text_sect_0003a534;\n      uVar25 = *(uint *)(iVar20 + 0x24);\n      iVar16 = *(int *)(iVar20 + 0x20);\n      iVar7 = *(int *)(iVar20 + 0x30);\n      uVar24 = uVar25 + *(int *)(iVar20 + 0x34);\n      puVar18[-0x3f] = uVar24 - 1;\n      puVar18[-0x40] = (uint)(uVar24 - 1 < uVar24) + (uint)(uVar24 < uVar25) + iVar16 + iVar7 + -1;\n    }\n    if (uVar12 == 0) {\n      param_1[2] = (uint)puVar18;\n      *param_1 = uVar4;\n    }\n    else {\n      (*(code *)PTR_printf_0003a6f4)(PTR_LAB_0003a3e8 + 0x6b20,uVar13 - uVar4);\n      uVar4 = param_1[1];\n      uVar24 = *(uint *)puVar22;\n      param_1[2] = (uint)puVar18;\n      uVar13 = ((int)((int)puVar18 - uVar4) >> 3) * 0x3e0f83e1;\n      *param_1 = uVar13;\n      if (((uVar24 & 0x1080) != 0) && (uVar13 != 0)) {\n        iVar20 = 0;\n        uVar13 = 0;\n        puVar22 = PTR_LAB_0003a3e8 + 0x6b54;\n        while( true ) {\n          iVar7 = uVar4 + iVar20;\n          uVar13 = uVar13 + 1;\n          iVar20 = iVar20 + 0x108;\n          (*(code *)PTR_printf_0003a6f4)\n                    (puVar22,*(undefined4 *)(iVar7 + 4),*(undefined4 *)(iVar7 + 0xc),\n                     *(undefined4 *)(iVar7 + 0x10));\n          if (*param_1 <= uVar13) break;\n          uVar4 = param_1[1];\n        }\n        return;\n      }\n    }\n    return;\n  }\n  uVar12 = *(uint *)PTR_debug_level_0003a418 & 0x1080;\n  puVar23 = PTR_LAB_0003a3e8 + 0x6ae0;\n  puVar21 = PTR_LAB_0003a3e8 + 0x6b10;\n  puVar19 = puVar18;\n  if (uVar4 == uVar24) goto LAB_0001e9b8;\nLAB_0001e92c:\n  if (((uint *)param_1[1] < puVar19) && (puVar19[-0x40] == 0 && puVar19[-0x3f] == 0)) {\n    puVar19[-0x3f] = uVar13 - 1;\n    puVar19[-0x40] = (uint)(uVar13 - 1 < uVar13) + (uVar4 - 1);\n  }\n  uVar10 = puVar18[2];\n  puVar6 = puVar18;\n  puVar5 = puVar19;\n  if ((uVar10 == 0 && puVar18[3] == 0) ||\n     ((uVar4 <= uVar10 && ((uVar4 != uVar10 || (uVar13 <= puVar18[3])))))) {\n    do {\n      puVar11 = puVar5;\n      puVar15 = puVar6;\n      puVar6 = puVar15 + 4;\n      uVar24 = puVar15[1];\n      uVar13 = puVar15[2];\n      uVar4 = puVar15[3];\n      *puVar11 = *puVar15;\n      puVar11[1] = uVar24;\n      puVar11[2] = uVar13;\n      puVar11[3] = uVar4;\n      puVar5 = puVar11 + 4;\n    } while (puVar6 != puVar18 + 0x40);\n    puVar19 = puVar19 + 0x42;\n    uVar4 = puVar15[5];\n    puVar11[4] = *puVar6;\n    puVar11[5] = uVar4;\n    uVar24 = *puVar18;\n    uVar25 = puVar18[1];\n    puVar15 = (uint *)param_1[2];\n  }\nLAB_0001e998:\n  puVar18 = puVar18 + 0x42;\n  if (puVar18 < puVar15) {\n    do {\n      uVar4 = *puVar18;\n      uVar13 = puVar18[1];\n      if (uVar4 != uVar24) goto LAB_0001e92c;\nLAB_0001e9b8:\n      if (uVar13 != uVar25) goto LAB_0001e92c;\n      bVar2 = *(byte *)(puVar18 + 7);\n      bVar3 = *(byte *)(puVar19 + -0x3b);\n      if (((bVar2 & 0x40) == 0) && ((bVar3 & 0x40) != 0)) {\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar17 = 0x66;\n          uVar13 = puVar19[-0x3e];\n          uVar14 = 0x54;\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          uVar9 = 0x74;\nLAB_0001ecec:\n          uVar8 = 0x66;\n          if ((char)bVar3 < '\0') {\n            uVar8 = 0x46;\n          }\n          (*(code *)PTR_printf_0003a6f4)(puVar23,uVar4,uVar14,uVar17,uVar13,uVar9,uVar8);\n          (*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);\n          uVar12 = *(uint *)puVar22 & 0x1080;\n        }\n      }\n      else {\n        if (((bVar2 ^ bVar3) & 0x40) != 0) goto LAB_0001eb60;\n        if ((-1 < (char)bVar2) || ((char)bVar3 < '\0')) {\n          if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;\n          cVar1 = *(char *)puVar18[4];\n          if (cVar1 != '_') {\n            if (*(char *)puVar19[-0x3e] == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }\n          if ((((char *)puVar18[4])[1] == '_') || (*(char *)(puVar19[-0x3e] + 1) != '_'))\n          goto LAB_0001eb60;\n        }\nLAB_0001ecb8:\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar9 = 0x74;\n          uVar13 = puVar19[-0x3e];\n          uVar17 = 0x66;\n          uVar14 = 0x74;\n          if ((bVar3 & 0x40) == 0) {\n            uVar9 = 0x54;\n          }\n          if ((bVar2 & 0x40) == 0) {\n            uVar14 = 0x54;\n          }\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          goto LAB_0001ecec;\n        }\n      }\n      puVar15 = puVar18;\n      puVar6 = puVar19 + -0x42;\n      do {\n        puVar11 = puVar6;\n        puVar5 = puVar15;\n        puVar15 = puVar5 + 4;\n        uVar10 = puVar5[1];\n        uVar13 = puVar5[2];\n        uVar4 = puVar5[3];\n        *puVar11 = *puVar5;\n        puVar11[1] = uVar10;\n        puVar11[2] = uVar13;\n        puVar11[3] = uVar4;\n        puVar6 = puVar11 + 4;\n      } while (puVar15 != puVar18 + 0x40);\n      puVar18 = puVar18 + 0x42;\n      uVar4 = puVar5[5];\n      puVar11[4] = *puVar15;\n      puVar11[5] = uVar4;\n      puVar15 = (uint *)param_1[2];\n      if (puVar15 <= puVar18) break;\n    } while( true );\n  }\n  uVar4 = ((int)((int)puVar19 - param_1[1]) >> 3) * 0x3e0f83e1;\n  puVar18 = puVar19;\n  goto LAB_0001ea58;\nLAB_0001eb60:\n  uVar9 = 0x54;\n  if (uVar12 != 0) {\n    uVar14 = 0x54;\n    if ((bVar2 & 0x40) != 0) {\n      uVar14 = 0x74;\n    }\n    uVar17 = 0x66;\n    if ((bVar3 & 0x40) != 0) {\n      uVar9 = 0x74;\n    }\n    uVar8 = 0x66;\n    if ((char)bVar2 < '\0') {\n      uVar8 = 0x46;\n    }\n    if ((char)bVar3 < '\0') {\n      uVar17 = 0x46;\n    }\n    (*(code *)PTR_printf_0003a6f4)(puVar23,puVar19[-0x3e],uVar9,uVar17,puVar18[4],uVar14,uVar8);\n    (*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);\n    puVar15 = (uint *)param_1[2];\n    uVar12 = *(uint *)puVar22 & 0x1080;\n  }\n  goto LAB_0001e998;\n}" (primitive_type "void") (function_declarator "symtab_finalize(uint *param_1)" (identifier "symtab_finalize") (parameter_list "(uint *param_1)" (( "(") (parameter_declaration "uint *param_1" (type_identifier "uint") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  char cVar1;\n  byte bVar2;\n  byte bVar3;\n  uint uVar4;\n  uint *puVar5;\n  uint *puVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  uint uVar10;\n  uint *puVar11;\n  uint uVar12;\n  uint uVar13;\n  undefined4 uVar14;\n  uint *puVar15;\n  int iVar16;\n  undefined4 uVar17;\n  uint *puVar18;\n  uint *puVar19;\n  int iVar20;\n  undefined *puVar21;\n  undefined *puVar22;\n  undefined *puVar23;\n  uint uVar24;\n  uint uVar25;\n  \n  if (*param_1 == 0) {\n    return;\n  }\n  (*(code *)PTR_qsort_0003a5f0)(param_1[1],*param_1,0x108,PTR_LAB_0003a3e8 + -0x1890);\n  puVar22 = PTR_debug_level_0003a418;\n  puVar18 = (uint *)param_1[1];\n  puVar15 = (uint *)param_1[2];\n  uVar13 = puVar18[1];\n  uVar4 = *puVar18;\n  uVar25 = uVar13 + 1;\n  uVar24 = (uVar25 < uVar13) + uVar4;\n  if (puVar15 <= puVar18) {\n    uVar4 = 0;\n    uVar12 = *(uint *)PTR_debug_level_0003a418 & 0x1080;\nLAB_0001ea58:\n    uVar13 = *param_1;\n    if ((uVar13 != 0) && (puVar18[-0x40] == 0 && puVar18[-0x3f] == 0)) {\n      iVar20 = *(int *)PTR_core_text_sect_0003a534;\n      uVar25 = *(uint *)(iVar20 + 0x24);\n      iVar16 = *(int *)(iVar20 + 0x20);\n      iVar7 = *(int *)(iVar20 + 0x30);\n      uVar24 = uVar25 + *(int *)(iVar20 + 0x34);\n      puVar18[-0x3f] = uVar24 - 1;\n      puVar18[-0x40] = (uint)(uVar24 - 1 < uVar24) + (uint)(uVar24 < uVar25) + iVar16 + iVar7 + -1;\n    }\n    if (uVar12 == 0) {\n      param_1[2] = (uint)puVar18;\n      *param_1 = uVar4;\n    }\n    else {\n      (*(code *)PTR_printf_0003a6f4)(PTR_LAB_0003a3e8 + 0x6b20,uVar13 - uVar4);\n      uVar4 = param_1[1];\n      uVar24 = *(uint *)puVar22;\n      param_1[2] = (uint)puVar18;\n      uVar13 = ((int)((int)puVar18 - uVar4) >> 3) * 0x3e0f83e1;\n      *param_1 = uVar13;\n      if (((uVar24 & 0x1080) != 0) && (uVar13 != 0)) {\n        iVar20 = 0;\n        uVar13 = 0;\n        puVar22 = PTR_LAB_0003a3e8 + 0x6b54;\n        while( true ) {\n          iVar7 = uVar4 + iVar20;\n          uVar13 = uVar13 + 1;\n          iVar20 = iVar20 + 0x108;\n          (*(code *)PTR_printf_0003a6f4)\n                    (puVar22,*(undefined4 *)(iVar7 + 4),*(undefined4 *)(iVar7 + 0xc),\n                     *(undefined4 *)(iVar7 + 0x10));\n          if (*param_1 <= uVar13) break;\n          uVar4 = param_1[1];\n        }\n        return;\n      }\n    }\n    return;\n  }\n  uVar12 = *(uint *)PTR_debug_level_0003a418 & 0x1080;\n  puVar23 = PTR_LAB_0003a3e8 + 0x6ae0;\n  puVar21 = PTR_LAB_0003a3e8 + 0x6b10;\n  puVar19 = puVar18;\n  if (uVar4 == uVar24) goto LAB_0001e9b8;\nLAB_0001e92c:\n  if (((uint *)param_1[1] < puVar19) && (puVar19[-0x40] == 0 && puVar19[-0x3f] == 0)) {\n    puVar19[-0x3f] = uVar13 - 1;\n    puVar19[-0x40] = (uint)(uVar13 - 1 < uVar13) + (uVar4 - 1);\n  }\n  uVar10 = puVar18[2];\n  puVar6 = puVar18;\n  puVar5 = puVar19;\n  if ((uVar10 == 0 && puVar18[3] == 0) ||\n     ((uVar4 <= uVar10 && ((uVar4 != uVar10 || (uVar13 <= puVar18[3])))))) {\n    do {\n      puVar11 = puVar5;\n      puVar15 = puVar6;\n      puVar6 = puVar15 + 4;\n      uVar24 = puVar15[1];\n      uVar13 = puVar15[2];\n      uVar4 = puVar15[3];\n      *puVar11 = *puVar15;\n      puVar11[1] = uVar24;\n      puVar11[2] = uVar13;\n      puVar11[3] = uVar4;\n      puVar5 = puVar11 + 4;\n    } while (puVar6 != puVar18 + 0x40);\n    puVar19 = puVar19 + 0x42;\n    uVar4 = puVar15[5];\n    puVar11[4] = *puVar6;\n    puVar11[5] = uVar4;\n    uVar24 = *puVar18;\n    uVar25 = puVar18[1];\n    puVar15 = (uint *)param_1[2];\n  }\nLAB_0001e998:\n  puVar18 = puVar18 + 0x42;\n  if (puVar18 < puVar15) {\n    do {\n      uVar4 = *puVar18;\n      uVar13 = puVar18[1];\n      if (uVar4 != uVar24) goto LAB_0001e92c;\nLAB_0001e9b8:\n      if (uVar13 != uVar25) goto LAB_0001e92c;\n      bVar2 = *(byte *)(puVar18 + 7);\n      bVar3 = *(byte *)(puVar19 + -0x3b);\n      if (((bVar2 & 0x40) == 0) && ((bVar3 & 0x40) != 0)) {\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar17 = 0x66;\n          uVar13 = puVar19[-0x3e];\n          uVar14 = 0x54;\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          uVar9 = 0x74;\nLAB_0001ecec:\n          uVar8 = 0x66;\n          if ((char)bVar3 < '\0') {\n            uVar8 = 0x46;\n          }\n          (*(code *)PTR_printf_0003a6f4)(puVar23,uVar4,uVar14,uVar17,uVar13,uVar9,uVar8);\n          (*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);\n          uVar12 = *(uint *)puVar22 & 0x1080;\n        }\n      }\n      else {\n        if (((bVar2 ^ bVar3) & 0x40) != 0) goto LAB_0001eb60;\n        if ((-1 < (char)bVar2) || ((char)bVar3 < '\0')) {\n          if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;\n          cVar1 = *(char *)puVar18[4];\n          if (cVar1 != '_') {\n            if (*(char *)puVar19[-0x3e] == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }\n          if ((((char *)puVar18[4])[1] == '_') || (*(char *)(puVar19[-0x3e] + 1) != '_'))\n          goto LAB_0001eb60;\n        }\nLAB_0001ecb8:\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar9 = 0x74;\n          uVar13 = puVar19[-0x3e];\n          uVar17 = 0x66;\n          uVar14 = 0x74;\n          if ((bVar3 & 0x40) == 0) {\n            uVar9 = 0x54;\n          }\n          if ((bVar2 & 0x40) == 0) {\n            uVar14 = 0x54;\n          }\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          goto LAB_0001ecec;\n        }\n      }\n      puVar15 = puVar18;\n      puVar6 = puVar19 + -0x42;\n      do {\n        puVar11 = puVar6;\n        puVar5 = puVar15;\n        puVar15 = puVar5 + 4;\n        uVar10 = puVar5[1];\n        uVar13 = puVar5[2];\n        uVar4 = puVar5[3];\n        *puVar11 = *puVar5;\n        puVar11[1] = uVar10;\n        puVar11[2] = uVar13;\n        puVar11[3] = uVar4;\n        puVar6 = puVar11 + 4;\n      } while (puVar15 != puVar18 + 0x40);\n      puVar18 = puVar18 + 0x42;\n      uVar4 = puVar5[5];\n      puVar11[4] = *puVar15;\n      puVar11[5] = uVar4;\n      puVar15 = (uint *)param_1[2];\n      if (puVar15 <= puVar18) break;\n    } while( true );\n  }\n  uVar4 = ((int)((int)puVar19 - param_1[1]) >> 3) * 0x3e0f83e1;\n  puVar18 = puVar19;\n  goto LAB_0001ea58;\nLAB_0001eb60:\n  uVar9 = 0x54;\n  if (uVar12 != 0) {\n    uVar14 = 0x54;\n    if ((bVar2 & 0x40) != 0) {\n      uVar14 = 0x74;\n    }\n    uVar17 = 0x66;\n    if ((bVar3 & 0x40) != 0) {\n      uVar9 = 0x74;\n    }\n    uVar8 = 0x66;\n    if ((char)bVar2 < '\0') {\n      uVar8 = 0x46;\n    }\n    if ((char)bVar3 < '\0') {\n      uVar17 = 0x46;\n    }\n    (*(code *)PTR_printf_0003a6f4)(puVar23,puVar19[-0x3e],uVar9,uVar17,puVar18[4],uVar14,uVar8);\n    (*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);\n    puVar15 = (uint *)param_1[2];\n    uVar12 = *(uint *)puVar22 & 0x1080;\n  }\n  goto LAB_0001e998;\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "byte bVar2;" (type_identifier "byte") (identifier "bVar2") (; ";")) (declaration "byte bVar3;" (type_identifier "byte") (identifier "bVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "uint *puVar5;" (type_identifier "uint") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "uint *puVar6;" (type_identifier "uint") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "undefined4 uVar8;" (type_identifier "undefined4") (identifier "uVar8") (; ";")) (declaration "undefined4 uVar9;" (type_identifier "undefined4") (identifier "uVar9") (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "uint *puVar11;" (type_identifier "uint") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "uint uVar13;" (type_identifier "uint") (identifier "uVar13") (; ";")) (declaration "undefined4 uVar14;" (type_identifier "undefined4") (identifier "uVar14") (; ";")) (declaration "uint *puVar15;" (type_identifier "uint") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "int iVar16;" (primitive_type "int") (identifier "iVar16") (; ";")) (declaration "undefined4 uVar17;" (type_identifier "undefined4") (identifier "uVar17") (; ";")) (declaration "uint *puVar18;" (type_identifier "uint") (pointer_declarator "*puVar18" (* "*") (identifier "puVar18")) (; ";")) (declaration "uint *puVar19;" (type_identifier "uint") (pointer_declarator "*puVar19" (* "*") (identifier "puVar19")) (; ";")) (declaration "int iVar20;" (primitive_type "int") (identifier "iVar20") (; ";")) (declaration "undefined *puVar21;" (type_identifier "undefined") (pointer_declarator "*puVar21" (* "*") (identifier "puVar21")) (; ";")) (declaration "undefined *puVar22;" (type_identifier "undefined") (pointer_declarator "*puVar22" (* "*") (identifier "puVar22")) (; ";")) (declaration "undefined *puVar23;" (type_identifier "undefined") (pointer_declarator "*puVar23" (* "*") (identifier "puVar23")) (; ";")) (declaration "uint uVar24;" (type_identifier "uint") (identifier "uVar24") (; ";")) (declaration "uint uVar25;" (type_identifier "uint") (identifier "uVar25") (; ";")) (if_statement "if (*param_1 == 0) {\n    return;\n  }" (if "if") (parenthesized_expression "(*param_1 == 0)" (( "(") (binary_expression "*param_1 == 0" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_qsort_0003a5f0)(param_1[1],*param_1,0x108,PTR_LAB_0003a3e8 + -0x1890);" (call_expression "(*(code *)PTR_qsort_0003a5f0)(param_1[1],*param_1,0x108,PTR_LAB_0003a3e8 + -0x1890)" (parenthesized_expression "(*(code *)PTR_qsort_0003a5f0)" (( "(") (pointer_expression "*(code *)PTR_qsort_0003a5f0" (* "*") (cast_expression "(code *)PTR_qsort_0003a5f0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_qsort_0003a5f0"))) () ")")) (argument_list "(param_1[1],*param_1,0x108,PTR_LAB_0003a3e8 + -0x1890)" (( "(") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (, ",") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (number_literal "0x108") (, ",") (binary_expression "PTR_LAB_0003a3e8 + -0x1890" (identifier "PTR_LAB_0003a3e8") (+ "+") (number_literal "-0x1890")) () ")"))) (; ";")) (expression_statement "puVar22 = PTR_debug_level_0003a418;" (assignment_expression "puVar22 = PTR_debug_level_0003a418" (identifier "puVar22") (= "=") (identifier "PTR_debug_level_0003a418")) (; ";")) (expression_statement "puVar18 = (uint *)param_1[1];" (assignment_expression "puVar18 = (uint *)param_1[1]" (identifier "puVar18") (= "=") (cast_expression "(uint *)param_1[1]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "puVar15 = (uint *)param_1[2];" (assignment_expression "puVar15 = (uint *)param_1[2]" (identifier "puVar15") (= "=") (cast_expression "(uint *)param_1[2]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "uVar13 = puVar18[1];" (assignment_expression "uVar13 = puVar18[1]" (identifier "uVar13") (= "=") (subscript_expression "puVar18[1]" (identifier "puVar18") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar4 = *puVar18;" (assignment_expression "uVar4 = *puVar18" (identifier "uVar4") (= "=") (pointer_expression "*puVar18" (* "*") (identifier "puVar18"))) (; ";")) (expression_statement "uVar25 = uVar13 + 1;" (assignment_expression "uVar25 = uVar13 + 1" (identifier "uVar25") (= "=") (binary_expression "uVar13 + 1" (identifier "uVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar24 = (uVar25 < uVar13) + uVar4;" (assignment_expression "uVar24 = (uVar25 < uVar13) + uVar4" (identifier "uVar24") (= "=") (binary_expression "(uVar25 < uVar13) + uVar4" (parenthesized_expression "(uVar25 < uVar13)" (( "(") (binary_expression "uVar25 < uVar13" (identifier "uVar25") (< "<") (identifier "uVar13")) () ")")) (+ "+") (identifier "uVar4"))) (; ";")) (if_statement "if (puVar15 <= puVar18) {\n    uVar4 = 0;\n    uVar12 = *(uint *)PTR_debug_level_0003a418 & 0x1080;\nLAB_0001ea58:\n    uVar13 = *param_1;\n    if ((uVar13 != 0) && (puVar18[-0x40] == 0 && puVar18[-0x3f] == 0)) {\n      iVar20 = *(int *)PTR_core_text_sect_0003a534;\n      uVar25 = *(uint *)(iVar20 + 0x24);\n      iVar16 = *(int *)(iVar20 + 0x20);\n      iVar7 = *(int *)(iVar20 + 0x30);\n      uVar24 = uVar25 + *(int *)(iVar20 + 0x34);\n      puVar18[-0x3f] = uVar24 - 1;\n      puVar18[-0x40] = (uint)(uVar24 - 1 < uVar24) + (uint)(uVar24 < uVar25) + iVar16 + iVar7 + -1;\n    }\n    if (uVar12 == 0) {\n      param_1[2] = (uint)puVar18;\n      *param_1 = uVar4;\n    }\n    else {\n      (*(code *)PTR_printf_0003a6f4)(PTR_LAB_0003a3e8 + 0x6b20,uVar13 - uVar4);\n      uVar4 = param_1[1];\n      uVar24 = *(uint *)puVar22;\n      param_1[2] = (uint)puVar18;\n      uVar13 = ((int)((int)puVar18 - uVar4) >> 3) * 0x3e0f83e1;\n      *param_1 = uVar13;\n      if (((uVar24 & 0x1080) != 0) && (uVar13 != 0)) {\n        iVar20 = 0;\n        uVar13 = 0;\n        puVar22 = PTR_LAB_0003a3e8 + 0x6b54;\n        while( true ) {\n          iVar7 = uVar4 + iVar20;\n          uVar13 = uVar13 + 1;\n          iVar20 = iVar20 + 0x108;\n          (*(code *)PTR_printf_0003a6f4)\n                    (puVar22,*(undefined4 *)(iVar7 + 4),*(undefined4 *)(iVar7 + 0xc),\n                     *(undefined4 *)(iVar7 + 0x10));\n          if (*param_1 <= uVar13) break;\n          uVar4 = param_1[1];\n        }\n        return;\n      }\n    }\n    return;\n  }" (if "if") (parenthesized_expression "(puVar15 <= puVar18)" (( "(") (binary_expression "puVar15 <= puVar18" (identifier "puVar15") (<= "<=") (identifier "puVar18")) () ")")) (compound_statement "{\n    uVar4 = 0;\n    uVar12 = *(uint *)PTR_debug_level_0003a418 & 0x1080;\nLAB_0001ea58:\n    uVar13 = *param_1;\n    if ((uVar13 != 0) && (puVar18[-0x40] == 0 && puVar18[-0x3f] == 0)) {\n      iVar20 = *(int *)PTR_core_text_sect_0003a534;\n      uVar25 = *(uint *)(iVar20 + 0x24);\n      iVar16 = *(int *)(iVar20 + 0x20);\n      iVar7 = *(int *)(iVar20 + 0x30);\n      uVar24 = uVar25 + *(int *)(iVar20 + 0x34);\n      puVar18[-0x3f] = uVar24 - 1;\n      puVar18[-0x40] = (uint)(uVar24 - 1 < uVar24) + (uint)(uVar24 < uVar25) + iVar16 + iVar7 + -1;\n    }\n    if (uVar12 == 0) {\n      param_1[2] = (uint)puVar18;\n      *param_1 = uVar4;\n    }\n    else {\n      (*(code *)PTR_printf_0003a6f4)(PTR_LAB_0003a3e8 + 0x6b20,uVar13 - uVar4);\n      uVar4 = param_1[1];\n      uVar24 = *(uint *)puVar22;\n      param_1[2] = (uint)puVar18;\n      uVar13 = ((int)((int)puVar18 - uVar4) >> 3) * 0x3e0f83e1;\n      *param_1 = uVar13;\n      if (((uVar24 & 0x1080) != 0) && (uVar13 != 0)) {\n        iVar20 = 0;\n        uVar13 = 0;\n        puVar22 = PTR_LAB_0003a3e8 + 0x6b54;\n        while( true ) {\n          iVar7 = uVar4 + iVar20;\n          uVar13 = uVar13 + 1;\n          iVar20 = iVar20 + 0x108;\n          (*(code *)PTR_printf_0003a6f4)\n                    (puVar22,*(undefined4 *)(iVar7 + 4),*(undefined4 *)(iVar7 + 0xc),\n                     *(undefined4 *)(iVar7 + 0x10));\n          if (*param_1 <= uVar13) break;\n          uVar4 = param_1[1];\n        }\n        return;\n      }\n    }\n    return;\n  }" ({ "{") (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" (identifier "uVar4") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar12 = *(uint *)PTR_debug_level_0003a418 & 0x1080;" (assignment_expression "uVar12 = *(uint *)PTR_debug_level_0003a418 & 0x1080" (identifier "uVar12") (= "=") (binary_expression "*(uint *)PTR_debug_level_0003a418 & 0x1080" (pointer_expression "*(uint *)PTR_debug_level_0003a418" (* "*") (cast_expression "(uint *)PTR_debug_level_0003a418" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_debug_level_0003a418"))) (& "&") (number_literal "0x1080"))) (; ";")) (labeled_statement "LAB_0001ea58:\n    uVar13 = *param_1;" (statement_identifier "LAB_0001ea58") (: ":") (expression_statement "uVar13 = *param_1;" (assignment_expression "uVar13 = *param_1" (identifier "uVar13") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";"))) (if_statement "if ((uVar13 != 0) && (puVar18[-0x40] == 0 && puVar18[-0x3f] == 0)) {\n      iVar20 = *(int *)PTR_core_text_sect_0003a534;\n      uVar25 = *(uint *)(iVar20 + 0x24);\n      iVar16 = *(int *)(iVar20 + 0x20);\n      iVar7 = *(int *)(iVar20 + 0x30);\n      uVar24 = uVar25 + *(int *)(iVar20 + 0x34);\n      puVar18[-0x3f] = uVar24 - 1;\n      puVar18[-0x40] = (uint)(uVar24 - 1 < uVar24) + (uint)(uVar24 < uVar25) + iVar16 + iVar7 + -1;\n    }" (if "if") (parenthesized_expression "((uVar13 != 0) && (puVar18[-0x40] == 0 && puVar18[-0x3f] == 0))" (( "(") (binary_expression "(uVar13 != 0) && (puVar18[-0x40] == 0 && puVar18[-0x3f] == 0)" (parenthesized_expression "(uVar13 != 0)" (( "(") (binary_expression "uVar13 != 0" (identifier "uVar13") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(puVar18[-0x40] == 0 && puVar18[-0x3f] == 0)" (( "(") (binary_expression "puVar18[-0x40] == 0 && puVar18[-0x3f] == 0" (binary_expression "puVar18[-0x40] == 0" (subscript_expression "puVar18[-0x40]" (identifier "puVar18") ([ "[") (number_literal "-0x40") (] "]")) (== "==") (number_literal "0")) (&& "&&") (binary_expression "puVar18[-0x3f] == 0" (subscript_expression "puVar18[-0x3f]" (identifier "puVar18") ([ "[") (number_literal "-0x3f") (] "]")) (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n      iVar20 = *(int *)PTR_core_text_sect_0003a534;\n      uVar25 = *(uint *)(iVar20 + 0x24);\n      iVar16 = *(int *)(iVar20 + 0x20);\n      iVar7 = *(int *)(iVar20 + 0x30);\n      uVar24 = uVar25 + *(int *)(iVar20 + 0x34);\n      puVar18[-0x3f] = uVar24 - 1;\n      puVar18[-0x40] = (uint)(uVar24 - 1 < uVar24) + (uint)(uVar24 < uVar25) + iVar16 + iVar7 + -1;\n    }" ({ "{") (expression_statement "iVar20 = *(int *)PTR_core_text_sect_0003a534;" (assignment_expression "iVar20 = *(int *)PTR_core_text_sect_0003a534" (identifier "iVar20") (= "=") (pointer_expression "*(int *)PTR_core_text_sect_0003a534" (* "*") (cast_expression "(int *)PTR_core_text_sect_0003a534" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_core_text_sect_0003a534")))) (; ";")) (expression_statement "uVar25 = *(uint *)(iVar20 + 0x24);" (assignment_expression "uVar25 = *(uint *)(iVar20 + 0x24)" (identifier "uVar25") (= "=") (pointer_expression "*(uint *)(iVar20 + 0x24)" (* "*") (cast_expression "(uint *)(iVar20 + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x24)" (( "(") (binary_expression "iVar20 + 0x24" (identifier "iVar20") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "iVar16 = *(int *)(iVar20 + 0x20);" (assignment_expression "iVar16 = *(int *)(iVar20 + 0x20)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(iVar20 + 0x20)" (* "*") (cast_expression "(int *)(iVar20 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x20)" (( "(") (binary_expression "iVar20 + 0x20" (identifier "iVar20") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "iVar7 = *(int *)(iVar20 + 0x30);" (assignment_expression "iVar7 = *(int *)(iVar20 + 0x30)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(iVar20 + 0x30)" (* "*") (cast_expression "(int *)(iVar20 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x30)" (( "(") (binary_expression "iVar20 + 0x30" (identifier "iVar20") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "uVar24 = uVar25 + *(int *)(iVar20 + 0x34);" (assignment_expression "uVar24 = uVar25 + *(int *)(iVar20 + 0x34)" (identifier "uVar24") (= "=") (binary_expression "uVar25 + *(int *)(iVar20 + 0x34)" (identifier "uVar25") (+ "+") (pointer_expression "*(int *)(iVar20 + 0x34)" (* "*") (cast_expression "(int *)(iVar20 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x34)" (( "(") (binary_expression "iVar20 + 0x34" (identifier "iVar20") (+ "+") (number_literal "0x34")) () ")")))))) (; ";")) (expression_statement "puVar18[-0x3f] = uVar24 - 1;" (assignment_expression "puVar18[-0x3f] = uVar24 - 1" (subscript_expression "puVar18[-0x3f]" (identifier "puVar18") ([ "[") (number_literal "-0x3f") (] "]")) (= "=") (binary_expression "uVar24 - 1" (identifier "uVar24") (- "-") (number_literal "1"))) (; ";")) (expression_statement "puVar18[-0x40] = (uint)(uVar24 - 1 < uVar24) + (uint)(uVar24 < uVar25) + iVar16 + iVar7 + -1;" (assignment_expression "puVar18[-0x40] = (uint)(uVar24 - 1 < uVar24) + (uint)(uVar24 < uVar25) + iVar16 + iVar7 + -1" (subscript_expression "puVar18[-0x40]" (identifier "puVar18") ([ "[") (number_literal "-0x40") (] "]")) (= "=") (binary_expression "(uint)(uVar24 - 1 < uVar24) + (uint)(uVar24 < uVar25) + iVar16 + iVar7 + -1" (binary_expression "(uint)(uVar24 - 1 < uVar24) + (uint)(uVar24 < uVar25) + iVar16 + iVar7" (binary_expression "(uint)(uVar24 - 1 < uVar24) + (uint)(uVar24 < uVar25) + iVar16" (binary_expression "(uint)(uVar24 - 1 < uVar24) + (uint)(uVar24 < uVar25)" (call_expression "(uint)(uVar24 - 1 < uVar24)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar24 - 1 < uVar24)" (( "(") (binary_expression "uVar24 - 1 < uVar24" (binary_expression "uVar24 - 1" (identifier "uVar24") (- "-") (number_literal "1")) (< "<") (identifier "uVar24")) () ")"))) (+ "+") (call_expression "(uint)(uVar24 < uVar25)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar24 < uVar25)" (( "(") (binary_expression "uVar24 < uVar25" (identifier "uVar24") (< "<") (identifier "uVar25")) () ")")))) (+ "+") (identifier "iVar16")) (+ "+") (identifier "iVar7")) (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (if_statement "if (uVar12 == 0) {\n      param_1[2] = (uint)puVar18;\n      *param_1 = uVar4;\n    }\n    else {\n      (*(code *)PTR_printf_0003a6f4)(PTR_LAB_0003a3e8 + 0x6b20,uVar13 - uVar4);\n      uVar4 = param_1[1];\n      uVar24 = *(uint *)puVar22;\n      param_1[2] = (uint)puVar18;\n      uVar13 = ((int)((int)puVar18 - uVar4) >> 3) * 0x3e0f83e1;\n      *param_1 = uVar13;\n      if (((uVar24 & 0x1080) != 0) && (uVar13 != 0)) {\n        iVar20 = 0;\n        uVar13 = 0;\n        puVar22 = PTR_LAB_0003a3e8 + 0x6b54;\n        while( true ) {\n          iVar7 = uVar4 + iVar20;\n          uVar13 = uVar13 + 1;\n          iVar20 = iVar20 + 0x108;\n          (*(code *)PTR_printf_0003a6f4)\n                    (puVar22,*(undefined4 *)(iVar7 + 4),*(undefined4 *)(iVar7 + 0xc),\n                     *(undefined4 *)(iVar7 + 0x10));\n          if (*param_1 <= uVar13) break;\n          uVar4 = param_1[1];\n        }\n        return;\n      }\n    }" (if "if") (parenthesized_expression "(uVar12 == 0)" (( "(") (binary_expression "uVar12 == 0" (identifier "uVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      param_1[2] = (uint)puVar18;\n      *param_1 = uVar4;\n    }" ({ "{") (expression_statement "param_1[2] = (uint)puVar18;" (assignment_expression "param_1[2] = (uint)puVar18" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(uint)puVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar18"))) (; ";")) (expression_statement "*param_1 = uVar4;" (assignment_expression "*param_1 = uVar4" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "uVar4")) (; ";")) (} "}")) (else_clause "else {\n      (*(code *)PTR_printf_0003a6f4)(PTR_LAB_0003a3e8 + 0x6b20,uVar13 - uVar4);\n      uVar4 = param_1[1];\n      uVar24 = *(uint *)puVar22;\n      param_1[2] = (uint)puVar18;\n      uVar13 = ((int)((int)puVar18 - uVar4) >> 3) * 0x3e0f83e1;\n      *param_1 = uVar13;\n      if (((uVar24 & 0x1080) != 0) && (uVar13 != 0)) {\n        iVar20 = 0;\n        uVar13 = 0;\n        puVar22 = PTR_LAB_0003a3e8 + 0x6b54;\n        while( true ) {\n          iVar7 = uVar4 + iVar20;\n          uVar13 = uVar13 + 1;\n          iVar20 = iVar20 + 0x108;\n          (*(code *)PTR_printf_0003a6f4)\n                    (puVar22,*(undefined4 *)(iVar7 + 4),*(undefined4 *)(iVar7 + 0xc),\n                     *(undefined4 *)(iVar7 + 0x10));\n          if (*param_1 <= uVar13) break;\n          uVar4 = param_1[1];\n        }\n        return;\n      }\n    }" (else "else") (compound_statement "{\n      (*(code *)PTR_printf_0003a6f4)(PTR_LAB_0003a3e8 + 0x6b20,uVar13 - uVar4);\n      uVar4 = param_1[1];\n      uVar24 = *(uint *)puVar22;\n      param_1[2] = (uint)puVar18;\n      uVar13 = ((int)((int)puVar18 - uVar4) >> 3) * 0x3e0f83e1;\n      *param_1 = uVar13;\n      if (((uVar24 & 0x1080) != 0) && (uVar13 != 0)) {\n        iVar20 = 0;\n        uVar13 = 0;\n        puVar22 = PTR_LAB_0003a3e8 + 0x6b54;\n        while( true ) {\n          iVar7 = uVar4 + iVar20;\n          uVar13 = uVar13 + 1;\n          iVar20 = iVar20 + 0x108;\n          (*(code *)PTR_printf_0003a6f4)\n                    (puVar22,*(undefined4 *)(iVar7 + 4),*(undefined4 *)(iVar7 + 0xc),\n                     *(undefined4 *)(iVar7 + 0x10));\n          if (*param_1 <= uVar13) break;\n          uVar4 = param_1[1];\n        }\n        return;\n      }\n    }" ({ "{") (expression_statement "(*(code *)PTR_printf_0003a6f4)(PTR_LAB_0003a3e8 + 0x6b20,uVar13 - uVar4);" (call_expression "(*(code *)PTR_printf_0003a6f4)(PTR_LAB_0003a3e8 + 0x6b20,uVar13 - uVar4)" (parenthesized_expression "(*(code *)PTR_printf_0003a6f4)" (( "(") (pointer_expression "*(code *)PTR_printf_0003a6f4" (* "*") (cast_expression "(code *)PTR_printf_0003a6f4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_printf_0003a6f4"))) () ")")) (argument_list "(PTR_LAB_0003a3e8 + 0x6b20,uVar13 - uVar4)" (( "(") (binary_expression "PTR_LAB_0003a3e8 + 0x6b20" (identifier "PTR_LAB_0003a3e8") (+ "+") (number_literal "0x6b20")) (, ",") (binary_expression "uVar13 - uVar4" (identifier "uVar13") (- "-") (identifier "uVar4")) () ")"))) (; ";")) (expression_statement "uVar4 = param_1[1];" (assignment_expression "uVar4 = param_1[1]" (identifier "uVar4") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar24 = *(uint *)puVar22;" (assignment_expression "uVar24 = *(uint *)puVar22" (identifier "uVar24") (= "=") (pointer_expression "*(uint *)puVar22" (* "*") (cast_expression "(uint *)puVar22" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar22")))) (; ";")) (expression_statement "param_1[2] = (uint)puVar18;" (assignment_expression "param_1[2] = (uint)puVar18" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(uint)puVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar18"))) (; ";")) (expression_statement "uVar13 = ((int)((int)puVar18 - uVar4) >> 3) * 0x3e0f83e1;" (assignment_expression "uVar13 = ((int)((int)puVar18 - uVar4) >> 3) * 0x3e0f83e1" (identifier "uVar13") (= "=") (binary_expression "((int)((int)puVar18 - uVar4) >> 3) * 0x3e0f83e1" (parenthesized_expression "((int)((int)puVar18 - uVar4) >> 3)" (( "(") (binary_expression "(int)((int)puVar18 - uVar4) >> 3" (cast_expression "(int)((int)puVar18 - uVar4)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((int)puVar18 - uVar4)" (( "(") (binary_expression "(int)puVar18 - uVar4" (cast_expression "(int)puVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar18")) (- "-") (identifier "uVar4")) () ")"))) (>> ">>") (number_literal "3")) () ")")) (* "*") (number_literal "0x3e0f83e1"))) (; ";")) (expression_statement "*param_1 = uVar13;" (assignment_expression "*param_1 = uVar13" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "uVar13")) (; ";")) (if_statement "if (((uVar24 & 0x1080) != 0) && (uVar13 != 0)) {\n        iVar20 = 0;\n        uVar13 = 0;\n        puVar22 = PTR_LAB_0003a3e8 + 0x6b54;\n        while( true ) {\n          iVar7 = uVar4 + iVar20;\n          uVar13 = uVar13 + 1;\n          iVar20 = iVar20 + 0x108;\n          (*(code *)PTR_printf_0003a6f4)\n                    (puVar22,*(undefined4 *)(iVar7 + 4),*(undefined4 *)(iVar7 + 0xc),\n                     *(undefined4 *)(iVar7 + 0x10));\n          if (*param_1 <= uVar13) break;\n          uVar4 = param_1[1];\n        }\n        return;\n      }" (if "if") (parenthesized_expression "(((uVar24 & 0x1080) != 0) && (uVar13 != 0))" (( "(") (binary_expression "((uVar24 & 0x1080) != 0) && (uVar13 != 0)" (parenthesized_expression "((uVar24 & 0x1080) != 0)" (( "(") (binary_expression "(uVar24 & 0x1080) != 0" (parenthesized_expression "(uVar24 & 0x1080)" (( "(") (binary_expression "uVar24 & 0x1080" (identifier "uVar24") (& "&") (number_literal "0x1080")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(uVar13 != 0)" (( "(") (binary_expression "uVar13 != 0" (identifier "uVar13") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        iVar20 = 0;\n        uVar13 = 0;\n        puVar22 = PTR_LAB_0003a3e8 + 0x6b54;\n        while( true ) {\n          iVar7 = uVar4 + iVar20;\n          uVar13 = uVar13 + 1;\n          iVar20 = iVar20 + 0x108;\n          (*(code *)PTR_printf_0003a6f4)\n                    (puVar22,*(undefined4 *)(iVar7 + 4),*(undefined4 *)(iVar7 + 0xc),\n                     *(undefined4 *)(iVar7 + 0x10));\n          if (*param_1 <= uVar13) break;\n          uVar4 = param_1[1];\n        }\n        return;\n      }" ({ "{") (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" (identifier "iVar20") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" (identifier "uVar13") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar22 = PTR_LAB_0003a3e8 + 0x6b54;" (assignment_expression "puVar22 = PTR_LAB_0003a3e8 + 0x6b54" (identifier "puVar22") (= "=") (binary_expression "PTR_LAB_0003a3e8 + 0x6b54" (identifier "PTR_LAB_0003a3e8") (+ "+") (number_literal "0x6b54"))) (; ";")) (while_statement "while( true ) {\n          iVar7 = uVar4 + iVar20;\n          uVar13 = uVar13 + 1;\n          iVar20 = iVar20 + 0x108;\n          (*(code *)PTR_printf_0003a6f4)\n                    (puVar22,*(undefined4 *)(iVar7 + 4),*(undefined4 *)(iVar7 + 0xc),\n                     *(undefined4 *)(iVar7 + 0x10));\n          if (*param_1 <= uVar13) break;\n          uVar4 = param_1[1];\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          iVar7 = uVar4 + iVar20;\n          uVar13 = uVar13 + 1;\n          iVar20 = iVar20 + 0x108;\n          (*(code *)PTR_printf_0003a6f4)\n                    (puVar22,*(undefined4 *)(iVar7 + 4),*(undefined4 *)(iVar7 + 0xc),\n                     *(undefined4 *)(iVar7 + 0x10));\n          if (*param_1 <= uVar13) break;\n          uVar4 = param_1[1];\n        }" ({ "{") (expression_statement "iVar7 = uVar4 + iVar20;" (assignment_expression "iVar7 = uVar4 + iVar20" (identifier "iVar7") (= "=") (binary_expression "uVar4 + iVar20" (identifier "uVar4") (+ "+") (identifier "iVar20"))) (; ";")) (expression_statement "uVar13 = uVar13 + 1;" (assignment_expression "uVar13 = uVar13 + 1" (identifier "uVar13") (= "=") (binary_expression "uVar13 + 1" (identifier "uVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar20 = iVar20 + 0x108;" (assignment_expression "iVar20 = iVar20 + 0x108" (identifier "iVar20") (= "=") (binary_expression "iVar20 + 0x108" (identifier "iVar20") (+ "+") (number_literal "0x108"))) (; ";")) (expression_statement "(*(code *)PTR_printf_0003a6f4)\n                    (puVar22,*(undefined4 *)(iVar7 + 4),*(undefined4 *)(iVar7 + 0xc),\n                     *(undefined4 *)(iVar7 + 0x10));" (call_expression "(*(code *)PTR_printf_0003a6f4)\n                    (puVar22,*(undefined4 *)(iVar7 + 4),*(undefined4 *)(iVar7 + 0xc),\n                     *(undefined4 *)(iVar7 + 0x10))" (parenthesized_expression "(*(code *)PTR_printf_0003a6f4)" (( "(") (pointer_expression "*(code *)PTR_printf_0003a6f4" (* "*") (cast_expression "(code *)PTR_printf_0003a6f4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_printf_0003a6f4"))) () ")")) (argument_list "(puVar22,*(undefined4 *)(iVar7 + 4),*(undefined4 *)(iVar7 + 0xc),\n                     *(undefined4 *)(iVar7 + 0x10))" (( "(") (identifier "puVar22") (, ",") (pointer_expression "*(undefined4 *)(iVar7 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 4)" (( "(") (binary_expression "iVar7 + 4" (identifier "iVar7") (+ "+") (number_literal "4")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(iVar7 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0xc)" (( "(") (binary_expression "iVar7 + 0xc" (identifier "iVar7") (+ "+") (number_literal "0xc")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(iVar7 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x10)" (( "(") (binary_expression "iVar7 + 0x10" (identifier "iVar7") (+ "+") (number_literal "0x10")) () ")")))) () ")"))) (; ";")) (if_statement "if (*param_1 <= uVar13) break;" (if "if") (parenthesized_expression "(*param_1 <= uVar13)" (( "(") (binary_expression "*param_1 <= uVar13" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (<= "<=") (identifier "uVar13")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar4 = param_1[1];" (assignment_expression "uVar4 = param_1[1]" (identifier "uVar4") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar12 = *(uint *)PTR_debug_level_0003a418 & 0x1080;" (assignment_expression "uVar12 = *(uint *)PTR_debug_level_0003a418 & 0x1080" (identifier "uVar12") (= "=") (binary_expression "*(uint *)PTR_debug_level_0003a418 & 0x1080" (pointer_expression "*(uint *)PTR_debug_level_0003a418" (* "*") (cast_expression "(uint *)PTR_debug_level_0003a418" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_debug_level_0003a418"))) (& "&") (number_literal "0x1080"))) (; ";")) (expression_statement "puVar23 = PTR_LAB_0003a3e8 + 0x6ae0;" (assignment_expression "puVar23 = PTR_LAB_0003a3e8 + 0x6ae0" (identifier "puVar23") (= "=") (binary_expression "PTR_LAB_0003a3e8 + 0x6ae0" (identifier "PTR_LAB_0003a3e8") (+ "+") (number_literal "0x6ae0"))) (; ";")) (expression_statement "puVar21 = PTR_LAB_0003a3e8 + 0x6b10;" (assignment_expression "puVar21 = PTR_LAB_0003a3e8 + 0x6b10" (identifier "puVar21") (= "=") (binary_expression "PTR_LAB_0003a3e8 + 0x6b10" (identifier "PTR_LAB_0003a3e8") (+ "+") (number_literal "0x6b10"))) (; ";")) (expression_statement "puVar19 = puVar18;" (assignment_expression "puVar19 = puVar18" (identifier "puVar19") (= "=") (identifier "puVar18")) (; ";")) (if_statement "if (uVar4 == uVar24) goto LAB_0001e9b8;" (if "if") (parenthesized_expression "(uVar4 == uVar24)" (( "(") (binary_expression "uVar4 == uVar24" (identifier "uVar4") (== "==") (identifier "uVar24")) () ")")) (goto_statement "goto LAB_0001e9b8;" (goto "goto") (statement_identifier "LAB_0001e9b8") (; ";"))) (labeled_statement "LAB_0001e92c:\n  if (((uint *)param_1[1] < puVar19) && (puVar19[-0x40] == 0 && puVar19[-0x3f] == 0)) {\n    puVar19[-0x3f] = uVar13 - 1;\n    puVar19[-0x40] = (uint)(uVar13 - 1 < uVar13) + (uVar4 - 1);\n  }" (statement_identifier "LAB_0001e92c") (: ":") (if_statement "if (((uint *)param_1[1] < puVar19) && (puVar19[-0x40] == 0 && puVar19[-0x3f] == 0)) {\n    puVar19[-0x3f] = uVar13 - 1;\n    puVar19[-0x40] = (uint)(uVar13 - 1 < uVar13) + (uVar4 - 1);\n  }" (if "if") (parenthesized_expression "(((uint *)param_1[1] < puVar19) && (puVar19[-0x40] == 0 && puVar19[-0x3f] == 0))" (( "(") (binary_expression "((uint *)param_1[1] < puVar19) && (puVar19[-0x40] == 0 && puVar19[-0x3f] == 0)" (parenthesized_expression "((uint *)param_1[1] < puVar19)" (( "(") (binary_expression "(uint *)param_1[1] < puVar19" (cast_expression "(uint *)param_1[1]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (< "<") (identifier "puVar19")) () ")")) (&& "&&") (parenthesized_expression "(puVar19[-0x40] == 0 && puVar19[-0x3f] == 0)" (( "(") (binary_expression "puVar19[-0x40] == 0 && puVar19[-0x3f] == 0" (binary_expression "puVar19[-0x40] == 0" (subscript_expression "puVar19[-0x40]" (identifier "puVar19") ([ "[") (number_literal "-0x40") (] "]")) (== "==") (number_literal "0")) (&& "&&") (binary_expression "puVar19[-0x3f] == 0" (subscript_expression "puVar19[-0x3f]" (identifier "puVar19") ([ "[") (number_literal "-0x3f") (] "]")) (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    puVar19[-0x3f] = uVar13 - 1;\n    puVar19[-0x40] = (uint)(uVar13 - 1 < uVar13) + (uVar4 - 1);\n  }" ({ "{") (expression_statement "puVar19[-0x3f] = uVar13 - 1;" (assignment_expression "puVar19[-0x3f] = uVar13 - 1" (subscript_expression "puVar19[-0x3f]" (identifier "puVar19") ([ "[") (number_literal "-0x3f") (] "]")) (= "=") (binary_expression "uVar13 - 1" (identifier "uVar13") (- "-") (number_literal "1"))) (; ";")) (expression_statement "puVar19[-0x40] = (uint)(uVar13 - 1 < uVar13) + (uVar4 - 1);" (assignment_expression "puVar19[-0x40] = (uint)(uVar13 - 1 < uVar13) + (uVar4 - 1)" (subscript_expression "puVar19[-0x40]" (identifier "puVar19") ([ "[") (number_literal "-0x40") (] "]")) (= "=") (binary_expression "(uint)(uVar13 - 1 < uVar13) + (uVar4 - 1)" (call_expression "(uint)(uVar13 - 1 < uVar13)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar13 - 1 < uVar13)" (( "(") (binary_expression "uVar13 - 1 < uVar13" (binary_expression "uVar13 - 1" (identifier "uVar13") (- "-") (number_literal "1")) (< "<") (identifier "uVar13")) () ")"))) (+ "+") (parenthesized_expression "(uVar4 - 1)" (( "(") (binary_expression "uVar4 - 1" (identifier "uVar4") (- "-") (number_literal "1")) () ")")))) (; ";")) (} "}")))) (expression_statement "uVar10 = puVar18[2];" (assignment_expression "uVar10 = puVar18[2]" (identifier "uVar10") (= "=") (subscript_expression "puVar18[2]" (identifier "puVar18") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "puVar6 = puVar18;" (assignment_expression "puVar6 = puVar18" (identifier "puVar6") (= "=") (identifier "puVar18")) (; ";")) (expression_statement "puVar5 = puVar19;" (assignment_expression "puVar5 = puVar19" (identifier "puVar5") (= "=") (identifier "puVar19")) (; ";")) (if_statement "if ((uVar10 == 0 && puVar18[3] == 0) ||\n     ((uVar4 <= uVar10 && ((uVar4 != uVar10 || (uVar13 <= puVar18[3])))))) {\n    do {\n      puVar11 = puVar5;\n      puVar15 = puVar6;\n      puVar6 = puVar15 + 4;\n      uVar24 = puVar15[1];\n      uVar13 = puVar15[2];\n      uVar4 = puVar15[3];\n      *puVar11 = *puVar15;\n      puVar11[1] = uVar24;\n      puVar11[2] = uVar13;\n      puVar11[3] = uVar4;\n      puVar5 = puVar11 + 4;\n    } while (puVar6 != puVar18 + 0x40);\n    puVar19 = puVar19 + 0x42;\n    uVar4 = puVar15[5];\n    puVar11[4] = *puVar6;\n    puVar11[5] = uVar4;\n    uVar24 = *puVar18;\n    uVar25 = puVar18[1];\n    puVar15 = (uint *)param_1[2];\n  }" (if "if") (parenthesized_expression "((uVar10 == 0 && puVar18[3] == 0) ||\n     ((uVar4 <= uVar10 && ((uVar4 != uVar10 || (uVar13 <= puVar18[3]))))))" (( "(") (binary_expression "(uVar10 == 0 && puVar18[3] == 0) ||\n     ((uVar4 <= uVar10 && ((uVar4 != uVar10 || (uVar13 <= puVar18[3])))))" (parenthesized_expression "(uVar10 == 0 && puVar18[3] == 0)" (( "(") (binary_expression "uVar10 == 0 && puVar18[3] == 0" (binary_expression "uVar10 == 0" (identifier "uVar10") (== "==") (number_literal "0")) (&& "&&") (binary_expression "puVar18[3] == 0" (subscript_expression "puVar18[3]" (identifier "puVar18") ([ "[") (number_literal "3") (] "]")) (== "==") (number_literal "0"))) () ")")) (|| "||") (parenthesized_expression "((uVar4 <= uVar10 && ((uVar4 != uVar10 || (uVar13 <= puVar18[3])))))" (( "(") (parenthesized_expression "(uVar4 <= uVar10 && ((uVar4 != uVar10 || (uVar13 <= puVar18[3]))))" (( "(") (binary_expression "uVar4 <= uVar10 && ((uVar4 != uVar10 || (uVar13 <= puVar18[3])))" (binary_expression "uVar4 <= uVar10" (identifier "uVar4") (<= "<=") (identifier "uVar10")) (&& "&&") (parenthesized_expression "((uVar4 != uVar10 || (uVar13 <= puVar18[3])))" (( "(") (parenthesized_expression "(uVar4 != uVar10 || (uVar13 <= puVar18[3]))" (( "(") (binary_expression "uVar4 != uVar10 || (uVar13 <= puVar18[3])" (binary_expression "uVar4 != uVar10" (identifier "uVar4") (!= "!=") (identifier "uVar10")) (|| "||") (parenthesized_expression "(uVar13 <= puVar18[3])" (( "(") (binary_expression "uVar13 <= puVar18[3]" (identifier "uVar13") (<= "<=") (subscript_expression "puVar18[3]" (identifier "puVar18") ([ "[") (number_literal "3") (] "]"))) () ")"))) () ")")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n    do {\n      puVar11 = puVar5;\n      puVar15 = puVar6;\n      puVar6 = puVar15 + 4;\n      uVar24 = puVar15[1];\n      uVar13 = puVar15[2];\n      uVar4 = puVar15[3];\n      *puVar11 = *puVar15;\n      puVar11[1] = uVar24;\n      puVar11[2] = uVar13;\n      puVar11[3] = uVar4;\n      puVar5 = puVar11 + 4;\n    } while (puVar6 != puVar18 + 0x40);\n    puVar19 = puVar19 + 0x42;\n    uVar4 = puVar15[5];\n    puVar11[4] = *puVar6;\n    puVar11[5] = uVar4;\n    uVar24 = *puVar18;\n    uVar25 = puVar18[1];\n    puVar15 = (uint *)param_1[2];\n  }" ({ "{") (do_statement "do {\n      puVar11 = puVar5;\n      puVar15 = puVar6;\n      puVar6 = puVar15 + 4;\n      uVar24 = puVar15[1];\n      uVar13 = puVar15[2];\n      uVar4 = puVar15[3];\n      *puVar11 = *puVar15;\n      puVar11[1] = uVar24;\n      puVar11[2] = uVar13;\n      puVar11[3] = uVar4;\n      puVar5 = puVar11 + 4;\n    } while (puVar6 != puVar18 + 0x40);" (do "do") (compound_statement "{\n      puVar11 = puVar5;\n      puVar15 = puVar6;\n      puVar6 = puVar15 + 4;\n      uVar24 = puVar15[1];\n      uVar13 = puVar15[2];\n      uVar4 = puVar15[3];\n      *puVar11 = *puVar15;\n      puVar11[1] = uVar24;\n      puVar11[2] = uVar13;\n      puVar11[3] = uVar4;\n      puVar5 = puVar11 + 4;\n    }" ({ "{") (expression_statement "puVar11 = puVar5;" (assignment_expression "puVar11 = puVar5" (identifier "puVar11") (= "=") (identifier "puVar5")) (; ";")) (expression_statement "puVar15 = puVar6;" (assignment_expression "puVar15 = puVar6" (identifier "puVar15") (= "=") (identifier "puVar6")) (; ";")) (expression_statement "puVar6 = puVar15 + 4;" (assignment_expression "puVar6 = puVar15 + 4" (identifier "puVar6") (= "=") (binary_expression "puVar15 + 4" (identifier "puVar15") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "uVar24 = puVar15[1];" (assignment_expression "uVar24 = puVar15[1]" (identifier "uVar24") (= "=") (subscript_expression "puVar15[1]" (identifier "puVar15") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar13 = puVar15[2];" (assignment_expression "uVar13 = puVar15[2]" (identifier "uVar13") (= "=") (subscript_expression "puVar15[2]" (identifier "puVar15") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar4 = puVar15[3];" (assignment_expression "uVar4 = puVar15[3]" (identifier "uVar4") (= "=") (subscript_expression "puVar15[3]" (identifier "puVar15") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*puVar11 = *puVar15;" (assignment_expression "*puVar11 = *puVar15" (pointer_expression "*puVar11" (* "*") (identifier "puVar11")) (= "=") (pointer_expression "*puVar15" (* "*") (identifier "puVar15"))) (; ";")) (expression_statement "puVar11[1] = uVar24;" (assignment_expression "puVar11[1] = uVar24" (subscript_expression "puVar11[1]" (identifier "puVar11") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar24")) (; ";")) (expression_statement "puVar11[2] = uVar13;" (assignment_expression "puVar11[2] = uVar13" (subscript_expression "puVar11[2]" (identifier "puVar11") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "puVar11[3] = uVar4;" (assignment_expression "puVar11[3] = uVar4" (subscript_expression "puVar11[3]" (identifier "puVar11") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "puVar5 = puVar11 + 4;" (assignment_expression "puVar5 = puVar11 + 4" (identifier "puVar5") (= "=") (binary_expression "puVar11 + 4" (identifier "puVar11") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar6 != puVar18 + 0x40)" (( "(") (binary_expression "puVar6 != puVar18 + 0x40" (identifier "puVar6") (!= "!=") (binary_expression "puVar18 + 0x40" (identifier "puVar18") (+ "+") (number_literal "0x40"))) () ")")) (; ";")) (expression_statement "puVar19 = puVar19 + 0x42;" (assignment_expression "puVar19 = puVar19 + 0x42" (identifier "puVar19") (= "=") (binary_expression "puVar19 + 0x42" (identifier "puVar19") (+ "+") (number_literal "0x42"))) (; ";")) (expression_statement "uVar4 = puVar15[5];" (assignment_expression "uVar4 = puVar15[5]" (identifier "uVar4") (= "=") (subscript_expression "puVar15[5]" (identifier "puVar15") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "puVar11[4] = *puVar6;" (assignment_expression "puVar11[4] = *puVar6" (subscript_expression "puVar11[4]" (identifier "puVar11") ([ "[") (number_literal "4") (] "]")) (= "=") (pointer_expression "*puVar6" (* "*") (identifier "puVar6"))) (; ";")) (expression_statement "puVar11[5] = uVar4;" (assignment_expression "puVar11[5] = uVar4" (subscript_expression "puVar11[5]" (identifier "puVar11") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "uVar24 = *puVar18;" (assignment_expression "uVar24 = *puVar18" (identifier "uVar24") (= "=") (pointer_expression "*puVar18" (* "*") (identifier "puVar18"))) (; ";")) (expression_statement "uVar25 = puVar18[1];" (assignment_expression "uVar25 = puVar18[1]" (identifier "uVar25") (= "=") (subscript_expression "puVar18[1]" (identifier "puVar18") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar15 = (uint *)param_1[2];" (assignment_expression "puVar15 = (uint *)param_1[2]" (identifier "puVar15") (= "=") (cast_expression "(uint *)param_1[2]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")))) (; ";")) (} "}"))) (labeled_statement "LAB_0001e998:\n  puVar18 = puVar18 + 0x42;" (statement_identifier "LAB_0001e998") (: ":") (expression_statement "puVar18 = puVar18 + 0x42;" (assignment_expression "puVar18 = puVar18 + 0x42" (identifier "puVar18") (= "=") (binary_expression "puVar18 + 0x42" (identifier "puVar18") (+ "+") (number_literal "0x42"))) (; ";"))) (if_statement "if (puVar18 < puVar15) {\n    do {\n      uVar4 = *puVar18;\n      uVar13 = puVar18[1];\n      if (uVar4 != uVar24) goto LAB_0001e92c;\nLAB_0001e9b8:\n      if (uVar13 != uVar25) goto LAB_0001e92c;\n      bVar2 = *(byte *)(puVar18 + 7);\n      bVar3 = *(byte *)(puVar19 + -0x3b);\n      if (((bVar2 & 0x40) == 0) && ((bVar3 & 0x40) != 0)) {\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar17 = 0x66;\n          uVar13 = puVar19[-0x3e];\n          uVar14 = 0x54;\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          uVar9 = 0x74;\nLAB_0001ecec:\n          uVar8 = 0x66;\n          if ((char)bVar3 < '\0') {\n            uVar8 = 0x46;\n          }\n          (*(code *)PTR_printf_0003a6f4)(puVar23,uVar4,uVar14,uVar17,uVar13,uVar9,uVar8);\n          (*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);\n          uVar12 = *(uint *)puVar22 & 0x1080;\n        }\n      }\n      else {\n        if (((bVar2 ^ bVar3) & 0x40) != 0) goto LAB_0001eb60;\n        if ((-1 < (char)bVar2) || ((char)bVar3 < '\0')) {\n          if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;\n          cVar1 = *(char *)puVar18[4];\n          if (cVar1 != '_') {\n            if (*(char *)puVar19[-0x3e] == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }\n          if ((((char *)puVar18[4])[1] == '_') || (*(char *)(puVar19[-0x3e] + 1) != '_'))\n          goto LAB_0001eb60;\n        }\nLAB_0001ecb8:\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar9 = 0x74;\n          uVar13 = puVar19[-0x3e];\n          uVar17 = 0x66;\n          uVar14 = 0x74;\n          if ((bVar3 & 0x40) == 0) {\n            uVar9 = 0x54;\n          }\n          if ((bVar2 & 0x40) == 0) {\n            uVar14 = 0x54;\n          }\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          goto LAB_0001ecec;\n        }\n      }\n      puVar15 = puVar18;\n      puVar6 = puVar19 + -0x42;\n      do {\n        puVar11 = puVar6;\n        puVar5 = puVar15;\n        puVar15 = puVar5 + 4;\n        uVar10 = puVar5[1];\n        uVar13 = puVar5[2];\n        uVar4 = puVar5[3];\n        *puVar11 = *puVar5;\n        puVar11[1] = uVar10;\n        puVar11[2] = uVar13;\n        puVar11[3] = uVar4;\n        puVar6 = puVar11 + 4;\n      } while (puVar15 != puVar18 + 0x40);\n      puVar18 = puVar18 + 0x42;\n      uVar4 = puVar5[5];\n      puVar11[4] = *puVar15;\n      puVar11[5] = uVar4;\n      puVar15 = (uint *)param_1[2];\n      if (puVar15 <= puVar18) break;\n    } while( true );\n  }" (if "if") (parenthesized_expression "(puVar18 < puVar15)" (( "(") (binary_expression "puVar18 < puVar15" (identifier "puVar18") (< "<") (identifier "puVar15")) () ")")) (compound_statement "{\n    do {\n      uVar4 = *puVar18;\n      uVar13 = puVar18[1];\n      if (uVar4 != uVar24) goto LAB_0001e92c;\nLAB_0001e9b8:\n      if (uVar13 != uVar25) goto LAB_0001e92c;\n      bVar2 = *(byte *)(puVar18 + 7);\n      bVar3 = *(byte *)(puVar19 + -0x3b);\n      if (((bVar2 & 0x40) == 0) && ((bVar3 & 0x40) != 0)) {\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar17 = 0x66;\n          uVar13 = puVar19[-0x3e];\n          uVar14 = 0x54;\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          uVar9 = 0x74;\nLAB_0001ecec:\n          uVar8 = 0x66;\n          if ((char)bVar3 < '\0') {\n            uVar8 = 0x46;\n          }\n          (*(code *)PTR_printf_0003a6f4)(puVar23,uVar4,uVar14,uVar17,uVar13,uVar9,uVar8);\n          (*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);\n          uVar12 = *(uint *)puVar22 & 0x1080;\n        }\n      }\n      else {\n        if (((bVar2 ^ bVar3) & 0x40) != 0) goto LAB_0001eb60;\n        if ((-1 < (char)bVar2) || ((char)bVar3 < '\0')) {\n          if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;\n          cVar1 = *(char *)puVar18[4];\n          if (cVar1 != '_') {\n            if (*(char *)puVar19[-0x3e] == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }\n          if ((((char *)puVar18[4])[1] == '_') || (*(char *)(puVar19[-0x3e] + 1) != '_'))\n          goto LAB_0001eb60;\n        }\nLAB_0001ecb8:\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar9 = 0x74;\n          uVar13 = puVar19[-0x3e];\n          uVar17 = 0x66;\n          uVar14 = 0x74;\n          if ((bVar3 & 0x40) == 0) {\n            uVar9 = 0x54;\n          }\n          if ((bVar2 & 0x40) == 0) {\n            uVar14 = 0x54;\n          }\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          goto LAB_0001ecec;\n        }\n      }\n      puVar15 = puVar18;\n      puVar6 = puVar19 + -0x42;\n      do {\n        puVar11 = puVar6;\n        puVar5 = puVar15;\n        puVar15 = puVar5 + 4;\n        uVar10 = puVar5[1];\n        uVar13 = puVar5[2];\n        uVar4 = puVar5[3];\n        *puVar11 = *puVar5;\n        puVar11[1] = uVar10;\n        puVar11[2] = uVar13;\n        puVar11[3] = uVar4;\n        puVar6 = puVar11 + 4;\n      } while (puVar15 != puVar18 + 0x40);\n      puVar18 = puVar18 + 0x42;\n      uVar4 = puVar5[5];\n      puVar11[4] = *puVar15;\n      puVar11[5] = uVar4;\n      puVar15 = (uint *)param_1[2];\n      if (puVar15 <= puVar18) break;\n    } while( true );\n  }" ({ "{") (do_statement "do {\n      uVar4 = *puVar18;\n      uVar13 = puVar18[1];\n      if (uVar4 != uVar24) goto LAB_0001e92c;\nLAB_0001e9b8:\n      if (uVar13 != uVar25) goto LAB_0001e92c;\n      bVar2 = *(byte *)(puVar18 + 7);\n      bVar3 = *(byte *)(puVar19 + -0x3b);\n      if (((bVar2 & 0x40) == 0) && ((bVar3 & 0x40) != 0)) {\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar17 = 0x66;\n          uVar13 = puVar19[-0x3e];\n          uVar14 = 0x54;\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          uVar9 = 0x74;\nLAB_0001ecec:\n          uVar8 = 0x66;\n          if ((char)bVar3 < '\0') {\n            uVar8 = 0x46;\n          }\n          (*(code *)PTR_printf_0003a6f4)(puVar23,uVar4,uVar14,uVar17,uVar13,uVar9,uVar8);\n          (*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);\n          uVar12 = *(uint *)puVar22 & 0x1080;\n        }\n      }\n      else {\n        if (((bVar2 ^ bVar3) & 0x40) != 0) goto LAB_0001eb60;\n        if ((-1 < (char)bVar2) || ((char)bVar3 < '\0')) {\n          if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;\n          cVar1 = *(char *)puVar18[4];\n          if (cVar1 != '_') {\n            if (*(char *)puVar19[-0x3e] == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }\n          if ((((char *)puVar18[4])[1] == '_') || (*(char *)(puVar19[-0x3e] + 1) != '_'))\n          goto LAB_0001eb60;\n        }\nLAB_0001ecb8:\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar9 = 0x74;\n          uVar13 = puVar19[-0x3e];\n          uVar17 = 0x66;\n          uVar14 = 0x74;\n          if ((bVar3 & 0x40) == 0) {\n            uVar9 = 0x54;\n          }\n          if ((bVar2 & 0x40) == 0) {\n            uVar14 = 0x54;\n          }\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          goto LAB_0001ecec;\n        }\n      }\n      puVar15 = puVar18;\n      puVar6 = puVar19 + -0x42;\n      do {\n        puVar11 = puVar6;\n        puVar5 = puVar15;\n        puVar15 = puVar5 + 4;\n        uVar10 = puVar5[1];\n        uVar13 = puVar5[2];\n        uVar4 = puVar5[3];\n        *puVar11 = *puVar5;\n        puVar11[1] = uVar10;\n        puVar11[2] = uVar13;\n        puVar11[3] = uVar4;\n        puVar6 = puVar11 + 4;\n      } while (puVar15 != puVar18 + 0x40);\n      puVar18 = puVar18 + 0x42;\n      uVar4 = puVar5[5];\n      puVar11[4] = *puVar15;\n      puVar11[5] = uVar4;\n      puVar15 = (uint *)param_1[2];\n      if (puVar15 <= puVar18) break;\n    } while( true );" (do "do") (compound_statement "{\n      uVar4 = *puVar18;\n      uVar13 = puVar18[1];\n      if (uVar4 != uVar24) goto LAB_0001e92c;\nLAB_0001e9b8:\n      if (uVar13 != uVar25) goto LAB_0001e92c;\n      bVar2 = *(byte *)(puVar18 + 7);\n      bVar3 = *(byte *)(puVar19 + -0x3b);\n      if (((bVar2 & 0x40) == 0) && ((bVar3 & 0x40) != 0)) {\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar17 = 0x66;\n          uVar13 = puVar19[-0x3e];\n          uVar14 = 0x54;\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          uVar9 = 0x74;\nLAB_0001ecec:\n          uVar8 = 0x66;\n          if ((char)bVar3 < '\0') {\n            uVar8 = 0x46;\n          }\n          (*(code *)PTR_printf_0003a6f4)(puVar23,uVar4,uVar14,uVar17,uVar13,uVar9,uVar8);\n          (*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);\n          uVar12 = *(uint *)puVar22 & 0x1080;\n        }\n      }\n      else {\n        if (((bVar2 ^ bVar3) & 0x40) != 0) goto LAB_0001eb60;\n        if ((-1 < (char)bVar2) || ((char)bVar3 < '\0')) {\n          if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;\n          cVar1 = *(char *)puVar18[4];\n          if (cVar1 != '_') {\n            if (*(char *)puVar19[-0x3e] == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }\n          if ((((char *)puVar18[4])[1] == '_') || (*(char *)(puVar19[-0x3e] + 1) != '_'))\n          goto LAB_0001eb60;\n        }\nLAB_0001ecb8:\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar9 = 0x74;\n          uVar13 = puVar19[-0x3e];\n          uVar17 = 0x66;\n          uVar14 = 0x74;\n          if ((bVar3 & 0x40) == 0) {\n            uVar9 = 0x54;\n          }\n          if ((bVar2 & 0x40) == 0) {\n            uVar14 = 0x54;\n          }\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          goto LAB_0001ecec;\n        }\n      }\n      puVar15 = puVar18;\n      puVar6 = puVar19 + -0x42;\n      do {\n        puVar11 = puVar6;\n        puVar5 = puVar15;\n        puVar15 = puVar5 + 4;\n        uVar10 = puVar5[1];\n        uVar13 = puVar5[2];\n        uVar4 = puVar5[3];\n        *puVar11 = *puVar5;\n        puVar11[1] = uVar10;\n        puVar11[2] = uVar13;\n        puVar11[3] = uVar4;\n        puVar6 = puVar11 + 4;\n      } while (puVar15 != puVar18 + 0x40);\n      puVar18 = puVar18 + 0x42;\n      uVar4 = puVar5[5];\n      puVar11[4] = *puVar15;\n      puVar11[5] = uVar4;\n      puVar15 = (uint *)param_1[2];\n      if (puVar15 <= puVar18) break;\n    }" ({ "{") (expression_statement "uVar4 = *puVar18;" (assignment_expression "uVar4 = *puVar18" (identifier "uVar4") (= "=") (pointer_expression "*puVar18" (* "*") (identifier "puVar18"))) (; ";")) (expression_statement "uVar13 = puVar18[1];" (assignment_expression "uVar13 = puVar18[1]" (identifier "uVar13") (= "=") (subscript_expression "puVar18[1]" (identifier "puVar18") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (uVar4 != uVar24) goto LAB_0001e92c;" (if "if") (parenthesized_expression "(uVar4 != uVar24)" (( "(") (binary_expression "uVar4 != uVar24" (identifier "uVar4") (!= "!=") (identifier "uVar24")) () ")")) (goto_statement "goto LAB_0001e92c;" (goto "goto") (statement_identifier "LAB_0001e92c") (; ";"))) (labeled_statement "LAB_0001e9b8:\n      if (uVar13 != uVar25) goto LAB_0001e92c;" (statement_identifier "LAB_0001e9b8") (: ":") (if_statement "if (uVar13 != uVar25) goto LAB_0001e92c;" (if "if") (parenthesized_expression "(uVar13 != uVar25)" (( "(") (binary_expression "uVar13 != uVar25" (identifier "uVar13") (!= "!=") (identifier "uVar25")) () ")")) (goto_statement "goto LAB_0001e92c;" (goto "goto") (statement_identifier "LAB_0001e92c") (; ";")))) (expression_statement "bVar2 = *(byte *)(puVar18 + 7);" (assignment_expression "bVar2 = *(byte *)(puVar18 + 7)" (identifier "bVar2") (= "=") (pointer_expression "*(byte *)(puVar18 + 7)" (* "*") (cast_expression "(byte *)(puVar18 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 7)" (( "(") (binary_expression "puVar18 + 7" (identifier "puVar18") (+ "+") (number_literal "7")) () ")"))))) (; ";")) (expression_statement "bVar3 = *(byte *)(puVar19 + -0x3b);" (assignment_expression "bVar3 = *(byte *)(puVar19 + -0x3b)" (identifier "bVar3") (= "=") (pointer_expression "*(byte *)(puVar19 + -0x3b)" (* "*") (cast_expression "(byte *)(puVar19 + -0x3b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + -0x3b)" (( "(") (binary_expression "puVar19 + -0x3b" (identifier "puVar19") (+ "+") (number_literal "-0x3b")) () ")"))))) (; ";")) (if_statement "if (((bVar2 & 0x40) == 0) && ((bVar3 & 0x40) != 0)) {\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar17 = 0x66;\n          uVar13 = puVar19[-0x3e];\n          uVar14 = 0x54;\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          uVar9 = 0x74;\nLAB_0001ecec:\n          uVar8 = 0x66;\n          if ((char)bVar3 < '\0') {\n            uVar8 = 0x46;\n          }\n          (*(code *)PTR_printf_0003a6f4)(puVar23,uVar4,uVar14,uVar17,uVar13,uVar9,uVar8);\n          (*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);\n          uVar12 = *(uint *)puVar22 & 0x1080;\n        }\n      }\n      else {\n        if (((bVar2 ^ bVar3) & 0x40) != 0) goto LAB_0001eb60;\n        if ((-1 < (char)bVar2) || ((char)bVar3 < '\0')) {\n          if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;\n          cVar1 = *(char *)puVar18[4];\n          if (cVar1 != '_') {\n            if (*(char *)puVar19[-0x3e] == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }\n          if ((((char *)puVar18[4])[1] == '_') || (*(char *)(puVar19[-0x3e] + 1) != '_'))\n          goto LAB_0001eb60;\n        }\nLAB_0001ecb8:\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar9 = 0x74;\n          uVar13 = puVar19[-0x3e];\n          uVar17 = 0x66;\n          uVar14 = 0x74;\n          if ((bVar3 & 0x40) == 0) {\n            uVar9 = 0x54;\n          }\n          if ((bVar2 & 0x40) == 0) {\n            uVar14 = 0x54;\n          }\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          goto LAB_0001ecec;\n        }\n      }" (if "if") (parenthesized_expression "(((bVar2 & 0x40) == 0) && ((bVar3 & 0x40) != 0))" (( "(") (binary_expression "((bVar2 & 0x40) == 0) && ((bVar3 & 0x40) != 0)" (parenthesized_expression "((bVar2 & 0x40) == 0)" (( "(") (binary_expression "(bVar2 & 0x40) == 0" (parenthesized_expression "(bVar2 & 0x40)" (( "(") (binary_expression "bVar2 & 0x40" (identifier "bVar2") (& "&") (number_literal "0x40")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((bVar3 & 0x40) != 0)" (( "(") (binary_expression "(bVar3 & 0x40) != 0" (parenthesized_expression "(bVar3 & 0x40)" (( "(") (binary_expression "bVar3 & 0x40" (identifier "bVar3") (& "&") (number_literal "0x40")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar17 = 0x66;\n          uVar13 = puVar19[-0x3e];\n          uVar14 = 0x54;\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          uVar9 = 0x74;\nLAB_0001ecec:\n          uVar8 = 0x66;\n          if ((char)bVar3 < '\0') {\n            uVar8 = 0x46;\n          }\n          (*(code *)PTR_printf_0003a6f4)(puVar23,uVar4,uVar14,uVar17,uVar13,uVar9,uVar8);\n          (*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);\n          uVar12 = *(uint *)puVar22 & 0x1080;\n        }\n      }" ({ "{") (if_statement "if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar17 = 0x66;\n          uVar13 = puVar19[-0x3e];\n          uVar14 = 0x54;\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          uVar9 = 0x74;\nLAB_0001ecec:\n          uVar8 = 0x66;\n          if ((char)bVar3 < '\0') {\n            uVar8 = 0x46;\n          }\n          (*(code *)PTR_printf_0003a6f4)(puVar23,uVar4,uVar14,uVar17,uVar13,uVar9,uVar8);\n          (*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);\n          uVar12 = *(uint *)puVar22 & 0x1080;\n        }" (if "if") (parenthesized_expression "(uVar12 != 0)" (( "(") (binary_expression "uVar12 != 0" (identifier "uVar12") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uVar4 = puVar18[4];\n          uVar17 = 0x66;\n          uVar13 = puVar19[-0x3e];\n          uVar14 = 0x54;\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          uVar9 = 0x74;\nLAB_0001ecec:\n          uVar8 = 0x66;\n          if ((char)bVar3 < '\0') {\n            uVar8 = 0x46;\n          }\n          (*(code *)PTR_printf_0003a6f4)(puVar23,uVar4,uVar14,uVar17,uVar13,uVar9,uVar8);\n          (*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);\n          uVar12 = *(uint *)puVar22 & 0x1080;\n        }" ({ "{") (expression_statement "uVar4 = puVar18[4];" (assignment_expression "uVar4 = puVar18[4]" (identifier "uVar4") (= "=") (subscript_expression "puVar18[4]" (identifier "puVar18") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "uVar17 = 0x66;" (assignment_expression "uVar17 = 0x66" (identifier "uVar17") (= "=") (number_literal "0x66")) (; ";")) (expression_statement "uVar13 = puVar19[-0x3e];" (assignment_expression "uVar13 = puVar19[-0x3e]" (identifier "uVar13") (= "=") (subscript_expression "puVar19[-0x3e]" (identifier "puVar19") ([ "[") (number_literal "-0x3e") (] "]"))) (; ";")) (expression_statement "uVar14 = 0x54;" (assignment_expression "uVar14 = 0x54" (identifier "uVar14") (= "=") (number_literal "0x54")) (; ";")) (if_statement "if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }" (if "if") (parenthesized_expression "((char)bVar2 < '\0')" (( "(") (binary_expression "(char)bVar2 < '\0'" (cast_expression "(char)bVar2" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar2")) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            uVar17 = 0x46;\n          }" ({ "{") (expression_statement "uVar17 = 0x46;" (assignment_expression "uVar17 = 0x46" (identifier "uVar17") (= "=") (number_literal "0x46")) (; ";")) (} "}"))) (expression_statement "uVar9 = 0x74;" (assignment_expression "uVar9 = 0x74" (identifier "uVar9") (= "=") (number_literal "0x74")) (; ";")) (labeled_statement "LAB_0001ecec:\n          uVar8 = 0x66;" (statement_identifier "LAB_0001ecec") (: ":") (expression_statement "uVar8 = 0x66;" (assignment_expression "uVar8 = 0x66" (identifier "uVar8") (= "=") (number_literal "0x66")) (; ";"))) (if_statement "if ((char)bVar3 < '\0') {\n            uVar8 = 0x46;\n          }" (if "if") (parenthesized_expression "((char)bVar3 < '\0')" (( "(") (binary_expression "(char)bVar3 < '\0'" (cast_expression "(char)bVar3" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar3")) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            uVar8 = 0x46;\n          }" ({ "{") (expression_statement "uVar8 = 0x46;" (assignment_expression "uVar8 = 0x46" (identifier "uVar8") (= "=") (number_literal "0x46")) (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_printf_0003a6f4)(puVar23,uVar4,uVar14,uVar17,uVar13,uVar9,uVar8);" (call_expression "(*(code *)PTR_printf_0003a6f4)(puVar23,uVar4,uVar14,uVar17,uVar13,uVar9,uVar8)" (parenthesized_expression "(*(code *)PTR_printf_0003a6f4)" (( "(") (pointer_expression "*(code *)PTR_printf_0003a6f4" (* "*") (cast_expression "(code *)PTR_printf_0003a6f4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_printf_0003a6f4"))) () ")")) (argument_list "(puVar23,uVar4,uVar14,uVar17,uVar13,uVar9,uVar8)" (( "(") (identifier "puVar23") (, ",") (identifier "uVar4") (, ",") (identifier "uVar14") (, ",") (identifier "uVar17") (, ",") (identifier "uVar13") (, ",") (identifier "uVar9") (, ",") (identifier "uVar8") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);" (call_expression "(*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1])" (parenthesized_expression "(*(code *)PTR_printf_0003a6f4)" (( "(") (pointer_expression "*(code *)PTR_printf_0003a6f4" (* "*") (cast_expression "(code *)PTR_printf_0003a6f4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_printf_0003a6f4"))) () ")")) (argument_list "(puVar21,puVar18[1])" (( "(") (identifier "puVar21") (, ",") (subscript_expression "puVar18[1]" (identifier "puVar18") ([ "[") (number_literal "1") (] "]")) () ")"))) (; ";")) (expression_statement "uVar12 = *(uint *)puVar22 & 0x1080;" (assignment_expression "uVar12 = *(uint *)puVar22 & 0x1080" (identifier "uVar12") (= "=") (binary_expression "*(uint *)puVar22 & 0x1080" (pointer_expression "*(uint *)puVar22" (* "*") (cast_expression "(uint *)puVar22" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar22"))) (& "&") (number_literal "0x1080"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        if (((bVar2 ^ bVar3) & 0x40) != 0) goto LAB_0001eb60;\n        if ((-1 < (char)bVar2) || ((char)bVar3 < '\0')) {\n          if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;\n          cVar1 = *(char *)puVar18[4];\n          if (cVar1 != '_') {\n            if (*(char *)puVar19[-0x3e] == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }\n          if ((((char *)puVar18[4])[1] == '_') || (*(char *)(puVar19[-0x3e] + 1) != '_'))\n          goto LAB_0001eb60;\n        }\nLAB_0001ecb8:\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar9 = 0x74;\n          uVar13 = puVar19[-0x3e];\n          uVar17 = 0x66;\n          uVar14 = 0x74;\n          if ((bVar3 & 0x40) == 0) {\n            uVar9 = 0x54;\n          }\n          if ((bVar2 & 0x40) == 0) {\n            uVar14 = 0x54;\n          }\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          goto LAB_0001ecec;\n        }\n      }" (else "else") (compound_statement "{\n        if (((bVar2 ^ bVar3) & 0x40) != 0) goto LAB_0001eb60;\n        if ((-1 < (char)bVar2) || ((char)bVar3 < '\0')) {\n          if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;\n          cVar1 = *(char *)puVar18[4];\n          if (cVar1 != '_') {\n            if (*(char *)puVar19[-0x3e] == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }\n          if ((((char *)puVar18[4])[1] == '_') || (*(char *)(puVar19[-0x3e] + 1) != '_'))\n          goto LAB_0001eb60;\n        }\nLAB_0001ecb8:\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar9 = 0x74;\n          uVar13 = puVar19[-0x3e];\n          uVar17 = 0x66;\n          uVar14 = 0x74;\n          if ((bVar3 & 0x40) == 0) {\n            uVar9 = 0x54;\n          }\n          if ((bVar2 & 0x40) == 0) {\n            uVar14 = 0x54;\n          }\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          goto LAB_0001ecec;\n        }\n      }" ({ "{") (if_statement "if (((bVar2 ^ bVar3) & 0x40) != 0) goto LAB_0001eb60;" (if "if") (parenthesized_expression "(((bVar2 ^ bVar3) & 0x40) != 0)" (( "(") (binary_expression "((bVar2 ^ bVar3) & 0x40) != 0" (parenthesized_expression "((bVar2 ^ bVar3) & 0x40)" (( "(") (binary_expression "(bVar2 ^ bVar3) & 0x40" (parenthesized_expression "(bVar2 ^ bVar3)" (( "(") (binary_expression "bVar2 ^ bVar3" (identifier "bVar2") (^ "^") (identifier "bVar3")) () ")")) (& "&") (number_literal "0x40")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001eb60;" (goto "goto") (statement_identifier "LAB_0001eb60") (; ";"))) (if_statement "if ((-1 < (char)bVar2) || ((char)bVar3 < '\0')) {\n          if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;\n          cVar1 = *(char *)puVar18[4];\n          if (cVar1 != '_') {\n            if (*(char *)puVar19[-0x3e] == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }\n          if ((((char *)puVar18[4])[1] == '_') || (*(char *)(puVar19[-0x3e] + 1) != '_'))\n          goto LAB_0001eb60;\n        }" (if "if") (parenthesized_expression "((-1 < (char)bVar2) || ((char)bVar3 < '\0'))" (( "(") (binary_expression "(-1 < (char)bVar2) || ((char)bVar3 < '\0')" (parenthesized_expression "(-1 < (char)bVar2)" (( "(") (binary_expression "-1 < (char)bVar2" (number_literal "-1") (< "<") (cast_expression "(char)bVar2" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar2"))) () ")")) (|| "||") (parenthesized_expression "((char)bVar3 < '\0')" (( "(") (binary_expression "(char)bVar3 < '\0'" (cast_expression "(char)bVar3" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar3")) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n          if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;\n          cVar1 = *(char *)puVar18[4];\n          if (cVar1 != '_') {\n            if (*(char *)puVar19[-0x3e] == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }\n          if ((((char *)puVar18[4])[1] == '_') || (*(char *)(puVar19[-0x3e] + 1) != '_'))\n          goto LAB_0001eb60;\n        }" ({ "{") (if_statement "if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;" (if "if") (parenthesized_expression "((char)(bVar2 ^ bVar3) < '\0')" (( "(") (binary_expression "(char)(bVar2 ^ bVar3) < '\0'" (cast_expression "(char)(bVar2 ^ bVar3)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "(bVar2 ^ bVar3)" (( "(") (binary_expression "bVar2 ^ bVar3" (identifier "bVar2") (^ "^") (identifier "bVar3")) () ")"))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0001eb60;" (goto "goto") (statement_identifier "LAB_0001eb60") (; ";"))) (expression_statement "cVar1 = *(char *)puVar18[4];" (assignment_expression "cVar1 = *(char *)puVar18[4]" (identifier "cVar1") (= "=") (pointer_expression "*(char *)puVar18[4]" (* "*") (cast_expression "(char *)puVar18[4]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar18[4]" (identifier "puVar18") ([ "[") (number_literal "4") (] "]"))))) (; ";")) (if_statement "if (cVar1 != '_') {\n            if (*(char *)puVar19[-0x3e] == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }" (if "if") (parenthesized_expression "(cVar1 != '_')" (( "(") (binary_expression "cVar1 != '_'" (identifier "cVar1") (!= "!=") (char_literal "'_'" (' "'") (character "_") (' "'"))) () ")")) (compound_statement "{\n            if (*(char *)puVar19[-0x3e] == '_') goto LAB_0001ecb8;\n            if (cVar1 == '\0') goto LAB_0001eb60;\n          }" ({ "{") (if_statement "if (*(char *)puVar19[-0x3e] == '_') goto LAB_0001ecb8;" (if "if") (parenthesized_expression "(*(char *)puVar19[-0x3e] == '_')" (( "(") (binary_expression "*(char *)puVar19[-0x3e] == '_'" (pointer_expression "*(char *)puVar19[-0x3e]" (* "*") (cast_expression "(char *)puVar19[-0x3e]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar19[-0x3e]" (identifier "puVar19") ([ "[") (number_literal "-0x3e") (] "]")))) (== "==") (char_literal "'_'" (' "'") (character "_") (' "'"))) () ")")) (goto_statement "goto LAB_0001ecb8;" (goto "goto") (statement_identifier "LAB_0001ecb8") (; ";"))) (if_statement "if (cVar1 == '\0') goto LAB_0001eb60;" (if "if") (parenthesized_expression "(cVar1 == '\0')" (( "(") (binary_expression "cVar1 == '\0'" (identifier "cVar1") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0001eb60;" (goto "goto") (statement_identifier "LAB_0001eb60") (; ";"))) (} "}"))) (if_statement "if ((((char *)puVar18[4])[1] == '_') || (*(char *)(puVar19[-0x3e] + 1) != '_'))\n          goto LAB_0001eb60;" (if "if") (parenthesized_expression "((((char *)puVar18[4])[1] == '_') || (*(char *)(puVar19[-0x3e] + 1) != '_'))" (( "(") (binary_expression "(((char *)puVar18[4])[1] == '_') || (*(char *)(puVar19[-0x3e] + 1) != '_')" (parenthesized_expression "(((char *)puVar18[4])[1] == '_')" (( "(") (binary_expression "((char *)puVar18[4])[1] == '_'" (subscript_expression "((char *)puVar18[4])[1]" (parenthesized_expression "((char *)puVar18[4])" (( "(") (cast_expression "(char *)puVar18[4]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar18[4]" (identifier "puVar18") ([ "[") (number_literal "4") (] "]"))) () ")")) ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "'_'" (' "'") (character "_") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(*(char *)(puVar19[-0x3e] + 1) != '_')" (( "(") (binary_expression "*(char *)(puVar19[-0x3e] + 1) != '_'" (pointer_expression "*(char *)(puVar19[-0x3e] + 1)" (* "*") (cast_expression "(char *)(puVar19[-0x3e] + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19[-0x3e] + 1)" (( "(") (binary_expression "puVar19[-0x3e] + 1" (subscript_expression "puVar19[-0x3e]" (identifier "puVar19") ([ "[") (number_literal "-0x3e") (] "]")) (+ "+") (number_literal "1")) () ")")))) (!= "!=") (char_literal "'_'" (' "'") (character "_") (' "'"))) () ")"))) () ")")) (goto_statement "goto LAB_0001eb60;" (goto "goto") (statement_identifier "LAB_0001eb60") (; ";"))) (} "}"))) (labeled_statement "LAB_0001ecb8:\n        if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar9 = 0x74;\n          uVar13 = puVar19[-0x3e];\n          uVar17 = 0x66;\n          uVar14 = 0x74;\n          if ((bVar3 & 0x40) == 0) {\n            uVar9 = 0x54;\n          }\n          if ((bVar2 & 0x40) == 0) {\n            uVar14 = 0x54;\n          }\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          goto LAB_0001ecec;\n        }" (statement_identifier "LAB_0001ecb8") (: ":") (if_statement "if (uVar12 != 0) {\n          uVar4 = puVar18[4];\n          uVar9 = 0x74;\n          uVar13 = puVar19[-0x3e];\n          uVar17 = 0x66;\n          uVar14 = 0x74;\n          if ((bVar3 & 0x40) == 0) {\n            uVar9 = 0x54;\n          }\n          if ((bVar2 & 0x40) == 0) {\n            uVar14 = 0x54;\n          }\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          goto LAB_0001ecec;\n        }" (if "if") (parenthesized_expression "(uVar12 != 0)" (( "(") (binary_expression "uVar12 != 0" (identifier "uVar12") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uVar4 = puVar18[4];\n          uVar9 = 0x74;\n          uVar13 = puVar19[-0x3e];\n          uVar17 = 0x66;\n          uVar14 = 0x74;\n          if ((bVar3 & 0x40) == 0) {\n            uVar9 = 0x54;\n          }\n          if ((bVar2 & 0x40) == 0) {\n            uVar14 = 0x54;\n          }\n          if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }\n          goto LAB_0001ecec;\n        }" ({ "{") (expression_statement "uVar4 = puVar18[4];" (assignment_expression "uVar4 = puVar18[4]" (identifier "uVar4") (= "=") (subscript_expression "puVar18[4]" (identifier "puVar18") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "uVar9 = 0x74;" (assignment_expression "uVar9 = 0x74" (identifier "uVar9") (= "=") (number_literal "0x74")) (; ";")) (expression_statement "uVar13 = puVar19[-0x3e];" (assignment_expression "uVar13 = puVar19[-0x3e]" (identifier "uVar13") (= "=") (subscript_expression "puVar19[-0x3e]" (identifier "puVar19") ([ "[") (number_literal "-0x3e") (] "]"))) (; ";")) (expression_statement "uVar17 = 0x66;" (assignment_expression "uVar17 = 0x66" (identifier "uVar17") (= "=") (number_literal "0x66")) (; ";")) (expression_statement "uVar14 = 0x74;" (assignment_expression "uVar14 = 0x74" (identifier "uVar14") (= "=") (number_literal "0x74")) (; ";")) (if_statement "if ((bVar3 & 0x40) == 0) {\n            uVar9 = 0x54;\n          }" (if "if") (parenthesized_expression "((bVar3 & 0x40) == 0)" (( "(") (binary_expression "(bVar3 & 0x40) == 0" (parenthesized_expression "(bVar3 & 0x40)" (( "(") (binary_expression "bVar3 & 0x40" (identifier "bVar3") (& "&") (number_literal "0x40")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            uVar9 = 0x54;\n          }" ({ "{") (expression_statement "uVar9 = 0x54;" (assignment_expression "uVar9 = 0x54" (identifier "uVar9") (= "=") (number_literal "0x54")) (; ";")) (} "}"))) (if_statement "if ((bVar2 & 0x40) == 0) {\n            uVar14 = 0x54;\n          }" (if "if") (parenthesized_expression "((bVar2 & 0x40) == 0)" (( "(") (binary_expression "(bVar2 & 0x40) == 0" (parenthesized_expression "(bVar2 & 0x40)" (( "(") (binary_expression "bVar2 & 0x40" (identifier "bVar2") (& "&") (number_literal "0x40")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            uVar14 = 0x54;\n          }" ({ "{") (expression_statement "uVar14 = 0x54;" (assignment_expression "uVar14 = 0x54" (identifier "uVar14") (= "=") (number_literal "0x54")) (; ";")) (} "}"))) (if_statement "if ((char)bVar2 < '\0') {\n            uVar17 = 0x46;\n          }" (if "if") (parenthesized_expression "((char)bVar2 < '\0')" (( "(") (binary_expression "(char)bVar2 < '\0'" (cast_expression "(char)bVar2" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar2")) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            uVar17 = 0x46;\n          }" ({ "{") (expression_statement "uVar17 = 0x46;" (assignment_expression "uVar17 = 0x46" (identifier "uVar17") (= "=") (number_literal "0x46")) (; ";")) (} "}"))) (goto_statement "goto LAB_0001ecec;" (goto "goto") (statement_identifier "LAB_0001ecec") (; ";")) (} "}")))) (} "}")))) (expression_statement "puVar15 = puVar18;" (assignment_expression "puVar15 = puVar18" (identifier "puVar15") (= "=") (identifier "puVar18")) (; ";")) (expression_statement "puVar6 = puVar19 + -0x42;" (assignment_expression "puVar6 = puVar19 + -0x42" (identifier "puVar6") (= "=") (binary_expression "puVar19 + -0x42" (identifier "puVar19") (+ "+") (number_literal "-0x42"))) (; ";")) (do_statement "do {\n        puVar11 = puVar6;\n        puVar5 = puVar15;\n        puVar15 = puVar5 + 4;\n        uVar10 = puVar5[1];\n        uVar13 = puVar5[2];\n        uVar4 = puVar5[3];\n        *puVar11 = *puVar5;\n        puVar11[1] = uVar10;\n        puVar11[2] = uVar13;\n        puVar11[3] = uVar4;\n        puVar6 = puVar11 + 4;\n      } while (puVar15 != puVar18 + 0x40);" (do "do") (compound_statement "{\n        puVar11 = puVar6;\n        puVar5 = puVar15;\n        puVar15 = puVar5 + 4;\n        uVar10 = puVar5[1];\n        uVar13 = puVar5[2];\n        uVar4 = puVar5[3];\n        *puVar11 = *puVar5;\n        puVar11[1] = uVar10;\n        puVar11[2] = uVar13;\n        puVar11[3] = uVar4;\n        puVar6 = puVar11 + 4;\n      }" ({ "{") (expression_statement "puVar11 = puVar6;" (assignment_expression "puVar11 = puVar6" (identifier "puVar11") (= "=") (identifier "puVar6")) (; ";")) (expression_statement "puVar5 = puVar15;" (assignment_expression "puVar5 = puVar15" (identifier "puVar5") (= "=") (identifier "puVar15")) (; ";")) (expression_statement "puVar15 = puVar5 + 4;" (assignment_expression "puVar15 = puVar5 + 4" (identifier "puVar15") (= "=") (binary_expression "puVar5 + 4" (identifier "puVar5") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "uVar10 = puVar5[1];" (assignment_expression "uVar10 = puVar5[1]" (identifier "uVar10") (= "=") (subscript_expression "puVar5[1]" (identifier "puVar5") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar13 = puVar5[2];" (assignment_expression "uVar13 = puVar5[2]" (identifier "uVar13") (= "=") (subscript_expression "puVar5[2]" (identifier "puVar5") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar4 = puVar5[3];" (assignment_expression "uVar4 = puVar5[3]" (identifier "uVar4") (= "=") (subscript_expression "puVar5[3]" (identifier "puVar5") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*puVar11 = *puVar5;" (assignment_expression "*puVar11 = *puVar5" (pointer_expression "*puVar11" (* "*") (identifier "puVar11")) (= "=") (pointer_expression "*puVar5" (* "*") (identifier "puVar5"))) (; ";")) (expression_statement "puVar11[1] = uVar10;" (assignment_expression "puVar11[1] = uVar10" (subscript_expression "puVar11[1]" (identifier "puVar11") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "puVar11[2] = uVar13;" (assignment_expression "puVar11[2] = uVar13" (subscript_expression "puVar11[2]" (identifier "puVar11") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "puVar11[3] = uVar4;" (assignment_expression "puVar11[3] = uVar4" (subscript_expression "puVar11[3]" (identifier "puVar11") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "puVar6 = puVar11 + 4;" (assignment_expression "puVar6 = puVar11 + 4" (identifier "puVar6") (= "=") (binary_expression "puVar11 + 4" (identifier "puVar11") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar15 != puVar18 + 0x40)" (( "(") (binary_expression "puVar15 != puVar18 + 0x40" (identifier "puVar15") (!= "!=") (binary_expression "puVar18 + 0x40" (identifier "puVar18") (+ "+") (number_literal "0x40"))) () ")")) (; ";")) (expression_statement "puVar18 = puVar18 + 0x42;" (assignment_expression "puVar18 = puVar18 + 0x42" (identifier "puVar18") (= "=") (binary_expression "puVar18 + 0x42" (identifier "puVar18") (+ "+") (number_literal "0x42"))) (; ";")) (expression_statement "uVar4 = puVar5[5];" (assignment_expression "uVar4 = puVar5[5]" (identifier "uVar4") (= "=") (subscript_expression "puVar5[5]" (identifier "puVar5") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "puVar11[4] = *puVar15;" (assignment_expression "puVar11[4] = *puVar15" (subscript_expression "puVar11[4]" (identifier "puVar11") ([ "[") (number_literal "4") (] "]")) (= "=") (pointer_expression "*puVar15" (* "*") (identifier "puVar15"))) (; ";")) (expression_statement "puVar11[5] = uVar4;" (assignment_expression "puVar11[5] = uVar4" (subscript_expression "puVar11[5]" (identifier "puVar11") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "puVar15 = (uint *)param_1[2];" (assignment_expression "puVar15 = (uint *)param_1[2]" (identifier "puVar15") (= "=") (cast_expression "(uint *)param_1[2]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")))) (; ";")) (if_statement "if (puVar15 <= puVar18) break;" (if "if") (parenthesized_expression "(puVar15 <= puVar18)" (( "(") (binary_expression "puVar15 <= puVar18" (identifier "puVar15") (<= "<=") (identifier "puVar18")) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (expression_statement "uVar4 = ((int)((int)puVar19 - param_1[1]) >> 3) * 0x3e0f83e1;" (assignment_expression "uVar4 = ((int)((int)puVar19 - param_1[1]) >> 3) * 0x3e0f83e1" (identifier "uVar4") (= "=") (binary_expression "((int)((int)puVar19 - param_1[1]) >> 3) * 0x3e0f83e1" (parenthesized_expression "((int)((int)puVar19 - param_1[1]) >> 3)" (( "(") (binary_expression "(int)((int)puVar19 - param_1[1]) >> 3" (cast_expression "(int)((int)puVar19 - param_1[1])" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((int)puVar19 - param_1[1])" (( "(") (binary_expression "(int)puVar19 - param_1[1]" (cast_expression "(int)puVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar19")) (- "-") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) () ")"))) (>> ">>") (number_literal "3")) () ")")) (* "*") (number_literal "0x3e0f83e1"))) (; ";")) (expression_statement "puVar18 = puVar19;" (assignment_expression "puVar18 = puVar19" (identifier "puVar18") (= "=") (identifier "puVar19")) (; ";")) (goto_statement "goto LAB_0001ea58;" (goto "goto") (statement_identifier "LAB_0001ea58") (; ";")) (labeled_statement "LAB_0001eb60:\n  uVar9 = 0x54;" (statement_identifier "LAB_0001eb60") (: ":") (expression_statement "uVar9 = 0x54;" (assignment_expression "uVar9 = 0x54" (identifier "uVar9") (= "=") (number_literal "0x54")) (; ";"))) (if_statement "if (uVar12 != 0) {\n    uVar14 = 0x54;\n    if ((bVar2 & 0x40) != 0) {\n      uVar14 = 0x74;\n    }\n    uVar17 = 0x66;\n    if ((bVar3 & 0x40) != 0) {\n      uVar9 = 0x74;\n    }\n    uVar8 = 0x66;\n    if ((char)bVar2 < '\0') {\n      uVar8 = 0x46;\n    }\n    if ((char)bVar3 < '\0') {\n      uVar17 = 0x46;\n    }\n    (*(code *)PTR_printf_0003a6f4)(puVar23,puVar19[-0x3e],uVar9,uVar17,puVar18[4],uVar14,uVar8);\n    (*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);\n    puVar15 = (uint *)param_1[2];\n    uVar12 = *(uint *)puVar22 & 0x1080;\n  }" (if "if") (parenthesized_expression "(uVar12 != 0)" (( "(") (binary_expression "uVar12 != 0" (identifier "uVar12") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar14 = 0x54;\n    if ((bVar2 & 0x40) != 0) {\n      uVar14 = 0x74;\n    }\n    uVar17 = 0x66;\n    if ((bVar3 & 0x40) != 0) {\n      uVar9 = 0x74;\n    }\n    uVar8 = 0x66;\n    if ((char)bVar2 < '\0') {\n      uVar8 = 0x46;\n    }\n    if ((char)bVar3 < '\0') {\n      uVar17 = 0x46;\n    }\n    (*(code *)PTR_printf_0003a6f4)(puVar23,puVar19[-0x3e],uVar9,uVar17,puVar18[4],uVar14,uVar8);\n    (*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);\n    puVar15 = (uint *)param_1[2];\n    uVar12 = *(uint *)puVar22 & 0x1080;\n  }" ({ "{") (expression_statement "uVar14 = 0x54;" (assignment_expression "uVar14 = 0x54" (identifier "uVar14") (= "=") (number_literal "0x54")) (; ";")) (if_statement "if ((bVar2 & 0x40) != 0) {\n      uVar14 = 0x74;\n    }" (if "if") (parenthesized_expression "((bVar2 & 0x40) != 0)" (( "(") (binary_expression "(bVar2 & 0x40) != 0" (parenthesized_expression "(bVar2 & 0x40)" (( "(") (binary_expression "bVar2 & 0x40" (identifier "bVar2") (& "&") (number_literal "0x40")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar14 = 0x74;\n    }" ({ "{") (expression_statement "uVar14 = 0x74;" (assignment_expression "uVar14 = 0x74" (identifier "uVar14") (= "=") (number_literal "0x74")) (; ";")) (} "}"))) (expression_statement "uVar17 = 0x66;" (assignment_expression "uVar17 = 0x66" (identifier "uVar17") (= "=") (number_literal "0x66")) (; ";")) (if_statement "if ((bVar3 & 0x40) != 0) {\n      uVar9 = 0x74;\n    }" (if "if") (parenthesized_expression "((bVar3 & 0x40) != 0)" (( "(") (binary_expression "(bVar3 & 0x40) != 0" (parenthesized_expression "(bVar3 & 0x40)" (( "(") (binary_expression "bVar3 & 0x40" (identifier "bVar3") (& "&") (number_literal "0x40")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar9 = 0x74;\n    }" ({ "{") (expression_statement "uVar9 = 0x74;" (assignment_expression "uVar9 = 0x74" (identifier "uVar9") (= "=") (number_literal "0x74")) (; ";")) (} "}"))) (expression_statement "uVar8 = 0x66;" (assignment_expression "uVar8 = 0x66" (identifier "uVar8") (= "=") (number_literal "0x66")) (; ";")) (if_statement "if ((char)bVar2 < '\0') {\n      uVar8 = 0x46;\n    }" (if "if") (parenthesized_expression "((char)bVar2 < '\0')" (( "(") (binary_expression "(char)bVar2 < '\0'" (cast_expression "(char)bVar2" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar2")) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      uVar8 = 0x46;\n    }" ({ "{") (expression_statement "uVar8 = 0x46;" (assignment_expression "uVar8 = 0x46" (identifier "uVar8") (= "=") (number_literal "0x46")) (; ";")) (} "}"))) (if_statement "if ((char)bVar3 < '\0') {\n      uVar17 = 0x46;\n    }" (if "if") (parenthesized_expression "((char)bVar3 < '\0')" (( "(") (binary_expression "(char)bVar3 < '\0'" (cast_expression "(char)bVar3" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar3")) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      uVar17 = 0x46;\n    }" ({ "{") (expression_statement "uVar17 = 0x46;" (assignment_expression "uVar17 = 0x46" (identifier "uVar17") (= "=") (number_literal "0x46")) (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_printf_0003a6f4)(puVar23,puVar19[-0x3e],uVar9,uVar17,puVar18[4],uVar14,uVar8);" (call_expression "(*(code *)PTR_printf_0003a6f4)(puVar23,puVar19[-0x3e],uVar9,uVar17,puVar18[4],uVar14,uVar8)" (parenthesized_expression "(*(code *)PTR_printf_0003a6f4)" (( "(") (pointer_expression "*(code *)PTR_printf_0003a6f4" (* "*") (cast_expression "(code *)PTR_printf_0003a6f4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_printf_0003a6f4"))) () ")")) (argument_list "(puVar23,puVar19[-0x3e],uVar9,uVar17,puVar18[4],uVar14,uVar8)" (( "(") (identifier "puVar23") (, ",") (subscript_expression "puVar19[-0x3e]" (identifier "puVar19") ([ "[") (number_literal "-0x3e") (] "]")) (, ",") (identifier "uVar9") (, ",") (identifier "uVar17") (, ",") (subscript_expression "puVar18[4]" (identifier "puVar18") ([ "[") (number_literal "4") (] "]")) (, ",") (identifier "uVar14") (, ",") (identifier "uVar8") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);" (call_expression "(*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1])" (parenthesized_expression "(*(code *)PTR_printf_0003a6f4)" (( "(") (pointer_expression "*(code *)PTR_printf_0003a6f4" (* "*") (cast_expression "(code *)PTR_printf_0003a6f4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_printf_0003a6f4"))) () ")")) (argument_list "(puVar21,puVar18[1])" (( "(") (identifier "puVar21") (, ",") (subscript_expression "puVar18[1]" (identifier "puVar18") ([ "[") (number_literal "1") (] "]")) () ")"))) (; ";")) (expression_statement "puVar15 = (uint *)param_1[2];" (assignment_expression "puVar15 = (uint *)param_1[2]" (identifier "puVar15") (= "=") (cast_expression "(uint *)param_1[2]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "uVar12 = *(uint *)puVar22 & 0x1080;" (assignment_expression "uVar12 = *(uint *)puVar22 & 0x1080" (identifier "uVar12") (= "=") (binary_expression "*(uint *)puVar22 & 0x1080" (pointer_expression "*(uint *)puVar22" (* "*") (cast_expression "(uint *)puVar22" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar22"))) (& "&") (number_literal "0x1080"))) (; ";")) (} "}"))) (goto_statement "goto LAB_0001e998;" (goto "goto") (statement_identifier "LAB_0001e998") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (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: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator 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: (pointer_declarator 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: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (return_statement))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (pointer_expression argument: (identifier)) (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (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: (number_literal)))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))) right: (identifier)) right: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (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: (binary_expression left: (identifier) right: (number_literal)))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (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)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))) (return_statement)))))) (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier))) right: (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))))))))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (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)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (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: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (identifier) (identifier) (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (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: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (char_literal (escape_sequence)))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) right: (char_literal (escape_sequence)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))) right: (char_literal (character)))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (goto_statement label: (statement_identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))) index: (number_literal)) right: (char_literal (character)))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (char_literal (character)))))) consequence: (goto_statement label: (statement_identifier))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (goto_statement label: (statement_identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (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)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (break_statement))) condition: (parenthesized_expression (true))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (subscript_expression argument: (identifier) index: (number_literal))))) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (number_literal)) (identifier) (identifier) (subscript_expression argument: (identifier) index: (number_literal)) (identifier) (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal)))))) (goto_statement label: (statement_identifier)))))

void MASKED(uint *param_1)

{
  char cVar1;
  byte bVar2;
  byte bVar3;
  uint uVar4;
  uint *puVar5;
  uint *puVar6;
  int iVar7;
  undefined4 uVar8;
  undefined4 uVar9;
  uint uVar10;
  uint *puVar11;
  uint uVar12;
  uint uVar13;
  undefined4 uVar14;
  uint *puVar15;
  int iVar16;
  undefined4 uVar17;
  uint *puVar18;
  uint *puVar19;
  int iVar20;
  undefined *puVar21;
  undefined *puVar22;
  undefined *puVar23;
  uint uVar24;
  uint uVar25;
  
  if (*param_1 == 0) {
    return;
  }
  (*(code *)PTR_qsort_0003a5f0)(param_1[1],*param_1,0x108,PTR_LAB_0003a3e8 + -0x1890);
  puVar22 = PTR_debug_level_0003a418;
  puVar18 = (uint *)param_1[1];
  puVar15 = (uint *)param_1[2];
  uVar13 = puVar18[1];
  uVar4 = *puVar18;
  uVar25 = uVar13 + 1;
  uVar24 = (uVar25 < uVar13) + uVar4;
  if (puVar15 <= puVar18) {
    uVar4 = 0;
    uVar12 = *(uint *)PTR_debug_level_0003a418 & 0x1080;
LAB_0001ea58:
    uVar13 = *param_1;
    if ((uVar13 != 0) && (puVar18[-0x40] == 0 && puVar18[-0x3f] == 0)) {
      iVar20 = *(int *)PTR_core_text_sect_0003a534;
      uVar25 = *(uint *)(iVar20 + 0x24);
      iVar16 = *(int *)(iVar20 + 0x20);
      iVar7 = *(int *)(iVar20 + 0x30);
      uVar24 = uVar25 + *(int *)(iVar20 + 0x34);
      puVar18[-0x3f] = uVar24 - 1;
      puVar18[-0x40] = (uint)(uVar24 - 1 < uVar24) + (uint)(uVar24 < uVar25) + iVar16 + iVar7 + -1;
    }
    if (uVar12 == 0) {
      param_1[2] = (uint)puVar18;
      *param_1 = uVar4;
    }
    else {
      (*(code *)PTR_printf_0003a6f4)(PTR_LAB_0003a3e8 + 0x6b20,uVar13 - uVar4);
      uVar4 = param_1[1];
      uVar24 = *(uint *)puVar22;
      param_1[2] = (uint)puVar18;
      uVar13 = ((int)((int)puVar18 - uVar4) >> 3) * 0x3e0f83e1;
      *param_1 = uVar13;
      if (((uVar24 & 0x1080) != 0) && (uVar13 != 0)) {
        iVar20 = 0;
        uVar13 = 0;
        puVar22 = PTR_LAB_0003a3e8 + 0x6b54;
        while( true ) {
          iVar7 = uVar4 + iVar20;
          uVar13 = uVar13 + 1;
          iVar20 = iVar20 + 0x108;
          (*(code *)PTR_printf_0003a6f4)
                    (puVar22,*(undefined4 *)(iVar7 + 4),*(undefined4 *)(iVar7 + 0xc),
                     *(undefined4 *)(iVar7 + 0x10));
          if (*param_1 <= uVar13) break;
          uVar4 = param_1[1];
        }
        return;
      }
    }
    return;
  }
  uVar12 = *(uint *)PTR_debug_level_0003a418 & 0x1080;
  puVar23 = PTR_LAB_0003a3e8 + 0x6ae0;
  puVar21 = PTR_LAB_0003a3e8 + 0x6b10;
  puVar19 = puVar18;
  if (uVar4 == uVar24) goto LAB_0001e9b8;
LAB_0001e92c:
  if (((uint *)param_1[1] < puVar19) && (puVar19[-0x40] == 0 && puVar19[-0x3f] == 0)) {
    puVar19[-0x3f] = uVar13 - 1;
    puVar19[-0x40] = (uint)(uVar13 - 1 < uVar13) + (uVar4 - 1);
  }
  uVar10 = puVar18[2];
  puVar6 = puVar18;
  puVar5 = puVar19;
  if ((uVar10 == 0 && puVar18[3] == 0) ||
     ((uVar4 <= uVar10 && ((uVar4 != uVar10 || (uVar13 <= puVar18[3])))))) {
    do {
      puVar11 = puVar5;
      puVar15 = puVar6;
      puVar6 = puVar15 + 4;
      uVar24 = puVar15[1];
      uVar13 = puVar15[2];
      uVar4 = puVar15[3];
      *puVar11 = *puVar15;
      puVar11[1] = uVar24;
      puVar11[2] = uVar13;
      puVar11[3] = uVar4;
      puVar5 = puVar11 + 4;
    } while (puVar6 != puVar18 + 0x40);
    puVar19 = puVar19 + 0x42;
    uVar4 = puVar15[5];
    puVar11[4] = *puVar6;
    puVar11[5] = uVar4;
    uVar24 = *puVar18;
    uVar25 = puVar18[1];
    puVar15 = (uint *)param_1[2];
  }
LAB_0001e998:
  puVar18 = puVar18 + 0x42;
  if (puVar18 < puVar15) {
    do {
      uVar4 = *puVar18;
      uVar13 = puVar18[1];
      if (uVar4 != uVar24) goto LAB_0001e92c;
LAB_0001e9b8:
      if (uVar13 != uVar25) goto LAB_0001e92c;
      bVar2 = *(byte *)(puVar18 + 7);
      bVar3 = *(byte *)(puVar19 + -0x3b);
      if (((bVar2 & 0x40) == 0) && ((bVar3 & 0x40) != 0)) {
        if (uVar12 != 0) {
          uVar4 = puVar18[4];
          uVar17 = 0x66;
          uVar13 = puVar19[-0x3e];
          uVar14 = 0x54;
          if ((char)bVar2 < '\0') {
            uVar17 = 0x46;
          }
          uVar9 = 0x74;
LAB_0001ecec:
          uVar8 = 0x66;
          if ((char)bVar3 < '\0') {
            uVar8 = 0x46;
          }
          (*(code *)PTR_printf_0003a6f4)(puVar23,uVar4,uVar14,uVar17,uVar13,uVar9,uVar8);
          (*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);
          uVar12 = *(uint *)puVar22 & 0x1080;
        }
      }
      else {
        if (((bVar2 ^ bVar3) & 0x40) != 0) goto LAB_0001eb60;
        if ((-1 < (char)bVar2) || ((char)bVar3 < '\0')) {
          if ((char)(bVar2 ^ bVar3) < '\0') goto LAB_0001eb60;
          cVar1 = *(char *)puVar18[4];
          if (cVar1 != '_') {
            if (*(char *)puVar19[-0x3e] == '_') goto LAB_0001ecb8;
            if (cVar1 == '\0') goto LAB_0001eb60;
          }
          if ((((char *)puVar18[4])[1] == '_') || (*(char *)(puVar19[-0x3e] + 1) != '_'))
          goto LAB_0001eb60;
        }
LAB_0001ecb8:
        if (uVar12 != 0) {
          uVar4 = puVar18[4];
          uVar9 = 0x74;
          uVar13 = puVar19[-0x3e];
          uVar17 = 0x66;
          uVar14 = 0x74;
          if ((bVar3 & 0x40) == 0) {
            uVar9 = 0x54;
          }
          if ((bVar2 & 0x40) == 0) {
            uVar14 = 0x54;
          }
          if ((char)bVar2 < '\0') {
            uVar17 = 0x46;
          }
          goto LAB_0001ecec;
        }
      }
      puVar15 = puVar18;
      puVar6 = puVar19 + -0x42;
      do {
        puVar11 = puVar6;
        puVar5 = puVar15;
        puVar15 = puVar5 + 4;
        uVar10 = puVar5[1];
        uVar13 = puVar5[2];
        uVar4 = puVar5[3];
        *puVar11 = *puVar5;
        puVar11[1] = uVar10;
        puVar11[2] = uVar13;
        puVar11[3] = uVar4;
        puVar6 = puVar11 + 4;
      } while (puVar15 != puVar18 + 0x40);
      puVar18 = puVar18 + 0x42;
      uVar4 = puVar5[5];
      puVar11[4] = *puVar15;
      puVar11[5] = uVar4;
      puVar15 = (uint *)param_1[2];
      if (puVar15 <= puVar18) break;
    } while( true );
  }
  uVar4 = ((int)((int)puVar19 - param_1[1]) >> 3) * 0x3e0f83e1;
  puVar18 = puVar19;
  goto LAB_0001ea58;
LAB_0001eb60:
  uVar9 = 0x54;
  if (uVar12 != 0) {
    uVar14 = 0x54;
    if ((bVar2 & 0x40) != 0) {
      uVar14 = 0x74;
    }
    uVar17 = 0x66;
    if ((bVar3 & 0x40) != 0) {
      uVar9 = 0x74;
    }
    uVar8 = 0x66;
    if ((char)bVar2 < '\0') {
      uVar8 = 0x46;
    }
    if ((char)bVar3 < '\0') {
      uVar17 = 0x46;
    }
    (*(code *)PTR_printf_0003a6f4)(puVar23,puVar19[-0x3e],uVar9,uVar17,puVar18[4],uVar14,uVar8);
    (*(code *)PTR_printf_0003a6f4)(puVar21,puVar18[1]);
    puVar15 = (uint *)param_1[2];
    uVar12 = *(uint *)puVar22 & 0x1080;
  }
  goto LAB_0001e998;
}

