
/* WARNING: Function: __x86.get_pc_thunk.bp replaced with injection: get_pc_thunk.bp */
/* WARNING: Unknown calling convention */

void symtab_finalize(Sym_Table *tab)

{
  byte bVar1;
  byte bVar2;
  char cVar3;
  uint uVar4;
  uint uVar5;
  bfd_vma bVar6;
  uint uVar7;
  Sym *pSVar8;
  int iVar9;
  uint uVar10;
  int iVar11;
  undefined4 uVar12;
  Sym *pSVar13;
  int iVar14;
  char *pcVar15;
  Sym *pSVar16;
  byte bVar17;
  Sym *local_40;
  uint local_3c;
  uint local_38;
  uint local_34;
  uint local_30;
  
  bVar17 = 0;
  if (tab->len == 0) {
    return;
  }
  qsort(tab->base,tab->len,0xfc,cmp_addr);
  local_40 = tab->base;
  uVar7 = (uint)local_40->addr;
  uVar10 = *(uint *)((int)&local_40->addr + 4);
  local_3c = uVar7 + 1;
  local_38 = uVar10 + (0xfffffffe < uVar7);
  if (local_40 < tab->limit) {
    local_30 = debug_level;
    pSVar8 = local_40;
    do {
      local_34 = local_30 & 0x1080;
      if (local_38 == uVar10 && local_3c == uVar7) {
        bVar1 = pSVar8->field_0x1c;
        bVar2 = local_40[-1].field_0x1c;
        if (((bVar1 & 2) != 0) || ((bVar2 & 2) == 0)) {
          if (((bVar1 ^ bVar2) & 2) == 0) {
            if (((bVar1 & 1) != 0) && ((bVar2 & 1) == 0)) {
              if (local_34 != 0) {
                pcVar15 = local_40[-1].name;
                if ((bVar2 & 2) == 0) {
                  iVar9 = 0x66;
                  iVar11 = 0x54;
                  goto LAB_0001d325;
                }
                iVar11 = 0x74;
                iVar9 = 0x66;
                uVar12 = 0x46;
                goto LAB_0001d049;
              }
              goto LAB_0001d094;
            }
            if (((bVar1 ^ bVar2) & 1) == 0) {
              cVar3 = *pSVar8->name;
              if (cVar3 != '_') {
                if (*local_40[-1].name == '_') goto LAB_0001d008;
                if (cVar3 == '\0') goto LAB_0001d190;
              }
              if ((pSVar8->name[1] != '_') && (local_40[-1].name[1] == '_')) goto LAB_0001d008;
            }
          }
LAB_0001d190:
          if (local_34 != 0) {
            printf("[symtab_finalize] favor %s@%c%c over %s@%c%c",local_40[-1].name,
                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,
                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46,pSVar8->name,
                   (-(uint)((bVar1 & 2) == 0) & 0xffffffe0) + 0x74,
                   (-(uint)((bVar1 & 1) == 0) & 0x20) + 0x46);
            printf(" (addr=%lx)\n",(int)pSVar8->addr);
            local_30 = debug_level;
            local_34 = debug_level & 0x1080;
          }
          goto LAB_0001cfa6;
        }
LAB_0001d008:
        if (local_34 != 0) {
          uVar12 = 0x66;
          pcVar15 = local_40[-1].name;
          iVar9 = (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46;
          iVar11 = (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74;
          if ((bVar1 & 1) != 0) {
LAB_0001d325:
            uVar12 = 0x46;
          }
LAB_0001d049:
          printf("[symtab_finalize] favor %s@%c%c over %s@%c%c",pSVar8->name,
                 (-(uint)((bVar1 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,pcVar15,iVar11,iVar9);
          printf(" (addr=%lx)\n",(int)pSVar8->addr);
          local_30 = debug_level;
          local_34 = debug_level & 0x1080;
        }
LAB_0001d094:
        pSVar13 = pSVar8;
        pSVar16 = local_40 + -1;
        for (iVar9 = 0x3f; iVar9 != 0; iVar9 = iVar9 + -1) {
          *(int *)&pSVar16->addr = (int)pSVar13->addr;
          pSVar13 = (Sym *)((int)pSVar13 + (uint)bVar17 * -8 + 4);
          pSVar16 = (Sym *)((int)pSVar16 + (uint)bVar17 * -8 + 4);
        }
        if (tab->limit <= pSVar8 + 1) goto LAB_0001d0c0;
      }
      else {
        if ((tab->base < local_40) &&
           (*(int *)((int)&local_40[-1].end_addr + 4) == 0 && (int)local_40[-1].end_addr == 0)) {
          *(uint *)&local_40[-1].end_addr = uVar7 - 1;
          *(uint *)((int)&local_40[-1].end_addr + 4) = (uVar10 - 1) + (uint)(uVar7 != 0);
        }
        uVar4 = (uint)pSVar8->end_addr;
        uVar5 = *(uint *)((int)&pSVar8->end_addr + 4);
        if ((uVar10 <= uVar5 && (uint)(uVar4 < uVar7) <= uVar5 - uVar10) ||
           (uVar4 == 0 && uVar5 == 0)) {
          pSVar13 = pSVar8;
          pSVar16 = local_40;
          for (iVar9 = 0x3f; iVar9 != 0; iVar9 = iVar9 + -1) {
            *(int *)&pSVar16->addr = (int)pSVar13->addr;
            pSVar13 = (Sym *)((int)pSVar13 + (uint)bVar17 * -8 + 4);
            pSVar16 = (Sym *)((int)pSVar16 + (uint)bVar17 * -8 + 4);
          }
          local_3c = (uint)pSVar8->addr;
          local_38 = *(uint *)((int)&pSVar8->addr + 4);
          local_40 = local_40 + 1;
        }
LAB_0001cfa6:
        if (tab->limit <= pSVar8 + 1) goto LAB_0001d0c0;
      }
      uVar7 = (uint)pSVar8[1].addr;
      uVar10 = *(uint *)((int)&pSVar8[1].addr + 4);
      pSVar8 = pSVar8 + 1;
    } while( true );
  }
  local_34 = debug_level & 0x1080;
  uVar7 = 0;
LAB_0001d0d2:
  uVar10 = tab->len;
  if ((uVar10 != 0) &&
     (*(int *)((int)&local_40[-1].end_addr + 4) == 0 && (int)local_40[-1].end_addr == 0)) {
    uVar4 = (uint)core_text_sect->size;
    bVar6 = core_text_sect->vma;
    iVar14 = uVar4 + (int)core_text_sect->vma;
    iVar9 = *(int *)((int)&core_text_sect->size + 4);
    iVar11 = *(int *)((int)&core_text_sect->vma + 4);
    *(int *)&local_40[-1].end_addr = iVar14 + -1;
    *(uint *)((int)&local_40[-1].end_addr + 4) =
         iVar9 + iVar11 + (uint)CARRY4(uVar4,(uint)bVar6) + -1 + (uint)(iVar14 != 0);
  }
  if (local_34 != 0) {
    printf("[symtab_finalize]: removed %d duplicate entries\n",uVar10 - uVar7);
    iVar9 = debug_level;
    pSVar8 = tab->base;
    tab->limit = local_40;
    uVar7 = ((int)local_40 - (int)pSVar8 >> 2) * -0x41041041;
    tab->len = uVar7;
    if (((iVar9 & 0x1080U) != 0) && (uVar7 != 0)) {
      uVar7 = 0;
      while( true ) {
        pSVar8 = pSVar8 + uVar7;
        printf("[symtab_finalize] 0x%lx-0x%lx\t%s\n",(int)pSVar8->addr,(int)pSVar8->end_addr,
               pSVar8->name);
        if (tab->len <= uVar7 + 1) break;
        pSVar8 = tab->base;
        uVar7 = uVar7 + 1;
      }
      return;
    }
    return;
  }
  tab->len = uVar7;
  tab->limit = local_40;
  return;
LAB_0001d0c0:
  uVar7 = ((int)local_40 - (int)tab->base >> 2) * -0x41041041;
  goto LAB_0001d0d2;
}



void FUN_0001ce90(size_t *param_1)

{
  uint *puVar1;
  byte bVar2;
  byte bVar3;
  char cVar4;
  uint uVar5;
  size_t sVar6;
  undefined4 *puVar7;
  int iVar8;
  uint uVar9;
  int iVar10;
  size_t sVar11;
  undefined4 uVar12;
  int unaff_EBP;
  uint *puVar13;
  uint *puVar14;
  int iVar15;
  uint *puVar16;
  uint uVar17;
  byte bVar18;
  uint *local_40;
  uint local_3c;
  uint local_38;
  uint local_34;
  uint local_30;
  uint *local_28;
  
  bVar18 = 0;
  FUN_0001c80d();
  if (*param_1 == 0) {
    return;
  }
  qsort((void *)param_1[1],*param_1,0xfc,(__compar_fn_t)(unaff_EBP + -0xc6));
  local_40 = (uint *)param_1[1];
  uVar17 = *local_40;
  uVar9 = local_40[1];
  local_3c = uVar17 + 1;
  local_38 = uVar9 + (0xfffffffe < uVar17);
  if (local_40 < (uint *)param_1[2]) {
    puVar1 = (uint *)(unaff_EBP + 0x112c2);
    local_30 = *puVar1;
    puVar13 = local_40;
    do {
      local_34 = local_30 & 0x1080;
      if (local_38 == uVar9 && local_3c == uVar17) {
        bVar2 = (byte)puVar13[7];
        bVar3 = (byte)local_40[-0x38];
        if (((bVar2 & 2) != 0) || ((bVar3 & 2) == 0)) {
          if (((bVar2 ^ bVar3) & 2) == 0) {
            if (((bVar2 & 1) != 0) && ((bVar3 & 1) == 0)) {
              if (local_34 != 0) {
                uVar17 = local_40[-0x3b];
                if ((bVar3 & 2) == 0) {
                  iVar8 = 0x66;
                  iVar10 = 0x54;
                  goto LAB_0001d325;
                }
                iVar10 = 0x74;
                iVar8 = 0x66;
                uVar12 = 0x46;
                goto LAB_0001d049;
              }
              goto LAB_0001d094;
            }
            if (((bVar2 ^ bVar3) & 1) == 0) {
              cVar4 = *(char *)puVar13[4];
              if (cVar4 != '_') {
                if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;
                if (cVar4 == '\0') goto LAB_0001d190;
              }
              if ((((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_'))
              goto LAB_0001d008;
            }
          }
LAB_0001d190:
          if (local_34 != 0) {
            printf((char *)(unaff_EBP + 0x7006),local_40[-0x3b],
                   (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74,
                   (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46,puVar13[4],
                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,
                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46);
            printf((char *)(unaff_EBP + 0x7191),*puVar13);
            local_30 = *puVar1;
            local_34 = local_30 & 0x1080;
          }
          goto LAB_0001cfa6;
        }
LAB_0001d008:
        if (local_34 != 0) {
          uVar12 = 0x66;
          uVar17 = local_40[-0x3b];
          iVar8 = (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46;
          iVar10 = (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74;
          if ((bVar2 & 1) != 0) {
LAB_0001d325:
            uVar12 = 0x46;
          }
LAB_0001d049:
          printf((char *)(unaff_EBP + 0x7006),puVar13[4],
                 (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,uVar17,iVar10,iVar8);
          printf((char *)(unaff_EBP + 0x7191),*puVar13);
          local_30 = *puVar1;
          local_34 = local_30 & 0x1080;
        }
LAB_0001d094:
        puVar14 = puVar13;
        puVar16 = local_40 + -0x3f;
        for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {
          *puVar16 = *puVar14;
          puVar14 = puVar14 + (uint)bVar18 * -2 + 1;
          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;
        }
        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;
      }
      else {
        if (((uint *)param_1[1] < local_40) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0)) {
          local_40[-0x3d] = uVar17 - 1;
          local_40[-0x3c] = (uVar9 - 1) + (uint)(uVar17 != 0);
        }
        uVar5 = puVar13[3];
        if ((uVar9 <= uVar5 && (uint)(puVar13[2] < uVar17) <= uVar5 - uVar9) ||
           (puVar13[2] == 0 && uVar5 == 0)) {
          puVar14 = puVar13;
          puVar16 = local_40;
          for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {
            *puVar16 = *puVar14;
            puVar14 = puVar14 + (uint)bVar18 * -2 + 1;
            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;
          }
          local_3c = *puVar13;
          local_38 = puVar13[1];
          local_40 = local_40 + 0x3f;
        }
LAB_0001cfa6:
        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;
      }
      uVar17 = puVar13[0x3f];
      uVar9 = puVar13[0x40];
      puVar13 = puVar13 + 0x3f;
    } while( true );
  }
  local_34 = *(uint *)(unaff_EBP + 0x112c2) & 0x1080;
  sVar6 = 0;
LAB_0001d0d2:
  local_28 = (uint *)(unaff_EBP + 0x112c2);
  sVar11 = *param_1;
  if ((sVar11 != 0) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0)) {
    iVar8 = *(int *)(unaff_EBP + 0x11666);
    uVar17 = *(uint *)(iVar8 + 0x2c);
    uVar9 = *(uint *)(iVar8 + 0x1c);
    iVar15 = uVar17 + *(uint *)(iVar8 + 0x1c);
    iVar10 = *(int *)(iVar8 + 0x30);
    iVar8 = *(int *)(iVar8 + 0x20);
    local_40[-0x3d] = iVar15 - 1;
    local_40[-0x3c] = iVar10 + iVar8 + (uint)CARRY4(uVar17,uVar9) + -1 + (uint)(iVar15 != 0);
  }
  if (local_34 != 0) {
    printf((char *)(unaff_EBP + 0x7036),sVar11 - sVar6);
    sVar6 = param_1[1];
    uVar17 = *local_28;
    param_1[2] = (size_t)local_40;
    sVar11 = ((int)((int)local_40 - sVar6) >> 2) * -0x41041041;
    *param_1 = sVar11;
    if (((uVar17 & 0x1080) != 0) && (sVar11 != 0)) {
      uVar17 = 0;
      while( true ) {
        iVar8 = uVar17 * 0xfc;
        uVar17 = uVar17 + 1;
        puVar7 = (undefined4 *)(sVar6 + iVar8);
        printf((char *)(unaff_EBP + 0x706a),*puVar7,puVar7[2],puVar7[4]);
        if (*param_1 <= uVar17) break;
        sVar6 = param_1[1];
      }
      return;
    }
    return;
  }
  *param_1 = sVar6;
  param_1[2] = (size_t)local_40;
  return;
LAB_0001d0c0:
  sVar6 = ((int)((int)local_40 - param_1[1]) >> 2) * -0x41041041;
  goto LAB_0001d0d2;
}


PUSH EBP
CALL 0x0001c80d
ADD EBP,0x1016a
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x3c
MOV EAX,dword ptr [ESP + 0x50]
MOV dword ptr [ESP + 0x20],EBP
MOV EAX,dword ptr [EAX]
TEST EAX,EAX
JNZ 0x0001cec0
ADD ESP,0x3c
POP EBX
POP ESI
POP EDI
POP EBP
RET
LEA EDX,[EBP + 0xfffefdd0]
MOV EBX,EBP
PUSH EDX
PUSH 0xfc
PUSH EAX
MOV EAX,dword ptr [ESP + 0x5c]
PUSH dword ptr [EAX + 0x4]
CALL 0x00012420
MOV EAX,dword ptr [ESP + 0x60]
MOV ECX,dword ptr [EAX + 0x4]
MOV EAX,dword ptr [ECX]
MOV EDX,dword ptr [ECX + 0x4]
MOV dword ptr [ESP + 0x1c],ECX
MOV ESI,EAX
MOV EDI,EDX
ADD ESI,0x1
ADC EDI,0x0
MOV dword ptr [ESP + 0x20],ESI
MOV ESI,ECX
MOV dword ptr [ESP + 0x24],EDI
ADD ESP,0x10
MOV EDI,dword ptr [ESP + 0x50]
CMP ECX,dword ptr [EDI + 0x8]
JNC 0x0001d330
LEA ECX,[EBP + 0x1158]
MOV EDI,EBP
MOV EBP,ESI
LEA ESI,[EDI + 0xffff6e9c]
LEA EDI,[EDI + 0xffff7027]
MOV EBX,dword ptr [ECX]
MOV dword ptr [ESP + 0x24],ECX
MOV dword ptr [ESP + 0x28],ESI
MOV dword ptr [ESP + 0x1c],EBX
MOV dword ptr [ESP + 0x2c],EDI
JMP 0x0001cfbf
MOV EDI,dword ptr [ESP + 0x50]
MOV ESI,dword ptr [ESP + 0xc]
CMP dword ptr [EDI + 0x4],ESI
JNC 0x0001cf71
MOV ECX,dword ptr [ESI + 0xffffff10]
OR ECX,dword ptr [ESI + 0xffffff0c]
JNZ 0x0001cf71
MOV ECX,EAX
MOV EBX,EDX
ADD ECX,-0x1
ADC EBX,-0x1
MOV dword ptr [ESI + 0xffffff0c],ECX
MOV dword ptr [ESI + 0xffffff10],EBX
MOV EBX,dword ptr [EBP + 0x8]
MOV ECX,dword ptr [EBP + 0xc]
CMP EBX,EAX
MOV EDI,ECX
SBB EDI,EDX
JNC 0x0001cf83
OR EBX,ECX
JNZ 0x0001cfa6
MOV EDI,dword ptr [ESP + 0xc]
MOV ECX,0x3f
MOV ESI,EBP
ADD dword ptr [ESP + 0xc],0xfc
MOVSD.REP ES:EDI,ESI
MOV EAX,dword ptr [EBP]
MOV EDX,dword ptr [EBP + 0x4]
MOV dword ptr [ESP + 0x10],EAX
MOV dword ptr [ESP + 0x14],EDX
MOV EAX,dword ptr [ESP + 0x50]
ADD EBP,0xfc
CMP dword ptr [EAX + 0x8],EBP
JBE 0x0001d0c0
MOV EAX,dword ptr [EBP]
MOV EDX,dword ptr [EBP + 0x4]
MOV EBX,dword ptr [ESP + 0x1c]
MOV ESI,dword ptr [ESP + 0x10]
MOV EDI,dword ptr [ESP + 0x14]
AND EBX,0x1080
MOV ECX,ESI
MOV dword ptr [ESP + 0x18],EBX
MOV EBX,EDI
XOR ECX,EAX
XOR EBX,EDX
OR EBX,ECX
JNZ 0x0001cf40
MOVZX EAX,byte ptr [EBP + 0x1c]
MOV EDX,dword ptr [ESP + 0xc]
MOV EDI,EAX
MOVZX EDX,byte ptr [EDX + 0xffffff20]
AND EDI,0x2
JNZ 0x0001d118
TEST DL,0x2
JZ 0x0001d118
MOV ESI,dword ptr [ESP + 0x18]
TEST ESI,ESI
JZ 0x0001d094
MOV ECX,EDX
MOV ESI,dword ptr [ESP + 0xc]
MOV EBX,0x66
AND ECX,0x1
CMP CL,0x1
MOV ESI,dword ptr [ESI + 0xffffff14]
SBB ECX,ECX
AND EDX,0x2
AND ECX,0x20
ADD ECX,0x46
CMP DL,0x1
SBB EDX,EDX
AND EDX,0xffffffe0
ADD EDX,0x74
TEST AL,0x1
JNZ 0x0001d325
MOV EAX,EDI
CMP AL,0x1
SBB EAX,EAX
SUB ESP,0x4
AND EAX,0xffffffe0
PUSH ECX
ADD EAX,0x74
PUSH EDX
PUSH ESI
PUSH EBX
PUSH EAX
PUSH dword ptr [EBP + 0x10]
PUSH dword ptr [ESP + 0x44]
MOV EDI,dword ptr [ESP + 0x40]
MOV EBX,EDI
CALL 0x00012070
ADD ESP,0x18
PUSH dword ptr [EBP]
PUSH dword ptr [ESP + 0x38]
CALL 0x00012070
MOV EAX,dword ptr [ESP + 0x34]
MOV EAX,dword ptr [EAX]
MOV dword ptr [ESP + 0x2c],EAX
AND EAX,0x1080
MOV dword ptr [ESP + 0x28],EAX
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0xc]
MOV ESI,EBP
MOV ECX,0x3f
ADD EBP,0xfc
LEA EDI,[EAX + 0xffffff04]
MOV EAX,dword ptr [ESP + 0x50]
MOVSD.REP ES:EDI,ESI
CMP dword ptr [EAX + 0x8],EBP
JA 0x0001cfb9
LEA ESI,[ESI]
MOV EDX,EAX
MOV EAX,dword ptr [ESP + 0xc]
SUB EAX,dword ptr [EDX + 0x4]
SAR EAX,0x2
IMUL EAX,EAX,-0x41041041
MOV EDX,dword ptr [ESP + 0x50]
MOV EDX,dword ptr [EDX]
TEST EDX,EDX
JZ 0x0001d0f2
MOV EBP,dword ptr [ESP + 0xc]
MOV ECX,dword ptr [EBP + 0xffffff10]
OR ECX,dword ptr [EBP + 0xffffff0c]
JZ 0x0001d2c0
MOV ECX,dword ptr [ESP + 0x18]
TEST ECX,ECX
JNZ 0x0001d220
MOV EDX,dword ptr [ESP + 0x50]
MOV ESI,dword ptr [ESP + 0xc]
MOV dword ptr [EDX],EAX
MOV dword ptr [EDX + 0x8],ESI
ADD ESP,0x3c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV ECX,EAX
XOR ECX,EDX
TEST CL,0x2
JNZ 0x0001d190
TEST AL,0x1
JZ 0x0001d160
TEST DL,0x1
JNZ 0x0001d160
MOV EAX,dword ptr [ESP + 0x18]
TEST EAX,EAX
JZ 0x0001d094
MOV EAX,dword ptr [ESP + 0xc]
AND EDX,0x2
MOV ESI,dword ptr [EAX + 0xffffff14]
JZ 0x0001d31b
MOV EDX,0x74
MOV ECX,0x66
MOV EBX,0x46
JMP 0x0001d049
AND ECX,0x1
JNZ 0x0001d190
MOV EBX,dword ptr [EBP + 0x10]
MOVZX ECX,byte ptr [EBX]
CMP CL,0x5f
JZ 0x0001d2f8
MOV ESI,dword ptr [ESP + 0xc]
MOV ESI,dword ptr [ESI + 0xffffff14]
CMP byte ptr [ESI],0x5f
JZ 0x0001d008
TEST CL,CL
JNZ 0x0001d2f8
NOP
MOV EBX,dword ptr [ESP + 0x18]
TEST EBX,EBX
JZ 0x0001cfa6
AND EAX,0x1
MOV ESI,dword ptr [EBP + 0x10]
CMP AL,0x1
MOV EAX,EDI
SBB EBX,EBX
AND EBX,0x20
ADD EBX,0x46
CMP AL,0x1
MOV EAX,EDX
SBB ECX,ECX
AND EAX,0x1
AND ECX,0xffffffe0
ADD ECX,0x74
CMP AL,0x1
SBB EAX,EAX
AND EDX,0x2
AND EAX,0x20
ADD EAX,0x46
CMP DL,0x1
SBB EDX,EDX
SUB ESP,0x4
AND EDX,0xffffffe0
PUSH EBX
ADD EDX,0x74
PUSH ECX
PUSH ESI
PUSH EAX
PUSH EDX
MOV EAX,dword ptr [ESP + 0x24]
PUSH dword ptr [EAX + 0xffffff14]
PUSH dword ptr [ESP + 0x44]
MOV ESI,dword ptr [ESP + 0x40]
MOV EBX,ESI
CALL 0x00012070
ADD ESP,0x18
PUSH dword ptr [EBP]
PUSH dword ptr [ESP + 0x38]
CALL 0x00012070
MOV EAX,dword ptr [ESP + 0x34]
MOV EAX,dword ptr [EAX]
MOV dword ptr [ESP + 0x2c],EAX
AND EAX,0x1080
MOV dword ptr [ESP + 0x28],EAX
ADD ESP,0x10
JMP 0x0001cfa6
SUB ESP,0x8
SUB EDX,EAX
PUSH EDX
MOV EBP,dword ptr [ESP + 0x2c]
LEA EAX,[EBP + 0xffff6ecc]
MOV EBX,EBP
PUSH EAX
CALL 0x00012070
MOV EAX,dword ptr [ESP + 0x60]
MOV ESI,dword ptr [ESP + 0x1c]
MOV EDI,dword ptr [ESP + 0x34]
MOV EAX,dword ptr [EAX + 0x4]
MOV EDX,ESI
MOV ECX,dword ptr [EDI]
MOV EDI,dword ptr [ESP + 0x60]
ADD ESP,0x10
SUB EDX,EAX
SAR EDX,0x2
MOV dword ptr [EDI + 0x8],ESI
IMUL EDX,EDX,-0x41041041
AND ECX,0x1080
MOV dword ptr [EDI],EDX
JZ 0x0001ceb0
TEST EDX,EDX
JZ 0x0001ceb0
LEA ESI,[EBP + 0xffff6f00]
XOR EDI,EDI
MOV EBP,dword ptr [ESP + 0x50]
JMP 0x0001d28b
MOV EAX,dword ptr [EBP + 0x4]
IMUL EDX,EDI,0xfc
ADD EDI,0x1
ADD EAX,EDX
PUSH dword ptr [EAX + 0x10]
PUSH dword ptr [EAX + 0x8]
PUSH dword ptr [EAX]
PUSH ESI
MOV EBX,dword ptr [ESP + 0x30]
CALL 0x00012070
ADD ESP,0x10
CMP dword ptr [EBP],EDI
JA 0x0001d288
ADD ESP,0x3c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EDI,dword ptr [ESP + 0x20]
LEA ECX,[EDI + 0x14fc]
MOV ECX,dword ptr [ECX]
MOV ESI,dword ptr [ECX + 0x2c]
ADD ESI,dword ptr [ECX + 0x1c]
MOV EDI,dword ptr [ECX + 0x30]
ADC EDI,dword ptr [ECX + 0x20]
MOV ECX,ESI
ADD ECX,-0x1
MOV EBX,EDI
ADC EBX,-0x1
MOV dword ptr [EBP + 0xffffff0c],ECX
MOV dword ptr [EBP + 0xffffff10],EBX
JMP 0x0001d0f2
CMP byte ptr [EBX + 0x1],0x5f
JZ 0x0001d190
MOV EBX,dword ptr [ESP + 0xc]
MOV ECX,dword ptr [EBX + 0xffffff14]
CMP byte ptr [ECX + 0x1],0x5f
JNZ 0x0001d190
JMP 0x0001d008
MOV ECX,0x66
MOV EDX,0x54
MOV EBX,0x46
JMP 0x0001d049
MOV EAX,dword ptr [ESP + 0x20]
LEA EAX,[EAX + 0x1158]
MOV dword ptr [ESP + 0x24],EAX
MOV EAX,dword ptr [EAX]
AND EAX,0x1080
MOV dword ptr [ESP + 0x18],EAX
XOR EAX,EAX
JMP 0x0001d0d2
(translation_unit "void FUN_0001ce90(size_t *param_1)\n\n{\n  uint *puVar1;\n  byte bVar2;\n  byte bVar3;\n  char cVar4;\n  uint uVar5;\n  size_t sVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  uint uVar9;\n  int iVar10;\n  size_t sVar11;\n  undefined4 uVar12;\n  int unaff_EBP;\n  uint *puVar13;\n  uint *puVar14;\n  int iVar15;\n  uint *puVar16;\n  uint uVar17;\n  byte bVar18;\n  uint *local_40;\n  uint local_3c;\n  uint local_38;\n  uint local_34;\n  uint local_30;\n  uint *local_28;\n  \n  bVar18 = 0;\n  FUN_0001c80d();\n  if (*param_1 == 0) {\n    return;\n  }\n  qsort((void *)param_1[1],*param_1,0xfc,(__compar_fn_t)(unaff_EBP + -0xc6));\n  local_40 = (uint *)param_1[1];\n  uVar17 = *local_40;\n  uVar9 = local_40[1];\n  local_3c = uVar17 + 1;\n  local_38 = uVar9 + (0xfffffffe < uVar17);\n  if (local_40 < (uint *)param_1[2]) {\n    puVar1 = (uint *)(unaff_EBP + 0x112c2);\n    local_30 = *puVar1;\n    puVar13 = local_40;\n    do {\n      local_34 = local_30 & 0x1080;\n      if (local_38 == uVar9 && local_3c == uVar17) {\n        bVar2 = (byte)puVar13[7];\n        bVar3 = (byte)local_40[-0x38];\n        if (((bVar2 & 2) != 0) || ((bVar3 & 2) == 0)) {\n          if (((bVar2 ^ bVar3) & 2) == 0) {\n            if (((bVar2 & 1) != 0) && ((bVar3 & 1) == 0)) {\n              if (local_34 != 0) {\n                uVar17 = local_40[-0x3b];\n                if ((bVar3 & 2) == 0) {\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar10 = 0x74;\n                iVar8 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }\n            if (((bVar2 ^ bVar3) & 1) == 0) {\n              cVar4 = *(char *)puVar13[4];\n              if (cVar4 != '_') {\n                if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;\n                if (cVar4 == '\0') goto LAB_0001d190;\n              }\n              if ((((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_'))\n              goto LAB_0001d008;\n            }\n          }\nLAB_0001d190:\n          if (local_34 != 0) {\n            printf((char *)(unaff_EBP + 0x7006),local_40[-0x3b],\n                   (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46,puVar13[4],\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46);\n            printf((char *)(unaff_EBP + 0x7191),*puVar13);\n            local_30 = *puVar1;\n            local_34 = local_30 & 0x1080;\n          }\n          goto LAB_0001cfa6;\n        }\nLAB_0001d008:\n        if (local_34 != 0) {\n          uVar12 = 0x66;\n          uVar17 = local_40[-0x3b];\n          iVar8 = (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46;\n          iVar10 = (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74;\n          if ((bVar2 & 1) != 0) {\nLAB_0001d325:\n            uVar12 = 0x46;\n          }\nLAB_0001d049:\n          printf((char *)(unaff_EBP + 0x7006),puVar13[4],\n                 (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,uVar17,iVar10,iVar8);\n          printf((char *)(unaff_EBP + 0x7191),*puVar13);\n          local_30 = *puVar1;\n          local_34 = local_30 & 0x1080;\n        }\nLAB_0001d094:\n        puVar14 = puVar13;\n        puVar16 = local_40 + -0x3f;\n        for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n          *puVar16 = *puVar14;\n          puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }\n      else {\n        if (((uint *)param_1[1] < local_40) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0)) {\n          local_40[-0x3d] = uVar17 - 1;\n          local_40[-0x3c] = (uVar9 - 1) + (uint)(uVar17 != 0);\n        }\n        uVar5 = puVar13[3];\n        if ((uVar9 <= uVar5 && (uint)(puVar13[2] < uVar17) <= uVar5 - uVar9) ||\n           (puVar13[2] == 0 && uVar5 == 0)) {\n          puVar14 = puVar13;\n          puVar16 = local_40;\n          for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n            *puVar16 = *puVar14;\n            puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          local_3c = *puVar13;\n          local_38 = puVar13[1];\n          local_40 = local_40 + 0x3f;\n        }\nLAB_0001cfa6:\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }\n      uVar17 = puVar13[0x3f];\n      uVar9 = puVar13[0x40];\n      puVar13 = puVar13 + 0x3f;\n    } while( true );\n  }\n  local_34 = *(uint *)(unaff_EBP + 0x112c2) & 0x1080;\n  sVar6 = 0;\nLAB_0001d0d2:\n  local_28 = (uint *)(unaff_EBP + 0x112c2);\n  sVar11 = *param_1;\n  if ((sVar11 != 0) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0)) {\n    iVar8 = *(int *)(unaff_EBP + 0x11666);\n    uVar17 = *(uint *)(iVar8 + 0x2c);\n    uVar9 = *(uint *)(iVar8 + 0x1c);\n    iVar15 = uVar17 + *(uint *)(iVar8 + 0x1c);\n    iVar10 = *(int *)(iVar8 + 0x30);\n    iVar8 = *(int *)(iVar8 + 0x20);\n    local_40[-0x3d] = iVar15 - 1;\n    local_40[-0x3c] = iVar10 + iVar8 + (uint)CARRY4(uVar17,uVar9) + -1 + (uint)(iVar15 != 0);\n  }\n  if (local_34 != 0) {\n    printf((char *)(unaff_EBP + 0x7036),sVar11 - sVar6);\n    sVar6 = param_1[1];\n    uVar17 = *local_28;\n    param_1[2] = (size_t)local_40;\n    sVar11 = ((int)((int)local_40 - sVar6) >> 2) * -0x41041041;\n    *param_1 = sVar11;\n    if (((uVar17 & 0x1080) != 0) && (sVar11 != 0)) {\n      uVar17 = 0;\n      while( true ) {\n        iVar8 = uVar17 * 0xfc;\n        uVar17 = uVar17 + 1;\n        puVar7 = (undefined4 *)(sVar6 + iVar8);\n        printf((char *)(unaff_EBP + 0x706a),*puVar7,puVar7[2],puVar7[4]);\n        if (*param_1 <= uVar17) break;\n        sVar6 = param_1[1];\n      }\n      return;\n    }\n    return;\n  }\n  *param_1 = sVar6;\n  param_1[2] = (size_t)local_40;\n  return;\nLAB_0001d0c0:\n  sVar6 = ((int)((int)local_40 - param_1[1]) >> 2) * -0x41041041;\n  goto LAB_0001d0d2;\n}\n\n" (function_definition "void FUN_0001ce90(size_t *param_1)\n\n{\n  uint *puVar1;\n  byte bVar2;\n  byte bVar3;\n  char cVar4;\n  uint uVar5;\n  size_t sVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  uint uVar9;\n  int iVar10;\n  size_t sVar11;\n  undefined4 uVar12;\n  int unaff_EBP;\n  uint *puVar13;\n  uint *puVar14;\n  int iVar15;\n  uint *puVar16;\n  uint uVar17;\n  byte bVar18;\n  uint *local_40;\n  uint local_3c;\n  uint local_38;\n  uint local_34;\n  uint local_30;\n  uint *local_28;\n  \n  bVar18 = 0;\n  FUN_0001c80d();\n  if (*param_1 == 0) {\n    return;\n  }\n  qsort((void *)param_1[1],*param_1,0xfc,(__compar_fn_t)(unaff_EBP + -0xc6));\n  local_40 = (uint *)param_1[1];\n  uVar17 = *local_40;\n  uVar9 = local_40[1];\n  local_3c = uVar17 + 1;\n  local_38 = uVar9 + (0xfffffffe < uVar17);\n  if (local_40 < (uint *)param_1[2]) {\n    puVar1 = (uint *)(unaff_EBP + 0x112c2);\n    local_30 = *puVar1;\n    puVar13 = local_40;\n    do {\n      local_34 = local_30 & 0x1080;\n      if (local_38 == uVar9 && local_3c == uVar17) {\n        bVar2 = (byte)puVar13[7];\n        bVar3 = (byte)local_40[-0x38];\n        if (((bVar2 & 2) != 0) || ((bVar3 & 2) == 0)) {\n          if (((bVar2 ^ bVar3) & 2) == 0) {\n            if (((bVar2 & 1) != 0) && ((bVar3 & 1) == 0)) {\n              if (local_34 != 0) {\n                uVar17 = local_40[-0x3b];\n                if ((bVar3 & 2) == 0) {\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar10 = 0x74;\n                iVar8 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }\n            if (((bVar2 ^ bVar3) & 1) == 0) {\n              cVar4 = *(char *)puVar13[4];\n              if (cVar4 != '_') {\n                if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;\n                if (cVar4 == '\0') goto LAB_0001d190;\n              }\n              if ((((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_'))\n              goto LAB_0001d008;\n            }\n          }\nLAB_0001d190:\n          if (local_34 != 0) {\n            printf((char *)(unaff_EBP + 0x7006),local_40[-0x3b],\n                   (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46,puVar13[4],\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46);\n            printf((char *)(unaff_EBP + 0x7191),*puVar13);\n            local_30 = *puVar1;\n            local_34 = local_30 & 0x1080;\n          }\n          goto LAB_0001cfa6;\n        }\nLAB_0001d008:\n        if (local_34 != 0) {\n          uVar12 = 0x66;\n          uVar17 = local_40[-0x3b];\n          iVar8 = (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46;\n          iVar10 = (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74;\n          if ((bVar2 & 1) != 0) {\nLAB_0001d325:\n            uVar12 = 0x46;\n          }\nLAB_0001d049:\n          printf((char *)(unaff_EBP + 0x7006),puVar13[4],\n                 (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,uVar17,iVar10,iVar8);\n          printf((char *)(unaff_EBP + 0x7191),*puVar13);\n          local_30 = *puVar1;\n          local_34 = local_30 & 0x1080;\n        }\nLAB_0001d094:\n        puVar14 = puVar13;\n        puVar16 = local_40 + -0x3f;\n        for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n          *puVar16 = *puVar14;\n          puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }\n      else {\n        if (((uint *)param_1[1] < local_40) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0)) {\n          local_40[-0x3d] = uVar17 - 1;\n          local_40[-0x3c] = (uVar9 - 1) + (uint)(uVar17 != 0);\n        }\n        uVar5 = puVar13[3];\n        if ((uVar9 <= uVar5 && (uint)(puVar13[2] < uVar17) <= uVar5 - uVar9) ||\n           (puVar13[2] == 0 && uVar5 == 0)) {\n          puVar14 = puVar13;\n          puVar16 = local_40;\n          for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n            *puVar16 = *puVar14;\n            puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          local_3c = *puVar13;\n          local_38 = puVar13[1];\n          local_40 = local_40 + 0x3f;\n        }\nLAB_0001cfa6:\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }\n      uVar17 = puVar13[0x3f];\n      uVar9 = puVar13[0x40];\n      puVar13 = puVar13 + 0x3f;\n    } while( true );\n  }\n  local_34 = *(uint *)(unaff_EBP + 0x112c2) & 0x1080;\n  sVar6 = 0;\nLAB_0001d0d2:\n  local_28 = (uint *)(unaff_EBP + 0x112c2);\n  sVar11 = *param_1;\n  if ((sVar11 != 0) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0)) {\n    iVar8 = *(int *)(unaff_EBP + 0x11666);\n    uVar17 = *(uint *)(iVar8 + 0x2c);\n    uVar9 = *(uint *)(iVar8 + 0x1c);\n    iVar15 = uVar17 + *(uint *)(iVar8 + 0x1c);\n    iVar10 = *(int *)(iVar8 + 0x30);\n    iVar8 = *(int *)(iVar8 + 0x20);\n    local_40[-0x3d] = iVar15 - 1;\n    local_40[-0x3c] = iVar10 + iVar8 + (uint)CARRY4(uVar17,uVar9) + -1 + (uint)(iVar15 != 0);\n  }\n  if (local_34 != 0) {\n    printf((char *)(unaff_EBP + 0x7036),sVar11 - sVar6);\n    sVar6 = param_1[1];\n    uVar17 = *local_28;\n    param_1[2] = (size_t)local_40;\n    sVar11 = ((int)((int)local_40 - sVar6) >> 2) * -0x41041041;\n    *param_1 = sVar11;\n    if (((uVar17 & 0x1080) != 0) && (sVar11 != 0)) {\n      uVar17 = 0;\n      while( true ) {\n        iVar8 = uVar17 * 0xfc;\n        uVar17 = uVar17 + 1;\n        puVar7 = (undefined4 *)(sVar6 + iVar8);\n        printf((char *)(unaff_EBP + 0x706a),*puVar7,puVar7[2],puVar7[4]);\n        if (*param_1 <= uVar17) break;\n        sVar6 = param_1[1];\n      }\n      return;\n    }\n    return;\n  }\n  *param_1 = sVar6;\n  param_1[2] = (size_t)local_40;\n  return;\nLAB_0001d0c0:\n  sVar6 = ((int)((int)local_40 - param_1[1]) >> 2) * -0x41041041;\n  goto LAB_0001d0d2;\n}" primitive_type (function_declarator "FUN_0001ce90(size_t *param_1)" identifier (parameter_list "(size_t *param_1)" ( (parameter_declaration "size_t *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  uint *puVar1;\n  byte bVar2;\n  byte bVar3;\n  char cVar4;\n  uint uVar5;\n  size_t sVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  uint uVar9;\n  int iVar10;\n  size_t sVar11;\n  undefined4 uVar12;\n  int unaff_EBP;\n  uint *puVar13;\n  uint *puVar14;\n  int iVar15;\n  uint *puVar16;\n  uint uVar17;\n  byte bVar18;\n  uint *local_40;\n  uint local_3c;\n  uint local_38;\n  uint local_34;\n  uint local_30;\n  uint *local_28;\n  \n  bVar18 = 0;\n  FUN_0001c80d();\n  if (*param_1 == 0) {\n    return;\n  }\n  qsort((void *)param_1[1],*param_1,0xfc,(__compar_fn_t)(unaff_EBP + -0xc6));\n  local_40 = (uint *)param_1[1];\n  uVar17 = *local_40;\n  uVar9 = local_40[1];\n  local_3c = uVar17 + 1;\n  local_38 = uVar9 + (0xfffffffe < uVar17);\n  if (local_40 < (uint *)param_1[2]) {\n    puVar1 = (uint *)(unaff_EBP + 0x112c2);\n    local_30 = *puVar1;\n    puVar13 = local_40;\n    do {\n      local_34 = local_30 & 0x1080;\n      if (local_38 == uVar9 && local_3c == uVar17) {\n        bVar2 = (byte)puVar13[7];\n        bVar3 = (byte)local_40[-0x38];\n        if (((bVar2 & 2) != 0) || ((bVar3 & 2) == 0)) {\n          if (((bVar2 ^ bVar3) & 2) == 0) {\n            if (((bVar2 & 1) != 0) && ((bVar3 & 1) == 0)) {\n              if (local_34 != 0) {\n                uVar17 = local_40[-0x3b];\n                if ((bVar3 & 2) == 0) {\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar10 = 0x74;\n                iVar8 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }\n            if (((bVar2 ^ bVar3) & 1) == 0) {\n              cVar4 = *(char *)puVar13[4];\n              if (cVar4 != '_') {\n                if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;\n                if (cVar4 == '\0') goto LAB_0001d190;\n              }\n              if ((((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_'))\n              goto LAB_0001d008;\n            }\n          }\nLAB_0001d190:\n          if (local_34 != 0) {\n            printf((char *)(unaff_EBP + 0x7006),local_40[-0x3b],\n                   (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46,puVar13[4],\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46);\n            printf((char *)(unaff_EBP + 0x7191),*puVar13);\n            local_30 = *puVar1;\n            local_34 = local_30 & 0x1080;\n          }\n          goto LAB_0001cfa6;\n        }\nLAB_0001d008:\n        if (local_34 != 0) {\n          uVar12 = 0x66;\n          uVar17 = local_40[-0x3b];\n          iVar8 = (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46;\n          iVar10 = (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74;\n          if ((bVar2 & 1) != 0) {\nLAB_0001d325:\n            uVar12 = 0x46;\n          }\nLAB_0001d049:\n          printf((char *)(unaff_EBP + 0x7006),puVar13[4],\n                 (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,uVar17,iVar10,iVar8);\n          printf((char *)(unaff_EBP + 0x7191),*puVar13);\n          local_30 = *puVar1;\n          local_34 = local_30 & 0x1080;\n        }\nLAB_0001d094:\n        puVar14 = puVar13;\n        puVar16 = local_40 + -0x3f;\n        for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n          *puVar16 = *puVar14;\n          puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }\n      else {\n        if (((uint *)param_1[1] < local_40) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0)) {\n          local_40[-0x3d] = uVar17 - 1;\n          local_40[-0x3c] = (uVar9 - 1) + (uint)(uVar17 != 0);\n        }\n        uVar5 = puVar13[3];\n        if ((uVar9 <= uVar5 && (uint)(puVar13[2] < uVar17) <= uVar5 - uVar9) ||\n           (puVar13[2] == 0 && uVar5 == 0)) {\n          puVar14 = puVar13;\n          puVar16 = local_40;\n          for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n            *puVar16 = *puVar14;\n            puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          local_3c = *puVar13;\n          local_38 = puVar13[1];\n          local_40 = local_40 + 0x3f;\n        }\nLAB_0001cfa6:\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }\n      uVar17 = puVar13[0x3f];\n      uVar9 = puVar13[0x40];\n      puVar13 = puVar13 + 0x3f;\n    } while( true );\n  }\n  local_34 = *(uint *)(unaff_EBP + 0x112c2) & 0x1080;\n  sVar6 = 0;\nLAB_0001d0d2:\n  local_28 = (uint *)(unaff_EBP + 0x112c2);\n  sVar11 = *param_1;\n  if ((sVar11 != 0) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0)) {\n    iVar8 = *(int *)(unaff_EBP + 0x11666);\n    uVar17 = *(uint *)(iVar8 + 0x2c);\n    uVar9 = *(uint *)(iVar8 + 0x1c);\n    iVar15 = uVar17 + *(uint *)(iVar8 + 0x1c);\n    iVar10 = *(int *)(iVar8 + 0x30);\n    iVar8 = *(int *)(iVar8 + 0x20);\n    local_40[-0x3d] = iVar15 - 1;\n    local_40[-0x3c] = iVar10 + iVar8 + (uint)CARRY4(uVar17,uVar9) + -1 + (uint)(iVar15 != 0);\n  }\n  if (local_34 != 0) {\n    printf((char *)(unaff_EBP + 0x7036),sVar11 - sVar6);\n    sVar6 = param_1[1];\n    uVar17 = *local_28;\n    param_1[2] = (size_t)local_40;\n    sVar11 = ((int)((int)local_40 - sVar6) >> 2) * -0x41041041;\n    *param_1 = sVar11;\n    if (((uVar17 & 0x1080) != 0) && (sVar11 != 0)) {\n      uVar17 = 0;\n      while( true ) {\n        iVar8 = uVar17 * 0xfc;\n        uVar17 = uVar17 + 1;\n        puVar7 = (undefined4 *)(sVar6 + iVar8);\n        printf((char *)(unaff_EBP + 0x706a),*puVar7,puVar7[2],puVar7[4]);\n        if (*param_1 <= uVar17) break;\n        sVar6 = param_1[1];\n      }\n      return;\n    }\n    return;\n  }\n  *param_1 = sVar6;\n  param_1[2] = (size_t)local_40;\n  return;\nLAB_0001d0c0:\n  sVar6 = ((int)((int)local_40 - param_1[1]) >> 2) * -0x41041041;\n  goto LAB_0001d0d2;\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "size_t sVar6;" primitive_type identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "size_t sVar11;" primitive_type identifier ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "int unaff_EBP;" primitive_type identifier ;) (declaration "uint *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "uint *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "uint *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "byte bVar18;" type_identifier identifier ;) (declaration "uint *local_40;" type_identifier (pointer_declarator "*local_40" * identifier) ;) (declaration "uint local_3c;" type_identifier identifier ;) (declaration "uint local_38;" type_identifier identifier ;) (declaration "uint local_34;" type_identifier identifier ;) (declaration "uint local_30;" type_identifier identifier ;) (declaration "uint *local_28;" type_identifier (pointer_declarator "*local_28" * identifier) ;) (expression_statement "bVar18 = 0;" (assignment_expression "bVar18 = 0" identifier = number_literal) ;) (expression_statement "FUN_0001c80d();" (call_expression "FUN_0001c80d()" identifier (argument_list "()" ( ))) ;) (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 "qsort((void *)param_1[1],*param_1,0xfc,(__compar_fn_t)(unaff_EBP + -0xc6));" (call_expression "qsort((void *)param_1[1],*param_1,0xfc,(__compar_fn_t)(unaff_EBP + -0xc6))" identifier (argument_list "((void *)param_1[1],*param_1,0xfc,(__compar_fn_t)(unaff_EBP + -0xc6))" ( (cast_expression "(void *)param_1[1]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ])) , (pointer_expression "*param_1" * identifier) , number_literal , (call_expression "(__compar_fn_t)(unaff_EBP + -0xc6)" (parenthesized_expression "(__compar_fn_t)" ( identifier )) (argument_list "(unaff_EBP + -0xc6)" ( (binary_expression "unaff_EBP + -0xc6" identifier + number_literal) ))) ))) ;) (expression_statement "local_40 = (uint *)param_1[1];" (assignment_expression "local_40 = (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 "uVar17 = *local_40;" (assignment_expression "uVar17 = *local_40" identifier = (pointer_expression "*local_40" * identifier)) ;) (expression_statement "uVar9 = local_40[1];" (assignment_expression "uVar9 = local_40[1]" identifier = (subscript_expression "local_40[1]" identifier [ number_literal ])) ;) (expression_statement "local_3c = uVar17 + 1;" (assignment_expression "local_3c = uVar17 + 1" identifier = (binary_expression "uVar17 + 1" identifier + number_literal)) ;) (expression_statement "local_38 = uVar9 + (0xfffffffe < uVar17);" (assignment_expression "local_38 = uVar9 + (0xfffffffe < uVar17)" identifier = (binary_expression "uVar9 + (0xfffffffe < uVar17)" identifier + (parenthesized_expression "(0xfffffffe < uVar17)" ( (binary_expression "0xfffffffe < uVar17" number_literal < identifier) )))) ;) (if_statement "if (local_40 < (uint *)param_1[2]) {\n    puVar1 = (uint *)(unaff_EBP + 0x112c2);\n    local_30 = *puVar1;\n    puVar13 = local_40;\n    do {\n      local_34 = local_30 & 0x1080;\n      if (local_38 == uVar9 && local_3c == uVar17) {\n        bVar2 = (byte)puVar13[7];\n        bVar3 = (byte)local_40[-0x38];\n        if (((bVar2 & 2) != 0) || ((bVar3 & 2) == 0)) {\n          if (((bVar2 ^ bVar3) & 2) == 0) {\n            if (((bVar2 & 1) != 0) && ((bVar3 & 1) == 0)) {\n              if (local_34 != 0) {\n                uVar17 = local_40[-0x3b];\n                if ((bVar3 & 2) == 0) {\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar10 = 0x74;\n                iVar8 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }\n            if (((bVar2 ^ bVar3) & 1) == 0) {\n              cVar4 = *(char *)puVar13[4];\n              if (cVar4 != '_') {\n                if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;\n                if (cVar4 == '\0') goto LAB_0001d190;\n              }\n              if ((((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_'))\n              goto LAB_0001d008;\n            }\n          }\nLAB_0001d190:\n          if (local_34 != 0) {\n            printf((char *)(unaff_EBP + 0x7006),local_40[-0x3b],\n                   (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46,puVar13[4],\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46);\n            printf((char *)(unaff_EBP + 0x7191),*puVar13);\n            local_30 = *puVar1;\n            local_34 = local_30 & 0x1080;\n          }\n          goto LAB_0001cfa6;\n        }\nLAB_0001d008:\n        if (local_34 != 0) {\n          uVar12 = 0x66;\n          uVar17 = local_40[-0x3b];\n          iVar8 = (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46;\n          iVar10 = (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74;\n          if ((bVar2 & 1) != 0) {\nLAB_0001d325:\n            uVar12 = 0x46;\n          }\nLAB_0001d049:\n          printf((char *)(unaff_EBP + 0x7006),puVar13[4],\n                 (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,uVar17,iVar10,iVar8);\n          printf((char *)(unaff_EBP + 0x7191),*puVar13);\n          local_30 = *puVar1;\n          local_34 = local_30 & 0x1080;\n        }\nLAB_0001d094:\n        puVar14 = puVar13;\n        puVar16 = local_40 + -0x3f;\n        for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n          *puVar16 = *puVar14;\n          puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }\n      else {\n        if (((uint *)param_1[1] < local_40) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0)) {\n          local_40[-0x3d] = uVar17 - 1;\n          local_40[-0x3c] = (uVar9 - 1) + (uint)(uVar17 != 0);\n        }\n        uVar5 = puVar13[3];\n        if ((uVar9 <= uVar5 && (uint)(puVar13[2] < uVar17) <= uVar5 - uVar9) ||\n           (puVar13[2] == 0 && uVar5 == 0)) {\n          puVar14 = puVar13;\n          puVar16 = local_40;\n          for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n            *puVar16 = *puVar14;\n            puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          local_3c = *puVar13;\n          local_38 = puVar13[1];\n          local_40 = local_40 + 0x3f;\n        }\nLAB_0001cfa6:\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }\n      uVar17 = puVar13[0x3f];\n      uVar9 = puVar13[0x40];\n      puVar13 = puVar13 + 0x3f;\n    } while( true );\n  }" if (parenthesized_expression "(local_40 < (uint *)param_1[2])" ( (binary_expression "local_40 < (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 ]))) )) (compound_statement "{\n    puVar1 = (uint *)(unaff_EBP + 0x112c2);\n    local_30 = *puVar1;\n    puVar13 = local_40;\n    do {\n      local_34 = local_30 & 0x1080;\n      if (local_38 == uVar9 && local_3c == uVar17) {\n        bVar2 = (byte)puVar13[7];\n        bVar3 = (byte)local_40[-0x38];\n        if (((bVar2 & 2) != 0) || ((bVar3 & 2) == 0)) {\n          if (((bVar2 ^ bVar3) & 2) == 0) {\n            if (((bVar2 & 1) != 0) && ((bVar3 & 1) == 0)) {\n              if (local_34 != 0) {\n                uVar17 = local_40[-0x3b];\n                if ((bVar3 & 2) == 0) {\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar10 = 0x74;\n                iVar8 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }\n            if (((bVar2 ^ bVar3) & 1) == 0) {\n              cVar4 = *(char *)puVar13[4];\n              if (cVar4 != '_') {\n                if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;\n                if (cVar4 == '\0') goto LAB_0001d190;\n              }\n              if ((((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_'))\n              goto LAB_0001d008;\n            }\n          }\nLAB_0001d190:\n          if (local_34 != 0) {\n            printf((char *)(unaff_EBP + 0x7006),local_40[-0x3b],\n                   (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46,puVar13[4],\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46);\n            printf((char *)(unaff_EBP + 0x7191),*puVar13);\n            local_30 = *puVar1;\n            local_34 = local_30 & 0x1080;\n          }\n          goto LAB_0001cfa6;\n        }\nLAB_0001d008:\n        if (local_34 != 0) {\n          uVar12 = 0x66;\n          uVar17 = local_40[-0x3b];\n          iVar8 = (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46;\n          iVar10 = (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74;\n          if ((bVar2 & 1) != 0) {\nLAB_0001d325:\n            uVar12 = 0x46;\n          }\nLAB_0001d049:\n          printf((char *)(unaff_EBP + 0x7006),puVar13[4],\n                 (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,uVar17,iVar10,iVar8);\n          printf((char *)(unaff_EBP + 0x7191),*puVar13);\n          local_30 = *puVar1;\n          local_34 = local_30 & 0x1080;\n        }\nLAB_0001d094:\n        puVar14 = puVar13;\n        puVar16 = local_40 + -0x3f;\n        for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n          *puVar16 = *puVar14;\n          puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }\n      else {\n        if (((uint *)param_1[1] < local_40) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0)) {\n          local_40[-0x3d] = uVar17 - 1;\n          local_40[-0x3c] = (uVar9 - 1) + (uint)(uVar17 != 0);\n        }\n        uVar5 = puVar13[3];\n        if ((uVar9 <= uVar5 && (uint)(puVar13[2] < uVar17) <= uVar5 - uVar9) ||\n           (puVar13[2] == 0 && uVar5 == 0)) {\n          puVar14 = puVar13;\n          puVar16 = local_40;\n          for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n            *puVar16 = *puVar14;\n            puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          local_3c = *puVar13;\n          local_38 = puVar13[1];\n          local_40 = local_40 + 0x3f;\n        }\nLAB_0001cfa6:\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }\n      uVar17 = puVar13[0x3f];\n      uVar9 = puVar13[0x40];\n      puVar13 = puVar13 + 0x3f;\n    } while( true );\n  }" { (expression_statement "puVar1 = (uint *)(unaff_EBP + 0x112c2);" (assignment_expression "puVar1 = (uint *)(unaff_EBP + 0x112c2)" identifier = (cast_expression "(uint *)(unaff_EBP + 0x112c2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x112c2)" ( (binary_expression "unaff_EBP + 0x112c2" identifier + number_literal) )))) ;) (expression_statement "local_30 = *puVar1;" (assignment_expression "local_30 = *puVar1" identifier = (pointer_expression "*puVar1" * identifier)) ;) (expression_statement "puVar13 = local_40;" (assignment_expression "puVar13 = local_40" identifier = identifier) ;) (do_statement "do {\n      local_34 = local_30 & 0x1080;\n      if (local_38 == uVar9 && local_3c == uVar17) {\n        bVar2 = (byte)puVar13[7];\n        bVar3 = (byte)local_40[-0x38];\n        if (((bVar2 & 2) != 0) || ((bVar3 & 2) == 0)) {\n          if (((bVar2 ^ bVar3) & 2) == 0) {\n            if (((bVar2 & 1) != 0) && ((bVar3 & 1) == 0)) {\n              if (local_34 != 0) {\n                uVar17 = local_40[-0x3b];\n                if ((bVar3 & 2) == 0) {\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar10 = 0x74;\n                iVar8 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }\n            if (((bVar2 ^ bVar3) & 1) == 0) {\n              cVar4 = *(char *)puVar13[4];\n              if (cVar4 != '_') {\n                if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;\n                if (cVar4 == '\0') goto LAB_0001d190;\n              }\n              if ((((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_'))\n              goto LAB_0001d008;\n            }\n          }\nLAB_0001d190:\n          if (local_34 != 0) {\n            printf((char *)(unaff_EBP + 0x7006),local_40[-0x3b],\n                   (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46,puVar13[4],\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46);\n            printf((char *)(unaff_EBP + 0x7191),*puVar13);\n            local_30 = *puVar1;\n            local_34 = local_30 & 0x1080;\n          }\n          goto LAB_0001cfa6;\n        }\nLAB_0001d008:\n        if (local_34 != 0) {\n          uVar12 = 0x66;\n          uVar17 = local_40[-0x3b];\n          iVar8 = (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46;\n          iVar10 = (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74;\n          if ((bVar2 & 1) != 0) {\nLAB_0001d325:\n            uVar12 = 0x46;\n          }\nLAB_0001d049:\n          printf((char *)(unaff_EBP + 0x7006),puVar13[4],\n                 (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,uVar17,iVar10,iVar8);\n          printf((char *)(unaff_EBP + 0x7191),*puVar13);\n          local_30 = *puVar1;\n          local_34 = local_30 & 0x1080;\n        }\nLAB_0001d094:\n        puVar14 = puVar13;\n        puVar16 = local_40 + -0x3f;\n        for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n          *puVar16 = *puVar14;\n          puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }\n      else {\n        if (((uint *)param_1[1] < local_40) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0)) {\n          local_40[-0x3d] = uVar17 - 1;\n          local_40[-0x3c] = (uVar9 - 1) + (uint)(uVar17 != 0);\n        }\n        uVar5 = puVar13[3];\n        if ((uVar9 <= uVar5 && (uint)(puVar13[2] < uVar17) <= uVar5 - uVar9) ||\n           (puVar13[2] == 0 && uVar5 == 0)) {\n          puVar14 = puVar13;\n          puVar16 = local_40;\n          for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n            *puVar16 = *puVar14;\n            puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          local_3c = *puVar13;\n          local_38 = puVar13[1];\n          local_40 = local_40 + 0x3f;\n        }\nLAB_0001cfa6:\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }\n      uVar17 = puVar13[0x3f];\n      uVar9 = puVar13[0x40];\n      puVar13 = puVar13 + 0x3f;\n    } while( true );" do (compound_statement "{\n      local_34 = local_30 & 0x1080;\n      if (local_38 == uVar9 && local_3c == uVar17) {\n        bVar2 = (byte)puVar13[7];\n        bVar3 = (byte)local_40[-0x38];\n        if (((bVar2 & 2) != 0) || ((bVar3 & 2) == 0)) {\n          if (((bVar2 ^ bVar3) & 2) == 0) {\n            if (((bVar2 & 1) != 0) && ((bVar3 & 1) == 0)) {\n              if (local_34 != 0) {\n                uVar17 = local_40[-0x3b];\n                if ((bVar3 & 2) == 0) {\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar10 = 0x74;\n                iVar8 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }\n            if (((bVar2 ^ bVar3) & 1) == 0) {\n              cVar4 = *(char *)puVar13[4];\n              if (cVar4 != '_') {\n                if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;\n                if (cVar4 == '\0') goto LAB_0001d190;\n              }\n              if ((((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_'))\n              goto LAB_0001d008;\n            }\n          }\nLAB_0001d190:\n          if (local_34 != 0) {\n            printf((char *)(unaff_EBP + 0x7006),local_40[-0x3b],\n                   (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46,puVar13[4],\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46);\n            printf((char *)(unaff_EBP + 0x7191),*puVar13);\n            local_30 = *puVar1;\n            local_34 = local_30 & 0x1080;\n          }\n          goto LAB_0001cfa6;\n        }\nLAB_0001d008:\n        if (local_34 != 0) {\n          uVar12 = 0x66;\n          uVar17 = local_40[-0x3b];\n          iVar8 = (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46;\n          iVar10 = (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74;\n          if ((bVar2 & 1) != 0) {\nLAB_0001d325:\n            uVar12 = 0x46;\n          }\nLAB_0001d049:\n          printf((char *)(unaff_EBP + 0x7006),puVar13[4],\n                 (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,uVar17,iVar10,iVar8);\n          printf((char *)(unaff_EBP + 0x7191),*puVar13);\n          local_30 = *puVar1;\n          local_34 = local_30 & 0x1080;\n        }\nLAB_0001d094:\n        puVar14 = puVar13;\n        puVar16 = local_40 + -0x3f;\n        for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n          *puVar16 = *puVar14;\n          puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }\n      else {\n        if (((uint *)param_1[1] < local_40) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0)) {\n          local_40[-0x3d] = uVar17 - 1;\n          local_40[-0x3c] = (uVar9 - 1) + (uint)(uVar17 != 0);\n        }\n        uVar5 = puVar13[3];\n        if ((uVar9 <= uVar5 && (uint)(puVar13[2] < uVar17) <= uVar5 - uVar9) ||\n           (puVar13[2] == 0 && uVar5 == 0)) {\n          puVar14 = puVar13;\n          puVar16 = local_40;\n          for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n            *puVar16 = *puVar14;\n            puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          local_3c = *puVar13;\n          local_38 = puVar13[1];\n          local_40 = local_40 + 0x3f;\n        }\nLAB_0001cfa6:\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }\n      uVar17 = puVar13[0x3f];\n      uVar9 = puVar13[0x40];\n      puVar13 = puVar13 + 0x3f;\n    }" { (expression_statement "local_34 = local_30 & 0x1080;" (assignment_expression "local_34 = local_30 & 0x1080" identifier = (binary_expression "local_30 & 0x1080" identifier & number_literal)) ;) (if_statement "if (local_38 == uVar9 && local_3c == uVar17) {\n        bVar2 = (byte)puVar13[7];\n        bVar3 = (byte)local_40[-0x38];\n        if (((bVar2 & 2) != 0) || ((bVar3 & 2) == 0)) {\n          if (((bVar2 ^ bVar3) & 2) == 0) {\n            if (((bVar2 & 1) != 0) && ((bVar3 & 1) == 0)) {\n              if (local_34 != 0) {\n                uVar17 = local_40[-0x3b];\n                if ((bVar3 & 2) == 0) {\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar10 = 0x74;\n                iVar8 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }\n            if (((bVar2 ^ bVar3) & 1) == 0) {\n              cVar4 = *(char *)puVar13[4];\n              if (cVar4 != '_') {\n                if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;\n                if (cVar4 == '\0') goto LAB_0001d190;\n              }\n              if ((((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_'))\n              goto LAB_0001d008;\n            }\n          }\nLAB_0001d190:\n          if (local_34 != 0) {\n            printf((char *)(unaff_EBP + 0x7006),local_40[-0x3b],\n                   (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46,puVar13[4],\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46);\n            printf((char *)(unaff_EBP + 0x7191),*puVar13);\n            local_30 = *puVar1;\n            local_34 = local_30 & 0x1080;\n          }\n          goto LAB_0001cfa6;\n        }\nLAB_0001d008:\n        if (local_34 != 0) {\n          uVar12 = 0x66;\n          uVar17 = local_40[-0x3b];\n          iVar8 = (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46;\n          iVar10 = (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74;\n          if ((bVar2 & 1) != 0) {\nLAB_0001d325:\n            uVar12 = 0x46;\n          }\nLAB_0001d049:\n          printf((char *)(unaff_EBP + 0x7006),puVar13[4],\n                 (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,uVar17,iVar10,iVar8);\n          printf((char *)(unaff_EBP + 0x7191),*puVar13);\n          local_30 = *puVar1;\n          local_34 = local_30 & 0x1080;\n        }\nLAB_0001d094:\n        puVar14 = puVar13;\n        puVar16 = local_40 + -0x3f;\n        for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n          *puVar16 = *puVar14;\n          puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }\n      else {\n        if (((uint *)param_1[1] < local_40) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0)) {\n          local_40[-0x3d] = uVar17 - 1;\n          local_40[-0x3c] = (uVar9 - 1) + (uint)(uVar17 != 0);\n        }\n        uVar5 = puVar13[3];\n        if ((uVar9 <= uVar5 && (uint)(puVar13[2] < uVar17) <= uVar5 - uVar9) ||\n           (puVar13[2] == 0 && uVar5 == 0)) {\n          puVar14 = puVar13;\n          puVar16 = local_40;\n          for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n            *puVar16 = *puVar14;\n            puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          local_3c = *puVar13;\n          local_38 = puVar13[1];\n          local_40 = local_40 + 0x3f;\n        }\nLAB_0001cfa6:\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }" if (parenthesized_expression "(local_38 == uVar9 && local_3c == uVar17)" ( (binary_expression "local_38 == uVar9 && local_3c == uVar17" (binary_expression "local_38 == uVar9" identifier == identifier) && (binary_expression "local_3c == uVar17" identifier == identifier)) )) (compound_statement "{\n        bVar2 = (byte)puVar13[7];\n        bVar3 = (byte)local_40[-0x38];\n        if (((bVar2 & 2) != 0) || ((bVar3 & 2) == 0)) {\n          if (((bVar2 ^ bVar3) & 2) == 0) {\n            if (((bVar2 & 1) != 0) && ((bVar3 & 1) == 0)) {\n              if (local_34 != 0) {\n                uVar17 = local_40[-0x3b];\n                if ((bVar3 & 2) == 0) {\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar10 = 0x74;\n                iVar8 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }\n            if (((bVar2 ^ bVar3) & 1) == 0) {\n              cVar4 = *(char *)puVar13[4];\n              if (cVar4 != '_') {\n                if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;\n                if (cVar4 == '\0') goto LAB_0001d190;\n              }\n              if ((((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_'))\n              goto LAB_0001d008;\n            }\n          }\nLAB_0001d190:\n          if (local_34 != 0) {\n            printf((char *)(unaff_EBP + 0x7006),local_40[-0x3b],\n                   (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46,puVar13[4],\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46);\n            printf((char *)(unaff_EBP + 0x7191),*puVar13);\n            local_30 = *puVar1;\n            local_34 = local_30 & 0x1080;\n          }\n          goto LAB_0001cfa6;\n        }\nLAB_0001d008:\n        if (local_34 != 0) {\n          uVar12 = 0x66;\n          uVar17 = local_40[-0x3b];\n          iVar8 = (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46;\n          iVar10 = (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74;\n          if ((bVar2 & 1) != 0) {\nLAB_0001d325:\n            uVar12 = 0x46;\n          }\nLAB_0001d049:\n          printf((char *)(unaff_EBP + 0x7006),puVar13[4],\n                 (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,uVar17,iVar10,iVar8);\n          printf((char *)(unaff_EBP + 0x7191),*puVar13);\n          local_30 = *puVar1;\n          local_34 = local_30 & 0x1080;\n        }\nLAB_0001d094:\n        puVar14 = puVar13;\n        puVar16 = local_40 + -0x3f;\n        for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n          *puVar16 = *puVar14;\n          puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }" { (expression_statement "bVar2 = (byte)puVar13[7];" (assignment_expression "bVar2 = (byte)puVar13[7]" identifier = (cast_expression "(byte)puVar13[7]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar13[7]" identifier [ number_literal ]))) ;) (expression_statement "bVar3 = (byte)local_40[-0x38];" (assignment_expression "bVar3 = (byte)local_40[-0x38]" identifier = (cast_expression "(byte)local_40[-0x38]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_40[-0x38]" identifier [ number_literal ]))) ;) (if_statement "if (((bVar2 & 2) != 0) || ((bVar3 & 2) == 0)) {\n          if (((bVar2 ^ bVar3) & 2) == 0) {\n            if (((bVar2 & 1) != 0) && ((bVar3 & 1) == 0)) {\n              if (local_34 != 0) {\n                uVar17 = local_40[-0x3b];\n                if ((bVar3 & 2) == 0) {\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar10 = 0x74;\n                iVar8 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }\n            if (((bVar2 ^ bVar3) & 1) == 0) {\n              cVar4 = *(char *)puVar13[4];\n              if (cVar4 != '_') {\n                if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;\n                if (cVar4 == '\0') goto LAB_0001d190;\n              }\n              if ((((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_'))\n              goto LAB_0001d008;\n            }\n          }\nLAB_0001d190:\n          if (local_34 != 0) {\n            printf((char *)(unaff_EBP + 0x7006),local_40[-0x3b],\n                   (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46,puVar13[4],\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46);\n            printf((char *)(unaff_EBP + 0x7191),*puVar13);\n            local_30 = *puVar1;\n            local_34 = local_30 & 0x1080;\n          }\n          goto LAB_0001cfa6;\n        }" if (parenthesized_expression "(((bVar2 & 2) != 0) || ((bVar3 & 2) == 0))" ( (binary_expression "((bVar2 & 2) != 0) || ((bVar3 & 2) == 0)" (parenthesized_expression "((bVar2 & 2) != 0)" ( (binary_expression "(bVar2 & 2) != 0" (parenthesized_expression "(bVar2 & 2)" ( (binary_expression "bVar2 & 2" identifier & number_literal) )) != number_literal) )) || (parenthesized_expression "((bVar3 & 2) == 0)" ( (binary_expression "(bVar3 & 2) == 0" (parenthesized_expression "(bVar3 & 2)" ( (binary_expression "bVar3 & 2" identifier & number_literal) )) == number_literal) ))) )) (compound_statement "{\n          if (((bVar2 ^ bVar3) & 2) == 0) {\n            if (((bVar2 & 1) != 0) && ((bVar3 & 1) == 0)) {\n              if (local_34 != 0) {\n                uVar17 = local_40[-0x3b];\n                if ((bVar3 & 2) == 0) {\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar10 = 0x74;\n                iVar8 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }\n            if (((bVar2 ^ bVar3) & 1) == 0) {\n              cVar4 = *(char *)puVar13[4];\n              if (cVar4 != '_') {\n                if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;\n                if (cVar4 == '\0') goto LAB_0001d190;\n              }\n              if ((((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_'))\n              goto LAB_0001d008;\n            }\n          }\nLAB_0001d190:\n          if (local_34 != 0) {\n            printf((char *)(unaff_EBP + 0x7006),local_40[-0x3b],\n                   (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46,puVar13[4],\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46);\n            printf((char *)(unaff_EBP + 0x7191),*puVar13);\n            local_30 = *puVar1;\n            local_34 = local_30 & 0x1080;\n          }\n          goto LAB_0001cfa6;\n        }" { (if_statement "if (((bVar2 ^ bVar3) & 2) == 0) {\n            if (((bVar2 & 1) != 0) && ((bVar3 & 1) == 0)) {\n              if (local_34 != 0) {\n                uVar17 = local_40[-0x3b];\n                if ((bVar3 & 2) == 0) {\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar10 = 0x74;\n                iVar8 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }\n            if (((bVar2 ^ bVar3) & 1) == 0) {\n              cVar4 = *(char *)puVar13[4];\n              if (cVar4 != '_') {\n                if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;\n                if (cVar4 == '\0') goto LAB_0001d190;\n              }\n              if ((((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_'))\n              goto LAB_0001d008;\n            }\n          }" if (parenthesized_expression "(((bVar2 ^ bVar3) & 2) == 0)" ( (binary_expression "((bVar2 ^ bVar3) & 2) == 0" (parenthesized_expression "((bVar2 ^ bVar3) & 2)" ( (binary_expression "(bVar2 ^ bVar3) & 2" (parenthesized_expression "(bVar2 ^ bVar3)" ( (binary_expression "bVar2 ^ bVar3" identifier ^ identifier) )) & number_literal) )) == number_literal) )) (compound_statement "{\n            if (((bVar2 & 1) != 0) && ((bVar3 & 1) == 0)) {\n              if (local_34 != 0) {\n                uVar17 = local_40[-0x3b];\n                if ((bVar3 & 2) == 0) {\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar10 = 0x74;\n                iVar8 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }\n            if (((bVar2 ^ bVar3) & 1) == 0) {\n              cVar4 = *(char *)puVar13[4];\n              if (cVar4 != '_') {\n                if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;\n                if (cVar4 == '\0') goto LAB_0001d190;\n              }\n              if ((((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_'))\n              goto LAB_0001d008;\n            }\n          }" { (if_statement "if (((bVar2 & 1) != 0) && ((bVar3 & 1) == 0)) {\n              if (local_34 != 0) {\n                uVar17 = local_40[-0x3b];\n                if ((bVar3 & 2) == 0) {\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar10 = 0x74;\n                iVar8 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }" if (parenthesized_expression "(((bVar2 & 1) != 0) && ((bVar3 & 1) == 0))" ( (binary_expression "((bVar2 & 1) != 0) && ((bVar3 & 1) == 0)" (parenthesized_expression "((bVar2 & 1) != 0)" ( (binary_expression "(bVar2 & 1) != 0" (parenthesized_expression "(bVar2 & 1)" ( (binary_expression "bVar2 & 1" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "((bVar3 & 1) == 0)" ( (binary_expression "(bVar3 & 1) == 0" (parenthesized_expression "(bVar3 & 1)" ( (binary_expression "bVar3 & 1" identifier & number_literal) )) == number_literal) ))) )) (compound_statement "{\n              if (local_34 != 0) {\n                uVar17 = local_40[-0x3b];\n                if ((bVar3 & 2) == 0) {\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar10 = 0x74;\n                iVar8 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }" { (if_statement "if (local_34 != 0) {\n                uVar17 = local_40[-0x3b];\n                if ((bVar3 & 2) == 0) {\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar10 = 0x74;\n                iVar8 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }" if (parenthesized_expression "(local_34 != 0)" ( (binary_expression "local_34 != 0" identifier != number_literal) )) (compound_statement "{\n                uVar17 = local_40[-0x3b];\n                if ((bVar3 & 2) == 0) {\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar10 = 0x74;\n                iVar8 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }" { (expression_statement "uVar17 = local_40[-0x3b];" (assignment_expression "uVar17 = local_40[-0x3b]" identifier = (subscript_expression "local_40[-0x3b]" identifier [ number_literal ])) ;) (if_statement "if ((bVar3 & 2) == 0) {\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }" if (parenthesized_expression "((bVar3 & 2) == 0)" ( (binary_expression "(bVar3 & 2) == 0" (parenthesized_expression "(bVar3 & 2)" ( (binary_expression "bVar3 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }" { (expression_statement "iVar8 = 0x66;" (assignment_expression "iVar8 = 0x66" identifier = number_literal) ;) (expression_statement "iVar10 = 0x54;" (assignment_expression "iVar10 = 0x54" identifier = number_literal) ;) (goto_statement "goto LAB_0001d325;" goto statement_identifier ;) })) (expression_statement "iVar10 = 0x74;" (assignment_expression "iVar10 = 0x74" identifier = number_literal) ;) (expression_statement "iVar8 = 0x66;" (assignment_expression "iVar8 = 0x66" identifier = number_literal) ;) (expression_statement "uVar12 = 0x46;" (assignment_expression "uVar12 = 0x46" identifier = number_literal) ;) (goto_statement "goto LAB_0001d049;" goto statement_identifier ;) })) (goto_statement "goto LAB_0001d094;" goto statement_identifier ;) })) (if_statement "if (((bVar2 ^ bVar3) & 1) == 0) {\n              cVar4 = *(char *)puVar13[4];\n              if (cVar4 != '_') {\n                if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;\n                if (cVar4 == '\0') goto LAB_0001d190;\n              }\n              if ((((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_'))\n              goto LAB_0001d008;\n            }" if (parenthesized_expression "(((bVar2 ^ bVar3) & 1) == 0)" ( (binary_expression "((bVar2 ^ bVar3) & 1) == 0" (parenthesized_expression "((bVar2 ^ bVar3) & 1)" ( (binary_expression "(bVar2 ^ bVar3) & 1" (parenthesized_expression "(bVar2 ^ bVar3)" ( (binary_expression "bVar2 ^ bVar3" identifier ^ identifier) )) & number_literal) )) == number_literal) )) (compound_statement "{\n              cVar4 = *(char *)puVar13[4];\n              if (cVar4 != '_') {\n                if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;\n                if (cVar4 == '\0') goto LAB_0001d190;\n              }\n              if ((((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_'))\n              goto LAB_0001d008;\n            }" { (expression_statement "cVar4 = *(char *)puVar13[4];" (assignment_expression "cVar4 = *(char *)puVar13[4]" identifier = (pointer_expression "*(char *)puVar13[4]" * (cast_expression "(char *)puVar13[4]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[4]" identifier [ number_literal ])))) ;) (if_statement "if (cVar4 != '_') {\n                if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;\n                if (cVar4 == '\0') goto LAB_0001d190;\n              }" if (parenthesized_expression "(cVar4 != '_')" ( (binary_expression "cVar4 != '_'" identifier != (char_literal "'_'" ' character ')) )) (compound_statement "{\n                if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;\n                if (cVar4 == '\0') goto LAB_0001d190;\n              }" { (if_statement "if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;" if (parenthesized_expression "(*(char *)local_40[-0x3b] == '_')" ( (binary_expression "*(char *)local_40[-0x3b] == '_'" (pointer_expression "*(char *)local_40[-0x3b]" * (cast_expression "(char *)local_40[-0x3b]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_40[-0x3b]" identifier [ number_literal ]))) == (char_literal "'_'" ' character ')) )) (goto_statement "goto LAB_0001d008;" goto statement_identifier ;)) (if_statement "if (cVar4 == '\0') goto LAB_0001d190;" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0001d190;" goto statement_identifier ;)) })) (if_statement "if ((((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_'))\n              goto LAB_0001d008;" if (parenthesized_expression "((((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_'))" ( (binary_expression "(((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_')" (parenthesized_expression "(((char *)puVar13[4])[1] != '_')" ( (binary_expression "((char *)puVar13[4])[1] != '_'" (subscript_expression "((char *)puVar13[4])[1]" (parenthesized_expression "((char *)puVar13[4])" ( (cast_expression "(char *)puVar13[4]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[4]" identifier [ number_literal ])) )) [ number_literal ]) != (char_literal "'_'" ' character ')) )) && (parenthesized_expression "(*(char *)(local_40[-0x3b] + 1) == '_')" ( (binary_expression "*(char *)(local_40[-0x3b] + 1) == '_'" (pointer_expression "*(char *)(local_40[-0x3b] + 1)" * (cast_expression "(char *)(local_40[-0x3b] + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_40[-0x3b] + 1)" ( (binary_expression "local_40[-0x3b] + 1" (subscript_expression "local_40[-0x3b]" identifier [ number_literal ]) + number_literal) )))) == (char_literal "'_'" ' character ')) ))) )) (goto_statement "goto LAB_0001d008;" goto statement_identifier ;)) })) })) (labeled_statement "LAB_0001d190:\n          if (local_34 != 0) {\n            printf((char *)(unaff_EBP + 0x7006),local_40[-0x3b],\n                   (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46,puVar13[4],\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46);\n            printf((char *)(unaff_EBP + 0x7191),*puVar13);\n            local_30 = *puVar1;\n            local_34 = local_30 & 0x1080;\n          }" statement_identifier : (if_statement "if (local_34 != 0) {\n            printf((char *)(unaff_EBP + 0x7006),local_40[-0x3b],\n                   (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46,puVar13[4],\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46);\n            printf((char *)(unaff_EBP + 0x7191),*puVar13);\n            local_30 = *puVar1;\n            local_34 = local_30 & 0x1080;\n          }" if (parenthesized_expression "(local_34 != 0)" ( (binary_expression "local_34 != 0" identifier != number_literal) )) (compound_statement "{\n            printf((char *)(unaff_EBP + 0x7006),local_40[-0x3b],\n                   (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46,puVar13[4],\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46);\n            printf((char *)(unaff_EBP + 0x7191),*puVar13);\n            local_30 = *puVar1;\n            local_34 = local_30 & 0x1080;\n          }" { (expression_statement "printf((char *)(unaff_EBP + 0x7006),local_40[-0x3b],\n                   (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46,puVar13[4],\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46);" (call_expression "printf((char *)(unaff_EBP + 0x7006),local_40[-0x3b],\n                   (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46,puVar13[4],\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46)" identifier (argument_list "((char *)(unaff_EBP + 0x7006),local_40[-0x3b],\n                   (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46,puVar13[4],\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46)" ( (cast_expression "(char *)(unaff_EBP + 0x7006)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x7006)" ( (binary_expression "unaff_EBP + 0x7006" identifier + number_literal) ))) , (subscript_expression "local_40[-0x3b]" identifier [ number_literal ]) , (binary_expression "(-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74" (parenthesized_expression "(-(uint)((bVar3 & 2) == 0) & 0xffffffe0)" ( (binary_expression "-(uint)((bVar3 & 2) == 0) & 0xffffffe0" (unary_expression "-(uint)((bVar3 & 2) == 0)" - (call_expression "(uint)((bVar3 & 2) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((bVar3 & 2) == 0)" ( (binary_expression "(bVar3 & 2) == 0" (parenthesized_expression "(bVar3 & 2)" ( (binary_expression "bVar3 & 2" identifier & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal) , (binary_expression "(-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46" (parenthesized_expression "(-(uint)((bVar3 & 1) == 0) & 0x20)" ( (binary_expression "-(uint)((bVar3 & 1) == 0) & 0x20" (unary_expression "-(uint)((bVar3 & 1) == 0)" - (call_expression "(uint)((bVar3 & 1) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((bVar3 & 1) == 0)" ( (binary_expression "(bVar3 & 1) == 0" (parenthesized_expression "(bVar3 & 1)" ( (binary_expression "bVar3 & 1" identifier & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal) , (subscript_expression "puVar13[4]" identifier [ number_literal ]) , (binary_expression "(-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74" (parenthesized_expression "(-(uint)((bVar2 & 2) == 0) & 0xffffffe0)" ( (binary_expression "-(uint)((bVar2 & 2) == 0) & 0xffffffe0" (unary_expression "-(uint)((bVar2 & 2) == 0)" - (call_expression "(uint)((bVar2 & 2) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((bVar2 & 2) == 0)" ( (binary_expression "(bVar2 & 2) == 0" (parenthesized_expression "(bVar2 & 2)" ( (binary_expression "bVar2 & 2" identifier & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal) , (binary_expression "(-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46" (parenthesized_expression "(-(uint)((bVar2 & 1) == 0) & 0x20)" ( (binary_expression "-(uint)((bVar2 & 1) == 0) & 0x20" (unary_expression "-(uint)((bVar2 & 1) == 0)" - (call_expression "(uint)((bVar2 & 1) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((bVar2 & 1) == 0)" ( (binary_expression "(bVar2 & 1) == 0" (parenthesized_expression "(bVar2 & 1)" ( (binary_expression "bVar2 & 1" identifier & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal) ))) ;) (expression_statement "printf((char *)(unaff_EBP + 0x7191),*puVar13);" (call_expression "printf((char *)(unaff_EBP + 0x7191),*puVar13)" identifier (argument_list "((char *)(unaff_EBP + 0x7191),*puVar13)" ( (cast_expression "(char *)(unaff_EBP + 0x7191)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x7191)" ( (binary_expression "unaff_EBP + 0x7191" identifier + number_literal) ))) , (pointer_expression "*puVar13" * identifier) ))) ;) (expression_statement "local_30 = *puVar1;" (assignment_expression "local_30 = *puVar1" identifier = (pointer_expression "*puVar1" * identifier)) ;) (expression_statement "local_34 = local_30 & 0x1080;" (assignment_expression "local_34 = local_30 & 0x1080" identifier = (binary_expression "local_30 & 0x1080" identifier & number_literal)) ;) }))) (goto_statement "goto LAB_0001cfa6;" goto statement_identifier ;) })) (labeled_statement "LAB_0001d008:\n        if (local_34 != 0) {\n          uVar12 = 0x66;\n          uVar17 = local_40[-0x3b];\n          iVar8 = (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46;\n          iVar10 = (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74;\n          if ((bVar2 & 1) != 0) {\nLAB_0001d325:\n            uVar12 = 0x46;\n          }\nLAB_0001d049:\n          printf((char *)(unaff_EBP + 0x7006),puVar13[4],\n                 (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,uVar17,iVar10,iVar8);\n          printf((char *)(unaff_EBP + 0x7191),*puVar13);\n          local_30 = *puVar1;\n          local_34 = local_30 & 0x1080;\n        }" statement_identifier : (if_statement "if (local_34 != 0) {\n          uVar12 = 0x66;\n          uVar17 = local_40[-0x3b];\n          iVar8 = (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46;\n          iVar10 = (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74;\n          if ((bVar2 & 1) != 0) {\nLAB_0001d325:\n            uVar12 = 0x46;\n          }\nLAB_0001d049:\n          printf((char *)(unaff_EBP + 0x7006),puVar13[4],\n                 (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,uVar17,iVar10,iVar8);\n          printf((char *)(unaff_EBP + 0x7191),*puVar13);\n          local_30 = *puVar1;\n          local_34 = local_30 & 0x1080;\n        }" if (parenthesized_expression "(local_34 != 0)" ( (binary_expression "local_34 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar12 = 0x66;\n          uVar17 = local_40[-0x3b];\n          iVar8 = (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46;\n          iVar10 = (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74;\n          if ((bVar2 & 1) != 0) {\nLAB_0001d325:\n            uVar12 = 0x46;\n          }\nLAB_0001d049:\n          printf((char *)(unaff_EBP + 0x7006),puVar13[4],\n                 (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,uVar17,iVar10,iVar8);\n          printf((char *)(unaff_EBP + 0x7191),*puVar13);\n          local_30 = *puVar1;\n          local_34 = local_30 & 0x1080;\n        }" { (expression_statement "uVar12 = 0x66;" (assignment_expression "uVar12 = 0x66" identifier = number_literal) ;) (expression_statement "uVar17 = local_40[-0x3b];" (assignment_expression "uVar17 = local_40[-0x3b]" identifier = (subscript_expression "local_40[-0x3b]" identifier [ number_literal ])) ;) (expression_statement "iVar8 = (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46;" (assignment_expression "iVar8 = (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46" identifier = (binary_expression "(-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46" (parenthesized_expression "(-(uint)((bVar3 & 1) == 0) & 0x20)" ( (binary_expression "-(uint)((bVar3 & 1) == 0) & 0x20" (unary_expression "-(uint)((bVar3 & 1) == 0)" - (call_expression "(uint)((bVar3 & 1) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((bVar3 & 1) == 0)" ( (binary_expression "(bVar3 & 1) == 0" (parenthesized_expression "(bVar3 & 1)" ( (binary_expression "bVar3 & 1" identifier & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal)) ;) (expression_statement "iVar10 = (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74;" (assignment_expression "iVar10 = (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74" identifier = (binary_expression "(-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74" (parenthesized_expression "(-(uint)((bVar3 & 2) == 0) & 0xffffffe0)" ( (binary_expression "-(uint)((bVar3 & 2) == 0) & 0xffffffe0" (unary_expression "-(uint)((bVar3 & 2) == 0)" - (call_expression "(uint)((bVar3 & 2) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((bVar3 & 2) == 0)" ( (binary_expression "(bVar3 & 2) == 0" (parenthesized_expression "(bVar3 & 2)" ( (binary_expression "bVar3 & 2" identifier & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal)) ;) (if_statement "if ((bVar2 & 1) != 0) {\nLAB_0001d325:\n            uVar12 = 0x46;\n          }" if (parenthesized_expression "((bVar2 & 1) != 0)" ( (binary_expression "(bVar2 & 1) != 0" (parenthesized_expression "(bVar2 & 1)" ( (binary_expression "bVar2 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_0001d325:\n            uVar12 = 0x46;\n          }" { (labeled_statement "LAB_0001d325:\n            uVar12 = 0x46;" statement_identifier : (expression_statement "uVar12 = 0x46;" (assignment_expression "uVar12 = 0x46" identifier = number_literal) ;)) })) (labeled_statement "LAB_0001d049:\n          printf((char *)(unaff_EBP + 0x7006),puVar13[4],\n                 (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,uVar17,iVar10,iVar8);" statement_identifier : (expression_statement "printf((char *)(unaff_EBP + 0x7006),puVar13[4],\n                 (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,uVar17,iVar10,iVar8);" (call_expression "printf((char *)(unaff_EBP + 0x7006),puVar13[4],\n                 (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,uVar17,iVar10,iVar8)" identifier (argument_list "((char *)(unaff_EBP + 0x7006),puVar13[4],\n                 (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,uVar17,iVar10,iVar8)" ( (cast_expression "(char *)(unaff_EBP + 0x7006)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x7006)" ( (binary_expression "unaff_EBP + 0x7006" identifier + number_literal) ))) , (subscript_expression "puVar13[4]" identifier [ number_literal ]) , (binary_expression "(-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74" (parenthesized_expression "(-(uint)((bVar2 & 2) == 0) & 0xffffffe0)" ( (binary_expression "-(uint)((bVar2 & 2) == 0) & 0xffffffe0" (unary_expression "-(uint)((bVar2 & 2) == 0)" - (call_expression "(uint)((bVar2 & 2) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((bVar2 & 2) == 0)" ( (binary_expression "(bVar2 & 2) == 0" (parenthesized_expression "(bVar2 & 2)" ( (binary_expression "bVar2 & 2" identifier & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal) , identifier , identifier , identifier , identifier ))) ;)) (expression_statement "printf((char *)(unaff_EBP + 0x7191),*puVar13);" (call_expression "printf((char *)(unaff_EBP + 0x7191),*puVar13)" identifier (argument_list "((char *)(unaff_EBP + 0x7191),*puVar13)" ( (cast_expression "(char *)(unaff_EBP + 0x7191)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x7191)" ( (binary_expression "unaff_EBP + 0x7191" identifier + number_literal) ))) , (pointer_expression "*puVar13" * identifier) ))) ;) (expression_statement "local_30 = *puVar1;" (assignment_expression "local_30 = *puVar1" identifier = (pointer_expression "*puVar1" * identifier)) ;) (expression_statement "local_34 = local_30 & 0x1080;" (assignment_expression "local_34 = local_30 & 0x1080" identifier = (binary_expression "local_30 & 0x1080" identifier & number_literal)) ;) }))) (labeled_statement "LAB_0001d094:\n        puVar14 = puVar13;" statement_identifier : (expression_statement "puVar14 = puVar13;" (assignment_expression "puVar14 = puVar13" identifier = identifier) ;)) (expression_statement "puVar16 = local_40 + -0x3f;" (assignment_expression "puVar16 = local_40 + -0x3f" identifier = (binary_expression "local_40 + -0x3f" identifier + number_literal)) ;) (for_statement "for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n          *puVar16 = *puVar14;\n          puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }" for ( (assignment_expression "iVar8 = 0x3f" identifier = number_literal) ; (binary_expression "iVar8 != 0" identifier != number_literal) ; (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ) (compound_statement "{\n          *puVar16 = *puVar14;\n          puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }" { (expression_statement "*puVar16 = *puVar14;" (assignment_expression "*puVar16 = *puVar14" (pointer_expression "*puVar16" * identifier) = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "puVar14 = puVar14 + (uint)bVar18 * -2 + 1;" (assignment_expression "puVar14 = puVar14 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "puVar14 + (uint)bVar18 * -2 + 1" (binary_expression "puVar14 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "puVar16 = puVar16 + (uint)bVar18 * -2 + 1;" (assignment_expression "puVar16 = puVar16 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "puVar16 + (uint)bVar18 * -2 + 1" (binary_expression "puVar16 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (if_statement "if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;" if (parenthesized_expression "((uint *)param_1[2] <= puVar13 + 0x3f)" ( (binary_expression "(uint *)param_1[2] <= puVar13 + 0x3f" (cast_expression "(uint *)param_1[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ])) <= (binary_expression "puVar13 + 0x3f" identifier + number_literal)) )) (goto_statement "goto LAB_0001d0c0;" goto statement_identifier ;)) }) (else_clause "else {\n        if (((uint *)param_1[1] < local_40) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0)) {\n          local_40[-0x3d] = uVar17 - 1;\n          local_40[-0x3c] = (uVar9 - 1) + (uint)(uVar17 != 0);\n        }\n        uVar5 = puVar13[3];\n        if ((uVar9 <= uVar5 && (uint)(puVar13[2] < uVar17) <= uVar5 - uVar9) ||\n           (puVar13[2] == 0 && uVar5 == 0)) {\n          puVar14 = puVar13;\n          puVar16 = local_40;\n          for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n            *puVar16 = *puVar14;\n            puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          local_3c = *puVar13;\n          local_38 = puVar13[1];\n          local_40 = local_40 + 0x3f;\n        }\nLAB_0001cfa6:\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }" else (compound_statement "{\n        if (((uint *)param_1[1] < local_40) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0)) {\n          local_40[-0x3d] = uVar17 - 1;\n          local_40[-0x3c] = (uVar9 - 1) + (uint)(uVar17 != 0);\n        }\n        uVar5 = puVar13[3];\n        if ((uVar9 <= uVar5 && (uint)(puVar13[2] < uVar17) <= uVar5 - uVar9) ||\n           (puVar13[2] == 0 && uVar5 == 0)) {\n          puVar14 = puVar13;\n          puVar16 = local_40;\n          for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n            *puVar16 = *puVar14;\n            puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          local_3c = *puVar13;\n          local_38 = puVar13[1];\n          local_40 = local_40 + 0x3f;\n        }\nLAB_0001cfa6:\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }" { (if_statement "if (((uint *)param_1[1] < local_40) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0)) {\n          local_40[-0x3d] = uVar17 - 1;\n          local_40[-0x3c] = (uVar9 - 1) + (uint)(uVar17 != 0);\n        }" if (parenthesized_expression "(((uint *)param_1[1] < local_40) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0))" ( (binary_expression "((uint *)param_1[1] < local_40) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0)" (parenthesized_expression "((uint *)param_1[1] < local_40)" ( (binary_expression "(uint *)param_1[1] < local_40" (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 "(local_40[-0x3c] == 0 && local_40[-0x3d] == 0)" ( (binary_expression "local_40[-0x3c] == 0 && local_40[-0x3d] == 0" (binary_expression "local_40[-0x3c] == 0" (subscript_expression "local_40[-0x3c]" identifier [ number_literal ]) == number_literal) && (binary_expression "local_40[-0x3d] == 0" (subscript_expression "local_40[-0x3d]" identifier [ number_literal ]) == number_literal)) ))) )) (compound_statement "{\n          local_40[-0x3d] = uVar17 - 1;\n          local_40[-0x3c] = (uVar9 - 1) + (uint)(uVar17 != 0);\n        }" { (expression_statement "local_40[-0x3d] = uVar17 - 1;" (assignment_expression "local_40[-0x3d] = uVar17 - 1" (subscript_expression "local_40[-0x3d]" identifier [ number_literal ]) = (binary_expression "uVar17 - 1" identifier - number_literal)) ;) (expression_statement "local_40[-0x3c] = (uVar9 - 1) + (uint)(uVar17 != 0);" (assignment_expression "local_40[-0x3c] = (uVar9 - 1) + (uint)(uVar17 != 0)" (subscript_expression "local_40[-0x3c]" identifier [ number_literal ]) = (binary_expression "(uVar9 - 1) + (uint)(uVar17 != 0)" (parenthesized_expression "(uVar9 - 1)" ( (binary_expression "uVar9 - 1" identifier - number_literal) )) + (call_expression "(uint)(uVar17 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar17 != 0)" ( (binary_expression "uVar17 != 0" identifier != number_literal) ))))) ;) })) (expression_statement "uVar5 = puVar13[3];" (assignment_expression "uVar5 = puVar13[3]" identifier = (subscript_expression "puVar13[3]" identifier [ number_literal ])) ;) (if_statement "if ((uVar9 <= uVar5 && (uint)(puVar13[2] < uVar17) <= uVar5 - uVar9) ||\n           (puVar13[2] == 0 && uVar5 == 0)) {\n          puVar14 = puVar13;\n          puVar16 = local_40;\n          for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n            *puVar16 = *puVar14;\n            puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          local_3c = *puVar13;\n          local_38 = puVar13[1];\n          local_40 = local_40 + 0x3f;\n        }" if (parenthesized_expression "((uVar9 <= uVar5 && (uint)(puVar13[2] < uVar17) <= uVar5 - uVar9) ||\n           (puVar13[2] == 0 && uVar5 == 0))" ( (binary_expression "(uVar9 <= uVar5 && (uint)(puVar13[2] < uVar17) <= uVar5 - uVar9) ||\n           (puVar13[2] == 0 && uVar5 == 0)" (parenthesized_expression "(uVar9 <= uVar5 && (uint)(puVar13[2] < uVar17) <= uVar5 - uVar9)" ( (binary_expression "uVar9 <= uVar5 && (uint)(puVar13[2] < uVar17) <= uVar5 - uVar9" (binary_expression "uVar9 <= uVar5" identifier <= identifier) && (binary_expression "(uint)(puVar13[2] < uVar17) <= uVar5 - uVar9" (call_expression "(uint)(puVar13[2] < uVar17)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar13[2] < uVar17)" ( (binary_expression "puVar13[2] < uVar17" (subscript_expression "puVar13[2]" identifier [ number_literal ]) < identifier) ))) <= (binary_expression "uVar5 - uVar9" identifier - identifier))) )) || (parenthesized_expression "(puVar13[2] == 0 && uVar5 == 0)" ( (binary_expression "puVar13[2] == 0 && uVar5 == 0" (binary_expression "puVar13[2] == 0" (subscript_expression "puVar13[2]" identifier [ number_literal ]) == number_literal) && (binary_expression "uVar5 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n          puVar14 = puVar13;\n          puVar16 = local_40;\n          for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n            *puVar16 = *puVar14;\n            puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          local_3c = *puVar13;\n          local_38 = puVar13[1];\n          local_40 = local_40 + 0x3f;\n        }" { (expression_statement "puVar14 = puVar13;" (assignment_expression "puVar14 = puVar13" identifier = identifier) ;) (expression_statement "puVar16 = local_40;" (assignment_expression "puVar16 = local_40" identifier = identifier) ;) (for_statement "for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n            *puVar16 = *puVar14;\n            puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }" for ( (assignment_expression "iVar8 = 0x3f" identifier = number_literal) ; (binary_expression "iVar8 != 0" identifier != number_literal) ; (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ) (compound_statement "{\n            *puVar16 = *puVar14;\n            puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }" { (expression_statement "*puVar16 = *puVar14;" (assignment_expression "*puVar16 = *puVar14" (pointer_expression "*puVar16" * identifier) = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "puVar14 = puVar14 + (uint)bVar18 * -2 + 1;" (assignment_expression "puVar14 = puVar14 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "puVar14 + (uint)bVar18 * -2 + 1" (binary_expression "puVar14 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "puVar16 = puVar16 + (uint)bVar18 * -2 + 1;" (assignment_expression "puVar16 = puVar16 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "puVar16 + (uint)bVar18 * -2 + 1" (binary_expression "puVar16 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "local_3c = *puVar13;" (assignment_expression "local_3c = *puVar13" identifier = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "local_38 = puVar13[1];" (assignment_expression "local_38 = puVar13[1]" identifier = (subscript_expression "puVar13[1]" identifier [ number_literal ])) ;) (expression_statement "local_40 = local_40 + 0x3f;" (assignment_expression "local_40 = local_40 + 0x3f" identifier = (binary_expression "local_40 + 0x3f" identifier + number_literal)) ;) })) (labeled_statement "LAB_0001cfa6:\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;" statement_identifier : (if_statement "if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;" if (parenthesized_expression "((uint *)param_1[2] <= puVar13 + 0x3f)" ( (binary_expression "(uint *)param_1[2] <= puVar13 + 0x3f" (cast_expression "(uint *)param_1[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ])) <= (binary_expression "puVar13 + 0x3f" identifier + number_literal)) )) (goto_statement "goto LAB_0001d0c0;" goto statement_identifier ;))) }))) (expression_statement "uVar17 = puVar13[0x3f];" (assignment_expression "uVar17 = puVar13[0x3f]" identifier = (subscript_expression "puVar13[0x3f]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = puVar13[0x40];" (assignment_expression "uVar9 = puVar13[0x40]" identifier = (subscript_expression "puVar13[0x40]" identifier [ number_literal ])) ;) (expression_statement "puVar13 = puVar13 + 0x3f;" (assignment_expression "puVar13 = puVar13 + 0x3f" identifier = (binary_expression "puVar13 + 0x3f" identifier + number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "local_34 = *(uint *)(unaff_EBP + 0x112c2) & 0x1080;" (assignment_expression "local_34 = *(uint *)(unaff_EBP + 0x112c2) & 0x1080" identifier = (binary_expression "*(uint *)(unaff_EBP + 0x112c2) & 0x1080" (pointer_expression "*(uint *)(unaff_EBP + 0x112c2)" * (cast_expression "(uint *)(unaff_EBP + 0x112c2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x112c2)" ( (binary_expression "unaff_EBP + 0x112c2" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "sVar6 = 0;" (assignment_expression "sVar6 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0001d0d2:\n  local_28 = (uint *)(unaff_EBP + 0x112c2);" statement_identifier : (expression_statement "local_28 = (uint *)(unaff_EBP + 0x112c2);" (assignment_expression "local_28 = (uint *)(unaff_EBP + 0x112c2)" identifier = (cast_expression "(uint *)(unaff_EBP + 0x112c2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x112c2)" ( (binary_expression "unaff_EBP + 0x112c2" identifier + number_literal) )))) ;)) (expression_statement "sVar11 = *param_1;" (assignment_expression "sVar11 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if ((sVar11 != 0) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0)) {\n    iVar8 = *(int *)(unaff_EBP + 0x11666);\n    uVar17 = *(uint *)(iVar8 + 0x2c);\n    uVar9 = *(uint *)(iVar8 + 0x1c);\n    iVar15 = uVar17 + *(uint *)(iVar8 + 0x1c);\n    iVar10 = *(int *)(iVar8 + 0x30);\n    iVar8 = *(int *)(iVar8 + 0x20);\n    local_40[-0x3d] = iVar15 - 1;\n    local_40[-0x3c] = iVar10 + iVar8 + (uint)CARRY4(uVar17,uVar9) + -1 + (uint)(iVar15 != 0);\n  }" if (parenthesized_expression "((sVar11 != 0) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0))" ( (binary_expression "(sVar11 != 0) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0)" (parenthesized_expression "(sVar11 != 0)" ( (binary_expression "sVar11 != 0" identifier != number_literal) )) && (parenthesized_expression "(local_40[-0x3c] == 0 && local_40[-0x3d] == 0)" ( (binary_expression "local_40[-0x3c] == 0 && local_40[-0x3d] == 0" (binary_expression "local_40[-0x3c] == 0" (subscript_expression "local_40[-0x3c]" identifier [ number_literal ]) == number_literal) && (binary_expression "local_40[-0x3d] == 0" (subscript_expression "local_40[-0x3d]" identifier [ number_literal ]) == number_literal)) ))) )) (compound_statement "{\n    iVar8 = *(int *)(unaff_EBP + 0x11666);\n    uVar17 = *(uint *)(iVar8 + 0x2c);\n    uVar9 = *(uint *)(iVar8 + 0x1c);\n    iVar15 = uVar17 + *(uint *)(iVar8 + 0x1c);\n    iVar10 = *(int *)(iVar8 + 0x30);\n    iVar8 = *(int *)(iVar8 + 0x20);\n    local_40[-0x3d] = iVar15 - 1;\n    local_40[-0x3c] = iVar10 + iVar8 + (uint)CARRY4(uVar17,uVar9) + -1 + (uint)(iVar15 != 0);\n  }" { (expression_statement "iVar8 = *(int *)(unaff_EBP + 0x11666);" (assignment_expression "iVar8 = *(int *)(unaff_EBP + 0x11666)" identifier = (pointer_expression "*(int *)(unaff_EBP + 0x11666)" * (cast_expression "(int *)(unaff_EBP + 0x11666)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x11666)" ( (binary_expression "unaff_EBP + 0x11666" identifier + number_literal) ))))) ;) (expression_statement "uVar17 = *(uint *)(iVar8 + 0x2c);" (assignment_expression "uVar17 = *(uint *)(iVar8 + 0x2c)" identifier = (pointer_expression "*(uint *)(iVar8 + 0x2c)" * (cast_expression "(uint *)(iVar8 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x2c)" ( (binary_expression "iVar8 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = *(uint *)(iVar8 + 0x1c);" (assignment_expression "uVar9 = *(uint *)(iVar8 + 0x1c)" identifier = (pointer_expression "*(uint *)(iVar8 + 0x1c)" * (cast_expression "(uint *)(iVar8 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "iVar15 = uVar17 + *(uint *)(iVar8 + 0x1c);" (assignment_expression "iVar15 = uVar17 + *(uint *)(iVar8 + 0x1c)" identifier = (binary_expression "uVar17 + *(uint *)(iVar8 + 0x1c)" identifier + (pointer_expression "*(uint *)(iVar8 + 0x1c)" * (cast_expression "(uint *)(iVar8 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))))) ;) (expression_statement "iVar10 = *(int *)(iVar8 + 0x30);" (assignment_expression "iVar10 = *(int *)(iVar8 + 0x30)" identifier = (pointer_expression "*(int *)(iVar8 + 0x30)" * (cast_expression "(int *)(iVar8 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x30)" ( (binary_expression "iVar8 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = *(int *)(iVar8 + 0x20);" (assignment_expression "iVar8 = *(int *)(iVar8 + 0x20)" identifier = (pointer_expression "*(int *)(iVar8 + 0x20)" * (cast_expression "(int *)(iVar8 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x20)" ( (binary_expression "iVar8 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "local_40[-0x3d] = iVar15 - 1;" (assignment_expression "local_40[-0x3d] = iVar15 - 1" (subscript_expression "local_40[-0x3d]" identifier [ number_literal ]) = (binary_expression "iVar15 - 1" identifier - number_literal)) ;) (expression_statement "local_40[-0x3c] = iVar10 + iVar8 + (uint)CARRY4(uVar17,uVar9) + -1 + (uint)(iVar15 != 0);" (assignment_expression "local_40[-0x3c] = iVar10 + iVar8 + (uint)CARRY4(uVar17,uVar9) + -1 + (uint)(iVar15 != 0)" (subscript_expression "local_40[-0x3c]" identifier [ number_literal ]) = (binary_expression "iVar10 + iVar8 + (uint)CARRY4(uVar17,uVar9) + -1 + (uint)(iVar15 != 0)" (binary_expression "iVar10 + iVar8 + (uint)CARRY4(uVar17,uVar9) + -1" (binary_expression "iVar10 + iVar8 + (uint)CARRY4(uVar17,uVar9)" (binary_expression "iVar10 + iVar8" identifier + identifier) + (cast_expression "(uint)CARRY4(uVar17,uVar9)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar17,uVar9)" identifier (argument_list "(uVar17,uVar9)" ( identifier , identifier ))))) + number_literal) + (call_expression "(uint)(iVar15 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) ))))) ;) })) (if_statement "if (local_34 != 0) {\n    printf((char *)(unaff_EBP + 0x7036),sVar11 - sVar6);\n    sVar6 = param_1[1];\n    uVar17 = *local_28;\n    param_1[2] = (size_t)local_40;\n    sVar11 = ((int)((int)local_40 - sVar6) >> 2) * -0x41041041;\n    *param_1 = sVar11;\n    if (((uVar17 & 0x1080) != 0) && (sVar11 != 0)) {\n      uVar17 = 0;\n      while( true ) {\n        iVar8 = uVar17 * 0xfc;\n        uVar17 = uVar17 + 1;\n        puVar7 = (undefined4 *)(sVar6 + iVar8);\n        printf((char *)(unaff_EBP + 0x706a),*puVar7,puVar7[2],puVar7[4]);\n        if (*param_1 <= uVar17) break;\n        sVar6 = param_1[1];\n      }\n      return;\n    }\n    return;\n  }" if (parenthesized_expression "(local_34 != 0)" ( (binary_expression "local_34 != 0" identifier != number_literal) )) (compound_statement "{\n    printf((char *)(unaff_EBP + 0x7036),sVar11 - sVar6);\n    sVar6 = param_1[1];\n    uVar17 = *local_28;\n    param_1[2] = (size_t)local_40;\n    sVar11 = ((int)((int)local_40 - sVar6) >> 2) * -0x41041041;\n    *param_1 = sVar11;\n    if (((uVar17 & 0x1080) != 0) && (sVar11 != 0)) {\n      uVar17 = 0;\n      while( true ) {\n        iVar8 = uVar17 * 0xfc;\n        uVar17 = uVar17 + 1;\n        puVar7 = (undefined4 *)(sVar6 + iVar8);\n        printf((char *)(unaff_EBP + 0x706a),*puVar7,puVar7[2],puVar7[4]);\n        if (*param_1 <= uVar17) break;\n        sVar6 = param_1[1];\n      }\n      return;\n    }\n    return;\n  }" { (expression_statement "printf((char *)(unaff_EBP + 0x7036),sVar11 - sVar6);" (call_expression "printf((char *)(unaff_EBP + 0x7036),sVar11 - sVar6)" identifier (argument_list "((char *)(unaff_EBP + 0x7036),sVar11 - sVar6)" ( (cast_expression "(char *)(unaff_EBP + 0x7036)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x7036)" ( (binary_expression "unaff_EBP + 0x7036" identifier + number_literal) ))) , (binary_expression "sVar11 - sVar6" identifier - identifier) ))) ;) (expression_statement "sVar6 = param_1[1];" (assignment_expression "sVar6 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "uVar17 = *local_28;" (assignment_expression "uVar17 = *local_28" identifier = (pointer_expression "*local_28" * identifier)) ;) (expression_statement "param_1[2] = (size_t)local_40;" (assignment_expression "param_1[2] = (size_t)local_40" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (cast_expression "(size_t)local_40" ( (type_descriptor "size_t" primitive_type) ) identifier)) ;) (expression_statement "sVar11 = ((int)((int)local_40 - sVar6) >> 2) * -0x41041041;" (assignment_expression "sVar11 = ((int)((int)local_40 - sVar6) >> 2) * -0x41041041" identifier = (binary_expression "((int)((int)local_40 - sVar6) >> 2) * -0x41041041" (parenthesized_expression "((int)((int)local_40 - sVar6) >> 2)" ( (binary_expression "(int)((int)local_40 - sVar6) >> 2" (cast_expression "(int)((int)local_40 - sVar6)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)local_40 - sVar6)" ( (binary_expression "(int)local_40 - sVar6" (cast_expression "(int)local_40" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) ))) >> number_literal) )) * number_literal)) ;) (expression_statement "*param_1 = sVar11;" (assignment_expression "*param_1 = sVar11" (pointer_expression "*param_1" * identifier) = identifier) ;) (if_statement "if (((uVar17 & 0x1080) != 0) && (sVar11 != 0)) {\n      uVar17 = 0;\n      while( true ) {\n        iVar8 = uVar17 * 0xfc;\n        uVar17 = uVar17 + 1;\n        puVar7 = (undefined4 *)(sVar6 + iVar8);\n        printf((char *)(unaff_EBP + 0x706a),*puVar7,puVar7[2],puVar7[4]);\n        if (*param_1 <= uVar17) break;\n        sVar6 = param_1[1];\n      }\n      return;\n    }" if (parenthesized_expression "(((uVar17 & 0x1080) != 0) && (sVar11 != 0))" ( (binary_expression "((uVar17 & 0x1080) != 0) && (sVar11 != 0)" (parenthesized_expression "((uVar17 & 0x1080) != 0)" ( (binary_expression "(uVar17 & 0x1080) != 0" (parenthesized_expression "(uVar17 & 0x1080)" ( (binary_expression "uVar17 & 0x1080" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(sVar11 != 0)" ( (binary_expression "sVar11 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      uVar17 = 0;\n      while( true ) {\n        iVar8 = uVar17 * 0xfc;\n        uVar17 = uVar17 + 1;\n        puVar7 = (undefined4 *)(sVar6 + iVar8);\n        printf((char *)(unaff_EBP + 0x706a),*puVar7,puVar7[2],puVar7[4]);\n        if (*param_1 <= uVar17) break;\n        sVar6 = param_1[1];\n      }\n      return;\n    }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n        iVar8 = uVar17 * 0xfc;\n        uVar17 = uVar17 + 1;\n        puVar7 = (undefined4 *)(sVar6 + iVar8);\n        printf((char *)(unaff_EBP + 0x706a),*puVar7,puVar7[2],puVar7[4]);\n        if (*param_1 <= uVar17) break;\n        sVar6 = param_1[1];\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        iVar8 = uVar17 * 0xfc;\n        uVar17 = uVar17 + 1;\n        puVar7 = (undefined4 *)(sVar6 + iVar8);\n        printf((char *)(unaff_EBP + 0x706a),*puVar7,puVar7[2],puVar7[4]);\n        if (*param_1 <= uVar17) break;\n        sVar6 = param_1[1];\n      }" { (expression_statement "iVar8 = uVar17 * 0xfc;" (assignment_expression "iVar8 = uVar17 * 0xfc" identifier = (binary_expression "uVar17 * 0xfc" identifier * number_literal)) ;) (expression_statement "uVar17 = uVar17 + 1;" (assignment_expression "uVar17 = uVar17 + 1" identifier = (binary_expression "uVar17 + 1" identifier + number_literal)) ;) (expression_statement "puVar7 = (undefined4 *)(sVar6 + iVar8);" (assignment_expression "puVar7 = (undefined4 *)(sVar6 + iVar8)" identifier = (cast_expression "(undefined4 *)(sVar6 + iVar8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(sVar6 + iVar8)" ( (binary_expression "sVar6 + iVar8" identifier + identifier) )))) ;) (expression_statement "printf((char *)(unaff_EBP + 0x706a),*puVar7,puVar7[2],puVar7[4]);" (call_expression "printf((char *)(unaff_EBP + 0x706a),*puVar7,puVar7[2],puVar7[4])" identifier (argument_list "((char *)(unaff_EBP + 0x706a),*puVar7,puVar7[2],puVar7[4])" ( (cast_expression "(char *)(unaff_EBP + 0x706a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x706a)" ( (binary_expression "unaff_EBP + 0x706a" identifier + number_literal) ))) , (pointer_expression "*puVar7" * identifier) , (subscript_expression "puVar7[2]" identifier [ number_literal ]) , (subscript_expression "puVar7[4]" identifier [ number_literal ]) ))) ;) (if_statement "if (*param_1 <= uVar17) break;" if (parenthesized_expression "(*param_1 <= uVar17)" ( (binary_expression "*param_1 <= uVar17" (pointer_expression "*param_1" * identifier) <= identifier) )) (break_statement "break;" break ;)) (expression_statement "sVar6 = param_1[1];" (assignment_expression "sVar6 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) })) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })) (expression_statement "*param_1 = sVar6;" (assignment_expression "*param_1 = sVar6" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[2] = (size_t)local_40;" (assignment_expression "param_1[2] = (size_t)local_40" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (cast_expression "(size_t)local_40" ( (type_descriptor "size_t" primitive_type) ) identifier)) ;) (return_statement "return;" return ;) (labeled_statement "LAB_0001d0c0:\n  sVar6 = ((int)((int)local_40 - param_1[1]) >> 2) * -0x41041041;" statement_identifier : (expression_statement "sVar6 = ((int)((int)local_40 - param_1[1]) >> 2) * -0x41041041;" (assignment_expression "sVar6 = ((int)((int)local_40 - param_1[1]) >> 2) * -0x41041041" identifier = (binary_expression "((int)((int)local_40 - param_1[1]) >> 2) * -0x41041041" (parenthesized_expression "((int)((int)local_40 - param_1[1]) >> 2)" ( (binary_expression "(int)((int)local_40 - param_1[1]) >> 2" (cast_expression "(int)((int)local_40 - param_1[1])" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)local_40 - param_1[1])" ( (binary_expression "(int)local_40 - param_1[1]" (cast_expression "(int)local_40" ( (type_descriptor "int" primitive_type) ) identifier) - (subscript_expression "param_1[1]" identifier [ number_literal ])) ))) >> number_literal) )) * number_literal)) ;)) (goto_statement "goto LAB_0001d0d2;" goto statement_identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bp replaced with injection: get_pc_thunk.bp */\n/* WARNING: Unknown calling convention */\n\nvoid symtab_finalize(Sym_Table *tab)\n\n{\n  byte bVar1;\n  byte bVar2;\n  char cVar3;\n  uint uVar4;\n  uint uVar5;\n  bfd_vma bVar6;\n  uint uVar7;\n  Sym *pSVar8;\n  int iVar9;\n  uint uVar10;\n  int iVar11;\n  undefined4 uVar12;\n  Sym *pSVar13;\n  int iVar14;\n  char *pcVar15;\n  Sym *pSVar16;\n  byte bVar17;\n  Sym *local_40;\n  uint local_3c;\n  uint local_38;\n  uint local_34;\n  uint local_30;\n  \n  bVar17 = 0;\n  if (tab->len == 0) {\n    return;\n  }\n  qsort(tab->base,tab->len,0xfc,cmp_addr);\n  local_40 = tab->base;\n  uVar7 = (uint)local_40->addr;\n  uVar10 = *(uint *)((int)&local_40->addr + 4);\n  local_3c = uVar7 + 1;\n  local_38 = uVar10 + (0xfffffffe < uVar7);\n  if (local_40 < tab->limit) {\n    local_30 = debug_level;\n    pSVar8 = local_40;\n    do {\n      local_34 = local_30 & 0x1080;\n      if (local_38 == uVar10 && local_3c == uVar7) {\n        bVar1 = pSVar8->field_0x1c;\n        bVar2 = local_40[-1].field_0x1c;\n        if (((bVar1 & 2) != 0) || ((bVar2 & 2) == 0)) {\n          if (((bVar1 ^ bVar2) & 2) == 0) {\n            if (((bVar1 & 1) != 0) && ((bVar2 & 1) == 0)) {\n              if (local_34 != 0) {\n                pcVar15 = local_40[-1].name;\n                if ((bVar2 & 2) == 0) {\n                  iVar9 = 0x66;\n                  iVar11 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar11 = 0x74;\n                iVar9 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }\n            if (((bVar1 ^ bVar2) & 1) == 0) {\n              cVar3 = *pSVar8->name;\n              if (cVar3 != '_') {\n                if (*local_40[-1].name == '_') goto LAB_0001d008;\n                if (cVar3 == '\0') goto LAB_0001d190;\n              }\n              if ((pSVar8->name[1] != '_') && (local_40[-1].name[1] == '_')) goto LAB_0001d008;\n            }\n          }\nLAB_0001d190:\n          if (local_34 != 0) {\n            printf("[symtab_finalize] favor %s@%c%c over %s@%c%c",local_40[-1].name,\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46,pSVar8->name,\n                   (-(uint)((bVar1 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar1 & 1) == 0) & 0x20) + 0x46);\n            printf(" (addr=%lx)\n",(int)pSVar8->addr);\n            local_30 = debug_level;\n            local_34 = debug_level & 0x1080;\n          }\n          goto LAB_0001cfa6;\n        }\nLAB_0001d008:\n        if (local_34 != 0) {\n          uVar12 = 0x66;\n          pcVar15 = local_40[-1].name;\n          iVar9 = (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46;\n          iVar11 = (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74;\n          if ((bVar1 & 1) != 0) {\nLAB_0001d325:\n            uVar12 = 0x46;\n          }\nLAB_0001d049:\n          printf("[symtab_finalize] favor %s@%c%c over %s@%c%c",pSVar8->name,\n                 (-(uint)((bVar1 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,pcVar15,iVar11,iVar9);\n          printf(" (addr=%lx)\n",(int)pSVar8->addr);\n          local_30 = debug_level;\n          local_34 = debug_level & 0x1080;\n        }\nLAB_0001d094:\n        pSVar13 = pSVar8;\n        pSVar16 = local_40 + -1;\n        for (iVar9 = 0x3f; iVar9 != 0; iVar9 = iVar9 + -1) {\n          *(int *)&pSVar16->addr = (int)pSVar13->addr;\n          pSVar13 = (Sym *)((int)pSVar13 + (uint)bVar17 * -8 + 4);\n          pSVar16 = (Sym *)((int)pSVar16 + (uint)bVar17 * -8 + 4);\n        }\n        if (tab->limit <= pSVar8 + 1) goto LAB_0001d0c0;\n      }\n      else {\n        if ((tab->base < local_40) &&\n           (*(int *)((int)&local_40[-1].end_addr + 4) == 0 && (int)local_40[-1].end_addr == 0)) {\n          *(uint *)&local_40[-1].end_addr = uVar7 - 1;\n          *(uint *)((int)&local_40[-1].end_addr + 4) = (uVar10 - 1) + (uint)(uVar7 != 0);\n        }\n        uVar4 = (uint)pSVar8->end_addr;\n        uVar5 = *(uint *)((int)&pSVar8->end_addr + 4);\n        if ((uVar10 <= uVar5 && (uint)(uVar4 < uVar7) <= uVar5 - uVar10) ||\n           (uVar4 == 0 && uVar5 == 0)) {\n          pSVar13 = pSVar8;\n          pSVar16 = local_40;\n          for (iVar9 = 0x3f; iVar9 != 0; iVar9 = iVar9 + -1) {\n            *(int *)&pSVar16->addr = (int)pSVar13->addr;\n            pSVar13 = (Sym *)((int)pSVar13 + (uint)bVar17 * -8 + 4);\n            pSVar16 = (Sym *)((int)pSVar16 + (uint)bVar17 * -8 + 4);\n          }\n          local_3c = (uint)pSVar8->addr;\n          local_38 = *(uint *)((int)&pSVar8->addr + 4);\n          local_40 = local_40 + 1;\n        }\nLAB_0001cfa6:\n        if (tab->limit <= pSVar8 + 1) goto LAB_0001d0c0;\n      }\n      uVar7 = (uint)pSVar8[1].addr;\n      uVar10 = *(uint *)((int)&pSVar8[1].addr + 4);\n      pSVar8 = pSVar8 + 1;\n    } while( true );\n  }\n  local_34 = debug_level & 0x1080;\n  uVar7 = 0;\nLAB_0001d0d2:\n  uVar10 = tab->len;\n  if ((uVar10 != 0) &&\n     (*(int *)((int)&local_40[-1].end_addr + 4) == 0 && (int)local_40[-1].end_addr == 0)) {\n    uVar4 = (uint)core_text_sect->size;\n    bVar6 = core_text_sect->vma;\n    iVar14 = uVar4 + (int)core_text_sect->vma;\n    iVar9 = *(int *)((int)&core_text_sect->size + 4);\n    iVar11 = *(int *)((int)&core_text_sect->vma + 4);\n    *(int *)&local_40[-1].end_addr = iVar14 + -1;\n    *(uint *)((int)&local_40[-1].end_addr + 4) =\n         iVar9 + iVar11 + (uint)CARRY4(uVar4,(uint)bVar6) + -1 + (uint)(iVar14 != 0);\n  }\n  if (local_34 != 0) {\n    printf("[symtab_finalize]: removed %d duplicate entries\n",uVar10 - uVar7);\n    iVar9 = debug_level;\n    pSVar8 = tab->base;\n    tab->limit = local_40;\n    uVar7 = ((int)local_40 - (int)pSVar8 >> 2) * -0x41041041;\n    tab->len = uVar7;\n    if (((iVar9 & 0x1080U) != 0) && (uVar7 != 0)) {\n      uVar7 = 0;\n      while( true ) {\n        pSVar8 = pSVar8 + uVar7;\n        printf("[symtab_finalize] 0x%lx-0x%lx\t%s\n",(int)pSVar8->addr,(int)pSVar8->end_addr,\n               pSVar8->name);\n        if (tab->len <= uVar7 + 1) break;\n        pSVar8 = tab->base;\n        uVar7 = uVar7 + 1;\n      }\n      return;\n    }\n    return;\n  }\n  tab->len = uVar7;\n  tab->limit = local_40;\n  return;\nLAB_0001d0c0:\n  uVar7 = ((int)local_40 - (int)tab->base >> 2) * -0x41041041;\n  goto LAB_0001d0d2;\n}\n\n" comment comment (function_definition "void symtab_finalize(Sym_Table *tab)\n\n{\n  byte bVar1;\n  byte bVar2;\n  char cVar3;\n  uint uVar4;\n  uint uVar5;\n  bfd_vma bVar6;\n  uint uVar7;\n  Sym *pSVar8;\n  int iVar9;\n  uint uVar10;\n  int iVar11;\n  undefined4 uVar12;\n  Sym *pSVar13;\n  int iVar14;\n  char *pcVar15;\n  Sym *pSVar16;\n  byte bVar17;\n  Sym *local_40;\n  uint local_3c;\n  uint local_38;\n  uint local_34;\n  uint local_30;\n  \n  bVar17 = 0;\n  if (tab->len == 0) {\n    return;\n  }\n  qsort(tab->base,tab->len,0xfc,cmp_addr);\n  local_40 = tab->base;\n  uVar7 = (uint)local_40->addr;\n  uVar10 = *(uint *)((int)&local_40->addr + 4);\n  local_3c = uVar7 + 1;\n  local_38 = uVar10 + (0xfffffffe < uVar7);\n  if (local_40 < tab->limit) {\n    local_30 = debug_level;\n    pSVar8 = local_40;\n    do {\n      local_34 = local_30 & 0x1080;\n      if (local_38 == uVar10 && local_3c == uVar7) {\n        bVar1 = pSVar8->field_0x1c;\n        bVar2 = local_40[-1].field_0x1c;\n        if (((bVar1 & 2) != 0) || ((bVar2 & 2) == 0)) {\n          if (((bVar1 ^ bVar2) & 2) == 0) {\n            if (((bVar1 & 1) != 0) && ((bVar2 & 1) == 0)) {\n              if (local_34 != 0) {\n                pcVar15 = local_40[-1].name;\n                if ((bVar2 & 2) == 0) {\n                  iVar9 = 0x66;\n                  iVar11 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar11 = 0x74;\n                iVar9 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }\n            if (((bVar1 ^ bVar2) & 1) == 0) {\n              cVar3 = *pSVar8->name;\n              if (cVar3 != '_') {\n                if (*local_40[-1].name == '_') goto LAB_0001d008;\n                if (cVar3 == '\0') goto LAB_0001d190;\n              }\n              if ((pSVar8->name[1] != '_') && (local_40[-1].name[1] == '_')) goto LAB_0001d008;\n            }\n          }\nLAB_0001d190:\n          if (local_34 != 0) {\n            printf("[symtab_finalize] favor %s@%c%c over %s@%c%c",local_40[-1].name,\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46,pSVar8->name,\n                   (-(uint)((bVar1 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar1 & 1) == 0) & 0x20) + 0x46);\n            printf(" (addr=%lx)\n",(int)pSVar8->addr);\n            local_30 = debug_level;\n            local_34 = debug_level & 0x1080;\n          }\n          goto LAB_0001cfa6;\n        }\nLAB_0001d008:\n        if (local_34 != 0) {\n          uVar12 = 0x66;\n          pcVar15 = local_40[-1].name;\n          iVar9 = (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46;\n          iVar11 = (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74;\n          if ((bVar1 & 1) != 0) {\nLAB_0001d325:\n            uVar12 = 0x46;\n          }\nLAB_0001d049:\n          printf("[symtab_finalize] favor %s@%c%c over %s@%c%c",pSVar8->name,\n                 (-(uint)((bVar1 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,pcVar15,iVar11,iVar9);\n          printf(" (addr=%lx)\n",(int)pSVar8->addr);\n          local_30 = debug_level;\n          local_34 = debug_level & 0x1080;\n        }\nLAB_0001d094:\n        pSVar13 = pSVar8;\n        pSVar16 = local_40 + -1;\n        for (iVar9 = 0x3f; iVar9 != 0; iVar9 = iVar9 + -1) {\n          *(int *)&pSVar16->addr = (int)pSVar13->addr;\n          pSVar13 = (Sym *)((int)pSVar13 + (uint)bVar17 * -8 + 4);\n          pSVar16 = (Sym *)((int)pSVar16 + (uint)bVar17 * -8 + 4);\n        }\n        if (tab->limit <= pSVar8 + 1) goto LAB_0001d0c0;\n      }\n      else {\n        if ((tab->base < local_40) &&\n           (*(int *)((int)&local_40[-1].end_addr + 4) == 0 && (int)local_40[-1].end_addr == 0)) {\n          *(uint *)&local_40[-1].end_addr = uVar7 - 1;\n          *(uint *)((int)&local_40[-1].end_addr + 4) = (uVar10 - 1) + (uint)(uVar7 != 0);\n        }\n        uVar4 = (uint)pSVar8->end_addr;\n        uVar5 = *(uint *)((int)&pSVar8->end_addr + 4);\n        if ((uVar10 <= uVar5 && (uint)(uVar4 < uVar7) <= uVar5 - uVar10) ||\n           (uVar4 == 0 && uVar5 == 0)) {\n          pSVar13 = pSVar8;\n          pSVar16 = local_40;\n          for (iVar9 = 0x3f; iVar9 != 0; iVar9 = iVar9 + -1) {\n            *(int *)&pSVar16->addr = (int)pSVar13->addr;\n            pSVar13 = (Sym *)((int)pSVar13 + (uint)bVar17 * -8 + 4);\n            pSVar16 = (Sym *)((int)pSVar16 + (uint)bVar17 * -8 + 4);\n          }\n          local_3c = (uint)pSVar8->addr;\n          local_38 = *(uint *)((int)&pSVar8->addr + 4);\n          local_40 = local_40 + 1;\n        }\nLAB_0001cfa6:\n        if (tab->limit <= pSVar8 + 1) goto LAB_0001d0c0;\n      }\n      uVar7 = (uint)pSVar8[1].addr;\n      uVar10 = *(uint *)((int)&pSVar8[1].addr + 4);\n      pSVar8 = pSVar8 + 1;\n    } while( true );\n  }\n  local_34 = debug_level & 0x1080;\n  uVar7 = 0;\nLAB_0001d0d2:\n  uVar10 = tab->len;\n  if ((uVar10 != 0) &&\n     (*(int *)((int)&local_40[-1].end_addr + 4) == 0 && (int)local_40[-1].end_addr == 0)) {\n    uVar4 = (uint)core_text_sect->size;\n    bVar6 = core_text_sect->vma;\n    iVar14 = uVar4 + (int)core_text_sect->vma;\n    iVar9 = *(int *)((int)&core_text_sect->size + 4);\n    iVar11 = *(int *)((int)&core_text_sect->vma + 4);\n    *(int *)&local_40[-1].end_addr = iVar14 + -1;\n    *(uint *)((int)&local_40[-1].end_addr + 4) =\n         iVar9 + iVar11 + (uint)CARRY4(uVar4,(uint)bVar6) + -1 + (uint)(iVar14 != 0);\n  }\n  if (local_34 != 0) {\n    printf("[symtab_finalize]: removed %d duplicate entries\n",uVar10 - uVar7);\n    iVar9 = debug_level;\n    pSVar8 = tab->base;\n    tab->limit = local_40;\n    uVar7 = ((int)local_40 - (int)pSVar8 >> 2) * -0x41041041;\n    tab->len = uVar7;\n    if (((iVar9 & 0x1080U) != 0) && (uVar7 != 0)) {\n      uVar7 = 0;\n      while( true ) {\n        pSVar8 = pSVar8 + uVar7;\n        printf("[symtab_finalize] 0x%lx-0x%lx\t%s\n",(int)pSVar8->addr,(int)pSVar8->end_addr,\n               pSVar8->name);\n        if (tab->len <= uVar7 + 1) break;\n        pSVar8 = tab->base;\n        uVar7 = uVar7 + 1;\n      }\n      return;\n    }\n    return;\n  }\n  tab->len = uVar7;\n  tab->limit = local_40;\n  return;\nLAB_0001d0c0:\n  uVar7 = ((int)local_40 - (int)tab->base >> 2) * -0x41041041;\n  goto LAB_0001d0d2;\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  byte bVar1;\n  byte bVar2;\n  char cVar3;\n  uint uVar4;\n  uint uVar5;\n  bfd_vma bVar6;\n  uint uVar7;\n  Sym *pSVar8;\n  int iVar9;\n  uint uVar10;\n  int iVar11;\n  undefined4 uVar12;\n  Sym *pSVar13;\n  int iVar14;\n  char *pcVar15;\n  Sym *pSVar16;\n  byte bVar17;\n  Sym *local_40;\n  uint local_3c;\n  uint local_38;\n  uint local_34;\n  uint local_30;\n  \n  bVar17 = 0;\n  if (tab->len == 0) {\n    return;\n  }\n  qsort(tab->base,tab->len,0xfc,cmp_addr);\n  local_40 = tab->base;\n  uVar7 = (uint)local_40->addr;\n  uVar10 = *(uint *)((int)&local_40->addr + 4);\n  local_3c = uVar7 + 1;\n  local_38 = uVar10 + (0xfffffffe < uVar7);\n  if (local_40 < tab->limit) {\n    local_30 = debug_level;\n    pSVar8 = local_40;\n    do {\n      local_34 = local_30 & 0x1080;\n      if (local_38 == uVar10 && local_3c == uVar7) {\n        bVar1 = pSVar8->field_0x1c;\n        bVar2 = local_40[-1].field_0x1c;\n        if (((bVar1 & 2) != 0) || ((bVar2 & 2) == 0)) {\n          if (((bVar1 ^ bVar2) & 2) == 0) {\n            if (((bVar1 & 1) != 0) && ((bVar2 & 1) == 0)) {\n              if (local_34 != 0) {\n                pcVar15 = local_40[-1].name;\n                if ((bVar2 & 2) == 0) {\n                  iVar9 = 0x66;\n                  iVar11 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar11 = 0x74;\n                iVar9 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }\n            if (((bVar1 ^ bVar2) & 1) == 0) {\n              cVar3 = *pSVar8->name;\n              if (cVar3 != '_') {\n                if (*local_40[-1].name == '_') goto LAB_0001d008;\n                if (cVar3 == '\0') goto LAB_0001d190;\n              }\n              if ((pSVar8->name[1] != '_') && (local_40[-1].name[1] == '_')) goto LAB_0001d008;\n            }\n          }\nLAB_0001d190:\n          if (local_34 != 0) {\n            printf("[symtab_finalize] favor %s@%c%c over %s@%c%c",local_40[-1].name,\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46,pSVar8->name,\n                   (-(uint)((bVar1 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar1 & 1) == 0) & 0x20) + 0x46);\n            printf(" (addr=%lx)\n",(int)pSVar8->addr);\n            local_30 = debug_level;\n            local_34 = debug_level & 0x1080;\n          }\n          goto LAB_0001cfa6;\n        }\nLAB_0001d008:\n        if (local_34 != 0) {\n          uVar12 = 0x66;\n          pcVar15 = local_40[-1].name;\n          iVar9 = (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46;\n          iVar11 = (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74;\n          if ((bVar1 & 1) != 0) {\nLAB_0001d325:\n            uVar12 = 0x46;\n          }\nLAB_0001d049:\n          printf("[symtab_finalize] favor %s@%c%c over %s@%c%c",pSVar8->name,\n                 (-(uint)((bVar1 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,pcVar15,iVar11,iVar9);\n          printf(" (addr=%lx)\n",(int)pSVar8->addr);\n          local_30 = debug_level;\n          local_34 = debug_level & 0x1080;\n        }\nLAB_0001d094:\n        pSVar13 = pSVar8;\n        pSVar16 = local_40 + -1;\n        for (iVar9 = 0x3f; iVar9 != 0; iVar9 = iVar9 + -1) {\n          *(int *)&pSVar16->addr = (int)pSVar13->addr;\n          pSVar13 = (Sym *)((int)pSVar13 + (uint)bVar17 * -8 + 4);\n          pSVar16 = (Sym *)((int)pSVar16 + (uint)bVar17 * -8 + 4);\n        }\n        if (tab->limit <= pSVar8 + 1) goto LAB_0001d0c0;\n      }\n      else {\n        if ((tab->base < local_40) &&\n           (*(int *)((int)&local_40[-1].end_addr + 4) == 0 && (int)local_40[-1].end_addr == 0)) {\n          *(uint *)&local_40[-1].end_addr = uVar7 - 1;\n          *(uint *)((int)&local_40[-1].end_addr + 4) = (uVar10 - 1) + (uint)(uVar7 != 0);\n        }\n        uVar4 = (uint)pSVar8->end_addr;\n        uVar5 = *(uint *)((int)&pSVar8->end_addr + 4);\n        if ((uVar10 <= uVar5 && (uint)(uVar4 < uVar7) <= uVar5 - uVar10) ||\n           (uVar4 == 0 && uVar5 == 0)) {\n          pSVar13 = pSVar8;\n          pSVar16 = local_40;\n          for (iVar9 = 0x3f; iVar9 != 0; iVar9 = iVar9 + -1) {\n            *(int *)&pSVar16->addr = (int)pSVar13->addr;\n            pSVar13 = (Sym *)((int)pSVar13 + (uint)bVar17 * -8 + 4);\n            pSVar16 = (Sym *)((int)pSVar16 + (uint)bVar17 * -8 + 4);\n          }\n          local_3c = (uint)pSVar8->addr;\n          local_38 = *(uint *)((int)&pSVar8->addr + 4);\n          local_40 = local_40 + 1;\n        }\nLAB_0001cfa6:\n        if (tab->limit <= pSVar8 + 1) goto LAB_0001d0c0;\n      }\n      uVar7 = (uint)pSVar8[1].addr;\n      uVar10 = *(uint *)((int)&pSVar8[1].addr + 4);\n      pSVar8 = pSVar8 + 1;\n    } while( true );\n  }\n  local_34 = debug_level & 0x1080;\n  uVar7 = 0;\nLAB_0001d0d2:\n  uVar10 = tab->len;\n  if ((uVar10 != 0) &&\n     (*(int *)((int)&local_40[-1].end_addr + 4) == 0 && (int)local_40[-1].end_addr == 0)) {\n    uVar4 = (uint)core_text_sect->size;\n    bVar6 = core_text_sect->vma;\n    iVar14 = uVar4 + (int)core_text_sect->vma;\n    iVar9 = *(int *)((int)&core_text_sect->size + 4);\n    iVar11 = *(int *)((int)&core_text_sect->vma + 4);\n    *(int *)&local_40[-1].end_addr = iVar14 + -1;\n    *(uint *)((int)&local_40[-1].end_addr + 4) =\n         iVar9 + iVar11 + (uint)CARRY4(uVar4,(uint)bVar6) + -1 + (uint)(iVar14 != 0);\n  }\n  if (local_34 != 0) {\n    printf("[symtab_finalize]: removed %d duplicate entries\n",uVar10 - uVar7);\n    iVar9 = debug_level;\n    pSVar8 = tab->base;\n    tab->limit = local_40;\n    uVar7 = ((int)local_40 - (int)pSVar8 >> 2) * -0x41041041;\n    tab->len = uVar7;\n    if (((iVar9 & 0x1080U) != 0) && (uVar7 != 0)) {\n      uVar7 = 0;\n      while( true ) {\n        pSVar8 = pSVar8 + uVar7;\n        printf("[symtab_finalize] 0x%lx-0x%lx\t%s\n",(int)pSVar8->addr,(int)pSVar8->end_addr,\n               pSVar8->name);\n        if (tab->len <= uVar7 + 1) break;\n        pSVar8 = tab->base;\n        uVar7 = uVar7 + 1;\n      }\n      return;\n    }\n    return;\n  }\n  tab->len = uVar7;\n  tab->limit = local_40;\n  return;\nLAB_0001d0c0:\n  uVar7 = ((int)local_40 - (int)tab->base >> 2) * -0x41041041;\n  goto LAB_0001d0d2;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "bfd_vma bVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "Sym *pSVar8;" type_identifier (pointer_declarator "*pSVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "Sym *pSVar13;" type_identifier (pointer_declarator "*pSVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "Sym *pSVar16;" type_identifier (pointer_declarator "*pSVar16" * identifier) ;) (declaration "byte bVar17;" type_identifier identifier ;) (declaration "Sym *local_40;" type_identifier (pointer_declarator "*local_40" * identifier) ;) (declaration "uint local_3c;" type_identifier identifier ;) (declaration "uint local_38;" type_identifier identifier ;) (declaration "uint local_34;" type_identifier identifier ;) (declaration "uint local_30;" type_identifier identifier ;) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;) (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 "qsort(tab->base,tab->len,0xfc,cmp_addr);" (call_expression "qsort(tab->base,tab->len,0xfc,cmp_addr)" identifier (argument_list "(tab->base,tab->len,0xfc,cmp_addr)" ( (field_expression "tab->base" identifier -> field_identifier) , (field_expression "tab->len" identifier -> field_identifier) , number_literal , identifier ))) ;) (expression_statement "local_40 = tab->base;" (assignment_expression "local_40 = tab->base" identifier = (field_expression "tab->base" identifier -> field_identifier)) ;) (expression_statement "uVar7 = (uint)local_40->addr;" (assignment_expression "uVar7 = (uint)local_40->addr" identifier = (cast_expression "(uint)local_40->addr" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_40->addr" identifier -> field_identifier))) ;) (expression_statement "uVar10 = *(uint *)((int)&local_40->addr + 4);" (assignment_expression "uVar10 = *(uint *)((int)&local_40->addr + 4)" identifier = (pointer_expression "*(uint *)((int)&local_40->addr + 4)" * (cast_expression "(uint *)((int)&local_40->addr + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_40->addr + 4)" ( (binary_expression "(int)&local_40->addr + 4" (cast_expression "(int)&local_40->addr" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_40->addr" & (field_expression "local_40->addr" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "local_3c = uVar7 + 1;" (assignment_expression "local_3c = uVar7 + 1" identifier = (binary_expression "uVar7 + 1" identifier + number_literal)) ;) (expression_statement "local_38 = uVar10 + (0xfffffffe < uVar7);" (assignment_expression "local_38 = uVar10 + (0xfffffffe < uVar7)" identifier = (binary_expression "uVar10 + (0xfffffffe < uVar7)" identifier + (parenthesized_expression "(0xfffffffe < uVar7)" ( (binary_expression "0xfffffffe < uVar7" number_literal < identifier) )))) ;) (if_statement "if (local_40 < tab->limit) {\n    local_30 = debug_level;\n    pSVar8 = local_40;\n    do {\n      local_34 = local_30 & 0x1080;\n      if (local_38 == uVar10 && local_3c == uVar7) {\n        bVar1 = pSVar8->field_0x1c;\n        bVar2 = local_40[-1].field_0x1c;\n        if (((bVar1 & 2) != 0) || ((bVar2 & 2) == 0)) {\n          if (((bVar1 ^ bVar2) & 2) == 0) {\n            if (((bVar1 & 1) != 0) && ((bVar2 & 1) == 0)) {\n              if (local_34 != 0) {\n                pcVar15 = local_40[-1].name;\n                if ((bVar2 & 2) == 0) {\n                  iVar9 = 0x66;\n                  iVar11 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar11 = 0x74;\n                iVar9 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }\n            if (((bVar1 ^ bVar2) & 1) == 0) {\n              cVar3 = *pSVar8->name;\n              if (cVar3 != '_') {\n                if (*local_40[-1].name == '_') goto LAB_0001d008;\n                if (cVar3 == '\0') goto LAB_0001d190;\n              }\n              if ((pSVar8->name[1] != '_') && (local_40[-1].name[1] == '_')) goto LAB_0001d008;\n            }\n          }\nLAB_0001d190:\n          if (local_34 != 0) {\n            printf("[symtab_finalize] favor %s@%c%c over %s@%c%c",local_40[-1].name,\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46,pSVar8->name,\n                   (-(uint)((bVar1 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar1 & 1) == 0) & 0x20) + 0x46);\n            printf(" (addr=%lx)\n",(int)pSVar8->addr);\n            local_30 = debug_level;\n            local_34 = debug_level & 0x1080;\n          }\n          goto LAB_0001cfa6;\n        }\nLAB_0001d008:\n        if (local_34 != 0) {\n          uVar12 = 0x66;\n          pcVar15 = local_40[-1].name;\n          iVar9 = (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46;\n          iVar11 = (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74;\n          if ((bVar1 & 1) != 0) {\nLAB_0001d325:\n            uVar12 = 0x46;\n          }\nLAB_0001d049:\n          printf("[symtab_finalize] favor %s@%c%c over %s@%c%c",pSVar8->name,\n                 (-(uint)((bVar1 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,pcVar15,iVar11,iVar9);\n          printf(" (addr=%lx)\n",(int)pSVar8->addr);\n          local_30 = debug_level;\n          local_34 = debug_level & 0x1080;\n        }\nLAB_0001d094:\n        pSVar13 = pSVar8;\n        pSVar16 = local_40 + -1;\n        for (iVar9 = 0x3f; iVar9 != 0; iVar9 = iVar9 + -1) {\n          *(int *)&pSVar16->addr = (int)pSVar13->addr;\n          pSVar13 = (Sym *)((int)pSVar13 + (uint)bVar17 * -8 + 4);\n          pSVar16 = (Sym *)((int)pSVar16 + (uint)bVar17 * -8 + 4);\n        }\n        if (tab->limit <= pSVar8 + 1) goto LAB_0001d0c0;\n      }\n      else {\n        if ((tab->base < local_40) &&\n           (*(int *)((int)&local_40[-1].end_addr + 4) == 0 && (int)local_40[-1].end_addr == 0)) {\n          *(uint *)&local_40[-1].end_addr = uVar7 - 1;\n          *(uint *)((int)&local_40[-1].end_addr + 4) = (uVar10 - 1) + (uint)(uVar7 != 0);\n        }\n        uVar4 = (uint)pSVar8->end_addr;\n        uVar5 = *(uint *)((int)&pSVar8->end_addr + 4);\n        if ((uVar10 <= uVar5 && (uint)(uVar4 < uVar7) <= uVar5 - uVar10) ||\n           (uVar4 == 0 && uVar5 == 0)) {\n          pSVar13 = pSVar8;\n          pSVar16 = local_40;\n          for (iVar9 = 0x3f; iVar9 != 0; iVar9 = iVar9 + -1) {\n            *(int *)&pSVar16->addr = (int)pSVar13->addr;\n            pSVar13 = (Sym *)((int)pSVar13 + (uint)bVar17 * -8 + 4);\n            pSVar16 = (Sym *)((int)pSVar16 + (uint)bVar17 * -8 + 4);\n          }\n          local_3c = (uint)pSVar8->addr;\n          local_38 = *(uint *)((int)&pSVar8->addr + 4);\n          local_40 = local_40 + 1;\n        }\nLAB_0001cfa6:\n        if (tab->limit <= pSVar8 + 1) goto LAB_0001d0c0;\n      }\n      uVar7 = (uint)pSVar8[1].addr;\n      uVar10 = *(uint *)((int)&pSVar8[1].addr + 4);\n      pSVar8 = pSVar8 + 1;\n    } while( true );\n  }" if (parenthesized_expression "(local_40 < tab->limit)" ( (binary_expression "local_40 < tab->limit" identifier < (field_expression "tab->limit" identifier -> field_identifier)) )) (compound_statement "{\n    local_30 = debug_level;\n    pSVar8 = local_40;\n    do {\n      local_34 = local_30 & 0x1080;\n      if (local_38 == uVar10 && local_3c == uVar7) {\n        bVar1 = pSVar8->field_0x1c;\n        bVar2 = local_40[-1].field_0x1c;\n        if (((bVar1 & 2) != 0) || ((bVar2 & 2) == 0)) {\n          if (((bVar1 ^ bVar2) & 2) == 0) {\n            if (((bVar1 & 1) != 0) && ((bVar2 & 1) == 0)) {\n              if (local_34 != 0) {\n                pcVar15 = local_40[-1].name;\n                if ((bVar2 & 2) == 0) {\n                  iVar9 = 0x66;\n                  iVar11 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar11 = 0x74;\n                iVar9 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }\n            if (((bVar1 ^ bVar2) & 1) == 0) {\n              cVar3 = *pSVar8->name;\n              if (cVar3 != '_') {\n                if (*local_40[-1].name == '_') goto LAB_0001d008;\n                if (cVar3 == '\0') goto LAB_0001d190;\n              }\n              if ((pSVar8->name[1] != '_') && (local_40[-1].name[1] == '_')) goto LAB_0001d008;\n            }\n          }\nLAB_0001d190:\n          if (local_34 != 0) {\n            printf("[symtab_finalize] favor %s@%c%c over %s@%c%c",local_40[-1].name,\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46,pSVar8->name,\n                   (-(uint)((bVar1 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar1 & 1) == 0) & 0x20) + 0x46);\n            printf(" (addr=%lx)\n",(int)pSVar8->addr);\n            local_30 = debug_level;\n            local_34 = debug_level & 0x1080;\n          }\n          goto LAB_0001cfa6;\n        }\nLAB_0001d008:\n        if (local_34 != 0) {\n          uVar12 = 0x66;\n          pcVar15 = local_40[-1].name;\n          iVar9 = (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46;\n          iVar11 = (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74;\n          if ((bVar1 & 1) != 0) {\nLAB_0001d325:\n            uVar12 = 0x46;\n          }\nLAB_0001d049:\n          printf("[symtab_finalize] favor %s@%c%c over %s@%c%c",pSVar8->name,\n                 (-(uint)((bVar1 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,pcVar15,iVar11,iVar9);\n          printf(" (addr=%lx)\n",(int)pSVar8->addr);\n          local_30 = debug_level;\n          local_34 = debug_level & 0x1080;\n        }\nLAB_0001d094:\n        pSVar13 = pSVar8;\n        pSVar16 = local_40 + -1;\n        for (iVar9 = 0x3f; iVar9 != 0; iVar9 = iVar9 + -1) {\n          *(int *)&pSVar16->addr = (int)pSVar13->addr;\n          pSVar13 = (Sym *)((int)pSVar13 + (uint)bVar17 * -8 + 4);\n          pSVar16 = (Sym *)((int)pSVar16 + (uint)bVar17 * -8 + 4);\n        }\n        if (tab->limit <= pSVar8 + 1) goto LAB_0001d0c0;\n      }\n      else {\n        if ((tab->base < local_40) &&\n           (*(int *)((int)&local_40[-1].end_addr + 4) == 0 && (int)local_40[-1].end_addr == 0)) {\n          *(uint *)&local_40[-1].end_addr = uVar7 - 1;\n          *(uint *)((int)&local_40[-1].end_addr + 4) = (uVar10 - 1) + (uint)(uVar7 != 0);\n        }\n        uVar4 = (uint)pSVar8->end_addr;\n        uVar5 = *(uint *)((int)&pSVar8->end_addr + 4);\n        if ((uVar10 <= uVar5 && (uint)(uVar4 < uVar7) <= uVar5 - uVar10) ||\n           (uVar4 == 0 && uVar5 == 0)) {\n          pSVar13 = pSVar8;\n          pSVar16 = local_40;\n          for (iVar9 = 0x3f; iVar9 != 0; iVar9 = iVar9 + -1) {\n            *(int *)&pSVar16->addr = (int)pSVar13->addr;\n            pSVar13 = (Sym *)((int)pSVar13 + (uint)bVar17 * -8 + 4);\n            pSVar16 = (Sym *)((int)pSVar16 + (uint)bVar17 * -8 + 4);\n          }\n          local_3c = (uint)pSVar8->addr;\n          local_38 = *(uint *)((int)&pSVar8->addr + 4);\n          local_40 = local_40 + 1;\n        }\nLAB_0001cfa6:\n        if (tab->limit <= pSVar8 + 1) goto LAB_0001d0c0;\n      }\n      uVar7 = (uint)pSVar8[1].addr;\n      uVar10 = *(uint *)((int)&pSVar8[1].addr + 4);\n      pSVar8 = pSVar8 + 1;\n    } while( true );\n  }" { (expression_statement "local_30 = debug_level;" (assignment_expression "local_30 = debug_level" identifier = identifier) ;) (expression_statement "pSVar8 = local_40;" (assignment_expression "pSVar8 = local_40" identifier = identifier) ;) (do_statement "do {\n      local_34 = local_30 & 0x1080;\n      if (local_38 == uVar10 && local_3c == uVar7) {\n        bVar1 = pSVar8->field_0x1c;\n        bVar2 = local_40[-1].field_0x1c;\n        if (((bVar1 & 2) != 0) || ((bVar2 & 2) == 0)) {\n          if (((bVar1 ^ bVar2) & 2) == 0) {\n            if (((bVar1 & 1) != 0) && ((bVar2 & 1) == 0)) {\n              if (local_34 != 0) {\n                pcVar15 = local_40[-1].name;\n                if ((bVar2 & 2) == 0) {\n                  iVar9 = 0x66;\n                  iVar11 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar11 = 0x74;\n                iVar9 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }\n            if (((bVar1 ^ bVar2) & 1) == 0) {\n              cVar3 = *pSVar8->name;\n              if (cVar3 != '_') {\n                if (*local_40[-1].name == '_') goto LAB_0001d008;\n                if (cVar3 == '\0') goto LAB_0001d190;\n              }\n              if ((pSVar8->name[1] != '_') && (local_40[-1].name[1] == '_')) goto LAB_0001d008;\n            }\n          }\nLAB_0001d190:\n          if (local_34 != 0) {\n            printf("[symtab_finalize] favor %s@%c%c over %s@%c%c",local_40[-1].name,\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46,pSVar8->name,\n                   (-(uint)((bVar1 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar1 & 1) == 0) & 0x20) + 0x46);\n            printf(" (addr=%lx)\n",(int)pSVar8->addr);\n            local_30 = debug_level;\n            local_34 = debug_level & 0x1080;\n          }\n          goto LAB_0001cfa6;\n        }\nLAB_0001d008:\n        if (local_34 != 0) {\n          uVar12 = 0x66;\n          pcVar15 = local_40[-1].name;\n          iVar9 = (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46;\n          iVar11 = (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74;\n          if ((bVar1 & 1) != 0) {\nLAB_0001d325:\n            uVar12 = 0x46;\n          }\nLAB_0001d049:\n          printf("[symtab_finalize] favor %s@%c%c over %s@%c%c",pSVar8->name,\n                 (-(uint)((bVar1 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,pcVar15,iVar11,iVar9);\n          printf(" (addr=%lx)\n",(int)pSVar8->addr);\n          local_30 = debug_level;\n          local_34 = debug_level & 0x1080;\n        }\nLAB_0001d094:\n        pSVar13 = pSVar8;\n        pSVar16 = local_40 + -1;\n        for (iVar9 = 0x3f; iVar9 != 0; iVar9 = iVar9 + -1) {\n          *(int *)&pSVar16->addr = (int)pSVar13->addr;\n          pSVar13 = (Sym *)((int)pSVar13 + (uint)bVar17 * -8 + 4);\n          pSVar16 = (Sym *)((int)pSVar16 + (uint)bVar17 * -8 + 4);\n        }\n        if (tab->limit <= pSVar8 + 1) goto LAB_0001d0c0;\n      }\n      else {\n        if ((tab->base < local_40) &&\n           (*(int *)((int)&local_40[-1].end_addr + 4) == 0 && (int)local_40[-1].end_addr == 0)) {\n          *(uint *)&local_40[-1].end_addr = uVar7 - 1;\n          *(uint *)((int)&local_40[-1].end_addr + 4) = (uVar10 - 1) + (uint)(uVar7 != 0);\n        }\n        uVar4 = (uint)pSVar8->end_addr;\n        uVar5 = *(uint *)((int)&pSVar8->end_addr + 4);\n        if ((uVar10 <= uVar5 && (uint)(uVar4 < uVar7) <= uVar5 - uVar10) ||\n           (uVar4 == 0 && uVar5 == 0)) {\n          pSVar13 = pSVar8;\n          pSVar16 = local_40;\n          for (iVar9 = 0x3f; iVar9 != 0; iVar9 = iVar9 + -1) {\n            *(int *)&pSVar16->addr = (int)pSVar13->addr;\n            pSVar13 = (Sym *)((int)pSVar13 + (uint)bVar17 * -8 + 4);\n            pSVar16 = (Sym *)((int)pSVar16 + (uint)bVar17 * -8 + 4);\n          }\n          local_3c = (uint)pSVar8->addr;\n          local_38 = *(uint *)((int)&pSVar8->addr + 4);\n          local_40 = local_40 + 1;\n        }\nLAB_0001cfa6:\n        if (tab->limit <= pSVar8 + 1) goto LAB_0001d0c0;\n      }\n      uVar7 = (uint)pSVar8[1].addr;\n      uVar10 = *(uint *)((int)&pSVar8[1].addr + 4);\n      pSVar8 = pSVar8 + 1;\n    } while( true );" do (compound_statement "{\n      local_34 = local_30 & 0x1080;\n      if (local_38 == uVar10 && local_3c == uVar7) {\n        bVar1 = pSVar8->field_0x1c;\n        bVar2 = local_40[-1].field_0x1c;\n        if (((bVar1 & 2) != 0) || ((bVar2 & 2) == 0)) {\n          if (((bVar1 ^ bVar2) & 2) == 0) {\n            if (((bVar1 & 1) != 0) && ((bVar2 & 1) == 0)) {\n              if (local_34 != 0) {\n                pcVar15 = local_40[-1].name;\n                if ((bVar2 & 2) == 0) {\n                  iVar9 = 0x66;\n                  iVar11 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar11 = 0x74;\n                iVar9 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }\n            if (((bVar1 ^ bVar2) & 1) == 0) {\n              cVar3 = *pSVar8->name;\n              if (cVar3 != '_') {\n                if (*local_40[-1].name == '_') goto LAB_0001d008;\n                if (cVar3 == '\0') goto LAB_0001d190;\n              }\n              if ((pSVar8->name[1] != '_') && (local_40[-1].name[1] == '_')) goto LAB_0001d008;\n            }\n          }\nLAB_0001d190:\n          if (local_34 != 0) {\n            printf("[symtab_finalize] favor %s@%c%c over %s@%c%c",local_40[-1].name,\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46,pSVar8->name,\n                   (-(uint)((bVar1 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar1 & 1) == 0) & 0x20) + 0x46);\n            printf(" (addr=%lx)\n",(int)pSVar8->addr);\n            local_30 = debug_level;\n            local_34 = debug_level & 0x1080;\n          }\n          goto LAB_0001cfa6;\n        }\nLAB_0001d008:\n        if (local_34 != 0) {\n          uVar12 = 0x66;\n          pcVar15 = local_40[-1].name;\n          iVar9 = (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46;\n          iVar11 = (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74;\n          if ((bVar1 & 1) != 0) {\nLAB_0001d325:\n            uVar12 = 0x46;\n          }\nLAB_0001d049:\n          printf("[symtab_finalize] favor %s@%c%c over %s@%c%c",pSVar8->name,\n                 (-(uint)((bVar1 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,pcVar15,iVar11,iVar9);\n          printf(" (addr=%lx)\n",(int)pSVar8->addr);\n          local_30 = debug_level;\n          local_34 = debug_level & 0x1080;\n        }\nLAB_0001d094:\n        pSVar13 = pSVar8;\n        pSVar16 = local_40 + -1;\n        for (iVar9 = 0x3f; iVar9 != 0; iVar9 = iVar9 + -1) {\n          *(int *)&pSVar16->addr = (int)pSVar13->addr;\n          pSVar13 = (Sym *)((int)pSVar13 + (uint)bVar17 * -8 + 4);\n          pSVar16 = (Sym *)((int)pSVar16 + (uint)bVar17 * -8 + 4);\n        }\n        if (tab->limit <= pSVar8 + 1) goto LAB_0001d0c0;\n      }\n      else {\n        if ((tab->base < local_40) &&\n           (*(int *)((int)&local_40[-1].end_addr + 4) == 0 && (int)local_40[-1].end_addr == 0)) {\n          *(uint *)&local_40[-1].end_addr = uVar7 - 1;\n          *(uint *)((int)&local_40[-1].end_addr + 4) = (uVar10 - 1) + (uint)(uVar7 != 0);\n        }\n        uVar4 = (uint)pSVar8->end_addr;\n        uVar5 = *(uint *)((int)&pSVar8->end_addr + 4);\n        if ((uVar10 <= uVar5 && (uint)(uVar4 < uVar7) <= uVar5 - uVar10) ||\n           (uVar4 == 0 && uVar5 == 0)) {\n          pSVar13 = pSVar8;\n          pSVar16 = local_40;\n          for (iVar9 = 0x3f; iVar9 != 0; iVar9 = iVar9 + -1) {\n            *(int *)&pSVar16->addr = (int)pSVar13->addr;\n            pSVar13 = (Sym *)((int)pSVar13 + (uint)bVar17 * -8 + 4);\n            pSVar16 = (Sym *)((int)pSVar16 + (uint)bVar17 * -8 + 4);\n          }\n          local_3c = (uint)pSVar8->addr;\n          local_38 = *(uint *)((int)&pSVar8->addr + 4);\n          local_40 = local_40 + 1;\n        }\nLAB_0001cfa6:\n        if (tab->limit <= pSVar8 + 1) goto LAB_0001d0c0;\n      }\n      uVar7 = (uint)pSVar8[1].addr;\n      uVar10 = *(uint *)((int)&pSVar8[1].addr + 4);\n      pSVar8 = pSVar8 + 1;\n    }" { (expression_statement "local_34 = local_30 & 0x1080;" (assignment_expression "local_34 = local_30 & 0x1080" identifier = (binary_expression "local_30 & 0x1080" identifier & number_literal)) ;) (if_statement "if (local_38 == uVar10 && local_3c == uVar7) {\n        bVar1 = pSVar8->field_0x1c;\n        bVar2 = local_40[-1].field_0x1c;\n        if (((bVar1 & 2) != 0) || ((bVar2 & 2) == 0)) {\n          if (((bVar1 ^ bVar2) & 2) == 0) {\n            if (((bVar1 & 1) != 0) && ((bVar2 & 1) == 0)) {\n              if (local_34 != 0) {\n                pcVar15 = local_40[-1].name;\n                if ((bVar2 & 2) == 0) {\n                  iVar9 = 0x66;\n                  iVar11 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar11 = 0x74;\n                iVar9 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }\n            if (((bVar1 ^ bVar2) & 1) == 0) {\n              cVar3 = *pSVar8->name;\n              if (cVar3 != '_') {\n                if (*local_40[-1].name == '_') goto LAB_0001d008;\n                if (cVar3 == '\0') goto LAB_0001d190;\n              }\n              if ((pSVar8->name[1] != '_') && (local_40[-1].name[1] == '_')) goto LAB_0001d008;\n            }\n          }\nLAB_0001d190:\n          if (local_34 != 0) {\n            printf("[symtab_finalize] favor %s@%c%c over %s@%c%c",local_40[-1].name,\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46,pSVar8->name,\n                   (-(uint)((bVar1 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar1 & 1) == 0) & 0x20) + 0x46);\n            printf(" (addr=%lx)\n",(int)pSVar8->addr);\n            local_30 = debug_level;\n            local_34 = debug_level & 0x1080;\n          }\n          goto LAB_0001cfa6;\n        }\nLAB_0001d008:\n        if (local_34 != 0) {\n          uVar12 = 0x66;\n          pcVar15 = local_40[-1].name;\n          iVar9 = (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46;\n          iVar11 = (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74;\n          if ((bVar1 & 1) != 0) {\nLAB_0001d325:\n            uVar12 = 0x46;\n          }\nLAB_0001d049:\n          printf("[symtab_finalize] favor %s@%c%c over %s@%c%c",pSVar8->name,\n                 (-(uint)((bVar1 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,pcVar15,iVar11,iVar9);\n          printf(" (addr=%lx)\n",(int)pSVar8->addr);\n          local_30 = debug_level;\n          local_34 = debug_level & 0x1080;\n        }\nLAB_0001d094:\n        pSVar13 = pSVar8;\n        pSVar16 = local_40 + -1;\n        for (iVar9 = 0x3f; iVar9 != 0; iVar9 = iVar9 + -1) {\n          *(int *)&pSVar16->addr = (int)pSVar13->addr;\n          pSVar13 = (Sym *)((int)pSVar13 + (uint)bVar17 * -8 + 4);\n          pSVar16 = (Sym *)((int)pSVar16 + (uint)bVar17 * -8 + 4);\n        }\n        if (tab->limit <= pSVar8 + 1) goto LAB_0001d0c0;\n      }\n      else {\n        if ((tab->base < local_40) &&\n           (*(int *)((int)&local_40[-1].end_addr + 4) == 0 && (int)local_40[-1].end_addr == 0)) {\n          *(uint *)&local_40[-1].end_addr = uVar7 - 1;\n          *(uint *)((int)&local_40[-1].end_addr + 4) = (uVar10 - 1) + (uint)(uVar7 != 0);\n        }\n        uVar4 = (uint)pSVar8->end_addr;\n        uVar5 = *(uint *)((int)&pSVar8->end_addr + 4);\n        if ((uVar10 <= uVar5 && (uint)(uVar4 < uVar7) <= uVar5 - uVar10) ||\n           (uVar4 == 0 && uVar5 == 0)) {\n          pSVar13 = pSVar8;\n          pSVar16 = local_40;\n          for (iVar9 = 0x3f; iVar9 != 0; iVar9 = iVar9 + -1) {\n            *(int *)&pSVar16->addr = (int)pSVar13->addr;\n            pSVar13 = (Sym *)((int)pSVar13 + (uint)bVar17 * -8 + 4);\n            pSVar16 = (Sym *)((int)pSVar16 + (uint)bVar17 * -8 + 4);\n          }\n          local_3c = (uint)pSVar8->addr;\n          local_38 = *(uint *)((int)&pSVar8->addr + 4);\n          local_40 = local_40 + 1;\n        }\nLAB_0001cfa6:\n        if (tab->limit <= pSVar8 + 1) goto LAB_0001d0c0;\n      }" if (parenthesized_expression "(local_38 == uVar10 && local_3c == uVar7)" ( (binary_expression "local_38 == uVar10 && local_3c == uVar7" (binary_expression "local_38 == uVar10" identifier == identifier) && (binary_expression "local_3c == uVar7" identifier == identifier)) )) (compound_statement "{\n        bVar1 = pSVar8->field_0x1c;\n        bVar2 = local_40[-1].field_0x1c;\n        if (((bVar1 & 2) != 0) || ((bVar2 & 2) == 0)) {\n          if (((bVar1 ^ bVar2) & 2) == 0) {\n            if (((bVar1 & 1) != 0) && ((bVar2 & 1) == 0)) {\n              if (local_34 != 0) {\n                pcVar15 = local_40[-1].name;\n                if ((bVar2 & 2) == 0) {\n                  iVar9 = 0x66;\n                  iVar11 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar11 = 0x74;\n                iVar9 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }\n            if (((bVar1 ^ bVar2) & 1) == 0) {\n              cVar3 = *pSVar8->name;\n              if (cVar3 != '_') {\n                if (*local_40[-1].name == '_') goto LAB_0001d008;\n                if (cVar3 == '\0') goto LAB_0001d190;\n              }\n              if ((pSVar8->name[1] != '_') && (local_40[-1].name[1] == '_')) goto LAB_0001d008;\n            }\n          }\nLAB_0001d190:\n          if (local_34 != 0) {\n            printf("[symtab_finalize] favor %s@%c%c over %s@%c%c",local_40[-1].name,\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46,pSVar8->name,\n                   (-(uint)((bVar1 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar1 & 1) == 0) & 0x20) + 0x46);\n            printf(" (addr=%lx)\n",(int)pSVar8->addr);\n            local_30 = debug_level;\n            local_34 = debug_level & 0x1080;\n          }\n          goto LAB_0001cfa6;\n        }\nLAB_0001d008:\n        if (local_34 != 0) {\n          uVar12 = 0x66;\n          pcVar15 = local_40[-1].name;\n          iVar9 = (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46;\n          iVar11 = (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74;\n          if ((bVar1 & 1) != 0) {\nLAB_0001d325:\n            uVar12 = 0x46;\n          }\nLAB_0001d049:\n          printf("[symtab_finalize] favor %s@%c%c over %s@%c%c",pSVar8->name,\n                 (-(uint)((bVar1 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,pcVar15,iVar11,iVar9);\n          printf(" (addr=%lx)\n",(int)pSVar8->addr);\n          local_30 = debug_level;\n          local_34 = debug_level & 0x1080;\n        }\nLAB_0001d094:\n        pSVar13 = pSVar8;\n        pSVar16 = local_40 + -1;\n        for (iVar9 = 0x3f; iVar9 != 0; iVar9 = iVar9 + -1) {\n          *(int *)&pSVar16->addr = (int)pSVar13->addr;\n          pSVar13 = (Sym *)((int)pSVar13 + (uint)bVar17 * -8 + 4);\n          pSVar16 = (Sym *)((int)pSVar16 + (uint)bVar17 * -8 + 4);\n        }\n        if (tab->limit <= pSVar8 + 1) goto LAB_0001d0c0;\n      }" { (expression_statement "bVar1 = pSVar8->field_0x1c;" (assignment_expression "bVar1 = pSVar8->field_0x1c" identifier = (field_expression "pSVar8->field_0x1c" identifier -> field_identifier)) ;) (expression_statement "bVar2 = local_40[-1].field_0x1c;" (assignment_expression "bVar2 = local_40[-1].field_0x1c" identifier = (field_expression "local_40[-1].field_0x1c" (subscript_expression "local_40[-1]" identifier [ number_literal ]) . field_identifier)) ;) (if_statement "if (((bVar1 & 2) != 0) || ((bVar2 & 2) == 0)) {\n          if (((bVar1 ^ bVar2) & 2) == 0) {\n            if (((bVar1 & 1) != 0) && ((bVar2 & 1) == 0)) {\n              if (local_34 != 0) {\n                pcVar15 = local_40[-1].name;\n                if ((bVar2 & 2) == 0) {\n                  iVar9 = 0x66;\n                  iVar11 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar11 = 0x74;\n                iVar9 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }\n            if (((bVar1 ^ bVar2) & 1) == 0) {\n              cVar3 = *pSVar8->name;\n              if (cVar3 != '_') {\n                if (*local_40[-1].name == '_') goto LAB_0001d008;\n                if (cVar3 == '\0') goto LAB_0001d190;\n              }\n              if ((pSVar8->name[1] != '_') && (local_40[-1].name[1] == '_')) goto LAB_0001d008;\n            }\n          }\nLAB_0001d190:\n          if (local_34 != 0) {\n            printf("[symtab_finalize] favor %s@%c%c over %s@%c%c",local_40[-1].name,\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46,pSVar8->name,\n                   (-(uint)((bVar1 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar1 & 1) == 0) & 0x20) + 0x46);\n            printf(" (addr=%lx)\n",(int)pSVar8->addr);\n            local_30 = debug_level;\n            local_34 = debug_level & 0x1080;\n          }\n          goto LAB_0001cfa6;\n        }" if (parenthesized_expression "(((bVar1 & 2) != 0) || ((bVar2 & 2) == 0))" ( (binary_expression "((bVar1 & 2) != 0) || ((bVar2 & 2) == 0)" (parenthesized_expression "((bVar1 & 2) != 0)" ( (binary_expression "(bVar1 & 2) != 0" (parenthesized_expression "(bVar1 & 2)" ( (binary_expression "bVar1 & 2" identifier & number_literal) )) != number_literal) )) || (parenthesized_expression "((bVar2 & 2) == 0)" ( (binary_expression "(bVar2 & 2) == 0" (parenthesized_expression "(bVar2 & 2)" ( (binary_expression "bVar2 & 2" identifier & number_literal) )) == number_literal) ))) )) (compound_statement "{\n          if (((bVar1 ^ bVar2) & 2) == 0) {\n            if (((bVar1 & 1) != 0) && ((bVar2 & 1) == 0)) {\n              if (local_34 != 0) {\n                pcVar15 = local_40[-1].name;\n                if ((bVar2 & 2) == 0) {\n                  iVar9 = 0x66;\n                  iVar11 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar11 = 0x74;\n                iVar9 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }\n            if (((bVar1 ^ bVar2) & 1) == 0) {\n              cVar3 = *pSVar8->name;\n              if (cVar3 != '_') {\n                if (*local_40[-1].name == '_') goto LAB_0001d008;\n                if (cVar3 == '\0') goto LAB_0001d190;\n              }\n              if ((pSVar8->name[1] != '_') && (local_40[-1].name[1] == '_')) goto LAB_0001d008;\n            }\n          }\nLAB_0001d190:\n          if (local_34 != 0) {\n            printf("[symtab_finalize] favor %s@%c%c over %s@%c%c",local_40[-1].name,\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46,pSVar8->name,\n                   (-(uint)((bVar1 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar1 & 1) == 0) & 0x20) + 0x46);\n            printf(" (addr=%lx)\n",(int)pSVar8->addr);\n            local_30 = debug_level;\n            local_34 = debug_level & 0x1080;\n          }\n          goto LAB_0001cfa6;\n        }" { (if_statement "if (((bVar1 ^ bVar2) & 2) == 0) {\n            if (((bVar1 & 1) != 0) && ((bVar2 & 1) == 0)) {\n              if (local_34 != 0) {\n                pcVar15 = local_40[-1].name;\n                if ((bVar2 & 2) == 0) {\n                  iVar9 = 0x66;\n                  iVar11 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar11 = 0x74;\n                iVar9 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }\n            if (((bVar1 ^ bVar2) & 1) == 0) {\n              cVar3 = *pSVar8->name;\n              if (cVar3 != '_') {\n                if (*local_40[-1].name == '_') goto LAB_0001d008;\n                if (cVar3 == '\0') goto LAB_0001d190;\n              }\n              if ((pSVar8->name[1] != '_') && (local_40[-1].name[1] == '_')) goto LAB_0001d008;\n            }\n          }" if (parenthesized_expression "(((bVar1 ^ bVar2) & 2) == 0)" ( (binary_expression "((bVar1 ^ bVar2) & 2) == 0" (parenthesized_expression "((bVar1 ^ bVar2) & 2)" ( (binary_expression "(bVar1 ^ bVar2) & 2" (parenthesized_expression "(bVar1 ^ bVar2)" ( (binary_expression "bVar1 ^ bVar2" identifier ^ identifier) )) & number_literal) )) == number_literal) )) (compound_statement "{\n            if (((bVar1 & 1) != 0) && ((bVar2 & 1) == 0)) {\n              if (local_34 != 0) {\n                pcVar15 = local_40[-1].name;\n                if ((bVar2 & 2) == 0) {\n                  iVar9 = 0x66;\n                  iVar11 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar11 = 0x74;\n                iVar9 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }\n            if (((bVar1 ^ bVar2) & 1) == 0) {\n              cVar3 = *pSVar8->name;\n              if (cVar3 != '_') {\n                if (*local_40[-1].name == '_') goto LAB_0001d008;\n                if (cVar3 == '\0') goto LAB_0001d190;\n              }\n              if ((pSVar8->name[1] != '_') && (local_40[-1].name[1] == '_')) goto LAB_0001d008;\n            }\n          }" { (if_statement "if (((bVar1 & 1) != 0) && ((bVar2 & 1) == 0)) {\n              if (local_34 != 0) {\n                pcVar15 = local_40[-1].name;\n                if ((bVar2 & 2) == 0) {\n                  iVar9 = 0x66;\n                  iVar11 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar11 = 0x74;\n                iVar9 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }" if (parenthesized_expression "(((bVar1 & 1) != 0) && ((bVar2 & 1) == 0))" ( (binary_expression "((bVar1 & 1) != 0) && ((bVar2 & 1) == 0)" (parenthesized_expression "((bVar1 & 1) != 0)" ( (binary_expression "(bVar1 & 1) != 0" (parenthesized_expression "(bVar1 & 1)" ( (binary_expression "bVar1 & 1" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "((bVar2 & 1) == 0)" ( (binary_expression "(bVar2 & 1) == 0" (parenthesized_expression "(bVar2 & 1)" ( (binary_expression "bVar2 & 1" identifier & number_literal) )) == number_literal) ))) )) (compound_statement "{\n              if (local_34 != 0) {\n                pcVar15 = local_40[-1].name;\n                if ((bVar2 & 2) == 0) {\n                  iVar9 = 0x66;\n                  iVar11 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar11 = 0x74;\n                iVar9 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }" { (if_statement "if (local_34 != 0) {\n                pcVar15 = local_40[-1].name;\n                if ((bVar2 & 2) == 0) {\n                  iVar9 = 0x66;\n                  iVar11 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar11 = 0x74;\n                iVar9 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }" if (parenthesized_expression "(local_34 != 0)" ( (binary_expression "local_34 != 0" identifier != number_literal) )) (compound_statement "{\n                pcVar15 = local_40[-1].name;\n                if ((bVar2 & 2) == 0) {\n                  iVar9 = 0x66;\n                  iVar11 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar11 = 0x74;\n                iVar9 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }" { (expression_statement "pcVar15 = local_40[-1].name;" (assignment_expression "pcVar15 = local_40[-1].name" identifier = (field_expression "local_40[-1].name" (subscript_expression "local_40[-1]" identifier [ number_literal ]) . field_identifier)) ;) (if_statement "if ((bVar2 & 2) == 0) {\n                  iVar9 = 0x66;\n                  iVar11 = 0x54;\n                  goto LAB_0001d325;\n                }" if (parenthesized_expression "((bVar2 & 2) == 0)" ( (binary_expression "(bVar2 & 2) == 0" (parenthesized_expression "(bVar2 & 2)" ( (binary_expression "bVar2 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                  iVar9 = 0x66;\n                  iVar11 = 0x54;\n                  goto LAB_0001d325;\n                }" { (expression_statement "iVar9 = 0x66;" (assignment_expression "iVar9 = 0x66" identifier = number_literal) ;) (expression_statement "iVar11 = 0x54;" (assignment_expression "iVar11 = 0x54" identifier = number_literal) ;) (goto_statement "goto LAB_0001d325;" goto statement_identifier ;) })) (expression_statement "iVar11 = 0x74;" (assignment_expression "iVar11 = 0x74" identifier = number_literal) ;) (expression_statement "iVar9 = 0x66;" (assignment_expression "iVar9 = 0x66" identifier = number_literal) ;) (expression_statement "uVar12 = 0x46;" (assignment_expression "uVar12 = 0x46" identifier = number_literal) ;) (goto_statement "goto LAB_0001d049;" goto statement_identifier ;) })) (goto_statement "goto LAB_0001d094;" goto statement_identifier ;) })) (if_statement "if (((bVar1 ^ bVar2) & 1) == 0) {\n              cVar3 = *pSVar8->name;\n              if (cVar3 != '_') {\n                if (*local_40[-1].name == '_') goto LAB_0001d008;\n                if (cVar3 == '\0') goto LAB_0001d190;\n              }\n              if ((pSVar8->name[1] != '_') && (local_40[-1].name[1] == '_')) goto LAB_0001d008;\n            }" if (parenthesized_expression "(((bVar1 ^ bVar2) & 1) == 0)" ( (binary_expression "((bVar1 ^ bVar2) & 1) == 0" (parenthesized_expression "((bVar1 ^ bVar2) & 1)" ( (binary_expression "(bVar1 ^ bVar2) & 1" (parenthesized_expression "(bVar1 ^ bVar2)" ( (binary_expression "bVar1 ^ bVar2" identifier ^ identifier) )) & number_literal) )) == number_literal) )) (compound_statement "{\n              cVar3 = *pSVar8->name;\n              if (cVar3 != '_') {\n                if (*local_40[-1].name == '_') goto LAB_0001d008;\n                if (cVar3 == '\0') goto LAB_0001d190;\n              }\n              if ((pSVar8->name[1] != '_') && (local_40[-1].name[1] == '_')) goto LAB_0001d008;\n            }" { (expression_statement "cVar3 = *pSVar8->name;" (assignment_expression "cVar3 = *pSVar8->name" identifier = (pointer_expression "*pSVar8->name" * (field_expression "pSVar8->name" identifier -> field_identifier))) ;) (if_statement "if (cVar3 != '_') {\n                if (*local_40[-1].name == '_') goto LAB_0001d008;\n                if (cVar3 == '\0') goto LAB_0001d190;\n              }" if (parenthesized_expression "(cVar3 != '_')" ( (binary_expression "cVar3 != '_'" identifier != (char_literal "'_'" ' character ')) )) (compound_statement "{\n                if (*local_40[-1].name == '_') goto LAB_0001d008;\n                if (cVar3 == '\0') goto LAB_0001d190;\n              }" { (if_statement "if (*local_40[-1].name == '_') goto LAB_0001d008;" if (parenthesized_expression "(*local_40[-1].name == '_')" ( (binary_expression "*local_40[-1].name == '_'" (pointer_expression "*local_40[-1].name" * (field_expression "local_40[-1].name" (subscript_expression "local_40[-1]" identifier [ number_literal ]) . field_identifier)) == (char_literal "'_'" ' character ')) )) (goto_statement "goto LAB_0001d008;" goto statement_identifier ;)) (if_statement "if (cVar3 == '\0') goto LAB_0001d190;" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0001d190;" goto statement_identifier ;)) })) (if_statement "if ((pSVar8->name[1] != '_') && (local_40[-1].name[1] == '_')) goto LAB_0001d008;" if (parenthesized_expression "((pSVar8->name[1] != '_') && (local_40[-1].name[1] == '_'))" ( (binary_expression "(pSVar8->name[1] != '_') && (local_40[-1].name[1] == '_')" (parenthesized_expression "(pSVar8->name[1] != '_')" ( (binary_expression "pSVar8->name[1] != '_'" (subscript_expression "pSVar8->name[1]" (field_expression "pSVar8->name" identifier -> field_identifier) [ number_literal ]) != (char_literal "'_'" ' character ')) )) && (parenthesized_expression "(local_40[-1].name[1] == '_')" ( (binary_expression "local_40[-1].name[1] == '_'" (subscript_expression "local_40[-1].name[1]" (field_expression "local_40[-1].name" (subscript_expression "local_40[-1]" identifier [ number_literal ]) . field_identifier) [ number_literal ]) == (char_literal "'_'" ' character ')) ))) )) (goto_statement "goto LAB_0001d008;" goto statement_identifier ;)) })) })) (labeled_statement "LAB_0001d190:\n          if (local_34 != 0) {\n            printf("[symtab_finalize] favor %s@%c%c over %s@%c%c",local_40[-1].name,\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46,pSVar8->name,\n                   (-(uint)((bVar1 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar1 & 1) == 0) & 0x20) + 0x46);\n            printf(" (addr=%lx)\n",(int)pSVar8->addr);\n            local_30 = debug_level;\n            local_34 = debug_level & 0x1080;\n          }" statement_identifier : (if_statement "if (local_34 != 0) {\n            printf("[symtab_finalize] favor %s@%c%c over %s@%c%c",local_40[-1].name,\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46,pSVar8->name,\n                   (-(uint)((bVar1 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar1 & 1) == 0) & 0x20) + 0x46);\n            printf(" (addr=%lx)\n",(int)pSVar8->addr);\n            local_30 = debug_level;\n            local_34 = debug_level & 0x1080;\n          }" if (parenthesized_expression "(local_34 != 0)" ( (binary_expression "local_34 != 0" identifier != number_literal) )) (compound_statement "{\n            printf("[symtab_finalize] favor %s@%c%c over %s@%c%c",local_40[-1].name,\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46,pSVar8->name,\n                   (-(uint)((bVar1 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar1 & 1) == 0) & 0x20) + 0x46);\n            printf(" (addr=%lx)\n",(int)pSVar8->addr);\n            local_30 = debug_level;\n            local_34 = debug_level & 0x1080;\n          }" { (expression_statement "printf("[symtab_finalize] favor %s@%c%c over %s@%c%c",local_40[-1].name,\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46,pSVar8->name,\n                   (-(uint)((bVar1 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar1 & 1) == 0) & 0x20) + 0x46);" (call_expression "printf("[symtab_finalize] favor %s@%c%c over %s@%c%c",local_40[-1].name,\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46,pSVar8->name,\n                   (-(uint)((bVar1 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar1 & 1) == 0) & 0x20) + 0x46)" identifier (argument_list "("[symtab_finalize] favor %s@%c%c over %s@%c%c",local_40[-1].name,\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46,pSVar8->name,\n                   (-(uint)((bVar1 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar1 & 1) == 0) & 0x20) + 0x46)" ( (string_literal ""[symtab_finalize] favor %s@%c%c over %s@%c%c"" " string_content ") , (field_expression "local_40[-1].name" (subscript_expression "local_40[-1]" identifier [ number_literal ]) . field_identifier) , (binary_expression "(-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74" (parenthesized_expression "(-(uint)((bVar2 & 2) == 0) & 0xffffffe0)" ( (binary_expression "-(uint)((bVar2 & 2) == 0) & 0xffffffe0" (unary_expression "-(uint)((bVar2 & 2) == 0)" - (call_expression "(uint)((bVar2 & 2) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((bVar2 & 2) == 0)" ( (binary_expression "(bVar2 & 2) == 0" (parenthesized_expression "(bVar2 & 2)" ( (binary_expression "bVar2 & 2" identifier & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal) , (binary_expression "(-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46" (parenthesized_expression "(-(uint)((bVar2 & 1) == 0) & 0x20)" ( (binary_expression "-(uint)((bVar2 & 1) == 0) & 0x20" (unary_expression "-(uint)((bVar2 & 1) == 0)" - (call_expression "(uint)((bVar2 & 1) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((bVar2 & 1) == 0)" ( (binary_expression "(bVar2 & 1) == 0" (parenthesized_expression "(bVar2 & 1)" ( (binary_expression "bVar2 & 1" identifier & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal) , (field_expression "pSVar8->name" identifier -> field_identifier) , (binary_expression "(-(uint)((bVar1 & 2) == 0) & 0xffffffe0) + 0x74" (parenthesized_expression "(-(uint)((bVar1 & 2) == 0) & 0xffffffe0)" ( (binary_expression "-(uint)((bVar1 & 2) == 0) & 0xffffffe0" (unary_expression "-(uint)((bVar1 & 2) == 0)" - (call_expression "(uint)((bVar1 & 2) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((bVar1 & 2) == 0)" ( (binary_expression "(bVar1 & 2) == 0" (parenthesized_expression "(bVar1 & 2)" ( (binary_expression "bVar1 & 2" identifier & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal) , (binary_expression "(-(uint)((bVar1 & 1) == 0) & 0x20) + 0x46" (parenthesized_expression "(-(uint)((bVar1 & 1) == 0) & 0x20)" ( (binary_expression "-(uint)((bVar1 & 1) == 0) & 0x20" (unary_expression "-(uint)((bVar1 & 1) == 0)" - (call_expression "(uint)((bVar1 & 1) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((bVar1 & 1) == 0)" ( (binary_expression "(bVar1 & 1) == 0" (parenthesized_expression "(bVar1 & 1)" ( (binary_expression "bVar1 & 1" identifier & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal) ))) ;) (expression_statement "printf(" (addr=%lx)\n",(int)pSVar8->addr);" (call_expression "printf(" (addr=%lx)\n",(int)pSVar8->addr)" identifier (argument_list "(" (addr=%lx)\n",(int)pSVar8->addr)" ( (string_literal "" (addr=%lx)\n"" " string_content escape_sequence ") , (cast_expression "(int)pSVar8->addr" ( (type_descriptor "int" primitive_type) ) (field_expression "pSVar8->addr" identifier -> field_identifier)) ))) ;) (expression_statement "local_30 = debug_level;" (assignment_expression "local_30 = debug_level" identifier = identifier) ;) (expression_statement "local_34 = debug_level & 0x1080;" (assignment_expression "local_34 = debug_level & 0x1080" identifier = (binary_expression "debug_level & 0x1080" identifier & number_literal)) ;) }))) (goto_statement "goto LAB_0001cfa6;" goto statement_identifier ;) })) (labeled_statement "LAB_0001d008:\n        if (local_34 != 0) {\n          uVar12 = 0x66;\n          pcVar15 = local_40[-1].name;\n          iVar9 = (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46;\n          iVar11 = (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74;\n          if ((bVar1 & 1) != 0) {\nLAB_0001d325:\n            uVar12 = 0x46;\n          }\nLAB_0001d049:\n          printf("[symtab_finalize] favor %s@%c%c over %s@%c%c",pSVar8->name,\n                 (-(uint)((bVar1 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,pcVar15,iVar11,iVar9);\n          printf(" (addr=%lx)\n",(int)pSVar8->addr);\n          local_30 = debug_level;\n          local_34 = debug_level & 0x1080;\n        }" statement_identifier : (if_statement "if (local_34 != 0) {\n          uVar12 = 0x66;\n          pcVar15 = local_40[-1].name;\n          iVar9 = (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46;\n          iVar11 = (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74;\n          if ((bVar1 & 1) != 0) {\nLAB_0001d325:\n            uVar12 = 0x46;\n          }\nLAB_0001d049:\n          printf("[symtab_finalize] favor %s@%c%c over %s@%c%c",pSVar8->name,\n                 (-(uint)((bVar1 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,pcVar15,iVar11,iVar9);\n          printf(" (addr=%lx)\n",(int)pSVar8->addr);\n          local_30 = debug_level;\n          local_34 = debug_level & 0x1080;\n        }" if (parenthesized_expression "(local_34 != 0)" ( (binary_expression "local_34 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar12 = 0x66;\n          pcVar15 = local_40[-1].name;\n          iVar9 = (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46;\n          iVar11 = (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74;\n          if ((bVar1 & 1) != 0) {\nLAB_0001d325:\n            uVar12 = 0x46;\n          }\nLAB_0001d049:\n          printf("[symtab_finalize] favor %s@%c%c over %s@%c%c",pSVar8->name,\n                 (-(uint)((bVar1 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,pcVar15,iVar11,iVar9);\n          printf(" (addr=%lx)\n",(int)pSVar8->addr);\n          local_30 = debug_level;\n          local_34 = debug_level & 0x1080;\n        }" { (expression_statement "uVar12 = 0x66;" (assignment_expression "uVar12 = 0x66" identifier = number_literal) ;) (expression_statement "pcVar15 = local_40[-1].name;" (assignment_expression "pcVar15 = local_40[-1].name" identifier = (field_expression "local_40[-1].name" (subscript_expression "local_40[-1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "iVar9 = (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46;" (assignment_expression "iVar9 = (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46" identifier = (binary_expression "(-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46" (parenthesized_expression "(-(uint)((bVar2 & 1) == 0) & 0x20)" ( (binary_expression "-(uint)((bVar2 & 1) == 0) & 0x20" (unary_expression "-(uint)((bVar2 & 1) == 0)" - (call_expression "(uint)((bVar2 & 1) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((bVar2 & 1) == 0)" ( (binary_expression "(bVar2 & 1) == 0" (parenthesized_expression "(bVar2 & 1)" ( (binary_expression "bVar2 & 1" identifier & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal)) ;) (expression_statement "iVar11 = (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74;" (assignment_expression "iVar11 = (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74" identifier = (binary_expression "(-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74" (parenthesized_expression "(-(uint)((bVar2 & 2) == 0) & 0xffffffe0)" ( (binary_expression "-(uint)((bVar2 & 2) == 0) & 0xffffffe0" (unary_expression "-(uint)((bVar2 & 2) == 0)" - (call_expression "(uint)((bVar2 & 2) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((bVar2 & 2) == 0)" ( (binary_expression "(bVar2 & 2) == 0" (parenthesized_expression "(bVar2 & 2)" ( (binary_expression "bVar2 & 2" identifier & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal)) ;) (if_statement "if ((bVar1 & 1) != 0) {\nLAB_0001d325:\n            uVar12 = 0x46;\n          }" if (parenthesized_expression "((bVar1 & 1) != 0)" ( (binary_expression "(bVar1 & 1) != 0" (parenthesized_expression "(bVar1 & 1)" ( (binary_expression "bVar1 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_0001d325:\n            uVar12 = 0x46;\n          }" { (labeled_statement "LAB_0001d325:\n            uVar12 = 0x46;" statement_identifier : (expression_statement "uVar12 = 0x46;" (assignment_expression "uVar12 = 0x46" identifier = number_literal) ;)) })) (labeled_statement "LAB_0001d049:\n          printf("[symtab_finalize] favor %s@%c%c over %s@%c%c",pSVar8->name,\n                 (-(uint)((bVar1 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,pcVar15,iVar11,iVar9);" statement_identifier : (expression_statement "printf("[symtab_finalize] favor %s@%c%c over %s@%c%c",pSVar8->name,\n                 (-(uint)((bVar1 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,pcVar15,iVar11,iVar9);" (call_expression "printf("[symtab_finalize] favor %s@%c%c over %s@%c%c",pSVar8->name,\n                 (-(uint)((bVar1 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,pcVar15,iVar11,iVar9)" identifier (argument_list "("[symtab_finalize] favor %s@%c%c over %s@%c%c",pSVar8->name,\n                 (-(uint)((bVar1 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,pcVar15,iVar11,iVar9)" ( (string_literal ""[symtab_finalize] favor %s@%c%c over %s@%c%c"" " string_content ") , (field_expression "pSVar8->name" identifier -> field_identifier) , (binary_expression "(-(uint)((bVar1 & 2) == 0) & 0xffffffe0) + 0x74" (parenthesized_expression "(-(uint)((bVar1 & 2) == 0) & 0xffffffe0)" ( (binary_expression "-(uint)((bVar1 & 2) == 0) & 0xffffffe0" (unary_expression "-(uint)((bVar1 & 2) == 0)" - (call_expression "(uint)((bVar1 & 2) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((bVar1 & 2) == 0)" ( (binary_expression "(bVar1 & 2) == 0" (parenthesized_expression "(bVar1 & 2)" ( (binary_expression "bVar1 & 2" identifier & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal) , identifier , identifier , identifier , identifier ))) ;)) (expression_statement "printf(" (addr=%lx)\n",(int)pSVar8->addr);" (call_expression "printf(" (addr=%lx)\n",(int)pSVar8->addr)" identifier (argument_list "(" (addr=%lx)\n",(int)pSVar8->addr)" ( (string_literal "" (addr=%lx)\n"" " string_content escape_sequence ") , (cast_expression "(int)pSVar8->addr" ( (type_descriptor "int" primitive_type) ) (field_expression "pSVar8->addr" identifier -> field_identifier)) ))) ;) (expression_statement "local_30 = debug_level;" (assignment_expression "local_30 = debug_level" identifier = identifier) ;) (expression_statement "local_34 = debug_level & 0x1080;" (assignment_expression "local_34 = debug_level & 0x1080" identifier = (binary_expression "debug_level & 0x1080" identifier & number_literal)) ;) }))) (labeled_statement "LAB_0001d094:\n        pSVar13 = pSVar8;" statement_identifier : (expression_statement "pSVar13 = pSVar8;" (assignment_expression "pSVar13 = pSVar8" identifier = identifier) ;)) (expression_statement "pSVar16 = local_40 + -1;" (assignment_expression "pSVar16 = local_40 + -1" identifier = (binary_expression "local_40 + -1" identifier + number_literal)) ;) (for_statement "for (iVar9 = 0x3f; iVar9 != 0; iVar9 = iVar9 + -1) {\n          *(int *)&pSVar16->addr = (int)pSVar13->addr;\n          pSVar13 = (Sym *)((int)pSVar13 + (uint)bVar17 * -8 + 4);\n          pSVar16 = (Sym *)((int)pSVar16 + (uint)bVar17 * -8 + 4);\n        }" for ( (assignment_expression "iVar9 = 0x3f" identifier = number_literal) ; (binary_expression "iVar9 != 0" identifier != number_literal) ; (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ) (compound_statement "{\n          *(int *)&pSVar16->addr = (int)pSVar13->addr;\n          pSVar13 = (Sym *)((int)pSVar13 + (uint)bVar17 * -8 + 4);\n          pSVar16 = (Sym *)((int)pSVar16 + (uint)bVar17 * -8 + 4);\n        }" { (expression_statement "*(int *)&pSVar16->addr = (int)pSVar13->addr;" (assignment_expression "*(int *)&pSVar16->addr = (int)pSVar13->addr" (pointer_expression "*(int *)&pSVar16->addr" * (cast_expression "(int *)&pSVar16->addr" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pSVar16->addr" & (field_expression "pSVar16->addr" identifier -> field_identifier)))) = (cast_expression "(int)pSVar13->addr" ( (type_descriptor "int" primitive_type) ) (field_expression "pSVar13->addr" identifier -> field_identifier))) ;) (expression_statement "pSVar13 = (Sym *)((int)pSVar13 + (uint)bVar17 * -8 + 4);" (assignment_expression "pSVar13 = (Sym *)((int)pSVar13 + (uint)bVar17 * -8 + 4)" identifier = (cast_expression "(Sym *)((int)pSVar13 + (uint)bVar17 * -8 + 4)" ( (type_descriptor "Sym *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pSVar13 + (uint)bVar17 * -8 + 4)" ( (binary_expression "(int)pSVar13 + (uint)bVar17 * -8 + 4" (binary_expression "(int)pSVar13 + (uint)bVar17 * -8" (cast_expression "(int)pSVar13" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar17 * -8" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pSVar16 = (Sym *)((int)pSVar16 + (uint)bVar17 * -8 + 4);" (assignment_expression "pSVar16 = (Sym *)((int)pSVar16 + (uint)bVar17 * -8 + 4)" identifier = (cast_expression "(Sym *)((int)pSVar16 + (uint)bVar17 * -8 + 4)" ( (type_descriptor "Sym *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pSVar16 + (uint)bVar17 * -8 + 4)" ( (binary_expression "(int)pSVar16 + (uint)bVar17 * -8 + 4" (binary_expression "(int)pSVar16 + (uint)bVar17 * -8" (cast_expression "(int)pSVar16" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar17 * -8" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) })) (if_statement "if (tab->limit <= pSVar8 + 1) goto LAB_0001d0c0;" if (parenthesized_expression "(tab->limit <= pSVar8 + 1)" ( (binary_expression "tab->limit <= pSVar8 + 1" (field_expression "tab->limit" identifier -> field_identifier) <= (binary_expression "pSVar8 + 1" identifier + number_literal)) )) (goto_statement "goto LAB_0001d0c0;" goto statement_identifier ;)) }) (else_clause "else {\n        if ((tab->base < local_40) &&\n           (*(int *)((int)&local_40[-1].end_addr + 4) == 0 && (int)local_40[-1].end_addr == 0)) {\n          *(uint *)&local_40[-1].end_addr = uVar7 - 1;\n          *(uint *)((int)&local_40[-1].end_addr + 4) = (uVar10 - 1) + (uint)(uVar7 != 0);\n        }\n        uVar4 = (uint)pSVar8->end_addr;\n        uVar5 = *(uint *)((int)&pSVar8->end_addr + 4);\n        if ((uVar10 <= uVar5 && (uint)(uVar4 < uVar7) <= uVar5 - uVar10) ||\n           (uVar4 == 0 && uVar5 == 0)) {\n          pSVar13 = pSVar8;\n          pSVar16 = local_40;\n          for (iVar9 = 0x3f; iVar9 != 0; iVar9 = iVar9 + -1) {\n            *(int *)&pSVar16->addr = (int)pSVar13->addr;\n            pSVar13 = (Sym *)((int)pSVar13 + (uint)bVar17 * -8 + 4);\n            pSVar16 = (Sym *)((int)pSVar16 + (uint)bVar17 * -8 + 4);\n          }\n          local_3c = (uint)pSVar8->addr;\n          local_38 = *(uint *)((int)&pSVar8->addr + 4);\n          local_40 = local_40 + 1;\n        }\nLAB_0001cfa6:\n        if (tab->limit <= pSVar8 + 1) goto LAB_0001d0c0;\n      }" else (compound_statement "{\n        if ((tab->base < local_40) &&\n           (*(int *)((int)&local_40[-1].end_addr + 4) == 0 && (int)local_40[-1].end_addr == 0)) {\n          *(uint *)&local_40[-1].end_addr = uVar7 - 1;\n          *(uint *)((int)&local_40[-1].end_addr + 4) = (uVar10 - 1) + (uint)(uVar7 != 0);\n        }\n        uVar4 = (uint)pSVar8->end_addr;\n        uVar5 = *(uint *)((int)&pSVar8->end_addr + 4);\n        if ((uVar10 <= uVar5 && (uint)(uVar4 < uVar7) <= uVar5 - uVar10) ||\n           (uVar4 == 0 && uVar5 == 0)) {\n          pSVar13 = pSVar8;\n          pSVar16 = local_40;\n          for (iVar9 = 0x3f; iVar9 != 0; iVar9 = iVar9 + -1) {\n            *(int *)&pSVar16->addr = (int)pSVar13->addr;\n            pSVar13 = (Sym *)((int)pSVar13 + (uint)bVar17 * -8 + 4);\n            pSVar16 = (Sym *)((int)pSVar16 + (uint)bVar17 * -8 + 4);\n          }\n          local_3c = (uint)pSVar8->addr;\n          local_38 = *(uint *)((int)&pSVar8->addr + 4);\n          local_40 = local_40 + 1;\n        }\nLAB_0001cfa6:\n        if (tab->limit <= pSVar8 + 1) goto LAB_0001d0c0;\n      }" { (if_statement "if ((tab->base < local_40) &&\n           (*(int *)((int)&local_40[-1].end_addr + 4) == 0 && (int)local_40[-1].end_addr == 0)) {\n          *(uint *)&local_40[-1].end_addr = uVar7 - 1;\n          *(uint *)((int)&local_40[-1].end_addr + 4) = (uVar10 - 1) + (uint)(uVar7 != 0);\n        }" if (parenthesized_expression "((tab->base < local_40) &&\n           (*(int *)((int)&local_40[-1].end_addr + 4) == 0 && (int)local_40[-1].end_addr == 0))" ( (binary_expression "(tab->base < local_40) &&\n           (*(int *)((int)&local_40[-1].end_addr + 4) == 0 && (int)local_40[-1].end_addr == 0)" (parenthesized_expression "(tab->base < local_40)" ( (binary_expression "tab->base < local_40" (field_expression "tab->base" identifier -> field_identifier) < identifier) )) && (parenthesized_expression "(*(int *)((int)&local_40[-1].end_addr + 4) == 0 && (int)local_40[-1].end_addr == 0)" ( (binary_expression "*(int *)((int)&local_40[-1].end_addr + 4) == 0 && (int)local_40[-1].end_addr == 0" (binary_expression "*(int *)((int)&local_40[-1].end_addr + 4) == 0" (pointer_expression "*(int *)((int)&local_40[-1].end_addr + 4)" * (cast_expression "(int *)((int)&local_40[-1].end_addr + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_40[-1].end_addr + 4)" ( (binary_expression "(int)&local_40[-1].end_addr + 4" (cast_expression "(int)&local_40[-1].end_addr" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_40[-1].end_addr" & (field_expression "local_40[-1].end_addr" (subscript_expression "local_40[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) == number_literal) && (binary_expression "(int)local_40[-1].end_addr == 0" (cast_expression "(int)local_40[-1].end_addr" ( (type_descriptor "int" primitive_type) ) (field_expression "local_40[-1].end_addr" (subscript_expression "local_40[-1]" identifier [ number_literal ]) . field_identifier)) == number_literal)) ))) )) (compound_statement "{\n          *(uint *)&local_40[-1].end_addr = uVar7 - 1;\n          *(uint *)((int)&local_40[-1].end_addr + 4) = (uVar10 - 1) + (uint)(uVar7 != 0);\n        }" { (expression_statement "*(uint *)&local_40[-1].end_addr = uVar7 - 1;" (assignment_expression "*(uint *)&local_40[-1].end_addr = uVar7 - 1" (pointer_expression "*(uint *)&local_40[-1].end_addr" * (cast_expression "(uint *)&local_40[-1].end_addr" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_40[-1].end_addr" & (field_expression "local_40[-1].end_addr" (subscript_expression "local_40[-1]" identifier [ number_literal ]) . field_identifier)))) = (binary_expression "uVar7 - 1" identifier - number_literal)) ;) (expression_statement "*(uint *)((int)&local_40[-1].end_addr + 4) = (uVar10 - 1) + (uint)(uVar7 != 0);" (assignment_expression "*(uint *)((int)&local_40[-1].end_addr + 4) = (uVar10 - 1) + (uint)(uVar7 != 0)" (pointer_expression "*(uint *)((int)&local_40[-1].end_addr + 4)" * (cast_expression "(uint *)((int)&local_40[-1].end_addr + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_40[-1].end_addr + 4)" ( (binary_expression "(int)&local_40[-1].end_addr + 4" (cast_expression "(int)&local_40[-1].end_addr" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_40[-1].end_addr" & (field_expression "local_40[-1].end_addr" (subscript_expression "local_40[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) = (binary_expression "(uVar10 - 1) + (uint)(uVar7 != 0)" (parenthesized_expression "(uVar10 - 1)" ( (binary_expression "uVar10 - 1" identifier - number_literal) )) + (call_expression "(uint)(uVar7 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar7 != 0)" ( (binary_expression "uVar7 != 0" identifier != number_literal) ))))) ;) })) (expression_statement "uVar4 = (uint)pSVar8->end_addr;" (assignment_expression "uVar4 = (uint)pSVar8->end_addr" identifier = (cast_expression "(uint)pSVar8->end_addr" ( (type_descriptor "uint" type_identifier) ) (field_expression "pSVar8->end_addr" identifier -> field_identifier))) ;) (expression_statement "uVar5 = *(uint *)((int)&pSVar8->end_addr + 4);" (assignment_expression "uVar5 = *(uint *)((int)&pSVar8->end_addr + 4)" identifier = (pointer_expression "*(uint *)((int)&pSVar8->end_addr + 4)" * (cast_expression "(uint *)((int)&pSVar8->end_addr + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pSVar8->end_addr + 4)" ( (binary_expression "(int)&pSVar8->end_addr + 4" (cast_expression "(int)&pSVar8->end_addr" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pSVar8->end_addr" & (field_expression "pSVar8->end_addr" identifier -> field_identifier))) + number_literal) ))))) ;) (if_statement "if ((uVar10 <= uVar5 && (uint)(uVar4 < uVar7) <= uVar5 - uVar10) ||\n           (uVar4 == 0 && uVar5 == 0)) {\n          pSVar13 = pSVar8;\n          pSVar16 = local_40;\n          for (iVar9 = 0x3f; iVar9 != 0; iVar9 = iVar9 + -1) {\n            *(int *)&pSVar16->addr = (int)pSVar13->addr;\n            pSVar13 = (Sym *)((int)pSVar13 + (uint)bVar17 * -8 + 4);\n            pSVar16 = (Sym *)((int)pSVar16 + (uint)bVar17 * -8 + 4);\n          }\n          local_3c = (uint)pSVar8->addr;\n          local_38 = *(uint *)((int)&pSVar8->addr + 4);\n          local_40 = local_40 + 1;\n        }" if (parenthesized_expression "((uVar10 <= uVar5 && (uint)(uVar4 < uVar7) <= uVar5 - uVar10) ||\n           (uVar4 == 0 && uVar5 == 0))" ( (binary_expression "(uVar10 <= uVar5 && (uint)(uVar4 < uVar7) <= uVar5 - uVar10) ||\n           (uVar4 == 0 && uVar5 == 0)" (parenthesized_expression "(uVar10 <= uVar5 && (uint)(uVar4 < uVar7) <= uVar5 - uVar10)" ( (binary_expression "uVar10 <= uVar5 && (uint)(uVar4 < uVar7) <= uVar5 - uVar10" (binary_expression "uVar10 <= uVar5" identifier <= identifier) && (binary_expression "(uint)(uVar4 < uVar7) <= uVar5 - uVar10" (call_expression "(uint)(uVar4 < uVar7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar4 < uVar7)" ( (binary_expression "uVar4 < uVar7" identifier < identifier) ))) <= (binary_expression "uVar5 - uVar10" identifier - identifier))) )) || (parenthesized_expression "(uVar4 == 0 && uVar5 == 0)" ( (binary_expression "uVar4 == 0 && uVar5 == 0" (binary_expression "uVar4 == 0" identifier == number_literal) && (binary_expression "uVar5 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n          pSVar13 = pSVar8;\n          pSVar16 = local_40;\n          for (iVar9 = 0x3f; iVar9 != 0; iVar9 = iVar9 + -1) {\n            *(int *)&pSVar16->addr = (int)pSVar13->addr;\n            pSVar13 = (Sym *)((int)pSVar13 + (uint)bVar17 * -8 + 4);\n            pSVar16 = (Sym *)((int)pSVar16 + (uint)bVar17 * -8 + 4);\n          }\n          local_3c = (uint)pSVar8->addr;\n          local_38 = *(uint *)((int)&pSVar8->addr + 4);\n          local_40 = local_40 + 1;\n        }" { (expression_statement "pSVar13 = pSVar8;" (assignment_expression "pSVar13 = pSVar8" identifier = identifier) ;) (expression_statement "pSVar16 = local_40;" (assignment_expression "pSVar16 = local_40" identifier = identifier) ;) (for_statement "for (iVar9 = 0x3f; iVar9 != 0; iVar9 = iVar9 + -1) {\n            *(int *)&pSVar16->addr = (int)pSVar13->addr;\n            pSVar13 = (Sym *)((int)pSVar13 + (uint)bVar17 * -8 + 4);\n            pSVar16 = (Sym *)((int)pSVar16 + (uint)bVar17 * -8 + 4);\n          }" for ( (assignment_expression "iVar9 = 0x3f" identifier = number_literal) ; (binary_expression "iVar9 != 0" identifier != number_literal) ; (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ) (compound_statement "{\n            *(int *)&pSVar16->addr = (int)pSVar13->addr;\n            pSVar13 = (Sym *)((int)pSVar13 + (uint)bVar17 * -8 + 4);\n            pSVar16 = (Sym *)((int)pSVar16 + (uint)bVar17 * -8 + 4);\n          }" { (expression_statement "*(int *)&pSVar16->addr = (int)pSVar13->addr;" (assignment_expression "*(int *)&pSVar16->addr = (int)pSVar13->addr" (pointer_expression "*(int *)&pSVar16->addr" * (cast_expression "(int *)&pSVar16->addr" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pSVar16->addr" & (field_expression "pSVar16->addr" identifier -> field_identifier)))) = (cast_expression "(int)pSVar13->addr" ( (type_descriptor "int" primitive_type) ) (field_expression "pSVar13->addr" identifier -> field_identifier))) ;) (expression_statement "pSVar13 = (Sym *)((int)pSVar13 + (uint)bVar17 * -8 + 4);" (assignment_expression "pSVar13 = (Sym *)((int)pSVar13 + (uint)bVar17 * -8 + 4)" identifier = (cast_expression "(Sym *)((int)pSVar13 + (uint)bVar17 * -8 + 4)" ( (type_descriptor "Sym *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pSVar13 + (uint)bVar17 * -8 + 4)" ( (binary_expression "(int)pSVar13 + (uint)bVar17 * -8 + 4" (binary_expression "(int)pSVar13 + (uint)bVar17 * -8" (cast_expression "(int)pSVar13" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar17 * -8" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pSVar16 = (Sym *)((int)pSVar16 + (uint)bVar17 * -8 + 4);" (assignment_expression "pSVar16 = (Sym *)((int)pSVar16 + (uint)bVar17 * -8 + 4)" identifier = (cast_expression "(Sym *)((int)pSVar16 + (uint)bVar17 * -8 + 4)" ( (type_descriptor "Sym *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pSVar16 + (uint)bVar17 * -8 + 4)" ( (binary_expression "(int)pSVar16 + (uint)bVar17 * -8 + 4" (binary_expression "(int)pSVar16 + (uint)bVar17 * -8" (cast_expression "(int)pSVar16" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar17 * -8" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) })) (expression_statement "local_3c = (uint)pSVar8->addr;" (assignment_expression "local_3c = (uint)pSVar8->addr" identifier = (cast_expression "(uint)pSVar8->addr" ( (type_descriptor "uint" type_identifier) ) (field_expression "pSVar8->addr" identifier -> field_identifier))) ;) (expression_statement "local_38 = *(uint *)((int)&pSVar8->addr + 4);" (assignment_expression "local_38 = *(uint *)((int)&pSVar8->addr + 4)" identifier = (pointer_expression "*(uint *)((int)&pSVar8->addr + 4)" * (cast_expression "(uint *)((int)&pSVar8->addr + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pSVar8->addr + 4)" ( (binary_expression "(int)&pSVar8->addr + 4" (cast_expression "(int)&pSVar8->addr" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pSVar8->addr" & (field_expression "pSVar8->addr" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "local_40 = local_40 + 1;" (assignment_expression "local_40 = local_40 + 1" identifier = (binary_expression "local_40 + 1" identifier + number_literal)) ;) })) (labeled_statement "LAB_0001cfa6:\n        if (tab->limit <= pSVar8 + 1) goto LAB_0001d0c0;" statement_identifier : (if_statement "if (tab->limit <= pSVar8 + 1) goto LAB_0001d0c0;" if (parenthesized_expression "(tab->limit <= pSVar8 + 1)" ( (binary_expression "tab->limit <= pSVar8 + 1" (field_expression "tab->limit" identifier -> field_identifier) <= (binary_expression "pSVar8 + 1" identifier + number_literal)) )) (goto_statement "goto LAB_0001d0c0;" goto statement_identifier ;))) }))) (expression_statement "uVar7 = (uint)pSVar8[1].addr;" (assignment_expression "uVar7 = (uint)pSVar8[1].addr" identifier = (cast_expression "(uint)pSVar8[1].addr" ( (type_descriptor "uint" type_identifier) ) (field_expression "pSVar8[1].addr" (subscript_expression "pSVar8[1]" identifier [ number_literal ]) . field_identifier))) ;) (expression_statement "uVar10 = *(uint *)((int)&pSVar8[1].addr + 4);" (assignment_expression "uVar10 = *(uint *)((int)&pSVar8[1].addr + 4)" identifier = (pointer_expression "*(uint *)((int)&pSVar8[1].addr + 4)" * (cast_expression "(uint *)((int)&pSVar8[1].addr + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pSVar8[1].addr + 4)" ( (binary_expression "(int)&pSVar8[1].addr + 4" (cast_expression "(int)&pSVar8[1].addr" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pSVar8[1].addr" & (field_expression "pSVar8[1].addr" (subscript_expression "pSVar8[1]" identifier [ number_literal ]) . field_identifier))) + number_literal) ))))) ;) (expression_statement "pSVar8 = pSVar8 + 1;" (assignment_expression "pSVar8 = pSVar8 + 1" identifier = (binary_expression "pSVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "local_34 = debug_level & 0x1080;" (assignment_expression "local_34 = debug_level & 0x1080" identifier = (binary_expression "debug_level & 0x1080" identifier & number_literal)) ;) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0001d0d2:\n  uVar10 = tab->len;" statement_identifier : (expression_statement "uVar10 = tab->len;" (assignment_expression "uVar10 = tab->len" identifier = (field_expression "tab->len" identifier -> field_identifier)) ;)) (if_statement "if ((uVar10 != 0) &&\n     (*(int *)((int)&local_40[-1].end_addr + 4) == 0 && (int)local_40[-1].end_addr == 0)) {\n    uVar4 = (uint)core_text_sect->size;\n    bVar6 = core_text_sect->vma;\n    iVar14 = uVar4 + (int)core_text_sect->vma;\n    iVar9 = *(int *)((int)&core_text_sect->size + 4);\n    iVar11 = *(int *)((int)&core_text_sect->vma + 4);\n    *(int *)&local_40[-1].end_addr = iVar14 + -1;\n    *(uint *)((int)&local_40[-1].end_addr + 4) =\n         iVar9 + iVar11 + (uint)CARRY4(uVar4,(uint)bVar6) + -1 + (uint)(iVar14 != 0);\n  }" if (parenthesized_expression "((uVar10 != 0) &&\n     (*(int *)((int)&local_40[-1].end_addr + 4) == 0 && (int)local_40[-1].end_addr == 0))" ( (binary_expression "(uVar10 != 0) &&\n     (*(int *)((int)&local_40[-1].end_addr + 4) == 0 && (int)local_40[-1].end_addr == 0)" (parenthesized_expression "(uVar10 != 0)" ( (binary_expression "uVar10 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(int *)((int)&local_40[-1].end_addr + 4) == 0 && (int)local_40[-1].end_addr == 0)" ( (binary_expression "*(int *)((int)&local_40[-1].end_addr + 4) == 0 && (int)local_40[-1].end_addr == 0" (binary_expression "*(int *)((int)&local_40[-1].end_addr + 4) == 0" (pointer_expression "*(int *)((int)&local_40[-1].end_addr + 4)" * (cast_expression "(int *)((int)&local_40[-1].end_addr + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_40[-1].end_addr + 4)" ( (binary_expression "(int)&local_40[-1].end_addr + 4" (cast_expression "(int)&local_40[-1].end_addr" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_40[-1].end_addr" & (field_expression "local_40[-1].end_addr" (subscript_expression "local_40[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) == number_literal) && (binary_expression "(int)local_40[-1].end_addr == 0" (cast_expression "(int)local_40[-1].end_addr" ( (type_descriptor "int" primitive_type) ) (field_expression "local_40[-1].end_addr" (subscript_expression "local_40[-1]" identifier [ number_literal ]) . field_identifier)) == number_literal)) ))) )) (compound_statement "{\n    uVar4 = (uint)core_text_sect->size;\n    bVar6 = core_text_sect->vma;\n    iVar14 = uVar4 + (int)core_text_sect->vma;\n    iVar9 = *(int *)((int)&core_text_sect->size + 4);\n    iVar11 = *(int *)((int)&core_text_sect->vma + 4);\n    *(int *)&local_40[-1].end_addr = iVar14 + -1;\n    *(uint *)((int)&local_40[-1].end_addr + 4) =\n         iVar9 + iVar11 + (uint)CARRY4(uVar4,(uint)bVar6) + -1 + (uint)(iVar14 != 0);\n  }" { (expression_statement "uVar4 = (uint)core_text_sect->size;" (assignment_expression "uVar4 = (uint)core_text_sect->size" identifier = (cast_expression "(uint)core_text_sect->size" ( (type_descriptor "uint" type_identifier) ) (field_expression "core_text_sect->size" identifier -> field_identifier))) ;) (expression_statement "bVar6 = core_text_sect->vma;" (assignment_expression "bVar6 = core_text_sect->vma" identifier = (field_expression "core_text_sect->vma" identifier -> field_identifier)) ;) (expression_statement "iVar14 = uVar4 + (int)core_text_sect->vma;" (assignment_expression "iVar14 = uVar4 + (int)core_text_sect->vma" identifier = (binary_expression "uVar4 + (int)core_text_sect->vma" identifier + (cast_expression "(int)core_text_sect->vma" ( (type_descriptor "int" primitive_type) ) (field_expression "core_text_sect->vma" identifier -> field_identifier)))) ;) (expression_statement "iVar9 = *(int *)((int)&core_text_sect->size + 4);" (assignment_expression "iVar9 = *(int *)((int)&core_text_sect->size + 4)" identifier = (pointer_expression "*(int *)((int)&core_text_sect->size + 4)" * (cast_expression "(int *)((int)&core_text_sect->size + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&core_text_sect->size + 4)" ( (binary_expression "(int)&core_text_sect->size + 4" (cast_expression "(int)&core_text_sect->size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&core_text_sect->size" & (field_expression "core_text_sect->size" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "iVar11 = *(int *)((int)&core_text_sect->vma + 4);" (assignment_expression "iVar11 = *(int *)((int)&core_text_sect->vma + 4)" identifier = (pointer_expression "*(int *)((int)&core_text_sect->vma + 4)" * (cast_expression "(int *)((int)&core_text_sect->vma + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&core_text_sect->vma + 4)" ( (binary_expression "(int)&core_text_sect->vma + 4" (cast_expression "(int)&core_text_sect->vma" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&core_text_sect->vma" & (field_expression "core_text_sect->vma" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "*(int *)&local_40[-1].end_addr = iVar14 + -1;" (assignment_expression "*(int *)&local_40[-1].end_addr = iVar14 + -1" (pointer_expression "*(int *)&local_40[-1].end_addr" * (cast_expression "(int *)&local_40[-1].end_addr" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_40[-1].end_addr" & (field_expression "local_40[-1].end_addr" (subscript_expression "local_40[-1]" identifier [ number_literal ]) . field_identifier)))) = (binary_expression "iVar14 + -1" identifier + number_literal)) ;) (expression_statement "*(uint *)((int)&local_40[-1].end_addr + 4) =\n         iVar9 + iVar11 + (uint)CARRY4(uVar4,(uint)bVar6) + -1 + (uint)(iVar14 != 0);" (assignment_expression "*(uint *)((int)&local_40[-1].end_addr + 4) =\n         iVar9 + iVar11 + (uint)CARRY4(uVar4,(uint)bVar6) + -1 + (uint)(iVar14 != 0)" (pointer_expression "*(uint *)((int)&local_40[-1].end_addr + 4)" * (cast_expression "(uint *)((int)&local_40[-1].end_addr + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_40[-1].end_addr + 4)" ( (binary_expression "(int)&local_40[-1].end_addr + 4" (cast_expression "(int)&local_40[-1].end_addr" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_40[-1].end_addr" & (field_expression "local_40[-1].end_addr" (subscript_expression "local_40[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) = (binary_expression "iVar9 + iVar11 + (uint)CARRY4(uVar4,(uint)bVar6) + -1 + (uint)(iVar14 != 0)" (binary_expression "iVar9 + iVar11 + (uint)CARRY4(uVar4,(uint)bVar6) + -1" (binary_expression "iVar9 + iVar11 + (uint)CARRY4(uVar4,(uint)bVar6)" (binary_expression "iVar9 + iVar11" identifier + identifier) + (cast_expression "(uint)CARRY4(uVar4,(uint)bVar6)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar4,(uint)bVar6)" identifier (argument_list "(uVar4,(uint)bVar6)" ( identifier , (cast_expression "(uint)bVar6" ( (type_descriptor "uint" type_identifier) ) identifier) ))))) + number_literal) + (call_expression "(uint)(iVar14 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar14 != 0)" ( (binary_expression "iVar14 != 0" identifier != number_literal) ))))) ;) })) (if_statement "if (local_34 != 0) {\n    printf("[symtab_finalize]: removed %d duplicate entries\n",uVar10 - uVar7);\n    iVar9 = debug_level;\n    pSVar8 = tab->base;\n    tab->limit = local_40;\n    uVar7 = ((int)local_40 - (int)pSVar8 >> 2) * -0x41041041;\n    tab->len = uVar7;\n    if (((iVar9 & 0x1080U) != 0) && (uVar7 != 0)) {\n      uVar7 = 0;\n      while( true ) {\n        pSVar8 = pSVar8 + uVar7;\n        printf("[symtab_finalize] 0x%lx-0x%lx\t%s\n",(int)pSVar8->addr,(int)pSVar8->end_addr,\n               pSVar8->name);\n        if (tab->len <= uVar7 + 1) break;\n        pSVar8 = tab->base;\n        uVar7 = uVar7 + 1;\n      }\n      return;\n    }\n    return;\n  }" if (parenthesized_expression "(local_34 != 0)" ( (binary_expression "local_34 != 0" identifier != number_literal) )) (compound_statement "{\n    printf("[symtab_finalize]: removed %d duplicate entries\n",uVar10 - uVar7);\n    iVar9 = debug_level;\n    pSVar8 = tab->base;\n    tab->limit = local_40;\n    uVar7 = ((int)local_40 - (int)pSVar8 >> 2) * -0x41041041;\n    tab->len = uVar7;\n    if (((iVar9 & 0x1080U) != 0) && (uVar7 != 0)) {\n      uVar7 = 0;\n      while( true ) {\n        pSVar8 = pSVar8 + uVar7;\n        printf("[symtab_finalize] 0x%lx-0x%lx\t%s\n",(int)pSVar8->addr,(int)pSVar8->end_addr,\n               pSVar8->name);\n        if (tab->len <= uVar7 + 1) break;\n        pSVar8 = tab->base;\n        uVar7 = uVar7 + 1;\n      }\n      return;\n    }\n    return;\n  }" { (expression_statement "printf("[symtab_finalize]: removed %d duplicate entries\n",uVar10 - uVar7);" (call_expression "printf("[symtab_finalize]: removed %d duplicate entries\n",uVar10 - uVar7)" identifier (argument_list "("[symtab_finalize]: removed %d duplicate entries\n",uVar10 - uVar7)" ( (string_literal ""[symtab_finalize]: removed %d duplicate entries\n"" " string_content escape_sequence ") , (binary_expression "uVar10 - uVar7" identifier - identifier) ))) ;) (expression_statement "iVar9 = debug_level;" (assignment_expression "iVar9 = debug_level" identifier = identifier) ;) (expression_statement "pSVar8 = tab->base;" (assignment_expression "pSVar8 = tab->base" identifier = (field_expression "tab->base" identifier -> field_identifier)) ;) (expression_statement "tab->limit = local_40;" (assignment_expression "tab->limit = local_40" (field_expression "tab->limit" identifier -> field_identifier) = identifier) ;) (expression_statement "uVar7 = ((int)local_40 - (int)pSVar8 >> 2) * -0x41041041;" (assignment_expression "uVar7 = ((int)local_40 - (int)pSVar8 >> 2) * -0x41041041" identifier = (binary_expression "((int)local_40 - (int)pSVar8 >> 2) * -0x41041041" (parenthesized_expression "((int)local_40 - (int)pSVar8 >> 2)" ( (binary_expression "(int)local_40 - (int)pSVar8 >> 2" (binary_expression "(int)local_40 - (int)pSVar8" (cast_expression "(int)local_40" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pSVar8" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )) * number_literal)) ;) (expression_statement "tab->len = uVar7;" (assignment_expression "tab->len = uVar7" (field_expression "tab->len" identifier -> field_identifier) = identifier) ;) (if_statement "if (((iVar9 & 0x1080U) != 0) && (uVar7 != 0)) {\n      uVar7 = 0;\n      while( true ) {\n        pSVar8 = pSVar8 + uVar7;\n        printf("[symtab_finalize] 0x%lx-0x%lx\t%s\n",(int)pSVar8->addr,(int)pSVar8->end_addr,\n               pSVar8->name);\n        if (tab->len <= uVar7 + 1) break;\n        pSVar8 = tab->base;\n        uVar7 = uVar7 + 1;\n      }\n      return;\n    }" if (parenthesized_expression "(((iVar9 & 0x1080U) != 0) && (uVar7 != 0))" ( (binary_expression "((iVar9 & 0x1080U) != 0) && (uVar7 != 0)" (parenthesized_expression "((iVar9 & 0x1080U) != 0)" ( (binary_expression "(iVar9 & 0x1080U) != 0" (parenthesized_expression "(iVar9 & 0x1080U)" ( (binary_expression "iVar9 & 0x1080U" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(uVar7 != 0)" ( (binary_expression "uVar7 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      uVar7 = 0;\n      while( true ) {\n        pSVar8 = pSVar8 + uVar7;\n        printf("[symtab_finalize] 0x%lx-0x%lx\t%s\n",(int)pSVar8->addr,(int)pSVar8->end_addr,\n               pSVar8->name);\n        if (tab->len <= uVar7 + 1) break;\n        pSVar8 = tab->base;\n        uVar7 = uVar7 + 1;\n      }\n      return;\n    }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n        pSVar8 = pSVar8 + uVar7;\n        printf("[symtab_finalize] 0x%lx-0x%lx\t%s\n",(int)pSVar8->addr,(int)pSVar8->end_addr,\n               pSVar8->name);\n        if (tab->len <= uVar7 + 1) break;\n        pSVar8 = tab->base;\n        uVar7 = uVar7 + 1;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        pSVar8 = pSVar8 + uVar7;\n        printf("[symtab_finalize] 0x%lx-0x%lx\t%s\n",(int)pSVar8->addr,(int)pSVar8->end_addr,\n               pSVar8->name);\n        if (tab->len <= uVar7 + 1) break;\n        pSVar8 = tab->base;\n        uVar7 = uVar7 + 1;\n      }" { (expression_statement "pSVar8 = pSVar8 + uVar7;" (assignment_expression "pSVar8 = pSVar8 + uVar7" identifier = (binary_expression "pSVar8 + uVar7" identifier + identifier)) ;) (expression_statement "printf("[symtab_finalize] 0x%lx-0x%lx\t%s\n",(int)pSVar8->addr,(int)pSVar8->end_addr,\n               pSVar8->name);" (call_expression "printf("[symtab_finalize] 0x%lx-0x%lx\t%s\n",(int)pSVar8->addr,(int)pSVar8->end_addr,\n               pSVar8->name)" identifier (argument_list "("[symtab_finalize] 0x%lx-0x%lx\t%s\n",(int)pSVar8->addr,(int)pSVar8->end_addr,\n               pSVar8->name)" ( (string_literal ""[symtab_finalize] 0x%lx-0x%lx\t%s\n"" " string_content escape_sequence string_content escape_sequence ") , (cast_expression "(int)pSVar8->addr" ( (type_descriptor "int" primitive_type) ) (field_expression "pSVar8->addr" identifier -> field_identifier)) , (cast_expression "(int)pSVar8->end_addr" ( (type_descriptor "int" primitive_type) ) (field_expression "pSVar8->end_addr" identifier -> field_identifier)) , (field_expression "pSVar8->name" identifier -> field_identifier) ))) ;) (if_statement "if (tab->len <= uVar7 + 1) break;" if (parenthesized_expression "(tab->len <= uVar7 + 1)" ( (binary_expression "tab->len <= uVar7 + 1" (field_expression "tab->len" identifier -> field_identifier) <= (binary_expression "uVar7 + 1" identifier + number_literal)) )) (break_statement "break;" break ;)) (expression_statement "pSVar8 = tab->base;" (assignment_expression "pSVar8 = tab->base" identifier = (field_expression "tab->base" identifier -> field_identifier)) ;) (expression_statement "uVar7 = uVar7 + 1;" (assignment_expression "uVar7 = uVar7 + 1" identifier = (binary_expression "uVar7 + 1" identifier + number_literal)) ;) })) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })) (expression_statement "tab->len = uVar7;" (assignment_expression "tab->len = uVar7" (field_expression "tab->len" identifier -> field_identifier) = identifier) ;) (expression_statement "tab->limit = local_40;" (assignment_expression "tab->limit = local_40" (field_expression "tab->limit" identifier -> field_identifier) = identifier) ;) (return_statement "return;" return ;) (labeled_statement "LAB_0001d0c0:\n  uVar7 = ((int)local_40 - (int)tab->base >> 2) * -0x41041041;" statement_identifier : (expression_statement "uVar7 = ((int)local_40 - (int)tab->base >> 2) * -0x41041041;" (assignment_expression "uVar7 = ((int)local_40 - (int)tab->base >> 2) * -0x41041041" identifier = (binary_expression "((int)local_40 - (int)tab->base >> 2) * -0x41041041" (parenthesized_expression "((int)local_40 - (int)tab->base >> 2)" ( (binary_expression "(int)local_40 - (int)tab->base >> 2" (binary_expression "(int)local_40 - (int)tab->base" (cast_expression "(int)local_40" ( (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)) ;)) (goto_statement "goto LAB_0001d0d2;" goto statement_identifier ;) })))
(translation_unit "void FUN_0001ce90(size_t *param_1)\n\n{\n  uint *puVar1;\n  byte bVar2;\n  byte bVar3;\n  char cVar4;\n  uint uVar5;\n  size_t sVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  uint uVar9;\n  int iVar10;\n  size_t sVar11;\n  undefined4 uVar12;\n  int unaff_EBP;\n  uint *puVar13;\n  uint *puVar14;\n  int iVar15;\n  uint *puVar16;\n  uint uVar17;\n  byte bVar18;\n  uint *local_40;\n  uint local_3c;\n  uint local_38;\n  uint local_34;\n  uint local_30;\n  uint *local_28;\n  \n  bVar18 = 0;\n  FUN_0001c80d();\n  if (*param_1 == 0) {\n    return;\n  }\n  qsort((void *)param_1[1],*param_1,0xfc,(__compar_fn_t)(unaff_EBP + -0xc6));\n  local_40 = (uint *)param_1[1];\n  uVar17 = *local_40;\n  uVar9 = local_40[1];\n  local_3c = uVar17 + 1;\n  local_38 = uVar9 + (0xfffffffe < uVar17);\n  if (local_40 < (uint *)param_1[2]) {\n    puVar1 = (uint *)(unaff_EBP + 0x112c2);\n    local_30 = *puVar1;\n    puVar13 = local_40;\n    do {\n      local_34 = local_30 & 0x1080;\n      if (local_38 == uVar9 && local_3c == uVar17) {\n        bVar2 = (byte)puVar13[7];\n        bVar3 = (byte)local_40[-0x38];\n        if (((bVar2 & 2) != 0) || ((bVar3 & 2) == 0)) {\n          if (((bVar2 ^ bVar3) & 2) == 0) {\n            if (((bVar2 & 1) != 0) && ((bVar3 & 1) == 0)) {\n              if (local_34 != 0) {\n                uVar17 = local_40[-0x3b];\n                if ((bVar3 & 2) == 0) {\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar10 = 0x74;\n                iVar8 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }\n            if (((bVar2 ^ bVar3) & 1) == 0) {\n              cVar4 = *(char *)puVar13[4];\n              if (cVar4 != '_') {\n                if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;\n                if (cVar4 == '\0') goto LAB_0001d190;\n              }\n              if ((((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_'))\n              goto LAB_0001d008;\n            }\n          }\nLAB_0001d190:\n          if (local_34 != 0) {\n            printf((char *)(unaff_EBP + 0x7006),local_40[-0x3b],\n                   (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46,puVar13[4],\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46);\n            printf((char *)(unaff_EBP + 0x7191),*puVar13);\n            local_30 = *puVar1;\n            local_34 = local_30 & 0x1080;\n          }\n          goto LAB_0001cfa6;\n        }\nLAB_0001d008:\n        if (local_34 != 0) {\n          uVar12 = 0x66;\n          uVar17 = local_40[-0x3b];\n          iVar8 = (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46;\n          iVar10 = (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74;\n          if ((bVar2 & 1) != 0) {\nLAB_0001d325:\n            uVar12 = 0x46;\n          }\nLAB_0001d049:\n          printf((char *)(unaff_EBP + 0x7006),puVar13[4],\n                 (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,uVar17,iVar10,iVar8);\n          printf((char *)(unaff_EBP + 0x7191),*puVar13);\n          local_30 = *puVar1;\n          local_34 = local_30 & 0x1080;\n        }\nLAB_0001d094:\n        puVar14 = puVar13;\n        puVar16 = local_40 + -0x3f;\n        for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n          *puVar16 = *puVar14;\n          puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }\n      else {\n        if (((uint *)param_1[1] < local_40) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0)) {\n          local_40[-0x3d] = uVar17 - 1;\n          local_40[-0x3c] = (uVar9 - 1) + (uint)(uVar17 != 0);\n        }\n        uVar5 = puVar13[3];\n        if ((uVar9 <= uVar5 && (uint)(puVar13[2] < uVar17) <= uVar5 - uVar9) ||\n           (puVar13[2] == 0 && uVar5 == 0)) {\n          puVar14 = puVar13;\n          puVar16 = local_40;\n          for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n            *puVar16 = *puVar14;\n            puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          local_3c = *puVar13;\n          local_38 = puVar13[1];\n          local_40 = local_40 + 0x3f;\n        }\nLAB_0001cfa6:\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }\n      uVar17 = puVar13[0x3f];\n      uVar9 = puVar13[0x40];\n      puVar13 = puVar13 + 0x3f;\n    } while( true );\n  }\n  local_34 = *(uint *)(unaff_EBP + 0x112c2) & 0x1080;\n  sVar6 = 0;\nLAB_0001d0d2:\n  local_28 = (uint *)(unaff_EBP + 0x112c2);\n  sVar11 = *param_1;\n  if ((sVar11 != 0) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0)) {\n    iVar8 = *(int *)(unaff_EBP + 0x11666);\n    uVar17 = *(uint *)(iVar8 + 0x2c);\n    uVar9 = *(uint *)(iVar8 + 0x1c);\n    iVar15 = uVar17 + *(uint *)(iVar8 + 0x1c);\n    iVar10 = *(int *)(iVar8 + 0x30);\n    iVar8 = *(int *)(iVar8 + 0x20);\n    local_40[-0x3d] = iVar15 - 1;\n    local_40[-0x3c] = iVar10 + iVar8 + (uint)CARRY4(uVar17,uVar9) + -1 + (uint)(iVar15 != 0);\n  }\n  if (local_34 != 0) {\n    printf((char *)(unaff_EBP + 0x7036),sVar11 - sVar6);\n    sVar6 = param_1[1];\n    uVar17 = *local_28;\n    param_1[2] = (size_t)local_40;\n    sVar11 = ((int)((int)local_40 - sVar6) >> 2) * -0x41041041;\n    *param_1 = sVar11;\n    if (((uVar17 & 0x1080) != 0) && (sVar11 != 0)) {\n      uVar17 = 0;\n      while( true ) {\n        iVar8 = uVar17 * 0xfc;\n        uVar17 = uVar17 + 1;\n        puVar7 = (undefined4 *)(sVar6 + iVar8);\n        printf((char *)(unaff_EBP + 0x706a),*puVar7,puVar7[2],puVar7[4]);\n        if (*param_1 <= uVar17) break;\n        sVar6 = param_1[1];\n      }\n      return;\n    }\n    return;\n  }\n  *param_1 = sVar6;\n  param_1[2] = (size_t)local_40;\n  return;\nLAB_0001d0c0:\n  sVar6 = ((int)((int)local_40 - param_1[1]) >> 2) * -0x41041041;\n  goto LAB_0001d0d2;\n}\n\n" (function_definition "void FUN_0001ce90(size_t *param_1)\n\n{\n  uint *puVar1;\n  byte bVar2;\n  byte bVar3;\n  char cVar4;\n  uint uVar5;\n  size_t sVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  uint uVar9;\n  int iVar10;\n  size_t sVar11;\n  undefined4 uVar12;\n  int unaff_EBP;\n  uint *puVar13;\n  uint *puVar14;\n  int iVar15;\n  uint *puVar16;\n  uint uVar17;\n  byte bVar18;\n  uint *local_40;\n  uint local_3c;\n  uint local_38;\n  uint local_34;\n  uint local_30;\n  uint *local_28;\n  \n  bVar18 = 0;\n  FUN_0001c80d();\n  if (*param_1 == 0) {\n    return;\n  }\n  qsort((void *)param_1[1],*param_1,0xfc,(__compar_fn_t)(unaff_EBP + -0xc6));\n  local_40 = (uint *)param_1[1];\n  uVar17 = *local_40;\n  uVar9 = local_40[1];\n  local_3c = uVar17 + 1;\n  local_38 = uVar9 + (0xfffffffe < uVar17);\n  if (local_40 < (uint *)param_1[2]) {\n    puVar1 = (uint *)(unaff_EBP + 0x112c2);\n    local_30 = *puVar1;\n    puVar13 = local_40;\n    do {\n      local_34 = local_30 & 0x1080;\n      if (local_38 == uVar9 && local_3c == uVar17) {\n        bVar2 = (byte)puVar13[7];\n        bVar3 = (byte)local_40[-0x38];\n        if (((bVar2 & 2) != 0) || ((bVar3 & 2) == 0)) {\n          if (((bVar2 ^ bVar3) & 2) == 0) {\n            if (((bVar2 & 1) != 0) && ((bVar3 & 1) == 0)) {\n              if (local_34 != 0) {\n                uVar17 = local_40[-0x3b];\n                if ((bVar3 & 2) == 0) {\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar10 = 0x74;\n                iVar8 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }\n            if (((bVar2 ^ bVar3) & 1) == 0) {\n              cVar4 = *(char *)puVar13[4];\n              if (cVar4 != '_') {\n                if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;\n                if (cVar4 == '\0') goto LAB_0001d190;\n              }\n              if ((((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_'))\n              goto LAB_0001d008;\n            }\n          }\nLAB_0001d190:\n          if (local_34 != 0) {\n            printf((char *)(unaff_EBP + 0x7006),local_40[-0x3b],\n                   (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46,puVar13[4],\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46);\n            printf((char *)(unaff_EBP + 0x7191),*puVar13);\n            local_30 = *puVar1;\n            local_34 = local_30 & 0x1080;\n          }\n          goto LAB_0001cfa6;\n        }\nLAB_0001d008:\n        if (local_34 != 0) {\n          uVar12 = 0x66;\n          uVar17 = local_40[-0x3b];\n          iVar8 = (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46;\n          iVar10 = (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74;\n          if ((bVar2 & 1) != 0) {\nLAB_0001d325:\n            uVar12 = 0x46;\n          }\nLAB_0001d049:\n          printf((char *)(unaff_EBP + 0x7006),puVar13[4],\n                 (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,uVar17,iVar10,iVar8);\n          printf((char *)(unaff_EBP + 0x7191),*puVar13);\n          local_30 = *puVar1;\n          local_34 = local_30 & 0x1080;\n        }\nLAB_0001d094:\n        puVar14 = puVar13;\n        puVar16 = local_40 + -0x3f;\n        for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n          *puVar16 = *puVar14;\n          puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }\n      else {\n        if (((uint *)param_1[1] < local_40) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0)) {\n          local_40[-0x3d] = uVar17 - 1;\n          local_40[-0x3c] = (uVar9 - 1) + (uint)(uVar17 != 0);\n        }\n        uVar5 = puVar13[3];\n        if ((uVar9 <= uVar5 && (uint)(puVar13[2] < uVar17) <= uVar5 - uVar9) ||\n           (puVar13[2] == 0 && uVar5 == 0)) {\n          puVar14 = puVar13;\n          puVar16 = local_40;\n          for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n            *puVar16 = *puVar14;\n            puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          local_3c = *puVar13;\n          local_38 = puVar13[1];\n          local_40 = local_40 + 0x3f;\n        }\nLAB_0001cfa6:\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }\n      uVar17 = puVar13[0x3f];\n      uVar9 = puVar13[0x40];\n      puVar13 = puVar13 + 0x3f;\n    } while( true );\n  }\n  local_34 = *(uint *)(unaff_EBP + 0x112c2) & 0x1080;\n  sVar6 = 0;\nLAB_0001d0d2:\n  local_28 = (uint *)(unaff_EBP + 0x112c2);\n  sVar11 = *param_1;\n  if ((sVar11 != 0) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0)) {\n    iVar8 = *(int *)(unaff_EBP + 0x11666);\n    uVar17 = *(uint *)(iVar8 + 0x2c);\n    uVar9 = *(uint *)(iVar8 + 0x1c);\n    iVar15 = uVar17 + *(uint *)(iVar8 + 0x1c);\n    iVar10 = *(int *)(iVar8 + 0x30);\n    iVar8 = *(int *)(iVar8 + 0x20);\n    local_40[-0x3d] = iVar15 - 1;\n    local_40[-0x3c] = iVar10 + iVar8 + (uint)CARRY4(uVar17,uVar9) + -1 + (uint)(iVar15 != 0);\n  }\n  if (local_34 != 0) {\n    printf((char *)(unaff_EBP + 0x7036),sVar11 - sVar6);\n    sVar6 = param_1[1];\n    uVar17 = *local_28;\n    param_1[2] = (size_t)local_40;\n    sVar11 = ((int)((int)local_40 - sVar6) >> 2) * -0x41041041;\n    *param_1 = sVar11;\n    if (((uVar17 & 0x1080) != 0) && (sVar11 != 0)) {\n      uVar17 = 0;\n      while( true ) {\n        iVar8 = uVar17 * 0xfc;\n        uVar17 = uVar17 + 1;\n        puVar7 = (undefined4 *)(sVar6 + iVar8);\n        printf((char *)(unaff_EBP + 0x706a),*puVar7,puVar7[2],puVar7[4]);\n        if (*param_1 <= uVar17) break;\n        sVar6 = param_1[1];\n      }\n      return;\n    }\n    return;\n  }\n  *param_1 = sVar6;\n  param_1[2] = (size_t)local_40;\n  return;\nLAB_0001d0c0:\n  sVar6 = ((int)((int)local_40 - param_1[1]) >> 2) * -0x41041041;\n  goto LAB_0001d0d2;\n}" primitive_type (function_declarator "FUN_0001ce90(size_t *param_1)" identifier (parameter_list "(size_t *param_1)" ( (parameter_declaration "size_t *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  uint *puVar1;\n  byte bVar2;\n  byte bVar3;\n  char cVar4;\n  uint uVar5;\n  size_t sVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  uint uVar9;\n  int iVar10;\n  size_t sVar11;\n  undefined4 uVar12;\n  int unaff_EBP;\n  uint *puVar13;\n  uint *puVar14;\n  int iVar15;\n  uint *puVar16;\n  uint uVar17;\n  byte bVar18;\n  uint *local_40;\n  uint local_3c;\n  uint local_38;\n  uint local_34;\n  uint local_30;\n  uint *local_28;\n  \n  bVar18 = 0;\n  FUN_0001c80d();\n  if (*param_1 == 0) {\n    return;\n  }\n  qsort((void *)param_1[1],*param_1,0xfc,(__compar_fn_t)(unaff_EBP + -0xc6));\n  local_40 = (uint *)param_1[1];\n  uVar17 = *local_40;\n  uVar9 = local_40[1];\n  local_3c = uVar17 + 1;\n  local_38 = uVar9 + (0xfffffffe < uVar17);\n  if (local_40 < (uint *)param_1[2]) {\n    puVar1 = (uint *)(unaff_EBP + 0x112c2);\n    local_30 = *puVar1;\n    puVar13 = local_40;\n    do {\n      local_34 = local_30 & 0x1080;\n      if (local_38 == uVar9 && local_3c == uVar17) {\n        bVar2 = (byte)puVar13[7];\n        bVar3 = (byte)local_40[-0x38];\n        if (((bVar2 & 2) != 0) || ((bVar3 & 2) == 0)) {\n          if (((bVar2 ^ bVar3) & 2) == 0) {\n            if (((bVar2 & 1) != 0) && ((bVar3 & 1) == 0)) {\n              if (local_34 != 0) {\n                uVar17 = local_40[-0x3b];\n                if ((bVar3 & 2) == 0) {\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar10 = 0x74;\n                iVar8 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }\n            if (((bVar2 ^ bVar3) & 1) == 0) {\n              cVar4 = *(char *)puVar13[4];\n              if (cVar4 != '_') {\n                if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;\n                if (cVar4 == '\0') goto LAB_0001d190;\n              }\n              if ((((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_'))\n              goto LAB_0001d008;\n            }\n          }\nLAB_0001d190:\n          if (local_34 != 0) {\n            printf((char *)(unaff_EBP + 0x7006),local_40[-0x3b],\n                   (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46,puVar13[4],\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46);\n            printf((char *)(unaff_EBP + 0x7191),*puVar13);\n            local_30 = *puVar1;\n            local_34 = local_30 & 0x1080;\n          }\n          goto LAB_0001cfa6;\n        }\nLAB_0001d008:\n        if (local_34 != 0) {\n          uVar12 = 0x66;\n          uVar17 = local_40[-0x3b];\n          iVar8 = (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46;\n          iVar10 = (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74;\n          if ((bVar2 & 1) != 0) {\nLAB_0001d325:\n            uVar12 = 0x46;\n          }\nLAB_0001d049:\n          printf((char *)(unaff_EBP + 0x7006),puVar13[4],\n                 (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,uVar17,iVar10,iVar8);\n          printf((char *)(unaff_EBP + 0x7191),*puVar13);\n          local_30 = *puVar1;\n          local_34 = local_30 & 0x1080;\n        }\nLAB_0001d094:\n        puVar14 = puVar13;\n        puVar16 = local_40 + -0x3f;\n        for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n          *puVar16 = *puVar14;\n          puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }\n      else {\n        if (((uint *)param_1[1] < local_40) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0)) {\n          local_40[-0x3d] = uVar17 - 1;\n          local_40[-0x3c] = (uVar9 - 1) + (uint)(uVar17 != 0);\n        }\n        uVar5 = puVar13[3];\n        if ((uVar9 <= uVar5 && (uint)(puVar13[2] < uVar17) <= uVar5 - uVar9) ||\n           (puVar13[2] == 0 && uVar5 == 0)) {\n          puVar14 = puVar13;\n          puVar16 = local_40;\n          for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n            *puVar16 = *puVar14;\n            puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          local_3c = *puVar13;\n          local_38 = puVar13[1];\n          local_40 = local_40 + 0x3f;\n        }\nLAB_0001cfa6:\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }\n      uVar17 = puVar13[0x3f];\n      uVar9 = puVar13[0x40];\n      puVar13 = puVar13 + 0x3f;\n    } while( true );\n  }\n  local_34 = *(uint *)(unaff_EBP + 0x112c2) & 0x1080;\n  sVar6 = 0;\nLAB_0001d0d2:\n  local_28 = (uint *)(unaff_EBP + 0x112c2);\n  sVar11 = *param_1;\n  if ((sVar11 != 0) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0)) {\n    iVar8 = *(int *)(unaff_EBP + 0x11666);\n    uVar17 = *(uint *)(iVar8 + 0x2c);\n    uVar9 = *(uint *)(iVar8 + 0x1c);\n    iVar15 = uVar17 + *(uint *)(iVar8 + 0x1c);\n    iVar10 = *(int *)(iVar8 + 0x30);\n    iVar8 = *(int *)(iVar8 + 0x20);\n    local_40[-0x3d] = iVar15 - 1;\n    local_40[-0x3c] = iVar10 + iVar8 + (uint)CARRY4(uVar17,uVar9) + -1 + (uint)(iVar15 != 0);\n  }\n  if (local_34 != 0) {\n    printf((char *)(unaff_EBP + 0x7036),sVar11 - sVar6);\n    sVar6 = param_1[1];\n    uVar17 = *local_28;\n    param_1[2] = (size_t)local_40;\n    sVar11 = ((int)((int)local_40 - sVar6) >> 2) * -0x41041041;\n    *param_1 = sVar11;\n    if (((uVar17 & 0x1080) != 0) && (sVar11 != 0)) {\n      uVar17 = 0;\n      while( true ) {\n        iVar8 = uVar17 * 0xfc;\n        uVar17 = uVar17 + 1;\n        puVar7 = (undefined4 *)(sVar6 + iVar8);\n        printf((char *)(unaff_EBP + 0x706a),*puVar7,puVar7[2],puVar7[4]);\n        if (*param_1 <= uVar17) break;\n        sVar6 = param_1[1];\n      }\n      return;\n    }\n    return;\n  }\n  *param_1 = sVar6;\n  param_1[2] = (size_t)local_40;\n  return;\nLAB_0001d0c0:\n  sVar6 = ((int)((int)local_40 - param_1[1]) >> 2) * -0x41041041;\n  goto LAB_0001d0d2;\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "size_t sVar6;" primitive_type identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "size_t sVar11;" primitive_type identifier ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "int unaff_EBP;" primitive_type identifier ;) (declaration "uint *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "uint *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "uint *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "byte bVar18;" type_identifier identifier ;) (declaration "uint *local_40;" type_identifier (pointer_declarator "*local_40" * identifier) ;) (declaration "uint local_3c;" type_identifier identifier ;) (declaration "uint local_38;" type_identifier identifier ;) (declaration "uint local_34;" type_identifier identifier ;) (declaration "uint local_30;" type_identifier identifier ;) (declaration "uint *local_28;" type_identifier (pointer_declarator "*local_28" * identifier) ;) (expression_statement "bVar18 = 0;" (assignment_expression "bVar18 = 0" identifier = number_literal) ;) (expression_statement "FUN_0001c80d();" (call_expression "FUN_0001c80d()" identifier (argument_list "()" ( ))) ;) (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 "qsort((void *)param_1[1],*param_1,0xfc,(__compar_fn_t)(unaff_EBP + -0xc6));" (call_expression "qsort((void *)param_1[1],*param_1,0xfc,(__compar_fn_t)(unaff_EBP + -0xc6))" identifier (argument_list "((void *)param_1[1],*param_1,0xfc,(__compar_fn_t)(unaff_EBP + -0xc6))" ( (cast_expression "(void *)param_1[1]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ])) , (pointer_expression "*param_1" * identifier) , number_literal , (call_expression "(__compar_fn_t)(unaff_EBP + -0xc6)" (parenthesized_expression "(__compar_fn_t)" ( identifier )) (argument_list "(unaff_EBP + -0xc6)" ( (binary_expression "unaff_EBP + -0xc6" identifier + number_literal) ))) ))) ;) (expression_statement "local_40 = (uint *)param_1[1];" (assignment_expression "local_40 = (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 "uVar17 = *local_40;" (assignment_expression "uVar17 = *local_40" identifier = (pointer_expression "*local_40" * identifier)) ;) (expression_statement "uVar9 = local_40[1];" (assignment_expression "uVar9 = local_40[1]" identifier = (subscript_expression "local_40[1]" identifier [ number_literal ])) ;) (expression_statement "local_3c = uVar17 + 1;" (assignment_expression "local_3c = uVar17 + 1" identifier = (binary_expression "uVar17 + 1" identifier + number_literal)) ;) (expression_statement "local_38 = uVar9 + (0xfffffffe < uVar17);" (assignment_expression "local_38 = uVar9 + (0xfffffffe < uVar17)" identifier = (binary_expression "uVar9 + (0xfffffffe < uVar17)" identifier + (parenthesized_expression "(0xfffffffe < uVar17)" ( (binary_expression "0xfffffffe < uVar17" number_literal < identifier) )))) ;) (if_statement "if (local_40 < (uint *)param_1[2]) {\n    puVar1 = (uint *)(unaff_EBP + 0x112c2);\n    local_30 = *puVar1;\n    puVar13 = local_40;\n    do {\n      local_34 = local_30 & 0x1080;\n      if (local_38 == uVar9 && local_3c == uVar17) {\n        bVar2 = (byte)puVar13[7];\n        bVar3 = (byte)local_40[-0x38];\n        if (((bVar2 & 2) != 0) || ((bVar3 & 2) == 0)) {\n          if (((bVar2 ^ bVar3) & 2) == 0) {\n            if (((bVar2 & 1) != 0) && ((bVar3 & 1) == 0)) {\n              if (local_34 != 0) {\n                uVar17 = local_40[-0x3b];\n                if ((bVar3 & 2) == 0) {\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar10 = 0x74;\n                iVar8 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }\n            if (((bVar2 ^ bVar3) & 1) == 0) {\n              cVar4 = *(char *)puVar13[4];\n              if (cVar4 != '_') {\n                if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;\n                if (cVar4 == '\0') goto LAB_0001d190;\n              }\n              if ((((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_'))\n              goto LAB_0001d008;\n            }\n          }\nLAB_0001d190:\n          if (local_34 != 0) {\n            printf((char *)(unaff_EBP + 0x7006),local_40[-0x3b],\n                   (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46,puVar13[4],\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46);\n            printf((char *)(unaff_EBP + 0x7191),*puVar13);\n            local_30 = *puVar1;\n            local_34 = local_30 & 0x1080;\n          }\n          goto LAB_0001cfa6;\n        }\nLAB_0001d008:\n        if (local_34 != 0) {\n          uVar12 = 0x66;\n          uVar17 = local_40[-0x3b];\n          iVar8 = (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46;\n          iVar10 = (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74;\n          if ((bVar2 & 1) != 0) {\nLAB_0001d325:\n            uVar12 = 0x46;\n          }\nLAB_0001d049:\n          printf((char *)(unaff_EBP + 0x7006),puVar13[4],\n                 (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,uVar17,iVar10,iVar8);\n          printf((char *)(unaff_EBP + 0x7191),*puVar13);\n          local_30 = *puVar1;\n          local_34 = local_30 & 0x1080;\n        }\nLAB_0001d094:\n        puVar14 = puVar13;\n        puVar16 = local_40 + -0x3f;\n        for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n          *puVar16 = *puVar14;\n          puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }\n      else {\n        if (((uint *)param_1[1] < local_40) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0)) {\n          local_40[-0x3d] = uVar17 - 1;\n          local_40[-0x3c] = (uVar9 - 1) + (uint)(uVar17 != 0);\n        }\n        uVar5 = puVar13[3];\n        if ((uVar9 <= uVar5 && (uint)(puVar13[2] < uVar17) <= uVar5 - uVar9) ||\n           (puVar13[2] == 0 && uVar5 == 0)) {\n          puVar14 = puVar13;\n          puVar16 = local_40;\n          for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n            *puVar16 = *puVar14;\n            puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          local_3c = *puVar13;\n          local_38 = puVar13[1];\n          local_40 = local_40 + 0x3f;\n        }\nLAB_0001cfa6:\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }\n      uVar17 = puVar13[0x3f];\n      uVar9 = puVar13[0x40];\n      puVar13 = puVar13 + 0x3f;\n    } while( true );\n  }" if (parenthesized_expression "(local_40 < (uint *)param_1[2])" ( (binary_expression "local_40 < (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 ]))) )) (compound_statement "{\n    puVar1 = (uint *)(unaff_EBP + 0x112c2);\n    local_30 = *puVar1;\n    puVar13 = local_40;\n    do {\n      local_34 = local_30 & 0x1080;\n      if (local_38 == uVar9 && local_3c == uVar17) {\n        bVar2 = (byte)puVar13[7];\n        bVar3 = (byte)local_40[-0x38];\n        if (((bVar2 & 2) != 0) || ((bVar3 & 2) == 0)) {\n          if (((bVar2 ^ bVar3) & 2) == 0) {\n            if (((bVar2 & 1) != 0) && ((bVar3 & 1) == 0)) {\n              if (local_34 != 0) {\n                uVar17 = local_40[-0x3b];\n                if ((bVar3 & 2) == 0) {\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar10 = 0x74;\n                iVar8 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }\n            if (((bVar2 ^ bVar3) & 1) == 0) {\n              cVar4 = *(char *)puVar13[4];\n              if (cVar4 != '_') {\n                if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;\n                if (cVar4 == '\0') goto LAB_0001d190;\n              }\n              if ((((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_'))\n              goto LAB_0001d008;\n            }\n          }\nLAB_0001d190:\n          if (local_34 != 0) {\n            printf((char *)(unaff_EBP + 0x7006),local_40[-0x3b],\n                   (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46,puVar13[4],\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46);\n            printf((char *)(unaff_EBP + 0x7191),*puVar13);\n            local_30 = *puVar1;\n            local_34 = local_30 & 0x1080;\n          }\n          goto LAB_0001cfa6;\n        }\nLAB_0001d008:\n        if (local_34 != 0) {\n          uVar12 = 0x66;\n          uVar17 = local_40[-0x3b];\n          iVar8 = (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46;\n          iVar10 = (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74;\n          if ((bVar2 & 1) != 0) {\nLAB_0001d325:\n            uVar12 = 0x46;\n          }\nLAB_0001d049:\n          printf((char *)(unaff_EBP + 0x7006),puVar13[4],\n                 (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,uVar17,iVar10,iVar8);\n          printf((char *)(unaff_EBP + 0x7191),*puVar13);\n          local_30 = *puVar1;\n          local_34 = local_30 & 0x1080;\n        }\nLAB_0001d094:\n        puVar14 = puVar13;\n        puVar16 = local_40 + -0x3f;\n        for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n          *puVar16 = *puVar14;\n          puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }\n      else {\n        if (((uint *)param_1[1] < local_40) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0)) {\n          local_40[-0x3d] = uVar17 - 1;\n          local_40[-0x3c] = (uVar9 - 1) + (uint)(uVar17 != 0);\n        }\n        uVar5 = puVar13[3];\n        if ((uVar9 <= uVar5 && (uint)(puVar13[2] < uVar17) <= uVar5 - uVar9) ||\n           (puVar13[2] == 0 && uVar5 == 0)) {\n          puVar14 = puVar13;\n          puVar16 = local_40;\n          for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n            *puVar16 = *puVar14;\n            puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          local_3c = *puVar13;\n          local_38 = puVar13[1];\n          local_40 = local_40 + 0x3f;\n        }\nLAB_0001cfa6:\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }\n      uVar17 = puVar13[0x3f];\n      uVar9 = puVar13[0x40];\n      puVar13 = puVar13 + 0x3f;\n    } while( true );\n  }" { (expression_statement "puVar1 = (uint *)(unaff_EBP + 0x112c2);" (assignment_expression "puVar1 = (uint *)(unaff_EBP + 0x112c2)" identifier = (cast_expression "(uint *)(unaff_EBP + 0x112c2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x112c2)" ( (binary_expression "unaff_EBP + 0x112c2" identifier + number_literal) )))) ;) (expression_statement "local_30 = *puVar1;" (assignment_expression "local_30 = *puVar1" identifier = (pointer_expression "*puVar1" * identifier)) ;) (expression_statement "puVar13 = local_40;" (assignment_expression "puVar13 = local_40" identifier = identifier) ;) (do_statement "do {\n      local_34 = local_30 & 0x1080;\n      if (local_38 == uVar9 && local_3c == uVar17) {\n        bVar2 = (byte)puVar13[7];\n        bVar3 = (byte)local_40[-0x38];\n        if (((bVar2 & 2) != 0) || ((bVar3 & 2) == 0)) {\n          if (((bVar2 ^ bVar3) & 2) == 0) {\n            if (((bVar2 & 1) != 0) && ((bVar3 & 1) == 0)) {\n              if (local_34 != 0) {\n                uVar17 = local_40[-0x3b];\n                if ((bVar3 & 2) == 0) {\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar10 = 0x74;\n                iVar8 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }\n            if (((bVar2 ^ bVar3) & 1) == 0) {\n              cVar4 = *(char *)puVar13[4];\n              if (cVar4 != '_') {\n                if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;\n                if (cVar4 == '\0') goto LAB_0001d190;\n              }\n              if ((((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_'))\n              goto LAB_0001d008;\n            }\n          }\nLAB_0001d190:\n          if (local_34 != 0) {\n            printf((char *)(unaff_EBP + 0x7006),local_40[-0x3b],\n                   (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46,puVar13[4],\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46);\n            printf((char *)(unaff_EBP + 0x7191),*puVar13);\n            local_30 = *puVar1;\n            local_34 = local_30 & 0x1080;\n          }\n          goto LAB_0001cfa6;\n        }\nLAB_0001d008:\n        if (local_34 != 0) {\n          uVar12 = 0x66;\n          uVar17 = local_40[-0x3b];\n          iVar8 = (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46;\n          iVar10 = (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74;\n          if ((bVar2 & 1) != 0) {\nLAB_0001d325:\n            uVar12 = 0x46;\n          }\nLAB_0001d049:\n          printf((char *)(unaff_EBP + 0x7006),puVar13[4],\n                 (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,uVar17,iVar10,iVar8);\n          printf((char *)(unaff_EBP + 0x7191),*puVar13);\n          local_30 = *puVar1;\n          local_34 = local_30 & 0x1080;\n        }\nLAB_0001d094:\n        puVar14 = puVar13;\n        puVar16 = local_40 + -0x3f;\n        for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n          *puVar16 = *puVar14;\n          puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }\n      else {\n        if (((uint *)param_1[1] < local_40) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0)) {\n          local_40[-0x3d] = uVar17 - 1;\n          local_40[-0x3c] = (uVar9 - 1) + (uint)(uVar17 != 0);\n        }\n        uVar5 = puVar13[3];\n        if ((uVar9 <= uVar5 && (uint)(puVar13[2] < uVar17) <= uVar5 - uVar9) ||\n           (puVar13[2] == 0 && uVar5 == 0)) {\n          puVar14 = puVar13;\n          puVar16 = local_40;\n          for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n            *puVar16 = *puVar14;\n            puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          local_3c = *puVar13;\n          local_38 = puVar13[1];\n          local_40 = local_40 + 0x3f;\n        }\nLAB_0001cfa6:\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }\n      uVar17 = puVar13[0x3f];\n      uVar9 = puVar13[0x40];\n      puVar13 = puVar13 + 0x3f;\n    } while( true );" do (compound_statement "{\n      local_34 = local_30 & 0x1080;\n      if (local_38 == uVar9 && local_3c == uVar17) {\n        bVar2 = (byte)puVar13[7];\n        bVar3 = (byte)local_40[-0x38];\n        if (((bVar2 & 2) != 0) || ((bVar3 & 2) == 0)) {\n          if (((bVar2 ^ bVar3) & 2) == 0) {\n            if (((bVar2 & 1) != 0) && ((bVar3 & 1) == 0)) {\n              if (local_34 != 0) {\n                uVar17 = local_40[-0x3b];\n                if ((bVar3 & 2) == 0) {\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar10 = 0x74;\n                iVar8 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }\n            if (((bVar2 ^ bVar3) & 1) == 0) {\n              cVar4 = *(char *)puVar13[4];\n              if (cVar4 != '_') {\n                if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;\n                if (cVar4 == '\0') goto LAB_0001d190;\n              }\n              if ((((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_'))\n              goto LAB_0001d008;\n            }\n          }\nLAB_0001d190:\n          if (local_34 != 0) {\n            printf((char *)(unaff_EBP + 0x7006),local_40[-0x3b],\n                   (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46,puVar13[4],\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46);\n            printf((char *)(unaff_EBP + 0x7191),*puVar13);\n            local_30 = *puVar1;\n            local_34 = local_30 & 0x1080;\n          }\n          goto LAB_0001cfa6;\n        }\nLAB_0001d008:\n        if (local_34 != 0) {\n          uVar12 = 0x66;\n          uVar17 = local_40[-0x3b];\n          iVar8 = (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46;\n          iVar10 = (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74;\n          if ((bVar2 & 1) != 0) {\nLAB_0001d325:\n            uVar12 = 0x46;\n          }\nLAB_0001d049:\n          printf((char *)(unaff_EBP + 0x7006),puVar13[4],\n                 (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,uVar17,iVar10,iVar8);\n          printf((char *)(unaff_EBP + 0x7191),*puVar13);\n          local_30 = *puVar1;\n          local_34 = local_30 & 0x1080;\n        }\nLAB_0001d094:\n        puVar14 = puVar13;\n        puVar16 = local_40 + -0x3f;\n        for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n          *puVar16 = *puVar14;\n          puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }\n      else {\n        if (((uint *)param_1[1] < local_40) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0)) {\n          local_40[-0x3d] = uVar17 - 1;\n          local_40[-0x3c] = (uVar9 - 1) + (uint)(uVar17 != 0);\n        }\n        uVar5 = puVar13[3];\n        if ((uVar9 <= uVar5 && (uint)(puVar13[2] < uVar17) <= uVar5 - uVar9) ||\n           (puVar13[2] == 0 && uVar5 == 0)) {\n          puVar14 = puVar13;\n          puVar16 = local_40;\n          for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n            *puVar16 = *puVar14;\n            puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          local_3c = *puVar13;\n          local_38 = puVar13[1];\n          local_40 = local_40 + 0x3f;\n        }\nLAB_0001cfa6:\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }\n      uVar17 = puVar13[0x3f];\n      uVar9 = puVar13[0x40];\n      puVar13 = puVar13 + 0x3f;\n    }" { (expression_statement "local_34 = local_30 & 0x1080;" (assignment_expression "local_34 = local_30 & 0x1080" identifier = (binary_expression "local_30 & 0x1080" identifier & number_literal)) ;) (if_statement "if (local_38 == uVar9 && local_3c == uVar17) {\n        bVar2 = (byte)puVar13[7];\n        bVar3 = (byte)local_40[-0x38];\n        if (((bVar2 & 2) != 0) || ((bVar3 & 2) == 0)) {\n          if (((bVar2 ^ bVar3) & 2) == 0) {\n            if (((bVar2 & 1) != 0) && ((bVar3 & 1) == 0)) {\n              if (local_34 != 0) {\n                uVar17 = local_40[-0x3b];\n                if ((bVar3 & 2) == 0) {\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar10 = 0x74;\n                iVar8 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }\n            if (((bVar2 ^ bVar3) & 1) == 0) {\n              cVar4 = *(char *)puVar13[4];\n              if (cVar4 != '_') {\n                if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;\n                if (cVar4 == '\0') goto LAB_0001d190;\n              }\n              if ((((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_'))\n              goto LAB_0001d008;\n            }\n          }\nLAB_0001d190:\n          if (local_34 != 0) {\n            printf((char *)(unaff_EBP + 0x7006),local_40[-0x3b],\n                   (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46,puVar13[4],\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46);\n            printf((char *)(unaff_EBP + 0x7191),*puVar13);\n            local_30 = *puVar1;\n            local_34 = local_30 & 0x1080;\n          }\n          goto LAB_0001cfa6;\n        }\nLAB_0001d008:\n        if (local_34 != 0) {\n          uVar12 = 0x66;\n          uVar17 = local_40[-0x3b];\n          iVar8 = (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46;\n          iVar10 = (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74;\n          if ((bVar2 & 1) != 0) {\nLAB_0001d325:\n            uVar12 = 0x46;\n          }\nLAB_0001d049:\n          printf((char *)(unaff_EBP + 0x7006),puVar13[4],\n                 (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,uVar17,iVar10,iVar8);\n          printf((char *)(unaff_EBP + 0x7191),*puVar13);\n          local_30 = *puVar1;\n          local_34 = local_30 & 0x1080;\n        }\nLAB_0001d094:\n        puVar14 = puVar13;\n        puVar16 = local_40 + -0x3f;\n        for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n          *puVar16 = *puVar14;\n          puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }\n      else {\n        if (((uint *)param_1[1] < local_40) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0)) {\n          local_40[-0x3d] = uVar17 - 1;\n          local_40[-0x3c] = (uVar9 - 1) + (uint)(uVar17 != 0);\n        }\n        uVar5 = puVar13[3];\n        if ((uVar9 <= uVar5 && (uint)(puVar13[2] < uVar17) <= uVar5 - uVar9) ||\n           (puVar13[2] == 0 && uVar5 == 0)) {\n          puVar14 = puVar13;\n          puVar16 = local_40;\n          for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n            *puVar16 = *puVar14;\n            puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          local_3c = *puVar13;\n          local_38 = puVar13[1];\n          local_40 = local_40 + 0x3f;\n        }\nLAB_0001cfa6:\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }" if (parenthesized_expression "(local_38 == uVar9 && local_3c == uVar17)" ( (binary_expression "local_38 == uVar9 && local_3c == uVar17" (binary_expression "local_38 == uVar9" identifier == identifier) && (binary_expression "local_3c == uVar17" identifier == identifier)) )) (compound_statement "{\n        bVar2 = (byte)puVar13[7];\n        bVar3 = (byte)local_40[-0x38];\n        if (((bVar2 & 2) != 0) || ((bVar3 & 2) == 0)) {\n          if (((bVar2 ^ bVar3) & 2) == 0) {\n            if (((bVar2 & 1) != 0) && ((bVar3 & 1) == 0)) {\n              if (local_34 != 0) {\n                uVar17 = local_40[-0x3b];\n                if ((bVar3 & 2) == 0) {\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar10 = 0x74;\n                iVar8 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }\n            if (((bVar2 ^ bVar3) & 1) == 0) {\n              cVar4 = *(char *)puVar13[4];\n              if (cVar4 != '_') {\n                if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;\n                if (cVar4 == '\0') goto LAB_0001d190;\n              }\n              if ((((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_'))\n              goto LAB_0001d008;\n            }\n          }\nLAB_0001d190:\n          if (local_34 != 0) {\n            printf((char *)(unaff_EBP + 0x7006),local_40[-0x3b],\n                   (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46,puVar13[4],\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46);\n            printf((char *)(unaff_EBP + 0x7191),*puVar13);\n            local_30 = *puVar1;\n            local_34 = local_30 & 0x1080;\n          }\n          goto LAB_0001cfa6;\n        }\nLAB_0001d008:\n        if (local_34 != 0) {\n          uVar12 = 0x66;\n          uVar17 = local_40[-0x3b];\n          iVar8 = (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46;\n          iVar10 = (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74;\n          if ((bVar2 & 1) != 0) {\nLAB_0001d325:\n            uVar12 = 0x46;\n          }\nLAB_0001d049:\n          printf((char *)(unaff_EBP + 0x7006),puVar13[4],\n                 (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,uVar17,iVar10,iVar8);\n          printf((char *)(unaff_EBP + 0x7191),*puVar13);\n          local_30 = *puVar1;\n          local_34 = local_30 & 0x1080;\n        }\nLAB_0001d094:\n        puVar14 = puVar13;\n        puVar16 = local_40 + -0x3f;\n        for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n          *puVar16 = *puVar14;\n          puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }" { (expression_statement "bVar2 = (byte)puVar13[7];" (assignment_expression "bVar2 = (byte)puVar13[7]" identifier = (cast_expression "(byte)puVar13[7]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar13[7]" identifier [ number_literal ]))) ;) (expression_statement "bVar3 = (byte)local_40[-0x38];" (assignment_expression "bVar3 = (byte)local_40[-0x38]" identifier = (cast_expression "(byte)local_40[-0x38]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_40[-0x38]" identifier [ number_literal ]))) ;) (if_statement "if (((bVar2 & 2) != 0) || ((bVar3 & 2) == 0)) {\n          if (((bVar2 ^ bVar3) & 2) == 0) {\n            if (((bVar2 & 1) != 0) && ((bVar3 & 1) == 0)) {\n              if (local_34 != 0) {\n                uVar17 = local_40[-0x3b];\n                if ((bVar3 & 2) == 0) {\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar10 = 0x74;\n                iVar8 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }\n            if (((bVar2 ^ bVar3) & 1) == 0) {\n              cVar4 = *(char *)puVar13[4];\n              if (cVar4 != '_') {\n                if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;\n                if (cVar4 == '\0') goto LAB_0001d190;\n              }\n              if ((((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_'))\n              goto LAB_0001d008;\n            }\n          }\nLAB_0001d190:\n          if (local_34 != 0) {\n            printf((char *)(unaff_EBP + 0x7006),local_40[-0x3b],\n                   (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46,puVar13[4],\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46);\n            printf((char *)(unaff_EBP + 0x7191),*puVar13);\n            local_30 = *puVar1;\n            local_34 = local_30 & 0x1080;\n          }\n          goto LAB_0001cfa6;\n        }" if (parenthesized_expression "(((bVar2 & 2) != 0) || ((bVar3 & 2) == 0))" ( (binary_expression "((bVar2 & 2) != 0) || ((bVar3 & 2) == 0)" (parenthesized_expression "((bVar2 & 2) != 0)" ( (binary_expression "(bVar2 & 2) != 0" (parenthesized_expression "(bVar2 & 2)" ( (binary_expression "bVar2 & 2" identifier & number_literal) )) != number_literal) )) || (parenthesized_expression "((bVar3 & 2) == 0)" ( (binary_expression "(bVar3 & 2) == 0" (parenthesized_expression "(bVar3 & 2)" ( (binary_expression "bVar3 & 2" identifier & number_literal) )) == number_literal) ))) )) (compound_statement "{\n          if (((bVar2 ^ bVar3) & 2) == 0) {\n            if (((bVar2 & 1) != 0) && ((bVar3 & 1) == 0)) {\n              if (local_34 != 0) {\n                uVar17 = local_40[-0x3b];\n                if ((bVar3 & 2) == 0) {\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar10 = 0x74;\n                iVar8 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }\n            if (((bVar2 ^ bVar3) & 1) == 0) {\n              cVar4 = *(char *)puVar13[4];\n              if (cVar4 != '_') {\n                if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;\n                if (cVar4 == '\0') goto LAB_0001d190;\n              }\n              if ((((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_'))\n              goto LAB_0001d008;\n            }\n          }\nLAB_0001d190:\n          if (local_34 != 0) {\n            printf((char *)(unaff_EBP + 0x7006),local_40[-0x3b],\n                   (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46,puVar13[4],\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46);\n            printf((char *)(unaff_EBP + 0x7191),*puVar13);\n            local_30 = *puVar1;\n            local_34 = local_30 & 0x1080;\n          }\n          goto LAB_0001cfa6;\n        }" { (if_statement "if (((bVar2 ^ bVar3) & 2) == 0) {\n            if (((bVar2 & 1) != 0) && ((bVar3 & 1) == 0)) {\n              if (local_34 != 0) {\n                uVar17 = local_40[-0x3b];\n                if ((bVar3 & 2) == 0) {\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar10 = 0x74;\n                iVar8 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }\n            if (((bVar2 ^ bVar3) & 1) == 0) {\n              cVar4 = *(char *)puVar13[4];\n              if (cVar4 != '_') {\n                if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;\n                if (cVar4 == '\0') goto LAB_0001d190;\n              }\n              if ((((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_'))\n              goto LAB_0001d008;\n            }\n          }" if (parenthesized_expression "(((bVar2 ^ bVar3) & 2) == 0)" ( (binary_expression "((bVar2 ^ bVar3) & 2) == 0" (parenthesized_expression "((bVar2 ^ bVar3) & 2)" ( (binary_expression "(bVar2 ^ bVar3) & 2" (parenthesized_expression "(bVar2 ^ bVar3)" ( (binary_expression "bVar2 ^ bVar3" identifier ^ identifier) )) & number_literal) )) == number_literal) )) (compound_statement "{\n            if (((bVar2 & 1) != 0) && ((bVar3 & 1) == 0)) {\n              if (local_34 != 0) {\n                uVar17 = local_40[-0x3b];\n                if ((bVar3 & 2) == 0) {\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar10 = 0x74;\n                iVar8 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }\n            if (((bVar2 ^ bVar3) & 1) == 0) {\n              cVar4 = *(char *)puVar13[4];\n              if (cVar4 != '_') {\n                if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;\n                if (cVar4 == '\0') goto LAB_0001d190;\n              }\n              if ((((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_'))\n              goto LAB_0001d008;\n            }\n          }" { (if_statement "if (((bVar2 & 1) != 0) && ((bVar3 & 1) == 0)) {\n              if (local_34 != 0) {\n                uVar17 = local_40[-0x3b];\n                if ((bVar3 & 2) == 0) {\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar10 = 0x74;\n                iVar8 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }" if (parenthesized_expression "(((bVar2 & 1) != 0) && ((bVar3 & 1) == 0))" ( (binary_expression "((bVar2 & 1) != 0) && ((bVar3 & 1) == 0)" (parenthesized_expression "((bVar2 & 1) != 0)" ( (binary_expression "(bVar2 & 1) != 0" (parenthesized_expression "(bVar2 & 1)" ( (binary_expression "bVar2 & 1" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "((bVar3 & 1) == 0)" ( (binary_expression "(bVar3 & 1) == 0" (parenthesized_expression "(bVar3 & 1)" ( (binary_expression "bVar3 & 1" identifier & number_literal) )) == number_literal) ))) )) (compound_statement "{\n              if (local_34 != 0) {\n                uVar17 = local_40[-0x3b];\n                if ((bVar3 & 2) == 0) {\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar10 = 0x74;\n                iVar8 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }" { (if_statement "if (local_34 != 0) {\n                uVar17 = local_40[-0x3b];\n                if ((bVar3 & 2) == 0) {\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar10 = 0x74;\n                iVar8 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }" if (parenthesized_expression "(local_34 != 0)" ( (binary_expression "local_34 != 0" identifier != number_literal) )) (compound_statement "{\n                uVar17 = local_40[-0x3b];\n                if ((bVar3 & 2) == 0) {\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar10 = 0x74;\n                iVar8 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }" { (expression_statement "uVar17 = local_40[-0x3b];" (assignment_expression "uVar17 = local_40[-0x3b]" identifier = (subscript_expression "local_40[-0x3b]" identifier [ number_literal ])) ;) (if_statement "if ((bVar3 & 2) == 0) {\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }" if (parenthesized_expression "((bVar3 & 2) == 0)" ( (binary_expression "(bVar3 & 2) == 0" (parenthesized_expression "(bVar3 & 2)" ( (binary_expression "bVar3 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }" { (expression_statement "iVar8 = 0x66;" (assignment_expression "iVar8 = 0x66" identifier = number_literal) ;) (expression_statement "iVar10 = 0x54;" (assignment_expression "iVar10 = 0x54" identifier = number_literal) ;) (goto_statement "goto LAB_0001d325;" goto statement_identifier ;) })) (expression_statement "iVar10 = 0x74;" (assignment_expression "iVar10 = 0x74" identifier = number_literal) ;) (expression_statement "iVar8 = 0x66;" (assignment_expression "iVar8 = 0x66" identifier = number_literal) ;) (expression_statement "uVar12 = 0x46;" (assignment_expression "uVar12 = 0x46" identifier = number_literal) ;) (goto_statement "goto LAB_0001d049;" goto statement_identifier ;) })) (goto_statement "goto LAB_0001d094;" goto statement_identifier ;) })) (if_statement "if (((bVar2 ^ bVar3) & 1) == 0) {\n              cVar4 = *(char *)puVar13[4];\n              if (cVar4 != '_') {\n                if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;\n                if (cVar4 == '\0') goto LAB_0001d190;\n              }\n              if ((((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_'))\n              goto LAB_0001d008;\n            }" if (parenthesized_expression "(((bVar2 ^ bVar3) & 1) == 0)" ( (binary_expression "((bVar2 ^ bVar3) & 1) == 0" (parenthesized_expression "((bVar2 ^ bVar3) & 1)" ( (binary_expression "(bVar2 ^ bVar3) & 1" (parenthesized_expression "(bVar2 ^ bVar3)" ( (binary_expression "bVar2 ^ bVar3" identifier ^ identifier) )) & number_literal) )) == number_literal) )) (compound_statement "{\n              cVar4 = *(char *)puVar13[4];\n              if (cVar4 != '_') {\n                if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;\n                if (cVar4 == '\0') goto LAB_0001d190;\n              }\n              if ((((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_'))\n              goto LAB_0001d008;\n            }" { (expression_statement "cVar4 = *(char *)puVar13[4];" (assignment_expression "cVar4 = *(char *)puVar13[4]" identifier = (pointer_expression "*(char *)puVar13[4]" * (cast_expression "(char *)puVar13[4]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[4]" identifier [ number_literal ])))) ;) (if_statement "if (cVar4 != '_') {\n                if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;\n                if (cVar4 == '\0') goto LAB_0001d190;\n              }" if (parenthesized_expression "(cVar4 != '_')" ( (binary_expression "cVar4 != '_'" identifier != (char_literal "'_'" ' character ')) )) (compound_statement "{\n                if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;\n                if (cVar4 == '\0') goto LAB_0001d190;\n              }" { (if_statement "if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;" if (parenthesized_expression "(*(char *)local_40[-0x3b] == '_')" ( (binary_expression "*(char *)local_40[-0x3b] == '_'" (pointer_expression "*(char *)local_40[-0x3b]" * (cast_expression "(char *)local_40[-0x3b]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_40[-0x3b]" identifier [ number_literal ]))) == (char_literal "'_'" ' character ')) )) (goto_statement "goto LAB_0001d008;" goto statement_identifier ;)) (if_statement "if (cVar4 == '\0') goto LAB_0001d190;" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0001d190;" goto statement_identifier ;)) })) (if_statement "if ((((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_'))\n              goto LAB_0001d008;" if (parenthesized_expression "((((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_'))" ( (binary_expression "(((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_')" (parenthesized_expression "(((char *)puVar13[4])[1] != '_')" ( (binary_expression "((char *)puVar13[4])[1] != '_'" (subscript_expression "((char *)puVar13[4])[1]" (parenthesized_expression "((char *)puVar13[4])" ( (cast_expression "(char *)puVar13[4]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[4]" identifier [ number_literal ])) )) [ number_literal ]) != (char_literal "'_'" ' character ')) )) && (parenthesized_expression "(*(char *)(local_40[-0x3b] + 1) == '_')" ( (binary_expression "*(char *)(local_40[-0x3b] + 1) == '_'" (pointer_expression "*(char *)(local_40[-0x3b] + 1)" * (cast_expression "(char *)(local_40[-0x3b] + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_40[-0x3b] + 1)" ( (binary_expression "local_40[-0x3b] + 1" (subscript_expression "local_40[-0x3b]" identifier [ number_literal ]) + number_literal) )))) == (char_literal "'_'" ' character ')) ))) )) (goto_statement "goto LAB_0001d008;" goto statement_identifier ;)) })) })) (labeled_statement "LAB_0001d190:\n          if (local_34 != 0) {\n            printf((char *)(unaff_EBP + 0x7006),local_40[-0x3b],\n                   (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46,puVar13[4],\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46);\n            printf((char *)(unaff_EBP + 0x7191),*puVar13);\n            local_30 = *puVar1;\n            local_34 = local_30 & 0x1080;\n          }" statement_identifier : (if_statement "if (local_34 != 0) {\n            printf((char *)(unaff_EBP + 0x7006),local_40[-0x3b],\n                   (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46,puVar13[4],\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46);\n            printf((char *)(unaff_EBP + 0x7191),*puVar13);\n            local_30 = *puVar1;\n            local_34 = local_30 & 0x1080;\n          }" if (parenthesized_expression "(local_34 != 0)" ( (binary_expression "local_34 != 0" identifier != number_literal) )) (compound_statement "{\n            printf((char *)(unaff_EBP + 0x7006),local_40[-0x3b],\n                   (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46,puVar13[4],\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46);\n            printf((char *)(unaff_EBP + 0x7191),*puVar13);\n            local_30 = *puVar1;\n            local_34 = local_30 & 0x1080;\n          }" { (expression_statement "printf((char *)(unaff_EBP + 0x7006),local_40[-0x3b],\n                   (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46,puVar13[4],\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46);" (call_expression "printf((char *)(unaff_EBP + 0x7006),local_40[-0x3b],\n                   (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46,puVar13[4],\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46)" identifier (argument_list "((char *)(unaff_EBP + 0x7006),local_40[-0x3b],\n                   (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46,puVar13[4],\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46)" ( (cast_expression "(char *)(unaff_EBP + 0x7006)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x7006)" ( (binary_expression "unaff_EBP + 0x7006" identifier + number_literal) ))) , (subscript_expression "local_40[-0x3b]" identifier [ number_literal ]) , (binary_expression "(-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74" (parenthesized_expression "(-(uint)((bVar3 & 2) == 0) & 0xffffffe0)" ( (binary_expression "-(uint)((bVar3 & 2) == 0) & 0xffffffe0" (unary_expression "-(uint)((bVar3 & 2) == 0)" - (call_expression "(uint)((bVar3 & 2) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((bVar3 & 2) == 0)" ( (binary_expression "(bVar3 & 2) == 0" (parenthesized_expression "(bVar3 & 2)" ( (binary_expression "bVar3 & 2" identifier & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal) , (binary_expression "(-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46" (parenthesized_expression "(-(uint)((bVar3 & 1) == 0) & 0x20)" ( (binary_expression "-(uint)((bVar3 & 1) == 0) & 0x20" (unary_expression "-(uint)((bVar3 & 1) == 0)" - (call_expression "(uint)((bVar3 & 1) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((bVar3 & 1) == 0)" ( (binary_expression "(bVar3 & 1) == 0" (parenthesized_expression "(bVar3 & 1)" ( (binary_expression "bVar3 & 1" identifier & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal) , (subscript_expression "puVar13[4]" identifier [ number_literal ]) , (binary_expression "(-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74" (parenthesized_expression "(-(uint)((bVar2 & 2) == 0) & 0xffffffe0)" ( (binary_expression "-(uint)((bVar2 & 2) == 0) & 0xffffffe0" (unary_expression "-(uint)((bVar2 & 2) == 0)" - (call_expression "(uint)((bVar2 & 2) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((bVar2 & 2) == 0)" ( (binary_expression "(bVar2 & 2) == 0" (parenthesized_expression "(bVar2 & 2)" ( (binary_expression "bVar2 & 2" identifier & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal) , (binary_expression "(-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46" (parenthesized_expression "(-(uint)((bVar2 & 1) == 0) & 0x20)" ( (binary_expression "-(uint)((bVar2 & 1) == 0) & 0x20" (unary_expression "-(uint)((bVar2 & 1) == 0)" - (call_expression "(uint)((bVar2 & 1) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((bVar2 & 1) == 0)" ( (binary_expression "(bVar2 & 1) == 0" (parenthesized_expression "(bVar2 & 1)" ( (binary_expression "bVar2 & 1" identifier & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal) ))) ;) (expression_statement "printf((char *)(unaff_EBP + 0x7191),*puVar13);" (call_expression "printf((char *)(unaff_EBP + 0x7191),*puVar13)" identifier (argument_list "((char *)(unaff_EBP + 0x7191),*puVar13)" ( (cast_expression "(char *)(unaff_EBP + 0x7191)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x7191)" ( (binary_expression "unaff_EBP + 0x7191" identifier + number_literal) ))) , (pointer_expression "*puVar13" * identifier) ))) ;) (expression_statement "local_30 = *puVar1;" (assignment_expression "local_30 = *puVar1" identifier = (pointer_expression "*puVar1" * identifier)) ;) (expression_statement "local_34 = local_30 & 0x1080;" (assignment_expression "local_34 = local_30 & 0x1080" identifier = (binary_expression "local_30 & 0x1080" identifier & number_literal)) ;) }))) (goto_statement "goto LAB_0001cfa6;" goto statement_identifier ;) })) (labeled_statement "LAB_0001d008:\n        if (local_34 != 0) {\n          uVar12 = 0x66;\n          uVar17 = local_40[-0x3b];\n          iVar8 = (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46;\n          iVar10 = (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74;\n          if ((bVar2 & 1) != 0) {\nLAB_0001d325:\n            uVar12 = 0x46;\n          }\nLAB_0001d049:\n          printf((char *)(unaff_EBP + 0x7006),puVar13[4],\n                 (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,uVar17,iVar10,iVar8);\n          printf((char *)(unaff_EBP + 0x7191),*puVar13);\n          local_30 = *puVar1;\n          local_34 = local_30 & 0x1080;\n        }" statement_identifier : (if_statement "if (local_34 != 0) {\n          uVar12 = 0x66;\n          uVar17 = local_40[-0x3b];\n          iVar8 = (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46;\n          iVar10 = (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74;\n          if ((bVar2 & 1) != 0) {\nLAB_0001d325:\n            uVar12 = 0x46;\n          }\nLAB_0001d049:\n          printf((char *)(unaff_EBP + 0x7006),puVar13[4],\n                 (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,uVar17,iVar10,iVar8);\n          printf((char *)(unaff_EBP + 0x7191),*puVar13);\n          local_30 = *puVar1;\n          local_34 = local_30 & 0x1080;\n        }" if (parenthesized_expression "(local_34 != 0)" ( (binary_expression "local_34 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar12 = 0x66;\n          uVar17 = local_40[-0x3b];\n          iVar8 = (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46;\n          iVar10 = (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74;\n          if ((bVar2 & 1) != 0) {\nLAB_0001d325:\n            uVar12 = 0x46;\n          }\nLAB_0001d049:\n          printf((char *)(unaff_EBP + 0x7006),puVar13[4],\n                 (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,uVar17,iVar10,iVar8);\n          printf((char *)(unaff_EBP + 0x7191),*puVar13);\n          local_30 = *puVar1;\n          local_34 = local_30 & 0x1080;\n        }" { (expression_statement "uVar12 = 0x66;" (assignment_expression "uVar12 = 0x66" identifier = number_literal) ;) (expression_statement "uVar17 = local_40[-0x3b];" (assignment_expression "uVar17 = local_40[-0x3b]" identifier = (subscript_expression "local_40[-0x3b]" identifier [ number_literal ])) ;) (expression_statement "iVar8 = (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46;" (assignment_expression "iVar8 = (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46" identifier = (binary_expression "(-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46" (parenthesized_expression "(-(uint)((bVar3 & 1) == 0) & 0x20)" ( (binary_expression "-(uint)((bVar3 & 1) == 0) & 0x20" (unary_expression "-(uint)((bVar3 & 1) == 0)" - (call_expression "(uint)((bVar3 & 1) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((bVar3 & 1) == 0)" ( (binary_expression "(bVar3 & 1) == 0" (parenthesized_expression "(bVar3 & 1)" ( (binary_expression "bVar3 & 1" identifier & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal)) ;) (expression_statement "iVar10 = (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74;" (assignment_expression "iVar10 = (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74" identifier = (binary_expression "(-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74" (parenthesized_expression "(-(uint)((bVar3 & 2) == 0) & 0xffffffe0)" ( (binary_expression "-(uint)((bVar3 & 2) == 0) & 0xffffffe0" (unary_expression "-(uint)((bVar3 & 2) == 0)" - (call_expression "(uint)((bVar3 & 2) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((bVar3 & 2) == 0)" ( (binary_expression "(bVar3 & 2) == 0" (parenthesized_expression "(bVar3 & 2)" ( (binary_expression "bVar3 & 2" identifier & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal)) ;) (if_statement "if ((bVar2 & 1) != 0) {\nLAB_0001d325:\n            uVar12 = 0x46;\n          }" if (parenthesized_expression "((bVar2 & 1) != 0)" ( (binary_expression "(bVar2 & 1) != 0" (parenthesized_expression "(bVar2 & 1)" ( (binary_expression "bVar2 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_0001d325:\n            uVar12 = 0x46;\n          }" { (labeled_statement "LAB_0001d325:\n            uVar12 = 0x46;" statement_identifier : (expression_statement "uVar12 = 0x46;" (assignment_expression "uVar12 = 0x46" identifier = number_literal) ;)) })) (labeled_statement "LAB_0001d049:\n          printf((char *)(unaff_EBP + 0x7006),puVar13[4],\n                 (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,uVar17,iVar10,iVar8);" statement_identifier : (expression_statement "printf((char *)(unaff_EBP + 0x7006),puVar13[4],\n                 (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,uVar17,iVar10,iVar8);" (call_expression "printf((char *)(unaff_EBP + 0x7006),puVar13[4],\n                 (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,uVar17,iVar10,iVar8)" identifier (argument_list "((char *)(unaff_EBP + 0x7006),puVar13[4],\n                 (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,uVar17,iVar10,iVar8)" ( (cast_expression "(char *)(unaff_EBP + 0x7006)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x7006)" ( (binary_expression "unaff_EBP + 0x7006" identifier + number_literal) ))) , (subscript_expression "puVar13[4]" identifier [ number_literal ]) , (binary_expression "(-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74" (parenthesized_expression "(-(uint)((bVar2 & 2) == 0) & 0xffffffe0)" ( (binary_expression "-(uint)((bVar2 & 2) == 0) & 0xffffffe0" (unary_expression "-(uint)((bVar2 & 2) == 0)" - (call_expression "(uint)((bVar2 & 2) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((bVar2 & 2) == 0)" ( (binary_expression "(bVar2 & 2) == 0" (parenthesized_expression "(bVar2 & 2)" ( (binary_expression "bVar2 & 2" identifier & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal) , identifier , identifier , identifier , identifier ))) ;)) (expression_statement "printf((char *)(unaff_EBP + 0x7191),*puVar13);" (call_expression "printf((char *)(unaff_EBP + 0x7191),*puVar13)" identifier (argument_list "((char *)(unaff_EBP + 0x7191),*puVar13)" ( (cast_expression "(char *)(unaff_EBP + 0x7191)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x7191)" ( (binary_expression "unaff_EBP + 0x7191" identifier + number_literal) ))) , (pointer_expression "*puVar13" * identifier) ))) ;) (expression_statement "local_30 = *puVar1;" (assignment_expression "local_30 = *puVar1" identifier = (pointer_expression "*puVar1" * identifier)) ;) (expression_statement "local_34 = local_30 & 0x1080;" (assignment_expression "local_34 = local_30 & 0x1080" identifier = (binary_expression "local_30 & 0x1080" identifier & number_literal)) ;) }))) (labeled_statement "LAB_0001d094:\n        puVar14 = puVar13;" statement_identifier : (expression_statement "puVar14 = puVar13;" (assignment_expression "puVar14 = puVar13" identifier = identifier) ;)) (expression_statement "puVar16 = local_40 + -0x3f;" (assignment_expression "puVar16 = local_40 + -0x3f" identifier = (binary_expression "local_40 + -0x3f" identifier + number_literal)) ;) (for_statement "for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n          *puVar16 = *puVar14;\n          puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }" for ( (assignment_expression "iVar8 = 0x3f" identifier = number_literal) ; (binary_expression "iVar8 != 0" identifier != number_literal) ; (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ) (compound_statement "{\n          *puVar16 = *puVar14;\n          puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }" { (expression_statement "*puVar16 = *puVar14;" (assignment_expression "*puVar16 = *puVar14" (pointer_expression "*puVar16" * identifier) = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "puVar14 = puVar14 + (uint)bVar18 * -2 + 1;" (assignment_expression "puVar14 = puVar14 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "puVar14 + (uint)bVar18 * -2 + 1" (binary_expression "puVar14 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "puVar16 = puVar16 + (uint)bVar18 * -2 + 1;" (assignment_expression "puVar16 = puVar16 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "puVar16 + (uint)bVar18 * -2 + 1" (binary_expression "puVar16 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (if_statement "if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;" if (parenthesized_expression "((uint *)param_1[2] <= puVar13 + 0x3f)" ( (binary_expression "(uint *)param_1[2] <= puVar13 + 0x3f" (cast_expression "(uint *)param_1[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ])) <= (binary_expression "puVar13 + 0x3f" identifier + number_literal)) )) (goto_statement "goto LAB_0001d0c0;" goto statement_identifier ;)) }) (else_clause "else {\n        if (((uint *)param_1[1] < local_40) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0)) {\n          local_40[-0x3d] = uVar17 - 1;\n          local_40[-0x3c] = (uVar9 - 1) + (uint)(uVar17 != 0);\n        }\n        uVar5 = puVar13[3];\n        if ((uVar9 <= uVar5 && (uint)(puVar13[2] < uVar17) <= uVar5 - uVar9) ||\n           (puVar13[2] == 0 && uVar5 == 0)) {\n          puVar14 = puVar13;\n          puVar16 = local_40;\n          for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n            *puVar16 = *puVar14;\n            puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          local_3c = *puVar13;\n          local_38 = puVar13[1];\n          local_40 = local_40 + 0x3f;\n        }\nLAB_0001cfa6:\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }" else (compound_statement "{\n        if (((uint *)param_1[1] < local_40) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0)) {\n          local_40[-0x3d] = uVar17 - 1;\n          local_40[-0x3c] = (uVar9 - 1) + (uint)(uVar17 != 0);\n        }\n        uVar5 = puVar13[3];\n        if ((uVar9 <= uVar5 && (uint)(puVar13[2] < uVar17) <= uVar5 - uVar9) ||\n           (puVar13[2] == 0 && uVar5 == 0)) {\n          puVar14 = puVar13;\n          puVar16 = local_40;\n          for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n            *puVar16 = *puVar14;\n            puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          local_3c = *puVar13;\n          local_38 = puVar13[1];\n          local_40 = local_40 + 0x3f;\n        }\nLAB_0001cfa6:\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }" { (if_statement "if (((uint *)param_1[1] < local_40) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0)) {\n          local_40[-0x3d] = uVar17 - 1;\n          local_40[-0x3c] = (uVar9 - 1) + (uint)(uVar17 != 0);\n        }" if (parenthesized_expression "(((uint *)param_1[1] < local_40) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0))" ( (binary_expression "((uint *)param_1[1] < local_40) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0)" (parenthesized_expression "((uint *)param_1[1] < local_40)" ( (binary_expression "(uint *)param_1[1] < local_40" (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 "(local_40[-0x3c] == 0 && local_40[-0x3d] == 0)" ( (binary_expression "local_40[-0x3c] == 0 && local_40[-0x3d] == 0" (binary_expression "local_40[-0x3c] == 0" (subscript_expression "local_40[-0x3c]" identifier [ number_literal ]) == number_literal) && (binary_expression "local_40[-0x3d] == 0" (subscript_expression "local_40[-0x3d]" identifier [ number_literal ]) == number_literal)) ))) )) (compound_statement "{\n          local_40[-0x3d] = uVar17 - 1;\n          local_40[-0x3c] = (uVar9 - 1) + (uint)(uVar17 != 0);\n        }" { (expression_statement "local_40[-0x3d] = uVar17 - 1;" (assignment_expression "local_40[-0x3d] = uVar17 - 1" (subscript_expression "local_40[-0x3d]" identifier [ number_literal ]) = (binary_expression "uVar17 - 1" identifier - number_literal)) ;) (expression_statement "local_40[-0x3c] = (uVar9 - 1) + (uint)(uVar17 != 0);" (assignment_expression "local_40[-0x3c] = (uVar9 - 1) + (uint)(uVar17 != 0)" (subscript_expression "local_40[-0x3c]" identifier [ number_literal ]) = (binary_expression "(uVar9 - 1) + (uint)(uVar17 != 0)" (parenthesized_expression "(uVar9 - 1)" ( (binary_expression "uVar9 - 1" identifier - number_literal) )) + (call_expression "(uint)(uVar17 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar17 != 0)" ( (binary_expression "uVar17 != 0" identifier != number_literal) ))))) ;) })) (expression_statement "uVar5 = puVar13[3];" (assignment_expression "uVar5 = puVar13[3]" identifier = (subscript_expression "puVar13[3]" identifier [ number_literal ])) ;) (if_statement "if ((uVar9 <= uVar5 && (uint)(puVar13[2] < uVar17) <= uVar5 - uVar9) ||\n           (puVar13[2] == 0 && uVar5 == 0)) {\n          puVar14 = puVar13;\n          puVar16 = local_40;\n          for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n            *puVar16 = *puVar14;\n            puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          local_3c = *puVar13;\n          local_38 = puVar13[1];\n          local_40 = local_40 + 0x3f;\n        }" if (parenthesized_expression "((uVar9 <= uVar5 && (uint)(puVar13[2] < uVar17) <= uVar5 - uVar9) ||\n           (puVar13[2] == 0 && uVar5 == 0))" ( (binary_expression "(uVar9 <= uVar5 && (uint)(puVar13[2] < uVar17) <= uVar5 - uVar9) ||\n           (puVar13[2] == 0 && uVar5 == 0)" (parenthesized_expression "(uVar9 <= uVar5 && (uint)(puVar13[2] < uVar17) <= uVar5 - uVar9)" ( (binary_expression "uVar9 <= uVar5 && (uint)(puVar13[2] < uVar17) <= uVar5 - uVar9" (binary_expression "uVar9 <= uVar5" identifier <= identifier) && (binary_expression "(uint)(puVar13[2] < uVar17) <= uVar5 - uVar9" (call_expression "(uint)(puVar13[2] < uVar17)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar13[2] < uVar17)" ( (binary_expression "puVar13[2] < uVar17" (subscript_expression "puVar13[2]" identifier [ number_literal ]) < identifier) ))) <= (binary_expression "uVar5 - uVar9" identifier - identifier))) )) || (parenthesized_expression "(puVar13[2] == 0 && uVar5 == 0)" ( (binary_expression "puVar13[2] == 0 && uVar5 == 0" (binary_expression "puVar13[2] == 0" (subscript_expression "puVar13[2]" identifier [ number_literal ]) == number_literal) && (binary_expression "uVar5 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n          puVar14 = puVar13;\n          puVar16 = local_40;\n          for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n            *puVar16 = *puVar14;\n            puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          local_3c = *puVar13;\n          local_38 = puVar13[1];\n          local_40 = local_40 + 0x3f;\n        }" { (expression_statement "puVar14 = puVar13;" (assignment_expression "puVar14 = puVar13" identifier = identifier) ;) (expression_statement "puVar16 = local_40;" (assignment_expression "puVar16 = local_40" identifier = identifier) ;) (for_statement "for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n            *puVar16 = *puVar14;\n            puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }" for ( (assignment_expression "iVar8 = 0x3f" identifier = number_literal) ; (binary_expression "iVar8 != 0" identifier != number_literal) ; (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ) (compound_statement "{\n            *puVar16 = *puVar14;\n            puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }" { (expression_statement "*puVar16 = *puVar14;" (assignment_expression "*puVar16 = *puVar14" (pointer_expression "*puVar16" * identifier) = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "puVar14 = puVar14 + (uint)bVar18 * -2 + 1;" (assignment_expression "puVar14 = puVar14 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "puVar14 + (uint)bVar18 * -2 + 1" (binary_expression "puVar14 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "puVar16 = puVar16 + (uint)bVar18 * -2 + 1;" (assignment_expression "puVar16 = puVar16 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "puVar16 + (uint)bVar18 * -2 + 1" (binary_expression "puVar16 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "local_3c = *puVar13;" (assignment_expression "local_3c = *puVar13" identifier = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "local_38 = puVar13[1];" (assignment_expression "local_38 = puVar13[1]" identifier = (subscript_expression "puVar13[1]" identifier [ number_literal ])) ;) (expression_statement "local_40 = local_40 + 0x3f;" (assignment_expression "local_40 = local_40 + 0x3f" identifier = (binary_expression "local_40 + 0x3f" identifier + number_literal)) ;) })) (labeled_statement "LAB_0001cfa6:\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;" statement_identifier : (if_statement "if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;" if (parenthesized_expression "((uint *)param_1[2] <= puVar13 + 0x3f)" ( (binary_expression "(uint *)param_1[2] <= puVar13 + 0x3f" (cast_expression "(uint *)param_1[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ])) <= (binary_expression "puVar13 + 0x3f" identifier + number_literal)) )) (goto_statement "goto LAB_0001d0c0;" goto statement_identifier ;))) }))) (expression_statement "uVar17 = puVar13[0x3f];" (assignment_expression "uVar17 = puVar13[0x3f]" identifier = (subscript_expression "puVar13[0x3f]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = puVar13[0x40];" (assignment_expression "uVar9 = puVar13[0x40]" identifier = (subscript_expression "puVar13[0x40]" identifier [ number_literal ])) ;) (expression_statement "puVar13 = puVar13 + 0x3f;" (assignment_expression "puVar13 = puVar13 + 0x3f" identifier = (binary_expression "puVar13 + 0x3f" identifier + number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "local_34 = *(uint *)(unaff_EBP + 0x112c2) & 0x1080;" (assignment_expression "local_34 = *(uint *)(unaff_EBP + 0x112c2) & 0x1080" identifier = (binary_expression "*(uint *)(unaff_EBP + 0x112c2) & 0x1080" (pointer_expression "*(uint *)(unaff_EBP + 0x112c2)" * (cast_expression "(uint *)(unaff_EBP + 0x112c2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x112c2)" ( (binary_expression "unaff_EBP + 0x112c2" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "sVar6 = 0;" (assignment_expression "sVar6 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0001d0d2:\n  local_28 = (uint *)(unaff_EBP + 0x112c2);" statement_identifier : (expression_statement "local_28 = (uint *)(unaff_EBP + 0x112c2);" (assignment_expression "local_28 = (uint *)(unaff_EBP + 0x112c2)" identifier = (cast_expression "(uint *)(unaff_EBP + 0x112c2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x112c2)" ( (binary_expression "unaff_EBP + 0x112c2" identifier + number_literal) )))) ;)) (expression_statement "sVar11 = *param_1;" (assignment_expression "sVar11 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if ((sVar11 != 0) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0)) {\n    iVar8 = *(int *)(unaff_EBP + 0x11666);\n    uVar17 = *(uint *)(iVar8 + 0x2c);\n    uVar9 = *(uint *)(iVar8 + 0x1c);\n    iVar15 = uVar17 + *(uint *)(iVar8 + 0x1c);\n    iVar10 = *(int *)(iVar8 + 0x30);\n    iVar8 = *(int *)(iVar8 + 0x20);\n    local_40[-0x3d] = iVar15 - 1;\n    local_40[-0x3c] = iVar10 + iVar8 + (uint)CARRY4(uVar17,uVar9) + -1 + (uint)(iVar15 != 0);\n  }" if (parenthesized_expression "((sVar11 != 0) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0))" ( (binary_expression "(sVar11 != 0) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0)" (parenthesized_expression "(sVar11 != 0)" ( (binary_expression "sVar11 != 0" identifier != number_literal) )) && (parenthesized_expression "(local_40[-0x3c] == 0 && local_40[-0x3d] == 0)" ( (binary_expression "local_40[-0x3c] == 0 && local_40[-0x3d] == 0" (binary_expression "local_40[-0x3c] == 0" (subscript_expression "local_40[-0x3c]" identifier [ number_literal ]) == number_literal) && (binary_expression "local_40[-0x3d] == 0" (subscript_expression "local_40[-0x3d]" identifier [ number_literal ]) == number_literal)) ))) )) (compound_statement "{\n    iVar8 = *(int *)(unaff_EBP + 0x11666);\n    uVar17 = *(uint *)(iVar8 + 0x2c);\n    uVar9 = *(uint *)(iVar8 + 0x1c);\n    iVar15 = uVar17 + *(uint *)(iVar8 + 0x1c);\n    iVar10 = *(int *)(iVar8 + 0x30);\n    iVar8 = *(int *)(iVar8 + 0x20);\n    local_40[-0x3d] = iVar15 - 1;\n    local_40[-0x3c] = iVar10 + iVar8 + (uint)CARRY4(uVar17,uVar9) + -1 + (uint)(iVar15 != 0);\n  }" { (expression_statement "iVar8 = *(int *)(unaff_EBP + 0x11666);" (assignment_expression "iVar8 = *(int *)(unaff_EBP + 0x11666)" identifier = (pointer_expression "*(int *)(unaff_EBP + 0x11666)" * (cast_expression "(int *)(unaff_EBP + 0x11666)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x11666)" ( (binary_expression "unaff_EBP + 0x11666" identifier + number_literal) ))))) ;) (expression_statement "uVar17 = *(uint *)(iVar8 + 0x2c);" (assignment_expression "uVar17 = *(uint *)(iVar8 + 0x2c)" identifier = (pointer_expression "*(uint *)(iVar8 + 0x2c)" * (cast_expression "(uint *)(iVar8 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x2c)" ( (binary_expression "iVar8 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = *(uint *)(iVar8 + 0x1c);" (assignment_expression "uVar9 = *(uint *)(iVar8 + 0x1c)" identifier = (pointer_expression "*(uint *)(iVar8 + 0x1c)" * (cast_expression "(uint *)(iVar8 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "iVar15 = uVar17 + *(uint *)(iVar8 + 0x1c);" (assignment_expression "iVar15 = uVar17 + *(uint *)(iVar8 + 0x1c)" identifier = (binary_expression "uVar17 + *(uint *)(iVar8 + 0x1c)" identifier + (pointer_expression "*(uint *)(iVar8 + 0x1c)" * (cast_expression "(uint *)(iVar8 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))))) ;) (expression_statement "iVar10 = *(int *)(iVar8 + 0x30);" (assignment_expression "iVar10 = *(int *)(iVar8 + 0x30)" identifier = (pointer_expression "*(int *)(iVar8 + 0x30)" * (cast_expression "(int *)(iVar8 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x30)" ( (binary_expression "iVar8 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = *(int *)(iVar8 + 0x20);" (assignment_expression "iVar8 = *(int *)(iVar8 + 0x20)" identifier = (pointer_expression "*(int *)(iVar8 + 0x20)" * (cast_expression "(int *)(iVar8 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x20)" ( (binary_expression "iVar8 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "local_40[-0x3d] = iVar15 - 1;" (assignment_expression "local_40[-0x3d] = iVar15 - 1" (subscript_expression "local_40[-0x3d]" identifier [ number_literal ]) = (binary_expression "iVar15 - 1" identifier - number_literal)) ;) (expression_statement "local_40[-0x3c] = iVar10 + iVar8 + (uint)CARRY4(uVar17,uVar9) + -1 + (uint)(iVar15 != 0);" (assignment_expression "local_40[-0x3c] = iVar10 + iVar8 + (uint)CARRY4(uVar17,uVar9) + -1 + (uint)(iVar15 != 0)" (subscript_expression "local_40[-0x3c]" identifier [ number_literal ]) = (binary_expression "iVar10 + iVar8 + (uint)CARRY4(uVar17,uVar9) + -1 + (uint)(iVar15 != 0)" (binary_expression "iVar10 + iVar8 + (uint)CARRY4(uVar17,uVar9) + -1" (binary_expression "iVar10 + iVar8 + (uint)CARRY4(uVar17,uVar9)" (binary_expression "iVar10 + iVar8" identifier + identifier) + (cast_expression "(uint)CARRY4(uVar17,uVar9)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar17,uVar9)" identifier (argument_list "(uVar17,uVar9)" ( identifier , identifier ))))) + number_literal) + (call_expression "(uint)(iVar15 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) ))))) ;) })) (if_statement "if (local_34 != 0) {\n    printf((char *)(unaff_EBP + 0x7036),sVar11 - sVar6);\n    sVar6 = param_1[1];\n    uVar17 = *local_28;\n    param_1[2] = (size_t)local_40;\n    sVar11 = ((int)((int)local_40 - sVar6) >> 2) * -0x41041041;\n    *param_1 = sVar11;\n    if (((uVar17 & 0x1080) != 0) && (sVar11 != 0)) {\n      uVar17 = 0;\n      while( true ) {\n        iVar8 = uVar17 * 0xfc;\n        uVar17 = uVar17 + 1;\n        puVar7 = (undefined4 *)(sVar6 + iVar8);\n        printf((char *)(unaff_EBP + 0x706a),*puVar7,puVar7[2],puVar7[4]);\n        if (*param_1 <= uVar17) break;\n        sVar6 = param_1[1];\n      }\n      return;\n    }\n    return;\n  }" if (parenthesized_expression "(local_34 != 0)" ( (binary_expression "local_34 != 0" identifier != number_literal) )) (compound_statement "{\n    printf((char *)(unaff_EBP + 0x7036),sVar11 - sVar6);\n    sVar6 = param_1[1];\n    uVar17 = *local_28;\n    param_1[2] = (size_t)local_40;\n    sVar11 = ((int)((int)local_40 - sVar6) >> 2) * -0x41041041;\n    *param_1 = sVar11;\n    if (((uVar17 & 0x1080) != 0) && (sVar11 != 0)) {\n      uVar17 = 0;\n      while( true ) {\n        iVar8 = uVar17 * 0xfc;\n        uVar17 = uVar17 + 1;\n        puVar7 = (undefined4 *)(sVar6 + iVar8);\n        printf((char *)(unaff_EBP + 0x706a),*puVar7,puVar7[2],puVar7[4]);\n        if (*param_1 <= uVar17) break;\n        sVar6 = param_1[1];\n      }\n      return;\n    }\n    return;\n  }" { (expression_statement "printf((char *)(unaff_EBP + 0x7036),sVar11 - sVar6);" (call_expression "printf((char *)(unaff_EBP + 0x7036),sVar11 - sVar6)" identifier (argument_list "((char *)(unaff_EBP + 0x7036),sVar11 - sVar6)" ( (cast_expression "(char *)(unaff_EBP + 0x7036)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x7036)" ( (binary_expression "unaff_EBP + 0x7036" identifier + number_literal) ))) , (binary_expression "sVar11 - sVar6" identifier - identifier) ))) ;) (expression_statement "sVar6 = param_1[1];" (assignment_expression "sVar6 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "uVar17 = *local_28;" (assignment_expression "uVar17 = *local_28" identifier = (pointer_expression "*local_28" * identifier)) ;) (expression_statement "param_1[2] = (size_t)local_40;" (assignment_expression "param_1[2] = (size_t)local_40" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (cast_expression "(size_t)local_40" ( (type_descriptor "size_t" primitive_type) ) identifier)) ;) (expression_statement "sVar11 = ((int)((int)local_40 - sVar6) >> 2) * -0x41041041;" (assignment_expression "sVar11 = ((int)((int)local_40 - sVar6) >> 2) * -0x41041041" identifier = (binary_expression "((int)((int)local_40 - sVar6) >> 2) * -0x41041041" (parenthesized_expression "((int)((int)local_40 - sVar6) >> 2)" ( (binary_expression "(int)((int)local_40 - sVar6) >> 2" (cast_expression "(int)((int)local_40 - sVar6)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)local_40 - sVar6)" ( (binary_expression "(int)local_40 - sVar6" (cast_expression "(int)local_40" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) ))) >> number_literal) )) * number_literal)) ;) (expression_statement "*param_1 = sVar11;" (assignment_expression "*param_1 = sVar11" (pointer_expression "*param_1" * identifier) = identifier) ;) (if_statement "if (((uVar17 & 0x1080) != 0) && (sVar11 != 0)) {\n      uVar17 = 0;\n      while( true ) {\n        iVar8 = uVar17 * 0xfc;\n        uVar17 = uVar17 + 1;\n        puVar7 = (undefined4 *)(sVar6 + iVar8);\n        printf((char *)(unaff_EBP + 0x706a),*puVar7,puVar7[2],puVar7[4]);\n        if (*param_1 <= uVar17) break;\n        sVar6 = param_1[1];\n      }\n      return;\n    }" if (parenthesized_expression "(((uVar17 & 0x1080) != 0) && (sVar11 != 0))" ( (binary_expression "((uVar17 & 0x1080) != 0) && (sVar11 != 0)" (parenthesized_expression "((uVar17 & 0x1080) != 0)" ( (binary_expression "(uVar17 & 0x1080) != 0" (parenthesized_expression "(uVar17 & 0x1080)" ( (binary_expression "uVar17 & 0x1080" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(sVar11 != 0)" ( (binary_expression "sVar11 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      uVar17 = 0;\n      while( true ) {\n        iVar8 = uVar17 * 0xfc;\n        uVar17 = uVar17 + 1;\n        puVar7 = (undefined4 *)(sVar6 + iVar8);\n        printf((char *)(unaff_EBP + 0x706a),*puVar7,puVar7[2],puVar7[4]);\n        if (*param_1 <= uVar17) break;\n        sVar6 = param_1[1];\n      }\n      return;\n    }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n        iVar8 = uVar17 * 0xfc;\n        uVar17 = uVar17 + 1;\n        puVar7 = (undefined4 *)(sVar6 + iVar8);\n        printf((char *)(unaff_EBP + 0x706a),*puVar7,puVar7[2],puVar7[4]);\n        if (*param_1 <= uVar17) break;\n        sVar6 = param_1[1];\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        iVar8 = uVar17 * 0xfc;\n        uVar17 = uVar17 + 1;\n        puVar7 = (undefined4 *)(sVar6 + iVar8);\n        printf((char *)(unaff_EBP + 0x706a),*puVar7,puVar7[2],puVar7[4]);\n        if (*param_1 <= uVar17) break;\n        sVar6 = param_1[1];\n      }" { (expression_statement "iVar8 = uVar17 * 0xfc;" (assignment_expression "iVar8 = uVar17 * 0xfc" identifier = (binary_expression "uVar17 * 0xfc" identifier * number_literal)) ;) (expression_statement "uVar17 = uVar17 + 1;" (assignment_expression "uVar17 = uVar17 + 1" identifier = (binary_expression "uVar17 + 1" identifier + number_literal)) ;) (expression_statement "puVar7 = (undefined4 *)(sVar6 + iVar8);" (assignment_expression "puVar7 = (undefined4 *)(sVar6 + iVar8)" identifier = (cast_expression "(undefined4 *)(sVar6 + iVar8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(sVar6 + iVar8)" ( (binary_expression "sVar6 + iVar8" identifier + identifier) )))) ;) (expression_statement "printf((char *)(unaff_EBP + 0x706a),*puVar7,puVar7[2],puVar7[4]);" (call_expression "printf((char *)(unaff_EBP + 0x706a),*puVar7,puVar7[2],puVar7[4])" identifier (argument_list "((char *)(unaff_EBP + 0x706a),*puVar7,puVar7[2],puVar7[4])" ( (cast_expression "(char *)(unaff_EBP + 0x706a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x706a)" ( (binary_expression "unaff_EBP + 0x706a" identifier + number_literal) ))) , (pointer_expression "*puVar7" * identifier) , (subscript_expression "puVar7[2]" identifier [ number_literal ]) , (subscript_expression "puVar7[4]" identifier [ number_literal ]) ))) ;) (if_statement "if (*param_1 <= uVar17) break;" if (parenthesized_expression "(*param_1 <= uVar17)" ( (binary_expression "*param_1 <= uVar17" (pointer_expression "*param_1" * identifier) <= identifier) )) (break_statement "break;" break ;)) (expression_statement "sVar6 = param_1[1];" (assignment_expression "sVar6 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) })) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })) (expression_statement "*param_1 = sVar6;" (assignment_expression "*param_1 = sVar6" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[2] = (size_t)local_40;" (assignment_expression "param_1[2] = (size_t)local_40" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (cast_expression "(size_t)local_40" ( (type_descriptor "size_t" primitive_type) ) identifier)) ;) (return_statement "return;" return ;) (labeled_statement "LAB_0001d0c0:\n  sVar6 = ((int)((int)local_40 - param_1[1]) >> 2) * -0x41041041;" statement_identifier : (expression_statement "sVar6 = ((int)((int)local_40 - param_1[1]) >> 2) * -0x41041041;" (assignment_expression "sVar6 = ((int)((int)local_40 - param_1[1]) >> 2) * -0x41041041" identifier = (binary_expression "((int)((int)local_40 - param_1[1]) >> 2) * -0x41041041" (parenthesized_expression "((int)((int)local_40 - param_1[1]) >> 2)" ( (binary_expression "(int)((int)local_40 - param_1[1]) >> 2" (cast_expression "(int)((int)local_40 - param_1[1])" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)local_40 - param_1[1])" ( (binary_expression "(int)local_40 - param_1[1]" (cast_expression "(int)local_40" ( (type_descriptor "int" primitive_type) ) identifier) - (subscript_expression "param_1[1]" identifier [ number_literal ])) ))) >> number_literal) )) * number_literal)) ;)) (goto_statement "goto LAB_0001d0d2;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) , (pointer_expression * IDENT) , LIT , (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_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 = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression LIT < IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == IDENT) && (binary_expression IDENT == IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_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 (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT ^ IDENT) )) & LIT) )) == LIT) )) (compound_statement { (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 ])) ;) (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) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT ^ IDENT) )) & LIT) )) == LIT) )) (compound_statement { (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 (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) , (subscript_expression IDENT [ LIT ]) , (binary_expression (parenthesized_expression ( (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )))) & LIT) )) + LIT) , (binary_expression (parenthesized_expression ( (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )))) & LIT) )) + LIT) , (subscript_expression IDENT [ LIT ]) , (binary_expression (parenthesized_expression ( (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )))) & LIT) )) + LIT) , (binary_expression (parenthesized_expression ( (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )))) & LIT) )) + LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) , (pointer_expression * IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) }))) (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 = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )))) & LIT) )) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )))) & LIT) )) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) , (subscript_expression IDENT [ LIT ]) , (binary_expression (parenthesized_expression ( (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )))) & LIT) )) + LIT) , IDENT , IDENT , IDENT , IDENT ))) ;)) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) , (pointer_expression * IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (for_statement for ( (assignment_expression IDENT = LIT) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) <= (binary_expression IDENT + LIT)) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (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 (parenthesized_expression ( (binary_expression IDENT - LIT) )) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT <= IDENT) && (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) < IDENT) ))) <= (binary_expression IDENT - IDENT))) )) || (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) && (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (for_statement for ( (assignment_expression IDENT = LIT) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) <= (binary_expression IDENT + LIT)) )) (goto_statement goto statement_identifier ;))) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( BOOL )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;)) (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 *)) ) (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 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 (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (binary_expression (binary_expression IDENT + IDENT) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) + LIT) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) , (binary_expression IDENT - IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * 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) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) , (pointer_expression * IDENT) , (subscript_expression IDENT [ LIT ]) , (subscript_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 (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (return_statement return ;) (labeled_statement statement_identifier : (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)) ;)) (goto_statement goto statement_identifier ;) })))
(function_definition "void FUN_0001ce90(size_t *param_1)\n\n{\n  uint *puVar1;\n  byte bVar2;\n  byte bVar3;\n  char cVar4;\n  uint uVar5;\n  size_t sVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  uint uVar9;\n  int iVar10;\n  size_t sVar11;\n  undefined4 uVar12;\n  int unaff_EBP;\n  uint *puVar13;\n  uint *puVar14;\n  int iVar15;\n  uint *puVar16;\n  uint uVar17;\n  byte bVar18;\n  uint *local_40;\n  uint local_3c;\n  uint local_38;\n  uint local_34;\n  uint local_30;\n  uint *local_28;\n  \n  bVar18 = 0;\n  FUN_0001c80d();\n  if (*param_1 == 0) {\n    return;\n  }\n  qsort((void *)param_1[1],*param_1,0xfc,(__compar_fn_t)(unaff_EBP + -0xc6));\n  local_40 = (uint *)param_1[1];\n  uVar17 = *local_40;\n  uVar9 = local_40[1];\n  local_3c = uVar17 + 1;\n  local_38 = uVar9 + (0xfffffffe < uVar17);\n  if (local_40 < (uint *)param_1[2]) {\n    puVar1 = (uint *)(unaff_EBP + 0x112c2);\n    local_30 = *puVar1;\n    puVar13 = local_40;\n    do {\n      local_34 = local_30 & 0x1080;\n      if (local_38 == uVar9 && local_3c == uVar17) {\n        bVar2 = (byte)puVar13[7];\n        bVar3 = (byte)local_40[-0x38];\n        if (((bVar2 & 2) != 0) || ((bVar3 & 2) == 0)) {\n          if (((bVar2 ^ bVar3) & 2) == 0) {\n            if (((bVar2 & 1) != 0) && ((bVar3 & 1) == 0)) {\n              if (local_34 != 0) {\n                uVar17 = local_40[-0x3b];\n                if ((bVar3 & 2) == 0) {\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar10 = 0x74;\n                iVar8 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }\n            if (((bVar2 ^ bVar3) & 1) == 0) {\n              cVar4 = *(char *)puVar13[4];\n              if (cVar4 != '_') {\n                if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;\n                if (cVar4 == '\0') goto LAB_0001d190;\n              }\n              if ((((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_'))\n              goto LAB_0001d008;\n            }\n          }\nLAB_0001d190:\n          if (local_34 != 0) {\n            printf((char *)(unaff_EBP + 0x7006),local_40[-0x3b],\n                   (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46,puVar13[4],\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46);\n            printf((char *)(unaff_EBP + 0x7191),*puVar13);\n            local_30 = *puVar1;\n            local_34 = local_30 & 0x1080;\n          }\n          goto LAB_0001cfa6;\n        }\nLAB_0001d008:\n        if (local_34 != 0) {\n          uVar12 = 0x66;\n          uVar17 = local_40[-0x3b];\n          iVar8 = (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46;\n          iVar10 = (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74;\n          if ((bVar2 & 1) != 0) {\nLAB_0001d325:\n            uVar12 = 0x46;\n          }\nLAB_0001d049:\n          printf((char *)(unaff_EBP + 0x7006),puVar13[4],\n                 (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,uVar17,iVar10,iVar8);\n          printf((char *)(unaff_EBP + 0x7191),*puVar13);\n          local_30 = *puVar1;\n          local_34 = local_30 & 0x1080;\n        }\nLAB_0001d094:\n        puVar14 = puVar13;\n        puVar16 = local_40 + -0x3f;\n        for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n          *puVar16 = *puVar14;\n          puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }\n      else {\n        if (((uint *)param_1[1] < local_40) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0)) {\n          local_40[-0x3d] = uVar17 - 1;\n          local_40[-0x3c] = (uVar9 - 1) + (uint)(uVar17 != 0);\n        }\n        uVar5 = puVar13[3];\n        if ((uVar9 <= uVar5 && (uint)(puVar13[2] < uVar17) <= uVar5 - uVar9) ||\n           (puVar13[2] == 0 && uVar5 == 0)) {\n          puVar14 = puVar13;\n          puVar16 = local_40;\n          for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n            *puVar16 = *puVar14;\n            puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          local_3c = *puVar13;\n          local_38 = puVar13[1];\n          local_40 = local_40 + 0x3f;\n        }\nLAB_0001cfa6:\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }\n      uVar17 = puVar13[0x3f];\n      uVar9 = puVar13[0x40];\n      puVar13 = puVar13 + 0x3f;\n    } while( true );\n  }\n  local_34 = *(uint *)(unaff_EBP + 0x112c2) & 0x1080;\n  sVar6 = 0;\nLAB_0001d0d2:\n  local_28 = (uint *)(unaff_EBP + 0x112c2);\n  sVar11 = *param_1;\n  if ((sVar11 != 0) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0)) {\n    iVar8 = *(int *)(unaff_EBP + 0x11666);\n    uVar17 = *(uint *)(iVar8 + 0x2c);\n    uVar9 = *(uint *)(iVar8 + 0x1c);\n    iVar15 = uVar17 + *(uint *)(iVar8 + 0x1c);\n    iVar10 = *(int *)(iVar8 + 0x30);\n    iVar8 = *(int *)(iVar8 + 0x20);\n    local_40[-0x3d] = iVar15 - 1;\n    local_40[-0x3c] = iVar10 + iVar8 + (uint)CARRY4(uVar17,uVar9) + -1 + (uint)(iVar15 != 0);\n  }\n  if (local_34 != 0) {\n    printf((char *)(unaff_EBP + 0x7036),sVar11 - sVar6);\n    sVar6 = param_1[1];\n    uVar17 = *local_28;\n    param_1[2] = (size_t)local_40;\n    sVar11 = ((int)((int)local_40 - sVar6) >> 2) * -0x41041041;\n    *param_1 = sVar11;\n    if (((uVar17 & 0x1080) != 0) && (sVar11 != 0)) {\n      uVar17 = 0;\n      while( true ) {\n        iVar8 = uVar17 * 0xfc;\n        uVar17 = uVar17 + 1;\n        puVar7 = (undefined4 *)(sVar6 + iVar8);\n        printf((char *)(unaff_EBP + 0x706a),*puVar7,puVar7[2],puVar7[4]);\n        if (*param_1 <= uVar17) break;\n        sVar6 = param_1[1];\n      }\n      return;\n    }\n    return;\n  }\n  *param_1 = sVar6;\n  param_1[2] = (size_t)local_40;\n  return;\nLAB_0001d0c0:\n  sVar6 = ((int)((int)local_40 - param_1[1]) >> 2) * -0x41041041;\n  goto LAB_0001d0d2;\n}" (primitive_type "void") (function_declarator "FUN_0001ce90(size_t *param_1)" (identifier "FUN_0001ce90") (parameter_list "(size_t *param_1)" (( "(") (parameter_declaration "size_t *param_1" (primitive_type "size_t") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  uint *puVar1;\n  byte bVar2;\n  byte bVar3;\n  char cVar4;\n  uint uVar5;\n  size_t sVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  uint uVar9;\n  int iVar10;\n  size_t sVar11;\n  undefined4 uVar12;\n  int unaff_EBP;\n  uint *puVar13;\n  uint *puVar14;\n  int iVar15;\n  uint *puVar16;\n  uint uVar17;\n  byte bVar18;\n  uint *local_40;\n  uint local_3c;\n  uint local_38;\n  uint local_34;\n  uint local_30;\n  uint *local_28;\n  \n  bVar18 = 0;\n  FUN_0001c80d();\n  if (*param_1 == 0) {\n    return;\n  }\n  qsort((void *)param_1[1],*param_1,0xfc,(__compar_fn_t)(unaff_EBP + -0xc6));\n  local_40 = (uint *)param_1[1];\n  uVar17 = *local_40;\n  uVar9 = local_40[1];\n  local_3c = uVar17 + 1;\n  local_38 = uVar9 + (0xfffffffe < uVar17);\n  if (local_40 < (uint *)param_1[2]) {\n    puVar1 = (uint *)(unaff_EBP + 0x112c2);\n    local_30 = *puVar1;\n    puVar13 = local_40;\n    do {\n      local_34 = local_30 & 0x1080;\n      if (local_38 == uVar9 && local_3c == uVar17) {\n        bVar2 = (byte)puVar13[7];\n        bVar3 = (byte)local_40[-0x38];\n        if (((bVar2 & 2) != 0) || ((bVar3 & 2) == 0)) {\n          if (((bVar2 ^ bVar3) & 2) == 0) {\n            if (((bVar2 & 1) != 0) && ((bVar3 & 1) == 0)) {\n              if (local_34 != 0) {\n                uVar17 = local_40[-0x3b];\n                if ((bVar3 & 2) == 0) {\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar10 = 0x74;\n                iVar8 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }\n            if (((bVar2 ^ bVar3) & 1) == 0) {\n              cVar4 = *(char *)puVar13[4];\n              if (cVar4 != '_') {\n                if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;\n                if (cVar4 == '\0') goto LAB_0001d190;\n              }\n              if ((((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_'))\n              goto LAB_0001d008;\n            }\n          }\nLAB_0001d190:\n          if (local_34 != 0) {\n            printf((char *)(unaff_EBP + 0x7006),local_40[-0x3b],\n                   (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46,puVar13[4],\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46);\n            printf((char *)(unaff_EBP + 0x7191),*puVar13);\n            local_30 = *puVar1;\n            local_34 = local_30 & 0x1080;\n          }\n          goto LAB_0001cfa6;\n        }\nLAB_0001d008:\n        if (local_34 != 0) {\n          uVar12 = 0x66;\n          uVar17 = local_40[-0x3b];\n          iVar8 = (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46;\n          iVar10 = (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74;\n          if ((bVar2 & 1) != 0) {\nLAB_0001d325:\n            uVar12 = 0x46;\n          }\nLAB_0001d049:\n          printf((char *)(unaff_EBP + 0x7006),puVar13[4],\n                 (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,uVar17,iVar10,iVar8);\n          printf((char *)(unaff_EBP + 0x7191),*puVar13);\n          local_30 = *puVar1;\n          local_34 = local_30 & 0x1080;\n        }\nLAB_0001d094:\n        puVar14 = puVar13;\n        puVar16 = local_40 + -0x3f;\n        for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n          *puVar16 = *puVar14;\n          puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }\n      else {\n        if (((uint *)param_1[1] < local_40) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0)) {\n          local_40[-0x3d] = uVar17 - 1;\n          local_40[-0x3c] = (uVar9 - 1) + (uint)(uVar17 != 0);\n        }\n        uVar5 = puVar13[3];\n        if ((uVar9 <= uVar5 && (uint)(puVar13[2] < uVar17) <= uVar5 - uVar9) ||\n           (puVar13[2] == 0 && uVar5 == 0)) {\n          puVar14 = puVar13;\n          puVar16 = local_40;\n          for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n            *puVar16 = *puVar14;\n            puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          local_3c = *puVar13;\n          local_38 = puVar13[1];\n          local_40 = local_40 + 0x3f;\n        }\nLAB_0001cfa6:\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }\n      uVar17 = puVar13[0x3f];\n      uVar9 = puVar13[0x40];\n      puVar13 = puVar13 + 0x3f;\n    } while( true );\n  }\n  local_34 = *(uint *)(unaff_EBP + 0x112c2) & 0x1080;\n  sVar6 = 0;\nLAB_0001d0d2:\n  local_28 = (uint *)(unaff_EBP + 0x112c2);\n  sVar11 = *param_1;\n  if ((sVar11 != 0) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0)) {\n    iVar8 = *(int *)(unaff_EBP + 0x11666);\n    uVar17 = *(uint *)(iVar8 + 0x2c);\n    uVar9 = *(uint *)(iVar8 + 0x1c);\n    iVar15 = uVar17 + *(uint *)(iVar8 + 0x1c);\n    iVar10 = *(int *)(iVar8 + 0x30);\n    iVar8 = *(int *)(iVar8 + 0x20);\n    local_40[-0x3d] = iVar15 - 1;\n    local_40[-0x3c] = iVar10 + iVar8 + (uint)CARRY4(uVar17,uVar9) + -1 + (uint)(iVar15 != 0);\n  }\n  if (local_34 != 0) {\n    printf((char *)(unaff_EBP + 0x7036),sVar11 - sVar6);\n    sVar6 = param_1[1];\n    uVar17 = *local_28;\n    param_1[2] = (size_t)local_40;\n    sVar11 = ((int)((int)local_40 - sVar6) >> 2) * -0x41041041;\n    *param_1 = sVar11;\n    if (((uVar17 & 0x1080) != 0) && (sVar11 != 0)) {\n      uVar17 = 0;\n      while( true ) {\n        iVar8 = uVar17 * 0xfc;\n        uVar17 = uVar17 + 1;\n        puVar7 = (undefined4 *)(sVar6 + iVar8);\n        printf((char *)(unaff_EBP + 0x706a),*puVar7,puVar7[2],puVar7[4]);\n        if (*param_1 <= uVar17) break;\n        sVar6 = param_1[1];\n      }\n      return;\n    }\n    return;\n  }\n  *param_1 = sVar6;\n  param_1[2] = (size_t)local_40;\n  return;\nLAB_0001d0c0:\n  sVar6 = ((int)((int)local_40 - param_1[1]) >> 2) * -0x41041041;\n  goto LAB_0001d0d2;\n}" ({ "{") (declaration "uint *puVar1;" (type_identifier "uint") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "byte bVar2;" (type_identifier "byte") (identifier "bVar2") (; ";")) (declaration "byte bVar3;" (type_identifier "byte") (identifier "bVar3") (; ";")) (declaration "char cVar4;" (primitive_type "char") (identifier "cVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "size_t sVar6;" (primitive_type "size_t") (identifier "sVar6") (; ";")) (declaration "undefined4 *puVar7;" (type_identifier "undefined4") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "size_t sVar11;" (primitive_type "size_t") (identifier "sVar11") (; ";")) (declaration "undefined4 uVar12;" (type_identifier "undefined4") (identifier "uVar12") (; ";")) (declaration "int unaff_EBP;" (primitive_type "int") (identifier "unaff_EBP") (; ";")) (declaration "uint *puVar13;" (type_identifier "uint") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "uint *puVar14;" (type_identifier "uint") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "int iVar15;" (primitive_type "int") (identifier "iVar15") (; ";")) (declaration "uint *puVar16;" (type_identifier "uint") (pointer_declarator "*puVar16" (* "*") (identifier "puVar16")) (; ";")) (declaration "uint uVar17;" (type_identifier "uint") (identifier "uVar17") (; ";")) (declaration "byte bVar18;" (type_identifier "byte") (identifier "bVar18") (; ";")) (declaration "uint *local_40;" (type_identifier "uint") (pointer_declarator "*local_40" (* "*") (identifier "local_40")) (; ";")) (declaration "uint local_3c;" (type_identifier "uint") (identifier "local_3c") (; ";")) (declaration "uint local_38;" (type_identifier "uint") (identifier "local_38") (; ";")) (declaration "uint local_34;" (type_identifier "uint") (identifier "local_34") (; ";")) (declaration "uint local_30;" (type_identifier "uint") (identifier "local_30") (; ";")) (declaration "uint *local_28;" (type_identifier "uint") (pointer_declarator "*local_28" (* "*") (identifier "local_28")) (; ";")) (expression_statement "bVar18 = 0;" (assignment_expression "bVar18 = 0" (identifier "bVar18") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_0001c80d();" (call_expression "FUN_0001c80d()" (identifier "FUN_0001c80d") (argument_list "()" (( "(") () ")"))) (; ";")) (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 "qsort((void *)param_1[1],*param_1,0xfc,(__compar_fn_t)(unaff_EBP + -0xc6));" (call_expression "qsort((void *)param_1[1],*param_1,0xfc,(__compar_fn_t)(unaff_EBP + -0xc6))" (identifier "qsort") (argument_list "((void *)param_1[1],*param_1,0xfc,(__compar_fn_t)(unaff_EBP + -0xc6))" (( "(") (cast_expression "(void *)param_1[1]" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (, ",") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (number_literal "0xfc") (, ",") (call_expression "(__compar_fn_t)(unaff_EBP + -0xc6)" (parenthesized_expression "(__compar_fn_t)" (( "(") (identifier "__compar_fn_t") () ")")) (argument_list "(unaff_EBP + -0xc6)" (( "(") (binary_expression "unaff_EBP + -0xc6" (identifier "unaff_EBP") (+ "+") (number_literal "-0xc6")) () ")"))) () ")"))) (; ";")) (expression_statement "local_40 = (uint *)param_1[1];" (assignment_expression "local_40 = (uint *)param_1[1]" (identifier "local_40") (= "=") (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 "uVar17 = *local_40;" (assignment_expression "uVar17 = *local_40" (identifier "uVar17") (= "=") (pointer_expression "*local_40" (* "*") (identifier "local_40"))) (; ";")) (expression_statement "uVar9 = local_40[1];" (assignment_expression "uVar9 = local_40[1]" (identifier "uVar9") (= "=") (subscript_expression "local_40[1]" (identifier "local_40") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_3c = uVar17 + 1;" (assignment_expression "local_3c = uVar17 + 1" (identifier "local_3c") (= "=") (binary_expression "uVar17 + 1" (identifier "uVar17") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_38 = uVar9 + (0xfffffffe < uVar17);" (assignment_expression "local_38 = uVar9 + (0xfffffffe < uVar17)" (identifier "local_38") (= "=") (binary_expression "uVar9 + (0xfffffffe < uVar17)" (identifier "uVar9") (+ "+") (parenthesized_expression "(0xfffffffe < uVar17)" (( "(") (binary_expression "0xfffffffe < uVar17" (number_literal "0xfffffffe") (< "<") (identifier "uVar17")) () ")")))) (; ";")) (if_statement "if (local_40 < (uint *)param_1[2]) {\n    puVar1 = (uint *)(unaff_EBP + 0x112c2);\n    local_30 = *puVar1;\n    puVar13 = local_40;\n    do {\n      local_34 = local_30 & 0x1080;\n      if (local_38 == uVar9 && local_3c == uVar17) {\n        bVar2 = (byte)puVar13[7];\n        bVar3 = (byte)local_40[-0x38];\n        if (((bVar2 & 2) != 0) || ((bVar3 & 2) == 0)) {\n          if (((bVar2 ^ bVar3) & 2) == 0) {\n            if (((bVar2 & 1) != 0) && ((bVar3 & 1) == 0)) {\n              if (local_34 != 0) {\n                uVar17 = local_40[-0x3b];\n                if ((bVar3 & 2) == 0) {\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar10 = 0x74;\n                iVar8 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }\n            if (((bVar2 ^ bVar3) & 1) == 0) {\n              cVar4 = *(char *)puVar13[4];\n              if (cVar4 != '_') {\n                if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;\n                if (cVar4 == '\0') goto LAB_0001d190;\n              }\n              if ((((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_'))\n              goto LAB_0001d008;\n            }\n          }\nLAB_0001d190:\n          if (local_34 != 0) {\n            printf((char *)(unaff_EBP + 0x7006),local_40[-0x3b],\n                   (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46,puVar13[4],\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46);\n            printf((char *)(unaff_EBP + 0x7191),*puVar13);\n            local_30 = *puVar1;\n            local_34 = local_30 & 0x1080;\n          }\n          goto LAB_0001cfa6;\n        }\nLAB_0001d008:\n        if (local_34 != 0) {\n          uVar12 = 0x66;\n          uVar17 = local_40[-0x3b];\n          iVar8 = (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46;\n          iVar10 = (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74;\n          if ((bVar2 & 1) != 0) {\nLAB_0001d325:\n            uVar12 = 0x46;\n          }\nLAB_0001d049:\n          printf((char *)(unaff_EBP + 0x7006),puVar13[4],\n                 (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,uVar17,iVar10,iVar8);\n          printf((char *)(unaff_EBP + 0x7191),*puVar13);\n          local_30 = *puVar1;\n          local_34 = local_30 & 0x1080;\n        }\nLAB_0001d094:\n        puVar14 = puVar13;\n        puVar16 = local_40 + -0x3f;\n        for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n          *puVar16 = *puVar14;\n          puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }\n      else {\n        if (((uint *)param_1[1] < local_40) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0)) {\n          local_40[-0x3d] = uVar17 - 1;\n          local_40[-0x3c] = (uVar9 - 1) + (uint)(uVar17 != 0);\n        }\n        uVar5 = puVar13[3];\n        if ((uVar9 <= uVar5 && (uint)(puVar13[2] < uVar17) <= uVar5 - uVar9) ||\n           (puVar13[2] == 0 && uVar5 == 0)) {\n          puVar14 = puVar13;\n          puVar16 = local_40;\n          for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n            *puVar16 = *puVar14;\n            puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          local_3c = *puVar13;\n          local_38 = puVar13[1];\n          local_40 = local_40 + 0x3f;\n        }\nLAB_0001cfa6:\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }\n      uVar17 = puVar13[0x3f];\n      uVar9 = puVar13[0x40];\n      puVar13 = puVar13 + 0x3f;\n    } while( true );\n  }" (if "if") (parenthesized_expression "(local_40 < (uint *)param_1[2])" (( "(") (binary_expression "local_40 < (uint *)param_1[2]" (identifier "local_40") (< "<") (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") (] "]")))) () ")")) (compound_statement "{\n    puVar1 = (uint *)(unaff_EBP + 0x112c2);\n    local_30 = *puVar1;\n    puVar13 = local_40;\n    do {\n      local_34 = local_30 & 0x1080;\n      if (local_38 == uVar9 && local_3c == uVar17) {\n        bVar2 = (byte)puVar13[7];\n        bVar3 = (byte)local_40[-0x38];\n        if (((bVar2 & 2) != 0) || ((bVar3 & 2) == 0)) {\n          if (((bVar2 ^ bVar3) & 2) == 0) {\n            if (((bVar2 & 1) != 0) && ((bVar3 & 1) == 0)) {\n              if (local_34 != 0) {\n                uVar17 = local_40[-0x3b];\n                if ((bVar3 & 2) == 0) {\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar10 = 0x74;\n                iVar8 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }\n            if (((bVar2 ^ bVar3) & 1) == 0) {\n              cVar4 = *(char *)puVar13[4];\n              if (cVar4 != '_') {\n                if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;\n                if (cVar4 == '\0') goto LAB_0001d190;\n              }\n              if ((((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_'))\n              goto LAB_0001d008;\n            }\n          }\nLAB_0001d190:\n          if (local_34 != 0) {\n            printf((char *)(unaff_EBP + 0x7006),local_40[-0x3b],\n                   (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46,puVar13[4],\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46);\n            printf((char *)(unaff_EBP + 0x7191),*puVar13);\n            local_30 = *puVar1;\n            local_34 = local_30 & 0x1080;\n          }\n          goto LAB_0001cfa6;\n        }\nLAB_0001d008:\n        if (local_34 != 0) {\n          uVar12 = 0x66;\n          uVar17 = local_40[-0x3b];\n          iVar8 = (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46;\n          iVar10 = (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74;\n          if ((bVar2 & 1) != 0) {\nLAB_0001d325:\n            uVar12 = 0x46;\n          }\nLAB_0001d049:\n          printf((char *)(unaff_EBP + 0x7006),puVar13[4],\n                 (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,uVar17,iVar10,iVar8);\n          printf((char *)(unaff_EBP + 0x7191),*puVar13);\n          local_30 = *puVar1;\n          local_34 = local_30 & 0x1080;\n        }\nLAB_0001d094:\n        puVar14 = puVar13;\n        puVar16 = local_40 + -0x3f;\n        for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n          *puVar16 = *puVar14;\n          puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }\n      else {\n        if (((uint *)param_1[1] < local_40) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0)) {\n          local_40[-0x3d] = uVar17 - 1;\n          local_40[-0x3c] = (uVar9 - 1) + (uint)(uVar17 != 0);\n        }\n        uVar5 = puVar13[3];\n        if ((uVar9 <= uVar5 && (uint)(puVar13[2] < uVar17) <= uVar5 - uVar9) ||\n           (puVar13[2] == 0 && uVar5 == 0)) {\n          puVar14 = puVar13;\n          puVar16 = local_40;\n          for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n            *puVar16 = *puVar14;\n            puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          local_3c = *puVar13;\n          local_38 = puVar13[1];\n          local_40 = local_40 + 0x3f;\n        }\nLAB_0001cfa6:\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }\n      uVar17 = puVar13[0x3f];\n      uVar9 = puVar13[0x40];\n      puVar13 = puVar13 + 0x3f;\n    } while( true );\n  }" ({ "{") (expression_statement "puVar1 = (uint *)(unaff_EBP + 0x112c2);" (assignment_expression "puVar1 = (uint *)(unaff_EBP + 0x112c2)" (identifier "puVar1") (= "=") (cast_expression "(uint *)(unaff_EBP + 0x112c2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x112c2)" (( "(") (binary_expression "unaff_EBP + 0x112c2" (identifier "unaff_EBP") (+ "+") (number_literal "0x112c2")) () ")")))) (; ";")) (expression_statement "local_30 = *puVar1;" (assignment_expression "local_30 = *puVar1" (identifier "local_30") (= "=") (pointer_expression "*puVar1" (* "*") (identifier "puVar1"))) (; ";")) (expression_statement "puVar13 = local_40;" (assignment_expression "puVar13 = local_40" (identifier "puVar13") (= "=") (identifier "local_40")) (; ";")) (do_statement "do {\n      local_34 = local_30 & 0x1080;\n      if (local_38 == uVar9 && local_3c == uVar17) {\n        bVar2 = (byte)puVar13[7];\n        bVar3 = (byte)local_40[-0x38];\n        if (((bVar2 & 2) != 0) || ((bVar3 & 2) == 0)) {\n          if (((bVar2 ^ bVar3) & 2) == 0) {\n            if (((bVar2 & 1) != 0) && ((bVar3 & 1) == 0)) {\n              if (local_34 != 0) {\n                uVar17 = local_40[-0x3b];\n                if ((bVar3 & 2) == 0) {\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar10 = 0x74;\n                iVar8 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }\n            if (((bVar2 ^ bVar3) & 1) == 0) {\n              cVar4 = *(char *)puVar13[4];\n              if (cVar4 != '_') {\n                if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;\n                if (cVar4 == '\0') goto LAB_0001d190;\n              }\n              if ((((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_'))\n              goto LAB_0001d008;\n            }\n          }\nLAB_0001d190:\n          if (local_34 != 0) {\n            printf((char *)(unaff_EBP + 0x7006),local_40[-0x3b],\n                   (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46,puVar13[4],\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46);\n            printf((char *)(unaff_EBP + 0x7191),*puVar13);\n            local_30 = *puVar1;\n            local_34 = local_30 & 0x1080;\n          }\n          goto LAB_0001cfa6;\n        }\nLAB_0001d008:\n        if (local_34 != 0) {\n          uVar12 = 0x66;\n          uVar17 = local_40[-0x3b];\n          iVar8 = (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46;\n          iVar10 = (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74;\n          if ((bVar2 & 1) != 0) {\nLAB_0001d325:\n            uVar12 = 0x46;\n          }\nLAB_0001d049:\n          printf((char *)(unaff_EBP + 0x7006),puVar13[4],\n                 (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,uVar17,iVar10,iVar8);\n          printf((char *)(unaff_EBP + 0x7191),*puVar13);\n          local_30 = *puVar1;\n          local_34 = local_30 & 0x1080;\n        }\nLAB_0001d094:\n        puVar14 = puVar13;\n        puVar16 = local_40 + -0x3f;\n        for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n          *puVar16 = *puVar14;\n          puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }\n      else {\n        if (((uint *)param_1[1] < local_40) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0)) {\n          local_40[-0x3d] = uVar17 - 1;\n          local_40[-0x3c] = (uVar9 - 1) + (uint)(uVar17 != 0);\n        }\n        uVar5 = puVar13[3];\n        if ((uVar9 <= uVar5 && (uint)(puVar13[2] < uVar17) <= uVar5 - uVar9) ||\n           (puVar13[2] == 0 && uVar5 == 0)) {\n          puVar14 = puVar13;\n          puVar16 = local_40;\n          for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n            *puVar16 = *puVar14;\n            puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          local_3c = *puVar13;\n          local_38 = puVar13[1];\n          local_40 = local_40 + 0x3f;\n        }\nLAB_0001cfa6:\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }\n      uVar17 = puVar13[0x3f];\n      uVar9 = puVar13[0x40];\n      puVar13 = puVar13 + 0x3f;\n    } while( true );" (do "do") (compound_statement "{\n      local_34 = local_30 & 0x1080;\n      if (local_38 == uVar9 && local_3c == uVar17) {\n        bVar2 = (byte)puVar13[7];\n        bVar3 = (byte)local_40[-0x38];\n        if (((bVar2 & 2) != 0) || ((bVar3 & 2) == 0)) {\n          if (((bVar2 ^ bVar3) & 2) == 0) {\n            if (((bVar2 & 1) != 0) && ((bVar3 & 1) == 0)) {\n              if (local_34 != 0) {\n                uVar17 = local_40[-0x3b];\n                if ((bVar3 & 2) == 0) {\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar10 = 0x74;\n                iVar8 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }\n            if (((bVar2 ^ bVar3) & 1) == 0) {\n              cVar4 = *(char *)puVar13[4];\n              if (cVar4 != '_') {\n                if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;\n                if (cVar4 == '\0') goto LAB_0001d190;\n              }\n              if ((((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_'))\n              goto LAB_0001d008;\n            }\n          }\nLAB_0001d190:\n          if (local_34 != 0) {\n            printf((char *)(unaff_EBP + 0x7006),local_40[-0x3b],\n                   (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46,puVar13[4],\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46);\n            printf((char *)(unaff_EBP + 0x7191),*puVar13);\n            local_30 = *puVar1;\n            local_34 = local_30 & 0x1080;\n          }\n          goto LAB_0001cfa6;\n        }\nLAB_0001d008:\n        if (local_34 != 0) {\n          uVar12 = 0x66;\n          uVar17 = local_40[-0x3b];\n          iVar8 = (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46;\n          iVar10 = (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74;\n          if ((bVar2 & 1) != 0) {\nLAB_0001d325:\n            uVar12 = 0x46;\n          }\nLAB_0001d049:\n          printf((char *)(unaff_EBP + 0x7006),puVar13[4],\n                 (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,uVar17,iVar10,iVar8);\n          printf((char *)(unaff_EBP + 0x7191),*puVar13);\n          local_30 = *puVar1;\n          local_34 = local_30 & 0x1080;\n        }\nLAB_0001d094:\n        puVar14 = puVar13;\n        puVar16 = local_40 + -0x3f;\n        for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n          *puVar16 = *puVar14;\n          puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }\n      else {\n        if (((uint *)param_1[1] < local_40) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0)) {\n          local_40[-0x3d] = uVar17 - 1;\n          local_40[-0x3c] = (uVar9 - 1) + (uint)(uVar17 != 0);\n        }\n        uVar5 = puVar13[3];\n        if ((uVar9 <= uVar5 && (uint)(puVar13[2] < uVar17) <= uVar5 - uVar9) ||\n           (puVar13[2] == 0 && uVar5 == 0)) {\n          puVar14 = puVar13;\n          puVar16 = local_40;\n          for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n            *puVar16 = *puVar14;\n            puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          local_3c = *puVar13;\n          local_38 = puVar13[1];\n          local_40 = local_40 + 0x3f;\n        }\nLAB_0001cfa6:\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }\n      uVar17 = puVar13[0x3f];\n      uVar9 = puVar13[0x40];\n      puVar13 = puVar13 + 0x3f;\n    }" ({ "{") (expression_statement "local_34 = local_30 & 0x1080;" (assignment_expression "local_34 = local_30 & 0x1080" (identifier "local_34") (= "=") (binary_expression "local_30 & 0x1080" (identifier "local_30") (& "&") (number_literal "0x1080"))) (; ";")) (if_statement "if (local_38 == uVar9 && local_3c == uVar17) {\n        bVar2 = (byte)puVar13[7];\n        bVar3 = (byte)local_40[-0x38];\n        if (((bVar2 & 2) != 0) || ((bVar3 & 2) == 0)) {\n          if (((bVar2 ^ bVar3) & 2) == 0) {\n            if (((bVar2 & 1) != 0) && ((bVar3 & 1) == 0)) {\n              if (local_34 != 0) {\n                uVar17 = local_40[-0x3b];\n                if ((bVar3 & 2) == 0) {\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar10 = 0x74;\n                iVar8 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }\n            if (((bVar2 ^ bVar3) & 1) == 0) {\n              cVar4 = *(char *)puVar13[4];\n              if (cVar4 != '_') {\n                if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;\n                if (cVar4 == '\0') goto LAB_0001d190;\n              }\n              if ((((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_'))\n              goto LAB_0001d008;\n            }\n          }\nLAB_0001d190:\n          if (local_34 != 0) {\n            printf((char *)(unaff_EBP + 0x7006),local_40[-0x3b],\n                   (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46,puVar13[4],\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46);\n            printf((char *)(unaff_EBP + 0x7191),*puVar13);\n            local_30 = *puVar1;\n            local_34 = local_30 & 0x1080;\n          }\n          goto LAB_0001cfa6;\n        }\nLAB_0001d008:\n        if (local_34 != 0) {\n          uVar12 = 0x66;\n          uVar17 = local_40[-0x3b];\n          iVar8 = (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46;\n          iVar10 = (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74;\n          if ((bVar2 & 1) != 0) {\nLAB_0001d325:\n            uVar12 = 0x46;\n          }\nLAB_0001d049:\n          printf((char *)(unaff_EBP + 0x7006),puVar13[4],\n                 (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,uVar17,iVar10,iVar8);\n          printf((char *)(unaff_EBP + 0x7191),*puVar13);\n          local_30 = *puVar1;\n          local_34 = local_30 & 0x1080;\n        }\nLAB_0001d094:\n        puVar14 = puVar13;\n        puVar16 = local_40 + -0x3f;\n        for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n          *puVar16 = *puVar14;\n          puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }\n      else {\n        if (((uint *)param_1[1] < local_40) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0)) {\n          local_40[-0x3d] = uVar17 - 1;\n          local_40[-0x3c] = (uVar9 - 1) + (uint)(uVar17 != 0);\n        }\n        uVar5 = puVar13[3];\n        if ((uVar9 <= uVar5 && (uint)(puVar13[2] < uVar17) <= uVar5 - uVar9) ||\n           (puVar13[2] == 0 && uVar5 == 0)) {\n          puVar14 = puVar13;\n          puVar16 = local_40;\n          for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n            *puVar16 = *puVar14;\n            puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          local_3c = *puVar13;\n          local_38 = puVar13[1];\n          local_40 = local_40 + 0x3f;\n        }\nLAB_0001cfa6:\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }" (if "if") (parenthesized_expression "(local_38 == uVar9 && local_3c == uVar17)" (( "(") (binary_expression "local_38 == uVar9 && local_3c == uVar17" (binary_expression "local_38 == uVar9" (identifier "local_38") (== "==") (identifier "uVar9")) (&& "&&") (binary_expression "local_3c == uVar17" (identifier "local_3c") (== "==") (identifier "uVar17"))) () ")")) (compound_statement "{\n        bVar2 = (byte)puVar13[7];\n        bVar3 = (byte)local_40[-0x38];\n        if (((bVar2 & 2) != 0) || ((bVar3 & 2) == 0)) {\n          if (((bVar2 ^ bVar3) & 2) == 0) {\n            if (((bVar2 & 1) != 0) && ((bVar3 & 1) == 0)) {\n              if (local_34 != 0) {\n                uVar17 = local_40[-0x3b];\n                if ((bVar3 & 2) == 0) {\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar10 = 0x74;\n                iVar8 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }\n            if (((bVar2 ^ bVar3) & 1) == 0) {\n              cVar4 = *(char *)puVar13[4];\n              if (cVar4 != '_') {\n                if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;\n                if (cVar4 == '\0') goto LAB_0001d190;\n              }\n              if ((((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_'))\n              goto LAB_0001d008;\n            }\n          }\nLAB_0001d190:\n          if (local_34 != 0) {\n            printf((char *)(unaff_EBP + 0x7006),local_40[-0x3b],\n                   (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46,puVar13[4],\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46);\n            printf((char *)(unaff_EBP + 0x7191),*puVar13);\n            local_30 = *puVar1;\n            local_34 = local_30 & 0x1080;\n          }\n          goto LAB_0001cfa6;\n        }\nLAB_0001d008:\n        if (local_34 != 0) {\n          uVar12 = 0x66;\n          uVar17 = local_40[-0x3b];\n          iVar8 = (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46;\n          iVar10 = (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74;\n          if ((bVar2 & 1) != 0) {\nLAB_0001d325:\n            uVar12 = 0x46;\n          }\nLAB_0001d049:\n          printf((char *)(unaff_EBP + 0x7006),puVar13[4],\n                 (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,uVar17,iVar10,iVar8);\n          printf((char *)(unaff_EBP + 0x7191),*puVar13);\n          local_30 = *puVar1;\n          local_34 = local_30 & 0x1080;\n        }\nLAB_0001d094:\n        puVar14 = puVar13;\n        puVar16 = local_40 + -0x3f;\n        for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n          *puVar16 = *puVar14;\n          puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }" ({ "{") (expression_statement "bVar2 = (byte)puVar13[7];" (assignment_expression "bVar2 = (byte)puVar13[7]" (identifier "bVar2") (= "=") (cast_expression "(byte)puVar13[7]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "puVar13[7]" (identifier "puVar13") ([ "[") (number_literal "7") (] "]")))) (; ";")) (expression_statement "bVar3 = (byte)local_40[-0x38];" (assignment_expression "bVar3 = (byte)local_40[-0x38]" (identifier "bVar3") (= "=") (cast_expression "(byte)local_40[-0x38]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "local_40[-0x38]" (identifier "local_40") ([ "[") (number_literal "-0x38") (] "]")))) (; ";")) (if_statement "if (((bVar2 & 2) != 0) || ((bVar3 & 2) == 0)) {\n          if (((bVar2 ^ bVar3) & 2) == 0) {\n            if (((bVar2 & 1) != 0) && ((bVar3 & 1) == 0)) {\n              if (local_34 != 0) {\n                uVar17 = local_40[-0x3b];\n                if ((bVar3 & 2) == 0) {\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar10 = 0x74;\n                iVar8 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }\n            if (((bVar2 ^ bVar3) & 1) == 0) {\n              cVar4 = *(char *)puVar13[4];\n              if (cVar4 != '_') {\n                if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;\n                if (cVar4 == '\0') goto LAB_0001d190;\n              }\n              if ((((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_'))\n              goto LAB_0001d008;\n            }\n          }\nLAB_0001d190:\n          if (local_34 != 0) {\n            printf((char *)(unaff_EBP + 0x7006),local_40[-0x3b],\n                   (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46,puVar13[4],\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46);\n            printf((char *)(unaff_EBP + 0x7191),*puVar13);\n            local_30 = *puVar1;\n            local_34 = local_30 & 0x1080;\n          }\n          goto LAB_0001cfa6;\n        }" (if "if") (parenthesized_expression "(((bVar2 & 2) != 0) || ((bVar3 & 2) == 0))" (( "(") (binary_expression "((bVar2 & 2) != 0) || ((bVar3 & 2) == 0)" (parenthesized_expression "((bVar2 & 2) != 0)" (( "(") (binary_expression "(bVar2 & 2) != 0" (parenthesized_expression "(bVar2 & 2)" (( "(") (binary_expression "bVar2 & 2" (identifier "bVar2") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((bVar3 & 2) == 0)" (( "(") (binary_expression "(bVar3 & 2) == 0" (parenthesized_expression "(bVar3 & 2)" (( "(") (binary_expression "bVar3 & 2" (identifier "bVar3") (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          if (((bVar2 ^ bVar3) & 2) == 0) {\n            if (((bVar2 & 1) != 0) && ((bVar3 & 1) == 0)) {\n              if (local_34 != 0) {\n                uVar17 = local_40[-0x3b];\n                if ((bVar3 & 2) == 0) {\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar10 = 0x74;\n                iVar8 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }\n            if (((bVar2 ^ bVar3) & 1) == 0) {\n              cVar4 = *(char *)puVar13[4];\n              if (cVar4 != '_') {\n                if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;\n                if (cVar4 == '\0') goto LAB_0001d190;\n              }\n              if ((((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_'))\n              goto LAB_0001d008;\n            }\n          }\nLAB_0001d190:\n          if (local_34 != 0) {\n            printf((char *)(unaff_EBP + 0x7006),local_40[-0x3b],\n                   (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46,puVar13[4],\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46);\n            printf((char *)(unaff_EBP + 0x7191),*puVar13);\n            local_30 = *puVar1;\n            local_34 = local_30 & 0x1080;\n          }\n          goto LAB_0001cfa6;\n        }" ({ "{") (if_statement "if (((bVar2 ^ bVar3) & 2) == 0) {\n            if (((bVar2 & 1) != 0) && ((bVar3 & 1) == 0)) {\n              if (local_34 != 0) {\n                uVar17 = local_40[-0x3b];\n                if ((bVar3 & 2) == 0) {\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar10 = 0x74;\n                iVar8 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }\n            if (((bVar2 ^ bVar3) & 1) == 0) {\n              cVar4 = *(char *)puVar13[4];\n              if (cVar4 != '_') {\n                if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;\n                if (cVar4 == '\0') goto LAB_0001d190;\n              }\n              if ((((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_'))\n              goto LAB_0001d008;\n            }\n          }" (if "if") (parenthesized_expression "(((bVar2 ^ bVar3) & 2) == 0)" (( "(") (binary_expression "((bVar2 ^ bVar3) & 2) == 0" (parenthesized_expression "((bVar2 ^ bVar3) & 2)" (( "(") (binary_expression "(bVar2 ^ bVar3) & 2" (parenthesized_expression "(bVar2 ^ bVar3)" (( "(") (binary_expression "bVar2 ^ bVar3" (identifier "bVar2") (^ "^") (identifier "bVar3")) () ")")) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            if (((bVar2 & 1) != 0) && ((bVar3 & 1) == 0)) {\n              if (local_34 != 0) {\n                uVar17 = local_40[-0x3b];\n                if ((bVar3 & 2) == 0) {\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar10 = 0x74;\n                iVar8 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }\n            if (((bVar2 ^ bVar3) & 1) == 0) {\n              cVar4 = *(char *)puVar13[4];\n              if (cVar4 != '_') {\n                if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;\n                if (cVar4 == '\0') goto LAB_0001d190;\n              }\n              if ((((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_'))\n              goto LAB_0001d008;\n            }\n          }" ({ "{") (if_statement "if (((bVar2 & 1) != 0) && ((bVar3 & 1) == 0)) {\n              if (local_34 != 0) {\n                uVar17 = local_40[-0x3b];\n                if ((bVar3 & 2) == 0) {\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar10 = 0x74;\n                iVar8 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }" (if "if") (parenthesized_expression "(((bVar2 & 1) != 0) && ((bVar3 & 1) == 0))" (( "(") (binary_expression "((bVar2 & 1) != 0) && ((bVar3 & 1) == 0)" (parenthesized_expression "((bVar2 & 1) != 0)" (( "(") (binary_expression "(bVar2 & 1) != 0" (parenthesized_expression "(bVar2 & 1)" (( "(") (binary_expression "bVar2 & 1" (identifier "bVar2") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((bVar3 & 1) == 0)" (( "(") (binary_expression "(bVar3 & 1) == 0" (parenthesized_expression "(bVar3 & 1)" (( "(") (binary_expression "bVar3 & 1" (identifier "bVar3") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n              if (local_34 != 0) {\n                uVar17 = local_40[-0x3b];\n                if ((bVar3 & 2) == 0) {\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar10 = 0x74;\n                iVar8 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }\n              goto LAB_0001d094;\n            }" ({ "{") (if_statement "if (local_34 != 0) {\n                uVar17 = local_40[-0x3b];\n                if ((bVar3 & 2) == 0) {\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar10 = 0x74;\n                iVar8 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }" (if "if") (parenthesized_expression "(local_34 != 0)" (( "(") (binary_expression "local_34 != 0" (identifier "local_34") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                uVar17 = local_40[-0x3b];\n                if ((bVar3 & 2) == 0) {\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }\n                iVar10 = 0x74;\n                iVar8 = 0x66;\n                uVar12 = 0x46;\n                goto LAB_0001d049;\n              }" ({ "{") (expression_statement "uVar17 = local_40[-0x3b];" (assignment_expression "uVar17 = local_40[-0x3b]" (identifier "uVar17") (= "=") (subscript_expression "local_40[-0x3b]" (identifier "local_40") ([ "[") (number_literal "-0x3b") (] "]"))) (; ";")) (if_statement "if ((bVar3 & 2) == 0) {\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }" (if "if") (parenthesized_expression "((bVar3 & 2) == 0)" (( "(") (binary_expression "(bVar3 & 2) == 0" (parenthesized_expression "(bVar3 & 2)" (( "(") (binary_expression "bVar3 & 2" (identifier "bVar3") (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  iVar8 = 0x66;\n                  iVar10 = 0x54;\n                  goto LAB_0001d325;\n                }" ({ "{") (expression_statement "iVar8 = 0x66;" (assignment_expression "iVar8 = 0x66" (identifier "iVar8") (= "=") (number_literal "0x66")) (; ";")) (expression_statement "iVar10 = 0x54;" (assignment_expression "iVar10 = 0x54" (identifier "iVar10") (= "=") (number_literal "0x54")) (; ";")) (goto_statement "goto LAB_0001d325;" (goto "goto") (statement_identifier "LAB_0001d325") (; ";")) (} "}"))) (expression_statement "iVar10 = 0x74;" (assignment_expression "iVar10 = 0x74" (identifier "iVar10") (= "=") (number_literal "0x74")) (; ";")) (expression_statement "iVar8 = 0x66;" (assignment_expression "iVar8 = 0x66" (identifier "iVar8") (= "=") (number_literal "0x66")) (; ";")) (expression_statement "uVar12 = 0x46;" (assignment_expression "uVar12 = 0x46" (identifier "uVar12") (= "=") (number_literal "0x46")) (; ";")) (goto_statement "goto LAB_0001d049;" (goto "goto") (statement_identifier "LAB_0001d049") (; ";")) (} "}"))) (goto_statement "goto LAB_0001d094;" (goto "goto") (statement_identifier "LAB_0001d094") (; ";")) (} "}"))) (if_statement "if (((bVar2 ^ bVar3) & 1) == 0) {\n              cVar4 = *(char *)puVar13[4];\n              if (cVar4 != '_') {\n                if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;\n                if (cVar4 == '\0') goto LAB_0001d190;\n              }\n              if ((((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_'))\n              goto LAB_0001d008;\n            }" (if "if") (parenthesized_expression "(((bVar2 ^ bVar3) & 1) == 0)" (( "(") (binary_expression "((bVar2 ^ bVar3) & 1) == 0" (parenthesized_expression "((bVar2 ^ bVar3) & 1)" (( "(") (binary_expression "(bVar2 ^ bVar3) & 1" (parenthesized_expression "(bVar2 ^ bVar3)" (( "(") (binary_expression "bVar2 ^ bVar3" (identifier "bVar2") (^ "^") (identifier "bVar3")) () ")")) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              cVar4 = *(char *)puVar13[4];\n              if (cVar4 != '_') {\n                if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;\n                if (cVar4 == '\0') goto LAB_0001d190;\n              }\n              if ((((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_'))\n              goto LAB_0001d008;\n            }" ({ "{") (expression_statement "cVar4 = *(char *)puVar13[4];" (assignment_expression "cVar4 = *(char *)puVar13[4]" (identifier "cVar4") (= "=") (pointer_expression "*(char *)puVar13[4]" (* "*") (cast_expression "(char *)puVar13[4]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar13[4]" (identifier "puVar13") ([ "[") (number_literal "4") (] "]"))))) (; ";")) (if_statement "if (cVar4 != '_') {\n                if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;\n                if (cVar4 == '\0') goto LAB_0001d190;\n              }" (if "if") (parenthesized_expression "(cVar4 != '_')" (( "(") (binary_expression "cVar4 != '_'" (identifier "cVar4") (!= "!=") (char_literal "'_'" (' "'") (character "_") (' "'"))) () ")")) (compound_statement "{\n                if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;\n                if (cVar4 == '\0') goto LAB_0001d190;\n              }" ({ "{") (if_statement "if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;" (if "if") (parenthesized_expression "(*(char *)local_40[-0x3b] == '_')" (( "(") (binary_expression "*(char *)local_40[-0x3b] == '_'" (pointer_expression "*(char *)local_40[-0x3b]" (* "*") (cast_expression "(char *)local_40[-0x3b]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_40[-0x3b]" (identifier "local_40") ([ "[") (number_literal "-0x3b") (] "]")))) (== "==") (char_literal "'_'" (' "'") (character "_") (' "'"))) () ")")) (goto_statement "goto LAB_0001d008;" (goto "goto") (statement_identifier "LAB_0001d008") (; ";"))) (if_statement "if (cVar4 == '\0') goto LAB_0001d190;" (if "if") (parenthesized_expression "(cVar4 == '\0')" (( "(") (binary_expression "cVar4 == '\0'" (identifier "cVar4") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0001d190;" (goto "goto") (statement_identifier "LAB_0001d190") (; ";"))) (} "}"))) (if_statement "if ((((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_'))\n              goto LAB_0001d008;" (if "if") (parenthesized_expression "((((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_'))" (( "(") (binary_expression "(((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_')" (parenthesized_expression "(((char *)puVar13[4])[1] != '_')" (( "(") (binary_expression "((char *)puVar13[4])[1] != '_'" (subscript_expression "((char *)puVar13[4])[1]" (parenthesized_expression "((char *)puVar13[4])" (( "(") (cast_expression "(char *)puVar13[4]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar13[4]" (identifier "puVar13") ([ "[") (number_literal "4") (] "]"))) () ")")) ([ "[") (number_literal "1") (] "]")) (!= "!=") (char_literal "'_'" (' "'") (character "_") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(local_40[-0x3b] + 1) == '_')" (( "(") (binary_expression "*(char *)(local_40[-0x3b] + 1) == '_'" (pointer_expression "*(char *)(local_40[-0x3b] + 1)" (* "*") (cast_expression "(char *)(local_40[-0x3b] + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_40[-0x3b] + 1)" (( "(") (binary_expression "local_40[-0x3b] + 1" (subscript_expression "local_40[-0x3b]" (identifier "local_40") ([ "[") (number_literal "-0x3b") (] "]")) (+ "+") (number_literal "1")) () ")")))) (== "==") (char_literal "'_'" (' "'") (character "_") (' "'"))) () ")"))) () ")")) (goto_statement "goto LAB_0001d008;" (goto "goto") (statement_identifier "LAB_0001d008") (; ";"))) (} "}"))) (} "}"))) (labeled_statement "LAB_0001d190:\n          if (local_34 != 0) {\n            printf((char *)(unaff_EBP + 0x7006),local_40[-0x3b],\n                   (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46,puVar13[4],\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46);\n            printf((char *)(unaff_EBP + 0x7191),*puVar13);\n            local_30 = *puVar1;\n            local_34 = local_30 & 0x1080;\n          }" (statement_identifier "LAB_0001d190") (: ":") (if_statement "if (local_34 != 0) {\n            printf((char *)(unaff_EBP + 0x7006),local_40[-0x3b],\n                   (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46,puVar13[4],\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46);\n            printf((char *)(unaff_EBP + 0x7191),*puVar13);\n            local_30 = *puVar1;\n            local_34 = local_30 & 0x1080;\n          }" (if "if") (parenthesized_expression "(local_34 != 0)" (( "(") (binary_expression "local_34 != 0" (identifier "local_34") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            printf((char *)(unaff_EBP + 0x7006),local_40[-0x3b],\n                   (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46,puVar13[4],\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46);\n            printf((char *)(unaff_EBP + 0x7191),*puVar13);\n            local_30 = *puVar1;\n            local_34 = local_30 & 0x1080;\n          }" ({ "{") (expression_statement "printf((char *)(unaff_EBP + 0x7006),local_40[-0x3b],\n                   (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46,puVar13[4],\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46);" (call_expression "printf((char *)(unaff_EBP + 0x7006),local_40[-0x3b],\n                   (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46,puVar13[4],\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46)" (identifier "printf") (argument_list "((char *)(unaff_EBP + 0x7006),local_40[-0x3b],\n                   (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46,puVar13[4],\n                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,\n                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46)" (( "(") (cast_expression "(char *)(unaff_EBP + 0x7006)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x7006)" (( "(") (binary_expression "unaff_EBP + 0x7006" (identifier "unaff_EBP") (+ "+") (number_literal "0x7006")) () ")"))) (, ",") (subscript_expression "local_40[-0x3b]" (identifier "local_40") ([ "[") (number_literal "-0x3b") (] "]")) (, ",") (binary_expression "(-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74" (parenthesized_expression "(-(uint)((bVar3 & 2) == 0) & 0xffffffe0)" (( "(") (binary_expression "-(uint)((bVar3 & 2) == 0) & 0xffffffe0" (unary_expression "-(uint)((bVar3 & 2) == 0)" (- "-") (call_expression "(uint)((bVar3 & 2) == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((bVar3 & 2) == 0)" (( "(") (binary_expression "(bVar3 & 2) == 0" (parenthesized_expression "(bVar3 & 2)" (( "(") (binary_expression "bVar3 & 2" (identifier "bVar3") (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")))) (& "&") (number_literal "0xffffffe0")) () ")")) (+ "+") (number_literal "0x74")) (, ",") (binary_expression "(-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46" (parenthesized_expression "(-(uint)((bVar3 & 1) == 0) & 0x20)" (( "(") (binary_expression "-(uint)((bVar3 & 1) == 0) & 0x20" (unary_expression "-(uint)((bVar3 & 1) == 0)" (- "-") (call_expression "(uint)((bVar3 & 1) == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((bVar3 & 1) == 0)" (( "(") (binary_expression "(bVar3 & 1) == 0" (parenthesized_expression "(bVar3 & 1)" (( "(") (binary_expression "bVar3 & 1" (identifier "bVar3") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (+ "+") (number_literal "0x46")) (, ",") (subscript_expression "puVar13[4]" (identifier "puVar13") ([ "[") (number_literal "4") (] "]")) (, ",") (binary_expression "(-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74" (parenthesized_expression "(-(uint)((bVar2 & 2) == 0) & 0xffffffe0)" (( "(") (binary_expression "-(uint)((bVar2 & 2) == 0) & 0xffffffe0" (unary_expression "-(uint)((bVar2 & 2) == 0)" (- "-") (call_expression "(uint)((bVar2 & 2) == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((bVar2 & 2) == 0)" (( "(") (binary_expression "(bVar2 & 2) == 0" (parenthesized_expression "(bVar2 & 2)" (( "(") (binary_expression "bVar2 & 2" (identifier "bVar2") (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")))) (& "&") (number_literal "0xffffffe0")) () ")")) (+ "+") (number_literal "0x74")) (, ",") (binary_expression "(-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46" (parenthesized_expression "(-(uint)((bVar2 & 1) == 0) & 0x20)" (( "(") (binary_expression "-(uint)((bVar2 & 1) == 0) & 0x20" (unary_expression "-(uint)((bVar2 & 1) == 0)" (- "-") (call_expression "(uint)((bVar2 & 1) == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((bVar2 & 1) == 0)" (( "(") (binary_expression "(bVar2 & 1) == 0" (parenthesized_expression "(bVar2 & 1)" (( "(") (binary_expression "bVar2 & 1" (identifier "bVar2") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (+ "+") (number_literal "0x46")) () ")"))) (; ";")) (expression_statement "printf((char *)(unaff_EBP + 0x7191),*puVar13);" (call_expression "printf((char *)(unaff_EBP + 0x7191),*puVar13)" (identifier "printf") (argument_list "((char *)(unaff_EBP + 0x7191),*puVar13)" (( "(") (cast_expression "(char *)(unaff_EBP + 0x7191)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x7191)" (( "(") (binary_expression "unaff_EBP + 0x7191" (identifier "unaff_EBP") (+ "+") (number_literal "0x7191")) () ")"))) (, ",") (pointer_expression "*puVar13" (* "*") (identifier "puVar13")) () ")"))) (; ";")) (expression_statement "local_30 = *puVar1;" (assignment_expression "local_30 = *puVar1" (identifier "local_30") (= "=") (pointer_expression "*puVar1" (* "*") (identifier "puVar1"))) (; ";")) (expression_statement "local_34 = local_30 & 0x1080;" (assignment_expression "local_34 = local_30 & 0x1080" (identifier "local_34") (= "=") (binary_expression "local_30 & 0x1080" (identifier "local_30") (& "&") (number_literal "0x1080"))) (; ";")) (} "}")))) (goto_statement "goto LAB_0001cfa6;" (goto "goto") (statement_identifier "LAB_0001cfa6") (; ";")) (} "}"))) (labeled_statement "LAB_0001d008:\n        if (local_34 != 0) {\n          uVar12 = 0x66;\n          uVar17 = local_40[-0x3b];\n          iVar8 = (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46;\n          iVar10 = (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74;\n          if ((bVar2 & 1) != 0) {\nLAB_0001d325:\n            uVar12 = 0x46;\n          }\nLAB_0001d049:\n          printf((char *)(unaff_EBP + 0x7006),puVar13[4],\n                 (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,uVar17,iVar10,iVar8);\n          printf((char *)(unaff_EBP + 0x7191),*puVar13);\n          local_30 = *puVar1;\n          local_34 = local_30 & 0x1080;\n        }" (statement_identifier "LAB_0001d008") (: ":") (if_statement "if (local_34 != 0) {\n          uVar12 = 0x66;\n          uVar17 = local_40[-0x3b];\n          iVar8 = (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46;\n          iVar10 = (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74;\n          if ((bVar2 & 1) != 0) {\nLAB_0001d325:\n            uVar12 = 0x46;\n          }\nLAB_0001d049:\n          printf((char *)(unaff_EBP + 0x7006),puVar13[4],\n                 (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,uVar17,iVar10,iVar8);\n          printf((char *)(unaff_EBP + 0x7191),*puVar13);\n          local_30 = *puVar1;\n          local_34 = local_30 & 0x1080;\n        }" (if "if") (parenthesized_expression "(local_34 != 0)" (( "(") (binary_expression "local_34 != 0" (identifier "local_34") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uVar12 = 0x66;\n          uVar17 = local_40[-0x3b];\n          iVar8 = (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46;\n          iVar10 = (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74;\n          if ((bVar2 & 1) != 0) {\nLAB_0001d325:\n            uVar12 = 0x46;\n          }\nLAB_0001d049:\n          printf((char *)(unaff_EBP + 0x7006),puVar13[4],\n                 (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,uVar17,iVar10,iVar8);\n          printf((char *)(unaff_EBP + 0x7191),*puVar13);\n          local_30 = *puVar1;\n          local_34 = local_30 & 0x1080;\n        }" ({ "{") (expression_statement "uVar12 = 0x66;" (assignment_expression "uVar12 = 0x66" (identifier "uVar12") (= "=") (number_literal "0x66")) (; ";")) (expression_statement "uVar17 = local_40[-0x3b];" (assignment_expression "uVar17 = local_40[-0x3b]" (identifier "uVar17") (= "=") (subscript_expression "local_40[-0x3b]" (identifier "local_40") ([ "[") (number_literal "-0x3b") (] "]"))) (; ";")) (expression_statement "iVar8 = (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46;" (assignment_expression "iVar8 = (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46" (identifier "iVar8") (= "=") (binary_expression "(-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46" (parenthesized_expression "(-(uint)((bVar3 & 1) == 0) & 0x20)" (( "(") (binary_expression "-(uint)((bVar3 & 1) == 0) & 0x20" (unary_expression "-(uint)((bVar3 & 1) == 0)" (- "-") (call_expression "(uint)((bVar3 & 1) == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((bVar3 & 1) == 0)" (( "(") (binary_expression "(bVar3 & 1) == 0" (parenthesized_expression "(bVar3 & 1)" (( "(") (binary_expression "bVar3 & 1" (identifier "bVar3") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (+ "+") (number_literal "0x46"))) (; ";")) (expression_statement "iVar10 = (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74;" (assignment_expression "iVar10 = (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74" (identifier "iVar10") (= "=") (binary_expression "(-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74" (parenthesized_expression "(-(uint)((bVar3 & 2) == 0) & 0xffffffe0)" (( "(") (binary_expression "-(uint)((bVar3 & 2) == 0) & 0xffffffe0" (unary_expression "-(uint)((bVar3 & 2) == 0)" (- "-") (call_expression "(uint)((bVar3 & 2) == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((bVar3 & 2) == 0)" (( "(") (binary_expression "(bVar3 & 2) == 0" (parenthesized_expression "(bVar3 & 2)" (( "(") (binary_expression "bVar3 & 2" (identifier "bVar3") (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")))) (& "&") (number_literal "0xffffffe0")) () ")")) (+ "+") (number_literal "0x74"))) (; ";")) (if_statement "if ((bVar2 & 1) != 0) {\nLAB_0001d325:\n            uVar12 = 0x46;\n          }" (if "if") (parenthesized_expression "((bVar2 & 1) != 0)" (( "(") (binary_expression "(bVar2 & 1) != 0" (parenthesized_expression "(bVar2 & 1)" (( "(") (binary_expression "bVar2 & 1" (identifier "bVar2") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0001d325:\n            uVar12 = 0x46;\n          }" ({ "{") (labeled_statement "LAB_0001d325:\n            uVar12 = 0x46;" (statement_identifier "LAB_0001d325") (: ":") (expression_statement "uVar12 = 0x46;" (assignment_expression "uVar12 = 0x46" (identifier "uVar12") (= "=") (number_literal "0x46")) (; ";"))) (} "}"))) (labeled_statement "LAB_0001d049:\n          printf((char *)(unaff_EBP + 0x7006),puVar13[4],\n                 (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,uVar17,iVar10,iVar8);" (statement_identifier "LAB_0001d049") (: ":") (expression_statement "printf((char *)(unaff_EBP + 0x7006),puVar13[4],\n                 (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,uVar17,iVar10,iVar8);" (call_expression "printf((char *)(unaff_EBP + 0x7006),puVar13[4],\n                 (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,uVar17,iVar10,iVar8)" (identifier "printf") (argument_list "((char *)(unaff_EBP + 0x7006),puVar13[4],\n                 (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,uVar17,iVar10,iVar8)" (( "(") (cast_expression "(char *)(unaff_EBP + 0x7006)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x7006)" (( "(") (binary_expression "unaff_EBP + 0x7006" (identifier "unaff_EBP") (+ "+") (number_literal "0x7006")) () ")"))) (, ",") (subscript_expression "puVar13[4]" (identifier "puVar13") ([ "[") (number_literal "4") (] "]")) (, ",") (binary_expression "(-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74" (parenthesized_expression "(-(uint)((bVar2 & 2) == 0) & 0xffffffe0)" (( "(") (binary_expression "-(uint)((bVar2 & 2) == 0) & 0xffffffe0" (unary_expression "-(uint)((bVar2 & 2) == 0)" (- "-") (call_expression "(uint)((bVar2 & 2) == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((bVar2 & 2) == 0)" (( "(") (binary_expression "(bVar2 & 2) == 0" (parenthesized_expression "(bVar2 & 2)" (( "(") (binary_expression "bVar2 & 2" (identifier "bVar2") (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")))) (& "&") (number_literal "0xffffffe0")) () ")")) (+ "+") (number_literal "0x74")) (, ",") (identifier "uVar12") (, ",") (identifier "uVar17") (, ",") (identifier "iVar10") (, ",") (identifier "iVar8") () ")"))) (; ";"))) (expression_statement "printf((char *)(unaff_EBP + 0x7191),*puVar13);" (call_expression "printf((char *)(unaff_EBP + 0x7191),*puVar13)" (identifier "printf") (argument_list "((char *)(unaff_EBP + 0x7191),*puVar13)" (( "(") (cast_expression "(char *)(unaff_EBP + 0x7191)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x7191)" (( "(") (binary_expression "unaff_EBP + 0x7191" (identifier "unaff_EBP") (+ "+") (number_literal "0x7191")) () ")"))) (, ",") (pointer_expression "*puVar13" (* "*") (identifier "puVar13")) () ")"))) (; ";")) (expression_statement "local_30 = *puVar1;" (assignment_expression "local_30 = *puVar1" (identifier "local_30") (= "=") (pointer_expression "*puVar1" (* "*") (identifier "puVar1"))) (; ";")) (expression_statement "local_34 = local_30 & 0x1080;" (assignment_expression "local_34 = local_30 & 0x1080" (identifier "local_34") (= "=") (binary_expression "local_30 & 0x1080" (identifier "local_30") (& "&") (number_literal "0x1080"))) (; ";")) (} "}")))) (labeled_statement "LAB_0001d094:\n        puVar14 = puVar13;" (statement_identifier "LAB_0001d094") (: ":") (expression_statement "puVar14 = puVar13;" (assignment_expression "puVar14 = puVar13" (identifier "puVar14") (= "=") (identifier "puVar13")) (; ";"))) (expression_statement "puVar16 = local_40 + -0x3f;" (assignment_expression "puVar16 = local_40 + -0x3f" (identifier "puVar16") (= "=") (binary_expression "local_40 + -0x3f" (identifier "local_40") (+ "+") (number_literal "-0x3f"))) (; ";")) (for_statement "for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n          *puVar16 = *puVar14;\n          puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }" (for "for") (( "(") (assignment_expression "iVar8 = 0x3f" (identifier "iVar8") (= "=") (number_literal "0x3f")) (; ";") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar8 = iVar8 + -1" (identifier "iVar8") (= "=") (binary_expression "iVar8 + -1" (identifier "iVar8") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n          *puVar16 = *puVar14;\n          puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n        }" ({ "{") (expression_statement "*puVar16 = *puVar14;" (assignment_expression "*puVar16 = *puVar14" (pointer_expression "*puVar16" (* "*") (identifier "puVar16")) (= "=") (pointer_expression "*puVar14" (* "*") (identifier "puVar14"))) (; ";")) (expression_statement "puVar14 = puVar14 + (uint)bVar18 * -2 + 1;" (assignment_expression "puVar14 = puVar14 + (uint)bVar18 * -2 + 1" (identifier "puVar14") (= "=") (binary_expression "puVar14 + (uint)bVar18 * -2 + 1" (binary_expression "puVar14 + (uint)bVar18 * -2" (identifier "puVar14") (+ "+") (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar18")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar16 = puVar16 + (uint)bVar18 * -2 + 1;" (assignment_expression "puVar16 = puVar16 + (uint)bVar18 * -2 + 1" (identifier "puVar16") (= "=") (binary_expression "puVar16 + (uint)bVar18 * -2 + 1" (binary_expression "puVar16 + (uint)bVar18 * -2" (identifier "puVar16") (+ "+") (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar18")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;" (if "if") (parenthesized_expression "((uint *)param_1[2] <= puVar13 + 0x3f)" (( "(") (binary_expression "(uint *)param_1[2] <= puVar13 + 0x3f" (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") (] "]"))) (<= "<=") (binary_expression "puVar13 + 0x3f" (identifier "puVar13") (+ "+") (number_literal "0x3f"))) () ")")) (goto_statement "goto LAB_0001d0c0;" (goto "goto") (statement_identifier "LAB_0001d0c0") (; ";"))) (} "}")) (else_clause "else {\n        if (((uint *)param_1[1] < local_40) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0)) {\n          local_40[-0x3d] = uVar17 - 1;\n          local_40[-0x3c] = (uVar9 - 1) + (uint)(uVar17 != 0);\n        }\n        uVar5 = puVar13[3];\n        if ((uVar9 <= uVar5 && (uint)(puVar13[2] < uVar17) <= uVar5 - uVar9) ||\n           (puVar13[2] == 0 && uVar5 == 0)) {\n          puVar14 = puVar13;\n          puVar16 = local_40;\n          for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n            *puVar16 = *puVar14;\n            puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          local_3c = *puVar13;\n          local_38 = puVar13[1];\n          local_40 = local_40 + 0x3f;\n        }\nLAB_0001cfa6:\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }" (else "else") (compound_statement "{\n        if (((uint *)param_1[1] < local_40) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0)) {\n          local_40[-0x3d] = uVar17 - 1;\n          local_40[-0x3c] = (uVar9 - 1) + (uint)(uVar17 != 0);\n        }\n        uVar5 = puVar13[3];\n        if ((uVar9 <= uVar5 && (uint)(puVar13[2] < uVar17) <= uVar5 - uVar9) ||\n           (puVar13[2] == 0 && uVar5 == 0)) {\n          puVar14 = puVar13;\n          puVar16 = local_40;\n          for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n            *puVar16 = *puVar14;\n            puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          local_3c = *puVar13;\n          local_38 = puVar13[1];\n          local_40 = local_40 + 0x3f;\n        }\nLAB_0001cfa6:\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;\n      }" ({ "{") (if_statement "if (((uint *)param_1[1] < local_40) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0)) {\n          local_40[-0x3d] = uVar17 - 1;\n          local_40[-0x3c] = (uVar9 - 1) + (uint)(uVar17 != 0);\n        }" (if "if") (parenthesized_expression "(((uint *)param_1[1] < local_40) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0))" (( "(") (binary_expression "((uint *)param_1[1] < local_40) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0)" (parenthesized_expression "((uint *)param_1[1] < local_40)" (( "(") (binary_expression "(uint *)param_1[1] < local_40" (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 "local_40")) () ")")) (&& "&&") (parenthesized_expression "(local_40[-0x3c] == 0 && local_40[-0x3d] == 0)" (( "(") (binary_expression "local_40[-0x3c] == 0 && local_40[-0x3d] == 0" (binary_expression "local_40[-0x3c] == 0" (subscript_expression "local_40[-0x3c]" (identifier "local_40") ([ "[") (number_literal "-0x3c") (] "]")) (== "==") (number_literal "0")) (&& "&&") (binary_expression "local_40[-0x3d] == 0" (subscript_expression "local_40[-0x3d]" (identifier "local_40") ([ "[") (number_literal "-0x3d") (] "]")) (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n          local_40[-0x3d] = uVar17 - 1;\n          local_40[-0x3c] = (uVar9 - 1) + (uint)(uVar17 != 0);\n        }" ({ "{") (expression_statement "local_40[-0x3d] = uVar17 - 1;" (assignment_expression "local_40[-0x3d] = uVar17 - 1" (subscript_expression "local_40[-0x3d]" (identifier "local_40") ([ "[") (number_literal "-0x3d") (] "]")) (= "=") (binary_expression "uVar17 - 1" (identifier "uVar17") (- "-") (number_literal "1"))) (; ";")) (expression_statement "local_40[-0x3c] = (uVar9 - 1) + (uint)(uVar17 != 0);" (assignment_expression "local_40[-0x3c] = (uVar9 - 1) + (uint)(uVar17 != 0)" (subscript_expression "local_40[-0x3c]" (identifier "local_40") ([ "[") (number_literal "-0x3c") (] "]")) (= "=") (binary_expression "(uVar9 - 1) + (uint)(uVar17 != 0)" (parenthesized_expression "(uVar9 - 1)" (( "(") (binary_expression "uVar9 - 1" (identifier "uVar9") (- "-") (number_literal "1")) () ")")) (+ "+") (call_expression "(uint)(uVar17 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar17 != 0)" (( "(") (binary_expression "uVar17 != 0" (identifier "uVar17") (!= "!=") (number_literal "0")) () ")"))))) (; ";")) (} "}"))) (expression_statement "uVar5 = puVar13[3];" (assignment_expression "uVar5 = puVar13[3]" (identifier "uVar5") (= "=") (subscript_expression "puVar13[3]" (identifier "puVar13") ([ "[") (number_literal "3") (] "]"))) (; ";")) (if_statement "if ((uVar9 <= uVar5 && (uint)(puVar13[2] < uVar17) <= uVar5 - uVar9) ||\n           (puVar13[2] == 0 && uVar5 == 0)) {\n          puVar14 = puVar13;\n          puVar16 = local_40;\n          for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n            *puVar16 = *puVar14;\n            puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          local_3c = *puVar13;\n          local_38 = puVar13[1];\n          local_40 = local_40 + 0x3f;\n        }" (if "if") (parenthesized_expression "((uVar9 <= uVar5 && (uint)(puVar13[2] < uVar17) <= uVar5 - uVar9) ||\n           (puVar13[2] == 0 && uVar5 == 0))" (( "(") (binary_expression "(uVar9 <= uVar5 && (uint)(puVar13[2] < uVar17) <= uVar5 - uVar9) ||\n           (puVar13[2] == 0 && uVar5 == 0)" (parenthesized_expression "(uVar9 <= uVar5 && (uint)(puVar13[2] < uVar17) <= uVar5 - uVar9)" (( "(") (binary_expression "uVar9 <= uVar5 && (uint)(puVar13[2] < uVar17) <= uVar5 - uVar9" (binary_expression "uVar9 <= uVar5" (identifier "uVar9") (<= "<=") (identifier "uVar5")) (&& "&&") (binary_expression "(uint)(puVar13[2] < uVar17) <= uVar5 - uVar9" (call_expression "(uint)(puVar13[2] < uVar17)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(puVar13[2] < uVar17)" (( "(") (binary_expression "puVar13[2] < uVar17" (subscript_expression "puVar13[2]" (identifier "puVar13") ([ "[") (number_literal "2") (] "]")) (< "<") (identifier "uVar17")) () ")"))) (<= "<=") (binary_expression "uVar5 - uVar9" (identifier "uVar5") (- "-") (identifier "uVar9")))) () ")")) (|| "||") (parenthesized_expression "(puVar13[2] == 0 && uVar5 == 0)" (( "(") (binary_expression "puVar13[2] == 0 && uVar5 == 0" (binary_expression "puVar13[2] == 0" (subscript_expression "puVar13[2]" (identifier "puVar13") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "0")) (&& "&&") (binary_expression "uVar5 == 0" (identifier "uVar5") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n          puVar14 = puVar13;\n          puVar16 = local_40;\n          for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n            *puVar16 = *puVar14;\n            puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }\n          local_3c = *puVar13;\n          local_38 = puVar13[1];\n          local_40 = local_40 + 0x3f;\n        }" ({ "{") (expression_statement "puVar14 = puVar13;" (assignment_expression "puVar14 = puVar13" (identifier "puVar14") (= "=") (identifier "puVar13")) (; ";")) (expression_statement "puVar16 = local_40;" (assignment_expression "puVar16 = local_40" (identifier "puVar16") (= "=") (identifier "local_40")) (; ";")) (for_statement "for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {\n            *puVar16 = *puVar14;\n            puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }" (for "for") (( "(") (assignment_expression "iVar8 = 0x3f" (identifier "iVar8") (= "=") (number_literal "0x3f")) (; ";") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar8 = iVar8 + -1" (identifier "iVar8") (= "=") (binary_expression "iVar8 + -1" (identifier "iVar8") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n            *puVar16 = *puVar14;\n            puVar14 = puVar14 + (uint)bVar18 * -2 + 1;\n            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n          }" ({ "{") (expression_statement "*puVar16 = *puVar14;" (assignment_expression "*puVar16 = *puVar14" (pointer_expression "*puVar16" (* "*") (identifier "puVar16")) (= "=") (pointer_expression "*puVar14" (* "*") (identifier "puVar14"))) (; ";")) (expression_statement "puVar14 = puVar14 + (uint)bVar18 * -2 + 1;" (assignment_expression "puVar14 = puVar14 + (uint)bVar18 * -2 + 1" (identifier "puVar14") (= "=") (binary_expression "puVar14 + (uint)bVar18 * -2 + 1" (binary_expression "puVar14 + (uint)bVar18 * -2" (identifier "puVar14") (+ "+") (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar18")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar16 = puVar16 + (uint)bVar18 * -2 + 1;" (assignment_expression "puVar16 = puVar16 + (uint)bVar18 * -2 + 1" (identifier "puVar16") (= "=") (binary_expression "puVar16 + (uint)bVar18 * -2 + 1" (binary_expression "puVar16 + (uint)bVar18 * -2" (identifier "puVar16") (+ "+") (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar18")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "local_3c = *puVar13;" (assignment_expression "local_3c = *puVar13" (identifier "local_3c") (= "=") (pointer_expression "*puVar13" (* "*") (identifier "puVar13"))) (; ";")) (expression_statement "local_38 = puVar13[1];" (assignment_expression "local_38 = puVar13[1]" (identifier "local_38") (= "=") (subscript_expression "puVar13[1]" (identifier "puVar13") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_40 = local_40 + 0x3f;" (assignment_expression "local_40 = local_40 + 0x3f" (identifier "local_40") (= "=") (binary_expression "local_40 + 0x3f" (identifier "local_40") (+ "+") (number_literal "0x3f"))) (; ";")) (} "}"))) (labeled_statement "LAB_0001cfa6:\n        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;" (statement_identifier "LAB_0001cfa6") (: ":") (if_statement "if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;" (if "if") (parenthesized_expression "((uint *)param_1[2] <= puVar13 + 0x3f)" (( "(") (binary_expression "(uint *)param_1[2] <= puVar13 + 0x3f" (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") (] "]"))) (<= "<=") (binary_expression "puVar13 + 0x3f" (identifier "puVar13") (+ "+") (number_literal "0x3f"))) () ")")) (goto_statement "goto LAB_0001d0c0;" (goto "goto") (statement_identifier "LAB_0001d0c0") (; ";")))) (} "}")))) (expression_statement "uVar17 = puVar13[0x3f];" (assignment_expression "uVar17 = puVar13[0x3f]" (identifier "uVar17") (= "=") (subscript_expression "puVar13[0x3f]" (identifier "puVar13") ([ "[") (number_literal "0x3f") (] "]"))) (; ";")) (expression_statement "uVar9 = puVar13[0x40];" (assignment_expression "uVar9 = puVar13[0x40]" (identifier "uVar9") (= "=") (subscript_expression "puVar13[0x40]" (identifier "puVar13") ([ "[") (number_literal "0x40") (] "]"))) (; ";")) (expression_statement "puVar13 = puVar13 + 0x3f;" (assignment_expression "puVar13 = puVar13 + 0x3f" (identifier "puVar13") (= "=") (binary_expression "puVar13 + 0x3f" (identifier "puVar13") (+ "+") (number_literal "0x3f"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (expression_statement "local_34 = *(uint *)(unaff_EBP + 0x112c2) & 0x1080;" (assignment_expression "local_34 = *(uint *)(unaff_EBP + 0x112c2) & 0x1080" (identifier "local_34") (= "=") (binary_expression "*(uint *)(unaff_EBP + 0x112c2) & 0x1080" (pointer_expression "*(uint *)(unaff_EBP + 0x112c2)" (* "*") (cast_expression "(uint *)(unaff_EBP + 0x112c2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x112c2)" (( "(") (binary_expression "unaff_EBP + 0x112c2" (identifier "unaff_EBP") (+ "+") (number_literal "0x112c2")) () ")")))) (& "&") (number_literal "0x1080"))) (; ";")) (expression_statement "sVar6 = 0;" (assignment_expression "sVar6 = 0" (identifier "sVar6") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0001d0d2:\n  local_28 = (uint *)(unaff_EBP + 0x112c2);" (statement_identifier "LAB_0001d0d2") (: ":") (expression_statement "local_28 = (uint *)(unaff_EBP + 0x112c2);" (assignment_expression "local_28 = (uint *)(unaff_EBP + 0x112c2)" (identifier "local_28") (= "=") (cast_expression "(uint *)(unaff_EBP + 0x112c2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x112c2)" (( "(") (binary_expression "unaff_EBP + 0x112c2" (identifier "unaff_EBP") (+ "+") (number_literal "0x112c2")) () ")")))) (; ";"))) (expression_statement "sVar11 = *param_1;" (assignment_expression "sVar11 = *param_1" (identifier "sVar11") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (if_statement "if ((sVar11 != 0) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0)) {\n    iVar8 = *(int *)(unaff_EBP + 0x11666);\n    uVar17 = *(uint *)(iVar8 + 0x2c);\n    uVar9 = *(uint *)(iVar8 + 0x1c);\n    iVar15 = uVar17 + *(uint *)(iVar8 + 0x1c);\n    iVar10 = *(int *)(iVar8 + 0x30);\n    iVar8 = *(int *)(iVar8 + 0x20);\n    local_40[-0x3d] = iVar15 - 1;\n    local_40[-0x3c] = iVar10 + iVar8 + (uint)CARRY4(uVar17,uVar9) + -1 + (uint)(iVar15 != 0);\n  }" (if "if") (parenthesized_expression "((sVar11 != 0) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0))" (( "(") (binary_expression "(sVar11 != 0) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0)" (parenthesized_expression "(sVar11 != 0)" (( "(") (binary_expression "sVar11 != 0" (identifier "sVar11") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(local_40[-0x3c] == 0 && local_40[-0x3d] == 0)" (( "(") (binary_expression "local_40[-0x3c] == 0 && local_40[-0x3d] == 0" (binary_expression "local_40[-0x3c] == 0" (subscript_expression "local_40[-0x3c]" (identifier "local_40") ([ "[") (number_literal "-0x3c") (] "]")) (== "==") (number_literal "0")) (&& "&&") (binary_expression "local_40[-0x3d] == 0" (subscript_expression "local_40[-0x3d]" (identifier "local_40") ([ "[") (number_literal "-0x3d") (] "]")) (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    iVar8 = *(int *)(unaff_EBP + 0x11666);\n    uVar17 = *(uint *)(iVar8 + 0x2c);\n    uVar9 = *(uint *)(iVar8 + 0x1c);\n    iVar15 = uVar17 + *(uint *)(iVar8 + 0x1c);\n    iVar10 = *(int *)(iVar8 + 0x30);\n    iVar8 = *(int *)(iVar8 + 0x20);\n    local_40[-0x3d] = iVar15 - 1;\n    local_40[-0x3c] = iVar10 + iVar8 + (uint)CARRY4(uVar17,uVar9) + -1 + (uint)(iVar15 != 0);\n  }" ({ "{") (expression_statement "iVar8 = *(int *)(unaff_EBP + 0x11666);" (assignment_expression "iVar8 = *(int *)(unaff_EBP + 0x11666)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(unaff_EBP + 0x11666)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x11666)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x11666)" (( "(") (binary_expression "unaff_EBP + 0x11666" (identifier "unaff_EBP") (+ "+") (number_literal "0x11666")) () ")"))))) (; ";")) (expression_statement "uVar17 = *(uint *)(iVar8 + 0x2c);" (assignment_expression "uVar17 = *(uint *)(iVar8 + 0x2c)" (identifier "uVar17") (= "=") (pointer_expression "*(uint *)(iVar8 + 0x2c)" (* "*") (cast_expression "(uint *)(iVar8 + 0x2c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x2c)" (( "(") (binary_expression "iVar8 + 0x2c" (identifier "iVar8") (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (expression_statement "uVar9 = *(uint *)(iVar8 + 0x1c);" (assignment_expression "uVar9 = *(uint *)(iVar8 + 0x1c)" (identifier "uVar9") (= "=") (pointer_expression "*(uint *)(iVar8 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar8 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x1c)" (( "(") (binary_expression "iVar8 + 0x1c" (identifier "iVar8") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "iVar15 = uVar17 + *(uint *)(iVar8 + 0x1c);" (assignment_expression "iVar15 = uVar17 + *(uint *)(iVar8 + 0x1c)" (identifier "iVar15") (= "=") (binary_expression "uVar17 + *(uint *)(iVar8 + 0x1c)" (identifier "uVar17") (+ "+") (pointer_expression "*(uint *)(iVar8 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar8 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x1c)" (( "(") (binary_expression "iVar8 + 0x1c" (identifier "iVar8") (+ "+") (number_literal "0x1c")) () ")")))))) (; ";")) (expression_statement "iVar10 = *(int *)(iVar8 + 0x30);" (assignment_expression "iVar10 = *(int *)(iVar8 + 0x30)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(iVar8 + 0x30)" (* "*") (cast_expression "(int *)(iVar8 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x30)" (( "(") (binary_expression "iVar8 + 0x30" (identifier "iVar8") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "iVar8 = *(int *)(iVar8 + 0x20);" (assignment_expression "iVar8 = *(int *)(iVar8 + 0x20)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(iVar8 + 0x20)" (* "*") (cast_expression "(int *)(iVar8 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x20)" (( "(") (binary_expression "iVar8 + 0x20" (identifier "iVar8") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "local_40[-0x3d] = iVar15 - 1;" (assignment_expression "local_40[-0x3d] = iVar15 - 1" (subscript_expression "local_40[-0x3d]" (identifier "local_40") ([ "[") (number_literal "-0x3d") (] "]")) (= "=") (binary_expression "iVar15 - 1" (identifier "iVar15") (- "-") (number_literal "1"))) (; ";")) (expression_statement "local_40[-0x3c] = iVar10 + iVar8 + (uint)CARRY4(uVar17,uVar9) + -1 + (uint)(iVar15 != 0);" (assignment_expression "local_40[-0x3c] = iVar10 + iVar8 + (uint)CARRY4(uVar17,uVar9) + -1 + (uint)(iVar15 != 0)" (subscript_expression "local_40[-0x3c]" (identifier "local_40") ([ "[") (number_literal "-0x3c") (] "]")) (= "=") (binary_expression "iVar10 + iVar8 + (uint)CARRY4(uVar17,uVar9) + -1 + (uint)(iVar15 != 0)" (binary_expression "iVar10 + iVar8 + (uint)CARRY4(uVar17,uVar9) + -1" (binary_expression "iVar10 + iVar8 + (uint)CARRY4(uVar17,uVar9)" (binary_expression "iVar10 + iVar8" (identifier "iVar10") (+ "+") (identifier "iVar8")) (+ "+") (cast_expression "(uint)CARRY4(uVar17,uVar9)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar17,uVar9)" (identifier "CARRY4") (argument_list "(uVar17,uVar9)" (( "(") (identifier "uVar17") (, ",") (identifier "uVar9") () ")"))))) (+ "+") (number_literal "-1")) (+ "+") (call_expression "(uint)(iVar15 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar15 != 0)" (( "(") (binary_expression "iVar15 != 0" (identifier "iVar15") (!= "!=") (number_literal "0")) () ")"))))) (; ";")) (} "}"))) (if_statement "if (local_34 != 0) {\n    printf((char *)(unaff_EBP + 0x7036),sVar11 - sVar6);\n    sVar6 = param_1[1];\n    uVar17 = *local_28;\n    param_1[2] = (size_t)local_40;\n    sVar11 = ((int)((int)local_40 - sVar6) >> 2) * -0x41041041;\n    *param_1 = sVar11;\n    if (((uVar17 & 0x1080) != 0) && (sVar11 != 0)) {\n      uVar17 = 0;\n      while( true ) {\n        iVar8 = uVar17 * 0xfc;\n        uVar17 = uVar17 + 1;\n        puVar7 = (undefined4 *)(sVar6 + iVar8);\n        printf((char *)(unaff_EBP + 0x706a),*puVar7,puVar7[2],puVar7[4]);\n        if (*param_1 <= uVar17) break;\n        sVar6 = param_1[1];\n      }\n      return;\n    }\n    return;\n  }" (if "if") (parenthesized_expression "(local_34 != 0)" (( "(") (binary_expression "local_34 != 0" (identifier "local_34") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    printf((char *)(unaff_EBP + 0x7036),sVar11 - sVar6);\n    sVar6 = param_1[1];\n    uVar17 = *local_28;\n    param_1[2] = (size_t)local_40;\n    sVar11 = ((int)((int)local_40 - sVar6) >> 2) * -0x41041041;\n    *param_1 = sVar11;\n    if (((uVar17 & 0x1080) != 0) && (sVar11 != 0)) {\n      uVar17 = 0;\n      while( true ) {\n        iVar8 = uVar17 * 0xfc;\n        uVar17 = uVar17 + 1;\n        puVar7 = (undefined4 *)(sVar6 + iVar8);\n        printf((char *)(unaff_EBP + 0x706a),*puVar7,puVar7[2],puVar7[4]);\n        if (*param_1 <= uVar17) break;\n        sVar6 = param_1[1];\n      }\n      return;\n    }\n    return;\n  }" ({ "{") (expression_statement "printf((char *)(unaff_EBP + 0x7036),sVar11 - sVar6);" (call_expression "printf((char *)(unaff_EBP + 0x7036),sVar11 - sVar6)" (identifier "printf") (argument_list "((char *)(unaff_EBP + 0x7036),sVar11 - sVar6)" (( "(") (cast_expression "(char *)(unaff_EBP + 0x7036)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x7036)" (( "(") (binary_expression "unaff_EBP + 0x7036" (identifier "unaff_EBP") (+ "+") (number_literal "0x7036")) () ")"))) (, ",") (binary_expression "sVar11 - sVar6" (identifier "sVar11") (- "-") (identifier "sVar6")) () ")"))) (; ";")) (expression_statement "sVar6 = param_1[1];" (assignment_expression "sVar6 = param_1[1]" (identifier "sVar6") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar17 = *local_28;" (assignment_expression "uVar17 = *local_28" (identifier "uVar17") (= "=") (pointer_expression "*local_28" (* "*") (identifier "local_28"))) (; ";")) (expression_statement "param_1[2] = (size_t)local_40;" (assignment_expression "param_1[2] = (size_t)local_40" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(size_t)local_40" (( "(") (type_descriptor "size_t" (primitive_type "size_t")) () ")") (identifier "local_40"))) (; ";")) (expression_statement "sVar11 = ((int)((int)local_40 - sVar6) >> 2) * -0x41041041;" (assignment_expression "sVar11 = ((int)((int)local_40 - sVar6) >> 2) * -0x41041041" (identifier "sVar11") (= "=") (binary_expression "((int)((int)local_40 - sVar6) >> 2) * -0x41041041" (parenthesized_expression "((int)((int)local_40 - sVar6) >> 2)" (( "(") (binary_expression "(int)((int)local_40 - sVar6) >> 2" (cast_expression "(int)((int)local_40 - sVar6)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((int)local_40 - sVar6)" (( "(") (binary_expression "(int)local_40 - sVar6" (cast_expression "(int)local_40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_40")) (- "-") (identifier "sVar6")) () ")"))) (>> ">>") (number_literal "2")) () ")")) (* "*") (number_literal "-0x41041041"))) (; ";")) (expression_statement "*param_1 = sVar11;" (assignment_expression "*param_1 = sVar11" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "sVar11")) (; ";")) (if_statement "if (((uVar17 & 0x1080) != 0) && (sVar11 != 0)) {\n      uVar17 = 0;\n      while( true ) {\n        iVar8 = uVar17 * 0xfc;\n        uVar17 = uVar17 + 1;\n        puVar7 = (undefined4 *)(sVar6 + iVar8);\n        printf((char *)(unaff_EBP + 0x706a),*puVar7,puVar7[2],puVar7[4]);\n        if (*param_1 <= uVar17) break;\n        sVar6 = param_1[1];\n      }\n      return;\n    }" (if "if") (parenthesized_expression "(((uVar17 & 0x1080) != 0) && (sVar11 != 0))" (( "(") (binary_expression "((uVar17 & 0x1080) != 0) && (sVar11 != 0)" (parenthesized_expression "((uVar17 & 0x1080) != 0)" (( "(") (binary_expression "(uVar17 & 0x1080) != 0" (parenthesized_expression "(uVar17 & 0x1080)" (( "(") (binary_expression "uVar17 & 0x1080" (identifier "uVar17") (& "&") (number_literal "0x1080")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(sVar11 != 0)" (( "(") (binary_expression "sVar11 != 0" (identifier "sVar11") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      uVar17 = 0;\n      while( true ) {\n        iVar8 = uVar17 * 0xfc;\n        uVar17 = uVar17 + 1;\n        puVar7 = (undefined4 *)(sVar6 + iVar8);\n        printf((char *)(unaff_EBP + 0x706a),*puVar7,puVar7[2],puVar7[4]);\n        if (*param_1 <= uVar17) break;\n        sVar6 = param_1[1];\n      }\n      return;\n    }" ({ "{") (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" (identifier "uVar17") (= "=") (number_literal "0")) (; ";")) (while_statement "while( true ) {\n        iVar8 = uVar17 * 0xfc;\n        uVar17 = uVar17 + 1;\n        puVar7 = (undefined4 *)(sVar6 + iVar8);\n        printf((char *)(unaff_EBP + 0x706a),*puVar7,puVar7[2],puVar7[4]);\n        if (*param_1 <= uVar17) break;\n        sVar6 = param_1[1];\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        iVar8 = uVar17 * 0xfc;\n        uVar17 = uVar17 + 1;\n        puVar7 = (undefined4 *)(sVar6 + iVar8);\n        printf((char *)(unaff_EBP + 0x706a),*puVar7,puVar7[2],puVar7[4]);\n        if (*param_1 <= uVar17) break;\n        sVar6 = param_1[1];\n      }" ({ "{") (expression_statement "iVar8 = uVar17 * 0xfc;" (assignment_expression "iVar8 = uVar17 * 0xfc" (identifier "iVar8") (= "=") (binary_expression "uVar17 * 0xfc" (identifier "uVar17") (* "*") (number_literal "0xfc"))) (; ";")) (expression_statement "uVar17 = uVar17 + 1;" (assignment_expression "uVar17 = uVar17 + 1" (identifier "uVar17") (= "=") (binary_expression "uVar17 + 1" (identifier "uVar17") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar7 = (undefined4 *)(sVar6 + iVar8);" (assignment_expression "puVar7 = (undefined4 *)(sVar6 + iVar8)" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)(sVar6 + iVar8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(sVar6 + iVar8)" (( "(") (binary_expression "sVar6 + iVar8" (identifier "sVar6") (+ "+") (identifier "iVar8")) () ")")))) (; ";")) (expression_statement "printf((char *)(unaff_EBP + 0x706a),*puVar7,puVar7[2],puVar7[4]);" (call_expression "printf((char *)(unaff_EBP + 0x706a),*puVar7,puVar7[2],puVar7[4])" (identifier "printf") (argument_list "((char *)(unaff_EBP + 0x706a),*puVar7,puVar7[2],puVar7[4])" (( "(") (cast_expression "(char *)(unaff_EBP + 0x706a)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x706a)" (( "(") (binary_expression "unaff_EBP + 0x706a" (identifier "unaff_EBP") (+ "+") (number_literal "0x706a")) () ")"))) (, ",") (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (, ",") (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]")) (, ",") (subscript_expression "puVar7[4]" (identifier "puVar7") ([ "[") (number_literal "4") (] "]")) () ")"))) (; ";")) (if_statement "if (*param_1 <= uVar17) break;" (if "if") (parenthesized_expression "(*param_1 <= uVar17)" (( "(") (binary_expression "*param_1 <= uVar17" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (<= "<=") (identifier "uVar17")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "sVar6 = param_1[1];" (assignment_expression "sVar6 = param_1[1]" (identifier "sVar6") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "*param_1 = sVar6;" (assignment_expression "*param_1 = sVar6" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "sVar6")) (; ";")) (expression_statement "param_1[2] = (size_t)local_40;" (assignment_expression "param_1[2] = (size_t)local_40" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(size_t)local_40" (( "(") (type_descriptor "size_t" (primitive_type "size_t")) () ")") (identifier "local_40"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (labeled_statement "LAB_0001d0c0:\n  sVar6 = ((int)((int)local_40 - param_1[1]) >> 2) * -0x41041041;" (statement_identifier "LAB_0001d0c0") (: ":") (expression_statement "sVar6 = ((int)((int)local_40 - param_1[1]) >> 2) * -0x41041041;" (assignment_expression "sVar6 = ((int)((int)local_40 - param_1[1]) >> 2) * -0x41041041" (identifier "sVar6") (= "=") (binary_expression "((int)((int)local_40 - param_1[1]) >> 2) * -0x41041041" (parenthesized_expression "((int)((int)local_40 - param_1[1]) >> 2)" (( "(") (binary_expression "(int)((int)local_40 - param_1[1]) >> 2" (cast_expression "(int)((int)local_40 - param_1[1])" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((int)local_40 - param_1[1])" (( "(") (binary_expression "(int)local_40 - param_1[1]" (cast_expression "(int)local_40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_40")) (- "-") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) () ")"))) (>> ">>") (number_literal "2")) () ")")) (* "*") (number_literal "-0x41041041"))) (; ";"))) (goto_statement "goto LAB_0001d0d2;" (goto "goto") (statement_identifier "LAB_0001d0d2") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bp replaced with injection: get_pc_thunk.bp */
/* WARNING: Unknown calling convention */

void function_1(type_1 *tab)

{
  type_2 var_8;
  type_2 var_9;
  char var_11;
  type_3 var_17;
  type_3 var_16;
  type_4 bVar6;
  type_3 var_2;
  type_5 *var_15;
  int var_14;
  type_3 var_3;
  int var_19;
  type_6 uVar12;
  type_5 *pSVar13;
  int var_18;
  char *pcVar15;
  type_5 *pSVar16;
  type_2 bVar17;
  type_5 *var_4;
  type_3 var_7;
  type_3 var_6;
  type_3 var_10;
  type_3 var_5;
  
  bVar17 = 0;
  if (tab->len == 0) {
    return;
  }
  var_1(tab->base,tab->len,0xfc,cmp_addr);
  var_4 = tab->base;
  var_2 = (type_3)var_4->addr;
  var_3 = *(type_3 *)((int)&var_4->addr + 4);
  var_7 = var_2 + 1;
  var_6 = var_3 + (0xfffffffe < var_2);
  if (var_4 < tab->limit) {
    var_5 = var_13;
    var_15 = var_4;
    do {
      var_10 = var_5 & 0x1080;
      if (var_6 == var_3 && var_7 == var_2) {
        var_8 = var_15->field_0x1c;
        var_9 = var_4[-1].field_0x1c;
        if (((var_8 & 2) != 0) || ((var_9 & 2) == 0)) {
          if (((var_8 ^ var_9) & 2) == 0) {
            if (((var_8 & 1) != 0) && ((var_9 & 1) == 0)) {
              if (var_10 != 0) {
                pcVar15 = var_4[-1].name;
                if ((var_9 & 2) == 0) {
                  var_14 = 0x66;
                  var_19 = 0x54;
                  goto LAB_0001d325;
                }
                var_19 = 0x74;
                var_14 = 0x66;
                uVar12 = 0x46;
                goto LAB_0001d049;
              }
              goto LAB_0001d094;
            }
            if (((var_8 ^ var_9) & 1) == 0) {
              var_11 = *var_15->name;
              if (var_11 != '_') {
                if (*var_4[-1].name == '_') goto LAB_0001d008;
                if (var_11 == '\0') goto LAB_0001d190;
              }
              if ((var_15->name[1] != '_') && (var_4[-1].name[1] == '_')) goto LAB_0001d008;
            }
          }
LAB_0001d190:
          if (var_10 != 0) {
            var_12("[symtab_finalize] favor %s@%c%c over %s@%c%c",var_4[-1].name,
                   (-(type_3)((var_9 & 2) == 0) & 0xffffffe0) + 0x74,
                   (-(type_3)((var_9 & 1) == 0) & 0x20) + 0x46,var_15->name,
                   (-(type_3)((var_8 & 2) == 0) & 0xffffffe0) + 0x74,
                   (-(type_3)((var_8 & 1) == 0) & 0x20) + 0x46);
            var_12(" (addr=%lx)\n",(int)var_15->addr);
            var_5 = var_13;
            var_10 = var_13 & 0x1080;
          }
          goto LAB_0001cfa6;
        }
LAB_0001d008:
        if (var_10 != 0) {
          uVar12 = 0x66;
          pcVar15 = var_4[-1].name;
          var_14 = (-(type_3)((var_9 & 1) == 0) & 0x20) + 0x46;
          var_19 = (-(type_3)((var_9 & 2) == 0) & 0xffffffe0) + 0x74;
          if ((var_8 & 1) != 0) {
LAB_0001d325:
            uVar12 = 0x46;
          }
LAB_0001d049:
          var_12("[symtab_finalize] favor %s@%c%c over %s@%c%c",var_15->name,
                 (-(type_3)((var_8 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,pcVar15,var_19,var_14);
          var_12(" (addr=%lx)\n",(int)var_15->addr);
          var_5 = var_13;
          var_10 = var_13 & 0x1080;
        }
LAB_0001d094:
        pSVar13 = var_15;
        pSVar16 = var_4 + -1;
        for (var_14 = 0x3f; var_14 != 0; var_14 = var_14 + -1) {
          *(int *)&pSVar16->addr = (int)pSVar13->addr;
          pSVar13 = (type_5 *)((int)pSVar13 + (type_3)bVar17 * -8 + 4);
          pSVar16 = (type_5 *)((int)pSVar16 + (type_3)bVar17 * -8 + 4);
        }
        if (tab->limit <= var_15 + 1) goto LAB_0001d0c0;
      }
      else {
        if ((tab->base < var_4) &&
           (*(int *)((int)&var_4[-1].end_addr + 4) == 0 && (int)var_4[-1].end_addr == 0)) {
          *(type_3 *)&var_4[-1].end_addr = var_2 - 1;
          *(type_3 *)((int)&var_4[-1].end_addr + 4) = (var_3 - 1) + (type_3)(var_2 != 0);
        }
        var_17 = (type_3)var_15->end_addr;
        var_16 = *(type_3 *)((int)&var_15->end_addr + 4);
        if ((var_3 <= var_16 && (type_3)(var_17 < var_2) <= var_16 - var_3) ||
           (var_17 == 0 && var_16 == 0)) {
          pSVar13 = var_15;
          pSVar16 = var_4;
          for (var_14 = 0x3f; var_14 != 0; var_14 = var_14 + -1) {
            *(int *)&pSVar16->addr = (int)pSVar13->addr;
            pSVar13 = (type_5 *)((int)pSVar13 + (type_3)bVar17 * -8 + 4);
            pSVar16 = (type_5 *)((int)pSVar16 + (type_3)bVar17 * -8 + 4);
          }
          var_7 = (type_3)var_15->addr;
          var_6 = *(type_3 *)((int)&var_15->addr + 4);
          var_4 = var_4 + 1;
        }
LAB_0001cfa6:
        if (tab->limit <= var_15 + 1) goto LAB_0001d0c0;
      }
      var_2 = (type_3)var_15[1].addr;
      var_3 = *(type_3 *)((int)&var_15[1].addr + 4);
      var_15 = var_15 + 1;
    } while( true );
  }
  var_10 = var_13 & 0x1080;
  var_2 = 0;
LAB_0001d0d2:
  var_3 = tab->len;
  if ((var_3 != 0) &&
     (*(int *)((int)&var_4[-1].end_addr + 4) == 0 && (int)var_4[-1].end_addr == 0)) {
    var_17 = (type_3)core_text_sect->size;
    bVar6 = core_text_sect->vma;
    var_18 = var_17 + (int)core_text_sect->vma;
    var_14 = *(int *)((int)&core_text_sect->size + 4);
    var_19 = *(int *)((int)&core_text_sect->vma + 4);
    *(int *)&var_4[-1].end_addr = var_18 + -1;
    *(type_3 *)((int)&var_4[-1].end_addr + 4) =
         var_14 + var_19 + (type_3)var_20(var_17,(type_3)bVar6) + -1 + (type_3)(var_18 != 0);
  }
  if (var_10 != 0) {
    var_12("[symtab_finalize]: removed %d duplicate entries\n",var_3 - var_2);
    var_14 = var_13;
    var_15 = tab->base;
    tab->limit = var_4;
    var_2 = ((int)var_4 - (int)var_15 >> 2) * -0x41041041;
    tab->len = var_2;
    if (((var_14 & 0x1080U) != 0) && (var_2 != 0)) {
      var_2 = 0;
      while( true ) {
        var_15 = var_15 + var_2;
        var_12("[symtab_finalize] 0x%lx-0x%lx\t%s\n",(int)var_15->addr,(int)var_15->end_addr,
               var_15->name);
        if (tab->len <= var_2 + 1) break;
        var_15 = tab->base;
        var_2 = var_2 + 1;
      }
      return;
    }
    return;
  }
  tab->len = var_2;
  tab->limit = var_4;
  return;
LAB_0001d0c0:
  var_2 = ((int)var_4 - (int)tab->base >> 2) * -0x41041041;
  goto LAB_0001d0d2;
}


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

void MASKED(size_t *param_1)

{
  uint *puVar1;
  byte bVar2;
  byte bVar3;
  char cVar4;
  uint uVar5;
  size_t sVar6;
  undefined4 *puVar7;
  int iVar8;
  uint uVar9;
  int iVar10;
  size_t sVar11;
  undefined4 uVar12;
  int unaff_EBP;
  uint *puVar13;
  uint *puVar14;
  int iVar15;
  uint *puVar16;
  uint uVar17;
  byte bVar18;
  uint *local_40;
  uint local_3c;
  uint local_38;
  uint local_34;
  uint local_30;
  uint *local_28;
  
  bVar18 = 0;
  FUN_0001c80d();
  if (*param_1 == 0) {
    return;
  }
  qsort((void *)param_1[1],*param_1,0xfc,(__compar_fn_t)(unaff_EBP + -0xc6));
  local_40 = (uint *)param_1[1];
  uVar17 = *local_40;
  uVar9 = local_40[1];
  local_3c = uVar17 + 1;
  local_38 = uVar9 + (0xfffffffe < uVar17);
  if (local_40 < (uint *)param_1[2]) {
    puVar1 = (uint *)(unaff_EBP + 0x112c2);
    local_30 = *puVar1;
    puVar13 = local_40;
    do {
      local_34 = local_30 & 0x1080;
      if (local_38 == uVar9 && local_3c == uVar17) {
        bVar2 = (byte)puVar13[7];
        bVar3 = (byte)local_40[-0x38];
        if (((bVar2 & 2) != 0) || ((bVar3 & 2) == 0)) {
          if (((bVar2 ^ bVar3) & 2) == 0) {
            if (((bVar2 & 1) != 0) && ((bVar3 & 1) == 0)) {
              if (local_34 != 0) {
                uVar17 = local_40[-0x3b];
                if ((bVar3 & 2) == 0) {
                  iVar8 = 0x66;
                  iVar10 = 0x54;
                  goto LAB_0001d325;
                }
                iVar10 = 0x74;
                iVar8 = 0x66;
                uVar12 = 0x46;
                goto LAB_0001d049;
              }
              goto LAB_0001d094;
            }
            if (((bVar2 ^ bVar3) & 1) == 0) {
              cVar4 = *(char *)puVar13[4];
              if (cVar4 != '_') {
                if (*(char *)local_40[-0x3b] == '_') goto LAB_0001d008;
                if (cVar4 == '\0') goto LAB_0001d190;
              }
              if ((((char *)puVar13[4])[1] != '_') && (*(char *)(local_40[-0x3b] + 1) == '_'))
              goto LAB_0001d008;
            }
          }
LAB_0001d190:
          if (local_34 != 0) {
            printf((char *)(unaff_EBP + 0x7006),local_40[-0x3b],
                   (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74,
                   (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46,puVar13[4],
                   (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,
                   (-(uint)((bVar2 & 1) == 0) & 0x20) + 0x46);
            printf((char *)(unaff_EBP + 0x7191),*puVar13);
            local_30 = *puVar1;
            local_34 = local_30 & 0x1080;
          }
          goto LAB_0001cfa6;
        }
LAB_0001d008:
        if (local_34 != 0) {
          uVar12 = 0x66;
          uVar17 = local_40[-0x3b];
          iVar8 = (-(uint)((bVar3 & 1) == 0) & 0x20) + 0x46;
          iVar10 = (-(uint)((bVar3 & 2) == 0) & 0xffffffe0) + 0x74;
          if ((bVar2 & 1) != 0) {
LAB_0001d325:
            uVar12 = 0x46;
          }
LAB_0001d049:
          printf((char *)(unaff_EBP + 0x7006),puVar13[4],
                 (-(uint)((bVar2 & 2) == 0) & 0xffffffe0) + 0x74,uVar12,uVar17,iVar10,iVar8);
          printf((char *)(unaff_EBP + 0x7191),*puVar13);
          local_30 = *puVar1;
          local_34 = local_30 & 0x1080;
        }
LAB_0001d094:
        puVar14 = puVar13;
        puVar16 = local_40 + -0x3f;
        for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {
          *puVar16 = *puVar14;
          puVar14 = puVar14 + (uint)bVar18 * -2 + 1;
          puVar16 = puVar16 + (uint)bVar18 * -2 + 1;
        }
        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;
      }
      else {
        if (((uint *)param_1[1] < local_40) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0)) {
          local_40[-0x3d] = uVar17 - 1;
          local_40[-0x3c] = (uVar9 - 1) + (uint)(uVar17 != 0);
        }
        uVar5 = puVar13[3];
        if ((uVar9 <= uVar5 && (uint)(puVar13[2] < uVar17) <= uVar5 - uVar9) ||
           (puVar13[2] == 0 && uVar5 == 0)) {
          puVar14 = puVar13;
          puVar16 = local_40;
          for (iVar8 = 0x3f; iVar8 != 0; iVar8 = iVar8 + -1) {
            *puVar16 = *puVar14;
            puVar14 = puVar14 + (uint)bVar18 * -2 + 1;
            puVar16 = puVar16 + (uint)bVar18 * -2 + 1;
          }
          local_3c = *puVar13;
          local_38 = puVar13[1];
          local_40 = local_40 + 0x3f;
        }
LAB_0001cfa6:
        if ((uint *)param_1[2] <= puVar13 + 0x3f) goto LAB_0001d0c0;
      }
      uVar17 = puVar13[0x3f];
      uVar9 = puVar13[0x40];
      puVar13 = puVar13 + 0x3f;
    } while( true );
  }
  local_34 = *(uint *)(unaff_EBP + 0x112c2) & 0x1080;
  sVar6 = 0;
LAB_0001d0d2:
  local_28 = (uint *)(unaff_EBP + 0x112c2);
  sVar11 = *param_1;
  if ((sVar11 != 0) && (local_40[-0x3c] == 0 && local_40[-0x3d] == 0)) {
    iVar8 = *(int *)(unaff_EBP + 0x11666);
    uVar17 = *(uint *)(iVar8 + 0x2c);
    uVar9 = *(uint *)(iVar8 + 0x1c);
    iVar15 = uVar17 + *(uint *)(iVar8 + 0x1c);
    iVar10 = *(int *)(iVar8 + 0x30);
    iVar8 = *(int *)(iVar8 + 0x20);
    local_40[-0x3d] = iVar15 - 1;
    local_40[-0x3c] = iVar10 + iVar8 + (uint)CARRY4(uVar17,uVar9) + -1 + (uint)(iVar15 != 0);
  }
  if (local_34 != 0) {
    printf((char *)(unaff_EBP + 0x7036),sVar11 - sVar6);
    sVar6 = param_1[1];
    uVar17 = *local_28;
    param_1[2] = (size_t)local_40;
    sVar11 = ((int)((int)local_40 - sVar6) >> 2) * -0x41041041;
    *param_1 = sVar11;
    if (((uVar17 & 0x1080) != 0) && (sVar11 != 0)) {
      uVar17 = 0;
      while( true ) {
        iVar8 = uVar17 * 0xfc;
        uVar17 = uVar17 + 1;
        puVar7 = (undefined4 *)(sVar6 + iVar8);
        printf((char *)(unaff_EBP + 0x706a),*puVar7,puVar7[2],puVar7[4]);
        if (*param_1 <= uVar17) break;
        sVar6 = param_1[1];
      }
      return;
    }
    return;
  }
  *param_1 = sVar6;
  param_1[2] = (size_t)local_40;
  return;
LAB_0001d0c0:
  sVar6 = ((int)((int)local_40 - param_1[1]) >> 2) * -0x41041041;
  goto LAB_0001d0d2;
}

