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

int display_debug_aranges(dwarf_section *section,void *file)

{
  uchar *puVar1;
  uint uVar2;
  undefined *puVar3;
  FILE *pFVar4;
  int iVar5;
  char *pcVar6;
  FILE *pFVar7;
  FILE *pFVar8;
  dwarf_vma *pdVar9;
  char *message;
  char *pcVar10;
  dwarf_section *in_ECX;
  uint uVar11;
  uint uVar12;
  int iVar13;
  uint uVar14;
  uchar *puVar15;
  uchar *puVar16;
  uchar *puVar17;
  elf_vma eVar18;
  undefined *puVar19;
  char *in_stack_ffffff98;
  void *in_stack_ffffffa4;
  undefined8 local_4c;
  uint local_44;
  uint local_3c;
  int local_30;
  short local_2c;
  ushort local_28;
  int local_20;
  
  puVar1 = section->start;
  puVar16 = puVar1 + (int)section->size;
  introduce((dwarf_section *)section->name,(bfd_boolean)&section->filename,in_ECX);
  load_debug_info(in_stack_ffffffa4);
  do {
    if (puVar16 <= puVar1) {
LAB_00065bcc:
      putchar(10);
      return 1;
    }
    puVar15 = puVar1 + 4;
    if (puVar15 < puVar16) {
      pFVar4 = (FILE *)0x4;
LAB_00065c45:
      local_4c = (*byte_get)(puVar1,(int)pFVar4);
      if (local_4c == 0xffffffff) {
        puVar17 = puVar1 + 0xc;
        if (puVar17 < puVar16) {
          pFVar8 = (FILE *)0x8;
        }
        else if ((puVar16 <= puVar15) ||
                (pFVar8 = (FILE *)(puVar16 + -(int)puVar15),
                (char *)0x7 < pFVar8[-1]._unused2 + 0x27)) {
          local_20 = 0xc;
          iVar5 = 8;
          goto LAB_000658c1;
        }
        local_4c = (*byte_get)(puVar15,(int)pFVar8);
        local_20 = 0xc;
        iVar5 = 8;
        puVar15 = puVar17;
        pFVar4 = pFVar8;
      }
      else {
        local_20 = 4;
        iVar5 = 4;
      }
      uVar14 = (int)puVar15 - (int)section->start;
      uVar11 = (uint)local_4c + uVar14;
      uVar12 = local_4c._4_4_ + (uint)CARRY4((uint)local_4c,uVar14);
      if ((uVar11 < uVar14) <= uVar12) goto LAB_000658e2;
LAB_00065ec0:
      pcVar10 = dwarf_vmatoa_1("x",ZEXT48(pFVar4) << 0x20,(uint)local_4c);
      pcVar6 = section->name;
      message = (char *)dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);
      warn(message,pcVar6,uVar14 - local_20,pcVar10);
      goto LAB_00065bcc;
    }
    pFVar4 = (FILE *)(puVar16 + -(int)puVar1);
    if (pFVar4[-1]._unused2 + 0x27 < (char *)0x8) goto LAB_00065c45;
    local_20 = 4;
    iVar5 = 4;
    puVar17 = puVar15;
    pFVar4 = (FILE *)in_stack_ffffff98;
LAB_000658c1:
    uVar12 = 0;
    local_4c = 0;
    uVar11 = (int)puVar17 - (int)section->start;
    puVar15 = puVar17;
    uVar14 = uVar11;
LAB_000658e2:
    uVar2 = *(uint *)((int)&section->size + 4);
    if (uVar2 < uVar12 || uVar2 - uVar12 < (uint)((uint)section->size < uVar11)) goto LAB_00065ec0;
    puVar17 = puVar15 + 2;
    iVar13 = iVar5;
    if (puVar17 < puVar16) {
      eVar18 = (*byte_get)(puVar15,2);
      local_2c = (short)eVar18;
      if (puVar17 + iVar5 < puVar16) {
LAB_00065e10:
        local_28 = local_2c - 2;
LAB_00065944:
        eVar18 = (*byte_get)(puVar17,iVar13);
        local_30 = (int)eVar18;
        goto LAB_0006595d;
      }
      local_28 = local_2c - 2;
      iVar13 = (int)puVar16 - (int)puVar17;
      if (((int)puVar16 - (int)puVar17) - 1U < 8) goto LAB_00065944;
LAB_00065cf4:
      local_30 = 0;
      if (num_debug_info_entries - 1 < 0xfffffffe) goto LAB_00065d0e;
LAB_0006596f:
      puVar15 = puVar17 + iVar5 + 1;
      if (puVar16 <= puVar15) goto LAB_0006597e;
LAB_00065d80:
      eVar18 = (*byte_get)(puVar17 + iVar5,1);
      local_44._0_1_ = (byte)eVar18;
      puVar17 = puVar17 + iVar5 + 2;
      if (puVar17 < puVar16) goto LAB_00065e60;
      iVar5 = (int)puVar16 - (int)puVar15;
      if (iVar5 - 1U < 8) goto LAB_000659ad;
LAB_00065dbc:
      local_3c._0_1_ = 0;
      if (local_28 < 2) goto LAB_000659c7;
LAB_00065dcd:
      if (local_2c != 0) {
        pcVar6 = "Only DWARF 2 and 3 aranges are currently supported.\n";
LAB_00065de4:
        pcVar6 = (char *)dcgettext(0,pcVar6,5);
        warn(pcVar6);
      }
      goto LAB_00065bcc;
    }
    if ((puVar16 <= puVar15) || (7 < ((int)puVar16 - (int)puVar15) - 1U)) {
      local_28 = 0xfffe;
      local_2c = 0;
      if (puVar16 <= puVar17 + iVar5) goto LAB_00065cf4;
      goto LAB_00065944;
    }
    eVar18 = (*byte_get)(puVar15,(int)puVar16 - (int)puVar15);
    local_2c = (short)eVar18;
    if (puVar17 + iVar5 < puVar16) goto LAB_00065e10;
    local_28 = local_2c - 2;
    local_30 = 0;
LAB_0006595d:
    if (0xfffffffd < num_debug_info_entries - 1) goto LAB_0006596f;
LAB_00065d0e:
    uVar14 = 0;
    pdVar9 = &debug_information->cu_offset;
    do {
      if ((int)*pdVar9 == local_30 && *(int *)((int)pdVar9 + 4) == 0) goto LAB_0006596f;
      uVar14 = uVar14 + 1;
      pdVar9 = pdVar9 + 10;
    } while (num_debug_info_entries != uVar14);
    pcVar6 = section->name;
    pcVar10 = (char *)dcgettext(0,
                                ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"
                                ,5);
    warn(pcVar10,local_30,pcVar6);
    puVar15 = puVar17 + iVar5 + 1;
    if (puVar15 < puVar16) goto LAB_00065d80;
LAB_0006597e:
    puVar17 = puVar17 + iVar5;
    if ((puVar17 < puVar16) && (((int)puVar16 - (int)puVar17) - 1U < 8)) {
      eVar18 = (*byte_get)(puVar17,(int)puVar16 - (int)puVar17);
      local_44._0_1_ = (byte)eVar18;
      puVar17 = puVar17 + 2;
      local_3c._0_1_ = 0;
      if (puVar17 < puVar16) {
LAB_00065e60:
        iVar5 = 1;
        goto LAB_000659ad;
      }
    }
    else {
      puVar17 = puVar17 + 2;
      if (puVar16 <= puVar17) {
        local_44._0_1_ = 0;
        goto LAB_00065dbc;
      }
      local_44._0_1_ = 0;
      iVar5 = 1;
LAB_000659ad:
      eVar18 = (*byte_get)(puVar15,iVar5);
      local_3c._0_1_ = (byte)eVar18;
    }
    if (1 < local_28) goto LAB_00065dcd;
LAB_000659c7:
    pcVar6 = (char *)dcgettext(0,"  Length:                   %ld\n",5);
    printf(pcVar6,(uint)local_4c);
    pcVar6 = (char *)dcgettext(0,"  Version:                  %d\n",5);
    printf(pcVar6,local_2c);
    pcVar6 = (char *)dcgettext(0,"  Offset into .debug_info:  0x%lx\n",5);
    printf(pcVar6,local_30);
    pcVar6 = (char *)dcgettext(0,"  Pointer Size:             %d\n",5);
    printf(pcVar6,(uint)(byte)local_44);
    pcVar6 = (char *)dcgettext(0,"  Segment Size:             %d\n",5);
    printf(pcVar6,(uint)(byte)local_3c);
    local_3c._0_1_ = (byte)local_3c + (byte)local_44;
    if (7 < (byte)((byte)local_3c - 1)) {
      pcVar6 = section->name;
      pcVar10 = (char *)dcgettext(0,"Invalid address size in %s section!\n",5);
      error(pcVar10,pcVar6);
      goto LAB_00065bcc;
    }
    pFVar4 = (FILE *)(uint)(byte)local_3c;
    if (((uint)(pFVar4[-1]._unused2 + 0x27) & (uint)pFVar4) != 0) {
      pcVar6 = "Pointer size + Segment size is not a power of two.\n";
      goto LAB_00065de4;
    }
    if ((byte)local_3c < 5) {
      in_stack_ffffff98 = "\n    Address    Length\n";
    }
    else {
      in_stack_ffffff98 = "\n    Address            Length\n";
    }
    pcVar6 = (char *)dcgettext(0,in_stack_ffffff98,5);
    printf(pcVar6);
    puVar3 = PTR_stdout_000b3fd8;
    iVar5 = (int)pFVar4 * 2;
    iVar13 = ((int)puVar17 - (int)puVar1) % iVar5;
    if (iVar13 != 0) {
      puVar17 = puVar17 + (iVar5 - iVar13);
    }
    puVar1 = puVar1 + local_20 + (uint)local_4c;
    if (puVar17 + iVar5 <= puVar1) {
      puVar17 = puVar17 + (int)pFVar4;
      do {
        puVar15 = puVar17 + -(int)pFVar4;
        pFVar7 = pFVar4;
        pFVar8 = pFVar4;
        if ((puVar17 < puVar16) ||
           ((puVar15 < puVar16 &&
            (pFVar7 = (FILE *)(puVar16 + -(int)puVar15),
            ((FILE *)(puVar16 + -(int)puVar15))[-1]._unused2 + 0x27 < (char *)0x8)))) {
          eVar18 = (*byte_get)(puVar15,(int)pFVar7);
          local_3c = (uint)eVar18;
          uVar14 = local_3c;
          if ((puVar15 + iVar5 < puVar16) ||
             ((puVar17 < puVar16 &&
              (pFVar8 = (FILE *)(puVar16 + -(int)puVar17),
              ((FILE *)(puVar16 + -(int)puVar17))[-1]._unused2 + 0x27 < (char *)0x8))))
          goto LAB_00065b58;
LAB_00065c2a:
          local_44 = 0;
        }
        else {
          local_3c = 0;
          uVar14 = local_3c;
          local_3c = 0;
          pFVar7 = (FILE *)in_stack_ffffff98;
          if (puVar16 <= puVar15 + iVar5) goto LAB_00065c2a;
LAB_00065b58:
          local_3c = uVar14;
          eVar18 = (*byte_get)(puVar17,(int)pFVar8);
          local_44 = (uint)eVar18;
          pFVar7 = pFVar8;
        }
        puVar19 = &DAT_0007c3b4;
        printf("    ");
        print_dwarf_vma(CONCAT44(pFVar7,puVar19),local_3c);
        print_dwarf_vma(CONCAT44(pFVar7,puVar19),local_44);
        in_stack_ffffff98 = *(char **)puVar3;
        putc(10,(FILE *)in_stack_ffffff98);
        puVar17 = puVar17 + iVar5;
      } while (puVar17 + (int)(pFVar4->_shortbuf + -0x47) <= puVar1);
    }
  } while( true );
}



undefined4 FUN_00065840(int param_1)

{
  undefined4 *puVar1;
  ulonglong uVar2;
  byte bVar3;
  char cVar4;
  int iVar5;
  char *pcVar6;
  uint uVar7;
  uint uVar8;
  int *piVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  int iVar13;
  int iVar14;
  uint uVar15;
  int unaff_EBP;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  longlong lVar19;
  int local_4c;
  int local_44;
  uint local_3c;
  uint local_34;
  int local_30;
  short local_2c;
  ushort local_28;
  int local_20;
  
  FUN_0004ab89();
  local_34 = *(uint *)(param_1 + 0x10);
  uVar16 = *(int *)(param_1 + 0x1c) + local_34;
  FUN_0004eb80();
  FUN_00062460();
  if (local_34 < uVar16) {
    do {
      uVar17 = local_34 + 4;
      if (uVar17 < uVar16) {
        iVar5 = 4;
LAB_00065c45:
        lVar19 = (**(code **)(unaff_EBP + 0x54592))(local_34,iVar5);
        if (lVar19 == 0xffffffff) {
          uVar18 = local_34 + 0xc;
          if (uVar18 < uVar16) {
            iVar5 = 8;
          }
          else if ((uVar16 <= uVar17) || (iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U)) {
            local_20 = 0xc;
            local_44 = 8;
            goto LAB_000658c1;
          }
          lVar19 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);
          local_20 = 0xc;
          local_44 = 8;
          uVar17 = uVar18;
        }
        else {
          local_20 = 4;
          local_44 = 4;
        }
        local_4c = (int)lVar19;
        local_3c = uVar17 - *(int *)(param_1 + 0x10);
        uVar2 = lVar19 + (ulonglong)local_3c;
        if ((uint)((uint)uVar2 < local_3c) <= (uint)(uVar2 >> 0x20)) goto LAB_000658e2;
LAB_00065ec0:
        uVar12 = FUN_0004cb50(0);
        uVar10 = *(undefined4 *)(param_1 + 8);
        uVar11 = dcgettext(0,unaff_EBP + 0x2a752,5);
        warn(uVar11,uVar10,local_3c - local_20,uVar12);
        break;
      }
      iVar5 = uVar16 - local_34;
      if (iVar5 - 1U < 8) goto LAB_00065c45;
      local_20 = 4;
      local_44 = 4;
      uVar18 = uVar17;
LAB_000658c1:
      local_4c = 0;
      local_3c = uVar18 - *(int *)(param_1 + 0x10);
      uVar2 = (ulonglong)local_3c;
      uVar17 = uVar18;
LAB_000658e2:
      iVar5 = local_44;
      uVar18 = (uint)(uVar2 >> 0x20);
      if (*(uint *)(param_1 + 0x20) < uVar18 ||
          *(uint *)(param_1 + 0x20) - uVar18 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar2))
      goto LAB_00065ec0;
      uVar18 = uVar17 + 2;
      if (uVar18 < uVar16) {
        local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,2);
        if (local_44 + uVar18 < uVar16) {
LAB_00065e10:
          local_28 = local_2c - 2;
LAB_00065944:
          local_30 = (**(code **)(unaff_EBP + 0x54592))(uVar18,local_44);
          goto LAB_0006595d;
        }
        local_28 = local_2c - 2;
        local_44 = uVar16 - uVar18;
        if (local_44 - 1U < 8) goto LAB_00065944;
LAB_00065cf4:
        iVar13 = *(int *)(unaff_EBP + 0x54526);
        local_30 = 0;
        if (iVar13 - 1U < 0xfffffffe) goto LAB_00065d0e;
LAB_0006596f:
        uVar17 = uVar18 + iVar5 + 1;
        if (uVar16 <= uVar17) goto LAB_0006597e;
LAB_00065d80:
        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18 + iVar5,1);
        uVar18 = uVar18 + iVar5 + 2;
        if (uVar18 < uVar16) goto LAB_00065e60;
        iVar5 = uVar16 - uVar17;
        if (iVar5 - 1U < 8) goto LAB_000659ad;
LAB_00065dbc:
        bVar3 = 0;
        if (local_28 < 2) goto LAB_000659c7;
LAB_00065dcd:
        if (local_2c != 0) {
          iVar5 = unaff_EBP + 0x2c8ee;
LAB_00065de4:
          uVar10 = dcgettext(0,iVar5,5);
          warn(uVar10);
        }
        break;
      }
      if (uVar16 <= uVar17) {
LAB_00065919:
        local_28 = 0xfffe;
        local_2c = 0;
        if (uVar16 <= uVar18 + local_44) goto LAB_00065cf4;
        goto LAB_00065944;
      }
      uVar7 = (uVar16 - uVar17) - 1;
      if (7 < uVar7) goto LAB_00065919;
      local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,uVar16 - uVar17,uVar7,uVar7);
      if (local_44 + uVar18 < uVar16) goto LAB_00065e10;
      local_28 = local_2c - 2;
      local_30 = 0;
LAB_0006595d:
      iVar13 = *(int *)(unaff_EBP + 0x54526);
      if (0xfffffffd < iVar13 - 1U) goto LAB_0006596f;
LAB_00065d0e:
      iVar14 = 0;
      piVar9 = (int *)(*(int *)(unaff_EBP + 0x5451e) + 0xc);
      do {
        if (*piVar9 == local_30 && piVar9[1] == 0) goto LAB_0006596f;
        iVar14 = iVar14 + 1;
        piVar9 = piVar9 + 0x14;
      } while (iVar13 != iVar14);
      iVar13 = *(int *)(param_1 + 8);
      uVar10 = dcgettext(0,unaff_EBP + 0x2c8a2,5);
      warn(uVar10,local_30,iVar13);
      uVar17 = uVar18 + iVar5 + 1;
      if (uVar17 < uVar16) goto LAB_00065d80;
LAB_0006597e:
      uVar18 = uVar18 + iVar5;
      if ((uVar18 < uVar16) && ((uVar16 - uVar18) - 1 < 8)) {
        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar16 - uVar18,iVar13,iVar13);
        uVar18 = uVar18 + 2;
        bVar3 = 0;
        if (uVar18 < uVar16) {
LAB_00065e60:
          iVar5 = 1;
          goto LAB_000659ad;
        }
      }
      else {
        uVar18 = uVar18 + 2;
        if (uVar16 <= uVar18) {
          cVar4 = '\0';
          goto LAB_00065dbc;
        }
        cVar4 = '\0';
        iVar5 = 1;
LAB_000659ad:
        bVar3 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);
      }
      if (1 < local_28) goto LAB_00065dcd;
LAB_000659c7:
      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c926,5);
      printf(pcVar6,local_4c);
      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c94a,5);
      printf(pcVar6,local_2c);
      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c96a,5);
      printf(pcVar6,local_30);
      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c98e,5);
      printf(pcVar6,cVar4);
      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c9ae,5);
      printf(pcVar6,(uint)bVar3);
      bVar3 = bVar3 + cVar4;
      if (7 < (byte)(bVar3 - 1)) {
        uVar10 = *(undefined4 *)(param_1 + 8);
        uVar12 = dcgettext(0,unaff_EBP + 0x2c9ce,5);
        error(uVar12,uVar10);
        break;
      }
      uVar17 = (uint)bVar3;
      if ((uVar17 - 1 & uVar17) != 0) {
        iVar5 = unaff_EBP + 0x2c9f6;
        goto LAB_00065de4;
      }
      if (bVar3 < 5) {
        iVar5 = unaff_EBP + 0x2e6d2;
      }
      else {
        iVar5 = unaff_EBP + 0x2ca2a;
      }
      pcVar6 = (char *)dcgettext(0,iVar5,5);
      printf(pcVar6);
      iVar5 = uVar17 * 2;
      iVar13 = (int)(uVar18 - local_34) % iVar5;
      if (iVar13 != 0) {
        uVar18 = (iVar5 - iVar13) + uVar18;
      }
      local_34 = local_34 + local_20 + local_4c;
      if (uVar18 + iVar5 <= local_34) {
        uVar18 = uVar18 + uVar17;
        puVar1 = *(undefined4 **)(unaff_EBP + 0x4e792);
        do {
          uVar15 = uVar18 - uVar17;
          uVar8 = uVar17;
          uVar7 = uVar17;
          if ((uVar18 < uVar16) ||
             ((uVar15 < uVar16 && (uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8)))) {
            (**(code **)(unaff_EBP + 0x54592))(uVar15,uVar8);
            if ((uVar15 + iVar5 < uVar16) ||
               ((uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8))))
            goto LAB_00065b58;
          }
          else if (uVar15 + iVar5 < uVar16) {
LAB_00065b58:
            (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7);
          }
          printf(&UNK_00016b6e + unaff_EBP);
          FUN_0004ce60();
          FUN_0004ce60();
          putc(10,(FILE *)*puVar1);
          uVar18 = uVar18 + iVar5;
        } while (uVar17 + uVar18 <= local_34);
      }
    } while (local_34 < uVar16);
  }
  putchar(10);
  return 1;
}


PUSH EBP
CALL 0x0004ab89
ADD EBP,0x4e7ba
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x4c
MOV EAX,dword ptr [ESP + 0x60]
MOV EDI,dword ptr [EAX + 0x10]
MOV ESI,dword ptr [EAX + 0x1c]
LEA EDX,[EAX + 0xc]
MOV EAX,dword ptr [EAX + 0x8]
ADD ESI,EDI
MOV dword ptr [ESP + 0x28],EDI
MOV dword ptr [ESP + 0xc],ESI
CALL 0x0004eb80
MOV EAX,dword ptr [ESP + 0x64]
CALL 0x00062460
CMP EDI,ESI
JNC 0x00065bcc
LEA EAX,[EBP + 0x5dd8]
MOV dword ptr [ESP + 0x38],EAX
LEA ESI,[ESI]
MOV EDI,dword ptr [ESP + 0x28]
MOV EAX,dword ptr [ESP + 0xc]
LEA EBX,[EDI + 0x4]
CMP EBX,EAX
JC 0x00065c40
SUB EAX,EDI
LEA EDX,[EAX + -0x1]
CMP EDX,0x7
JBE 0x00065c45
MOV dword ptr [ESP + 0x3c],0x4
MOV dword ptr [ESP + 0x18],0x4
MOV EAX,dword ptr [ESP + 0x60]
MOV ECX,EBX
MOV dword ptr [ESP + 0x10],0x0
XOR EDX,EDX
MOV dword ptr [ESP + 0x14],0x0
SUB ECX,dword ptr [EAX + 0x10]
MOV dword ptr [ESP + 0x20],ECX
MOV EAX,ECX
MOV ESI,dword ptr [ESP + 0x60]
MOV EDI,dword ptr [ESP + 0x60]
MOV ESI,dword ptr [ESI + 0x20]
CMP dword ptr [EDI + 0x1c],EAX
SBB ESI,EDX
JC 0x00065ec0
MOV EAX,dword ptr [ESP + 0xc]
LEA EDI,[EBX + 0x2]
CMP EDI,EAX
JC 0x00065cb0
CMP EAX,EBX
JBE 0x00065919
SUB EAX,EBX
LEA EDX,[EAX + -0x1]
CMP EDX,0x7
JBE 0x00065f68
MOV EAX,dword ptr [ESP + 0x18]
LEA ECX,[EDI + EAX*0x1]
MOV EAX,0xfffffffe
CMP dword ptr [ESP + 0xc],ECX
MOV word ptr [ESP + 0x34],AX
MOV EAX,0x0
MOV word ptr [ESP + 0x30],AX
JBE 0x00065cf4
LEA ESI,[EBP + 0x5dd8]
MOV dword ptr [ESP + 0x20],ECX
SUB ESP,0x8
PUSH dword ptr [ESP + 0x20]
PUSH EDI
CALL dword ptr [ESI]
MOV dword ptr [ESP + 0x3c],EAX
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x20]
MOV ESI,dword ptr [EBP + 0x5d6c]
LEA EAX,[ESI + -0x1]
CMP EAX,-0x3
JBE 0x00065d0e
MOV EAX,dword ptr [ESP + 0xc]
LEA EBX,[ECX + 0x1]
CMP EBX,EAX
JC 0x00065d80
CMP EAX,ECX
JBE 0x00065990
SUB EAX,ECX
LEA EDX,[EAX + -0x1]
CMP EDX,0x7
JBE 0x00065e2f
LEA EDI,[ECX + 0x2]
CMP EDI,dword ptr [ESP + 0xc]
JNC 0x00065e28
MOV byte ptr [ESP + 0x18],0x0
LEA ESI,[EBP + 0x5dd8]
MOV EAX,0x1
SUB ESP,0x8
PUSH EAX
PUSH EBX
CALL dword ptr [ESI]
MOV byte ptr [ESP + 0x30],AL
ADD ESP,0x10
CMP word ptr [ESP + 0x34],0x1
JA 0x00065dcd
SUB ESP,0x4
LEA EAX,[EBP + 0xfffde16c]
MOV EBX,EBP
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
POP EDX
POP ECX
PUSH dword ptr [ESP + 0x18]
PUSH EAX
CALL 0x00013060
ADD ESP,0xc
LEA EAX,[EBP + 0xfffde190]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
POP ESI
POP EDX
MOVZX EDX,word ptr [ESP + 0x38]
PUSH EDX
PUSH EAX
CALL 0x00013060
ADD ESP,0xc
LEA EAX,[EBP + 0xfffde1b0]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
POP ECX
POP ESI
PUSH dword ptr [ESP + 0x34]
PUSH EAX
CALL 0x00013060
ADD ESP,0xc
LEA EAX,[EBP + 0xfffde1d4]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
POP EDX
POP ECX
MOVZX EDX,byte ptr [ESP + 0x20]
PUSH EDX
PUSH EAX
CALL 0x00013060
ADD ESP,0xc
LEA EAX,[EBP + 0xfffde1f4]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
POP ESI
POP EDX
MOVZX EDX,byte ptr [ESP + 0x28]
PUSH EDX
PUSH EAX
CALL 0x00013060
MOVZX EAX,byte ptr [ESP + 0x30]
ADD AL,byte ptr [ESP + 0x28]
ADD ESP,0x10
LEA EDX,[EAX + -0x1]
CMP DL,0x7
JA 0x00065f2d
MOVZX ESI,AL
LEA EDX,[ESI + -0x1]
TEST EDX,ESI
JNZ 0x00065f58
CMP AL,0x4
JBE 0x00065e00
SUB ESP,0x4
LEA EAX,[EBP + 0xfffde270]
PUSH 0x5
PUSH EAX
MOV EBX,EBP
PUSH 0x0
CALL 0x000130f0
MOV dword ptr [ESP],EAX
CALL 0x00013060
ADD ESP,0x10
MOV EAX,EDI
LEA EBX,[ESI + ESI*0x1]
SUB EAX,dword ptr [ESP + 0x28]
MOV ECX,EBX
CDQ
MOV dword ptr [ESP + 0x2c],EBX
IDIV EBX
MOV EAX,dword ptr [ESP + 0x3c]
SUB ECX,EDX
ADD ECX,EDI
TEST EDX,EDX
CMOVNZ EDI,ECX
ADD EAX,dword ptr [ESP + 0x10]
ADD dword ptr [ESP + 0x28],EAX
MOV ECX,dword ptr [ESP + 0x28]
LEA EAX,[EDI + EBX*0x1]
CMP ECX,EAX
JC 0x00065bbe
MOV EAX,dword ptr [ESP + 0x2c]
ADD EDI,ESI
MOV dword ptr [ESP + 0x10],EAX
LEA EAX,[EBP + 0xfffc83b4]
MOV dword ptr [ESP + 0x30],EAX
MOV EAX,dword ptr [EBP + 0xffffffd8]
MOV dword ptr [ESP + 0x34],EAX
LEA ESI,[ESI]
MOV EAX,dword ptr [ESP + 0xc]
MOV EBX,EDI
SUB EBX,ESI
CMP EDI,EAX
JC 0x00065be8
CMP EBX,EAX
JNC 0x00065b32
SUB EAX,EBX
LEA EDX,[EAX + -0x1]
CMP EDX,0x7
JBE 0x00065bea
ADD EBX,dword ptr [ESP + 0x10]
CMP dword ptr [ESP + 0xc],EBX
MOV dword ptr [ESP + 0x20],0x0
MOV dword ptr [ESP + 0x24],0x0
JBE 0x00065c2a
LEA ECX,[EBP + 0x5dd8]
MOV EAX,ESI
SUB ESP,0x8
PUSH EAX
PUSH EDI
CALL dword ptr [ECX]
MOV dword ptr [ESP + 0x28],EAX
MOV dword ptr [ESP + 0x2c],EDX
ADD ESP,0x10
SUB ESP,0xc
MOV EBX,EBP
PUSH dword ptr [ESP + 0x3c]
CALL 0x00013060
MOV EAX,dword ptr [ESP + 0x30]
MOV EDX,dword ptr [ESP + 0x34]
MOV ECX,ESI
CALL 0x0004ce60
MOV EAX,dword ptr [ESP + 0x28]
MOV EDX,dword ptr [ESP + 0x2c]
MOV ECX,ESI
CALL 0x0004ce60
POP EAX
POP EDX
MOV EAX,dword ptr [ESP + 0x3c]
PUSH dword ptr [EAX]
PUSH 0xa
CALL 0x00013360
MOV EAX,dword ptr [ESP + 0x3c]
ADD EDI,dword ptr [ESP + 0x20]
ADD ESP,0x10
SUB EAX,ESI
ADD EAX,EDI
CMP dword ptr [ESP + 0x28],EAX
JNC 0x00065b10
MOV EDI,dword ptr [ESP + 0x28]
CMP dword ptr [ESP + 0xc],EDI
JA 0x00065890
SUB ESP,0xc
MOV EBX,EBP
PUSH 0xa
CALL 0x000132d0
ADD ESP,0x5c
MOV EAX,0x1
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,ESI
SUB ESP,0x8
MOV EDX,dword ptr [ESP + 0x40]
MOV dword ptr [ESP + 0x20],EDX
PUSH EAX
PUSH EBX
CALL dword ptr [EDX]
ADD EBX,dword ptr [ESP + 0x20]
MOV dword ptr [ESP + 0x30],EAX
MOV dword ptr [ESP + 0x34],EDX
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0xc]
MOV ECX,dword ptr [ESP + 0x18]
CMP EAX,EBX
JA 0x00065b56
CMP EDI,EAX
JNC 0x00065c2a
SUB EAX,EDI
LEA EDX,[EAX + -0x1]
CMP EDX,0x7
JBE 0x00065b58
MOV dword ptr [ESP + 0x18],0x0
MOV dword ptr [ESP + 0x1c],0x0
JMP 0x00065b6a
MOV EAX,0x4
SUB ESP,0x8
LEA ESI,[EBP + 0x5dd8]
PUSH EAX
MOV EDI,dword ptr [ESP + 0x34]
PUSH EDI
CALL dword ptr [ESI]
MOV ECX,EDX
MOV dword ptr [ESP + 0x20],EAX
MOV EDX,ECX
NOT EAX
MOV dword ptr [ESP + 0x24],ECX
ADD ESP,0x10
OR EDX,EAX
JNZ 0x00065f18
MOV EAX,dword ptr [ESP + 0xc]
ADD EDI,0xc
CMP EDI,EAX
JC 0x00065e70
CMP EBX,EAX
JNC 0x00065c90
SUB EAX,EBX
LEA EDX,[EAX + -0x1]
CMP EDX,0x7
JBE 0x00065e75
MOV EBX,EDI
MOV dword ptr [ESP + 0x3c],0xc
MOV dword ptr [ESP + 0x18],0x8
JMP 0x000658c1
SUB ESP,0x8
LEA ESI,[EBP + 0x5dd8]
PUSH 0x2
PUSH EBX
CALL dword ptr [ESI]
MOV ECX,dword ptr [ESP + 0x28]
MOV word ptr [ESP + 0x40],AX
ADD ESP,0x10
ADD ECX,EDI
CMP dword ptr [ESP + 0xc],ECX
JA 0x00065e10
SUB EAX,0x2
MOV word ptr [ESP + 0x34],AX
MOV EAX,dword ptr [ESP + 0xc]
SUB EAX,EDI
MOV dword ptr [ESP + 0x18],EAX
SUB EAX,0x1
CMP EAX,0x7
JBE 0x00065944
MOV ESI,dword ptr [EBP + 0x5d6c]
MOV dword ptr [ESP + 0x2c],0x0
LEA EAX,[ESI + -0x1]
CMP EAX,-0x3
JA 0x0006596f
MOV EAX,dword ptr [EBP + 0x5d64]
MOV EDI,dword ptr [ESP + 0x2c]
XOR EDX,EDX
ADD EAX,0xc
LEA ESI,[ESI]
MOV EBX,dword ptr [EAX]
XOR EBX,EDI
OR EBX,dword ptr [EAX + 0x4]
JZ 0x0006596f
ADD EDX,0x1
ADD EAX,0x50
CMP ESI,EDX
JNZ 0x00065d20
MOV EAX,dword ptr [ESP + 0x60]
MOV dword ptr [ESP + 0x18],ECX
SUB ESP,0x4
MOV EBX,EBP
MOV ESI,dword ptr [EAX + 0x8]
LEA EAX,[EBP + 0xfffde0e8]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
ADD ESP,0xc
PUSH ESI
PUSH dword ptr [ESP + 0x34]
PUSH EAX
CALL 0x00066db0
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x18]
MOV EAX,dword ptr [ESP + 0xc]
LEA EBX,[ECX + 0x1]
CMP EBX,EAX
JNC 0x0006597e
LEA ESI,[ESI]
NOP
SUB ESP,0x8
LEA ESI,[EBP + 0x5dd8]
PUSH 0x1
PUSH ECX
MOV dword ptr [ESP + 0x30],ECX
CALL dword ptr [ESI]
MOV ECX,dword ptr [ESP + 0x30]
MOV byte ptr [ESP + 0x28],AL
ADD ESP,0x10
LEA EDI,[ECX + 0x2]
CMP EDI,dword ptr [ESP + 0xc]
JC 0x00065e60
MOV EAX,dword ptr [ESP + 0xc]
SUB EAX,EBX
LEA EDX,[EAX + -0x1]
CMP EDX,0x7
JBE 0x000659ad
CMP word ptr [ESP + 0x34],0x1
MOV byte ptr [ESP + 0x20],0x0
JBE 0x000659c7
CMP word ptr [ESP + 0x30],0x0
JZ 0x00065bcc
SUB ESP,0x4
LEA EAX,[EBP + 0xfffde134]
PUSH 0x5
PUSH EAX
MOV EBX,EBP
PUSH 0x0
CALL 0x000130f0
MOV dword ptr [ESP],EAX
CALL 0x00066db0
ADD ESP,0x10
JMP 0x00065bcc
SUB ESP,0x4
LEA EAX,[EBP + 0xfffdff18]
PUSH 0x5
JMP 0x00065aa3
MOVZX EAX,word ptr [ESP + 0x30]
SUB EAX,0x2
MOV word ptr [ESP + 0x34],AX
JMP 0x00065944
MOV byte ptr [ESP + 0x18],0x0
JMP 0x00065dbc
PUSH ESI
PUSH ESI
LEA ESI,[EBP + 0x5dd8]
PUSH EAX
PUSH ECX
MOV dword ptr [ESP + 0x30],ECX
CALL dword ptr [ESI]
MOV ECX,dword ptr [ESP + 0x30]
MOV byte ptr [ESP + 0x28],AL
ADD ESP,0x10
LEA EDI,[ECX + 0x2]
MOV byte ptr [ESP + 0x20],0x0
CMP EDI,dword ptr [ESP + 0xc]
JNC 0x000659bb
LEA ESI,[ESI]
MOV EAX,0x1
JMP 0x000659ad
MOV EAX,0x8
SUB ESP,0x8
PUSH EAX
PUSH EBX
MOV EBX,EDI
CALL dword ptr [ESI]
MOV dword ptr [ESP + 0x20],EAX
MOV dword ptr [ESP + 0x24],EDX
ADD ESP,0x10
MOV dword ptr [ESP + 0x3c],0xc
MOV dword ptr [ESP + 0x18],0x8
MOV EAX,dword ptr [ESP + 0x60]
MOV ECX,EBX
MOV EDX,dword ptr [ESP + 0x14]
XOR EDI,EDI
SUB ECX,dword ptr [EAX + 0x10]
MOV EAX,dword ptr [ESP + 0x10]
MOV dword ptr [ESP + 0x20],ECX
ADD EAX,ECX
ADC EDX,EDI
CMP EAX,ECX
MOV ECX,EDX
SBB ECX,EDI
JNC 0x000658e2
MOV EDI,dword ptr [ESP + 0x20]
SUB ESP,0xc
LEA EAX,[EBP + 0xfffc89c5]
MOV EBX,EBP
PUSH 0x0
MOV ECX,dword ptr [ESP + 0x24]
MOV EDX,dword ptr [ESP + 0x20]
CALL 0x0004cb50
MOV dword ptr [ESP + 0x1c],EAX
MOV EAX,dword ptr [ESP + 0x70]
ADD ESP,0xc
MOV ESI,dword ptr [EAX + 0x8]
LEA EAX,[EBP + 0xfffdbf98]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
MOV EDX,dword ptr [ESP + 0x1c]
PUSH EDX
SUB EDI,dword ptr [ESP + 0x50]
PUSH EDI
PUSH ESI
PUSH EAX
CALL 0x00066db0
ADD ESP,0x20
JMP 0x00065bcc
MOV dword ptr [ESP + 0x3c],0x4
MOV dword ptr [ESP + 0x18],0x4
JMP 0x00065e99
MOV EAX,dword ptr [ESP + 0x60]
SUB ESP,0x4
MOV ESI,dword ptr [EAX + 0x8]
LEA EAX,[EBP + 0xfffde214]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
POP ECX
POP EDI
PUSH ESI
PUSH EAX
CALL 0x00066870
ADD ESP,0x10
JMP 0x00065bcc
SUB ESP,0x4
LEA EAX,[EBP + 0xfffde23c]
PUSH 0x5
JMP 0x00065de4
LEA ESI,[EBP + 0x5dd8]
PUSH EDX
PUSH EDX
PUSH EAX
PUSH EBX
CALL dword ptr [ESI]
MOV ECX,dword ptr [ESP + 0x28]
MOV word ptr [ESP + 0x40],AX
ADD ESP,0x10
ADD ECX,EDI
CMP ECX,dword ptr [ESP + 0xc]
JC 0x00065e10
SUB EAX,0x2
MOV dword ptr [ESP + 0x2c],0x0
MOV word ptr [ESP + 0x34],AX
JMP 0x0006595d
(translation_unit "undefined4 FUN_00065840(int param_1)\n\n{\n  undefined4 *puVar1;\n  ulonglong uVar2;\n  byte bVar3;\n  char cVar4;\n  int iVar5;\n  char *pcVar6;\n  uint uVar7;\n  uint uVar8;\n  int *piVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  undefined4 uVar12;\n  int iVar13;\n  int iVar14;\n  uint uVar15;\n  int unaff_EBP;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  longlong lVar19;\n  int local_4c;\n  int local_44;\n  uint local_3c;\n  uint local_34;\n  int local_30;\n  short local_2c;\n  ushort local_28;\n  int local_20;\n  \n  FUN_0004ab89();\n  local_34 = *(uint *)(param_1 + 0x10);\n  uVar16 = *(int *)(param_1 + 0x1c) + local_34;\n  FUN_0004eb80();\n  FUN_00062460();\n  if (local_34 < uVar16) {\n    do {\n      uVar17 = local_34 + 4;\n      if (uVar17 < uVar16) {\n        iVar5 = 4;\nLAB_00065c45:\n        lVar19 = (**(code **)(unaff_EBP + 0x54592))(local_34,iVar5);\n        if (lVar19 == 0xffffffff) {\n          uVar18 = local_34 + 0xc;\n          if (uVar18 < uVar16) {\n            iVar5 = 8;\n          }\n          else if ((uVar16 <= uVar17) || (iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U)) {\n            local_20 = 0xc;\n            local_44 = 8;\n            goto LAB_000658c1;\n          }\n          lVar19 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n          local_20 = 0xc;\n          local_44 = 8;\n          uVar17 = uVar18;\n        }\n        else {\n          local_20 = 4;\n          local_44 = 4;\n        }\n        local_4c = (int)lVar19;\n        local_3c = uVar17 - *(int *)(param_1 + 0x10);\n        uVar2 = lVar19 + (ulonglong)local_3c;\n        if ((uint)((uint)uVar2 < local_3c) <= (uint)(uVar2 >> 0x20)) goto LAB_000658e2;\nLAB_00065ec0:\n        uVar12 = FUN_0004cb50(0);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar11 = dcgettext(0,unaff_EBP + 0x2a752,5);\n        warn(uVar11,uVar10,local_3c - local_20,uVar12);\n        break;\n      }\n      iVar5 = uVar16 - local_34;\n      if (iVar5 - 1U < 8) goto LAB_00065c45;\n      local_20 = 4;\n      local_44 = 4;\n      uVar18 = uVar17;\nLAB_000658c1:\n      local_4c = 0;\n      local_3c = uVar18 - *(int *)(param_1 + 0x10);\n      uVar2 = (ulonglong)local_3c;\n      uVar17 = uVar18;\nLAB_000658e2:\n      iVar5 = local_44;\n      uVar18 = (uint)(uVar2 >> 0x20);\n      if (*(uint *)(param_1 + 0x20) < uVar18 ||\n          *(uint *)(param_1 + 0x20) - uVar18 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar2))\n      goto LAB_00065ec0;\n      uVar18 = uVar17 + 2;\n      if (uVar18 < uVar16) {\n        local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,2);\n        if (local_44 + uVar18 < uVar16) {\nLAB_00065e10:\n          local_28 = local_2c - 2;\nLAB_00065944:\n          local_30 = (**(code **)(unaff_EBP + 0x54592))(uVar18,local_44);\n          goto LAB_0006595d;\n        }\n        local_28 = local_2c - 2;\n        local_44 = uVar16 - uVar18;\n        if (local_44 - 1U < 8) goto LAB_00065944;\nLAB_00065cf4:\n        iVar13 = *(int *)(unaff_EBP + 0x54526);\n        local_30 = 0;\n        if (iVar13 - 1U < 0xfffffffe) goto LAB_00065d0e;\nLAB_0006596f:\n        uVar17 = uVar18 + iVar5 + 1;\n        if (uVar16 <= uVar17) goto LAB_0006597e;\nLAB_00065d80:\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18 + iVar5,1);\n        uVar18 = uVar18 + iVar5 + 2;\n        if (uVar18 < uVar16) goto LAB_00065e60;\n        iVar5 = uVar16 - uVar17;\n        if (iVar5 - 1U < 8) goto LAB_000659ad;\nLAB_00065dbc:\n        bVar3 = 0;\n        if (local_28 < 2) goto LAB_000659c7;\nLAB_00065dcd:\n        if (local_2c != 0) {\n          iVar5 = unaff_EBP + 0x2c8ee;\nLAB_00065de4:\n          uVar10 = dcgettext(0,iVar5,5);\n          warn(uVar10);\n        }\n        break;\n      }\n      if (uVar16 <= uVar17) {\nLAB_00065919:\n        local_28 = 0xfffe;\n        local_2c = 0;\n        if (uVar16 <= uVar18 + local_44) goto LAB_00065cf4;\n        goto LAB_00065944;\n      }\n      uVar7 = (uVar16 - uVar17) - 1;\n      if (7 < uVar7) goto LAB_00065919;\n      local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,uVar16 - uVar17,uVar7,uVar7);\n      if (local_44 + uVar18 < uVar16) goto LAB_00065e10;\n      local_28 = local_2c - 2;\n      local_30 = 0;\nLAB_0006595d:\n      iVar13 = *(int *)(unaff_EBP + 0x54526);\n      if (0xfffffffd < iVar13 - 1U) goto LAB_0006596f;\nLAB_00065d0e:\n      iVar14 = 0;\n      piVar9 = (int *)(*(int *)(unaff_EBP + 0x5451e) + 0xc);\n      do {\n        if (*piVar9 == local_30 && piVar9[1] == 0) goto LAB_0006596f;\n        iVar14 = iVar14 + 1;\n        piVar9 = piVar9 + 0x14;\n      } while (iVar13 != iVar14);\n      iVar13 = *(int *)(param_1 + 8);\n      uVar10 = dcgettext(0,unaff_EBP + 0x2c8a2,5);\n      warn(uVar10,local_30,iVar13);\n      uVar17 = uVar18 + iVar5 + 1;\n      if (uVar17 < uVar16) goto LAB_00065d80;\nLAB_0006597e:\n      uVar18 = uVar18 + iVar5;\n      if ((uVar18 < uVar16) && ((uVar16 - uVar18) - 1 < 8)) {\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar16 - uVar18,iVar13,iVar13);\n        uVar18 = uVar18 + 2;\n        bVar3 = 0;\n        if (uVar18 < uVar16) {\nLAB_00065e60:\n          iVar5 = 1;\n          goto LAB_000659ad;\n        }\n      }\n      else {\n        uVar18 = uVar18 + 2;\n        if (uVar16 <= uVar18) {\n          cVar4 = '\0';\n          goto LAB_00065dbc;\n        }\n        cVar4 = '\0';\n        iVar5 = 1;\nLAB_000659ad:\n        bVar3 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n      }\n      if (1 < local_28) goto LAB_00065dcd;\nLAB_000659c7:\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c926,5);\n      printf(pcVar6,local_4c);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c94a,5);\n      printf(pcVar6,local_2c);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c96a,5);\n      printf(pcVar6,local_30);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c98e,5);\n      printf(pcVar6,cVar4);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c9ae,5);\n      printf(pcVar6,(uint)bVar3);\n      bVar3 = bVar3 + cVar4;\n      if (7 < (byte)(bVar3 - 1)) {\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar12 = dcgettext(0,unaff_EBP + 0x2c9ce,5);\n        error(uVar12,uVar10);\n        break;\n      }\n      uVar17 = (uint)bVar3;\n      if ((uVar17 - 1 & uVar17) != 0) {\n        iVar5 = unaff_EBP + 0x2c9f6;\n        goto LAB_00065de4;\n      }\n      if (bVar3 < 5) {\n        iVar5 = unaff_EBP + 0x2e6d2;\n      }\n      else {\n        iVar5 = unaff_EBP + 0x2ca2a;\n      }\n      pcVar6 = (char *)dcgettext(0,iVar5,5);\n      printf(pcVar6);\n      iVar5 = uVar17 * 2;\n      iVar13 = (int)(uVar18 - local_34) % iVar5;\n      if (iVar13 != 0) {\n        uVar18 = (iVar5 - iVar13) + uVar18;\n      }\n      local_34 = local_34 + local_20 + local_4c;\n      if (uVar18 + iVar5 <= local_34) {\n        uVar18 = uVar18 + uVar17;\n        puVar1 = *(undefined4 **)(unaff_EBP + 0x4e792);\n        do {\n          uVar15 = uVar18 - uVar17;\n          uVar8 = uVar17;\n          uVar7 = uVar17;\n          if ((uVar18 < uVar16) ||\n             ((uVar15 < uVar16 && (uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8)))) {\n            (**(code **)(unaff_EBP + 0x54592))(uVar15,uVar8);\n            if ((uVar15 + iVar5 < uVar16) ||\n               ((uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8))))\n            goto LAB_00065b58;\n          }\n          else if (uVar15 + iVar5 < uVar16) {\nLAB_00065b58:\n            (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7);\n          }\n          printf(&UNK_00016b6e + unaff_EBP);\n          FUN_0004ce60();\n          FUN_0004ce60();\n          putc(10,(FILE *)*puVar1);\n          uVar18 = uVar18 + iVar5;\n        } while (uVar17 + uVar18 <= local_34);\n      }\n    } while (local_34 < uVar16);\n  }\n  putchar(10);\n  return 1;\n}\n\n" (function_definition "undefined4 FUN_00065840(int param_1)\n\n{\n  undefined4 *puVar1;\n  ulonglong uVar2;\n  byte bVar3;\n  char cVar4;\n  int iVar5;\n  char *pcVar6;\n  uint uVar7;\n  uint uVar8;\n  int *piVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  undefined4 uVar12;\n  int iVar13;\n  int iVar14;\n  uint uVar15;\n  int unaff_EBP;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  longlong lVar19;\n  int local_4c;\n  int local_44;\n  uint local_3c;\n  uint local_34;\n  int local_30;\n  short local_2c;\n  ushort local_28;\n  int local_20;\n  \n  FUN_0004ab89();\n  local_34 = *(uint *)(param_1 + 0x10);\n  uVar16 = *(int *)(param_1 + 0x1c) + local_34;\n  FUN_0004eb80();\n  FUN_00062460();\n  if (local_34 < uVar16) {\n    do {\n      uVar17 = local_34 + 4;\n      if (uVar17 < uVar16) {\n        iVar5 = 4;\nLAB_00065c45:\n        lVar19 = (**(code **)(unaff_EBP + 0x54592))(local_34,iVar5);\n        if (lVar19 == 0xffffffff) {\n          uVar18 = local_34 + 0xc;\n          if (uVar18 < uVar16) {\n            iVar5 = 8;\n          }\n          else if ((uVar16 <= uVar17) || (iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U)) {\n            local_20 = 0xc;\n            local_44 = 8;\n            goto LAB_000658c1;\n          }\n          lVar19 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n          local_20 = 0xc;\n          local_44 = 8;\n          uVar17 = uVar18;\n        }\n        else {\n          local_20 = 4;\n          local_44 = 4;\n        }\n        local_4c = (int)lVar19;\n        local_3c = uVar17 - *(int *)(param_1 + 0x10);\n        uVar2 = lVar19 + (ulonglong)local_3c;\n        if ((uint)((uint)uVar2 < local_3c) <= (uint)(uVar2 >> 0x20)) goto LAB_000658e2;\nLAB_00065ec0:\n        uVar12 = FUN_0004cb50(0);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar11 = dcgettext(0,unaff_EBP + 0x2a752,5);\n        warn(uVar11,uVar10,local_3c - local_20,uVar12);\n        break;\n      }\n      iVar5 = uVar16 - local_34;\n      if (iVar5 - 1U < 8) goto LAB_00065c45;\n      local_20 = 4;\n      local_44 = 4;\n      uVar18 = uVar17;\nLAB_000658c1:\n      local_4c = 0;\n      local_3c = uVar18 - *(int *)(param_1 + 0x10);\n      uVar2 = (ulonglong)local_3c;\n      uVar17 = uVar18;\nLAB_000658e2:\n      iVar5 = local_44;\n      uVar18 = (uint)(uVar2 >> 0x20);\n      if (*(uint *)(param_1 + 0x20) < uVar18 ||\n          *(uint *)(param_1 + 0x20) - uVar18 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar2))\n      goto LAB_00065ec0;\n      uVar18 = uVar17 + 2;\n      if (uVar18 < uVar16) {\n        local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,2);\n        if (local_44 + uVar18 < uVar16) {\nLAB_00065e10:\n          local_28 = local_2c - 2;\nLAB_00065944:\n          local_30 = (**(code **)(unaff_EBP + 0x54592))(uVar18,local_44);\n          goto LAB_0006595d;\n        }\n        local_28 = local_2c - 2;\n        local_44 = uVar16 - uVar18;\n        if (local_44 - 1U < 8) goto LAB_00065944;\nLAB_00065cf4:\n        iVar13 = *(int *)(unaff_EBP + 0x54526);\n        local_30 = 0;\n        if (iVar13 - 1U < 0xfffffffe) goto LAB_00065d0e;\nLAB_0006596f:\n        uVar17 = uVar18 + iVar5 + 1;\n        if (uVar16 <= uVar17) goto LAB_0006597e;\nLAB_00065d80:\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18 + iVar5,1);\n        uVar18 = uVar18 + iVar5 + 2;\n        if (uVar18 < uVar16) goto LAB_00065e60;\n        iVar5 = uVar16 - uVar17;\n        if (iVar5 - 1U < 8) goto LAB_000659ad;\nLAB_00065dbc:\n        bVar3 = 0;\n        if (local_28 < 2) goto LAB_000659c7;\nLAB_00065dcd:\n        if (local_2c != 0) {\n          iVar5 = unaff_EBP + 0x2c8ee;\nLAB_00065de4:\n          uVar10 = dcgettext(0,iVar5,5);\n          warn(uVar10);\n        }\n        break;\n      }\n      if (uVar16 <= uVar17) {\nLAB_00065919:\n        local_28 = 0xfffe;\n        local_2c = 0;\n        if (uVar16 <= uVar18 + local_44) goto LAB_00065cf4;\n        goto LAB_00065944;\n      }\n      uVar7 = (uVar16 - uVar17) - 1;\n      if (7 < uVar7) goto LAB_00065919;\n      local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,uVar16 - uVar17,uVar7,uVar7);\n      if (local_44 + uVar18 < uVar16) goto LAB_00065e10;\n      local_28 = local_2c - 2;\n      local_30 = 0;\nLAB_0006595d:\n      iVar13 = *(int *)(unaff_EBP + 0x54526);\n      if (0xfffffffd < iVar13 - 1U) goto LAB_0006596f;\nLAB_00065d0e:\n      iVar14 = 0;\n      piVar9 = (int *)(*(int *)(unaff_EBP + 0x5451e) + 0xc);\n      do {\n        if (*piVar9 == local_30 && piVar9[1] == 0) goto LAB_0006596f;\n        iVar14 = iVar14 + 1;\n        piVar9 = piVar9 + 0x14;\n      } while (iVar13 != iVar14);\n      iVar13 = *(int *)(param_1 + 8);\n      uVar10 = dcgettext(0,unaff_EBP + 0x2c8a2,5);\n      warn(uVar10,local_30,iVar13);\n      uVar17 = uVar18 + iVar5 + 1;\n      if (uVar17 < uVar16) goto LAB_00065d80;\nLAB_0006597e:\n      uVar18 = uVar18 + iVar5;\n      if ((uVar18 < uVar16) && ((uVar16 - uVar18) - 1 < 8)) {\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar16 - uVar18,iVar13,iVar13);\n        uVar18 = uVar18 + 2;\n        bVar3 = 0;\n        if (uVar18 < uVar16) {\nLAB_00065e60:\n          iVar5 = 1;\n          goto LAB_000659ad;\n        }\n      }\n      else {\n        uVar18 = uVar18 + 2;\n        if (uVar16 <= uVar18) {\n          cVar4 = '\0';\n          goto LAB_00065dbc;\n        }\n        cVar4 = '\0';\n        iVar5 = 1;\nLAB_000659ad:\n        bVar3 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n      }\n      if (1 < local_28) goto LAB_00065dcd;\nLAB_000659c7:\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c926,5);\n      printf(pcVar6,local_4c);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c94a,5);\n      printf(pcVar6,local_2c);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c96a,5);\n      printf(pcVar6,local_30);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c98e,5);\n      printf(pcVar6,cVar4);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c9ae,5);\n      printf(pcVar6,(uint)bVar3);\n      bVar3 = bVar3 + cVar4;\n      if (7 < (byte)(bVar3 - 1)) {\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar12 = dcgettext(0,unaff_EBP + 0x2c9ce,5);\n        error(uVar12,uVar10);\n        break;\n      }\n      uVar17 = (uint)bVar3;\n      if ((uVar17 - 1 & uVar17) != 0) {\n        iVar5 = unaff_EBP + 0x2c9f6;\n        goto LAB_00065de4;\n      }\n      if (bVar3 < 5) {\n        iVar5 = unaff_EBP + 0x2e6d2;\n      }\n      else {\n        iVar5 = unaff_EBP + 0x2ca2a;\n      }\n      pcVar6 = (char *)dcgettext(0,iVar5,5);\n      printf(pcVar6);\n      iVar5 = uVar17 * 2;\n      iVar13 = (int)(uVar18 - local_34) % iVar5;\n      if (iVar13 != 0) {\n        uVar18 = (iVar5 - iVar13) + uVar18;\n      }\n      local_34 = local_34 + local_20 + local_4c;\n      if (uVar18 + iVar5 <= local_34) {\n        uVar18 = uVar18 + uVar17;\n        puVar1 = *(undefined4 **)(unaff_EBP + 0x4e792);\n        do {\n          uVar15 = uVar18 - uVar17;\n          uVar8 = uVar17;\n          uVar7 = uVar17;\n          if ((uVar18 < uVar16) ||\n             ((uVar15 < uVar16 && (uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8)))) {\n            (**(code **)(unaff_EBP + 0x54592))(uVar15,uVar8);\n            if ((uVar15 + iVar5 < uVar16) ||\n               ((uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8))))\n            goto LAB_00065b58;\n          }\n          else if (uVar15 + iVar5 < uVar16) {\nLAB_00065b58:\n            (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7);\n          }\n          printf(&UNK_00016b6e + unaff_EBP);\n          FUN_0004ce60();\n          FUN_0004ce60();\n          putc(10,(FILE *)*puVar1);\n          uVar18 = uVar18 + iVar5;\n        } while (uVar17 + uVar18 <= local_34);\n      }\n    } while (local_34 < uVar16);\n  }\n  putchar(10);\n  return 1;\n}" type_identifier (function_declarator "FUN_00065840(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  undefined4 *puVar1;\n  ulonglong uVar2;\n  byte bVar3;\n  char cVar4;\n  int iVar5;\n  char *pcVar6;\n  uint uVar7;\n  uint uVar8;\n  int *piVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  undefined4 uVar12;\n  int iVar13;\n  int iVar14;\n  uint uVar15;\n  int unaff_EBP;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  longlong lVar19;\n  int local_4c;\n  int local_44;\n  uint local_3c;\n  uint local_34;\n  int local_30;\n  short local_2c;\n  ushort local_28;\n  int local_20;\n  \n  FUN_0004ab89();\n  local_34 = *(uint *)(param_1 + 0x10);\n  uVar16 = *(int *)(param_1 + 0x1c) + local_34;\n  FUN_0004eb80();\n  FUN_00062460();\n  if (local_34 < uVar16) {\n    do {\n      uVar17 = local_34 + 4;\n      if (uVar17 < uVar16) {\n        iVar5 = 4;\nLAB_00065c45:\n        lVar19 = (**(code **)(unaff_EBP + 0x54592))(local_34,iVar5);\n        if (lVar19 == 0xffffffff) {\n          uVar18 = local_34 + 0xc;\n          if (uVar18 < uVar16) {\n            iVar5 = 8;\n          }\n          else if ((uVar16 <= uVar17) || (iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U)) {\n            local_20 = 0xc;\n            local_44 = 8;\n            goto LAB_000658c1;\n          }\n          lVar19 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n          local_20 = 0xc;\n          local_44 = 8;\n          uVar17 = uVar18;\n        }\n        else {\n          local_20 = 4;\n          local_44 = 4;\n        }\n        local_4c = (int)lVar19;\n        local_3c = uVar17 - *(int *)(param_1 + 0x10);\n        uVar2 = lVar19 + (ulonglong)local_3c;\n        if ((uint)((uint)uVar2 < local_3c) <= (uint)(uVar2 >> 0x20)) goto LAB_000658e2;\nLAB_00065ec0:\n        uVar12 = FUN_0004cb50(0);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar11 = dcgettext(0,unaff_EBP + 0x2a752,5);\n        warn(uVar11,uVar10,local_3c - local_20,uVar12);\n        break;\n      }\n      iVar5 = uVar16 - local_34;\n      if (iVar5 - 1U < 8) goto LAB_00065c45;\n      local_20 = 4;\n      local_44 = 4;\n      uVar18 = uVar17;\nLAB_000658c1:\n      local_4c = 0;\n      local_3c = uVar18 - *(int *)(param_1 + 0x10);\n      uVar2 = (ulonglong)local_3c;\n      uVar17 = uVar18;\nLAB_000658e2:\n      iVar5 = local_44;\n      uVar18 = (uint)(uVar2 >> 0x20);\n      if (*(uint *)(param_1 + 0x20) < uVar18 ||\n          *(uint *)(param_1 + 0x20) - uVar18 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar2))\n      goto LAB_00065ec0;\n      uVar18 = uVar17 + 2;\n      if (uVar18 < uVar16) {\n        local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,2);\n        if (local_44 + uVar18 < uVar16) {\nLAB_00065e10:\n          local_28 = local_2c - 2;\nLAB_00065944:\n          local_30 = (**(code **)(unaff_EBP + 0x54592))(uVar18,local_44);\n          goto LAB_0006595d;\n        }\n        local_28 = local_2c - 2;\n        local_44 = uVar16 - uVar18;\n        if (local_44 - 1U < 8) goto LAB_00065944;\nLAB_00065cf4:\n        iVar13 = *(int *)(unaff_EBP + 0x54526);\n        local_30 = 0;\n        if (iVar13 - 1U < 0xfffffffe) goto LAB_00065d0e;\nLAB_0006596f:\n        uVar17 = uVar18 + iVar5 + 1;\n        if (uVar16 <= uVar17) goto LAB_0006597e;\nLAB_00065d80:\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18 + iVar5,1);\n        uVar18 = uVar18 + iVar5 + 2;\n        if (uVar18 < uVar16) goto LAB_00065e60;\n        iVar5 = uVar16 - uVar17;\n        if (iVar5 - 1U < 8) goto LAB_000659ad;\nLAB_00065dbc:\n        bVar3 = 0;\n        if (local_28 < 2) goto LAB_000659c7;\nLAB_00065dcd:\n        if (local_2c != 0) {\n          iVar5 = unaff_EBP + 0x2c8ee;\nLAB_00065de4:\n          uVar10 = dcgettext(0,iVar5,5);\n          warn(uVar10);\n        }\n        break;\n      }\n      if (uVar16 <= uVar17) {\nLAB_00065919:\n        local_28 = 0xfffe;\n        local_2c = 0;\n        if (uVar16 <= uVar18 + local_44) goto LAB_00065cf4;\n        goto LAB_00065944;\n      }\n      uVar7 = (uVar16 - uVar17) - 1;\n      if (7 < uVar7) goto LAB_00065919;\n      local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,uVar16 - uVar17,uVar7,uVar7);\n      if (local_44 + uVar18 < uVar16) goto LAB_00065e10;\n      local_28 = local_2c - 2;\n      local_30 = 0;\nLAB_0006595d:\n      iVar13 = *(int *)(unaff_EBP + 0x54526);\n      if (0xfffffffd < iVar13 - 1U) goto LAB_0006596f;\nLAB_00065d0e:\n      iVar14 = 0;\n      piVar9 = (int *)(*(int *)(unaff_EBP + 0x5451e) + 0xc);\n      do {\n        if (*piVar9 == local_30 && piVar9[1] == 0) goto LAB_0006596f;\n        iVar14 = iVar14 + 1;\n        piVar9 = piVar9 + 0x14;\n      } while (iVar13 != iVar14);\n      iVar13 = *(int *)(param_1 + 8);\n      uVar10 = dcgettext(0,unaff_EBP + 0x2c8a2,5);\n      warn(uVar10,local_30,iVar13);\n      uVar17 = uVar18 + iVar5 + 1;\n      if (uVar17 < uVar16) goto LAB_00065d80;\nLAB_0006597e:\n      uVar18 = uVar18 + iVar5;\n      if ((uVar18 < uVar16) && ((uVar16 - uVar18) - 1 < 8)) {\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar16 - uVar18,iVar13,iVar13);\n        uVar18 = uVar18 + 2;\n        bVar3 = 0;\n        if (uVar18 < uVar16) {\nLAB_00065e60:\n          iVar5 = 1;\n          goto LAB_000659ad;\n        }\n      }\n      else {\n        uVar18 = uVar18 + 2;\n        if (uVar16 <= uVar18) {\n          cVar4 = '\0';\n          goto LAB_00065dbc;\n        }\n        cVar4 = '\0';\n        iVar5 = 1;\nLAB_000659ad:\n        bVar3 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n      }\n      if (1 < local_28) goto LAB_00065dcd;\nLAB_000659c7:\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c926,5);\n      printf(pcVar6,local_4c);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c94a,5);\n      printf(pcVar6,local_2c);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c96a,5);\n      printf(pcVar6,local_30);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c98e,5);\n      printf(pcVar6,cVar4);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c9ae,5);\n      printf(pcVar6,(uint)bVar3);\n      bVar3 = bVar3 + cVar4;\n      if (7 < (byte)(bVar3 - 1)) {\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar12 = dcgettext(0,unaff_EBP + 0x2c9ce,5);\n        error(uVar12,uVar10);\n        break;\n      }\n      uVar17 = (uint)bVar3;\n      if ((uVar17 - 1 & uVar17) != 0) {\n        iVar5 = unaff_EBP + 0x2c9f6;\n        goto LAB_00065de4;\n      }\n      if (bVar3 < 5) {\n        iVar5 = unaff_EBP + 0x2e6d2;\n      }\n      else {\n        iVar5 = unaff_EBP + 0x2ca2a;\n      }\n      pcVar6 = (char *)dcgettext(0,iVar5,5);\n      printf(pcVar6);\n      iVar5 = uVar17 * 2;\n      iVar13 = (int)(uVar18 - local_34) % iVar5;\n      if (iVar13 != 0) {\n        uVar18 = (iVar5 - iVar13) + uVar18;\n      }\n      local_34 = local_34 + local_20 + local_4c;\n      if (uVar18 + iVar5 <= local_34) {\n        uVar18 = uVar18 + uVar17;\n        puVar1 = *(undefined4 **)(unaff_EBP + 0x4e792);\n        do {\n          uVar15 = uVar18 - uVar17;\n          uVar8 = uVar17;\n          uVar7 = uVar17;\n          if ((uVar18 < uVar16) ||\n             ((uVar15 < uVar16 && (uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8)))) {\n            (**(code **)(unaff_EBP + 0x54592))(uVar15,uVar8);\n            if ((uVar15 + iVar5 < uVar16) ||\n               ((uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8))))\n            goto LAB_00065b58;\n          }\n          else if (uVar15 + iVar5 < uVar16) {\nLAB_00065b58:\n            (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7);\n          }\n          printf(&UNK_00016b6e + unaff_EBP);\n          FUN_0004ce60();\n          FUN_0004ce60();\n          putc(10,(FILE *)*puVar1);\n          uVar18 = uVar18 + iVar5;\n        } while (uVar17 + uVar18 <= local_34);\n      }\n    } while (local_34 < uVar16);\n  }\n  putchar(10);\n  return 1;\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "ulonglong uVar2;" type_identifier identifier ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "int unaff_EBP;" primitive_type identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "longlong lVar19;" type_identifier identifier ;) (declaration "int local_4c;" primitive_type identifier ;) (declaration "int local_44;" primitive_type identifier ;) (declaration "uint local_3c;" type_identifier identifier ;) (declaration "uint local_34;" type_identifier identifier ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "short local_2c;" (sized_type_specifier "short" short) identifier ;) (declaration "ushort local_28;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "FUN_0004ab89();" (call_expression "FUN_0004ab89()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_34 = *(uint *)(param_1 + 0x10);" (assignment_expression "local_34 = *(uint *)(param_1 + 0x10)" identifier = (pointer_expression "*(uint *)(param_1 + 0x10)" * (cast_expression "(uint *)(param_1 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar16 = *(int *)(param_1 + 0x1c) + local_34;" (assignment_expression "uVar16 = *(int *)(param_1 + 0x1c) + local_34" identifier = (binary_expression "*(int *)(param_1 + 0x1c) + local_34" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) + identifier)) ;) (expression_statement "FUN_0004eb80();" (call_expression "FUN_0004eb80()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00062460();" (call_expression "FUN_00062460()" identifier (argument_list "()" ( ))) ;) (if_statement "if (local_34 < uVar16) {\n    do {\n      uVar17 = local_34 + 4;\n      if (uVar17 < uVar16) {\n        iVar5 = 4;\nLAB_00065c45:\n        lVar19 = (**(code **)(unaff_EBP + 0x54592))(local_34,iVar5);\n        if (lVar19 == 0xffffffff) {\n          uVar18 = local_34 + 0xc;\n          if (uVar18 < uVar16) {\n            iVar5 = 8;\n          }\n          else if ((uVar16 <= uVar17) || (iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U)) {\n            local_20 = 0xc;\n            local_44 = 8;\n            goto LAB_000658c1;\n          }\n          lVar19 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n          local_20 = 0xc;\n          local_44 = 8;\n          uVar17 = uVar18;\n        }\n        else {\n          local_20 = 4;\n          local_44 = 4;\n        }\n        local_4c = (int)lVar19;\n        local_3c = uVar17 - *(int *)(param_1 + 0x10);\n        uVar2 = lVar19 + (ulonglong)local_3c;\n        if ((uint)((uint)uVar2 < local_3c) <= (uint)(uVar2 >> 0x20)) goto LAB_000658e2;\nLAB_00065ec0:\n        uVar12 = FUN_0004cb50(0);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar11 = dcgettext(0,unaff_EBP + 0x2a752,5);\n        warn(uVar11,uVar10,local_3c - local_20,uVar12);\n        break;\n      }\n      iVar5 = uVar16 - local_34;\n      if (iVar5 - 1U < 8) goto LAB_00065c45;\n      local_20 = 4;\n      local_44 = 4;\n      uVar18 = uVar17;\nLAB_000658c1:\n      local_4c = 0;\n      local_3c = uVar18 - *(int *)(param_1 + 0x10);\n      uVar2 = (ulonglong)local_3c;\n      uVar17 = uVar18;\nLAB_000658e2:\n      iVar5 = local_44;\n      uVar18 = (uint)(uVar2 >> 0x20);\n      if (*(uint *)(param_1 + 0x20) < uVar18 ||\n          *(uint *)(param_1 + 0x20) - uVar18 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar2))\n      goto LAB_00065ec0;\n      uVar18 = uVar17 + 2;\n      if (uVar18 < uVar16) {\n        local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,2);\n        if (local_44 + uVar18 < uVar16) {\nLAB_00065e10:\n          local_28 = local_2c - 2;\nLAB_00065944:\n          local_30 = (**(code **)(unaff_EBP + 0x54592))(uVar18,local_44);\n          goto LAB_0006595d;\n        }\n        local_28 = local_2c - 2;\n        local_44 = uVar16 - uVar18;\n        if (local_44 - 1U < 8) goto LAB_00065944;\nLAB_00065cf4:\n        iVar13 = *(int *)(unaff_EBP + 0x54526);\n        local_30 = 0;\n        if (iVar13 - 1U < 0xfffffffe) goto LAB_00065d0e;\nLAB_0006596f:\n        uVar17 = uVar18 + iVar5 + 1;\n        if (uVar16 <= uVar17) goto LAB_0006597e;\nLAB_00065d80:\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18 + iVar5,1);\n        uVar18 = uVar18 + iVar5 + 2;\n        if (uVar18 < uVar16) goto LAB_00065e60;\n        iVar5 = uVar16 - uVar17;\n        if (iVar5 - 1U < 8) goto LAB_000659ad;\nLAB_00065dbc:\n        bVar3 = 0;\n        if (local_28 < 2) goto LAB_000659c7;\nLAB_00065dcd:\n        if (local_2c != 0) {\n          iVar5 = unaff_EBP + 0x2c8ee;\nLAB_00065de4:\n          uVar10 = dcgettext(0,iVar5,5);\n          warn(uVar10);\n        }\n        break;\n      }\n      if (uVar16 <= uVar17) {\nLAB_00065919:\n        local_28 = 0xfffe;\n        local_2c = 0;\n        if (uVar16 <= uVar18 + local_44) goto LAB_00065cf4;\n        goto LAB_00065944;\n      }\n      uVar7 = (uVar16 - uVar17) - 1;\n      if (7 < uVar7) goto LAB_00065919;\n      local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,uVar16 - uVar17,uVar7,uVar7);\n      if (local_44 + uVar18 < uVar16) goto LAB_00065e10;\n      local_28 = local_2c - 2;\n      local_30 = 0;\nLAB_0006595d:\n      iVar13 = *(int *)(unaff_EBP + 0x54526);\n      if (0xfffffffd < iVar13 - 1U) goto LAB_0006596f;\nLAB_00065d0e:\n      iVar14 = 0;\n      piVar9 = (int *)(*(int *)(unaff_EBP + 0x5451e) + 0xc);\n      do {\n        if (*piVar9 == local_30 && piVar9[1] == 0) goto LAB_0006596f;\n        iVar14 = iVar14 + 1;\n        piVar9 = piVar9 + 0x14;\n      } while (iVar13 != iVar14);\n      iVar13 = *(int *)(param_1 + 8);\n      uVar10 = dcgettext(0,unaff_EBP + 0x2c8a2,5);\n      warn(uVar10,local_30,iVar13);\n      uVar17 = uVar18 + iVar5 + 1;\n      if (uVar17 < uVar16) goto LAB_00065d80;\nLAB_0006597e:\n      uVar18 = uVar18 + iVar5;\n      if ((uVar18 < uVar16) && ((uVar16 - uVar18) - 1 < 8)) {\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar16 - uVar18,iVar13,iVar13);\n        uVar18 = uVar18 + 2;\n        bVar3 = 0;\n        if (uVar18 < uVar16) {\nLAB_00065e60:\n          iVar5 = 1;\n          goto LAB_000659ad;\n        }\n      }\n      else {\n        uVar18 = uVar18 + 2;\n        if (uVar16 <= uVar18) {\n          cVar4 = '\0';\n          goto LAB_00065dbc;\n        }\n        cVar4 = '\0';\n        iVar5 = 1;\nLAB_000659ad:\n        bVar3 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n      }\n      if (1 < local_28) goto LAB_00065dcd;\nLAB_000659c7:\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c926,5);\n      printf(pcVar6,local_4c);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c94a,5);\n      printf(pcVar6,local_2c);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c96a,5);\n      printf(pcVar6,local_30);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c98e,5);\n      printf(pcVar6,cVar4);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c9ae,5);\n      printf(pcVar6,(uint)bVar3);\n      bVar3 = bVar3 + cVar4;\n      if (7 < (byte)(bVar3 - 1)) {\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar12 = dcgettext(0,unaff_EBP + 0x2c9ce,5);\n        error(uVar12,uVar10);\n        break;\n      }\n      uVar17 = (uint)bVar3;\n      if ((uVar17 - 1 & uVar17) != 0) {\n        iVar5 = unaff_EBP + 0x2c9f6;\n        goto LAB_00065de4;\n      }\n      if (bVar3 < 5) {\n        iVar5 = unaff_EBP + 0x2e6d2;\n      }\n      else {\n        iVar5 = unaff_EBP + 0x2ca2a;\n      }\n      pcVar6 = (char *)dcgettext(0,iVar5,5);\n      printf(pcVar6);\n      iVar5 = uVar17 * 2;\n      iVar13 = (int)(uVar18 - local_34) % iVar5;\n      if (iVar13 != 0) {\n        uVar18 = (iVar5 - iVar13) + uVar18;\n      }\n      local_34 = local_34 + local_20 + local_4c;\n      if (uVar18 + iVar5 <= local_34) {\n        uVar18 = uVar18 + uVar17;\n        puVar1 = *(undefined4 **)(unaff_EBP + 0x4e792);\n        do {\n          uVar15 = uVar18 - uVar17;\n          uVar8 = uVar17;\n          uVar7 = uVar17;\n          if ((uVar18 < uVar16) ||\n             ((uVar15 < uVar16 && (uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8)))) {\n            (**(code **)(unaff_EBP + 0x54592))(uVar15,uVar8);\n            if ((uVar15 + iVar5 < uVar16) ||\n               ((uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8))))\n            goto LAB_00065b58;\n          }\n          else if (uVar15 + iVar5 < uVar16) {\nLAB_00065b58:\n            (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7);\n          }\n          printf(&UNK_00016b6e + unaff_EBP);\n          FUN_0004ce60();\n          FUN_0004ce60();\n          putc(10,(FILE *)*puVar1);\n          uVar18 = uVar18 + iVar5;\n        } while (uVar17 + uVar18 <= local_34);\n      }\n    } while (local_34 < uVar16);\n  }" if (parenthesized_expression "(local_34 < uVar16)" ( (binary_expression "local_34 < uVar16" identifier < identifier) )) (compound_statement "{\n    do {\n      uVar17 = local_34 + 4;\n      if (uVar17 < uVar16) {\n        iVar5 = 4;\nLAB_00065c45:\n        lVar19 = (**(code **)(unaff_EBP + 0x54592))(local_34,iVar5);\n        if (lVar19 == 0xffffffff) {\n          uVar18 = local_34 + 0xc;\n          if (uVar18 < uVar16) {\n            iVar5 = 8;\n          }\n          else if ((uVar16 <= uVar17) || (iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U)) {\n            local_20 = 0xc;\n            local_44 = 8;\n            goto LAB_000658c1;\n          }\n          lVar19 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n          local_20 = 0xc;\n          local_44 = 8;\n          uVar17 = uVar18;\n        }\n        else {\n          local_20 = 4;\n          local_44 = 4;\n        }\n        local_4c = (int)lVar19;\n        local_3c = uVar17 - *(int *)(param_1 + 0x10);\n        uVar2 = lVar19 + (ulonglong)local_3c;\n        if ((uint)((uint)uVar2 < local_3c) <= (uint)(uVar2 >> 0x20)) goto LAB_000658e2;\nLAB_00065ec0:\n        uVar12 = FUN_0004cb50(0);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar11 = dcgettext(0,unaff_EBP + 0x2a752,5);\n        warn(uVar11,uVar10,local_3c - local_20,uVar12);\n        break;\n      }\n      iVar5 = uVar16 - local_34;\n      if (iVar5 - 1U < 8) goto LAB_00065c45;\n      local_20 = 4;\n      local_44 = 4;\n      uVar18 = uVar17;\nLAB_000658c1:\n      local_4c = 0;\n      local_3c = uVar18 - *(int *)(param_1 + 0x10);\n      uVar2 = (ulonglong)local_3c;\n      uVar17 = uVar18;\nLAB_000658e2:\n      iVar5 = local_44;\n      uVar18 = (uint)(uVar2 >> 0x20);\n      if (*(uint *)(param_1 + 0x20) < uVar18 ||\n          *(uint *)(param_1 + 0x20) - uVar18 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar2))\n      goto LAB_00065ec0;\n      uVar18 = uVar17 + 2;\n      if (uVar18 < uVar16) {\n        local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,2);\n        if (local_44 + uVar18 < uVar16) {\nLAB_00065e10:\n          local_28 = local_2c - 2;\nLAB_00065944:\n          local_30 = (**(code **)(unaff_EBP + 0x54592))(uVar18,local_44);\n          goto LAB_0006595d;\n        }\n        local_28 = local_2c - 2;\n        local_44 = uVar16 - uVar18;\n        if (local_44 - 1U < 8) goto LAB_00065944;\nLAB_00065cf4:\n        iVar13 = *(int *)(unaff_EBP + 0x54526);\n        local_30 = 0;\n        if (iVar13 - 1U < 0xfffffffe) goto LAB_00065d0e;\nLAB_0006596f:\n        uVar17 = uVar18 + iVar5 + 1;\n        if (uVar16 <= uVar17) goto LAB_0006597e;\nLAB_00065d80:\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18 + iVar5,1);\n        uVar18 = uVar18 + iVar5 + 2;\n        if (uVar18 < uVar16) goto LAB_00065e60;\n        iVar5 = uVar16 - uVar17;\n        if (iVar5 - 1U < 8) goto LAB_000659ad;\nLAB_00065dbc:\n        bVar3 = 0;\n        if (local_28 < 2) goto LAB_000659c7;\nLAB_00065dcd:\n        if (local_2c != 0) {\n          iVar5 = unaff_EBP + 0x2c8ee;\nLAB_00065de4:\n          uVar10 = dcgettext(0,iVar5,5);\n          warn(uVar10);\n        }\n        break;\n      }\n      if (uVar16 <= uVar17) {\nLAB_00065919:\n        local_28 = 0xfffe;\n        local_2c = 0;\n        if (uVar16 <= uVar18 + local_44) goto LAB_00065cf4;\n        goto LAB_00065944;\n      }\n      uVar7 = (uVar16 - uVar17) - 1;\n      if (7 < uVar7) goto LAB_00065919;\n      local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,uVar16 - uVar17,uVar7,uVar7);\n      if (local_44 + uVar18 < uVar16) goto LAB_00065e10;\n      local_28 = local_2c - 2;\n      local_30 = 0;\nLAB_0006595d:\n      iVar13 = *(int *)(unaff_EBP + 0x54526);\n      if (0xfffffffd < iVar13 - 1U) goto LAB_0006596f;\nLAB_00065d0e:\n      iVar14 = 0;\n      piVar9 = (int *)(*(int *)(unaff_EBP + 0x5451e) + 0xc);\n      do {\n        if (*piVar9 == local_30 && piVar9[1] == 0) goto LAB_0006596f;\n        iVar14 = iVar14 + 1;\n        piVar9 = piVar9 + 0x14;\n      } while (iVar13 != iVar14);\n      iVar13 = *(int *)(param_1 + 8);\n      uVar10 = dcgettext(0,unaff_EBP + 0x2c8a2,5);\n      warn(uVar10,local_30,iVar13);\n      uVar17 = uVar18 + iVar5 + 1;\n      if (uVar17 < uVar16) goto LAB_00065d80;\nLAB_0006597e:\n      uVar18 = uVar18 + iVar5;\n      if ((uVar18 < uVar16) && ((uVar16 - uVar18) - 1 < 8)) {\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar16 - uVar18,iVar13,iVar13);\n        uVar18 = uVar18 + 2;\n        bVar3 = 0;\n        if (uVar18 < uVar16) {\nLAB_00065e60:\n          iVar5 = 1;\n          goto LAB_000659ad;\n        }\n      }\n      else {\n        uVar18 = uVar18 + 2;\n        if (uVar16 <= uVar18) {\n          cVar4 = '\0';\n          goto LAB_00065dbc;\n        }\n        cVar4 = '\0';\n        iVar5 = 1;\nLAB_000659ad:\n        bVar3 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n      }\n      if (1 < local_28) goto LAB_00065dcd;\nLAB_000659c7:\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c926,5);\n      printf(pcVar6,local_4c);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c94a,5);\n      printf(pcVar6,local_2c);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c96a,5);\n      printf(pcVar6,local_30);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c98e,5);\n      printf(pcVar6,cVar4);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c9ae,5);\n      printf(pcVar6,(uint)bVar3);\n      bVar3 = bVar3 + cVar4;\n      if (7 < (byte)(bVar3 - 1)) {\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar12 = dcgettext(0,unaff_EBP + 0x2c9ce,5);\n        error(uVar12,uVar10);\n        break;\n      }\n      uVar17 = (uint)bVar3;\n      if ((uVar17 - 1 & uVar17) != 0) {\n        iVar5 = unaff_EBP + 0x2c9f6;\n        goto LAB_00065de4;\n      }\n      if (bVar3 < 5) {\n        iVar5 = unaff_EBP + 0x2e6d2;\n      }\n      else {\n        iVar5 = unaff_EBP + 0x2ca2a;\n      }\n      pcVar6 = (char *)dcgettext(0,iVar5,5);\n      printf(pcVar6);\n      iVar5 = uVar17 * 2;\n      iVar13 = (int)(uVar18 - local_34) % iVar5;\n      if (iVar13 != 0) {\n        uVar18 = (iVar5 - iVar13) + uVar18;\n      }\n      local_34 = local_34 + local_20 + local_4c;\n      if (uVar18 + iVar5 <= local_34) {\n        uVar18 = uVar18 + uVar17;\n        puVar1 = *(undefined4 **)(unaff_EBP + 0x4e792);\n        do {\n          uVar15 = uVar18 - uVar17;\n          uVar8 = uVar17;\n          uVar7 = uVar17;\n          if ((uVar18 < uVar16) ||\n             ((uVar15 < uVar16 && (uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8)))) {\n            (**(code **)(unaff_EBP + 0x54592))(uVar15,uVar8);\n            if ((uVar15 + iVar5 < uVar16) ||\n               ((uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8))))\n            goto LAB_00065b58;\n          }\n          else if (uVar15 + iVar5 < uVar16) {\nLAB_00065b58:\n            (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7);\n          }\n          printf(&UNK_00016b6e + unaff_EBP);\n          FUN_0004ce60();\n          FUN_0004ce60();\n          putc(10,(FILE *)*puVar1);\n          uVar18 = uVar18 + iVar5;\n        } while (uVar17 + uVar18 <= local_34);\n      }\n    } while (local_34 < uVar16);\n  }" { (do_statement "do {\n      uVar17 = local_34 + 4;\n      if (uVar17 < uVar16) {\n        iVar5 = 4;\nLAB_00065c45:\n        lVar19 = (**(code **)(unaff_EBP + 0x54592))(local_34,iVar5);\n        if (lVar19 == 0xffffffff) {\n          uVar18 = local_34 + 0xc;\n          if (uVar18 < uVar16) {\n            iVar5 = 8;\n          }\n          else if ((uVar16 <= uVar17) || (iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U)) {\n            local_20 = 0xc;\n            local_44 = 8;\n            goto LAB_000658c1;\n          }\n          lVar19 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n          local_20 = 0xc;\n          local_44 = 8;\n          uVar17 = uVar18;\n        }\n        else {\n          local_20 = 4;\n          local_44 = 4;\n        }\n        local_4c = (int)lVar19;\n        local_3c = uVar17 - *(int *)(param_1 + 0x10);\n        uVar2 = lVar19 + (ulonglong)local_3c;\n        if ((uint)((uint)uVar2 < local_3c) <= (uint)(uVar2 >> 0x20)) goto LAB_000658e2;\nLAB_00065ec0:\n        uVar12 = FUN_0004cb50(0);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar11 = dcgettext(0,unaff_EBP + 0x2a752,5);\n        warn(uVar11,uVar10,local_3c - local_20,uVar12);\n        break;\n      }\n      iVar5 = uVar16 - local_34;\n      if (iVar5 - 1U < 8) goto LAB_00065c45;\n      local_20 = 4;\n      local_44 = 4;\n      uVar18 = uVar17;\nLAB_000658c1:\n      local_4c = 0;\n      local_3c = uVar18 - *(int *)(param_1 + 0x10);\n      uVar2 = (ulonglong)local_3c;\n      uVar17 = uVar18;\nLAB_000658e2:\n      iVar5 = local_44;\n      uVar18 = (uint)(uVar2 >> 0x20);\n      if (*(uint *)(param_1 + 0x20) < uVar18 ||\n          *(uint *)(param_1 + 0x20) - uVar18 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar2))\n      goto LAB_00065ec0;\n      uVar18 = uVar17 + 2;\n      if (uVar18 < uVar16) {\n        local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,2);\n        if (local_44 + uVar18 < uVar16) {\nLAB_00065e10:\n          local_28 = local_2c - 2;\nLAB_00065944:\n          local_30 = (**(code **)(unaff_EBP + 0x54592))(uVar18,local_44);\n          goto LAB_0006595d;\n        }\n        local_28 = local_2c - 2;\n        local_44 = uVar16 - uVar18;\n        if (local_44 - 1U < 8) goto LAB_00065944;\nLAB_00065cf4:\n        iVar13 = *(int *)(unaff_EBP + 0x54526);\n        local_30 = 0;\n        if (iVar13 - 1U < 0xfffffffe) goto LAB_00065d0e;\nLAB_0006596f:\n        uVar17 = uVar18 + iVar5 + 1;\n        if (uVar16 <= uVar17) goto LAB_0006597e;\nLAB_00065d80:\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18 + iVar5,1);\n        uVar18 = uVar18 + iVar5 + 2;\n        if (uVar18 < uVar16) goto LAB_00065e60;\n        iVar5 = uVar16 - uVar17;\n        if (iVar5 - 1U < 8) goto LAB_000659ad;\nLAB_00065dbc:\n        bVar3 = 0;\n        if (local_28 < 2) goto LAB_000659c7;\nLAB_00065dcd:\n        if (local_2c != 0) {\n          iVar5 = unaff_EBP + 0x2c8ee;\nLAB_00065de4:\n          uVar10 = dcgettext(0,iVar5,5);\n          warn(uVar10);\n        }\n        break;\n      }\n      if (uVar16 <= uVar17) {\nLAB_00065919:\n        local_28 = 0xfffe;\n        local_2c = 0;\n        if (uVar16 <= uVar18 + local_44) goto LAB_00065cf4;\n        goto LAB_00065944;\n      }\n      uVar7 = (uVar16 - uVar17) - 1;\n      if (7 < uVar7) goto LAB_00065919;\n      local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,uVar16 - uVar17,uVar7,uVar7);\n      if (local_44 + uVar18 < uVar16) goto LAB_00065e10;\n      local_28 = local_2c - 2;\n      local_30 = 0;\nLAB_0006595d:\n      iVar13 = *(int *)(unaff_EBP + 0x54526);\n      if (0xfffffffd < iVar13 - 1U) goto LAB_0006596f;\nLAB_00065d0e:\n      iVar14 = 0;\n      piVar9 = (int *)(*(int *)(unaff_EBP + 0x5451e) + 0xc);\n      do {\n        if (*piVar9 == local_30 && piVar9[1] == 0) goto LAB_0006596f;\n        iVar14 = iVar14 + 1;\n        piVar9 = piVar9 + 0x14;\n      } while (iVar13 != iVar14);\n      iVar13 = *(int *)(param_1 + 8);\n      uVar10 = dcgettext(0,unaff_EBP + 0x2c8a2,5);\n      warn(uVar10,local_30,iVar13);\n      uVar17 = uVar18 + iVar5 + 1;\n      if (uVar17 < uVar16) goto LAB_00065d80;\nLAB_0006597e:\n      uVar18 = uVar18 + iVar5;\n      if ((uVar18 < uVar16) && ((uVar16 - uVar18) - 1 < 8)) {\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar16 - uVar18,iVar13,iVar13);\n        uVar18 = uVar18 + 2;\n        bVar3 = 0;\n        if (uVar18 < uVar16) {\nLAB_00065e60:\n          iVar5 = 1;\n          goto LAB_000659ad;\n        }\n      }\n      else {\n        uVar18 = uVar18 + 2;\n        if (uVar16 <= uVar18) {\n          cVar4 = '\0';\n          goto LAB_00065dbc;\n        }\n        cVar4 = '\0';\n        iVar5 = 1;\nLAB_000659ad:\n        bVar3 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n      }\n      if (1 < local_28) goto LAB_00065dcd;\nLAB_000659c7:\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c926,5);\n      printf(pcVar6,local_4c);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c94a,5);\n      printf(pcVar6,local_2c);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c96a,5);\n      printf(pcVar6,local_30);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c98e,5);\n      printf(pcVar6,cVar4);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c9ae,5);\n      printf(pcVar6,(uint)bVar3);\n      bVar3 = bVar3 + cVar4;\n      if (7 < (byte)(bVar3 - 1)) {\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar12 = dcgettext(0,unaff_EBP + 0x2c9ce,5);\n        error(uVar12,uVar10);\n        break;\n      }\n      uVar17 = (uint)bVar3;\n      if ((uVar17 - 1 & uVar17) != 0) {\n        iVar5 = unaff_EBP + 0x2c9f6;\n        goto LAB_00065de4;\n      }\n      if (bVar3 < 5) {\n        iVar5 = unaff_EBP + 0x2e6d2;\n      }\n      else {\n        iVar5 = unaff_EBP + 0x2ca2a;\n      }\n      pcVar6 = (char *)dcgettext(0,iVar5,5);\n      printf(pcVar6);\n      iVar5 = uVar17 * 2;\n      iVar13 = (int)(uVar18 - local_34) % iVar5;\n      if (iVar13 != 0) {\n        uVar18 = (iVar5 - iVar13) + uVar18;\n      }\n      local_34 = local_34 + local_20 + local_4c;\n      if (uVar18 + iVar5 <= local_34) {\n        uVar18 = uVar18 + uVar17;\n        puVar1 = *(undefined4 **)(unaff_EBP + 0x4e792);\n        do {\n          uVar15 = uVar18 - uVar17;\n          uVar8 = uVar17;\n          uVar7 = uVar17;\n          if ((uVar18 < uVar16) ||\n             ((uVar15 < uVar16 && (uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8)))) {\n            (**(code **)(unaff_EBP + 0x54592))(uVar15,uVar8);\n            if ((uVar15 + iVar5 < uVar16) ||\n               ((uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8))))\n            goto LAB_00065b58;\n          }\n          else if (uVar15 + iVar5 < uVar16) {\nLAB_00065b58:\n            (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7);\n          }\n          printf(&UNK_00016b6e + unaff_EBP);\n          FUN_0004ce60();\n          FUN_0004ce60();\n          putc(10,(FILE *)*puVar1);\n          uVar18 = uVar18 + iVar5;\n        } while (uVar17 + uVar18 <= local_34);\n      }\n    } while (local_34 < uVar16);" do (compound_statement "{\n      uVar17 = local_34 + 4;\n      if (uVar17 < uVar16) {\n        iVar5 = 4;\nLAB_00065c45:\n        lVar19 = (**(code **)(unaff_EBP + 0x54592))(local_34,iVar5);\n        if (lVar19 == 0xffffffff) {\n          uVar18 = local_34 + 0xc;\n          if (uVar18 < uVar16) {\n            iVar5 = 8;\n          }\n          else if ((uVar16 <= uVar17) || (iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U)) {\n            local_20 = 0xc;\n            local_44 = 8;\n            goto LAB_000658c1;\n          }\n          lVar19 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n          local_20 = 0xc;\n          local_44 = 8;\n          uVar17 = uVar18;\n        }\n        else {\n          local_20 = 4;\n          local_44 = 4;\n        }\n        local_4c = (int)lVar19;\n        local_3c = uVar17 - *(int *)(param_1 + 0x10);\n        uVar2 = lVar19 + (ulonglong)local_3c;\n        if ((uint)((uint)uVar2 < local_3c) <= (uint)(uVar2 >> 0x20)) goto LAB_000658e2;\nLAB_00065ec0:\n        uVar12 = FUN_0004cb50(0);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar11 = dcgettext(0,unaff_EBP + 0x2a752,5);\n        warn(uVar11,uVar10,local_3c - local_20,uVar12);\n        break;\n      }\n      iVar5 = uVar16 - local_34;\n      if (iVar5 - 1U < 8) goto LAB_00065c45;\n      local_20 = 4;\n      local_44 = 4;\n      uVar18 = uVar17;\nLAB_000658c1:\n      local_4c = 0;\n      local_3c = uVar18 - *(int *)(param_1 + 0x10);\n      uVar2 = (ulonglong)local_3c;\n      uVar17 = uVar18;\nLAB_000658e2:\n      iVar5 = local_44;\n      uVar18 = (uint)(uVar2 >> 0x20);\n      if (*(uint *)(param_1 + 0x20) < uVar18 ||\n          *(uint *)(param_1 + 0x20) - uVar18 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar2))\n      goto LAB_00065ec0;\n      uVar18 = uVar17 + 2;\n      if (uVar18 < uVar16) {\n        local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,2);\n        if (local_44 + uVar18 < uVar16) {\nLAB_00065e10:\n          local_28 = local_2c - 2;\nLAB_00065944:\n          local_30 = (**(code **)(unaff_EBP + 0x54592))(uVar18,local_44);\n          goto LAB_0006595d;\n        }\n        local_28 = local_2c - 2;\n        local_44 = uVar16 - uVar18;\n        if (local_44 - 1U < 8) goto LAB_00065944;\nLAB_00065cf4:\n        iVar13 = *(int *)(unaff_EBP + 0x54526);\n        local_30 = 0;\n        if (iVar13 - 1U < 0xfffffffe) goto LAB_00065d0e;\nLAB_0006596f:\n        uVar17 = uVar18 + iVar5 + 1;\n        if (uVar16 <= uVar17) goto LAB_0006597e;\nLAB_00065d80:\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18 + iVar5,1);\n        uVar18 = uVar18 + iVar5 + 2;\n        if (uVar18 < uVar16) goto LAB_00065e60;\n        iVar5 = uVar16 - uVar17;\n        if (iVar5 - 1U < 8) goto LAB_000659ad;\nLAB_00065dbc:\n        bVar3 = 0;\n        if (local_28 < 2) goto LAB_000659c7;\nLAB_00065dcd:\n        if (local_2c != 0) {\n          iVar5 = unaff_EBP + 0x2c8ee;\nLAB_00065de4:\n          uVar10 = dcgettext(0,iVar5,5);\n          warn(uVar10);\n        }\n        break;\n      }\n      if (uVar16 <= uVar17) {\nLAB_00065919:\n        local_28 = 0xfffe;\n        local_2c = 0;\n        if (uVar16 <= uVar18 + local_44) goto LAB_00065cf4;\n        goto LAB_00065944;\n      }\n      uVar7 = (uVar16 - uVar17) - 1;\n      if (7 < uVar7) goto LAB_00065919;\n      local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,uVar16 - uVar17,uVar7,uVar7);\n      if (local_44 + uVar18 < uVar16) goto LAB_00065e10;\n      local_28 = local_2c - 2;\n      local_30 = 0;\nLAB_0006595d:\n      iVar13 = *(int *)(unaff_EBP + 0x54526);\n      if (0xfffffffd < iVar13 - 1U) goto LAB_0006596f;\nLAB_00065d0e:\n      iVar14 = 0;\n      piVar9 = (int *)(*(int *)(unaff_EBP + 0x5451e) + 0xc);\n      do {\n        if (*piVar9 == local_30 && piVar9[1] == 0) goto LAB_0006596f;\n        iVar14 = iVar14 + 1;\n        piVar9 = piVar9 + 0x14;\n      } while (iVar13 != iVar14);\n      iVar13 = *(int *)(param_1 + 8);\n      uVar10 = dcgettext(0,unaff_EBP + 0x2c8a2,5);\n      warn(uVar10,local_30,iVar13);\n      uVar17 = uVar18 + iVar5 + 1;\n      if (uVar17 < uVar16) goto LAB_00065d80;\nLAB_0006597e:\n      uVar18 = uVar18 + iVar5;\n      if ((uVar18 < uVar16) && ((uVar16 - uVar18) - 1 < 8)) {\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar16 - uVar18,iVar13,iVar13);\n        uVar18 = uVar18 + 2;\n        bVar3 = 0;\n        if (uVar18 < uVar16) {\nLAB_00065e60:\n          iVar5 = 1;\n          goto LAB_000659ad;\n        }\n      }\n      else {\n        uVar18 = uVar18 + 2;\n        if (uVar16 <= uVar18) {\n          cVar4 = '\0';\n          goto LAB_00065dbc;\n        }\n        cVar4 = '\0';\n        iVar5 = 1;\nLAB_000659ad:\n        bVar3 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n      }\n      if (1 < local_28) goto LAB_00065dcd;\nLAB_000659c7:\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c926,5);\n      printf(pcVar6,local_4c);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c94a,5);\n      printf(pcVar6,local_2c);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c96a,5);\n      printf(pcVar6,local_30);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c98e,5);\n      printf(pcVar6,cVar4);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c9ae,5);\n      printf(pcVar6,(uint)bVar3);\n      bVar3 = bVar3 + cVar4;\n      if (7 < (byte)(bVar3 - 1)) {\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar12 = dcgettext(0,unaff_EBP + 0x2c9ce,5);\n        error(uVar12,uVar10);\n        break;\n      }\n      uVar17 = (uint)bVar3;\n      if ((uVar17 - 1 & uVar17) != 0) {\n        iVar5 = unaff_EBP + 0x2c9f6;\n        goto LAB_00065de4;\n      }\n      if (bVar3 < 5) {\n        iVar5 = unaff_EBP + 0x2e6d2;\n      }\n      else {\n        iVar5 = unaff_EBP + 0x2ca2a;\n      }\n      pcVar6 = (char *)dcgettext(0,iVar5,5);\n      printf(pcVar6);\n      iVar5 = uVar17 * 2;\n      iVar13 = (int)(uVar18 - local_34) % iVar5;\n      if (iVar13 != 0) {\n        uVar18 = (iVar5 - iVar13) + uVar18;\n      }\n      local_34 = local_34 + local_20 + local_4c;\n      if (uVar18 + iVar5 <= local_34) {\n        uVar18 = uVar18 + uVar17;\n        puVar1 = *(undefined4 **)(unaff_EBP + 0x4e792);\n        do {\n          uVar15 = uVar18 - uVar17;\n          uVar8 = uVar17;\n          uVar7 = uVar17;\n          if ((uVar18 < uVar16) ||\n             ((uVar15 < uVar16 && (uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8)))) {\n            (**(code **)(unaff_EBP + 0x54592))(uVar15,uVar8);\n            if ((uVar15 + iVar5 < uVar16) ||\n               ((uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8))))\n            goto LAB_00065b58;\n          }\n          else if (uVar15 + iVar5 < uVar16) {\nLAB_00065b58:\n            (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7);\n          }\n          printf(&UNK_00016b6e + unaff_EBP);\n          FUN_0004ce60();\n          FUN_0004ce60();\n          putc(10,(FILE *)*puVar1);\n          uVar18 = uVar18 + iVar5;\n        } while (uVar17 + uVar18 <= local_34);\n      }\n    }" { (expression_statement "uVar17 = local_34 + 4;" (assignment_expression "uVar17 = local_34 + 4" identifier = (binary_expression "local_34 + 4" identifier + number_literal)) ;) (if_statement "if (uVar17 < uVar16) {\n        iVar5 = 4;\nLAB_00065c45:\n        lVar19 = (**(code **)(unaff_EBP + 0x54592))(local_34,iVar5);\n        if (lVar19 == 0xffffffff) {\n          uVar18 = local_34 + 0xc;\n          if (uVar18 < uVar16) {\n            iVar5 = 8;\n          }\n          else if ((uVar16 <= uVar17) || (iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U)) {\n            local_20 = 0xc;\n            local_44 = 8;\n            goto LAB_000658c1;\n          }\n          lVar19 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n          local_20 = 0xc;\n          local_44 = 8;\n          uVar17 = uVar18;\n        }\n        else {\n          local_20 = 4;\n          local_44 = 4;\n        }\n        local_4c = (int)lVar19;\n        local_3c = uVar17 - *(int *)(param_1 + 0x10);\n        uVar2 = lVar19 + (ulonglong)local_3c;\n        if ((uint)((uint)uVar2 < local_3c) <= (uint)(uVar2 >> 0x20)) goto LAB_000658e2;\nLAB_00065ec0:\n        uVar12 = FUN_0004cb50(0);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar11 = dcgettext(0,unaff_EBP + 0x2a752,5);\n        warn(uVar11,uVar10,local_3c - local_20,uVar12);\n        break;\n      }" if (parenthesized_expression "(uVar17 < uVar16)" ( (binary_expression "uVar17 < uVar16" identifier < identifier) )) (compound_statement "{\n        iVar5 = 4;\nLAB_00065c45:\n        lVar19 = (**(code **)(unaff_EBP + 0x54592))(local_34,iVar5);\n        if (lVar19 == 0xffffffff) {\n          uVar18 = local_34 + 0xc;\n          if (uVar18 < uVar16) {\n            iVar5 = 8;\n          }\n          else if ((uVar16 <= uVar17) || (iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U)) {\n            local_20 = 0xc;\n            local_44 = 8;\n            goto LAB_000658c1;\n          }\n          lVar19 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n          local_20 = 0xc;\n          local_44 = 8;\n          uVar17 = uVar18;\n        }\n        else {\n          local_20 = 4;\n          local_44 = 4;\n        }\n        local_4c = (int)lVar19;\n        local_3c = uVar17 - *(int *)(param_1 + 0x10);\n        uVar2 = lVar19 + (ulonglong)local_3c;\n        if ((uint)((uint)uVar2 < local_3c) <= (uint)(uVar2 >> 0x20)) goto LAB_000658e2;\nLAB_00065ec0:\n        uVar12 = FUN_0004cb50(0);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar11 = dcgettext(0,unaff_EBP + 0x2a752,5);\n        warn(uVar11,uVar10,local_3c - local_20,uVar12);\n        break;\n      }" { (expression_statement "iVar5 = 4;" (assignment_expression "iVar5 = 4" identifier = number_literal) ;) (labeled_statement "LAB_00065c45:\n        lVar19 = (**(code **)(unaff_EBP + 0x54592))(local_34,iVar5);" statement_identifier : (expression_statement "lVar19 = (**(code **)(unaff_EBP + 0x54592))(local_34,iVar5);" (assignment_expression "lVar19 = (**(code **)(unaff_EBP + 0x54592))(local_34,iVar5)" identifier = (call_expression "(**(code **)(unaff_EBP + 0x54592))(local_34,iVar5)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x54592))" ( (pointer_expression "**(code **)(unaff_EBP + 0x54592)" * (pointer_expression "*(code **)(unaff_EBP + 0x54592)" * (cast_expression "(code **)(unaff_EBP + 0x54592)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x54592)" ( (binary_expression "unaff_EBP + 0x54592" identifier + number_literal) ))))) )) (argument_list "(local_34,iVar5)" ( identifier , identifier )))) ;)) (if_statement "if (lVar19 == 0xffffffff) {\n          uVar18 = local_34 + 0xc;\n          if (uVar18 < uVar16) {\n            iVar5 = 8;\n          }\n          else if ((uVar16 <= uVar17) || (iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U)) {\n            local_20 = 0xc;\n            local_44 = 8;\n            goto LAB_000658c1;\n          }\n          lVar19 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n          local_20 = 0xc;\n          local_44 = 8;\n          uVar17 = uVar18;\n        }\n        else {\n          local_20 = 4;\n          local_44 = 4;\n        }" if (parenthesized_expression "(lVar19 == 0xffffffff)" ( (binary_expression "lVar19 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n          uVar18 = local_34 + 0xc;\n          if (uVar18 < uVar16) {\n            iVar5 = 8;\n          }\n          else if ((uVar16 <= uVar17) || (iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U)) {\n            local_20 = 0xc;\n            local_44 = 8;\n            goto LAB_000658c1;\n          }\n          lVar19 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n          local_20 = 0xc;\n          local_44 = 8;\n          uVar17 = uVar18;\n        }" { (expression_statement "uVar18 = local_34 + 0xc;" (assignment_expression "uVar18 = local_34 + 0xc" identifier = (binary_expression "local_34 + 0xc" identifier + number_literal)) ;) (if_statement "if (uVar18 < uVar16) {\n            iVar5 = 8;\n          }\n          else if ((uVar16 <= uVar17) || (iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U)) {\n            local_20 = 0xc;\n            local_44 = 8;\n            goto LAB_000658c1;\n          }" if (parenthesized_expression "(uVar18 < uVar16)" ( (binary_expression "uVar18 < uVar16" identifier < identifier) )) (compound_statement "{\n            iVar5 = 8;\n          }" { (expression_statement "iVar5 = 8;" (assignment_expression "iVar5 = 8" identifier = number_literal) ;) }) (else_clause "else if ((uVar16 <= uVar17) || (iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U)) {\n            local_20 = 0xc;\n            local_44 = 8;\n            goto LAB_000658c1;\n          }" else (if_statement "if ((uVar16 <= uVar17) || (iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U)) {\n            local_20 = 0xc;\n            local_44 = 8;\n            goto LAB_000658c1;\n          }" if (parenthesized_expression "((uVar16 <= uVar17) || (iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U))" ( (binary_expression "(uVar16 <= uVar17) || (iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U)" (parenthesized_expression "(uVar16 <= uVar17)" ( (binary_expression "uVar16 <= uVar17" identifier <= identifier) )) || (parenthesized_expression "(iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U)" ( (comma_expression "iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U" (assignment_expression "iVar5 = uVar16 - uVar17" identifier = (binary_expression "uVar16 - uVar17" identifier - identifier)) , (binary_expression "7 < iVar5 - 1U" number_literal < (binary_expression "iVar5 - 1U" identifier - number_literal))) ))) )) (compound_statement "{\n            local_20 = 0xc;\n            local_44 = 8;\n            goto LAB_000658c1;\n          }" { (expression_statement "local_20 = 0xc;" (assignment_expression "local_20 = 0xc" identifier = number_literal) ;) (expression_statement "local_44 = 8;" (assignment_expression "local_44 = 8" identifier = number_literal) ;) (goto_statement "goto LAB_000658c1;" goto statement_identifier ;) })))) (expression_statement "lVar19 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);" (assignment_expression "lVar19 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5)" identifier = (call_expression "(**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x54592))" ( (pointer_expression "**(code **)(unaff_EBP + 0x54592)" * (pointer_expression "*(code **)(unaff_EBP + 0x54592)" * (cast_expression "(code **)(unaff_EBP + 0x54592)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x54592)" ( (binary_expression "unaff_EBP + 0x54592" identifier + number_literal) ))))) )) (argument_list "(uVar17,iVar5)" ( identifier , identifier )))) ;) (expression_statement "local_20 = 0xc;" (assignment_expression "local_20 = 0xc" identifier = number_literal) ;) (expression_statement "local_44 = 8;" (assignment_expression "local_44 = 8" identifier = number_literal) ;) (expression_statement "uVar17 = uVar18;" (assignment_expression "uVar17 = uVar18" identifier = identifier) ;) }) (else_clause "else {\n          local_20 = 4;\n          local_44 = 4;\n        }" else (compound_statement "{\n          local_20 = 4;\n          local_44 = 4;\n        }" { (expression_statement "local_20 = 4;" (assignment_expression "local_20 = 4" identifier = number_literal) ;) (expression_statement "local_44 = 4;" (assignment_expression "local_44 = 4" identifier = number_literal) ;) }))) (expression_statement "local_4c = (int)lVar19;" (assignment_expression "local_4c = (int)lVar19" identifier = (cast_expression "(int)lVar19" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "local_3c = uVar17 - *(int *)(param_1 + 0x10);" (assignment_expression "local_3c = uVar17 - *(int *)(param_1 + 0x10)" identifier = (binary_expression "uVar17 - *(int *)(param_1 + 0x10)" identifier - (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))))) ;) (expression_statement "uVar2 = lVar19 + (ulonglong)local_3c;" (assignment_expression "uVar2 = lVar19 + (ulonglong)local_3c" identifier = (binary_expression "lVar19 + (ulonglong)local_3c" identifier + (cast_expression "(ulonglong)local_3c" ( (type_descriptor "ulonglong" type_identifier) ) identifier))) ;) (if_statement "if ((uint)((uint)uVar2 < local_3c) <= (uint)(uVar2 >> 0x20)) goto LAB_000658e2;" if (parenthesized_expression "((uint)((uint)uVar2 < local_3c) <= (uint)(uVar2 >> 0x20))" ( (binary_expression "(uint)((uint)uVar2 < local_3c) <= (uint)(uVar2 >> 0x20)" (call_expression "(uint)((uint)uVar2 < local_3c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)uVar2 < local_3c)" ( (binary_expression "(uint)uVar2 < local_3c" (cast_expression "(uint)uVar2" ( (type_descriptor "uint" type_identifier) ) identifier) < identifier) ))) <= (call_expression "(uint)(uVar2 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar2 >> 0x20)" ( (binary_expression "uVar2 >> 0x20" identifier >> number_literal) )))) )) (goto_statement "goto LAB_000658e2;" goto statement_identifier ;)) (labeled_statement "LAB_00065ec0:\n        uVar12 = FUN_0004cb50(0);" statement_identifier : (expression_statement "uVar12 = FUN_0004cb50(0);" (assignment_expression "uVar12 = FUN_0004cb50(0)" identifier = (call_expression "FUN_0004cb50(0)" identifier (argument_list "(0)" ( number_literal )))) ;)) (expression_statement "uVar10 = *(undefined4 *)(param_1 + 8);" (assignment_expression "uVar10 = *(undefined4 *)(param_1 + 8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 8)" * (cast_expression "(undefined4 *)(param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = dcgettext(0,unaff_EBP + 0x2a752,5);" (assignment_expression "uVar11 = dcgettext(0,unaff_EBP + 0x2a752,5)" identifier = (call_expression "dcgettext(0,unaff_EBP + 0x2a752,5)" identifier (argument_list "(0,unaff_EBP + 0x2a752,5)" ( number_literal , (binary_expression "unaff_EBP + 0x2a752" identifier + number_literal) , number_literal )))) ;) (expression_statement "warn(uVar11,uVar10,local_3c - local_20,uVar12);" (call_expression "warn(uVar11,uVar10,local_3c - local_20,uVar12)" identifier (argument_list "(uVar11,uVar10,local_3c - local_20,uVar12)" ( identifier , identifier , (binary_expression "local_3c - local_20" identifier - identifier) , identifier ))) ;) (break_statement "break;" break ;) })) (expression_statement "iVar5 = uVar16 - local_34;" (assignment_expression "iVar5 = uVar16 - local_34" identifier = (binary_expression "uVar16 - local_34" identifier - identifier)) ;) (if_statement "if (iVar5 - 1U < 8) goto LAB_00065c45;" if (parenthesized_expression "(iVar5 - 1U < 8)" ( (binary_expression "iVar5 - 1U < 8" (binary_expression "iVar5 - 1U" identifier - number_literal) < number_literal) )) (goto_statement "goto LAB_00065c45;" goto statement_identifier ;)) (expression_statement "local_20 = 4;" (assignment_expression "local_20 = 4" identifier = number_literal) ;) (expression_statement "local_44 = 4;" (assignment_expression "local_44 = 4" identifier = number_literal) ;) (expression_statement "uVar18 = uVar17;" (assignment_expression "uVar18 = uVar17" identifier = identifier) ;) (labeled_statement "LAB_000658c1:\n      local_4c = 0;" statement_identifier : (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;)) (expression_statement "local_3c = uVar18 - *(int *)(param_1 + 0x10);" (assignment_expression "local_3c = uVar18 - *(int *)(param_1 + 0x10)" identifier = (binary_expression "uVar18 - *(int *)(param_1 + 0x10)" identifier - (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))))) ;) (expression_statement "uVar2 = (ulonglong)local_3c;" (assignment_expression "uVar2 = (ulonglong)local_3c" identifier = (cast_expression "(ulonglong)local_3c" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) (expression_statement "uVar17 = uVar18;" (assignment_expression "uVar17 = uVar18" identifier = identifier) ;) (labeled_statement "LAB_000658e2:\n      iVar5 = local_44;" statement_identifier : (expression_statement "iVar5 = local_44;" (assignment_expression "iVar5 = local_44" identifier = identifier) ;)) (expression_statement "uVar18 = (uint)(uVar2 >> 0x20);" (assignment_expression "uVar18 = (uint)(uVar2 >> 0x20)" identifier = (call_expression "(uint)(uVar2 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar2 >> 0x20)" ( (binary_expression "uVar2 >> 0x20" identifier >> number_literal) )))) ;) (if_statement "if (*(uint *)(param_1 + 0x20) < uVar18 ||\n          *(uint *)(param_1 + 0x20) - uVar18 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar2))\n      goto LAB_00065ec0;" if (parenthesized_expression "(*(uint *)(param_1 + 0x20) < uVar18 ||\n          *(uint *)(param_1 + 0x20) - uVar18 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar2))" ( (binary_expression "*(uint *)(param_1 + 0x20) < uVar18 ||\n          *(uint *)(param_1 + 0x20) - uVar18 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar2)" (binary_expression "*(uint *)(param_1 + 0x20) < uVar18" (pointer_expression "*(uint *)(param_1 + 0x20)" * (cast_expression "(uint *)(param_1 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) < identifier) || (binary_expression "*(uint *)(param_1 + 0x20) - uVar18 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar2)" (binary_expression "*(uint *)(param_1 + 0x20) - uVar18" (pointer_expression "*(uint *)(param_1 + 0x20)" * (cast_expression "(uint *)(param_1 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) - identifier) < (call_expression "(uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(uint *)(param_1 + 0x1c) < (uint)uVar2)" ( (binary_expression "*(uint *)(param_1 + 0x1c) < (uint)uVar2" (pointer_expression "*(uint *)(param_1 + 0x1c)" * (cast_expression "(uint *)(param_1 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) < (cast_expression "(uint)uVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ))))) )) (goto_statement "goto LAB_00065ec0;" goto statement_identifier ;)) (expression_statement "uVar18 = uVar17 + 2;" (assignment_expression "uVar18 = uVar17 + 2" identifier = (binary_expression "uVar17 + 2" identifier + number_literal)) ;) (if_statement "if (uVar18 < uVar16) {\n        local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,2);\n        if (local_44 + uVar18 < uVar16) {\nLAB_00065e10:\n          local_28 = local_2c - 2;\nLAB_00065944:\n          local_30 = (**(code **)(unaff_EBP + 0x54592))(uVar18,local_44);\n          goto LAB_0006595d;\n        }\n        local_28 = local_2c - 2;\n        local_44 = uVar16 - uVar18;\n        if (local_44 - 1U < 8) goto LAB_00065944;\nLAB_00065cf4:\n        iVar13 = *(int *)(unaff_EBP + 0x54526);\n        local_30 = 0;\n        if (iVar13 - 1U < 0xfffffffe) goto LAB_00065d0e;\nLAB_0006596f:\n        uVar17 = uVar18 + iVar5 + 1;\n        if (uVar16 <= uVar17) goto LAB_0006597e;\nLAB_00065d80:\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18 + iVar5,1);\n        uVar18 = uVar18 + iVar5 + 2;\n        if (uVar18 < uVar16) goto LAB_00065e60;\n        iVar5 = uVar16 - uVar17;\n        if (iVar5 - 1U < 8) goto LAB_000659ad;\nLAB_00065dbc:\n        bVar3 = 0;\n        if (local_28 < 2) goto LAB_000659c7;\nLAB_00065dcd:\n        if (local_2c != 0) {\n          iVar5 = unaff_EBP + 0x2c8ee;\nLAB_00065de4:\n          uVar10 = dcgettext(0,iVar5,5);\n          warn(uVar10);\n        }\n        break;\n      }" if (parenthesized_expression "(uVar18 < uVar16)" ( (binary_expression "uVar18 < uVar16" identifier < identifier) )) (compound_statement "{\n        local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,2);\n        if (local_44 + uVar18 < uVar16) {\nLAB_00065e10:\n          local_28 = local_2c - 2;\nLAB_00065944:\n          local_30 = (**(code **)(unaff_EBP + 0x54592))(uVar18,local_44);\n          goto LAB_0006595d;\n        }\n        local_28 = local_2c - 2;\n        local_44 = uVar16 - uVar18;\n        if (local_44 - 1U < 8) goto LAB_00065944;\nLAB_00065cf4:\n        iVar13 = *(int *)(unaff_EBP + 0x54526);\n        local_30 = 0;\n        if (iVar13 - 1U < 0xfffffffe) goto LAB_00065d0e;\nLAB_0006596f:\n        uVar17 = uVar18 + iVar5 + 1;\n        if (uVar16 <= uVar17) goto LAB_0006597e;\nLAB_00065d80:\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18 + iVar5,1);\n        uVar18 = uVar18 + iVar5 + 2;\n        if (uVar18 < uVar16) goto LAB_00065e60;\n        iVar5 = uVar16 - uVar17;\n        if (iVar5 - 1U < 8) goto LAB_000659ad;\nLAB_00065dbc:\n        bVar3 = 0;\n        if (local_28 < 2) goto LAB_000659c7;\nLAB_00065dcd:\n        if (local_2c != 0) {\n          iVar5 = unaff_EBP + 0x2c8ee;\nLAB_00065de4:\n          uVar10 = dcgettext(0,iVar5,5);\n          warn(uVar10);\n        }\n        break;\n      }" { (expression_statement "local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,2);" (assignment_expression "local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,2)" identifier = (call_expression "(**(code **)(unaff_EBP + 0x54592))(uVar17,2)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x54592))" ( (pointer_expression "**(code **)(unaff_EBP + 0x54592)" * (pointer_expression "*(code **)(unaff_EBP + 0x54592)" * (cast_expression "(code **)(unaff_EBP + 0x54592)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x54592)" ( (binary_expression "unaff_EBP + 0x54592" identifier + number_literal) ))))) )) (argument_list "(uVar17,2)" ( identifier , number_literal )))) ;) (if_statement "if (local_44 + uVar18 < uVar16) {\nLAB_00065e10:\n          local_28 = local_2c - 2;\nLAB_00065944:\n          local_30 = (**(code **)(unaff_EBP + 0x54592))(uVar18,local_44);\n          goto LAB_0006595d;\n        }" if (parenthesized_expression "(local_44 + uVar18 < uVar16)" ( (binary_expression "local_44 + uVar18 < uVar16" (binary_expression "local_44 + uVar18" identifier + identifier) < identifier) )) (compound_statement "{\nLAB_00065e10:\n          local_28 = local_2c - 2;\nLAB_00065944:\n          local_30 = (**(code **)(unaff_EBP + 0x54592))(uVar18,local_44);\n          goto LAB_0006595d;\n        }" { (labeled_statement "LAB_00065e10:\n          local_28 = local_2c - 2;" statement_identifier : (expression_statement "local_28 = local_2c - 2;" (assignment_expression "local_28 = local_2c - 2" identifier = (binary_expression "local_2c - 2" identifier - number_literal)) ;)) (labeled_statement "LAB_00065944:\n          local_30 = (**(code **)(unaff_EBP + 0x54592))(uVar18,local_44);" statement_identifier : (expression_statement "local_30 = (**(code **)(unaff_EBP + 0x54592))(uVar18,local_44);" (assignment_expression "local_30 = (**(code **)(unaff_EBP + 0x54592))(uVar18,local_44)" identifier = (call_expression "(**(code **)(unaff_EBP + 0x54592))(uVar18,local_44)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x54592))" ( (pointer_expression "**(code **)(unaff_EBP + 0x54592)" * (pointer_expression "*(code **)(unaff_EBP + 0x54592)" * (cast_expression "(code **)(unaff_EBP + 0x54592)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x54592)" ( (binary_expression "unaff_EBP + 0x54592" identifier + number_literal) ))))) )) (argument_list "(uVar18,local_44)" ( identifier , identifier )))) ;)) (goto_statement "goto LAB_0006595d;" goto statement_identifier ;) })) (expression_statement "local_28 = local_2c - 2;" (assignment_expression "local_28 = local_2c - 2" identifier = (binary_expression "local_2c - 2" identifier - number_literal)) ;) (expression_statement "local_44 = uVar16 - uVar18;" (assignment_expression "local_44 = uVar16 - uVar18" identifier = (binary_expression "uVar16 - uVar18" identifier - identifier)) ;) (if_statement "if (local_44 - 1U < 8) goto LAB_00065944;" if (parenthesized_expression "(local_44 - 1U < 8)" ( (binary_expression "local_44 - 1U < 8" (binary_expression "local_44 - 1U" identifier - number_literal) < number_literal) )) (goto_statement "goto LAB_00065944;" goto statement_identifier ;)) (labeled_statement "LAB_00065cf4:\n        iVar13 = *(int *)(unaff_EBP + 0x54526);" statement_identifier : (expression_statement "iVar13 = *(int *)(unaff_EBP + 0x54526);" (assignment_expression "iVar13 = *(int *)(unaff_EBP + 0x54526)" identifier = (pointer_expression "*(int *)(unaff_EBP + 0x54526)" * (cast_expression "(int *)(unaff_EBP + 0x54526)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x54526)" ( (binary_expression "unaff_EBP + 0x54526" identifier + number_literal) ))))) ;)) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (if_statement "if (iVar13 - 1U < 0xfffffffe) goto LAB_00065d0e;" if (parenthesized_expression "(iVar13 - 1U < 0xfffffffe)" ( (binary_expression "iVar13 - 1U < 0xfffffffe" (binary_expression "iVar13 - 1U" identifier - number_literal) < number_literal) )) (goto_statement "goto LAB_00065d0e;" goto statement_identifier ;)) (labeled_statement "LAB_0006596f:\n        uVar17 = uVar18 + iVar5 + 1;" statement_identifier : (expression_statement "uVar17 = uVar18 + iVar5 + 1;" (assignment_expression "uVar17 = uVar18 + iVar5 + 1" identifier = (binary_expression "uVar18 + iVar5 + 1" (binary_expression "uVar18 + iVar5" identifier + identifier) + number_literal)) ;)) (if_statement "if (uVar16 <= uVar17) goto LAB_0006597e;" if (parenthesized_expression "(uVar16 <= uVar17)" ( (binary_expression "uVar16 <= uVar17" identifier <= identifier) )) (goto_statement "goto LAB_0006597e;" goto statement_identifier ;)) (labeled_statement "LAB_00065d80:\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18 + iVar5,1);" statement_identifier : (expression_statement "cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18 + iVar5,1);" (assignment_expression "cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18 + iVar5,1)" identifier = (call_expression "(**(code **)(unaff_EBP + 0x54592))(uVar18 + iVar5,1)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x54592))" ( (pointer_expression "**(code **)(unaff_EBP + 0x54592)" * (pointer_expression "*(code **)(unaff_EBP + 0x54592)" * (cast_expression "(code **)(unaff_EBP + 0x54592)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x54592)" ( (binary_expression "unaff_EBP + 0x54592" identifier + number_literal) ))))) )) (argument_list "(uVar18 + iVar5,1)" ( (binary_expression "uVar18 + iVar5" identifier + identifier) , number_literal )))) ;)) (expression_statement "uVar18 = uVar18 + iVar5 + 2;" (assignment_expression "uVar18 = uVar18 + iVar5 + 2" identifier = (binary_expression "uVar18 + iVar5 + 2" (binary_expression "uVar18 + iVar5" identifier + identifier) + number_literal)) ;) (if_statement "if (uVar18 < uVar16) goto LAB_00065e60;" if (parenthesized_expression "(uVar18 < uVar16)" ( (binary_expression "uVar18 < uVar16" identifier < identifier) )) (goto_statement "goto LAB_00065e60;" goto statement_identifier ;)) (expression_statement "iVar5 = uVar16 - uVar17;" (assignment_expression "iVar5 = uVar16 - uVar17" identifier = (binary_expression "uVar16 - uVar17" identifier - identifier)) ;) (if_statement "if (iVar5 - 1U < 8) goto LAB_000659ad;" if (parenthesized_expression "(iVar5 - 1U < 8)" ( (binary_expression "iVar5 - 1U < 8" (binary_expression "iVar5 - 1U" identifier - number_literal) < number_literal) )) (goto_statement "goto LAB_000659ad;" goto statement_identifier ;)) (labeled_statement "LAB_00065dbc:\n        bVar3 = 0;" statement_identifier : (expression_statement "bVar3 = 0;" (assignment_expression "bVar3 = 0" identifier = number_literal) ;)) (if_statement "if (local_28 < 2) goto LAB_000659c7;" if (parenthesized_expression "(local_28 < 2)" ( (binary_expression "local_28 < 2" identifier < number_literal) )) (goto_statement "goto LAB_000659c7;" goto statement_identifier ;)) (labeled_statement "LAB_00065dcd:\n        if (local_2c != 0) {\n          iVar5 = unaff_EBP + 0x2c8ee;\nLAB_00065de4:\n          uVar10 = dcgettext(0,iVar5,5);\n          warn(uVar10);\n        }" statement_identifier : (if_statement "if (local_2c != 0) {\n          iVar5 = unaff_EBP + 0x2c8ee;\nLAB_00065de4:\n          uVar10 = dcgettext(0,iVar5,5);\n          warn(uVar10);\n        }" if (parenthesized_expression "(local_2c != 0)" ( (binary_expression "local_2c != 0" identifier != number_literal) )) (compound_statement "{\n          iVar5 = unaff_EBP + 0x2c8ee;\nLAB_00065de4:\n          uVar10 = dcgettext(0,iVar5,5);\n          warn(uVar10);\n        }" { (expression_statement "iVar5 = unaff_EBP + 0x2c8ee;" (assignment_expression "iVar5 = unaff_EBP + 0x2c8ee" identifier = (binary_expression "unaff_EBP + 0x2c8ee" identifier + number_literal)) ;) (labeled_statement "LAB_00065de4:\n          uVar10 = dcgettext(0,iVar5,5);" statement_identifier : (expression_statement "uVar10 = dcgettext(0,iVar5,5);" (assignment_expression "uVar10 = dcgettext(0,iVar5,5)" identifier = (call_expression "dcgettext(0,iVar5,5)" identifier (argument_list "(0,iVar5,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "warn(uVar10);" (call_expression "warn(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))) ;) }))) (break_statement "break;" break ;) })) (if_statement "if (uVar16 <= uVar17) {\nLAB_00065919:\n        local_28 = 0xfffe;\n        local_2c = 0;\n        if (uVar16 <= uVar18 + local_44) goto LAB_00065cf4;\n        goto LAB_00065944;\n      }" if (parenthesized_expression "(uVar16 <= uVar17)" ( (binary_expression "uVar16 <= uVar17" identifier <= identifier) )) (compound_statement "{\nLAB_00065919:\n        local_28 = 0xfffe;\n        local_2c = 0;\n        if (uVar16 <= uVar18 + local_44) goto LAB_00065cf4;\n        goto LAB_00065944;\n      }" { (labeled_statement "LAB_00065919:\n        local_28 = 0xfffe;" statement_identifier : (expression_statement "local_28 = 0xfffe;" (assignment_expression "local_28 = 0xfffe" identifier = number_literal) ;)) (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" identifier = number_literal) ;) (if_statement "if (uVar16 <= uVar18 + local_44) goto LAB_00065cf4;" if (parenthesized_expression "(uVar16 <= uVar18 + local_44)" ( (binary_expression "uVar16 <= uVar18 + local_44" identifier <= (binary_expression "uVar18 + local_44" identifier + identifier)) )) (goto_statement "goto LAB_00065cf4;" goto statement_identifier ;)) (goto_statement "goto LAB_00065944;" goto statement_identifier ;) })) (expression_statement "uVar7 = (uVar16 - uVar17) - 1;" (assignment_expression "uVar7 = (uVar16 - uVar17) - 1" identifier = (binary_expression "(uVar16 - uVar17) - 1" (parenthesized_expression "(uVar16 - uVar17)" ( (binary_expression "uVar16 - uVar17" identifier - identifier) )) - number_literal)) ;) (if_statement "if (7 < uVar7) goto LAB_00065919;" if (parenthesized_expression "(7 < uVar7)" ( (binary_expression "7 < uVar7" number_literal < identifier) )) (goto_statement "goto LAB_00065919;" goto statement_identifier ;)) (expression_statement "local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,uVar16 - uVar17,uVar7,uVar7);" (assignment_expression "local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,uVar16 - uVar17,uVar7,uVar7)" identifier = (call_expression "(**(code **)(unaff_EBP + 0x54592))(uVar17,uVar16 - uVar17,uVar7,uVar7)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x54592))" ( (pointer_expression "**(code **)(unaff_EBP + 0x54592)" * (pointer_expression "*(code **)(unaff_EBP + 0x54592)" * (cast_expression "(code **)(unaff_EBP + 0x54592)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x54592)" ( (binary_expression "unaff_EBP + 0x54592" identifier + number_literal) ))))) )) (argument_list "(uVar17,uVar16 - uVar17,uVar7,uVar7)" ( identifier , (binary_expression "uVar16 - uVar17" identifier - identifier) , identifier , identifier )))) ;) (if_statement "if (local_44 + uVar18 < uVar16) goto LAB_00065e10;" if (parenthesized_expression "(local_44 + uVar18 < uVar16)" ( (binary_expression "local_44 + uVar18 < uVar16" (binary_expression "local_44 + uVar18" identifier + identifier) < identifier) )) (goto_statement "goto LAB_00065e10;" goto statement_identifier ;)) (expression_statement "local_28 = local_2c - 2;" (assignment_expression "local_28 = local_2c - 2" identifier = (binary_expression "local_2c - 2" identifier - number_literal)) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0006595d:\n      iVar13 = *(int *)(unaff_EBP + 0x54526);" statement_identifier : (expression_statement "iVar13 = *(int *)(unaff_EBP + 0x54526);" (assignment_expression "iVar13 = *(int *)(unaff_EBP + 0x54526)" identifier = (pointer_expression "*(int *)(unaff_EBP + 0x54526)" * (cast_expression "(int *)(unaff_EBP + 0x54526)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x54526)" ( (binary_expression "unaff_EBP + 0x54526" identifier + number_literal) ))))) ;)) (if_statement "if (0xfffffffd < iVar13 - 1U) goto LAB_0006596f;" if (parenthesized_expression "(0xfffffffd < iVar13 - 1U)" ( (binary_expression "0xfffffffd < iVar13 - 1U" number_literal < (binary_expression "iVar13 - 1U" identifier - number_literal)) )) (goto_statement "goto LAB_0006596f;" goto statement_identifier ;)) (labeled_statement "LAB_00065d0e:\n      iVar14 = 0;" statement_identifier : (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;)) (expression_statement "piVar9 = (int *)(*(int *)(unaff_EBP + 0x5451e) + 0xc);" (assignment_expression "piVar9 = (int *)(*(int *)(unaff_EBP + 0x5451e) + 0xc)" identifier = (cast_expression "(int *)(*(int *)(unaff_EBP + 0x5451e) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(unaff_EBP + 0x5451e) + 0xc)" ( (binary_expression "*(int *)(unaff_EBP + 0x5451e) + 0xc" (pointer_expression "*(int *)(unaff_EBP + 0x5451e)" * (cast_expression "(int *)(unaff_EBP + 0x5451e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x5451e)" ( (binary_expression "unaff_EBP + 0x5451e" identifier + number_literal) )))) + number_literal) )))) ;) (do_statement "do {\n        if (*piVar9 == local_30 && piVar9[1] == 0) goto LAB_0006596f;\n        iVar14 = iVar14 + 1;\n        piVar9 = piVar9 + 0x14;\n      } while (iVar13 != iVar14);" do (compound_statement "{\n        if (*piVar9 == local_30 && piVar9[1] == 0) goto LAB_0006596f;\n        iVar14 = iVar14 + 1;\n        piVar9 = piVar9 + 0x14;\n      }" { (if_statement "if (*piVar9 == local_30 && piVar9[1] == 0) goto LAB_0006596f;" if (parenthesized_expression "(*piVar9 == local_30 && piVar9[1] == 0)" ( (binary_expression "*piVar9 == local_30 && piVar9[1] == 0" (binary_expression "*piVar9 == local_30" (pointer_expression "*piVar9" * identifier) == identifier) && (binary_expression "piVar9[1] == 0" (subscript_expression "piVar9[1]" identifier [ number_literal ]) == number_literal)) )) (goto_statement "goto LAB_0006596f;" goto statement_identifier ;)) (expression_statement "iVar14 = iVar14 + 1;" (assignment_expression "iVar14 = iVar14 + 1" identifier = (binary_expression "iVar14 + 1" identifier + number_literal)) ;) (expression_statement "piVar9 = piVar9 + 0x14;" (assignment_expression "piVar9 = piVar9 + 0x14" identifier = (binary_expression "piVar9 + 0x14" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != iVar14)" ( (binary_expression "iVar13 != iVar14" identifier != identifier) )) ;) (expression_statement "iVar13 = *(int *)(param_1 + 8);" (assignment_expression "iVar13 = *(int *)(param_1 + 8)" identifier = (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = dcgettext(0,unaff_EBP + 0x2c8a2,5);" (assignment_expression "uVar10 = dcgettext(0,unaff_EBP + 0x2c8a2,5)" identifier = (call_expression "dcgettext(0,unaff_EBP + 0x2c8a2,5)" identifier (argument_list "(0,unaff_EBP + 0x2c8a2,5)" ( number_literal , (binary_expression "unaff_EBP + 0x2c8a2" identifier + number_literal) , number_literal )))) ;) (expression_statement "warn(uVar10,local_30,iVar13);" (call_expression "warn(uVar10,local_30,iVar13)" identifier (argument_list "(uVar10,local_30,iVar13)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar17 = uVar18 + iVar5 + 1;" (assignment_expression "uVar17 = uVar18 + iVar5 + 1" identifier = (binary_expression "uVar18 + iVar5 + 1" (binary_expression "uVar18 + iVar5" identifier + identifier) + number_literal)) ;) (if_statement "if (uVar17 < uVar16) goto LAB_00065d80;" if (parenthesized_expression "(uVar17 < uVar16)" ( (binary_expression "uVar17 < uVar16" identifier < identifier) )) (goto_statement "goto LAB_00065d80;" goto statement_identifier ;)) (labeled_statement "LAB_0006597e:\n      uVar18 = uVar18 + iVar5;" statement_identifier : (expression_statement "uVar18 = uVar18 + iVar5;" (assignment_expression "uVar18 = uVar18 + iVar5" identifier = (binary_expression "uVar18 + iVar5" identifier + identifier)) ;)) (if_statement "if ((uVar18 < uVar16) && ((uVar16 - uVar18) - 1 < 8)) {\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar16 - uVar18,iVar13,iVar13);\n        uVar18 = uVar18 + 2;\n        bVar3 = 0;\n        if (uVar18 < uVar16) {\nLAB_00065e60:\n          iVar5 = 1;\n          goto LAB_000659ad;\n        }\n      }\n      else {\n        uVar18 = uVar18 + 2;\n        if (uVar16 <= uVar18) {\n          cVar4 = '\0';\n          goto LAB_00065dbc;\n        }\n        cVar4 = '\0';\n        iVar5 = 1;\nLAB_000659ad:\n        bVar3 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n      }" if (parenthesized_expression "((uVar18 < uVar16) && ((uVar16 - uVar18) - 1 < 8))" ( (binary_expression "(uVar18 < uVar16) && ((uVar16 - uVar18) - 1 < 8)" (parenthesized_expression "(uVar18 < uVar16)" ( (binary_expression "uVar18 < uVar16" identifier < identifier) )) && (parenthesized_expression "((uVar16 - uVar18) - 1 < 8)" ( (binary_expression "(uVar16 - uVar18) - 1 < 8" (binary_expression "(uVar16 - uVar18) - 1" (parenthesized_expression "(uVar16 - uVar18)" ( (binary_expression "uVar16 - uVar18" identifier - identifier) )) - number_literal) < number_literal) ))) )) (compound_statement "{\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar16 - uVar18,iVar13,iVar13);\n        uVar18 = uVar18 + 2;\n        bVar3 = 0;\n        if (uVar18 < uVar16) {\nLAB_00065e60:\n          iVar5 = 1;\n          goto LAB_000659ad;\n        }\n      }" { (expression_statement "cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar16 - uVar18,iVar13,iVar13);" (assignment_expression "cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar16 - uVar18,iVar13,iVar13)" identifier = (call_expression "(**(code **)(unaff_EBP + 0x54592))(uVar18,uVar16 - uVar18,iVar13,iVar13)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x54592))" ( (pointer_expression "**(code **)(unaff_EBP + 0x54592)" * (pointer_expression "*(code **)(unaff_EBP + 0x54592)" * (cast_expression "(code **)(unaff_EBP + 0x54592)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x54592)" ( (binary_expression "unaff_EBP + 0x54592" identifier + number_literal) ))))) )) (argument_list "(uVar18,uVar16 - uVar18,iVar13,iVar13)" ( identifier , (binary_expression "uVar16 - uVar18" identifier - identifier) , identifier , identifier )))) ;) (expression_statement "uVar18 = uVar18 + 2;" (assignment_expression "uVar18 = uVar18 + 2" identifier = (binary_expression "uVar18 + 2" identifier + number_literal)) ;) (expression_statement "bVar3 = 0;" (assignment_expression "bVar3 = 0" identifier = number_literal) ;) (if_statement "if (uVar18 < uVar16) {\nLAB_00065e60:\n          iVar5 = 1;\n          goto LAB_000659ad;\n        }" if (parenthesized_expression "(uVar18 < uVar16)" ( (binary_expression "uVar18 < uVar16" identifier < identifier) )) (compound_statement "{\nLAB_00065e60:\n          iVar5 = 1;\n          goto LAB_000659ad;\n        }" { (labeled_statement "LAB_00065e60:\n          iVar5 = 1;" statement_identifier : (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;)) (goto_statement "goto LAB_000659ad;" goto statement_identifier ;) })) }) (else_clause "else {\n        uVar18 = uVar18 + 2;\n        if (uVar16 <= uVar18) {\n          cVar4 = '\0';\n          goto LAB_00065dbc;\n        }\n        cVar4 = '\0';\n        iVar5 = 1;\nLAB_000659ad:\n        bVar3 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n      }" else (compound_statement "{\n        uVar18 = uVar18 + 2;\n        if (uVar16 <= uVar18) {\n          cVar4 = '\0';\n          goto LAB_00065dbc;\n        }\n        cVar4 = '\0';\n        iVar5 = 1;\nLAB_000659ad:\n        bVar3 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n      }" { (expression_statement "uVar18 = uVar18 + 2;" (assignment_expression "uVar18 = uVar18 + 2" identifier = (binary_expression "uVar18 + 2" identifier + number_literal)) ;) (if_statement "if (uVar16 <= uVar18) {\n          cVar4 = '\0';\n          goto LAB_00065dbc;\n        }" if (parenthesized_expression "(uVar16 <= uVar18)" ( (binary_expression "uVar16 <= uVar18" identifier <= identifier) )) (compound_statement "{\n          cVar4 = '\0';\n          goto LAB_00065dbc;\n        }" { (expression_statement "cVar4 = '\0';" (assignment_expression "cVar4 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (goto_statement "goto LAB_00065dbc;" goto statement_identifier ;) })) (expression_statement "cVar4 = '\0';" (assignment_expression "cVar4 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) (labeled_statement "LAB_000659ad:\n        bVar3 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);" statement_identifier : (expression_statement "bVar3 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);" (assignment_expression "bVar3 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5)" identifier = (call_expression "(**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x54592))" ( (pointer_expression "**(code **)(unaff_EBP + 0x54592)" * (pointer_expression "*(code **)(unaff_EBP + 0x54592)" * (cast_expression "(code **)(unaff_EBP + 0x54592)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x54592)" ( (binary_expression "unaff_EBP + 0x54592" identifier + number_literal) ))))) )) (argument_list "(uVar17,iVar5)" ( identifier , identifier )))) ;)) }))) (if_statement "if (1 < local_28) goto LAB_00065dcd;" if (parenthesized_expression "(1 < local_28)" ( (binary_expression "1 < local_28" number_literal < identifier) )) (goto_statement "goto LAB_00065dcd;" goto statement_identifier ;)) (labeled_statement "LAB_000659c7:\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c926,5);" statement_identifier : (expression_statement "pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c926,5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c926,5)" identifier = (cast_expression "(char *)dcgettext(0,unaff_EBP + 0x2c926,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,unaff_EBP + 0x2c926,5)" identifier (argument_list "(0,unaff_EBP + 0x2c926,5)" ( number_literal , (binary_expression "unaff_EBP + 0x2c926" identifier + number_literal) , number_literal ))))) ;)) (expression_statement "printf(pcVar6,local_4c);" (call_expression "printf(pcVar6,local_4c)" identifier (argument_list "(pcVar6,local_4c)" ( identifier , identifier ))) ;) (expression_statement "pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c94a,5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c94a,5)" identifier = (cast_expression "(char *)dcgettext(0,unaff_EBP + 0x2c94a,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,unaff_EBP + 0x2c94a,5)" identifier (argument_list "(0,unaff_EBP + 0x2c94a,5)" ( number_literal , (binary_expression "unaff_EBP + 0x2c94a" identifier + number_literal) , number_literal ))))) ;) (expression_statement "printf(pcVar6,local_2c);" (call_expression "printf(pcVar6,local_2c)" identifier (argument_list "(pcVar6,local_2c)" ( identifier , identifier ))) ;) (expression_statement "pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c96a,5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c96a,5)" identifier = (cast_expression "(char *)dcgettext(0,unaff_EBP + 0x2c96a,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,unaff_EBP + 0x2c96a,5)" identifier (argument_list "(0,unaff_EBP + 0x2c96a,5)" ( number_literal , (binary_expression "unaff_EBP + 0x2c96a" identifier + number_literal) , number_literal ))))) ;) (expression_statement "printf(pcVar6,local_30);" (call_expression "printf(pcVar6,local_30)" identifier (argument_list "(pcVar6,local_30)" ( identifier , identifier ))) ;) (expression_statement "pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c98e,5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c98e,5)" identifier = (cast_expression "(char *)dcgettext(0,unaff_EBP + 0x2c98e,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,unaff_EBP + 0x2c98e,5)" identifier (argument_list "(0,unaff_EBP + 0x2c98e,5)" ( number_literal , (binary_expression "unaff_EBP + 0x2c98e" identifier + number_literal) , number_literal ))))) ;) (expression_statement "printf(pcVar6,cVar4);" (call_expression "printf(pcVar6,cVar4)" identifier (argument_list "(pcVar6,cVar4)" ( identifier , identifier ))) ;) (expression_statement "pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c9ae,5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c9ae,5)" identifier = (cast_expression "(char *)dcgettext(0,unaff_EBP + 0x2c9ae,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,unaff_EBP + 0x2c9ae,5)" identifier (argument_list "(0,unaff_EBP + 0x2c9ae,5)" ( number_literal , (binary_expression "unaff_EBP + 0x2c9ae" identifier + number_literal) , number_literal ))))) ;) (expression_statement "printf(pcVar6,(uint)bVar3);" (call_expression "printf(pcVar6,(uint)bVar3)" identifier (argument_list "(pcVar6,(uint)bVar3)" ( identifier , (cast_expression "(uint)bVar3" ( (type_descriptor "uint" type_identifier) ) identifier) ))) ;) (expression_statement "bVar3 = bVar3 + cVar4;" (assignment_expression "bVar3 = bVar3 + cVar4" identifier = (binary_expression "bVar3 + cVar4" identifier + identifier)) ;) (if_statement "if (7 < (byte)(bVar3 - 1)) {\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar12 = dcgettext(0,unaff_EBP + 0x2c9ce,5);\n        error(uVar12,uVar10);\n        break;\n      }" if (parenthesized_expression "(7 < (byte)(bVar3 - 1))" ( (binary_expression "7 < (byte)(bVar3 - 1)" number_literal < (call_expression "(byte)(bVar3 - 1)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar3 - 1)" ( (binary_expression "bVar3 - 1" identifier - number_literal) )))) )) (compound_statement "{\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar12 = dcgettext(0,unaff_EBP + 0x2c9ce,5);\n        error(uVar12,uVar10);\n        break;\n      }" { (expression_statement "uVar10 = *(undefined4 *)(param_1 + 8);" (assignment_expression "uVar10 = *(undefined4 *)(param_1 + 8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 8)" * (cast_expression "(undefined4 *)(param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = dcgettext(0,unaff_EBP + 0x2c9ce,5);" (assignment_expression "uVar12 = dcgettext(0,unaff_EBP + 0x2c9ce,5)" identifier = (call_expression "dcgettext(0,unaff_EBP + 0x2c9ce,5)" identifier (argument_list "(0,unaff_EBP + 0x2c9ce,5)" ( number_literal , (binary_expression "unaff_EBP + 0x2c9ce" identifier + number_literal) , number_literal )))) ;) (expression_statement "error(uVar12,uVar10);" (call_expression "error(uVar12,uVar10)" identifier (argument_list "(uVar12,uVar10)" ( identifier , identifier ))) ;) (break_statement "break;" break ;) })) (expression_statement "uVar17 = (uint)bVar3;" (assignment_expression "uVar17 = (uint)bVar3" identifier = (cast_expression "(uint)bVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if ((uVar17 - 1 & uVar17) != 0) {\n        iVar5 = unaff_EBP + 0x2c9f6;\n        goto LAB_00065de4;\n      }" if (parenthesized_expression "((uVar17 - 1 & uVar17) != 0)" ( (binary_expression "(uVar17 - 1 & uVar17) != 0" (parenthesized_expression "(uVar17 - 1 & uVar17)" ( (binary_expression "uVar17 - 1 & uVar17" (binary_expression "uVar17 - 1" identifier - number_literal) & identifier) )) != number_literal) )) (compound_statement "{\n        iVar5 = unaff_EBP + 0x2c9f6;\n        goto LAB_00065de4;\n      }" { (expression_statement "iVar5 = unaff_EBP + 0x2c9f6;" (assignment_expression "iVar5 = unaff_EBP + 0x2c9f6" identifier = (binary_expression "unaff_EBP + 0x2c9f6" identifier + number_literal)) ;) (goto_statement "goto LAB_00065de4;" goto statement_identifier ;) })) (if_statement "if (bVar3 < 5) {\n        iVar5 = unaff_EBP + 0x2e6d2;\n      }\n      else {\n        iVar5 = unaff_EBP + 0x2ca2a;\n      }" if (parenthesized_expression "(bVar3 < 5)" ( (binary_expression "bVar3 < 5" identifier < number_literal) )) (compound_statement "{\n        iVar5 = unaff_EBP + 0x2e6d2;\n      }" { (expression_statement "iVar5 = unaff_EBP + 0x2e6d2;" (assignment_expression "iVar5 = unaff_EBP + 0x2e6d2" identifier = (binary_expression "unaff_EBP + 0x2e6d2" identifier + number_literal)) ;) }) (else_clause "else {\n        iVar5 = unaff_EBP + 0x2ca2a;\n      }" else (compound_statement "{\n        iVar5 = unaff_EBP + 0x2ca2a;\n      }" { (expression_statement "iVar5 = unaff_EBP + 0x2ca2a;" (assignment_expression "iVar5 = unaff_EBP + 0x2ca2a" identifier = (binary_expression "unaff_EBP + 0x2ca2a" identifier + number_literal)) ;) }))) (expression_statement "pcVar6 = (char *)dcgettext(0,iVar5,5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,iVar5,5)" identifier = (cast_expression "(char *)dcgettext(0,iVar5,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,iVar5,5)" identifier (argument_list "(0,iVar5,5)" ( number_literal , identifier , number_literal ))))) ;) (expression_statement "printf(pcVar6);" (call_expression "printf(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier ))) ;) (expression_statement "iVar5 = uVar17 * 2;" (assignment_expression "iVar5 = uVar17 * 2" identifier = (binary_expression "uVar17 * 2" identifier * number_literal)) ;) (expression_statement "iVar13 = (int)(uVar18 - local_34) % iVar5;" (assignment_expression "iVar13 = (int)(uVar18 - local_34) % iVar5" identifier = (binary_expression "(int)(uVar18 - local_34) % iVar5" (cast_expression "(int)(uVar18 - local_34)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar18 - local_34)" ( (binary_expression "uVar18 - local_34" identifier - identifier) ))) % identifier)) ;) (if_statement "if (iVar13 != 0) {\n        uVar18 = (iVar5 - iVar13) + uVar18;\n      }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar18 = (iVar5 - iVar13) + uVar18;\n      }" { (expression_statement "uVar18 = (iVar5 - iVar13) + uVar18;" (assignment_expression "uVar18 = (iVar5 - iVar13) + uVar18" identifier = (binary_expression "(iVar5 - iVar13) + uVar18" (parenthesized_expression "(iVar5 - iVar13)" ( (binary_expression "iVar5 - iVar13" identifier - identifier) )) + identifier)) ;) })) (expression_statement "local_34 = local_34 + local_20 + local_4c;" (assignment_expression "local_34 = local_34 + local_20 + local_4c" identifier = (binary_expression "local_34 + local_20 + local_4c" (binary_expression "local_34 + local_20" identifier + identifier) + identifier)) ;) (if_statement "if (uVar18 + iVar5 <= local_34) {\n        uVar18 = uVar18 + uVar17;\n        puVar1 = *(undefined4 **)(unaff_EBP + 0x4e792);\n        do {\n          uVar15 = uVar18 - uVar17;\n          uVar8 = uVar17;\n          uVar7 = uVar17;\n          if ((uVar18 < uVar16) ||\n             ((uVar15 < uVar16 && (uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8)))) {\n            (**(code **)(unaff_EBP + 0x54592))(uVar15,uVar8);\n            if ((uVar15 + iVar5 < uVar16) ||\n               ((uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8))))\n            goto LAB_00065b58;\n          }\n          else if (uVar15 + iVar5 < uVar16) {\nLAB_00065b58:\n            (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7);\n          }\n          printf(&UNK_00016b6e + unaff_EBP);\n          FUN_0004ce60();\n          FUN_0004ce60();\n          putc(10,(FILE *)*puVar1);\n          uVar18 = uVar18 + iVar5;\n        } while (uVar17 + uVar18 <= local_34);\n      }" if (parenthesized_expression "(uVar18 + iVar5 <= local_34)" ( (binary_expression "uVar18 + iVar5 <= local_34" (binary_expression "uVar18 + iVar5" identifier + identifier) <= identifier) )) (compound_statement "{\n        uVar18 = uVar18 + uVar17;\n        puVar1 = *(undefined4 **)(unaff_EBP + 0x4e792);\n        do {\n          uVar15 = uVar18 - uVar17;\n          uVar8 = uVar17;\n          uVar7 = uVar17;\n          if ((uVar18 < uVar16) ||\n             ((uVar15 < uVar16 && (uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8)))) {\n            (**(code **)(unaff_EBP + 0x54592))(uVar15,uVar8);\n            if ((uVar15 + iVar5 < uVar16) ||\n               ((uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8))))\n            goto LAB_00065b58;\n          }\n          else if (uVar15 + iVar5 < uVar16) {\nLAB_00065b58:\n            (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7);\n          }\n          printf(&UNK_00016b6e + unaff_EBP);\n          FUN_0004ce60();\n          FUN_0004ce60();\n          putc(10,(FILE *)*puVar1);\n          uVar18 = uVar18 + iVar5;\n        } while (uVar17 + uVar18 <= local_34);\n      }" { (expression_statement "uVar18 = uVar18 + uVar17;" (assignment_expression "uVar18 = uVar18 + uVar17" identifier = (binary_expression "uVar18 + uVar17" identifier + identifier)) ;) (expression_statement "puVar1 = *(undefined4 **)(unaff_EBP + 0x4e792);" (assignment_expression "puVar1 = *(undefined4 **)(unaff_EBP + 0x4e792)" identifier = (pointer_expression "*(undefined4 **)(unaff_EBP + 0x4e792)" * (cast_expression "(undefined4 **)(unaff_EBP + 0x4e792)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x4e792)" ( (binary_expression "unaff_EBP + 0x4e792" identifier + number_literal) ))))) ;) (do_statement "do {\n          uVar15 = uVar18 - uVar17;\n          uVar8 = uVar17;\n          uVar7 = uVar17;\n          if ((uVar18 < uVar16) ||\n             ((uVar15 < uVar16 && (uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8)))) {\n            (**(code **)(unaff_EBP + 0x54592))(uVar15,uVar8);\n            if ((uVar15 + iVar5 < uVar16) ||\n               ((uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8))))\n            goto LAB_00065b58;\n          }\n          else if (uVar15 + iVar5 < uVar16) {\nLAB_00065b58:\n            (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7);\n          }\n          printf(&UNK_00016b6e + unaff_EBP);\n          FUN_0004ce60();\n          FUN_0004ce60();\n          putc(10,(FILE *)*puVar1);\n          uVar18 = uVar18 + iVar5;\n        } while (uVar17 + uVar18 <= local_34);" do (compound_statement "{\n          uVar15 = uVar18 - uVar17;\n          uVar8 = uVar17;\n          uVar7 = uVar17;\n          if ((uVar18 < uVar16) ||\n             ((uVar15 < uVar16 && (uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8)))) {\n            (**(code **)(unaff_EBP + 0x54592))(uVar15,uVar8);\n            if ((uVar15 + iVar5 < uVar16) ||\n               ((uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8))))\n            goto LAB_00065b58;\n          }\n          else if (uVar15 + iVar5 < uVar16) {\nLAB_00065b58:\n            (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7);\n          }\n          printf(&UNK_00016b6e + unaff_EBP);\n          FUN_0004ce60();\n          FUN_0004ce60();\n          putc(10,(FILE *)*puVar1);\n          uVar18 = uVar18 + iVar5;\n        }" { (expression_statement "uVar15 = uVar18 - uVar17;" (assignment_expression "uVar15 = uVar18 - uVar17" identifier = (binary_expression "uVar18 - uVar17" identifier - identifier)) ;) (expression_statement "uVar8 = uVar17;" (assignment_expression "uVar8 = uVar17" identifier = identifier) ;) (expression_statement "uVar7 = uVar17;" (assignment_expression "uVar7 = uVar17" identifier = identifier) ;) (if_statement "if ((uVar18 < uVar16) ||\n             ((uVar15 < uVar16 && (uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8)))) {\n            (**(code **)(unaff_EBP + 0x54592))(uVar15,uVar8);\n            if ((uVar15 + iVar5 < uVar16) ||\n               ((uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8))))\n            goto LAB_00065b58;\n          }\n          else if (uVar15 + iVar5 < uVar16) {\nLAB_00065b58:\n            (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7);\n          }" if (parenthesized_expression "((uVar18 < uVar16) ||\n             ((uVar15 < uVar16 && (uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8))))" ( (binary_expression "(uVar18 < uVar16) ||\n             ((uVar15 < uVar16 && (uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8)))" (parenthesized_expression "(uVar18 < uVar16)" ( (binary_expression "uVar18 < uVar16" identifier < identifier) )) || (parenthesized_expression "((uVar15 < uVar16 && (uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8)))" ( (parenthesized_expression "(uVar15 < uVar16 && (uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8))" ( (binary_expression "uVar15 < uVar16 && (uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8)" (binary_expression "uVar15 < uVar16" identifier < identifier) && (parenthesized_expression "(uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8)" ( (comma_expression "uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8" (assignment_expression "uVar8 = uVar16 - uVar15" identifier = (binary_expression "uVar16 - uVar15" identifier - identifier)) , (binary_expression "(uVar16 - uVar15) - 1 < 8" (binary_expression "(uVar16 - uVar15) - 1" (parenthesized_expression "(uVar16 - uVar15)" ( (binary_expression "uVar16 - uVar15" identifier - identifier) )) - number_literal) < number_literal)) ))) )) ))) )) (compound_statement "{\n            (**(code **)(unaff_EBP + 0x54592))(uVar15,uVar8);\n            if ((uVar15 + iVar5 < uVar16) ||\n               ((uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8))))\n            goto LAB_00065b58;\n          }" { (expression_statement "(**(code **)(unaff_EBP + 0x54592))(uVar15,uVar8);" (call_expression "(**(code **)(unaff_EBP + 0x54592))(uVar15,uVar8)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x54592))" ( (pointer_expression "**(code **)(unaff_EBP + 0x54592)" * (pointer_expression "*(code **)(unaff_EBP + 0x54592)" * (cast_expression "(code **)(unaff_EBP + 0x54592)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x54592)" ( (binary_expression "unaff_EBP + 0x54592" identifier + number_literal) ))))) )) (argument_list "(uVar15,uVar8)" ( identifier , identifier ))) ;) (if_statement "if ((uVar15 + iVar5 < uVar16) ||\n               ((uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8))))\n            goto LAB_00065b58;" if (parenthesized_expression "((uVar15 + iVar5 < uVar16) ||\n               ((uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8))))" ( (binary_expression "(uVar15 + iVar5 < uVar16) ||\n               ((uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8)))" (parenthesized_expression "(uVar15 + iVar5 < uVar16)" ( (binary_expression "uVar15 + iVar5 < uVar16" (binary_expression "uVar15 + iVar5" identifier + identifier) < identifier) )) || (parenthesized_expression "((uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8)))" ( (parenthesized_expression "(uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8))" ( (binary_expression "uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8)" (binary_expression "uVar18 < uVar16" identifier < identifier) && (parenthesized_expression "(uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8)" ( (comma_expression "uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8" (assignment_expression "uVar7 = uVar16 - uVar18" identifier = (binary_expression "uVar16 - uVar18" identifier - identifier)) , (binary_expression "(uVar16 - uVar18) - 1 < 8" (binary_expression "(uVar16 - uVar18) - 1" (parenthesized_expression "(uVar16 - uVar18)" ( (binary_expression "uVar16 - uVar18" identifier - identifier) )) - number_literal) < number_literal)) ))) )) ))) )) (goto_statement "goto LAB_00065b58;" goto statement_identifier ;)) }) (else_clause "else if (uVar15 + iVar5 < uVar16) {\nLAB_00065b58:\n            (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7);\n          }" else (if_statement "if (uVar15 + iVar5 < uVar16) {\nLAB_00065b58:\n            (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7);\n          }" if (parenthesized_expression "(uVar15 + iVar5 < uVar16)" ( (binary_expression "uVar15 + iVar5 < uVar16" (binary_expression "uVar15 + iVar5" identifier + identifier) < identifier) )) (compound_statement "{\nLAB_00065b58:\n            (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7);\n          }" { (labeled_statement "LAB_00065b58:\n            (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7);" statement_identifier : (expression_statement "(**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7);" (call_expression "(**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x54592))" ( (pointer_expression "**(code **)(unaff_EBP + 0x54592)" * (pointer_expression "*(code **)(unaff_EBP + 0x54592)" * (cast_expression "(code **)(unaff_EBP + 0x54592)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x54592)" ( (binary_expression "unaff_EBP + 0x54592" identifier + number_literal) ))))) )) (argument_list "(uVar18,uVar7)" ( identifier , identifier ))) ;)) })))) (expression_statement "printf(&UNK_00016b6e + unaff_EBP);" (call_expression "printf(&UNK_00016b6e + unaff_EBP)" identifier (argument_list "(&UNK_00016b6e + unaff_EBP)" ( (binary_expression "&UNK_00016b6e + unaff_EBP" (pointer_expression "&UNK_00016b6e" & identifier) + identifier) ))) ;) (expression_statement "FUN_0004ce60();" (call_expression "FUN_0004ce60()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0004ce60();" (call_expression "FUN_0004ce60()" identifier (argument_list "()" ( ))) ;) (expression_statement "putc(10,(FILE *)*puVar1);" (call_expression "putc(10,(FILE *)*puVar1)" identifier (argument_list "(10,(FILE *)*puVar1)" ( number_literal , (cast_expression "(FILE *)*puVar1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar1" * identifier)) ))) ;) (expression_statement "uVar18 = uVar18 + iVar5;" (assignment_expression "uVar18 = uVar18 + iVar5" identifier = (binary_expression "uVar18 + iVar5" identifier + identifier)) ;) }) while (parenthesized_expression "(uVar17 + uVar18 <= local_34)" ( (binary_expression "uVar17 + uVar18 <= local_34" (binary_expression "uVar17 + uVar18" identifier + identifier) <= identifier) )) ;) })) }) while (parenthesized_expression "(local_34 < uVar16)" ( (binary_expression "local_34 < uVar16" identifier < identifier) )) ;) })) (expression_statement "putchar(10);" (call_expression "putchar(10)" identifier (argument_list "(10)" ( number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bp replaced with injection: get_pc_thunk.bp */\n/* WARNING: Unknown calling convention */\n\nint display_debug_aranges(dwarf_section *section,void *file)\n\n{\n  uchar *puVar1;\n  uint uVar2;\n  undefined *puVar3;\n  FILE *pFVar4;\n  int iVar5;\n  char *pcVar6;\n  FILE *pFVar7;\n  FILE *pFVar8;\n  dwarf_vma *pdVar9;\n  char *message;\n  char *pcVar10;\n  dwarf_section *in_ECX;\n  uint uVar11;\n  uint uVar12;\n  int iVar13;\n  uint uVar14;\n  uchar *puVar15;\n  uchar *puVar16;\n  uchar *puVar17;\n  elf_vma eVar18;\n  undefined *puVar19;\n  char *in_stack_ffffff98;\n  void *in_stack_ffffffa4;\n  undefined8 local_4c;\n  uint local_44;\n  uint local_3c;\n  int local_30;\n  short local_2c;\n  ushort local_28;\n  int local_20;\n  \n  puVar1 = section->start;\n  puVar16 = puVar1 + (int)section->size;\n  introduce((dwarf_section *)section->name,(bfd_boolean)&section->filename,in_ECX);\n  load_debug_info(in_stack_ffffffa4);\n  do {\n    if (puVar16 <= puVar1) {\nLAB_00065bcc:\n      putchar(10);\n      return 1;\n    }\n    puVar15 = puVar1 + 4;\n    if (puVar15 < puVar16) {\n      pFVar4 = (FILE *)0x4;\nLAB_00065c45:\n      local_4c = (*byte_get)(puVar1,(int)pFVar4);\n      if (local_4c == 0xffffffff) {\n        puVar17 = puVar1 + 0xc;\n        if (puVar17 < puVar16) {\n          pFVar8 = (FILE *)0x8;\n        }\n        else if ((puVar16 <= puVar15) ||\n                (pFVar8 = (FILE *)(puVar16 + -(int)puVar15),\n                (char *)0x7 < pFVar8[-1]._unused2 + 0x27)) {\n          local_20 = 0xc;\n          iVar5 = 8;\n          goto LAB_000658c1;\n        }\n        local_4c = (*byte_get)(puVar15,(int)pFVar8);\n        local_20 = 0xc;\n        iVar5 = 8;\n        puVar15 = puVar17;\n        pFVar4 = pFVar8;\n      }\n      else {\n        local_20 = 4;\n        iVar5 = 4;\n      }\n      uVar14 = (int)puVar15 - (int)section->start;\n      uVar11 = (uint)local_4c + uVar14;\n      uVar12 = local_4c._4_4_ + (uint)CARRY4((uint)local_4c,uVar14);\n      if ((uVar11 < uVar14) <= uVar12) goto LAB_000658e2;\nLAB_00065ec0:\n      pcVar10 = dwarf_vmatoa_1("x",ZEXT48(pFVar4) << 0x20,(uint)local_4c);\n      pcVar6 = section->name;\n      message = (char *)dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(message,pcVar6,uVar14 - local_20,pcVar10);\n      goto LAB_00065bcc;\n    }\n    pFVar4 = (FILE *)(puVar16 + -(int)puVar1);\n    if (pFVar4[-1]._unused2 + 0x27 < (char *)0x8) goto LAB_00065c45;\n    local_20 = 4;\n    iVar5 = 4;\n    puVar17 = puVar15;\n    pFVar4 = (FILE *)in_stack_ffffff98;\nLAB_000658c1:\n    uVar12 = 0;\n    local_4c = 0;\n    uVar11 = (int)puVar17 - (int)section->start;\n    puVar15 = puVar17;\n    uVar14 = uVar11;\nLAB_000658e2:\n    uVar2 = *(uint *)((int)&section->size + 4);\n    if (uVar2 < uVar12 || uVar2 - uVar12 < (uint)((uint)section->size < uVar11)) goto LAB_00065ec0;\n    puVar17 = puVar15 + 2;\n    iVar13 = iVar5;\n    if (puVar17 < puVar16) {\n      eVar18 = (*byte_get)(puVar15,2);\n      local_2c = (short)eVar18;\n      if (puVar17 + iVar5 < puVar16) {\nLAB_00065e10:\n        local_28 = local_2c - 2;\nLAB_00065944:\n        eVar18 = (*byte_get)(puVar17,iVar13);\n        local_30 = (int)eVar18;\n        goto LAB_0006595d;\n      }\n      local_28 = local_2c - 2;\n      iVar13 = (int)puVar16 - (int)puVar17;\n      if (((int)puVar16 - (int)puVar17) - 1U < 8) goto LAB_00065944;\nLAB_00065cf4:\n      local_30 = 0;\n      if (num_debug_info_entries - 1 < 0xfffffffe) goto LAB_00065d0e;\nLAB_0006596f:\n      puVar15 = puVar17 + iVar5 + 1;\n      if (puVar16 <= puVar15) goto LAB_0006597e;\nLAB_00065d80:\n      eVar18 = (*byte_get)(puVar17 + iVar5,1);\n      local_44._0_1_ = (byte)eVar18;\n      puVar17 = puVar17 + iVar5 + 2;\n      if (puVar17 < puVar16) goto LAB_00065e60;\n      iVar5 = (int)puVar16 - (int)puVar15;\n      if (iVar5 - 1U < 8) goto LAB_000659ad;\nLAB_00065dbc:\n      local_3c._0_1_ = 0;\n      if (local_28 < 2) goto LAB_000659c7;\nLAB_00065dcd:\n      if (local_2c != 0) {\n        pcVar6 = "Only DWARF 2 and 3 aranges are currently supported.\n";\nLAB_00065de4:\n        pcVar6 = (char *)dcgettext(0,pcVar6,5);\n        warn(pcVar6);\n      }\n      goto LAB_00065bcc;\n    }\n    if ((puVar16 <= puVar15) || (7 < ((int)puVar16 - (int)puVar15) - 1U)) {\n      local_28 = 0xfffe;\n      local_2c = 0;\n      if (puVar16 <= puVar17 + iVar5) goto LAB_00065cf4;\n      goto LAB_00065944;\n    }\n    eVar18 = (*byte_get)(puVar15,(int)puVar16 - (int)puVar15);\n    local_2c = (short)eVar18;\n    if (puVar17 + iVar5 < puVar16) goto LAB_00065e10;\n    local_28 = local_2c - 2;\n    local_30 = 0;\nLAB_0006595d:\n    if (0xfffffffd < num_debug_info_entries - 1) goto LAB_0006596f;\nLAB_00065d0e:\n    uVar14 = 0;\n    pdVar9 = &debug_information->cu_offset;\n    do {\n      if ((int)*pdVar9 == local_30 && *(int *)((int)pdVar9 + 4) == 0) goto LAB_0006596f;\n      uVar14 = uVar14 + 1;\n      pdVar9 = pdVar9 + 10;\n    } while (num_debug_info_entries != uVar14);\n    pcVar6 = section->name;\n    pcVar10 = (char *)dcgettext(0,\n                                ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                                ,5);\n    warn(pcVar10,local_30,pcVar6);\n    puVar15 = puVar17 + iVar5 + 1;\n    if (puVar15 < puVar16) goto LAB_00065d80;\nLAB_0006597e:\n    puVar17 = puVar17 + iVar5;\n    if ((puVar17 < puVar16) && (((int)puVar16 - (int)puVar17) - 1U < 8)) {\n      eVar18 = (*byte_get)(puVar17,(int)puVar16 - (int)puVar17);\n      local_44._0_1_ = (byte)eVar18;\n      puVar17 = puVar17 + 2;\n      local_3c._0_1_ = 0;\n      if (puVar17 < puVar16) {\nLAB_00065e60:\n        iVar5 = 1;\n        goto LAB_000659ad;\n      }\n    }\n    else {\n      puVar17 = puVar17 + 2;\n      if (puVar16 <= puVar17) {\n        local_44._0_1_ = 0;\n        goto LAB_00065dbc;\n      }\n      local_44._0_1_ = 0;\n      iVar5 = 1;\nLAB_000659ad:\n      eVar18 = (*byte_get)(puVar15,iVar5);\n      local_3c._0_1_ = (byte)eVar18;\n    }\n    if (1 < local_28) goto LAB_00065dcd;\nLAB_000659c7:\n    pcVar6 = (char *)dcgettext(0,"  Length:                   %ld\n",5);\n    printf(pcVar6,(uint)local_4c);\n    pcVar6 = (char *)dcgettext(0,"  Version:                  %d\n",5);\n    printf(pcVar6,local_2c);\n    pcVar6 = (char *)dcgettext(0,"  Offset into .debug_info:  0x%lx\n",5);\n    printf(pcVar6,local_30);\n    pcVar6 = (char *)dcgettext(0,"  Pointer Size:             %d\n",5);\n    printf(pcVar6,(uint)(byte)local_44);\n    pcVar6 = (char *)dcgettext(0,"  Segment Size:             %d\n",5);\n    printf(pcVar6,(uint)(byte)local_3c);\n    local_3c._0_1_ = (byte)local_3c + (byte)local_44;\n    if (7 < (byte)((byte)local_3c - 1)) {\n      pcVar6 = section->name;\n      pcVar10 = (char *)dcgettext(0,"Invalid address size in %s section!\n",5);\n      error(pcVar10,pcVar6);\n      goto LAB_00065bcc;\n    }\n    pFVar4 = (FILE *)(uint)(byte)local_3c;\n    if (((uint)(pFVar4[-1]._unused2 + 0x27) & (uint)pFVar4) != 0) {\n      pcVar6 = "Pointer size + Segment size is not a power of two.\n";\n      goto LAB_00065de4;\n    }\n    if ((byte)local_3c < 5) {\n      in_stack_ffffff98 = "\n    Address    Length\n";\n    }\n    else {\n      in_stack_ffffff98 = "\n    Address            Length\n";\n    }\n    pcVar6 = (char *)dcgettext(0,in_stack_ffffff98,5);\n    printf(pcVar6);\n    puVar3 = PTR_stdout_000b3fd8;\n    iVar5 = (int)pFVar4 * 2;\n    iVar13 = ((int)puVar17 - (int)puVar1) % iVar5;\n    if (iVar13 != 0) {\n      puVar17 = puVar17 + (iVar5 - iVar13);\n    }\n    puVar1 = puVar1 + local_20 + (uint)local_4c;\n    if (puVar17 + iVar5 <= puVar1) {\n      puVar17 = puVar17 + (int)pFVar4;\n      do {\n        puVar15 = puVar17 + -(int)pFVar4;\n        pFVar7 = pFVar4;\n        pFVar8 = pFVar4;\n        if ((puVar17 < puVar16) ||\n           ((puVar15 < puVar16 &&\n            (pFVar7 = (FILE *)(puVar16 + -(int)puVar15),\n            ((FILE *)(puVar16 + -(int)puVar15))[-1]._unused2 + 0x27 < (char *)0x8)))) {\n          eVar18 = (*byte_get)(puVar15,(int)pFVar7);\n          local_3c = (uint)eVar18;\n          uVar14 = local_3c;\n          if ((puVar15 + iVar5 < puVar16) ||\n             ((puVar17 < puVar16 &&\n              (pFVar8 = (FILE *)(puVar16 + -(int)puVar17),\n              ((FILE *)(puVar16 + -(int)puVar17))[-1]._unused2 + 0x27 < (char *)0x8))))\n          goto LAB_00065b58;\nLAB_00065c2a:\n          local_44 = 0;\n        }\n        else {\n          local_3c = 0;\n          uVar14 = local_3c;\n          local_3c = 0;\n          pFVar7 = (FILE *)in_stack_ffffff98;\n          if (puVar16 <= puVar15 + iVar5) goto LAB_00065c2a;\nLAB_00065b58:\n          local_3c = uVar14;\n          eVar18 = (*byte_get)(puVar17,(int)pFVar8);\n          local_44 = (uint)eVar18;\n          pFVar7 = pFVar8;\n        }\n        puVar19 = &DAT_0007c3b4;\n        printf("    ");\n        print_dwarf_vma(CONCAT44(pFVar7,puVar19),local_3c);\n        print_dwarf_vma(CONCAT44(pFVar7,puVar19),local_44);\n        in_stack_ffffff98 = *(char **)puVar3;\n        putc(10,(FILE *)in_stack_ffffff98);\n        puVar17 = puVar17 + iVar5;\n      } while (puVar17 + (int)(pFVar4->_shortbuf + -0x47) <= puVar1);\n    }\n  } while( true );\n}\n\n" comment comment (function_definition "int display_debug_aranges(dwarf_section *section,void *file)\n\n{\n  uchar *puVar1;\n  uint uVar2;\n  undefined *puVar3;\n  FILE *pFVar4;\n  int iVar5;\n  char *pcVar6;\n  FILE *pFVar7;\n  FILE *pFVar8;\n  dwarf_vma *pdVar9;\n  char *message;\n  char *pcVar10;\n  dwarf_section *in_ECX;\n  uint uVar11;\n  uint uVar12;\n  int iVar13;\n  uint uVar14;\n  uchar *puVar15;\n  uchar *puVar16;\n  uchar *puVar17;\n  elf_vma eVar18;\n  undefined *puVar19;\n  char *in_stack_ffffff98;\n  void *in_stack_ffffffa4;\n  undefined8 local_4c;\n  uint local_44;\n  uint local_3c;\n  int local_30;\n  short local_2c;\n  ushort local_28;\n  int local_20;\n  \n  puVar1 = section->start;\n  puVar16 = puVar1 + (int)section->size;\n  introduce((dwarf_section *)section->name,(bfd_boolean)&section->filename,in_ECX);\n  load_debug_info(in_stack_ffffffa4);\n  do {\n    if (puVar16 <= puVar1) {\nLAB_00065bcc:\n      putchar(10);\n      return 1;\n    }\n    puVar15 = puVar1 + 4;\n    if (puVar15 < puVar16) {\n      pFVar4 = (FILE *)0x4;\nLAB_00065c45:\n      local_4c = (*byte_get)(puVar1,(int)pFVar4);\n      if (local_4c == 0xffffffff) {\n        puVar17 = puVar1 + 0xc;\n        if (puVar17 < puVar16) {\n          pFVar8 = (FILE *)0x8;\n        }\n        else if ((puVar16 <= puVar15) ||\n                (pFVar8 = (FILE *)(puVar16 + -(int)puVar15),\n                (char *)0x7 < pFVar8[-1]._unused2 + 0x27)) {\n          local_20 = 0xc;\n          iVar5 = 8;\n          goto LAB_000658c1;\n        }\n        local_4c = (*byte_get)(puVar15,(int)pFVar8);\n        local_20 = 0xc;\n        iVar5 = 8;\n        puVar15 = puVar17;\n        pFVar4 = pFVar8;\n      }\n      else {\n        local_20 = 4;\n        iVar5 = 4;\n      }\n      uVar14 = (int)puVar15 - (int)section->start;\n      uVar11 = (uint)local_4c + uVar14;\n      uVar12 = local_4c._4_4_ + (uint)CARRY4((uint)local_4c,uVar14);\n      if ((uVar11 < uVar14) <= uVar12) goto LAB_000658e2;\nLAB_00065ec0:\n      pcVar10 = dwarf_vmatoa_1("x",ZEXT48(pFVar4) << 0x20,(uint)local_4c);\n      pcVar6 = section->name;\n      message = (char *)dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(message,pcVar6,uVar14 - local_20,pcVar10);\n      goto LAB_00065bcc;\n    }\n    pFVar4 = (FILE *)(puVar16 + -(int)puVar1);\n    if (pFVar4[-1]._unused2 + 0x27 < (char *)0x8) goto LAB_00065c45;\n    local_20 = 4;\n    iVar5 = 4;\n    puVar17 = puVar15;\n    pFVar4 = (FILE *)in_stack_ffffff98;\nLAB_000658c1:\n    uVar12 = 0;\n    local_4c = 0;\n    uVar11 = (int)puVar17 - (int)section->start;\n    puVar15 = puVar17;\n    uVar14 = uVar11;\nLAB_000658e2:\n    uVar2 = *(uint *)((int)&section->size + 4);\n    if (uVar2 < uVar12 || uVar2 - uVar12 < (uint)((uint)section->size < uVar11)) goto LAB_00065ec0;\n    puVar17 = puVar15 + 2;\n    iVar13 = iVar5;\n    if (puVar17 < puVar16) {\n      eVar18 = (*byte_get)(puVar15,2);\n      local_2c = (short)eVar18;\n      if (puVar17 + iVar5 < puVar16) {\nLAB_00065e10:\n        local_28 = local_2c - 2;\nLAB_00065944:\n        eVar18 = (*byte_get)(puVar17,iVar13);\n        local_30 = (int)eVar18;\n        goto LAB_0006595d;\n      }\n      local_28 = local_2c - 2;\n      iVar13 = (int)puVar16 - (int)puVar17;\n      if (((int)puVar16 - (int)puVar17) - 1U < 8) goto LAB_00065944;\nLAB_00065cf4:\n      local_30 = 0;\n      if (num_debug_info_entries - 1 < 0xfffffffe) goto LAB_00065d0e;\nLAB_0006596f:\n      puVar15 = puVar17 + iVar5 + 1;\n      if (puVar16 <= puVar15) goto LAB_0006597e;\nLAB_00065d80:\n      eVar18 = (*byte_get)(puVar17 + iVar5,1);\n      local_44._0_1_ = (byte)eVar18;\n      puVar17 = puVar17 + iVar5 + 2;\n      if (puVar17 < puVar16) goto LAB_00065e60;\n      iVar5 = (int)puVar16 - (int)puVar15;\n      if (iVar5 - 1U < 8) goto LAB_000659ad;\nLAB_00065dbc:\n      local_3c._0_1_ = 0;\n      if (local_28 < 2) goto LAB_000659c7;\nLAB_00065dcd:\n      if (local_2c != 0) {\n        pcVar6 = "Only DWARF 2 and 3 aranges are currently supported.\n";\nLAB_00065de4:\n        pcVar6 = (char *)dcgettext(0,pcVar6,5);\n        warn(pcVar6);\n      }\n      goto LAB_00065bcc;\n    }\n    if ((puVar16 <= puVar15) || (7 < ((int)puVar16 - (int)puVar15) - 1U)) {\n      local_28 = 0xfffe;\n      local_2c = 0;\n      if (puVar16 <= puVar17 + iVar5) goto LAB_00065cf4;\n      goto LAB_00065944;\n    }\n    eVar18 = (*byte_get)(puVar15,(int)puVar16 - (int)puVar15);\n    local_2c = (short)eVar18;\n    if (puVar17 + iVar5 < puVar16) goto LAB_00065e10;\n    local_28 = local_2c - 2;\n    local_30 = 0;\nLAB_0006595d:\n    if (0xfffffffd < num_debug_info_entries - 1) goto LAB_0006596f;\nLAB_00065d0e:\n    uVar14 = 0;\n    pdVar9 = &debug_information->cu_offset;\n    do {\n      if ((int)*pdVar9 == local_30 && *(int *)((int)pdVar9 + 4) == 0) goto LAB_0006596f;\n      uVar14 = uVar14 + 1;\n      pdVar9 = pdVar9 + 10;\n    } while (num_debug_info_entries != uVar14);\n    pcVar6 = section->name;\n    pcVar10 = (char *)dcgettext(0,\n                                ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                                ,5);\n    warn(pcVar10,local_30,pcVar6);\n    puVar15 = puVar17 + iVar5 + 1;\n    if (puVar15 < puVar16) goto LAB_00065d80;\nLAB_0006597e:\n    puVar17 = puVar17 + iVar5;\n    if ((puVar17 < puVar16) && (((int)puVar16 - (int)puVar17) - 1U < 8)) {\n      eVar18 = (*byte_get)(puVar17,(int)puVar16 - (int)puVar17);\n      local_44._0_1_ = (byte)eVar18;\n      puVar17 = puVar17 + 2;\n      local_3c._0_1_ = 0;\n      if (puVar17 < puVar16) {\nLAB_00065e60:\n        iVar5 = 1;\n        goto LAB_000659ad;\n      }\n    }\n    else {\n      puVar17 = puVar17 + 2;\n      if (puVar16 <= puVar17) {\n        local_44._0_1_ = 0;\n        goto LAB_00065dbc;\n      }\n      local_44._0_1_ = 0;\n      iVar5 = 1;\nLAB_000659ad:\n      eVar18 = (*byte_get)(puVar15,iVar5);\n      local_3c._0_1_ = (byte)eVar18;\n    }\n    if (1 < local_28) goto LAB_00065dcd;\nLAB_000659c7:\n    pcVar6 = (char *)dcgettext(0,"  Length:                   %ld\n",5);\n    printf(pcVar6,(uint)local_4c);\n    pcVar6 = (char *)dcgettext(0,"  Version:                  %d\n",5);\n    printf(pcVar6,local_2c);\n    pcVar6 = (char *)dcgettext(0,"  Offset into .debug_info:  0x%lx\n",5);\n    printf(pcVar6,local_30);\n    pcVar6 = (char *)dcgettext(0,"  Pointer Size:             %d\n",5);\n    printf(pcVar6,(uint)(byte)local_44);\n    pcVar6 = (char *)dcgettext(0,"  Segment Size:             %d\n",5);\n    printf(pcVar6,(uint)(byte)local_3c);\n    local_3c._0_1_ = (byte)local_3c + (byte)local_44;\n    if (7 < (byte)((byte)local_3c - 1)) {\n      pcVar6 = section->name;\n      pcVar10 = (char *)dcgettext(0,"Invalid address size in %s section!\n",5);\n      error(pcVar10,pcVar6);\n      goto LAB_00065bcc;\n    }\n    pFVar4 = (FILE *)(uint)(byte)local_3c;\n    if (((uint)(pFVar4[-1]._unused2 + 0x27) & (uint)pFVar4) != 0) {\n      pcVar6 = "Pointer size + Segment size is not a power of two.\n";\n      goto LAB_00065de4;\n    }\n    if ((byte)local_3c < 5) {\n      in_stack_ffffff98 = "\n    Address    Length\n";\n    }\n    else {\n      in_stack_ffffff98 = "\n    Address            Length\n";\n    }\n    pcVar6 = (char *)dcgettext(0,in_stack_ffffff98,5);\n    printf(pcVar6);\n    puVar3 = PTR_stdout_000b3fd8;\n    iVar5 = (int)pFVar4 * 2;\n    iVar13 = ((int)puVar17 - (int)puVar1) % iVar5;\n    if (iVar13 != 0) {\n      puVar17 = puVar17 + (iVar5 - iVar13);\n    }\n    puVar1 = puVar1 + local_20 + (uint)local_4c;\n    if (puVar17 + iVar5 <= puVar1) {\n      puVar17 = puVar17 + (int)pFVar4;\n      do {\n        puVar15 = puVar17 + -(int)pFVar4;\n        pFVar7 = pFVar4;\n        pFVar8 = pFVar4;\n        if ((puVar17 < puVar16) ||\n           ((puVar15 < puVar16 &&\n            (pFVar7 = (FILE *)(puVar16 + -(int)puVar15),\n            ((FILE *)(puVar16 + -(int)puVar15))[-1]._unused2 + 0x27 < (char *)0x8)))) {\n          eVar18 = (*byte_get)(puVar15,(int)pFVar7);\n          local_3c = (uint)eVar18;\n          uVar14 = local_3c;\n          if ((puVar15 + iVar5 < puVar16) ||\n             ((puVar17 < puVar16 &&\n              (pFVar8 = (FILE *)(puVar16 + -(int)puVar17),\n              ((FILE *)(puVar16 + -(int)puVar17))[-1]._unused2 + 0x27 < (char *)0x8))))\n          goto LAB_00065b58;\nLAB_00065c2a:\n          local_44 = 0;\n        }\n        else {\n          local_3c = 0;\n          uVar14 = local_3c;\n          local_3c = 0;\n          pFVar7 = (FILE *)in_stack_ffffff98;\n          if (puVar16 <= puVar15 + iVar5) goto LAB_00065c2a;\nLAB_00065b58:\n          local_3c = uVar14;\n          eVar18 = (*byte_get)(puVar17,(int)pFVar8);\n          local_44 = (uint)eVar18;\n          pFVar7 = pFVar8;\n        }\n        puVar19 = &DAT_0007c3b4;\n        printf("    ");\n        print_dwarf_vma(CONCAT44(pFVar7,puVar19),local_3c);\n        print_dwarf_vma(CONCAT44(pFVar7,puVar19),local_44);\n        in_stack_ffffff98 = *(char **)puVar3;\n        putc(10,(FILE *)in_stack_ffffff98);\n        puVar17 = puVar17 + iVar5;\n      } while (puVar17 + (int)(pFVar4->_shortbuf + -0x47) <= puVar1);\n    }\n  } while( true );\n}" primitive_type (function_declarator "display_debug_aranges(dwarf_section *section,void *file)" identifier (parameter_list "(dwarf_section *section,void *file)" ( (parameter_declaration "dwarf_section *section" type_identifier (pointer_declarator "*section" * identifier)) , (parameter_declaration "void *file" primitive_type (pointer_declarator "*file" * identifier)) ))) (compound_statement "{\n  uchar *puVar1;\n  uint uVar2;\n  undefined *puVar3;\n  FILE *pFVar4;\n  int iVar5;\n  char *pcVar6;\n  FILE *pFVar7;\n  FILE *pFVar8;\n  dwarf_vma *pdVar9;\n  char *message;\n  char *pcVar10;\n  dwarf_section *in_ECX;\n  uint uVar11;\n  uint uVar12;\n  int iVar13;\n  uint uVar14;\n  uchar *puVar15;\n  uchar *puVar16;\n  uchar *puVar17;\n  elf_vma eVar18;\n  undefined *puVar19;\n  char *in_stack_ffffff98;\n  void *in_stack_ffffffa4;\n  undefined8 local_4c;\n  uint local_44;\n  uint local_3c;\n  int local_30;\n  short local_2c;\n  ushort local_28;\n  int local_20;\n  \n  puVar1 = section->start;\n  puVar16 = puVar1 + (int)section->size;\n  introduce((dwarf_section *)section->name,(bfd_boolean)&section->filename,in_ECX);\n  load_debug_info(in_stack_ffffffa4);\n  do {\n    if (puVar16 <= puVar1) {\nLAB_00065bcc:\n      putchar(10);\n      return 1;\n    }\n    puVar15 = puVar1 + 4;\n    if (puVar15 < puVar16) {\n      pFVar4 = (FILE *)0x4;\nLAB_00065c45:\n      local_4c = (*byte_get)(puVar1,(int)pFVar4);\n      if (local_4c == 0xffffffff) {\n        puVar17 = puVar1 + 0xc;\n        if (puVar17 < puVar16) {\n          pFVar8 = (FILE *)0x8;\n        }\n        else if ((puVar16 <= puVar15) ||\n                (pFVar8 = (FILE *)(puVar16 + -(int)puVar15),\n                (char *)0x7 < pFVar8[-1]._unused2 + 0x27)) {\n          local_20 = 0xc;\n          iVar5 = 8;\n          goto LAB_000658c1;\n        }\n        local_4c = (*byte_get)(puVar15,(int)pFVar8);\n        local_20 = 0xc;\n        iVar5 = 8;\n        puVar15 = puVar17;\n        pFVar4 = pFVar8;\n      }\n      else {\n        local_20 = 4;\n        iVar5 = 4;\n      }\n      uVar14 = (int)puVar15 - (int)section->start;\n      uVar11 = (uint)local_4c + uVar14;\n      uVar12 = local_4c._4_4_ + (uint)CARRY4((uint)local_4c,uVar14);\n      if ((uVar11 < uVar14) <= uVar12) goto LAB_000658e2;\nLAB_00065ec0:\n      pcVar10 = dwarf_vmatoa_1("x",ZEXT48(pFVar4) << 0x20,(uint)local_4c);\n      pcVar6 = section->name;\n      message = (char *)dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(message,pcVar6,uVar14 - local_20,pcVar10);\n      goto LAB_00065bcc;\n    }\n    pFVar4 = (FILE *)(puVar16 + -(int)puVar1);\n    if (pFVar4[-1]._unused2 + 0x27 < (char *)0x8) goto LAB_00065c45;\n    local_20 = 4;\n    iVar5 = 4;\n    puVar17 = puVar15;\n    pFVar4 = (FILE *)in_stack_ffffff98;\nLAB_000658c1:\n    uVar12 = 0;\n    local_4c = 0;\n    uVar11 = (int)puVar17 - (int)section->start;\n    puVar15 = puVar17;\n    uVar14 = uVar11;\nLAB_000658e2:\n    uVar2 = *(uint *)((int)&section->size + 4);\n    if (uVar2 < uVar12 || uVar2 - uVar12 < (uint)((uint)section->size < uVar11)) goto LAB_00065ec0;\n    puVar17 = puVar15 + 2;\n    iVar13 = iVar5;\n    if (puVar17 < puVar16) {\n      eVar18 = (*byte_get)(puVar15,2);\n      local_2c = (short)eVar18;\n      if (puVar17 + iVar5 < puVar16) {\nLAB_00065e10:\n        local_28 = local_2c - 2;\nLAB_00065944:\n        eVar18 = (*byte_get)(puVar17,iVar13);\n        local_30 = (int)eVar18;\n        goto LAB_0006595d;\n      }\n      local_28 = local_2c - 2;\n      iVar13 = (int)puVar16 - (int)puVar17;\n      if (((int)puVar16 - (int)puVar17) - 1U < 8) goto LAB_00065944;\nLAB_00065cf4:\n      local_30 = 0;\n      if (num_debug_info_entries - 1 < 0xfffffffe) goto LAB_00065d0e;\nLAB_0006596f:\n      puVar15 = puVar17 + iVar5 + 1;\n      if (puVar16 <= puVar15) goto LAB_0006597e;\nLAB_00065d80:\n      eVar18 = (*byte_get)(puVar17 + iVar5,1);\n      local_44._0_1_ = (byte)eVar18;\n      puVar17 = puVar17 + iVar5 + 2;\n      if (puVar17 < puVar16) goto LAB_00065e60;\n      iVar5 = (int)puVar16 - (int)puVar15;\n      if (iVar5 - 1U < 8) goto LAB_000659ad;\nLAB_00065dbc:\n      local_3c._0_1_ = 0;\n      if (local_28 < 2) goto LAB_000659c7;\nLAB_00065dcd:\n      if (local_2c != 0) {\n        pcVar6 = "Only DWARF 2 and 3 aranges are currently supported.\n";\nLAB_00065de4:\n        pcVar6 = (char *)dcgettext(0,pcVar6,5);\n        warn(pcVar6);\n      }\n      goto LAB_00065bcc;\n    }\n    if ((puVar16 <= puVar15) || (7 < ((int)puVar16 - (int)puVar15) - 1U)) {\n      local_28 = 0xfffe;\n      local_2c = 0;\n      if (puVar16 <= puVar17 + iVar5) goto LAB_00065cf4;\n      goto LAB_00065944;\n    }\n    eVar18 = (*byte_get)(puVar15,(int)puVar16 - (int)puVar15);\n    local_2c = (short)eVar18;\n    if (puVar17 + iVar5 < puVar16) goto LAB_00065e10;\n    local_28 = local_2c - 2;\n    local_30 = 0;\nLAB_0006595d:\n    if (0xfffffffd < num_debug_info_entries - 1) goto LAB_0006596f;\nLAB_00065d0e:\n    uVar14 = 0;\n    pdVar9 = &debug_information->cu_offset;\n    do {\n      if ((int)*pdVar9 == local_30 && *(int *)((int)pdVar9 + 4) == 0) goto LAB_0006596f;\n      uVar14 = uVar14 + 1;\n      pdVar9 = pdVar9 + 10;\n    } while (num_debug_info_entries != uVar14);\n    pcVar6 = section->name;\n    pcVar10 = (char *)dcgettext(0,\n                                ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                                ,5);\n    warn(pcVar10,local_30,pcVar6);\n    puVar15 = puVar17 + iVar5 + 1;\n    if (puVar15 < puVar16) goto LAB_00065d80;\nLAB_0006597e:\n    puVar17 = puVar17 + iVar5;\n    if ((puVar17 < puVar16) && (((int)puVar16 - (int)puVar17) - 1U < 8)) {\n      eVar18 = (*byte_get)(puVar17,(int)puVar16 - (int)puVar17);\n      local_44._0_1_ = (byte)eVar18;\n      puVar17 = puVar17 + 2;\n      local_3c._0_1_ = 0;\n      if (puVar17 < puVar16) {\nLAB_00065e60:\n        iVar5 = 1;\n        goto LAB_000659ad;\n      }\n    }\n    else {\n      puVar17 = puVar17 + 2;\n      if (puVar16 <= puVar17) {\n        local_44._0_1_ = 0;\n        goto LAB_00065dbc;\n      }\n      local_44._0_1_ = 0;\n      iVar5 = 1;\nLAB_000659ad:\n      eVar18 = (*byte_get)(puVar15,iVar5);\n      local_3c._0_1_ = (byte)eVar18;\n    }\n    if (1 < local_28) goto LAB_00065dcd;\nLAB_000659c7:\n    pcVar6 = (char *)dcgettext(0,"  Length:                   %ld\n",5);\n    printf(pcVar6,(uint)local_4c);\n    pcVar6 = (char *)dcgettext(0,"  Version:                  %d\n",5);\n    printf(pcVar6,local_2c);\n    pcVar6 = (char *)dcgettext(0,"  Offset into .debug_info:  0x%lx\n",5);\n    printf(pcVar6,local_30);\n    pcVar6 = (char *)dcgettext(0,"  Pointer Size:             %d\n",5);\n    printf(pcVar6,(uint)(byte)local_44);\n    pcVar6 = (char *)dcgettext(0,"  Segment Size:             %d\n",5);\n    printf(pcVar6,(uint)(byte)local_3c);\n    local_3c._0_1_ = (byte)local_3c + (byte)local_44;\n    if (7 < (byte)((byte)local_3c - 1)) {\n      pcVar6 = section->name;\n      pcVar10 = (char *)dcgettext(0,"Invalid address size in %s section!\n",5);\n      error(pcVar10,pcVar6);\n      goto LAB_00065bcc;\n    }\n    pFVar4 = (FILE *)(uint)(byte)local_3c;\n    if (((uint)(pFVar4[-1]._unused2 + 0x27) & (uint)pFVar4) != 0) {\n      pcVar6 = "Pointer size + Segment size is not a power of two.\n";\n      goto LAB_00065de4;\n    }\n    if ((byte)local_3c < 5) {\n      in_stack_ffffff98 = "\n    Address    Length\n";\n    }\n    else {\n      in_stack_ffffff98 = "\n    Address            Length\n";\n    }\n    pcVar6 = (char *)dcgettext(0,in_stack_ffffff98,5);\n    printf(pcVar6);\n    puVar3 = PTR_stdout_000b3fd8;\n    iVar5 = (int)pFVar4 * 2;\n    iVar13 = ((int)puVar17 - (int)puVar1) % iVar5;\n    if (iVar13 != 0) {\n      puVar17 = puVar17 + (iVar5 - iVar13);\n    }\n    puVar1 = puVar1 + local_20 + (uint)local_4c;\n    if (puVar17 + iVar5 <= puVar1) {\n      puVar17 = puVar17 + (int)pFVar4;\n      do {\n        puVar15 = puVar17 + -(int)pFVar4;\n        pFVar7 = pFVar4;\n        pFVar8 = pFVar4;\n        if ((puVar17 < puVar16) ||\n           ((puVar15 < puVar16 &&\n            (pFVar7 = (FILE *)(puVar16 + -(int)puVar15),\n            ((FILE *)(puVar16 + -(int)puVar15))[-1]._unused2 + 0x27 < (char *)0x8)))) {\n          eVar18 = (*byte_get)(puVar15,(int)pFVar7);\n          local_3c = (uint)eVar18;\n          uVar14 = local_3c;\n          if ((puVar15 + iVar5 < puVar16) ||\n             ((puVar17 < puVar16 &&\n              (pFVar8 = (FILE *)(puVar16 + -(int)puVar17),\n              ((FILE *)(puVar16 + -(int)puVar17))[-1]._unused2 + 0x27 < (char *)0x8))))\n          goto LAB_00065b58;\nLAB_00065c2a:\n          local_44 = 0;\n        }\n        else {\n          local_3c = 0;\n          uVar14 = local_3c;\n          local_3c = 0;\n          pFVar7 = (FILE *)in_stack_ffffff98;\n          if (puVar16 <= puVar15 + iVar5) goto LAB_00065c2a;\nLAB_00065b58:\n          local_3c = uVar14;\n          eVar18 = (*byte_get)(puVar17,(int)pFVar8);\n          local_44 = (uint)eVar18;\n          pFVar7 = pFVar8;\n        }\n        puVar19 = &DAT_0007c3b4;\n        printf("    ");\n        print_dwarf_vma(CONCAT44(pFVar7,puVar19),local_3c);\n        print_dwarf_vma(CONCAT44(pFVar7,puVar19),local_44);\n        in_stack_ffffff98 = *(char **)puVar3;\n        putc(10,(FILE *)in_stack_ffffff98);\n        puVar17 = puVar17 + iVar5;\n      } while (puVar17 + (int)(pFVar4->_shortbuf + -0x47) <= puVar1);\n    }\n  } while( true );\n}" { (declaration "uchar *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "FILE *pFVar4;" type_identifier (pointer_declarator "*pFVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "FILE *pFVar7;" type_identifier (pointer_declarator "*pFVar7" * identifier) ;) (declaration "FILE *pFVar8;" type_identifier (pointer_declarator "*pFVar8" * identifier) ;) (declaration "dwarf_vma *pdVar9;" type_identifier (pointer_declarator "*pdVar9" * identifier) ;) (declaration "char *message;" primitive_type (pointer_declarator "*message" * identifier) ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "dwarf_section *in_ECX;" type_identifier (pointer_declarator "*in_ECX" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "uchar *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "uchar *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "uchar *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "elf_vma eVar18;" type_identifier identifier ;) (declaration "undefined *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "char *in_stack_ffffff98;" primitive_type (pointer_declarator "*in_stack_ffffff98" * identifier) ;) (declaration "void *in_stack_ffffffa4;" primitive_type (pointer_declarator "*in_stack_ffffffa4" * identifier) ;) (declaration "undefined8 local_4c;" type_identifier identifier ;) (declaration "uint local_44;" type_identifier identifier ;) (declaration "uint local_3c;" type_identifier identifier ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "short local_2c;" (sized_type_specifier "short" short) identifier ;) (declaration "ushort local_28;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "puVar1 = section->start;" (assignment_expression "puVar1 = section->start" identifier = (field_expression "section->start" identifier -> field_identifier)) ;) (expression_statement "puVar16 = puVar1 + (int)section->size;" (assignment_expression "puVar16 = puVar1 + (int)section->size" identifier = (binary_expression "puVar1 + (int)section->size" identifier + (cast_expression "(int)section->size" ( (type_descriptor "int" primitive_type) ) (field_expression "section->size" identifier -> field_identifier)))) ;) (expression_statement "introduce((dwarf_section *)section->name,(bfd_boolean)&section->filename,in_ECX);" (call_expression "introduce((dwarf_section *)section->name,(bfd_boolean)&section->filename,in_ECX)" identifier (argument_list "((dwarf_section *)section->name,(bfd_boolean)&section->filename,in_ECX)" ( (cast_expression "(dwarf_section *)section->name" ( (type_descriptor "dwarf_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "section->name" identifier -> field_identifier)) , (binary_expression "(bfd_boolean)&section->filename" (parenthesized_expression "(bfd_boolean)" ( identifier )) & (field_expression "section->filename" identifier -> field_identifier)) , identifier ))) ;) (expression_statement "load_debug_info(in_stack_ffffffa4);" (call_expression "load_debug_info(in_stack_ffffffa4)" identifier (argument_list "(in_stack_ffffffa4)" ( identifier ))) ;) (do_statement "do {\n    if (puVar16 <= puVar1) {\nLAB_00065bcc:\n      putchar(10);\n      return 1;\n    }\n    puVar15 = puVar1 + 4;\n    if (puVar15 < puVar16) {\n      pFVar4 = (FILE *)0x4;\nLAB_00065c45:\n      local_4c = (*byte_get)(puVar1,(int)pFVar4);\n      if (local_4c == 0xffffffff) {\n        puVar17 = puVar1 + 0xc;\n        if (puVar17 < puVar16) {\n          pFVar8 = (FILE *)0x8;\n        }\n        else if ((puVar16 <= puVar15) ||\n                (pFVar8 = (FILE *)(puVar16 + -(int)puVar15),\n                (char *)0x7 < pFVar8[-1]._unused2 + 0x27)) {\n          local_20 = 0xc;\n          iVar5 = 8;\n          goto LAB_000658c1;\n        }\n        local_4c = (*byte_get)(puVar15,(int)pFVar8);\n        local_20 = 0xc;\n        iVar5 = 8;\n        puVar15 = puVar17;\n        pFVar4 = pFVar8;\n      }\n      else {\n        local_20 = 4;\n        iVar5 = 4;\n      }\n      uVar14 = (int)puVar15 - (int)section->start;\n      uVar11 = (uint)local_4c + uVar14;\n      uVar12 = local_4c._4_4_ + (uint)CARRY4((uint)local_4c,uVar14);\n      if ((uVar11 < uVar14) <= uVar12) goto LAB_000658e2;\nLAB_00065ec0:\n      pcVar10 = dwarf_vmatoa_1("x",ZEXT48(pFVar4) << 0x20,(uint)local_4c);\n      pcVar6 = section->name;\n      message = (char *)dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(message,pcVar6,uVar14 - local_20,pcVar10);\n      goto LAB_00065bcc;\n    }\n    pFVar4 = (FILE *)(puVar16 + -(int)puVar1);\n    if (pFVar4[-1]._unused2 + 0x27 < (char *)0x8) goto LAB_00065c45;\n    local_20 = 4;\n    iVar5 = 4;\n    puVar17 = puVar15;\n    pFVar4 = (FILE *)in_stack_ffffff98;\nLAB_000658c1:\n    uVar12 = 0;\n    local_4c = 0;\n    uVar11 = (int)puVar17 - (int)section->start;\n    puVar15 = puVar17;\n    uVar14 = uVar11;\nLAB_000658e2:\n    uVar2 = *(uint *)((int)&section->size + 4);\n    if (uVar2 < uVar12 || uVar2 - uVar12 < (uint)((uint)section->size < uVar11)) goto LAB_00065ec0;\n    puVar17 = puVar15 + 2;\n    iVar13 = iVar5;\n    if (puVar17 < puVar16) {\n      eVar18 = (*byte_get)(puVar15,2);\n      local_2c = (short)eVar18;\n      if (puVar17 + iVar5 < puVar16) {\nLAB_00065e10:\n        local_28 = local_2c - 2;\nLAB_00065944:\n        eVar18 = (*byte_get)(puVar17,iVar13);\n        local_30 = (int)eVar18;\n        goto LAB_0006595d;\n      }\n      local_28 = local_2c - 2;\n      iVar13 = (int)puVar16 - (int)puVar17;\n      if (((int)puVar16 - (int)puVar17) - 1U < 8) goto LAB_00065944;\nLAB_00065cf4:\n      local_30 = 0;\n      if (num_debug_info_entries - 1 < 0xfffffffe) goto LAB_00065d0e;\nLAB_0006596f:\n      puVar15 = puVar17 + iVar5 + 1;\n      if (puVar16 <= puVar15) goto LAB_0006597e;\nLAB_00065d80:\n      eVar18 = (*byte_get)(puVar17 + iVar5,1);\n      local_44._0_1_ = (byte)eVar18;\n      puVar17 = puVar17 + iVar5 + 2;\n      if (puVar17 < puVar16) goto LAB_00065e60;\n      iVar5 = (int)puVar16 - (int)puVar15;\n      if (iVar5 - 1U < 8) goto LAB_000659ad;\nLAB_00065dbc:\n      local_3c._0_1_ = 0;\n      if (local_28 < 2) goto LAB_000659c7;\nLAB_00065dcd:\n      if (local_2c != 0) {\n        pcVar6 = "Only DWARF 2 and 3 aranges are currently supported.\n";\nLAB_00065de4:\n        pcVar6 = (char *)dcgettext(0,pcVar6,5);\n        warn(pcVar6);\n      }\n      goto LAB_00065bcc;\n    }\n    if ((puVar16 <= puVar15) || (7 < ((int)puVar16 - (int)puVar15) - 1U)) {\n      local_28 = 0xfffe;\n      local_2c = 0;\n      if (puVar16 <= puVar17 + iVar5) goto LAB_00065cf4;\n      goto LAB_00065944;\n    }\n    eVar18 = (*byte_get)(puVar15,(int)puVar16 - (int)puVar15);\n    local_2c = (short)eVar18;\n    if (puVar17 + iVar5 < puVar16) goto LAB_00065e10;\n    local_28 = local_2c - 2;\n    local_30 = 0;\nLAB_0006595d:\n    if (0xfffffffd < num_debug_info_entries - 1) goto LAB_0006596f;\nLAB_00065d0e:\n    uVar14 = 0;\n    pdVar9 = &debug_information->cu_offset;\n    do {\n      if ((int)*pdVar9 == local_30 && *(int *)((int)pdVar9 + 4) == 0) goto LAB_0006596f;\n      uVar14 = uVar14 + 1;\n      pdVar9 = pdVar9 + 10;\n    } while (num_debug_info_entries != uVar14);\n    pcVar6 = section->name;\n    pcVar10 = (char *)dcgettext(0,\n                                ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                                ,5);\n    warn(pcVar10,local_30,pcVar6);\n    puVar15 = puVar17 + iVar5 + 1;\n    if (puVar15 < puVar16) goto LAB_00065d80;\nLAB_0006597e:\n    puVar17 = puVar17 + iVar5;\n    if ((puVar17 < puVar16) && (((int)puVar16 - (int)puVar17) - 1U < 8)) {\n      eVar18 = (*byte_get)(puVar17,(int)puVar16 - (int)puVar17);\n      local_44._0_1_ = (byte)eVar18;\n      puVar17 = puVar17 + 2;\n      local_3c._0_1_ = 0;\n      if (puVar17 < puVar16) {\nLAB_00065e60:\n        iVar5 = 1;\n        goto LAB_000659ad;\n      }\n    }\n    else {\n      puVar17 = puVar17 + 2;\n      if (puVar16 <= puVar17) {\n        local_44._0_1_ = 0;\n        goto LAB_00065dbc;\n      }\n      local_44._0_1_ = 0;\n      iVar5 = 1;\nLAB_000659ad:\n      eVar18 = (*byte_get)(puVar15,iVar5);\n      local_3c._0_1_ = (byte)eVar18;\n    }\n    if (1 < local_28) goto LAB_00065dcd;\nLAB_000659c7:\n    pcVar6 = (char *)dcgettext(0,"  Length:                   %ld\n",5);\n    printf(pcVar6,(uint)local_4c);\n    pcVar6 = (char *)dcgettext(0,"  Version:                  %d\n",5);\n    printf(pcVar6,local_2c);\n    pcVar6 = (char *)dcgettext(0,"  Offset into .debug_info:  0x%lx\n",5);\n    printf(pcVar6,local_30);\n    pcVar6 = (char *)dcgettext(0,"  Pointer Size:             %d\n",5);\n    printf(pcVar6,(uint)(byte)local_44);\n    pcVar6 = (char *)dcgettext(0,"  Segment Size:             %d\n",5);\n    printf(pcVar6,(uint)(byte)local_3c);\n    local_3c._0_1_ = (byte)local_3c + (byte)local_44;\n    if (7 < (byte)((byte)local_3c - 1)) {\n      pcVar6 = section->name;\n      pcVar10 = (char *)dcgettext(0,"Invalid address size in %s section!\n",5);\n      error(pcVar10,pcVar6);\n      goto LAB_00065bcc;\n    }\n    pFVar4 = (FILE *)(uint)(byte)local_3c;\n    if (((uint)(pFVar4[-1]._unused2 + 0x27) & (uint)pFVar4) != 0) {\n      pcVar6 = "Pointer size + Segment size is not a power of two.\n";\n      goto LAB_00065de4;\n    }\n    if ((byte)local_3c < 5) {\n      in_stack_ffffff98 = "\n    Address    Length\n";\n    }\n    else {\n      in_stack_ffffff98 = "\n    Address            Length\n";\n    }\n    pcVar6 = (char *)dcgettext(0,in_stack_ffffff98,5);\n    printf(pcVar6);\n    puVar3 = PTR_stdout_000b3fd8;\n    iVar5 = (int)pFVar4 * 2;\n    iVar13 = ((int)puVar17 - (int)puVar1) % iVar5;\n    if (iVar13 != 0) {\n      puVar17 = puVar17 + (iVar5 - iVar13);\n    }\n    puVar1 = puVar1 + local_20 + (uint)local_4c;\n    if (puVar17 + iVar5 <= puVar1) {\n      puVar17 = puVar17 + (int)pFVar4;\n      do {\n        puVar15 = puVar17 + -(int)pFVar4;\n        pFVar7 = pFVar4;\n        pFVar8 = pFVar4;\n        if ((puVar17 < puVar16) ||\n           ((puVar15 < puVar16 &&\n            (pFVar7 = (FILE *)(puVar16 + -(int)puVar15),\n            ((FILE *)(puVar16 + -(int)puVar15))[-1]._unused2 + 0x27 < (char *)0x8)))) {\n          eVar18 = (*byte_get)(puVar15,(int)pFVar7);\n          local_3c = (uint)eVar18;\n          uVar14 = local_3c;\n          if ((puVar15 + iVar5 < puVar16) ||\n             ((puVar17 < puVar16 &&\n              (pFVar8 = (FILE *)(puVar16 + -(int)puVar17),\n              ((FILE *)(puVar16 + -(int)puVar17))[-1]._unused2 + 0x27 < (char *)0x8))))\n          goto LAB_00065b58;\nLAB_00065c2a:\n          local_44 = 0;\n        }\n        else {\n          local_3c = 0;\n          uVar14 = local_3c;\n          local_3c = 0;\n          pFVar7 = (FILE *)in_stack_ffffff98;\n          if (puVar16 <= puVar15 + iVar5) goto LAB_00065c2a;\nLAB_00065b58:\n          local_3c = uVar14;\n          eVar18 = (*byte_get)(puVar17,(int)pFVar8);\n          local_44 = (uint)eVar18;\n          pFVar7 = pFVar8;\n        }\n        puVar19 = &DAT_0007c3b4;\n        printf("    ");\n        print_dwarf_vma(CONCAT44(pFVar7,puVar19),local_3c);\n        print_dwarf_vma(CONCAT44(pFVar7,puVar19),local_44);\n        in_stack_ffffff98 = *(char **)puVar3;\n        putc(10,(FILE *)in_stack_ffffff98);\n        puVar17 = puVar17 + iVar5;\n      } while (puVar17 + (int)(pFVar4->_shortbuf + -0x47) <= puVar1);\n    }\n  } while( true );" do (compound_statement "{\n    if (puVar16 <= puVar1) {\nLAB_00065bcc:\n      putchar(10);\n      return 1;\n    }\n    puVar15 = puVar1 + 4;\n    if (puVar15 < puVar16) {\n      pFVar4 = (FILE *)0x4;\nLAB_00065c45:\n      local_4c = (*byte_get)(puVar1,(int)pFVar4);\n      if (local_4c == 0xffffffff) {\n        puVar17 = puVar1 + 0xc;\n        if (puVar17 < puVar16) {\n          pFVar8 = (FILE *)0x8;\n        }\n        else if ((puVar16 <= puVar15) ||\n                (pFVar8 = (FILE *)(puVar16 + -(int)puVar15),\n                (char *)0x7 < pFVar8[-1]._unused2 + 0x27)) {\n          local_20 = 0xc;\n          iVar5 = 8;\n          goto LAB_000658c1;\n        }\n        local_4c = (*byte_get)(puVar15,(int)pFVar8);\n        local_20 = 0xc;\n        iVar5 = 8;\n        puVar15 = puVar17;\n        pFVar4 = pFVar8;\n      }\n      else {\n        local_20 = 4;\n        iVar5 = 4;\n      }\n      uVar14 = (int)puVar15 - (int)section->start;\n      uVar11 = (uint)local_4c + uVar14;\n      uVar12 = local_4c._4_4_ + (uint)CARRY4((uint)local_4c,uVar14);\n      if ((uVar11 < uVar14) <= uVar12) goto LAB_000658e2;\nLAB_00065ec0:\n      pcVar10 = dwarf_vmatoa_1("x",ZEXT48(pFVar4) << 0x20,(uint)local_4c);\n      pcVar6 = section->name;\n      message = (char *)dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(message,pcVar6,uVar14 - local_20,pcVar10);\n      goto LAB_00065bcc;\n    }\n    pFVar4 = (FILE *)(puVar16 + -(int)puVar1);\n    if (pFVar4[-1]._unused2 + 0x27 < (char *)0x8) goto LAB_00065c45;\n    local_20 = 4;\n    iVar5 = 4;\n    puVar17 = puVar15;\n    pFVar4 = (FILE *)in_stack_ffffff98;\nLAB_000658c1:\n    uVar12 = 0;\n    local_4c = 0;\n    uVar11 = (int)puVar17 - (int)section->start;\n    puVar15 = puVar17;\n    uVar14 = uVar11;\nLAB_000658e2:\n    uVar2 = *(uint *)((int)&section->size + 4);\n    if (uVar2 < uVar12 || uVar2 - uVar12 < (uint)((uint)section->size < uVar11)) goto LAB_00065ec0;\n    puVar17 = puVar15 + 2;\n    iVar13 = iVar5;\n    if (puVar17 < puVar16) {\n      eVar18 = (*byte_get)(puVar15,2);\n      local_2c = (short)eVar18;\n      if (puVar17 + iVar5 < puVar16) {\nLAB_00065e10:\n        local_28 = local_2c - 2;\nLAB_00065944:\n        eVar18 = (*byte_get)(puVar17,iVar13);\n        local_30 = (int)eVar18;\n        goto LAB_0006595d;\n      }\n      local_28 = local_2c - 2;\n      iVar13 = (int)puVar16 - (int)puVar17;\n      if (((int)puVar16 - (int)puVar17) - 1U < 8) goto LAB_00065944;\nLAB_00065cf4:\n      local_30 = 0;\n      if (num_debug_info_entries - 1 < 0xfffffffe) goto LAB_00065d0e;\nLAB_0006596f:\n      puVar15 = puVar17 + iVar5 + 1;\n      if (puVar16 <= puVar15) goto LAB_0006597e;\nLAB_00065d80:\n      eVar18 = (*byte_get)(puVar17 + iVar5,1);\n      local_44._0_1_ = (byte)eVar18;\n      puVar17 = puVar17 + iVar5 + 2;\n      if (puVar17 < puVar16) goto LAB_00065e60;\n      iVar5 = (int)puVar16 - (int)puVar15;\n      if (iVar5 - 1U < 8) goto LAB_000659ad;\nLAB_00065dbc:\n      local_3c._0_1_ = 0;\n      if (local_28 < 2) goto LAB_000659c7;\nLAB_00065dcd:\n      if (local_2c != 0) {\n        pcVar6 = "Only DWARF 2 and 3 aranges are currently supported.\n";\nLAB_00065de4:\n        pcVar6 = (char *)dcgettext(0,pcVar6,5);\n        warn(pcVar6);\n      }\n      goto LAB_00065bcc;\n    }\n    if ((puVar16 <= puVar15) || (7 < ((int)puVar16 - (int)puVar15) - 1U)) {\n      local_28 = 0xfffe;\n      local_2c = 0;\n      if (puVar16 <= puVar17 + iVar5) goto LAB_00065cf4;\n      goto LAB_00065944;\n    }\n    eVar18 = (*byte_get)(puVar15,(int)puVar16 - (int)puVar15);\n    local_2c = (short)eVar18;\n    if (puVar17 + iVar5 < puVar16) goto LAB_00065e10;\n    local_28 = local_2c - 2;\n    local_30 = 0;\nLAB_0006595d:\n    if (0xfffffffd < num_debug_info_entries - 1) goto LAB_0006596f;\nLAB_00065d0e:\n    uVar14 = 0;\n    pdVar9 = &debug_information->cu_offset;\n    do {\n      if ((int)*pdVar9 == local_30 && *(int *)((int)pdVar9 + 4) == 0) goto LAB_0006596f;\n      uVar14 = uVar14 + 1;\n      pdVar9 = pdVar9 + 10;\n    } while (num_debug_info_entries != uVar14);\n    pcVar6 = section->name;\n    pcVar10 = (char *)dcgettext(0,\n                                ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                                ,5);\n    warn(pcVar10,local_30,pcVar6);\n    puVar15 = puVar17 + iVar5 + 1;\n    if (puVar15 < puVar16) goto LAB_00065d80;\nLAB_0006597e:\n    puVar17 = puVar17 + iVar5;\n    if ((puVar17 < puVar16) && (((int)puVar16 - (int)puVar17) - 1U < 8)) {\n      eVar18 = (*byte_get)(puVar17,(int)puVar16 - (int)puVar17);\n      local_44._0_1_ = (byte)eVar18;\n      puVar17 = puVar17 + 2;\n      local_3c._0_1_ = 0;\n      if (puVar17 < puVar16) {\nLAB_00065e60:\n        iVar5 = 1;\n        goto LAB_000659ad;\n      }\n    }\n    else {\n      puVar17 = puVar17 + 2;\n      if (puVar16 <= puVar17) {\n        local_44._0_1_ = 0;\n        goto LAB_00065dbc;\n      }\n      local_44._0_1_ = 0;\n      iVar5 = 1;\nLAB_000659ad:\n      eVar18 = (*byte_get)(puVar15,iVar5);\n      local_3c._0_1_ = (byte)eVar18;\n    }\n    if (1 < local_28) goto LAB_00065dcd;\nLAB_000659c7:\n    pcVar6 = (char *)dcgettext(0,"  Length:                   %ld\n",5);\n    printf(pcVar6,(uint)local_4c);\n    pcVar6 = (char *)dcgettext(0,"  Version:                  %d\n",5);\n    printf(pcVar6,local_2c);\n    pcVar6 = (char *)dcgettext(0,"  Offset into .debug_info:  0x%lx\n",5);\n    printf(pcVar6,local_30);\n    pcVar6 = (char *)dcgettext(0,"  Pointer Size:             %d\n",5);\n    printf(pcVar6,(uint)(byte)local_44);\n    pcVar6 = (char *)dcgettext(0,"  Segment Size:             %d\n",5);\n    printf(pcVar6,(uint)(byte)local_3c);\n    local_3c._0_1_ = (byte)local_3c + (byte)local_44;\n    if (7 < (byte)((byte)local_3c - 1)) {\n      pcVar6 = section->name;\n      pcVar10 = (char *)dcgettext(0,"Invalid address size in %s section!\n",5);\n      error(pcVar10,pcVar6);\n      goto LAB_00065bcc;\n    }\n    pFVar4 = (FILE *)(uint)(byte)local_3c;\n    if (((uint)(pFVar4[-1]._unused2 + 0x27) & (uint)pFVar4) != 0) {\n      pcVar6 = "Pointer size + Segment size is not a power of two.\n";\n      goto LAB_00065de4;\n    }\n    if ((byte)local_3c < 5) {\n      in_stack_ffffff98 = "\n    Address    Length\n";\n    }\n    else {\n      in_stack_ffffff98 = "\n    Address            Length\n";\n    }\n    pcVar6 = (char *)dcgettext(0,in_stack_ffffff98,5);\n    printf(pcVar6);\n    puVar3 = PTR_stdout_000b3fd8;\n    iVar5 = (int)pFVar4 * 2;\n    iVar13 = ((int)puVar17 - (int)puVar1) % iVar5;\n    if (iVar13 != 0) {\n      puVar17 = puVar17 + (iVar5 - iVar13);\n    }\n    puVar1 = puVar1 + local_20 + (uint)local_4c;\n    if (puVar17 + iVar5 <= puVar1) {\n      puVar17 = puVar17 + (int)pFVar4;\n      do {\n        puVar15 = puVar17 + -(int)pFVar4;\n        pFVar7 = pFVar4;\n        pFVar8 = pFVar4;\n        if ((puVar17 < puVar16) ||\n           ((puVar15 < puVar16 &&\n            (pFVar7 = (FILE *)(puVar16 + -(int)puVar15),\n            ((FILE *)(puVar16 + -(int)puVar15))[-1]._unused2 + 0x27 < (char *)0x8)))) {\n          eVar18 = (*byte_get)(puVar15,(int)pFVar7);\n          local_3c = (uint)eVar18;\n          uVar14 = local_3c;\n          if ((puVar15 + iVar5 < puVar16) ||\n             ((puVar17 < puVar16 &&\n              (pFVar8 = (FILE *)(puVar16 + -(int)puVar17),\n              ((FILE *)(puVar16 + -(int)puVar17))[-1]._unused2 + 0x27 < (char *)0x8))))\n          goto LAB_00065b58;\nLAB_00065c2a:\n          local_44 = 0;\n        }\n        else {\n          local_3c = 0;\n          uVar14 = local_3c;\n          local_3c = 0;\n          pFVar7 = (FILE *)in_stack_ffffff98;\n          if (puVar16 <= puVar15 + iVar5) goto LAB_00065c2a;\nLAB_00065b58:\n          local_3c = uVar14;\n          eVar18 = (*byte_get)(puVar17,(int)pFVar8);\n          local_44 = (uint)eVar18;\n          pFVar7 = pFVar8;\n        }\n        puVar19 = &DAT_0007c3b4;\n        printf("    ");\n        print_dwarf_vma(CONCAT44(pFVar7,puVar19),local_3c);\n        print_dwarf_vma(CONCAT44(pFVar7,puVar19),local_44);\n        in_stack_ffffff98 = *(char **)puVar3;\n        putc(10,(FILE *)in_stack_ffffff98);\n        puVar17 = puVar17 + iVar5;\n      } while (puVar17 + (int)(pFVar4->_shortbuf + -0x47) <= puVar1);\n    }\n  }" { (if_statement "if (puVar16 <= puVar1) {\nLAB_00065bcc:\n      putchar(10);\n      return 1;\n    }" if (parenthesized_expression "(puVar16 <= puVar1)" ( (binary_expression "puVar16 <= puVar1" identifier <= identifier) )) (compound_statement "{\nLAB_00065bcc:\n      putchar(10);\n      return 1;\n    }" { (labeled_statement "LAB_00065bcc:\n      putchar(10);" statement_identifier : (expression_statement "putchar(10);" (call_expression "putchar(10)" identifier (argument_list "(10)" ( number_literal ))) ;)) (return_statement "return 1;" return number_literal ;) })) (expression_statement "puVar15 = puVar1 + 4;" (assignment_expression "puVar15 = puVar1 + 4" identifier = (binary_expression "puVar1 + 4" identifier + number_literal)) ;) (if_statement "if (puVar15 < puVar16) {\n      pFVar4 = (FILE *)0x4;\nLAB_00065c45:\n      local_4c = (*byte_get)(puVar1,(int)pFVar4);\n      if (local_4c == 0xffffffff) {\n        puVar17 = puVar1 + 0xc;\n        if (puVar17 < puVar16) {\n          pFVar8 = (FILE *)0x8;\n        }\n        else if ((puVar16 <= puVar15) ||\n                (pFVar8 = (FILE *)(puVar16 + -(int)puVar15),\n                (char *)0x7 < pFVar8[-1]._unused2 + 0x27)) {\n          local_20 = 0xc;\n          iVar5 = 8;\n          goto LAB_000658c1;\n        }\n        local_4c = (*byte_get)(puVar15,(int)pFVar8);\n        local_20 = 0xc;\n        iVar5 = 8;\n        puVar15 = puVar17;\n        pFVar4 = pFVar8;\n      }\n      else {\n        local_20 = 4;\n        iVar5 = 4;\n      }\n      uVar14 = (int)puVar15 - (int)section->start;\n      uVar11 = (uint)local_4c + uVar14;\n      uVar12 = local_4c._4_4_ + (uint)CARRY4((uint)local_4c,uVar14);\n      if ((uVar11 < uVar14) <= uVar12) goto LAB_000658e2;\nLAB_00065ec0:\n      pcVar10 = dwarf_vmatoa_1("x",ZEXT48(pFVar4) << 0x20,(uint)local_4c);\n      pcVar6 = section->name;\n      message = (char *)dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(message,pcVar6,uVar14 - local_20,pcVar10);\n      goto LAB_00065bcc;\n    }" if (parenthesized_expression "(puVar15 < puVar16)" ( (binary_expression "puVar15 < puVar16" identifier < identifier) )) (compound_statement "{\n      pFVar4 = (FILE *)0x4;\nLAB_00065c45:\n      local_4c = (*byte_get)(puVar1,(int)pFVar4);\n      if (local_4c == 0xffffffff) {\n        puVar17 = puVar1 + 0xc;\n        if (puVar17 < puVar16) {\n          pFVar8 = (FILE *)0x8;\n        }\n        else if ((puVar16 <= puVar15) ||\n                (pFVar8 = (FILE *)(puVar16 + -(int)puVar15),\n                (char *)0x7 < pFVar8[-1]._unused2 + 0x27)) {\n          local_20 = 0xc;\n          iVar5 = 8;\n          goto LAB_000658c1;\n        }\n        local_4c = (*byte_get)(puVar15,(int)pFVar8);\n        local_20 = 0xc;\n        iVar5 = 8;\n        puVar15 = puVar17;\n        pFVar4 = pFVar8;\n      }\n      else {\n        local_20 = 4;\n        iVar5 = 4;\n      }\n      uVar14 = (int)puVar15 - (int)section->start;\n      uVar11 = (uint)local_4c + uVar14;\n      uVar12 = local_4c._4_4_ + (uint)CARRY4((uint)local_4c,uVar14);\n      if ((uVar11 < uVar14) <= uVar12) goto LAB_000658e2;\nLAB_00065ec0:\n      pcVar10 = dwarf_vmatoa_1("x",ZEXT48(pFVar4) << 0x20,(uint)local_4c);\n      pcVar6 = section->name;\n      message = (char *)dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(message,pcVar6,uVar14 - local_20,pcVar10);\n      goto LAB_00065bcc;\n    }" { (expression_statement "pFVar4 = (FILE *)0x4;" (assignment_expression "pFVar4 = (FILE *)0x4" identifier = (cast_expression "(FILE *)0x4" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00065c45:\n      local_4c = (*byte_get)(puVar1,(int)pFVar4);" statement_identifier : (expression_statement "local_4c = (*byte_get)(puVar1,(int)pFVar4);" (assignment_expression "local_4c = (*byte_get)(puVar1,(int)pFVar4)" identifier = (call_expression "(*byte_get)(puVar1,(int)pFVar4)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar1,(int)pFVar4)" ( identifier , (cast_expression "(int)pFVar4" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;)) (if_statement "if (local_4c == 0xffffffff) {\n        puVar17 = puVar1 + 0xc;\n        if (puVar17 < puVar16) {\n          pFVar8 = (FILE *)0x8;\n        }\n        else if ((puVar16 <= puVar15) ||\n                (pFVar8 = (FILE *)(puVar16 + -(int)puVar15),\n                (char *)0x7 < pFVar8[-1]._unused2 + 0x27)) {\n          local_20 = 0xc;\n          iVar5 = 8;\n          goto LAB_000658c1;\n        }\n        local_4c = (*byte_get)(puVar15,(int)pFVar8);\n        local_20 = 0xc;\n        iVar5 = 8;\n        puVar15 = puVar17;\n        pFVar4 = pFVar8;\n      }\n      else {\n        local_20 = 4;\n        iVar5 = 4;\n      }" if (parenthesized_expression "(local_4c == 0xffffffff)" ( (binary_expression "local_4c == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n        puVar17 = puVar1 + 0xc;\n        if (puVar17 < puVar16) {\n          pFVar8 = (FILE *)0x8;\n        }\n        else if ((puVar16 <= puVar15) ||\n                (pFVar8 = (FILE *)(puVar16 + -(int)puVar15),\n                (char *)0x7 < pFVar8[-1]._unused2 + 0x27)) {\n          local_20 = 0xc;\n          iVar5 = 8;\n          goto LAB_000658c1;\n        }\n        local_4c = (*byte_get)(puVar15,(int)pFVar8);\n        local_20 = 0xc;\n        iVar5 = 8;\n        puVar15 = puVar17;\n        pFVar4 = pFVar8;\n      }" { (expression_statement "puVar17 = puVar1 + 0xc;" (assignment_expression "puVar17 = puVar1 + 0xc" identifier = (binary_expression "puVar1 + 0xc" identifier + number_literal)) ;) (if_statement "if (puVar17 < puVar16) {\n          pFVar8 = (FILE *)0x8;\n        }\n        else if ((puVar16 <= puVar15) ||\n                (pFVar8 = (FILE *)(puVar16 + -(int)puVar15),\n                (char *)0x7 < pFVar8[-1]._unused2 + 0x27)) {\n          local_20 = 0xc;\n          iVar5 = 8;\n          goto LAB_000658c1;\n        }" if (parenthesized_expression "(puVar17 < puVar16)" ( (binary_expression "puVar17 < puVar16" identifier < identifier) )) (compound_statement "{\n          pFVar8 = (FILE *)0x8;\n        }" { (expression_statement "pFVar8 = (FILE *)0x8;" (assignment_expression "pFVar8 = (FILE *)0x8" identifier = (cast_expression "(FILE *)0x8" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else if ((puVar16 <= puVar15) ||\n                (pFVar8 = (FILE *)(puVar16 + -(int)puVar15),\n                (char *)0x7 < pFVar8[-1]._unused2 + 0x27)) {\n          local_20 = 0xc;\n          iVar5 = 8;\n          goto LAB_000658c1;\n        }" else (if_statement "if ((puVar16 <= puVar15) ||\n                (pFVar8 = (FILE *)(puVar16 + -(int)puVar15),\n                (char *)0x7 < pFVar8[-1]._unused2 + 0x27)) {\n          local_20 = 0xc;\n          iVar5 = 8;\n          goto LAB_000658c1;\n        }" if (parenthesized_expression "((puVar16 <= puVar15) ||\n                (pFVar8 = (FILE *)(puVar16 + -(int)puVar15),\n                (char *)0x7 < pFVar8[-1]._unused2 + 0x27))" ( (binary_expression "(puVar16 <= puVar15) ||\n                (pFVar8 = (FILE *)(puVar16 + -(int)puVar15),\n                (char *)0x7 < pFVar8[-1]._unused2 + 0x27)" (parenthesized_expression "(puVar16 <= puVar15)" ( (binary_expression "puVar16 <= puVar15" identifier <= identifier) )) || (parenthesized_expression "(pFVar8 = (FILE *)(puVar16 + -(int)puVar15),\n                (char *)0x7 < pFVar8[-1]._unused2 + 0x27)" ( (comma_expression "pFVar8 = (FILE *)(puVar16 + -(int)puVar15),\n                (char *)0x7 < pFVar8[-1]._unused2 + 0x27" (assignment_expression "pFVar8 = (FILE *)(puVar16 + -(int)puVar15)" identifier = (cast_expression "(FILE *)(puVar16 + -(int)puVar15)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -(int)puVar15)" ( (binary_expression "puVar16 + -(int)puVar15" identifier + (unary_expression "-(int)puVar15" - (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier))) )))) , (binary_expression "(char *)0x7 < pFVar8[-1]._unused2 + 0x27" (cast_expression "(char *)0x7" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) < (binary_expression "pFVar8[-1]._unused2 + 0x27" (field_expression "pFVar8[-1]._unused2" (subscript_expression "pFVar8[-1]" identifier [ number_literal ]) . field_identifier) + number_literal))) ))) )) (compound_statement "{\n          local_20 = 0xc;\n          iVar5 = 8;\n          goto LAB_000658c1;\n        }" { (expression_statement "local_20 = 0xc;" (assignment_expression "local_20 = 0xc" identifier = number_literal) ;) (expression_statement "iVar5 = 8;" (assignment_expression "iVar5 = 8" identifier = number_literal) ;) (goto_statement "goto LAB_000658c1;" goto statement_identifier ;) })))) (expression_statement "local_4c = (*byte_get)(puVar15,(int)pFVar8);" (assignment_expression "local_4c = (*byte_get)(puVar15,(int)pFVar8)" identifier = (call_expression "(*byte_get)(puVar15,(int)pFVar8)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar15,(int)pFVar8)" ( identifier , (cast_expression "(int)pFVar8" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (expression_statement "local_20 = 0xc;" (assignment_expression "local_20 = 0xc" identifier = number_literal) ;) (expression_statement "iVar5 = 8;" (assignment_expression "iVar5 = 8" identifier = number_literal) ;) (expression_statement "puVar15 = puVar17;" (assignment_expression "puVar15 = puVar17" identifier = identifier) ;) (expression_statement "pFVar4 = pFVar8;" (assignment_expression "pFVar4 = pFVar8" identifier = identifier) ;) }) (else_clause "else {\n        local_20 = 4;\n        iVar5 = 4;\n      }" else (compound_statement "{\n        local_20 = 4;\n        iVar5 = 4;\n      }" { (expression_statement "local_20 = 4;" (assignment_expression "local_20 = 4" identifier = number_literal) ;) (expression_statement "iVar5 = 4;" (assignment_expression "iVar5 = 4" identifier = number_literal) ;) }))) (expression_statement "uVar14 = (int)puVar15 - (int)section->start;" (assignment_expression "uVar14 = (int)puVar15 - (int)section->start" identifier = (binary_expression "(int)puVar15 - (int)section->start" (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)section->start" ( (type_descriptor "int" primitive_type) ) (field_expression "section->start" identifier -> field_identifier)))) ;) (expression_statement "uVar11 = (uint)local_4c + uVar14;" (assignment_expression "uVar11 = (uint)local_4c + uVar14" identifier = (binary_expression "(uint)local_4c + uVar14" (cast_expression "(uint)local_4c" ( (type_descriptor "uint" type_identifier) ) identifier) + identifier)) ;) (expression_statement "uVar12 = local_4c._4_4_ + (uint)CARRY4((uint)local_4c,uVar14);" (assignment_expression "uVar12 = local_4c._4_4_ + (uint)CARRY4((uint)local_4c,uVar14)" identifier = (binary_expression "local_4c._4_4_ + (uint)CARRY4((uint)local_4c,uVar14)" (field_expression "local_4c._4_4_" identifier . field_identifier) + (cast_expression "(uint)CARRY4((uint)local_4c,uVar14)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)local_4c,uVar14)" identifier (argument_list "((uint)local_4c,uVar14)" ( (cast_expression "(uint)local_4c" ( (type_descriptor "uint" type_identifier) ) identifier) , identifier )))))) ;) (if_statement "if ((uVar11 < uVar14) <= uVar12) goto LAB_000658e2;" if (parenthesized_expression "((uVar11 < uVar14) <= uVar12)" ( (binary_expression "(uVar11 < uVar14) <= uVar12" (parenthesized_expression "(uVar11 < uVar14)" ( (binary_expression "uVar11 < uVar14" identifier < identifier) )) <= identifier) )) (goto_statement "goto LAB_000658e2;" goto statement_identifier ;)) (labeled_statement "LAB_00065ec0:\n      pcVar10 = dwarf_vmatoa_1("x",ZEXT48(pFVar4) << 0x20,(uint)local_4c);" statement_identifier : (expression_statement "pcVar10 = dwarf_vmatoa_1("x",ZEXT48(pFVar4) << 0x20,(uint)local_4c);" (assignment_expression "pcVar10 = dwarf_vmatoa_1("x",ZEXT48(pFVar4) << 0x20,(uint)local_4c)" identifier = (call_expression "dwarf_vmatoa_1("x",ZEXT48(pFVar4) << 0x20,(uint)local_4c)" identifier (argument_list "("x",ZEXT48(pFVar4) << 0x20,(uint)local_4c)" ( (string_literal ""x"" " string_content ") , (binary_expression "ZEXT48(pFVar4) << 0x20" (call_expression "ZEXT48(pFVar4)" identifier (argument_list "(pFVar4)" ( identifier ))) << number_literal) , (cast_expression "(uint)local_4c" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;)) (expression_statement "pcVar6 = section->name;" (assignment_expression "pcVar6 = section->name" identifier = (field_expression "section->name" identifier -> field_identifier)) ;) (expression_statement "message = (char *)dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);" (assignment_expression "message = (char *)dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5)" identifier (argument_list "(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5)" ( number_literal , (string_literal ""Debug info is corrupted, %s header at %#lx has length %s\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "warn(message,pcVar6,uVar14 - local_20,pcVar10);" (call_expression "warn(message,pcVar6,uVar14 - local_20,pcVar10)" identifier (argument_list "(message,pcVar6,uVar14 - local_20,pcVar10)" ( identifier , identifier , (binary_expression "uVar14 - local_20" identifier - identifier) , identifier ))) ;) (goto_statement "goto LAB_00065bcc;" goto statement_identifier ;) })) (expression_statement "pFVar4 = (FILE *)(puVar16 + -(int)puVar1);" (assignment_expression "pFVar4 = (FILE *)(puVar16 + -(int)puVar1)" identifier = (cast_expression "(FILE *)(puVar16 + -(int)puVar1)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -(int)puVar1)" ( (binary_expression "puVar16 + -(int)puVar1" identifier + (unary_expression "-(int)puVar1" - (cast_expression "(int)puVar1" ( (type_descriptor "int" primitive_type) ) identifier))) )))) ;) (if_statement "if (pFVar4[-1]._unused2 + 0x27 < (char *)0x8) goto LAB_00065c45;" if (parenthesized_expression "(pFVar4[-1]._unused2 + 0x27 < (char *)0x8)" ( (binary_expression "pFVar4[-1]._unused2 + 0x27 < (char *)0x8" (binary_expression "pFVar4[-1]._unused2 + 0x27" (field_expression "pFVar4[-1]._unused2" (subscript_expression "pFVar4[-1]" identifier [ number_literal ]) . field_identifier) + number_literal) < (cast_expression "(char *)0x8" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00065c45;" goto statement_identifier ;)) (expression_statement "local_20 = 4;" (assignment_expression "local_20 = 4" identifier = number_literal) ;) (expression_statement "iVar5 = 4;" (assignment_expression "iVar5 = 4" identifier = number_literal) ;) (expression_statement "puVar17 = puVar15;" (assignment_expression "puVar17 = puVar15" identifier = identifier) ;) (expression_statement "pFVar4 = (FILE *)in_stack_ffffff98;" (assignment_expression "pFVar4 = (FILE *)in_stack_ffffff98" identifier = (cast_expression "(FILE *)in_stack_ffffff98" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (labeled_statement "LAB_000658c1:\n    uVar12 = 0;" statement_identifier : (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;)) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (expression_statement "uVar11 = (int)puVar17 - (int)section->start;" (assignment_expression "uVar11 = (int)puVar17 - (int)section->start" identifier = (binary_expression "(int)puVar17 - (int)section->start" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)section->start" ( (type_descriptor "int" primitive_type) ) (field_expression "section->start" identifier -> field_identifier)))) ;) (expression_statement "puVar15 = puVar17;" (assignment_expression "puVar15 = puVar17" identifier = identifier) ;) (expression_statement "uVar14 = uVar11;" (assignment_expression "uVar14 = uVar11" identifier = identifier) ;) (labeled_statement "LAB_000658e2:\n    uVar2 = *(uint *)((int)&section->size + 4);" statement_identifier : (expression_statement "uVar2 = *(uint *)((int)&section->size + 4);" (assignment_expression "uVar2 = *(uint *)((int)&section->size + 4)" identifier = (pointer_expression "*(uint *)((int)&section->size + 4)" * (cast_expression "(uint *)((int)&section->size + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&section->size + 4)" ( (binary_expression "(int)&section->size + 4" (cast_expression "(int)&section->size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&section->size" & (field_expression "section->size" identifier -> field_identifier))) + number_literal) ))))) ;)) (if_statement "if (uVar2 < uVar12 || uVar2 - uVar12 < (uint)((uint)section->size < uVar11)) goto LAB_00065ec0;" if (parenthesized_expression "(uVar2 < uVar12 || uVar2 - uVar12 < (uint)((uint)section->size < uVar11))" ( (binary_expression "uVar2 < uVar12 || uVar2 - uVar12 < (uint)((uint)section->size < uVar11)" (binary_expression "uVar2 < uVar12" identifier < identifier) || (binary_expression "uVar2 - uVar12 < (uint)((uint)section->size < uVar11)" (binary_expression "uVar2 - uVar12" identifier - identifier) < (call_expression "(uint)((uint)section->size < uVar11)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)section->size < uVar11)" ( (binary_expression "(uint)section->size < uVar11" (cast_expression "(uint)section->size" ( (type_descriptor "uint" type_identifier) ) (field_expression "section->size" identifier -> field_identifier)) < identifier) ))))) )) (goto_statement "goto LAB_00065ec0;" goto statement_identifier ;)) (expression_statement "puVar17 = puVar15 + 2;" (assignment_expression "puVar17 = puVar15 + 2" identifier = (binary_expression "puVar15 + 2" identifier + number_literal)) ;) (expression_statement "iVar13 = iVar5;" (assignment_expression "iVar13 = iVar5" identifier = identifier) ;) (if_statement "if (puVar17 < puVar16) {\n      eVar18 = (*byte_get)(puVar15,2);\n      local_2c = (short)eVar18;\n      if (puVar17 + iVar5 < puVar16) {\nLAB_00065e10:\n        local_28 = local_2c - 2;\nLAB_00065944:\n        eVar18 = (*byte_get)(puVar17,iVar13);\n        local_30 = (int)eVar18;\n        goto LAB_0006595d;\n      }\n      local_28 = local_2c - 2;\n      iVar13 = (int)puVar16 - (int)puVar17;\n      if (((int)puVar16 - (int)puVar17) - 1U < 8) goto LAB_00065944;\nLAB_00065cf4:\n      local_30 = 0;\n      if (num_debug_info_entries - 1 < 0xfffffffe) goto LAB_00065d0e;\nLAB_0006596f:\n      puVar15 = puVar17 + iVar5 + 1;\n      if (puVar16 <= puVar15) goto LAB_0006597e;\nLAB_00065d80:\n      eVar18 = (*byte_get)(puVar17 + iVar5,1);\n      local_44._0_1_ = (byte)eVar18;\n      puVar17 = puVar17 + iVar5 + 2;\n      if (puVar17 < puVar16) goto LAB_00065e60;\n      iVar5 = (int)puVar16 - (int)puVar15;\n      if (iVar5 - 1U < 8) goto LAB_000659ad;\nLAB_00065dbc:\n      local_3c._0_1_ = 0;\n      if (local_28 < 2) goto LAB_000659c7;\nLAB_00065dcd:\n      if (local_2c != 0) {\n        pcVar6 = "Only DWARF 2 and 3 aranges are currently supported.\n";\nLAB_00065de4:\n        pcVar6 = (char *)dcgettext(0,pcVar6,5);\n        warn(pcVar6);\n      }\n      goto LAB_00065bcc;\n    }" if (parenthesized_expression "(puVar17 < puVar16)" ( (binary_expression "puVar17 < puVar16" identifier < identifier) )) (compound_statement "{\n      eVar18 = (*byte_get)(puVar15,2);\n      local_2c = (short)eVar18;\n      if (puVar17 + iVar5 < puVar16) {\nLAB_00065e10:\n        local_28 = local_2c - 2;\nLAB_00065944:\n        eVar18 = (*byte_get)(puVar17,iVar13);\n        local_30 = (int)eVar18;\n        goto LAB_0006595d;\n      }\n      local_28 = local_2c - 2;\n      iVar13 = (int)puVar16 - (int)puVar17;\n      if (((int)puVar16 - (int)puVar17) - 1U < 8) goto LAB_00065944;\nLAB_00065cf4:\n      local_30 = 0;\n      if (num_debug_info_entries - 1 < 0xfffffffe) goto LAB_00065d0e;\nLAB_0006596f:\n      puVar15 = puVar17 + iVar5 + 1;\n      if (puVar16 <= puVar15) goto LAB_0006597e;\nLAB_00065d80:\n      eVar18 = (*byte_get)(puVar17 + iVar5,1);\n      local_44._0_1_ = (byte)eVar18;\n      puVar17 = puVar17 + iVar5 + 2;\n      if (puVar17 < puVar16) goto LAB_00065e60;\n      iVar5 = (int)puVar16 - (int)puVar15;\n      if (iVar5 - 1U < 8) goto LAB_000659ad;\nLAB_00065dbc:\n      local_3c._0_1_ = 0;\n      if (local_28 < 2) goto LAB_000659c7;\nLAB_00065dcd:\n      if (local_2c != 0) {\n        pcVar6 = "Only DWARF 2 and 3 aranges are currently supported.\n";\nLAB_00065de4:\n        pcVar6 = (char *)dcgettext(0,pcVar6,5);\n        warn(pcVar6);\n      }\n      goto LAB_00065bcc;\n    }" { (expression_statement "eVar18 = (*byte_get)(puVar15,2);" (assignment_expression "eVar18 = (*byte_get)(puVar15,2)" identifier = (call_expression "(*byte_get)(puVar15,2)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar15,2)" ( identifier , number_literal )))) ;) (expression_statement "local_2c = (short)eVar18;" (assignment_expression "local_2c = (short)eVar18" identifier = (cast_expression "(short)eVar18" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (if_statement "if (puVar17 + iVar5 < puVar16) {\nLAB_00065e10:\n        local_28 = local_2c - 2;\nLAB_00065944:\n        eVar18 = (*byte_get)(puVar17,iVar13);\n        local_30 = (int)eVar18;\n        goto LAB_0006595d;\n      }" if (parenthesized_expression "(puVar17 + iVar5 < puVar16)" ( (binary_expression "puVar17 + iVar5 < puVar16" (binary_expression "puVar17 + iVar5" identifier + identifier) < identifier) )) (compound_statement "{\nLAB_00065e10:\n        local_28 = local_2c - 2;\nLAB_00065944:\n        eVar18 = (*byte_get)(puVar17,iVar13);\n        local_30 = (int)eVar18;\n        goto LAB_0006595d;\n      }" { (labeled_statement "LAB_00065e10:\n        local_28 = local_2c - 2;" statement_identifier : (expression_statement "local_28 = local_2c - 2;" (assignment_expression "local_28 = local_2c - 2" identifier = (binary_expression "local_2c - 2" identifier - number_literal)) ;)) (labeled_statement "LAB_00065944:\n        eVar18 = (*byte_get)(puVar17,iVar13);" statement_identifier : (expression_statement "eVar18 = (*byte_get)(puVar17,iVar13);" (assignment_expression "eVar18 = (*byte_get)(puVar17,iVar13)" identifier = (call_expression "(*byte_get)(puVar17,iVar13)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar17,iVar13)" ( identifier , identifier )))) ;)) (expression_statement "local_30 = (int)eVar18;" (assignment_expression "local_30 = (int)eVar18" identifier = (cast_expression "(int)eVar18" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_0006595d;" goto statement_identifier ;) })) (expression_statement "local_28 = local_2c - 2;" (assignment_expression "local_28 = local_2c - 2" identifier = (binary_expression "local_2c - 2" identifier - number_literal)) ;) (expression_statement "iVar13 = (int)puVar16 - (int)puVar17;" (assignment_expression "iVar13 = (int)puVar16 - (int)puVar17" identifier = (binary_expression "(int)puVar16 - (int)puVar17" (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (((int)puVar16 - (int)puVar17) - 1U < 8) goto LAB_00065944;" if (parenthesized_expression "(((int)puVar16 - (int)puVar17) - 1U < 8)" ( (binary_expression "((int)puVar16 - (int)puVar17) - 1U < 8" (binary_expression "((int)puVar16 - (int)puVar17) - 1U" (parenthesized_expression "((int)puVar16 - (int)puVar17)" ( (binary_expression "(int)puVar16 - (int)puVar17" (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )) - number_literal) < number_literal) )) (goto_statement "goto LAB_00065944;" goto statement_identifier ;)) (labeled_statement "LAB_00065cf4:\n      local_30 = 0;" statement_identifier : (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;)) (if_statement "if (num_debug_info_entries - 1 < 0xfffffffe) goto LAB_00065d0e;" if (parenthesized_expression "(num_debug_info_entries - 1 < 0xfffffffe)" ( (binary_expression "num_debug_info_entries - 1 < 0xfffffffe" (binary_expression "num_debug_info_entries - 1" identifier - number_literal) < number_literal) )) (goto_statement "goto LAB_00065d0e;" goto statement_identifier ;)) (labeled_statement "LAB_0006596f:\n      puVar15 = puVar17 + iVar5 + 1;" statement_identifier : (expression_statement "puVar15 = puVar17 + iVar5 + 1;" (assignment_expression "puVar15 = puVar17 + iVar5 + 1" identifier = (binary_expression "puVar17 + iVar5 + 1" (binary_expression "puVar17 + iVar5" identifier + identifier) + number_literal)) ;)) (if_statement "if (puVar16 <= puVar15) goto LAB_0006597e;" if (parenthesized_expression "(puVar16 <= puVar15)" ( (binary_expression "puVar16 <= puVar15" identifier <= identifier) )) (goto_statement "goto LAB_0006597e;" goto statement_identifier ;)) (labeled_statement "LAB_00065d80:\n      eVar18 = (*byte_get)(puVar17 + iVar5,1);" statement_identifier : (expression_statement "eVar18 = (*byte_get)(puVar17 + iVar5,1);" (assignment_expression "eVar18 = (*byte_get)(puVar17 + iVar5,1)" identifier = (call_expression "(*byte_get)(puVar17 + iVar5,1)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar17 + iVar5,1)" ( (binary_expression "puVar17 + iVar5" identifier + identifier) , number_literal )))) ;)) (expression_statement "local_44._0_1_ = (byte)eVar18;" (assignment_expression "local_44._0_1_ = (byte)eVar18" (field_expression "local_44._0_1_" identifier . field_identifier) = (cast_expression "(byte)eVar18" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "puVar17 = puVar17 + iVar5 + 2;" (assignment_expression "puVar17 = puVar17 + iVar5 + 2" identifier = (binary_expression "puVar17 + iVar5 + 2" (binary_expression "puVar17 + iVar5" identifier + identifier) + number_literal)) ;) (if_statement "if (puVar17 < puVar16) goto LAB_00065e60;" if (parenthesized_expression "(puVar17 < puVar16)" ( (binary_expression "puVar17 < puVar16" identifier < identifier) )) (goto_statement "goto LAB_00065e60;" goto statement_identifier ;)) (expression_statement "iVar5 = (int)puVar16 - (int)puVar15;" (assignment_expression "iVar5 = (int)puVar16 - (int)puVar15" identifier = (binary_expression "(int)puVar16 - (int)puVar15" (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (iVar5 - 1U < 8) goto LAB_000659ad;" if (parenthesized_expression "(iVar5 - 1U < 8)" ( (binary_expression "iVar5 - 1U < 8" (binary_expression "iVar5 - 1U" identifier - number_literal) < number_literal) )) (goto_statement "goto LAB_000659ad;" goto statement_identifier ;)) (labeled_statement "LAB_00065dbc:\n      local_3c._0_1_ = 0;" statement_identifier : (expression_statement "local_3c._0_1_ = 0;" (assignment_expression "local_3c._0_1_ = 0" (field_expression "local_3c._0_1_" identifier . field_identifier) = number_literal) ;)) (if_statement "if (local_28 < 2) goto LAB_000659c7;" if (parenthesized_expression "(local_28 < 2)" ( (binary_expression "local_28 < 2" identifier < number_literal) )) (goto_statement "goto LAB_000659c7;" goto statement_identifier ;)) (labeled_statement "LAB_00065dcd:\n      if (local_2c != 0) {\n        pcVar6 = "Only DWARF 2 and 3 aranges are currently supported.\n";\nLAB_00065de4:\n        pcVar6 = (char *)dcgettext(0,pcVar6,5);\n        warn(pcVar6);\n      }" statement_identifier : (if_statement "if (local_2c != 0) {\n        pcVar6 = "Only DWARF 2 and 3 aranges are currently supported.\n";\nLAB_00065de4:\n        pcVar6 = (char *)dcgettext(0,pcVar6,5);\n        warn(pcVar6);\n      }" if (parenthesized_expression "(local_2c != 0)" ( (binary_expression "local_2c != 0" identifier != number_literal) )) (compound_statement "{\n        pcVar6 = "Only DWARF 2 and 3 aranges are currently supported.\n";\nLAB_00065de4:\n        pcVar6 = (char *)dcgettext(0,pcVar6,5);\n        warn(pcVar6);\n      }" { (expression_statement "pcVar6 = "Only DWARF 2 and 3 aranges are currently supported.\n";" (assignment_expression "pcVar6 = "Only DWARF 2 and 3 aranges are currently supported.\n"" identifier = (string_literal ""Only DWARF 2 and 3 aranges are currently supported.\n"" " string_content escape_sequence ")) ;) (labeled_statement "LAB_00065de4:\n        pcVar6 = (char *)dcgettext(0,pcVar6,5);" statement_identifier : (expression_statement "pcVar6 = (char *)dcgettext(0,pcVar6,5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,pcVar6,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar6,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar6,5)" identifier (argument_list "(0,pcVar6,5)" ( number_literal , identifier , number_literal ))))) ;)) (expression_statement "warn(pcVar6);" (call_expression "warn(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier ))) ;) }))) (goto_statement "goto LAB_00065bcc;" goto statement_identifier ;) })) (if_statement "if ((puVar16 <= puVar15) || (7 < ((int)puVar16 - (int)puVar15) - 1U)) {\n      local_28 = 0xfffe;\n      local_2c = 0;\n      if (puVar16 <= puVar17 + iVar5) goto LAB_00065cf4;\n      goto LAB_00065944;\n    }" if (parenthesized_expression "((puVar16 <= puVar15) || (7 < ((int)puVar16 - (int)puVar15) - 1U))" ( (binary_expression "(puVar16 <= puVar15) || (7 < ((int)puVar16 - (int)puVar15) - 1U)" (parenthesized_expression "(puVar16 <= puVar15)" ( (binary_expression "puVar16 <= puVar15" identifier <= identifier) )) || (parenthesized_expression "(7 < ((int)puVar16 - (int)puVar15) - 1U)" ( (binary_expression "7 < ((int)puVar16 - (int)puVar15) - 1U" number_literal < (binary_expression "((int)puVar16 - (int)puVar15) - 1U" (parenthesized_expression "((int)puVar16 - (int)puVar15)" ( (binary_expression "(int)puVar16 - (int)puVar15" (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier)) )) - number_literal)) ))) )) (compound_statement "{\n      local_28 = 0xfffe;\n      local_2c = 0;\n      if (puVar16 <= puVar17 + iVar5) goto LAB_00065cf4;\n      goto LAB_00065944;\n    }" { (expression_statement "local_28 = 0xfffe;" (assignment_expression "local_28 = 0xfffe" identifier = number_literal) ;) (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" identifier = number_literal) ;) (if_statement "if (puVar16 <= puVar17 + iVar5) goto LAB_00065cf4;" if (parenthesized_expression "(puVar16 <= puVar17 + iVar5)" ( (binary_expression "puVar16 <= puVar17 + iVar5" identifier <= (binary_expression "puVar17 + iVar5" identifier + identifier)) )) (goto_statement "goto LAB_00065cf4;" goto statement_identifier ;)) (goto_statement "goto LAB_00065944;" goto statement_identifier ;) })) (expression_statement "eVar18 = (*byte_get)(puVar15,(int)puVar16 - (int)puVar15);" (assignment_expression "eVar18 = (*byte_get)(puVar15,(int)puVar16 - (int)puVar15)" identifier = (call_expression "(*byte_get)(puVar15,(int)puVar16 - (int)puVar15)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar15,(int)puVar16 - (int)puVar15)" ( identifier , (binary_expression "(int)puVar16 - (int)puVar15" (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "local_2c = (short)eVar18;" (assignment_expression "local_2c = (short)eVar18" identifier = (cast_expression "(short)eVar18" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (if_statement "if (puVar17 + iVar5 < puVar16) goto LAB_00065e10;" if (parenthesized_expression "(puVar17 + iVar5 < puVar16)" ( (binary_expression "puVar17 + iVar5 < puVar16" (binary_expression "puVar17 + iVar5" identifier + identifier) < identifier) )) (goto_statement "goto LAB_00065e10;" goto statement_identifier ;)) (expression_statement "local_28 = local_2c - 2;" (assignment_expression "local_28 = local_2c - 2" identifier = (binary_expression "local_2c - 2" identifier - number_literal)) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0006595d:\n    if (0xfffffffd < num_debug_info_entries - 1) goto LAB_0006596f;" statement_identifier : (if_statement "if (0xfffffffd < num_debug_info_entries - 1) goto LAB_0006596f;" if (parenthesized_expression "(0xfffffffd < num_debug_info_entries - 1)" ( (binary_expression "0xfffffffd < num_debug_info_entries - 1" number_literal < (binary_expression "num_debug_info_entries - 1" identifier - number_literal)) )) (goto_statement "goto LAB_0006596f;" goto statement_identifier ;))) (labeled_statement "LAB_00065d0e:\n    uVar14 = 0;" statement_identifier : (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;)) (expression_statement "pdVar9 = &debug_information->cu_offset;" (assignment_expression "pdVar9 = &debug_information->cu_offset" identifier = (pointer_expression "&debug_information->cu_offset" & (field_expression "debug_information->cu_offset" identifier -> field_identifier))) ;) (do_statement "do {\n      if ((int)*pdVar9 == local_30 && *(int *)((int)pdVar9 + 4) == 0) goto LAB_0006596f;\n      uVar14 = uVar14 + 1;\n      pdVar9 = pdVar9 + 10;\n    } while (num_debug_info_entries != uVar14);" do (compound_statement "{\n      if ((int)*pdVar9 == local_30 && *(int *)((int)pdVar9 + 4) == 0) goto LAB_0006596f;\n      uVar14 = uVar14 + 1;\n      pdVar9 = pdVar9 + 10;\n    }" { (if_statement "if ((int)*pdVar9 == local_30 && *(int *)((int)pdVar9 + 4) == 0) goto LAB_0006596f;" if (parenthesized_expression "((int)*pdVar9 == local_30 && *(int *)((int)pdVar9 + 4) == 0)" ( (binary_expression "(int)*pdVar9 == local_30 && *(int *)((int)pdVar9 + 4) == 0" (binary_expression "(int)*pdVar9 == local_30" (cast_expression "(int)*pdVar9" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pdVar9" * identifier)) == identifier) && (binary_expression "*(int *)((int)pdVar9 + 4) == 0" (pointer_expression "*(int *)((int)pdVar9 + 4)" * (cast_expression "(int *)((int)pdVar9 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar9 + 4)" ( (binary_expression "(int)pdVar9 + 4" (cast_expression "(int)pdVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal)) )) (goto_statement "goto LAB_0006596f;" goto statement_identifier ;)) (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) (expression_statement "pdVar9 = pdVar9 + 10;" (assignment_expression "pdVar9 = pdVar9 + 10" identifier = (binary_expression "pdVar9 + 10" identifier + number_literal)) ;) }) while (parenthesized_expression "(num_debug_info_entries != uVar14)" ( (binary_expression "num_debug_info_entries != uVar14" identifier != identifier) )) ;) (expression_statement "pcVar6 = section->name;" (assignment_expression "pcVar6 = section->name" identifier = (field_expression "section->name" identifier -> field_identifier)) ;) (expression_statement "pcVar10 = (char *)dcgettext(0,\n                                ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                                ,5);" (assignment_expression "pcVar10 = (char *)dcgettext(0,\n                                ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                                ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                                ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                                ,5)" identifier (argument_list "(0,\n                                ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                                ,5)" ( number_literal , (string_literal "".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "warn(pcVar10,local_30,pcVar6);" (call_expression "warn(pcVar10,local_30,pcVar6)" identifier (argument_list "(pcVar10,local_30,pcVar6)" ( identifier , identifier , identifier ))) ;) (expression_statement "puVar15 = puVar17 + iVar5 + 1;" (assignment_expression "puVar15 = puVar17 + iVar5 + 1" identifier = (binary_expression "puVar17 + iVar5 + 1" (binary_expression "puVar17 + iVar5" identifier + identifier) + number_literal)) ;) (if_statement "if (puVar15 < puVar16) goto LAB_00065d80;" if (parenthesized_expression "(puVar15 < puVar16)" ( (binary_expression "puVar15 < puVar16" identifier < identifier) )) (goto_statement "goto LAB_00065d80;" goto statement_identifier ;)) (labeled_statement "LAB_0006597e:\n    puVar17 = puVar17 + iVar5;" statement_identifier : (expression_statement "puVar17 = puVar17 + iVar5;" (assignment_expression "puVar17 = puVar17 + iVar5" identifier = (binary_expression "puVar17 + iVar5" identifier + identifier)) ;)) (if_statement "if ((puVar17 < puVar16) && (((int)puVar16 - (int)puVar17) - 1U < 8)) {\n      eVar18 = (*byte_get)(puVar17,(int)puVar16 - (int)puVar17);\n      local_44._0_1_ = (byte)eVar18;\n      puVar17 = puVar17 + 2;\n      local_3c._0_1_ = 0;\n      if (puVar17 < puVar16) {\nLAB_00065e60:\n        iVar5 = 1;\n        goto LAB_000659ad;\n      }\n    }\n    else {\n      puVar17 = puVar17 + 2;\n      if (puVar16 <= puVar17) {\n        local_44._0_1_ = 0;\n        goto LAB_00065dbc;\n      }\n      local_44._0_1_ = 0;\n      iVar5 = 1;\nLAB_000659ad:\n      eVar18 = (*byte_get)(puVar15,iVar5);\n      local_3c._0_1_ = (byte)eVar18;\n    }" if (parenthesized_expression "((puVar17 < puVar16) && (((int)puVar16 - (int)puVar17) - 1U < 8))" ( (binary_expression "(puVar17 < puVar16) && (((int)puVar16 - (int)puVar17) - 1U < 8)" (parenthesized_expression "(puVar17 < puVar16)" ( (binary_expression "puVar17 < puVar16" identifier < identifier) )) && (parenthesized_expression "(((int)puVar16 - (int)puVar17) - 1U < 8)" ( (binary_expression "((int)puVar16 - (int)puVar17) - 1U < 8" (binary_expression "((int)puVar16 - (int)puVar17) - 1U" (parenthesized_expression "((int)puVar16 - (int)puVar17)" ( (binary_expression "(int)puVar16 - (int)puVar17" (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )) - number_literal) < number_literal) ))) )) (compound_statement "{\n      eVar18 = (*byte_get)(puVar17,(int)puVar16 - (int)puVar17);\n      local_44._0_1_ = (byte)eVar18;\n      puVar17 = puVar17 + 2;\n      local_3c._0_1_ = 0;\n      if (puVar17 < puVar16) {\nLAB_00065e60:\n        iVar5 = 1;\n        goto LAB_000659ad;\n      }\n    }" { (expression_statement "eVar18 = (*byte_get)(puVar17,(int)puVar16 - (int)puVar17);" (assignment_expression "eVar18 = (*byte_get)(puVar17,(int)puVar16 - (int)puVar17)" identifier = (call_expression "(*byte_get)(puVar17,(int)puVar16 - (int)puVar17)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar17,(int)puVar16 - (int)puVar17)" ( identifier , (binary_expression "(int)puVar16 - (int)puVar17" (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "local_44._0_1_ = (byte)eVar18;" (assignment_expression "local_44._0_1_ = (byte)eVar18" (field_expression "local_44._0_1_" identifier . field_identifier) = (cast_expression "(byte)eVar18" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "puVar17 = puVar17 + 2;" (assignment_expression "puVar17 = puVar17 + 2" identifier = (binary_expression "puVar17 + 2" identifier + number_literal)) ;) (expression_statement "local_3c._0_1_ = 0;" (assignment_expression "local_3c._0_1_ = 0" (field_expression "local_3c._0_1_" identifier . field_identifier) = number_literal) ;) (if_statement "if (puVar17 < puVar16) {\nLAB_00065e60:\n        iVar5 = 1;\n        goto LAB_000659ad;\n      }" if (parenthesized_expression "(puVar17 < puVar16)" ( (binary_expression "puVar17 < puVar16" identifier < identifier) )) (compound_statement "{\nLAB_00065e60:\n        iVar5 = 1;\n        goto LAB_000659ad;\n      }" { (labeled_statement "LAB_00065e60:\n        iVar5 = 1;" statement_identifier : (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;)) (goto_statement "goto LAB_000659ad;" goto statement_identifier ;) })) }) (else_clause "else {\n      puVar17 = puVar17 + 2;\n      if (puVar16 <= puVar17) {\n        local_44._0_1_ = 0;\n        goto LAB_00065dbc;\n      }\n      local_44._0_1_ = 0;\n      iVar5 = 1;\nLAB_000659ad:\n      eVar18 = (*byte_get)(puVar15,iVar5);\n      local_3c._0_1_ = (byte)eVar18;\n    }" else (compound_statement "{\n      puVar17 = puVar17 + 2;\n      if (puVar16 <= puVar17) {\n        local_44._0_1_ = 0;\n        goto LAB_00065dbc;\n      }\n      local_44._0_1_ = 0;\n      iVar5 = 1;\nLAB_000659ad:\n      eVar18 = (*byte_get)(puVar15,iVar5);\n      local_3c._0_1_ = (byte)eVar18;\n    }" { (expression_statement "puVar17 = puVar17 + 2;" (assignment_expression "puVar17 = puVar17 + 2" identifier = (binary_expression "puVar17 + 2" identifier + number_literal)) ;) (if_statement "if (puVar16 <= puVar17) {\n        local_44._0_1_ = 0;\n        goto LAB_00065dbc;\n      }" if (parenthesized_expression "(puVar16 <= puVar17)" ( (binary_expression "puVar16 <= puVar17" identifier <= identifier) )) (compound_statement "{\n        local_44._0_1_ = 0;\n        goto LAB_00065dbc;\n      }" { (expression_statement "local_44._0_1_ = 0;" (assignment_expression "local_44._0_1_ = 0" (field_expression "local_44._0_1_" identifier . field_identifier) = number_literal) ;) (goto_statement "goto LAB_00065dbc;" goto statement_identifier ;) })) (expression_statement "local_44._0_1_ = 0;" (assignment_expression "local_44._0_1_ = 0" (field_expression "local_44._0_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) (labeled_statement "LAB_000659ad:\n      eVar18 = (*byte_get)(puVar15,iVar5);" statement_identifier : (expression_statement "eVar18 = (*byte_get)(puVar15,iVar5);" (assignment_expression "eVar18 = (*byte_get)(puVar15,iVar5)" identifier = (call_expression "(*byte_get)(puVar15,iVar5)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar15,iVar5)" ( identifier , identifier )))) ;)) (expression_statement "local_3c._0_1_ = (byte)eVar18;" (assignment_expression "local_3c._0_1_ = (byte)eVar18" (field_expression "local_3c._0_1_" identifier . field_identifier) = (cast_expression "(byte)eVar18" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (if_statement "if (1 < local_28) goto LAB_00065dcd;" if (parenthesized_expression "(1 < local_28)" ( (binary_expression "1 < local_28" number_literal < identifier) )) (goto_statement "goto LAB_00065dcd;" goto statement_identifier ;)) (labeled_statement "LAB_000659c7:\n    pcVar6 = (char *)dcgettext(0,"  Length:                   %ld\n",5);" statement_identifier : (expression_statement "pcVar6 = (char *)dcgettext(0,"  Length:                   %ld\n",5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,"  Length:                   %ld\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"  Length:                   %ld\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"  Length:                   %ld\n",5)" identifier (argument_list "(0,"  Length:                   %ld\n",5)" ( number_literal , (string_literal ""  Length:                   %ld\n"" " string_content escape_sequence ") , number_literal ))))) ;)) (expression_statement "printf(pcVar6,(uint)local_4c);" (call_expression "printf(pcVar6,(uint)local_4c)" identifier (argument_list "(pcVar6,(uint)local_4c)" ( identifier , (cast_expression "(uint)local_4c" ( (type_descriptor "uint" type_identifier) ) identifier) ))) ;) (expression_statement "pcVar6 = (char *)dcgettext(0,"  Version:                  %d\n",5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,"  Version:                  %d\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"  Version:                  %d\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"  Version:                  %d\n",5)" identifier (argument_list "(0,"  Version:                  %d\n",5)" ( number_literal , (string_literal ""  Version:                  %d\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar6,local_2c);" (call_expression "printf(pcVar6,local_2c)" identifier (argument_list "(pcVar6,local_2c)" ( identifier , identifier ))) ;) (expression_statement "pcVar6 = (char *)dcgettext(0,"  Offset into .debug_info:  0x%lx\n",5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,"  Offset into .debug_info:  0x%lx\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"  Offset into .debug_info:  0x%lx\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"  Offset into .debug_info:  0x%lx\n",5)" identifier (argument_list "(0,"  Offset into .debug_info:  0x%lx\n",5)" ( number_literal , (string_literal ""  Offset into .debug_info:  0x%lx\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar6,local_30);" (call_expression "printf(pcVar6,local_30)" identifier (argument_list "(pcVar6,local_30)" ( identifier , identifier ))) ;) (expression_statement "pcVar6 = (char *)dcgettext(0,"  Pointer Size:             %d\n",5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,"  Pointer Size:             %d\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"  Pointer Size:             %d\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"  Pointer Size:             %d\n",5)" identifier (argument_list "(0,"  Pointer Size:             %d\n",5)" ( number_literal , (string_literal ""  Pointer Size:             %d\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar6,(uint)(byte)local_44);" (call_expression "printf(pcVar6,(uint)(byte)local_44)" identifier (argument_list "(pcVar6,(uint)(byte)local_44)" ( identifier , (cast_expression "(uint)(byte)local_44" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_44" ( (type_descriptor "byte" type_identifier) ) identifier)) ))) ;) (expression_statement "pcVar6 = (char *)dcgettext(0,"  Segment Size:             %d\n",5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,"  Segment Size:             %d\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"  Segment Size:             %d\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"  Segment Size:             %d\n",5)" identifier (argument_list "(0,"  Segment Size:             %d\n",5)" ( number_literal , (string_literal ""  Segment Size:             %d\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar6,(uint)(byte)local_3c);" (call_expression "printf(pcVar6,(uint)(byte)local_3c)" identifier (argument_list "(pcVar6,(uint)(byte)local_3c)" ( identifier , (cast_expression "(uint)(byte)local_3c" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_3c" ( (type_descriptor "byte" type_identifier) ) identifier)) ))) ;) (expression_statement "local_3c._0_1_ = (byte)local_3c + (byte)local_44;" (assignment_expression "local_3c._0_1_ = (byte)local_3c + (byte)local_44" (field_expression "local_3c._0_1_" identifier . field_identifier) = (binary_expression "(byte)local_3c + (byte)local_44" (cast_expression "(byte)local_3c" ( (type_descriptor "byte" type_identifier) ) identifier) + (cast_expression "(byte)local_44" ( (type_descriptor "byte" type_identifier) ) identifier))) ;) (if_statement "if (7 < (byte)((byte)local_3c - 1)) {\n      pcVar6 = section->name;\n      pcVar10 = (char *)dcgettext(0,"Invalid address size in %s section!\n",5);\n      error(pcVar10,pcVar6);\n      goto LAB_00065bcc;\n    }" if (parenthesized_expression "(7 < (byte)((byte)local_3c - 1))" ( (binary_expression "7 < (byte)((byte)local_3c - 1)" number_literal < (call_expression "(byte)((byte)local_3c - 1)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((byte)local_3c - 1)" ( (binary_expression "(byte)local_3c - 1" (cast_expression "(byte)local_3c" ( (type_descriptor "byte" type_identifier) ) identifier) - number_literal) )))) )) (compound_statement "{\n      pcVar6 = section->name;\n      pcVar10 = (char *)dcgettext(0,"Invalid address size in %s section!\n",5);\n      error(pcVar10,pcVar6);\n      goto LAB_00065bcc;\n    }" { (expression_statement "pcVar6 = section->name;" (assignment_expression "pcVar6 = section->name" identifier = (field_expression "section->name" identifier -> field_identifier)) ;) (expression_statement "pcVar10 = (char *)dcgettext(0,"Invalid address size in %s section!\n",5);" (assignment_expression "pcVar10 = (char *)dcgettext(0,"Invalid address size in %s section!\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"Invalid address size in %s section!\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Invalid address size in %s section!\n",5)" identifier (argument_list "(0,"Invalid address size in %s section!\n",5)" ( number_literal , (string_literal ""Invalid address size in %s section!\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "error(pcVar10,pcVar6);" (call_expression "error(pcVar10,pcVar6)" identifier (argument_list "(pcVar10,pcVar6)" ( identifier , identifier ))) ;) (goto_statement "goto LAB_00065bcc;" goto statement_identifier ;) })) (expression_statement "pFVar4 = (FILE *)(uint)(byte)local_3c;" (assignment_expression "pFVar4 = (FILE *)(uint)(byte)local_3c" identifier = (cast_expression "(FILE *)(uint)(byte)local_3c" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)(byte)local_3c" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_3c" ( (type_descriptor "byte" type_identifier) ) identifier)))) ;) (if_statement "if (((uint)(pFVar4[-1]._unused2 + 0x27) & (uint)pFVar4) != 0) {\n      pcVar6 = "Pointer size + Segment size is not a power of two.\n";\n      goto LAB_00065de4;\n    }" if (parenthesized_expression "(((uint)(pFVar4[-1]._unused2 + 0x27) & (uint)pFVar4) != 0)" ( (binary_expression "((uint)(pFVar4[-1]._unused2 + 0x27) & (uint)pFVar4) != 0" (parenthesized_expression "((uint)(pFVar4[-1]._unused2 + 0x27) & (uint)pFVar4)" ( (binary_expression "(uint)(pFVar4[-1]._unused2 + 0x27) & (uint)pFVar4" (call_expression "(uint)(pFVar4[-1]._unused2 + 0x27)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pFVar4[-1]._unused2 + 0x27)" ( (binary_expression "pFVar4[-1]._unused2 + 0x27" (field_expression "pFVar4[-1]._unused2" (subscript_expression "pFVar4[-1]" identifier [ number_literal ]) . field_identifier) + number_literal) ))) & (cast_expression "(uint)pFVar4" ( (type_descriptor "uint" type_identifier) ) identifier)) )) != number_literal) )) (compound_statement "{\n      pcVar6 = "Pointer size + Segment size is not a power of two.\n";\n      goto LAB_00065de4;\n    }" { (expression_statement "pcVar6 = "Pointer size + Segment size is not a power of two.\n";" (assignment_expression "pcVar6 = "Pointer size + Segment size is not a power of two.\n"" identifier = (string_literal ""Pointer size + Segment size is not a power of two.\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_00065de4;" goto statement_identifier ;) })) (if_statement "if ((byte)local_3c < 5) {\n      in_stack_ffffff98 = "\n    Address    Length\n";\n    }\n    else {\n      in_stack_ffffff98 = "\n    Address            Length\n";\n    }" if (parenthesized_expression "((byte)local_3c < 5)" ( (binary_expression "(byte)local_3c < 5" (cast_expression "(byte)local_3c" ( (type_descriptor "byte" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n      in_stack_ffffff98 = "\n    Address    Length\n";\n    }" { (expression_statement "in_stack_ffffff98 = "\n    Address    Length\n";" (assignment_expression "in_stack_ffffff98 = "\n    Address    Length\n"" identifier = (string_literal ""\n    Address    Length\n"" " escape_sequence string_content escape_sequence ")) ;) }) (else_clause "else {\n      in_stack_ffffff98 = "\n    Address            Length\n";\n    }" else (compound_statement "{\n      in_stack_ffffff98 = "\n    Address            Length\n";\n    }" { (expression_statement "in_stack_ffffff98 = "\n    Address            Length\n";" (assignment_expression "in_stack_ffffff98 = "\n    Address            Length\n"" identifier = (string_literal ""\n    Address            Length\n"" " escape_sequence string_content escape_sequence ")) ;) }))) (expression_statement "pcVar6 = (char *)dcgettext(0,in_stack_ffffff98,5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,in_stack_ffffff98,5)" identifier = (cast_expression "(char *)dcgettext(0,in_stack_ffffff98,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,in_stack_ffffff98,5)" identifier (argument_list "(0,in_stack_ffffff98,5)" ( number_literal , identifier , number_literal ))))) ;) (expression_statement "printf(pcVar6);" (call_expression "printf(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier ))) ;) (expression_statement "puVar3 = PTR_stdout_000b3fd8;" (assignment_expression "puVar3 = PTR_stdout_000b3fd8" identifier = identifier) ;) (expression_statement "iVar5 = (int)pFVar4 * 2;" (assignment_expression "iVar5 = (int)pFVar4 * 2" identifier = (binary_expression "(int)pFVar4 * 2" (cast_expression "(int)pFVar4" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "iVar13 = ((int)puVar17 - (int)puVar1) % iVar5;" (assignment_expression "iVar13 = ((int)puVar17 - (int)puVar1) % iVar5" identifier = (binary_expression "((int)puVar17 - (int)puVar1) % iVar5" (parenthesized_expression "((int)puVar17 - (int)puVar1)" ( (binary_expression "(int)puVar17 - (int)puVar1" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar1" ( (type_descriptor "int" primitive_type) ) identifier)) )) % identifier)) ;) (if_statement "if (iVar13 != 0) {\n      puVar17 = puVar17 + (iVar5 - iVar13);\n    }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\n      puVar17 = puVar17 + (iVar5 - iVar13);\n    }" { (expression_statement "puVar17 = puVar17 + (iVar5 - iVar13);" (assignment_expression "puVar17 = puVar17 + (iVar5 - iVar13)" identifier = (binary_expression "puVar17 + (iVar5 - iVar13)" identifier + (parenthesized_expression "(iVar5 - iVar13)" ( (binary_expression "iVar5 - iVar13" identifier - identifier) )))) ;) })) (expression_statement "puVar1 = puVar1 + local_20 + (uint)local_4c;" (assignment_expression "puVar1 = puVar1 + local_20 + (uint)local_4c" identifier = (binary_expression "puVar1 + local_20 + (uint)local_4c" (binary_expression "puVar1 + local_20" identifier + identifier) + (cast_expression "(uint)local_4c" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (if_statement "if (puVar17 + iVar5 <= puVar1) {\n      puVar17 = puVar17 + (int)pFVar4;\n      do {\n        puVar15 = puVar17 + -(int)pFVar4;\n        pFVar7 = pFVar4;\n        pFVar8 = pFVar4;\n        if ((puVar17 < puVar16) ||\n           ((puVar15 < puVar16 &&\n            (pFVar7 = (FILE *)(puVar16 + -(int)puVar15),\n            ((FILE *)(puVar16 + -(int)puVar15))[-1]._unused2 + 0x27 < (char *)0x8)))) {\n          eVar18 = (*byte_get)(puVar15,(int)pFVar7);\n          local_3c = (uint)eVar18;\n          uVar14 = local_3c;\n          if ((puVar15 + iVar5 < puVar16) ||\n             ((puVar17 < puVar16 &&\n              (pFVar8 = (FILE *)(puVar16 + -(int)puVar17),\n              ((FILE *)(puVar16 + -(int)puVar17))[-1]._unused2 + 0x27 < (char *)0x8))))\n          goto LAB_00065b58;\nLAB_00065c2a:\n          local_44 = 0;\n        }\n        else {\n          local_3c = 0;\n          uVar14 = local_3c;\n          local_3c = 0;\n          pFVar7 = (FILE *)in_stack_ffffff98;\n          if (puVar16 <= puVar15 + iVar5) goto LAB_00065c2a;\nLAB_00065b58:\n          local_3c = uVar14;\n          eVar18 = (*byte_get)(puVar17,(int)pFVar8);\n          local_44 = (uint)eVar18;\n          pFVar7 = pFVar8;\n        }\n        puVar19 = &DAT_0007c3b4;\n        printf("    ");\n        print_dwarf_vma(CONCAT44(pFVar7,puVar19),local_3c);\n        print_dwarf_vma(CONCAT44(pFVar7,puVar19),local_44);\n        in_stack_ffffff98 = *(char **)puVar3;\n        putc(10,(FILE *)in_stack_ffffff98);\n        puVar17 = puVar17 + iVar5;\n      } while (puVar17 + (int)(pFVar4->_shortbuf + -0x47) <= puVar1);\n    }" if (parenthesized_expression "(puVar17 + iVar5 <= puVar1)" ( (binary_expression "puVar17 + iVar5 <= puVar1" (binary_expression "puVar17 + iVar5" identifier + identifier) <= identifier) )) (compound_statement "{\n      puVar17 = puVar17 + (int)pFVar4;\n      do {\n        puVar15 = puVar17 + -(int)pFVar4;\n        pFVar7 = pFVar4;\n        pFVar8 = pFVar4;\n        if ((puVar17 < puVar16) ||\n           ((puVar15 < puVar16 &&\n            (pFVar7 = (FILE *)(puVar16 + -(int)puVar15),\n            ((FILE *)(puVar16 + -(int)puVar15))[-1]._unused2 + 0x27 < (char *)0x8)))) {\n          eVar18 = (*byte_get)(puVar15,(int)pFVar7);\n          local_3c = (uint)eVar18;\n          uVar14 = local_3c;\n          if ((puVar15 + iVar5 < puVar16) ||\n             ((puVar17 < puVar16 &&\n              (pFVar8 = (FILE *)(puVar16 + -(int)puVar17),\n              ((FILE *)(puVar16 + -(int)puVar17))[-1]._unused2 + 0x27 < (char *)0x8))))\n          goto LAB_00065b58;\nLAB_00065c2a:\n          local_44 = 0;\n        }\n        else {\n          local_3c = 0;\n          uVar14 = local_3c;\n          local_3c = 0;\n          pFVar7 = (FILE *)in_stack_ffffff98;\n          if (puVar16 <= puVar15 + iVar5) goto LAB_00065c2a;\nLAB_00065b58:\n          local_3c = uVar14;\n          eVar18 = (*byte_get)(puVar17,(int)pFVar8);\n          local_44 = (uint)eVar18;\n          pFVar7 = pFVar8;\n        }\n        puVar19 = &DAT_0007c3b4;\n        printf("    ");\n        print_dwarf_vma(CONCAT44(pFVar7,puVar19),local_3c);\n        print_dwarf_vma(CONCAT44(pFVar7,puVar19),local_44);\n        in_stack_ffffff98 = *(char **)puVar3;\n        putc(10,(FILE *)in_stack_ffffff98);\n        puVar17 = puVar17 + iVar5;\n      } while (puVar17 + (int)(pFVar4->_shortbuf + -0x47) <= puVar1);\n    }" { (expression_statement "puVar17 = puVar17 + (int)pFVar4;" (assignment_expression "puVar17 = puVar17 + (int)pFVar4" identifier = (binary_expression "puVar17 + (int)pFVar4" identifier + (cast_expression "(int)pFVar4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (do_statement "do {\n        puVar15 = puVar17 + -(int)pFVar4;\n        pFVar7 = pFVar4;\n        pFVar8 = pFVar4;\n        if ((puVar17 < puVar16) ||\n           ((puVar15 < puVar16 &&\n            (pFVar7 = (FILE *)(puVar16 + -(int)puVar15),\n            ((FILE *)(puVar16 + -(int)puVar15))[-1]._unused2 + 0x27 < (char *)0x8)))) {\n          eVar18 = (*byte_get)(puVar15,(int)pFVar7);\n          local_3c = (uint)eVar18;\n          uVar14 = local_3c;\n          if ((puVar15 + iVar5 < puVar16) ||\n             ((puVar17 < puVar16 &&\n              (pFVar8 = (FILE *)(puVar16 + -(int)puVar17),\n              ((FILE *)(puVar16 + -(int)puVar17))[-1]._unused2 + 0x27 < (char *)0x8))))\n          goto LAB_00065b58;\nLAB_00065c2a:\n          local_44 = 0;\n        }\n        else {\n          local_3c = 0;\n          uVar14 = local_3c;\n          local_3c = 0;\n          pFVar7 = (FILE *)in_stack_ffffff98;\n          if (puVar16 <= puVar15 + iVar5) goto LAB_00065c2a;\nLAB_00065b58:\n          local_3c = uVar14;\n          eVar18 = (*byte_get)(puVar17,(int)pFVar8);\n          local_44 = (uint)eVar18;\n          pFVar7 = pFVar8;\n        }\n        puVar19 = &DAT_0007c3b4;\n        printf("    ");\n        print_dwarf_vma(CONCAT44(pFVar7,puVar19),local_3c);\n        print_dwarf_vma(CONCAT44(pFVar7,puVar19),local_44);\n        in_stack_ffffff98 = *(char **)puVar3;\n        putc(10,(FILE *)in_stack_ffffff98);\n        puVar17 = puVar17 + iVar5;\n      } while (puVar17 + (int)(pFVar4->_shortbuf + -0x47) <= puVar1);" do (compound_statement "{\n        puVar15 = puVar17 + -(int)pFVar4;\n        pFVar7 = pFVar4;\n        pFVar8 = pFVar4;\n        if ((puVar17 < puVar16) ||\n           ((puVar15 < puVar16 &&\n            (pFVar7 = (FILE *)(puVar16 + -(int)puVar15),\n            ((FILE *)(puVar16 + -(int)puVar15))[-1]._unused2 + 0x27 < (char *)0x8)))) {\n          eVar18 = (*byte_get)(puVar15,(int)pFVar7);\n          local_3c = (uint)eVar18;\n          uVar14 = local_3c;\n          if ((puVar15 + iVar5 < puVar16) ||\n             ((puVar17 < puVar16 &&\n              (pFVar8 = (FILE *)(puVar16 + -(int)puVar17),\n              ((FILE *)(puVar16 + -(int)puVar17))[-1]._unused2 + 0x27 < (char *)0x8))))\n          goto LAB_00065b58;\nLAB_00065c2a:\n          local_44 = 0;\n        }\n        else {\n          local_3c = 0;\n          uVar14 = local_3c;\n          local_3c = 0;\n          pFVar7 = (FILE *)in_stack_ffffff98;\n          if (puVar16 <= puVar15 + iVar5) goto LAB_00065c2a;\nLAB_00065b58:\n          local_3c = uVar14;\n          eVar18 = (*byte_get)(puVar17,(int)pFVar8);\n          local_44 = (uint)eVar18;\n          pFVar7 = pFVar8;\n        }\n        puVar19 = &DAT_0007c3b4;\n        printf("    ");\n        print_dwarf_vma(CONCAT44(pFVar7,puVar19),local_3c);\n        print_dwarf_vma(CONCAT44(pFVar7,puVar19),local_44);\n        in_stack_ffffff98 = *(char **)puVar3;\n        putc(10,(FILE *)in_stack_ffffff98);\n        puVar17 = puVar17 + iVar5;\n      }" { (expression_statement "puVar15 = puVar17 + -(int)pFVar4;" (assignment_expression "puVar15 = puVar17 + -(int)pFVar4" identifier = (binary_expression "puVar17 + -(int)pFVar4" identifier + (unary_expression "-(int)pFVar4" - (cast_expression "(int)pFVar4" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "pFVar7 = pFVar4;" (assignment_expression "pFVar7 = pFVar4" identifier = identifier) ;) (expression_statement "pFVar8 = pFVar4;" (assignment_expression "pFVar8 = pFVar4" identifier = identifier) ;) (if_statement "if ((puVar17 < puVar16) ||\n           ((puVar15 < puVar16 &&\n            (pFVar7 = (FILE *)(puVar16 + -(int)puVar15),\n            ((FILE *)(puVar16 + -(int)puVar15))[-1]._unused2 + 0x27 < (char *)0x8)))) {\n          eVar18 = (*byte_get)(puVar15,(int)pFVar7);\n          local_3c = (uint)eVar18;\n          uVar14 = local_3c;\n          if ((puVar15 + iVar5 < puVar16) ||\n             ((puVar17 < puVar16 &&\n              (pFVar8 = (FILE *)(puVar16 + -(int)puVar17),\n              ((FILE *)(puVar16 + -(int)puVar17))[-1]._unused2 + 0x27 < (char *)0x8))))\n          goto LAB_00065b58;\nLAB_00065c2a:\n          local_44 = 0;\n        }\n        else {\n          local_3c = 0;\n          uVar14 = local_3c;\n          local_3c = 0;\n          pFVar7 = (FILE *)in_stack_ffffff98;\n          if (puVar16 <= puVar15 + iVar5) goto LAB_00065c2a;\nLAB_00065b58:\n          local_3c = uVar14;\n          eVar18 = (*byte_get)(puVar17,(int)pFVar8);\n          local_44 = (uint)eVar18;\n          pFVar7 = pFVar8;\n        }" if (parenthesized_expression "((puVar17 < puVar16) ||\n           ((puVar15 < puVar16 &&\n            (pFVar7 = (FILE *)(puVar16 + -(int)puVar15),\n            ((FILE *)(puVar16 + -(int)puVar15))[-1]._unused2 + 0x27 < (char *)0x8))))" ( (binary_expression "(puVar17 < puVar16) ||\n           ((puVar15 < puVar16 &&\n            (pFVar7 = (FILE *)(puVar16 + -(int)puVar15),\n            ((FILE *)(puVar16 + -(int)puVar15))[-1]._unused2 + 0x27 < (char *)0x8)))" (parenthesized_expression "(puVar17 < puVar16)" ( (binary_expression "puVar17 < puVar16" identifier < identifier) )) || (parenthesized_expression "((puVar15 < puVar16 &&\n            (pFVar7 = (FILE *)(puVar16 + -(int)puVar15),\n            ((FILE *)(puVar16 + -(int)puVar15))[-1]._unused2 + 0x27 < (char *)0x8)))" ( (parenthesized_expression "(puVar15 < puVar16 &&\n            (pFVar7 = (FILE *)(puVar16 + -(int)puVar15),\n            ((FILE *)(puVar16 + -(int)puVar15))[-1]._unused2 + 0x27 < (char *)0x8))" ( (binary_expression "puVar15 < puVar16 &&\n            (pFVar7 = (FILE *)(puVar16 + -(int)puVar15),\n            ((FILE *)(puVar16 + -(int)puVar15))[-1]._unused2 + 0x27 < (char *)0x8)" (binary_expression "puVar15 < puVar16" identifier < identifier) && (parenthesized_expression "(pFVar7 = (FILE *)(puVar16 + -(int)puVar15),\n            ((FILE *)(puVar16 + -(int)puVar15))[-1]._unused2 + 0x27 < (char *)0x8)" ( (comma_expression "pFVar7 = (FILE *)(puVar16 + -(int)puVar15),\n            ((FILE *)(puVar16 + -(int)puVar15))[-1]._unused2 + 0x27 < (char *)0x8" (assignment_expression "pFVar7 = (FILE *)(puVar16 + -(int)puVar15)" identifier = (cast_expression "(FILE *)(puVar16 + -(int)puVar15)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -(int)puVar15)" ( (binary_expression "puVar16 + -(int)puVar15" identifier + (unary_expression "-(int)puVar15" - (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier))) )))) , (binary_expression "((FILE *)(puVar16 + -(int)puVar15))[-1]._unused2 + 0x27 < (char *)0x8" (binary_expression "((FILE *)(puVar16 + -(int)puVar15))[-1]._unused2 + 0x27" (field_expression "((FILE *)(puVar16 + -(int)puVar15))[-1]._unused2" (subscript_expression "((FILE *)(puVar16 + -(int)puVar15))[-1]" (parenthesized_expression "((FILE *)(puVar16 + -(int)puVar15))" ( (cast_expression "(FILE *)(puVar16 + -(int)puVar15)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -(int)puVar15)" ( (binary_expression "puVar16 + -(int)puVar15" identifier + (unary_expression "-(int)puVar15" - (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) [ number_literal ]) . field_identifier) + number_literal) < (cast_expression "(char *)0x8" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) ))) )) (compound_statement "{\n          eVar18 = (*byte_get)(puVar15,(int)pFVar7);\n          local_3c = (uint)eVar18;\n          uVar14 = local_3c;\n          if ((puVar15 + iVar5 < puVar16) ||\n             ((puVar17 < puVar16 &&\n              (pFVar8 = (FILE *)(puVar16 + -(int)puVar17),\n              ((FILE *)(puVar16 + -(int)puVar17))[-1]._unused2 + 0x27 < (char *)0x8))))\n          goto LAB_00065b58;\nLAB_00065c2a:\n          local_44 = 0;\n        }" { (expression_statement "eVar18 = (*byte_get)(puVar15,(int)pFVar7);" (assignment_expression "eVar18 = (*byte_get)(puVar15,(int)pFVar7)" identifier = (call_expression "(*byte_get)(puVar15,(int)pFVar7)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar15,(int)pFVar7)" ( identifier , (cast_expression "(int)pFVar7" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (expression_statement "local_3c = (uint)eVar18;" (assignment_expression "local_3c = (uint)eVar18" identifier = (cast_expression "(uint)eVar18" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar14 = local_3c;" (assignment_expression "uVar14 = local_3c" identifier = identifier) ;) (if_statement "if ((puVar15 + iVar5 < puVar16) ||\n             ((puVar17 < puVar16 &&\n              (pFVar8 = (FILE *)(puVar16 + -(int)puVar17),\n              ((FILE *)(puVar16 + -(int)puVar17))[-1]._unused2 + 0x27 < (char *)0x8))))\n          goto LAB_00065b58;" if (parenthesized_expression "((puVar15 + iVar5 < puVar16) ||\n             ((puVar17 < puVar16 &&\n              (pFVar8 = (FILE *)(puVar16 + -(int)puVar17),\n              ((FILE *)(puVar16 + -(int)puVar17))[-1]._unused2 + 0x27 < (char *)0x8))))" ( (binary_expression "(puVar15 + iVar5 < puVar16) ||\n             ((puVar17 < puVar16 &&\n              (pFVar8 = (FILE *)(puVar16 + -(int)puVar17),\n              ((FILE *)(puVar16 + -(int)puVar17))[-1]._unused2 + 0x27 < (char *)0x8)))" (parenthesized_expression "(puVar15 + iVar5 < puVar16)" ( (binary_expression "puVar15 + iVar5 < puVar16" (binary_expression "puVar15 + iVar5" identifier + identifier) < identifier) )) || (parenthesized_expression "((puVar17 < puVar16 &&\n              (pFVar8 = (FILE *)(puVar16 + -(int)puVar17),\n              ((FILE *)(puVar16 + -(int)puVar17))[-1]._unused2 + 0x27 < (char *)0x8)))" ( (parenthesized_expression "(puVar17 < puVar16 &&\n              (pFVar8 = (FILE *)(puVar16 + -(int)puVar17),\n              ((FILE *)(puVar16 + -(int)puVar17))[-1]._unused2 + 0x27 < (char *)0x8))" ( (binary_expression "puVar17 < puVar16 &&\n              (pFVar8 = (FILE *)(puVar16 + -(int)puVar17),\n              ((FILE *)(puVar16 + -(int)puVar17))[-1]._unused2 + 0x27 < (char *)0x8)" (binary_expression "puVar17 < puVar16" identifier < identifier) && (parenthesized_expression "(pFVar8 = (FILE *)(puVar16 + -(int)puVar17),\n              ((FILE *)(puVar16 + -(int)puVar17))[-1]._unused2 + 0x27 < (char *)0x8)" ( (comma_expression "pFVar8 = (FILE *)(puVar16 + -(int)puVar17),\n              ((FILE *)(puVar16 + -(int)puVar17))[-1]._unused2 + 0x27 < (char *)0x8" (assignment_expression "pFVar8 = (FILE *)(puVar16 + -(int)puVar17)" identifier = (cast_expression "(FILE *)(puVar16 + -(int)puVar17)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -(int)puVar17)" ( (binary_expression "puVar16 + -(int)puVar17" identifier + (unary_expression "-(int)puVar17" - (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier))) )))) , (binary_expression "((FILE *)(puVar16 + -(int)puVar17))[-1]._unused2 + 0x27 < (char *)0x8" (binary_expression "((FILE *)(puVar16 + -(int)puVar17))[-1]._unused2 + 0x27" (field_expression "((FILE *)(puVar16 + -(int)puVar17))[-1]._unused2" (subscript_expression "((FILE *)(puVar16 + -(int)puVar17))[-1]" (parenthesized_expression "((FILE *)(puVar16 + -(int)puVar17))" ( (cast_expression "(FILE *)(puVar16 + -(int)puVar17)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -(int)puVar17)" ( (binary_expression "puVar16 + -(int)puVar17" identifier + (unary_expression "-(int)puVar17" - (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) [ number_literal ]) . field_identifier) + number_literal) < (cast_expression "(char *)0x8" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) ))) )) (goto_statement "goto LAB_00065b58;" goto statement_identifier ;)) (labeled_statement "LAB_00065c2a:\n          local_44 = 0;" statement_identifier : (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;)) }) (else_clause "else {\n          local_3c = 0;\n          uVar14 = local_3c;\n          local_3c = 0;\n          pFVar7 = (FILE *)in_stack_ffffff98;\n          if (puVar16 <= puVar15 + iVar5) goto LAB_00065c2a;\nLAB_00065b58:\n          local_3c = uVar14;\n          eVar18 = (*byte_get)(puVar17,(int)pFVar8);\n          local_44 = (uint)eVar18;\n          pFVar7 = pFVar8;\n        }" else (compound_statement "{\n          local_3c = 0;\n          uVar14 = local_3c;\n          local_3c = 0;\n          pFVar7 = (FILE *)in_stack_ffffff98;\n          if (puVar16 <= puVar15 + iVar5) goto LAB_00065c2a;\nLAB_00065b58:\n          local_3c = uVar14;\n          eVar18 = (*byte_get)(puVar17,(int)pFVar8);\n          local_44 = (uint)eVar18;\n          pFVar7 = pFVar8;\n        }" { (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" identifier = number_literal) ;) (expression_statement "uVar14 = local_3c;" (assignment_expression "uVar14 = local_3c" identifier = identifier) ;) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" identifier = number_literal) ;) (expression_statement "pFVar7 = (FILE *)in_stack_ffffff98;" (assignment_expression "pFVar7 = (FILE *)in_stack_ffffff98" identifier = (cast_expression "(FILE *)in_stack_ffffff98" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (puVar16 <= puVar15 + iVar5) goto LAB_00065c2a;" if (parenthesized_expression "(puVar16 <= puVar15 + iVar5)" ( (binary_expression "puVar16 <= puVar15 + iVar5" identifier <= (binary_expression "puVar15 + iVar5" identifier + identifier)) )) (goto_statement "goto LAB_00065c2a;" goto statement_identifier ;)) (labeled_statement "LAB_00065b58:\n          local_3c = uVar14;" statement_identifier : (expression_statement "local_3c = uVar14;" (assignment_expression "local_3c = uVar14" identifier = identifier) ;)) (expression_statement "eVar18 = (*byte_get)(puVar17,(int)pFVar8);" (assignment_expression "eVar18 = (*byte_get)(puVar17,(int)pFVar8)" identifier = (call_expression "(*byte_get)(puVar17,(int)pFVar8)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar17,(int)pFVar8)" ( identifier , (cast_expression "(int)pFVar8" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (expression_statement "local_44 = (uint)eVar18;" (assignment_expression "local_44 = (uint)eVar18" identifier = (cast_expression "(uint)eVar18" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "pFVar7 = pFVar8;" (assignment_expression "pFVar7 = pFVar8" identifier = identifier) ;) }))) (expression_statement "puVar19 = &DAT_0007c3b4;" (assignment_expression "puVar19 = &DAT_0007c3b4" identifier = (pointer_expression "&DAT_0007c3b4" & identifier)) ;) (expression_statement "printf("    ");" (call_expression "printf("    ")" identifier (argument_list "("    ")" ( (string_literal ""    "" " string_content ") ))) ;) (expression_statement "print_dwarf_vma(CONCAT44(pFVar7,puVar19),local_3c);" (call_expression "print_dwarf_vma(CONCAT44(pFVar7,puVar19),local_3c)" identifier (argument_list "(CONCAT44(pFVar7,puVar19),local_3c)" ( (call_expression "CONCAT44(pFVar7,puVar19)" identifier (argument_list "(pFVar7,puVar19)" ( identifier , identifier ))) , identifier ))) ;) (expression_statement "print_dwarf_vma(CONCAT44(pFVar7,puVar19),local_44);" (call_expression "print_dwarf_vma(CONCAT44(pFVar7,puVar19),local_44)" identifier (argument_list "(CONCAT44(pFVar7,puVar19),local_44)" ( (call_expression "CONCAT44(pFVar7,puVar19)" identifier (argument_list "(pFVar7,puVar19)" ( identifier , identifier ))) , identifier ))) ;) (expression_statement "in_stack_ffffff98 = *(char **)puVar3;" (assignment_expression "in_stack_ffffff98 = *(char **)puVar3" identifier = (pointer_expression "*(char **)puVar3" * (cast_expression "(char **)puVar3" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "putc(10,(FILE *)in_stack_ffffff98);" (call_expression "putc(10,(FILE *)in_stack_ffffff98)" identifier (argument_list "(10,(FILE *)in_stack_ffffff98)" ( number_literal , (cast_expression "(FILE *)in_stack_ffffff98" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "puVar17 = puVar17 + iVar5;" (assignment_expression "puVar17 = puVar17 + iVar5" identifier = (binary_expression "puVar17 + iVar5" identifier + identifier)) ;) }) while (parenthesized_expression "(puVar17 + (int)(pFVar4->_shortbuf + -0x47) <= puVar1)" ( (binary_expression "puVar17 + (int)(pFVar4->_shortbuf + -0x47) <= puVar1" (binary_expression "puVar17 + (int)(pFVar4->_shortbuf + -0x47)" identifier + (cast_expression "(int)(pFVar4->_shortbuf + -0x47)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pFVar4->_shortbuf + -0x47)" ( (binary_expression "pFVar4->_shortbuf + -0x47" (field_expression "pFVar4->_shortbuf" identifier -> field_identifier) + number_literal) )))) <= identifier) )) ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "undefined4 FUN_00065840(int param_1)\n\n{\n  undefined4 *puVar1;\n  ulonglong uVar2;\n  byte bVar3;\n  char cVar4;\n  int iVar5;\n  char *pcVar6;\n  uint uVar7;\n  uint uVar8;\n  int *piVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  undefined4 uVar12;\n  int iVar13;\n  int iVar14;\n  uint uVar15;\n  int unaff_EBP;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  longlong lVar19;\n  int local_4c;\n  int local_44;\n  uint local_3c;\n  uint local_34;\n  int local_30;\n  short local_2c;\n  ushort local_28;\n  int local_20;\n  \n  FUN_0004ab89();\n  local_34 = *(uint *)(param_1 + 0x10);\n  uVar16 = *(int *)(param_1 + 0x1c) + local_34;\n  FUN_0004eb80();\n  FUN_00062460();\n  if (local_34 < uVar16) {\n    do {\n      uVar17 = local_34 + 4;\n      if (uVar17 < uVar16) {\n        iVar5 = 4;\nLAB_00065c45:\n        lVar19 = (**(code **)(unaff_EBP + 0x54592))(local_34,iVar5);\n        if (lVar19 == 0xffffffff) {\n          uVar18 = local_34 + 0xc;\n          if (uVar18 < uVar16) {\n            iVar5 = 8;\n          }\n          else if ((uVar16 <= uVar17) || (iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U)) {\n            local_20 = 0xc;\n            local_44 = 8;\n            goto LAB_000658c1;\n          }\n          lVar19 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n          local_20 = 0xc;\n          local_44 = 8;\n          uVar17 = uVar18;\n        }\n        else {\n          local_20 = 4;\n          local_44 = 4;\n        }\n        local_4c = (int)lVar19;\n        local_3c = uVar17 - *(int *)(param_1 + 0x10);\n        uVar2 = lVar19 + (ulonglong)local_3c;\n        if ((uint)((uint)uVar2 < local_3c) <= (uint)(uVar2 >> 0x20)) goto LAB_000658e2;\nLAB_00065ec0:\n        uVar12 = FUN_0004cb50(0);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar11 = dcgettext(0,unaff_EBP + 0x2a752,5);\n        warn(uVar11,uVar10,local_3c - local_20,uVar12);\n        break;\n      }\n      iVar5 = uVar16 - local_34;\n      if (iVar5 - 1U < 8) goto LAB_00065c45;\n      local_20 = 4;\n      local_44 = 4;\n      uVar18 = uVar17;\nLAB_000658c1:\n      local_4c = 0;\n      local_3c = uVar18 - *(int *)(param_1 + 0x10);\n      uVar2 = (ulonglong)local_3c;\n      uVar17 = uVar18;\nLAB_000658e2:\n      iVar5 = local_44;\n      uVar18 = (uint)(uVar2 >> 0x20);\n      if (*(uint *)(param_1 + 0x20) < uVar18 ||\n          *(uint *)(param_1 + 0x20) - uVar18 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar2))\n      goto LAB_00065ec0;\n      uVar18 = uVar17 + 2;\n      if (uVar18 < uVar16) {\n        local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,2);\n        if (local_44 + uVar18 < uVar16) {\nLAB_00065e10:\n          local_28 = local_2c - 2;\nLAB_00065944:\n          local_30 = (**(code **)(unaff_EBP + 0x54592))(uVar18,local_44);\n          goto LAB_0006595d;\n        }\n        local_28 = local_2c - 2;\n        local_44 = uVar16 - uVar18;\n        if (local_44 - 1U < 8) goto LAB_00065944;\nLAB_00065cf4:\n        iVar13 = *(int *)(unaff_EBP + 0x54526);\n        local_30 = 0;\n        if (iVar13 - 1U < 0xfffffffe) goto LAB_00065d0e;\nLAB_0006596f:\n        uVar17 = uVar18 + iVar5 + 1;\n        if (uVar16 <= uVar17) goto LAB_0006597e;\nLAB_00065d80:\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18 + iVar5,1);\n        uVar18 = uVar18 + iVar5 + 2;\n        if (uVar18 < uVar16) goto LAB_00065e60;\n        iVar5 = uVar16 - uVar17;\n        if (iVar5 - 1U < 8) goto LAB_000659ad;\nLAB_00065dbc:\n        bVar3 = 0;\n        if (local_28 < 2) goto LAB_000659c7;\nLAB_00065dcd:\n        if (local_2c != 0) {\n          iVar5 = unaff_EBP + 0x2c8ee;\nLAB_00065de4:\n          uVar10 = dcgettext(0,iVar5,5);\n          warn(uVar10);\n        }\n        break;\n      }\n      if (uVar16 <= uVar17) {\nLAB_00065919:\n        local_28 = 0xfffe;\n        local_2c = 0;\n        if (uVar16 <= uVar18 + local_44) goto LAB_00065cf4;\n        goto LAB_00065944;\n      }\n      uVar7 = (uVar16 - uVar17) - 1;\n      if (7 < uVar7) goto LAB_00065919;\n      local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,uVar16 - uVar17,uVar7,uVar7);\n      if (local_44 + uVar18 < uVar16) goto LAB_00065e10;\n      local_28 = local_2c - 2;\n      local_30 = 0;\nLAB_0006595d:\n      iVar13 = *(int *)(unaff_EBP + 0x54526);\n      if (0xfffffffd < iVar13 - 1U) goto LAB_0006596f;\nLAB_00065d0e:\n      iVar14 = 0;\n      piVar9 = (int *)(*(int *)(unaff_EBP + 0x5451e) + 0xc);\n      do {\n        if (*piVar9 == local_30 && piVar9[1] == 0) goto LAB_0006596f;\n        iVar14 = iVar14 + 1;\n        piVar9 = piVar9 + 0x14;\n      } while (iVar13 != iVar14);\n      iVar13 = *(int *)(param_1 + 8);\n      uVar10 = dcgettext(0,unaff_EBP + 0x2c8a2,5);\n      warn(uVar10,local_30,iVar13);\n      uVar17 = uVar18 + iVar5 + 1;\n      if (uVar17 < uVar16) goto LAB_00065d80;\nLAB_0006597e:\n      uVar18 = uVar18 + iVar5;\n      if ((uVar18 < uVar16) && ((uVar16 - uVar18) - 1 < 8)) {\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar16 - uVar18,iVar13,iVar13);\n        uVar18 = uVar18 + 2;\n        bVar3 = 0;\n        if (uVar18 < uVar16) {\nLAB_00065e60:\n          iVar5 = 1;\n          goto LAB_000659ad;\n        }\n      }\n      else {\n        uVar18 = uVar18 + 2;\n        if (uVar16 <= uVar18) {\n          cVar4 = '\0';\n          goto LAB_00065dbc;\n        }\n        cVar4 = '\0';\n        iVar5 = 1;\nLAB_000659ad:\n        bVar3 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n      }\n      if (1 < local_28) goto LAB_00065dcd;\nLAB_000659c7:\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c926,5);\n      printf(pcVar6,local_4c);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c94a,5);\n      printf(pcVar6,local_2c);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c96a,5);\n      printf(pcVar6,local_30);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c98e,5);\n      printf(pcVar6,cVar4);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c9ae,5);\n      printf(pcVar6,(uint)bVar3);\n      bVar3 = bVar3 + cVar4;\n      if (7 < (byte)(bVar3 - 1)) {\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar12 = dcgettext(0,unaff_EBP + 0x2c9ce,5);\n        error(uVar12,uVar10);\n        break;\n      }\n      uVar17 = (uint)bVar3;\n      if ((uVar17 - 1 & uVar17) != 0) {\n        iVar5 = unaff_EBP + 0x2c9f6;\n        goto LAB_00065de4;\n      }\n      if (bVar3 < 5) {\n        iVar5 = unaff_EBP + 0x2e6d2;\n      }\n      else {\n        iVar5 = unaff_EBP + 0x2ca2a;\n      }\n      pcVar6 = (char *)dcgettext(0,iVar5,5);\n      printf(pcVar6);\n      iVar5 = uVar17 * 2;\n      iVar13 = (int)(uVar18 - local_34) % iVar5;\n      if (iVar13 != 0) {\n        uVar18 = (iVar5 - iVar13) + uVar18;\n      }\n      local_34 = local_34 + local_20 + local_4c;\n      if (uVar18 + iVar5 <= local_34) {\n        uVar18 = uVar18 + uVar17;\n        puVar1 = *(undefined4 **)(unaff_EBP + 0x4e792);\n        do {\n          uVar15 = uVar18 - uVar17;\n          uVar8 = uVar17;\n          uVar7 = uVar17;\n          if ((uVar18 < uVar16) ||\n             ((uVar15 < uVar16 && (uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8)))) {\n            (**(code **)(unaff_EBP + 0x54592))(uVar15,uVar8);\n            if ((uVar15 + iVar5 < uVar16) ||\n               ((uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8))))\n            goto LAB_00065b58;\n          }\n          else if (uVar15 + iVar5 < uVar16) {\nLAB_00065b58:\n            (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7);\n          }\n          printf(&UNK_00016b6e + unaff_EBP);\n          FUN_0004ce60();\n          FUN_0004ce60();\n          putc(10,(FILE *)*puVar1);\n          uVar18 = uVar18 + iVar5;\n        } while (uVar17 + uVar18 <= local_34);\n      }\n    } while (local_34 < uVar16);\n  }\n  putchar(10);\n  return 1;\n}\n\n" (function_definition "undefined4 FUN_00065840(int param_1)\n\n{\n  undefined4 *puVar1;\n  ulonglong uVar2;\n  byte bVar3;\n  char cVar4;\n  int iVar5;\n  char *pcVar6;\n  uint uVar7;\n  uint uVar8;\n  int *piVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  undefined4 uVar12;\n  int iVar13;\n  int iVar14;\n  uint uVar15;\n  int unaff_EBP;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  longlong lVar19;\n  int local_4c;\n  int local_44;\n  uint local_3c;\n  uint local_34;\n  int local_30;\n  short local_2c;\n  ushort local_28;\n  int local_20;\n  \n  FUN_0004ab89();\n  local_34 = *(uint *)(param_1 + 0x10);\n  uVar16 = *(int *)(param_1 + 0x1c) + local_34;\n  FUN_0004eb80();\n  FUN_00062460();\n  if (local_34 < uVar16) {\n    do {\n      uVar17 = local_34 + 4;\n      if (uVar17 < uVar16) {\n        iVar5 = 4;\nLAB_00065c45:\n        lVar19 = (**(code **)(unaff_EBP + 0x54592))(local_34,iVar5);\n        if (lVar19 == 0xffffffff) {\n          uVar18 = local_34 + 0xc;\n          if (uVar18 < uVar16) {\n            iVar5 = 8;\n          }\n          else if ((uVar16 <= uVar17) || (iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U)) {\n            local_20 = 0xc;\n            local_44 = 8;\n            goto LAB_000658c1;\n          }\n          lVar19 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n          local_20 = 0xc;\n          local_44 = 8;\n          uVar17 = uVar18;\n        }\n        else {\n          local_20 = 4;\n          local_44 = 4;\n        }\n        local_4c = (int)lVar19;\n        local_3c = uVar17 - *(int *)(param_1 + 0x10);\n        uVar2 = lVar19 + (ulonglong)local_3c;\n        if ((uint)((uint)uVar2 < local_3c) <= (uint)(uVar2 >> 0x20)) goto LAB_000658e2;\nLAB_00065ec0:\n        uVar12 = FUN_0004cb50(0);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar11 = dcgettext(0,unaff_EBP + 0x2a752,5);\n        warn(uVar11,uVar10,local_3c - local_20,uVar12);\n        break;\n      }\n      iVar5 = uVar16 - local_34;\n      if (iVar5 - 1U < 8) goto LAB_00065c45;\n      local_20 = 4;\n      local_44 = 4;\n      uVar18 = uVar17;\nLAB_000658c1:\n      local_4c = 0;\n      local_3c = uVar18 - *(int *)(param_1 + 0x10);\n      uVar2 = (ulonglong)local_3c;\n      uVar17 = uVar18;\nLAB_000658e2:\n      iVar5 = local_44;\n      uVar18 = (uint)(uVar2 >> 0x20);\n      if (*(uint *)(param_1 + 0x20) < uVar18 ||\n          *(uint *)(param_1 + 0x20) - uVar18 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar2))\n      goto LAB_00065ec0;\n      uVar18 = uVar17 + 2;\n      if (uVar18 < uVar16) {\n        local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,2);\n        if (local_44 + uVar18 < uVar16) {\nLAB_00065e10:\n          local_28 = local_2c - 2;\nLAB_00065944:\n          local_30 = (**(code **)(unaff_EBP + 0x54592))(uVar18,local_44);\n          goto LAB_0006595d;\n        }\n        local_28 = local_2c - 2;\n        local_44 = uVar16 - uVar18;\n        if (local_44 - 1U < 8) goto LAB_00065944;\nLAB_00065cf4:\n        iVar13 = *(int *)(unaff_EBP + 0x54526);\n        local_30 = 0;\n        if (iVar13 - 1U < 0xfffffffe) goto LAB_00065d0e;\nLAB_0006596f:\n        uVar17 = uVar18 + iVar5 + 1;\n        if (uVar16 <= uVar17) goto LAB_0006597e;\nLAB_00065d80:\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18 + iVar5,1);\n        uVar18 = uVar18 + iVar5 + 2;\n        if (uVar18 < uVar16) goto LAB_00065e60;\n        iVar5 = uVar16 - uVar17;\n        if (iVar5 - 1U < 8) goto LAB_000659ad;\nLAB_00065dbc:\n        bVar3 = 0;\n        if (local_28 < 2) goto LAB_000659c7;\nLAB_00065dcd:\n        if (local_2c != 0) {\n          iVar5 = unaff_EBP + 0x2c8ee;\nLAB_00065de4:\n          uVar10 = dcgettext(0,iVar5,5);\n          warn(uVar10);\n        }\n        break;\n      }\n      if (uVar16 <= uVar17) {\nLAB_00065919:\n        local_28 = 0xfffe;\n        local_2c = 0;\n        if (uVar16 <= uVar18 + local_44) goto LAB_00065cf4;\n        goto LAB_00065944;\n      }\n      uVar7 = (uVar16 - uVar17) - 1;\n      if (7 < uVar7) goto LAB_00065919;\n      local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,uVar16 - uVar17,uVar7,uVar7);\n      if (local_44 + uVar18 < uVar16) goto LAB_00065e10;\n      local_28 = local_2c - 2;\n      local_30 = 0;\nLAB_0006595d:\n      iVar13 = *(int *)(unaff_EBP + 0x54526);\n      if (0xfffffffd < iVar13 - 1U) goto LAB_0006596f;\nLAB_00065d0e:\n      iVar14 = 0;\n      piVar9 = (int *)(*(int *)(unaff_EBP + 0x5451e) + 0xc);\n      do {\n        if (*piVar9 == local_30 && piVar9[1] == 0) goto LAB_0006596f;\n        iVar14 = iVar14 + 1;\n        piVar9 = piVar9 + 0x14;\n      } while (iVar13 != iVar14);\n      iVar13 = *(int *)(param_1 + 8);\n      uVar10 = dcgettext(0,unaff_EBP + 0x2c8a2,5);\n      warn(uVar10,local_30,iVar13);\n      uVar17 = uVar18 + iVar5 + 1;\n      if (uVar17 < uVar16) goto LAB_00065d80;\nLAB_0006597e:\n      uVar18 = uVar18 + iVar5;\n      if ((uVar18 < uVar16) && ((uVar16 - uVar18) - 1 < 8)) {\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar16 - uVar18,iVar13,iVar13);\n        uVar18 = uVar18 + 2;\n        bVar3 = 0;\n        if (uVar18 < uVar16) {\nLAB_00065e60:\n          iVar5 = 1;\n          goto LAB_000659ad;\n        }\n      }\n      else {\n        uVar18 = uVar18 + 2;\n        if (uVar16 <= uVar18) {\n          cVar4 = '\0';\n          goto LAB_00065dbc;\n        }\n        cVar4 = '\0';\n        iVar5 = 1;\nLAB_000659ad:\n        bVar3 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n      }\n      if (1 < local_28) goto LAB_00065dcd;\nLAB_000659c7:\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c926,5);\n      printf(pcVar6,local_4c);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c94a,5);\n      printf(pcVar6,local_2c);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c96a,5);\n      printf(pcVar6,local_30);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c98e,5);\n      printf(pcVar6,cVar4);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c9ae,5);\n      printf(pcVar6,(uint)bVar3);\n      bVar3 = bVar3 + cVar4;\n      if (7 < (byte)(bVar3 - 1)) {\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar12 = dcgettext(0,unaff_EBP + 0x2c9ce,5);\n        error(uVar12,uVar10);\n        break;\n      }\n      uVar17 = (uint)bVar3;\n      if ((uVar17 - 1 & uVar17) != 0) {\n        iVar5 = unaff_EBP + 0x2c9f6;\n        goto LAB_00065de4;\n      }\n      if (bVar3 < 5) {\n        iVar5 = unaff_EBP + 0x2e6d2;\n      }\n      else {\n        iVar5 = unaff_EBP + 0x2ca2a;\n      }\n      pcVar6 = (char *)dcgettext(0,iVar5,5);\n      printf(pcVar6);\n      iVar5 = uVar17 * 2;\n      iVar13 = (int)(uVar18 - local_34) % iVar5;\n      if (iVar13 != 0) {\n        uVar18 = (iVar5 - iVar13) + uVar18;\n      }\n      local_34 = local_34 + local_20 + local_4c;\n      if (uVar18 + iVar5 <= local_34) {\n        uVar18 = uVar18 + uVar17;\n        puVar1 = *(undefined4 **)(unaff_EBP + 0x4e792);\n        do {\n          uVar15 = uVar18 - uVar17;\n          uVar8 = uVar17;\n          uVar7 = uVar17;\n          if ((uVar18 < uVar16) ||\n             ((uVar15 < uVar16 && (uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8)))) {\n            (**(code **)(unaff_EBP + 0x54592))(uVar15,uVar8);\n            if ((uVar15 + iVar5 < uVar16) ||\n               ((uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8))))\n            goto LAB_00065b58;\n          }\n          else if (uVar15 + iVar5 < uVar16) {\nLAB_00065b58:\n            (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7);\n          }\n          printf(&UNK_00016b6e + unaff_EBP);\n          FUN_0004ce60();\n          FUN_0004ce60();\n          putc(10,(FILE *)*puVar1);\n          uVar18 = uVar18 + iVar5;\n        } while (uVar17 + uVar18 <= local_34);\n      }\n    } while (local_34 < uVar16);\n  }\n  putchar(10);\n  return 1;\n}" type_identifier (function_declarator "FUN_00065840(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  undefined4 *puVar1;\n  ulonglong uVar2;\n  byte bVar3;\n  char cVar4;\n  int iVar5;\n  char *pcVar6;\n  uint uVar7;\n  uint uVar8;\n  int *piVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  undefined4 uVar12;\n  int iVar13;\n  int iVar14;\n  uint uVar15;\n  int unaff_EBP;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  longlong lVar19;\n  int local_4c;\n  int local_44;\n  uint local_3c;\n  uint local_34;\n  int local_30;\n  short local_2c;\n  ushort local_28;\n  int local_20;\n  \n  FUN_0004ab89();\n  local_34 = *(uint *)(param_1 + 0x10);\n  uVar16 = *(int *)(param_1 + 0x1c) + local_34;\n  FUN_0004eb80();\n  FUN_00062460();\n  if (local_34 < uVar16) {\n    do {\n      uVar17 = local_34 + 4;\n      if (uVar17 < uVar16) {\n        iVar5 = 4;\nLAB_00065c45:\n        lVar19 = (**(code **)(unaff_EBP + 0x54592))(local_34,iVar5);\n        if (lVar19 == 0xffffffff) {\n          uVar18 = local_34 + 0xc;\n          if (uVar18 < uVar16) {\n            iVar5 = 8;\n          }\n          else if ((uVar16 <= uVar17) || (iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U)) {\n            local_20 = 0xc;\n            local_44 = 8;\n            goto LAB_000658c1;\n          }\n          lVar19 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n          local_20 = 0xc;\n          local_44 = 8;\n          uVar17 = uVar18;\n        }\n        else {\n          local_20 = 4;\n          local_44 = 4;\n        }\n        local_4c = (int)lVar19;\n        local_3c = uVar17 - *(int *)(param_1 + 0x10);\n        uVar2 = lVar19 + (ulonglong)local_3c;\n        if ((uint)((uint)uVar2 < local_3c) <= (uint)(uVar2 >> 0x20)) goto LAB_000658e2;\nLAB_00065ec0:\n        uVar12 = FUN_0004cb50(0);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar11 = dcgettext(0,unaff_EBP + 0x2a752,5);\n        warn(uVar11,uVar10,local_3c - local_20,uVar12);\n        break;\n      }\n      iVar5 = uVar16 - local_34;\n      if (iVar5 - 1U < 8) goto LAB_00065c45;\n      local_20 = 4;\n      local_44 = 4;\n      uVar18 = uVar17;\nLAB_000658c1:\n      local_4c = 0;\n      local_3c = uVar18 - *(int *)(param_1 + 0x10);\n      uVar2 = (ulonglong)local_3c;\n      uVar17 = uVar18;\nLAB_000658e2:\n      iVar5 = local_44;\n      uVar18 = (uint)(uVar2 >> 0x20);\n      if (*(uint *)(param_1 + 0x20) < uVar18 ||\n          *(uint *)(param_1 + 0x20) - uVar18 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar2))\n      goto LAB_00065ec0;\n      uVar18 = uVar17 + 2;\n      if (uVar18 < uVar16) {\n        local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,2);\n        if (local_44 + uVar18 < uVar16) {\nLAB_00065e10:\n          local_28 = local_2c - 2;\nLAB_00065944:\n          local_30 = (**(code **)(unaff_EBP + 0x54592))(uVar18,local_44);\n          goto LAB_0006595d;\n        }\n        local_28 = local_2c - 2;\n        local_44 = uVar16 - uVar18;\n        if (local_44 - 1U < 8) goto LAB_00065944;\nLAB_00065cf4:\n        iVar13 = *(int *)(unaff_EBP + 0x54526);\n        local_30 = 0;\n        if (iVar13 - 1U < 0xfffffffe) goto LAB_00065d0e;\nLAB_0006596f:\n        uVar17 = uVar18 + iVar5 + 1;\n        if (uVar16 <= uVar17) goto LAB_0006597e;\nLAB_00065d80:\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18 + iVar5,1);\n        uVar18 = uVar18 + iVar5 + 2;\n        if (uVar18 < uVar16) goto LAB_00065e60;\n        iVar5 = uVar16 - uVar17;\n        if (iVar5 - 1U < 8) goto LAB_000659ad;\nLAB_00065dbc:\n        bVar3 = 0;\n        if (local_28 < 2) goto LAB_000659c7;\nLAB_00065dcd:\n        if (local_2c != 0) {\n          iVar5 = unaff_EBP + 0x2c8ee;\nLAB_00065de4:\n          uVar10 = dcgettext(0,iVar5,5);\n          warn(uVar10);\n        }\n        break;\n      }\n      if (uVar16 <= uVar17) {\nLAB_00065919:\n        local_28 = 0xfffe;\n        local_2c = 0;\n        if (uVar16 <= uVar18 + local_44) goto LAB_00065cf4;\n        goto LAB_00065944;\n      }\n      uVar7 = (uVar16 - uVar17) - 1;\n      if (7 < uVar7) goto LAB_00065919;\n      local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,uVar16 - uVar17,uVar7,uVar7);\n      if (local_44 + uVar18 < uVar16) goto LAB_00065e10;\n      local_28 = local_2c - 2;\n      local_30 = 0;\nLAB_0006595d:\n      iVar13 = *(int *)(unaff_EBP + 0x54526);\n      if (0xfffffffd < iVar13 - 1U) goto LAB_0006596f;\nLAB_00065d0e:\n      iVar14 = 0;\n      piVar9 = (int *)(*(int *)(unaff_EBP + 0x5451e) + 0xc);\n      do {\n        if (*piVar9 == local_30 && piVar9[1] == 0) goto LAB_0006596f;\n        iVar14 = iVar14 + 1;\n        piVar9 = piVar9 + 0x14;\n      } while (iVar13 != iVar14);\n      iVar13 = *(int *)(param_1 + 8);\n      uVar10 = dcgettext(0,unaff_EBP + 0x2c8a2,5);\n      warn(uVar10,local_30,iVar13);\n      uVar17 = uVar18 + iVar5 + 1;\n      if (uVar17 < uVar16) goto LAB_00065d80;\nLAB_0006597e:\n      uVar18 = uVar18 + iVar5;\n      if ((uVar18 < uVar16) && ((uVar16 - uVar18) - 1 < 8)) {\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar16 - uVar18,iVar13,iVar13);\n        uVar18 = uVar18 + 2;\n        bVar3 = 0;\n        if (uVar18 < uVar16) {\nLAB_00065e60:\n          iVar5 = 1;\n          goto LAB_000659ad;\n        }\n      }\n      else {\n        uVar18 = uVar18 + 2;\n        if (uVar16 <= uVar18) {\n          cVar4 = '\0';\n          goto LAB_00065dbc;\n        }\n        cVar4 = '\0';\n        iVar5 = 1;\nLAB_000659ad:\n        bVar3 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n      }\n      if (1 < local_28) goto LAB_00065dcd;\nLAB_000659c7:\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c926,5);\n      printf(pcVar6,local_4c);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c94a,5);\n      printf(pcVar6,local_2c);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c96a,5);\n      printf(pcVar6,local_30);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c98e,5);\n      printf(pcVar6,cVar4);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c9ae,5);\n      printf(pcVar6,(uint)bVar3);\n      bVar3 = bVar3 + cVar4;\n      if (7 < (byte)(bVar3 - 1)) {\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar12 = dcgettext(0,unaff_EBP + 0x2c9ce,5);\n        error(uVar12,uVar10);\n        break;\n      }\n      uVar17 = (uint)bVar3;\n      if ((uVar17 - 1 & uVar17) != 0) {\n        iVar5 = unaff_EBP + 0x2c9f6;\n        goto LAB_00065de4;\n      }\n      if (bVar3 < 5) {\n        iVar5 = unaff_EBP + 0x2e6d2;\n      }\n      else {\n        iVar5 = unaff_EBP + 0x2ca2a;\n      }\n      pcVar6 = (char *)dcgettext(0,iVar5,5);\n      printf(pcVar6);\n      iVar5 = uVar17 * 2;\n      iVar13 = (int)(uVar18 - local_34) % iVar5;\n      if (iVar13 != 0) {\n        uVar18 = (iVar5 - iVar13) + uVar18;\n      }\n      local_34 = local_34 + local_20 + local_4c;\n      if (uVar18 + iVar5 <= local_34) {\n        uVar18 = uVar18 + uVar17;\n        puVar1 = *(undefined4 **)(unaff_EBP + 0x4e792);\n        do {\n          uVar15 = uVar18 - uVar17;\n          uVar8 = uVar17;\n          uVar7 = uVar17;\n          if ((uVar18 < uVar16) ||\n             ((uVar15 < uVar16 && (uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8)))) {\n            (**(code **)(unaff_EBP + 0x54592))(uVar15,uVar8);\n            if ((uVar15 + iVar5 < uVar16) ||\n               ((uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8))))\n            goto LAB_00065b58;\n          }\n          else if (uVar15 + iVar5 < uVar16) {\nLAB_00065b58:\n            (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7);\n          }\n          printf(&UNK_00016b6e + unaff_EBP);\n          FUN_0004ce60();\n          FUN_0004ce60();\n          putc(10,(FILE *)*puVar1);\n          uVar18 = uVar18 + iVar5;\n        } while (uVar17 + uVar18 <= local_34);\n      }\n    } while (local_34 < uVar16);\n  }\n  putchar(10);\n  return 1;\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "ulonglong uVar2;" type_identifier identifier ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "int unaff_EBP;" primitive_type identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "longlong lVar19;" type_identifier identifier ;) (declaration "int local_4c;" primitive_type identifier ;) (declaration "int local_44;" primitive_type identifier ;) (declaration "uint local_3c;" type_identifier identifier ;) (declaration "uint local_34;" type_identifier identifier ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "short local_2c;" (sized_type_specifier "short" short) identifier ;) (declaration "ushort local_28;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "FUN_0004ab89();" (call_expression "FUN_0004ab89()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_34 = *(uint *)(param_1 + 0x10);" (assignment_expression "local_34 = *(uint *)(param_1 + 0x10)" identifier = (pointer_expression "*(uint *)(param_1 + 0x10)" * (cast_expression "(uint *)(param_1 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar16 = *(int *)(param_1 + 0x1c) + local_34;" (assignment_expression "uVar16 = *(int *)(param_1 + 0x1c) + local_34" identifier = (binary_expression "*(int *)(param_1 + 0x1c) + local_34" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) + identifier)) ;) (expression_statement "FUN_0004eb80();" (call_expression "FUN_0004eb80()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00062460();" (call_expression "FUN_00062460()" identifier (argument_list "()" ( ))) ;) (if_statement "if (local_34 < uVar16) {\n    do {\n      uVar17 = local_34 + 4;\n      if (uVar17 < uVar16) {\n        iVar5 = 4;\nLAB_00065c45:\n        lVar19 = (**(code **)(unaff_EBP + 0x54592))(local_34,iVar5);\n        if (lVar19 == 0xffffffff) {\n          uVar18 = local_34 + 0xc;\n          if (uVar18 < uVar16) {\n            iVar5 = 8;\n          }\n          else if ((uVar16 <= uVar17) || (iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U)) {\n            local_20 = 0xc;\n            local_44 = 8;\n            goto LAB_000658c1;\n          }\n          lVar19 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n          local_20 = 0xc;\n          local_44 = 8;\n          uVar17 = uVar18;\n        }\n        else {\n          local_20 = 4;\n          local_44 = 4;\n        }\n        local_4c = (int)lVar19;\n        local_3c = uVar17 - *(int *)(param_1 + 0x10);\n        uVar2 = lVar19 + (ulonglong)local_3c;\n        if ((uint)((uint)uVar2 < local_3c) <= (uint)(uVar2 >> 0x20)) goto LAB_000658e2;\nLAB_00065ec0:\n        uVar12 = FUN_0004cb50(0);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar11 = dcgettext(0,unaff_EBP + 0x2a752,5);\n        warn(uVar11,uVar10,local_3c - local_20,uVar12);\n        break;\n      }\n      iVar5 = uVar16 - local_34;\n      if (iVar5 - 1U < 8) goto LAB_00065c45;\n      local_20 = 4;\n      local_44 = 4;\n      uVar18 = uVar17;\nLAB_000658c1:\n      local_4c = 0;\n      local_3c = uVar18 - *(int *)(param_1 + 0x10);\n      uVar2 = (ulonglong)local_3c;\n      uVar17 = uVar18;\nLAB_000658e2:\n      iVar5 = local_44;\n      uVar18 = (uint)(uVar2 >> 0x20);\n      if (*(uint *)(param_1 + 0x20) < uVar18 ||\n          *(uint *)(param_1 + 0x20) - uVar18 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar2))\n      goto LAB_00065ec0;\n      uVar18 = uVar17 + 2;\n      if (uVar18 < uVar16) {\n        local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,2);\n        if (local_44 + uVar18 < uVar16) {\nLAB_00065e10:\n          local_28 = local_2c - 2;\nLAB_00065944:\n          local_30 = (**(code **)(unaff_EBP + 0x54592))(uVar18,local_44);\n          goto LAB_0006595d;\n        }\n        local_28 = local_2c - 2;\n        local_44 = uVar16 - uVar18;\n        if (local_44 - 1U < 8) goto LAB_00065944;\nLAB_00065cf4:\n        iVar13 = *(int *)(unaff_EBP + 0x54526);\n        local_30 = 0;\n        if (iVar13 - 1U < 0xfffffffe) goto LAB_00065d0e;\nLAB_0006596f:\n        uVar17 = uVar18 + iVar5 + 1;\n        if (uVar16 <= uVar17) goto LAB_0006597e;\nLAB_00065d80:\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18 + iVar5,1);\n        uVar18 = uVar18 + iVar5 + 2;\n        if (uVar18 < uVar16) goto LAB_00065e60;\n        iVar5 = uVar16 - uVar17;\n        if (iVar5 - 1U < 8) goto LAB_000659ad;\nLAB_00065dbc:\n        bVar3 = 0;\n        if (local_28 < 2) goto LAB_000659c7;\nLAB_00065dcd:\n        if (local_2c != 0) {\n          iVar5 = unaff_EBP + 0x2c8ee;\nLAB_00065de4:\n          uVar10 = dcgettext(0,iVar5,5);\n          warn(uVar10);\n        }\n        break;\n      }\n      if (uVar16 <= uVar17) {\nLAB_00065919:\n        local_28 = 0xfffe;\n        local_2c = 0;\n        if (uVar16 <= uVar18 + local_44) goto LAB_00065cf4;\n        goto LAB_00065944;\n      }\n      uVar7 = (uVar16 - uVar17) - 1;\n      if (7 < uVar7) goto LAB_00065919;\n      local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,uVar16 - uVar17,uVar7,uVar7);\n      if (local_44 + uVar18 < uVar16) goto LAB_00065e10;\n      local_28 = local_2c - 2;\n      local_30 = 0;\nLAB_0006595d:\n      iVar13 = *(int *)(unaff_EBP + 0x54526);\n      if (0xfffffffd < iVar13 - 1U) goto LAB_0006596f;\nLAB_00065d0e:\n      iVar14 = 0;\n      piVar9 = (int *)(*(int *)(unaff_EBP + 0x5451e) + 0xc);\n      do {\n        if (*piVar9 == local_30 && piVar9[1] == 0) goto LAB_0006596f;\n        iVar14 = iVar14 + 1;\n        piVar9 = piVar9 + 0x14;\n      } while (iVar13 != iVar14);\n      iVar13 = *(int *)(param_1 + 8);\n      uVar10 = dcgettext(0,unaff_EBP + 0x2c8a2,5);\n      warn(uVar10,local_30,iVar13);\n      uVar17 = uVar18 + iVar5 + 1;\n      if (uVar17 < uVar16) goto LAB_00065d80;\nLAB_0006597e:\n      uVar18 = uVar18 + iVar5;\n      if ((uVar18 < uVar16) && ((uVar16 - uVar18) - 1 < 8)) {\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar16 - uVar18,iVar13,iVar13);\n        uVar18 = uVar18 + 2;\n        bVar3 = 0;\n        if (uVar18 < uVar16) {\nLAB_00065e60:\n          iVar5 = 1;\n          goto LAB_000659ad;\n        }\n      }\n      else {\n        uVar18 = uVar18 + 2;\n        if (uVar16 <= uVar18) {\n          cVar4 = '\0';\n          goto LAB_00065dbc;\n        }\n        cVar4 = '\0';\n        iVar5 = 1;\nLAB_000659ad:\n        bVar3 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n      }\n      if (1 < local_28) goto LAB_00065dcd;\nLAB_000659c7:\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c926,5);\n      printf(pcVar6,local_4c);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c94a,5);\n      printf(pcVar6,local_2c);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c96a,5);\n      printf(pcVar6,local_30);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c98e,5);\n      printf(pcVar6,cVar4);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c9ae,5);\n      printf(pcVar6,(uint)bVar3);\n      bVar3 = bVar3 + cVar4;\n      if (7 < (byte)(bVar3 - 1)) {\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar12 = dcgettext(0,unaff_EBP + 0x2c9ce,5);\n        error(uVar12,uVar10);\n        break;\n      }\n      uVar17 = (uint)bVar3;\n      if ((uVar17 - 1 & uVar17) != 0) {\n        iVar5 = unaff_EBP + 0x2c9f6;\n        goto LAB_00065de4;\n      }\n      if (bVar3 < 5) {\n        iVar5 = unaff_EBP + 0x2e6d2;\n      }\n      else {\n        iVar5 = unaff_EBP + 0x2ca2a;\n      }\n      pcVar6 = (char *)dcgettext(0,iVar5,5);\n      printf(pcVar6);\n      iVar5 = uVar17 * 2;\n      iVar13 = (int)(uVar18 - local_34) % iVar5;\n      if (iVar13 != 0) {\n        uVar18 = (iVar5 - iVar13) + uVar18;\n      }\n      local_34 = local_34 + local_20 + local_4c;\n      if (uVar18 + iVar5 <= local_34) {\n        uVar18 = uVar18 + uVar17;\n        puVar1 = *(undefined4 **)(unaff_EBP + 0x4e792);\n        do {\n          uVar15 = uVar18 - uVar17;\n          uVar8 = uVar17;\n          uVar7 = uVar17;\n          if ((uVar18 < uVar16) ||\n             ((uVar15 < uVar16 && (uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8)))) {\n            (**(code **)(unaff_EBP + 0x54592))(uVar15,uVar8);\n            if ((uVar15 + iVar5 < uVar16) ||\n               ((uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8))))\n            goto LAB_00065b58;\n          }\n          else if (uVar15 + iVar5 < uVar16) {\nLAB_00065b58:\n            (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7);\n          }\n          printf(&UNK_00016b6e + unaff_EBP);\n          FUN_0004ce60();\n          FUN_0004ce60();\n          putc(10,(FILE *)*puVar1);\n          uVar18 = uVar18 + iVar5;\n        } while (uVar17 + uVar18 <= local_34);\n      }\n    } while (local_34 < uVar16);\n  }" if (parenthesized_expression "(local_34 < uVar16)" ( (binary_expression "local_34 < uVar16" identifier < identifier) )) (compound_statement "{\n    do {\n      uVar17 = local_34 + 4;\n      if (uVar17 < uVar16) {\n        iVar5 = 4;\nLAB_00065c45:\n        lVar19 = (**(code **)(unaff_EBP + 0x54592))(local_34,iVar5);\n        if (lVar19 == 0xffffffff) {\n          uVar18 = local_34 + 0xc;\n          if (uVar18 < uVar16) {\n            iVar5 = 8;\n          }\n          else if ((uVar16 <= uVar17) || (iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U)) {\n            local_20 = 0xc;\n            local_44 = 8;\n            goto LAB_000658c1;\n          }\n          lVar19 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n          local_20 = 0xc;\n          local_44 = 8;\n          uVar17 = uVar18;\n        }\n        else {\n          local_20 = 4;\n          local_44 = 4;\n        }\n        local_4c = (int)lVar19;\n        local_3c = uVar17 - *(int *)(param_1 + 0x10);\n        uVar2 = lVar19 + (ulonglong)local_3c;\n        if ((uint)((uint)uVar2 < local_3c) <= (uint)(uVar2 >> 0x20)) goto LAB_000658e2;\nLAB_00065ec0:\n        uVar12 = FUN_0004cb50(0);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar11 = dcgettext(0,unaff_EBP + 0x2a752,5);\n        warn(uVar11,uVar10,local_3c - local_20,uVar12);\n        break;\n      }\n      iVar5 = uVar16 - local_34;\n      if (iVar5 - 1U < 8) goto LAB_00065c45;\n      local_20 = 4;\n      local_44 = 4;\n      uVar18 = uVar17;\nLAB_000658c1:\n      local_4c = 0;\n      local_3c = uVar18 - *(int *)(param_1 + 0x10);\n      uVar2 = (ulonglong)local_3c;\n      uVar17 = uVar18;\nLAB_000658e2:\n      iVar5 = local_44;\n      uVar18 = (uint)(uVar2 >> 0x20);\n      if (*(uint *)(param_1 + 0x20) < uVar18 ||\n          *(uint *)(param_1 + 0x20) - uVar18 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar2))\n      goto LAB_00065ec0;\n      uVar18 = uVar17 + 2;\n      if (uVar18 < uVar16) {\n        local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,2);\n        if (local_44 + uVar18 < uVar16) {\nLAB_00065e10:\n          local_28 = local_2c - 2;\nLAB_00065944:\n          local_30 = (**(code **)(unaff_EBP + 0x54592))(uVar18,local_44);\n          goto LAB_0006595d;\n        }\n        local_28 = local_2c - 2;\n        local_44 = uVar16 - uVar18;\n        if (local_44 - 1U < 8) goto LAB_00065944;\nLAB_00065cf4:\n        iVar13 = *(int *)(unaff_EBP + 0x54526);\n        local_30 = 0;\n        if (iVar13 - 1U < 0xfffffffe) goto LAB_00065d0e;\nLAB_0006596f:\n        uVar17 = uVar18 + iVar5 + 1;\n        if (uVar16 <= uVar17) goto LAB_0006597e;\nLAB_00065d80:\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18 + iVar5,1);\n        uVar18 = uVar18 + iVar5 + 2;\n        if (uVar18 < uVar16) goto LAB_00065e60;\n        iVar5 = uVar16 - uVar17;\n        if (iVar5 - 1U < 8) goto LAB_000659ad;\nLAB_00065dbc:\n        bVar3 = 0;\n        if (local_28 < 2) goto LAB_000659c7;\nLAB_00065dcd:\n        if (local_2c != 0) {\n          iVar5 = unaff_EBP + 0x2c8ee;\nLAB_00065de4:\n          uVar10 = dcgettext(0,iVar5,5);\n          warn(uVar10);\n        }\n        break;\n      }\n      if (uVar16 <= uVar17) {\nLAB_00065919:\n        local_28 = 0xfffe;\n        local_2c = 0;\n        if (uVar16 <= uVar18 + local_44) goto LAB_00065cf4;\n        goto LAB_00065944;\n      }\n      uVar7 = (uVar16 - uVar17) - 1;\n      if (7 < uVar7) goto LAB_00065919;\n      local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,uVar16 - uVar17,uVar7,uVar7);\n      if (local_44 + uVar18 < uVar16) goto LAB_00065e10;\n      local_28 = local_2c - 2;\n      local_30 = 0;\nLAB_0006595d:\n      iVar13 = *(int *)(unaff_EBP + 0x54526);\n      if (0xfffffffd < iVar13 - 1U) goto LAB_0006596f;\nLAB_00065d0e:\n      iVar14 = 0;\n      piVar9 = (int *)(*(int *)(unaff_EBP + 0x5451e) + 0xc);\n      do {\n        if (*piVar9 == local_30 && piVar9[1] == 0) goto LAB_0006596f;\n        iVar14 = iVar14 + 1;\n        piVar9 = piVar9 + 0x14;\n      } while (iVar13 != iVar14);\n      iVar13 = *(int *)(param_1 + 8);\n      uVar10 = dcgettext(0,unaff_EBP + 0x2c8a2,5);\n      warn(uVar10,local_30,iVar13);\n      uVar17 = uVar18 + iVar5 + 1;\n      if (uVar17 < uVar16) goto LAB_00065d80;\nLAB_0006597e:\n      uVar18 = uVar18 + iVar5;\n      if ((uVar18 < uVar16) && ((uVar16 - uVar18) - 1 < 8)) {\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar16 - uVar18,iVar13,iVar13);\n        uVar18 = uVar18 + 2;\n        bVar3 = 0;\n        if (uVar18 < uVar16) {\nLAB_00065e60:\n          iVar5 = 1;\n          goto LAB_000659ad;\n        }\n      }\n      else {\n        uVar18 = uVar18 + 2;\n        if (uVar16 <= uVar18) {\n          cVar4 = '\0';\n          goto LAB_00065dbc;\n        }\n        cVar4 = '\0';\n        iVar5 = 1;\nLAB_000659ad:\n        bVar3 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n      }\n      if (1 < local_28) goto LAB_00065dcd;\nLAB_000659c7:\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c926,5);\n      printf(pcVar6,local_4c);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c94a,5);\n      printf(pcVar6,local_2c);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c96a,5);\n      printf(pcVar6,local_30);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c98e,5);\n      printf(pcVar6,cVar4);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c9ae,5);\n      printf(pcVar6,(uint)bVar3);\n      bVar3 = bVar3 + cVar4;\n      if (7 < (byte)(bVar3 - 1)) {\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar12 = dcgettext(0,unaff_EBP + 0x2c9ce,5);\n        error(uVar12,uVar10);\n        break;\n      }\n      uVar17 = (uint)bVar3;\n      if ((uVar17 - 1 & uVar17) != 0) {\n        iVar5 = unaff_EBP + 0x2c9f6;\n        goto LAB_00065de4;\n      }\n      if (bVar3 < 5) {\n        iVar5 = unaff_EBP + 0x2e6d2;\n      }\n      else {\n        iVar5 = unaff_EBP + 0x2ca2a;\n      }\n      pcVar6 = (char *)dcgettext(0,iVar5,5);\n      printf(pcVar6);\n      iVar5 = uVar17 * 2;\n      iVar13 = (int)(uVar18 - local_34) % iVar5;\n      if (iVar13 != 0) {\n        uVar18 = (iVar5 - iVar13) + uVar18;\n      }\n      local_34 = local_34 + local_20 + local_4c;\n      if (uVar18 + iVar5 <= local_34) {\n        uVar18 = uVar18 + uVar17;\n        puVar1 = *(undefined4 **)(unaff_EBP + 0x4e792);\n        do {\n          uVar15 = uVar18 - uVar17;\n          uVar8 = uVar17;\n          uVar7 = uVar17;\n          if ((uVar18 < uVar16) ||\n             ((uVar15 < uVar16 && (uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8)))) {\n            (**(code **)(unaff_EBP + 0x54592))(uVar15,uVar8);\n            if ((uVar15 + iVar5 < uVar16) ||\n               ((uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8))))\n            goto LAB_00065b58;\n          }\n          else if (uVar15 + iVar5 < uVar16) {\nLAB_00065b58:\n            (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7);\n          }\n          printf(&UNK_00016b6e + unaff_EBP);\n          FUN_0004ce60();\n          FUN_0004ce60();\n          putc(10,(FILE *)*puVar1);\n          uVar18 = uVar18 + iVar5;\n        } while (uVar17 + uVar18 <= local_34);\n      }\n    } while (local_34 < uVar16);\n  }" { (do_statement "do {\n      uVar17 = local_34 + 4;\n      if (uVar17 < uVar16) {\n        iVar5 = 4;\nLAB_00065c45:\n        lVar19 = (**(code **)(unaff_EBP + 0x54592))(local_34,iVar5);\n        if (lVar19 == 0xffffffff) {\n          uVar18 = local_34 + 0xc;\n          if (uVar18 < uVar16) {\n            iVar5 = 8;\n          }\n          else if ((uVar16 <= uVar17) || (iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U)) {\n            local_20 = 0xc;\n            local_44 = 8;\n            goto LAB_000658c1;\n          }\n          lVar19 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n          local_20 = 0xc;\n          local_44 = 8;\n          uVar17 = uVar18;\n        }\n        else {\n          local_20 = 4;\n          local_44 = 4;\n        }\n        local_4c = (int)lVar19;\n        local_3c = uVar17 - *(int *)(param_1 + 0x10);\n        uVar2 = lVar19 + (ulonglong)local_3c;\n        if ((uint)((uint)uVar2 < local_3c) <= (uint)(uVar2 >> 0x20)) goto LAB_000658e2;\nLAB_00065ec0:\n        uVar12 = FUN_0004cb50(0);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar11 = dcgettext(0,unaff_EBP + 0x2a752,5);\n        warn(uVar11,uVar10,local_3c - local_20,uVar12);\n        break;\n      }\n      iVar5 = uVar16 - local_34;\n      if (iVar5 - 1U < 8) goto LAB_00065c45;\n      local_20 = 4;\n      local_44 = 4;\n      uVar18 = uVar17;\nLAB_000658c1:\n      local_4c = 0;\n      local_3c = uVar18 - *(int *)(param_1 + 0x10);\n      uVar2 = (ulonglong)local_3c;\n      uVar17 = uVar18;\nLAB_000658e2:\n      iVar5 = local_44;\n      uVar18 = (uint)(uVar2 >> 0x20);\n      if (*(uint *)(param_1 + 0x20) < uVar18 ||\n          *(uint *)(param_1 + 0x20) - uVar18 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar2))\n      goto LAB_00065ec0;\n      uVar18 = uVar17 + 2;\n      if (uVar18 < uVar16) {\n        local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,2);\n        if (local_44 + uVar18 < uVar16) {\nLAB_00065e10:\n          local_28 = local_2c - 2;\nLAB_00065944:\n          local_30 = (**(code **)(unaff_EBP + 0x54592))(uVar18,local_44);\n          goto LAB_0006595d;\n        }\n        local_28 = local_2c - 2;\n        local_44 = uVar16 - uVar18;\n        if (local_44 - 1U < 8) goto LAB_00065944;\nLAB_00065cf4:\n        iVar13 = *(int *)(unaff_EBP + 0x54526);\n        local_30 = 0;\n        if (iVar13 - 1U < 0xfffffffe) goto LAB_00065d0e;\nLAB_0006596f:\n        uVar17 = uVar18 + iVar5 + 1;\n        if (uVar16 <= uVar17) goto LAB_0006597e;\nLAB_00065d80:\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18 + iVar5,1);\n        uVar18 = uVar18 + iVar5 + 2;\n        if (uVar18 < uVar16) goto LAB_00065e60;\n        iVar5 = uVar16 - uVar17;\n        if (iVar5 - 1U < 8) goto LAB_000659ad;\nLAB_00065dbc:\n        bVar3 = 0;\n        if (local_28 < 2) goto LAB_000659c7;\nLAB_00065dcd:\n        if (local_2c != 0) {\n          iVar5 = unaff_EBP + 0x2c8ee;\nLAB_00065de4:\n          uVar10 = dcgettext(0,iVar5,5);\n          warn(uVar10);\n        }\n        break;\n      }\n      if (uVar16 <= uVar17) {\nLAB_00065919:\n        local_28 = 0xfffe;\n        local_2c = 0;\n        if (uVar16 <= uVar18 + local_44) goto LAB_00065cf4;\n        goto LAB_00065944;\n      }\n      uVar7 = (uVar16 - uVar17) - 1;\n      if (7 < uVar7) goto LAB_00065919;\n      local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,uVar16 - uVar17,uVar7,uVar7);\n      if (local_44 + uVar18 < uVar16) goto LAB_00065e10;\n      local_28 = local_2c - 2;\n      local_30 = 0;\nLAB_0006595d:\n      iVar13 = *(int *)(unaff_EBP + 0x54526);\n      if (0xfffffffd < iVar13 - 1U) goto LAB_0006596f;\nLAB_00065d0e:\n      iVar14 = 0;\n      piVar9 = (int *)(*(int *)(unaff_EBP + 0x5451e) + 0xc);\n      do {\n        if (*piVar9 == local_30 && piVar9[1] == 0) goto LAB_0006596f;\n        iVar14 = iVar14 + 1;\n        piVar9 = piVar9 + 0x14;\n      } while (iVar13 != iVar14);\n      iVar13 = *(int *)(param_1 + 8);\n      uVar10 = dcgettext(0,unaff_EBP + 0x2c8a2,5);\n      warn(uVar10,local_30,iVar13);\n      uVar17 = uVar18 + iVar5 + 1;\n      if (uVar17 < uVar16) goto LAB_00065d80;\nLAB_0006597e:\n      uVar18 = uVar18 + iVar5;\n      if ((uVar18 < uVar16) && ((uVar16 - uVar18) - 1 < 8)) {\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar16 - uVar18,iVar13,iVar13);\n        uVar18 = uVar18 + 2;\n        bVar3 = 0;\n        if (uVar18 < uVar16) {\nLAB_00065e60:\n          iVar5 = 1;\n          goto LAB_000659ad;\n        }\n      }\n      else {\n        uVar18 = uVar18 + 2;\n        if (uVar16 <= uVar18) {\n          cVar4 = '\0';\n          goto LAB_00065dbc;\n        }\n        cVar4 = '\0';\n        iVar5 = 1;\nLAB_000659ad:\n        bVar3 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n      }\n      if (1 < local_28) goto LAB_00065dcd;\nLAB_000659c7:\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c926,5);\n      printf(pcVar6,local_4c);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c94a,5);\n      printf(pcVar6,local_2c);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c96a,5);\n      printf(pcVar6,local_30);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c98e,5);\n      printf(pcVar6,cVar4);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c9ae,5);\n      printf(pcVar6,(uint)bVar3);\n      bVar3 = bVar3 + cVar4;\n      if (7 < (byte)(bVar3 - 1)) {\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar12 = dcgettext(0,unaff_EBP + 0x2c9ce,5);\n        error(uVar12,uVar10);\n        break;\n      }\n      uVar17 = (uint)bVar3;\n      if ((uVar17 - 1 & uVar17) != 0) {\n        iVar5 = unaff_EBP + 0x2c9f6;\n        goto LAB_00065de4;\n      }\n      if (bVar3 < 5) {\n        iVar5 = unaff_EBP + 0x2e6d2;\n      }\n      else {\n        iVar5 = unaff_EBP + 0x2ca2a;\n      }\n      pcVar6 = (char *)dcgettext(0,iVar5,5);\n      printf(pcVar6);\n      iVar5 = uVar17 * 2;\n      iVar13 = (int)(uVar18 - local_34) % iVar5;\n      if (iVar13 != 0) {\n        uVar18 = (iVar5 - iVar13) + uVar18;\n      }\n      local_34 = local_34 + local_20 + local_4c;\n      if (uVar18 + iVar5 <= local_34) {\n        uVar18 = uVar18 + uVar17;\n        puVar1 = *(undefined4 **)(unaff_EBP + 0x4e792);\n        do {\n          uVar15 = uVar18 - uVar17;\n          uVar8 = uVar17;\n          uVar7 = uVar17;\n          if ((uVar18 < uVar16) ||\n             ((uVar15 < uVar16 && (uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8)))) {\n            (**(code **)(unaff_EBP + 0x54592))(uVar15,uVar8);\n            if ((uVar15 + iVar5 < uVar16) ||\n               ((uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8))))\n            goto LAB_00065b58;\n          }\n          else if (uVar15 + iVar5 < uVar16) {\nLAB_00065b58:\n            (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7);\n          }\n          printf(&UNK_00016b6e + unaff_EBP);\n          FUN_0004ce60();\n          FUN_0004ce60();\n          putc(10,(FILE *)*puVar1);\n          uVar18 = uVar18 + iVar5;\n        } while (uVar17 + uVar18 <= local_34);\n      }\n    } while (local_34 < uVar16);" do (compound_statement "{\n      uVar17 = local_34 + 4;\n      if (uVar17 < uVar16) {\n        iVar5 = 4;\nLAB_00065c45:\n        lVar19 = (**(code **)(unaff_EBP + 0x54592))(local_34,iVar5);\n        if (lVar19 == 0xffffffff) {\n          uVar18 = local_34 + 0xc;\n          if (uVar18 < uVar16) {\n            iVar5 = 8;\n          }\n          else if ((uVar16 <= uVar17) || (iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U)) {\n            local_20 = 0xc;\n            local_44 = 8;\n            goto LAB_000658c1;\n          }\n          lVar19 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n          local_20 = 0xc;\n          local_44 = 8;\n          uVar17 = uVar18;\n        }\n        else {\n          local_20 = 4;\n          local_44 = 4;\n        }\n        local_4c = (int)lVar19;\n        local_3c = uVar17 - *(int *)(param_1 + 0x10);\n        uVar2 = lVar19 + (ulonglong)local_3c;\n        if ((uint)((uint)uVar2 < local_3c) <= (uint)(uVar2 >> 0x20)) goto LAB_000658e2;\nLAB_00065ec0:\n        uVar12 = FUN_0004cb50(0);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar11 = dcgettext(0,unaff_EBP + 0x2a752,5);\n        warn(uVar11,uVar10,local_3c - local_20,uVar12);\n        break;\n      }\n      iVar5 = uVar16 - local_34;\n      if (iVar5 - 1U < 8) goto LAB_00065c45;\n      local_20 = 4;\n      local_44 = 4;\n      uVar18 = uVar17;\nLAB_000658c1:\n      local_4c = 0;\n      local_3c = uVar18 - *(int *)(param_1 + 0x10);\n      uVar2 = (ulonglong)local_3c;\n      uVar17 = uVar18;\nLAB_000658e2:\n      iVar5 = local_44;\n      uVar18 = (uint)(uVar2 >> 0x20);\n      if (*(uint *)(param_1 + 0x20) < uVar18 ||\n          *(uint *)(param_1 + 0x20) - uVar18 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar2))\n      goto LAB_00065ec0;\n      uVar18 = uVar17 + 2;\n      if (uVar18 < uVar16) {\n        local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,2);\n        if (local_44 + uVar18 < uVar16) {\nLAB_00065e10:\n          local_28 = local_2c - 2;\nLAB_00065944:\n          local_30 = (**(code **)(unaff_EBP + 0x54592))(uVar18,local_44);\n          goto LAB_0006595d;\n        }\n        local_28 = local_2c - 2;\n        local_44 = uVar16 - uVar18;\n        if (local_44 - 1U < 8) goto LAB_00065944;\nLAB_00065cf4:\n        iVar13 = *(int *)(unaff_EBP + 0x54526);\n        local_30 = 0;\n        if (iVar13 - 1U < 0xfffffffe) goto LAB_00065d0e;\nLAB_0006596f:\n        uVar17 = uVar18 + iVar5 + 1;\n        if (uVar16 <= uVar17) goto LAB_0006597e;\nLAB_00065d80:\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18 + iVar5,1);\n        uVar18 = uVar18 + iVar5 + 2;\n        if (uVar18 < uVar16) goto LAB_00065e60;\n        iVar5 = uVar16 - uVar17;\n        if (iVar5 - 1U < 8) goto LAB_000659ad;\nLAB_00065dbc:\n        bVar3 = 0;\n        if (local_28 < 2) goto LAB_000659c7;\nLAB_00065dcd:\n        if (local_2c != 0) {\n          iVar5 = unaff_EBP + 0x2c8ee;\nLAB_00065de4:\n          uVar10 = dcgettext(0,iVar5,5);\n          warn(uVar10);\n        }\n        break;\n      }\n      if (uVar16 <= uVar17) {\nLAB_00065919:\n        local_28 = 0xfffe;\n        local_2c = 0;\n        if (uVar16 <= uVar18 + local_44) goto LAB_00065cf4;\n        goto LAB_00065944;\n      }\n      uVar7 = (uVar16 - uVar17) - 1;\n      if (7 < uVar7) goto LAB_00065919;\n      local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,uVar16 - uVar17,uVar7,uVar7);\n      if (local_44 + uVar18 < uVar16) goto LAB_00065e10;\n      local_28 = local_2c - 2;\n      local_30 = 0;\nLAB_0006595d:\n      iVar13 = *(int *)(unaff_EBP + 0x54526);\n      if (0xfffffffd < iVar13 - 1U) goto LAB_0006596f;\nLAB_00065d0e:\n      iVar14 = 0;\n      piVar9 = (int *)(*(int *)(unaff_EBP + 0x5451e) + 0xc);\n      do {\n        if (*piVar9 == local_30 && piVar9[1] == 0) goto LAB_0006596f;\n        iVar14 = iVar14 + 1;\n        piVar9 = piVar9 + 0x14;\n      } while (iVar13 != iVar14);\n      iVar13 = *(int *)(param_1 + 8);\n      uVar10 = dcgettext(0,unaff_EBP + 0x2c8a2,5);\n      warn(uVar10,local_30,iVar13);\n      uVar17 = uVar18 + iVar5 + 1;\n      if (uVar17 < uVar16) goto LAB_00065d80;\nLAB_0006597e:\n      uVar18 = uVar18 + iVar5;\n      if ((uVar18 < uVar16) && ((uVar16 - uVar18) - 1 < 8)) {\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar16 - uVar18,iVar13,iVar13);\n        uVar18 = uVar18 + 2;\n        bVar3 = 0;\n        if (uVar18 < uVar16) {\nLAB_00065e60:\n          iVar5 = 1;\n          goto LAB_000659ad;\n        }\n      }\n      else {\n        uVar18 = uVar18 + 2;\n        if (uVar16 <= uVar18) {\n          cVar4 = '\0';\n          goto LAB_00065dbc;\n        }\n        cVar4 = '\0';\n        iVar5 = 1;\nLAB_000659ad:\n        bVar3 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n      }\n      if (1 < local_28) goto LAB_00065dcd;\nLAB_000659c7:\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c926,5);\n      printf(pcVar6,local_4c);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c94a,5);\n      printf(pcVar6,local_2c);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c96a,5);\n      printf(pcVar6,local_30);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c98e,5);\n      printf(pcVar6,cVar4);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c9ae,5);\n      printf(pcVar6,(uint)bVar3);\n      bVar3 = bVar3 + cVar4;\n      if (7 < (byte)(bVar3 - 1)) {\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar12 = dcgettext(0,unaff_EBP + 0x2c9ce,5);\n        error(uVar12,uVar10);\n        break;\n      }\n      uVar17 = (uint)bVar3;\n      if ((uVar17 - 1 & uVar17) != 0) {\n        iVar5 = unaff_EBP + 0x2c9f6;\n        goto LAB_00065de4;\n      }\n      if (bVar3 < 5) {\n        iVar5 = unaff_EBP + 0x2e6d2;\n      }\n      else {\n        iVar5 = unaff_EBP + 0x2ca2a;\n      }\n      pcVar6 = (char *)dcgettext(0,iVar5,5);\n      printf(pcVar6);\n      iVar5 = uVar17 * 2;\n      iVar13 = (int)(uVar18 - local_34) % iVar5;\n      if (iVar13 != 0) {\n        uVar18 = (iVar5 - iVar13) + uVar18;\n      }\n      local_34 = local_34 + local_20 + local_4c;\n      if (uVar18 + iVar5 <= local_34) {\n        uVar18 = uVar18 + uVar17;\n        puVar1 = *(undefined4 **)(unaff_EBP + 0x4e792);\n        do {\n          uVar15 = uVar18 - uVar17;\n          uVar8 = uVar17;\n          uVar7 = uVar17;\n          if ((uVar18 < uVar16) ||\n             ((uVar15 < uVar16 && (uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8)))) {\n            (**(code **)(unaff_EBP + 0x54592))(uVar15,uVar8);\n            if ((uVar15 + iVar5 < uVar16) ||\n               ((uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8))))\n            goto LAB_00065b58;\n          }\n          else if (uVar15 + iVar5 < uVar16) {\nLAB_00065b58:\n            (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7);\n          }\n          printf(&UNK_00016b6e + unaff_EBP);\n          FUN_0004ce60();\n          FUN_0004ce60();\n          putc(10,(FILE *)*puVar1);\n          uVar18 = uVar18 + iVar5;\n        } while (uVar17 + uVar18 <= local_34);\n      }\n    }" { (expression_statement "uVar17 = local_34 + 4;" (assignment_expression "uVar17 = local_34 + 4" identifier = (binary_expression "local_34 + 4" identifier + number_literal)) ;) (if_statement "if (uVar17 < uVar16) {\n        iVar5 = 4;\nLAB_00065c45:\n        lVar19 = (**(code **)(unaff_EBP + 0x54592))(local_34,iVar5);\n        if (lVar19 == 0xffffffff) {\n          uVar18 = local_34 + 0xc;\n          if (uVar18 < uVar16) {\n            iVar5 = 8;\n          }\n          else if ((uVar16 <= uVar17) || (iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U)) {\n            local_20 = 0xc;\n            local_44 = 8;\n            goto LAB_000658c1;\n          }\n          lVar19 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n          local_20 = 0xc;\n          local_44 = 8;\n          uVar17 = uVar18;\n        }\n        else {\n          local_20 = 4;\n          local_44 = 4;\n        }\n        local_4c = (int)lVar19;\n        local_3c = uVar17 - *(int *)(param_1 + 0x10);\n        uVar2 = lVar19 + (ulonglong)local_3c;\n        if ((uint)((uint)uVar2 < local_3c) <= (uint)(uVar2 >> 0x20)) goto LAB_000658e2;\nLAB_00065ec0:\n        uVar12 = FUN_0004cb50(0);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar11 = dcgettext(0,unaff_EBP + 0x2a752,5);\n        warn(uVar11,uVar10,local_3c - local_20,uVar12);\n        break;\n      }" if (parenthesized_expression "(uVar17 < uVar16)" ( (binary_expression "uVar17 < uVar16" identifier < identifier) )) (compound_statement "{\n        iVar5 = 4;\nLAB_00065c45:\n        lVar19 = (**(code **)(unaff_EBP + 0x54592))(local_34,iVar5);\n        if (lVar19 == 0xffffffff) {\n          uVar18 = local_34 + 0xc;\n          if (uVar18 < uVar16) {\n            iVar5 = 8;\n          }\n          else if ((uVar16 <= uVar17) || (iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U)) {\n            local_20 = 0xc;\n            local_44 = 8;\n            goto LAB_000658c1;\n          }\n          lVar19 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n          local_20 = 0xc;\n          local_44 = 8;\n          uVar17 = uVar18;\n        }\n        else {\n          local_20 = 4;\n          local_44 = 4;\n        }\n        local_4c = (int)lVar19;\n        local_3c = uVar17 - *(int *)(param_1 + 0x10);\n        uVar2 = lVar19 + (ulonglong)local_3c;\n        if ((uint)((uint)uVar2 < local_3c) <= (uint)(uVar2 >> 0x20)) goto LAB_000658e2;\nLAB_00065ec0:\n        uVar12 = FUN_0004cb50(0);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar11 = dcgettext(0,unaff_EBP + 0x2a752,5);\n        warn(uVar11,uVar10,local_3c - local_20,uVar12);\n        break;\n      }" { (expression_statement "iVar5 = 4;" (assignment_expression "iVar5 = 4" identifier = number_literal) ;) (labeled_statement "LAB_00065c45:\n        lVar19 = (**(code **)(unaff_EBP + 0x54592))(local_34,iVar5);" statement_identifier : (expression_statement "lVar19 = (**(code **)(unaff_EBP + 0x54592))(local_34,iVar5);" (assignment_expression "lVar19 = (**(code **)(unaff_EBP + 0x54592))(local_34,iVar5)" identifier = (call_expression "(**(code **)(unaff_EBP + 0x54592))(local_34,iVar5)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x54592))" ( (pointer_expression "**(code **)(unaff_EBP + 0x54592)" * (pointer_expression "*(code **)(unaff_EBP + 0x54592)" * (cast_expression "(code **)(unaff_EBP + 0x54592)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x54592)" ( (binary_expression "unaff_EBP + 0x54592" identifier + number_literal) ))))) )) (argument_list "(local_34,iVar5)" ( identifier , identifier )))) ;)) (if_statement "if (lVar19 == 0xffffffff) {\n          uVar18 = local_34 + 0xc;\n          if (uVar18 < uVar16) {\n            iVar5 = 8;\n          }\n          else if ((uVar16 <= uVar17) || (iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U)) {\n            local_20 = 0xc;\n            local_44 = 8;\n            goto LAB_000658c1;\n          }\n          lVar19 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n          local_20 = 0xc;\n          local_44 = 8;\n          uVar17 = uVar18;\n        }\n        else {\n          local_20 = 4;\n          local_44 = 4;\n        }" if (parenthesized_expression "(lVar19 == 0xffffffff)" ( (binary_expression "lVar19 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n          uVar18 = local_34 + 0xc;\n          if (uVar18 < uVar16) {\n            iVar5 = 8;\n          }\n          else if ((uVar16 <= uVar17) || (iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U)) {\n            local_20 = 0xc;\n            local_44 = 8;\n            goto LAB_000658c1;\n          }\n          lVar19 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n          local_20 = 0xc;\n          local_44 = 8;\n          uVar17 = uVar18;\n        }" { (expression_statement "uVar18 = local_34 + 0xc;" (assignment_expression "uVar18 = local_34 + 0xc" identifier = (binary_expression "local_34 + 0xc" identifier + number_literal)) ;) (if_statement "if (uVar18 < uVar16) {\n            iVar5 = 8;\n          }\n          else if ((uVar16 <= uVar17) || (iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U)) {\n            local_20 = 0xc;\n            local_44 = 8;\n            goto LAB_000658c1;\n          }" if (parenthesized_expression "(uVar18 < uVar16)" ( (binary_expression "uVar18 < uVar16" identifier < identifier) )) (compound_statement "{\n            iVar5 = 8;\n          }" { (expression_statement "iVar5 = 8;" (assignment_expression "iVar5 = 8" identifier = number_literal) ;) }) (else_clause "else if ((uVar16 <= uVar17) || (iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U)) {\n            local_20 = 0xc;\n            local_44 = 8;\n            goto LAB_000658c1;\n          }" else (if_statement "if ((uVar16 <= uVar17) || (iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U)) {\n            local_20 = 0xc;\n            local_44 = 8;\n            goto LAB_000658c1;\n          }" if (parenthesized_expression "((uVar16 <= uVar17) || (iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U))" ( (binary_expression "(uVar16 <= uVar17) || (iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U)" (parenthesized_expression "(uVar16 <= uVar17)" ( (binary_expression "uVar16 <= uVar17" identifier <= identifier) )) || (parenthesized_expression "(iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U)" ( (comma_expression "iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U" (assignment_expression "iVar5 = uVar16 - uVar17" identifier = (binary_expression "uVar16 - uVar17" identifier - identifier)) , (binary_expression "7 < iVar5 - 1U" number_literal < (binary_expression "iVar5 - 1U" identifier - number_literal))) ))) )) (compound_statement "{\n            local_20 = 0xc;\n            local_44 = 8;\n            goto LAB_000658c1;\n          }" { (expression_statement "local_20 = 0xc;" (assignment_expression "local_20 = 0xc" identifier = number_literal) ;) (expression_statement "local_44 = 8;" (assignment_expression "local_44 = 8" identifier = number_literal) ;) (goto_statement "goto LAB_000658c1;" goto statement_identifier ;) })))) (expression_statement "lVar19 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);" (assignment_expression "lVar19 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5)" identifier = (call_expression "(**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x54592))" ( (pointer_expression "**(code **)(unaff_EBP + 0x54592)" * (pointer_expression "*(code **)(unaff_EBP + 0x54592)" * (cast_expression "(code **)(unaff_EBP + 0x54592)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x54592)" ( (binary_expression "unaff_EBP + 0x54592" identifier + number_literal) ))))) )) (argument_list "(uVar17,iVar5)" ( identifier , identifier )))) ;) (expression_statement "local_20 = 0xc;" (assignment_expression "local_20 = 0xc" identifier = number_literal) ;) (expression_statement "local_44 = 8;" (assignment_expression "local_44 = 8" identifier = number_literal) ;) (expression_statement "uVar17 = uVar18;" (assignment_expression "uVar17 = uVar18" identifier = identifier) ;) }) (else_clause "else {\n          local_20 = 4;\n          local_44 = 4;\n        }" else (compound_statement "{\n          local_20 = 4;\n          local_44 = 4;\n        }" { (expression_statement "local_20 = 4;" (assignment_expression "local_20 = 4" identifier = number_literal) ;) (expression_statement "local_44 = 4;" (assignment_expression "local_44 = 4" identifier = number_literal) ;) }))) (expression_statement "local_4c = (int)lVar19;" (assignment_expression "local_4c = (int)lVar19" identifier = (cast_expression "(int)lVar19" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "local_3c = uVar17 - *(int *)(param_1 + 0x10);" (assignment_expression "local_3c = uVar17 - *(int *)(param_1 + 0x10)" identifier = (binary_expression "uVar17 - *(int *)(param_1 + 0x10)" identifier - (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))))) ;) (expression_statement "uVar2 = lVar19 + (ulonglong)local_3c;" (assignment_expression "uVar2 = lVar19 + (ulonglong)local_3c" identifier = (binary_expression "lVar19 + (ulonglong)local_3c" identifier + (cast_expression "(ulonglong)local_3c" ( (type_descriptor "ulonglong" type_identifier) ) identifier))) ;) (if_statement "if ((uint)((uint)uVar2 < local_3c) <= (uint)(uVar2 >> 0x20)) goto LAB_000658e2;" if (parenthesized_expression "((uint)((uint)uVar2 < local_3c) <= (uint)(uVar2 >> 0x20))" ( (binary_expression "(uint)((uint)uVar2 < local_3c) <= (uint)(uVar2 >> 0x20)" (call_expression "(uint)((uint)uVar2 < local_3c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)uVar2 < local_3c)" ( (binary_expression "(uint)uVar2 < local_3c" (cast_expression "(uint)uVar2" ( (type_descriptor "uint" type_identifier) ) identifier) < identifier) ))) <= (call_expression "(uint)(uVar2 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar2 >> 0x20)" ( (binary_expression "uVar2 >> 0x20" identifier >> number_literal) )))) )) (goto_statement "goto LAB_000658e2;" goto statement_identifier ;)) (labeled_statement "LAB_00065ec0:\n        uVar12 = FUN_0004cb50(0);" statement_identifier : (expression_statement "uVar12 = FUN_0004cb50(0);" (assignment_expression "uVar12 = FUN_0004cb50(0)" identifier = (call_expression "FUN_0004cb50(0)" identifier (argument_list "(0)" ( number_literal )))) ;)) (expression_statement "uVar10 = *(undefined4 *)(param_1 + 8);" (assignment_expression "uVar10 = *(undefined4 *)(param_1 + 8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 8)" * (cast_expression "(undefined4 *)(param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = dcgettext(0,unaff_EBP + 0x2a752,5);" (assignment_expression "uVar11 = dcgettext(0,unaff_EBP + 0x2a752,5)" identifier = (call_expression "dcgettext(0,unaff_EBP + 0x2a752,5)" identifier (argument_list "(0,unaff_EBP + 0x2a752,5)" ( number_literal , (binary_expression "unaff_EBP + 0x2a752" identifier + number_literal) , number_literal )))) ;) (expression_statement "warn(uVar11,uVar10,local_3c - local_20,uVar12);" (call_expression "warn(uVar11,uVar10,local_3c - local_20,uVar12)" identifier (argument_list "(uVar11,uVar10,local_3c - local_20,uVar12)" ( identifier , identifier , (binary_expression "local_3c - local_20" identifier - identifier) , identifier ))) ;) (break_statement "break;" break ;) })) (expression_statement "iVar5 = uVar16 - local_34;" (assignment_expression "iVar5 = uVar16 - local_34" identifier = (binary_expression "uVar16 - local_34" identifier - identifier)) ;) (if_statement "if (iVar5 - 1U < 8) goto LAB_00065c45;" if (parenthesized_expression "(iVar5 - 1U < 8)" ( (binary_expression "iVar5 - 1U < 8" (binary_expression "iVar5 - 1U" identifier - number_literal) < number_literal) )) (goto_statement "goto LAB_00065c45;" goto statement_identifier ;)) (expression_statement "local_20 = 4;" (assignment_expression "local_20 = 4" identifier = number_literal) ;) (expression_statement "local_44 = 4;" (assignment_expression "local_44 = 4" identifier = number_literal) ;) (expression_statement "uVar18 = uVar17;" (assignment_expression "uVar18 = uVar17" identifier = identifier) ;) (labeled_statement "LAB_000658c1:\n      local_4c = 0;" statement_identifier : (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;)) (expression_statement "local_3c = uVar18 - *(int *)(param_1 + 0x10);" (assignment_expression "local_3c = uVar18 - *(int *)(param_1 + 0x10)" identifier = (binary_expression "uVar18 - *(int *)(param_1 + 0x10)" identifier - (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))))) ;) (expression_statement "uVar2 = (ulonglong)local_3c;" (assignment_expression "uVar2 = (ulonglong)local_3c" identifier = (cast_expression "(ulonglong)local_3c" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) (expression_statement "uVar17 = uVar18;" (assignment_expression "uVar17 = uVar18" identifier = identifier) ;) (labeled_statement "LAB_000658e2:\n      iVar5 = local_44;" statement_identifier : (expression_statement "iVar5 = local_44;" (assignment_expression "iVar5 = local_44" identifier = identifier) ;)) (expression_statement "uVar18 = (uint)(uVar2 >> 0x20);" (assignment_expression "uVar18 = (uint)(uVar2 >> 0x20)" identifier = (call_expression "(uint)(uVar2 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar2 >> 0x20)" ( (binary_expression "uVar2 >> 0x20" identifier >> number_literal) )))) ;) (if_statement "if (*(uint *)(param_1 + 0x20) < uVar18 ||\n          *(uint *)(param_1 + 0x20) - uVar18 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar2))\n      goto LAB_00065ec0;" if (parenthesized_expression "(*(uint *)(param_1 + 0x20) < uVar18 ||\n          *(uint *)(param_1 + 0x20) - uVar18 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar2))" ( (binary_expression "*(uint *)(param_1 + 0x20) < uVar18 ||\n          *(uint *)(param_1 + 0x20) - uVar18 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar2)" (binary_expression "*(uint *)(param_1 + 0x20) < uVar18" (pointer_expression "*(uint *)(param_1 + 0x20)" * (cast_expression "(uint *)(param_1 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) < identifier) || (binary_expression "*(uint *)(param_1 + 0x20) - uVar18 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar2)" (binary_expression "*(uint *)(param_1 + 0x20) - uVar18" (pointer_expression "*(uint *)(param_1 + 0x20)" * (cast_expression "(uint *)(param_1 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) - identifier) < (call_expression "(uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(uint *)(param_1 + 0x1c) < (uint)uVar2)" ( (binary_expression "*(uint *)(param_1 + 0x1c) < (uint)uVar2" (pointer_expression "*(uint *)(param_1 + 0x1c)" * (cast_expression "(uint *)(param_1 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) < (cast_expression "(uint)uVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ))))) )) (goto_statement "goto LAB_00065ec0;" goto statement_identifier ;)) (expression_statement "uVar18 = uVar17 + 2;" (assignment_expression "uVar18 = uVar17 + 2" identifier = (binary_expression "uVar17 + 2" identifier + number_literal)) ;) (if_statement "if (uVar18 < uVar16) {\n        local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,2);\n        if (local_44 + uVar18 < uVar16) {\nLAB_00065e10:\n          local_28 = local_2c - 2;\nLAB_00065944:\n          local_30 = (**(code **)(unaff_EBP + 0x54592))(uVar18,local_44);\n          goto LAB_0006595d;\n        }\n        local_28 = local_2c - 2;\n        local_44 = uVar16 - uVar18;\n        if (local_44 - 1U < 8) goto LAB_00065944;\nLAB_00065cf4:\n        iVar13 = *(int *)(unaff_EBP + 0x54526);\n        local_30 = 0;\n        if (iVar13 - 1U < 0xfffffffe) goto LAB_00065d0e;\nLAB_0006596f:\n        uVar17 = uVar18 + iVar5 + 1;\n        if (uVar16 <= uVar17) goto LAB_0006597e;\nLAB_00065d80:\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18 + iVar5,1);\n        uVar18 = uVar18 + iVar5 + 2;\n        if (uVar18 < uVar16) goto LAB_00065e60;\n        iVar5 = uVar16 - uVar17;\n        if (iVar5 - 1U < 8) goto LAB_000659ad;\nLAB_00065dbc:\n        bVar3 = 0;\n        if (local_28 < 2) goto LAB_000659c7;\nLAB_00065dcd:\n        if (local_2c != 0) {\n          iVar5 = unaff_EBP + 0x2c8ee;\nLAB_00065de4:\n          uVar10 = dcgettext(0,iVar5,5);\n          warn(uVar10);\n        }\n        break;\n      }" if (parenthesized_expression "(uVar18 < uVar16)" ( (binary_expression "uVar18 < uVar16" identifier < identifier) )) (compound_statement "{\n        local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,2);\n        if (local_44 + uVar18 < uVar16) {\nLAB_00065e10:\n          local_28 = local_2c - 2;\nLAB_00065944:\n          local_30 = (**(code **)(unaff_EBP + 0x54592))(uVar18,local_44);\n          goto LAB_0006595d;\n        }\n        local_28 = local_2c - 2;\n        local_44 = uVar16 - uVar18;\n        if (local_44 - 1U < 8) goto LAB_00065944;\nLAB_00065cf4:\n        iVar13 = *(int *)(unaff_EBP + 0x54526);\n        local_30 = 0;\n        if (iVar13 - 1U < 0xfffffffe) goto LAB_00065d0e;\nLAB_0006596f:\n        uVar17 = uVar18 + iVar5 + 1;\n        if (uVar16 <= uVar17) goto LAB_0006597e;\nLAB_00065d80:\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18 + iVar5,1);\n        uVar18 = uVar18 + iVar5 + 2;\n        if (uVar18 < uVar16) goto LAB_00065e60;\n        iVar5 = uVar16 - uVar17;\n        if (iVar5 - 1U < 8) goto LAB_000659ad;\nLAB_00065dbc:\n        bVar3 = 0;\n        if (local_28 < 2) goto LAB_000659c7;\nLAB_00065dcd:\n        if (local_2c != 0) {\n          iVar5 = unaff_EBP + 0x2c8ee;\nLAB_00065de4:\n          uVar10 = dcgettext(0,iVar5,5);\n          warn(uVar10);\n        }\n        break;\n      }" { (expression_statement "local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,2);" (assignment_expression "local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,2)" identifier = (call_expression "(**(code **)(unaff_EBP + 0x54592))(uVar17,2)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x54592))" ( (pointer_expression "**(code **)(unaff_EBP + 0x54592)" * (pointer_expression "*(code **)(unaff_EBP + 0x54592)" * (cast_expression "(code **)(unaff_EBP + 0x54592)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x54592)" ( (binary_expression "unaff_EBP + 0x54592" identifier + number_literal) ))))) )) (argument_list "(uVar17,2)" ( identifier , number_literal )))) ;) (if_statement "if (local_44 + uVar18 < uVar16) {\nLAB_00065e10:\n          local_28 = local_2c - 2;\nLAB_00065944:\n          local_30 = (**(code **)(unaff_EBP + 0x54592))(uVar18,local_44);\n          goto LAB_0006595d;\n        }" if (parenthesized_expression "(local_44 + uVar18 < uVar16)" ( (binary_expression "local_44 + uVar18 < uVar16" (binary_expression "local_44 + uVar18" identifier + identifier) < identifier) )) (compound_statement "{\nLAB_00065e10:\n          local_28 = local_2c - 2;\nLAB_00065944:\n          local_30 = (**(code **)(unaff_EBP + 0x54592))(uVar18,local_44);\n          goto LAB_0006595d;\n        }" { (labeled_statement "LAB_00065e10:\n          local_28 = local_2c - 2;" statement_identifier : (expression_statement "local_28 = local_2c - 2;" (assignment_expression "local_28 = local_2c - 2" identifier = (binary_expression "local_2c - 2" identifier - number_literal)) ;)) (labeled_statement "LAB_00065944:\n          local_30 = (**(code **)(unaff_EBP + 0x54592))(uVar18,local_44);" statement_identifier : (expression_statement "local_30 = (**(code **)(unaff_EBP + 0x54592))(uVar18,local_44);" (assignment_expression "local_30 = (**(code **)(unaff_EBP + 0x54592))(uVar18,local_44)" identifier = (call_expression "(**(code **)(unaff_EBP + 0x54592))(uVar18,local_44)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x54592))" ( (pointer_expression "**(code **)(unaff_EBP + 0x54592)" * (pointer_expression "*(code **)(unaff_EBP + 0x54592)" * (cast_expression "(code **)(unaff_EBP + 0x54592)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x54592)" ( (binary_expression "unaff_EBP + 0x54592" identifier + number_literal) ))))) )) (argument_list "(uVar18,local_44)" ( identifier , identifier )))) ;)) (goto_statement "goto LAB_0006595d;" goto statement_identifier ;) })) (expression_statement "local_28 = local_2c - 2;" (assignment_expression "local_28 = local_2c - 2" identifier = (binary_expression "local_2c - 2" identifier - number_literal)) ;) (expression_statement "local_44 = uVar16 - uVar18;" (assignment_expression "local_44 = uVar16 - uVar18" identifier = (binary_expression "uVar16 - uVar18" identifier - identifier)) ;) (if_statement "if (local_44 - 1U < 8) goto LAB_00065944;" if (parenthesized_expression "(local_44 - 1U < 8)" ( (binary_expression "local_44 - 1U < 8" (binary_expression "local_44 - 1U" identifier - number_literal) < number_literal) )) (goto_statement "goto LAB_00065944;" goto statement_identifier ;)) (labeled_statement "LAB_00065cf4:\n        iVar13 = *(int *)(unaff_EBP + 0x54526);" statement_identifier : (expression_statement "iVar13 = *(int *)(unaff_EBP + 0x54526);" (assignment_expression "iVar13 = *(int *)(unaff_EBP + 0x54526)" identifier = (pointer_expression "*(int *)(unaff_EBP + 0x54526)" * (cast_expression "(int *)(unaff_EBP + 0x54526)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x54526)" ( (binary_expression "unaff_EBP + 0x54526" identifier + number_literal) ))))) ;)) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (if_statement "if (iVar13 - 1U < 0xfffffffe) goto LAB_00065d0e;" if (parenthesized_expression "(iVar13 - 1U < 0xfffffffe)" ( (binary_expression "iVar13 - 1U < 0xfffffffe" (binary_expression "iVar13 - 1U" identifier - number_literal) < number_literal) )) (goto_statement "goto LAB_00065d0e;" goto statement_identifier ;)) (labeled_statement "LAB_0006596f:\n        uVar17 = uVar18 + iVar5 + 1;" statement_identifier : (expression_statement "uVar17 = uVar18 + iVar5 + 1;" (assignment_expression "uVar17 = uVar18 + iVar5 + 1" identifier = (binary_expression "uVar18 + iVar5 + 1" (binary_expression "uVar18 + iVar5" identifier + identifier) + number_literal)) ;)) (if_statement "if (uVar16 <= uVar17) goto LAB_0006597e;" if (parenthesized_expression "(uVar16 <= uVar17)" ( (binary_expression "uVar16 <= uVar17" identifier <= identifier) )) (goto_statement "goto LAB_0006597e;" goto statement_identifier ;)) (labeled_statement "LAB_00065d80:\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18 + iVar5,1);" statement_identifier : (expression_statement "cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18 + iVar5,1);" (assignment_expression "cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18 + iVar5,1)" identifier = (call_expression "(**(code **)(unaff_EBP + 0x54592))(uVar18 + iVar5,1)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x54592))" ( (pointer_expression "**(code **)(unaff_EBP + 0x54592)" * (pointer_expression "*(code **)(unaff_EBP + 0x54592)" * (cast_expression "(code **)(unaff_EBP + 0x54592)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x54592)" ( (binary_expression "unaff_EBP + 0x54592" identifier + number_literal) ))))) )) (argument_list "(uVar18 + iVar5,1)" ( (binary_expression "uVar18 + iVar5" identifier + identifier) , number_literal )))) ;)) (expression_statement "uVar18 = uVar18 + iVar5 + 2;" (assignment_expression "uVar18 = uVar18 + iVar5 + 2" identifier = (binary_expression "uVar18 + iVar5 + 2" (binary_expression "uVar18 + iVar5" identifier + identifier) + number_literal)) ;) (if_statement "if (uVar18 < uVar16) goto LAB_00065e60;" if (parenthesized_expression "(uVar18 < uVar16)" ( (binary_expression "uVar18 < uVar16" identifier < identifier) )) (goto_statement "goto LAB_00065e60;" goto statement_identifier ;)) (expression_statement "iVar5 = uVar16 - uVar17;" (assignment_expression "iVar5 = uVar16 - uVar17" identifier = (binary_expression "uVar16 - uVar17" identifier - identifier)) ;) (if_statement "if (iVar5 - 1U < 8) goto LAB_000659ad;" if (parenthesized_expression "(iVar5 - 1U < 8)" ( (binary_expression "iVar5 - 1U < 8" (binary_expression "iVar5 - 1U" identifier - number_literal) < number_literal) )) (goto_statement "goto LAB_000659ad;" goto statement_identifier ;)) (labeled_statement "LAB_00065dbc:\n        bVar3 = 0;" statement_identifier : (expression_statement "bVar3 = 0;" (assignment_expression "bVar3 = 0" identifier = number_literal) ;)) (if_statement "if (local_28 < 2) goto LAB_000659c7;" if (parenthesized_expression "(local_28 < 2)" ( (binary_expression "local_28 < 2" identifier < number_literal) )) (goto_statement "goto LAB_000659c7;" goto statement_identifier ;)) (labeled_statement "LAB_00065dcd:\n        if (local_2c != 0) {\n          iVar5 = unaff_EBP + 0x2c8ee;\nLAB_00065de4:\n          uVar10 = dcgettext(0,iVar5,5);\n          warn(uVar10);\n        }" statement_identifier : (if_statement "if (local_2c != 0) {\n          iVar5 = unaff_EBP + 0x2c8ee;\nLAB_00065de4:\n          uVar10 = dcgettext(0,iVar5,5);\n          warn(uVar10);\n        }" if (parenthesized_expression "(local_2c != 0)" ( (binary_expression "local_2c != 0" identifier != number_literal) )) (compound_statement "{\n          iVar5 = unaff_EBP + 0x2c8ee;\nLAB_00065de4:\n          uVar10 = dcgettext(0,iVar5,5);\n          warn(uVar10);\n        }" { (expression_statement "iVar5 = unaff_EBP + 0x2c8ee;" (assignment_expression "iVar5 = unaff_EBP + 0x2c8ee" identifier = (binary_expression "unaff_EBP + 0x2c8ee" identifier + number_literal)) ;) (labeled_statement "LAB_00065de4:\n          uVar10 = dcgettext(0,iVar5,5);" statement_identifier : (expression_statement "uVar10 = dcgettext(0,iVar5,5);" (assignment_expression "uVar10 = dcgettext(0,iVar5,5)" identifier = (call_expression "dcgettext(0,iVar5,5)" identifier (argument_list "(0,iVar5,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "warn(uVar10);" (call_expression "warn(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))) ;) }))) (break_statement "break;" break ;) })) (if_statement "if (uVar16 <= uVar17) {\nLAB_00065919:\n        local_28 = 0xfffe;\n        local_2c = 0;\n        if (uVar16 <= uVar18 + local_44) goto LAB_00065cf4;\n        goto LAB_00065944;\n      }" if (parenthesized_expression "(uVar16 <= uVar17)" ( (binary_expression "uVar16 <= uVar17" identifier <= identifier) )) (compound_statement "{\nLAB_00065919:\n        local_28 = 0xfffe;\n        local_2c = 0;\n        if (uVar16 <= uVar18 + local_44) goto LAB_00065cf4;\n        goto LAB_00065944;\n      }" { (labeled_statement "LAB_00065919:\n        local_28 = 0xfffe;" statement_identifier : (expression_statement "local_28 = 0xfffe;" (assignment_expression "local_28 = 0xfffe" identifier = number_literal) ;)) (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" identifier = number_literal) ;) (if_statement "if (uVar16 <= uVar18 + local_44) goto LAB_00065cf4;" if (parenthesized_expression "(uVar16 <= uVar18 + local_44)" ( (binary_expression "uVar16 <= uVar18 + local_44" identifier <= (binary_expression "uVar18 + local_44" identifier + identifier)) )) (goto_statement "goto LAB_00065cf4;" goto statement_identifier ;)) (goto_statement "goto LAB_00065944;" goto statement_identifier ;) })) (expression_statement "uVar7 = (uVar16 - uVar17) - 1;" (assignment_expression "uVar7 = (uVar16 - uVar17) - 1" identifier = (binary_expression "(uVar16 - uVar17) - 1" (parenthesized_expression "(uVar16 - uVar17)" ( (binary_expression "uVar16 - uVar17" identifier - identifier) )) - number_literal)) ;) (if_statement "if (7 < uVar7) goto LAB_00065919;" if (parenthesized_expression "(7 < uVar7)" ( (binary_expression "7 < uVar7" number_literal < identifier) )) (goto_statement "goto LAB_00065919;" goto statement_identifier ;)) (expression_statement "local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,uVar16 - uVar17,uVar7,uVar7);" (assignment_expression "local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,uVar16 - uVar17,uVar7,uVar7)" identifier = (call_expression "(**(code **)(unaff_EBP + 0x54592))(uVar17,uVar16 - uVar17,uVar7,uVar7)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x54592))" ( (pointer_expression "**(code **)(unaff_EBP + 0x54592)" * (pointer_expression "*(code **)(unaff_EBP + 0x54592)" * (cast_expression "(code **)(unaff_EBP + 0x54592)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x54592)" ( (binary_expression "unaff_EBP + 0x54592" identifier + number_literal) ))))) )) (argument_list "(uVar17,uVar16 - uVar17,uVar7,uVar7)" ( identifier , (binary_expression "uVar16 - uVar17" identifier - identifier) , identifier , identifier )))) ;) (if_statement "if (local_44 + uVar18 < uVar16) goto LAB_00065e10;" if (parenthesized_expression "(local_44 + uVar18 < uVar16)" ( (binary_expression "local_44 + uVar18 < uVar16" (binary_expression "local_44 + uVar18" identifier + identifier) < identifier) )) (goto_statement "goto LAB_00065e10;" goto statement_identifier ;)) (expression_statement "local_28 = local_2c - 2;" (assignment_expression "local_28 = local_2c - 2" identifier = (binary_expression "local_2c - 2" identifier - number_literal)) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0006595d:\n      iVar13 = *(int *)(unaff_EBP + 0x54526);" statement_identifier : (expression_statement "iVar13 = *(int *)(unaff_EBP + 0x54526);" (assignment_expression "iVar13 = *(int *)(unaff_EBP + 0x54526)" identifier = (pointer_expression "*(int *)(unaff_EBP + 0x54526)" * (cast_expression "(int *)(unaff_EBP + 0x54526)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x54526)" ( (binary_expression "unaff_EBP + 0x54526" identifier + number_literal) ))))) ;)) (if_statement "if (0xfffffffd < iVar13 - 1U) goto LAB_0006596f;" if (parenthesized_expression "(0xfffffffd < iVar13 - 1U)" ( (binary_expression "0xfffffffd < iVar13 - 1U" number_literal < (binary_expression "iVar13 - 1U" identifier - number_literal)) )) (goto_statement "goto LAB_0006596f;" goto statement_identifier ;)) (labeled_statement "LAB_00065d0e:\n      iVar14 = 0;" statement_identifier : (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;)) (expression_statement "piVar9 = (int *)(*(int *)(unaff_EBP + 0x5451e) + 0xc);" (assignment_expression "piVar9 = (int *)(*(int *)(unaff_EBP + 0x5451e) + 0xc)" identifier = (cast_expression "(int *)(*(int *)(unaff_EBP + 0x5451e) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(unaff_EBP + 0x5451e) + 0xc)" ( (binary_expression "*(int *)(unaff_EBP + 0x5451e) + 0xc" (pointer_expression "*(int *)(unaff_EBP + 0x5451e)" * (cast_expression "(int *)(unaff_EBP + 0x5451e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x5451e)" ( (binary_expression "unaff_EBP + 0x5451e" identifier + number_literal) )))) + number_literal) )))) ;) (do_statement "do {\n        if (*piVar9 == local_30 && piVar9[1] == 0) goto LAB_0006596f;\n        iVar14 = iVar14 + 1;\n        piVar9 = piVar9 + 0x14;\n      } while (iVar13 != iVar14);" do (compound_statement "{\n        if (*piVar9 == local_30 && piVar9[1] == 0) goto LAB_0006596f;\n        iVar14 = iVar14 + 1;\n        piVar9 = piVar9 + 0x14;\n      }" { (if_statement "if (*piVar9 == local_30 && piVar9[1] == 0) goto LAB_0006596f;" if (parenthesized_expression "(*piVar9 == local_30 && piVar9[1] == 0)" ( (binary_expression "*piVar9 == local_30 && piVar9[1] == 0" (binary_expression "*piVar9 == local_30" (pointer_expression "*piVar9" * identifier) == identifier) && (binary_expression "piVar9[1] == 0" (subscript_expression "piVar9[1]" identifier [ number_literal ]) == number_literal)) )) (goto_statement "goto LAB_0006596f;" goto statement_identifier ;)) (expression_statement "iVar14 = iVar14 + 1;" (assignment_expression "iVar14 = iVar14 + 1" identifier = (binary_expression "iVar14 + 1" identifier + number_literal)) ;) (expression_statement "piVar9 = piVar9 + 0x14;" (assignment_expression "piVar9 = piVar9 + 0x14" identifier = (binary_expression "piVar9 + 0x14" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != iVar14)" ( (binary_expression "iVar13 != iVar14" identifier != identifier) )) ;) (expression_statement "iVar13 = *(int *)(param_1 + 8);" (assignment_expression "iVar13 = *(int *)(param_1 + 8)" identifier = (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = dcgettext(0,unaff_EBP + 0x2c8a2,5);" (assignment_expression "uVar10 = dcgettext(0,unaff_EBP + 0x2c8a2,5)" identifier = (call_expression "dcgettext(0,unaff_EBP + 0x2c8a2,5)" identifier (argument_list "(0,unaff_EBP + 0x2c8a2,5)" ( number_literal , (binary_expression "unaff_EBP + 0x2c8a2" identifier + number_literal) , number_literal )))) ;) (expression_statement "warn(uVar10,local_30,iVar13);" (call_expression "warn(uVar10,local_30,iVar13)" identifier (argument_list "(uVar10,local_30,iVar13)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar17 = uVar18 + iVar5 + 1;" (assignment_expression "uVar17 = uVar18 + iVar5 + 1" identifier = (binary_expression "uVar18 + iVar5 + 1" (binary_expression "uVar18 + iVar5" identifier + identifier) + number_literal)) ;) (if_statement "if (uVar17 < uVar16) goto LAB_00065d80;" if (parenthesized_expression "(uVar17 < uVar16)" ( (binary_expression "uVar17 < uVar16" identifier < identifier) )) (goto_statement "goto LAB_00065d80;" goto statement_identifier ;)) (labeled_statement "LAB_0006597e:\n      uVar18 = uVar18 + iVar5;" statement_identifier : (expression_statement "uVar18 = uVar18 + iVar5;" (assignment_expression "uVar18 = uVar18 + iVar5" identifier = (binary_expression "uVar18 + iVar5" identifier + identifier)) ;)) (if_statement "if ((uVar18 < uVar16) && ((uVar16 - uVar18) - 1 < 8)) {\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar16 - uVar18,iVar13,iVar13);\n        uVar18 = uVar18 + 2;\n        bVar3 = 0;\n        if (uVar18 < uVar16) {\nLAB_00065e60:\n          iVar5 = 1;\n          goto LAB_000659ad;\n        }\n      }\n      else {\n        uVar18 = uVar18 + 2;\n        if (uVar16 <= uVar18) {\n          cVar4 = '\0';\n          goto LAB_00065dbc;\n        }\n        cVar4 = '\0';\n        iVar5 = 1;\nLAB_000659ad:\n        bVar3 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n      }" if (parenthesized_expression "((uVar18 < uVar16) && ((uVar16 - uVar18) - 1 < 8))" ( (binary_expression "(uVar18 < uVar16) && ((uVar16 - uVar18) - 1 < 8)" (parenthesized_expression "(uVar18 < uVar16)" ( (binary_expression "uVar18 < uVar16" identifier < identifier) )) && (parenthesized_expression "((uVar16 - uVar18) - 1 < 8)" ( (binary_expression "(uVar16 - uVar18) - 1 < 8" (binary_expression "(uVar16 - uVar18) - 1" (parenthesized_expression "(uVar16 - uVar18)" ( (binary_expression "uVar16 - uVar18" identifier - identifier) )) - number_literal) < number_literal) ))) )) (compound_statement "{\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar16 - uVar18,iVar13,iVar13);\n        uVar18 = uVar18 + 2;\n        bVar3 = 0;\n        if (uVar18 < uVar16) {\nLAB_00065e60:\n          iVar5 = 1;\n          goto LAB_000659ad;\n        }\n      }" { (expression_statement "cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar16 - uVar18,iVar13,iVar13);" (assignment_expression "cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar16 - uVar18,iVar13,iVar13)" identifier = (call_expression "(**(code **)(unaff_EBP + 0x54592))(uVar18,uVar16 - uVar18,iVar13,iVar13)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x54592))" ( (pointer_expression "**(code **)(unaff_EBP + 0x54592)" * (pointer_expression "*(code **)(unaff_EBP + 0x54592)" * (cast_expression "(code **)(unaff_EBP + 0x54592)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x54592)" ( (binary_expression "unaff_EBP + 0x54592" identifier + number_literal) ))))) )) (argument_list "(uVar18,uVar16 - uVar18,iVar13,iVar13)" ( identifier , (binary_expression "uVar16 - uVar18" identifier - identifier) , identifier , identifier )))) ;) (expression_statement "uVar18 = uVar18 + 2;" (assignment_expression "uVar18 = uVar18 + 2" identifier = (binary_expression "uVar18 + 2" identifier + number_literal)) ;) (expression_statement "bVar3 = 0;" (assignment_expression "bVar3 = 0" identifier = number_literal) ;) (if_statement "if (uVar18 < uVar16) {\nLAB_00065e60:\n          iVar5 = 1;\n          goto LAB_000659ad;\n        }" if (parenthesized_expression "(uVar18 < uVar16)" ( (binary_expression "uVar18 < uVar16" identifier < identifier) )) (compound_statement "{\nLAB_00065e60:\n          iVar5 = 1;\n          goto LAB_000659ad;\n        }" { (labeled_statement "LAB_00065e60:\n          iVar5 = 1;" statement_identifier : (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;)) (goto_statement "goto LAB_000659ad;" goto statement_identifier ;) })) }) (else_clause "else {\n        uVar18 = uVar18 + 2;\n        if (uVar16 <= uVar18) {\n          cVar4 = '\0';\n          goto LAB_00065dbc;\n        }\n        cVar4 = '\0';\n        iVar5 = 1;\nLAB_000659ad:\n        bVar3 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n      }" else (compound_statement "{\n        uVar18 = uVar18 + 2;\n        if (uVar16 <= uVar18) {\n          cVar4 = '\0';\n          goto LAB_00065dbc;\n        }\n        cVar4 = '\0';\n        iVar5 = 1;\nLAB_000659ad:\n        bVar3 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n      }" { (expression_statement "uVar18 = uVar18 + 2;" (assignment_expression "uVar18 = uVar18 + 2" identifier = (binary_expression "uVar18 + 2" identifier + number_literal)) ;) (if_statement "if (uVar16 <= uVar18) {\n          cVar4 = '\0';\n          goto LAB_00065dbc;\n        }" if (parenthesized_expression "(uVar16 <= uVar18)" ( (binary_expression "uVar16 <= uVar18" identifier <= identifier) )) (compound_statement "{\n          cVar4 = '\0';\n          goto LAB_00065dbc;\n        }" { (expression_statement "cVar4 = '\0';" (assignment_expression "cVar4 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (goto_statement "goto LAB_00065dbc;" goto statement_identifier ;) })) (expression_statement "cVar4 = '\0';" (assignment_expression "cVar4 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) (labeled_statement "LAB_000659ad:\n        bVar3 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);" statement_identifier : (expression_statement "bVar3 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);" (assignment_expression "bVar3 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5)" identifier = (call_expression "(**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x54592))" ( (pointer_expression "**(code **)(unaff_EBP + 0x54592)" * (pointer_expression "*(code **)(unaff_EBP + 0x54592)" * (cast_expression "(code **)(unaff_EBP + 0x54592)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x54592)" ( (binary_expression "unaff_EBP + 0x54592" identifier + number_literal) ))))) )) (argument_list "(uVar17,iVar5)" ( identifier , identifier )))) ;)) }))) (if_statement "if (1 < local_28) goto LAB_00065dcd;" if (parenthesized_expression "(1 < local_28)" ( (binary_expression "1 < local_28" number_literal < identifier) )) (goto_statement "goto LAB_00065dcd;" goto statement_identifier ;)) (labeled_statement "LAB_000659c7:\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c926,5);" statement_identifier : (expression_statement "pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c926,5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c926,5)" identifier = (cast_expression "(char *)dcgettext(0,unaff_EBP + 0x2c926,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,unaff_EBP + 0x2c926,5)" identifier (argument_list "(0,unaff_EBP + 0x2c926,5)" ( number_literal , (binary_expression "unaff_EBP + 0x2c926" identifier + number_literal) , number_literal ))))) ;)) (expression_statement "printf(pcVar6,local_4c);" (call_expression "printf(pcVar6,local_4c)" identifier (argument_list "(pcVar6,local_4c)" ( identifier , identifier ))) ;) (expression_statement "pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c94a,5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c94a,5)" identifier = (cast_expression "(char *)dcgettext(0,unaff_EBP + 0x2c94a,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,unaff_EBP + 0x2c94a,5)" identifier (argument_list "(0,unaff_EBP + 0x2c94a,5)" ( number_literal , (binary_expression "unaff_EBP + 0x2c94a" identifier + number_literal) , number_literal ))))) ;) (expression_statement "printf(pcVar6,local_2c);" (call_expression "printf(pcVar6,local_2c)" identifier (argument_list "(pcVar6,local_2c)" ( identifier , identifier ))) ;) (expression_statement "pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c96a,5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c96a,5)" identifier = (cast_expression "(char *)dcgettext(0,unaff_EBP + 0x2c96a,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,unaff_EBP + 0x2c96a,5)" identifier (argument_list "(0,unaff_EBP + 0x2c96a,5)" ( number_literal , (binary_expression "unaff_EBP + 0x2c96a" identifier + number_literal) , number_literal ))))) ;) (expression_statement "printf(pcVar6,local_30);" (call_expression "printf(pcVar6,local_30)" identifier (argument_list "(pcVar6,local_30)" ( identifier , identifier ))) ;) (expression_statement "pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c98e,5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c98e,5)" identifier = (cast_expression "(char *)dcgettext(0,unaff_EBP + 0x2c98e,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,unaff_EBP + 0x2c98e,5)" identifier (argument_list "(0,unaff_EBP + 0x2c98e,5)" ( number_literal , (binary_expression "unaff_EBP + 0x2c98e" identifier + number_literal) , number_literal ))))) ;) (expression_statement "printf(pcVar6,cVar4);" (call_expression "printf(pcVar6,cVar4)" identifier (argument_list "(pcVar6,cVar4)" ( identifier , identifier ))) ;) (expression_statement "pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c9ae,5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c9ae,5)" identifier = (cast_expression "(char *)dcgettext(0,unaff_EBP + 0x2c9ae,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,unaff_EBP + 0x2c9ae,5)" identifier (argument_list "(0,unaff_EBP + 0x2c9ae,5)" ( number_literal , (binary_expression "unaff_EBP + 0x2c9ae" identifier + number_literal) , number_literal ))))) ;) (expression_statement "printf(pcVar6,(uint)bVar3);" (call_expression "printf(pcVar6,(uint)bVar3)" identifier (argument_list "(pcVar6,(uint)bVar3)" ( identifier , (cast_expression "(uint)bVar3" ( (type_descriptor "uint" type_identifier) ) identifier) ))) ;) (expression_statement "bVar3 = bVar3 + cVar4;" (assignment_expression "bVar3 = bVar3 + cVar4" identifier = (binary_expression "bVar3 + cVar4" identifier + identifier)) ;) (if_statement "if (7 < (byte)(bVar3 - 1)) {\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar12 = dcgettext(0,unaff_EBP + 0x2c9ce,5);\n        error(uVar12,uVar10);\n        break;\n      }" if (parenthesized_expression "(7 < (byte)(bVar3 - 1))" ( (binary_expression "7 < (byte)(bVar3 - 1)" number_literal < (call_expression "(byte)(bVar3 - 1)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar3 - 1)" ( (binary_expression "bVar3 - 1" identifier - number_literal) )))) )) (compound_statement "{\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar12 = dcgettext(0,unaff_EBP + 0x2c9ce,5);\n        error(uVar12,uVar10);\n        break;\n      }" { (expression_statement "uVar10 = *(undefined4 *)(param_1 + 8);" (assignment_expression "uVar10 = *(undefined4 *)(param_1 + 8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 8)" * (cast_expression "(undefined4 *)(param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = dcgettext(0,unaff_EBP + 0x2c9ce,5);" (assignment_expression "uVar12 = dcgettext(0,unaff_EBP + 0x2c9ce,5)" identifier = (call_expression "dcgettext(0,unaff_EBP + 0x2c9ce,5)" identifier (argument_list "(0,unaff_EBP + 0x2c9ce,5)" ( number_literal , (binary_expression "unaff_EBP + 0x2c9ce" identifier + number_literal) , number_literal )))) ;) (expression_statement "error(uVar12,uVar10);" (call_expression "error(uVar12,uVar10)" identifier (argument_list "(uVar12,uVar10)" ( identifier , identifier ))) ;) (break_statement "break;" break ;) })) (expression_statement "uVar17 = (uint)bVar3;" (assignment_expression "uVar17 = (uint)bVar3" identifier = (cast_expression "(uint)bVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if ((uVar17 - 1 & uVar17) != 0) {\n        iVar5 = unaff_EBP + 0x2c9f6;\n        goto LAB_00065de4;\n      }" if (parenthesized_expression "((uVar17 - 1 & uVar17) != 0)" ( (binary_expression "(uVar17 - 1 & uVar17) != 0" (parenthesized_expression "(uVar17 - 1 & uVar17)" ( (binary_expression "uVar17 - 1 & uVar17" (binary_expression "uVar17 - 1" identifier - number_literal) & identifier) )) != number_literal) )) (compound_statement "{\n        iVar5 = unaff_EBP + 0x2c9f6;\n        goto LAB_00065de4;\n      }" { (expression_statement "iVar5 = unaff_EBP + 0x2c9f6;" (assignment_expression "iVar5 = unaff_EBP + 0x2c9f6" identifier = (binary_expression "unaff_EBP + 0x2c9f6" identifier + number_literal)) ;) (goto_statement "goto LAB_00065de4;" goto statement_identifier ;) })) (if_statement "if (bVar3 < 5) {\n        iVar5 = unaff_EBP + 0x2e6d2;\n      }\n      else {\n        iVar5 = unaff_EBP + 0x2ca2a;\n      }" if (parenthesized_expression "(bVar3 < 5)" ( (binary_expression "bVar3 < 5" identifier < number_literal) )) (compound_statement "{\n        iVar5 = unaff_EBP + 0x2e6d2;\n      }" { (expression_statement "iVar5 = unaff_EBP + 0x2e6d2;" (assignment_expression "iVar5 = unaff_EBP + 0x2e6d2" identifier = (binary_expression "unaff_EBP + 0x2e6d2" identifier + number_literal)) ;) }) (else_clause "else {\n        iVar5 = unaff_EBP + 0x2ca2a;\n      }" else (compound_statement "{\n        iVar5 = unaff_EBP + 0x2ca2a;\n      }" { (expression_statement "iVar5 = unaff_EBP + 0x2ca2a;" (assignment_expression "iVar5 = unaff_EBP + 0x2ca2a" identifier = (binary_expression "unaff_EBP + 0x2ca2a" identifier + number_literal)) ;) }))) (expression_statement "pcVar6 = (char *)dcgettext(0,iVar5,5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,iVar5,5)" identifier = (cast_expression "(char *)dcgettext(0,iVar5,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,iVar5,5)" identifier (argument_list "(0,iVar5,5)" ( number_literal , identifier , number_literal ))))) ;) (expression_statement "printf(pcVar6);" (call_expression "printf(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier ))) ;) (expression_statement "iVar5 = uVar17 * 2;" (assignment_expression "iVar5 = uVar17 * 2" identifier = (binary_expression "uVar17 * 2" identifier * number_literal)) ;) (expression_statement "iVar13 = (int)(uVar18 - local_34) % iVar5;" (assignment_expression "iVar13 = (int)(uVar18 - local_34) % iVar5" identifier = (binary_expression "(int)(uVar18 - local_34) % iVar5" (cast_expression "(int)(uVar18 - local_34)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar18 - local_34)" ( (binary_expression "uVar18 - local_34" identifier - identifier) ))) % identifier)) ;) (if_statement "if (iVar13 != 0) {\n        uVar18 = (iVar5 - iVar13) + uVar18;\n      }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar18 = (iVar5 - iVar13) + uVar18;\n      }" { (expression_statement "uVar18 = (iVar5 - iVar13) + uVar18;" (assignment_expression "uVar18 = (iVar5 - iVar13) + uVar18" identifier = (binary_expression "(iVar5 - iVar13) + uVar18" (parenthesized_expression "(iVar5 - iVar13)" ( (binary_expression "iVar5 - iVar13" identifier - identifier) )) + identifier)) ;) })) (expression_statement "local_34 = local_34 + local_20 + local_4c;" (assignment_expression "local_34 = local_34 + local_20 + local_4c" identifier = (binary_expression "local_34 + local_20 + local_4c" (binary_expression "local_34 + local_20" identifier + identifier) + identifier)) ;) (if_statement "if (uVar18 + iVar5 <= local_34) {\n        uVar18 = uVar18 + uVar17;\n        puVar1 = *(undefined4 **)(unaff_EBP + 0x4e792);\n        do {\n          uVar15 = uVar18 - uVar17;\n          uVar8 = uVar17;\n          uVar7 = uVar17;\n          if ((uVar18 < uVar16) ||\n             ((uVar15 < uVar16 && (uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8)))) {\n            (**(code **)(unaff_EBP + 0x54592))(uVar15,uVar8);\n            if ((uVar15 + iVar5 < uVar16) ||\n               ((uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8))))\n            goto LAB_00065b58;\n          }\n          else if (uVar15 + iVar5 < uVar16) {\nLAB_00065b58:\n            (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7);\n          }\n          printf(&UNK_00016b6e + unaff_EBP);\n          FUN_0004ce60();\n          FUN_0004ce60();\n          putc(10,(FILE *)*puVar1);\n          uVar18 = uVar18 + iVar5;\n        } while (uVar17 + uVar18 <= local_34);\n      }" if (parenthesized_expression "(uVar18 + iVar5 <= local_34)" ( (binary_expression "uVar18 + iVar5 <= local_34" (binary_expression "uVar18 + iVar5" identifier + identifier) <= identifier) )) (compound_statement "{\n        uVar18 = uVar18 + uVar17;\n        puVar1 = *(undefined4 **)(unaff_EBP + 0x4e792);\n        do {\n          uVar15 = uVar18 - uVar17;\n          uVar8 = uVar17;\n          uVar7 = uVar17;\n          if ((uVar18 < uVar16) ||\n             ((uVar15 < uVar16 && (uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8)))) {\n            (**(code **)(unaff_EBP + 0x54592))(uVar15,uVar8);\n            if ((uVar15 + iVar5 < uVar16) ||\n               ((uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8))))\n            goto LAB_00065b58;\n          }\n          else if (uVar15 + iVar5 < uVar16) {\nLAB_00065b58:\n            (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7);\n          }\n          printf(&UNK_00016b6e + unaff_EBP);\n          FUN_0004ce60();\n          FUN_0004ce60();\n          putc(10,(FILE *)*puVar1);\n          uVar18 = uVar18 + iVar5;\n        } while (uVar17 + uVar18 <= local_34);\n      }" { (expression_statement "uVar18 = uVar18 + uVar17;" (assignment_expression "uVar18 = uVar18 + uVar17" identifier = (binary_expression "uVar18 + uVar17" identifier + identifier)) ;) (expression_statement "puVar1 = *(undefined4 **)(unaff_EBP + 0x4e792);" (assignment_expression "puVar1 = *(undefined4 **)(unaff_EBP + 0x4e792)" identifier = (pointer_expression "*(undefined4 **)(unaff_EBP + 0x4e792)" * (cast_expression "(undefined4 **)(unaff_EBP + 0x4e792)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x4e792)" ( (binary_expression "unaff_EBP + 0x4e792" identifier + number_literal) ))))) ;) (do_statement "do {\n          uVar15 = uVar18 - uVar17;\n          uVar8 = uVar17;\n          uVar7 = uVar17;\n          if ((uVar18 < uVar16) ||\n             ((uVar15 < uVar16 && (uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8)))) {\n            (**(code **)(unaff_EBP + 0x54592))(uVar15,uVar8);\n            if ((uVar15 + iVar5 < uVar16) ||\n               ((uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8))))\n            goto LAB_00065b58;\n          }\n          else if (uVar15 + iVar5 < uVar16) {\nLAB_00065b58:\n            (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7);\n          }\n          printf(&UNK_00016b6e + unaff_EBP);\n          FUN_0004ce60();\n          FUN_0004ce60();\n          putc(10,(FILE *)*puVar1);\n          uVar18 = uVar18 + iVar5;\n        } while (uVar17 + uVar18 <= local_34);" do (compound_statement "{\n          uVar15 = uVar18 - uVar17;\n          uVar8 = uVar17;\n          uVar7 = uVar17;\n          if ((uVar18 < uVar16) ||\n             ((uVar15 < uVar16 && (uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8)))) {\n            (**(code **)(unaff_EBP + 0x54592))(uVar15,uVar8);\n            if ((uVar15 + iVar5 < uVar16) ||\n               ((uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8))))\n            goto LAB_00065b58;\n          }\n          else if (uVar15 + iVar5 < uVar16) {\nLAB_00065b58:\n            (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7);\n          }\n          printf(&UNK_00016b6e + unaff_EBP);\n          FUN_0004ce60();\n          FUN_0004ce60();\n          putc(10,(FILE *)*puVar1);\n          uVar18 = uVar18 + iVar5;\n        }" { (expression_statement "uVar15 = uVar18 - uVar17;" (assignment_expression "uVar15 = uVar18 - uVar17" identifier = (binary_expression "uVar18 - uVar17" identifier - identifier)) ;) (expression_statement "uVar8 = uVar17;" (assignment_expression "uVar8 = uVar17" identifier = identifier) ;) (expression_statement "uVar7 = uVar17;" (assignment_expression "uVar7 = uVar17" identifier = identifier) ;) (if_statement "if ((uVar18 < uVar16) ||\n             ((uVar15 < uVar16 && (uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8)))) {\n            (**(code **)(unaff_EBP + 0x54592))(uVar15,uVar8);\n            if ((uVar15 + iVar5 < uVar16) ||\n               ((uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8))))\n            goto LAB_00065b58;\n          }\n          else if (uVar15 + iVar5 < uVar16) {\nLAB_00065b58:\n            (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7);\n          }" if (parenthesized_expression "((uVar18 < uVar16) ||\n             ((uVar15 < uVar16 && (uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8))))" ( (binary_expression "(uVar18 < uVar16) ||\n             ((uVar15 < uVar16 && (uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8)))" (parenthesized_expression "(uVar18 < uVar16)" ( (binary_expression "uVar18 < uVar16" identifier < identifier) )) || (parenthesized_expression "((uVar15 < uVar16 && (uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8)))" ( (parenthesized_expression "(uVar15 < uVar16 && (uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8))" ( (binary_expression "uVar15 < uVar16 && (uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8)" (binary_expression "uVar15 < uVar16" identifier < identifier) && (parenthesized_expression "(uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8)" ( (comma_expression "uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8" (assignment_expression "uVar8 = uVar16 - uVar15" identifier = (binary_expression "uVar16 - uVar15" identifier - identifier)) , (binary_expression "(uVar16 - uVar15) - 1 < 8" (binary_expression "(uVar16 - uVar15) - 1" (parenthesized_expression "(uVar16 - uVar15)" ( (binary_expression "uVar16 - uVar15" identifier - identifier) )) - number_literal) < number_literal)) ))) )) ))) )) (compound_statement "{\n            (**(code **)(unaff_EBP + 0x54592))(uVar15,uVar8);\n            if ((uVar15 + iVar5 < uVar16) ||\n               ((uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8))))\n            goto LAB_00065b58;\n          }" { (expression_statement "(**(code **)(unaff_EBP + 0x54592))(uVar15,uVar8);" (call_expression "(**(code **)(unaff_EBP + 0x54592))(uVar15,uVar8)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x54592))" ( (pointer_expression "**(code **)(unaff_EBP + 0x54592)" * (pointer_expression "*(code **)(unaff_EBP + 0x54592)" * (cast_expression "(code **)(unaff_EBP + 0x54592)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x54592)" ( (binary_expression "unaff_EBP + 0x54592" identifier + number_literal) ))))) )) (argument_list "(uVar15,uVar8)" ( identifier , identifier ))) ;) (if_statement "if ((uVar15 + iVar5 < uVar16) ||\n               ((uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8))))\n            goto LAB_00065b58;" if (parenthesized_expression "((uVar15 + iVar5 < uVar16) ||\n               ((uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8))))" ( (binary_expression "(uVar15 + iVar5 < uVar16) ||\n               ((uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8)))" (parenthesized_expression "(uVar15 + iVar5 < uVar16)" ( (binary_expression "uVar15 + iVar5 < uVar16" (binary_expression "uVar15 + iVar5" identifier + identifier) < identifier) )) || (parenthesized_expression "((uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8)))" ( (parenthesized_expression "(uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8))" ( (binary_expression "uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8)" (binary_expression "uVar18 < uVar16" identifier < identifier) && (parenthesized_expression "(uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8)" ( (comma_expression "uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8" (assignment_expression "uVar7 = uVar16 - uVar18" identifier = (binary_expression "uVar16 - uVar18" identifier - identifier)) , (binary_expression "(uVar16 - uVar18) - 1 < 8" (binary_expression "(uVar16 - uVar18) - 1" (parenthesized_expression "(uVar16 - uVar18)" ( (binary_expression "uVar16 - uVar18" identifier - identifier) )) - number_literal) < number_literal)) ))) )) ))) )) (goto_statement "goto LAB_00065b58;" goto statement_identifier ;)) }) (else_clause "else if (uVar15 + iVar5 < uVar16) {\nLAB_00065b58:\n            (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7);\n          }" else (if_statement "if (uVar15 + iVar5 < uVar16) {\nLAB_00065b58:\n            (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7);\n          }" if (parenthesized_expression "(uVar15 + iVar5 < uVar16)" ( (binary_expression "uVar15 + iVar5 < uVar16" (binary_expression "uVar15 + iVar5" identifier + identifier) < identifier) )) (compound_statement "{\nLAB_00065b58:\n            (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7);\n          }" { (labeled_statement "LAB_00065b58:\n            (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7);" statement_identifier : (expression_statement "(**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7);" (call_expression "(**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x54592))" ( (pointer_expression "**(code **)(unaff_EBP + 0x54592)" * (pointer_expression "*(code **)(unaff_EBP + 0x54592)" * (cast_expression "(code **)(unaff_EBP + 0x54592)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x54592)" ( (binary_expression "unaff_EBP + 0x54592" identifier + number_literal) ))))) )) (argument_list "(uVar18,uVar7)" ( identifier , identifier ))) ;)) })))) (expression_statement "printf(&UNK_00016b6e + unaff_EBP);" (call_expression "printf(&UNK_00016b6e + unaff_EBP)" identifier (argument_list "(&UNK_00016b6e + unaff_EBP)" ( (binary_expression "&UNK_00016b6e + unaff_EBP" (pointer_expression "&UNK_00016b6e" & identifier) + identifier) ))) ;) (expression_statement "FUN_0004ce60();" (call_expression "FUN_0004ce60()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0004ce60();" (call_expression "FUN_0004ce60()" identifier (argument_list "()" ( ))) ;) (expression_statement "putc(10,(FILE *)*puVar1);" (call_expression "putc(10,(FILE *)*puVar1)" identifier (argument_list "(10,(FILE *)*puVar1)" ( number_literal , (cast_expression "(FILE *)*puVar1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar1" * identifier)) ))) ;) (expression_statement "uVar18 = uVar18 + iVar5;" (assignment_expression "uVar18 = uVar18 + iVar5" identifier = (binary_expression "uVar18 + iVar5" identifier + identifier)) ;) }) while (parenthesized_expression "(uVar17 + uVar18 <= local_34)" ( (binary_expression "uVar17 + uVar18 <= local_34" (binary_expression "uVar17 + uVar18" identifier + identifier) <= identifier) )) ;) })) }) while (parenthesized_expression "(local_34 < uVar16)" ( (binary_expression "local_34 < uVar16" identifier < identifier) )) ;) })) (expression_statement "putchar(10);" (call_expression "putchar(10)" identifier (argument_list "(10)" ( number_literal ))) ;) (return_statement "return 1;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier short) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT - IDENT)) , (binary_expression LIT < (binary_expression IDENT - 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 = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (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 = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < IDENT) ))) <= (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( 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 = (call_expression IDENT (argument_list ( LIT , (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT - IDENT) , IDENT ))) ;) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_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 = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < IDENT) || (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) < IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT )))) ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression IDENT + IDENT) , LIT )))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (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 = (binary_expression IDENT + LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , LIT )))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))) (break_statement break ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (binary_expression IDENT + IDENT)) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) - LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression IDENT - IDENT) , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) < IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * IDENT) == IDENT) && (binary_expression (subscript_expression IDENT [ LIT ]) == LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) && (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) - LIT) < LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression IDENT - IDENT) , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT )))) ;)) }))) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (binary_expression IDENT + LIT) , LIT ))))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (binary_expression IDENT + LIT) , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (binary_expression IDENT + LIT) , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (binary_expression IDENT + LIT) , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (binary_expression IDENT + LIT) , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & IDENT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , IDENT , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT - IDENT) ))) % IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) + IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT < IDENT) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT - IDENT)) , (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) - LIT) < LIT)) ))) )) ))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) < IDENT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT < IDENT) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT - IDENT)) , (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) - LIT) < LIT)) ))) )) ))) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) < IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT ))) ;)) })))) (expression_statement (call_expression IDENT (argument_list ( (binary_expression (pointer_expression & IDENT) + IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) <= IDENT) )) ;) })) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (return_statement return LIT ;) })))
(function_definition "undefined4 FUN_00065840(int param_1)\n\n{\n  undefined4 *puVar1;\n  ulonglong uVar2;\n  byte bVar3;\n  char cVar4;\n  int iVar5;\n  char *pcVar6;\n  uint uVar7;\n  uint uVar8;\n  int *piVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  undefined4 uVar12;\n  int iVar13;\n  int iVar14;\n  uint uVar15;\n  int unaff_EBP;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  longlong lVar19;\n  int local_4c;\n  int local_44;\n  uint local_3c;\n  uint local_34;\n  int local_30;\n  short local_2c;\n  ushort local_28;\n  int local_20;\n  \n  FUN_0004ab89();\n  local_34 = *(uint *)(param_1 + 0x10);\n  uVar16 = *(int *)(param_1 + 0x1c) + local_34;\n  FUN_0004eb80();\n  FUN_00062460();\n  if (local_34 < uVar16) {\n    do {\n      uVar17 = local_34 + 4;\n      if (uVar17 < uVar16) {\n        iVar5 = 4;\nLAB_00065c45:\n        lVar19 = (**(code **)(unaff_EBP + 0x54592))(local_34,iVar5);\n        if (lVar19 == 0xffffffff) {\n          uVar18 = local_34 + 0xc;\n          if (uVar18 < uVar16) {\n            iVar5 = 8;\n          }\n          else if ((uVar16 <= uVar17) || (iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U)) {\n            local_20 = 0xc;\n            local_44 = 8;\n            goto LAB_000658c1;\n          }\n          lVar19 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n          local_20 = 0xc;\n          local_44 = 8;\n          uVar17 = uVar18;\n        }\n        else {\n          local_20 = 4;\n          local_44 = 4;\n        }\n        local_4c = (int)lVar19;\n        local_3c = uVar17 - *(int *)(param_1 + 0x10);\n        uVar2 = lVar19 + (ulonglong)local_3c;\n        if ((uint)((uint)uVar2 < local_3c) <= (uint)(uVar2 >> 0x20)) goto LAB_000658e2;\nLAB_00065ec0:\n        uVar12 = FUN_0004cb50(0);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar11 = dcgettext(0,unaff_EBP + 0x2a752,5);\n        warn(uVar11,uVar10,local_3c - local_20,uVar12);\n        break;\n      }\n      iVar5 = uVar16 - local_34;\n      if (iVar5 - 1U < 8) goto LAB_00065c45;\n      local_20 = 4;\n      local_44 = 4;\n      uVar18 = uVar17;\nLAB_000658c1:\n      local_4c = 0;\n      local_3c = uVar18 - *(int *)(param_1 + 0x10);\n      uVar2 = (ulonglong)local_3c;\n      uVar17 = uVar18;\nLAB_000658e2:\n      iVar5 = local_44;\n      uVar18 = (uint)(uVar2 >> 0x20);\n      if (*(uint *)(param_1 + 0x20) < uVar18 ||\n          *(uint *)(param_1 + 0x20) - uVar18 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar2))\n      goto LAB_00065ec0;\n      uVar18 = uVar17 + 2;\n      if (uVar18 < uVar16) {\n        local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,2);\n        if (local_44 + uVar18 < uVar16) {\nLAB_00065e10:\n          local_28 = local_2c - 2;\nLAB_00065944:\n          local_30 = (**(code **)(unaff_EBP + 0x54592))(uVar18,local_44);\n          goto LAB_0006595d;\n        }\n        local_28 = local_2c - 2;\n        local_44 = uVar16 - uVar18;\n        if (local_44 - 1U < 8) goto LAB_00065944;\nLAB_00065cf4:\n        iVar13 = *(int *)(unaff_EBP + 0x54526);\n        local_30 = 0;\n        if (iVar13 - 1U < 0xfffffffe) goto LAB_00065d0e;\nLAB_0006596f:\n        uVar17 = uVar18 + iVar5 + 1;\n        if (uVar16 <= uVar17) goto LAB_0006597e;\nLAB_00065d80:\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18 + iVar5,1);\n        uVar18 = uVar18 + iVar5 + 2;\n        if (uVar18 < uVar16) goto LAB_00065e60;\n        iVar5 = uVar16 - uVar17;\n        if (iVar5 - 1U < 8) goto LAB_000659ad;\nLAB_00065dbc:\n        bVar3 = 0;\n        if (local_28 < 2) goto LAB_000659c7;\nLAB_00065dcd:\n        if (local_2c != 0) {\n          iVar5 = unaff_EBP + 0x2c8ee;\nLAB_00065de4:\n          uVar10 = dcgettext(0,iVar5,5);\n          warn(uVar10);\n        }\n        break;\n      }\n      if (uVar16 <= uVar17) {\nLAB_00065919:\n        local_28 = 0xfffe;\n        local_2c = 0;\n        if (uVar16 <= uVar18 + local_44) goto LAB_00065cf4;\n        goto LAB_00065944;\n      }\n      uVar7 = (uVar16 - uVar17) - 1;\n      if (7 < uVar7) goto LAB_00065919;\n      local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,uVar16 - uVar17,uVar7,uVar7);\n      if (local_44 + uVar18 < uVar16) goto LAB_00065e10;\n      local_28 = local_2c - 2;\n      local_30 = 0;\nLAB_0006595d:\n      iVar13 = *(int *)(unaff_EBP + 0x54526);\n      if (0xfffffffd < iVar13 - 1U) goto LAB_0006596f;\nLAB_00065d0e:\n      iVar14 = 0;\n      piVar9 = (int *)(*(int *)(unaff_EBP + 0x5451e) + 0xc);\n      do {\n        if (*piVar9 == local_30 && piVar9[1] == 0) goto LAB_0006596f;\n        iVar14 = iVar14 + 1;\n        piVar9 = piVar9 + 0x14;\n      } while (iVar13 != iVar14);\n      iVar13 = *(int *)(param_1 + 8);\n      uVar10 = dcgettext(0,unaff_EBP + 0x2c8a2,5);\n      warn(uVar10,local_30,iVar13);\n      uVar17 = uVar18 + iVar5 + 1;\n      if (uVar17 < uVar16) goto LAB_00065d80;\nLAB_0006597e:\n      uVar18 = uVar18 + iVar5;\n      if ((uVar18 < uVar16) && ((uVar16 - uVar18) - 1 < 8)) {\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar16 - uVar18,iVar13,iVar13);\n        uVar18 = uVar18 + 2;\n        bVar3 = 0;\n        if (uVar18 < uVar16) {\nLAB_00065e60:\n          iVar5 = 1;\n          goto LAB_000659ad;\n        }\n      }\n      else {\n        uVar18 = uVar18 + 2;\n        if (uVar16 <= uVar18) {\n          cVar4 = '\0';\n          goto LAB_00065dbc;\n        }\n        cVar4 = '\0';\n        iVar5 = 1;\nLAB_000659ad:\n        bVar3 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n      }\n      if (1 < local_28) goto LAB_00065dcd;\nLAB_000659c7:\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c926,5);\n      printf(pcVar6,local_4c);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c94a,5);\n      printf(pcVar6,local_2c);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c96a,5);\n      printf(pcVar6,local_30);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c98e,5);\n      printf(pcVar6,cVar4);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c9ae,5);\n      printf(pcVar6,(uint)bVar3);\n      bVar3 = bVar3 + cVar4;\n      if (7 < (byte)(bVar3 - 1)) {\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar12 = dcgettext(0,unaff_EBP + 0x2c9ce,5);\n        error(uVar12,uVar10);\n        break;\n      }\n      uVar17 = (uint)bVar3;\n      if ((uVar17 - 1 & uVar17) != 0) {\n        iVar5 = unaff_EBP + 0x2c9f6;\n        goto LAB_00065de4;\n      }\n      if (bVar3 < 5) {\n        iVar5 = unaff_EBP + 0x2e6d2;\n      }\n      else {\n        iVar5 = unaff_EBP + 0x2ca2a;\n      }\n      pcVar6 = (char *)dcgettext(0,iVar5,5);\n      printf(pcVar6);\n      iVar5 = uVar17 * 2;\n      iVar13 = (int)(uVar18 - local_34) % iVar5;\n      if (iVar13 != 0) {\n        uVar18 = (iVar5 - iVar13) + uVar18;\n      }\n      local_34 = local_34 + local_20 + local_4c;\n      if (uVar18 + iVar5 <= local_34) {\n        uVar18 = uVar18 + uVar17;\n        puVar1 = *(undefined4 **)(unaff_EBP + 0x4e792);\n        do {\n          uVar15 = uVar18 - uVar17;\n          uVar8 = uVar17;\n          uVar7 = uVar17;\n          if ((uVar18 < uVar16) ||\n             ((uVar15 < uVar16 && (uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8)))) {\n            (**(code **)(unaff_EBP + 0x54592))(uVar15,uVar8);\n            if ((uVar15 + iVar5 < uVar16) ||\n               ((uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8))))\n            goto LAB_00065b58;\n          }\n          else if (uVar15 + iVar5 < uVar16) {\nLAB_00065b58:\n            (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7);\n          }\n          printf(&UNK_00016b6e + unaff_EBP);\n          FUN_0004ce60();\n          FUN_0004ce60();\n          putc(10,(FILE *)*puVar1);\n          uVar18 = uVar18 + iVar5;\n        } while (uVar17 + uVar18 <= local_34);\n      }\n    } while (local_34 < uVar16);\n  }\n  putchar(10);\n  return 1;\n}" (type_identifier "undefined4") (function_declarator "FUN_00065840(int param_1)" (identifier "FUN_00065840") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  undefined4 *puVar1;\n  ulonglong uVar2;\n  byte bVar3;\n  char cVar4;\n  int iVar5;\n  char *pcVar6;\n  uint uVar7;\n  uint uVar8;\n  int *piVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  undefined4 uVar12;\n  int iVar13;\n  int iVar14;\n  uint uVar15;\n  int unaff_EBP;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  longlong lVar19;\n  int local_4c;\n  int local_44;\n  uint local_3c;\n  uint local_34;\n  int local_30;\n  short local_2c;\n  ushort local_28;\n  int local_20;\n  \n  FUN_0004ab89();\n  local_34 = *(uint *)(param_1 + 0x10);\n  uVar16 = *(int *)(param_1 + 0x1c) + local_34;\n  FUN_0004eb80();\n  FUN_00062460();\n  if (local_34 < uVar16) {\n    do {\n      uVar17 = local_34 + 4;\n      if (uVar17 < uVar16) {\n        iVar5 = 4;\nLAB_00065c45:\n        lVar19 = (**(code **)(unaff_EBP + 0x54592))(local_34,iVar5);\n        if (lVar19 == 0xffffffff) {\n          uVar18 = local_34 + 0xc;\n          if (uVar18 < uVar16) {\n            iVar5 = 8;\n          }\n          else if ((uVar16 <= uVar17) || (iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U)) {\n            local_20 = 0xc;\n            local_44 = 8;\n            goto LAB_000658c1;\n          }\n          lVar19 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n          local_20 = 0xc;\n          local_44 = 8;\n          uVar17 = uVar18;\n        }\n        else {\n          local_20 = 4;\n          local_44 = 4;\n        }\n        local_4c = (int)lVar19;\n        local_3c = uVar17 - *(int *)(param_1 + 0x10);\n        uVar2 = lVar19 + (ulonglong)local_3c;\n        if ((uint)((uint)uVar2 < local_3c) <= (uint)(uVar2 >> 0x20)) goto LAB_000658e2;\nLAB_00065ec0:\n        uVar12 = FUN_0004cb50(0);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar11 = dcgettext(0,unaff_EBP + 0x2a752,5);\n        warn(uVar11,uVar10,local_3c - local_20,uVar12);\n        break;\n      }\n      iVar5 = uVar16 - local_34;\n      if (iVar5 - 1U < 8) goto LAB_00065c45;\n      local_20 = 4;\n      local_44 = 4;\n      uVar18 = uVar17;\nLAB_000658c1:\n      local_4c = 0;\n      local_3c = uVar18 - *(int *)(param_1 + 0x10);\n      uVar2 = (ulonglong)local_3c;\n      uVar17 = uVar18;\nLAB_000658e2:\n      iVar5 = local_44;\n      uVar18 = (uint)(uVar2 >> 0x20);\n      if (*(uint *)(param_1 + 0x20) < uVar18 ||\n          *(uint *)(param_1 + 0x20) - uVar18 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar2))\n      goto LAB_00065ec0;\n      uVar18 = uVar17 + 2;\n      if (uVar18 < uVar16) {\n        local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,2);\n        if (local_44 + uVar18 < uVar16) {\nLAB_00065e10:\n          local_28 = local_2c - 2;\nLAB_00065944:\n          local_30 = (**(code **)(unaff_EBP + 0x54592))(uVar18,local_44);\n          goto LAB_0006595d;\n        }\n        local_28 = local_2c - 2;\n        local_44 = uVar16 - uVar18;\n        if (local_44 - 1U < 8) goto LAB_00065944;\nLAB_00065cf4:\n        iVar13 = *(int *)(unaff_EBP + 0x54526);\n        local_30 = 0;\n        if (iVar13 - 1U < 0xfffffffe) goto LAB_00065d0e;\nLAB_0006596f:\n        uVar17 = uVar18 + iVar5 + 1;\n        if (uVar16 <= uVar17) goto LAB_0006597e;\nLAB_00065d80:\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18 + iVar5,1);\n        uVar18 = uVar18 + iVar5 + 2;\n        if (uVar18 < uVar16) goto LAB_00065e60;\n        iVar5 = uVar16 - uVar17;\n        if (iVar5 - 1U < 8) goto LAB_000659ad;\nLAB_00065dbc:\n        bVar3 = 0;\n        if (local_28 < 2) goto LAB_000659c7;\nLAB_00065dcd:\n        if (local_2c != 0) {\n          iVar5 = unaff_EBP + 0x2c8ee;\nLAB_00065de4:\n          uVar10 = dcgettext(0,iVar5,5);\n          warn(uVar10);\n        }\n        break;\n      }\n      if (uVar16 <= uVar17) {\nLAB_00065919:\n        local_28 = 0xfffe;\n        local_2c = 0;\n        if (uVar16 <= uVar18 + local_44) goto LAB_00065cf4;\n        goto LAB_00065944;\n      }\n      uVar7 = (uVar16 - uVar17) - 1;\n      if (7 < uVar7) goto LAB_00065919;\n      local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,uVar16 - uVar17,uVar7,uVar7);\n      if (local_44 + uVar18 < uVar16) goto LAB_00065e10;\n      local_28 = local_2c - 2;\n      local_30 = 0;\nLAB_0006595d:\n      iVar13 = *(int *)(unaff_EBP + 0x54526);\n      if (0xfffffffd < iVar13 - 1U) goto LAB_0006596f;\nLAB_00065d0e:\n      iVar14 = 0;\n      piVar9 = (int *)(*(int *)(unaff_EBP + 0x5451e) + 0xc);\n      do {\n        if (*piVar9 == local_30 && piVar9[1] == 0) goto LAB_0006596f;\n        iVar14 = iVar14 + 1;\n        piVar9 = piVar9 + 0x14;\n      } while (iVar13 != iVar14);\n      iVar13 = *(int *)(param_1 + 8);\n      uVar10 = dcgettext(0,unaff_EBP + 0x2c8a2,5);\n      warn(uVar10,local_30,iVar13);\n      uVar17 = uVar18 + iVar5 + 1;\n      if (uVar17 < uVar16) goto LAB_00065d80;\nLAB_0006597e:\n      uVar18 = uVar18 + iVar5;\n      if ((uVar18 < uVar16) && ((uVar16 - uVar18) - 1 < 8)) {\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar16 - uVar18,iVar13,iVar13);\n        uVar18 = uVar18 + 2;\n        bVar3 = 0;\n        if (uVar18 < uVar16) {\nLAB_00065e60:\n          iVar5 = 1;\n          goto LAB_000659ad;\n        }\n      }\n      else {\n        uVar18 = uVar18 + 2;\n        if (uVar16 <= uVar18) {\n          cVar4 = '\0';\n          goto LAB_00065dbc;\n        }\n        cVar4 = '\0';\n        iVar5 = 1;\nLAB_000659ad:\n        bVar3 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n      }\n      if (1 < local_28) goto LAB_00065dcd;\nLAB_000659c7:\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c926,5);\n      printf(pcVar6,local_4c);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c94a,5);\n      printf(pcVar6,local_2c);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c96a,5);\n      printf(pcVar6,local_30);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c98e,5);\n      printf(pcVar6,cVar4);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c9ae,5);\n      printf(pcVar6,(uint)bVar3);\n      bVar3 = bVar3 + cVar4;\n      if (7 < (byte)(bVar3 - 1)) {\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar12 = dcgettext(0,unaff_EBP + 0x2c9ce,5);\n        error(uVar12,uVar10);\n        break;\n      }\n      uVar17 = (uint)bVar3;\n      if ((uVar17 - 1 & uVar17) != 0) {\n        iVar5 = unaff_EBP + 0x2c9f6;\n        goto LAB_00065de4;\n      }\n      if (bVar3 < 5) {\n        iVar5 = unaff_EBP + 0x2e6d2;\n      }\n      else {\n        iVar5 = unaff_EBP + 0x2ca2a;\n      }\n      pcVar6 = (char *)dcgettext(0,iVar5,5);\n      printf(pcVar6);\n      iVar5 = uVar17 * 2;\n      iVar13 = (int)(uVar18 - local_34) % iVar5;\n      if (iVar13 != 0) {\n        uVar18 = (iVar5 - iVar13) + uVar18;\n      }\n      local_34 = local_34 + local_20 + local_4c;\n      if (uVar18 + iVar5 <= local_34) {\n        uVar18 = uVar18 + uVar17;\n        puVar1 = *(undefined4 **)(unaff_EBP + 0x4e792);\n        do {\n          uVar15 = uVar18 - uVar17;\n          uVar8 = uVar17;\n          uVar7 = uVar17;\n          if ((uVar18 < uVar16) ||\n             ((uVar15 < uVar16 && (uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8)))) {\n            (**(code **)(unaff_EBP + 0x54592))(uVar15,uVar8);\n            if ((uVar15 + iVar5 < uVar16) ||\n               ((uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8))))\n            goto LAB_00065b58;\n          }\n          else if (uVar15 + iVar5 < uVar16) {\nLAB_00065b58:\n            (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7);\n          }\n          printf(&UNK_00016b6e + unaff_EBP);\n          FUN_0004ce60();\n          FUN_0004ce60();\n          putc(10,(FILE *)*puVar1);\n          uVar18 = uVar18 + iVar5;\n        } while (uVar17 + uVar18 <= local_34);\n      }\n    } while (local_34 < uVar16);\n  }\n  putchar(10);\n  return 1;\n}" ({ "{") (declaration "undefined4 *puVar1;" (type_identifier "undefined4") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "ulonglong uVar2;" (type_identifier "ulonglong") (identifier "uVar2") (; ";")) (declaration "byte bVar3;" (type_identifier "byte") (identifier "bVar3") (; ";")) (declaration "char cVar4;" (primitive_type "char") (identifier "cVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "char *pcVar6;" (primitive_type "char") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "int *piVar9;" (primitive_type "int") (pointer_declarator "*piVar9" (* "*") (identifier "piVar9")) (; ";")) (declaration "undefined4 uVar10;" (type_identifier "undefined4") (identifier "uVar10") (; ";")) (declaration "undefined4 uVar11;" (type_identifier "undefined4") (identifier "uVar11") (; ";")) (declaration "undefined4 uVar12;" (type_identifier "undefined4") (identifier "uVar12") (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "uint uVar15;" (type_identifier "uint") (identifier "uVar15") (; ";")) (declaration "int unaff_EBP;" (primitive_type "int") (identifier "unaff_EBP") (; ";")) (declaration "uint uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "uint uVar17;" (type_identifier "uint") (identifier "uVar17") (; ";")) (declaration "uint uVar18;" (type_identifier "uint") (identifier "uVar18") (; ";")) (declaration "longlong lVar19;" (type_identifier "longlong") (identifier "lVar19") (; ";")) (declaration "int local_4c;" (primitive_type "int") (identifier "local_4c") (; ";")) (declaration "int local_44;" (primitive_type "int") (identifier "local_44") (; ";")) (declaration "uint local_3c;" (type_identifier "uint") (identifier "local_3c") (; ";")) (declaration "uint local_34;" (type_identifier "uint") (identifier "local_34") (; ";")) (declaration "int local_30;" (primitive_type "int") (identifier "local_30") (; ";")) (declaration "short local_2c;" (sized_type_specifier "short" (short "short")) (identifier "local_2c") (; ";")) (declaration "ushort local_28;" (type_identifier "ushort") (identifier "local_28") (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (expression_statement "FUN_0004ab89();" (call_expression "FUN_0004ab89()" (identifier "FUN_0004ab89") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_34 = *(uint *)(param_1 + 0x10);" (assignment_expression "local_34 = *(uint *)(param_1 + 0x10)" (identifier "local_34") (= "=") (pointer_expression "*(uint *)(param_1 + 0x10)" (* "*") (cast_expression "(uint *)(param_1 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "uVar16 = *(int *)(param_1 + 0x1c) + local_34;" (assignment_expression "uVar16 = *(int *)(param_1 + 0x1c) + local_34" (identifier "uVar16") (= "=") (binary_expression "*(int *)(param_1 + 0x1c) + local_34" (pointer_expression "*(int *)(param_1 + 0x1c)" (* "*") (cast_expression "(int *)(param_1 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")")))) (+ "+") (identifier "local_34"))) (; ";")) (expression_statement "FUN_0004eb80();" (call_expression "FUN_0004eb80()" (identifier "FUN_0004eb80") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00062460();" (call_expression "FUN_00062460()" (identifier "FUN_00062460") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (local_34 < uVar16) {\n    do {\n      uVar17 = local_34 + 4;\n      if (uVar17 < uVar16) {\n        iVar5 = 4;\nLAB_00065c45:\n        lVar19 = (**(code **)(unaff_EBP + 0x54592))(local_34,iVar5);\n        if (lVar19 == 0xffffffff) {\n          uVar18 = local_34 + 0xc;\n          if (uVar18 < uVar16) {\n            iVar5 = 8;\n          }\n          else if ((uVar16 <= uVar17) || (iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U)) {\n            local_20 = 0xc;\n            local_44 = 8;\n            goto LAB_000658c1;\n          }\n          lVar19 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n          local_20 = 0xc;\n          local_44 = 8;\n          uVar17 = uVar18;\n        }\n        else {\n          local_20 = 4;\n          local_44 = 4;\n        }\n        local_4c = (int)lVar19;\n        local_3c = uVar17 - *(int *)(param_1 + 0x10);\n        uVar2 = lVar19 + (ulonglong)local_3c;\n        if ((uint)((uint)uVar2 < local_3c) <= (uint)(uVar2 >> 0x20)) goto LAB_000658e2;\nLAB_00065ec0:\n        uVar12 = FUN_0004cb50(0);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar11 = dcgettext(0,unaff_EBP + 0x2a752,5);\n        warn(uVar11,uVar10,local_3c - local_20,uVar12);\n        break;\n      }\n      iVar5 = uVar16 - local_34;\n      if (iVar5 - 1U < 8) goto LAB_00065c45;\n      local_20 = 4;\n      local_44 = 4;\n      uVar18 = uVar17;\nLAB_000658c1:\n      local_4c = 0;\n      local_3c = uVar18 - *(int *)(param_1 + 0x10);\n      uVar2 = (ulonglong)local_3c;\n      uVar17 = uVar18;\nLAB_000658e2:\n      iVar5 = local_44;\n      uVar18 = (uint)(uVar2 >> 0x20);\n      if (*(uint *)(param_1 + 0x20) < uVar18 ||\n          *(uint *)(param_1 + 0x20) - uVar18 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar2))\n      goto LAB_00065ec0;\n      uVar18 = uVar17 + 2;\n      if (uVar18 < uVar16) {\n        local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,2);\n        if (local_44 + uVar18 < uVar16) {\nLAB_00065e10:\n          local_28 = local_2c - 2;\nLAB_00065944:\n          local_30 = (**(code **)(unaff_EBP + 0x54592))(uVar18,local_44);\n          goto LAB_0006595d;\n        }\n        local_28 = local_2c - 2;\n        local_44 = uVar16 - uVar18;\n        if (local_44 - 1U < 8) goto LAB_00065944;\nLAB_00065cf4:\n        iVar13 = *(int *)(unaff_EBP + 0x54526);\n        local_30 = 0;\n        if (iVar13 - 1U < 0xfffffffe) goto LAB_00065d0e;\nLAB_0006596f:\n        uVar17 = uVar18 + iVar5 + 1;\n        if (uVar16 <= uVar17) goto LAB_0006597e;\nLAB_00065d80:\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18 + iVar5,1);\n        uVar18 = uVar18 + iVar5 + 2;\n        if (uVar18 < uVar16) goto LAB_00065e60;\n        iVar5 = uVar16 - uVar17;\n        if (iVar5 - 1U < 8) goto LAB_000659ad;\nLAB_00065dbc:\n        bVar3 = 0;\n        if (local_28 < 2) goto LAB_000659c7;\nLAB_00065dcd:\n        if (local_2c != 0) {\n          iVar5 = unaff_EBP + 0x2c8ee;\nLAB_00065de4:\n          uVar10 = dcgettext(0,iVar5,5);\n          warn(uVar10);\n        }\n        break;\n      }\n      if (uVar16 <= uVar17) {\nLAB_00065919:\n        local_28 = 0xfffe;\n        local_2c = 0;\n        if (uVar16 <= uVar18 + local_44) goto LAB_00065cf4;\n        goto LAB_00065944;\n      }\n      uVar7 = (uVar16 - uVar17) - 1;\n      if (7 < uVar7) goto LAB_00065919;\n      local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,uVar16 - uVar17,uVar7,uVar7);\n      if (local_44 + uVar18 < uVar16) goto LAB_00065e10;\n      local_28 = local_2c - 2;\n      local_30 = 0;\nLAB_0006595d:\n      iVar13 = *(int *)(unaff_EBP + 0x54526);\n      if (0xfffffffd < iVar13 - 1U) goto LAB_0006596f;\nLAB_00065d0e:\n      iVar14 = 0;\n      piVar9 = (int *)(*(int *)(unaff_EBP + 0x5451e) + 0xc);\n      do {\n        if (*piVar9 == local_30 && piVar9[1] == 0) goto LAB_0006596f;\n        iVar14 = iVar14 + 1;\n        piVar9 = piVar9 + 0x14;\n      } while (iVar13 != iVar14);\n      iVar13 = *(int *)(param_1 + 8);\n      uVar10 = dcgettext(0,unaff_EBP + 0x2c8a2,5);\n      warn(uVar10,local_30,iVar13);\n      uVar17 = uVar18 + iVar5 + 1;\n      if (uVar17 < uVar16) goto LAB_00065d80;\nLAB_0006597e:\n      uVar18 = uVar18 + iVar5;\n      if ((uVar18 < uVar16) && ((uVar16 - uVar18) - 1 < 8)) {\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar16 - uVar18,iVar13,iVar13);\n        uVar18 = uVar18 + 2;\n        bVar3 = 0;\n        if (uVar18 < uVar16) {\nLAB_00065e60:\n          iVar5 = 1;\n          goto LAB_000659ad;\n        }\n      }\n      else {\n        uVar18 = uVar18 + 2;\n        if (uVar16 <= uVar18) {\n          cVar4 = '\0';\n          goto LAB_00065dbc;\n        }\n        cVar4 = '\0';\n        iVar5 = 1;\nLAB_000659ad:\n        bVar3 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n      }\n      if (1 < local_28) goto LAB_00065dcd;\nLAB_000659c7:\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c926,5);\n      printf(pcVar6,local_4c);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c94a,5);\n      printf(pcVar6,local_2c);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c96a,5);\n      printf(pcVar6,local_30);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c98e,5);\n      printf(pcVar6,cVar4);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c9ae,5);\n      printf(pcVar6,(uint)bVar3);\n      bVar3 = bVar3 + cVar4;\n      if (7 < (byte)(bVar3 - 1)) {\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar12 = dcgettext(0,unaff_EBP + 0x2c9ce,5);\n        error(uVar12,uVar10);\n        break;\n      }\n      uVar17 = (uint)bVar3;\n      if ((uVar17 - 1 & uVar17) != 0) {\n        iVar5 = unaff_EBP + 0x2c9f6;\n        goto LAB_00065de4;\n      }\n      if (bVar3 < 5) {\n        iVar5 = unaff_EBP + 0x2e6d2;\n      }\n      else {\n        iVar5 = unaff_EBP + 0x2ca2a;\n      }\n      pcVar6 = (char *)dcgettext(0,iVar5,5);\n      printf(pcVar6);\n      iVar5 = uVar17 * 2;\n      iVar13 = (int)(uVar18 - local_34) % iVar5;\n      if (iVar13 != 0) {\n        uVar18 = (iVar5 - iVar13) + uVar18;\n      }\n      local_34 = local_34 + local_20 + local_4c;\n      if (uVar18 + iVar5 <= local_34) {\n        uVar18 = uVar18 + uVar17;\n        puVar1 = *(undefined4 **)(unaff_EBP + 0x4e792);\n        do {\n          uVar15 = uVar18 - uVar17;\n          uVar8 = uVar17;\n          uVar7 = uVar17;\n          if ((uVar18 < uVar16) ||\n             ((uVar15 < uVar16 && (uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8)))) {\n            (**(code **)(unaff_EBP + 0x54592))(uVar15,uVar8);\n            if ((uVar15 + iVar5 < uVar16) ||\n               ((uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8))))\n            goto LAB_00065b58;\n          }\n          else if (uVar15 + iVar5 < uVar16) {\nLAB_00065b58:\n            (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7);\n          }\n          printf(&UNK_00016b6e + unaff_EBP);\n          FUN_0004ce60();\n          FUN_0004ce60();\n          putc(10,(FILE *)*puVar1);\n          uVar18 = uVar18 + iVar5;\n        } while (uVar17 + uVar18 <= local_34);\n      }\n    } while (local_34 < uVar16);\n  }" (if "if") (parenthesized_expression "(local_34 < uVar16)" (( "(") (binary_expression "local_34 < uVar16" (identifier "local_34") (< "<") (identifier "uVar16")) () ")")) (compound_statement "{\n    do {\n      uVar17 = local_34 + 4;\n      if (uVar17 < uVar16) {\n        iVar5 = 4;\nLAB_00065c45:\n        lVar19 = (**(code **)(unaff_EBP + 0x54592))(local_34,iVar5);\n        if (lVar19 == 0xffffffff) {\n          uVar18 = local_34 + 0xc;\n          if (uVar18 < uVar16) {\n            iVar5 = 8;\n          }\n          else if ((uVar16 <= uVar17) || (iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U)) {\n            local_20 = 0xc;\n            local_44 = 8;\n            goto LAB_000658c1;\n          }\n          lVar19 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n          local_20 = 0xc;\n          local_44 = 8;\n          uVar17 = uVar18;\n        }\n        else {\n          local_20 = 4;\n          local_44 = 4;\n        }\n        local_4c = (int)lVar19;\n        local_3c = uVar17 - *(int *)(param_1 + 0x10);\n        uVar2 = lVar19 + (ulonglong)local_3c;\n        if ((uint)((uint)uVar2 < local_3c) <= (uint)(uVar2 >> 0x20)) goto LAB_000658e2;\nLAB_00065ec0:\n        uVar12 = FUN_0004cb50(0);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar11 = dcgettext(0,unaff_EBP + 0x2a752,5);\n        warn(uVar11,uVar10,local_3c - local_20,uVar12);\n        break;\n      }\n      iVar5 = uVar16 - local_34;\n      if (iVar5 - 1U < 8) goto LAB_00065c45;\n      local_20 = 4;\n      local_44 = 4;\n      uVar18 = uVar17;\nLAB_000658c1:\n      local_4c = 0;\n      local_3c = uVar18 - *(int *)(param_1 + 0x10);\n      uVar2 = (ulonglong)local_3c;\n      uVar17 = uVar18;\nLAB_000658e2:\n      iVar5 = local_44;\n      uVar18 = (uint)(uVar2 >> 0x20);\n      if (*(uint *)(param_1 + 0x20) < uVar18 ||\n          *(uint *)(param_1 + 0x20) - uVar18 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar2))\n      goto LAB_00065ec0;\n      uVar18 = uVar17 + 2;\n      if (uVar18 < uVar16) {\n        local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,2);\n        if (local_44 + uVar18 < uVar16) {\nLAB_00065e10:\n          local_28 = local_2c - 2;\nLAB_00065944:\n          local_30 = (**(code **)(unaff_EBP + 0x54592))(uVar18,local_44);\n          goto LAB_0006595d;\n        }\n        local_28 = local_2c - 2;\n        local_44 = uVar16 - uVar18;\n        if (local_44 - 1U < 8) goto LAB_00065944;\nLAB_00065cf4:\n        iVar13 = *(int *)(unaff_EBP + 0x54526);\n        local_30 = 0;\n        if (iVar13 - 1U < 0xfffffffe) goto LAB_00065d0e;\nLAB_0006596f:\n        uVar17 = uVar18 + iVar5 + 1;\n        if (uVar16 <= uVar17) goto LAB_0006597e;\nLAB_00065d80:\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18 + iVar5,1);\n        uVar18 = uVar18 + iVar5 + 2;\n        if (uVar18 < uVar16) goto LAB_00065e60;\n        iVar5 = uVar16 - uVar17;\n        if (iVar5 - 1U < 8) goto LAB_000659ad;\nLAB_00065dbc:\n        bVar3 = 0;\n        if (local_28 < 2) goto LAB_000659c7;\nLAB_00065dcd:\n        if (local_2c != 0) {\n          iVar5 = unaff_EBP + 0x2c8ee;\nLAB_00065de4:\n          uVar10 = dcgettext(0,iVar5,5);\n          warn(uVar10);\n        }\n        break;\n      }\n      if (uVar16 <= uVar17) {\nLAB_00065919:\n        local_28 = 0xfffe;\n        local_2c = 0;\n        if (uVar16 <= uVar18 + local_44) goto LAB_00065cf4;\n        goto LAB_00065944;\n      }\n      uVar7 = (uVar16 - uVar17) - 1;\n      if (7 < uVar7) goto LAB_00065919;\n      local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,uVar16 - uVar17,uVar7,uVar7);\n      if (local_44 + uVar18 < uVar16) goto LAB_00065e10;\n      local_28 = local_2c - 2;\n      local_30 = 0;\nLAB_0006595d:\n      iVar13 = *(int *)(unaff_EBP + 0x54526);\n      if (0xfffffffd < iVar13 - 1U) goto LAB_0006596f;\nLAB_00065d0e:\n      iVar14 = 0;\n      piVar9 = (int *)(*(int *)(unaff_EBP + 0x5451e) + 0xc);\n      do {\n        if (*piVar9 == local_30 && piVar9[1] == 0) goto LAB_0006596f;\n        iVar14 = iVar14 + 1;\n        piVar9 = piVar9 + 0x14;\n      } while (iVar13 != iVar14);\n      iVar13 = *(int *)(param_1 + 8);\n      uVar10 = dcgettext(0,unaff_EBP + 0x2c8a2,5);\n      warn(uVar10,local_30,iVar13);\n      uVar17 = uVar18 + iVar5 + 1;\n      if (uVar17 < uVar16) goto LAB_00065d80;\nLAB_0006597e:\n      uVar18 = uVar18 + iVar5;\n      if ((uVar18 < uVar16) && ((uVar16 - uVar18) - 1 < 8)) {\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar16 - uVar18,iVar13,iVar13);\n        uVar18 = uVar18 + 2;\n        bVar3 = 0;\n        if (uVar18 < uVar16) {\nLAB_00065e60:\n          iVar5 = 1;\n          goto LAB_000659ad;\n        }\n      }\n      else {\n        uVar18 = uVar18 + 2;\n        if (uVar16 <= uVar18) {\n          cVar4 = '\0';\n          goto LAB_00065dbc;\n        }\n        cVar4 = '\0';\n        iVar5 = 1;\nLAB_000659ad:\n        bVar3 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n      }\n      if (1 < local_28) goto LAB_00065dcd;\nLAB_000659c7:\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c926,5);\n      printf(pcVar6,local_4c);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c94a,5);\n      printf(pcVar6,local_2c);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c96a,5);\n      printf(pcVar6,local_30);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c98e,5);\n      printf(pcVar6,cVar4);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c9ae,5);\n      printf(pcVar6,(uint)bVar3);\n      bVar3 = bVar3 + cVar4;\n      if (7 < (byte)(bVar3 - 1)) {\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar12 = dcgettext(0,unaff_EBP + 0x2c9ce,5);\n        error(uVar12,uVar10);\n        break;\n      }\n      uVar17 = (uint)bVar3;\n      if ((uVar17 - 1 & uVar17) != 0) {\n        iVar5 = unaff_EBP + 0x2c9f6;\n        goto LAB_00065de4;\n      }\n      if (bVar3 < 5) {\n        iVar5 = unaff_EBP + 0x2e6d2;\n      }\n      else {\n        iVar5 = unaff_EBP + 0x2ca2a;\n      }\n      pcVar6 = (char *)dcgettext(0,iVar5,5);\n      printf(pcVar6);\n      iVar5 = uVar17 * 2;\n      iVar13 = (int)(uVar18 - local_34) % iVar5;\n      if (iVar13 != 0) {\n        uVar18 = (iVar5 - iVar13) + uVar18;\n      }\n      local_34 = local_34 + local_20 + local_4c;\n      if (uVar18 + iVar5 <= local_34) {\n        uVar18 = uVar18 + uVar17;\n        puVar1 = *(undefined4 **)(unaff_EBP + 0x4e792);\n        do {\n          uVar15 = uVar18 - uVar17;\n          uVar8 = uVar17;\n          uVar7 = uVar17;\n          if ((uVar18 < uVar16) ||\n             ((uVar15 < uVar16 && (uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8)))) {\n            (**(code **)(unaff_EBP + 0x54592))(uVar15,uVar8);\n            if ((uVar15 + iVar5 < uVar16) ||\n               ((uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8))))\n            goto LAB_00065b58;\n          }\n          else if (uVar15 + iVar5 < uVar16) {\nLAB_00065b58:\n            (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7);\n          }\n          printf(&UNK_00016b6e + unaff_EBP);\n          FUN_0004ce60();\n          FUN_0004ce60();\n          putc(10,(FILE *)*puVar1);\n          uVar18 = uVar18 + iVar5;\n        } while (uVar17 + uVar18 <= local_34);\n      }\n    } while (local_34 < uVar16);\n  }" ({ "{") (do_statement "do {\n      uVar17 = local_34 + 4;\n      if (uVar17 < uVar16) {\n        iVar5 = 4;\nLAB_00065c45:\n        lVar19 = (**(code **)(unaff_EBP + 0x54592))(local_34,iVar5);\n        if (lVar19 == 0xffffffff) {\n          uVar18 = local_34 + 0xc;\n          if (uVar18 < uVar16) {\n            iVar5 = 8;\n          }\n          else if ((uVar16 <= uVar17) || (iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U)) {\n            local_20 = 0xc;\n            local_44 = 8;\n            goto LAB_000658c1;\n          }\n          lVar19 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n          local_20 = 0xc;\n          local_44 = 8;\n          uVar17 = uVar18;\n        }\n        else {\n          local_20 = 4;\n          local_44 = 4;\n        }\n        local_4c = (int)lVar19;\n        local_3c = uVar17 - *(int *)(param_1 + 0x10);\n        uVar2 = lVar19 + (ulonglong)local_3c;\n        if ((uint)((uint)uVar2 < local_3c) <= (uint)(uVar2 >> 0x20)) goto LAB_000658e2;\nLAB_00065ec0:\n        uVar12 = FUN_0004cb50(0);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar11 = dcgettext(0,unaff_EBP + 0x2a752,5);\n        warn(uVar11,uVar10,local_3c - local_20,uVar12);\n        break;\n      }\n      iVar5 = uVar16 - local_34;\n      if (iVar5 - 1U < 8) goto LAB_00065c45;\n      local_20 = 4;\n      local_44 = 4;\n      uVar18 = uVar17;\nLAB_000658c1:\n      local_4c = 0;\n      local_3c = uVar18 - *(int *)(param_1 + 0x10);\n      uVar2 = (ulonglong)local_3c;\n      uVar17 = uVar18;\nLAB_000658e2:\n      iVar5 = local_44;\n      uVar18 = (uint)(uVar2 >> 0x20);\n      if (*(uint *)(param_1 + 0x20) < uVar18 ||\n          *(uint *)(param_1 + 0x20) - uVar18 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar2))\n      goto LAB_00065ec0;\n      uVar18 = uVar17 + 2;\n      if (uVar18 < uVar16) {\n        local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,2);\n        if (local_44 + uVar18 < uVar16) {\nLAB_00065e10:\n          local_28 = local_2c - 2;\nLAB_00065944:\n          local_30 = (**(code **)(unaff_EBP + 0x54592))(uVar18,local_44);\n          goto LAB_0006595d;\n        }\n        local_28 = local_2c - 2;\n        local_44 = uVar16 - uVar18;\n        if (local_44 - 1U < 8) goto LAB_00065944;\nLAB_00065cf4:\n        iVar13 = *(int *)(unaff_EBP + 0x54526);\n        local_30 = 0;\n        if (iVar13 - 1U < 0xfffffffe) goto LAB_00065d0e;\nLAB_0006596f:\n        uVar17 = uVar18 + iVar5 + 1;\n        if (uVar16 <= uVar17) goto LAB_0006597e;\nLAB_00065d80:\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18 + iVar5,1);\n        uVar18 = uVar18 + iVar5 + 2;\n        if (uVar18 < uVar16) goto LAB_00065e60;\n        iVar5 = uVar16 - uVar17;\n        if (iVar5 - 1U < 8) goto LAB_000659ad;\nLAB_00065dbc:\n        bVar3 = 0;\n        if (local_28 < 2) goto LAB_000659c7;\nLAB_00065dcd:\n        if (local_2c != 0) {\n          iVar5 = unaff_EBP + 0x2c8ee;\nLAB_00065de4:\n          uVar10 = dcgettext(0,iVar5,5);\n          warn(uVar10);\n        }\n        break;\n      }\n      if (uVar16 <= uVar17) {\nLAB_00065919:\n        local_28 = 0xfffe;\n        local_2c = 0;\n        if (uVar16 <= uVar18 + local_44) goto LAB_00065cf4;\n        goto LAB_00065944;\n      }\n      uVar7 = (uVar16 - uVar17) - 1;\n      if (7 < uVar7) goto LAB_00065919;\n      local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,uVar16 - uVar17,uVar7,uVar7);\n      if (local_44 + uVar18 < uVar16) goto LAB_00065e10;\n      local_28 = local_2c - 2;\n      local_30 = 0;\nLAB_0006595d:\n      iVar13 = *(int *)(unaff_EBP + 0x54526);\n      if (0xfffffffd < iVar13 - 1U) goto LAB_0006596f;\nLAB_00065d0e:\n      iVar14 = 0;\n      piVar9 = (int *)(*(int *)(unaff_EBP + 0x5451e) + 0xc);\n      do {\n        if (*piVar9 == local_30 && piVar9[1] == 0) goto LAB_0006596f;\n        iVar14 = iVar14 + 1;\n        piVar9 = piVar9 + 0x14;\n      } while (iVar13 != iVar14);\n      iVar13 = *(int *)(param_1 + 8);\n      uVar10 = dcgettext(0,unaff_EBP + 0x2c8a2,5);\n      warn(uVar10,local_30,iVar13);\n      uVar17 = uVar18 + iVar5 + 1;\n      if (uVar17 < uVar16) goto LAB_00065d80;\nLAB_0006597e:\n      uVar18 = uVar18 + iVar5;\n      if ((uVar18 < uVar16) && ((uVar16 - uVar18) - 1 < 8)) {\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar16 - uVar18,iVar13,iVar13);\n        uVar18 = uVar18 + 2;\n        bVar3 = 0;\n        if (uVar18 < uVar16) {\nLAB_00065e60:\n          iVar5 = 1;\n          goto LAB_000659ad;\n        }\n      }\n      else {\n        uVar18 = uVar18 + 2;\n        if (uVar16 <= uVar18) {\n          cVar4 = '\0';\n          goto LAB_00065dbc;\n        }\n        cVar4 = '\0';\n        iVar5 = 1;\nLAB_000659ad:\n        bVar3 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n      }\n      if (1 < local_28) goto LAB_00065dcd;\nLAB_000659c7:\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c926,5);\n      printf(pcVar6,local_4c);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c94a,5);\n      printf(pcVar6,local_2c);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c96a,5);\n      printf(pcVar6,local_30);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c98e,5);\n      printf(pcVar6,cVar4);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c9ae,5);\n      printf(pcVar6,(uint)bVar3);\n      bVar3 = bVar3 + cVar4;\n      if (7 < (byte)(bVar3 - 1)) {\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar12 = dcgettext(0,unaff_EBP + 0x2c9ce,5);\n        error(uVar12,uVar10);\n        break;\n      }\n      uVar17 = (uint)bVar3;\n      if ((uVar17 - 1 & uVar17) != 0) {\n        iVar5 = unaff_EBP + 0x2c9f6;\n        goto LAB_00065de4;\n      }\n      if (bVar3 < 5) {\n        iVar5 = unaff_EBP + 0x2e6d2;\n      }\n      else {\n        iVar5 = unaff_EBP + 0x2ca2a;\n      }\n      pcVar6 = (char *)dcgettext(0,iVar5,5);\n      printf(pcVar6);\n      iVar5 = uVar17 * 2;\n      iVar13 = (int)(uVar18 - local_34) % iVar5;\n      if (iVar13 != 0) {\n        uVar18 = (iVar5 - iVar13) + uVar18;\n      }\n      local_34 = local_34 + local_20 + local_4c;\n      if (uVar18 + iVar5 <= local_34) {\n        uVar18 = uVar18 + uVar17;\n        puVar1 = *(undefined4 **)(unaff_EBP + 0x4e792);\n        do {\n          uVar15 = uVar18 - uVar17;\n          uVar8 = uVar17;\n          uVar7 = uVar17;\n          if ((uVar18 < uVar16) ||\n             ((uVar15 < uVar16 && (uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8)))) {\n            (**(code **)(unaff_EBP + 0x54592))(uVar15,uVar8);\n            if ((uVar15 + iVar5 < uVar16) ||\n               ((uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8))))\n            goto LAB_00065b58;\n          }\n          else if (uVar15 + iVar5 < uVar16) {\nLAB_00065b58:\n            (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7);\n          }\n          printf(&UNK_00016b6e + unaff_EBP);\n          FUN_0004ce60();\n          FUN_0004ce60();\n          putc(10,(FILE *)*puVar1);\n          uVar18 = uVar18 + iVar5;\n        } while (uVar17 + uVar18 <= local_34);\n      }\n    } while (local_34 < uVar16);" (do "do") (compound_statement "{\n      uVar17 = local_34 + 4;\n      if (uVar17 < uVar16) {\n        iVar5 = 4;\nLAB_00065c45:\n        lVar19 = (**(code **)(unaff_EBP + 0x54592))(local_34,iVar5);\n        if (lVar19 == 0xffffffff) {\n          uVar18 = local_34 + 0xc;\n          if (uVar18 < uVar16) {\n            iVar5 = 8;\n          }\n          else if ((uVar16 <= uVar17) || (iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U)) {\n            local_20 = 0xc;\n            local_44 = 8;\n            goto LAB_000658c1;\n          }\n          lVar19 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n          local_20 = 0xc;\n          local_44 = 8;\n          uVar17 = uVar18;\n        }\n        else {\n          local_20 = 4;\n          local_44 = 4;\n        }\n        local_4c = (int)lVar19;\n        local_3c = uVar17 - *(int *)(param_1 + 0x10);\n        uVar2 = lVar19 + (ulonglong)local_3c;\n        if ((uint)((uint)uVar2 < local_3c) <= (uint)(uVar2 >> 0x20)) goto LAB_000658e2;\nLAB_00065ec0:\n        uVar12 = FUN_0004cb50(0);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar11 = dcgettext(0,unaff_EBP + 0x2a752,5);\n        warn(uVar11,uVar10,local_3c - local_20,uVar12);\n        break;\n      }\n      iVar5 = uVar16 - local_34;\n      if (iVar5 - 1U < 8) goto LAB_00065c45;\n      local_20 = 4;\n      local_44 = 4;\n      uVar18 = uVar17;\nLAB_000658c1:\n      local_4c = 0;\n      local_3c = uVar18 - *(int *)(param_1 + 0x10);\n      uVar2 = (ulonglong)local_3c;\n      uVar17 = uVar18;\nLAB_000658e2:\n      iVar5 = local_44;\n      uVar18 = (uint)(uVar2 >> 0x20);\n      if (*(uint *)(param_1 + 0x20) < uVar18 ||\n          *(uint *)(param_1 + 0x20) - uVar18 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar2))\n      goto LAB_00065ec0;\n      uVar18 = uVar17 + 2;\n      if (uVar18 < uVar16) {\n        local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,2);\n        if (local_44 + uVar18 < uVar16) {\nLAB_00065e10:\n          local_28 = local_2c - 2;\nLAB_00065944:\n          local_30 = (**(code **)(unaff_EBP + 0x54592))(uVar18,local_44);\n          goto LAB_0006595d;\n        }\n        local_28 = local_2c - 2;\n        local_44 = uVar16 - uVar18;\n        if (local_44 - 1U < 8) goto LAB_00065944;\nLAB_00065cf4:\n        iVar13 = *(int *)(unaff_EBP + 0x54526);\n        local_30 = 0;\n        if (iVar13 - 1U < 0xfffffffe) goto LAB_00065d0e;\nLAB_0006596f:\n        uVar17 = uVar18 + iVar5 + 1;\n        if (uVar16 <= uVar17) goto LAB_0006597e;\nLAB_00065d80:\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18 + iVar5,1);\n        uVar18 = uVar18 + iVar5 + 2;\n        if (uVar18 < uVar16) goto LAB_00065e60;\n        iVar5 = uVar16 - uVar17;\n        if (iVar5 - 1U < 8) goto LAB_000659ad;\nLAB_00065dbc:\n        bVar3 = 0;\n        if (local_28 < 2) goto LAB_000659c7;\nLAB_00065dcd:\n        if (local_2c != 0) {\n          iVar5 = unaff_EBP + 0x2c8ee;\nLAB_00065de4:\n          uVar10 = dcgettext(0,iVar5,5);\n          warn(uVar10);\n        }\n        break;\n      }\n      if (uVar16 <= uVar17) {\nLAB_00065919:\n        local_28 = 0xfffe;\n        local_2c = 0;\n        if (uVar16 <= uVar18 + local_44) goto LAB_00065cf4;\n        goto LAB_00065944;\n      }\n      uVar7 = (uVar16 - uVar17) - 1;\n      if (7 < uVar7) goto LAB_00065919;\n      local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,uVar16 - uVar17,uVar7,uVar7);\n      if (local_44 + uVar18 < uVar16) goto LAB_00065e10;\n      local_28 = local_2c - 2;\n      local_30 = 0;\nLAB_0006595d:\n      iVar13 = *(int *)(unaff_EBP + 0x54526);\n      if (0xfffffffd < iVar13 - 1U) goto LAB_0006596f;\nLAB_00065d0e:\n      iVar14 = 0;\n      piVar9 = (int *)(*(int *)(unaff_EBP + 0x5451e) + 0xc);\n      do {\n        if (*piVar9 == local_30 && piVar9[1] == 0) goto LAB_0006596f;\n        iVar14 = iVar14 + 1;\n        piVar9 = piVar9 + 0x14;\n      } while (iVar13 != iVar14);\n      iVar13 = *(int *)(param_1 + 8);\n      uVar10 = dcgettext(0,unaff_EBP + 0x2c8a2,5);\n      warn(uVar10,local_30,iVar13);\n      uVar17 = uVar18 + iVar5 + 1;\n      if (uVar17 < uVar16) goto LAB_00065d80;\nLAB_0006597e:\n      uVar18 = uVar18 + iVar5;\n      if ((uVar18 < uVar16) && ((uVar16 - uVar18) - 1 < 8)) {\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar16 - uVar18,iVar13,iVar13);\n        uVar18 = uVar18 + 2;\n        bVar3 = 0;\n        if (uVar18 < uVar16) {\nLAB_00065e60:\n          iVar5 = 1;\n          goto LAB_000659ad;\n        }\n      }\n      else {\n        uVar18 = uVar18 + 2;\n        if (uVar16 <= uVar18) {\n          cVar4 = '\0';\n          goto LAB_00065dbc;\n        }\n        cVar4 = '\0';\n        iVar5 = 1;\nLAB_000659ad:\n        bVar3 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n      }\n      if (1 < local_28) goto LAB_00065dcd;\nLAB_000659c7:\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c926,5);\n      printf(pcVar6,local_4c);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c94a,5);\n      printf(pcVar6,local_2c);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c96a,5);\n      printf(pcVar6,local_30);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c98e,5);\n      printf(pcVar6,cVar4);\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c9ae,5);\n      printf(pcVar6,(uint)bVar3);\n      bVar3 = bVar3 + cVar4;\n      if (7 < (byte)(bVar3 - 1)) {\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar12 = dcgettext(0,unaff_EBP + 0x2c9ce,5);\n        error(uVar12,uVar10);\n        break;\n      }\n      uVar17 = (uint)bVar3;\n      if ((uVar17 - 1 & uVar17) != 0) {\n        iVar5 = unaff_EBP + 0x2c9f6;\n        goto LAB_00065de4;\n      }\n      if (bVar3 < 5) {\n        iVar5 = unaff_EBP + 0x2e6d2;\n      }\n      else {\n        iVar5 = unaff_EBP + 0x2ca2a;\n      }\n      pcVar6 = (char *)dcgettext(0,iVar5,5);\n      printf(pcVar6);\n      iVar5 = uVar17 * 2;\n      iVar13 = (int)(uVar18 - local_34) % iVar5;\n      if (iVar13 != 0) {\n        uVar18 = (iVar5 - iVar13) + uVar18;\n      }\n      local_34 = local_34 + local_20 + local_4c;\n      if (uVar18 + iVar5 <= local_34) {\n        uVar18 = uVar18 + uVar17;\n        puVar1 = *(undefined4 **)(unaff_EBP + 0x4e792);\n        do {\n          uVar15 = uVar18 - uVar17;\n          uVar8 = uVar17;\n          uVar7 = uVar17;\n          if ((uVar18 < uVar16) ||\n             ((uVar15 < uVar16 && (uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8)))) {\n            (**(code **)(unaff_EBP + 0x54592))(uVar15,uVar8);\n            if ((uVar15 + iVar5 < uVar16) ||\n               ((uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8))))\n            goto LAB_00065b58;\n          }\n          else if (uVar15 + iVar5 < uVar16) {\nLAB_00065b58:\n            (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7);\n          }\n          printf(&UNK_00016b6e + unaff_EBP);\n          FUN_0004ce60();\n          FUN_0004ce60();\n          putc(10,(FILE *)*puVar1);\n          uVar18 = uVar18 + iVar5;\n        } while (uVar17 + uVar18 <= local_34);\n      }\n    }" ({ "{") (expression_statement "uVar17 = local_34 + 4;" (assignment_expression "uVar17 = local_34 + 4" (identifier "uVar17") (= "=") (binary_expression "local_34 + 4" (identifier "local_34") (+ "+") (number_literal "4"))) (; ";")) (if_statement "if (uVar17 < uVar16) {\n        iVar5 = 4;\nLAB_00065c45:\n        lVar19 = (**(code **)(unaff_EBP + 0x54592))(local_34,iVar5);\n        if (lVar19 == 0xffffffff) {\n          uVar18 = local_34 + 0xc;\n          if (uVar18 < uVar16) {\n            iVar5 = 8;\n          }\n          else if ((uVar16 <= uVar17) || (iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U)) {\n            local_20 = 0xc;\n            local_44 = 8;\n            goto LAB_000658c1;\n          }\n          lVar19 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n          local_20 = 0xc;\n          local_44 = 8;\n          uVar17 = uVar18;\n        }\n        else {\n          local_20 = 4;\n          local_44 = 4;\n        }\n        local_4c = (int)lVar19;\n        local_3c = uVar17 - *(int *)(param_1 + 0x10);\n        uVar2 = lVar19 + (ulonglong)local_3c;\n        if ((uint)((uint)uVar2 < local_3c) <= (uint)(uVar2 >> 0x20)) goto LAB_000658e2;\nLAB_00065ec0:\n        uVar12 = FUN_0004cb50(0);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar11 = dcgettext(0,unaff_EBP + 0x2a752,5);\n        warn(uVar11,uVar10,local_3c - local_20,uVar12);\n        break;\n      }" (if "if") (parenthesized_expression "(uVar17 < uVar16)" (( "(") (binary_expression "uVar17 < uVar16" (identifier "uVar17") (< "<") (identifier "uVar16")) () ")")) (compound_statement "{\n        iVar5 = 4;\nLAB_00065c45:\n        lVar19 = (**(code **)(unaff_EBP + 0x54592))(local_34,iVar5);\n        if (lVar19 == 0xffffffff) {\n          uVar18 = local_34 + 0xc;\n          if (uVar18 < uVar16) {\n            iVar5 = 8;\n          }\n          else if ((uVar16 <= uVar17) || (iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U)) {\n            local_20 = 0xc;\n            local_44 = 8;\n            goto LAB_000658c1;\n          }\n          lVar19 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n          local_20 = 0xc;\n          local_44 = 8;\n          uVar17 = uVar18;\n        }\n        else {\n          local_20 = 4;\n          local_44 = 4;\n        }\n        local_4c = (int)lVar19;\n        local_3c = uVar17 - *(int *)(param_1 + 0x10);\n        uVar2 = lVar19 + (ulonglong)local_3c;\n        if ((uint)((uint)uVar2 < local_3c) <= (uint)(uVar2 >> 0x20)) goto LAB_000658e2;\nLAB_00065ec0:\n        uVar12 = FUN_0004cb50(0);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar11 = dcgettext(0,unaff_EBP + 0x2a752,5);\n        warn(uVar11,uVar10,local_3c - local_20,uVar12);\n        break;\n      }" ({ "{") (expression_statement "iVar5 = 4;" (assignment_expression "iVar5 = 4" (identifier "iVar5") (= "=") (number_literal "4")) (; ";")) (labeled_statement "LAB_00065c45:\n        lVar19 = (**(code **)(unaff_EBP + 0x54592))(local_34,iVar5);" (statement_identifier "LAB_00065c45") (: ":") (expression_statement "lVar19 = (**(code **)(unaff_EBP + 0x54592))(local_34,iVar5);" (assignment_expression "lVar19 = (**(code **)(unaff_EBP + 0x54592))(local_34,iVar5)" (identifier "lVar19") (= "=") (call_expression "(**(code **)(unaff_EBP + 0x54592))(local_34,iVar5)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x54592))" (( "(") (pointer_expression "**(code **)(unaff_EBP + 0x54592)" (* "*") (pointer_expression "*(code **)(unaff_EBP + 0x54592)" (* "*") (cast_expression "(code **)(unaff_EBP + 0x54592)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + 0x54592)" (( "(") (binary_expression "unaff_EBP + 0x54592" (identifier "unaff_EBP") (+ "+") (number_literal "0x54592")) () ")"))))) () ")")) (argument_list "(local_34,iVar5)" (( "(") (identifier "local_34") (, ",") (identifier "iVar5") () ")")))) (; ";"))) (if_statement "if (lVar19 == 0xffffffff) {\n          uVar18 = local_34 + 0xc;\n          if (uVar18 < uVar16) {\n            iVar5 = 8;\n          }\n          else if ((uVar16 <= uVar17) || (iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U)) {\n            local_20 = 0xc;\n            local_44 = 8;\n            goto LAB_000658c1;\n          }\n          lVar19 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n          local_20 = 0xc;\n          local_44 = 8;\n          uVar17 = uVar18;\n        }\n        else {\n          local_20 = 4;\n          local_44 = 4;\n        }" (if "if") (parenthesized_expression "(lVar19 == 0xffffffff)" (( "(") (binary_expression "lVar19 == 0xffffffff" (identifier "lVar19") (== "==") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n          uVar18 = local_34 + 0xc;\n          if (uVar18 < uVar16) {\n            iVar5 = 8;\n          }\n          else if ((uVar16 <= uVar17) || (iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U)) {\n            local_20 = 0xc;\n            local_44 = 8;\n            goto LAB_000658c1;\n          }\n          lVar19 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n          local_20 = 0xc;\n          local_44 = 8;\n          uVar17 = uVar18;\n        }" ({ "{") (expression_statement "uVar18 = local_34 + 0xc;" (assignment_expression "uVar18 = local_34 + 0xc" (identifier "uVar18") (= "=") (binary_expression "local_34 + 0xc" (identifier "local_34") (+ "+") (number_literal "0xc"))) (; ";")) (if_statement "if (uVar18 < uVar16) {\n            iVar5 = 8;\n          }\n          else if ((uVar16 <= uVar17) || (iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U)) {\n            local_20 = 0xc;\n            local_44 = 8;\n            goto LAB_000658c1;\n          }" (if "if") (parenthesized_expression "(uVar18 < uVar16)" (( "(") (binary_expression "uVar18 < uVar16" (identifier "uVar18") (< "<") (identifier "uVar16")) () ")")) (compound_statement "{\n            iVar5 = 8;\n          }" ({ "{") (expression_statement "iVar5 = 8;" (assignment_expression "iVar5 = 8" (identifier "iVar5") (= "=") (number_literal "8")) (; ";")) (} "}")) (else_clause "else if ((uVar16 <= uVar17) || (iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U)) {\n            local_20 = 0xc;\n            local_44 = 8;\n            goto LAB_000658c1;\n          }" (else "else") (if_statement "if ((uVar16 <= uVar17) || (iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U)) {\n            local_20 = 0xc;\n            local_44 = 8;\n            goto LAB_000658c1;\n          }" (if "if") (parenthesized_expression "((uVar16 <= uVar17) || (iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U))" (( "(") (binary_expression "(uVar16 <= uVar17) || (iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U)" (parenthesized_expression "(uVar16 <= uVar17)" (( "(") (binary_expression "uVar16 <= uVar17" (identifier "uVar16") (<= "<=") (identifier "uVar17")) () ")")) (|| "||") (parenthesized_expression "(iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U)" (( "(") (comma_expression "iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U" (assignment_expression "iVar5 = uVar16 - uVar17" (identifier "iVar5") (= "=") (binary_expression "uVar16 - uVar17" (identifier "uVar16") (- "-") (identifier "uVar17"))) (, ",") (binary_expression "7 < iVar5 - 1U" (number_literal "7") (< "<") (binary_expression "iVar5 - 1U" (identifier "iVar5") (- "-") (number_literal "1U")))) () ")"))) () ")")) (compound_statement "{\n            local_20 = 0xc;\n            local_44 = 8;\n            goto LAB_000658c1;\n          }" ({ "{") (expression_statement "local_20 = 0xc;" (assignment_expression "local_20 = 0xc" (identifier "local_20") (= "=") (number_literal "0xc")) (; ";")) (expression_statement "local_44 = 8;" (assignment_expression "local_44 = 8" (identifier "local_44") (= "=") (number_literal "8")) (; ";")) (goto_statement "goto LAB_000658c1;" (goto "goto") (statement_identifier "LAB_000658c1") (; ";")) (} "}"))))) (expression_statement "lVar19 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);" (assignment_expression "lVar19 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5)" (identifier "lVar19") (= "=") (call_expression "(**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x54592))" (( "(") (pointer_expression "**(code **)(unaff_EBP + 0x54592)" (* "*") (pointer_expression "*(code **)(unaff_EBP + 0x54592)" (* "*") (cast_expression "(code **)(unaff_EBP + 0x54592)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + 0x54592)" (( "(") (binary_expression "unaff_EBP + 0x54592" (identifier "unaff_EBP") (+ "+") (number_literal "0x54592")) () ")"))))) () ")")) (argument_list "(uVar17,iVar5)" (( "(") (identifier "uVar17") (, ",") (identifier "iVar5") () ")")))) (; ";")) (expression_statement "local_20 = 0xc;" (assignment_expression "local_20 = 0xc" (identifier "local_20") (= "=") (number_literal "0xc")) (; ";")) (expression_statement "local_44 = 8;" (assignment_expression "local_44 = 8" (identifier "local_44") (= "=") (number_literal "8")) (; ";")) (expression_statement "uVar17 = uVar18;" (assignment_expression "uVar17 = uVar18" (identifier "uVar17") (= "=") (identifier "uVar18")) (; ";")) (} "}")) (else_clause "else {\n          local_20 = 4;\n          local_44 = 4;\n        }" (else "else") (compound_statement "{\n          local_20 = 4;\n          local_44 = 4;\n        }" ({ "{") (expression_statement "local_20 = 4;" (assignment_expression "local_20 = 4" (identifier "local_20") (= "=") (number_literal "4")) (; ";")) (expression_statement "local_44 = 4;" (assignment_expression "local_44 = 4" (identifier "local_44") (= "=") (number_literal "4")) (; ";")) (} "}")))) (expression_statement "local_4c = (int)lVar19;" (assignment_expression "local_4c = (int)lVar19" (identifier "local_4c") (= "=") (cast_expression "(int)lVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar19"))) (; ";")) (expression_statement "local_3c = uVar17 - *(int *)(param_1 + 0x10);" (assignment_expression "local_3c = uVar17 - *(int *)(param_1 + 0x10)" (identifier "local_3c") (= "=") (binary_expression "uVar17 - *(int *)(param_1 + 0x10)" (identifier "uVar17") (- "-") (pointer_expression "*(int *)(param_1 + 0x10)" (* "*") (cast_expression "(int *)(param_1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))))) (; ";")) (expression_statement "uVar2 = lVar19 + (ulonglong)local_3c;" (assignment_expression "uVar2 = lVar19 + (ulonglong)local_3c" (identifier "uVar2") (= "=") (binary_expression "lVar19 + (ulonglong)local_3c" (identifier "lVar19") (+ "+") (cast_expression "(ulonglong)local_3c" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "local_3c")))) (; ";")) (if_statement "if ((uint)((uint)uVar2 < local_3c) <= (uint)(uVar2 >> 0x20)) goto LAB_000658e2;" (if "if") (parenthesized_expression "((uint)((uint)uVar2 < local_3c) <= (uint)(uVar2 >> 0x20))" (( "(") (binary_expression "(uint)((uint)uVar2 < local_3c) <= (uint)(uVar2 >> 0x20)" (call_expression "(uint)((uint)uVar2 < local_3c)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((uint)uVar2 < local_3c)" (( "(") (binary_expression "(uint)uVar2 < local_3c" (cast_expression "(uint)uVar2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar2")) (< "<") (identifier "local_3c")) () ")"))) (<= "<=") (call_expression "(uint)(uVar2 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar2 >> 0x20)" (( "(") (binary_expression "uVar2 >> 0x20" (identifier "uVar2") (>> ">>") (number_literal "0x20")) () ")")))) () ")")) (goto_statement "goto LAB_000658e2;" (goto "goto") (statement_identifier "LAB_000658e2") (; ";"))) (labeled_statement "LAB_00065ec0:\n        uVar12 = FUN_0004cb50(0);" (statement_identifier "LAB_00065ec0") (: ":") (expression_statement "uVar12 = FUN_0004cb50(0);" (assignment_expression "uVar12 = FUN_0004cb50(0)" (identifier "uVar12") (= "=") (call_expression "FUN_0004cb50(0)" (identifier "FUN_0004cb50") (argument_list "(0)" (( "(") (number_literal "0") () ")")))) (; ";"))) (expression_statement "uVar10 = *(undefined4 *)(param_1 + 8);" (assignment_expression "uVar10 = *(undefined4 *)(param_1 + 8)" (identifier "uVar10") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 8)" (* "*") (cast_expression "(undefined4 *)(param_1 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar11 = dcgettext(0,unaff_EBP + 0x2a752,5);" (assignment_expression "uVar11 = dcgettext(0,unaff_EBP + 0x2a752,5)" (identifier "uVar11") (= "=") (call_expression "dcgettext(0,unaff_EBP + 0x2a752,5)" (identifier "dcgettext") (argument_list "(0,unaff_EBP + 0x2a752,5)" (( "(") (number_literal "0") (, ",") (binary_expression "unaff_EBP + 0x2a752" (identifier "unaff_EBP") (+ "+") (number_literal "0x2a752")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "warn(uVar11,uVar10,local_3c - local_20,uVar12);" (call_expression "warn(uVar11,uVar10,local_3c - local_20,uVar12)" (identifier "warn") (argument_list "(uVar11,uVar10,local_3c - local_20,uVar12)" (( "(") (identifier "uVar11") (, ",") (identifier "uVar10") (, ",") (binary_expression "local_3c - local_20" (identifier "local_3c") (- "-") (identifier "local_20")) (, ",") (identifier "uVar12") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "iVar5 = uVar16 - local_34;" (assignment_expression "iVar5 = uVar16 - local_34" (identifier "iVar5") (= "=") (binary_expression "uVar16 - local_34" (identifier "uVar16") (- "-") (identifier "local_34"))) (; ";")) (if_statement "if (iVar5 - 1U < 8) goto LAB_00065c45;" (if "if") (parenthesized_expression "(iVar5 - 1U < 8)" (( "(") (binary_expression "iVar5 - 1U < 8" (binary_expression "iVar5 - 1U" (identifier "iVar5") (- "-") (number_literal "1U")) (< "<") (number_literal "8")) () ")")) (goto_statement "goto LAB_00065c45;" (goto "goto") (statement_identifier "LAB_00065c45") (; ";"))) (expression_statement "local_20 = 4;" (assignment_expression "local_20 = 4" (identifier "local_20") (= "=") (number_literal "4")) (; ";")) (expression_statement "local_44 = 4;" (assignment_expression "local_44 = 4" (identifier "local_44") (= "=") (number_literal "4")) (; ";")) (expression_statement "uVar18 = uVar17;" (assignment_expression "uVar18 = uVar17" (identifier "uVar18") (= "=") (identifier "uVar17")) (; ";")) (labeled_statement "LAB_000658c1:\n      local_4c = 0;" (statement_identifier "LAB_000658c1") (: ":") (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" (identifier "local_4c") (= "=") (number_literal "0")) (; ";"))) (expression_statement "local_3c = uVar18 - *(int *)(param_1 + 0x10);" (assignment_expression "local_3c = uVar18 - *(int *)(param_1 + 0x10)" (identifier "local_3c") (= "=") (binary_expression "uVar18 - *(int *)(param_1 + 0x10)" (identifier "uVar18") (- "-") (pointer_expression "*(int *)(param_1 + 0x10)" (* "*") (cast_expression "(int *)(param_1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))))) (; ";")) (expression_statement "uVar2 = (ulonglong)local_3c;" (assignment_expression "uVar2 = (ulonglong)local_3c" (identifier "uVar2") (= "=") (cast_expression "(ulonglong)local_3c" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "local_3c"))) (; ";")) (expression_statement "uVar17 = uVar18;" (assignment_expression "uVar17 = uVar18" (identifier "uVar17") (= "=") (identifier "uVar18")) (; ";")) (labeled_statement "LAB_000658e2:\n      iVar5 = local_44;" (statement_identifier "LAB_000658e2") (: ":") (expression_statement "iVar5 = local_44;" (assignment_expression "iVar5 = local_44" (identifier "iVar5") (= "=") (identifier "local_44")) (; ";"))) (expression_statement "uVar18 = (uint)(uVar2 >> 0x20);" (assignment_expression "uVar18 = (uint)(uVar2 >> 0x20)" (identifier "uVar18") (= "=") (call_expression "(uint)(uVar2 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar2 >> 0x20)" (( "(") (binary_expression "uVar2 >> 0x20" (identifier "uVar2") (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (if_statement "if (*(uint *)(param_1 + 0x20) < uVar18 ||\n          *(uint *)(param_1 + 0x20) - uVar18 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar2))\n      goto LAB_00065ec0;" (if "if") (parenthesized_expression "(*(uint *)(param_1 + 0x20) < uVar18 ||\n          *(uint *)(param_1 + 0x20) - uVar18 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar2))" (( "(") (binary_expression "*(uint *)(param_1 + 0x20) < uVar18 ||\n          *(uint *)(param_1 + 0x20) - uVar18 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar2)" (binary_expression "*(uint *)(param_1 + 0x20) < uVar18" (pointer_expression "*(uint *)(param_1 + 0x20)" (* "*") (cast_expression "(uint *)(param_1 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (< "<") (identifier "uVar18")) (|| "||") (binary_expression "*(uint *)(param_1 + 0x20) - uVar18 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar2)" (binary_expression "*(uint *)(param_1 + 0x20) - uVar18" (pointer_expression "*(uint *)(param_1 + 0x20)" (* "*") (cast_expression "(uint *)(param_1 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (- "-") (identifier "uVar18")) (< "<") (call_expression "(uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(uint *)(param_1 + 0x1c) < (uint)uVar2)" (( "(") (binary_expression "*(uint *)(param_1 + 0x1c) < (uint)uVar2" (pointer_expression "*(uint *)(param_1 + 0x1c)" (* "*") (cast_expression "(uint *)(param_1 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")")))) (< "<") (cast_expression "(uint)uVar2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar2"))) () ")"))))) () ")")) (goto_statement "goto LAB_00065ec0;" (goto "goto") (statement_identifier "LAB_00065ec0") (; ";"))) (expression_statement "uVar18 = uVar17 + 2;" (assignment_expression "uVar18 = uVar17 + 2" (identifier "uVar18") (= "=") (binary_expression "uVar17 + 2" (identifier "uVar17") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if (uVar18 < uVar16) {\n        local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,2);\n        if (local_44 + uVar18 < uVar16) {\nLAB_00065e10:\n          local_28 = local_2c - 2;\nLAB_00065944:\n          local_30 = (**(code **)(unaff_EBP + 0x54592))(uVar18,local_44);\n          goto LAB_0006595d;\n        }\n        local_28 = local_2c - 2;\n        local_44 = uVar16 - uVar18;\n        if (local_44 - 1U < 8) goto LAB_00065944;\nLAB_00065cf4:\n        iVar13 = *(int *)(unaff_EBP + 0x54526);\n        local_30 = 0;\n        if (iVar13 - 1U < 0xfffffffe) goto LAB_00065d0e;\nLAB_0006596f:\n        uVar17 = uVar18 + iVar5 + 1;\n        if (uVar16 <= uVar17) goto LAB_0006597e;\nLAB_00065d80:\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18 + iVar5,1);\n        uVar18 = uVar18 + iVar5 + 2;\n        if (uVar18 < uVar16) goto LAB_00065e60;\n        iVar5 = uVar16 - uVar17;\n        if (iVar5 - 1U < 8) goto LAB_000659ad;\nLAB_00065dbc:\n        bVar3 = 0;\n        if (local_28 < 2) goto LAB_000659c7;\nLAB_00065dcd:\n        if (local_2c != 0) {\n          iVar5 = unaff_EBP + 0x2c8ee;\nLAB_00065de4:\n          uVar10 = dcgettext(0,iVar5,5);\n          warn(uVar10);\n        }\n        break;\n      }" (if "if") (parenthesized_expression "(uVar18 < uVar16)" (( "(") (binary_expression "uVar18 < uVar16" (identifier "uVar18") (< "<") (identifier "uVar16")) () ")")) (compound_statement "{\n        local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,2);\n        if (local_44 + uVar18 < uVar16) {\nLAB_00065e10:\n          local_28 = local_2c - 2;\nLAB_00065944:\n          local_30 = (**(code **)(unaff_EBP + 0x54592))(uVar18,local_44);\n          goto LAB_0006595d;\n        }\n        local_28 = local_2c - 2;\n        local_44 = uVar16 - uVar18;\n        if (local_44 - 1U < 8) goto LAB_00065944;\nLAB_00065cf4:\n        iVar13 = *(int *)(unaff_EBP + 0x54526);\n        local_30 = 0;\n        if (iVar13 - 1U < 0xfffffffe) goto LAB_00065d0e;\nLAB_0006596f:\n        uVar17 = uVar18 + iVar5 + 1;\n        if (uVar16 <= uVar17) goto LAB_0006597e;\nLAB_00065d80:\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18 + iVar5,1);\n        uVar18 = uVar18 + iVar5 + 2;\n        if (uVar18 < uVar16) goto LAB_00065e60;\n        iVar5 = uVar16 - uVar17;\n        if (iVar5 - 1U < 8) goto LAB_000659ad;\nLAB_00065dbc:\n        bVar3 = 0;\n        if (local_28 < 2) goto LAB_000659c7;\nLAB_00065dcd:\n        if (local_2c != 0) {\n          iVar5 = unaff_EBP + 0x2c8ee;\nLAB_00065de4:\n          uVar10 = dcgettext(0,iVar5,5);\n          warn(uVar10);\n        }\n        break;\n      }" ({ "{") (expression_statement "local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,2);" (assignment_expression "local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,2)" (identifier "local_2c") (= "=") (call_expression "(**(code **)(unaff_EBP + 0x54592))(uVar17,2)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x54592))" (( "(") (pointer_expression "**(code **)(unaff_EBP + 0x54592)" (* "*") (pointer_expression "*(code **)(unaff_EBP + 0x54592)" (* "*") (cast_expression "(code **)(unaff_EBP + 0x54592)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + 0x54592)" (( "(") (binary_expression "unaff_EBP + 0x54592" (identifier "unaff_EBP") (+ "+") (number_literal "0x54592")) () ")"))))) () ")")) (argument_list "(uVar17,2)" (( "(") (identifier "uVar17") (, ",") (number_literal "2") () ")")))) (; ";")) (if_statement "if (local_44 + uVar18 < uVar16) {\nLAB_00065e10:\n          local_28 = local_2c - 2;\nLAB_00065944:\n          local_30 = (**(code **)(unaff_EBP + 0x54592))(uVar18,local_44);\n          goto LAB_0006595d;\n        }" (if "if") (parenthesized_expression "(local_44 + uVar18 < uVar16)" (( "(") (binary_expression "local_44 + uVar18 < uVar16" (binary_expression "local_44 + uVar18" (identifier "local_44") (+ "+") (identifier "uVar18")) (< "<") (identifier "uVar16")) () ")")) (compound_statement "{\nLAB_00065e10:\n          local_28 = local_2c - 2;\nLAB_00065944:\n          local_30 = (**(code **)(unaff_EBP + 0x54592))(uVar18,local_44);\n          goto LAB_0006595d;\n        }" ({ "{") (labeled_statement "LAB_00065e10:\n          local_28 = local_2c - 2;" (statement_identifier "LAB_00065e10") (: ":") (expression_statement "local_28 = local_2c - 2;" (assignment_expression "local_28 = local_2c - 2" (identifier "local_28") (= "=") (binary_expression "local_2c - 2" (identifier "local_2c") (- "-") (number_literal "2"))) (; ";"))) (labeled_statement "LAB_00065944:\n          local_30 = (**(code **)(unaff_EBP + 0x54592))(uVar18,local_44);" (statement_identifier "LAB_00065944") (: ":") (expression_statement "local_30 = (**(code **)(unaff_EBP + 0x54592))(uVar18,local_44);" (assignment_expression "local_30 = (**(code **)(unaff_EBP + 0x54592))(uVar18,local_44)" (identifier "local_30") (= "=") (call_expression "(**(code **)(unaff_EBP + 0x54592))(uVar18,local_44)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x54592))" (( "(") (pointer_expression "**(code **)(unaff_EBP + 0x54592)" (* "*") (pointer_expression "*(code **)(unaff_EBP + 0x54592)" (* "*") (cast_expression "(code **)(unaff_EBP + 0x54592)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + 0x54592)" (( "(") (binary_expression "unaff_EBP + 0x54592" (identifier "unaff_EBP") (+ "+") (number_literal "0x54592")) () ")"))))) () ")")) (argument_list "(uVar18,local_44)" (( "(") (identifier "uVar18") (, ",") (identifier "local_44") () ")")))) (; ";"))) (goto_statement "goto LAB_0006595d;" (goto "goto") (statement_identifier "LAB_0006595d") (; ";")) (} "}"))) (expression_statement "local_28 = local_2c - 2;" (assignment_expression "local_28 = local_2c - 2" (identifier "local_28") (= "=") (binary_expression "local_2c - 2" (identifier "local_2c") (- "-") (number_literal "2"))) (; ";")) (expression_statement "local_44 = uVar16 - uVar18;" (assignment_expression "local_44 = uVar16 - uVar18" (identifier "local_44") (= "=") (binary_expression "uVar16 - uVar18" (identifier "uVar16") (- "-") (identifier "uVar18"))) (; ";")) (if_statement "if (local_44 - 1U < 8) goto LAB_00065944;" (if "if") (parenthesized_expression "(local_44 - 1U < 8)" (( "(") (binary_expression "local_44 - 1U < 8" (binary_expression "local_44 - 1U" (identifier "local_44") (- "-") (number_literal "1U")) (< "<") (number_literal "8")) () ")")) (goto_statement "goto LAB_00065944;" (goto "goto") (statement_identifier "LAB_00065944") (; ";"))) (labeled_statement "LAB_00065cf4:\n        iVar13 = *(int *)(unaff_EBP + 0x54526);" (statement_identifier "LAB_00065cf4") (: ":") (expression_statement "iVar13 = *(int *)(unaff_EBP + 0x54526);" (assignment_expression "iVar13 = *(int *)(unaff_EBP + 0x54526)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(unaff_EBP + 0x54526)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x54526)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x54526)" (( "(") (binary_expression "unaff_EBP + 0x54526" (identifier "unaff_EBP") (+ "+") (number_literal "0x54526")) () ")"))))) (; ";"))) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" (identifier "local_30") (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar13 - 1U < 0xfffffffe) goto LAB_00065d0e;" (if "if") (parenthesized_expression "(iVar13 - 1U < 0xfffffffe)" (( "(") (binary_expression "iVar13 - 1U < 0xfffffffe" (binary_expression "iVar13 - 1U" (identifier "iVar13") (- "-") (number_literal "1U")) (< "<") (number_literal "0xfffffffe")) () ")")) (goto_statement "goto LAB_00065d0e;" (goto "goto") (statement_identifier "LAB_00065d0e") (; ";"))) (labeled_statement "LAB_0006596f:\n        uVar17 = uVar18 + iVar5 + 1;" (statement_identifier "LAB_0006596f") (: ":") (expression_statement "uVar17 = uVar18 + iVar5 + 1;" (assignment_expression "uVar17 = uVar18 + iVar5 + 1" (identifier "uVar17") (= "=") (binary_expression "uVar18 + iVar5 + 1" (binary_expression "uVar18 + iVar5" (identifier "uVar18") (+ "+") (identifier "iVar5")) (+ "+") (number_literal "1"))) (; ";"))) (if_statement "if (uVar16 <= uVar17) goto LAB_0006597e;" (if "if") (parenthesized_expression "(uVar16 <= uVar17)" (( "(") (binary_expression "uVar16 <= uVar17" (identifier "uVar16") (<= "<=") (identifier "uVar17")) () ")")) (goto_statement "goto LAB_0006597e;" (goto "goto") (statement_identifier "LAB_0006597e") (; ";"))) (labeled_statement "LAB_00065d80:\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18 + iVar5,1);" (statement_identifier "LAB_00065d80") (: ":") (expression_statement "cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18 + iVar5,1);" (assignment_expression "cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18 + iVar5,1)" (identifier "cVar4") (= "=") (call_expression "(**(code **)(unaff_EBP + 0x54592))(uVar18 + iVar5,1)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x54592))" (( "(") (pointer_expression "**(code **)(unaff_EBP + 0x54592)" (* "*") (pointer_expression "*(code **)(unaff_EBP + 0x54592)" (* "*") (cast_expression "(code **)(unaff_EBP + 0x54592)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + 0x54592)" (( "(") (binary_expression "unaff_EBP + 0x54592" (identifier "unaff_EBP") (+ "+") (number_literal "0x54592")) () ")"))))) () ")")) (argument_list "(uVar18 + iVar5,1)" (( "(") (binary_expression "uVar18 + iVar5" (identifier "uVar18") (+ "+") (identifier "iVar5")) (, ",") (number_literal "1") () ")")))) (; ";"))) (expression_statement "uVar18 = uVar18 + iVar5 + 2;" (assignment_expression "uVar18 = uVar18 + iVar5 + 2" (identifier "uVar18") (= "=") (binary_expression "uVar18 + iVar5 + 2" (binary_expression "uVar18 + iVar5" (identifier "uVar18") (+ "+") (identifier "iVar5")) (+ "+") (number_literal "2"))) (; ";")) (if_statement "if (uVar18 < uVar16) goto LAB_00065e60;" (if "if") (parenthesized_expression "(uVar18 < uVar16)" (( "(") (binary_expression "uVar18 < uVar16" (identifier "uVar18") (< "<") (identifier "uVar16")) () ")")) (goto_statement "goto LAB_00065e60;" (goto "goto") (statement_identifier "LAB_00065e60") (; ";"))) (expression_statement "iVar5 = uVar16 - uVar17;" (assignment_expression "iVar5 = uVar16 - uVar17" (identifier "iVar5") (= "=") (binary_expression "uVar16 - uVar17" (identifier "uVar16") (- "-") (identifier "uVar17"))) (; ";")) (if_statement "if (iVar5 - 1U < 8) goto LAB_000659ad;" (if "if") (parenthesized_expression "(iVar5 - 1U < 8)" (( "(") (binary_expression "iVar5 - 1U < 8" (binary_expression "iVar5 - 1U" (identifier "iVar5") (- "-") (number_literal "1U")) (< "<") (number_literal "8")) () ")")) (goto_statement "goto LAB_000659ad;" (goto "goto") (statement_identifier "LAB_000659ad") (; ";"))) (labeled_statement "LAB_00065dbc:\n        bVar3 = 0;" (statement_identifier "LAB_00065dbc") (: ":") (expression_statement "bVar3 = 0;" (assignment_expression "bVar3 = 0" (identifier "bVar3") (= "=") (number_literal "0")) (; ";"))) (if_statement "if (local_28 < 2) goto LAB_000659c7;" (if "if") (parenthesized_expression "(local_28 < 2)" (( "(") (binary_expression "local_28 < 2" (identifier "local_28") (< "<") (number_literal "2")) () ")")) (goto_statement "goto LAB_000659c7;" (goto "goto") (statement_identifier "LAB_000659c7") (; ";"))) (labeled_statement "LAB_00065dcd:\n        if (local_2c != 0) {\n          iVar5 = unaff_EBP + 0x2c8ee;\nLAB_00065de4:\n          uVar10 = dcgettext(0,iVar5,5);\n          warn(uVar10);\n        }" (statement_identifier "LAB_00065dcd") (: ":") (if_statement "if (local_2c != 0) {\n          iVar5 = unaff_EBP + 0x2c8ee;\nLAB_00065de4:\n          uVar10 = dcgettext(0,iVar5,5);\n          warn(uVar10);\n        }" (if "if") (parenthesized_expression "(local_2c != 0)" (( "(") (binary_expression "local_2c != 0" (identifier "local_2c") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          iVar5 = unaff_EBP + 0x2c8ee;\nLAB_00065de4:\n          uVar10 = dcgettext(0,iVar5,5);\n          warn(uVar10);\n        }" ({ "{") (expression_statement "iVar5 = unaff_EBP + 0x2c8ee;" (assignment_expression "iVar5 = unaff_EBP + 0x2c8ee" (identifier "iVar5") (= "=") (binary_expression "unaff_EBP + 0x2c8ee" (identifier "unaff_EBP") (+ "+") (number_literal "0x2c8ee"))) (; ";")) (labeled_statement "LAB_00065de4:\n          uVar10 = dcgettext(0,iVar5,5);" (statement_identifier "LAB_00065de4") (: ":") (expression_statement "uVar10 = dcgettext(0,iVar5,5);" (assignment_expression "uVar10 = dcgettext(0,iVar5,5)" (identifier "uVar10") (= "=") (call_expression "dcgettext(0,iVar5,5)" (identifier "dcgettext") (argument_list "(0,iVar5,5)" (( "(") (number_literal "0") (, ",") (identifier "iVar5") (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "warn(uVar10);" (call_expression "warn(uVar10)" (identifier "warn") (argument_list "(uVar10)" (( "(") (identifier "uVar10") () ")"))) (; ";")) (} "}")))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (if_statement "if (uVar16 <= uVar17) {\nLAB_00065919:\n        local_28 = 0xfffe;\n        local_2c = 0;\n        if (uVar16 <= uVar18 + local_44) goto LAB_00065cf4;\n        goto LAB_00065944;\n      }" (if "if") (parenthesized_expression "(uVar16 <= uVar17)" (( "(") (binary_expression "uVar16 <= uVar17" (identifier "uVar16") (<= "<=") (identifier "uVar17")) () ")")) (compound_statement "{\nLAB_00065919:\n        local_28 = 0xfffe;\n        local_2c = 0;\n        if (uVar16 <= uVar18 + local_44) goto LAB_00065cf4;\n        goto LAB_00065944;\n      }" ({ "{") (labeled_statement "LAB_00065919:\n        local_28 = 0xfffe;" (statement_identifier "LAB_00065919") (: ":") (expression_statement "local_28 = 0xfffe;" (assignment_expression "local_28 = 0xfffe" (identifier "local_28") (= "=") (number_literal "0xfffe")) (; ";"))) (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" (identifier "local_2c") (= "=") (number_literal "0")) (; ";")) (if_statement "if (uVar16 <= uVar18 + local_44) goto LAB_00065cf4;" (if "if") (parenthesized_expression "(uVar16 <= uVar18 + local_44)" (( "(") (binary_expression "uVar16 <= uVar18 + local_44" (identifier "uVar16") (<= "<=") (binary_expression "uVar18 + local_44" (identifier "uVar18") (+ "+") (identifier "local_44"))) () ")")) (goto_statement "goto LAB_00065cf4;" (goto "goto") (statement_identifier "LAB_00065cf4") (; ";"))) (goto_statement "goto LAB_00065944;" (goto "goto") (statement_identifier "LAB_00065944") (; ";")) (} "}"))) (expression_statement "uVar7 = (uVar16 - uVar17) - 1;" (assignment_expression "uVar7 = (uVar16 - uVar17) - 1" (identifier "uVar7") (= "=") (binary_expression "(uVar16 - uVar17) - 1" (parenthesized_expression "(uVar16 - uVar17)" (( "(") (binary_expression "uVar16 - uVar17" (identifier "uVar16") (- "-") (identifier "uVar17")) () ")")) (- "-") (number_literal "1"))) (; ";")) (if_statement "if (7 < uVar7) goto LAB_00065919;" (if "if") (parenthesized_expression "(7 < uVar7)" (( "(") (binary_expression "7 < uVar7" (number_literal "7") (< "<") (identifier "uVar7")) () ")")) (goto_statement "goto LAB_00065919;" (goto "goto") (statement_identifier "LAB_00065919") (; ";"))) (expression_statement "local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,uVar16 - uVar17,uVar7,uVar7);" (assignment_expression "local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,uVar16 - uVar17,uVar7,uVar7)" (identifier "local_2c") (= "=") (call_expression "(**(code **)(unaff_EBP + 0x54592))(uVar17,uVar16 - uVar17,uVar7,uVar7)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x54592))" (( "(") (pointer_expression "**(code **)(unaff_EBP + 0x54592)" (* "*") (pointer_expression "*(code **)(unaff_EBP + 0x54592)" (* "*") (cast_expression "(code **)(unaff_EBP + 0x54592)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + 0x54592)" (( "(") (binary_expression "unaff_EBP + 0x54592" (identifier "unaff_EBP") (+ "+") (number_literal "0x54592")) () ")"))))) () ")")) (argument_list "(uVar17,uVar16 - uVar17,uVar7,uVar7)" (( "(") (identifier "uVar17") (, ",") (binary_expression "uVar16 - uVar17" (identifier "uVar16") (- "-") (identifier "uVar17")) (, ",") (identifier "uVar7") (, ",") (identifier "uVar7") () ")")))) (; ";")) (if_statement "if (local_44 + uVar18 < uVar16) goto LAB_00065e10;" (if "if") (parenthesized_expression "(local_44 + uVar18 < uVar16)" (( "(") (binary_expression "local_44 + uVar18 < uVar16" (binary_expression "local_44 + uVar18" (identifier "local_44") (+ "+") (identifier "uVar18")) (< "<") (identifier "uVar16")) () ")")) (goto_statement "goto LAB_00065e10;" (goto "goto") (statement_identifier "LAB_00065e10") (; ";"))) (expression_statement "local_28 = local_2c - 2;" (assignment_expression "local_28 = local_2c - 2" (identifier "local_28") (= "=") (binary_expression "local_2c - 2" (identifier "local_2c") (- "-") (number_literal "2"))) (; ";")) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" (identifier "local_30") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0006595d:\n      iVar13 = *(int *)(unaff_EBP + 0x54526);" (statement_identifier "LAB_0006595d") (: ":") (expression_statement "iVar13 = *(int *)(unaff_EBP + 0x54526);" (assignment_expression "iVar13 = *(int *)(unaff_EBP + 0x54526)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(unaff_EBP + 0x54526)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x54526)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x54526)" (( "(") (binary_expression "unaff_EBP + 0x54526" (identifier "unaff_EBP") (+ "+") (number_literal "0x54526")) () ")"))))) (; ";"))) (if_statement "if (0xfffffffd < iVar13 - 1U) goto LAB_0006596f;" (if "if") (parenthesized_expression "(0xfffffffd < iVar13 - 1U)" (( "(") (binary_expression "0xfffffffd < iVar13 - 1U" (number_literal "0xfffffffd") (< "<") (binary_expression "iVar13 - 1U" (identifier "iVar13") (- "-") (number_literal "1U"))) () ")")) (goto_statement "goto LAB_0006596f;" (goto "goto") (statement_identifier "LAB_0006596f") (; ";"))) (labeled_statement "LAB_00065d0e:\n      iVar14 = 0;" (statement_identifier "LAB_00065d0e") (: ":") (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" (identifier "iVar14") (= "=") (number_literal "0")) (; ";"))) (expression_statement "piVar9 = (int *)(*(int *)(unaff_EBP + 0x5451e) + 0xc);" (assignment_expression "piVar9 = (int *)(*(int *)(unaff_EBP + 0x5451e) + 0xc)" (identifier "piVar9") (= "=") (cast_expression "(int *)(*(int *)(unaff_EBP + 0x5451e) + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(unaff_EBP + 0x5451e) + 0xc)" (( "(") (binary_expression "*(int *)(unaff_EBP + 0x5451e) + 0xc" (pointer_expression "*(int *)(unaff_EBP + 0x5451e)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x5451e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x5451e)" (( "(") (binary_expression "unaff_EBP + 0x5451e" (identifier "unaff_EBP") (+ "+") (number_literal "0x5451e")) () ")")))) (+ "+") (number_literal "0xc")) () ")")))) (; ";")) (do_statement "do {\n        if (*piVar9 == local_30 && piVar9[1] == 0) goto LAB_0006596f;\n        iVar14 = iVar14 + 1;\n        piVar9 = piVar9 + 0x14;\n      } while (iVar13 != iVar14);" (do "do") (compound_statement "{\n        if (*piVar9 == local_30 && piVar9[1] == 0) goto LAB_0006596f;\n        iVar14 = iVar14 + 1;\n        piVar9 = piVar9 + 0x14;\n      }" ({ "{") (if_statement "if (*piVar9 == local_30 && piVar9[1] == 0) goto LAB_0006596f;" (if "if") (parenthesized_expression "(*piVar9 == local_30 && piVar9[1] == 0)" (( "(") (binary_expression "*piVar9 == local_30 && piVar9[1] == 0" (binary_expression "*piVar9 == local_30" (pointer_expression "*piVar9" (* "*") (identifier "piVar9")) (== "==") (identifier "local_30")) (&& "&&") (binary_expression "piVar9[1] == 0" (subscript_expression "piVar9[1]" (identifier "piVar9") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0"))) () ")")) (goto_statement "goto LAB_0006596f;" (goto "goto") (statement_identifier "LAB_0006596f") (; ";"))) (expression_statement "iVar14 = iVar14 + 1;" (assignment_expression "iVar14 = iVar14 + 1" (identifier "iVar14") (= "=") (binary_expression "iVar14 + 1" (identifier "iVar14") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar9 = piVar9 + 0x14;" (assignment_expression "piVar9 = piVar9 + 0x14" (identifier "piVar9") (= "=") (binary_expression "piVar9 + 0x14" (identifier "piVar9") (+ "+") (number_literal "0x14"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar13 != iVar14)" (( "(") (binary_expression "iVar13 != iVar14" (identifier "iVar13") (!= "!=") (identifier "iVar14")) () ")")) (; ";")) (expression_statement "iVar13 = *(int *)(param_1 + 8);" (assignment_expression "iVar13 = *(int *)(param_1 + 8)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar10 = dcgettext(0,unaff_EBP + 0x2c8a2,5);" (assignment_expression "uVar10 = dcgettext(0,unaff_EBP + 0x2c8a2,5)" (identifier "uVar10") (= "=") (call_expression "dcgettext(0,unaff_EBP + 0x2c8a2,5)" (identifier "dcgettext") (argument_list "(0,unaff_EBP + 0x2c8a2,5)" (( "(") (number_literal "0") (, ",") (binary_expression "unaff_EBP + 0x2c8a2" (identifier "unaff_EBP") (+ "+") (number_literal "0x2c8a2")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "warn(uVar10,local_30,iVar13);" (call_expression "warn(uVar10,local_30,iVar13)" (identifier "warn") (argument_list "(uVar10,local_30,iVar13)" (( "(") (identifier "uVar10") (, ",") (identifier "local_30") (, ",") (identifier "iVar13") () ")"))) (; ";")) (expression_statement "uVar17 = uVar18 + iVar5 + 1;" (assignment_expression "uVar17 = uVar18 + iVar5 + 1" (identifier "uVar17") (= "=") (binary_expression "uVar18 + iVar5 + 1" (binary_expression "uVar18 + iVar5" (identifier "uVar18") (+ "+") (identifier "iVar5")) (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar17 < uVar16) goto LAB_00065d80;" (if "if") (parenthesized_expression "(uVar17 < uVar16)" (( "(") (binary_expression "uVar17 < uVar16" (identifier "uVar17") (< "<") (identifier "uVar16")) () ")")) (goto_statement "goto LAB_00065d80;" (goto "goto") (statement_identifier "LAB_00065d80") (; ";"))) (labeled_statement "LAB_0006597e:\n      uVar18 = uVar18 + iVar5;" (statement_identifier "LAB_0006597e") (: ":") (expression_statement "uVar18 = uVar18 + iVar5;" (assignment_expression "uVar18 = uVar18 + iVar5" (identifier "uVar18") (= "=") (binary_expression "uVar18 + iVar5" (identifier "uVar18") (+ "+") (identifier "iVar5"))) (; ";"))) (if_statement "if ((uVar18 < uVar16) && ((uVar16 - uVar18) - 1 < 8)) {\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar16 - uVar18,iVar13,iVar13);\n        uVar18 = uVar18 + 2;\n        bVar3 = 0;\n        if (uVar18 < uVar16) {\nLAB_00065e60:\n          iVar5 = 1;\n          goto LAB_000659ad;\n        }\n      }\n      else {\n        uVar18 = uVar18 + 2;\n        if (uVar16 <= uVar18) {\n          cVar4 = '\0';\n          goto LAB_00065dbc;\n        }\n        cVar4 = '\0';\n        iVar5 = 1;\nLAB_000659ad:\n        bVar3 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n      }" (if "if") (parenthesized_expression "((uVar18 < uVar16) && ((uVar16 - uVar18) - 1 < 8))" (( "(") (binary_expression "(uVar18 < uVar16) && ((uVar16 - uVar18) - 1 < 8)" (parenthesized_expression "(uVar18 < uVar16)" (( "(") (binary_expression "uVar18 < uVar16" (identifier "uVar18") (< "<") (identifier "uVar16")) () ")")) (&& "&&") (parenthesized_expression "((uVar16 - uVar18) - 1 < 8)" (( "(") (binary_expression "(uVar16 - uVar18) - 1 < 8" (binary_expression "(uVar16 - uVar18) - 1" (parenthesized_expression "(uVar16 - uVar18)" (( "(") (binary_expression "uVar16 - uVar18" (identifier "uVar16") (- "-") (identifier "uVar18")) () ")")) (- "-") (number_literal "1")) (< "<") (number_literal "8")) () ")"))) () ")")) (compound_statement "{\n        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar16 - uVar18,iVar13,iVar13);\n        uVar18 = uVar18 + 2;\n        bVar3 = 0;\n        if (uVar18 < uVar16) {\nLAB_00065e60:\n          iVar5 = 1;\n          goto LAB_000659ad;\n        }\n      }" ({ "{") (expression_statement "cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar16 - uVar18,iVar13,iVar13);" (assignment_expression "cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar16 - uVar18,iVar13,iVar13)" (identifier "cVar4") (= "=") (call_expression "(**(code **)(unaff_EBP + 0x54592))(uVar18,uVar16 - uVar18,iVar13,iVar13)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x54592))" (( "(") (pointer_expression "**(code **)(unaff_EBP + 0x54592)" (* "*") (pointer_expression "*(code **)(unaff_EBP + 0x54592)" (* "*") (cast_expression "(code **)(unaff_EBP + 0x54592)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + 0x54592)" (( "(") (binary_expression "unaff_EBP + 0x54592" (identifier "unaff_EBP") (+ "+") (number_literal "0x54592")) () ")"))))) () ")")) (argument_list "(uVar18,uVar16 - uVar18,iVar13,iVar13)" (( "(") (identifier "uVar18") (, ",") (binary_expression "uVar16 - uVar18" (identifier "uVar16") (- "-") (identifier "uVar18")) (, ",") (identifier "iVar13") (, ",") (identifier "iVar13") () ")")))) (; ";")) (expression_statement "uVar18 = uVar18 + 2;" (assignment_expression "uVar18 = uVar18 + 2" (identifier "uVar18") (= "=") (binary_expression "uVar18 + 2" (identifier "uVar18") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "bVar3 = 0;" (assignment_expression "bVar3 = 0" (identifier "bVar3") (= "=") (number_literal "0")) (; ";")) (if_statement "if (uVar18 < uVar16) {\nLAB_00065e60:\n          iVar5 = 1;\n          goto LAB_000659ad;\n        }" (if "if") (parenthesized_expression "(uVar18 < uVar16)" (( "(") (binary_expression "uVar18 < uVar16" (identifier "uVar18") (< "<") (identifier "uVar16")) () ")")) (compound_statement "{\nLAB_00065e60:\n          iVar5 = 1;\n          goto LAB_000659ad;\n        }" ({ "{") (labeled_statement "LAB_00065e60:\n          iVar5 = 1;" (statement_identifier "LAB_00065e60") (: ":") (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" (identifier "iVar5") (= "=") (number_literal "1")) (; ";"))) (goto_statement "goto LAB_000659ad;" (goto "goto") (statement_identifier "LAB_000659ad") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        uVar18 = uVar18 + 2;\n        if (uVar16 <= uVar18) {\n          cVar4 = '\0';\n          goto LAB_00065dbc;\n        }\n        cVar4 = '\0';\n        iVar5 = 1;\nLAB_000659ad:\n        bVar3 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n      }" (else "else") (compound_statement "{\n        uVar18 = uVar18 + 2;\n        if (uVar16 <= uVar18) {\n          cVar4 = '\0';\n          goto LAB_00065dbc;\n        }\n        cVar4 = '\0';\n        iVar5 = 1;\nLAB_000659ad:\n        bVar3 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);\n      }" ({ "{") (expression_statement "uVar18 = uVar18 + 2;" (assignment_expression "uVar18 = uVar18 + 2" (identifier "uVar18") (= "=") (binary_expression "uVar18 + 2" (identifier "uVar18") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if (uVar16 <= uVar18) {\n          cVar4 = '\0';\n          goto LAB_00065dbc;\n        }" (if "if") (parenthesized_expression "(uVar16 <= uVar18)" (( "(") (binary_expression "uVar16 <= uVar18" (identifier "uVar16") (<= "<=") (identifier "uVar18")) () ")")) (compound_statement "{\n          cVar4 = '\0';\n          goto LAB_00065dbc;\n        }" ({ "{") (expression_statement "cVar4 = '\0';" (assignment_expression "cVar4 = '\0'" (identifier "cVar4") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (goto_statement "goto LAB_00065dbc;" (goto "goto") (statement_identifier "LAB_00065dbc") (; ";")) (} "}"))) (expression_statement "cVar4 = '\0';" (assignment_expression "cVar4 = '\0'" (identifier "cVar4") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" (identifier "iVar5") (= "=") (number_literal "1")) (; ";")) (labeled_statement "LAB_000659ad:\n        bVar3 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);" (statement_identifier "LAB_000659ad") (: ":") (expression_statement "bVar3 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);" (assignment_expression "bVar3 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5)" (identifier "bVar3") (= "=") (call_expression "(**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x54592))" (( "(") (pointer_expression "**(code **)(unaff_EBP + 0x54592)" (* "*") (pointer_expression "*(code **)(unaff_EBP + 0x54592)" (* "*") (cast_expression "(code **)(unaff_EBP + 0x54592)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + 0x54592)" (( "(") (binary_expression "unaff_EBP + 0x54592" (identifier "unaff_EBP") (+ "+") (number_literal "0x54592")) () ")"))))) () ")")) (argument_list "(uVar17,iVar5)" (( "(") (identifier "uVar17") (, ",") (identifier "iVar5") () ")")))) (; ";"))) (} "}")))) (if_statement "if (1 < local_28) goto LAB_00065dcd;" (if "if") (parenthesized_expression "(1 < local_28)" (( "(") (binary_expression "1 < local_28" (number_literal "1") (< "<") (identifier "local_28")) () ")")) (goto_statement "goto LAB_00065dcd;" (goto "goto") (statement_identifier "LAB_00065dcd") (; ";"))) (labeled_statement "LAB_000659c7:\n      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c926,5);" (statement_identifier "LAB_000659c7") (: ":") (expression_statement "pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c926,5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c926,5)" (identifier "pcVar6") (= "=") (cast_expression "(char *)dcgettext(0,unaff_EBP + 0x2c926,5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,unaff_EBP + 0x2c926,5)" (identifier "dcgettext") (argument_list "(0,unaff_EBP + 0x2c926,5)" (( "(") (number_literal "0") (, ",") (binary_expression "unaff_EBP + 0x2c926" (identifier "unaff_EBP") (+ "+") (number_literal "0x2c926")) (, ",") (number_literal "5") () ")"))))) (; ";"))) (expression_statement "printf(pcVar6,local_4c);" (call_expression "printf(pcVar6,local_4c)" (identifier "printf") (argument_list "(pcVar6,local_4c)" (( "(") (identifier "pcVar6") (, ",") (identifier "local_4c") () ")"))) (; ";")) (expression_statement "pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c94a,5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c94a,5)" (identifier "pcVar6") (= "=") (cast_expression "(char *)dcgettext(0,unaff_EBP + 0x2c94a,5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,unaff_EBP + 0x2c94a,5)" (identifier "dcgettext") (argument_list "(0,unaff_EBP + 0x2c94a,5)" (( "(") (number_literal "0") (, ",") (binary_expression "unaff_EBP + 0x2c94a" (identifier "unaff_EBP") (+ "+") (number_literal "0x2c94a")) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "printf(pcVar6,local_2c);" (call_expression "printf(pcVar6,local_2c)" (identifier "printf") (argument_list "(pcVar6,local_2c)" (( "(") (identifier "pcVar6") (, ",") (identifier "local_2c") () ")"))) (; ";")) (expression_statement "pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c96a,5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c96a,5)" (identifier "pcVar6") (= "=") (cast_expression "(char *)dcgettext(0,unaff_EBP + 0x2c96a,5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,unaff_EBP + 0x2c96a,5)" (identifier "dcgettext") (argument_list "(0,unaff_EBP + 0x2c96a,5)" (( "(") (number_literal "0") (, ",") (binary_expression "unaff_EBP + 0x2c96a" (identifier "unaff_EBP") (+ "+") (number_literal "0x2c96a")) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "printf(pcVar6,local_30);" (call_expression "printf(pcVar6,local_30)" (identifier "printf") (argument_list "(pcVar6,local_30)" (( "(") (identifier "pcVar6") (, ",") (identifier "local_30") () ")"))) (; ";")) (expression_statement "pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c98e,5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c98e,5)" (identifier "pcVar6") (= "=") (cast_expression "(char *)dcgettext(0,unaff_EBP + 0x2c98e,5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,unaff_EBP + 0x2c98e,5)" (identifier "dcgettext") (argument_list "(0,unaff_EBP + 0x2c98e,5)" (( "(") (number_literal "0") (, ",") (binary_expression "unaff_EBP + 0x2c98e" (identifier "unaff_EBP") (+ "+") (number_literal "0x2c98e")) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "printf(pcVar6,cVar4);" (call_expression "printf(pcVar6,cVar4)" (identifier "printf") (argument_list "(pcVar6,cVar4)" (( "(") (identifier "pcVar6") (, ",") (identifier "cVar4") () ")"))) (; ";")) (expression_statement "pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c9ae,5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c9ae,5)" (identifier "pcVar6") (= "=") (cast_expression "(char *)dcgettext(0,unaff_EBP + 0x2c9ae,5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,unaff_EBP + 0x2c9ae,5)" (identifier "dcgettext") (argument_list "(0,unaff_EBP + 0x2c9ae,5)" (( "(") (number_literal "0") (, ",") (binary_expression "unaff_EBP + 0x2c9ae" (identifier "unaff_EBP") (+ "+") (number_literal "0x2c9ae")) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "printf(pcVar6,(uint)bVar3);" (call_expression "printf(pcVar6,(uint)bVar3)" (identifier "printf") (argument_list "(pcVar6,(uint)bVar3)" (( "(") (identifier "pcVar6") (, ",") (cast_expression "(uint)bVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar3")) () ")"))) (; ";")) (expression_statement "bVar3 = bVar3 + cVar4;" (assignment_expression "bVar3 = bVar3 + cVar4" (identifier "bVar3") (= "=") (binary_expression "bVar3 + cVar4" (identifier "bVar3") (+ "+") (identifier "cVar4"))) (; ";")) (if_statement "if (7 < (byte)(bVar3 - 1)) {\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar12 = dcgettext(0,unaff_EBP + 0x2c9ce,5);\n        error(uVar12,uVar10);\n        break;\n      }" (if "if") (parenthesized_expression "(7 < (byte)(bVar3 - 1))" (( "(") (binary_expression "7 < (byte)(bVar3 - 1)" (number_literal "7") (< "<") (call_expression "(byte)(bVar3 - 1)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(bVar3 - 1)" (( "(") (binary_expression "bVar3 - 1" (identifier "bVar3") (- "-") (number_literal "1")) () ")")))) () ")")) (compound_statement "{\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar12 = dcgettext(0,unaff_EBP + 0x2c9ce,5);\n        error(uVar12,uVar10);\n        break;\n      }" ({ "{") (expression_statement "uVar10 = *(undefined4 *)(param_1 + 8);" (assignment_expression "uVar10 = *(undefined4 *)(param_1 + 8)" (identifier "uVar10") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 8)" (* "*") (cast_expression "(undefined4 *)(param_1 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar12 = dcgettext(0,unaff_EBP + 0x2c9ce,5);" (assignment_expression "uVar12 = dcgettext(0,unaff_EBP + 0x2c9ce,5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,unaff_EBP + 0x2c9ce,5)" (identifier "dcgettext") (argument_list "(0,unaff_EBP + 0x2c9ce,5)" (( "(") (number_literal "0") (, ",") (binary_expression "unaff_EBP + 0x2c9ce" (identifier "unaff_EBP") (+ "+") (number_literal "0x2c9ce")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "error(uVar12,uVar10);" (call_expression "error(uVar12,uVar10)" (identifier "error") (argument_list "(uVar12,uVar10)" (( "(") (identifier "uVar12") (, ",") (identifier "uVar10") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "uVar17 = (uint)bVar3;" (assignment_expression "uVar17 = (uint)bVar3" (identifier "uVar17") (= "=") (cast_expression "(uint)bVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar3"))) (; ";")) (if_statement "if ((uVar17 - 1 & uVar17) != 0) {\n        iVar5 = unaff_EBP + 0x2c9f6;\n        goto LAB_00065de4;\n      }" (if "if") (parenthesized_expression "((uVar17 - 1 & uVar17) != 0)" (( "(") (binary_expression "(uVar17 - 1 & uVar17) != 0" (parenthesized_expression "(uVar17 - 1 & uVar17)" (( "(") (binary_expression "uVar17 - 1 & uVar17" (binary_expression "uVar17 - 1" (identifier "uVar17") (- "-") (number_literal "1")) (& "&") (identifier "uVar17")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar5 = unaff_EBP + 0x2c9f6;\n        goto LAB_00065de4;\n      }" ({ "{") (expression_statement "iVar5 = unaff_EBP + 0x2c9f6;" (assignment_expression "iVar5 = unaff_EBP + 0x2c9f6" (identifier "iVar5") (= "=") (binary_expression "unaff_EBP + 0x2c9f6" (identifier "unaff_EBP") (+ "+") (number_literal "0x2c9f6"))) (; ";")) (goto_statement "goto LAB_00065de4;" (goto "goto") (statement_identifier "LAB_00065de4") (; ";")) (} "}"))) (if_statement "if (bVar3 < 5) {\n        iVar5 = unaff_EBP + 0x2e6d2;\n      }\n      else {\n        iVar5 = unaff_EBP + 0x2ca2a;\n      }" (if "if") (parenthesized_expression "(bVar3 < 5)" (( "(") (binary_expression "bVar3 < 5" (identifier "bVar3") (< "<") (number_literal "5")) () ")")) (compound_statement "{\n        iVar5 = unaff_EBP + 0x2e6d2;\n      }" ({ "{") (expression_statement "iVar5 = unaff_EBP + 0x2e6d2;" (assignment_expression "iVar5 = unaff_EBP + 0x2e6d2" (identifier "iVar5") (= "=") (binary_expression "unaff_EBP + 0x2e6d2" (identifier "unaff_EBP") (+ "+") (number_literal "0x2e6d2"))) (; ";")) (} "}")) (else_clause "else {\n        iVar5 = unaff_EBP + 0x2ca2a;\n      }" (else "else") (compound_statement "{\n        iVar5 = unaff_EBP + 0x2ca2a;\n      }" ({ "{") (expression_statement "iVar5 = unaff_EBP + 0x2ca2a;" (assignment_expression "iVar5 = unaff_EBP + 0x2ca2a" (identifier "iVar5") (= "=") (binary_expression "unaff_EBP + 0x2ca2a" (identifier "unaff_EBP") (+ "+") (number_literal "0x2ca2a"))) (; ";")) (} "}")))) (expression_statement "pcVar6 = (char *)dcgettext(0,iVar5,5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,iVar5,5)" (identifier "pcVar6") (= "=") (cast_expression "(char *)dcgettext(0,iVar5,5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,iVar5,5)" (identifier "dcgettext") (argument_list "(0,iVar5,5)" (( "(") (number_literal "0") (, ",") (identifier "iVar5") (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "printf(pcVar6);" (call_expression "printf(pcVar6)" (identifier "printf") (argument_list "(pcVar6)" (( "(") (identifier "pcVar6") () ")"))) (; ";")) (expression_statement "iVar5 = uVar17 * 2;" (assignment_expression "iVar5 = uVar17 * 2" (identifier "iVar5") (= "=") (binary_expression "uVar17 * 2" (identifier "uVar17") (* "*") (number_literal "2"))) (; ";")) (expression_statement "iVar13 = (int)(uVar18 - local_34) % iVar5;" (assignment_expression "iVar13 = (int)(uVar18 - local_34) % iVar5" (identifier "iVar13") (= "=") (binary_expression "(int)(uVar18 - local_34) % iVar5" (cast_expression "(int)(uVar18 - local_34)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar18 - local_34)" (( "(") (binary_expression "uVar18 - local_34" (identifier "uVar18") (- "-") (identifier "local_34")) () ")"))) (% "%") (identifier "iVar5"))) (; ";")) (if_statement "if (iVar13 != 0) {\n        uVar18 = (iVar5 - iVar13) + uVar18;\n      }" (if "if") (parenthesized_expression "(iVar13 != 0)" (( "(") (binary_expression "iVar13 != 0" (identifier "iVar13") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar18 = (iVar5 - iVar13) + uVar18;\n      }" ({ "{") (expression_statement "uVar18 = (iVar5 - iVar13) + uVar18;" (assignment_expression "uVar18 = (iVar5 - iVar13) + uVar18" (identifier "uVar18") (= "=") (binary_expression "(iVar5 - iVar13) + uVar18" (parenthesized_expression "(iVar5 - iVar13)" (( "(") (binary_expression "iVar5 - iVar13" (identifier "iVar5") (- "-") (identifier "iVar13")) () ")")) (+ "+") (identifier "uVar18"))) (; ";")) (} "}"))) (expression_statement "local_34 = local_34 + local_20 + local_4c;" (assignment_expression "local_34 = local_34 + local_20 + local_4c" (identifier "local_34") (= "=") (binary_expression "local_34 + local_20 + local_4c" (binary_expression "local_34 + local_20" (identifier "local_34") (+ "+") (identifier "local_20")) (+ "+") (identifier "local_4c"))) (; ";")) (if_statement "if (uVar18 + iVar5 <= local_34) {\n        uVar18 = uVar18 + uVar17;\n        puVar1 = *(undefined4 **)(unaff_EBP + 0x4e792);\n        do {\n          uVar15 = uVar18 - uVar17;\n          uVar8 = uVar17;\n          uVar7 = uVar17;\n          if ((uVar18 < uVar16) ||\n             ((uVar15 < uVar16 && (uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8)))) {\n            (**(code **)(unaff_EBP + 0x54592))(uVar15,uVar8);\n            if ((uVar15 + iVar5 < uVar16) ||\n               ((uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8))))\n            goto LAB_00065b58;\n          }\n          else if (uVar15 + iVar5 < uVar16) {\nLAB_00065b58:\n            (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7);\n          }\n          printf(&UNK_00016b6e + unaff_EBP);\n          FUN_0004ce60();\n          FUN_0004ce60();\n          putc(10,(FILE *)*puVar1);\n          uVar18 = uVar18 + iVar5;\n        } while (uVar17 + uVar18 <= local_34);\n      }" (if "if") (parenthesized_expression "(uVar18 + iVar5 <= local_34)" (( "(") (binary_expression "uVar18 + iVar5 <= local_34" (binary_expression "uVar18 + iVar5" (identifier "uVar18") (+ "+") (identifier "iVar5")) (<= "<=") (identifier "local_34")) () ")")) (compound_statement "{\n        uVar18 = uVar18 + uVar17;\n        puVar1 = *(undefined4 **)(unaff_EBP + 0x4e792);\n        do {\n          uVar15 = uVar18 - uVar17;\n          uVar8 = uVar17;\n          uVar7 = uVar17;\n          if ((uVar18 < uVar16) ||\n             ((uVar15 < uVar16 && (uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8)))) {\n            (**(code **)(unaff_EBP + 0x54592))(uVar15,uVar8);\n            if ((uVar15 + iVar5 < uVar16) ||\n               ((uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8))))\n            goto LAB_00065b58;\n          }\n          else if (uVar15 + iVar5 < uVar16) {\nLAB_00065b58:\n            (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7);\n          }\n          printf(&UNK_00016b6e + unaff_EBP);\n          FUN_0004ce60();\n          FUN_0004ce60();\n          putc(10,(FILE *)*puVar1);\n          uVar18 = uVar18 + iVar5;\n        } while (uVar17 + uVar18 <= local_34);\n      }" ({ "{") (expression_statement "uVar18 = uVar18 + uVar17;" (assignment_expression "uVar18 = uVar18 + uVar17" (identifier "uVar18") (= "=") (binary_expression "uVar18 + uVar17" (identifier "uVar18") (+ "+") (identifier "uVar17"))) (; ";")) (expression_statement "puVar1 = *(undefined4 **)(unaff_EBP + 0x4e792);" (assignment_expression "puVar1 = *(undefined4 **)(unaff_EBP + 0x4e792)" (identifier "puVar1") (= "=") (pointer_expression "*(undefined4 **)(unaff_EBP + 0x4e792)" (* "*") (cast_expression "(undefined4 **)(unaff_EBP + 0x4e792)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + 0x4e792)" (( "(") (binary_expression "unaff_EBP + 0x4e792" (identifier "unaff_EBP") (+ "+") (number_literal "0x4e792")) () ")"))))) (; ";")) (do_statement "do {\n          uVar15 = uVar18 - uVar17;\n          uVar8 = uVar17;\n          uVar7 = uVar17;\n          if ((uVar18 < uVar16) ||\n             ((uVar15 < uVar16 && (uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8)))) {\n            (**(code **)(unaff_EBP + 0x54592))(uVar15,uVar8);\n            if ((uVar15 + iVar5 < uVar16) ||\n               ((uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8))))\n            goto LAB_00065b58;\n          }\n          else if (uVar15 + iVar5 < uVar16) {\nLAB_00065b58:\n            (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7);\n          }\n          printf(&UNK_00016b6e + unaff_EBP);\n          FUN_0004ce60();\n          FUN_0004ce60();\n          putc(10,(FILE *)*puVar1);\n          uVar18 = uVar18 + iVar5;\n        } while (uVar17 + uVar18 <= local_34);" (do "do") (compound_statement "{\n          uVar15 = uVar18 - uVar17;\n          uVar8 = uVar17;\n          uVar7 = uVar17;\n          if ((uVar18 < uVar16) ||\n             ((uVar15 < uVar16 && (uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8)))) {\n            (**(code **)(unaff_EBP + 0x54592))(uVar15,uVar8);\n            if ((uVar15 + iVar5 < uVar16) ||\n               ((uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8))))\n            goto LAB_00065b58;\n          }\n          else if (uVar15 + iVar5 < uVar16) {\nLAB_00065b58:\n            (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7);\n          }\n          printf(&UNK_00016b6e + unaff_EBP);\n          FUN_0004ce60();\n          FUN_0004ce60();\n          putc(10,(FILE *)*puVar1);\n          uVar18 = uVar18 + iVar5;\n        }" ({ "{") (expression_statement "uVar15 = uVar18 - uVar17;" (assignment_expression "uVar15 = uVar18 - uVar17" (identifier "uVar15") (= "=") (binary_expression "uVar18 - uVar17" (identifier "uVar18") (- "-") (identifier "uVar17"))) (; ";")) (expression_statement "uVar8 = uVar17;" (assignment_expression "uVar8 = uVar17" (identifier "uVar8") (= "=") (identifier "uVar17")) (; ";")) (expression_statement "uVar7 = uVar17;" (assignment_expression "uVar7 = uVar17" (identifier "uVar7") (= "=") (identifier "uVar17")) (; ";")) (if_statement "if ((uVar18 < uVar16) ||\n             ((uVar15 < uVar16 && (uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8)))) {\n            (**(code **)(unaff_EBP + 0x54592))(uVar15,uVar8);\n            if ((uVar15 + iVar5 < uVar16) ||\n               ((uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8))))\n            goto LAB_00065b58;\n          }\n          else if (uVar15 + iVar5 < uVar16) {\nLAB_00065b58:\n            (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7);\n          }" (if "if") (parenthesized_expression "((uVar18 < uVar16) ||\n             ((uVar15 < uVar16 && (uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8))))" (( "(") (binary_expression "(uVar18 < uVar16) ||\n             ((uVar15 < uVar16 && (uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8)))" (parenthesized_expression "(uVar18 < uVar16)" (( "(") (binary_expression "uVar18 < uVar16" (identifier "uVar18") (< "<") (identifier "uVar16")) () ")")) (|| "||") (parenthesized_expression "((uVar15 < uVar16 && (uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8)))" (( "(") (parenthesized_expression "(uVar15 < uVar16 && (uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8))" (( "(") (binary_expression "uVar15 < uVar16 && (uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8)" (binary_expression "uVar15 < uVar16" (identifier "uVar15") (< "<") (identifier "uVar16")) (&& "&&") (parenthesized_expression "(uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8)" (( "(") (comma_expression "uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8" (assignment_expression "uVar8 = uVar16 - uVar15" (identifier "uVar8") (= "=") (binary_expression "uVar16 - uVar15" (identifier "uVar16") (- "-") (identifier "uVar15"))) (, ",") (binary_expression "(uVar16 - uVar15) - 1 < 8" (binary_expression "(uVar16 - uVar15) - 1" (parenthesized_expression "(uVar16 - uVar15)" (( "(") (binary_expression "uVar16 - uVar15" (identifier "uVar16") (- "-") (identifier "uVar15")) () ")")) (- "-") (number_literal "1")) (< "<") (number_literal "8"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n            (**(code **)(unaff_EBP + 0x54592))(uVar15,uVar8);\n            if ((uVar15 + iVar5 < uVar16) ||\n               ((uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8))))\n            goto LAB_00065b58;\n          }" ({ "{") (expression_statement "(**(code **)(unaff_EBP + 0x54592))(uVar15,uVar8);" (call_expression "(**(code **)(unaff_EBP + 0x54592))(uVar15,uVar8)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x54592))" (( "(") (pointer_expression "**(code **)(unaff_EBP + 0x54592)" (* "*") (pointer_expression "*(code **)(unaff_EBP + 0x54592)" (* "*") (cast_expression "(code **)(unaff_EBP + 0x54592)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + 0x54592)" (( "(") (binary_expression "unaff_EBP + 0x54592" (identifier "unaff_EBP") (+ "+") (number_literal "0x54592")) () ")"))))) () ")")) (argument_list "(uVar15,uVar8)" (( "(") (identifier "uVar15") (, ",") (identifier "uVar8") () ")"))) (; ";")) (if_statement "if ((uVar15 + iVar5 < uVar16) ||\n               ((uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8))))\n            goto LAB_00065b58;" (if "if") (parenthesized_expression "((uVar15 + iVar5 < uVar16) ||\n               ((uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8))))" (( "(") (binary_expression "(uVar15 + iVar5 < uVar16) ||\n               ((uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8)))" (parenthesized_expression "(uVar15 + iVar5 < uVar16)" (( "(") (binary_expression "uVar15 + iVar5 < uVar16" (binary_expression "uVar15 + iVar5" (identifier "uVar15") (+ "+") (identifier "iVar5")) (< "<") (identifier "uVar16")) () ")")) (|| "||") (parenthesized_expression "((uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8)))" (( "(") (parenthesized_expression "(uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8))" (( "(") (binary_expression "uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8)" (binary_expression "uVar18 < uVar16" (identifier "uVar18") (< "<") (identifier "uVar16")) (&& "&&") (parenthesized_expression "(uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8)" (( "(") (comma_expression "uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8" (assignment_expression "uVar7 = uVar16 - uVar18" (identifier "uVar7") (= "=") (binary_expression "uVar16 - uVar18" (identifier "uVar16") (- "-") (identifier "uVar18"))) (, ",") (binary_expression "(uVar16 - uVar18) - 1 < 8" (binary_expression "(uVar16 - uVar18) - 1" (parenthesized_expression "(uVar16 - uVar18)" (( "(") (binary_expression "uVar16 - uVar18" (identifier "uVar16") (- "-") (identifier "uVar18")) () ")")) (- "-") (number_literal "1")) (< "<") (number_literal "8"))) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_00065b58;" (goto "goto") (statement_identifier "LAB_00065b58") (; ";"))) (} "}")) (else_clause "else if (uVar15 + iVar5 < uVar16) {\nLAB_00065b58:\n            (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7);\n          }" (else "else") (if_statement "if (uVar15 + iVar5 < uVar16) {\nLAB_00065b58:\n            (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7);\n          }" (if "if") (parenthesized_expression "(uVar15 + iVar5 < uVar16)" (( "(") (binary_expression "uVar15 + iVar5 < uVar16" (binary_expression "uVar15 + iVar5" (identifier "uVar15") (+ "+") (identifier "iVar5")) (< "<") (identifier "uVar16")) () ")")) (compound_statement "{\nLAB_00065b58:\n            (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7);\n          }" ({ "{") (labeled_statement "LAB_00065b58:\n            (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7);" (statement_identifier "LAB_00065b58") (: ":") (expression_statement "(**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7);" (call_expression "(**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x54592))" (( "(") (pointer_expression "**(code **)(unaff_EBP + 0x54592)" (* "*") (pointer_expression "*(code **)(unaff_EBP + 0x54592)" (* "*") (cast_expression "(code **)(unaff_EBP + 0x54592)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + 0x54592)" (( "(") (binary_expression "unaff_EBP + 0x54592" (identifier "unaff_EBP") (+ "+") (number_literal "0x54592")) () ")"))))) () ")")) (argument_list "(uVar18,uVar7)" (( "(") (identifier "uVar18") (, ",") (identifier "uVar7") () ")"))) (; ";"))) (} "}"))))) (expression_statement "printf(&UNK_00016b6e + unaff_EBP);" (call_expression "printf(&UNK_00016b6e + unaff_EBP)" (identifier "printf") (argument_list "(&UNK_00016b6e + unaff_EBP)" (( "(") (binary_expression "&UNK_00016b6e + unaff_EBP" (pointer_expression "&UNK_00016b6e" (& "&") (identifier "UNK_00016b6e")) (+ "+") (identifier "unaff_EBP")) () ")"))) (; ";")) (expression_statement "FUN_0004ce60();" (call_expression "FUN_0004ce60()" (identifier "FUN_0004ce60") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_0004ce60();" (call_expression "FUN_0004ce60()" (identifier "FUN_0004ce60") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "putc(10,(FILE *)*puVar1);" (call_expression "putc(10,(FILE *)*puVar1)" (identifier "putc") (argument_list "(10,(FILE *)*puVar1)" (( "(") (number_literal "10") (, ",") (cast_expression "(FILE *)*puVar1" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar1" (* "*") (identifier "puVar1"))) () ")"))) (; ";")) (expression_statement "uVar18 = uVar18 + iVar5;" (assignment_expression "uVar18 = uVar18 + iVar5" (identifier "uVar18") (= "=") (binary_expression "uVar18 + iVar5" (identifier "uVar18") (+ "+") (identifier "iVar5"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar17 + uVar18 <= local_34)" (( "(") (binary_expression "uVar17 + uVar18 <= local_34" (binary_expression "uVar17 + uVar18" (identifier "uVar17") (+ "+") (identifier "uVar18")) (<= "<=") (identifier "local_34")) () ")")) (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "(local_34 < uVar16)" (( "(") (binary_expression "local_34 < uVar16" (identifier "local_34") (< "<") (identifier "uVar16")) () ")")) (; ";")) (} "}"))) (expression_statement "putchar(10);" (call_expression "putchar(10)" (identifier "putchar") (argument_list "(10)" (( "(") (number_literal "10") () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}")))

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

int function_1(type_1 *section,void *file)

{
  type_2 *var_1;
  type_3 var_18;
  type_4 *puVar3;
  type_5 *pFVar4;
  int var_19;
  char *pcVar6;
  type_5 *pFVar7;
  type_5 *pFVar8;
  type_6 *var_24;
  char *message;
  char *pcVar10;
  type_1 *in_ECX;
  type_3 var_11;
  type_3 var_12;
  int var_27;
  type_3 var_9;
  type_2 *var_6;
  type_2 *var_4;
  type_2 *var_8;
  type_7 eVar18;
  type_4 *puVar19;
  char *in_stack_ffffff98;
  void *in_stack_ffffffa4;
  type_8 var_7;
  type_3 local_44;
  type_3 local_3c;
  int var_23;
  short var_20;
  type_9 var_22;
  int var_17;
  
  var_1 = section->start;
  var_4 = var_1 + (int)section->size;
  var_2((type_1 *)section->name,(bfd_boolean)&section->filename,in_ECX);
  var_3(in_stack_ffffffa4);
  do {
    if (var_4 <= var_1) {
LAB_00065bcc:
      var_5(10);
      return 1;
    }
    var_6 = var_1 + 4;
    if (var_6 < var_4) {
      pFVar4 = (type_5 *)0x4;
LAB_00065c45:
      var_7 = (*byte_get)(var_1,(int)pFVar4);
      if (var_7 == 0xffffffff) {
        var_8 = var_1 + 0xc;
        if (var_8 < var_4) {
          pFVar8 = (type_5 *)0x8;
        }
        else if ((var_4 <= var_6) ||
                (pFVar8 = (type_5 *)(var_4 + -(int)var_6),
                (char *)0x7 < pFVar8[-1]._unused2 + 0x27)) {
          var_17 = 0xc;
          var_19 = 8;
          goto LAB_000658c1;
        }
        var_7 = (*byte_get)(var_6,(int)pFVar8);
        var_17 = 0xc;
        var_19 = 8;
        var_6 = var_8;
        pFVar4 = pFVar8;
      }
      else {
        var_17 = 4;
        var_19 = 4;
      }
      var_9 = (int)var_6 - (int)section->start;
      var_11 = (type_3)var_7 + var_9;
      var_12 = var_7._4_4_ + (type_3)var_10((type_3)var_7,var_9);
      if ((var_11 < var_9) <= var_12) goto LAB_000658e2;
LAB_00065ec0:
      pcVar10 = var_13("x",var_14(pFVar4) << 0x20,(type_3)var_7);
      pcVar6 = section->name;
      message = (char *)var_15(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);
      var_16(message,pcVar6,var_9 - var_17,pcVar10);
      goto LAB_00065bcc;
    }
    pFVar4 = (type_5 *)(var_4 + -(int)var_1);
    if (pFVar4[-1]._unused2 + 0x27 < (char *)0x8) goto LAB_00065c45;
    var_17 = 4;
    var_19 = 4;
    var_8 = var_6;
    pFVar4 = (type_5 *)in_stack_ffffff98;
LAB_000658c1:
    var_12 = 0;
    var_7 = 0;
    var_11 = (int)var_8 - (int)section->start;
    var_6 = var_8;
    var_9 = var_11;
LAB_000658e2:
    var_18 = *(type_3 *)((int)&section->size + 4);
    if (var_18 < var_12 || var_18 - var_12 < (type_3)((type_3)section->size < var_11)) goto LAB_00065ec0;
    var_8 = var_6 + 2;
    var_27 = var_19;
    if (var_8 < var_4) {
      eVar18 = (*byte_get)(var_6,2);
      var_20 = (short)eVar18;
      if (var_8 + var_19 < var_4) {
LAB_00065e10:
        var_22 = var_20 - 2;
LAB_00065944:
        eVar18 = (*byte_get)(var_8,var_27);
        var_23 = (int)eVar18;
        goto LAB_0006595d;
      }
      var_22 = var_20 - 2;
      var_27 = (int)var_4 - (int)var_8;
      if (((int)var_4 - (int)var_8) - 1U < 8) goto LAB_00065944;
LAB_00065cf4:
      var_23 = 0;
      if (var_21 - 1 < 0xfffffffe) goto LAB_00065d0e;
LAB_0006596f:
      var_6 = var_8 + var_19 + 1;
      if (var_4 <= var_6) goto LAB_0006597e;
LAB_00065d80:
      eVar18 = (*byte_get)(var_8 + var_19,1);
      local_44._0_1_ = (type_10)eVar18;
      var_8 = var_8 + var_19 + 2;
      if (var_8 < var_4) goto LAB_00065e60;
      var_19 = (int)var_4 - (int)var_6;
      if (var_19 - 1U < 8) goto LAB_000659ad;
LAB_00065dbc:
      local_3c._0_1_ = 0;
      if (var_22 < 2) goto LAB_000659c7;
LAB_00065dcd:
      if (var_20 != 0) {
        pcVar6 = "Only DWARF 2 and 3 aranges are currently supported.\n";
LAB_00065de4:
        pcVar6 = (char *)var_15(0,pcVar6,5);
        var_16(pcVar6);
      }
      goto LAB_00065bcc;
    }
    if ((var_4 <= var_6) || (7 < ((int)var_4 - (int)var_6) - 1U)) {
      var_22 = 0xfffe;
      var_20 = 0;
      if (var_4 <= var_8 + var_19) goto LAB_00065cf4;
      goto LAB_00065944;
    }
    eVar18 = (*byte_get)(var_6,(int)var_4 - (int)var_6);
    var_20 = (short)eVar18;
    if (var_8 + var_19 < var_4) goto LAB_00065e10;
    var_22 = var_20 - 2;
    var_23 = 0;
LAB_0006595d:
    if (0xfffffffd < var_21 - 1) goto LAB_0006596f;
LAB_00065d0e:
    var_9 = 0;
    var_24 = &debug_information->cu_offset;
    do {
      if ((int)*var_24 == var_23 && *(int *)((int)var_24 + 4) == 0) goto LAB_0006596f;
      var_9 = var_9 + 1;
      var_24 = var_24 + 10;
    } while (var_21 != var_9);
    pcVar6 = section->name;
    pcVar10 = (char *)var_15(0,
                                ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"
                                ,5);
    var_16(pcVar10,var_23,pcVar6);
    var_6 = var_8 + var_19 + 1;
    if (var_6 < var_4) goto LAB_00065d80;
LAB_0006597e:
    var_8 = var_8 + var_19;
    if ((var_8 < var_4) && (((int)var_4 - (int)var_8) - 1U < 8)) {
      eVar18 = (*byte_get)(var_8,(int)var_4 - (int)var_8);
      local_44._0_1_ = (type_10)eVar18;
      var_8 = var_8 + 2;
      local_3c._0_1_ = 0;
      if (var_8 < var_4) {
LAB_00065e60:
        var_19 = 1;
        goto LAB_000659ad;
      }
    }
    else {
      var_8 = var_8 + 2;
      if (var_4 <= var_8) {
        local_44._0_1_ = 0;
        goto LAB_00065dbc;
      }
      local_44._0_1_ = 0;
      var_19 = 1;
LAB_000659ad:
      eVar18 = (*byte_get)(var_6,var_19);
      local_3c._0_1_ = (type_10)eVar18;
    }
    if (1 < var_22) goto LAB_00065dcd;
LAB_000659c7:
    pcVar6 = (char *)var_15(0,"  Length:                   %ld\n",5);
    var_25(pcVar6,(type_3)var_7);
    pcVar6 = (char *)var_15(0,"  Version:                  %d\n",5);
    var_25(pcVar6,var_20);
    pcVar6 = (char *)var_15(0,"  Offset into .debug_info:  0x%lx\n",5);
    var_25(pcVar6,var_23);
    pcVar6 = (char *)var_15(0,"  Pointer Size:             %d\n",5);
    var_25(pcVar6,(type_3)(type_10)local_44);
    pcVar6 = (char *)var_15(0,"  Segment Size:             %d\n",5);
    var_25(pcVar6,(type_3)(type_10)local_3c);
    local_3c._0_1_ = (type_10)local_3c + (type_10)local_44;
    if (7 < (type_10)((type_10)local_3c - 1)) {
      pcVar6 = section->name;
      pcVar10 = (char *)var_15(0,"Invalid address size in %s section!\n",5);
      var_26(pcVar10,pcVar6);
      goto LAB_00065bcc;
    }
    pFVar4 = (type_5 *)(type_3)(type_10)local_3c;
    if (((type_3)(pFVar4[-1]._unused2 + 0x27) & (type_3)pFVar4) != 0) {
      pcVar6 = "Pointer size + Segment size is not a power of two.\n";
      goto LAB_00065de4;
    }
    if ((type_10)local_3c < 5) {
      in_stack_ffffff98 = "\n    Address    Length\n";
    }
    else {
      in_stack_ffffff98 = "\n    Address            Length\n";
    }
    pcVar6 = (char *)var_15(0,in_stack_ffffff98,5);
    var_25(pcVar6);
    puVar3 = PTR_stdout_000b3fd8;
    var_19 = (int)pFVar4 * 2;
    var_27 = ((int)var_8 - (int)var_1) % var_19;
    if (var_27 != 0) {
      var_8 = var_8 + (var_19 - var_27);
    }
    var_1 = var_1 + var_17 + (type_3)var_7;
    if (var_8 + var_19 <= var_1) {
      var_8 = var_8 + (int)pFVar4;
      do {
        var_6 = var_8 + -(int)pFVar4;
        pFVar7 = pFVar4;
        pFVar8 = pFVar4;
        if ((var_8 < var_4) ||
           ((var_6 < var_4 &&
            (pFVar7 = (type_5 *)(var_4 + -(int)var_6),
            ((type_5 *)(var_4 + -(int)var_6))[-1]._unused2 + 0x27 < (char *)0x8)))) {
          eVar18 = (*byte_get)(var_6,(int)pFVar7);
          local_3c = (type_3)eVar18;
          var_9 = local_3c;
          if ((var_6 + var_19 < var_4) ||
             ((var_8 < var_4 &&
              (pFVar8 = (type_5 *)(var_4 + -(int)var_8),
              ((type_5 *)(var_4 + -(int)var_8))[-1]._unused2 + 0x27 < (char *)0x8))))
          goto LAB_00065b58;
LAB_00065c2a:
          local_44 = 0;
        }
        else {
          local_3c = 0;
          var_9 = local_3c;
          local_3c = 0;
          pFVar7 = (type_5 *)in_stack_ffffff98;
          if (var_4 <= var_6 + var_19) goto LAB_00065c2a;
LAB_00065b58:
          local_3c = var_9;
          eVar18 = (*byte_get)(var_8,(int)pFVar8);
          local_44 = (type_3)eVar18;
          pFVar7 = pFVar8;
        }
        puVar19 = &DAT_0007c3b4;
        var_25("    ");
        var_28(var_29(pFVar7,puVar19),local_3c);
        var_28(var_29(pFVar7,puVar19),local_44);
        in_stack_ffffff98 = *(char **)puVar3;
        var_30(10,(type_5 *)in_stack_ffffff98);
        var_8 = var_8 + var_19;
      } while (var_8 + (int)(pFVar4->_shortbuf + -0x47) <= var_1);
    }
  } while( true );
}


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

undefined4 MASKED(int param_1)

{
  undefined4 *puVar1;
  ulonglong uVar2;
  byte bVar3;
  char cVar4;
  int iVar5;
  char *pcVar6;
  uint uVar7;
  uint uVar8;
  int *piVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  int iVar13;
  int iVar14;
  uint uVar15;
  int unaff_EBP;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  longlong lVar19;
  int local_4c;
  int local_44;
  uint local_3c;
  uint local_34;
  int local_30;
  short local_2c;
  ushort local_28;
  int local_20;
  
  FUN_0004ab89();
  local_34 = *(uint *)(param_1 + 0x10);
  uVar16 = *(int *)(param_1 + 0x1c) + local_34;
  FUN_0004eb80();
  FUN_00062460();
  if (local_34 < uVar16) {
    do {
      uVar17 = local_34 + 4;
      if (uVar17 < uVar16) {
        iVar5 = 4;
LAB_00065c45:
        lVar19 = (**(code **)(unaff_EBP + 0x54592))(local_34,iVar5);
        if (lVar19 == 0xffffffff) {
          uVar18 = local_34 + 0xc;
          if (uVar18 < uVar16) {
            iVar5 = 8;
          }
          else if ((uVar16 <= uVar17) || (iVar5 = uVar16 - uVar17, 7 < iVar5 - 1U)) {
            local_20 = 0xc;
            local_44 = 8;
            goto LAB_000658c1;
          }
          lVar19 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);
          local_20 = 0xc;
          local_44 = 8;
          uVar17 = uVar18;
        }
        else {
          local_20 = 4;
          local_44 = 4;
        }
        local_4c = (int)lVar19;
        local_3c = uVar17 - *(int *)(param_1 + 0x10);
        uVar2 = lVar19 + (ulonglong)local_3c;
        if ((uint)((uint)uVar2 < local_3c) <= (uint)(uVar2 >> 0x20)) goto LAB_000658e2;
LAB_00065ec0:
        uVar12 = FUN_0004cb50(0);
        uVar10 = *(undefined4 *)(param_1 + 8);
        uVar11 = dcgettext(0,unaff_EBP + 0x2a752,5);
        warn(uVar11,uVar10,local_3c - local_20,uVar12);
        break;
      }
      iVar5 = uVar16 - local_34;
      if (iVar5 - 1U < 8) goto LAB_00065c45;
      local_20 = 4;
      local_44 = 4;
      uVar18 = uVar17;
LAB_000658c1:
      local_4c = 0;
      local_3c = uVar18 - *(int *)(param_1 + 0x10);
      uVar2 = (ulonglong)local_3c;
      uVar17 = uVar18;
LAB_000658e2:
      iVar5 = local_44;
      uVar18 = (uint)(uVar2 >> 0x20);
      if (*(uint *)(param_1 + 0x20) < uVar18 ||
          *(uint *)(param_1 + 0x20) - uVar18 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar2))
      goto LAB_00065ec0;
      uVar18 = uVar17 + 2;
      if (uVar18 < uVar16) {
        local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,2);
        if (local_44 + uVar18 < uVar16) {
LAB_00065e10:
          local_28 = local_2c - 2;
LAB_00065944:
          local_30 = (**(code **)(unaff_EBP + 0x54592))(uVar18,local_44);
          goto LAB_0006595d;
        }
        local_28 = local_2c - 2;
        local_44 = uVar16 - uVar18;
        if (local_44 - 1U < 8) goto LAB_00065944;
LAB_00065cf4:
        iVar13 = *(int *)(unaff_EBP + 0x54526);
        local_30 = 0;
        if (iVar13 - 1U < 0xfffffffe) goto LAB_00065d0e;
LAB_0006596f:
        uVar17 = uVar18 + iVar5 + 1;
        if (uVar16 <= uVar17) goto LAB_0006597e;
LAB_00065d80:
        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18 + iVar5,1);
        uVar18 = uVar18 + iVar5 + 2;
        if (uVar18 < uVar16) goto LAB_00065e60;
        iVar5 = uVar16 - uVar17;
        if (iVar5 - 1U < 8) goto LAB_000659ad;
LAB_00065dbc:
        bVar3 = 0;
        if (local_28 < 2) goto LAB_000659c7;
LAB_00065dcd:
        if (local_2c != 0) {
          iVar5 = unaff_EBP + 0x2c8ee;
LAB_00065de4:
          uVar10 = dcgettext(0,iVar5,5);
          warn(uVar10);
        }
        break;
      }
      if (uVar16 <= uVar17) {
LAB_00065919:
        local_28 = 0xfffe;
        local_2c = 0;
        if (uVar16 <= uVar18 + local_44) goto LAB_00065cf4;
        goto LAB_00065944;
      }
      uVar7 = (uVar16 - uVar17) - 1;
      if (7 < uVar7) goto LAB_00065919;
      local_2c = (**(code **)(unaff_EBP + 0x54592))(uVar17,uVar16 - uVar17,uVar7,uVar7);
      if (local_44 + uVar18 < uVar16) goto LAB_00065e10;
      local_28 = local_2c - 2;
      local_30 = 0;
LAB_0006595d:
      iVar13 = *(int *)(unaff_EBP + 0x54526);
      if (0xfffffffd < iVar13 - 1U) goto LAB_0006596f;
LAB_00065d0e:
      iVar14 = 0;
      piVar9 = (int *)(*(int *)(unaff_EBP + 0x5451e) + 0xc);
      do {
        if (*piVar9 == local_30 && piVar9[1] == 0) goto LAB_0006596f;
        iVar14 = iVar14 + 1;
        piVar9 = piVar9 + 0x14;
      } while (iVar13 != iVar14);
      iVar13 = *(int *)(param_1 + 8);
      uVar10 = dcgettext(0,unaff_EBP + 0x2c8a2,5);
      warn(uVar10,local_30,iVar13);
      uVar17 = uVar18 + iVar5 + 1;
      if (uVar17 < uVar16) goto LAB_00065d80;
LAB_0006597e:
      uVar18 = uVar18 + iVar5;
      if ((uVar18 < uVar16) && ((uVar16 - uVar18) - 1 < 8)) {
        cVar4 = (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar16 - uVar18,iVar13,iVar13);
        uVar18 = uVar18 + 2;
        bVar3 = 0;
        if (uVar18 < uVar16) {
LAB_00065e60:
          iVar5 = 1;
          goto LAB_000659ad;
        }
      }
      else {
        uVar18 = uVar18 + 2;
        if (uVar16 <= uVar18) {
          cVar4 = '\0';
          goto LAB_00065dbc;
        }
        cVar4 = '\0';
        iVar5 = 1;
LAB_000659ad:
        bVar3 = (**(code **)(unaff_EBP + 0x54592))(uVar17,iVar5);
      }
      if (1 < local_28) goto LAB_00065dcd;
LAB_000659c7:
      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c926,5);
      printf(pcVar6,local_4c);
      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c94a,5);
      printf(pcVar6,local_2c);
      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c96a,5);
      printf(pcVar6,local_30);
      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c98e,5);
      printf(pcVar6,cVar4);
      pcVar6 = (char *)dcgettext(0,unaff_EBP + 0x2c9ae,5);
      printf(pcVar6,(uint)bVar3);
      bVar3 = bVar3 + cVar4;
      if (7 < (byte)(bVar3 - 1)) {
        uVar10 = *(undefined4 *)(param_1 + 8);
        uVar12 = dcgettext(0,unaff_EBP + 0x2c9ce,5);
        error(uVar12,uVar10);
        break;
      }
      uVar17 = (uint)bVar3;
      if ((uVar17 - 1 & uVar17) != 0) {
        iVar5 = unaff_EBP + 0x2c9f6;
        goto LAB_00065de4;
      }
      if (bVar3 < 5) {
        iVar5 = unaff_EBP + 0x2e6d2;
      }
      else {
        iVar5 = unaff_EBP + 0x2ca2a;
      }
      pcVar6 = (char *)dcgettext(0,iVar5,5);
      printf(pcVar6);
      iVar5 = uVar17 * 2;
      iVar13 = (int)(uVar18 - local_34) % iVar5;
      if (iVar13 != 0) {
        uVar18 = (iVar5 - iVar13) + uVar18;
      }
      local_34 = local_34 + local_20 + local_4c;
      if (uVar18 + iVar5 <= local_34) {
        uVar18 = uVar18 + uVar17;
        puVar1 = *(undefined4 **)(unaff_EBP + 0x4e792);
        do {
          uVar15 = uVar18 - uVar17;
          uVar8 = uVar17;
          uVar7 = uVar17;
          if ((uVar18 < uVar16) ||
             ((uVar15 < uVar16 && (uVar8 = uVar16 - uVar15, (uVar16 - uVar15) - 1 < 8)))) {
            (**(code **)(unaff_EBP + 0x54592))(uVar15,uVar8);
            if ((uVar15 + iVar5 < uVar16) ||
               ((uVar18 < uVar16 && (uVar7 = uVar16 - uVar18, (uVar16 - uVar18) - 1 < 8))))
            goto LAB_00065b58;
          }
          else if (uVar15 + iVar5 < uVar16) {
LAB_00065b58:
            (**(code **)(unaff_EBP + 0x54592))(uVar18,uVar7);
          }
          printf(&UNK_00016b6e + unaff_EBP);
          FUN_0004ce60();
          FUN_0004ce60();
          putc(10,(FILE *)*puVar1);
          uVar18 = uVar18 + iVar5;
        } while (uVar17 + uVar18 <= local_34);
      }
    } while (local_34 < uVar16);
  }
  putchar(10);
  return 1;
}

