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

bfd_boolean __regparm3
dump_section_as_bytes(Elf_Internal_Shdr *section,Filedata *filedata,bfd_boolean relocate)

{
  char **filedata_00;
  Elf_Internal_Shdr *pEVar1;
  bfd_size_type size;
  undefined *puVar2;
  uchar *__ptr;
  char *pcVar3;
  char *pcVar4;
  Elf_Internal_Shdr *pEVar5;
  bfd_boolean bVar6;
  ulong *sec;
  int iVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uchar *puVar11;
  byte *pbVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  byte *pbVar21;
  bool bVar22;
  bool bVar23;
  byte bVar24;
  uint local_6c;
  char *local_68;
  uint local_64;
  uchar *start;
  dwarf_size_type new_size;
  Elf_Internal_Chdr chdr;
  
  bVar24 = 0;
  __ptr = (uchar *)get_section_contents(section,filedata);
  if (__ptr == (uchar *)0x0) {
    if (*(int *)((int)&section->sh_size + 4) == 0 && (int)section->sh_size == 0) {
      return 1;
    }
    return (uint)(section->sh_type == 8);
  }
  local_6c = (uint)section->sh_size;
  local_68 = *(char **)((int)&section->sh_size + 4);
  size = section->sh_size;
  filedata_00 = &filedata->string_table;
  sec = &filedata->string_table_length;
  start = __ptr;
  pcVar3 = printable_section_name
                     ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,(Filedata *)section);
  pcVar4 = (char *)dcgettext(0,"\nHex dump of section \'%s\':\n",5);
  printf(pcVar4);
  puVar11 = start;
  if (decompress_dumps == 0) goto LAB_00041e89;
  puVar11 = __ptr;
  new_size._0_4_ = local_6c;
  new_size._4_4_ = local_68;
  if ((section->sh_flags & 0x800) == 0) {
    uVar8 = (uint)(0xc < local_6c);
    uVar9 = -(int)local_68;
    bVar22 = local_68 != (char *)0x0 || uVar9 < uVar8;
    bVar23 = uVar9 == uVar8;
    if (local_68 == (char *)0x0 && uVar9 >= uVar8) goto LAB_00041e89;
    iVar7 = 5;
    pbVar12 = start;
    pbVar21 = &DAT_0007d064;
    do {
      if (iVar7 == 0) break;
      iVar7 = iVar7 + -1;
      bVar22 = *pbVar12 < *pbVar21;
      bVar23 = *pbVar12 == *pbVar21;
      pbVar12 = pbVar12 + (uint)bVar24 * -2 + 1;
      pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;
    } while (bVar23);
    if ((!bVar22 && !bVar23) != bVar22) goto LAB_00041e89;
    uVar13 = (uint)CONCAT11(start[4],start[5]) * 0x100;
    uVar14 = start[6] + uVar13;
    uVar15 = uVar14 * 0x100;
    uVar16 = start[7] + uVar15;
    uVar17 = uVar16 * 0x100;
    uVar8 = uVar17 + start[8];
    uVar18 = uVar8 * 0x100;
    uVar9 = start[9] + uVar18;
    uVar19 = uVar9 * 0x100;
    uVar10 = start[10] + uVar19;
    uVar20 = uVar10 * 0x100;
    chdr.ch_size._0_4_ = (dwarf_size_type *)(start[0xb] + uVar20);
    chdr.ch_size._4_4_ =
         (((((((((((uint)CARRY4((uint)start[5],(uint)start[4] << 8) * 0x100 +
                  (uint)CARRY4((uint)start[6],uVar13)) * 0x100 | uVar14 >> 0x18) +
                (uint)CARRY4((uint)start[7],uVar15)) * 0x100 | uVar16 >> 0x18) +
              (uint)CARRY4(uVar17,(uint)start[8])) * 0x100 | uVar8 >> 0x18) +
            (uint)CARRY4((uint)start[9],uVar18)) * 0x100 | uVar9 >> 0x18) +
          (uint)CARRY4((uint)start[10],uVar19)) * 0x100 | uVar10 >> 0x18) +
         (uint)CARRY4((uint)start[0xb],uVar20);
    start = start + 0xc;
    new_size._0_4_ = local_6c - 0xc;
    new_size._4_4_ = local_68 + ((0xb < local_6c) - 1);
  }
  else {
    pcVar3 = local_68;
    uVar8 = get_compression_header(&chdr,start,size);
    if (chdr.ch_type != 1) {
      pcVar3 = printable_section_name
                         ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,(Filedata *)section);
      pcVar4 = (char *)dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);
      warn(pcVar4,pcVar3,chdr.ch_type);
      return 0;
    }
    start = start + uVar8;
    bVar22 = (uint)new_size < uVar8;
    new_size._0_4_ = (uint)new_size - uVar8;
    new_size._4_4_ = new_size._4_4_ + -(uint)bVar22;
  }
  if (chdr.ch_size._4_4_ != 0 || (dwarf_size_type *)chdr.ch_size != (dwarf_size_type *)0x0) {
    bVar6 = uncompress_section_contents
                      (&start,CONCAT44(pcVar3,&new_size),(dwarf_size_type *)chdr.ch_size);
    if (bVar6 == 0) {
      pcVar3 = printable_section_name
                         ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,(Filedata *)section);
      pcVar4 = (char *)dcgettext(0,"Unable to decompress section %s\n",5);
      error(pcVar4,pcVar3);
      return 0;
    }
    local_6c = (uint)new_size;
    local_68 = new_size._4_4_;
    puVar11 = start;
  }
LAB_00041e89:
  start = puVar11;
  if (relocate == 0) {
    uVar8 = (filedata->file_header).e_shnum;
    pEVar1 = filedata->section_headers;
    for (pEVar5 = pEVar1; pEVar5 < pEVar1 + uVar8; pEVar5 = pEVar5 + 1) {
      if ((((pEVar5->sh_type == 4) || (pEVar5->sh_type == 9)) && (pEVar5->sh_info < uVar8)) &&
         (((section == pEVar1 + pEVar5->sh_info &&
           (*(int *)((int)&pEVar5->sh_size + 4) != 0 || (int)pEVar5->sh_size != 0)) &&
          (pEVar5->sh_link < uVar8)))) {
        pcVar3 = (char *)dcgettext(0,
                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"
                                   ,5);
        printf(pcVar3);
        break;
      }
    }
  }
  else {
    bVar6 = apply_relocations(filedata,section,start,CONCAT44(local_68,local_6c),(void **)0x0,
                              (ulong *)0x0);
    if (bVar6 == 0) {
      return 0;
    }
  }
  puVar2 = PTR_stdout_000b3fd8;
  local_64 = (uint)section->sh_addr;
  puVar11 = start;
  if (local_68 != (char *)0x0 || local_6c != 0) {
    do {
      uVar8 = 0x10;
      if (local_68 == (char *)0x0 && (uint)(0x10 < local_6c) <= (uint)-(int)local_68) {
        uVar8 = local_6c;
      }
      uVar10 = 0;
      uVar9 = local_64;
      printf("  0x%8.8lx ",local_64);
      do {
        while ((int)uVar10 < (int)uVar8) {
          uVar9 = (uint)puVar11[uVar10];
          printf("%2.2x",uVar9);
          if ((uVar10 & 3) == 3) goto LAB_00041fd4;
LAB_00041faf:
          uVar10 = uVar10 + 1;
          if (uVar10 == 0x10) goto LAB_00041fe9;
        }
        printf("  ",uVar9);
        if ((uVar10 & 3) != 3) goto LAB_00041faf;
LAB_00041fd4:
        uVar10 = uVar10 + 1;
        putchar(0x20);
      } while (uVar10 != 0x10);
LAB_00041fe9:
      iVar7 = 0;
      do {
        while (pbVar12 = puVar11 + iVar7, *pbVar12 - 0x20 < 0x5f) {
          iVar7 = iVar7 + 1;
          putchar((uint)*pbVar12);
          if ((int)uVar8 <= iVar7) goto LAB_00042024;
        }
        iVar7 = iVar7 + 1;
        putchar(0x2e);
      } while (iVar7 < (int)uVar8);
LAB_00042024:
      putc(10,*(FILE **)puVar2);
      local_64 = local_64 + uVar8;
      bVar22 = local_6c < uVar8;
      local_6c = local_6c - uVar8;
      local_68 = local_68 + (-(uint)bVar22 - ((int)uVar8 >> 0x1f));
      puVar11 = puVar11 + uVar8;
    } while (local_68 != (char *)0x0 || local_6c != 0);
  }
  free(__ptr);
  putc(10,*(FILE **)puVar2);
  return 1;
}



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

bool __regparm3 FUN_00041ce0(int param_1,int param_2,int param_3)

{
  byte *pbVar1;
  undefined *puVar2;
  byte *__ptr;
  undefined4 uVar3;
  char *pcVar4;
  undefined4 uVar5;
  int iVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  byte *pbVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  byte *pbVar19;
  bool bVar20;
  bool bVar21;
  byte bVar22;
  uint local_6c;
  int local_68;
  uint local_64;
  byte *local_40;
  uint local_3c;
  int local_38;
  int local_30;
  int local_2c;
  int local_28;
  undefined4 uStack_14;
  
  bVar22 = 0;
  uStack_14 = 0x41ceb;
  __ptr = (byte *)FUN_00032770();
  if (__ptr == (byte *)0x0) {
    if (*(int *)(param_1 + 0x24) == 0 && *(int *)(param_1 + 0x20) == 0) {
      return true;
    }
    return *(int *)(param_1 + 4) == 8;
  }
  local_6c = *(uint *)(param_1 + 0x20);
  local_68 = *(int *)(param_1 + 0x24);
  uVar3 = FUN_00022190();
  pcVar4 = (char *)dcgettext(0,"\nHex dump of section \'%s\':\n",5);
  printf(pcVar4,uVar3);
  pbVar1 = __ptr;
  if (DAT_000b6320 == 0) goto LAB_00041e89;
  local_3c = local_6c;
  local_38 = local_68;
  if ((*(uint *)(param_1 + 8) & 0x800) == 0) {
    uVar7 = (uint)(0xc < local_6c);
    uVar8 = -local_68;
    bVar20 = local_68 != 0 || uVar8 < uVar7;
    bVar21 = uVar8 == uVar7;
    if (local_68 == 0 && uVar8 >= uVar7) goto LAB_00041e89;
    iVar6 = 5;
    pbVar10 = __ptr;
    pbVar19 = &DAT_0007d064;
    do {
      if (iVar6 == 0) break;
      iVar6 = iVar6 + -1;
      bVar20 = *pbVar10 < *pbVar19;
      bVar21 = *pbVar10 == *pbVar19;
      pbVar10 = pbVar10 + (uint)bVar22 * -2 + 1;
      pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;
    } while (bVar21);
    if ((!bVar20 && !bVar21) != bVar20) goto LAB_00041e89;
    uVar11 = (uint)CONCAT11(__ptr[4],__ptr[5]) * 0x100;
    uVar12 = __ptr[6] + uVar11;
    uVar13 = uVar12 * 0x100;
    uVar14 = __ptr[7] + uVar13;
    uVar15 = uVar14 * 0x100;
    uVar7 = uVar15 + __ptr[8];
    uVar16 = uVar7 * 0x100;
    uVar8 = __ptr[9] + uVar16;
    uVar17 = uVar8 * 0x100;
    uVar9 = __ptr[10] + uVar17;
    uVar18 = uVar9 * 0x100;
    local_2c = __ptr[0xb] + uVar18;
    local_28 = (((((((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +
                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +
                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +
                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +
                  (uint)CARRY4((uint)__ptr[9],uVar16)) * 0x100 | uVar8 >> 0x18) +
                (uint)CARRY4((uint)__ptr[10],uVar17)) * 0x100 | uVar9 >> 0x18) +
               (uint)CARRY4((uint)__ptr[0xb],uVar18);
    local_40 = __ptr + 0xc;
    local_3c = local_6c - 0xc;
    local_38 = local_68 + -1 + (uint)(0xb < local_6c);
  }
  else {
    uVar7 = FUN_0001be30(local_6c,local_68);
    if (local_30 != 1) {
      uVar3 = FUN_00022190();
      uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);
      warn(uVar5,uVar3,local_30);
      return false;
    }
    local_40 = __ptr + uVar7;
    bVar20 = local_3c < uVar7;
    local_3c = local_3c - uVar7;
    local_38 = local_38 - (uint)bVar20;
  }
  if (local_28 != 0 || local_2c != 0) {
    iVar6 = FUN_0001d690(&local_3c);
    if (iVar6 == 0) {
      uVar3 = FUN_00022190();
      uVar5 = dcgettext(0,"Unable to decompress section %s\n",5);
      error(uVar5,uVar3);
      return false;
    }
    local_6c = local_3c;
    local_68 = local_38;
    pbVar1 = local_40;
  }
LAB_00041e89:
  local_40 = pbVar1;
  if (param_3 == 0) {
    uVar7 = *(uint *)(param_2 + 0x54);
    uVar8 = *(uint *)(param_2 + 0x5c);
    for (uVar9 = uVar8; uVar9 < uVar8 + uVar7 * 0x48; uVar9 = uVar9 + 0x48) {
      if ((((*(int *)(uVar9 + 4) == 4) || (*(int *)(uVar9 + 4) == 9)) &&
          (*(uint *)(uVar9 + 0x2c) < uVar7)) &&
         (((param_1 == uVar8 + *(uint *)(uVar9 + 0x2c) * 0x48 &&
           (*(int *)(uVar9 + 0x24) != 0 || *(int *)(uVar9 + 0x20) != 0)) &&
          (*(uint *)(uVar9 + 0x28) < uVar7)))) {
        pcVar4 = (char *)dcgettext(0,
                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"
                                   ,5);
        printf(pcVar4);
        break;
      }
    }
  }
  else {
    iVar6 = FUN_0003fb10(local_6c,local_68,0,0);
    if (iVar6 == 0) {
      return false;
    }
  }
  puVar2 = PTR_stdout_000b3fd8;
  local_64 = *(uint *)(param_1 + 0x10);
  if (local_68 != 0 || local_6c != 0) {
    do {
      uVar7 = 0x10;
      if (local_68 == 0 && (uint)(0x10 < local_6c) <= (uint)-local_68) {
        uVar7 = local_6c;
      }
      uVar9 = 0;
      uVar8 = local_64;
      printf("  0x%8.8lx ",local_64);
      do {
        while ((int)uVar9 < (int)uVar7) {
          uVar8 = (uint)local_40[uVar9];
          printf("%2.2x",uVar8);
          if ((uVar9 & 3) == 3) goto LAB_00041fd4;
LAB_00041faf:
          uVar9 = uVar9 + 1;
          if (uVar9 == 0x10) goto LAB_00041fe9;
        }
        printf("  ",uVar8);
        if ((uVar9 & 3) != 3) goto LAB_00041faf;
LAB_00041fd4:
        uVar9 = uVar9 + 1;
        putchar(0x20);
      } while (uVar9 != 0x10);
LAB_00041fe9:
      iVar6 = 0;
      do {
        while (pbVar1 = local_40 + iVar6, *pbVar1 - 0x20 < 0x5f) {
          iVar6 = iVar6 + 1;
          putchar((uint)*pbVar1);
          if ((int)uVar7 <= iVar6) goto LAB_00042024;
        }
        iVar6 = iVar6 + 1;
        putchar(0x2e);
      } while (iVar6 < (int)uVar7);
LAB_00042024:
      local_40 = local_40 + uVar7;
      putc(10,*(FILE **)puVar2);
      local_64 = local_64 + uVar7;
      bVar20 = local_6c < uVar7;
      local_6c = local_6c - uVar7;
      local_68 = (local_68 - ((int)uVar7 >> 0x1f)) - (uint)bVar20;
    } while (local_68 != 0 || local_6c != 0);
  }
  free(__ptr);
  putc(10,*(FILE **)puVar2);
  return true;
}


PUSH EBP
MOV EBP,EAX
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00013f70
ADD EBX,0x72315
SUB ESP,0x6c
MOV dword ptr [ESP + 0xc],EDX
MOV dword ptr [ESP + 0x20],ECX
CALL 0x00032770
MOV dword ptr [ESP + 0x2c],EAX
MOV dword ptr [ESP + 0x3c],EAX
TEST EAX,EAX
JZ 0x000420b5
MOV ECX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [EBP + 0x20]
MOV EDX,dword ptr [EBP + 0x24]
LEA ESI,[ECX + 0x64]
ADD ECX,0x68
MOV dword ptr [ESP + 0x10],EAX
MOV dword ptr [ESP + 0x14],EDX
MOV EAX,ESI
MOV EDX,ECX
MOV dword ptr [ESP + 0x24],ECX
MOV ECX,EBP
MOV dword ptr [ESP + 0x18],ESI
CALL 0x00022190
SUB ESP,0x4
MOV ESI,EAX
LEA EAX,[EBX + 0xfffc9069]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
POP ECX
POP EDI
PUSH ESI
PUSH EAX
CALL 0x00013060
MOV EAX,dword ptr [EBX + 0x2320]
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00041e89
MOV EAX,dword ptr [ESP + 0x10]
MOV EDX,dword ptr [ESP + 0x14]
MOV dword ptr [ESP + 0x40],EAX
MOV EAX,dword ptr [EBP + 0x8]
MOV dword ptr [ESP + 0x44],EDX
AND EAX,0x800
JNZ 0x000420d3
MOV ESI,dword ptr [ESP + 0x10]
MOV EDX,0xc
CMP EDX,ESI
SBB EAX,dword ptr [ESP + 0x14]
JNC 0x00041e81
MOV EAX,dword ptr [ESP + 0x3c]
MOV ECX,0x5
LEA EDI,[EBX + 0xfffc9064]
MOV ESI,EAX
CMPSB.REPE ES:EDI,ESI
SETA DL
SBB DL,0x0
TEST DL,DL
JNZ 0x00041e81
MOVZX EDX,byte ptr [EAX + 0x4]
XOR EDI,EDI
MOV ESI,EDX
SHLD EDI,EDX,0x8
SHL ESI,0x8
MOV ECX,EDI
XOR EDI,EDI
MOV EDX,ESI
MOVZX ESI,byte ptr [EAX + 0x5]
ADD ESI,EDX
ADC EDI,ECX
SHLD EDI,ESI,0x8
SHL ESI,0x8
MOV EDX,ESI
MOVZX ESI,byte ptr [EAX + 0x6]
MOV ECX,EDI
XOR EDI,EDI
ADD ESI,EDX
ADC EDI,ECX
SHLD EDI,ESI,0x8
SHL ESI,0x8
MOV EDX,ESI
MOVZX ESI,byte ptr [EAX + 0x7]
MOV ECX,EDI
XOR EDI,EDI
ADD ESI,EDX
ADC EDI,ECX
SHLD EDI,ESI,0x8
SHL ESI,0x8
MOV EDX,ESI
MOVZX ESI,byte ptr [EAX + 0x8]
MOV ECX,EDI
XOR EDI,EDI
ADD EDX,ESI
ADC ECX,EDI
MOV ESI,EDX
MOV EDI,ECX
SHL ESI,0x8
XOR ECX,ECX
SHLD EDI,EDX,0x8
MOVZX EDX,byte ptr [EAX + 0x9]
ADD EDX,ESI
ADC ECX,EDI
MOV ESI,EDX
MOV EDI,ECX
SHL ESI,0x8
XOR ECX,ECX
SHLD EDI,EDX,0x8
MOVZX EDX,byte ptr [EAX + 0xa]
ADD EDX,ESI
ADC ECX,EDI
MOV ESI,EDX
MOV EDI,ECX
SHL ESI,0x8
XOR ECX,ECX
SHLD EDI,EDX,0x8
MOVZX EDX,byte ptr [EAX + 0xb]
ADD EDX,ESI
MOV ESI,dword ptr [ESP + 0x10]
ADC ECX,EDI
MOV EDI,dword ptr [ESP + 0x14]
ADD EAX,0xc
ADD ESI,-0xc
MOV dword ptr [ESP + 0x3c],EAX
ADC EDI,-0x1
MOV dword ptr [ESP + 0x40],ESI
MOV dword ptr [ESP + 0x44],EDI
MOV ESI,ECX
OR ESI,EDX
JNZ 0x00042121
MOV EAX,dword ptr [ESP + 0x2c]
MOV dword ptr [ESP + 0x3c],EAX
MOV ECX,dword ptr [ESP + 0x20]
TEST ECX,ECX
JNZ 0x0004208d
MOV EAX,dword ptr [ESP + 0xc]
MOV ECX,dword ptr [EAX + 0x54]
MOV EDI,dword ptr [EAX + 0x5c]
LEA EAX,[ECX + ECX*0x8]
LEA ESI,[EDI + EAX*0x8]
CMP EDI,ESI
JNC 0x00041f00
MOV EAX,EDI
JMP 0x00041eb7
ADD EAX,0x48
CMP EAX,ESI
JNC 0x00041f00
MOV EDX,dword ptr [EAX + 0x4]
CMP EDX,0x4
JZ 0x00041ec4
CMP EDX,0x9
JNZ 0x00041eb0
MOV EDX,dword ptr [EAX + 0x2c]
CMP EDX,ECX
JNC 0x00041eb0
LEA EDX,[EDX + EDX*0x8]
LEA EDX,[EDI + EDX*0x8]
CMP EBP,EDX
JNZ 0x00041eb0
MOV EDX,dword ptr [EAX + 0x24]
OR EDX,dword ptr [EAX + 0x20]
JZ 0x00041eb0
CMP dword ptr [EAX + 0x28],ECX
JNC 0x00041eb0
SUB ESP,0x4
LEA EAX,[EBX + 0xfffd0f94]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
MOV dword ptr [ESP],EAX
CALL 0x00013060
ADD ESP,0x10
MOV EDX,dword ptr [EBP + 0x14]
MOV EAX,dword ptr [EBP + 0x10]
MOV ECX,dword ptr [ESP + 0x14]
MOV EBP,dword ptr [ESP + 0x3c]
MOV dword ptr [ESP + 0x1c],EDX
MOV EDX,dword ptr [ESP + 0x10]
MOV dword ptr [ESP + 0x18],EAX
MOV EAX,EDX
MOV EDX,ECX
OR EDX,EAX
JZ 0x00042112
LEA EAX,[EBX + 0xfffc2ab7]
MOV dword ptr [ESP + 0x28],EAX
MOV EAX,dword ptr [EBX + 0xffffffd8]
MOV dword ptr [ESP + 0x24],EAX
LEA ESI,[ESI]
MOV EDX,dword ptr [ESP + 0x10]
MOV ECX,dword ptr [ESP + 0x14]
MOV EDI,0x10
MOV ESI,0x0
CMP EDI,EDX
SBB ESI,ECX
MOV ESI,0x10
CMOVNC ESI,EDX
SUB ESP,0x8
XOR EDI,EDI
PUSH dword ptr [ESP + 0x20]
PUSH dword ptr [ESP + 0x34]
CALL 0x00013060
ADD ESP,0x10
LEA EAX,[EBX + 0xfffc83bb]
MOV dword ptr [ESP + 0xc],EAX
LEA EAX,[EBX + 0xfffc2ac3]
MOV dword ptr [ESP + 0x20],EAX
JMP 0x00041fb7
MOVZX EAX,byte ptr [EBP + EDI*0x1]
SUB ESP,0x8
PUSH EAX
PUSH dword ptr [ESP + 0x2c]
CALL 0x00013060
MOV EAX,EDI
ADD ESP,0x10
AND EAX,0x3
CMP EAX,0x3
JZ 0x00041fd4
ADD EDI,0x1
CMP EDI,0x10
JZ 0x00041fe9
CMP ESI,EDI
JG 0x00041f90
SUB ESP,0xc
PUSH dword ptr [ESP + 0x18]
CALL 0x00013060
MOV EAX,EDI
ADD ESP,0x10
AND EAX,0x3
CMP EAX,0x3
JNZ 0x00041faf
SUB ESP,0xc
ADD EDI,0x1
PUSH 0x20
CALL 0x000132d0
ADD ESP,0x10
CMP EDI,0x10
JNZ 0x00041fb7
XOR EDI,EDI
JMP 0x00042003
SUB ESP,0xc
ADD EDI,0x1
PUSH EAX
CALL 0x000132d0
ADD ESP,0x10
CMP ESI,EDI
JLE 0x00042024
MOVZX EAX,byte ptr [EBP + EDI*0x1]
LEA EDX,[EAX + -0x20]
CMP EDX,0x5e
JBE 0x00041ff0
SUB ESP,0xc
ADD EDI,0x1
PUSH 0x2e
CALL 0x000132d0
ADD ESP,0x10
CMP ESI,EDI
JG 0x00042003
SUB ESP,0x8
MOV EDI,ESI
ADD EBP,ESI
MOV EAX,dword ptr [ESP + 0x2c]
SAR EDI,0x1f
PUSH dword ptr [EAX]
PUSH 0xa
CALL 0x00013360
ADD dword ptr [ESP + 0x28],ESI
ADC dword ptr [ESP + 0x2c],EDI
SUB dword ptr [ESP + 0x20],ESI
SBB dword ptr [ESP + 0x24],EDI
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x10]
MOV ECX,dword ptr [ESP + 0x14]
MOV EAX,EDX
MOV EDX,ECX
OR EDX,EAX
JNZ 0x00041f40
SUB ESP,0xc
PUSH dword ptr [ESP + 0x38]
CALL 0x000130a0
POP EAX
POP EDX
MOV EAX,dword ptr [ESP + 0x2c]
PUSH dword ptr [EAX]
PUSH 0xa
CALL 0x00013360
ADD ESP,0x10
MOV EAX,0x1
ADD ESP,0x6c
POP EBX
POP ESI
POP EDI
POP EBP
RET
PUSH 0x0
MOV EDX,EBP
PUSH 0x0
PUSH dword ptr [ESP + 0x1c]
PUSH dword ptr [ESP + 0x1c]
MOV ECX,dword ptr [ESP + 0x4c]
MOV EAX,dword ptr [ESP + 0x1c]
CALL 0x0003fb10
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00041f00
JMP 0x00042085
MOV EDX,dword ptr [EBP + 0x24]
OR EDX,dword ptr [EBP + 0x20]
MOV EAX,0x1
JZ 0x00042085
XOR EAX,EAX
CMP dword ptr [EBP + 0x4],0x8
SETZ AL
ADD ESP,0x6c
POP EBX
POP ESI
POP EDI
POP EBP
RET
LEA EAX,[ESP + 0x4c]
SUB ESP,0x8
PUSH dword ptr [ESP + 0x1c]
PUSH dword ptr [ESP + 0x1c]
MOV EDX,dword ptr [ESP + 0x4c]
CALL 0x0001be30
MOV EDI,dword ptr [ESP + 0x5c]
ADD ESP,0x10
CMP EDI,0x1
JNZ 0x0004214e
XOR EDI,EDI
ADD dword ptr [ESP + 0x3c],EAX
MOV EDX,dword ptr [ESP + 0x50]
SUB dword ptr [ESP + 0x40],EAX
MOV ECX,dword ptr [ESP + 0x54]
SBB dword ptr [ESP + 0x44],EDI
JMP 0x00041e77
MOV EAX,dword ptr [EBX + 0xffffffd8]
MOV dword ptr [ESP + 0x24],EAX
JMP 0x00042062
LEA EAX,[ESP + 0x3c]
SUB ESP,0xc
LEA ESI,[ESP + 0x4c]
PUSH ESI
CALL 0x0001d690
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00042187
MOV EAX,dword ptr [ESP + 0x40]
MOV EDX,dword ptr [ESP + 0x44]
MOV dword ptr [ESP + 0x10],EAX
MOV dword ptr [ESP + 0x14],EDX
JMP 0x00041e89
MOV EDX,dword ptr [ESP + 0x24]
MOV EAX,dword ptr [ESP + 0x18]
MOV ECX,EBP
CALL 0x00022190
SUB ESP,0x4
MOV ESI,EAX
LEA EAX,[EBX + 0xfffd0f40]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
ADD ESP,0xc
PUSH EDI
PUSH ESI
PUSH EAX
CALL 0x00066bf0
ADD ESP,0x10
XOR EAX,EAX
JMP 0x00042085
MOV EDX,dword ptr [ESP + 0x24]
MOV EAX,dword ptr [ESP + 0x18]
MOV ECX,EBP
CALL 0x00022190
SUB ESP,0x4
MOV ESI,EAX
LEA EAX,[EBX + 0xfffd0f70]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
POP EDI
POP EBP
PUSH ESI
PUSH EAX
CALL 0x000666b0
ADD ESP,0x10
XOR EAX,EAX
JMP 0x00042085
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nbool __regparm3 FUN_00041ce0(int param_1,int param_2,int param_3)\n\n{\n  byte *pbVar1;\n  undefined *puVar2;\n  byte *__ptr;\n  undefined4 uVar3;\n  char *pcVar4;\n  undefined4 uVar5;\n  int iVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  byte *pbVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  byte *pbVar19;\n  bool bVar20;\n  bool bVar21;\n  byte bVar22;\n  uint local_6c;\n  int local_68;\n  uint local_64;\n  byte *local_40;\n  uint local_3c;\n  int local_38;\n  int local_30;\n  int local_2c;\n  int local_28;\n  undefined4 uStack_14;\n  \n  bVar22 = 0;\n  uStack_14 = 0x41ceb;\n  __ptr = (byte *)FUN_00032770();\n  if (__ptr == (byte *)0x0) {\n    if (*(int *)(param_1 + 0x24) == 0 && *(int *)(param_1 + 0x20) == 0) {\n      return true;\n    }\n    return *(int *)(param_1 + 4) == 8;\n  }\n  local_6c = *(uint *)(param_1 + 0x20);\n  local_68 = *(int *)(param_1 + 0x24);\n  uVar3 = FUN_00022190();\n  pcVar4 = (char *)dcgettext(0,"\nHex dump of section \'%s\':\n",5);\n  printf(pcVar4,uVar3);\n  pbVar1 = __ptr;\n  if (DAT_000b6320 == 0) goto LAB_00041e89;\n  local_3c = local_6c;\n  local_38 = local_68;\n  if ((*(uint *)(param_1 + 8) & 0x800) == 0) {\n    uVar7 = (uint)(0xc < local_6c);\n    uVar8 = -local_68;\n    bVar20 = local_68 != 0 || uVar8 < uVar7;\n    bVar21 = uVar8 == uVar7;\n    if (local_68 == 0 && uVar8 >= uVar7) goto LAB_00041e89;\n    iVar6 = 5;\n    pbVar10 = __ptr;\n    pbVar19 = &DAT_0007d064;\n    do {\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      bVar20 = *pbVar10 < *pbVar19;\n      bVar21 = *pbVar10 == *pbVar19;\n      pbVar10 = pbVar10 + (uint)bVar22 * -2 + 1;\n      pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n    } while (bVar21);\n    if ((!bVar20 && !bVar21) != bVar20) goto LAB_00041e89;\n    uVar11 = (uint)CONCAT11(__ptr[4],__ptr[5]) * 0x100;\n    uVar12 = __ptr[6] + uVar11;\n    uVar13 = uVar12 * 0x100;\n    uVar14 = __ptr[7] + uVar13;\n    uVar15 = uVar14 * 0x100;\n    uVar7 = uVar15 + __ptr[8];\n    uVar16 = uVar7 * 0x100;\n    uVar8 = __ptr[9] + uVar16;\n    uVar17 = uVar8 * 0x100;\n    uVar9 = __ptr[10] + uVar17;\n    uVar18 = uVar9 * 0x100;\n    local_2c = __ptr[0xb] + uVar18;\n    local_28 = (((((((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +\n                  (uint)CARRY4((uint)__ptr[9],uVar16)) * 0x100 | uVar8 >> 0x18) +\n                (uint)CARRY4((uint)__ptr[10],uVar17)) * 0x100 | uVar9 >> 0x18) +\n               (uint)CARRY4((uint)__ptr[0xb],uVar18);\n    local_40 = __ptr + 0xc;\n    local_3c = local_6c - 0xc;\n    local_38 = local_68 + -1 + (uint)(0xb < local_6c);\n  }\n  else {\n    uVar7 = FUN_0001be30(local_6c,local_68);\n    if (local_30 != 1) {\n      uVar3 = FUN_00022190();\n      uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(uVar5,uVar3,local_30);\n      return false;\n    }\n    local_40 = __ptr + uVar7;\n    bVar20 = local_3c < uVar7;\n    local_3c = local_3c - uVar7;\n    local_38 = local_38 - (uint)bVar20;\n  }\n  if (local_28 != 0 || local_2c != 0) {\n    iVar6 = FUN_0001d690(&local_3c);\n    if (iVar6 == 0) {\n      uVar3 = FUN_00022190();\n      uVar5 = dcgettext(0,"Unable to decompress section %s\n",5);\n      error(uVar5,uVar3);\n      return false;\n    }\n    local_6c = local_3c;\n    local_68 = local_38;\n    pbVar1 = local_40;\n  }\nLAB_00041e89:\n  local_40 = pbVar1;\n  if (param_3 == 0) {\n    uVar7 = *(uint *)(param_2 + 0x54);\n    uVar8 = *(uint *)(param_2 + 0x5c);\n    for (uVar9 = uVar8; uVar9 < uVar8 + uVar7 * 0x48; uVar9 = uVar9 + 0x48) {\n      if ((((*(int *)(uVar9 + 4) == 4) || (*(int *)(uVar9 + 4) == 9)) &&\n          (*(uint *)(uVar9 + 0x2c) < uVar7)) &&\n         (((param_1 == uVar8 + *(uint *)(uVar9 + 0x2c) * 0x48 &&\n           (*(int *)(uVar9 + 0x24) != 0 || *(int *)(uVar9 + 0x20) != 0)) &&\n          (*(uint *)(uVar9 + 0x28) < uVar7)))) {\n        pcVar4 = (char *)dcgettext(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5);\n        printf(pcVar4);\n        break;\n      }\n    }\n  }\n  else {\n    iVar6 = FUN_0003fb10(local_6c,local_68,0,0);\n    if (iVar6 == 0) {\n      return false;\n    }\n  }\n  puVar2 = PTR_stdout_000b3fd8;\n  local_64 = *(uint *)(param_1 + 0x10);\n  if (local_68 != 0 || local_6c != 0) {\n    do {\n      uVar7 = 0x10;\n      if (local_68 == 0 && (uint)(0x10 < local_6c) <= (uint)-local_68) {\n        uVar7 = local_6c;\n      }\n      uVar9 = 0;\n      uVar8 = local_64;\n      printf("  0x%8.8lx ",local_64);\n      do {\n        while ((int)uVar9 < (int)uVar7) {\n          uVar8 = (uint)local_40[uVar9];\n          printf("%2.2x",uVar8);\n          if ((uVar9 & 3) == 3) goto LAB_00041fd4;\nLAB_00041faf:\n          uVar9 = uVar9 + 1;\n          if (uVar9 == 0x10) goto LAB_00041fe9;\n        }\n        printf("  ",uVar8);\n        if ((uVar9 & 3) != 3) goto LAB_00041faf;\nLAB_00041fd4:\n        uVar9 = uVar9 + 1;\n        putchar(0x20);\n      } while (uVar9 != 0x10);\nLAB_00041fe9:\n      iVar6 = 0;\n      do {\n        while (pbVar1 = local_40 + iVar6, *pbVar1 - 0x20 < 0x5f) {\n          iVar6 = iVar6 + 1;\n          putchar((uint)*pbVar1);\n          if ((int)uVar7 <= iVar6) goto LAB_00042024;\n        }\n        iVar6 = iVar6 + 1;\n        putchar(0x2e);\n      } while (iVar6 < (int)uVar7);\nLAB_00042024:\n      local_40 = local_40 + uVar7;\n      putc(10,*(FILE **)puVar2);\n      local_64 = local_64 + uVar7;\n      bVar20 = local_6c < uVar7;\n      local_6c = local_6c - uVar7;\n      local_68 = (local_68 - ((int)uVar7 >> 0x1f)) - (uint)bVar20;\n    } while (local_68 != 0 || local_6c != 0);\n  }\n  free(__ptr);\n  putc(10,*(FILE **)puVar2);\n  return true;\n}\n\n" comment (function_definition "bool __regparm3 FUN_00041ce0(int param_1,int param_2,int param_3)\n\n{\n  byte *pbVar1;\n  undefined *puVar2;\n  byte *__ptr;\n  undefined4 uVar3;\n  char *pcVar4;\n  undefined4 uVar5;\n  int iVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  byte *pbVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  byte *pbVar19;\n  bool bVar20;\n  bool bVar21;\n  byte bVar22;\n  uint local_6c;\n  int local_68;\n  uint local_64;\n  byte *local_40;\n  uint local_3c;\n  int local_38;\n  int local_30;\n  int local_2c;\n  int local_28;\n  undefined4 uStack_14;\n  \n  bVar22 = 0;\n  uStack_14 = 0x41ceb;\n  __ptr = (byte *)FUN_00032770();\n  if (__ptr == (byte *)0x0) {\n    if (*(int *)(param_1 + 0x24) == 0 && *(int *)(param_1 + 0x20) == 0) {\n      return true;\n    }\n    return *(int *)(param_1 + 4) == 8;\n  }\n  local_6c = *(uint *)(param_1 + 0x20);\n  local_68 = *(int *)(param_1 + 0x24);\n  uVar3 = FUN_00022190();\n  pcVar4 = (char *)dcgettext(0,"\nHex dump of section \'%s\':\n",5);\n  printf(pcVar4,uVar3);\n  pbVar1 = __ptr;\n  if (DAT_000b6320 == 0) goto LAB_00041e89;\n  local_3c = local_6c;\n  local_38 = local_68;\n  if ((*(uint *)(param_1 + 8) & 0x800) == 0) {\n    uVar7 = (uint)(0xc < local_6c);\n    uVar8 = -local_68;\n    bVar20 = local_68 != 0 || uVar8 < uVar7;\n    bVar21 = uVar8 == uVar7;\n    if (local_68 == 0 && uVar8 >= uVar7) goto LAB_00041e89;\n    iVar6 = 5;\n    pbVar10 = __ptr;\n    pbVar19 = &DAT_0007d064;\n    do {\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      bVar20 = *pbVar10 < *pbVar19;\n      bVar21 = *pbVar10 == *pbVar19;\n      pbVar10 = pbVar10 + (uint)bVar22 * -2 + 1;\n      pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n    } while (bVar21);\n    if ((!bVar20 && !bVar21) != bVar20) goto LAB_00041e89;\n    uVar11 = (uint)CONCAT11(__ptr[4],__ptr[5]) * 0x100;\n    uVar12 = __ptr[6] + uVar11;\n    uVar13 = uVar12 * 0x100;\n    uVar14 = __ptr[7] + uVar13;\n    uVar15 = uVar14 * 0x100;\n    uVar7 = uVar15 + __ptr[8];\n    uVar16 = uVar7 * 0x100;\n    uVar8 = __ptr[9] + uVar16;\n    uVar17 = uVar8 * 0x100;\n    uVar9 = __ptr[10] + uVar17;\n    uVar18 = uVar9 * 0x100;\n    local_2c = __ptr[0xb] + uVar18;\n    local_28 = (((((((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +\n                  (uint)CARRY4((uint)__ptr[9],uVar16)) * 0x100 | uVar8 >> 0x18) +\n                (uint)CARRY4((uint)__ptr[10],uVar17)) * 0x100 | uVar9 >> 0x18) +\n               (uint)CARRY4((uint)__ptr[0xb],uVar18);\n    local_40 = __ptr + 0xc;\n    local_3c = local_6c - 0xc;\n    local_38 = local_68 + -1 + (uint)(0xb < local_6c);\n  }\n  else {\n    uVar7 = FUN_0001be30(local_6c,local_68);\n    if (local_30 != 1) {\n      uVar3 = FUN_00022190();\n      uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(uVar5,uVar3,local_30);\n      return false;\n    }\n    local_40 = __ptr + uVar7;\n    bVar20 = local_3c < uVar7;\n    local_3c = local_3c - uVar7;\n    local_38 = local_38 - (uint)bVar20;\n  }\n  if (local_28 != 0 || local_2c != 0) {\n    iVar6 = FUN_0001d690(&local_3c);\n    if (iVar6 == 0) {\n      uVar3 = FUN_00022190();\n      uVar5 = dcgettext(0,"Unable to decompress section %s\n",5);\n      error(uVar5,uVar3);\n      return false;\n    }\n    local_6c = local_3c;\n    local_68 = local_38;\n    pbVar1 = local_40;\n  }\nLAB_00041e89:\n  local_40 = pbVar1;\n  if (param_3 == 0) {\n    uVar7 = *(uint *)(param_2 + 0x54);\n    uVar8 = *(uint *)(param_2 + 0x5c);\n    for (uVar9 = uVar8; uVar9 < uVar8 + uVar7 * 0x48; uVar9 = uVar9 + 0x48) {\n      if ((((*(int *)(uVar9 + 4) == 4) || (*(int *)(uVar9 + 4) == 9)) &&\n          (*(uint *)(uVar9 + 0x2c) < uVar7)) &&\n         (((param_1 == uVar8 + *(uint *)(uVar9 + 0x2c) * 0x48 &&\n           (*(int *)(uVar9 + 0x24) != 0 || *(int *)(uVar9 + 0x20) != 0)) &&\n          (*(uint *)(uVar9 + 0x28) < uVar7)))) {\n        pcVar4 = (char *)dcgettext(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5);\n        printf(pcVar4);\n        break;\n      }\n    }\n  }\n  else {\n    iVar6 = FUN_0003fb10(local_6c,local_68,0,0);\n    if (iVar6 == 0) {\n      return false;\n    }\n  }\n  puVar2 = PTR_stdout_000b3fd8;\n  local_64 = *(uint *)(param_1 + 0x10);\n  if (local_68 != 0 || local_6c != 0) {\n    do {\n      uVar7 = 0x10;\n      if (local_68 == 0 && (uint)(0x10 < local_6c) <= (uint)-local_68) {\n        uVar7 = local_6c;\n      }\n      uVar9 = 0;\n      uVar8 = local_64;\n      printf("  0x%8.8lx ",local_64);\n      do {\n        while ((int)uVar9 < (int)uVar7) {\n          uVar8 = (uint)local_40[uVar9];\n          printf("%2.2x",uVar8);\n          if ((uVar9 & 3) == 3) goto LAB_00041fd4;\nLAB_00041faf:\n          uVar9 = uVar9 + 1;\n          if (uVar9 == 0x10) goto LAB_00041fe9;\n        }\n        printf("  ",uVar8);\n        if ((uVar9 & 3) != 3) goto LAB_00041faf;\nLAB_00041fd4:\n        uVar9 = uVar9 + 1;\n        putchar(0x20);\n      } while (uVar9 != 0x10);\nLAB_00041fe9:\n      iVar6 = 0;\n      do {\n        while (pbVar1 = local_40 + iVar6, *pbVar1 - 0x20 < 0x5f) {\n          iVar6 = iVar6 + 1;\n          putchar((uint)*pbVar1);\n          if ((int)uVar7 <= iVar6) goto LAB_00042024;\n        }\n        iVar6 = iVar6 + 1;\n        putchar(0x2e);\n      } while (iVar6 < (int)uVar7);\nLAB_00042024:\n      local_40 = local_40 + uVar7;\n      putc(10,*(FILE **)puVar2);\n      local_64 = local_64 + uVar7;\n      bVar20 = local_6c < uVar7;\n      local_6c = local_6c - uVar7;\n      local_68 = (local_68 - ((int)uVar7 >> 0x1f)) - (uint)bVar20;\n    } while (local_68 != 0 || local_6c != 0);\n  }\n  free(__ptr);\n  putc(10,*(FILE **)puVar2);\n  return true;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00041ce0(int param_1,int param_2,int param_3)" identifier (parameter_list "(int param_1,int param_2,int param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  byte *pbVar1;\n  undefined *puVar2;\n  byte *__ptr;\n  undefined4 uVar3;\n  char *pcVar4;\n  undefined4 uVar5;\n  int iVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  byte *pbVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  byte *pbVar19;\n  bool bVar20;\n  bool bVar21;\n  byte bVar22;\n  uint local_6c;\n  int local_68;\n  uint local_64;\n  byte *local_40;\n  uint local_3c;\n  int local_38;\n  int local_30;\n  int local_2c;\n  int local_28;\n  undefined4 uStack_14;\n  \n  bVar22 = 0;\n  uStack_14 = 0x41ceb;\n  __ptr = (byte *)FUN_00032770();\n  if (__ptr == (byte *)0x0) {\n    if (*(int *)(param_1 + 0x24) == 0 && *(int *)(param_1 + 0x20) == 0) {\n      return true;\n    }\n    return *(int *)(param_1 + 4) == 8;\n  }\n  local_6c = *(uint *)(param_1 + 0x20);\n  local_68 = *(int *)(param_1 + 0x24);\n  uVar3 = FUN_00022190();\n  pcVar4 = (char *)dcgettext(0,"\nHex dump of section \'%s\':\n",5);\n  printf(pcVar4,uVar3);\n  pbVar1 = __ptr;\n  if (DAT_000b6320 == 0) goto LAB_00041e89;\n  local_3c = local_6c;\n  local_38 = local_68;\n  if ((*(uint *)(param_1 + 8) & 0x800) == 0) {\n    uVar7 = (uint)(0xc < local_6c);\n    uVar8 = -local_68;\n    bVar20 = local_68 != 0 || uVar8 < uVar7;\n    bVar21 = uVar8 == uVar7;\n    if (local_68 == 0 && uVar8 >= uVar7) goto LAB_00041e89;\n    iVar6 = 5;\n    pbVar10 = __ptr;\n    pbVar19 = &DAT_0007d064;\n    do {\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      bVar20 = *pbVar10 < *pbVar19;\n      bVar21 = *pbVar10 == *pbVar19;\n      pbVar10 = pbVar10 + (uint)bVar22 * -2 + 1;\n      pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n    } while (bVar21);\n    if ((!bVar20 && !bVar21) != bVar20) goto LAB_00041e89;\n    uVar11 = (uint)CONCAT11(__ptr[4],__ptr[5]) * 0x100;\n    uVar12 = __ptr[6] + uVar11;\n    uVar13 = uVar12 * 0x100;\n    uVar14 = __ptr[7] + uVar13;\n    uVar15 = uVar14 * 0x100;\n    uVar7 = uVar15 + __ptr[8];\n    uVar16 = uVar7 * 0x100;\n    uVar8 = __ptr[9] + uVar16;\n    uVar17 = uVar8 * 0x100;\n    uVar9 = __ptr[10] + uVar17;\n    uVar18 = uVar9 * 0x100;\n    local_2c = __ptr[0xb] + uVar18;\n    local_28 = (((((((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +\n                  (uint)CARRY4((uint)__ptr[9],uVar16)) * 0x100 | uVar8 >> 0x18) +\n                (uint)CARRY4((uint)__ptr[10],uVar17)) * 0x100 | uVar9 >> 0x18) +\n               (uint)CARRY4((uint)__ptr[0xb],uVar18);\n    local_40 = __ptr + 0xc;\n    local_3c = local_6c - 0xc;\n    local_38 = local_68 + -1 + (uint)(0xb < local_6c);\n  }\n  else {\n    uVar7 = FUN_0001be30(local_6c,local_68);\n    if (local_30 != 1) {\n      uVar3 = FUN_00022190();\n      uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(uVar5,uVar3,local_30);\n      return false;\n    }\n    local_40 = __ptr + uVar7;\n    bVar20 = local_3c < uVar7;\n    local_3c = local_3c - uVar7;\n    local_38 = local_38 - (uint)bVar20;\n  }\n  if (local_28 != 0 || local_2c != 0) {\n    iVar6 = FUN_0001d690(&local_3c);\n    if (iVar6 == 0) {\n      uVar3 = FUN_00022190();\n      uVar5 = dcgettext(0,"Unable to decompress section %s\n",5);\n      error(uVar5,uVar3);\n      return false;\n    }\n    local_6c = local_3c;\n    local_68 = local_38;\n    pbVar1 = local_40;\n  }\nLAB_00041e89:\n  local_40 = pbVar1;\n  if (param_3 == 0) {\n    uVar7 = *(uint *)(param_2 + 0x54);\n    uVar8 = *(uint *)(param_2 + 0x5c);\n    for (uVar9 = uVar8; uVar9 < uVar8 + uVar7 * 0x48; uVar9 = uVar9 + 0x48) {\n      if ((((*(int *)(uVar9 + 4) == 4) || (*(int *)(uVar9 + 4) == 9)) &&\n          (*(uint *)(uVar9 + 0x2c) < uVar7)) &&\n         (((param_1 == uVar8 + *(uint *)(uVar9 + 0x2c) * 0x48 &&\n           (*(int *)(uVar9 + 0x24) != 0 || *(int *)(uVar9 + 0x20) != 0)) &&\n          (*(uint *)(uVar9 + 0x28) < uVar7)))) {\n        pcVar4 = (char *)dcgettext(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5);\n        printf(pcVar4);\n        break;\n      }\n    }\n  }\n  else {\n    iVar6 = FUN_0003fb10(local_6c,local_68,0,0);\n    if (iVar6 == 0) {\n      return false;\n    }\n  }\n  puVar2 = PTR_stdout_000b3fd8;\n  local_64 = *(uint *)(param_1 + 0x10);\n  if (local_68 != 0 || local_6c != 0) {\n    do {\n      uVar7 = 0x10;\n      if (local_68 == 0 && (uint)(0x10 < local_6c) <= (uint)-local_68) {\n        uVar7 = local_6c;\n      }\n      uVar9 = 0;\n      uVar8 = local_64;\n      printf("  0x%8.8lx ",local_64);\n      do {\n        while ((int)uVar9 < (int)uVar7) {\n          uVar8 = (uint)local_40[uVar9];\n          printf("%2.2x",uVar8);\n          if ((uVar9 & 3) == 3) goto LAB_00041fd4;\nLAB_00041faf:\n          uVar9 = uVar9 + 1;\n          if (uVar9 == 0x10) goto LAB_00041fe9;\n        }\n        printf("  ",uVar8);\n        if ((uVar9 & 3) != 3) goto LAB_00041faf;\nLAB_00041fd4:\n        uVar9 = uVar9 + 1;\n        putchar(0x20);\n      } while (uVar9 != 0x10);\nLAB_00041fe9:\n      iVar6 = 0;\n      do {\n        while (pbVar1 = local_40 + iVar6, *pbVar1 - 0x20 < 0x5f) {\n          iVar6 = iVar6 + 1;\n          putchar((uint)*pbVar1);\n          if ((int)uVar7 <= iVar6) goto LAB_00042024;\n        }\n        iVar6 = iVar6 + 1;\n        putchar(0x2e);\n      } while (iVar6 < (int)uVar7);\nLAB_00042024:\n      local_40 = local_40 + uVar7;\n      putc(10,*(FILE **)puVar2);\n      local_64 = local_64 + uVar7;\n      bVar20 = local_6c < uVar7;\n      local_6c = local_6c - uVar7;\n      local_68 = (local_68 - ((int)uVar7 >> 0x1f)) - (uint)bVar20;\n    } while (local_68 != 0 || local_6c != 0);\n  }\n  free(__ptr);\n  putc(10,*(FILE **)puVar2);\n  return true;\n}" { (declaration "byte *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "byte *__ptr;" type_identifier (pointer_declarator "*__ptr" * identifier) ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "byte *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * identifier) ;) (declaration "bool bVar20;" primitive_type identifier ;) (declaration "bool bVar21;" primitive_type identifier ;) (declaration "byte bVar22;" type_identifier identifier ;) (declaration "uint local_6c;" type_identifier identifier ;) (declaration "int local_68;" primitive_type identifier ;) (declaration "uint local_64;" type_identifier identifier ;) (declaration "byte *local_40;" type_identifier (pointer_declarator "*local_40" * identifier) ;) (declaration "uint local_3c;" type_identifier identifier ;) (declaration "int local_38;" primitive_type identifier ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (declaration "int local_28;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar22 = 0;" (assignment_expression "bVar22 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x41ceb;" (assignment_expression "uStack_14 = 0x41ceb" identifier = number_literal) ;) (expression_statement "__ptr = (byte *)FUN_00032770();" (assignment_expression "__ptr = (byte *)FUN_00032770()" identifier = (cast_expression "(byte *)FUN_00032770()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00032770()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (__ptr == (byte *)0x0) {\n    if (*(int *)(param_1 + 0x24) == 0 && *(int *)(param_1 + 0x20) == 0) {\n      return true;\n    }\n    return *(int *)(param_1 + 4) == 8;\n  }" if (parenthesized_expression "(__ptr == (byte *)0x0)" ( (binary_expression "__ptr == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (*(int *)(param_1 + 0x24) == 0 && *(int *)(param_1 + 0x20) == 0) {\n      return true;\n    }\n    return *(int *)(param_1 + 4) == 8;\n  }" { (if_statement "if (*(int *)(param_1 + 0x24) == 0 && *(int *)(param_1 + 0x20) == 0) {\n      return true;\n    }" if (parenthesized_expression "(*(int *)(param_1 + 0x24) == 0 && *(int *)(param_1 + 0x20) == 0)" ( (binary_expression "*(int *)(param_1 + 0x24) == 0 && *(int *)(param_1 + 0x20) == 0" (binary_expression "*(int *)(param_1 + 0x24) == 0" (pointer_expression "*(int *)(param_1 + 0x24)" * (cast_expression "(int *)(param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) == number_literal) && (binary_expression "*(int *)(param_1 + 0x20) == 0" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) == number_literal)) )) (compound_statement "{\n      return true;\n    }" { (return_statement "return true;" return true ;) })) (return_statement "return *(int *)(param_1 + 4) == 8;" return (binary_expression "*(int *)(param_1 + 4) == 8" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) == number_literal) ;) })) (expression_statement "local_6c = *(uint *)(param_1 + 0x20);" (assignment_expression "local_6c = *(uint *)(param_1 + 0x20)" identifier = (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) ))))) ;) (expression_statement "local_68 = *(int *)(param_1 + 0x24);" (assignment_expression "local_68 = *(int *)(param_1 + 0x24)" identifier = (pointer_expression "*(int *)(param_1 + 0x24)" * (cast_expression "(int *)(param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = FUN_00022190();" (assignment_expression "uVar3 = FUN_00022190()" identifier = (call_expression "FUN_00022190()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar4 = (char *)dcgettext(0,"\nHex dump of section \'%s\':\n",5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,"\nHex dump of section \'%s\':\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"\nHex dump of section \'%s\':\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"\nHex dump of section \'%s\':\n",5)" identifier (argument_list "(0,"\nHex dump of section \'%s\':\n",5)" ( number_literal , (string_literal ""\nHex dump of section \'%s\':\n"" " escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar4,uVar3);" (call_expression "printf(pcVar4,uVar3)" identifier (argument_list "(pcVar4,uVar3)" ( identifier , identifier ))) ;) (expression_statement "pbVar1 = __ptr;" (assignment_expression "pbVar1 = __ptr" identifier = identifier) ;) (if_statement "if (DAT_000b6320 == 0) goto LAB_00041e89;" if (parenthesized_expression "(DAT_000b6320 == 0)" ( (binary_expression "DAT_000b6320 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00041e89;" goto statement_identifier ;)) (expression_statement "local_3c = local_6c;" (assignment_expression "local_3c = local_6c" identifier = identifier) ;) (expression_statement "local_38 = local_68;" (assignment_expression "local_38 = local_68" identifier = identifier) ;) (if_statement "if ((*(uint *)(param_1 + 8) & 0x800) == 0) {\n    uVar7 = (uint)(0xc < local_6c);\n    uVar8 = -local_68;\n    bVar20 = local_68 != 0 || uVar8 < uVar7;\n    bVar21 = uVar8 == uVar7;\n    if (local_68 == 0 && uVar8 >= uVar7) goto LAB_00041e89;\n    iVar6 = 5;\n    pbVar10 = __ptr;\n    pbVar19 = &DAT_0007d064;\n    do {\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      bVar20 = *pbVar10 < *pbVar19;\n      bVar21 = *pbVar10 == *pbVar19;\n      pbVar10 = pbVar10 + (uint)bVar22 * -2 + 1;\n      pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n    } while (bVar21);\n    if ((!bVar20 && !bVar21) != bVar20) goto LAB_00041e89;\n    uVar11 = (uint)CONCAT11(__ptr[4],__ptr[5]) * 0x100;\n    uVar12 = __ptr[6] + uVar11;\n    uVar13 = uVar12 * 0x100;\n    uVar14 = __ptr[7] + uVar13;\n    uVar15 = uVar14 * 0x100;\n    uVar7 = uVar15 + __ptr[8];\n    uVar16 = uVar7 * 0x100;\n    uVar8 = __ptr[9] + uVar16;\n    uVar17 = uVar8 * 0x100;\n    uVar9 = __ptr[10] + uVar17;\n    uVar18 = uVar9 * 0x100;\n    local_2c = __ptr[0xb] + uVar18;\n    local_28 = (((((((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +\n                  (uint)CARRY4((uint)__ptr[9],uVar16)) * 0x100 | uVar8 >> 0x18) +\n                (uint)CARRY4((uint)__ptr[10],uVar17)) * 0x100 | uVar9 >> 0x18) +\n               (uint)CARRY4((uint)__ptr[0xb],uVar18);\n    local_40 = __ptr + 0xc;\n    local_3c = local_6c - 0xc;\n    local_38 = local_68 + -1 + (uint)(0xb < local_6c);\n  }\n  else {\n    uVar7 = FUN_0001be30(local_6c,local_68);\n    if (local_30 != 1) {\n      uVar3 = FUN_00022190();\n      uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(uVar5,uVar3,local_30);\n      return false;\n    }\n    local_40 = __ptr + uVar7;\n    bVar20 = local_3c < uVar7;\n    local_3c = local_3c - uVar7;\n    local_38 = local_38 - (uint)bVar20;\n  }" if (parenthesized_expression "((*(uint *)(param_1 + 8) & 0x800) == 0)" ( (binary_expression "(*(uint *)(param_1 + 8) & 0x800) == 0" (parenthesized_expression "(*(uint *)(param_1 + 8) & 0x800)" ( (binary_expression "*(uint *)(param_1 + 8) & 0x800" (pointer_expression "*(uint *)(param_1 + 8)" * (cast_expression "(uint *)(param_1 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    uVar7 = (uint)(0xc < local_6c);\n    uVar8 = -local_68;\n    bVar20 = local_68 != 0 || uVar8 < uVar7;\n    bVar21 = uVar8 == uVar7;\n    if (local_68 == 0 && uVar8 >= uVar7) goto LAB_00041e89;\n    iVar6 = 5;\n    pbVar10 = __ptr;\n    pbVar19 = &DAT_0007d064;\n    do {\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      bVar20 = *pbVar10 < *pbVar19;\n      bVar21 = *pbVar10 == *pbVar19;\n      pbVar10 = pbVar10 + (uint)bVar22 * -2 + 1;\n      pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n    } while (bVar21);\n    if ((!bVar20 && !bVar21) != bVar20) goto LAB_00041e89;\n    uVar11 = (uint)CONCAT11(__ptr[4],__ptr[5]) * 0x100;\n    uVar12 = __ptr[6] + uVar11;\n    uVar13 = uVar12 * 0x100;\n    uVar14 = __ptr[7] + uVar13;\n    uVar15 = uVar14 * 0x100;\n    uVar7 = uVar15 + __ptr[8];\n    uVar16 = uVar7 * 0x100;\n    uVar8 = __ptr[9] + uVar16;\n    uVar17 = uVar8 * 0x100;\n    uVar9 = __ptr[10] + uVar17;\n    uVar18 = uVar9 * 0x100;\n    local_2c = __ptr[0xb] + uVar18;\n    local_28 = (((((((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +\n                  (uint)CARRY4((uint)__ptr[9],uVar16)) * 0x100 | uVar8 >> 0x18) +\n                (uint)CARRY4((uint)__ptr[10],uVar17)) * 0x100 | uVar9 >> 0x18) +\n               (uint)CARRY4((uint)__ptr[0xb],uVar18);\n    local_40 = __ptr + 0xc;\n    local_3c = local_6c - 0xc;\n    local_38 = local_68 + -1 + (uint)(0xb < local_6c);\n  }" { (expression_statement "uVar7 = (uint)(0xc < local_6c);" (assignment_expression "uVar7 = (uint)(0xc < local_6c)" identifier = (call_expression "(uint)(0xc < local_6c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xc < local_6c)" ( (binary_expression "0xc < local_6c" number_literal < identifier) )))) ;) (expression_statement "uVar8 = -local_68;" (assignment_expression "uVar8 = -local_68" identifier = (unary_expression "-local_68" - identifier)) ;) (expression_statement "bVar20 = local_68 != 0 || uVar8 < uVar7;" (assignment_expression "bVar20 = local_68 != 0 || uVar8 < uVar7" identifier = (binary_expression "local_68 != 0 || uVar8 < uVar7" (binary_expression "local_68 != 0" identifier != number_literal) || (binary_expression "uVar8 < uVar7" identifier < identifier))) ;) (expression_statement "bVar21 = uVar8 == uVar7;" (assignment_expression "bVar21 = uVar8 == uVar7" identifier = (binary_expression "uVar8 == uVar7" identifier == identifier)) ;) (if_statement "if (local_68 == 0 && uVar8 >= uVar7) goto LAB_00041e89;" if (parenthesized_expression "(local_68 == 0 && uVar8 >= uVar7)" ( (binary_expression "local_68 == 0 && uVar8 >= uVar7" (binary_expression "local_68 == 0" identifier == number_literal) && (binary_expression "uVar8 >= uVar7" identifier >= identifier)) )) (goto_statement "goto LAB_00041e89;" goto statement_identifier ;)) (expression_statement "iVar6 = 5;" (assignment_expression "iVar6 = 5" identifier = number_literal) ;) (expression_statement "pbVar10 = __ptr;" (assignment_expression "pbVar10 = __ptr" identifier = identifier) ;) (expression_statement "pbVar19 = &DAT_0007d064;" (assignment_expression "pbVar19 = &DAT_0007d064" identifier = (pointer_expression "&DAT_0007d064" & identifier)) ;) (do_statement "do {\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      bVar20 = *pbVar10 < *pbVar19;\n      bVar21 = *pbVar10 == *pbVar19;\n      pbVar10 = pbVar10 + (uint)bVar22 * -2 + 1;\n      pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n    } while (bVar21);" do (compound_statement "{\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      bVar20 = *pbVar10 < *pbVar19;\n      bVar21 = *pbVar10 == *pbVar19;\n      pbVar10 = pbVar10 + (uint)bVar22 * -2 + 1;\n      pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n    }" { (if_statement "if (iVar6 == 0) break;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) (expression_statement "bVar20 = *pbVar10 < *pbVar19;" (assignment_expression "bVar20 = *pbVar10 < *pbVar19" identifier = (binary_expression "*pbVar10 < *pbVar19" (pointer_expression "*pbVar10" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar21 = *pbVar10 == *pbVar19;" (assignment_expression "bVar21 = *pbVar10 == *pbVar19" identifier = (binary_expression "*pbVar10 == *pbVar19" (pointer_expression "*pbVar10" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar10 = pbVar10 + (uint)bVar22 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (uint)bVar22 * -2 + 1" identifier = (binary_expression "pbVar10 + (uint)bVar22 * -2 + 1" (binary_expression "pbVar10 + (uint)bVar22 * -2" identifier + (binary_expression "(uint)bVar22 * -2" (cast_expression "(uint)bVar22" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar22 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar22 * -2" identifier + (binary_expression "(uint)bVar22 * -2" (cast_expression "(uint)bVar22" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar21)" ( identifier )) ;) (if_statement "if ((!bVar20 && !bVar21) != bVar20) goto LAB_00041e89;" if (parenthesized_expression "((!bVar20 && !bVar21) != bVar20)" ( (binary_expression "(!bVar20 && !bVar21) != bVar20" (parenthesized_expression "(!bVar20 && !bVar21)" ( (binary_expression "!bVar20 && !bVar21" (unary_expression "!bVar20" ! identifier) && (unary_expression "!bVar21" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_00041e89;" goto statement_identifier ;)) (expression_statement "uVar11 = (uint)CONCAT11(__ptr[4],__ptr[5]) * 0x100;" (assignment_expression "uVar11 = (uint)CONCAT11(__ptr[4],__ptr[5]) * 0x100" identifier = (binary_expression "(uint)CONCAT11(__ptr[4],__ptr[5]) * 0x100" (cast_expression "(uint)CONCAT11(__ptr[4],__ptr[5])" ( (type_descriptor "uint" type_identifier) ) (call_expression "CONCAT11(__ptr[4],__ptr[5])" identifier (argument_list "(__ptr[4],__ptr[5])" ( (subscript_expression "__ptr[4]" identifier [ number_literal ]) , (subscript_expression "__ptr[5]" identifier [ number_literal ]) )))) * number_literal)) ;) (expression_statement "uVar12 = __ptr[6] + uVar11;" (assignment_expression "uVar12 = __ptr[6] + uVar11" identifier = (binary_expression "__ptr[6] + uVar11" (subscript_expression "__ptr[6]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "uVar13 = uVar12 * 0x100;" (assignment_expression "uVar13 = uVar12 * 0x100" identifier = (binary_expression "uVar12 * 0x100" identifier * number_literal)) ;) (expression_statement "uVar14 = __ptr[7] + uVar13;" (assignment_expression "uVar14 = __ptr[7] + uVar13" identifier = (binary_expression "__ptr[7] + uVar13" (subscript_expression "__ptr[7]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "uVar15 = uVar14 * 0x100;" (assignment_expression "uVar15 = uVar14 * 0x100" identifier = (binary_expression "uVar14 * 0x100" identifier * number_literal)) ;) (expression_statement "uVar7 = uVar15 + __ptr[8];" (assignment_expression "uVar7 = uVar15 + __ptr[8]" identifier = (binary_expression "uVar15 + __ptr[8]" identifier + (subscript_expression "__ptr[8]" identifier [ number_literal ]))) ;) (expression_statement "uVar16 = uVar7 * 0x100;" (assignment_expression "uVar16 = uVar7 * 0x100" identifier = (binary_expression "uVar7 * 0x100" identifier * number_literal)) ;) (expression_statement "uVar8 = __ptr[9] + uVar16;" (assignment_expression "uVar8 = __ptr[9] + uVar16" identifier = (binary_expression "__ptr[9] + uVar16" (subscript_expression "__ptr[9]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "uVar17 = uVar8 * 0x100;" (assignment_expression "uVar17 = uVar8 * 0x100" identifier = (binary_expression "uVar8 * 0x100" identifier * number_literal)) ;) (expression_statement "uVar9 = __ptr[10] + uVar17;" (assignment_expression "uVar9 = __ptr[10] + uVar17" identifier = (binary_expression "__ptr[10] + uVar17" (subscript_expression "__ptr[10]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "uVar18 = uVar9 * 0x100;" (assignment_expression "uVar18 = uVar9 * 0x100" identifier = (binary_expression "uVar9 * 0x100" identifier * number_literal)) ;) (expression_statement "local_2c = __ptr[0xb] + uVar18;" (assignment_expression "local_2c = __ptr[0xb] + uVar18" identifier = (binary_expression "__ptr[0xb] + uVar18" (subscript_expression "__ptr[0xb]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "local_28 = (((((((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +\n                  (uint)CARRY4((uint)__ptr[9],uVar16)) * 0x100 | uVar8 >> 0x18) +\n                (uint)CARRY4((uint)__ptr[10],uVar17)) * 0x100 | uVar9 >> 0x18) +\n               (uint)CARRY4((uint)__ptr[0xb],uVar18);" (assignment_expression "local_28 = (((((((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +\n                  (uint)CARRY4((uint)__ptr[9],uVar16)) * 0x100 | uVar8 >> 0x18) +\n                (uint)CARRY4((uint)__ptr[10],uVar17)) * 0x100 | uVar9 >> 0x18) +\n               (uint)CARRY4((uint)__ptr[0xb],uVar18)" identifier = (binary_expression "(((((((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +\n                  (uint)CARRY4((uint)__ptr[9],uVar16)) * 0x100 | uVar8 >> 0x18) +\n                (uint)CARRY4((uint)__ptr[10],uVar17)) * 0x100 | uVar9 >> 0x18) +\n               (uint)CARRY4((uint)__ptr[0xb],uVar18)" (parenthesized_expression "(((((((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +\n                  (uint)CARRY4((uint)__ptr[9],uVar16)) * 0x100 | uVar8 >> 0x18) +\n                (uint)CARRY4((uint)__ptr[10],uVar17)) * 0x100 | uVar9 >> 0x18)" ( (binary_expression "((((((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +\n                  (uint)CARRY4((uint)__ptr[9],uVar16)) * 0x100 | uVar8 >> 0x18) +\n                (uint)CARRY4((uint)__ptr[10],uVar17)) * 0x100 | uVar9 >> 0x18" (binary_expression "((((((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +\n                  (uint)CARRY4((uint)__ptr[9],uVar16)) * 0x100 | uVar8 >> 0x18) +\n                (uint)CARRY4((uint)__ptr[10],uVar17)) * 0x100" (parenthesized_expression "((((((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +\n                  (uint)CARRY4((uint)__ptr[9],uVar16)) * 0x100 | uVar8 >> 0x18) +\n                (uint)CARRY4((uint)__ptr[10],uVar17))" ( (binary_expression "(((((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +\n                  (uint)CARRY4((uint)__ptr[9],uVar16)) * 0x100 | uVar8 >> 0x18) +\n                (uint)CARRY4((uint)__ptr[10],uVar17)" (parenthesized_expression "(((((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +\n                  (uint)CARRY4((uint)__ptr[9],uVar16)) * 0x100 | uVar8 >> 0x18)" ( (binary_expression "((((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +\n                  (uint)CARRY4((uint)__ptr[9],uVar16)) * 0x100 | uVar8 >> 0x18" (binary_expression "((((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +\n                  (uint)CARRY4((uint)__ptr[9],uVar16)) * 0x100" (parenthesized_expression "((((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +\n                  (uint)CARRY4((uint)__ptr[9],uVar16))" ( (binary_expression "(((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +\n                  (uint)CARRY4((uint)__ptr[9],uVar16)" (parenthesized_expression "(((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18)" ( (binary_expression "((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18" (binary_expression "((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100" (parenthesized_expression "((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8]))" ( (binary_expression "(((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])" (parenthesized_expression "(((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18)" ( (binary_expression "((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18" (binary_expression "((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100" (parenthesized_expression "((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13))" ( (binary_expression "(((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)" (parenthesized_expression "(((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18)" ( (binary_expression "((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18" (binary_expression "((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100" (parenthesized_expression "((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11))" ( (binary_expression "(uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)" (binary_expression "(uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100" (cast_expression "(uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8)" identifier (argument_list "((uint)__ptr[5],(uint)__ptr[4] << 8)" ( (cast_expression "(uint)__ptr[5]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "__ptr[5]" identifier [ number_literal ])) , (binary_expression "(uint)__ptr[4] << 8" (cast_expression "(uint)__ptr[4]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "__ptr[4]" identifier [ number_literal ])) << number_literal) )))) * number_literal) + (cast_expression "(uint)CARRY4((uint)__ptr[6],uVar11)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)__ptr[6],uVar11)" identifier (argument_list "((uint)__ptr[6],uVar11)" ( (cast_expression "(uint)__ptr[6]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "__ptr[6]" identifier [ number_literal ])) , identifier ))))) )) * number_literal) | (binary_expression "uVar12 >> 0x18" identifier >> number_literal)) )) + (cast_expression "(uint)CARRY4((uint)__ptr[7],uVar13)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)__ptr[7],uVar13)" identifier (argument_list "((uint)__ptr[7],uVar13)" ( (cast_expression "(uint)__ptr[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "__ptr[7]" identifier [ number_literal ])) , identifier ))))) )) * number_literal) | (binary_expression "uVar14 >> 0x18" identifier >> number_literal)) )) + (cast_expression "(uint)CARRY4(uVar15,(uint)__ptr[8])" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar15,(uint)__ptr[8])" identifier (argument_list "(uVar15,(uint)__ptr[8])" ( identifier , (cast_expression "(uint)__ptr[8]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "__ptr[8]" identifier [ number_literal ])) ))))) )) * number_literal) | (binary_expression "uVar7 >> 0x18" identifier >> number_literal)) )) + (cast_expression "(uint)CARRY4((uint)__ptr[9],uVar16)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)__ptr[9],uVar16)" identifier (argument_list "((uint)__ptr[9],uVar16)" ( (cast_expression "(uint)__ptr[9]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "__ptr[9]" identifier [ number_literal ])) , identifier ))))) )) * number_literal) | (binary_expression "uVar8 >> 0x18" identifier >> number_literal)) )) + (cast_expression "(uint)CARRY4((uint)__ptr[10],uVar17)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)__ptr[10],uVar17)" identifier (argument_list "((uint)__ptr[10],uVar17)" ( (cast_expression "(uint)__ptr[10]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "__ptr[10]" identifier [ number_literal ])) , identifier ))))) )) * number_literal) | (binary_expression "uVar9 >> 0x18" identifier >> number_literal)) )) + (cast_expression "(uint)CARRY4((uint)__ptr[0xb],uVar18)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)__ptr[0xb],uVar18)" identifier (argument_list "((uint)__ptr[0xb],uVar18)" ( (cast_expression "(uint)__ptr[0xb]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "__ptr[0xb]" identifier [ number_literal ])) , identifier )))))) ;) (expression_statement "local_40 = __ptr + 0xc;" (assignment_expression "local_40 = __ptr + 0xc" identifier = (binary_expression "__ptr + 0xc" identifier + number_literal)) ;) (expression_statement "local_3c = local_6c - 0xc;" (assignment_expression "local_3c = local_6c - 0xc" identifier = (binary_expression "local_6c - 0xc" identifier - number_literal)) ;) (expression_statement "local_38 = local_68 + -1 + (uint)(0xb < local_6c);" (assignment_expression "local_38 = local_68 + -1 + (uint)(0xb < local_6c)" identifier = (binary_expression "local_68 + -1 + (uint)(0xb < local_6c)" (binary_expression "local_68 + -1" identifier + number_literal) + (call_expression "(uint)(0xb < local_6c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xb < local_6c)" ( (binary_expression "0xb < local_6c" number_literal < identifier) ))))) ;) }) (else_clause "else {\n    uVar7 = FUN_0001be30(local_6c,local_68);\n    if (local_30 != 1) {\n      uVar3 = FUN_00022190();\n      uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(uVar5,uVar3,local_30);\n      return false;\n    }\n    local_40 = __ptr + uVar7;\n    bVar20 = local_3c < uVar7;\n    local_3c = local_3c - uVar7;\n    local_38 = local_38 - (uint)bVar20;\n  }" else (compound_statement "{\n    uVar7 = FUN_0001be30(local_6c,local_68);\n    if (local_30 != 1) {\n      uVar3 = FUN_00022190();\n      uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(uVar5,uVar3,local_30);\n      return false;\n    }\n    local_40 = __ptr + uVar7;\n    bVar20 = local_3c < uVar7;\n    local_3c = local_3c - uVar7;\n    local_38 = local_38 - (uint)bVar20;\n  }" { (expression_statement "uVar7 = FUN_0001be30(local_6c,local_68);" (assignment_expression "uVar7 = FUN_0001be30(local_6c,local_68)" identifier = (call_expression "FUN_0001be30(local_6c,local_68)" identifier (argument_list "(local_6c,local_68)" ( identifier , identifier )))) ;) (if_statement "if (local_30 != 1) {\n      uVar3 = FUN_00022190();\n      uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(uVar5,uVar3,local_30);\n      return false;\n    }" if (parenthesized_expression "(local_30 != 1)" ( (binary_expression "local_30 != 1" identifier != number_literal) )) (compound_statement "{\n      uVar3 = FUN_00022190();\n      uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(uVar5,uVar3,local_30);\n      return false;\n    }" { (expression_statement "uVar3 = FUN_00022190();" (assignment_expression "uVar3 = FUN_00022190()" identifier = (call_expression "FUN_00022190()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);" (assignment_expression "uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5)" identifier = (call_expression "dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5)" identifier (argument_list "(0,"section \'%s\' has unsupported compress type: %d\n",5)" ( number_literal , (string_literal ""section \'%s\' has unsupported compress type: %d\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , number_literal )))) ;) (expression_statement "warn(uVar5,uVar3,local_30);" (call_expression "warn(uVar5,uVar3,local_30)" identifier (argument_list "(uVar5,uVar3,local_30)" ( identifier , identifier , identifier ))) ;) (return_statement "return false;" return false ;) })) (expression_statement "local_40 = __ptr + uVar7;" (assignment_expression "local_40 = __ptr + uVar7" identifier = (binary_expression "__ptr + uVar7" identifier + identifier)) ;) (expression_statement "bVar20 = local_3c < uVar7;" (assignment_expression "bVar20 = local_3c < uVar7" identifier = (binary_expression "local_3c < uVar7" identifier < identifier)) ;) (expression_statement "local_3c = local_3c - uVar7;" (assignment_expression "local_3c = local_3c - uVar7" identifier = (binary_expression "local_3c - uVar7" identifier - identifier)) ;) (expression_statement "local_38 = local_38 - (uint)bVar20;" (assignment_expression "local_38 = local_38 - (uint)bVar20" identifier = (binary_expression "local_38 - (uint)bVar20" identifier - (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) }))) (if_statement "if (local_28 != 0 || local_2c != 0) {\n    iVar6 = FUN_0001d690(&local_3c);\n    if (iVar6 == 0) {\n      uVar3 = FUN_00022190();\n      uVar5 = dcgettext(0,"Unable to decompress section %s\n",5);\n      error(uVar5,uVar3);\n      return false;\n    }\n    local_6c = local_3c;\n    local_68 = local_38;\n    pbVar1 = local_40;\n  }" if (parenthesized_expression "(local_28 != 0 || local_2c != 0)" ( (binary_expression "local_28 != 0 || local_2c != 0" (binary_expression "local_28 != 0" identifier != number_literal) || (binary_expression "local_2c != 0" identifier != number_literal)) )) (compound_statement "{\n    iVar6 = FUN_0001d690(&local_3c);\n    if (iVar6 == 0) {\n      uVar3 = FUN_00022190();\n      uVar5 = dcgettext(0,"Unable to decompress section %s\n",5);\n      error(uVar5,uVar3);\n      return false;\n    }\n    local_6c = local_3c;\n    local_68 = local_38;\n    pbVar1 = local_40;\n  }" { (expression_statement "iVar6 = FUN_0001d690(&local_3c);" (assignment_expression "iVar6 = FUN_0001d690(&local_3c)" identifier = (call_expression "FUN_0001d690(&local_3c)" identifier (argument_list "(&local_3c)" ( (pointer_expression "&local_3c" & identifier) )))) ;) (if_statement "if (iVar6 == 0) {\n      uVar3 = FUN_00022190();\n      uVar5 = dcgettext(0,"Unable to decompress section %s\n",5);\n      error(uVar5,uVar3);\n      return false;\n    }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar3 = FUN_00022190();\n      uVar5 = dcgettext(0,"Unable to decompress section %s\n",5);\n      error(uVar5,uVar3);\n      return false;\n    }" { (expression_statement "uVar3 = FUN_00022190();" (assignment_expression "uVar3 = FUN_00022190()" identifier = (call_expression "FUN_00022190()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar5 = dcgettext(0,"Unable to decompress section %s\n",5);" (assignment_expression "uVar5 = dcgettext(0,"Unable to decompress section %s\n",5)" identifier = (call_expression "dcgettext(0,"Unable to decompress section %s\n",5)" identifier (argument_list "(0,"Unable to decompress section %s\n",5)" ( number_literal , (string_literal ""Unable to decompress section %s\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "error(uVar5,uVar3);" (call_expression "error(uVar5,uVar3)" identifier (argument_list "(uVar5,uVar3)" ( identifier , identifier ))) ;) (return_statement "return false;" return false ;) })) (expression_statement "local_6c = local_3c;" (assignment_expression "local_6c = local_3c" identifier = identifier) ;) (expression_statement "local_68 = local_38;" (assignment_expression "local_68 = local_38" identifier = identifier) ;) (expression_statement "pbVar1 = local_40;" (assignment_expression "pbVar1 = local_40" identifier = identifier) ;) })) (labeled_statement "LAB_00041e89:\n  local_40 = pbVar1;" statement_identifier : (expression_statement "local_40 = pbVar1;" (assignment_expression "local_40 = pbVar1" identifier = identifier) ;)) (if_statement "if (param_3 == 0) {\n    uVar7 = *(uint *)(param_2 + 0x54);\n    uVar8 = *(uint *)(param_2 + 0x5c);\n    for (uVar9 = uVar8; uVar9 < uVar8 + uVar7 * 0x48; uVar9 = uVar9 + 0x48) {\n      if ((((*(int *)(uVar9 + 4) == 4) || (*(int *)(uVar9 + 4) == 9)) &&\n          (*(uint *)(uVar9 + 0x2c) < uVar7)) &&\n         (((param_1 == uVar8 + *(uint *)(uVar9 + 0x2c) * 0x48 &&\n           (*(int *)(uVar9 + 0x24) != 0 || *(int *)(uVar9 + 0x20) != 0)) &&\n          (*(uint *)(uVar9 + 0x28) < uVar7)))) {\n        pcVar4 = (char *)dcgettext(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5);\n        printf(pcVar4);\n        break;\n      }\n    }\n  }\n  else {\n    iVar6 = FUN_0003fb10(local_6c,local_68,0,0);\n    if (iVar6 == 0) {\n      return false;\n    }\n  }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar7 = *(uint *)(param_2 + 0x54);\n    uVar8 = *(uint *)(param_2 + 0x5c);\n    for (uVar9 = uVar8; uVar9 < uVar8 + uVar7 * 0x48; uVar9 = uVar9 + 0x48) {\n      if ((((*(int *)(uVar9 + 4) == 4) || (*(int *)(uVar9 + 4) == 9)) &&\n          (*(uint *)(uVar9 + 0x2c) < uVar7)) &&\n         (((param_1 == uVar8 + *(uint *)(uVar9 + 0x2c) * 0x48 &&\n           (*(int *)(uVar9 + 0x24) != 0 || *(int *)(uVar9 + 0x20) != 0)) &&\n          (*(uint *)(uVar9 + 0x28) < uVar7)))) {\n        pcVar4 = (char *)dcgettext(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5);\n        printf(pcVar4);\n        break;\n      }\n    }\n  }" { (expression_statement "uVar7 = *(uint *)(param_2 + 0x54);" (assignment_expression "uVar7 = *(uint *)(param_2 + 0x54)" identifier = (pointer_expression "*(uint *)(param_2 + 0x54)" * (cast_expression "(uint *)(param_2 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x54)" ( (binary_expression "param_2 + 0x54" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = *(uint *)(param_2 + 0x5c);" (assignment_expression "uVar8 = *(uint *)(param_2 + 0x5c)" identifier = (pointer_expression "*(uint *)(param_2 + 0x5c)" * (cast_expression "(uint *)(param_2 + 0x5c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x5c)" ( (binary_expression "param_2 + 0x5c" identifier + number_literal) ))))) ;) (for_statement "for (uVar9 = uVar8; uVar9 < uVar8 + uVar7 * 0x48; uVar9 = uVar9 + 0x48) {\n      if ((((*(int *)(uVar9 + 4) == 4) || (*(int *)(uVar9 + 4) == 9)) &&\n          (*(uint *)(uVar9 + 0x2c) < uVar7)) &&\n         (((param_1 == uVar8 + *(uint *)(uVar9 + 0x2c) * 0x48 &&\n           (*(int *)(uVar9 + 0x24) != 0 || *(int *)(uVar9 + 0x20) != 0)) &&\n          (*(uint *)(uVar9 + 0x28) < uVar7)))) {\n        pcVar4 = (char *)dcgettext(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5);\n        printf(pcVar4);\n        break;\n      }\n    }" for ( (assignment_expression "uVar9 = uVar8" identifier = identifier) ; (binary_expression "uVar9 < uVar8 + uVar7 * 0x48" identifier < (binary_expression "uVar8 + uVar7 * 0x48" identifier + (binary_expression "uVar7 * 0x48" identifier * number_literal))) ; (assignment_expression "uVar9 = uVar9 + 0x48" identifier = (binary_expression "uVar9 + 0x48" identifier + number_literal)) ) (compound_statement "{\n      if ((((*(int *)(uVar9 + 4) == 4) || (*(int *)(uVar9 + 4) == 9)) &&\n          (*(uint *)(uVar9 + 0x2c) < uVar7)) &&\n         (((param_1 == uVar8 + *(uint *)(uVar9 + 0x2c) * 0x48 &&\n           (*(int *)(uVar9 + 0x24) != 0 || *(int *)(uVar9 + 0x20) != 0)) &&\n          (*(uint *)(uVar9 + 0x28) < uVar7)))) {\n        pcVar4 = (char *)dcgettext(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5);\n        printf(pcVar4);\n        break;\n      }\n    }" { (if_statement "if ((((*(int *)(uVar9 + 4) == 4) || (*(int *)(uVar9 + 4) == 9)) &&\n          (*(uint *)(uVar9 + 0x2c) < uVar7)) &&\n         (((param_1 == uVar8 + *(uint *)(uVar9 + 0x2c) * 0x48 &&\n           (*(int *)(uVar9 + 0x24) != 0 || *(int *)(uVar9 + 0x20) != 0)) &&\n          (*(uint *)(uVar9 + 0x28) < uVar7)))) {\n        pcVar4 = (char *)dcgettext(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5);\n        printf(pcVar4);\n        break;\n      }" if (parenthesized_expression "((((*(int *)(uVar9 + 4) == 4) || (*(int *)(uVar9 + 4) == 9)) &&\n          (*(uint *)(uVar9 + 0x2c) < uVar7)) &&\n         (((param_1 == uVar8 + *(uint *)(uVar9 + 0x2c) * 0x48 &&\n           (*(int *)(uVar9 + 0x24) != 0 || *(int *)(uVar9 + 0x20) != 0)) &&\n          (*(uint *)(uVar9 + 0x28) < uVar7))))" ( (binary_expression "(((*(int *)(uVar9 + 4) == 4) || (*(int *)(uVar9 + 4) == 9)) &&\n          (*(uint *)(uVar9 + 0x2c) < uVar7)) &&\n         (((param_1 == uVar8 + *(uint *)(uVar9 + 0x2c) * 0x48 &&\n           (*(int *)(uVar9 + 0x24) != 0 || *(int *)(uVar9 + 0x20) != 0)) &&\n          (*(uint *)(uVar9 + 0x28) < uVar7)))" (parenthesized_expression "(((*(int *)(uVar9 + 4) == 4) || (*(int *)(uVar9 + 4) == 9)) &&\n          (*(uint *)(uVar9 + 0x2c) < uVar7))" ( (binary_expression "((*(int *)(uVar9 + 4) == 4) || (*(int *)(uVar9 + 4) == 9)) &&\n          (*(uint *)(uVar9 + 0x2c) < uVar7)" (parenthesized_expression "((*(int *)(uVar9 + 4) == 4) || (*(int *)(uVar9 + 4) == 9))" ( (binary_expression "(*(int *)(uVar9 + 4) == 4) || (*(int *)(uVar9 + 4) == 9)" (parenthesized_expression "(*(int *)(uVar9 + 4) == 4)" ( (binary_expression "*(int *)(uVar9 + 4) == 4" (pointer_expression "*(int *)(uVar9 + 4)" * (cast_expression "(int *)(uVar9 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 4)" ( (binary_expression "uVar9 + 4" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(*(int *)(uVar9 + 4) == 9)" ( (binary_expression "*(int *)(uVar9 + 4) == 9" (pointer_expression "*(int *)(uVar9 + 4)" * (cast_expression "(int *)(uVar9 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 4)" ( (binary_expression "uVar9 + 4" identifier + number_literal) )))) == number_literal) ))) )) && (parenthesized_expression "(*(uint *)(uVar9 + 0x2c) < uVar7)" ( (binary_expression "*(uint *)(uVar9 + 0x2c) < uVar7" (pointer_expression "*(uint *)(uVar9 + 0x2c)" * (cast_expression "(uint *)(uVar9 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 0x2c)" ( (binary_expression "uVar9 + 0x2c" identifier + number_literal) )))) < identifier) ))) )) && (parenthesized_expression "(((param_1 == uVar8 + *(uint *)(uVar9 + 0x2c) * 0x48 &&\n           (*(int *)(uVar9 + 0x24) != 0 || *(int *)(uVar9 + 0x20) != 0)) &&\n          (*(uint *)(uVar9 + 0x28) < uVar7)))" ( (parenthesized_expression "((param_1 == uVar8 + *(uint *)(uVar9 + 0x2c) * 0x48 &&\n           (*(int *)(uVar9 + 0x24) != 0 || *(int *)(uVar9 + 0x20) != 0)) &&\n          (*(uint *)(uVar9 + 0x28) < uVar7))" ( (binary_expression "(param_1 == uVar8 + *(uint *)(uVar9 + 0x2c) * 0x48 &&\n           (*(int *)(uVar9 + 0x24) != 0 || *(int *)(uVar9 + 0x20) != 0)) &&\n          (*(uint *)(uVar9 + 0x28) < uVar7)" (parenthesized_expression "(param_1 == uVar8 + *(uint *)(uVar9 + 0x2c) * 0x48 &&\n           (*(int *)(uVar9 + 0x24) != 0 || *(int *)(uVar9 + 0x20) != 0))" ( (binary_expression "param_1 == uVar8 + *(uint *)(uVar9 + 0x2c) * 0x48 &&\n           (*(int *)(uVar9 + 0x24) != 0 || *(int *)(uVar9 + 0x20) != 0)" (binary_expression "param_1 == uVar8 + *(uint *)(uVar9 + 0x2c) * 0x48" identifier == (binary_expression "uVar8 + *(uint *)(uVar9 + 0x2c) * 0x48" identifier + (binary_expression "*(uint *)(uVar9 + 0x2c) * 0x48" (pointer_expression "*(uint *)(uVar9 + 0x2c)" * (cast_expression "(uint *)(uVar9 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 0x2c)" ( (binary_expression "uVar9 + 0x2c" identifier + number_literal) )))) * number_literal))) && (parenthesized_expression "(*(int *)(uVar9 + 0x24) != 0 || *(int *)(uVar9 + 0x20) != 0)" ( (binary_expression "*(int *)(uVar9 + 0x24) != 0 || *(int *)(uVar9 + 0x20) != 0" (binary_expression "*(int *)(uVar9 + 0x24) != 0" (pointer_expression "*(int *)(uVar9 + 0x24)" * (cast_expression "(int *)(uVar9 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 0x24)" ( (binary_expression "uVar9 + 0x24" identifier + number_literal) )))) != number_literal) || (binary_expression "*(int *)(uVar9 + 0x20) != 0" (pointer_expression "*(int *)(uVar9 + 0x20)" * (cast_expression "(int *)(uVar9 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 0x20)" ( (binary_expression "uVar9 + 0x20" identifier + number_literal) )))) != number_literal)) ))) )) && (parenthesized_expression "(*(uint *)(uVar9 + 0x28) < uVar7)" ( (binary_expression "*(uint *)(uVar9 + 0x28) < uVar7" (pointer_expression "*(uint *)(uVar9 + 0x28)" * (cast_expression "(uint *)(uVar9 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 0x28)" ( (binary_expression "uVar9 + 0x28" identifier + number_literal) )))) < identifier) ))) )) ))) )) (compound_statement "{\n        pcVar4 = (char *)dcgettext(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5);\n        printf(pcVar4);\n        break;\n      }" { (expression_statement "pcVar4 = (char *)dcgettext(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5)" identifier (argument_list "(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5)" ( number_literal , (string_literal "" NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar4);" (call_expression "printf(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier ))) ;) (break_statement "break;" break ;) })) })) }) (else_clause "else {\n    iVar6 = FUN_0003fb10(local_6c,local_68,0,0);\n    if (iVar6 == 0) {\n      return false;\n    }\n  }" else (compound_statement "{\n    iVar6 = FUN_0003fb10(local_6c,local_68,0,0);\n    if (iVar6 == 0) {\n      return false;\n    }\n  }" { (expression_statement "iVar6 = FUN_0003fb10(local_6c,local_68,0,0);" (assignment_expression "iVar6 = FUN_0003fb10(local_6c,local_68,0,0)" identifier = (call_expression "FUN_0003fb10(local_6c,local_68,0,0)" identifier (argument_list "(local_6c,local_68,0,0)" ( identifier , identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar6 == 0) {\n      return false;\n    }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n      return false;\n    }" { (return_statement "return false;" return false ;) })) }))) (expression_statement "puVar2 = PTR_stdout_000b3fd8;" (assignment_expression "puVar2 = PTR_stdout_000b3fd8" identifier = identifier) ;) (expression_statement "local_64 = *(uint *)(param_1 + 0x10);" (assignment_expression "local_64 = *(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) ))))) ;) (if_statement "if (local_68 != 0 || local_6c != 0) {\n    do {\n      uVar7 = 0x10;\n      if (local_68 == 0 && (uint)(0x10 < local_6c) <= (uint)-local_68) {\n        uVar7 = local_6c;\n      }\n      uVar9 = 0;\n      uVar8 = local_64;\n      printf("  0x%8.8lx ",local_64);\n      do {\n        while ((int)uVar9 < (int)uVar7) {\n          uVar8 = (uint)local_40[uVar9];\n          printf("%2.2x",uVar8);\n          if ((uVar9 & 3) == 3) goto LAB_00041fd4;\nLAB_00041faf:\n          uVar9 = uVar9 + 1;\n          if (uVar9 == 0x10) goto LAB_00041fe9;\n        }\n        printf("  ",uVar8);\n        if ((uVar9 & 3) != 3) goto LAB_00041faf;\nLAB_00041fd4:\n        uVar9 = uVar9 + 1;\n        putchar(0x20);\n      } while (uVar9 != 0x10);\nLAB_00041fe9:\n      iVar6 = 0;\n      do {\n        while (pbVar1 = local_40 + iVar6, *pbVar1 - 0x20 < 0x5f) {\n          iVar6 = iVar6 + 1;\n          putchar((uint)*pbVar1);\n          if ((int)uVar7 <= iVar6) goto LAB_00042024;\n        }\n        iVar6 = iVar6 + 1;\n        putchar(0x2e);\n      } while (iVar6 < (int)uVar7);\nLAB_00042024:\n      local_40 = local_40 + uVar7;\n      putc(10,*(FILE **)puVar2);\n      local_64 = local_64 + uVar7;\n      bVar20 = local_6c < uVar7;\n      local_6c = local_6c - uVar7;\n      local_68 = (local_68 - ((int)uVar7 >> 0x1f)) - (uint)bVar20;\n    } while (local_68 != 0 || local_6c != 0);\n  }" if (parenthesized_expression "(local_68 != 0 || local_6c != 0)" ( (binary_expression "local_68 != 0 || local_6c != 0" (binary_expression "local_68 != 0" identifier != number_literal) || (binary_expression "local_6c != 0" identifier != number_literal)) )) (compound_statement "{\n    do {\n      uVar7 = 0x10;\n      if (local_68 == 0 && (uint)(0x10 < local_6c) <= (uint)-local_68) {\n        uVar7 = local_6c;\n      }\n      uVar9 = 0;\n      uVar8 = local_64;\n      printf("  0x%8.8lx ",local_64);\n      do {\n        while ((int)uVar9 < (int)uVar7) {\n          uVar8 = (uint)local_40[uVar9];\n          printf("%2.2x",uVar8);\n          if ((uVar9 & 3) == 3) goto LAB_00041fd4;\nLAB_00041faf:\n          uVar9 = uVar9 + 1;\n          if (uVar9 == 0x10) goto LAB_00041fe9;\n        }\n        printf("  ",uVar8);\n        if ((uVar9 & 3) != 3) goto LAB_00041faf;\nLAB_00041fd4:\n        uVar9 = uVar9 + 1;\n        putchar(0x20);\n      } while (uVar9 != 0x10);\nLAB_00041fe9:\n      iVar6 = 0;\n      do {\n        while (pbVar1 = local_40 + iVar6, *pbVar1 - 0x20 < 0x5f) {\n          iVar6 = iVar6 + 1;\n          putchar((uint)*pbVar1);\n          if ((int)uVar7 <= iVar6) goto LAB_00042024;\n        }\n        iVar6 = iVar6 + 1;\n        putchar(0x2e);\n      } while (iVar6 < (int)uVar7);\nLAB_00042024:\n      local_40 = local_40 + uVar7;\n      putc(10,*(FILE **)puVar2);\n      local_64 = local_64 + uVar7;\n      bVar20 = local_6c < uVar7;\n      local_6c = local_6c - uVar7;\n      local_68 = (local_68 - ((int)uVar7 >> 0x1f)) - (uint)bVar20;\n    } while (local_68 != 0 || local_6c != 0);\n  }" { (do_statement "do {\n      uVar7 = 0x10;\n      if (local_68 == 0 && (uint)(0x10 < local_6c) <= (uint)-local_68) {\n        uVar7 = local_6c;\n      }\n      uVar9 = 0;\n      uVar8 = local_64;\n      printf("  0x%8.8lx ",local_64);\n      do {\n        while ((int)uVar9 < (int)uVar7) {\n          uVar8 = (uint)local_40[uVar9];\n          printf("%2.2x",uVar8);\n          if ((uVar9 & 3) == 3) goto LAB_00041fd4;\nLAB_00041faf:\n          uVar9 = uVar9 + 1;\n          if (uVar9 == 0x10) goto LAB_00041fe9;\n        }\n        printf("  ",uVar8);\n        if ((uVar9 & 3) != 3) goto LAB_00041faf;\nLAB_00041fd4:\n        uVar9 = uVar9 + 1;\n        putchar(0x20);\n      } while (uVar9 != 0x10);\nLAB_00041fe9:\n      iVar6 = 0;\n      do {\n        while (pbVar1 = local_40 + iVar6, *pbVar1 - 0x20 < 0x5f) {\n          iVar6 = iVar6 + 1;\n          putchar((uint)*pbVar1);\n          if ((int)uVar7 <= iVar6) goto LAB_00042024;\n        }\n        iVar6 = iVar6 + 1;\n        putchar(0x2e);\n      } while (iVar6 < (int)uVar7);\nLAB_00042024:\n      local_40 = local_40 + uVar7;\n      putc(10,*(FILE **)puVar2);\n      local_64 = local_64 + uVar7;\n      bVar20 = local_6c < uVar7;\n      local_6c = local_6c - uVar7;\n      local_68 = (local_68 - ((int)uVar7 >> 0x1f)) - (uint)bVar20;\n    } while (local_68 != 0 || local_6c != 0);" do (compound_statement "{\n      uVar7 = 0x10;\n      if (local_68 == 0 && (uint)(0x10 < local_6c) <= (uint)-local_68) {\n        uVar7 = local_6c;\n      }\n      uVar9 = 0;\n      uVar8 = local_64;\n      printf("  0x%8.8lx ",local_64);\n      do {\n        while ((int)uVar9 < (int)uVar7) {\n          uVar8 = (uint)local_40[uVar9];\n          printf("%2.2x",uVar8);\n          if ((uVar9 & 3) == 3) goto LAB_00041fd4;\nLAB_00041faf:\n          uVar9 = uVar9 + 1;\n          if (uVar9 == 0x10) goto LAB_00041fe9;\n        }\n        printf("  ",uVar8);\n        if ((uVar9 & 3) != 3) goto LAB_00041faf;\nLAB_00041fd4:\n        uVar9 = uVar9 + 1;\n        putchar(0x20);\n      } while (uVar9 != 0x10);\nLAB_00041fe9:\n      iVar6 = 0;\n      do {\n        while (pbVar1 = local_40 + iVar6, *pbVar1 - 0x20 < 0x5f) {\n          iVar6 = iVar6 + 1;\n          putchar((uint)*pbVar1);\n          if ((int)uVar7 <= iVar6) goto LAB_00042024;\n        }\n        iVar6 = iVar6 + 1;\n        putchar(0x2e);\n      } while (iVar6 < (int)uVar7);\nLAB_00042024:\n      local_40 = local_40 + uVar7;\n      putc(10,*(FILE **)puVar2);\n      local_64 = local_64 + uVar7;\n      bVar20 = local_6c < uVar7;\n      local_6c = local_6c - uVar7;\n      local_68 = (local_68 - ((int)uVar7 >> 0x1f)) - (uint)bVar20;\n    }" { (expression_statement "uVar7 = 0x10;" (assignment_expression "uVar7 = 0x10" identifier = number_literal) ;) (if_statement "if (local_68 == 0 && (uint)(0x10 < local_6c) <= (uint)-local_68) {\n        uVar7 = local_6c;\n      }" if (parenthesized_expression "(local_68 == 0 && (uint)(0x10 < local_6c) <= (uint)-local_68)" ( (binary_expression "local_68 == 0 && (uint)(0x10 < local_6c) <= (uint)-local_68" (binary_expression "local_68 == 0" identifier == number_literal) && (binary_expression "(uint)(0x10 < local_6c) <= (uint)-local_68" (call_expression "(uint)(0x10 < local_6c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0x10 < local_6c)" ( (binary_expression "0x10 < local_6c" number_literal < identifier) ))) <= (binary_expression "(uint)-local_68" (parenthesized_expression "(uint)" ( identifier )) - identifier))) )) (compound_statement "{\n        uVar7 = local_6c;\n      }" { (expression_statement "uVar7 = local_6c;" (assignment_expression "uVar7 = local_6c" identifier = identifier) ;) })) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "uVar8 = local_64;" (assignment_expression "uVar8 = local_64" identifier = identifier) ;) (expression_statement "printf("  0x%8.8lx ",local_64);" (call_expression "printf("  0x%8.8lx ",local_64)" identifier (argument_list "("  0x%8.8lx ",local_64)" ( (string_literal ""  0x%8.8lx "" " string_content ") , identifier ))) ;) (do_statement "do {\n        while ((int)uVar9 < (int)uVar7) {\n          uVar8 = (uint)local_40[uVar9];\n          printf("%2.2x",uVar8);\n          if ((uVar9 & 3) == 3) goto LAB_00041fd4;\nLAB_00041faf:\n          uVar9 = uVar9 + 1;\n          if (uVar9 == 0x10) goto LAB_00041fe9;\n        }\n        printf("  ",uVar8);\n        if ((uVar9 & 3) != 3) goto LAB_00041faf;\nLAB_00041fd4:\n        uVar9 = uVar9 + 1;\n        putchar(0x20);\n      } while (uVar9 != 0x10);" do (compound_statement "{\n        while ((int)uVar9 < (int)uVar7) {\n          uVar8 = (uint)local_40[uVar9];\n          printf("%2.2x",uVar8);\n          if ((uVar9 & 3) == 3) goto LAB_00041fd4;\nLAB_00041faf:\n          uVar9 = uVar9 + 1;\n          if (uVar9 == 0x10) goto LAB_00041fe9;\n        }\n        printf("  ",uVar8);\n        if ((uVar9 & 3) != 3) goto LAB_00041faf;\nLAB_00041fd4:\n        uVar9 = uVar9 + 1;\n        putchar(0x20);\n      }" { (while_statement "while ((int)uVar9 < (int)uVar7) {\n          uVar8 = (uint)local_40[uVar9];\n          printf("%2.2x",uVar8);\n          if ((uVar9 & 3) == 3) goto LAB_00041fd4;\nLAB_00041faf:\n          uVar9 = uVar9 + 1;\n          if (uVar9 == 0x10) goto LAB_00041fe9;\n        }" while (parenthesized_expression "((int)uVar9 < (int)uVar7)" ( (binary_expression "(int)uVar9 < (int)uVar7" (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          uVar8 = (uint)local_40[uVar9];\n          printf("%2.2x",uVar8);\n          if ((uVar9 & 3) == 3) goto LAB_00041fd4;\nLAB_00041faf:\n          uVar9 = uVar9 + 1;\n          if (uVar9 == 0x10) goto LAB_00041fe9;\n        }" { (expression_statement "uVar8 = (uint)local_40[uVar9];" (assignment_expression "uVar8 = (uint)local_40[uVar9]" identifier = (cast_expression "(uint)local_40[uVar9]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_40[uVar9]" identifier [ identifier ]))) ;) (expression_statement "printf("%2.2x",uVar8);" (call_expression "printf("%2.2x",uVar8)" identifier (argument_list "("%2.2x",uVar8)" ( (string_literal ""%2.2x"" " string_content ") , identifier ))) ;) (if_statement "if ((uVar9 & 3) == 3) goto LAB_00041fd4;" if (parenthesized_expression "((uVar9 & 3) == 3)" ( (binary_expression "(uVar9 & 3) == 3" (parenthesized_expression "(uVar9 & 3)" ( (binary_expression "uVar9 & 3" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00041fd4;" goto statement_identifier ;)) (labeled_statement "LAB_00041faf:\n          uVar9 = uVar9 + 1;" statement_identifier : (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" identifier = (binary_expression "uVar9 + 1" identifier + number_literal)) ;)) (if_statement "if (uVar9 == 0x10) goto LAB_00041fe9;" if (parenthesized_expression "(uVar9 == 0x10)" ( (binary_expression "uVar9 == 0x10" identifier == number_literal) )) (goto_statement "goto LAB_00041fe9;" goto statement_identifier ;)) })) (expression_statement "printf("  ",uVar8);" (call_expression "printf("  ",uVar8)" identifier (argument_list "("  ",uVar8)" ( (string_literal ""  "" " string_content ") , identifier ))) ;) (if_statement "if ((uVar9 & 3) != 3) goto LAB_00041faf;" if (parenthesized_expression "((uVar9 & 3) != 3)" ( (binary_expression "(uVar9 & 3) != 3" (parenthesized_expression "(uVar9 & 3)" ( (binary_expression "uVar9 & 3" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00041faf;" goto statement_identifier ;)) (labeled_statement "LAB_00041fd4:\n        uVar9 = uVar9 + 1;" statement_identifier : (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" identifier = (binary_expression "uVar9 + 1" identifier + number_literal)) ;)) (expression_statement "putchar(0x20);" (call_expression "putchar(0x20)" identifier (argument_list "(0x20)" ( number_literal ))) ;) }) while (parenthesized_expression "(uVar9 != 0x10)" ( (binary_expression "uVar9 != 0x10" identifier != number_literal) )) ;) (labeled_statement "LAB_00041fe9:\n      iVar6 = 0;" statement_identifier : (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;)) (do_statement "do {\n        while (pbVar1 = local_40 + iVar6, *pbVar1 - 0x20 < 0x5f) {\n          iVar6 = iVar6 + 1;\n          putchar((uint)*pbVar1);\n          if ((int)uVar7 <= iVar6) goto LAB_00042024;\n        }\n        iVar6 = iVar6 + 1;\n        putchar(0x2e);\n      } while (iVar6 < (int)uVar7);" do (compound_statement "{\n        while (pbVar1 = local_40 + iVar6, *pbVar1 - 0x20 < 0x5f) {\n          iVar6 = iVar6 + 1;\n          putchar((uint)*pbVar1);\n          if ((int)uVar7 <= iVar6) goto LAB_00042024;\n        }\n        iVar6 = iVar6 + 1;\n        putchar(0x2e);\n      }" { (while_statement "while (pbVar1 = local_40 + iVar6, *pbVar1 - 0x20 < 0x5f) {\n          iVar6 = iVar6 + 1;\n          putchar((uint)*pbVar1);\n          if ((int)uVar7 <= iVar6) goto LAB_00042024;\n        }" while (parenthesized_expression "(pbVar1 = local_40 + iVar6, *pbVar1 - 0x20 < 0x5f)" ( (comma_expression "pbVar1 = local_40 + iVar6, *pbVar1 - 0x20 < 0x5f" (assignment_expression "pbVar1 = local_40 + iVar6" identifier = (binary_expression "local_40 + iVar6" identifier + identifier)) , (binary_expression "*pbVar1 - 0x20 < 0x5f" (binary_expression "*pbVar1 - 0x20" (pointer_expression "*pbVar1" * identifier) - number_literal) < number_literal)) )) (compound_statement "{\n          iVar6 = iVar6 + 1;\n          putchar((uint)*pbVar1);\n          if ((int)uVar7 <= iVar6) goto LAB_00042024;\n        }" { (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) (expression_statement "putchar((uint)*pbVar1);" (call_expression "putchar((uint)*pbVar1)" identifier (argument_list "((uint)*pbVar1)" ( (binary_expression "(uint)*pbVar1" (parenthesized_expression "(uint)" ( identifier )) * identifier) ))) ;) (if_statement "if ((int)uVar7 <= iVar6) goto LAB_00042024;" if (parenthesized_expression "((int)uVar7 <= iVar6)" ( (binary_expression "(int)uVar7 <= iVar6" (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier) <= identifier) )) (goto_statement "goto LAB_00042024;" goto statement_identifier ;)) })) (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) (expression_statement "putchar(0x2e);" (call_expression "putchar(0x2e)" identifier (argument_list "(0x2e)" ( number_literal ))) ;) }) while (parenthesized_expression "(iVar6 < (int)uVar7)" ( (binary_expression "iVar6 < (int)uVar7" identifier < (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (labeled_statement "LAB_00042024:\n      local_40 = local_40 + uVar7;" statement_identifier : (expression_statement "local_40 = local_40 + uVar7;" (assignment_expression "local_40 = local_40 + uVar7" identifier = (binary_expression "local_40 + uVar7" identifier + identifier)) ;)) (expression_statement "putc(10,*(FILE **)puVar2);" (call_expression "putc(10,*(FILE **)puVar2)" identifier (argument_list "(10,*(FILE **)puVar2)" ( number_literal , (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (expression_statement "local_64 = local_64 + uVar7;" (assignment_expression "local_64 = local_64 + uVar7" identifier = (binary_expression "local_64 + uVar7" identifier + identifier)) ;) (expression_statement "bVar20 = local_6c < uVar7;" (assignment_expression "bVar20 = local_6c < uVar7" identifier = (binary_expression "local_6c < uVar7" identifier < identifier)) ;) (expression_statement "local_6c = local_6c - uVar7;" (assignment_expression "local_6c = local_6c - uVar7" identifier = (binary_expression "local_6c - uVar7" identifier - identifier)) ;) (expression_statement "local_68 = (local_68 - ((int)uVar7 >> 0x1f)) - (uint)bVar20;" (assignment_expression "local_68 = (local_68 - ((int)uVar7 >> 0x1f)) - (uint)bVar20" identifier = (binary_expression "(local_68 - ((int)uVar7 >> 0x1f)) - (uint)bVar20" (parenthesized_expression "(local_68 - ((int)uVar7 >> 0x1f))" ( (binary_expression "local_68 - ((int)uVar7 >> 0x1f)" identifier - (parenthesized_expression "((int)uVar7 >> 0x1f)" ( (binary_expression "(int)uVar7 >> 0x1f" (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) )) - (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) }) while (parenthesized_expression "(local_68 != 0 || local_6c != 0)" ( (binary_expression "local_68 != 0 || local_6c != 0" (binary_expression "local_68 != 0" identifier != number_literal) || (binary_expression "local_6c != 0" identifier != number_literal)) )) ;) })) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (expression_statement "putc(10,*(FILE **)puVar2);" (call_expression "putc(10,*(FILE **)puVar2)" identifier (argument_list "(10,*(FILE **)puVar2)" ( number_literal , (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (return_statement "return true;" return true ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nbfd_boolean __regparm3\ndump_section_as_bytes(Elf_Internal_Shdr *section,Filedata *filedata,bfd_boolean relocate)\n\n{\n  char **filedata_00;\n  Elf_Internal_Shdr *pEVar1;\n  bfd_size_type size;\n  undefined *puVar2;\n  uchar *__ptr;\n  char *pcVar3;\n  char *pcVar4;\n  Elf_Internal_Shdr *pEVar5;\n  bfd_boolean bVar6;\n  ulong *sec;\n  int iVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  uchar *puVar11;\n  byte *pbVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  uint uVar20;\n  byte *pbVar21;\n  bool bVar22;\n  bool bVar23;\n  byte bVar24;\n  uint local_6c;\n  char *local_68;\n  uint local_64;\n  uchar *start;\n  dwarf_size_type new_size;\n  Elf_Internal_Chdr chdr;\n  \n  bVar24 = 0;\n  __ptr = (uchar *)get_section_contents(section,filedata);\n  if (__ptr == (uchar *)0x0) {\n    if (*(int *)((int)&section->sh_size + 4) == 0 && (int)section->sh_size == 0) {\n      return 1;\n    }\n    return (uint)(section->sh_type == 8);\n  }\n  local_6c = (uint)section->sh_size;\n  local_68 = *(char **)((int)&section->sh_size + 4);\n  size = section->sh_size;\n  filedata_00 = &filedata->string_table;\n  sec = &filedata->string_table_length;\n  start = __ptr;\n  pcVar3 = printable_section_name\n                     ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,(Filedata *)section);\n  pcVar4 = (char *)dcgettext(0,"\nHex dump of section \'%s\':\n",5);\n  printf(pcVar4);\n  puVar11 = start;\n  if (decompress_dumps == 0) goto LAB_00041e89;\n  puVar11 = __ptr;\n  new_size._0_4_ = local_6c;\n  new_size._4_4_ = local_68;\n  if ((section->sh_flags & 0x800) == 0) {\n    uVar8 = (uint)(0xc < local_6c);\n    uVar9 = -(int)local_68;\n    bVar22 = local_68 != (char *)0x0 || uVar9 < uVar8;\n    bVar23 = uVar9 == uVar8;\n    if (local_68 == (char *)0x0 && uVar9 >= uVar8) goto LAB_00041e89;\n    iVar7 = 5;\n    pbVar12 = start;\n    pbVar21 = &DAT_0007d064;\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      bVar22 = *pbVar12 < *pbVar21;\n      bVar23 = *pbVar12 == *pbVar21;\n      pbVar12 = pbVar12 + (uint)bVar24 * -2 + 1;\n      pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n    } while (bVar23);\n    if ((!bVar22 && !bVar23) != bVar22) goto LAB_00041e89;\n    uVar13 = (uint)CONCAT11(start[4],start[5]) * 0x100;\n    uVar14 = start[6] + uVar13;\n    uVar15 = uVar14 * 0x100;\n    uVar16 = start[7] + uVar15;\n    uVar17 = uVar16 * 0x100;\n    uVar8 = uVar17 + start[8];\n    uVar18 = uVar8 * 0x100;\n    uVar9 = start[9] + uVar18;\n    uVar19 = uVar9 * 0x100;\n    uVar10 = start[10] + uVar19;\n    uVar20 = uVar10 * 0x100;\n    chdr.ch_size._0_4_ = (dwarf_size_type *)(start[0xb] + uVar20);\n    chdr.ch_size._4_4_ =\n         (((((((((((uint)CARRY4((uint)start[5],(uint)start[4] << 8) * 0x100 +\n                  (uint)CARRY4((uint)start[6],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                (uint)CARRY4((uint)start[7],uVar15)) * 0x100 | uVar16 >> 0x18) +\n              (uint)CARRY4(uVar17,(uint)start[8])) * 0x100 | uVar8 >> 0x18) +\n            (uint)CARRY4((uint)start[9],uVar18)) * 0x100 | uVar9 >> 0x18) +\n          (uint)CARRY4((uint)start[10],uVar19)) * 0x100 | uVar10 >> 0x18) +\n         (uint)CARRY4((uint)start[0xb],uVar20);\n    start = start + 0xc;\n    new_size._0_4_ = local_6c - 0xc;\n    new_size._4_4_ = local_68 + ((0xb < local_6c) - 1);\n  }\n  else {\n    pcVar3 = local_68;\n    uVar8 = get_compression_header(&chdr,start,size);\n    if (chdr.ch_type != 1) {\n      pcVar3 = printable_section_name\n                         ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,(Filedata *)section);\n      pcVar4 = (char *)dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(pcVar4,pcVar3,chdr.ch_type);\n      return 0;\n    }\n    start = start + uVar8;\n    bVar22 = (uint)new_size < uVar8;\n    new_size._0_4_ = (uint)new_size - uVar8;\n    new_size._4_4_ = new_size._4_4_ + -(uint)bVar22;\n  }\n  if (chdr.ch_size._4_4_ != 0 || (dwarf_size_type *)chdr.ch_size != (dwarf_size_type *)0x0) {\n    bVar6 = uncompress_section_contents\n                      (&start,CONCAT44(pcVar3,&new_size),(dwarf_size_type *)chdr.ch_size);\n    if (bVar6 == 0) {\n      pcVar3 = printable_section_name\n                         ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,(Filedata *)section);\n      pcVar4 = (char *)dcgettext(0,"Unable to decompress section %s\n",5);\n      error(pcVar4,pcVar3);\n      return 0;\n    }\n    local_6c = (uint)new_size;\n    local_68 = new_size._4_4_;\n    puVar11 = start;\n  }\nLAB_00041e89:\n  start = puVar11;\n  if (relocate == 0) {\n    uVar8 = (filedata->file_header).e_shnum;\n    pEVar1 = filedata->section_headers;\n    for (pEVar5 = pEVar1; pEVar5 < pEVar1 + uVar8; pEVar5 = pEVar5 + 1) {\n      if ((((pEVar5->sh_type == 4) || (pEVar5->sh_type == 9)) && (pEVar5->sh_info < uVar8)) &&\n         (((section == pEVar1 + pEVar5->sh_info &&\n           (*(int *)((int)&pEVar5->sh_size + 4) != 0 || (int)pEVar5->sh_size != 0)) &&\n          (pEVar5->sh_link < uVar8)))) {\n        pcVar3 = (char *)dcgettext(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5);\n        printf(pcVar3);\n        break;\n      }\n    }\n  }\n  else {\n    bVar6 = apply_relocations(filedata,section,start,CONCAT44(local_68,local_6c),(void **)0x0,\n                              (ulong *)0x0);\n    if (bVar6 == 0) {\n      return 0;\n    }\n  }\n  puVar2 = PTR_stdout_000b3fd8;\n  local_64 = (uint)section->sh_addr;\n  puVar11 = start;\n  if (local_68 != (char *)0x0 || local_6c != 0) {\n    do {\n      uVar8 = 0x10;\n      if (local_68 == (char *)0x0 && (uint)(0x10 < local_6c) <= (uint)-(int)local_68) {\n        uVar8 = local_6c;\n      }\n      uVar10 = 0;\n      uVar9 = local_64;\n      printf("  0x%8.8lx ",local_64);\n      do {\n        while ((int)uVar10 < (int)uVar8) {\n          uVar9 = (uint)puVar11[uVar10];\n          printf("%2.2x",uVar9);\n          if ((uVar10 & 3) == 3) goto LAB_00041fd4;\nLAB_00041faf:\n          uVar10 = uVar10 + 1;\n          if (uVar10 == 0x10) goto LAB_00041fe9;\n        }\n        printf("  ",uVar9);\n        if ((uVar10 & 3) != 3) goto LAB_00041faf;\nLAB_00041fd4:\n        uVar10 = uVar10 + 1;\n        putchar(0x20);\n      } while (uVar10 != 0x10);\nLAB_00041fe9:\n      iVar7 = 0;\n      do {\n        while (pbVar12 = puVar11 + iVar7, *pbVar12 - 0x20 < 0x5f) {\n          iVar7 = iVar7 + 1;\n          putchar((uint)*pbVar12);\n          if ((int)uVar8 <= iVar7) goto LAB_00042024;\n        }\n        iVar7 = iVar7 + 1;\n        putchar(0x2e);\n      } while (iVar7 < (int)uVar8);\nLAB_00042024:\n      putc(10,*(FILE **)puVar2);\n      local_64 = local_64 + uVar8;\n      bVar22 = local_6c < uVar8;\n      local_6c = local_6c - uVar8;\n      local_68 = local_68 + (-(uint)bVar22 - ((int)uVar8 >> 0x1f));\n      puVar11 = puVar11 + uVar8;\n    } while (local_68 != (char *)0x0 || local_6c != 0);\n  }\n  free(__ptr);\n  putc(10,*(FILE **)puVar2);\n  return 1;\n}\n\n" comment (function_definition "bfd_boolean __regparm3\ndump_section_as_bytes(Elf_Internal_Shdr *section,Filedata *filedata,bfd_boolean relocate)\n\n{\n  char **filedata_00;\n  Elf_Internal_Shdr *pEVar1;\n  bfd_size_type size;\n  undefined *puVar2;\n  uchar *__ptr;\n  char *pcVar3;\n  char *pcVar4;\n  Elf_Internal_Shdr *pEVar5;\n  bfd_boolean bVar6;\n  ulong *sec;\n  int iVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  uchar *puVar11;\n  byte *pbVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  uint uVar20;\n  byte *pbVar21;\n  bool bVar22;\n  bool bVar23;\n  byte bVar24;\n  uint local_6c;\n  char *local_68;\n  uint local_64;\n  uchar *start;\n  dwarf_size_type new_size;\n  Elf_Internal_Chdr chdr;\n  \n  bVar24 = 0;\n  __ptr = (uchar *)get_section_contents(section,filedata);\n  if (__ptr == (uchar *)0x0) {\n    if (*(int *)((int)&section->sh_size + 4) == 0 && (int)section->sh_size == 0) {\n      return 1;\n    }\n    return (uint)(section->sh_type == 8);\n  }\n  local_6c = (uint)section->sh_size;\n  local_68 = *(char **)((int)&section->sh_size + 4);\n  size = section->sh_size;\n  filedata_00 = &filedata->string_table;\n  sec = &filedata->string_table_length;\n  start = __ptr;\n  pcVar3 = printable_section_name\n                     ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,(Filedata *)section);\n  pcVar4 = (char *)dcgettext(0,"\nHex dump of section \'%s\':\n",5);\n  printf(pcVar4);\n  puVar11 = start;\n  if (decompress_dumps == 0) goto LAB_00041e89;\n  puVar11 = __ptr;\n  new_size._0_4_ = local_6c;\n  new_size._4_4_ = local_68;\n  if ((section->sh_flags & 0x800) == 0) {\n    uVar8 = (uint)(0xc < local_6c);\n    uVar9 = -(int)local_68;\n    bVar22 = local_68 != (char *)0x0 || uVar9 < uVar8;\n    bVar23 = uVar9 == uVar8;\n    if (local_68 == (char *)0x0 && uVar9 >= uVar8) goto LAB_00041e89;\n    iVar7 = 5;\n    pbVar12 = start;\n    pbVar21 = &DAT_0007d064;\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      bVar22 = *pbVar12 < *pbVar21;\n      bVar23 = *pbVar12 == *pbVar21;\n      pbVar12 = pbVar12 + (uint)bVar24 * -2 + 1;\n      pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n    } while (bVar23);\n    if ((!bVar22 && !bVar23) != bVar22) goto LAB_00041e89;\n    uVar13 = (uint)CONCAT11(start[4],start[5]) * 0x100;\n    uVar14 = start[6] + uVar13;\n    uVar15 = uVar14 * 0x100;\n    uVar16 = start[7] + uVar15;\n    uVar17 = uVar16 * 0x100;\n    uVar8 = uVar17 + start[8];\n    uVar18 = uVar8 * 0x100;\n    uVar9 = start[9] + uVar18;\n    uVar19 = uVar9 * 0x100;\n    uVar10 = start[10] + uVar19;\n    uVar20 = uVar10 * 0x100;\n    chdr.ch_size._0_4_ = (dwarf_size_type *)(start[0xb] + uVar20);\n    chdr.ch_size._4_4_ =\n         (((((((((((uint)CARRY4((uint)start[5],(uint)start[4] << 8) * 0x100 +\n                  (uint)CARRY4((uint)start[6],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                (uint)CARRY4((uint)start[7],uVar15)) * 0x100 | uVar16 >> 0x18) +\n              (uint)CARRY4(uVar17,(uint)start[8])) * 0x100 | uVar8 >> 0x18) +\n            (uint)CARRY4((uint)start[9],uVar18)) * 0x100 | uVar9 >> 0x18) +\n          (uint)CARRY4((uint)start[10],uVar19)) * 0x100 | uVar10 >> 0x18) +\n         (uint)CARRY4((uint)start[0xb],uVar20);\n    start = start + 0xc;\n    new_size._0_4_ = local_6c - 0xc;\n    new_size._4_4_ = local_68 + ((0xb < local_6c) - 1);\n  }\n  else {\n    pcVar3 = local_68;\n    uVar8 = get_compression_header(&chdr,start,size);\n    if (chdr.ch_type != 1) {\n      pcVar3 = printable_section_name\n                         ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,(Filedata *)section);\n      pcVar4 = (char *)dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(pcVar4,pcVar3,chdr.ch_type);\n      return 0;\n    }\n    start = start + uVar8;\n    bVar22 = (uint)new_size < uVar8;\n    new_size._0_4_ = (uint)new_size - uVar8;\n    new_size._4_4_ = new_size._4_4_ + -(uint)bVar22;\n  }\n  if (chdr.ch_size._4_4_ != 0 || (dwarf_size_type *)chdr.ch_size != (dwarf_size_type *)0x0) {\n    bVar6 = uncompress_section_contents\n                      (&start,CONCAT44(pcVar3,&new_size),(dwarf_size_type *)chdr.ch_size);\n    if (bVar6 == 0) {\n      pcVar3 = printable_section_name\n                         ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,(Filedata *)section);\n      pcVar4 = (char *)dcgettext(0,"Unable to decompress section %s\n",5);\n      error(pcVar4,pcVar3);\n      return 0;\n    }\n    local_6c = (uint)new_size;\n    local_68 = new_size._4_4_;\n    puVar11 = start;\n  }\nLAB_00041e89:\n  start = puVar11;\n  if (relocate == 0) {\n    uVar8 = (filedata->file_header).e_shnum;\n    pEVar1 = filedata->section_headers;\n    for (pEVar5 = pEVar1; pEVar5 < pEVar1 + uVar8; pEVar5 = pEVar5 + 1) {\n      if ((((pEVar5->sh_type == 4) || (pEVar5->sh_type == 9)) && (pEVar5->sh_info < uVar8)) &&\n         (((section == pEVar1 + pEVar5->sh_info &&\n           (*(int *)((int)&pEVar5->sh_size + 4) != 0 || (int)pEVar5->sh_size != 0)) &&\n          (pEVar5->sh_link < uVar8)))) {\n        pcVar3 = (char *)dcgettext(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5);\n        printf(pcVar3);\n        break;\n      }\n    }\n  }\n  else {\n    bVar6 = apply_relocations(filedata,section,start,CONCAT44(local_68,local_6c),(void **)0x0,\n                              (ulong *)0x0);\n    if (bVar6 == 0) {\n      return 0;\n    }\n  }\n  puVar2 = PTR_stdout_000b3fd8;\n  local_64 = (uint)section->sh_addr;\n  puVar11 = start;\n  if (local_68 != (char *)0x0 || local_6c != 0) {\n    do {\n      uVar8 = 0x10;\n      if (local_68 == (char *)0x0 && (uint)(0x10 < local_6c) <= (uint)-(int)local_68) {\n        uVar8 = local_6c;\n      }\n      uVar10 = 0;\n      uVar9 = local_64;\n      printf("  0x%8.8lx ",local_64);\n      do {\n        while ((int)uVar10 < (int)uVar8) {\n          uVar9 = (uint)puVar11[uVar10];\n          printf("%2.2x",uVar9);\n          if ((uVar10 & 3) == 3) goto LAB_00041fd4;\nLAB_00041faf:\n          uVar10 = uVar10 + 1;\n          if (uVar10 == 0x10) goto LAB_00041fe9;\n        }\n        printf("  ",uVar9);\n        if ((uVar10 & 3) != 3) goto LAB_00041faf;\nLAB_00041fd4:\n        uVar10 = uVar10 + 1;\n        putchar(0x20);\n      } while (uVar10 != 0x10);\nLAB_00041fe9:\n      iVar7 = 0;\n      do {\n        while (pbVar12 = puVar11 + iVar7, *pbVar12 - 0x20 < 0x5f) {\n          iVar7 = iVar7 + 1;\n          putchar((uint)*pbVar12);\n          if ((int)uVar8 <= iVar7) goto LAB_00042024;\n        }\n        iVar7 = iVar7 + 1;\n        putchar(0x2e);\n      } while (iVar7 < (int)uVar8);\nLAB_00042024:\n      putc(10,*(FILE **)puVar2);\n      local_64 = local_64 + uVar8;\n      bVar22 = local_6c < uVar8;\n      local_6c = local_6c - uVar8;\n      local_68 = local_68 + (-(uint)bVar22 - ((int)uVar8 >> 0x1f));\n      puVar11 = puVar11 + uVar8;\n    } while (local_68 != (char *)0x0 || local_6c != 0);\n  }\n  free(__ptr);\n  putc(10,*(FILE **)puVar2);\n  return 1;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "dump_section_as_bytes(Elf_Internal_Shdr *section,Filedata *filedata,bfd_boolean relocate)" identifier (parameter_list "(Elf_Internal_Shdr *section,Filedata *filedata,bfd_boolean relocate)" ( (parameter_declaration "Elf_Internal_Shdr *section" type_identifier (pointer_declarator "*section" * identifier)) , (parameter_declaration "Filedata *filedata" type_identifier (pointer_declarator "*filedata" * identifier)) , (parameter_declaration "bfd_boolean relocate" type_identifier identifier) ))) (compound_statement "{\n  char **filedata_00;\n  Elf_Internal_Shdr *pEVar1;\n  bfd_size_type size;\n  undefined *puVar2;\n  uchar *__ptr;\n  char *pcVar3;\n  char *pcVar4;\n  Elf_Internal_Shdr *pEVar5;\n  bfd_boolean bVar6;\n  ulong *sec;\n  int iVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  uchar *puVar11;\n  byte *pbVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  uint uVar20;\n  byte *pbVar21;\n  bool bVar22;\n  bool bVar23;\n  byte bVar24;\n  uint local_6c;\n  char *local_68;\n  uint local_64;\n  uchar *start;\n  dwarf_size_type new_size;\n  Elf_Internal_Chdr chdr;\n  \n  bVar24 = 0;\n  __ptr = (uchar *)get_section_contents(section,filedata);\n  if (__ptr == (uchar *)0x0) {\n    if (*(int *)((int)&section->sh_size + 4) == 0 && (int)section->sh_size == 0) {\n      return 1;\n    }\n    return (uint)(section->sh_type == 8);\n  }\n  local_6c = (uint)section->sh_size;\n  local_68 = *(char **)((int)&section->sh_size + 4);\n  size = section->sh_size;\n  filedata_00 = &filedata->string_table;\n  sec = &filedata->string_table_length;\n  start = __ptr;\n  pcVar3 = printable_section_name\n                     ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,(Filedata *)section);\n  pcVar4 = (char *)dcgettext(0,"\nHex dump of section \'%s\':\n",5);\n  printf(pcVar4);\n  puVar11 = start;\n  if (decompress_dumps == 0) goto LAB_00041e89;\n  puVar11 = __ptr;\n  new_size._0_4_ = local_6c;\n  new_size._4_4_ = local_68;\n  if ((section->sh_flags & 0x800) == 0) {\n    uVar8 = (uint)(0xc < local_6c);\n    uVar9 = -(int)local_68;\n    bVar22 = local_68 != (char *)0x0 || uVar9 < uVar8;\n    bVar23 = uVar9 == uVar8;\n    if (local_68 == (char *)0x0 && uVar9 >= uVar8) goto LAB_00041e89;\n    iVar7 = 5;\n    pbVar12 = start;\n    pbVar21 = &DAT_0007d064;\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      bVar22 = *pbVar12 < *pbVar21;\n      bVar23 = *pbVar12 == *pbVar21;\n      pbVar12 = pbVar12 + (uint)bVar24 * -2 + 1;\n      pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n    } while (bVar23);\n    if ((!bVar22 && !bVar23) != bVar22) goto LAB_00041e89;\n    uVar13 = (uint)CONCAT11(start[4],start[5]) * 0x100;\n    uVar14 = start[6] + uVar13;\n    uVar15 = uVar14 * 0x100;\n    uVar16 = start[7] + uVar15;\n    uVar17 = uVar16 * 0x100;\n    uVar8 = uVar17 + start[8];\n    uVar18 = uVar8 * 0x100;\n    uVar9 = start[9] + uVar18;\n    uVar19 = uVar9 * 0x100;\n    uVar10 = start[10] + uVar19;\n    uVar20 = uVar10 * 0x100;\n    chdr.ch_size._0_4_ = (dwarf_size_type *)(start[0xb] + uVar20);\n    chdr.ch_size._4_4_ =\n         (((((((((((uint)CARRY4((uint)start[5],(uint)start[4] << 8) * 0x100 +\n                  (uint)CARRY4((uint)start[6],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                (uint)CARRY4((uint)start[7],uVar15)) * 0x100 | uVar16 >> 0x18) +\n              (uint)CARRY4(uVar17,(uint)start[8])) * 0x100 | uVar8 >> 0x18) +\n            (uint)CARRY4((uint)start[9],uVar18)) * 0x100 | uVar9 >> 0x18) +\n          (uint)CARRY4((uint)start[10],uVar19)) * 0x100 | uVar10 >> 0x18) +\n         (uint)CARRY4((uint)start[0xb],uVar20);\n    start = start + 0xc;\n    new_size._0_4_ = local_6c - 0xc;\n    new_size._4_4_ = local_68 + ((0xb < local_6c) - 1);\n  }\n  else {\n    pcVar3 = local_68;\n    uVar8 = get_compression_header(&chdr,start,size);\n    if (chdr.ch_type != 1) {\n      pcVar3 = printable_section_name\n                         ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,(Filedata *)section);\n      pcVar4 = (char *)dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(pcVar4,pcVar3,chdr.ch_type);\n      return 0;\n    }\n    start = start + uVar8;\n    bVar22 = (uint)new_size < uVar8;\n    new_size._0_4_ = (uint)new_size - uVar8;\n    new_size._4_4_ = new_size._4_4_ + -(uint)bVar22;\n  }\n  if (chdr.ch_size._4_4_ != 0 || (dwarf_size_type *)chdr.ch_size != (dwarf_size_type *)0x0) {\n    bVar6 = uncompress_section_contents\n                      (&start,CONCAT44(pcVar3,&new_size),(dwarf_size_type *)chdr.ch_size);\n    if (bVar6 == 0) {\n      pcVar3 = printable_section_name\n                         ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,(Filedata *)section);\n      pcVar4 = (char *)dcgettext(0,"Unable to decompress section %s\n",5);\n      error(pcVar4,pcVar3);\n      return 0;\n    }\n    local_6c = (uint)new_size;\n    local_68 = new_size._4_4_;\n    puVar11 = start;\n  }\nLAB_00041e89:\n  start = puVar11;\n  if (relocate == 0) {\n    uVar8 = (filedata->file_header).e_shnum;\n    pEVar1 = filedata->section_headers;\n    for (pEVar5 = pEVar1; pEVar5 < pEVar1 + uVar8; pEVar5 = pEVar5 + 1) {\n      if ((((pEVar5->sh_type == 4) || (pEVar5->sh_type == 9)) && (pEVar5->sh_info < uVar8)) &&\n         (((section == pEVar1 + pEVar5->sh_info &&\n           (*(int *)((int)&pEVar5->sh_size + 4) != 0 || (int)pEVar5->sh_size != 0)) &&\n          (pEVar5->sh_link < uVar8)))) {\n        pcVar3 = (char *)dcgettext(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5);\n        printf(pcVar3);\n        break;\n      }\n    }\n  }\n  else {\n    bVar6 = apply_relocations(filedata,section,start,CONCAT44(local_68,local_6c),(void **)0x0,\n                              (ulong *)0x0);\n    if (bVar6 == 0) {\n      return 0;\n    }\n  }\n  puVar2 = PTR_stdout_000b3fd8;\n  local_64 = (uint)section->sh_addr;\n  puVar11 = start;\n  if (local_68 != (char *)0x0 || local_6c != 0) {\n    do {\n      uVar8 = 0x10;\n      if (local_68 == (char *)0x0 && (uint)(0x10 < local_6c) <= (uint)-(int)local_68) {\n        uVar8 = local_6c;\n      }\n      uVar10 = 0;\n      uVar9 = local_64;\n      printf("  0x%8.8lx ",local_64);\n      do {\n        while ((int)uVar10 < (int)uVar8) {\n          uVar9 = (uint)puVar11[uVar10];\n          printf("%2.2x",uVar9);\n          if ((uVar10 & 3) == 3) goto LAB_00041fd4;\nLAB_00041faf:\n          uVar10 = uVar10 + 1;\n          if (uVar10 == 0x10) goto LAB_00041fe9;\n        }\n        printf("  ",uVar9);\n        if ((uVar10 & 3) != 3) goto LAB_00041faf;\nLAB_00041fd4:\n        uVar10 = uVar10 + 1;\n        putchar(0x20);\n      } while (uVar10 != 0x10);\nLAB_00041fe9:\n      iVar7 = 0;\n      do {\n        while (pbVar12 = puVar11 + iVar7, *pbVar12 - 0x20 < 0x5f) {\n          iVar7 = iVar7 + 1;\n          putchar((uint)*pbVar12);\n          if ((int)uVar8 <= iVar7) goto LAB_00042024;\n        }\n        iVar7 = iVar7 + 1;\n        putchar(0x2e);\n      } while (iVar7 < (int)uVar8);\nLAB_00042024:\n      putc(10,*(FILE **)puVar2);\n      local_64 = local_64 + uVar8;\n      bVar22 = local_6c < uVar8;\n      local_6c = local_6c - uVar8;\n      local_68 = local_68 + (-(uint)bVar22 - ((int)uVar8 >> 0x1f));\n      puVar11 = puVar11 + uVar8;\n    } while (local_68 != (char *)0x0 || local_6c != 0);\n  }\n  free(__ptr);\n  putc(10,*(FILE **)puVar2);\n  return 1;\n}" { (declaration "char **filedata_00;" primitive_type (pointer_declarator "**filedata_00" * (pointer_declarator "*filedata_00" * identifier)) ;) (declaration "Elf_Internal_Shdr *pEVar1;" type_identifier (pointer_declarator "*pEVar1" * identifier) ;) (declaration "bfd_size_type size;" type_identifier identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uchar *__ptr;" type_identifier (pointer_declarator "*__ptr" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "Elf_Internal_Shdr *pEVar5;" type_identifier (pointer_declarator "*pEVar5" * identifier) ;) (declaration "bfd_boolean bVar6;" type_identifier identifier ;) (declaration "ulong *sec;" type_identifier (pointer_declarator "*sec" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uchar *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "byte *pbVar21;" type_identifier (pointer_declarator "*pbVar21" * identifier) ;) (declaration "bool bVar22;" primitive_type identifier ;) (declaration "bool bVar23;" primitive_type identifier ;) (declaration "byte bVar24;" type_identifier identifier ;) (declaration "uint local_6c;" type_identifier identifier ;) (declaration "char *local_68;" primitive_type (pointer_declarator "*local_68" * identifier) ;) (declaration "uint local_64;" type_identifier identifier ;) (declaration "uchar *start;" type_identifier (pointer_declarator "*start" * identifier) ;) (declaration "dwarf_size_type new_size;" type_identifier identifier ;) (declaration "Elf_Internal_Chdr chdr;" type_identifier identifier ;) (expression_statement "bVar24 = 0;" (assignment_expression "bVar24 = 0" identifier = number_literal) ;) (expression_statement "__ptr = (uchar *)get_section_contents(section,filedata);" (assignment_expression "__ptr = (uchar *)get_section_contents(section,filedata)" identifier = (cast_expression "(uchar *)get_section_contents(section,filedata)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "get_section_contents(section,filedata)" identifier (argument_list "(section,filedata)" ( identifier , identifier ))))) ;) (if_statement "if (__ptr == (uchar *)0x0) {\n    if (*(int *)((int)&section->sh_size + 4) == 0 && (int)section->sh_size == 0) {\n      return 1;\n    }\n    return (uint)(section->sh_type == 8);\n  }" if (parenthesized_expression "(__ptr == (uchar *)0x0)" ( (binary_expression "__ptr == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (*(int *)((int)&section->sh_size + 4) == 0 && (int)section->sh_size == 0) {\n      return 1;\n    }\n    return (uint)(section->sh_type == 8);\n  }" { (if_statement "if (*(int *)((int)&section->sh_size + 4) == 0 && (int)section->sh_size == 0) {\n      return 1;\n    }" if (parenthesized_expression "(*(int *)((int)&section->sh_size + 4) == 0 && (int)section->sh_size == 0)" ( (binary_expression "*(int *)((int)&section->sh_size + 4) == 0 && (int)section->sh_size == 0" (binary_expression "*(int *)((int)&section->sh_size + 4) == 0" (pointer_expression "*(int *)((int)&section->sh_size + 4)" * (cast_expression "(int *)((int)&section->sh_size + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&section->sh_size + 4)" ( (binary_expression "(int)&section->sh_size + 4" (cast_expression "(int)&section->sh_size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&section->sh_size" & (field_expression "section->sh_size" identifier -> field_identifier))) + number_literal) )))) == number_literal) && (binary_expression "(int)section->sh_size == 0" (cast_expression "(int)section->sh_size" ( (type_descriptor "int" primitive_type) ) (field_expression "section->sh_size" identifier -> field_identifier)) == number_literal)) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (return_statement "return (uint)(section->sh_type == 8);" return (call_expression "(uint)(section->sh_type == 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(section->sh_type == 8)" ( (binary_expression "section->sh_type == 8" (field_expression "section->sh_type" identifier -> field_identifier) == number_literal) ))) ;) })) (expression_statement "local_6c = (uint)section->sh_size;" (assignment_expression "local_6c = (uint)section->sh_size" identifier = (cast_expression "(uint)section->sh_size" ( (type_descriptor "uint" type_identifier) ) (field_expression "section->sh_size" identifier -> field_identifier))) ;) (expression_statement "local_68 = *(char **)((int)&section->sh_size + 4);" (assignment_expression "local_68 = *(char **)((int)&section->sh_size + 4)" identifier = (pointer_expression "*(char **)((int)&section->sh_size + 4)" * (cast_expression "(char **)((int)&section->sh_size + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&section->sh_size + 4)" ( (binary_expression "(int)&section->sh_size + 4" (cast_expression "(int)&section->sh_size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&section->sh_size" & (field_expression "section->sh_size" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "size = section->sh_size;" (assignment_expression "size = section->sh_size" identifier = (field_expression "section->sh_size" identifier -> field_identifier)) ;) (expression_statement "filedata_00 = &filedata->string_table;" (assignment_expression "filedata_00 = &filedata->string_table" identifier = (pointer_expression "&filedata->string_table" & (field_expression "filedata->string_table" identifier -> field_identifier))) ;) (expression_statement "sec = &filedata->string_table_length;" (assignment_expression "sec = &filedata->string_table_length" identifier = (pointer_expression "&filedata->string_table_length" & (field_expression "filedata->string_table_length" identifier -> field_identifier))) ;) (expression_statement "start = __ptr;" (assignment_expression "start = __ptr" identifier = identifier) ;) (expression_statement "pcVar3 = printable_section_name\n                     ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,(Filedata *)section);" (assignment_expression "pcVar3 = printable_section_name\n                     ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,(Filedata *)section)" identifier = (call_expression "printable_section_name\n                     ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,(Filedata *)section)" identifier (argument_list "((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,(Filedata *)section)" ( (cast_expression "(Filedata *)filedata_00" ( (type_descriptor "Filedata *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(Elf_Internal_Shdr *)sec" ( (type_descriptor "Elf_Internal_Shdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(Filedata *)section" ( (type_descriptor "Filedata *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "pcVar4 = (char *)dcgettext(0,"\nHex dump of section \'%s\':\n",5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,"\nHex dump of section \'%s\':\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"\nHex dump of section \'%s\':\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"\nHex dump of section \'%s\':\n",5)" identifier (argument_list "(0,"\nHex dump of section \'%s\':\n",5)" ( number_literal , (string_literal ""\nHex dump of section \'%s\':\n"" " escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar4);" (call_expression "printf(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier ))) ;) (expression_statement "puVar11 = start;" (assignment_expression "puVar11 = start" identifier = identifier) ;) (if_statement "if (decompress_dumps == 0) goto LAB_00041e89;" if (parenthesized_expression "(decompress_dumps == 0)" ( (binary_expression "decompress_dumps == 0" identifier == number_literal) )) (goto_statement "goto LAB_00041e89;" goto statement_identifier ;)) (expression_statement "puVar11 = __ptr;" (assignment_expression "puVar11 = __ptr" identifier = identifier) ;) (expression_statement "new_size._0_4_ = local_6c;" (assignment_expression "new_size._0_4_ = local_6c" (field_expression "new_size._0_4_" identifier . field_identifier) = identifier) ;) (expression_statement "new_size._4_4_ = local_68;" (assignment_expression "new_size._4_4_ = local_68" (field_expression "new_size._4_4_" identifier . field_identifier) = identifier) ;) (if_statement "if ((section->sh_flags & 0x800) == 0) {\n    uVar8 = (uint)(0xc < local_6c);\n    uVar9 = -(int)local_68;\n    bVar22 = local_68 != (char *)0x0 || uVar9 < uVar8;\n    bVar23 = uVar9 == uVar8;\n    if (local_68 == (char *)0x0 && uVar9 >= uVar8) goto LAB_00041e89;\n    iVar7 = 5;\n    pbVar12 = start;\n    pbVar21 = &DAT_0007d064;\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      bVar22 = *pbVar12 < *pbVar21;\n      bVar23 = *pbVar12 == *pbVar21;\n      pbVar12 = pbVar12 + (uint)bVar24 * -2 + 1;\n      pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n    } while (bVar23);\n    if ((!bVar22 && !bVar23) != bVar22) goto LAB_00041e89;\n    uVar13 = (uint)CONCAT11(start[4],start[5]) * 0x100;\n    uVar14 = start[6] + uVar13;\n    uVar15 = uVar14 * 0x100;\n    uVar16 = start[7] + uVar15;\n    uVar17 = uVar16 * 0x100;\n    uVar8 = uVar17 + start[8];\n    uVar18 = uVar8 * 0x100;\n    uVar9 = start[9] + uVar18;\n    uVar19 = uVar9 * 0x100;\n    uVar10 = start[10] + uVar19;\n    uVar20 = uVar10 * 0x100;\n    chdr.ch_size._0_4_ = (dwarf_size_type *)(start[0xb] + uVar20);\n    chdr.ch_size._4_4_ =\n         (((((((((((uint)CARRY4((uint)start[5],(uint)start[4] << 8) * 0x100 +\n                  (uint)CARRY4((uint)start[6],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                (uint)CARRY4((uint)start[7],uVar15)) * 0x100 | uVar16 >> 0x18) +\n              (uint)CARRY4(uVar17,(uint)start[8])) * 0x100 | uVar8 >> 0x18) +\n            (uint)CARRY4((uint)start[9],uVar18)) * 0x100 | uVar9 >> 0x18) +\n          (uint)CARRY4((uint)start[10],uVar19)) * 0x100 | uVar10 >> 0x18) +\n         (uint)CARRY4((uint)start[0xb],uVar20);\n    start = start + 0xc;\n    new_size._0_4_ = local_6c - 0xc;\n    new_size._4_4_ = local_68 + ((0xb < local_6c) - 1);\n  }\n  else {\n    pcVar3 = local_68;\n    uVar8 = get_compression_header(&chdr,start,size);\n    if (chdr.ch_type != 1) {\n      pcVar3 = printable_section_name\n                         ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,(Filedata *)section);\n      pcVar4 = (char *)dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(pcVar4,pcVar3,chdr.ch_type);\n      return 0;\n    }\n    start = start + uVar8;\n    bVar22 = (uint)new_size < uVar8;\n    new_size._0_4_ = (uint)new_size - uVar8;\n    new_size._4_4_ = new_size._4_4_ + -(uint)bVar22;\n  }" if (parenthesized_expression "((section->sh_flags & 0x800) == 0)" ( (binary_expression "(section->sh_flags & 0x800) == 0" (parenthesized_expression "(section->sh_flags & 0x800)" ( (binary_expression "section->sh_flags & 0x800" (field_expression "section->sh_flags" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n    uVar8 = (uint)(0xc < local_6c);\n    uVar9 = -(int)local_68;\n    bVar22 = local_68 != (char *)0x0 || uVar9 < uVar8;\n    bVar23 = uVar9 == uVar8;\n    if (local_68 == (char *)0x0 && uVar9 >= uVar8) goto LAB_00041e89;\n    iVar7 = 5;\n    pbVar12 = start;\n    pbVar21 = &DAT_0007d064;\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      bVar22 = *pbVar12 < *pbVar21;\n      bVar23 = *pbVar12 == *pbVar21;\n      pbVar12 = pbVar12 + (uint)bVar24 * -2 + 1;\n      pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n    } while (bVar23);\n    if ((!bVar22 && !bVar23) != bVar22) goto LAB_00041e89;\n    uVar13 = (uint)CONCAT11(start[4],start[5]) * 0x100;\n    uVar14 = start[6] + uVar13;\n    uVar15 = uVar14 * 0x100;\n    uVar16 = start[7] + uVar15;\n    uVar17 = uVar16 * 0x100;\n    uVar8 = uVar17 + start[8];\n    uVar18 = uVar8 * 0x100;\n    uVar9 = start[9] + uVar18;\n    uVar19 = uVar9 * 0x100;\n    uVar10 = start[10] + uVar19;\n    uVar20 = uVar10 * 0x100;\n    chdr.ch_size._0_4_ = (dwarf_size_type *)(start[0xb] + uVar20);\n    chdr.ch_size._4_4_ =\n         (((((((((((uint)CARRY4((uint)start[5],(uint)start[4] << 8) * 0x100 +\n                  (uint)CARRY4((uint)start[6],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                (uint)CARRY4((uint)start[7],uVar15)) * 0x100 | uVar16 >> 0x18) +\n              (uint)CARRY4(uVar17,(uint)start[8])) * 0x100 | uVar8 >> 0x18) +\n            (uint)CARRY4((uint)start[9],uVar18)) * 0x100 | uVar9 >> 0x18) +\n          (uint)CARRY4((uint)start[10],uVar19)) * 0x100 | uVar10 >> 0x18) +\n         (uint)CARRY4((uint)start[0xb],uVar20);\n    start = start + 0xc;\n    new_size._0_4_ = local_6c - 0xc;\n    new_size._4_4_ = local_68 + ((0xb < local_6c) - 1);\n  }" { (expression_statement "uVar8 = (uint)(0xc < local_6c);" (assignment_expression "uVar8 = (uint)(0xc < local_6c)" identifier = (call_expression "(uint)(0xc < local_6c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xc < local_6c)" ( (binary_expression "0xc < local_6c" number_literal < identifier) )))) ;) (expression_statement "uVar9 = -(int)local_68;" (assignment_expression "uVar9 = -(int)local_68" identifier = (unary_expression "-(int)local_68" - (cast_expression "(int)local_68" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "bVar22 = local_68 != (char *)0x0 || uVar9 < uVar8;" (assignment_expression "bVar22 = local_68 != (char *)0x0 || uVar9 < uVar8" identifier = (binary_expression "local_68 != (char *)0x0 || uVar9 < uVar8" (binary_expression "local_68 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) || (binary_expression "uVar9 < uVar8" identifier < identifier))) ;) (expression_statement "bVar23 = uVar9 == uVar8;" (assignment_expression "bVar23 = uVar9 == uVar8" identifier = (binary_expression "uVar9 == uVar8" identifier == identifier)) ;) (if_statement "if (local_68 == (char *)0x0 && uVar9 >= uVar8) goto LAB_00041e89;" if (parenthesized_expression "(local_68 == (char *)0x0 && uVar9 >= uVar8)" ( (binary_expression "local_68 == (char *)0x0 && uVar9 >= uVar8" (binary_expression "local_68 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) && (binary_expression "uVar9 >= uVar8" identifier >= identifier)) )) (goto_statement "goto LAB_00041e89;" goto statement_identifier ;)) (expression_statement "iVar7 = 5;" (assignment_expression "iVar7 = 5" identifier = number_literal) ;) (expression_statement "pbVar12 = start;" (assignment_expression "pbVar12 = start" identifier = identifier) ;) (expression_statement "pbVar21 = &DAT_0007d064;" (assignment_expression "pbVar21 = &DAT_0007d064" identifier = (pointer_expression "&DAT_0007d064" & identifier)) ;) (do_statement "do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      bVar22 = *pbVar12 < *pbVar21;\n      bVar23 = *pbVar12 == *pbVar21;\n      pbVar12 = pbVar12 + (uint)bVar24 * -2 + 1;\n      pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n    } while (bVar23);" do (compound_statement "{\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      bVar22 = *pbVar12 < *pbVar21;\n      bVar23 = *pbVar12 == *pbVar21;\n      pbVar12 = pbVar12 + (uint)bVar24 * -2 + 1;\n      pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;\n    }" { (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = *pbVar12 < *pbVar21;" (assignment_expression "bVar22 = *pbVar12 < *pbVar21" identifier = (binary_expression "*pbVar12 < *pbVar21" (pointer_expression "*pbVar12" * identifier) < (pointer_expression "*pbVar21" * identifier))) ;) (expression_statement "bVar23 = *pbVar12 == *pbVar21;" (assignment_expression "bVar23 = *pbVar12 == *pbVar21" identifier = (binary_expression "*pbVar12 == *pbVar21" (pointer_expression "*pbVar12" * identifier) == (pointer_expression "*pbVar21" * identifier))) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar24 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar24 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar24 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar24 * -2" identifier + (binary_expression "(uint)bVar24 * -2" (cast_expression "(uint)bVar24" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar24 * -2 + 1" identifier = (binary_expression "pbVar21 + (uint)bVar24 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar24 * -2" identifier + (binary_expression "(uint)bVar24 * -2" (cast_expression "(uint)bVar24" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (if_statement "if ((!bVar22 && !bVar23) != bVar22) goto LAB_00041e89;" if (parenthesized_expression "((!bVar22 && !bVar23) != bVar22)" ( (binary_expression "(!bVar22 && !bVar23) != bVar22" (parenthesized_expression "(!bVar22 && !bVar23)" ( (binary_expression "!bVar22 && !bVar23" (unary_expression "!bVar22" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_00041e89;" goto statement_identifier ;)) (expression_statement "uVar13 = (uint)CONCAT11(start[4],start[5]) * 0x100;" (assignment_expression "uVar13 = (uint)CONCAT11(start[4],start[5]) * 0x100" identifier = (binary_expression "(uint)CONCAT11(start[4],start[5]) * 0x100" (cast_expression "(uint)CONCAT11(start[4],start[5])" ( (type_descriptor "uint" type_identifier) ) (call_expression "CONCAT11(start[4],start[5])" identifier (argument_list "(start[4],start[5])" ( (subscript_expression "start[4]" identifier [ number_literal ]) , (subscript_expression "start[5]" identifier [ number_literal ]) )))) * number_literal)) ;) (expression_statement "uVar14 = start[6] + uVar13;" (assignment_expression "uVar14 = start[6] + uVar13" identifier = (binary_expression "start[6] + uVar13" (subscript_expression "start[6]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "uVar15 = uVar14 * 0x100;" (assignment_expression "uVar15 = uVar14 * 0x100" identifier = (binary_expression "uVar14 * 0x100" identifier * number_literal)) ;) (expression_statement "uVar16 = start[7] + uVar15;" (assignment_expression "uVar16 = start[7] + uVar15" identifier = (binary_expression "start[7] + uVar15" (subscript_expression "start[7]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "uVar17 = uVar16 * 0x100;" (assignment_expression "uVar17 = uVar16 * 0x100" identifier = (binary_expression "uVar16 * 0x100" identifier * number_literal)) ;) (expression_statement "uVar8 = uVar17 + start[8];" (assignment_expression "uVar8 = uVar17 + start[8]" identifier = (binary_expression "uVar17 + start[8]" identifier + (subscript_expression "start[8]" identifier [ number_literal ]))) ;) (expression_statement "uVar18 = uVar8 * 0x100;" (assignment_expression "uVar18 = uVar8 * 0x100" identifier = (binary_expression "uVar8 * 0x100" identifier * number_literal)) ;) (expression_statement "uVar9 = start[9] + uVar18;" (assignment_expression "uVar9 = start[9] + uVar18" identifier = (binary_expression "start[9] + uVar18" (subscript_expression "start[9]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "uVar19 = uVar9 * 0x100;" (assignment_expression "uVar19 = uVar9 * 0x100" identifier = (binary_expression "uVar9 * 0x100" identifier * number_literal)) ;) (expression_statement "uVar10 = start[10] + uVar19;" (assignment_expression "uVar10 = start[10] + uVar19" identifier = (binary_expression "start[10] + uVar19" (subscript_expression "start[10]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "uVar20 = uVar10 * 0x100;" (assignment_expression "uVar20 = uVar10 * 0x100" identifier = (binary_expression "uVar10 * 0x100" identifier * number_literal)) ;) (expression_statement "chdr.ch_size._0_4_ = (dwarf_size_type *)(start[0xb] + uVar20);" (assignment_expression "chdr.ch_size._0_4_ = (dwarf_size_type *)(start[0xb] + uVar20)" (field_expression "chdr.ch_size._0_4_" (field_expression "chdr.ch_size" identifier . field_identifier) . field_identifier) = (cast_expression "(dwarf_size_type *)(start[0xb] + uVar20)" ( (type_descriptor "dwarf_size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(start[0xb] + uVar20)" ( (binary_expression "start[0xb] + uVar20" (subscript_expression "start[0xb]" identifier [ number_literal ]) + identifier) )))) ;) (expression_statement "chdr.ch_size._4_4_ =\n         (((((((((((uint)CARRY4((uint)start[5],(uint)start[4] << 8) * 0x100 +\n                  (uint)CARRY4((uint)start[6],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                (uint)CARRY4((uint)start[7],uVar15)) * 0x100 | uVar16 >> 0x18) +\n              (uint)CARRY4(uVar17,(uint)start[8])) * 0x100 | uVar8 >> 0x18) +\n            (uint)CARRY4((uint)start[9],uVar18)) * 0x100 | uVar9 >> 0x18) +\n          (uint)CARRY4((uint)start[10],uVar19)) * 0x100 | uVar10 >> 0x18) +\n         (uint)CARRY4((uint)start[0xb],uVar20);" (assignment_expression "chdr.ch_size._4_4_ =\n         (((((((((((uint)CARRY4((uint)start[5],(uint)start[4] << 8) * 0x100 +\n                  (uint)CARRY4((uint)start[6],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                (uint)CARRY4((uint)start[7],uVar15)) * 0x100 | uVar16 >> 0x18) +\n              (uint)CARRY4(uVar17,(uint)start[8])) * 0x100 | uVar8 >> 0x18) +\n            (uint)CARRY4((uint)start[9],uVar18)) * 0x100 | uVar9 >> 0x18) +\n          (uint)CARRY4((uint)start[10],uVar19)) * 0x100 | uVar10 >> 0x18) +\n         (uint)CARRY4((uint)start[0xb],uVar20)" (field_expression "chdr.ch_size._4_4_" (field_expression "chdr.ch_size" identifier . field_identifier) . field_identifier) = (binary_expression "(((((((((((uint)CARRY4((uint)start[5],(uint)start[4] << 8) * 0x100 +\n                  (uint)CARRY4((uint)start[6],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                (uint)CARRY4((uint)start[7],uVar15)) * 0x100 | uVar16 >> 0x18) +\n              (uint)CARRY4(uVar17,(uint)start[8])) * 0x100 | uVar8 >> 0x18) +\n            (uint)CARRY4((uint)start[9],uVar18)) * 0x100 | uVar9 >> 0x18) +\n          (uint)CARRY4((uint)start[10],uVar19)) * 0x100 | uVar10 >> 0x18) +\n         (uint)CARRY4((uint)start[0xb],uVar20)" (parenthesized_expression "(((((((((((uint)CARRY4((uint)start[5],(uint)start[4] << 8) * 0x100 +\n                  (uint)CARRY4((uint)start[6],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                (uint)CARRY4((uint)start[7],uVar15)) * 0x100 | uVar16 >> 0x18) +\n              (uint)CARRY4(uVar17,(uint)start[8])) * 0x100 | uVar8 >> 0x18) +\n            (uint)CARRY4((uint)start[9],uVar18)) * 0x100 | uVar9 >> 0x18) +\n          (uint)CARRY4((uint)start[10],uVar19)) * 0x100 | uVar10 >> 0x18)" ( (binary_expression "((((((((((uint)CARRY4((uint)start[5],(uint)start[4] << 8) * 0x100 +\n                  (uint)CARRY4((uint)start[6],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                (uint)CARRY4((uint)start[7],uVar15)) * 0x100 | uVar16 >> 0x18) +\n              (uint)CARRY4(uVar17,(uint)start[8])) * 0x100 | uVar8 >> 0x18) +\n            (uint)CARRY4((uint)start[9],uVar18)) * 0x100 | uVar9 >> 0x18) +\n          (uint)CARRY4((uint)start[10],uVar19)) * 0x100 | uVar10 >> 0x18" (binary_expression "((((((((((uint)CARRY4((uint)start[5],(uint)start[4] << 8) * 0x100 +\n                  (uint)CARRY4((uint)start[6],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                (uint)CARRY4((uint)start[7],uVar15)) * 0x100 | uVar16 >> 0x18) +\n              (uint)CARRY4(uVar17,(uint)start[8])) * 0x100 | uVar8 >> 0x18) +\n            (uint)CARRY4((uint)start[9],uVar18)) * 0x100 | uVar9 >> 0x18) +\n          (uint)CARRY4((uint)start[10],uVar19)) * 0x100" (parenthesized_expression "((((((((((uint)CARRY4((uint)start[5],(uint)start[4] << 8) * 0x100 +\n                  (uint)CARRY4((uint)start[6],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                (uint)CARRY4((uint)start[7],uVar15)) * 0x100 | uVar16 >> 0x18) +\n              (uint)CARRY4(uVar17,(uint)start[8])) * 0x100 | uVar8 >> 0x18) +\n            (uint)CARRY4((uint)start[9],uVar18)) * 0x100 | uVar9 >> 0x18) +\n          (uint)CARRY4((uint)start[10],uVar19))" ( (binary_expression "(((((((((uint)CARRY4((uint)start[5],(uint)start[4] << 8) * 0x100 +\n                  (uint)CARRY4((uint)start[6],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                (uint)CARRY4((uint)start[7],uVar15)) * 0x100 | uVar16 >> 0x18) +\n              (uint)CARRY4(uVar17,(uint)start[8])) * 0x100 | uVar8 >> 0x18) +\n            (uint)CARRY4((uint)start[9],uVar18)) * 0x100 | uVar9 >> 0x18) +\n          (uint)CARRY4((uint)start[10],uVar19)" (parenthesized_expression "(((((((((uint)CARRY4((uint)start[5],(uint)start[4] << 8) * 0x100 +\n                  (uint)CARRY4((uint)start[6],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                (uint)CARRY4((uint)start[7],uVar15)) * 0x100 | uVar16 >> 0x18) +\n              (uint)CARRY4(uVar17,(uint)start[8])) * 0x100 | uVar8 >> 0x18) +\n            (uint)CARRY4((uint)start[9],uVar18)) * 0x100 | uVar9 >> 0x18)" ( (binary_expression "((((((((uint)CARRY4((uint)start[5],(uint)start[4] << 8) * 0x100 +\n                  (uint)CARRY4((uint)start[6],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                (uint)CARRY4((uint)start[7],uVar15)) * 0x100 | uVar16 >> 0x18) +\n              (uint)CARRY4(uVar17,(uint)start[8])) * 0x100 | uVar8 >> 0x18) +\n            (uint)CARRY4((uint)start[9],uVar18)) * 0x100 | uVar9 >> 0x18" (binary_expression "((((((((uint)CARRY4((uint)start[5],(uint)start[4] << 8) * 0x100 +\n                  (uint)CARRY4((uint)start[6],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                (uint)CARRY4((uint)start[7],uVar15)) * 0x100 | uVar16 >> 0x18) +\n              (uint)CARRY4(uVar17,(uint)start[8])) * 0x100 | uVar8 >> 0x18) +\n            (uint)CARRY4((uint)start[9],uVar18)) * 0x100" (parenthesized_expression "((((((((uint)CARRY4((uint)start[5],(uint)start[4] << 8) * 0x100 +\n                  (uint)CARRY4((uint)start[6],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                (uint)CARRY4((uint)start[7],uVar15)) * 0x100 | uVar16 >> 0x18) +\n              (uint)CARRY4(uVar17,(uint)start[8])) * 0x100 | uVar8 >> 0x18) +\n            (uint)CARRY4((uint)start[9],uVar18))" ( (binary_expression "(((((((uint)CARRY4((uint)start[5],(uint)start[4] << 8) * 0x100 +\n                  (uint)CARRY4((uint)start[6],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                (uint)CARRY4((uint)start[7],uVar15)) * 0x100 | uVar16 >> 0x18) +\n              (uint)CARRY4(uVar17,(uint)start[8])) * 0x100 | uVar8 >> 0x18) +\n            (uint)CARRY4((uint)start[9],uVar18)" (parenthesized_expression "(((((((uint)CARRY4((uint)start[5],(uint)start[4] << 8) * 0x100 +\n                  (uint)CARRY4((uint)start[6],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                (uint)CARRY4((uint)start[7],uVar15)) * 0x100 | uVar16 >> 0x18) +\n              (uint)CARRY4(uVar17,(uint)start[8])) * 0x100 | uVar8 >> 0x18)" ( (binary_expression "((((((uint)CARRY4((uint)start[5],(uint)start[4] << 8) * 0x100 +\n                  (uint)CARRY4((uint)start[6],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                (uint)CARRY4((uint)start[7],uVar15)) * 0x100 | uVar16 >> 0x18) +\n              (uint)CARRY4(uVar17,(uint)start[8])) * 0x100 | uVar8 >> 0x18" (binary_expression "((((((uint)CARRY4((uint)start[5],(uint)start[4] << 8) * 0x100 +\n                  (uint)CARRY4((uint)start[6],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                (uint)CARRY4((uint)start[7],uVar15)) * 0x100 | uVar16 >> 0x18) +\n              (uint)CARRY4(uVar17,(uint)start[8])) * 0x100" (parenthesized_expression "((((((uint)CARRY4((uint)start[5],(uint)start[4] << 8) * 0x100 +\n                  (uint)CARRY4((uint)start[6],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                (uint)CARRY4((uint)start[7],uVar15)) * 0x100 | uVar16 >> 0x18) +\n              (uint)CARRY4(uVar17,(uint)start[8]))" ( (binary_expression "(((((uint)CARRY4((uint)start[5],(uint)start[4] << 8) * 0x100 +\n                  (uint)CARRY4((uint)start[6],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                (uint)CARRY4((uint)start[7],uVar15)) * 0x100 | uVar16 >> 0x18) +\n              (uint)CARRY4(uVar17,(uint)start[8])" (parenthesized_expression "(((((uint)CARRY4((uint)start[5],(uint)start[4] << 8) * 0x100 +\n                  (uint)CARRY4((uint)start[6],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                (uint)CARRY4((uint)start[7],uVar15)) * 0x100 | uVar16 >> 0x18)" ( (binary_expression "((((uint)CARRY4((uint)start[5],(uint)start[4] << 8) * 0x100 +\n                  (uint)CARRY4((uint)start[6],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                (uint)CARRY4((uint)start[7],uVar15)) * 0x100 | uVar16 >> 0x18" (binary_expression "((((uint)CARRY4((uint)start[5],(uint)start[4] << 8) * 0x100 +\n                  (uint)CARRY4((uint)start[6],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                (uint)CARRY4((uint)start[7],uVar15)) * 0x100" (parenthesized_expression "((((uint)CARRY4((uint)start[5],(uint)start[4] << 8) * 0x100 +\n                  (uint)CARRY4((uint)start[6],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                (uint)CARRY4((uint)start[7],uVar15))" ( (binary_expression "(((uint)CARRY4((uint)start[5],(uint)start[4] << 8) * 0x100 +\n                  (uint)CARRY4((uint)start[6],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                (uint)CARRY4((uint)start[7],uVar15)" (parenthesized_expression "(((uint)CARRY4((uint)start[5],(uint)start[4] << 8) * 0x100 +\n                  (uint)CARRY4((uint)start[6],uVar13)) * 0x100 | uVar14 >> 0x18)" ( (binary_expression "((uint)CARRY4((uint)start[5],(uint)start[4] << 8) * 0x100 +\n                  (uint)CARRY4((uint)start[6],uVar13)) * 0x100 | uVar14 >> 0x18" (binary_expression "((uint)CARRY4((uint)start[5],(uint)start[4] << 8) * 0x100 +\n                  (uint)CARRY4((uint)start[6],uVar13)) * 0x100" (parenthesized_expression "((uint)CARRY4((uint)start[5],(uint)start[4] << 8) * 0x100 +\n                  (uint)CARRY4((uint)start[6],uVar13))" ( (binary_expression "(uint)CARRY4((uint)start[5],(uint)start[4] << 8) * 0x100 +\n                  (uint)CARRY4((uint)start[6],uVar13)" (binary_expression "(uint)CARRY4((uint)start[5],(uint)start[4] << 8) * 0x100" (cast_expression "(uint)CARRY4((uint)start[5],(uint)start[4] << 8)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)start[5],(uint)start[4] << 8)" identifier (argument_list "((uint)start[5],(uint)start[4] << 8)" ( (cast_expression "(uint)start[5]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "start[5]" identifier [ number_literal ])) , (binary_expression "(uint)start[4] << 8" (cast_expression "(uint)start[4]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "start[4]" identifier [ number_literal ])) << number_literal) )))) * number_literal) + (cast_expression "(uint)CARRY4((uint)start[6],uVar13)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)start[6],uVar13)" identifier (argument_list "((uint)start[6],uVar13)" ( (cast_expression "(uint)start[6]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "start[6]" identifier [ number_literal ])) , identifier ))))) )) * number_literal) | (binary_expression "uVar14 >> 0x18" identifier >> number_literal)) )) + (cast_expression "(uint)CARRY4((uint)start[7],uVar15)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)start[7],uVar15)" identifier (argument_list "((uint)start[7],uVar15)" ( (cast_expression "(uint)start[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "start[7]" identifier [ number_literal ])) , identifier ))))) )) * number_literal) | (binary_expression "uVar16 >> 0x18" identifier >> number_literal)) )) + (cast_expression "(uint)CARRY4(uVar17,(uint)start[8])" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar17,(uint)start[8])" identifier (argument_list "(uVar17,(uint)start[8])" ( identifier , (cast_expression "(uint)start[8]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "start[8]" identifier [ number_literal ])) ))))) )) * number_literal) | (binary_expression "uVar8 >> 0x18" identifier >> number_literal)) )) + (cast_expression "(uint)CARRY4((uint)start[9],uVar18)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)start[9],uVar18)" identifier (argument_list "((uint)start[9],uVar18)" ( (cast_expression "(uint)start[9]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "start[9]" identifier [ number_literal ])) , identifier ))))) )) * number_literal) | (binary_expression "uVar9 >> 0x18" identifier >> number_literal)) )) + (cast_expression "(uint)CARRY4((uint)start[10],uVar19)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)start[10],uVar19)" identifier (argument_list "((uint)start[10],uVar19)" ( (cast_expression "(uint)start[10]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "start[10]" identifier [ number_literal ])) , identifier ))))) )) * number_literal) | (binary_expression "uVar10 >> 0x18" identifier >> number_literal)) )) + (cast_expression "(uint)CARRY4((uint)start[0xb],uVar20)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)start[0xb],uVar20)" identifier (argument_list "((uint)start[0xb],uVar20)" ( (cast_expression "(uint)start[0xb]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "start[0xb]" identifier [ number_literal ])) , identifier )))))) ;) (expression_statement "start = start + 0xc;" (assignment_expression "start = start + 0xc" identifier = (binary_expression "start + 0xc" identifier + number_literal)) ;) (expression_statement "new_size._0_4_ = local_6c - 0xc;" (assignment_expression "new_size._0_4_ = local_6c - 0xc" (field_expression "new_size._0_4_" identifier . field_identifier) = (binary_expression "local_6c - 0xc" identifier - number_literal)) ;) (expression_statement "new_size._4_4_ = local_68 + ((0xb < local_6c) - 1);" (assignment_expression "new_size._4_4_ = local_68 + ((0xb < local_6c) - 1)" (field_expression "new_size._4_4_" identifier . field_identifier) = (binary_expression "local_68 + ((0xb < local_6c) - 1)" identifier + (parenthesized_expression "((0xb < local_6c) - 1)" ( (binary_expression "(0xb < local_6c) - 1" (parenthesized_expression "(0xb < local_6c)" ( (binary_expression "0xb < local_6c" number_literal < identifier) )) - number_literal) )))) ;) }) (else_clause "else {\n    pcVar3 = local_68;\n    uVar8 = get_compression_header(&chdr,start,size);\n    if (chdr.ch_type != 1) {\n      pcVar3 = printable_section_name\n                         ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,(Filedata *)section);\n      pcVar4 = (char *)dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(pcVar4,pcVar3,chdr.ch_type);\n      return 0;\n    }\n    start = start + uVar8;\n    bVar22 = (uint)new_size < uVar8;\n    new_size._0_4_ = (uint)new_size - uVar8;\n    new_size._4_4_ = new_size._4_4_ + -(uint)bVar22;\n  }" else (compound_statement "{\n    pcVar3 = local_68;\n    uVar8 = get_compression_header(&chdr,start,size);\n    if (chdr.ch_type != 1) {\n      pcVar3 = printable_section_name\n                         ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,(Filedata *)section);\n      pcVar4 = (char *)dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(pcVar4,pcVar3,chdr.ch_type);\n      return 0;\n    }\n    start = start + uVar8;\n    bVar22 = (uint)new_size < uVar8;\n    new_size._0_4_ = (uint)new_size - uVar8;\n    new_size._4_4_ = new_size._4_4_ + -(uint)bVar22;\n  }" { (expression_statement "pcVar3 = local_68;" (assignment_expression "pcVar3 = local_68" identifier = identifier) ;) (expression_statement "uVar8 = get_compression_header(&chdr,start,size);" (assignment_expression "uVar8 = get_compression_header(&chdr,start,size)" identifier = (call_expression "get_compression_header(&chdr,start,size)" identifier (argument_list "(&chdr,start,size)" ( (pointer_expression "&chdr" & identifier) , identifier , identifier )))) ;) (if_statement "if (chdr.ch_type != 1) {\n      pcVar3 = printable_section_name\n                         ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,(Filedata *)section);\n      pcVar4 = (char *)dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(pcVar4,pcVar3,chdr.ch_type);\n      return 0;\n    }" if (parenthesized_expression "(chdr.ch_type != 1)" ( (binary_expression "chdr.ch_type != 1" (field_expression "chdr.ch_type" identifier . field_identifier) != number_literal) )) (compound_statement "{\n      pcVar3 = printable_section_name\n                         ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,(Filedata *)section);\n      pcVar4 = (char *)dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(pcVar4,pcVar3,chdr.ch_type);\n      return 0;\n    }" { (expression_statement "pcVar3 = printable_section_name\n                         ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,(Filedata *)section);" (assignment_expression "pcVar3 = printable_section_name\n                         ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,(Filedata *)section)" identifier = (call_expression "printable_section_name\n                         ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,(Filedata *)section)" identifier (argument_list "((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,(Filedata *)section)" ( (cast_expression "(Filedata *)filedata_00" ( (type_descriptor "Filedata *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(Elf_Internal_Shdr *)sec" ( (type_descriptor "Elf_Internal_Shdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(Filedata *)section" ( (type_descriptor "Filedata *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "pcVar4 = (char *)dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5)" identifier (argument_list "(0,"section \'%s\' has unsupported compress type: %d\n",5)" ( number_literal , (string_literal ""section \'%s\' has unsupported compress type: %d\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "warn(pcVar4,pcVar3,chdr.ch_type);" (call_expression "warn(pcVar4,pcVar3,chdr.ch_type)" identifier (argument_list "(pcVar4,pcVar3,chdr.ch_type)" ( identifier , identifier , (field_expression "chdr.ch_type" identifier . field_identifier) ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "start = start + uVar8;" (assignment_expression "start = start + uVar8" identifier = (binary_expression "start + uVar8" identifier + identifier)) ;) (expression_statement "bVar22 = (uint)new_size < uVar8;" (assignment_expression "bVar22 = (uint)new_size < uVar8" identifier = (binary_expression "(uint)new_size < uVar8" (cast_expression "(uint)new_size" ( (type_descriptor "uint" type_identifier) ) identifier) < identifier)) ;) (expression_statement "new_size._0_4_ = (uint)new_size - uVar8;" (assignment_expression "new_size._0_4_ = (uint)new_size - uVar8" (field_expression "new_size._0_4_" identifier . field_identifier) = (binary_expression "(uint)new_size - uVar8" (cast_expression "(uint)new_size" ( (type_descriptor "uint" type_identifier) ) identifier) - identifier)) ;) (expression_statement "new_size._4_4_ = new_size._4_4_ + -(uint)bVar22;" (assignment_expression "new_size._4_4_ = new_size._4_4_ + -(uint)bVar22" (field_expression "new_size._4_4_" identifier . field_identifier) = (binary_expression "new_size._4_4_ + -(uint)bVar22" (field_expression "new_size._4_4_" identifier . field_identifier) + (unary_expression "-(uint)bVar22" - (cast_expression "(uint)bVar22" ( (type_descriptor "uint" type_identifier) ) identifier)))) ;) }))) (if_statement "if (chdr.ch_size._4_4_ != 0 || (dwarf_size_type *)chdr.ch_size != (dwarf_size_type *)0x0) {\n    bVar6 = uncompress_section_contents\n                      (&start,CONCAT44(pcVar3,&new_size),(dwarf_size_type *)chdr.ch_size);\n    if (bVar6 == 0) {\n      pcVar3 = printable_section_name\n                         ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,(Filedata *)section);\n      pcVar4 = (char *)dcgettext(0,"Unable to decompress section %s\n",5);\n      error(pcVar4,pcVar3);\n      return 0;\n    }\n    local_6c = (uint)new_size;\n    local_68 = new_size._4_4_;\n    puVar11 = start;\n  }" if (parenthesized_expression "(chdr.ch_size._4_4_ != 0 || (dwarf_size_type *)chdr.ch_size != (dwarf_size_type *)0x0)" ( (binary_expression "chdr.ch_size._4_4_ != 0 || (dwarf_size_type *)chdr.ch_size != (dwarf_size_type *)0x0" (binary_expression "chdr.ch_size._4_4_ != 0" (field_expression "chdr.ch_size._4_4_" (field_expression "chdr.ch_size" identifier . field_identifier) . field_identifier) != number_literal) || (binary_expression "(dwarf_size_type *)chdr.ch_size != (dwarf_size_type *)0x0" (cast_expression "(dwarf_size_type *)chdr.ch_size" ( (type_descriptor "dwarf_size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "chdr.ch_size" identifier . field_identifier)) != (cast_expression "(dwarf_size_type *)0x0" ( (type_descriptor "dwarf_size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n    bVar6 = uncompress_section_contents\n                      (&start,CONCAT44(pcVar3,&new_size),(dwarf_size_type *)chdr.ch_size);\n    if (bVar6 == 0) {\n      pcVar3 = printable_section_name\n                         ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,(Filedata *)section);\n      pcVar4 = (char *)dcgettext(0,"Unable to decompress section %s\n",5);\n      error(pcVar4,pcVar3);\n      return 0;\n    }\n    local_6c = (uint)new_size;\n    local_68 = new_size._4_4_;\n    puVar11 = start;\n  }" { (expression_statement "bVar6 = uncompress_section_contents\n                      (&start,CONCAT44(pcVar3,&new_size),(dwarf_size_type *)chdr.ch_size);" (assignment_expression "bVar6 = uncompress_section_contents\n                      (&start,CONCAT44(pcVar3,&new_size),(dwarf_size_type *)chdr.ch_size)" identifier = (call_expression "uncompress_section_contents\n                      (&start,CONCAT44(pcVar3,&new_size),(dwarf_size_type *)chdr.ch_size)" identifier (argument_list "(&start,CONCAT44(pcVar3,&new_size),(dwarf_size_type *)chdr.ch_size)" ( (pointer_expression "&start" & identifier) , (call_expression "CONCAT44(pcVar3,&new_size)" identifier (argument_list "(pcVar3,&new_size)" ( identifier , (pointer_expression "&new_size" & identifier) ))) , (cast_expression "(dwarf_size_type *)chdr.ch_size" ( (type_descriptor "dwarf_size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "chdr.ch_size" identifier . field_identifier)) )))) ;) (if_statement "if (bVar6 == 0) {\n      pcVar3 = printable_section_name\n                         ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,(Filedata *)section);\n      pcVar4 = (char *)dcgettext(0,"Unable to decompress section %s\n",5);\n      error(pcVar4,pcVar3);\n      return 0;\n    }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar3 = printable_section_name\n                         ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,(Filedata *)section);\n      pcVar4 = (char *)dcgettext(0,"Unable to decompress section %s\n",5);\n      error(pcVar4,pcVar3);\n      return 0;\n    }" { (expression_statement "pcVar3 = printable_section_name\n                         ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,(Filedata *)section);" (assignment_expression "pcVar3 = printable_section_name\n                         ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,(Filedata *)section)" identifier = (call_expression "printable_section_name\n                         ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,(Filedata *)section)" identifier (argument_list "((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,(Filedata *)section)" ( (cast_expression "(Filedata *)filedata_00" ( (type_descriptor "Filedata *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(Elf_Internal_Shdr *)sec" ( (type_descriptor "Elf_Internal_Shdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(Filedata *)section" ( (type_descriptor "Filedata *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "pcVar4 = (char *)dcgettext(0,"Unable to decompress section %s\n",5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,"Unable to decompress section %s\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"Unable to decompress section %s\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Unable to decompress section %s\n",5)" identifier (argument_list "(0,"Unable to decompress section %s\n",5)" ( number_literal , (string_literal ""Unable to decompress section %s\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "error(pcVar4,pcVar3);" (call_expression "error(pcVar4,pcVar3)" identifier (argument_list "(pcVar4,pcVar3)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "local_6c = (uint)new_size;" (assignment_expression "local_6c = (uint)new_size" identifier = (cast_expression "(uint)new_size" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_68 = new_size._4_4_;" (assignment_expression "local_68 = new_size._4_4_" identifier = (field_expression "new_size._4_4_" identifier . field_identifier)) ;) (expression_statement "puVar11 = start;" (assignment_expression "puVar11 = start" identifier = identifier) ;) })) (labeled_statement "LAB_00041e89:\n  start = puVar11;" statement_identifier : (expression_statement "start = puVar11;" (assignment_expression "start = puVar11" identifier = identifier) ;)) (if_statement "if (relocate == 0) {\n    uVar8 = (filedata->file_header).e_shnum;\n    pEVar1 = filedata->section_headers;\n    for (pEVar5 = pEVar1; pEVar5 < pEVar1 + uVar8; pEVar5 = pEVar5 + 1) {\n      if ((((pEVar5->sh_type == 4) || (pEVar5->sh_type == 9)) && (pEVar5->sh_info < uVar8)) &&\n         (((section == pEVar1 + pEVar5->sh_info &&\n           (*(int *)((int)&pEVar5->sh_size + 4) != 0 || (int)pEVar5->sh_size != 0)) &&\n          (pEVar5->sh_link < uVar8)))) {\n        pcVar3 = (char *)dcgettext(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5);\n        printf(pcVar3);\n        break;\n      }\n    }\n  }\n  else {\n    bVar6 = apply_relocations(filedata,section,start,CONCAT44(local_68,local_6c),(void **)0x0,\n                              (ulong *)0x0);\n    if (bVar6 == 0) {\n      return 0;\n    }\n  }" if (parenthesized_expression "(relocate == 0)" ( (binary_expression "relocate == 0" identifier == number_literal) )) (compound_statement "{\n    uVar8 = (filedata->file_header).e_shnum;\n    pEVar1 = filedata->section_headers;\n    for (pEVar5 = pEVar1; pEVar5 < pEVar1 + uVar8; pEVar5 = pEVar5 + 1) {\n      if ((((pEVar5->sh_type == 4) || (pEVar5->sh_type == 9)) && (pEVar5->sh_info < uVar8)) &&\n         (((section == pEVar1 + pEVar5->sh_info &&\n           (*(int *)((int)&pEVar5->sh_size + 4) != 0 || (int)pEVar5->sh_size != 0)) &&\n          (pEVar5->sh_link < uVar8)))) {\n        pcVar3 = (char *)dcgettext(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5);\n        printf(pcVar3);\n        break;\n      }\n    }\n  }" { (expression_statement "uVar8 = (filedata->file_header).e_shnum;" (assignment_expression "uVar8 = (filedata->file_header).e_shnum" identifier = (field_expression "(filedata->file_header).e_shnum" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pEVar1 = filedata->section_headers;" (assignment_expression "pEVar1 = filedata->section_headers" identifier = (field_expression "filedata->section_headers" identifier -> field_identifier)) ;) (for_statement "for (pEVar5 = pEVar1; pEVar5 < pEVar1 + uVar8; pEVar5 = pEVar5 + 1) {\n      if ((((pEVar5->sh_type == 4) || (pEVar5->sh_type == 9)) && (pEVar5->sh_info < uVar8)) &&\n         (((section == pEVar1 + pEVar5->sh_info &&\n           (*(int *)((int)&pEVar5->sh_size + 4) != 0 || (int)pEVar5->sh_size != 0)) &&\n          (pEVar5->sh_link < uVar8)))) {\n        pcVar3 = (char *)dcgettext(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5);\n        printf(pcVar3);\n        break;\n      }\n    }" for ( (assignment_expression "pEVar5 = pEVar1" identifier = identifier) ; (binary_expression "pEVar5 < pEVar1 + uVar8" identifier < (binary_expression "pEVar1 + uVar8" identifier + identifier)) ; (assignment_expression "pEVar5 = pEVar5 + 1" identifier = (binary_expression "pEVar5 + 1" identifier + number_literal)) ) (compound_statement "{\n      if ((((pEVar5->sh_type == 4) || (pEVar5->sh_type == 9)) && (pEVar5->sh_info < uVar8)) &&\n         (((section == pEVar1 + pEVar5->sh_info &&\n           (*(int *)((int)&pEVar5->sh_size + 4) != 0 || (int)pEVar5->sh_size != 0)) &&\n          (pEVar5->sh_link < uVar8)))) {\n        pcVar3 = (char *)dcgettext(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5);\n        printf(pcVar3);\n        break;\n      }\n    }" { (if_statement "if ((((pEVar5->sh_type == 4) || (pEVar5->sh_type == 9)) && (pEVar5->sh_info < uVar8)) &&\n         (((section == pEVar1 + pEVar5->sh_info &&\n           (*(int *)((int)&pEVar5->sh_size + 4) != 0 || (int)pEVar5->sh_size != 0)) &&\n          (pEVar5->sh_link < uVar8)))) {\n        pcVar3 = (char *)dcgettext(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5);\n        printf(pcVar3);\n        break;\n      }" if (parenthesized_expression "((((pEVar5->sh_type == 4) || (pEVar5->sh_type == 9)) && (pEVar5->sh_info < uVar8)) &&\n         (((section == pEVar1 + pEVar5->sh_info &&\n           (*(int *)((int)&pEVar5->sh_size + 4) != 0 || (int)pEVar5->sh_size != 0)) &&\n          (pEVar5->sh_link < uVar8))))" ( (binary_expression "(((pEVar5->sh_type == 4) || (pEVar5->sh_type == 9)) && (pEVar5->sh_info < uVar8)) &&\n         (((section == pEVar1 + pEVar5->sh_info &&\n           (*(int *)((int)&pEVar5->sh_size + 4) != 0 || (int)pEVar5->sh_size != 0)) &&\n          (pEVar5->sh_link < uVar8)))" (parenthesized_expression "(((pEVar5->sh_type == 4) || (pEVar5->sh_type == 9)) && (pEVar5->sh_info < uVar8))" ( (binary_expression "((pEVar5->sh_type == 4) || (pEVar5->sh_type == 9)) && (pEVar5->sh_info < uVar8)" (parenthesized_expression "((pEVar5->sh_type == 4) || (pEVar5->sh_type == 9))" ( (binary_expression "(pEVar5->sh_type == 4) || (pEVar5->sh_type == 9)" (parenthesized_expression "(pEVar5->sh_type == 4)" ( (binary_expression "pEVar5->sh_type == 4" (field_expression "pEVar5->sh_type" identifier -> field_identifier) == number_literal) )) || (parenthesized_expression "(pEVar5->sh_type == 9)" ( (binary_expression "pEVar5->sh_type == 9" (field_expression "pEVar5->sh_type" identifier -> field_identifier) == number_literal) ))) )) && (parenthesized_expression "(pEVar5->sh_info < uVar8)" ( (binary_expression "pEVar5->sh_info < uVar8" (field_expression "pEVar5->sh_info" identifier -> field_identifier) < identifier) ))) )) && (parenthesized_expression "(((section == pEVar1 + pEVar5->sh_info &&\n           (*(int *)((int)&pEVar5->sh_size + 4) != 0 || (int)pEVar5->sh_size != 0)) &&\n          (pEVar5->sh_link < uVar8)))" ( (parenthesized_expression "((section == pEVar1 + pEVar5->sh_info &&\n           (*(int *)((int)&pEVar5->sh_size + 4) != 0 || (int)pEVar5->sh_size != 0)) &&\n          (pEVar5->sh_link < uVar8))" ( (binary_expression "(section == pEVar1 + pEVar5->sh_info &&\n           (*(int *)((int)&pEVar5->sh_size + 4) != 0 || (int)pEVar5->sh_size != 0)) &&\n          (pEVar5->sh_link < uVar8)" (parenthesized_expression "(section == pEVar1 + pEVar5->sh_info &&\n           (*(int *)((int)&pEVar5->sh_size + 4) != 0 || (int)pEVar5->sh_size != 0))" ( (binary_expression "section == pEVar1 + pEVar5->sh_info &&\n           (*(int *)((int)&pEVar5->sh_size + 4) != 0 || (int)pEVar5->sh_size != 0)" (binary_expression "section == pEVar1 + pEVar5->sh_info" identifier == (binary_expression "pEVar1 + pEVar5->sh_info" identifier + (field_expression "pEVar5->sh_info" identifier -> field_identifier))) && (parenthesized_expression "(*(int *)((int)&pEVar5->sh_size + 4) != 0 || (int)pEVar5->sh_size != 0)" ( (binary_expression "*(int *)((int)&pEVar5->sh_size + 4) != 0 || (int)pEVar5->sh_size != 0" (binary_expression "*(int *)((int)&pEVar5->sh_size + 4) != 0" (pointer_expression "*(int *)((int)&pEVar5->sh_size + 4)" * (cast_expression "(int *)((int)&pEVar5->sh_size + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar5->sh_size + 4)" ( (binary_expression "(int)&pEVar5->sh_size + 4" (cast_expression "(int)&pEVar5->sh_size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar5->sh_size" & (field_expression "pEVar5->sh_size" identifier -> field_identifier))) + number_literal) )))) != number_literal) || (binary_expression "(int)pEVar5->sh_size != 0" (cast_expression "(int)pEVar5->sh_size" ( (type_descriptor "int" primitive_type) ) (field_expression "pEVar5->sh_size" identifier -> field_identifier)) != number_literal)) ))) )) && (parenthesized_expression "(pEVar5->sh_link < uVar8)" ( (binary_expression "pEVar5->sh_link < uVar8" (field_expression "pEVar5->sh_link" identifier -> field_identifier) < identifier) ))) )) ))) )) (compound_statement "{\n        pcVar3 = (char *)dcgettext(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5);\n        printf(pcVar3);\n        break;\n      }" { (expression_statement "pcVar3 = (char *)dcgettext(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5)" identifier (argument_list "(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5)" ( number_literal , (string_literal "" NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar3);" (call_expression "printf(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier ))) ;) (break_statement "break;" break ;) })) })) }) (else_clause "else {\n    bVar6 = apply_relocations(filedata,section,start,CONCAT44(local_68,local_6c),(void **)0x0,\n                              (ulong *)0x0);\n    if (bVar6 == 0) {\n      return 0;\n    }\n  }" else (compound_statement "{\n    bVar6 = apply_relocations(filedata,section,start,CONCAT44(local_68,local_6c),(void **)0x0,\n                              (ulong *)0x0);\n    if (bVar6 == 0) {\n      return 0;\n    }\n  }" { (expression_statement "bVar6 = apply_relocations(filedata,section,start,CONCAT44(local_68,local_6c),(void **)0x0,\n                              (ulong *)0x0);" (assignment_expression "bVar6 = apply_relocations(filedata,section,start,CONCAT44(local_68,local_6c),(void **)0x0,\n                              (ulong *)0x0)" identifier = (call_expression "apply_relocations(filedata,section,start,CONCAT44(local_68,local_6c),(void **)0x0,\n                              (ulong *)0x0)" identifier (argument_list "(filedata,section,start,CONCAT44(local_68,local_6c),(void **)0x0,\n                              (ulong *)0x0)" ( identifier , identifier , identifier , (call_expression "CONCAT44(local_68,local_6c)" identifier (argument_list "(local_68,local_6c)" ( identifier , identifier ))) , (cast_expression "(void **)0x0" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , (cast_expression "(ulong *)0x0" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (if_statement "if (bVar6 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) }))) (expression_statement "puVar2 = PTR_stdout_000b3fd8;" (assignment_expression "puVar2 = PTR_stdout_000b3fd8" identifier = identifier) ;) (expression_statement "local_64 = (uint)section->sh_addr;" (assignment_expression "local_64 = (uint)section->sh_addr" identifier = (cast_expression "(uint)section->sh_addr" ( (type_descriptor "uint" type_identifier) ) (field_expression "section->sh_addr" identifier -> field_identifier))) ;) (expression_statement "puVar11 = start;" (assignment_expression "puVar11 = start" identifier = identifier) ;) (if_statement "if (local_68 != (char *)0x0 || local_6c != 0) {\n    do {\n      uVar8 = 0x10;\n      if (local_68 == (char *)0x0 && (uint)(0x10 < local_6c) <= (uint)-(int)local_68) {\n        uVar8 = local_6c;\n      }\n      uVar10 = 0;\n      uVar9 = local_64;\n      printf("  0x%8.8lx ",local_64);\n      do {\n        while ((int)uVar10 < (int)uVar8) {\n          uVar9 = (uint)puVar11[uVar10];\n          printf("%2.2x",uVar9);\n          if ((uVar10 & 3) == 3) goto LAB_00041fd4;\nLAB_00041faf:\n          uVar10 = uVar10 + 1;\n          if (uVar10 == 0x10) goto LAB_00041fe9;\n        }\n        printf("  ",uVar9);\n        if ((uVar10 & 3) != 3) goto LAB_00041faf;\nLAB_00041fd4:\n        uVar10 = uVar10 + 1;\n        putchar(0x20);\n      } while (uVar10 != 0x10);\nLAB_00041fe9:\n      iVar7 = 0;\n      do {\n        while (pbVar12 = puVar11 + iVar7, *pbVar12 - 0x20 < 0x5f) {\n          iVar7 = iVar7 + 1;\n          putchar((uint)*pbVar12);\n          if ((int)uVar8 <= iVar7) goto LAB_00042024;\n        }\n        iVar7 = iVar7 + 1;\n        putchar(0x2e);\n      } while (iVar7 < (int)uVar8);\nLAB_00042024:\n      putc(10,*(FILE **)puVar2);\n      local_64 = local_64 + uVar8;\n      bVar22 = local_6c < uVar8;\n      local_6c = local_6c - uVar8;\n      local_68 = local_68 + (-(uint)bVar22 - ((int)uVar8 >> 0x1f));\n      puVar11 = puVar11 + uVar8;\n    } while (local_68 != (char *)0x0 || local_6c != 0);\n  }" if (parenthesized_expression "(local_68 != (char *)0x0 || local_6c != 0)" ( (binary_expression "local_68 != (char *)0x0 || local_6c != 0" (binary_expression "local_68 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) || (binary_expression "local_6c != 0" identifier != number_literal)) )) (compound_statement "{\n    do {\n      uVar8 = 0x10;\n      if (local_68 == (char *)0x0 && (uint)(0x10 < local_6c) <= (uint)-(int)local_68) {\n        uVar8 = local_6c;\n      }\n      uVar10 = 0;\n      uVar9 = local_64;\n      printf("  0x%8.8lx ",local_64);\n      do {\n        while ((int)uVar10 < (int)uVar8) {\n          uVar9 = (uint)puVar11[uVar10];\n          printf("%2.2x",uVar9);\n          if ((uVar10 & 3) == 3) goto LAB_00041fd4;\nLAB_00041faf:\n          uVar10 = uVar10 + 1;\n          if (uVar10 == 0x10) goto LAB_00041fe9;\n        }\n        printf("  ",uVar9);\n        if ((uVar10 & 3) != 3) goto LAB_00041faf;\nLAB_00041fd4:\n        uVar10 = uVar10 + 1;\n        putchar(0x20);\n      } while (uVar10 != 0x10);\nLAB_00041fe9:\n      iVar7 = 0;\n      do {\n        while (pbVar12 = puVar11 + iVar7, *pbVar12 - 0x20 < 0x5f) {\n          iVar7 = iVar7 + 1;\n          putchar((uint)*pbVar12);\n          if ((int)uVar8 <= iVar7) goto LAB_00042024;\n        }\n        iVar7 = iVar7 + 1;\n        putchar(0x2e);\n      } while (iVar7 < (int)uVar8);\nLAB_00042024:\n      putc(10,*(FILE **)puVar2);\n      local_64 = local_64 + uVar8;\n      bVar22 = local_6c < uVar8;\n      local_6c = local_6c - uVar8;\n      local_68 = local_68 + (-(uint)bVar22 - ((int)uVar8 >> 0x1f));\n      puVar11 = puVar11 + uVar8;\n    } while (local_68 != (char *)0x0 || local_6c != 0);\n  }" { (do_statement "do {\n      uVar8 = 0x10;\n      if (local_68 == (char *)0x0 && (uint)(0x10 < local_6c) <= (uint)-(int)local_68) {\n        uVar8 = local_6c;\n      }\n      uVar10 = 0;\n      uVar9 = local_64;\n      printf("  0x%8.8lx ",local_64);\n      do {\n        while ((int)uVar10 < (int)uVar8) {\n          uVar9 = (uint)puVar11[uVar10];\n          printf("%2.2x",uVar9);\n          if ((uVar10 & 3) == 3) goto LAB_00041fd4;\nLAB_00041faf:\n          uVar10 = uVar10 + 1;\n          if (uVar10 == 0x10) goto LAB_00041fe9;\n        }\n        printf("  ",uVar9);\n        if ((uVar10 & 3) != 3) goto LAB_00041faf;\nLAB_00041fd4:\n        uVar10 = uVar10 + 1;\n        putchar(0x20);\n      } while (uVar10 != 0x10);\nLAB_00041fe9:\n      iVar7 = 0;\n      do {\n        while (pbVar12 = puVar11 + iVar7, *pbVar12 - 0x20 < 0x5f) {\n          iVar7 = iVar7 + 1;\n          putchar((uint)*pbVar12);\n          if ((int)uVar8 <= iVar7) goto LAB_00042024;\n        }\n        iVar7 = iVar7 + 1;\n        putchar(0x2e);\n      } while (iVar7 < (int)uVar8);\nLAB_00042024:\n      putc(10,*(FILE **)puVar2);\n      local_64 = local_64 + uVar8;\n      bVar22 = local_6c < uVar8;\n      local_6c = local_6c - uVar8;\n      local_68 = local_68 + (-(uint)bVar22 - ((int)uVar8 >> 0x1f));\n      puVar11 = puVar11 + uVar8;\n    } while (local_68 != (char *)0x0 || local_6c != 0);" do (compound_statement "{\n      uVar8 = 0x10;\n      if (local_68 == (char *)0x0 && (uint)(0x10 < local_6c) <= (uint)-(int)local_68) {\n        uVar8 = local_6c;\n      }\n      uVar10 = 0;\n      uVar9 = local_64;\n      printf("  0x%8.8lx ",local_64);\n      do {\n        while ((int)uVar10 < (int)uVar8) {\n          uVar9 = (uint)puVar11[uVar10];\n          printf("%2.2x",uVar9);\n          if ((uVar10 & 3) == 3) goto LAB_00041fd4;\nLAB_00041faf:\n          uVar10 = uVar10 + 1;\n          if (uVar10 == 0x10) goto LAB_00041fe9;\n        }\n        printf("  ",uVar9);\n        if ((uVar10 & 3) != 3) goto LAB_00041faf;\nLAB_00041fd4:\n        uVar10 = uVar10 + 1;\n        putchar(0x20);\n      } while (uVar10 != 0x10);\nLAB_00041fe9:\n      iVar7 = 0;\n      do {\n        while (pbVar12 = puVar11 + iVar7, *pbVar12 - 0x20 < 0x5f) {\n          iVar7 = iVar7 + 1;\n          putchar((uint)*pbVar12);\n          if ((int)uVar8 <= iVar7) goto LAB_00042024;\n        }\n        iVar7 = iVar7 + 1;\n        putchar(0x2e);\n      } while (iVar7 < (int)uVar8);\nLAB_00042024:\n      putc(10,*(FILE **)puVar2);\n      local_64 = local_64 + uVar8;\n      bVar22 = local_6c < uVar8;\n      local_6c = local_6c - uVar8;\n      local_68 = local_68 + (-(uint)bVar22 - ((int)uVar8 >> 0x1f));\n      puVar11 = puVar11 + uVar8;\n    }" { (expression_statement "uVar8 = 0x10;" (assignment_expression "uVar8 = 0x10" identifier = number_literal) ;) (if_statement "if (local_68 == (char *)0x0 && (uint)(0x10 < local_6c) <= (uint)-(int)local_68) {\n        uVar8 = local_6c;\n      }" if (parenthesized_expression "(local_68 == (char *)0x0 && (uint)(0x10 < local_6c) <= (uint)-(int)local_68)" ( (binary_expression "local_68 == (char *)0x0 && (uint)(0x10 < local_6c) <= (uint)-(int)local_68" (binary_expression "local_68 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) && (binary_expression "(uint)(0x10 < local_6c) <= (uint)-(int)local_68" (call_expression "(uint)(0x10 < local_6c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0x10 < local_6c)" ( (binary_expression "0x10 < local_6c" number_literal < identifier) ))) <= (binary_expression "(uint)-(int)local_68" (parenthesized_expression "(uint)" ( identifier )) - (cast_expression "(int)local_68" ( (type_descriptor "int" primitive_type) ) identifier)))) )) (compound_statement "{\n        uVar8 = local_6c;\n      }" { (expression_statement "uVar8 = local_6c;" (assignment_expression "uVar8 = local_6c" identifier = identifier) ;) })) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (expression_statement "uVar9 = local_64;" (assignment_expression "uVar9 = local_64" identifier = identifier) ;) (expression_statement "printf("  0x%8.8lx ",local_64);" (call_expression "printf("  0x%8.8lx ",local_64)" identifier (argument_list "("  0x%8.8lx ",local_64)" ( (string_literal ""  0x%8.8lx "" " string_content ") , identifier ))) ;) (do_statement "do {\n        while ((int)uVar10 < (int)uVar8) {\n          uVar9 = (uint)puVar11[uVar10];\n          printf("%2.2x",uVar9);\n          if ((uVar10 & 3) == 3) goto LAB_00041fd4;\nLAB_00041faf:\n          uVar10 = uVar10 + 1;\n          if (uVar10 == 0x10) goto LAB_00041fe9;\n        }\n        printf("  ",uVar9);\n        if ((uVar10 & 3) != 3) goto LAB_00041faf;\nLAB_00041fd4:\n        uVar10 = uVar10 + 1;\n        putchar(0x20);\n      } while (uVar10 != 0x10);" do (compound_statement "{\n        while ((int)uVar10 < (int)uVar8) {\n          uVar9 = (uint)puVar11[uVar10];\n          printf("%2.2x",uVar9);\n          if ((uVar10 & 3) == 3) goto LAB_00041fd4;\nLAB_00041faf:\n          uVar10 = uVar10 + 1;\n          if (uVar10 == 0x10) goto LAB_00041fe9;\n        }\n        printf("  ",uVar9);\n        if ((uVar10 & 3) != 3) goto LAB_00041faf;\nLAB_00041fd4:\n        uVar10 = uVar10 + 1;\n        putchar(0x20);\n      }" { (while_statement "while ((int)uVar10 < (int)uVar8) {\n          uVar9 = (uint)puVar11[uVar10];\n          printf("%2.2x",uVar9);\n          if ((uVar10 & 3) == 3) goto LAB_00041fd4;\nLAB_00041faf:\n          uVar10 = uVar10 + 1;\n          if (uVar10 == 0x10) goto LAB_00041fe9;\n        }" while (parenthesized_expression "((int)uVar10 < (int)uVar8)" ( (binary_expression "(int)uVar10 < (int)uVar8" (cast_expression "(int)uVar10" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          uVar9 = (uint)puVar11[uVar10];\n          printf("%2.2x",uVar9);\n          if ((uVar10 & 3) == 3) goto LAB_00041fd4;\nLAB_00041faf:\n          uVar10 = uVar10 + 1;\n          if (uVar10 == 0x10) goto LAB_00041fe9;\n        }" { (expression_statement "uVar9 = (uint)puVar11[uVar10];" (assignment_expression "uVar9 = (uint)puVar11[uVar10]" identifier = (cast_expression "(uint)puVar11[uVar10]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar11[uVar10]" identifier [ identifier ]))) ;) (expression_statement "printf("%2.2x",uVar9);" (call_expression "printf("%2.2x",uVar9)" identifier (argument_list "("%2.2x",uVar9)" ( (string_literal ""%2.2x"" " string_content ") , identifier ))) ;) (if_statement "if ((uVar10 & 3) == 3) goto LAB_00041fd4;" if (parenthesized_expression "((uVar10 & 3) == 3)" ( (binary_expression "(uVar10 & 3) == 3" (parenthesized_expression "(uVar10 & 3)" ( (binary_expression "uVar10 & 3" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00041fd4;" goto statement_identifier ;)) (labeled_statement "LAB_00041faf:\n          uVar10 = uVar10 + 1;" statement_identifier : (expression_statement "uVar10 = uVar10 + 1;" (assignment_expression "uVar10 = uVar10 + 1" identifier = (binary_expression "uVar10 + 1" identifier + number_literal)) ;)) (if_statement "if (uVar10 == 0x10) goto LAB_00041fe9;" if (parenthesized_expression "(uVar10 == 0x10)" ( (binary_expression "uVar10 == 0x10" identifier == number_literal) )) (goto_statement "goto LAB_00041fe9;" goto statement_identifier ;)) })) (expression_statement "printf("  ",uVar9);" (call_expression "printf("  ",uVar9)" identifier (argument_list "("  ",uVar9)" ( (string_literal ""  "" " string_content ") , identifier ))) ;) (if_statement "if ((uVar10 & 3) != 3) goto LAB_00041faf;" if (parenthesized_expression "((uVar10 & 3) != 3)" ( (binary_expression "(uVar10 & 3) != 3" (parenthesized_expression "(uVar10 & 3)" ( (binary_expression "uVar10 & 3" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00041faf;" goto statement_identifier ;)) (labeled_statement "LAB_00041fd4:\n        uVar10 = uVar10 + 1;" statement_identifier : (expression_statement "uVar10 = uVar10 + 1;" (assignment_expression "uVar10 = uVar10 + 1" identifier = (binary_expression "uVar10 + 1" identifier + number_literal)) ;)) (expression_statement "putchar(0x20);" (call_expression "putchar(0x20)" identifier (argument_list "(0x20)" ( number_literal ))) ;) }) while (parenthesized_expression "(uVar10 != 0x10)" ( (binary_expression "uVar10 != 0x10" identifier != number_literal) )) ;) (labeled_statement "LAB_00041fe9:\n      iVar7 = 0;" statement_identifier : (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;)) (do_statement "do {\n        while (pbVar12 = puVar11 + iVar7, *pbVar12 - 0x20 < 0x5f) {\n          iVar7 = iVar7 + 1;\n          putchar((uint)*pbVar12);\n          if ((int)uVar8 <= iVar7) goto LAB_00042024;\n        }\n        iVar7 = iVar7 + 1;\n        putchar(0x2e);\n      } while (iVar7 < (int)uVar8);" do (compound_statement "{\n        while (pbVar12 = puVar11 + iVar7, *pbVar12 - 0x20 < 0x5f) {\n          iVar7 = iVar7 + 1;\n          putchar((uint)*pbVar12);\n          if ((int)uVar8 <= iVar7) goto LAB_00042024;\n        }\n        iVar7 = iVar7 + 1;\n        putchar(0x2e);\n      }" { (while_statement "while (pbVar12 = puVar11 + iVar7, *pbVar12 - 0x20 < 0x5f) {\n          iVar7 = iVar7 + 1;\n          putchar((uint)*pbVar12);\n          if ((int)uVar8 <= iVar7) goto LAB_00042024;\n        }" while (parenthesized_expression "(pbVar12 = puVar11 + iVar7, *pbVar12 - 0x20 < 0x5f)" ( (comma_expression "pbVar12 = puVar11 + iVar7, *pbVar12 - 0x20 < 0x5f" (assignment_expression "pbVar12 = puVar11 + iVar7" identifier = (binary_expression "puVar11 + iVar7" identifier + identifier)) , (binary_expression "*pbVar12 - 0x20 < 0x5f" (binary_expression "*pbVar12 - 0x20" (pointer_expression "*pbVar12" * identifier) - number_literal) < number_literal)) )) (compound_statement "{\n          iVar7 = iVar7 + 1;\n          putchar((uint)*pbVar12);\n          if ((int)uVar8 <= iVar7) goto LAB_00042024;\n        }" { (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (expression_statement "putchar((uint)*pbVar12);" (call_expression "putchar((uint)*pbVar12)" identifier (argument_list "((uint)*pbVar12)" ( (binary_expression "(uint)*pbVar12" (parenthesized_expression "(uint)" ( identifier )) * identifier) ))) ;) (if_statement "if ((int)uVar8 <= iVar7) goto LAB_00042024;" if (parenthesized_expression "((int)uVar8 <= iVar7)" ( (binary_expression "(int)uVar8 <= iVar7" (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier) <= identifier) )) (goto_statement "goto LAB_00042024;" goto statement_identifier ;)) })) (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (expression_statement "putchar(0x2e);" (call_expression "putchar(0x2e)" identifier (argument_list "(0x2e)" ( number_literal ))) ;) }) while (parenthesized_expression "(iVar7 < (int)uVar8)" ( (binary_expression "iVar7 < (int)uVar8" identifier < (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (labeled_statement "LAB_00042024:\n      putc(10,*(FILE **)puVar2);" statement_identifier : (expression_statement "putc(10,*(FILE **)puVar2);" (call_expression "putc(10,*(FILE **)puVar2)" identifier (argument_list "(10,*(FILE **)puVar2)" ( number_literal , (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;)) (expression_statement "local_64 = local_64 + uVar8;" (assignment_expression "local_64 = local_64 + uVar8" identifier = (binary_expression "local_64 + uVar8" identifier + identifier)) ;) (expression_statement "bVar22 = local_6c < uVar8;" (assignment_expression "bVar22 = local_6c < uVar8" identifier = (binary_expression "local_6c < uVar8" identifier < identifier)) ;) (expression_statement "local_6c = local_6c - uVar8;" (assignment_expression "local_6c = local_6c - uVar8" identifier = (binary_expression "local_6c - uVar8" identifier - identifier)) ;) (expression_statement "local_68 = local_68 + (-(uint)bVar22 - ((int)uVar8 >> 0x1f));" (assignment_expression "local_68 = local_68 + (-(uint)bVar22 - ((int)uVar8 >> 0x1f))" identifier = (binary_expression "local_68 + (-(uint)bVar22 - ((int)uVar8 >> 0x1f))" identifier + (parenthesized_expression "(-(uint)bVar22 - ((int)uVar8 >> 0x1f))" ( (binary_expression "-(uint)bVar22 - ((int)uVar8 >> 0x1f)" (unary_expression "-(uint)bVar22" - (cast_expression "(uint)bVar22" ( (type_descriptor "uint" type_identifier) ) identifier)) - (parenthesized_expression "((int)uVar8 >> 0x1f)" ( (binary_expression "(int)uVar8 >> 0x1f" (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) )))) ;) (expression_statement "puVar11 = puVar11 + uVar8;" (assignment_expression "puVar11 = puVar11 + uVar8" identifier = (binary_expression "puVar11 + uVar8" identifier + identifier)) ;) }) while (parenthesized_expression "(local_68 != (char *)0x0 || local_6c != 0)" ( (binary_expression "local_68 != (char *)0x0 || local_6c != 0" (binary_expression "local_68 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) || (binary_expression "local_6c != 0" identifier != number_literal)) )) ;) })) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (expression_statement "putc(10,*(FILE **)puVar2);" (call_expression "putc(10,*(FILE **)puVar2)" identifier (argument_list "(10,*(FILE **)puVar2)" ( number_literal , (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "bool __regparm3 FUN_00041ce0(int param_1,int param_2,int param_3)\n\n{\n  byte *pbVar1;\n  undefined *puVar2;\n  byte *__ptr;\n  undefined4 uVar3;\n  char *pcVar4;\n  undefined4 uVar5;\n  int iVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  byte *pbVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  byte *pbVar19;\n  bool bVar20;\n  bool bVar21;\n  byte bVar22;\n  uint local_6c;\n  int local_68;\n  uint local_64;\n  byte *local_40;\n  uint local_3c;\n  int local_38;\n  int local_30;\n  int local_2c;\n  int local_28;\n  undefined4 uStack_14;\n  \n  bVar22 = 0;\n  uStack_14 = 0x41ceb;\n  __ptr = (byte *)FUN_00032770();\n  if (__ptr == (byte *)0x0) {\n    if (*(int *)(param_1 + 0x24) == 0 && *(int *)(param_1 + 0x20) == 0) {\n      return true;\n    }\n    return *(int *)(param_1 + 4) == 8;\n  }\n  local_6c = *(uint *)(param_1 + 0x20);\n  local_68 = *(int *)(param_1 + 0x24);\n  uVar3 = FUN_00022190();\n  pcVar4 = (char *)dcgettext(0,"\nHex dump of section \'%s\':\n",5);\n  printf(pcVar4,uVar3);\n  pbVar1 = __ptr;\n  if (DAT_000b6320 == 0) goto LAB_00041e89;\n  local_3c = local_6c;\n  local_38 = local_68;\n  if ((*(uint *)(param_1 + 8) & 0x800) == 0) {\n    uVar7 = (uint)(0xc < local_6c);\n    uVar8 = -local_68;\n    bVar20 = local_68 != 0 || uVar8 < uVar7;\n    bVar21 = uVar8 == uVar7;\n    if (local_68 == 0 && uVar8 >= uVar7) goto LAB_00041e89;\n    iVar6 = 5;\n    pbVar10 = __ptr;\n    pbVar19 = &DAT_0007d064;\n    do {\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      bVar20 = *pbVar10 < *pbVar19;\n      bVar21 = *pbVar10 == *pbVar19;\n      pbVar10 = pbVar10 + (uint)bVar22 * -2 + 1;\n      pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n    } while (bVar21);\n    if ((!bVar20 && !bVar21) != bVar20) goto LAB_00041e89;\n    uVar11 = (uint)CONCAT11(__ptr[4],__ptr[5]) * 0x100;\n    uVar12 = __ptr[6] + uVar11;\n    uVar13 = uVar12 * 0x100;\n    uVar14 = __ptr[7] + uVar13;\n    uVar15 = uVar14 * 0x100;\n    uVar7 = uVar15 + __ptr[8];\n    uVar16 = uVar7 * 0x100;\n    uVar8 = __ptr[9] + uVar16;\n    uVar17 = uVar8 * 0x100;\n    uVar9 = __ptr[10] + uVar17;\n    uVar18 = uVar9 * 0x100;\n    local_2c = __ptr[0xb] + uVar18;\n    local_28 = (((((((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +\n                  (uint)CARRY4((uint)__ptr[9],uVar16)) * 0x100 | uVar8 >> 0x18) +\n                (uint)CARRY4((uint)__ptr[10],uVar17)) * 0x100 | uVar9 >> 0x18) +\n               (uint)CARRY4((uint)__ptr[0xb],uVar18);\n    local_40 = __ptr + 0xc;\n    local_3c = local_6c - 0xc;\n    local_38 = local_68 + -1 + (uint)(0xb < local_6c);\n  }\n  else {\n    uVar7 = FUN_0001be30(local_6c,local_68);\n    if (local_30 != 1) {\n      uVar3 = FUN_00022190();\n      uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(uVar5,uVar3,local_30);\n      return false;\n    }\n    local_40 = __ptr + uVar7;\n    bVar20 = local_3c < uVar7;\n    local_3c = local_3c - uVar7;\n    local_38 = local_38 - (uint)bVar20;\n  }\n  if (local_28 != 0 || local_2c != 0) {\n    iVar6 = FUN_0001d690(&local_3c);\n    if (iVar6 == 0) {\n      uVar3 = FUN_00022190();\n      uVar5 = dcgettext(0,"Unable to decompress section %s\n",5);\n      error(uVar5,uVar3);\n      return false;\n    }\n    local_6c = local_3c;\n    local_68 = local_38;\n    pbVar1 = local_40;\n  }\nLAB_00041e89:\n  local_40 = pbVar1;\n  if (param_3 == 0) {\n    uVar7 = *(uint *)(param_2 + 0x54);\n    uVar8 = *(uint *)(param_2 + 0x5c);\n    for (uVar9 = uVar8; uVar9 < uVar8 + uVar7 * 0x48; uVar9 = uVar9 + 0x48) {\n      if ((((*(int *)(uVar9 + 4) == 4) || (*(int *)(uVar9 + 4) == 9)) &&\n          (*(uint *)(uVar9 + 0x2c) < uVar7)) &&\n         (((param_1 == uVar8 + *(uint *)(uVar9 + 0x2c) * 0x48 &&\n           (*(int *)(uVar9 + 0x24) != 0 || *(int *)(uVar9 + 0x20) != 0)) &&\n          (*(uint *)(uVar9 + 0x28) < uVar7)))) {\n        pcVar4 = (char *)dcgettext(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5);\n        printf(pcVar4);\n        break;\n      }\n    }\n  }\n  else {\n    iVar6 = FUN_0003fb10(local_6c,local_68,0,0);\n    if (iVar6 == 0) {\n      return false;\n    }\n  }\n  puVar2 = PTR_stdout_000b3fd8;\n  local_64 = *(uint *)(param_1 + 0x10);\n  if (local_68 != 0 || local_6c != 0) {\n    do {\n      uVar7 = 0x10;\n      if (local_68 == 0 && (uint)(0x10 < local_6c) <= (uint)-local_68) {\n        uVar7 = local_6c;\n      }\n      uVar9 = 0;\n      uVar8 = local_64;\n      printf("  0x%8.8lx ",local_64);\n      do {\n        while ((int)uVar9 < (int)uVar7) {\n          uVar8 = (uint)local_40[uVar9];\n          printf("%2.2x",uVar8);\n          if ((uVar9 & 3) == 3) goto LAB_00041fd4;\nLAB_00041faf:\n          uVar9 = uVar9 + 1;\n          if (uVar9 == 0x10) goto LAB_00041fe9;\n        }\n        printf("  ",uVar8);\n        if ((uVar9 & 3) != 3) goto LAB_00041faf;\nLAB_00041fd4:\n        uVar9 = uVar9 + 1;\n        putchar(0x20);\n      } while (uVar9 != 0x10);\nLAB_00041fe9:\n      iVar6 = 0;\n      do {\n        while (pbVar1 = local_40 + iVar6, *pbVar1 - 0x20 < 0x5f) {\n          iVar6 = iVar6 + 1;\n          putchar((uint)*pbVar1);\n          if ((int)uVar7 <= iVar6) goto LAB_00042024;\n        }\n        iVar6 = iVar6 + 1;\n        putchar(0x2e);\n      } while (iVar6 < (int)uVar7);\nLAB_00042024:\n      local_40 = local_40 + uVar7;\n      putc(10,*(FILE **)puVar2);\n      local_64 = local_64 + uVar7;\n      bVar20 = local_6c < uVar7;\n      local_6c = local_6c - uVar7;\n      local_68 = (local_68 - ((int)uVar7 >> 0x1f)) - (uint)bVar20;\n    } while (local_68 != 0 || local_6c != 0);\n  }\n  free(__ptr);\n  putc(10,*(FILE **)puVar2);\n  return true;\n}\n\n" (function_definition "bool __regparm3 FUN_00041ce0(int param_1,int param_2,int param_3)\n\n{\n  byte *pbVar1;\n  undefined *puVar2;\n  byte *__ptr;\n  undefined4 uVar3;\n  char *pcVar4;\n  undefined4 uVar5;\n  int iVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  byte *pbVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  byte *pbVar19;\n  bool bVar20;\n  bool bVar21;\n  byte bVar22;\n  uint local_6c;\n  int local_68;\n  uint local_64;\n  byte *local_40;\n  uint local_3c;\n  int local_38;\n  int local_30;\n  int local_2c;\n  int local_28;\n  undefined4 uStack_14;\n  \n  bVar22 = 0;\n  uStack_14 = 0x41ceb;\n  __ptr = (byte *)FUN_00032770();\n  if (__ptr == (byte *)0x0) {\n    if (*(int *)(param_1 + 0x24) == 0 && *(int *)(param_1 + 0x20) == 0) {\n      return true;\n    }\n    return *(int *)(param_1 + 4) == 8;\n  }\n  local_6c = *(uint *)(param_1 + 0x20);\n  local_68 = *(int *)(param_1 + 0x24);\n  uVar3 = FUN_00022190();\n  pcVar4 = (char *)dcgettext(0,"\nHex dump of section \'%s\':\n",5);\n  printf(pcVar4,uVar3);\n  pbVar1 = __ptr;\n  if (DAT_000b6320 == 0) goto LAB_00041e89;\n  local_3c = local_6c;\n  local_38 = local_68;\n  if ((*(uint *)(param_1 + 8) & 0x800) == 0) {\n    uVar7 = (uint)(0xc < local_6c);\n    uVar8 = -local_68;\n    bVar20 = local_68 != 0 || uVar8 < uVar7;\n    bVar21 = uVar8 == uVar7;\n    if (local_68 == 0 && uVar8 >= uVar7) goto LAB_00041e89;\n    iVar6 = 5;\n    pbVar10 = __ptr;\n    pbVar19 = &DAT_0007d064;\n    do {\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      bVar20 = *pbVar10 < *pbVar19;\n      bVar21 = *pbVar10 == *pbVar19;\n      pbVar10 = pbVar10 + (uint)bVar22 * -2 + 1;\n      pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n    } while (bVar21);\n    if ((!bVar20 && !bVar21) != bVar20) goto LAB_00041e89;\n    uVar11 = (uint)CONCAT11(__ptr[4],__ptr[5]) * 0x100;\n    uVar12 = __ptr[6] + uVar11;\n    uVar13 = uVar12 * 0x100;\n    uVar14 = __ptr[7] + uVar13;\n    uVar15 = uVar14 * 0x100;\n    uVar7 = uVar15 + __ptr[8];\n    uVar16 = uVar7 * 0x100;\n    uVar8 = __ptr[9] + uVar16;\n    uVar17 = uVar8 * 0x100;\n    uVar9 = __ptr[10] + uVar17;\n    uVar18 = uVar9 * 0x100;\n    local_2c = __ptr[0xb] + uVar18;\n    local_28 = (((((((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +\n                  (uint)CARRY4((uint)__ptr[9],uVar16)) * 0x100 | uVar8 >> 0x18) +\n                (uint)CARRY4((uint)__ptr[10],uVar17)) * 0x100 | uVar9 >> 0x18) +\n               (uint)CARRY4((uint)__ptr[0xb],uVar18);\n    local_40 = __ptr + 0xc;\n    local_3c = local_6c - 0xc;\n    local_38 = local_68 + -1 + (uint)(0xb < local_6c);\n  }\n  else {\n    uVar7 = FUN_0001be30(local_6c,local_68);\n    if (local_30 != 1) {\n      uVar3 = FUN_00022190();\n      uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(uVar5,uVar3,local_30);\n      return false;\n    }\n    local_40 = __ptr + uVar7;\n    bVar20 = local_3c < uVar7;\n    local_3c = local_3c - uVar7;\n    local_38 = local_38 - (uint)bVar20;\n  }\n  if (local_28 != 0 || local_2c != 0) {\n    iVar6 = FUN_0001d690(&local_3c);\n    if (iVar6 == 0) {\n      uVar3 = FUN_00022190();\n      uVar5 = dcgettext(0,"Unable to decompress section %s\n",5);\n      error(uVar5,uVar3);\n      return false;\n    }\n    local_6c = local_3c;\n    local_68 = local_38;\n    pbVar1 = local_40;\n  }\nLAB_00041e89:\n  local_40 = pbVar1;\n  if (param_3 == 0) {\n    uVar7 = *(uint *)(param_2 + 0x54);\n    uVar8 = *(uint *)(param_2 + 0x5c);\n    for (uVar9 = uVar8; uVar9 < uVar8 + uVar7 * 0x48; uVar9 = uVar9 + 0x48) {\n      if ((((*(int *)(uVar9 + 4) == 4) || (*(int *)(uVar9 + 4) == 9)) &&\n          (*(uint *)(uVar9 + 0x2c) < uVar7)) &&\n         (((param_1 == uVar8 + *(uint *)(uVar9 + 0x2c) * 0x48 &&\n           (*(int *)(uVar9 + 0x24) != 0 || *(int *)(uVar9 + 0x20) != 0)) &&\n          (*(uint *)(uVar9 + 0x28) < uVar7)))) {\n        pcVar4 = (char *)dcgettext(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5);\n        printf(pcVar4);\n        break;\n      }\n    }\n  }\n  else {\n    iVar6 = FUN_0003fb10(local_6c,local_68,0,0);\n    if (iVar6 == 0) {\n      return false;\n    }\n  }\n  puVar2 = PTR_stdout_000b3fd8;\n  local_64 = *(uint *)(param_1 + 0x10);\n  if (local_68 != 0 || local_6c != 0) {\n    do {\n      uVar7 = 0x10;\n      if (local_68 == 0 && (uint)(0x10 < local_6c) <= (uint)-local_68) {\n        uVar7 = local_6c;\n      }\n      uVar9 = 0;\n      uVar8 = local_64;\n      printf("  0x%8.8lx ",local_64);\n      do {\n        while ((int)uVar9 < (int)uVar7) {\n          uVar8 = (uint)local_40[uVar9];\n          printf("%2.2x",uVar8);\n          if ((uVar9 & 3) == 3) goto LAB_00041fd4;\nLAB_00041faf:\n          uVar9 = uVar9 + 1;\n          if (uVar9 == 0x10) goto LAB_00041fe9;\n        }\n        printf("  ",uVar8);\n        if ((uVar9 & 3) != 3) goto LAB_00041faf;\nLAB_00041fd4:\n        uVar9 = uVar9 + 1;\n        putchar(0x20);\n      } while (uVar9 != 0x10);\nLAB_00041fe9:\n      iVar6 = 0;\n      do {\n        while (pbVar1 = local_40 + iVar6, *pbVar1 - 0x20 < 0x5f) {\n          iVar6 = iVar6 + 1;\n          putchar((uint)*pbVar1);\n          if ((int)uVar7 <= iVar6) goto LAB_00042024;\n        }\n        iVar6 = iVar6 + 1;\n        putchar(0x2e);\n      } while (iVar6 < (int)uVar7);\nLAB_00042024:\n      local_40 = local_40 + uVar7;\n      putc(10,*(FILE **)puVar2);\n      local_64 = local_64 + uVar7;\n      bVar20 = local_6c < uVar7;\n      local_6c = local_6c - uVar7;\n      local_68 = (local_68 - ((int)uVar7 >> 0x1f)) - (uint)bVar20;\n    } while (local_68 != 0 || local_6c != 0);\n  }\n  free(__ptr);\n  putc(10,*(FILE **)puVar2);\n  return true;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00041ce0(int param_1,int param_2,int param_3)" identifier (parameter_list "(int param_1,int param_2,int param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  byte *pbVar1;\n  undefined *puVar2;\n  byte *__ptr;\n  undefined4 uVar3;\n  char *pcVar4;\n  undefined4 uVar5;\n  int iVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  byte *pbVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  byte *pbVar19;\n  bool bVar20;\n  bool bVar21;\n  byte bVar22;\n  uint local_6c;\n  int local_68;\n  uint local_64;\n  byte *local_40;\n  uint local_3c;\n  int local_38;\n  int local_30;\n  int local_2c;\n  int local_28;\n  undefined4 uStack_14;\n  \n  bVar22 = 0;\n  uStack_14 = 0x41ceb;\n  __ptr = (byte *)FUN_00032770();\n  if (__ptr == (byte *)0x0) {\n    if (*(int *)(param_1 + 0x24) == 0 && *(int *)(param_1 + 0x20) == 0) {\n      return true;\n    }\n    return *(int *)(param_1 + 4) == 8;\n  }\n  local_6c = *(uint *)(param_1 + 0x20);\n  local_68 = *(int *)(param_1 + 0x24);\n  uVar3 = FUN_00022190();\n  pcVar4 = (char *)dcgettext(0,"\nHex dump of section \'%s\':\n",5);\n  printf(pcVar4,uVar3);\n  pbVar1 = __ptr;\n  if (DAT_000b6320 == 0) goto LAB_00041e89;\n  local_3c = local_6c;\n  local_38 = local_68;\n  if ((*(uint *)(param_1 + 8) & 0x800) == 0) {\n    uVar7 = (uint)(0xc < local_6c);\n    uVar8 = -local_68;\n    bVar20 = local_68 != 0 || uVar8 < uVar7;\n    bVar21 = uVar8 == uVar7;\n    if (local_68 == 0 && uVar8 >= uVar7) goto LAB_00041e89;\n    iVar6 = 5;\n    pbVar10 = __ptr;\n    pbVar19 = &DAT_0007d064;\n    do {\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      bVar20 = *pbVar10 < *pbVar19;\n      bVar21 = *pbVar10 == *pbVar19;\n      pbVar10 = pbVar10 + (uint)bVar22 * -2 + 1;\n      pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n    } while (bVar21);\n    if ((!bVar20 && !bVar21) != bVar20) goto LAB_00041e89;\n    uVar11 = (uint)CONCAT11(__ptr[4],__ptr[5]) * 0x100;\n    uVar12 = __ptr[6] + uVar11;\n    uVar13 = uVar12 * 0x100;\n    uVar14 = __ptr[7] + uVar13;\n    uVar15 = uVar14 * 0x100;\n    uVar7 = uVar15 + __ptr[8];\n    uVar16 = uVar7 * 0x100;\n    uVar8 = __ptr[9] + uVar16;\n    uVar17 = uVar8 * 0x100;\n    uVar9 = __ptr[10] + uVar17;\n    uVar18 = uVar9 * 0x100;\n    local_2c = __ptr[0xb] + uVar18;\n    local_28 = (((((((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +\n                  (uint)CARRY4((uint)__ptr[9],uVar16)) * 0x100 | uVar8 >> 0x18) +\n                (uint)CARRY4((uint)__ptr[10],uVar17)) * 0x100 | uVar9 >> 0x18) +\n               (uint)CARRY4((uint)__ptr[0xb],uVar18);\n    local_40 = __ptr + 0xc;\n    local_3c = local_6c - 0xc;\n    local_38 = local_68 + -1 + (uint)(0xb < local_6c);\n  }\n  else {\n    uVar7 = FUN_0001be30(local_6c,local_68);\n    if (local_30 != 1) {\n      uVar3 = FUN_00022190();\n      uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(uVar5,uVar3,local_30);\n      return false;\n    }\n    local_40 = __ptr + uVar7;\n    bVar20 = local_3c < uVar7;\n    local_3c = local_3c - uVar7;\n    local_38 = local_38 - (uint)bVar20;\n  }\n  if (local_28 != 0 || local_2c != 0) {\n    iVar6 = FUN_0001d690(&local_3c);\n    if (iVar6 == 0) {\n      uVar3 = FUN_00022190();\n      uVar5 = dcgettext(0,"Unable to decompress section %s\n",5);\n      error(uVar5,uVar3);\n      return false;\n    }\n    local_6c = local_3c;\n    local_68 = local_38;\n    pbVar1 = local_40;\n  }\nLAB_00041e89:\n  local_40 = pbVar1;\n  if (param_3 == 0) {\n    uVar7 = *(uint *)(param_2 + 0x54);\n    uVar8 = *(uint *)(param_2 + 0x5c);\n    for (uVar9 = uVar8; uVar9 < uVar8 + uVar7 * 0x48; uVar9 = uVar9 + 0x48) {\n      if ((((*(int *)(uVar9 + 4) == 4) || (*(int *)(uVar9 + 4) == 9)) &&\n          (*(uint *)(uVar9 + 0x2c) < uVar7)) &&\n         (((param_1 == uVar8 + *(uint *)(uVar9 + 0x2c) * 0x48 &&\n           (*(int *)(uVar9 + 0x24) != 0 || *(int *)(uVar9 + 0x20) != 0)) &&\n          (*(uint *)(uVar9 + 0x28) < uVar7)))) {\n        pcVar4 = (char *)dcgettext(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5);\n        printf(pcVar4);\n        break;\n      }\n    }\n  }\n  else {\n    iVar6 = FUN_0003fb10(local_6c,local_68,0,0);\n    if (iVar6 == 0) {\n      return false;\n    }\n  }\n  puVar2 = PTR_stdout_000b3fd8;\n  local_64 = *(uint *)(param_1 + 0x10);\n  if (local_68 != 0 || local_6c != 0) {\n    do {\n      uVar7 = 0x10;\n      if (local_68 == 0 && (uint)(0x10 < local_6c) <= (uint)-local_68) {\n        uVar7 = local_6c;\n      }\n      uVar9 = 0;\n      uVar8 = local_64;\n      printf("  0x%8.8lx ",local_64);\n      do {\n        while ((int)uVar9 < (int)uVar7) {\n          uVar8 = (uint)local_40[uVar9];\n          printf("%2.2x",uVar8);\n          if ((uVar9 & 3) == 3) goto LAB_00041fd4;\nLAB_00041faf:\n          uVar9 = uVar9 + 1;\n          if (uVar9 == 0x10) goto LAB_00041fe9;\n        }\n        printf("  ",uVar8);\n        if ((uVar9 & 3) != 3) goto LAB_00041faf;\nLAB_00041fd4:\n        uVar9 = uVar9 + 1;\n        putchar(0x20);\n      } while (uVar9 != 0x10);\nLAB_00041fe9:\n      iVar6 = 0;\n      do {\n        while (pbVar1 = local_40 + iVar6, *pbVar1 - 0x20 < 0x5f) {\n          iVar6 = iVar6 + 1;\n          putchar((uint)*pbVar1);\n          if ((int)uVar7 <= iVar6) goto LAB_00042024;\n        }\n        iVar6 = iVar6 + 1;\n        putchar(0x2e);\n      } while (iVar6 < (int)uVar7);\nLAB_00042024:\n      local_40 = local_40 + uVar7;\n      putc(10,*(FILE **)puVar2);\n      local_64 = local_64 + uVar7;\n      bVar20 = local_6c < uVar7;\n      local_6c = local_6c - uVar7;\n      local_68 = (local_68 - ((int)uVar7 >> 0x1f)) - (uint)bVar20;\n    } while (local_68 != 0 || local_6c != 0);\n  }\n  free(__ptr);\n  putc(10,*(FILE **)puVar2);\n  return true;\n}" { (declaration "byte *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "byte *__ptr;" type_identifier (pointer_declarator "*__ptr" * identifier) ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "byte *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * identifier) ;) (declaration "bool bVar20;" primitive_type identifier ;) (declaration "bool bVar21;" primitive_type identifier ;) (declaration "byte bVar22;" type_identifier identifier ;) (declaration "uint local_6c;" type_identifier identifier ;) (declaration "int local_68;" primitive_type identifier ;) (declaration "uint local_64;" type_identifier identifier ;) (declaration "byte *local_40;" type_identifier (pointer_declarator "*local_40" * identifier) ;) (declaration "uint local_3c;" type_identifier identifier ;) (declaration "int local_38;" primitive_type identifier ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (declaration "int local_28;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar22 = 0;" (assignment_expression "bVar22 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x41ceb;" (assignment_expression "uStack_14 = 0x41ceb" identifier = number_literal) ;) (expression_statement "__ptr = (byte *)FUN_00032770();" (assignment_expression "__ptr = (byte *)FUN_00032770()" identifier = (cast_expression "(byte *)FUN_00032770()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00032770()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (__ptr == (byte *)0x0) {\n    if (*(int *)(param_1 + 0x24) == 0 && *(int *)(param_1 + 0x20) == 0) {\n      return true;\n    }\n    return *(int *)(param_1 + 4) == 8;\n  }" if (parenthesized_expression "(__ptr == (byte *)0x0)" ( (binary_expression "__ptr == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (*(int *)(param_1 + 0x24) == 0 && *(int *)(param_1 + 0x20) == 0) {\n      return true;\n    }\n    return *(int *)(param_1 + 4) == 8;\n  }" { (if_statement "if (*(int *)(param_1 + 0x24) == 0 && *(int *)(param_1 + 0x20) == 0) {\n      return true;\n    }" if (parenthesized_expression "(*(int *)(param_1 + 0x24) == 0 && *(int *)(param_1 + 0x20) == 0)" ( (binary_expression "*(int *)(param_1 + 0x24) == 0 && *(int *)(param_1 + 0x20) == 0" (binary_expression "*(int *)(param_1 + 0x24) == 0" (pointer_expression "*(int *)(param_1 + 0x24)" * (cast_expression "(int *)(param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) == number_literal) && (binary_expression "*(int *)(param_1 + 0x20) == 0" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) == number_literal)) )) (compound_statement "{\n      return true;\n    }" { (return_statement "return true;" return true ;) })) (return_statement "return *(int *)(param_1 + 4) == 8;" return (binary_expression "*(int *)(param_1 + 4) == 8" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) == number_literal) ;) })) (expression_statement "local_6c = *(uint *)(param_1 + 0x20);" (assignment_expression "local_6c = *(uint *)(param_1 + 0x20)" identifier = (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) ))))) ;) (expression_statement "local_68 = *(int *)(param_1 + 0x24);" (assignment_expression "local_68 = *(int *)(param_1 + 0x24)" identifier = (pointer_expression "*(int *)(param_1 + 0x24)" * (cast_expression "(int *)(param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = FUN_00022190();" (assignment_expression "uVar3 = FUN_00022190()" identifier = (call_expression "FUN_00022190()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar4 = (char *)dcgettext(0,"\nHex dump of section \'%s\':\n",5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,"\nHex dump of section \'%s\':\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"\nHex dump of section \'%s\':\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"\nHex dump of section \'%s\':\n",5)" identifier (argument_list "(0,"\nHex dump of section \'%s\':\n",5)" ( number_literal , (string_literal ""\nHex dump of section \'%s\':\n"" " escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar4,uVar3);" (call_expression "printf(pcVar4,uVar3)" identifier (argument_list "(pcVar4,uVar3)" ( identifier , identifier ))) ;) (expression_statement "pbVar1 = __ptr;" (assignment_expression "pbVar1 = __ptr" identifier = identifier) ;) (if_statement "if (DAT_000b6320 == 0) goto LAB_00041e89;" if (parenthesized_expression "(DAT_000b6320 == 0)" ( (binary_expression "DAT_000b6320 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00041e89;" goto statement_identifier ;)) (expression_statement "local_3c = local_6c;" (assignment_expression "local_3c = local_6c" identifier = identifier) ;) (expression_statement "local_38 = local_68;" (assignment_expression "local_38 = local_68" identifier = identifier) ;) (if_statement "if ((*(uint *)(param_1 + 8) & 0x800) == 0) {\n    uVar7 = (uint)(0xc < local_6c);\n    uVar8 = -local_68;\n    bVar20 = local_68 != 0 || uVar8 < uVar7;\n    bVar21 = uVar8 == uVar7;\n    if (local_68 == 0 && uVar8 >= uVar7) goto LAB_00041e89;\n    iVar6 = 5;\n    pbVar10 = __ptr;\n    pbVar19 = &DAT_0007d064;\n    do {\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      bVar20 = *pbVar10 < *pbVar19;\n      bVar21 = *pbVar10 == *pbVar19;\n      pbVar10 = pbVar10 + (uint)bVar22 * -2 + 1;\n      pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n    } while (bVar21);\n    if ((!bVar20 && !bVar21) != bVar20) goto LAB_00041e89;\n    uVar11 = (uint)CONCAT11(__ptr[4],__ptr[5]) * 0x100;\n    uVar12 = __ptr[6] + uVar11;\n    uVar13 = uVar12 * 0x100;\n    uVar14 = __ptr[7] + uVar13;\n    uVar15 = uVar14 * 0x100;\n    uVar7 = uVar15 + __ptr[8];\n    uVar16 = uVar7 * 0x100;\n    uVar8 = __ptr[9] + uVar16;\n    uVar17 = uVar8 * 0x100;\n    uVar9 = __ptr[10] + uVar17;\n    uVar18 = uVar9 * 0x100;\n    local_2c = __ptr[0xb] + uVar18;\n    local_28 = (((((((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +\n                  (uint)CARRY4((uint)__ptr[9],uVar16)) * 0x100 | uVar8 >> 0x18) +\n                (uint)CARRY4((uint)__ptr[10],uVar17)) * 0x100 | uVar9 >> 0x18) +\n               (uint)CARRY4((uint)__ptr[0xb],uVar18);\n    local_40 = __ptr + 0xc;\n    local_3c = local_6c - 0xc;\n    local_38 = local_68 + -1 + (uint)(0xb < local_6c);\n  }\n  else {\n    uVar7 = FUN_0001be30(local_6c,local_68);\n    if (local_30 != 1) {\n      uVar3 = FUN_00022190();\n      uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(uVar5,uVar3,local_30);\n      return false;\n    }\n    local_40 = __ptr + uVar7;\n    bVar20 = local_3c < uVar7;\n    local_3c = local_3c - uVar7;\n    local_38 = local_38 - (uint)bVar20;\n  }" if (parenthesized_expression "((*(uint *)(param_1 + 8) & 0x800) == 0)" ( (binary_expression "(*(uint *)(param_1 + 8) & 0x800) == 0" (parenthesized_expression "(*(uint *)(param_1 + 8) & 0x800)" ( (binary_expression "*(uint *)(param_1 + 8) & 0x800" (pointer_expression "*(uint *)(param_1 + 8)" * (cast_expression "(uint *)(param_1 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    uVar7 = (uint)(0xc < local_6c);\n    uVar8 = -local_68;\n    bVar20 = local_68 != 0 || uVar8 < uVar7;\n    bVar21 = uVar8 == uVar7;\n    if (local_68 == 0 && uVar8 >= uVar7) goto LAB_00041e89;\n    iVar6 = 5;\n    pbVar10 = __ptr;\n    pbVar19 = &DAT_0007d064;\n    do {\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      bVar20 = *pbVar10 < *pbVar19;\n      bVar21 = *pbVar10 == *pbVar19;\n      pbVar10 = pbVar10 + (uint)bVar22 * -2 + 1;\n      pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n    } while (bVar21);\n    if ((!bVar20 && !bVar21) != bVar20) goto LAB_00041e89;\n    uVar11 = (uint)CONCAT11(__ptr[4],__ptr[5]) * 0x100;\n    uVar12 = __ptr[6] + uVar11;\n    uVar13 = uVar12 * 0x100;\n    uVar14 = __ptr[7] + uVar13;\n    uVar15 = uVar14 * 0x100;\n    uVar7 = uVar15 + __ptr[8];\n    uVar16 = uVar7 * 0x100;\n    uVar8 = __ptr[9] + uVar16;\n    uVar17 = uVar8 * 0x100;\n    uVar9 = __ptr[10] + uVar17;\n    uVar18 = uVar9 * 0x100;\n    local_2c = __ptr[0xb] + uVar18;\n    local_28 = (((((((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +\n                  (uint)CARRY4((uint)__ptr[9],uVar16)) * 0x100 | uVar8 >> 0x18) +\n                (uint)CARRY4((uint)__ptr[10],uVar17)) * 0x100 | uVar9 >> 0x18) +\n               (uint)CARRY4((uint)__ptr[0xb],uVar18);\n    local_40 = __ptr + 0xc;\n    local_3c = local_6c - 0xc;\n    local_38 = local_68 + -1 + (uint)(0xb < local_6c);\n  }" { (expression_statement "uVar7 = (uint)(0xc < local_6c);" (assignment_expression "uVar7 = (uint)(0xc < local_6c)" identifier = (call_expression "(uint)(0xc < local_6c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xc < local_6c)" ( (binary_expression "0xc < local_6c" number_literal < identifier) )))) ;) (expression_statement "uVar8 = -local_68;" (assignment_expression "uVar8 = -local_68" identifier = (unary_expression "-local_68" - identifier)) ;) (expression_statement "bVar20 = local_68 != 0 || uVar8 < uVar7;" (assignment_expression "bVar20 = local_68 != 0 || uVar8 < uVar7" identifier = (binary_expression "local_68 != 0 || uVar8 < uVar7" (binary_expression "local_68 != 0" identifier != number_literal) || (binary_expression "uVar8 < uVar7" identifier < identifier))) ;) (expression_statement "bVar21 = uVar8 == uVar7;" (assignment_expression "bVar21 = uVar8 == uVar7" identifier = (binary_expression "uVar8 == uVar7" identifier == identifier)) ;) (if_statement "if (local_68 == 0 && uVar8 >= uVar7) goto LAB_00041e89;" if (parenthesized_expression "(local_68 == 0 && uVar8 >= uVar7)" ( (binary_expression "local_68 == 0 && uVar8 >= uVar7" (binary_expression "local_68 == 0" identifier == number_literal) && (binary_expression "uVar8 >= uVar7" identifier >= identifier)) )) (goto_statement "goto LAB_00041e89;" goto statement_identifier ;)) (expression_statement "iVar6 = 5;" (assignment_expression "iVar6 = 5" identifier = number_literal) ;) (expression_statement "pbVar10 = __ptr;" (assignment_expression "pbVar10 = __ptr" identifier = identifier) ;) (expression_statement "pbVar19 = &DAT_0007d064;" (assignment_expression "pbVar19 = &DAT_0007d064" identifier = (pointer_expression "&DAT_0007d064" & identifier)) ;) (do_statement "do {\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      bVar20 = *pbVar10 < *pbVar19;\n      bVar21 = *pbVar10 == *pbVar19;\n      pbVar10 = pbVar10 + (uint)bVar22 * -2 + 1;\n      pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n    } while (bVar21);" do (compound_statement "{\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      bVar20 = *pbVar10 < *pbVar19;\n      bVar21 = *pbVar10 == *pbVar19;\n      pbVar10 = pbVar10 + (uint)bVar22 * -2 + 1;\n      pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n    }" { (if_statement "if (iVar6 == 0) break;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) (expression_statement "bVar20 = *pbVar10 < *pbVar19;" (assignment_expression "bVar20 = *pbVar10 < *pbVar19" identifier = (binary_expression "*pbVar10 < *pbVar19" (pointer_expression "*pbVar10" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar21 = *pbVar10 == *pbVar19;" (assignment_expression "bVar21 = *pbVar10 == *pbVar19" identifier = (binary_expression "*pbVar10 == *pbVar19" (pointer_expression "*pbVar10" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar10 = pbVar10 + (uint)bVar22 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (uint)bVar22 * -2 + 1" identifier = (binary_expression "pbVar10 + (uint)bVar22 * -2 + 1" (binary_expression "pbVar10 + (uint)bVar22 * -2" identifier + (binary_expression "(uint)bVar22 * -2" (cast_expression "(uint)bVar22" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar22 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar22 * -2" identifier + (binary_expression "(uint)bVar22 * -2" (cast_expression "(uint)bVar22" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar21)" ( identifier )) ;) (if_statement "if ((!bVar20 && !bVar21) != bVar20) goto LAB_00041e89;" if (parenthesized_expression "((!bVar20 && !bVar21) != bVar20)" ( (binary_expression "(!bVar20 && !bVar21) != bVar20" (parenthesized_expression "(!bVar20 && !bVar21)" ( (binary_expression "!bVar20 && !bVar21" (unary_expression "!bVar20" ! identifier) && (unary_expression "!bVar21" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_00041e89;" goto statement_identifier ;)) (expression_statement "uVar11 = (uint)CONCAT11(__ptr[4],__ptr[5]) * 0x100;" (assignment_expression "uVar11 = (uint)CONCAT11(__ptr[4],__ptr[5]) * 0x100" identifier = (binary_expression "(uint)CONCAT11(__ptr[4],__ptr[5]) * 0x100" (cast_expression "(uint)CONCAT11(__ptr[4],__ptr[5])" ( (type_descriptor "uint" type_identifier) ) (call_expression "CONCAT11(__ptr[4],__ptr[5])" identifier (argument_list "(__ptr[4],__ptr[5])" ( (subscript_expression "__ptr[4]" identifier [ number_literal ]) , (subscript_expression "__ptr[5]" identifier [ number_literal ]) )))) * number_literal)) ;) (expression_statement "uVar12 = __ptr[6] + uVar11;" (assignment_expression "uVar12 = __ptr[6] + uVar11" identifier = (binary_expression "__ptr[6] + uVar11" (subscript_expression "__ptr[6]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "uVar13 = uVar12 * 0x100;" (assignment_expression "uVar13 = uVar12 * 0x100" identifier = (binary_expression "uVar12 * 0x100" identifier * number_literal)) ;) (expression_statement "uVar14 = __ptr[7] + uVar13;" (assignment_expression "uVar14 = __ptr[7] + uVar13" identifier = (binary_expression "__ptr[7] + uVar13" (subscript_expression "__ptr[7]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "uVar15 = uVar14 * 0x100;" (assignment_expression "uVar15 = uVar14 * 0x100" identifier = (binary_expression "uVar14 * 0x100" identifier * number_literal)) ;) (expression_statement "uVar7 = uVar15 + __ptr[8];" (assignment_expression "uVar7 = uVar15 + __ptr[8]" identifier = (binary_expression "uVar15 + __ptr[8]" identifier + (subscript_expression "__ptr[8]" identifier [ number_literal ]))) ;) (expression_statement "uVar16 = uVar7 * 0x100;" (assignment_expression "uVar16 = uVar7 * 0x100" identifier = (binary_expression "uVar7 * 0x100" identifier * number_literal)) ;) (expression_statement "uVar8 = __ptr[9] + uVar16;" (assignment_expression "uVar8 = __ptr[9] + uVar16" identifier = (binary_expression "__ptr[9] + uVar16" (subscript_expression "__ptr[9]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "uVar17 = uVar8 * 0x100;" (assignment_expression "uVar17 = uVar8 * 0x100" identifier = (binary_expression "uVar8 * 0x100" identifier * number_literal)) ;) (expression_statement "uVar9 = __ptr[10] + uVar17;" (assignment_expression "uVar9 = __ptr[10] + uVar17" identifier = (binary_expression "__ptr[10] + uVar17" (subscript_expression "__ptr[10]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "uVar18 = uVar9 * 0x100;" (assignment_expression "uVar18 = uVar9 * 0x100" identifier = (binary_expression "uVar9 * 0x100" identifier * number_literal)) ;) (expression_statement "local_2c = __ptr[0xb] + uVar18;" (assignment_expression "local_2c = __ptr[0xb] + uVar18" identifier = (binary_expression "__ptr[0xb] + uVar18" (subscript_expression "__ptr[0xb]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "local_28 = (((((((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +\n                  (uint)CARRY4((uint)__ptr[9],uVar16)) * 0x100 | uVar8 >> 0x18) +\n                (uint)CARRY4((uint)__ptr[10],uVar17)) * 0x100 | uVar9 >> 0x18) +\n               (uint)CARRY4((uint)__ptr[0xb],uVar18);" (assignment_expression "local_28 = (((((((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +\n                  (uint)CARRY4((uint)__ptr[9],uVar16)) * 0x100 | uVar8 >> 0x18) +\n                (uint)CARRY4((uint)__ptr[10],uVar17)) * 0x100 | uVar9 >> 0x18) +\n               (uint)CARRY4((uint)__ptr[0xb],uVar18)" identifier = (binary_expression "(((((((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +\n                  (uint)CARRY4((uint)__ptr[9],uVar16)) * 0x100 | uVar8 >> 0x18) +\n                (uint)CARRY4((uint)__ptr[10],uVar17)) * 0x100 | uVar9 >> 0x18) +\n               (uint)CARRY4((uint)__ptr[0xb],uVar18)" (parenthesized_expression "(((((((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +\n                  (uint)CARRY4((uint)__ptr[9],uVar16)) * 0x100 | uVar8 >> 0x18) +\n                (uint)CARRY4((uint)__ptr[10],uVar17)) * 0x100 | uVar9 >> 0x18)" ( (binary_expression "((((((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +\n                  (uint)CARRY4((uint)__ptr[9],uVar16)) * 0x100 | uVar8 >> 0x18) +\n                (uint)CARRY4((uint)__ptr[10],uVar17)) * 0x100 | uVar9 >> 0x18" (binary_expression "((((((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +\n                  (uint)CARRY4((uint)__ptr[9],uVar16)) * 0x100 | uVar8 >> 0x18) +\n                (uint)CARRY4((uint)__ptr[10],uVar17)) * 0x100" (parenthesized_expression "((((((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +\n                  (uint)CARRY4((uint)__ptr[9],uVar16)) * 0x100 | uVar8 >> 0x18) +\n                (uint)CARRY4((uint)__ptr[10],uVar17))" ( (binary_expression "(((((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +\n                  (uint)CARRY4((uint)__ptr[9],uVar16)) * 0x100 | uVar8 >> 0x18) +\n                (uint)CARRY4((uint)__ptr[10],uVar17)" (parenthesized_expression "(((((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +\n                  (uint)CARRY4((uint)__ptr[9],uVar16)) * 0x100 | uVar8 >> 0x18)" ( (binary_expression "((((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +\n                  (uint)CARRY4((uint)__ptr[9],uVar16)) * 0x100 | uVar8 >> 0x18" (binary_expression "((((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +\n                  (uint)CARRY4((uint)__ptr[9],uVar16)) * 0x100" (parenthesized_expression "((((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +\n                  (uint)CARRY4((uint)__ptr[9],uVar16))" ( (binary_expression "(((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +\n                  (uint)CARRY4((uint)__ptr[9],uVar16)" (parenthesized_expression "(((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18)" ( (binary_expression "((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18" (binary_expression "((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100" (parenthesized_expression "((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8]))" ( (binary_expression "(((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])" (parenthesized_expression "(((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18)" ( (binary_expression "((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18" (binary_expression "((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100" (parenthesized_expression "((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13))" ( (binary_expression "(((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)" (parenthesized_expression "(((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18)" ( (binary_expression "((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18" (binary_expression "((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100" (parenthesized_expression "((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11))" ( (binary_expression "(uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)" (binary_expression "(uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100" (cast_expression "(uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8)" identifier (argument_list "((uint)__ptr[5],(uint)__ptr[4] << 8)" ( (cast_expression "(uint)__ptr[5]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "__ptr[5]" identifier [ number_literal ])) , (binary_expression "(uint)__ptr[4] << 8" (cast_expression "(uint)__ptr[4]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "__ptr[4]" identifier [ number_literal ])) << number_literal) )))) * number_literal) + (cast_expression "(uint)CARRY4((uint)__ptr[6],uVar11)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)__ptr[6],uVar11)" identifier (argument_list "((uint)__ptr[6],uVar11)" ( (cast_expression "(uint)__ptr[6]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "__ptr[6]" identifier [ number_literal ])) , identifier ))))) )) * number_literal) | (binary_expression "uVar12 >> 0x18" identifier >> number_literal)) )) + (cast_expression "(uint)CARRY4((uint)__ptr[7],uVar13)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)__ptr[7],uVar13)" identifier (argument_list "((uint)__ptr[7],uVar13)" ( (cast_expression "(uint)__ptr[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "__ptr[7]" identifier [ number_literal ])) , identifier ))))) )) * number_literal) | (binary_expression "uVar14 >> 0x18" identifier >> number_literal)) )) + (cast_expression "(uint)CARRY4(uVar15,(uint)__ptr[8])" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar15,(uint)__ptr[8])" identifier (argument_list "(uVar15,(uint)__ptr[8])" ( identifier , (cast_expression "(uint)__ptr[8]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "__ptr[8]" identifier [ number_literal ])) ))))) )) * number_literal) | (binary_expression "uVar7 >> 0x18" identifier >> number_literal)) )) + (cast_expression "(uint)CARRY4((uint)__ptr[9],uVar16)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)__ptr[9],uVar16)" identifier (argument_list "((uint)__ptr[9],uVar16)" ( (cast_expression "(uint)__ptr[9]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "__ptr[9]" identifier [ number_literal ])) , identifier ))))) )) * number_literal) | (binary_expression "uVar8 >> 0x18" identifier >> number_literal)) )) + (cast_expression "(uint)CARRY4((uint)__ptr[10],uVar17)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)__ptr[10],uVar17)" identifier (argument_list "((uint)__ptr[10],uVar17)" ( (cast_expression "(uint)__ptr[10]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "__ptr[10]" identifier [ number_literal ])) , identifier ))))) )) * number_literal) | (binary_expression "uVar9 >> 0x18" identifier >> number_literal)) )) + (cast_expression "(uint)CARRY4((uint)__ptr[0xb],uVar18)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)__ptr[0xb],uVar18)" identifier (argument_list "((uint)__ptr[0xb],uVar18)" ( (cast_expression "(uint)__ptr[0xb]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "__ptr[0xb]" identifier [ number_literal ])) , identifier )))))) ;) (expression_statement "local_40 = __ptr + 0xc;" (assignment_expression "local_40 = __ptr + 0xc" identifier = (binary_expression "__ptr + 0xc" identifier + number_literal)) ;) (expression_statement "local_3c = local_6c - 0xc;" (assignment_expression "local_3c = local_6c - 0xc" identifier = (binary_expression "local_6c - 0xc" identifier - number_literal)) ;) (expression_statement "local_38 = local_68 + -1 + (uint)(0xb < local_6c);" (assignment_expression "local_38 = local_68 + -1 + (uint)(0xb < local_6c)" identifier = (binary_expression "local_68 + -1 + (uint)(0xb < local_6c)" (binary_expression "local_68 + -1" identifier + number_literal) + (call_expression "(uint)(0xb < local_6c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xb < local_6c)" ( (binary_expression "0xb < local_6c" number_literal < identifier) ))))) ;) }) (else_clause "else {\n    uVar7 = FUN_0001be30(local_6c,local_68);\n    if (local_30 != 1) {\n      uVar3 = FUN_00022190();\n      uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(uVar5,uVar3,local_30);\n      return false;\n    }\n    local_40 = __ptr + uVar7;\n    bVar20 = local_3c < uVar7;\n    local_3c = local_3c - uVar7;\n    local_38 = local_38 - (uint)bVar20;\n  }" else (compound_statement "{\n    uVar7 = FUN_0001be30(local_6c,local_68);\n    if (local_30 != 1) {\n      uVar3 = FUN_00022190();\n      uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(uVar5,uVar3,local_30);\n      return false;\n    }\n    local_40 = __ptr + uVar7;\n    bVar20 = local_3c < uVar7;\n    local_3c = local_3c - uVar7;\n    local_38 = local_38 - (uint)bVar20;\n  }" { (expression_statement "uVar7 = FUN_0001be30(local_6c,local_68);" (assignment_expression "uVar7 = FUN_0001be30(local_6c,local_68)" identifier = (call_expression "FUN_0001be30(local_6c,local_68)" identifier (argument_list "(local_6c,local_68)" ( identifier , identifier )))) ;) (if_statement "if (local_30 != 1) {\n      uVar3 = FUN_00022190();\n      uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(uVar5,uVar3,local_30);\n      return false;\n    }" if (parenthesized_expression "(local_30 != 1)" ( (binary_expression "local_30 != 1" identifier != number_literal) )) (compound_statement "{\n      uVar3 = FUN_00022190();\n      uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(uVar5,uVar3,local_30);\n      return false;\n    }" { (expression_statement "uVar3 = FUN_00022190();" (assignment_expression "uVar3 = FUN_00022190()" identifier = (call_expression "FUN_00022190()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);" (assignment_expression "uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5)" identifier = (call_expression "dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5)" identifier (argument_list "(0,"section \'%s\' has unsupported compress type: %d\n",5)" ( number_literal , (string_literal ""section \'%s\' has unsupported compress type: %d\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , number_literal )))) ;) (expression_statement "warn(uVar5,uVar3,local_30);" (call_expression "warn(uVar5,uVar3,local_30)" identifier (argument_list "(uVar5,uVar3,local_30)" ( identifier , identifier , identifier ))) ;) (return_statement "return false;" return false ;) })) (expression_statement "local_40 = __ptr + uVar7;" (assignment_expression "local_40 = __ptr + uVar7" identifier = (binary_expression "__ptr + uVar7" identifier + identifier)) ;) (expression_statement "bVar20 = local_3c < uVar7;" (assignment_expression "bVar20 = local_3c < uVar7" identifier = (binary_expression "local_3c < uVar7" identifier < identifier)) ;) (expression_statement "local_3c = local_3c - uVar7;" (assignment_expression "local_3c = local_3c - uVar7" identifier = (binary_expression "local_3c - uVar7" identifier - identifier)) ;) (expression_statement "local_38 = local_38 - (uint)bVar20;" (assignment_expression "local_38 = local_38 - (uint)bVar20" identifier = (binary_expression "local_38 - (uint)bVar20" identifier - (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) }))) (if_statement "if (local_28 != 0 || local_2c != 0) {\n    iVar6 = FUN_0001d690(&local_3c);\n    if (iVar6 == 0) {\n      uVar3 = FUN_00022190();\n      uVar5 = dcgettext(0,"Unable to decompress section %s\n",5);\n      error(uVar5,uVar3);\n      return false;\n    }\n    local_6c = local_3c;\n    local_68 = local_38;\n    pbVar1 = local_40;\n  }" if (parenthesized_expression "(local_28 != 0 || local_2c != 0)" ( (binary_expression "local_28 != 0 || local_2c != 0" (binary_expression "local_28 != 0" identifier != number_literal) || (binary_expression "local_2c != 0" identifier != number_literal)) )) (compound_statement "{\n    iVar6 = FUN_0001d690(&local_3c);\n    if (iVar6 == 0) {\n      uVar3 = FUN_00022190();\n      uVar5 = dcgettext(0,"Unable to decompress section %s\n",5);\n      error(uVar5,uVar3);\n      return false;\n    }\n    local_6c = local_3c;\n    local_68 = local_38;\n    pbVar1 = local_40;\n  }" { (expression_statement "iVar6 = FUN_0001d690(&local_3c);" (assignment_expression "iVar6 = FUN_0001d690(&local_3c)" identifier = (call_expression "FUN_0001d690(&local_3c)" identifier (argument_list "(&local_3c)" ( (pointer_expression "&local_3c" & identifier) )))) ;) (if_statement "if (iVar6 == 0) {\n      uVar3 = FUN_00022190();\n      uVar5 = dcgettext(0,"Unable to decompress section %s\n",5);\n      error(uVar5,uVar3);\n      return false;\n    }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar3 = FUN_00022190();\n      uVar5 = dcgettext(0,"Unable to decompress section %s\n",5);\n      error(uVar5,uVar3);\n      return false;\n    }" { (expression_statement "uVar3 = FUN_00022190();" (assignment_expression "uVar3 = FUN_00022190()" identifier = (call_expression "FUN_00022190()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar5 = dcgettext(0,"Unable to decompress section %s\n",5);" (assignment_expression "uVar5 = dcgettext(0,"Unable to decompress section %s\n",5)" identifier = (call_expression "dcgettext(0,"Unable to decompress section %s\n",5)" identifier (argument_list "(0,"Unable to decompress section %s\n",5)" ( number_literal , (string_literal ""Unable to decompress section %s\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "error(uVar5,uVar3);" (call_expression "error(uVar5,uVar3)" identifier (argument_list "(uVar5,uVar3)" ( identifier , identifier ))) ;) (return_statement "return false;" return false ;) })) (expression_statement "local_6c = local_3c;" (assignment_expression "local_6c = local_3c" identifier = identifier) ;) (expression_statement "local_68 = local_38;" (assignment_expression "local_68 = local_38" identifier = identifier) ;) (expression_statement "pbVar1 = local_40;" (assignment_expression "pbVar1 = local_40" identifier = identifier) ;) })) (labeled_statement "LAB_00041e89:\n  local_40 = pbVar1;" statement_identifier : (expression_statement "local_40 = pbVar1;" (assignment_expression "local_40 = pbVar1" identifier = identifier) ;)) (if_statement "if (param_3 == 0) {\n    uVar7 = *(uint *)(param_2 + 0x54);\n    uVar8 = *(uint *)(param_2 + 0x5c);\n    for (uVar9 = uVar8; uVar9 < uVar8 + uVar7 * 0x48; uVar9 = uVar9 + 0x48) {\n      if ((((*(int *)(uVar9 + 4) == 4) || (*(int *)(uVar9 + 4) == 9)) &&\n          (*(uint *)(uVar9 + 0x2c) < uVar7)) &&\n         (((param_1 == uVar8 + *(uint *)(uVar9 + 0x2c) * 0x48 &&\n           (*(int *)(uVar9 + 0x24) != 0 || *(int *)(uVar9 + 0x20) != 0)) &&\n          (*(uint *)(uVar9 + 0x28) < uVar7)))) {\n        pcVar4 = (char *)dcgettext(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5);\n        printf(pcVar4);\n        break;\n      }\n    }\n  }\n  else {\n    iVar6 = FUN_0003fb10(local_6c,local_68,0,0);\n    if (iVar6 == 0) {\n      return false;\n    }\n  }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar7 = *(uint *)(param_2 + 0x54);\n    uVar8 = *(uint *)(param_2 + 0x5c);\n    for (uVar9 = uVar8; uVar9 < uVar8 + uVar7 * 0x48; uVar9 = uVar9 + 0x48) {\n      if ((((*(int *)(uVar9 + 4) == 4) || (*(int *)(uVar9 + 4) == 9)) &&\n          (*(uint *)(uVar9 + 0x2c) < uVar7)) &&\n         (((param_1 == uVar8 + *(uint *)(uVar9 + 0x2c) * 0x48 &&\n           (*(int *)(uVar9 + 0x24) != 0 || *(int *)(uVar9 + 0x20) != 0)) &&\n          (*(uint *)(uVar9 + 0x28) < uVar7)))) {\n        pcVar4 = (char *)dcgettext(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5);\n        printf(pcVar4);\n        break;\n      }\n    }\n  }" { (expression_statement "uVar7 = *(uint *)(param_2 + 0x54);" (assignment_expression "uVar7 = *(uint *)(param_2 + 0x54)" identifier = (pointer_expression "*(uint *)(param_2 + 0x54)" * (cast_expression "(uint *)(param_2 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x54)" ( (binary_expression "param_2 + 0x54" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = *(uint *)(param_2 + 0x5c);" (assignment_expression "uVar8 = *(uint *)(param_2 + 0x5c)" identifier = (pointer_expression "*(uint *)(param_2 + 0x5c)" * (cast_expression "(uint *)(param_2 + 0x5c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x5c)" ( (binary_expression "param_2 + 0x5c" identifier + number_literal) ))))) ;) (for_statement "for (uVar9 = uVar8; uVar9 < uVar8 + uVar7 * 0x48; uVar9 = uVar9 + 0x48) {\n      if ((((*(int *)(uVar9 + 4) == 4) || (*(int *)(uVar9 + 4) == 9)) &&\n          (*(uint *)(uVar9 + 0x2c) < uVar7)) &&\n         (((param_1 == uVar8 + *(uint *)(uVar9 + 0x2c) * 0x48 &&\n           (*(int *)(uVar9 + 0x24) != 0 || *(int *)(uVar9 + 0x20) != 0)) &&\n          (*(uint *)(uVar9 + 0x28) < uVar7)))) {\n        pcVar4 = (char *)dcgettext(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5);\n        printf(pcVar4);\n        break;\n      }\n    }" for ( (assignment_expression "uVar9 = uVar8" identifier = identifier) ; (binary_expression "uVar9 < uVar8 + uVar7 * 0x48" identifier < (binary_expression "uVar8 + uVar7 * 0x48" identifier + (binary_expression "uVar7 * 0x48" identifier * number_literal))) ; (assignment_expression "uVar9 = uVar9 + 0x48" identifier = (binary_expression "uVar9 + 0x48" identifier + number_literal)) ) (compound_statement "{\n      if ((((*(int *)(uVar9 + 4) == 4) || (*(int *)(uVar9 + 4) == 9)) &&\n          (*(uint *)(uVar9 + 0x2c) < uVar7)) &&\n         (((param_1 == uVar8 + *(uint *)(uVar9 + 0x2c) * 0x48 &&\n           (*(int *)(uVar9 + 0x24) != 0 || *(int *)(uVar9 + 0x20) != 0)) &&\n          (*(uint *)(uVar9 + 0x28) < uVar7)))) {\n        pcVar4 = (char *)dcgettext(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5);\n        printf(pcVar4);\n        break;\n      }\n    }" { (if_statement "if ((((*(int *)(uVar9 + 4) == 4) || (*(int *)(uVar9 + 4) == 9)) &&\n          (*(uint *)(uVar9 + 0x2c) < uVar7)) &&\n         (((param_1 == uVar8 + *(uint *)(uVar9 + 0x2c) * 0x48 &&\n           (*(int *)(uVar9 + 0x24) != 0 || *(int *)(uVar9 + 0x20) != 0)) &&\n          (*(uint *)(uVar9 + 0x28) < uVar7)))) {\n        pcVar4 = (char *)dcgettext(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5);\n        printf(pcVar4);\n        break;\n      }" if (parenthesized_expression "((((*(int *)(uVar9 + 4) == 4) || (*(int *)(uVar9 + 4) == 9)) &&\n          (*(uint *)(uVar9 + 0x2c) < uVar7)) &&\n         (((param_1 == uVar8 + *(uint *)(uVar9 + 0x2c) * 0x48 &&\n           (*(int *)(uVar9 + 0x24) != 0 || *(int *)(uVar9 + 0x20) != 0)) &&\n          (*(uint *)(uVar9 + 0x28) < uVar7))))" ( (binary_expression "(((*(int *)(uVar9 + 4) == 4) || (*(int *)(uVar9 + 4) == 9)) &&\n          (*(uint *)(uVar9 + 0x2c) < uVar7)) &&\n         (((param_1 == uVar8 + *(uint *)(uVar9 + 0x2c) * 0x48 &&\n           (*(int *)(uVar9 + 0x24) != 0 || *(int *)(uVar9 + 0x20) != 0)) &&\n          (*(uint *)(uVar9 + 0x28) < uVar7)))" (parenthesized_expression "(((*(int *)(uVar9 + 4) == 4) || (*(int *)(uVar9 + 4) == 9)) &&\n          (*(uint *)(uVar9 + 0x2c) < uVar7))" ( (binary_expression "((*(int *)(uVar9 + 4) == 4) || (*(int *)(uVar9 + 4) == 9)) &&\n          (*(uint *)(uVar9 + 0x2c) < uVar7)" (parenthesized_expression "((*(int *)(uVar9 + 4) == 4) || (*(int *)(uVar9 + 4) == 9))" ( (binary_expression "(*(int *)(uVar9 + 4) == 4) || (*(int *)(uVar9 + 4) == 9)" (parenthesized_expression "(*(int *)(uVar9 + 4) == 4)" ( (binary_expression "*(int *)(uVar9 + 4) == 4" (pointer_expression "*(int *)(uVar9 + 4)" * (cast_expression "(int *)(uVar9 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 4)" ( (binary_expression "uVar9 + 4" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(*(int *)(uVar9 + 4) == 9)" ( (binary_expression "*(int *)(uVar9 + 4) == 9" (pointer_expression "*(int *)(uVar9 + 4)" * (cast_expression "(int *)(uVar9 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 4)" ( (binary_expression "uVar9 + 4" identifier + number_literal) )))) == number_literal) ))) )) && (parenthesized_expression "(*(uint *)(uVar9 + 0x2c) < uVar7)" ( (binary_expression "*(uint *)(uVar9 + 0x2c) < uVar7" (pointer_expression "*(uint *)(uVar9 + 0x2c)" * (cast_expression "(uint *)(uVar9 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 0x2c)" ( (binary_expression "uVar9 + 0x2c" identifier + number_literal) )))) < identifier) ))) )) && (parenthesized_expression "(((param_1 == uVar8 + *(uint *)(uVar9 + 0x2c) * 0x48 &&\n           (*(int *)(uVar9 + 0x24) != 0 || *(int *)(uVar9 + 0x20) != 0)) &&\n          (*(uint *)(uVar9 + 0x28) < uVar7)))" ( (parenthesized_expression "((param_1 == uVar8 + *(uint *)(uVar9 + 0x2c) * 0x48 &&\n           (*(int *)(uVar9 + 0x24) != 0 || *(int *)(uVar9 + 0x20) != 0)) &&\n          (*(uint *)(uVar9 + 0x28) < uVar7))" ( (binary_expression "(param_1 == uVar8 + *(uint *)(uVar9 + 0x2c) * 0x48 &&\n           (*(int *)(uVar9 + 0x24) != 0 || *(int *)(uVar9 + 0x20) != 0)) &&\n          (*(uint *)(uVar9 + 0x28) < uVar7)" (parenthesized_expression "(param_1 == uVar8 + *(uint *)(uVar9 + 0x2c) * 0x48 &&\n           (*(int *)(uVar9 + 0x24) != 0 || *(int *)(uVar9 + 0x20) != 0))" ( (binary_expression "param_1 == uVar8 + *(uint *)(uVar9 + 0x2c) * 0x48 &&\n           (*(int *)(uVar9 + 0x24) != 0 || *(int *)(uVar9 + 0x20) != 0)" (binary_expression "param_1 == uVar8 + *(uint *)(uVar9 + 0x2c) * 0x48" identifier == (binary_expression "uVar8 + *(uint *)(uVar9 + 0x2c) * 0x48" identifier + (binary_expression "*(uint *)(uVar9 + 0x2c) * 0x48" (pointer_expression "*(uint *)(uVar9 + 0x2c)" * (cast_expression "(uint *)(uVar9 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 0x2c)" ( (binary_expression "uVar9 + 0x2c" identifier + number_literal) )))) * number_literal))) && (parenthesized_expression "(*(int *)(uVar9 + 0x24) != 0 || *(int *)(uVar9 + 0x20) != 0)" ( (binary_expression "*(int *)(uVar9 + 0x24) != 0 || *(int *)(uVar9 + 0x20) != 0" (binary_expression "*(int *)(uVar9 + 0x24) != 0" (pointer_expression "*(int *)(uVar9 + 0x24)" * (cast_expression "(int *)(uVar9 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 0x24)" ( (binary_expression "uVar9 + 0x24" identifier + number_literal) )))) != number_literal) || (binary_expression "*(int *)(uVar9 + 0x20) != 0" (pointer_expression "*(int *)(uVar9 + 0x20)" * (cast_expression "(int *)(uVar9 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 0x20)" ( (binary_expression "uVar9 + 0x20" identifier + number_literal) )))) != number_literal)) ))) )) && (parenthesized_expression "(*(uint *)(uVar9 + 0x28) < uVar7)" ( (binary_expression "*(uint *)(uVar9 + 0x28) < uVar7" (pointer_expression "*(uint *)(uVar9 + 0x28)" * (cast_expression "(uint *)(uVar9 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 0x28)" ( (binary_expression "uVar9 + 0x28" identifier + number_literal) )))) < identifier) ))) )) ))) )) (compound_statement "{\n        pcVar4 = (char *)dcgettext(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5);\n        printf(pcVar4);\n        break;\n      }" { (expression_statement "pcVar4 = (char *)dcgettext(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5)" identifier (argument_list "(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5)" ( number_literal , (string_literal "" NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar4);" (call_expression "printf(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier ))) ;) (break_statement "break;" break ;) })) })) }) (else_clause "else {\n    iVar6 = FUN_0003fb10(local_6c,local_68,0,0);\n    if (iVar6 == 0) {\n      return false;\n    }\n  }" else (compound_statement "{\n    iVar6 = FUN_0003fb10(local_6c,local_68,0,0);\n    if (iVar6 == 0) {\n      return false;\n    }\n  }" { (expression_statement "iVar6 = FUN_0003fb10(local_6c,local_68,0,0);" (assignment_expression "iVar6 = FUN_0003fb10(local_6c,local_68,0,0)" identifier = (call_expression "FUN_0003fb10(local_6c,local_68,0,0)" identifier (argument_list "(local_6c,local_68,0,0)" ( identifier , identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar6 == 0) {\n      return false;\n    }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n      return false;\n    }" { (return_statement "return false;" return false ;) })) }))) (expression_statement "puVar2 = PTR_stdout_000b3fd8;" (assignment_expression "puVar2 = PTR_stdout_000b3fd8" identifier = identifier) ;) (expression_statement "local_64 = *(uint *)(param_1 + 0x10);" (assignment_expression "local_64 = *(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) ))))) ;) (if_statement "if (local_68 != 0 || local_6c != 0) {\n    do {\n      uVar7 = 0x10;\n      if (local_68 == 0 && (uint)(0x10 < local_6c) <= (uint)-local_68) {\n        uVar7 = local_6c;\n      }\n      uVar9 = 0;\n      uVar8 = local_64;\n      printf("  0x%8.8lx ",local_64);\n      do {\n        while ((int)uVar9 < (int)uVar7) {\n          uVar8 = (uint)local_40[uVar9];\n          printf("%2.2x",uVar8);\n          if ((uVar9 & 3) == 3) goto LAB_00041fd4;\nLAB_00041faf:\n          uVar9 = uVar9 + 1;\n          if (uVar9 == 0x10) goto LAB_00041fe9;\n        }\n        printf("  ",uVar8);\n        if ((uVar9 & 3) != 3) goto LAB_00041faf;\nLAB_00041fd4:\n        uVar9 = uVar9 + 1;\n        putchar(0x20);\n      } while (uVar9 != 0x10);\nLAB_00041fe9:\n      iVar6 = 0;\n      do {\n        while (pbVar1 = local_40 + iVar6, *pbVar1 - 0x20 < 0x5f) {\n          iVar6 = iVar6 + 1;\n          putchar((uint)*pbVar1);\n          if ((int)uVar7 <= iVar6) goto LAB_00042024;\n        }\n        iVar6 = iVar6 + 1;\n        putchar(0x2e);\n      } while (iVar6 < (int)uVar7);\nLAB_00042024:\n      local_40 = local_40 + uVar7;\n      putc(10,*(FILE **)puVar2);\n      local_64 = local_64 + uVar7;\n      bVar20 = local_6c < uVar7;\n      local_6c = local_6c - uVar7;\n      local_68 = (local_68 - ((int)uVar7 >> 0x1f)) - (uint)bVar20;\n    } while (local_68 != 0 || local_6c != 0);\n  }" if (parenthesized_expression "(local_68 != 0 || local_6c != 0)" ( (binary_expression "local_68 != 0 || local_6c != 0" (binary_expression "local_68 != 0" identifier != number_literal) || (binary_expression "local_6c != 0" identifier != number_literal)) )) (compound_statement "{\n    do {\n      uVar7 = 0x10;\n      if (local_68 == 0 && (uint)(0x10 < local_6c) <= (uint)-local_68) {\n        uVar7 = local_6c;\n      }\n      uVar9 = 0;\n      uVar8 = local_64;\n      printf("  0x%8.8lx ",local_64);\n      do {\n        while ((int)uVar9 < (int)uVar7) {\n          uVar8 = (uint)local_40[uVar9];\n          printf("%2.2x",uVar8);\n          if ((uVar9 & 3) == 3) goto LAB_00041fd4;\nLAB_00041faf:\n          uVar9 = uVar9 + 1;\n          if (uVar9 == 0x10) goto LAB_00041fe9;\n        }\n        printf("  ",uVar8);\n        if ((uVar9 & 3) != 3) goto LAB_00041faf;\nLAB_00041fd4:\n        uVar9 = uVar9 + 1;\n        putchar(0x20);\n      } while (uVar9 != 0x10);\nLAB_00041fe9:\n      iVar6 = 0;\n      do {\n        while (pbVar1 = local_40 + iVar6, *pbVar1 - 0x20 < 0x5f) {\n          iVar6 = iVar6 + 1;\n          putchar((uint)*pbVar1);\n          if ((int)uVar7 <= iVar6) goto LAB_00042024;\n        }\n        iVar6 = iVar6 + 1;\n        putchar(0x2e);\n      } while (iVar6 < (int)uVar7);\nLAB_00042024:\n      local_40 = local_40 + uVar7;\n      putc(10,*(FILE **)puVar2);\n      local_64 = local_64 + uVar7;\n      bVar20 = local_6c < uVar7;\n      local_6c = local_6c - uVar7;\n      local_68 = (local_68 - ((int)uVar7 >> 0x1f)) - (uint)bVar20;\n    } while (local_68 != 0 || local_6c != 0);\n  }" { (do_statement "do {\n      uVar7 = 0x10;\n      if (local_68 == 0 && (uint)(0x10 < local_6c) <= (uint)-local_68) {\n        uVar7 = local_6c;\n      }\n      uVar9 = 0;\n      uVar8 = local_64;\n      printf("  0x%8.8lx ",local_64);\n      do {\n        while ((int)uVar9 < (int)uVar7) {\n          uVar8 = (uint)local_40[uVar9];\n          printf("%2.2x",uVar8);\n          if ((uVar9 & 3) == 3) goto LAB_00041fd4;\nLAB_00041faf:\n          uVar9 = uVar9 + 1;\n          if (uVar9 == 0x10) goto LAB_00041fe9;\n        }\n        printf("  ",uVar8);\n        if ((uVar9 & 3) != 3) goto LAB_00041faf;\nLAB_00041fd4:\n        uVar9 = uVar9 + 1;\n        putchar(0x20);\n      } while (uVar9 != 0x10);\nLAB_00041fe9:\n      iVar6 = 0;\n      do {\n        while (pbVar1 = local_40 + iVar6, *pbVar1 - 0x20 < 0x5f) {\n          iVar6 = iVar6 + 1;\n          putchar((uint)*pbVar1);\n          if ((int)uVar7 <= iVar6) goto LAB_00042024;\n        }\n        iVar6 = iVar6 + 1;\n        putchar(0x2e);\n      } while (iVar6 < (int)uVar7);\nLAB_00042024:\n      local_40 = local_40 + uVar7;\n      putc(10,*(FILE **)puVar2);\n      local_64 = local_64 + uVar7;\n      bVar20 = local_6c < uVar7;\n      local_6c = local_6c - uVar7;\n      local_68 = (local_68 - ((int)uVar7 >> 0x1f)) - (uint)bVar20;\n    } while (local_68 != 0 || local_6c != 0);" do (compound_statement "{\n      uVar7 = 0x10;\n      if (local_68 == 0 && (uint)(0x10 < local_6c) <= (uint)-local_68) {\n        uVar7 = local_6c;\n      }\n      uVar9 = 0;\n      uVar8 = local_64;\n      printf("  0x%8.8lx ",local_64);\n      do {\n        while ((int)uVar9 < (int)uVar7) {\n          uVar8 = (uint)local_40[uVar9];\n          printf("%2.2x",uVar8);\n          if ((uVar9 & 3) == 3) goto LAB_00041fd4;\nLAB_00041faf:\n          uVar9 = uVar9 + 1;\n          if (uVar9 == 0x10) goto LAB_00041fe9;\n        }\n        printf("  ",uVar8);\n        if ((uVar9 & 3) != 3) goto LAB_00041faf;\nLAB_00041fd4:\n        uVar9 = uVar9 + 1;\n        putchar(0x20);\n      } while (uVar9 != 0x10);\nLAB_00041fe9:\n      iVar6 = 0;\n      do {\n        while (pbVar1 = local_40 + iVar6, *pbVar1 - 0x20 < 0x5f) {\n          iVar6 = iVar6 + 1;\n          putchar((uint)*pbVar1);\n          if ((int)uVar7 <= iVar6) goto LAB_00042024;\n        }\n        iVar6 = iVar6 + 1;\n        putchar(0x2e);\n      } while (iVar6 < (int)uVar7);\nLAB_00042024:\n      local_40 = local_40 + uVar7;\n      putc(10,*(FILE **)puVar2);\n      local_64 = local_64 + uVar7;\n      bVar20 = local_6c < uVar7;\n      local_6c = local_6c - uVar7;\n      local_68 = (local_68 - ((int)uVar7 >> 0x1f)) - (uint)bVar20;\n    }" { (expression_statement "uVar7 = 0x10;" (assignment_expression "uVar7 = 0x10" identifier = number_literal) ;) (if_statement "if (local_68 == 0 && (uint)(0x10 < local_6c) <= (uint)-local_68) {\n        uVar7 = local_6c;\n      }" if (parenthesized_expression "(local_68 == 0 && (uint)(0x10 < local_6c) <= (uint)-local_68)" ( (binary_expression "local_68 == 0 && (uint)(0x10 < local_6c) <= (uint)-local_68" (binary_expression "local_68 == 0" identifier == number_literal) && (binary_expression "(uint)(0x10 < local_6c) <= (uint)-local_68" (call_expression "(uint)(0x10 < local_6c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0x10 < local_6c)" ( (binary_expression "0x10 < local_6c" number_literal < identifier) ))) <= (binary_expression "(uint)-local_68" (parenthesized_expression "(uint)" ( identifier )) - identifier))) )) (compound_statement "{\n        uVar7 = local_6c;\n      }" { (expression_statement "uVar7 = local_6c;" (assignment_expression "uVar7 = local_6c" identifier = identifier) ;) })) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "uVar8 = local_64;" (assignment_expression "uVar8 = local_64" identifier = identifier) ;) (expression_statement "printf("  0x%8.8lx ",local_64);" (call_expression "printf("  0x%8.8lx ",local_64)" identifier (argument_list "("  0x%8.8lx ",local_64)" ( (string_literal ""  0x%8.8lx "" " string_content ") , identifier ))) ;) (do_statement "do {\n        while ((int)uVar9 < (int)uVar7) {\n          uVar8 = (uint)local_40[uVar9];\n          printf("%2.2x",uVar8);\n          if ((uVar9 & 3) == 3) goto LAB_00041fd4;\nLAB_00041faf:\n          uVar9 = uVar9 + 1;\n          if (uVar9 == 0x10) goto LAB_00041fe9;\n        }\n        printf("  ",uVar8);\n        if ((uVar9 & 3) != 3) goto LAB_00041faf;\nLAB_00041fd4:\n        uVar9 = uVar9 + 1;\n        putchar(0x20);\n      } while (uVar9 != 0x10);" do (compound_statement "{\n        while ((int)uVar9 < (int)uVar7) {\n          uVar8 = (uint)local_40[uVar9];\n          printf("%2.2x",uVar8);\n          if ((uVar9 & 3) == 3) goto LAB_00041fd4;\nLAB_00041faf:\n          uVar9 = uVar9 + 1;\n          if (uVar9 == 0x10) goto LAB_00041fe9;\n        }\n        printf("  ",uVar8);\n        if ((uVar9 & 3) != 3) goto LAB_00041faf;\nLAB_00041fd4:\n        uVar9 = uVar9 + 1;\n        putchar(0x20);\n      }" { (while_statement "while ((int)uVar9 < (int)uVar7) {\n          uVar8 = (uint)local_40[uVar9];\n          printf("%2.2x",uVar8);\n          if ((uVar9 & 3) == 3) goto LAB_00041fd4;\nLAB_00041faf:\n          uVar9 = uVar9 + 1;\n          if (uVar9 == 0x10) goto LAB_00041fe9;\n        }" while (parenthesized_expression "((int)uVar9 < (int)uVar7)" ( (binary_expression "(int)uVar9 < (int)uVar7" (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          uVar8 = (uint)local_40[uVar9];\n          printf("%2.2x",uVar8);\n          if ((uVar9 & 3) == 3) goto LAB_00041fd4;\nLAB_00041faf:\n          uVar9 = uVar9 + 1;\n          if (uVar9 == 0x10) goto LAB_00041fe9;\n        }" { (expression_statement "uVar8 = (uint)local_40[uVar9];" (assignment_expression "uVar8 = (uint)local_40[uVar9]" identifier = (cast_expression "(uint)local_40[uVar9]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_40[uVar9]" identifier [ identifier ]))) ;) (expression_statement "printf("%2.2x",uVar8);" (call_expression "printf("%2.2x",uVar8)" identifier (argument_list "("%2.2x",uVar8)" ( (string_literal ""%2.2x"" " string_content ") , identifier ))) ;) (if_statement "if ((uVar9 & 3) == 3) goto LAB_00041fd4;" if (parenthesized_expression "((uVar9 & 3) == 3)" ( (binary_expression "(uVar9 & 3) == 3" (parenthesized_expression "(uVar9 & 3)" ( (binary_expression "uVar9 & 3" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00041fd4;" goto statement_identifier ;)) (labeled_statement "LAB_00041faf:\n          uVar9 = uVar9 + 1;" statement_identifier : (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" identifier = (binary_expression "uVar9 + 1" identifier + number_literal)) ;)) (if_statement "if (uVar9 == 0x10) goto LAB_00041fe9;" if (parenthesized_expression "(uVar9 == 0x10)" ( (binary_expression "uVar9 == 0x10" identifier == number_literal) )) (goto_statement "goto LAB_00041fe9;" goto statement_identifier ;)) })) (expression_statement "printf("  ",uVar8);" (call_expression "printf("  ",uVar8)" identifier (argument_list "("  ",uVar8)" ( (string_literal ""  "" " string_content ") , identifier ))) ;) (if_statement "if ((uVar9 & 3) != 3) goto LAB_00041faf;" if (parenthesized_expression "((uVar9 & 3) != 3)" ( (binary_expression "(uVar9 & 3) != 3" (parenthesized_expression "(uVar9 & 3)" ( (binary_expression "uVar9 & 3" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00041faf;" goto statement_identifier ;)) (labeled_statement "LAB_00041fd4:\n        uVar9 = uVar9 + 1;" statement_identifier : (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" identifier = (binary_expression "uVar9 + 1" identifier + number_literal)) ;)) (expression_statement "putchar(0x20);" (call_expression "putchar(0x20)" identifier (argument_list "(0x20)" ( number_literal ))) ;) }) while (parenthesized_expression "(uVar9 != 0x10)" ( (binary_expression "uVar9 != 0x10" identifier != number_literal) )) ;) (labeled_statement "LAB_00041fe9:\n      iVar6 = 0;" statement_identifier : (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;)) (do_statement "do {\n        while (pbVar1 = local_40 + iVar6, *pbVar1 - 0x20 < 0x5f) {\n          iVar6 = iVar6 + 1;\n          putchar((uint)*pbVar1);\n          if ((int)uVar7 <= iVar6) goto LAB_00042024;\n        }\n        iVar6 = iVar6 + 1;\n        putchar(0x2e);\n      } while (iVar6 < (int)uVar7);" do (compound_statement "{\n        while (pbVar1 = local_40 + iVar6, *pbVar1 - 0x20 < 0x5f) {\n          iVar6 = iVar6 + 1;\n          putchar((uint)*pbVar1);\n          if ((int)uVar7 <= iVar6) goto LAB_00042024;\n        }\n        iVar6 = iVar6 + 1;\n        putchar(0x2e);\n      }" { (while_statement "while (pbVar1 = local_40 + iVar6, *pbVar1 - 0x20 < 0x5f) {\n          iVar6 = iVar6 + 1;\n          putchar((uint)*pbVar1);\n          if ((int)uVar7 <= iVar6) goto LAB_00042024;\n        }" while (parenthesized_expression "(pbVar1 = local_40 + iVar6, *pbVar1 - 0x20 < 0x5f)" ( (comma_expression "pbVar1 = local_40 + iVar6, *pbVar1 - 0x20 < 0x5f" (assignment_expression "pbVar1 = local_40 + iVar6" identifier = (binary_expression "local_40 + iVar6" identifier + identifier)) , (binary_expression "*pbVar1 - 0x20 < 0x5f" (binary_expression "*pbVar1 - 0x20" (pointer_expression "*pbVar1" * identifier) - number_literal) < number_literal)) )) (compound_statement "{\n          iVar6 = iVar6 + 1;\n          putchar((uint)*pbVar1);\n          if ((int)uVar7 <= iVar6) goto LAB_00042024;\n        }" { (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) (expression_statement "putchar((uint)*pbVar1);" (call_expression "putchar((uint)*pbVar1)" identifier (argument_list "((uint)*pbVar1)" ( (binary_expression "(uint)*pbVar1" (parenthesized_expression "(uint)" ( identifier )) * identifier) ))) ;) (if_statement "if ((int)uVar7 <= iVar6) goto LAB_00042024;" if (parenthesized_expression "((int)uVar7 <= iVar6)" ( (binary_expression "(int)uVar7 <= iVar6" (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier) <= identifier) )) (goto_statement "goto LAB_00042024;" goto statement_identifier ;)) })) (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) (expression_statement "putchar(0x2e);" (call_expression "putchar(0x2e)" identifier (argument_list "(0x2e)" ( number_literal ))) ;) }) while (parenthesized_expression "(iVar6 < (int)uVar7)" ( (binary_expression "iVar6 < (int)uVar7" identifier < (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (labeled_statement "LAB_00042024:\n      local_40 = local_40 + uVar7;" statement_identifier : (expression_statement "local_40 = local_40 + uVar7;" (assignment_expression "local_40 = local_40 + uVar7" identifier = (binary_expression "local_40 + uVar7" identifier + identifier)) ;)) (expression_statement "putc(10,*(FILE **)puVar2);" (call_expression "putc(10,*(FILE **)puVar2)" identifier (argument_list "(10,*(FILE **)puVar2)" ( number_literal , (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (expression_statement "local_64 = local_64 + uVar7;" (assignment_expression "local_64 = local_64 + uVar7" identifier = (binary_expression "local_64 + uVar7" identifier + identifier)) ;) (expression_statement "bVar20 = local_6c < uVar7;" (assignment_expression "bVar20 = local_6c < uVar7" identifier = (binary_expression "local_6c < uVar7" identifier < identifier)) ;) (expression_statement "local_6c = local_6c - uVar7;" (assignment_expression "local_6c = local_6c - uVar7" identifier = (binary_expression "local_6c - uVar7" identifier - identifier)) ;) (expression_statement "local_68 = (local_68 - ((int)uVar7 >> 0x1f)) - (uint)bVar20;" (assignment_expression "local_68 = (local_68 - ((int)uVar7 >> 0x1f)) - (uint)bVar20" identifier = (binary_expression "(local_68 - ((int)uVar7 >> 0x1f)) - (uint)bVar20" (parenthesized_expression "(local_68 - ((int)uVar7 >> 0x1f))" ( (binary_expression "local_68 - ((int)uVar7 >> 0x1f)" identifier - (parenthesized_expression "((int)uVar7 >> 0x1f)" ( (binary_expression "(int)uVar7 >> 0x1f" (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) )) - (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) }) while (parenthesized_expression "(local_68 != 0 || local_6c != 0)" ( (binary_expression "local_68 != 0 || local_6c != 0" (binary_expression "local_68 != 0" identifier != number_literal) || (binary_expression "local_6c != 0" identifier != number_literal)) )) ;) })) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (expression_statement "putc(10,*(FILE **)puVar2);" (call_expression "putc(10,*(FILE **)puVar2)" identifier (argument_list "(10,*(FILE **)puVar2)" ( number_literal , (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (return_statement "return true;" return true ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE 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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (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) )))) == LIT) && (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT)) )) (compound_statement { (return_statement return BOOL ;) })) (return_statement return (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression 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 ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (string_literal " escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (unary_expression - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT != LIT) || (binary_expression IDENT < IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression IDENT >= IDENT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) != IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) )))) * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) << LIT) )))) * LIT) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) , IDENT ))))) )) * LIT) | (binary_expression IDENT >> LIT)) )) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) , IDENT ))))) )) * LIT) | (binary_expression IDENT >> LIT)) )) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) ))))) )) * LIT) | (binary_expression IDENT >> LIT)) )) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) , IDENT ))))) )) * LIT) | (binary_expression IDENT >> LIT)) )) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) , IDENT ))))) )) * LIT) | (binary_expression IDENT >> LIT)) )) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) , IDENT )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < IDENT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (return_statement return BOOL ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression IDENT != LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (return_statement return BOOL ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (for_statement for ( (assignment_expression IDENT = IDENT) ; (binary_expression IDENT < (binary_expression IDENT + (binary_expression IDENT * LIT))) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) ))) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < IDENT) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT == (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) && (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) || (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT)) ))) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < IDENT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (break_statement break ;) })) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return BOOL ;) })) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression IDENT != LIT)) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < IDENT) ))) <= (binary_expression (parenthesized_expression ( IDENT )) - IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT ))) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ IDENT ]))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + IDENT)) , (binary_expression (binary_expression (pointer_expression * IDENT) - LIT) < LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression (parenthesized_expression ( IDENT )) * IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= IDENT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;)) (expression_statement (call_expression IDENT (argument_list ( LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) )) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression IDENT != LIT)) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ))) ;) (return_statement return BOOL ;) })))
(function_definition "bool __regparm3 FUN_00041ce0(int param_1,int param_2,int param_3)\n\n{\n  byte *pbVar1;\n  undefined *puVar2;\n  byte *__ptr;\n  undefined4 uVar3;\n  char *pcVar4;\n  undefined4 uVar5;\n  int iVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  byte *pbVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  byte *pbVar19;\n  bool bVar20;\n  bool bVar21;\n  byte bVar22;\n  uint local_6c;\n  int local_68;\n  uint local_64;\n  byte *local_40;\n  uint local_3c;\n  int local_38;\n  int local_30;\n  int local_2c;\n  int local_28;\n  undefined4 uStack_14;\n  \n  bVar22 = 0;\n  uStack_14 = 0x41ceb;\n  __ptr = (byte *)FUN_00032770();\n  if (__ptr == (byte *)0x0) {\n    if (*(int *)(param_1 + 0x24) == 0 && *(int *)(param_1 + 0x20) == 0) {\n      return true;\n    }\n    return *(int *)(param_1 + 4) == 8;\n  }\n  local_6c = *(uint *)(param_1 + 0x20);\n  local_68 = *(int *)(param_1 + 0x24);\n  uVar3 = FUN_00022190();\n  pcVar4 = (char *)dcgettext(0,"\nHex dump of section \'%s\':\n",5);\n  printf(pcVar4,uVar3);\n  pbVar1 = __ptr;\n  if (DAT_000b6320 == 0) goto LAB_00041e89;\n  local_3c = local_6c;\n  local_38 = local_68;\n  if ((*(uint *)(param_1 + 8) & 0x800) == 0) {\n    uVar7 = (uint)(0xc < local_6c);\n    uVar8 = -local_68;\n    bVar20 = local_68 != 0 || uVar8 < uVar7;\n    bVar21 = uVar8 == uVar7;\n    if (local_68 == 0 && uVar8 >= uVar7) goto LAB_00041e89;\n    iVar6 = 5;\n    pbVar10 = __ptr;\n    pbVar19 = &DAT_0007d064;\n    do {\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      bVar20 = *pbVar10 < *pbVar19;\n      bVar21 = *pbVar10 == *pbVar19;\n      pbVar10 = pbVar10 + (uint)bVar22 * -2 + 1;\n      pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n    } while (bVar21);\n    if ((!bVar20 && !bVar21) != bVar20) goto LAB_00041e89;\n    uVar11 = (uint)CONCAT11(__ptr[4],__ptr[5]) * 0x100;\n    uVar12 = __ptr[6] + uVar11;\n    uVar13 = uVar12 * 0x100;\n    uVar14 = __ptr[7] + uVar13;\n    uVar15 = uVar14 * 0x100;\n    uVar7 = uVar15 + __ptr[8];\n    uVar16 = uVar7 * 0x100;\n    uVar8 = __ptr[9] + uVar16;\n    uVar17 = uVar8 * 0x100;\n    uVar9 = __ptr[10] + uVar17;\n    uVar18 = uVar9 * 0x100;\n    local_2c = __ptr[0xb] + uVar18;\n    local_28 = (((((((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +\n                  (uint)CARRY4((uint)__ptr[9],uVar16)) * 0x100 | uVar8 >> 0x18) +\n                (uint)CARRY4((uint)__ptr[10],uVar17)) * 0x100 | uVar9 >> 0x18) +\n               (uint)CARRY4((uint)__ptr[0xb],uVar18);\n    local_40 = __ptr + 0xc;\n    local_3c = local_6c - 0xc;\n    local_38 = local_68 + -1 + (uint)(0xb < local_6c);\n  }\n  else {\n    uVar7 = FUN_0001be30(local_6c,local_68);\n    if (local_30 != 1) {\n      uVar3 = FUN_00022190();\n      uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(uVar5,uVar3,local_30);\n      return false;\n    }\n    local_40 = __ptr + uVar7;\n    bVar20 = local_3c < uVar7;\n    local_3c = local_3c - uVar7;\n    local_38 = local_38 - (uint)bVar20;\n  }\n  if (local_28 != 0 || local_2c != 0) {\n    iVar6 = FUN_0001d690(&local_3c);\n    if (iVar6 == 0) {\n      uVar3 = FUN_00022190();\n      uVar5 = dcgettext(0,"Unable to decompress section %s\n",5);\n      error(uVar5,uVar3);\n      return false;\n    }\n    local_6c = local_3c;\n    local_68 = local_38;\n    pbVar1 = local_40;\n  }\nLAB_00041e89:\n  local_40 = pbVar1;\n  if (param_3 == 0) {\n    uVar7 = *(uint *)(param_2 + 0x54);\n    uVar8 = *(uint *)(param_2 + 0x5c);\n    for (uVar9 = uVar8; uVar9 < uVar8 + uVar7 * 0x48; uVar9 = uVar9 + 0x48) {\n      if ((((*(int *)(uVar9 + 4) == 4) || (*(int *)(uVar9 + 4) == 9)) &&\n          (*(uint *)(uVar9 + 0x2c) < uVar7)) &&\n         (((param_1 == uVar8 + *(uint *)(uVar9 + 0x2c) * 0x48 &&\n           (*(int *)(uVar9 + 0x24) != 0 || *(int *)(uVar9 + 0x20) != 0)) &&\n          (*(uint *)(uVar9 + 0x28) < uVar7)))) {\n        pcVar4 = (char *)dcgettext(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5);\n        printf(pcVar4);\n        break;\n      }\n    }\n  }\n  else {\n    iVar6 = FUN_0003fb10(local_6c,local_68,0,0);\n    if (iVar6 == 0) {\n      return false;\n    }\n  }\n  puVar2 = PTR_stdout_000b3fd8;\n  local_64 = *(uint *)(param_1 + 0x10);\n  if (local_68 != 0 || local_6c != 0) {\n    do {\n      uVar7 = 0x10;\n      if (local_68 == 0 && (uint)(0x10 < local_6c) <= (uint)-local_68) {\n        uVar7 = local_6c;\n      }\n      uVar9 = 0;\n      uVar8 = local_64;\n      printf("  0x%8.8lx ",local_64);\n      do {\n        while ((int)uVar9 < (int)uVar7) {\n          uVar8 = (uint)local_40[uVar9];\n          printf("%2.2x",uVar8);\n          if ((uVar9 & 3) == 3) goto LAB_00041fd4;\nLAB_00041faf:\n          uVar9 = uVar9 + 1;\n          if (uVar9 == 0x10) goto LAB_00041fe9;\n        }\n        printf("  ",uVar8);\n        if ((uVar9 & 3) != 3) goto LAB_00041faf;\nLAB_00041fd4:\n        uVar9 = uVar9 + 1;\n        putchar(0x20);\n      } while (uVar9 != 0x10);\nLAB_00041fe9:\n      iVar6 = 0;\n      do {\n        while (pbVar1 = local_40 + iVar6, *pbVar1 - 0x20 < 0x5f) {\n          iVar6 = iVar6 + 1;\n          putchar((uint)*pbVar1);\n          if ((int)uVar7 <= iVar6) goto LAB_00042024;\n        }\n        iVar6 = iVar6 + 1;\n        putchar(0x2e);\n      } while (iVar6 < (int)uVar7);\nLAB_00042024:\n      local_40 = local_40 + uVar7;\n      putc(10,*(FILE **)puVar2);\n      local_64 = local_64 + uVar7;\n      bVar20 = local_6c < uVar7;\n      local_6c = local_6c - uVar7;\n      local_68 = (local_68 - ((int)uVar7 >> 0x1f)) - (uint)bVar20;\n    } while (local_68 != 0 || local_6c != 0);\n  }\n  free(__ptr);\n  putc(10,*(FILE **)puVar2);\n  return true;\n}" (primitive_type "bool") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00041ce0(int param_1,int param_2,int param_3)" (identifier "FUN_00041ce0") (parameter_list "(int param_1,int param_2,int param_3)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) () ")"))) (compound_statement "{\n  byte *pbVar1;\n  undefined *puVar2;\n  byte *__ptr;\n  undefined4 uVar3;\n  char *pcVar4;\n  undefined4 uVar5;\n  int iVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  byte *pbVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  byte *pbVar19;\n  bool bVar20;\n  bool bVar21;\n  byte bVar22;\n  uint local_6c;\n  int local_68;\n  uint local_64;\n  byte *local_40;\n  uint local_3c;\n  int local_38;\n  int local_30;\n  int local_2c;\n  int local_28;\n  undefined4 uStack_14;\n  \n  bVar22 = 0;\n  uStack_14 = 0x41ceb;\n  __ptr = (byte *)FUN_00032770();\n  if (__ptr == (byte *)0x0) {\n    if (*(int *)(param_1 + 0x24) == 0 && *(int *)(param_1 + 0x20) == 0) {\n      return true;\n    }\n    return *(int *)(param_1 + 4) == 8;\n  }\n  local_6c = *(uint *)(param_1 + 0x20);\n  local_68 = *(int *)(param_1 + 0x24);\n  uVar3 = FUN_00022190();\n  pcVar4 = (char *)dcgettext(0,"\nHex dump of section \'%s\':\n",5);\n  printf(pcVar4,uVar3);\n  pbVar1 = __ptr;\n  if (DAT_000b6320 == 0) goto LAB_00041e89;\n  local_3c = local_6c;\n  local_38 = local_68;\n  if ((*(uint *)(param_1 + 8) & 0x800) == 0) {\n    uVar7 = (uint)(0xc < local_6c);\n    uVar8 = -local_68;\n    bVar20 = local_68 != 0 || uVar8 < uVar7;\n    bVar21 = uVar8 == uVar7;\n    if (local_68 == 0 && uVar8 >= uVar7) goto LAB_00041e89;\n    iVar6 = 5;\n    pbVar10 = __ptr;\n    pbVar19 = &DAT_0007d064;\n    do {\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      bVar20 = *pbVar10 < *pbVar19;\n      bVar21 = *pbVar10 == *pbVar19;\n      pbVar10 = pbVar10 + (uint)bVar22 * -2 + 1;\n      pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n    } while (bVar21);\n    if ((!bVar20 && !bVar21) != bVar20) goto LAB_00041e89;\n    uVar11 = (uint)CONCAT11(__ptr[4],__ptr[5]) * 0x100;\n    uVar12 = __ptr[6] + uVar11;\n    uVar13 = uVar12 * 0x100;\n    uVar14 = __ptr[7] + uVar13;\n    uVar15 = uVar14 * 0x100;\n    uVar7 = uVar15 + __ptr[8];\n    uVar16 = uVar7 * 0x100;\n    uVar8 = __ptr[9] + uVar16;\n    uVar17 = uVar8 * 0x100;\n    uVar9 = __ptr[10] + uVar17;\n    uVar18 = uVar9 * 0x100;\n    local_2c = __ptr[0xb] + uVar18;\n    local_28 = (((((((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +\n                  (uint)CARRY4((uint)__ptr[9],uVar16)) * 0x100 | uVar8 >> 0x18) +\n                (uint)CARRY4((uint)__ptr[10],uVar17)) * 0x100 | uVar9 >> 0x18) +\n               (uint)CARRY4((uint)__ptr[0xb],uVar18);\n    local_40 = __ptr + 0xc;\n    local_3c = local_6c - 0xc;\n    local_38 = local_68 + -1 + (uint)(0xb < local_6c);\n  }\n  else {\n    uVar7 = FUN_0001be30(local_6c,local_68);\n    if (local_30 != 1) {\n      uVar3 = FUN_00022190();\n      uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(uVar5,uVar3,local_30);\n      return false;\n    }\n    local_40 = __ptr + uVar7;\n    bVar20 = local_3c < uVar7;\n    local_3c = local_3c - uVar7;\n    local_38 = local_38 - (uint)bVar20;\n  }\n  if (local_28 != 0 || local_2c != 0) {\n    iVar6 = FUN_0001d690(&local_3c);\n    if (iVar6 == 0) {\n      uVar3 = FUN_00022190();\n      uVar5 = dcgettext(0,"Unable to decompress section %s\n",5);\n      error(uVar5,uVar3);\n      return false;\n    }\n    local_6c = local_3c;\n    local_68 = local_38;\n    pbVar1 = local_40;\n  }\nLAB_00041e89:\n  local_40 = pbVar1;\n  if (param_3 == 0) {\n    uVar7 = *(uint *)(param_2 + 0x54);\n    uVar8 = *(uint *)(param_2 + 0x5c);\n    for (uVar9 = uVar8; uVar9 < uVar8 + uVar7 * 0x48; uVar9 = uVar9 + 0x48) {\n      if ((((*(int *)(uVar9 + 4) == 4) || (*(int *)(uVar9 + 4) == 9)) &&\n          (*(uint *)(uVar9 + 0x2c) < uVar7)) &&\n         (((param_1 == uVar8 + *(uint *)(uVar9 + 0x2c) * 0x48 &&\n           (*(int *)(uVar9 + 0x24) != 0 || *(int *)(uVar9 + 0x20) != 0)) &&\n          (*(uint *)(uVar9 + 0x28) < uVar7)))) {\n        pcVar4 = (char *)dcgettext(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5);\n        printf(pcVar4);\n        break;\n      }\n    }\n  }\n  else {\n    iVar6 = FUN_0003fb10(local_6c,local_68,0,0);\n    if (iVar6 == 0) {\n      return false;\n    }\n  }\n  puVar2 = PTR_stdout_000b3fd8;\n  local_64 = *(uint *)(param_1 + 0x10);\n  if (local_68 != 0 || local_6c != 0) {\n    do {\n      uVar7 = 0x10;\n      if (local_68 == 0 && (uint)(0x10 < local_6c) <= (uint)-local_68) {\n        uVar7 = local_6c;\n      }\n      uVar9 = 0;\n      uVar8 = local_64;\n      printf("  0x%8.8lx ",local_64);\n      do {\n        while ((int)uVar9 < (int)uVar7) {\n          uVar8 = (uint)local_40[uVar9];\n          printf("%2.2x",uVar8);\n          if ((uVar9 & 3) == 3) goto LAB_00041fd4;\nLAB_00041faf:\n          uVar9 = uVar9 + 1;\n          if (uVar9 == 0x10) goto LAB_00041fe9;\n        }\n        printf("  ",uVar8);\n        if ((uVar9 & 3) != 3) goto LAB_00041faf;\nLAB_00041fd4:\n        uVar9 = uVar9 + 1;\n        putchar(0x20);\n      } while (uVar9 != 0x10);\nLAB_00041fe9:\n      iVar6 = 0;\n      do {\n        while (pbVar1 = local_40 + iVar6, *pbVar1 - 0x20 < 0x5f) {\n          iVar6 = iVar6 + 1;\n          putchar((uint)*pbVar1);\n          if ((int)uVar7 <= iVar6) goto LAB_00042024;\n        }\n        iVar6 = iVar6 + 1;\n        putchar(0x2e);\n      } while (iVar6 < (int)uVar7);\nLAB_00042024:\n      local_40 = local_40 + uVar7;\n      putc(10,*(FILE **)puVar2);\n      local_64 = local_64 + uVar7;\n      bVar20 = local_6c < uVar7;\n      local_6c = local_6c - uVar7;\n      local_68 = (local_68 - ((int)uVar7 >> 0x1f)) - (uint)bVar20;\n    } while (local_68 != 0 || local_6c != 0);\n  }\n  free(__ptr);\n  putc(10,*(FILE **)puVar2);\n  return true;\n}" ({ "{") (declaration "byte *pbVar1;" (type_identifier "byte") (pointer_declarator "*pbVar1" (* "*") (identifier "pbVar1")) (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "byte *__ptr;" (type_identifier "byte") (pointer_declarator "*__ptr" (* "*") (identifier "__ptr")) (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "char *pcVar4;" (primitive_type "char") (pointer_declarator "*pcVar4" (* "*") (identifier "pcVar4")) (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "byte *pbVar10;" (type_identifier "byte") (pointer_declarator "*pbVar10" (* "*") (identifier "pbVar10")) (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "uint uVar13;" (type_identifier "uint") (identifier "uVar13") (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "uint uVar15;" (type_identifier "uint") (identifier "uVar15") (; ";")) (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 "byte *pbVar19;" (type_identifier "byte") (pointer_declarator "*pbVar19" (* "*") (identifier "pbVar19")) (; ";")) (declaration "bool bVar20;" (primitive_type "bool") (identifier "bVar20") (; ";")) (declaration "bool bVar21;" (primitive_type "bool") (identifier "bVar21") (; ";")) (declaration "byte bVar22;" (type_identifier "byte") (identifier "bVar22") (; ";")) (declaration "uint local_6c;" (type_identifier "uint") (identifier "local_6c") (; ";")) (declaration "int local_68;" (primitive_type "int") (identifier "local_68") (; ";")) (declaration "uint local_64;" (type_identifier "uint") (identifier "local_64") (; ";")) (declaration "byte *local_40;" (type_identifier "byte") (pointer_declarator "*local_40" (* "*") (identifier "local_40")) (; ";")) (declaration "uint local_3c;" (type_identifier "uint") (identifier "local_3c") (; ";")) (declaration "int local_38;" (primitive_type "int") (identifier "local_38") (; ";")) (declaration "int local_30;" (primitive_type "int") (identifier "local_30") (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (declaration "int local_28;" (primitive_type "int") (identifier "local_28") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "bVar22 = 0;" (assignment_expression "bVar22 = 0" (identifier "bVar22") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_14 = 0x41ceb;" (assignment_expression "uStack_14 = 0x41ceb" (identifier "uStack_14") (= "=") (number_literal "0x41ceb")) (; ";")) (expression_statement "__ptr = (byte *)FUN_00032770();" (assignment_expression "__ptr = (byte *)FUN_00032770()" (identifier "__ptr") (= "=") (cast_expression "(byte *)FUN_00032770()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00032770()" (identifier "FUN_00032770") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (__ptr == (byte *)0x0) {\n    if (*(int *)(param_1 + 0x24) == 0 && *(int *)(param_1 + 0x20) == 0) {\n      return true;\n    }\n    return *(int *)(param_1 + 4) == 8;\n  }" (if "if") (parenthesized_expression "(__ptr == (byte *)0x0)" (( "(") (binary_expression "__ptr == (byte *)0x0" (identifier "__ptr") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    if (*(int *)(param_1 + 0x24) == 0 && *(int *)(param_1 + 0x20) == 0) {\n      return true;\n    }\n    return *(int *)(param_1 + 4) == 8;\n  }" ({ "{") (if_statement "if (*(int *)(param_1 + 0x24) == 0 && *(int *)(param_1 + 0x20) == 0) {\n      return true;\n    }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x24) == 0 && *(int *)(param_1 + 0x20) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x24) == 0 && *(int *)(param_1 + 0x20) == 0" (binary_expression "*(int *)(param_1 + 0x24) == 0" (pointer_expression "*(int *)(param_1 + 0x24)" (* "*") (cast_expression "(int *)(param_1 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x24)" (( "(") (binary_expression "param_1 + 0x24" (identifier "param_1") (+ "+") (number_literal "0x24")) () ")")))) (== "==") (number_literal "0")) (&& "&&") (binary_expression "*(int *)(param_1 + 0x20) == 0" (pointer_expression "*(int *)(param_1 + 0x20)" (* "*") (cast_expression "(int *)(param_1 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n      return true;\n    }" ({ "{") (return_statement "return true;" (return "return") (true "true") (; ";")) (} "}"))) (return_statement "return *(int *)(param_1 + 4) == 8;" (return "return") (binary_expression "*(int *)(param_1 + 4) == 8" (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "8")) (; ";")) (} "}"))) (expression_statement "local_6c = *(uint *)(param_1 + 0x20);" (assignment_expression "local_6c = *(uint *)(param_1 + 0x20)" (identifier "local_6c") (= "=") (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")) () ")"))))) (; ";")) (expression_statement "local_68 = *(int *)(param_1 + 0x24);" (assignment_expression "local_68 = *(int *)(param_1 + 0x24)" (identifier "local_68") (= "=") (pointer_expression "*(int *)(param_1 + 0x24)" (* "*") (cast_expression "(int *)(param_1 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x24)" (( "(") (binary_expression "param_1 + 0x24" (identifier "param_1") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "uVar3 = FUN_00022190();" (assignment_expression "uVar3 = FUN_00022190()" (identifier "uVar3") (= "=") (call_expression "FUN_00022190()" (identifier "FUN_00022190") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pcVar4 = (char *)dcgettext(0,"\nHex dump of section \'%s\':\n",5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,"\nHex dump of section \'%s\':\n",5)" (identifier "pcVar4") (= "=") (cast_expression "(char *)dcgettext(0,"\nHex dump of section \'%s\':\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"\nHex dump of section \'%s\':\n",5)" (identifier "dcgettext") (argument_list "(0,"\nHex dump of section \'%s\':\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""\nHex dump of section \'%s\':\n"" (" """) (escape_sequence "\n") (string_content "Hex dump of section ") (escape_sequence "\'") (string_content "%s") (escape_sequence "\'") (string_content ":") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "printf(pcVar4,uVar3);" (call_expression "printf(pcVar4,uVar3)" (identifier "printf") (argument_list "(pcVar4,uVar3)" (( "(") (identifier "pcVar4") (, ",") (identifier "uVar3") () ")"))) (; ";")) (expression_statement "pbVar1 = __ptr;" (assignment_expression "pbVar1 = __ptr" (identifier "pbVar1") (= "=") (identifier "__ptr")) (; ";")) (if_statement "if (DAT_000b6320 == 0) goto LAB_00041e89;" (if "if") (parenthesized_expression "(DAT_000b6320 == 0)" (( "(") (binary_expression "DAT_000b6320 == 0" (identifier "DAT_000b6320") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00041e89;" (goto "goto") (statement_identifier "LAB_00041e89") (; ";"))) (expression_statement "local_3c = local_6c;" (assignment_expression "local_3c = local_6c" (identifier "local_3c") (= "=") (identifier "local_6c")) (; ";")) (expression_statement "local_38 = local_68;" (assignment_expression "local_38 = local_68" (identifier "local_38") (= "=") (identifier "local_68")) (; ";")) (if_statement "if ((*(uint *)(param_1 + 8) & 0x800) == 0) {\n    uVar7 = (uint)(0xc < local_6c);\n    uVar8 = -local_68;\n    bVar20 = local_68 != 0 || uVar8 < uVar7;\n    bVar21 = uVar8 == uVar7;\n    if (local_68 == 0 && uVar8 >= uVar7) goto LAB_00041e89;\n    iVar6 = 5;\n    pbVar10 = __ptr;\n    pbVar19 = &DAT_0007d064;\n    do {\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      bVar20 = *pbVar10 < *pbVar19;\n      bVar21 = *pbVar10 == *pbVar19;\n      pbVar10 = pbVar10 + (uint)bVar22 * -2 + 1;\n      pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n    } while (bVar21);\n    if ((!bVar20 && !bVar21) != bVar20) goto LAB_00041e89;\n    uVar11 = (uint)CONCAT11(__ptr[4],__ptr[5]) * 0x100;\n    uVar12 = __ptr[6] + uVar11;\n    uVar13 = uVar12 * 0x100;\n    uVar14 = __ptr[7] + uVar13;\n    uVar15 = uVar14 * 0x100;\n    uVar7 = uVar15 + __ptr[8];\n    uVar16 = uVar7 * 0x100;\n    uVar8 = __ptr[9] + uVar16;\n    uVar17 = uVar8 * 0x100;\n    uVar9 = __ptr[10] + uVar17;\n    uVar18 = uVar9 * 0x100;\n    local_2c = __ptr[0xb] + uVar18;\n    local_28 = (((((((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +\n                  (uint)CARRY4((uint)__ptr[9],uVar16)) * 0x100 | uVar8 >> 0x18) +\n                (uint)CARRY4((uint)__ptr[10],uVar17)) * 0x100 | uVar9 >> 0x18) +\n               (uint)CARRY4((uint)__ptr[0xb],uVar18);\n    local_40 = __ptr + 0xc;\n    local_3c = local_6c - 0xc;\n    local_38 = local_68 + -1 + (uint)(0xb < local_6c);\n  }\n  else {\n    uVar7 = FUN_0001be30(local_6c,local_68);\n    if (local_30 != 1) {\n      uVar3 = FUN_00022190();\n      uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(uVar5,uVar3,local_30);\n      return false;\n    }\n    local_40 = __ptr + uVar7;\n    bVar20 = local_3c < uVar7;\n    local_3c = local_3c - uVar7;\n    local_38 = local_38 - (uint)bVar20;\n  }" (if "if") (parenthesized_expression "((*(uint *)(param_1 + 8) & 0x800) == 0)" (( "(") (binary_expression "(*(uint *)(param_1 + 8) & 0x800) == 0" (parenthesized_expression "(*(uint *)(param_1 + 8) & 0x800)" (( "(") (binary_expression "*(uint *)(param_1 + 8) & 0x800" (pointer_expression "*(uint *)(param_1 + 8)" (* "*") (cast_expression "(uint *)(param_1 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (& "&") (number_literal "0x800")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar7 = (uint)(0xc < local_6c);\n    uVar8 = -local_68;\n    bVar20 = local_68 != 0 || uVar8 < uVar7;\n    bVar21 = uVar8 == uVar7;\n    if (local_68 == 0 && uVar8 >= uVar7) goto LAB_00041e89;\n    iVar6 = 5;\n    pbVar10 = __ptr;\n    pbVar19 = &DAT_0007d064;\n    do {\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      bVar20 = *pbVar10 < *pbVar19;\n      bVar21 = *pbVar10 == *pbVar19;\n      pbVar10 = pbVar10 + (uint)bVar22 * -2 + 1;\n      pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n    } while (bVar21);\n    if ((!bVar20 && !bVar21) != bVar20) goto LAB_00041e89;\n    uVar11 = (uint)CONCAT11(__ptr[4],__ptr[5]) * 0x100;\n    uVar12 = __ptr[6] + uVar11;\n    uVar13 = uVar12 * 0x100;\n    uVar14 = __ptr[7] + uVar13;\n    uVar15 = uVar14 * 0x100;\n    uVar7 = uVar15 + __ptr[8];\n    uVar16 = uVar7 * 0x100;\n    uVar8 = __ptr[9] + uVar16;\n    uVar17 = uVar8 * 0x100;\n    uVar9 = __ptr[10] + uVar17;\n    uVar18 = uVar9 * 0x100;\n    local_2c = __ptr[0xb] + uVar18;\n    local_28 = (((((((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +\n                  (uint)CARRY4((uint)__ptr[9],uVar16)) * 0x100 | uVar8 >> 0x18) +\n                (uint)CARRY4((uint)__ptr[10],uVar17)) * 0x100 | uVar9 >> 0x18) +\n               (uint)CARRY4((uint)__ptr[0xb],uVar18);\n    local_40 = __ptr + 0xc;\n    local_3c = local_6c - 0xc;\n    local_38 = local_68 + -1 + (uint)(0xb < local_6c);\n  }" ({ "{") (expression_statement "uVar7 = (uint)(0xc < local_6c);" (assignment_expression "uVar7 = (uint)(0xc < local_6c)" (identifier "uVar7") (= "=") (call_expression "(uint)(0xc < local_6c)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(0xc < local_6c)" (( "(") (binary_expression "0xc < local_6c" (number_literal "0xc") (< "<") (identifier "local_6c")) () ")")))) (; ";")) (expression_statement "uVar8 = -local_68;" (assignment_expression "uVar8 = -local_68" (identifier "uVar8") (= "=") (unary_expression "-local_68" (- "-") (identifier "local_68"))) (; ";")) (expression_statement "bVar20 = local_68 != 0 || uVar8 < uVar7;" (assignment_expression "bVar20 = local_68 != 0 || uVar8 < uVar7" (identifier "bVar20") (= "=") (binary_expression "local_68 != 0 || uVar8 < uVar7" (binary_expression "local_68 != 0" (identifier "local_68") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "uVar8 < uVar7" (identifier "uVar8") (< "<") (identifier "uVar7")))) (; ";")) (expression_statement "bVar21 = uVar8 == uVar7;" (assignment_expression "bVar21 = uVar8 == uVar7" (identifier "bVar21") (= "=") (binary_expression "uVar8 == uVar7" (identifier "uVar8") (== "==") (identifier "uVar7"))) (; ";")) (if_statement "if (local_68 == 0 && uVar8 >= uVar7) goto LAB_00041e89;" (if "if") (parenthesized_expression "(local_68 == 0 && uVar8 >= uVar7)" (( "(") (binary_expression "local_68 == 0 && uVar8 >= uVar7" (binary_expression "local_68 == 0" (identifier "local_68") (== "==") (number_literal "0")) (&& "&&") (binary_expression "uVar8 >= uVar7" (identifier "uVar8") (>= ">=") (identifier "uVar7"))) () ")")) (goto_statement "goto LAB_00041e89;" (goto "goto") (statement_identifier "LAB_00041e89") (; ";"))) (expression_statement "iVar6 = 5;" (assignment_expression "iVar6 = 5" (identifier "iVar6") (= "=") (number_literal "5")) (; ";")) (expression_statement "pbVar10 = __ptr;" (assignment_expression "pbVar10 = __ptr" (identifier "pbVar10") (= "=") (identifier "__ptr")) (; ";")) (expression_statement "pbVar19 = &DAT_0007d064;" (assignment_expression "pbVar19 = &DAT_0007d064" (identifier "pbVar19") (= "=") (pointer_expression "&DAT_0007d064" (& "&") (identifier "DAT_0007d064"))) (; ";")) (do_statement "do {\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      bVar20 = *pbVar10 < *pbVar19;\n      bVar21 = *pbVar10 == *pbVar19;\n      pbVar10 = pbVar10 + (uint)bVar22 * -2 + 1;\n      pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n    } while (bVar21);" (do "do") (compound_statement "{\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      bVar20 = *pbVar10 < *pbVar19;\n      bVar21 = *pbVar10 == *pbVar19;\n      pbVar10 = pbVar10 + (uint)bVar22 * -2 + 1;\n      pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;\n    }" ({ "{") (if_statement "if (iVar6 == 0) break;" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" (identifier "iVar6") (= "=") (binary_expression "iVar6 + -1" (identifier "iVar6") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar20 = *pbVar10 < *pbVar19;" (assignment_expression "bVar20 = *pbVar10 < *pbVar19" (identifier "bVar20") (= "=") (binary_expression "*pbVar10 < *pbVar19" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (< "<") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (; ";")) (expression_statement "bVar21 = *pbVar10 == *pbVar19;" (assignment_expression "bVar21 = *pbVar10 == *pbVar19" (identifier "bVar21") (= "=") (binary_expression "*pbVar10 == *pbVar19" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (== "==") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (; ";")) (expression_statement "pbVar10 = pbVar10 + (uint)bVar22 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (uint)bVar22 * -2 + 1" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + (uint)bVar22 * -2 + 1" (binary_expression "pbVar10 + (uint)bVar22 * -2" (identifier "pbVar10") (+ "+") (binary_expression "(uint)bVar22 * -2" (cast_expression "(uint)bVar22" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar22")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + (uint)bVar22 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar22 * -2" (identifier "pbVar19") (+ "+") (binary_expression "(uint)bVar22 * -2" (cast_expression "(uint)bVar22" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar22")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar21)" (( "(") (identifier "bVar21") () ")")) (; ";")) (if_statement "if ((!bVar20 && !bVar21) != bVar20) goto LAB_00041e89;" (if "if") (parenthesized_expression "((!bVar20 && !bVar21) != bVar20)" (( "(") (binary_expression "(!bVar20 && !bVar21) != bVar20" (parenthesized_expression "(!bVar20 && !bVar21)" (( "(") (binary_expression "!bVar20 && !bVar21" (unary_expression "!bVar20" (! "!") (identifier "bVar20")) (&& "&&") (unary_expression "!bVar21" (! "!") (identifier "bVar21"))) () ")")) (!= "!=") (identifier "bVar20")) () ")")) (goto_statement "goto LAB_00041e89;" (goto "goto") (statement_identifier "LAB_00041e89") (; ";"))) (expression_statement "uVar11 = (uint)CONCAT11(__ptr[4],__ptr[5]) * 0x100;" (assignment_expression "uVar11 = (uint)CONCAT11(__ptr[4],__ptr[5]) * 0x100" (identifier "uVar11") (= "=") (binary_expression "(uint)CONCAT11(__ptr[4],__ptr[5]) * 0x100" (cast_expression "(uint)CONCAT11(__ptr[4],__ptr[5])" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CONCAT11(__ptr[4],__ptr[5])" (identifier "CONCAT11") (argument_list "(__ptr[4],__ptr[5])" (( "(") (subscript_expression "__ptr[4]" (identifier "__ptr") ([ "[") (number_literal "4") (] "]")) (, ",") (subscript_expression "__ptr[5]" (identifier "__ptr") ([ "[") (number_literal "5") (] "]")) () ")")))) (* "*") (number_literal "0x100"))) (; ";")) (expression_statement "uVar12 = __ptr[6] + uVar11;" (assignment_expression "uVar12 = __ptr[6] + uVar11" (identifier "uVar12") (= "=") (binary_expression "__ptr[6] + uVar11" (subscript_expression "__ptr[6]" (identifier "__ptr") ([ "[") (number_literal "6") (] "]")) (+ "+") (identifier "uVar11"))) (; ";")) (expression_statement "uVar13 = uVar12 * 0x100;" (assignment_expression "uVar13 = uVar12 * 0x100" (identifier "uVar13") (= "=") (binary_expression "uVar12 * 0x100" (identifier "uVar12") (* "*") (number_literal "0x100"))) (; ";")) (expression_statement "uVar14 = __ptr[7] + uVar13;" (assignment_expression "uVar14 = __ptr[7] + uVar13" (identifier "uVar14") (= "=") (binary_expression "__ptr[7] + uVar13" (subscript_expression "__ptr[7]" (identifier "__ptr") ([ "[") (number_literal "7") (] "]")) (+ "+") (identifier "uVar13"))) (; ";")) (expression_statement "uVar15 = uVar14 * 0x100;" (assignment_expression "uVar15 = uVar14 * 0x100" (identifier "uVar15") (= "=") (binary_expression "uVar14 * 0x100" (identifier "uVar14") (* "*") (number_literal "0x100"))) (; ";")) (expression_statement "uVar7 = uVar15 + __ptr[8];" (assignment_expression "uVar7 = uVar15 + __ptr[8]" (identifier "uVar7") (= "=") (binary_expression "uVar15 + __ptr[8]" (identifier "uVar15") (+ "+") (subscript_expression "__ptr[8]" (identifier "__ptr") ([ "[") (number_literal "8") (] "]")))) (; ";")) (expression_statement "uVar16 = uVar7 * 0x100;" (assignment_expression "uVar16 = uVar7 * 0x100" (identifier "uVar16") (= "=") (binary_expression "uVar7 * 0x100" (identifier "uVar7") (* "*") (number_literal "0x100"))) (; ";")) (expression_statement "uVar8 = __ptr[9] + uVar16;" (assignment_expression "uVar8 = __ptr[9] + uVar16" (identifier "uVar8") (= "=") (binary_expression "__ptr[9] + uVar16" (subscript_expression "__ptr[9]" (identifier "__ptr") ([ "[") (number_literal "9") (] "]")) (+ "+") (identifier "uVar16"))) (; ";")) (expression_statement "uVar17 = uVar8 * 0x100;" (assignment_expression "uVar17 = uVar8 * 0x100" (identifier "uVar17") (= "=") (binary_expression "uVar8 * 0x100" (identifier "uVar8") (* "*") (number_literal "0x100"))) (; ";")) (expression_statement "uVar9 = __ptr[10] + uVar17;" (assignment_expression "uVar9 = __ptr[10] + uVar17" (identifier "uVar9") (= "=") (binary_expression "__ptr[10] + uVar17" (subscript_expression "__ptr[10]" (identifier "__ptr") ([ "[") (number_literal "10") (] "]")) (+ "+") (identifier "uVar17"))) (; ";")) (expression_statement "uVar18 = uVar9 * 0x100;" (assignment_expression "uVar18 = uVar9 * 0x100" (identifier "uVar18") (= "=") (binary_expression "uVar9 * 0x100" (identifier "uVar9") (* "*") (number_literal "0x100"))) (; ";")) (expression_statement "local_2c = __ptr[0xb] + uVar18;" (assignment_expression "local_2c = __ptr[0xb] + uVar18" (identifier "local_2c") (= "=") (binary_expression "__ptr[0xb] + uVar18" (subscript_expression "__ptr[0xb]" (identifier "__ptr") ([ "[") (number_literal "0xb") (] "]")) (+ "+") (identifier "uVar18"))) (; ";")) (expression_statement "local_28 = (((((((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +\n                  (uint)CARRY4((uint)__ptr[9],uVar16)) * 0x100 | uVar8 >> 0x18) +\n                (uint)CARRY4((uint)__ptr[10],uVar17)) * 0x100 | uVar9 >> 0x18) +\n               (uint)CARRY4((uint)__ptr[0xb],uVar18);" (assignment_expression "local_28 = (((((((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +\n                  (uint)CARRY4((uint)__ptr[9],uVar16)) * 0x100 | uVar8 >> 0x18) +\n                (uint)CARRY4((uint)__ptr[10],uVar17)) * 0x100 | uVar9 >> 0x18) +\n               (uint)CARRY4((uint)__ptr[0xb],uVar18)" (identifier "local_28") (= "=") (binary_expression "(((((((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +\n                  (uint)CARRY4((uint)__ptr[9],uVar16)) * 0x100 | uVar8 >> 0x18) +\n                (uint)CARRY4((uint)__ptr[10],uVar17)) * 0x100 | uVar9 >> 0x18) +\n               (uint)CARRY4((uint)__ptr[0xb],uVar18)" (parenthesized_expression "(((((((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +\n                  (uint)CARRY4((uint)__ptr[9],uVar16)) * 0x100 | uVar8 >> 0x18) +\n                (uint)CARRY4((uint)__ptr[10],uVar17)) * 0x100 | uVar9 >> 0x18)" (( "(") (binary_expression "((((((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +\n                  (uint)CARRY4((uint)__ptr[9],uVar16)) * 0x100 | uVar8 >> 0x18) +\n                (uint)CARRY4((uint)__ptr[10],uVar17)) * 0x100 | uVar9 >> 0x18" (binary_expression "((((((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +\n                  (uint)CARRY4((uint)__ptr[9],uVar16)) * 0x100 | uVar8 >> 0x18) +\n                (uint)CARRY4((uint)__ptr[10],uVar17)) * 0x100" (parenthesized_expression "((((((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +\n                  (uint)CARRY4((uint)__ptr[9],uVar16)) * 0x100 | uVar8 >> 0x18) +\n                (uint)CARRY4((uint)__ptr[10],uVar17))" (( "(") (binary_expression "(((((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +\n                  (uint)CARRY4((uint)__ptr[9],uVar16)) * 0x100 | uVar8 >> 0x18) +\n                (uint)CARRY4((uint)__ptr[10],uVar17)" (parenthesized_expression "(((((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +\n                  (uint)CARRY4((uint)__ptr[9],uVar16)) * 0x100 | uVar8 >> 0x18)" (( "(") (binary_expression "((((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +\n                  (uint)CARRY4((uint)__ptr[9],uVar16)) * 0x100 | uVar8 >> 0x18" (binary_expression "((((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +\n                  (uint)CARRY4((uint)__ptr[9],uVar16)) * 0x100" (parenthesized_expression "((((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +\n                  (uint)CARRY4((uint)__ptr[9],uVar16))" (( "(") (binary_expression "(((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +\n                  (uint)CARRY4((uint)__ptr[9],uVar16)" (parenthesized_expression "(((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18)" (( "(") (binary_expression "((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18" (binary_expression "((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100" (parenthesized_expression "((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8]))" (( "(") (binary_expression "(((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +\n                    (uint)CARRY4(uVar15,(uint)__ptr[8])" (parenthesized_expression "(((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18)" (( "(") (binary_expression "((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18" (binary_expression "((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100" (parenthesized_expression "((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13))" (( "(") (binary_expression "(((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +\n                      (uint)CARRY4((uint)__ptr[7],uVar13)" (parenthesized_expression "(((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18)" (( "(") (binary_expression "((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18" (binary_expression "((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100" (parenthesized_expression "((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11))" (( "(") (binary_expression "(uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +\n                        (uint)CARRY4((uint)__ptr[6],uVar11)" (binary_expression "(uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100" (cast_expression "(uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8)" (identifier "CARRY4") (argument_list "((uint)__ptr[5],(uint)__ptr[4] << 8)" (( "(") (cast_expression "(uint)__ptr[5]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "__ptr[5]" (identifier "__ptr") ([ "[") (number_literal "5") (] "]"))) (, ",") (binary_expression "(uint)__ptr[4] << 8" (cast_expression "(uint)__ptr[4]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "__ptr[4]" (identifier "__ptr") ([ "[") (number_literal "4") (] "]"))) (<< "<<") (number_literal "8")) () ")")))) (* "*") (number_literal "0x100")) (+ "+") (cast_expression "(uint)CARRY4((uint)__ptr[6],uVar11)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4((uint)__ptr[6],uVar11)" (identifier "CARRY4") (argument_list "((uint)__ptr[6],uVar11)" (( "(") (cast_expression "(uint)__ptr[6]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "__ptr[6]" (identifier "__ptr") ([ "[") (number_literal "6") (] "]"))) (, ",") (identifier "uVar11") () ")"))))) () ")")) (* "*") (number_literal "0x100")) (| "|") (binary_expression "uVar12 >> 0x18" (identifier "uVar12") (>> ">>") (number_literal "0x18"))) () ")")) (+ "+") (cast_expression "(uint)CARRY4((uint)__ptr[7],uVar13)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4((uint)__ptr[7],uVar13)" (identifier "CARRY4") (argument_list "((uint)__ptr[7],uVar13)" (( "(") (cast_expression "(uint)__ptr[7]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "__ptr[7]" (identifier "__ptr") ([ "[") (number_literal "7") (] "]"))) (, ",") (identifier "uVar13") () ")"))))) () ")")) (* "*") (number_literal "0x100")) (| "|") (binary_expression "uVar14 >> 0x18" (identifier "uVar14") (>> ">>") (number_literal "0x18"))) () ")")) (+ "+") (cast_expression "(uint)CARRY4(uVar15,(uint)__ptr[8])" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar15,(uint)__ptr[8])" (identifier "CARRY4") (argument_list "(uVar15,(uint)__ptr[8])" (( "(") (identifier "uVar15") (, ",") (cast_expression "(uint)__ptr[8]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "__ptr[8]" (identifier "__ptr") ([ "[") (number_literal "8") (] "]"))) () ")"))))) () ")")) (* "*") (number_literal "0x100")) (| "|") (binary_expression "uVar7 >> 0x18" (identifier "uVar7") (>> ">>") (number_literal "0x18"))) () ")")) (+ "+") (cast_expression "(uint)CARRY4((uint)__ptr[9],uVar16)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4((uint)__ptr[9],uVar16)" (identifier "CARRY4") (argument_list "((uint)__ptr[9],uVar16)" (( "(") (cast_expression "(uint)__ptr[9]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "__ptr[9]" (identifier "__ptr") ([ "[") (number_literal "9") (] "]"))) (, ",") (identifier "uVar16") () ")"))))) () ")")) (* "*") (number_literal "0x100")) (| "|") (binary_expression "uVar8 >> 0x18" (identifier "uVar8") (>> ">>") (number_literal "0x18"))) () ")")) (+ "+") (cast_expression "(uint)CARRY4((uint)__ptr[10],uVar17)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4((uint)__ptr[10],uVar17)" (identifier "CARRY4") (argument_list "((uint)__ptr[10],uVar17)" (( "(") (cast_expression "(uint)__ptr[10]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "__ptr[10]" (identifier "__ptr") ([ "[") (number_literal "10") (] "]"))) (, ",") (identifier "uVar17") () ")"))))) () ")")) (* "*") (number_literal "0x100")) (| "|") (binary_expression "uVar9 >> 0x18" (identifier "uVar9") (>> ">>") (number_literal "0x18"))) () ")")) (+ "+") (cast_expression "(uint)CARRY4((uint)__ptr[0xb],uVar18)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4((uint)__ptr[0xb],uVar18)" (identifier "CARRY4") (argument_list "((uint)__ptr[0xb],uVar18)" (( "(") (cast_expression "(uint)__ptr[0xb]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "__ptr[0xb]" (identifier "__ptr") ([ "[") (number_literal "0xb") (] "]"))) (, ",") (identifier "uVar18") () ")")))))) (; ";")) (expression_statement "local_40 = __ptr + 0xc;" (assignment_expression "local_40 = __ptr + 0xc" (identifier "local_40") (= "=") (binary_expression "__ptr + 0xc" (identifier "__ptr") (+ "+") (number_literal "0xc"))) (; ";")) (expression_statement "local_3c = local_6c - 0xc;" (assignment_expression "local_3c = local_6c - 0xc" (identifier "local_3c") (= "=") (binary_expression "local_6c - 0xc" (identifier "local_6c") (- "-") (number_literal "0xc"))) (; ";")) (expression_statement "local_38 = local_68 + -1 + (uint)(0xb < local_6c);" (assignment_expression "local_38 = local_68 + -1 + (uint)(0xb < local_6c)" (identifier "local_38") (= "=") (binary_expression "local_68 + -1 + (uint)(0xb < local_6c)" (binary_expression "local_68 + -1" (identifier "local_68") (+ "+") (number_literal "-1")) (+ "+") (call_expression "(uint)(0xb < local_6c)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(0xb < local_6c)" (( "(") (binary_expression "0xb < local_6c" (number_literal "0xb") (< "<") (identifier "local_6c")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    uVar7 = FUN_0001be30(local_6c,local_68);\n    if (local_30 != 1) {\n      uVar3 = FUN_00022190();\n      uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(uVar5,uVar3,local_30);\n      return false;\n    }\n    local_40 = __ptr + uVar7;\n    bVar20 = local_3c < uVar7;\n    local_3c = local_3c - uVar7;\n    local_38 = local_38 - (uint)bVar20;\n  }" (else "else") (compound_statement "{\n    uVar7 = FUN_0001be30(local_6c,local_68);\n    if (local_30 != 1) {\n      uVar3 = FUN_00022190();\n      uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(uVar5,uVar3,local_30);\n      return false;\n    }\n    local_40 = __ptr + uVar7;\n    bVar20 = local_3c < uVar7;\n    local_3c = local_3c - uVar7;\n    local_38 = local_38 - (uint)bVar20;\n  }" ({ "{") (expression_statement "uVar7 = FUN_0001be30(local_6c,local_68);" (assignment_expression "uVar7 = FUN_0001be30(local_6c,local_68)" (identifier "uVar7") (= "=") (call_expression "FUN_0001be30(local_6c,local_68)" (identifier "FUN_0001be30") (argument_list "(local_6c,local_68)" (( "(") (identifier "local_6c") (, ",") (identifier "local_68") () ")")))) (; ";")) (if_statement "if (local_30 != 1) {\n      uVar3 = FUN_00022190();\n      uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(uVar5,uVar3,local_30);\n      return false;\n    }" (if "if") (parenthesized_expression "(local_30 != 1)" (( "(") (binary_expression "local_30 != 1" (identifier "local_30") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n      uVar3 = FUN_00022190();\n      uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(uVar5,uVar3,local_30);\n      return false;\n    }" ({ "{") (expression_statement "uVar3 = FUN_00022190();" (assignment_expression "uVar3 = FUN_00022190()" (identifier "uVar3") (= "=") (call_expression "FUN_00022190()" (identifier "FUN_00022190") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);" (assignment_expression "uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5)" (identifier "uVar5") (= "=") (call_expression "dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5)" (identifier "dcgettext") (argument_list "(0,"section \'%s\' has unsupported compress type: %d\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""section \'%s\' has unsupported compress type: %d\n"" (" """) (string_content "section ") (escape_sequence "\'") (string_content "%s") (escape_sequence "\'") (string_content " has unsupported compress type: %d") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "warn(uVar5,uVar3,local_30);" (call_expression "warn(uVar5,uVar3,local_30)" (identifier "warn") (argument_list "(uVar5,uVar3,local_30)" (( "(") (identifier "uVar5") (, ",") (identifier "uVar3") (, ",") (identifier "local_30") () ")"))) (; ";")) (return_statement "return false;" (return "return") (false "false") (; ";")) (} "}"))) (expression_statement "local_40 = __ptr + uVar7;" (assignment_expression "local_40 = __ptr + uVar7" (identifier "local_40") (= "=") (binary_expression "__ptr + uVar7" (identifier "__ptr") (+ "+") (identifier "uVar7"))) (; ";")) (expression_statement "bVar20 = local_3c < uVar7;" (assignment_expression "bVar20 = local_3c < uVar7" (identifier "bVar20") (= "=") (binary_expression "local_3c < uVar7" (identifier "local_3c") (< "<") (identifier "uVar7"))) (; ";")) (expression_statement "local_3c = local_3c - uVar7;" (assignment_expression "local_3c = local_3c - uVar7" (identifier "local_3c") (= "=") (binary_expression "local_3c - uVar7" (identifier "local_3c") (- "-") (identifier "uVar7"))) (; ";")) (expression_statement "local_38 = local_38 - (uint)bVar20;" (assignment_expression "local_38 = local_38 - (uint)bVar20" (identifier "local_38") (= "=") (binary_expression "local_38 - (uint)bVar20" (identifier "local_38") (- "-") (cast_expression "(uint)bVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar20")))) (; ";")) (} "}")))) (if_statement "if (local_28 != 0 || local_2c != 0) {\n    iVar6 = FUN_0001d690(&local_3c);\n    if (iVar6 == 0) {\n      uVar3 = FUN_00022190();\n      uVar5 = dcgettext(0,"Unable to decompress section %s\n",5);\n      error(uVar5,uVar3);\n      return false;\n    }\n    local_6c = local_3c;\n    local_68 = local_38;\n    pbVar1 = local_40;\n  }" (if "if") (parenthesized_expression "(local_28 != 0 || local_2c != 0)" (( "(") (binary_expression "local_28 != 0 || local_2c != 0" (binary_expression "local_28 != 0" (identifier "local_28") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "local_2c != 0" (identifier "local_2c") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n    iVar6 = FUN_0001d690(&local_3c);\n    if (iVar6 == 0) {\n      uVar3 = FUN_00022190();\n      uVar5 = dcgettext(0,"Unable to decompress section %s\n",5);\n      error(uVar5,uVar3);\n      return false;\n    }\n    local_6c = local_3c;\n    local_68 = local_38;\n    pbVar1 = local_40;\n  }" ({ "{") (expression_statement "iVar6 = FUN_0001d690(&local_3c);" (assignment_expression "iVar6 = FUN_0001d690(&local_3c)" (identifier "iVar6") (= "=") (call_expression "FUN_0001d690(&local_3c)" (identifier "FUN_0001d690") (argument_list "(&local_3c)" (( "(") (pointer_expression "&local_3c" (& "&") (identifier "local_3c")) () ")")))) (; ";")) (if_statement "if (iVar6 == 0) {\n      uVar3 = FUN_00022190();\n      uVar5 = dcgettext(0,"Unable to decompress section %s\n",5);\n      error(uVar5,uVar3);\n      return false;\n    }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar3 = FUN_00022190();\n      uVar5 = dcgettext(0,"Unable to decompress section %s\n",5);\n      error(uVar5,uVar3);\n      return false;\n    }" ({ "{") (expression_statement "uVar3 = FUN_00022190();" (assignment_expression "uVar3 = FUN_00022190()" (identifier "uVar3") (= "=") (call_expression "FUN_00022190()" (identifier "FUN_00022190") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar5 = dcgettext(0,"Unable to decompress section %s\n",5);" (assignment_expression "uVar5 = dcgettext(0,"Unable to decompress section %s\n",5)" (identifier "uVar5") (= "=") (call_expression "dcgettext(0,"Unable to decompress section %s\n",5)" (identifier "dcgettext") (argument_list "(0,"Unable to decompress section %s\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Unable to decompress section %s\n"" (" """) (string_content "Unable to decompress section %s") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "error(uVar5,uVar3);" (call_expression "error(uVar5,uVar3)" (identifier "error") (argument_list "(uVar5,uVar3)" (( "(") (identifier "uVar5") (, ",") (identifier "uVar3") () ")"))) (; ";")) (return_statement "return false;" (return "return") (false "false") (; ";")) (} "}"))) (expression_statement "local_6c = local_3c;" (assignment_expression "local_6c = local_3c" (identifier "local_6c") (= "=") (identifier "local_3c")) (; ";")) (expression_statement "local_68 = local_38;" (assignment_expression "local_68 = local_38" (identifier "local_68") (= "=") (identifier "local_38")) (; ";")) (expression_statement "pbVar1 = local_40;" (assignment_expression "pbVar1 = local_40" (identifier "pbVar1") (= "=") (identifier "local_40")) (; ";")) (} "}"))) (labeled_statement "LAB_00041e89:\n  local_40 = pbVar1;" (statement_identifier "LAB_00041e89") (: ":") (expression_statement "local_40 = pbVar1;" (assignment_expression "local_40 = pbVar1" (identifier "local_40") (= "=") (identifier "pbVar1")) (; ";"))) (if_statement "if (param_3 == 0) {\n    uVar7 = *(uint *)(param_2 + 0x54);\n    uVar8 = *(uint *)(param_2 + 0x5c);\n    for (uVar9 = uVar8; uVar9 < uVar8 + uVar7 * 0x48; uVar9 = uVar9 + 0x48) {\n      if ((((*(int *)(uVar9 + 4) == 4) || (*(int *)(uVar9 + 4) == 9)) &&\n          (*(uint *)(uVar9 + 0x2c) < uVar7)) &&\n         (((param_1 == uVar8 + *(uint *)(uVar9 + 0x2c) * 0x48 &&\n           (*(int *)(uVar9 + 0x24) != 0 || *(int *)(uVar9 + 0x20) != 0)) &&\n          (*(uint *)(uVar9 + 0x28) < uVar7)))) {\n        pcVar4 = (char *)dcgettext(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5);\n        printf(pcVar4);\n        break;\n      }\n    }\n  }\n  else {\n    iVar6 = FUN_0003fb10(local_6c,local_68,0,0);\n    if (iVar6 == 0) {\n      return false;\n    }\n  }" (if "if") (parenthesized_expression "(param_3 == 0)" (( "(") (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar7 = *(uint *)(param_2 + 0x54);\n    uVar8 = *(uint *)(param_2 + 0x5c);\n    for (uVar9 = uVar8; uVar9 < uVar8 + uVar7 * 0x48; uVar9 = uVar9 + 0x48) {\n      if ((((*(int *)(uVar9 + 4) == 4) || (*(int *)(uVar9 + 4) == 9)) &&\n          (*(uint *)(uVar9 + 0x2c) < uVar7)) &&\n         (((param_1 == uVar8 + *(uint *)(uVar9 + 0x2c) * 0x48 &&\n           (*(int *)(uVar9 + 0x24) != 0 || *(int *)(uVar9 + 0x20) != 0)) &&\n          (*(uint *)(uVar9 + 0x28) < uVar7)))) {\n        pcVar4 = (char *)dcgettext(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5);\n        printf(pcVar4);\n        break;\n      }\n    }\n  }" ({ "{") (expression_statement "uVar7 = *(uint *)(param_2 + 0x54);" (assignment_expression "uVar7 = *(uint *)(param_2 + 0x54)" (identifier "uVar7") (= "=") (pointer_expression "*(uint *)(param_2 + 0x54)" (* "*") (cast_expression "(uint *)(param_2 + 0x54)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x54)" (( "(") (binary_expression "param_2 + 0x54" (identifier "param_2") (+ "+") (number_literal "0x54")) () ")"))))) (; ";")) (expression_statement "uVar8 = *(uint *)(param_2 + 0x5c);" (assignment_expression "uVar8 = *(uint *)(param_2 + 0x5c)" (identifier "uVar8") (= "=") (pointer_expression "*(uint *)(param_2 + 0x5c)" (* "*") (cast_expression "(uint *)(param_2 + 0x5c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x5c)" (( "(") (binary_expression "param_2 + 0x5c" (identifier "param_2") (+ "+") (number_literal "0x5c")) () ")"))))) (; ";")) (for_statement "for (uVar9 = uVar8; uVar9 < uVar8 + uVar7 * 0x48; uVar9 = uVar9 + 0x48) {\n      if ((((*(int *)(uVar9 + 4) == 4) || (*(int *)(uVar9 + 4) == 9)) &&\n          (*(uint *)(uVar9 + 0x2c) < uVar7)) &&\n         (((param_1 == uVar8 + *(uint *)(uVar9 + 0x2c) * 0x48 &&\n           (*(int *)(uVar9 + 0x24) != 0 || *(int *)(uVar9 + 0x20) != 0)) &&\n          (*(uint *)(uVar9 + 0x28) < uVar7)))) {\n        pcVar4 = (char *)dcgettext(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5);\n        printf(pcVar4);\n        break;\n      }\n    }" (for "for") (( "(") (assignment_expression "uVar9 = uVar8" (identifier "uVar9") (= "=") (identifier "uVar8")) (; ";") (binary_expression "uVar9 < uVar8 + uVar7 * 0x48" (identifier "uVar9") (< "<") (binary_expression "uVar8 + uVar7 * 0x48" (identifier "uVar8") (+ "+") (binary_expression "uVar7 * 0x48" (identifier "uVar7") (* "*") (number_literal "0x48")))) (; ";") (assignment_expression "uVar9 = uVar9 + 0x48" (identifier "uVar9") (= "=") (binary_expression "uVar9 + 0x48" (identifier "uVar9") (+ "+") (number_literal "0x48"))) () ")") (compound_statement "{\n      if ((((*(int *)(uVar9 + 4) == 4) || (*(int *)(uVar9 + 4) == 9)) &&\n          (*(uint *)(uVar9 + 0x2c) < uVar7)) &&\n         (((param_1 == uVar8 + *(uint *)(uVar9 + 0x2c) * 0x48 &&\n           (*(int *)(uVar9 + 0x24) != 0 || *(int *)(uVar9 + 0x20) != 0)) &&\n          (*(uint *)(uVar9 + 0x28) < uVar7)))) {\n        pcVar4 = (char *)dcgettext(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5);\n        printf(pcVar4);\n        break;\n      }\n    }" ({ "{") (if_statement "if ((((*(int *)(uVar9 + 4) == 4) || (*(int *)(uVar9 + 4) == 9)) &&\n          (*(uint *)(uVar9 + 0x2c) < uVar7)) &&\n         (((param_1 == uVar8 + *(uint *)(uVar9 + 0x2c) * 0x48 &&\n           (*(int *)(uVar9 + 0x24) != 0 || *(int *)(uVar9 + 0x20) != 0)) &&\n          (*(uint *)(uVar9 + 0x28) < uVar7)))) {\n        pcVar4 = (char *)dcgettext(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5);\n        printf(pcVar4);\n        break;\n      }" (if "if") (parenthesized_expression "((((*(int *)(uVar9 + 4) == 4) || (*(int *)(uVar9 + 4) == 9)) &&\n          (*(uint *)(uVar9 + 0x2c) < uVar7)) &&\n         (((param_1 == uVar8 + *(uint *)(uVar9 + 0x2c) * 0x48 &&\n           (*(int *)(uVar9 + 0x24) != 0 || *(int *)(uVar9 + 0x20) != 0)) &&\n          (*(uint *)(uVar9 + 0x28) < uVar7))))" (( "(") (binary_expression "(((*(int *)(uVar9 + 4) == 4) || (*(int *)(uVar9 + 4) == 9)) &&\n          (*(uint *)(uVar9 + 0x2c) < uVar7)) &&\n         (((param_1 == uVar8 + *(uint *)(uVar9 + 0x2c) * 0x48 &&\n           (*(int *)(uVar9 + 0x24) != 0 || *(int *)(uVar9 + 0x20) != 0)) &&\n          (*(uint *)(uVar9 + 0x28) < uVar7)))" (parenthesized_expression "(((*(int *)(uVar9 + 4) == 4) || (*(int *)(uVar9 + 4) == 9)) &&\n          (*(uint *)(uVar9 + 0x2c) < uVar7))" (( "(") (binary_expression "((*(int *)(uVar9 + 4) == 4) || (*(int *)(uVar9 + 4) == 9)) &&\n          (*(uint *)(uVar9 + 0x2c) < uVar7)" (parenthesized_expression "((*(int *)(uVar9 + 4) == 4) || (*(int *)(uVar9 + 4) == 9))" (( "(") (binary_expression "(*(int *)(uVar9 + 4) == 4) || (*(int *)(uVar9 + 4) == 9)" (parenthesized_expression "(*(int *)(uVar9 + 4) == 4)" (( "(") (binary_expression "*(int *)(uVar9 + 4) == 4" (pointer_expression "*(int *)(uVar9 + 4)" (* "*") (cast_expression "(int *)(uVar9 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar9 + 4)" (( "(") (binary_expression "uVar9 + 4" (identifier "uVar9") (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "4")) () ")")) (|| "||") (parenthesized_expression "(*(int *)(uVar9 + 4) == 9)" (( "(") (binary_expression "*(int *)(uVar9 + 4) == 9" (pointer_expression "*(int *)(uVar9 + 4)" (* "*") (cast_expression "(int *)(uVar9 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar9 + 4)" (( "(") (binary_expression "uVar9 + 4" (identifier "uVar9") (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "9")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(uint *)(uVar9 + 0x2c) < uVar7)" (( "(") (binary_expression "*(uint *)(uVar9 + 0x2c) < uVar7" (pointer_expression "*(uint *)(uVar9 + 0x2c)" (* "*") (cast_expression "(uint *)(uVar9 + 0x2c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar9 + 0x2c)" (( "(") (binary_expression "uVar9 + 0x2c" (identifier "uVar9") (+ "+") (number_literal "0x2c")) () ")")))) (< "<") (identifier "uVar7")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(((param_1 == uVar8 + *(uint *)(uVar9 + 0x2c) * 0x48 &&\n           (*(int *)(uVar9 + 0x24) != 0 || *(int *)(uVar9 + 0x20) != 0)) &&\n          (*(uint *)(uVar9 + 0x28) < uVar7)))" (( "(") (parenthesized_expression "((param_1 == uVar8 + *(uint *)(uVar9 + 0x2c) * 0x48 &&\n           (*(int *)(uVar9 + 0x24) != 0 || *(int *)(uVar9 + 0x20) != 0)) &&\n          (*(uint *)(uVar9 + 0x28) < uVar7))" (( "(") (binary_expression "(param_1 == uVar8 + *(uint *)(uVar9 + 0x2c) * 0x48 &&\n           (*(int *)(uVar9 + 0x24) != 0 || *(int *)(uVar9 + 0x20) != 0)) &&\n          (*(uint *)(uVar9 + 0x28) < uVar7)" (parenthesized_expression "(param_1 == uVar8 + *(uint *)(uVar9 + 0x2c) * 0x48 &&\n           (*(int *)(uVar9 + 0x24) != 0 || *(int *)(uVar9 + 0x20) != 0))" (( "(") (binary_expression "param_1 == uVar8 + *(uint *)(uVar9 + 0x2c) * 0x48 &&\n           (*(int *)(uVar9 + 0x24) != 0 || *(int *)(uVar9 + 0x20) != 0)" (binary_expression "param_1 == uVar8 + *(uint *)(uVar9 + 0x2c) * 0x48" (identifier "param_1") (== "==") (binary_expression "uVar8 + *(uint *)(uVar9 + 0x2c) * 0x48" (identifier "uVar8") (+ "+") (binary_expression "*(uint *)(uVar9 + 0x2c) * 0x48" (pointer_expression "*(uint *)(uVar9 + 0x2c)" (* "*") (cast_expression "(uint *)(uVar9 + 0x2c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar9 + 0x2c)" (( "(") (binary_expression "uVar9 + 0x2c" (identifier "uVar9") (+ "+") (number_literal "0x2c")) () ")")))) (* "*") (number_literal "0x48")))) (&& "&&") (parenthesized_expression "(*(int *)(uVar9 + 0x24) != 0 || *(int *)(uVar9 + 0x20) != 0)" (( "(") (binary_expression "*(int *)(uVar9 + 0x24) != 0 || *(int *)(uVar9 + 0x20) != 0" (binary_expression "*(int *)(uVar9 + 0x24) != 0" (pointer_expression "*(int *)(uVar9 + 0x24)" (* "*") (cast_expression "(int *)(uVar9 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar9 + 0x24)" (( "(") (binary_expression "uVar9 + 0x24" (identifier "uVar9") (+ "+") (number_literal "0x24")) () ")")))) (!= "!=") (number_literal "0")) (|| "||") (binary_expression "*(int *)(uVar9 + 0x20) != 0" (pointer_expression "*(int *)(uVar9 + 0x20)" (* "*") (cast_expression "(int *)(uVar9 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar9 + 0x20)" (( "(") (binary_expression "uVar9 + 0x20" (identifier "uVar9") (+ "+") (number_literal "0x20")) () ")")))) (!= "!=") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(uint *)(uVar9 + 0x28) < uVar7)" (( "(") (binary_expression "*(uint *)(uVar9 + 0x28) < uVar7" (pointer_expression "*(uint *)(uVar9 + 0x28)" (* "*") (cast_expression "(uint *)(uVar9 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar9 + 0x28)" (( "(") (binary_expression "uVar9 + 0x28" (identifier "uVar9") (+ "+") (number_literal "0x28")) () ")")))) (< "<") (identifier "uVar7")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n        pcVar4 = (char *)dcgettext(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5);\n        printf(pcVar4);\n        break;\n      }" ({ "{") (expression_statement "pcVar4 = (char *)dcgettext(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5)" (identifier "pcVar4") (= "=") (cast_expression "(char *)dcgettext(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5)" (identifier "dcgettext") (argument_list "(0,\n                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"\n                                   ,5)" (( "(") (number_literal "0") (, ",") (string_literal "" NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"" (" """) (string_content " NOTE: This section has relocations against it, but these have NOT been applied to this dump.") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "printf(pcVar4);" (call_expression "printf(pcVar4)" (identifier "printf") (argument_list "(pcVar4)" (( "(") (identifier "pcVar4") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n    iVar6 = FUN_0003fb10(local_6c,local_68,0,0);\n    if (iVar6 == 0) {\n      return false;\n    }\n  }" (else "else") (compound_statement "{\n    iVar6 = FUN_0003fb10(local_6c,local_68,0,0);\n    if (iVar6 == 0) {\n      return false;\n    }\n  }" ({ "{") (expression_statement "iVar6 = FUN_0003fb10(local_6c,local_68,0,0);" (assignment_expression "iVar6 = FUN_0003fb10(local_6c,local_68,0,0)" (identifier "iVar6") (= "=") (call_expression "FUN_0003fb10(local_6c,local_68,0,0)" (identifier "FUN_0003fb10") (argument_list "(local_6c,local_68,0,0)" (( "(") (identifier "local_6c") (, ",") (identifier "local_68") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar6 == 0) {\n      return false;\n    }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return false;\n    }" ({ "{") (return_statement "return false;" (return "return") (false "false") (; ";")) (} "}"))) (} "}")))) (expression_statement "puVar2 = PTR_stdout_000b3fd8;" (assignment_expression "puVar2 = PTR_stdout_000b3fd8" (identifier "puVar2") (= "=") (identifier "PTR_stdout_000b3fd8")) (; ";")) (expression_statement "local_64 = *(uint *)(param_1 + 0x10);" (assignment_expression "local_64 = *(uint *)(param_1 + 0x10)" (identifier "local_64") (= "=") (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")) () ")"))))) (; ";")) (if_statement "if (local_68 != 0 || local_6c != 0) {\n    do {\n      uVar7 = 0x10;\n      if (local_68 == 0 && (uint)(0x10 < local_6c) <= (uint)-local_68) {\n        uVar7 = local_6c;\n      }\n      uVar9 = 0;\n      uVar8 = local_64;\n      printf("  0x%8.8lx ",local_64);\n      do {\n        while ((int)uVar9 < (int)uVar7) {\n          uVar8 = (uint)local_40[uVar9];\n          printf("%2.2x",uVar8);\n          if ((uVar9 & 3) == 3) goto LAB_00041fd4;\nLAB_00041faf:\n          uVar9 = uVar9 + 1;\n          if (uVar9 == 0x10) goto LAB_00041fe9;\n        }\n        printf("  ",uVar8);\n        if ((uVar9 & 3) != 3) goto LAB_00041faf;\nLAB_00041fd4:\n        uVar9 = uVar9 + 1;\n        putchar(0x20);\n      } while (uVar9 != 0x10);\nLAB_00041fe9:\n      iVar6 = 0;\n      do {\n        while (pbVar1 = local_40 + iVar6, *pbVar1 - 0x20 < 0x5f) {\n          iVar6 = iVar6 + 1;\n          putchar((uint)*pbVar1);\n          if ((int)uVar7 <= iVar6) goto LAB_00042024;\n        }\n        iVar6 = iVar6 + 1;\n        putchar(0x2e);\n      } while (iVar6 < (int)uVar7);\nLAB_00042024:\n      local_40 = local_40 + uVar7;\n      putc(10,*(FILE **)puVar2);\n      local_64 = local_64 + uVar7;\n      bVar20 = local_6c < uVar7;\n      local_6c = local_6c - uVar7;\n      local_68 = (local_68 - ((int)uVar7 >> 0x1f)) - (uint)bVar20;\n    } while (local_68 != 0 || local_6c != 0);\n  }" (if "if") (parenthesized_expression "(local_68 != 0 || local_6c != 0)" (( "(") (binary_expression "local_68 != 0 || local_6c != 0" (binary_expression "local_68 != 0" (identifier "local_68") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "local_6c != 0" (identifier "local_6c") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n    do {\n      uVar7 = 0x10;\n      if (local_68 == 0 && (uint)(0x10 < local_6c) <= (uint)-local_68) {\n        uVar7 = local_6c;\n      }\n      uVar9 = 0;\n      uVar8 = local_64;\n      printf("  0x%8.8lx ",local_64);\n      do {\n        while ((int)uVar9 < (int)uVar7) {\n          uVar8 = (uint)local_40[uVar9];\n          printf("%2.2x",uVar8);\n          if ((uVar9 & 3) == 3) goto LAB_00041fd4;\nLAB_00041faf:\n          uVar9 = uVar9 + 1;\n          if (uVar9 == 0x10) goto LAB_00041fe9;\n        }\n        printf("  ",uVar8);\n        if ((uVar9 & 3) != 3) goto LAB_00041faf;\nLAB_00041fd4:\n        uVar9 = uVar9 + 1;\n        putchar(0x20);\n      } while (uVar9 != 0x10);\nLAB_00041fe9:\n      iVar6 = 0;\n      do {\n        while (pbVar1 = local_40 + iVar6, *pbVar1 - 0x20 < 0x5f) {\n          iVar6 = iVar6 + 1;\n          putchar((uint)*pbVar1);\n          if ((int)uVar7 <= iVar6) goto LAB_00042024;\n        }\n        iVar6 = iVar6 + 1;\n        putchar(0x2e);\n      } while (iVar6 < (int)uVar7);\nLAB_00042024:\n      local_40 = local_40 + uVar7;\n      putc(10,*(FILE **)puVar2);\n      local_64 = local_64 + uVar7;\n      bVar20 = local_6c < uVar7;\n      local_6c = local_6c - uVar7;\n      local_68 = (local_68 - ((int)uVar7 >> 0x1f)) - (uint)bVar20;\n    } while (local_68 != 0 || local_6c != 0);\n  }" ({ "{") (do_statement "do {\n      uVar7 = 0x10;\n      if (local_68 == 0 && (uint)(0x10 < local_6c) <= (uint)-local_68) {\n        uVar7 = local_6c;\n      }\n      uVar9 = 0;\n      uVar8 = local_64;\n      printf("  0x%8.8lx ",local_64);\n      do {\n        while ((int)uVar9 < (int)uVar7) {\n          uVar8 = (uint)local_40[uVar9];\n          printf("%2.2x",uVar8);\n          if ((uVar9 & 3) == 3) goto LAB_00041fd4;\nLAB_00041faf:\n          uVar9 = uVar9 + 1;\n          if (uVar9 == 0x10) goto LAB_00041fe9;\n        }\n        printf("  ",uVar8);\n        if ((uVar9 & 3) != 3) goto LAB_00041faf;\nLAB_00041fd4:\n        uVar9 = uVar9 + 1;\n        putchar(0x20);\n      } while (uVar9 != 0x10);\nLAB_00041fe9:\n      iVar6 = 0;\n      do {\n        while (pbVar1 = local_40 + iVar6, *pbVar1 - 0x20 < 0x5f) {\n          iVar6 = iVar6 + 1;\n          putchar((uint)*pbVar1);\n          if ((int)uVar7 <= iVar6) goto LAB_00042024;\n        }\n        iVar6 = iVar6 + 1;\n        putchar(0x2e);\n      } while (iVar6 < (int)uVar7);\nLAB_00042024:\n      local_40 = local_40 + uVar7;\n      putc(10,*(FILE **)puVar2);\n      local_64 = local_64 + uVar7;\n      bVar20 = local_6c < uVar7;\n      local_6c = local_6c - uVar7;\n      local_68 = (local_68 - ((int)uVar7 >> 0x1f)) - (uint)bVar20;\n    } while (local_68 != 0 || local_6c != 0);" (do "do") (compound_statement "{\n      uVar7 = 0x10;\n      if (local_68 == 0 && (uint)(0x10 < local_6c) <= (uint)-local_68) {\n        uVar7 = local_6c;\n      }\n      uVar9 = 0;\n      uVar8 = local_64;\n      printf("  0x%8.8lx ",local_64);\n      do {\n        while ((int)uVar9 < (int)uVar7) {\n          uVar8 = (uint)local_40[uVar9];\n          printf("%2.2x",uVar8);\n          if ((uVar9 & 3) == 3) goto LAB_00041fd4;\nLAB_00041faf:\n          uVar9 = uVar9 + 1;\n          if (uVar9 == 0x10) goto LAB_00041fe9;\n        }\n        printf("  ",uVar8);\n        if ((uVar9 & 3) != 3) goto LAB_00041faf;\nLAB_00041fd4:\n        uVar9 = uVar9 + 1;\n        putchar(0x20);\n      } while (uVar9 != 0x10);\nLAB_00041fe9:\n      iVar6 = 0;\n      do {\n        while (pbVar1 = local_40 + iVar6, *pbVar1 - 0x20 < 0x5f) {\n          iVar6 = iVar6 + 1;\n          putchar((uint)*pbVar1);\n          if ((int)uVar7 <= iVar6) goto LAB_00042024;\n        }\n        iVar6 = iVar6 + 1;\n        putchar(0x2e);\n      } while (iVar6 < (int)uVar7);\nLAB_00042024:\n      local_40 = local_40 + uVar7;\n      putc(10,*(FILE **)puVar2);\n      local_64 = local_64 + uVar7;\n      bVar20 = local_6c < uVar7;\n      local_6c = local_6c - uVar7;\n      local_68 = (local_68 - ((int)uVar7 >> 0x1f)) - (uint)bVar20;\n    }" ({ "{") (expression_statement "uVar7 = 0x10;" (assignment_expression "uVar7 = 0x10" (identifier "uVar7") (= "=") (number_literal "0x10")) (; ";")) (if_statement "if (local_68 == 0 && (uint)(0x10 < local_6c) <= (uint)-local_68) {\n        uVar7 = local_6c;\n      }" (if "if") (parenthesized_expression "(local_68 == 0 && (uint)(0x10 < local_6c) <= (uint)-local_68)" (( "(") (binary_expression "local_68 == 0 && (uint)(0x10 < local_6c) <= (uint)-local_68" (binary_expression "local_68 == 0" (identifier "local_68") (== "==") (number_literal "0")) (&& "&&") (binary_expression "(uint)(0x10 < local_6c) <= (uint)-local_68" (call_expression "(uint)(0x10 < local_6c)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(0x10 < local_6c)" (( "(") (binary_expression "0x10 < local_6c" (number_literal "0x10") (< "<") (identifier "local_6c")) () ")"))) (<= "<=") (binary_expression "(uint)-local_68" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (- "-") (identifier "local_68")))) () ")")) (compound_statement "{\n        uVar7 = local_6c;\n      }" ({ "{") (expression_statement "uVar7 = local_6c;" (assignment_expression "uVar7 = local_6c" (identifier "uVar7") (= "=") (identifier "local_6c")) (; ";")) (} "}"))) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar8 = local_64;" (assignment_expression "uVar8 = local_64" (identifier "uVar8") (= "=") (identifier "local_64")) (; ";")) (expression_statement "printf("  0x%8.8lx ",local_64);" (call_expression "printf("  0x%8.8lx ",local_64)" (identifier "printf") (argument_list "("  0x%8.8lx ",local_64)" (( "(") (string_literal ""  0x%8.8lx "" (" """) (string_content "  0x%8.8lx ") (" """)) (, ",") (identifier "local_64") () ")"))) (; ";")) (do_statement "do {\n        while ((int)uVar9 < (int)uVar7) {\n          uVar8 = (uint)local_40[uVar9];\n          printf("%2.2x",uVar8);\n          if ((uVar9 & 3) == 3) goto LAB_00041fd4;\nLAB_00041faf:\n          uVar9 = uVar9 + 1;\n          if (uVar9 == 0x10) goto LAB_00041fe9;\n        }\n        printf("  ",uVar8);\n        if ((uVar9 & 3) != 3) goto LAB_00041faf;\nLAB_00041fd4:\n        uVar9 = uVar9 + 1;\n        putchar(0x20);\n      } while (uVar9 != 0x10);" (do "do") (compound_statement "{\n        while ((int)uVar9 < (int)uVar7) {\n          uVar8 = (uint)local_40[uVar9];\n          printf("%2.2x",uVar8);\n          if ((uVar9 & 3) == 3) goto LAB_00041fd4;\nLAB_00041faf:\n          uVar9 = uVar9 + 1;\n          if (uVar9 == 0x10) goto LAB_00041fe9;\n        }\n        printf("  ",uVar8);\n        if ((uVar9 & 3) != 3) goto LAB_00041faf;\nLAB_00041fd4:\n        uVar9 = uVar9 + 1;\n        putchar(0x20);\n      }" ({ "{") (while_statement "while ((int)uVar9 < (int)uVar7) {\n          uVar8 = (uint)local_40[uVar9];\n          printf("%2.2x",uVar8);\n          if ((uVar9 & 3) == 3) goto LAB_00041fd4;\nLAB_00041faf:\n          uVar9 = uVar9 + 1;\n          if (uVar9 == 0x10) goto LAB_00041fe9;\n        }" (while "while") (parenthesized_expression "((int)uVar9 < (int)uVar7)" (( "(") (binary_expression "(int)uVar9 < (int)uVar7" (cast_expression "(int)uVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar9")) (< "<") (cast_expression "(int)uVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar7"))) () ")")) (compound_statement "{\n          uVar8 = (uint)local_40[uVar9];\n          printf("%2.2x",uVar8);\n          if ((uVar9 & 3) == 3) goto LAB_00041fd4;\nLAB_00041faf:\n          uVar9 = uVar9 + 1;\n          if (uVar9 == 0x10) goto LAB_00041fe9;\n        }" ({ "{") (expression_statement "uVar8 = (uint)local_40[uVar9];" (assignment_expression "uVar8 = (uint)local_40[uVar9]" (identifier "uVar8") (= "=") (cast_expression "(uint)local_40[uVar9]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "local_40[uVar9]" (identifier "local_40") ([ "[") (identifier "uVar9") (] "]")))) (; ";")) (expression_statement "printf("%2.2x",uVar8);" (call_expression "printf("%2.2x",uVar8)" (identifier "printf") (argument_list "("%2.2x",uVar8)" (( "(") (string_literal ""%2.2x"" (" """) (string_content "%2.2x") (" """)) (, ",") (identifier "uVar8") () ")"))) (; ";")) (if_statement "if ((uVar9 & 3) == 3) goto LAB_00041fd4;" (if "if") (parenthesized_expression "((uVar9 & 3) == 3)" (( "(") (binary_expression "(uVar9 & 3) == 3" (parenthesized_expression "(uVar9 & 3)" (( "(") (binary_expression "uVar9 & 3" (identifier "uVar9") (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "3")) () ")")) (goto_statement "goto LAB_00041fd4;" (goto "goto") (statement_identifier "LAB_00041fd4") (; ";"))) (labeled_statement "LAB_00041faf:\n          uVar9 = uVar9 + 1;" (statement_identifier "LAB_00041faf") (: ":") (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" (identifier "uVar9") (= "=") (binary_expression "uVar9 + 1" (identifier "uVar9") (+ "+") (number_literal "1"))) (; ";"))) (if_statement "if (uVar9 == 0x10) goto LAB_00041fe9;" (if "if") (parenthesized_expression "(uVar9 == 0x10)" (( "(") (binary_expression "uVar9 == 0x10" (identifier "uVar9") (== "==") (number_literal "0x10")) () ")")) (goto_statement "goto LAB_00041fe9;" (goto "goto") (statement_identifier "LAB_00041fe9") (; ";"))) (} "}"))) (expression_statement "printf("  ",uVar8);" (call_expression "printf("  ",uVar8)" (identifier "printf") (argument_list "("  ",uVar8)" (( "(") (string_literal ""  "" (" """) (string_content "  ") (" """)) (, ",") (identifier "uVar8") () ")"))) (; ";")) (if_statement "if ((uVar9 & 3) != 3) goto LAB_00041faf;" (if "if") (parenthesized_expression "((uVar9 & 3) != 3)" (( "(") (binary_expression "(uVar9 & 3) != 3" (parenthesized_expression "(uVar9 & 3)" (( "(") (binary_expression "uVar9 & 3" (identifier "uVar9") (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "3")) () ")")) (goto_statement "goto LAB_00041faf;" (goto "goto") (statement_identifier "LAB_00041faf") (; ";"))) (labeled_statement "LAB_00041fd4:\n        uVar9 = uVar9 + 1;" (statement_identifier "LAB_00041fd4") (: ":") (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" (identifier "uVar9") (= "=") (binary_expression "uVar9 + 1" (identifier "uVar9") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "putchar(0x20);" (call_expression "putchar(0x20)" (identifier "putchar") (argument_list "(0x20)" (( "(") (number_literal "0x20") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar9 != 0x10)" (( "(") (binary_expression "uVar9 != 0x10" (identifier "uVar9") (!= "!=") (number_literal "0x10")) () ")")) (; ";")) (labeled_statement "LAB_00041fe9:\n      iVar6 = 0;" (statement_identifier "LAB_00041fe9") (: ":") (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";"))) (do_statement "do {\n        while (pbVar1 = local_40 + iVar6, *pbVar1 - 0x20 < 0x5f) {\n          iVar6 = iVar6 + 1;\n          putchar((uint)*pbVar1);\n          if ((int)uVar7 <= iVar6) goto LAB_00042024;\n        }\n        iVar6 = iVar6 + 1;\n        putchar(0x2e);\n      } while (iVar6 < (int)uVar7);" (do "do") (compound_statement "{\n        while (pbVar1 = local_40 + iVar6, *pbVar1 - 0x20 < 0x5f) {\n          iVar6 = iVar6 + 1;\n          putchar((uint)*pbVar1);\n          if ((int)uVar7 <= iVar6) goto LAB_00042024;\n        }\n        iVar6 = iVar6 + 1;\n        putchar(0x2e);\n      }" ({ "{") (while_statement "while (pbVar1 = local_40 + iVar6, *pbVar1 - 0x20 < 0x5f) {\n          iVar6 = iVar6 + 1;\n          putchar((uint)*pbVar1);\n          if ((int)uVar7 <= iVar6) goto LAB_00042024;\n        }" (while "while") (parenthesized_expression "(pbVar1 = local_40 + iVar6, *pbVar1 - 0x20 < 0x5f)" (( "(") (comma_expression "pbVar1 = local_40 + iVar6, *pbVar1 - 0x20 < 0x5f" (assignment_expression "pbVar1 = local_40 + iVar6" (identifier "pbVar1") (= "=") (binary_expression "local_40 + iVar6" (identifier "local_40") (+ "+") (identifier "iVar6"))) (, ",") (binary_expression "*pbVar1 - 0x20 < 0x5f" (binary_expression "*pbVar1 - 0x20" (pointer_expression "*pbVar1" (* "*") (identifier "pbVar1")) (- "-") (number_literal "0x20")) (< "<") (number_literal "0x5f"))) () ")")) (compound_statement "{\n          iVar6 = iVar6 + 1;\n          putchar((uint)*pbVar1);\n          if ((int)uVar7 <= iVar6) goto LAB_00042024;\n        }" ({ "{") (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" (identifier "iVar6") (= "=") (binary_expression "iVar6 + 1" (identifier "iVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "putchar((uint)*pbVar1);" (call_expression "putchar((uint)*pbVar1)" (identifier "putchar") (argument_list "((uint)*pbVar1)" (( "(") (binary_expression "(uint)*pbVar1" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar1")) () ")"))) (; ";")) (if_statement "if ((int)uVar7 <= iVar6) goto LAB_00042024;" (if "if") (parenthesized_expression "((int)uVar7 <= iVar6)" (( "(") (binary_expression "(int)uVar7 <= iVar6" (cast_expression "(int)uVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar7")) (<= "<=") (identifier "iVar6")) () ")")) (goto_statement "goto LAB_00042024;" (goto "goto") (statement_identifier "LAB_00042024") (; ";"))) (} "}"))) (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" (identifier "iVar6") (= "=") (binary_expression "iVar6 + 1" (identifier "iVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "putchar(0x2e);" (call_expression "putchar(0x2e)" (identifier "putchar") (argument_list "(0x2e)" (( "(") (number_literal "0x2e") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar6 < (int)uVar7)" (( "(") (binary_expression "iVar6 < (int)uVar7" (identifier "iVar6") (< "<") (cast_expression "(int)uVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar7"))) () ")")) (; ";")) (labeled_statement "LAB_00042024:\n      local_40 = local_40 + uVar7;" (statement_identifier "LAB_00042024") (: ":") (expression_statement "local_40 = local_40 + uVar7;" (assignment_expression "local_40 = local_40 + uVar7" (identifier "local_40") (= "=") (binary_expression "local_40 + uVar7" (identifier "local_40") (+ "+") (identifier "uVar7"))) (; ";"))) (expression_statement "putc(10,*(FILE **)puVar2);" (call_expression "putc(10,*(FILE **)puVar2)" (identifier "putc") (argument_list "(10,*(FILE **)puVar2)" (( "(") (number_literal "10") (, ",") (pointer_expression "*(FILE **)puVar2" (* "*") (cast_expression "(FILE **)puVar2" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar2"))) () ")"))) (; ";")) (expression_statement "local_64 = local_64 + uVar7;" (assignment_expression "local_64 = local_64 + uVar7" (identifier "local_64") (= "=") (binary_expression "local_64 + uVar7" (identifier "local_64") (+ "+") (identifier "uVar7"))) (; ";")) (expression_statement "bVar20 = local_6c < uVar7;" (assignment_expression "bVar20 = local_6c < uVar7" (identifier "bVar20") (= "=") (binary_expression "local_6c < uVar7" (identifier "local_6c") (< "<") (identifier "uVar7"))) (; ";")) (expression_statement "local_6c = local_6c - uVar7;" (assignment_expression "local_6c = local_6c - uVar7" (identifier "local_6c") (= "=") (binary_expression "local_6c - uVar7" (identifier "local_6c") (- "-") (identifier "uVar7"))) (; ";")) (expression_statement "local_68 = (local_68 - ((int)uVar7 >> 0x1f)) - (uint)bVar20;" (assignment_expression "local_68 = (local_68 - ((int)uVar7 >> 0x1f)) - (uint)bVar20" (identifier "local_68") (= "=") (binary_expression "(local_68 - ((int)uVar7 >> 0x1f)) - (uint)bVar20" (parenthesized_expression "(local_68 - ((int)uVar7 >> 0x1f))" (( "(") (binary_expression "local_68 - ((int)uVar7 >> 0x1f)" (identifier "local_68") (- "-") (parenthesized_expression "((int)uVar7 >> 0x1f)" (( "(") (binary_expression "(int)uVar7 >> 0x1f" (cast_expression "(int)uVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar7")) (>> ">>") (number_literal "0x1f")) () ")"))) () ")")) (- "-") (cast_expression "(uint)bVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar20")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_68 != 0 || local_6c != 0)" (( "(") (binary_expression "local_68 != 0 || local_6c != 0" (binary_expression "local_68 != 0" (identifier "local_68") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "local_6c != 0" (identifier "local_6c") (!= "!=") (number_literal "0"))) () ")")) (; ";")) (} "}"))) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" (identifier "free") (argument_list "(__ptr)" (( "(") (identifier "__ptr") () ")"))) (; ";")) (expression_statement "putc(10,*(FILE **)puVar2);" (call_expression "putc(10,*(FILE **)puVar2)" (identifier "putc") (argument_list "(10,*(FILE **)puVar2)" (( "(") (number_literal "10") (, ",") (pointer_expression "*(FILE **)puVar2" (* "*") (cast_expression "(FILE **)puVar2" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar2"))) () ")"))) (; ";")) (return_statement "return true;" (return "return") (true "true") (; ";")) (} "}")))

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

type_1 __regparm3
function_1(type_2 *var_36,type_3 *filedata,type_1 var_33)

{
  char **filedata_00;
  type_2 *var_35;
  type_4 size;
  type_5 *puVar2;
  type_6 *var_2;
  char *pcVar3;
  char *pcVar4;
  type_2 *var_34;
  type_1 var_31;
  type_7 *sec;
  int var_11;
  type_8 var_10;
  type_8 var_9;
  type_8 var_23;
  type_6 *var_39;
  type_9 *var_12;
  type_8 var_16;
  type_8 var_17;
  type_8 var_18;
  type_8 var_19;
  type_8 var_20;
  type_8 var_21;
  type_8 var_22;
  type_8 var_24;
  type_9 *var_13;
  bool var_14;
  bool bVar23;
  type_9 bVar24;
  type_8 var_7;
  char *var_8;
  type_8 var_41;
  type_6 *var_26;
  type_10 new_size;
  type_11 chdr;
  
  bVar24 = 0;
  var_2 = (type_6 *)var_1(var_36,filedata);
  if (var_2 == (type_6 *)0x0) {
    if (*(int *)((int)&var_36->sh_size + 4) == 0 && (int)var_36->sh_size == 0) {
      return 1;
    }
    return (type_8)(var_36->sh_type == 8);
  }
  var_7 = (type_8)var_36->sh_size;
  var_8 = *(char **)((int)&var_36->sh_size + 4);
  size = var_36->sh_size;
  filedata_00 = &filedata->string_table;
  sec = &filedata->string_table_length;
  var_26 = var_2;
  pcVar3 = var_3
                     ((type_3 *)filedata_00,(type_2 *)sec,(type_3 *)var_36);
  pcVar4 = (char *)var_4(0,"\nHex dump of section \'%s\':\n",5);
  var_5(pcVar4);
  var_39 = var_26;
  if (var_6 == 0) goto LAB_00041e89;
  var_39 = var_2;
  new_size._0_4_ = var_7;
  new_size._4_4_ = var_8;
  if ((var_36->sh_flags & 0x800) == 0) {
    var_10 = (type_8)(0xc < var_7);
    var_9 = -(int)var_8;
    var_14 = var_8 != (char *)0x0 || var_9 < var_10;
    bVar23 = var_9 == var_10;
    if (var_8 == (char *)0x0 && var_9 >= var_10) goto LAB_00041e89;
    var_11 = 5;
    var_12 = var_26;
    var_13 = &DAT_0007d064;
    do {
      if (var_11 == 0) break;
      var_11 = var_11 + -1;
      var_14 = *var_12 < *var_13;
      bVar23 = *var_12 == *var_13;
      var_12 = var_12 + (type_8)bVar24 * -2 + 1;
      var_13 = var_13 + (type_8)bVar24 * -2 + 1;
    } while (bVar23);
    if ((!var_14 && !bVar23) != var_14) goto LAB_00041e89;
    var_16 = (type_8)var_15(var_26[4],var_26[5]) * 0x100;
    var_17 = var_26[6] + var_16;
    var_18 = var_17 * 0x100;
    var_19 = var_26[7] + var_18;
    var_20 = var_19 * 0x100;
    var_10 = var_20 + var_26[8];
    var_21 = var_10 * 0x100;
    var_9 = var_26[9] + var_21;
    var_22 = var_9 * 0x100;
    var_23 = var_26[10] + var_22;
    var_24 = var_23 * 0x100;
    chdr.ch_size._0_4_ = (type_10 *)(var_26[0xb] + var_24);
    chdr.ch_size._4_4_ =
         (((((((((((type_8)var_25((type_8)var_26[5],(type_8)var_26[4] << 8) * 0x100 +
                  (type_8)var_25((type_8)var_26[6],var_16)) * 0x100 | var_17 >> 0x18) +
                (type_8)var_25((type_8)var_26[7],var_18)) * 0x100 | var_19 >> 0x18) +
              (type_8)var_25(var_20,(type_8)var_26[8])) * 0x100 | var_10 >> 0x18) +
            (type_8)var_25((type_8)var_26[9],var_21)) * 0x100 | var_9 >> 0x18) +
          (type_8)var_25((type_8)var_26[10],var_22)) * 0x100 | var_23 >> 0x18) +
         (type_8)var_25((type_8)var_26[0xb],var_24);
    var_26 = var_26 + 0xc;
    new_size._0_4_ = var_7 - 0xc;
    new_size._4_4_ = var_8 + ((0xb < var_7) - 1);
  }
  else {
    pcVar3 = var_8;
    var_10 = var_27(&chdr,var_26,size);
    if (chdr.ch_type != 1) {
      pcVar3 = var_3
                         ((type_3 *)filedata_00,(type_2 *)sec,(type_3 *)var_36);
      pcVar4 = (char *)var_4(0,"section \'%s\' has unsupported compress type: %d\n",5);
      var_28(pcVar4,pcVar3,chdr.ch_type);
      return 0;
    }
    var_26 = var_26 + var_10;
    var_14 = (type_8)new_size < var_10;
    new_size._0_4_ = (type_8)new_size - var_10;
    new_size._4_4_ = new_size._4_4_ + -(type_8)var_14;
  }
  if (chdr.ch_size._4_4_ != 0 || (type_10 *)chdr.ch_size != (type_10 *)0x0) {
    var_31 = var_29
                      (&var_26,var_30(pcVar3,&new_size),(type_10 *)chdr.ch_size);
    if (var_31 == 0) {
      pcVar3 = var_3
                         ((type_3 *)filedata_00,(type_2 *)sec,(type_3 *)var_36);
      pcVar4 = (char *)var_4(0,"Unable to decompress section %s\n",5);
      var_32(pcVar4,pcVar3);
      return 0;
    }
    var_7 = (type_8)new_size;
    var_8 = new_size._4_4_;
    var_39 = var_26;
  }
LAB_00041e89:
  var_26 = var_39;
  if (var_33 == 0) {
    var_10 = (filedata->file_header).e_shnum;
    var_35 = filedata->section_headers;
    for (var_34 = var_35; var_34 < var_35 + var_10; var_34 = var_34 + 1) {
      if ((((var_34->sh_type == 4) || (var_34->sh_type == 9)) && (var_34->sh_info < var_10)) &&
         (((var_36 == var_35 + var_34->sh_info &&
           (*(int *)((int)&var_34->sh_size + 4) != 0 || (int)var_34->sh_size != 0)) &&
          (var_34->sh_link < var_10)))) {
        pcVar3 = (char *)var_4(0,
                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"
                                   ,5);
        var_5(pcVar3);
        break;
      }
    }
  }
  else {
    var_31 = var_37(filedata,var_36,var_26,var_30(var_8,var_7),(void **)0x0,
                              (type_7 *)0x0);
    if (var_31 == 0) {
      return 0;
    }
  }
  puVar2 = PTR_stdout_000b3fd8;
  var_41 = (type_8)var_36->sh_addr;
  var_39 = var_26;
  if (var_8 != (char *)0x0 || var_7 != 0) {
    do {
      var_10 = 0x10;
      if (var_8 == (char *)0x0 && (type_8)(0x10 < var_7) <= (type_8)-(int)var_8) {
        var_10 = var_7;
      }
      var_23 = 0;
      var_9 = var_41;
      var_5("  0x%8.8lx ",var_41);
      do {
        while ((int)var_23 < (int)var_10) {
          var_9 = (type_8)var_39[var_23];
          var_5("%2.2x",var_9);
          if ((var_23 & 3) == 3) goto LAB_00041fd4;
LAB_00041faf:
          var_23 = var_23 + 1;
          if (var_23 == 0x10) goto LAB_00041fe9;
        }
        var_5("  ",var_9);
        if ((var_23 & 3) != 3) goto LAB_00041faf;
LAB_00041fd4:
        var_23 = var_23 + 1;
        var_38(0x20);
      } while (var_23 != 0x10);
LAB_00041fe9:
      var_11 = 0;
      do {
        while (var_12 = var_39 + var_11, *var_12 - 0x20 < 0x5f) {
          var_11 = var_11 + 1;
          var_38((type_8)*var_12);
          if ((int)var_10 <= var_11) goto LAB_00042024;
        }
        var_11 = var_11 + 1;
        var_38(0x2e);
      } while (var_11 < (int)var_10);
LAB_00042024:
      var_40(10,*(type_12 **)puVar2);
      var_41 = var_41 + var_10;
      var_14 = var_7 < var_10;
      var_7 = var_7 - var_10;
      var_8 = var_8 + (-(type_8)var_14 - ((int)var_10 >> 0x1f));
      var_39 = var_39 + var_10;
    } while (var_8 != (char *)0x0 || var_7 != 0);
  }
  var_42(var_2);
  var_40(10,*(type_12 **)puVar2);
  return 1;
}


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

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

bool __regparm3 MASKED(int param_1,int param_2,int param_3)

{
  byte *pbVar1;
  undefined *puVar2;
  byte *__ptr;
  undefined4 uVar3;
  char *pcVar4;
  undefined4 uVar5;
  int iVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  byte *pbVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  byte *pbVar19;
  bool bVar20;
  bool bVar21;
  byte bVar22;
  uint local_6c;
  int local_68;
  uint local_64;
  byte *local_40;
  uint local_3c;
  int local_38;
  int local_30;
  int local_2c;
  int local_28;
  undefined4 uStack_14;
  
  bVar22 = 0;
  uStack_14 = 0x41ceb;
  __ptr = (byte *)FUN_00032770();
  if (__ptr == (byte *)0x0) {
    if (*(int *)(param_1 + 0x24) == 0 && *(int *)(param_1 + 0x20) == 0) {
      return true;
    }
    return *(int *)(param_1 + 4) == 8;
  }
  local_6c = *(uint *)(param_1 + 0x20);
  local_68 = *(int *)(param_1 + 0x24);
  uVar3 = FUN_00022190();
  pcVar4 = (char *)dcgettext(0,"\nHex dump of section \'%s\':\n",5);
  printf(pcVar4,uVar3);
  pbVar1 = __ptr;
  if (DAT_000b6320 == 0) goto LAB_00041e89;
  local_3c = local_6c;
  local_38 = local_68;
  if ((*(uint *)(param_1 + 8) & 0x800) == 0) {
    uVar7 = (uint)(0xc < local_6c);
    uVar8 = -local_68;
    bVar20 = local_68 != 0 || uVar8 < uVar7;
    bVar21 = uVar8 == uVar7;
    if (local_68 == 0 && uVar8 >= uVar7) goto LAB_00041e89;
    iVar6 = 5;
    pbVar10 = __ptr;
    pbVar19 = &DAT_0007d064;
    do {
      if (iVar6 == 0) break;
      iVar6 = iVar6 + -1;
      bVar20 = *pbVar10 < *pbVar19;
      bVar21 = *pbVar10 == *pbVar19;
      pbVar10 = pbVar10 + (uint)bVar22 * -2 + 1;
      pbVar19 = pbVar19 + (uint)bVar22 * -2 + 1;
    } while (bVar21);
    if ((!bVar20 && !bVar21) != bVar20) goto LAB_00041e89;
    uVar11 = (uint)CONCAT11(__ptr[4],__ptr[5]) * 0x100;
    uVar12 = __ptr[6] + uVar11;
    uVar13 = uVar12 * 0x100;
    uVar14 = __ptr[7] + uVar13;
    uVar15 = uVar14 * 0x100;
    uVar7 = uVar15 + __ptr[8];
    uVar16 = uVar7 * 0x100;
    uVar8 = __ptr[9] + uVar16;
    uVar17 = uVar8 * 0x100;
    uVar9 = __ptr[10] + uVar17;
    uVar18 = uVar9 * 0x100;
    local_2c = __ptr[0xb] + uVar18;
    local_28 = (((((((((((uint)CARRY4((uint)__ptr[5],(uint)__ptr[4] << 8) * 0x100 +
                        (uint)CARRY4((uint)__ptr[6],uVar11)) * 0x100 | uVar12 >> 0x18) +
                      (uint)CARRY4((uint)__ptr[7],uVar13)) * 0x100 | uVar14 >> 0x18) +
                    (uint)CARRY4(uVar15,(uint)__ptr[8])) * 0x100 | uVar7 >> 0x18) +
                  (uint)CARRY4((uint)__ptr[9],uVar16)) * 0x100 | uVar8 >> 0x18) +
                (uint)CARRY4((uint)__ptr[10],uVar17)) * 0x100 | uVar9 >> 0x18) +
               (uint)CARRY4((uint)__ptr[0xb],uVar18);
    local_40 = __ptr + 0xc;
    local_3c = local_6c - 0xc;
    local_38 = local_68 + -1 + (uint)(0xb < local_6c);
  }
  else {
    uVar7 = FUN_0001be30(local_6c,local_68);
    if (local_30 != 1) {
      uVar3 = FUN_00022190();
      uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);
      warn(uVar5,uVar3,local_30);
      return false;
    }
    local_40 = __ptr + uVar7;
    bVar20 = local_3c < uVar7;
    local_3c = local_3c - uVar7;
    local_38 = local_38 - (uint)bVar20;
  }
  if (local_28 != 0 || local_2c != 0) {
    iVar6 = FUN_0001d690(&local_3c);
    if (iVar6 == 0) {
      uVar3 = FUN_00022190();
      uVar5 = dcgettext(0,"Unable to decompress section %s\n",5);
      error(uVar5,uVar3);
      return false;
    }
    local_6c = local_3c;
    local_68 = local_38;
    pbVar1 = local_40;
  }
LAB_00041e89:
  local_40 = pbVar1;
  if (param_3 == 0) {
    uVar7 = *(uint *)(param_2 + 0x54);
    uVar8 = *(uint *)(param_2 + 0x5c);
    for (uVar9 = uVar8; uVar9 < uVar8 + uVar7 * 0x48; uVar9 = uVar9 + 0x48) {
      if ((((*(int *)(uVar9 + 4) == 4) || (*(int *)(uVar9 + 4) == 9)) &&
          (*(uint *)(uVar9 + 0x2c) < uVar7)) &&
         (((param_1 == uVar8 + *(uint *)(uVar9 + 0x2c) * 0x48 &&
           (*(int *)(uVar9 + 0x24) != 0 || *(int *)(uVar9 + 0x20) != 0)) &&
          (*(uint *)(uVar9 + 0x28) < uVar7)))) {
        pcVar4 = (char *)dcgettext(0,
                                   " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"
                                   ,5);
        printf(pcVar4);
        break;
      }
    }
  }
  else {
    iVar6 = FUN_0003fb10(local_6c,local_68,0,0);
    if (iVar6 == 0) {
      return false;
    }
  }
  puVar2 = PTR_stdout_000b3fd8;
  local_64 = *(uint *)(param_1 + 0x10);
  if (local_68 != 0 || local_6c != 0) {
    do {
      uVar7 = 0x10;
      if (local_68 == 0 && (uint)(0x10 < local_6c) <= (uint)-local_68) {
        uVar7 = local_6c;
      }
      uVar9 = 0;
      uVar8 = local_64;
      printf("  0x%8.8lx ",local_64);
      do {
        while ((int)uVar9 < (int)uVar7) {
          uVar8 = (uint)local_40[uVar9];
          printf("%2.2x",uVar8);
          if ((uVar9 & 3) == 3) goto LAB_00041fd4;
LAB_00041faf:
          uVar9 = uVar9 + 1;
          if (uVar9 == 0x10) goto LAB_00041fe9;
        }
        printf("  ",uVar8);
        if ((uVar9 & 3) != 3) goto LAB_00041faf;
LAB_00041fd4:
        uVar9 = uVar9 + 1;
        putchar(0x20);
      } while (uVar9 != 0x10);
LAB_00041fe9:
      iVar6 = 0;
      do {
        while (pbVar1 = local_40 + iVar6, *pbVar1 - 0x20 < 0x5f) {
          iVar6 = iVar6 + 1;
          putchar((uint)*pbVar1);
          if ((int)uVar7 <= iVar6) goto LAB_00042024;
        }
        iVar6 = iVar6 + 1;
        putchar(0x2e);
      } while (iVar6 < (int)uVar7);
LAB_00042024:
      local_40 = local_40 + uVar7;
      putc(10,*(FILE **)puVar2);
      local_64 = local_64 + uVar7;
      bVar20 = local_6c < uVar7;
      local_6c = local_6c - uVar7;
      local_68 = (local_68 - ((int)uVar7 >> 0x1f)) - (uint)bVar20;
    } while (local_68 != 0 || local_6c != 0);
  }
  free(__ptr);
  putc(10,*(FILE **)puVar2);
  return true;
}

