
bfd_boolean
load_specific_debug_section(dwarf_section_display_enum debug,Elf_Internal_Shdr *sec,void *data)

{
  void *__ptr;
  undefined8 uVar1;
  bfd_vma bVar2;
  int iVar3;
  uint uVar4;
  bfd_boolean bVar5;
  char *pcVar6;
  long lVar7;
  char *message;
  Filedata *filedata;
  byte *pbVar8;
  byte *pbVar9;
  ulong uVar10;
  bool bVar11;
  bool bVar12;
  byte bVar13;
  uchar *start;
  dwarf_size_type size;
  Elf_Internal_Chdr chdr;
  char buf [64];
  
  bVar13 = 0;
  uVar10 = (ulong)debug;
  __ptr = (void *)(&DAT_001910e0)[uVar10 * 0xe];
  if (__ptr != (void *)0x0) {
                    /* WARNING: Load size is inaccurate */
    iVar3 = strcmp(*(char **)(&DAT_001910d8 + uVar10 * 0x70),*data);
    if (iVar3 == 0) {
      return 1;
    }
    free(__ptr);
  }
  uVar1 = (&DAT_001910d0)[uVar10 * 0xe];
  pcVar6 = (char *)dcgettext(0,"%s section data",5);
  snprintf(buf,0x40,pcVar6,uVar1);
  bVar2 = sec->sh_addr;
  *(undefined8 *)(&DAT_00191110 + uVar10 * 0x70) = 0;
  (&DAT_001910e8)[uVar10 * 0xe] = bVar2;
                    /* WARNING: Load size is inaccurate */
  *(undefined8 *)(&DAT_001910d8 + uVar10 * 0x70) = *data;
  start = (uchar *)get_data((void *)0x0,(Filedata *)((long)data + 8),(long)data + 0x10,
                            sec->sh_offset,1,(char *)sec->sh_size,(Filedata *)buf);
  (&DAT_001910e0)[uVar10 * 0xe] = start;
  if (start == (byte *)0x0) {
    (&DAT_001910f0)[uVar10 * 0xe] = 0;
    return 0;
  }
  size = sec->sh_size;
  if ((sec->sh_flags & 0x800) == 0) {
    bVar11 = size < 0xc;
    bVar12 = size == 0xc;
    if (size < 0xd) goto LAB_00132a14;
    lVar7 = 5;
    pbVar8 = start;
    pbVar9 = &DAT_0016ac39;
    do {
      if (lVar7 == 0) break;
      lVar7 = lVar7 + -1;
      bVar11 = *pbVar8 < *pbVar9;
      bVar12 = *pbVar8 == *pbVar9;
      pbVar8 = pbVar8 + (ulong)bVar13 * -2 + 1;
      pbVar9 = pbVar9 + (ulong)bVar13 * -2 + 1;
    } while (bVar12);
    if ((!bVar11 && !bVar12) != bVar11) goto LAB_00132a14;
    size = size - 0xc;
    chdr.ch_size = (ulong)start[0xb] +
                   ((ulong)start[10] +
                   ((ulong)start[9] +
                   ((ulong)start[8] +
                   ((ulong)start[7] +
                   ((ulong)start[6] + (ulong)CONCAT11(start[4],start[5]) * 0x100) * 0x100) * 0x100)
                   * 0x100) * 0x100) * 0x100;
    start = start + 0xc;
  }
  else {
    if (size < (ulong)(-(uint)(is_32bit_elf == 0) & 0xc) + 0xc) {
      uVar1 = (&DAT_001910d0)[uVar10 * 0xe];
      pcVar6 = (char *)dcgettext(0,
                                 "compressed section %s is too small to contain a compression header"
                                 ,5);
      warn(pcVar6,uVar1);
      return 0;
    }
    uVar4 = get_compression_header(&chdr,start,size);
    if (chdr.ch_type != 1) {
      uVar1 = (&DAT_001910d0)[uVar10 * 0xe];
      pcVar6 = (char *)dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);
      warn(pcVar6,uVar1,(ulong)chdr.ch_type);
      return 0;
    }
    size = size - uVar4;
    start = start + uVar4;
  }
  if (chdr.ch_size != 0) {
    bVar5 = uncompress_section_contents(&start,chdr.ch_size,&size);
    if (bVar5 == 0) {
      pcVar6 = printable_section_name
                         ((Filedata *)((long)data + 0x80),(Elf_Internal_Shdr *)((long)data + 0x88),
                          (Filedata *)sec);
      message = (char *)dcgettext(0,"Unable to decompress section %s\n",5);
      error(message,pcVar6);
      return 0;
    }
    free((void *)(&DAT_001910e0)[uVar10 * 0xe]);
    (&DAT_001910e0)[uVar10 * 0xe] = start;
  }
LAB_00132a14:
  lVar7 = uVar10 * 0x70;
  (&DAT_001910f0)[uVar10 * 0xe] = size;
  if ((uchar *)(&DAT_001910e0)[uVar10 * 0xe] == (uchar *)0x0) {
    return 0;
  }
  if (*(int *)(&DAT_00191128 + lVar7) != 0) {
    bVar5 = apply_relocations((Filedata *)data,sec,(uchar *)(&DAT_001910e0)[uVar10 * 0xe],size,
                              (void **)(&DAT_00191100 + lVar7),(ulong *)(&DAT_00191108 + lVar7));
    return (uint)(bVar5 != 0);
  }
  *(undefined8 *)(&DAT_00191100 + lVar7) = 0;
  *(undefined8 *)(&DAT_00191108 + lVar7) = 0;
  return 1;
}



bool FUN_001328a0(ulong param_1,long param_2,undefined8 *param_3)

{
  void *__ptr;
  int iVar1;
  uint uVar2;
  char *__format;
  long lVar3;
  undefined8 uVar4;
  undefined8 uVar5;
  byte *pbVar6;
  byte *pbVar7;
  bool bVar8;
  bool bVar9;
  byte bVar10;
  byte *local_a8;
  ulong local_a0;
  int local_98 [2];
  long local_90;
  char local_78 [72];
  
  bVar10 = 0;
  param_1 = param_1 & 0xffffffff;
  __ptr = (void *)(&DAT_001910e0)[param_1 * 0xe];
  if (__ptr != (void *)0x0) {
    iVar1 = strcmp(*(char **)(&DAT_001910d8 + param_1 * 0x70),(char *)*param_3);
    if (iVar1 == 0) {
      return true;
    }
    free(__ptr);
  }
  uVar4 = (&DAT_001910d0)[param_1 * 0xe];
  __format = (char *)dcgettext(0,"%s section data",5);
  snprintf(local_78,0x40,__format,uVar4);
  uVar4 = *(undefined8 *)(param_2 + 0x10);
  *(undefined8 *)(&DAT_00191110 + param_1 * 0x70) = 0;
  (&DAT_001910e8)[param_1 * 0xe] = uVar4;
  *(undefined8 *)(&DAT_001910d8 + param_1 * 0x70) = *param_3;
  local_a8 = (byte *)FUN_001144a0(0,param_3 + 1,param_3 + 2,*(undefined8 *)(param_2 + 0x18),1,
                                  *(undefined8 *)(param_2 + 0x20),local_78);
  (&DAT_001910e0)[param_1 * 0xe] = local_a8;
  if (local_a8 == (byte *)0x0) {
    (&DAT_001910f0)[param_1 * 0xe] = 0;
    return false;
  }
  local_a0 = *(ulong *)(param_2 + 0x20);
  if ((*(byte *)(param_2 + 9) & 8) == 0) {
    bVar8 = local_a0 < 0xc;
    bVar9 = local_a0 == 0xc;
    if (local_a0 < 0xd) goto LAB_00132a14;
    lVar3 = 5;
    pbVar6 = local_a8;
    pbVar7 = &DAT_0016ac39;
    do {
      if (lVar3 == 0) break;
      lVar3 = lVar3 + -1;
      bVar8 = *pbVar6 < *pbVar7;
      bVar9 = *pbVar6 == *pbVar7;
      pbVar6 = pbVar6 + (ulong)bVar10 * -2 + 1;
      pbVar7 = pbVar7 + (ulong)bVar10 * -2 + 1;
    } while (bVar9);
    if ((!bVar8 && !bVar9) != bVar8) goto LAB_00132a14;
    local_a0 = local_a0 - 0xc;
    local_90 = (ulong)local_a8[0xb] +
               ((ulong)local_a8[10] +
               ((ulong)local_a8[9] +
               ((ulong)local_a8[8] +
               ((ulong)local_a8[7] +
               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *
               0x100) * 0x100) * 0x100) * 0x100;
    local_a8 = local_a8 + 0xc;
  }
  else {
    if (local_a0 < (ulong)(-(uint)(DAT_0019345c == 0) & 0xc) + 0xc) {
      uVar4 = (&DAT_001910d0)[param_1 * 0xe];
      uVar5 = dcgettext(0,"compressed section %s is too small to contain a compression header",5);
      warn(uVar5,uVar4);
      return false;
    }
    uVar2 = FUN_0010ffa0(local_98,local_a8,local_a0);
    if (local_98[0] != 1) {
      uVar4 = (&DAT_001910d0)[param_1 * 0xe];
      uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);
      warn(uVar5,uVar4,local_98[0]);
      return false;
    }
    local_a0 = local_a0 - uVar2;
    local_a8 = local_a8 + uVar2;
  }
  if (local_90 != 0) {
    iVar1 = FUN_00111310(&local_a8,local_90,&local_a0);
    if (iVar1 == 0) {
      uVar4 = FUN_00113f30(param_3 + 0x10,param_3 + 0x11,param_2);
      uVar5 = dcgettext(0,"Unable to decompress section %s\n",5);
      error(uVar5,uVar4);
      return false;
    }
    free((void *)(&DAT_001910e0)[param_1 * 0xe]);
    (&DAT_001910e0)[param_1 * 0xe] = local_a8;
  }
LAB_00132a14:
  lVar3 = param_1 * 0x70;
  (&DAT_001910f0)[param_1 * 0xe] = local_a0;
  if ((&DAT_001910e0)[param_1 * 0xe] == 0) {
    return false;
  }
  if (*(int *)(&DAT_00191128 + lVar3) != 0) {
    iVar1 = FUN_00130cd0(param_3,param_2,(&DAT_001910e0)[param_1 * 0xe],local_a0,
                         &DAT_00191100 + lVar3,&DAT_00191108 + lVar3);
    return iVar1 != 0;
  }
  *(undefined8 *)(&DAT_00191100 + lVar3) = 0;
  *(undefined8 *)(&DAT_00191108 + lVar3) = 0;
  return true;
}


PUSH R15
PUSH R14
PUSH R13
MOV R13D,EDI
LEA RAX,[R13*0x8]
PUSH R12
LEA R12,[0x1910c0]
PUSH RBP
SUB RAX,R13
MOV RBP,RSI
PUSH RBX
SHL RAX,0x4
MOV RBX,RDX
ADD RAX,R12
SUB RSP,0x88
MOV R14,qword ptr [RAX + 0x20]
TEST R14,R14
JZ 0x00132910
MOV RSI,qword ptr [RDX]
MOV RDI,qword ptr [RAX + 0x18]
CALL 0x00107260
MOV EDX,0x1
TEST EAX,EAX
JNZ 0x00132908
ADD RSP,0x88
MOV EAX,EDX
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV RDI,R14
CALL 0x00107030
LEA R14,[R13*0x8]
MOV EDX,0x5
LEA RSI,[0x16ac29]
XOR EDI,EDI
SUB R14,R13
LEA R15,[RSP + 0x40]
SHL R14,0x4
ADD R14,R12
MOV RCX,qword ptr [R14 + 0x10]
MOV qword ptr [RSP + 0x8],RCX
CALL 0x00107130
MOV RCX,qword ptr [RSP + 0x8]
MOV ESI,0x40
MOV RDI,R15
MOV RDX,RAX
XOR EAX,EAX
CALL 0x001071b0
MOV RAX,qword ptr [RBP + 0x10]
SUB RSP,0x8
XOR EDI,EDI
MOV qword ptr [R14 + 0x50],0x0
MOV R8D,0x1
LEA RDX,[RBX + 0x10]
LEA RSI,[RBX + 0x8]
MOV qword ptr [R14 + 0x28],RAX
MOV RAX,qword ptr [RBX]
MOV qword ptr [R14 + 0x18],RAX
MOV RCX,qword ptr [RBP + 0x18]
PUSH R15
MOV R9,qword ptr [RBP + 0x20]
CALL 0x001144a0
MOV qword ptr [R14 + 0x20],RAX
POP RDI
POP R8
TEST RAX,RAX
JZ 0x00132af8
MOV R10,qword ptr [RBP + 0x20]
MOV qword ptr [RSP + 0x10],RAX
MOV qword ptr [RSP + 0x18],R10
TEST byte ptr [RBP + 0x9],0x8
JZ 0x00132a60
CMP dword ptr [0x0019345c],0x1
SBB RDX,RDX
AND EDX,0xc
ADD RDX,0xc
CMP R10,RDX
JC 0x00132b10
LEA RDI,[RSP + 0x20]
MOV RDX,R10
MOV RSI,RAX
CALL 0x0010ffa0
MOV R15D,dword ptr [RSP + 0x20]
CMP R15D,0x1
JNZ 0x00132ba8
MOV EAX,EAX
ADD qword ptr [RSP + 0x10],RAX
MOV RSI,qword ptr [RSP + 0x28]
SUB qword ptr [RSP + 0x18],RAX
TEST RSI,RSI
JNZ 0x00132b68
MOV R10,qword ptr [RSP + 0x18]
LEA RAX,[R13*0x8]
SUB RAX,R13
SHL RAX,0x4
LEA RCX,[R12 + RAX*0x1]
MOV RDX,qword ptr [RCX + 0x20]
MOV qword ptr [RCX + 0x30],R10
TEST RDX,RDX
JZ 0x00132b34
MOV ESI,dword ptr [RCX + 0x68]
TEST ESI,ESI
JNZ 0x00132b40
MOV qword ptr [RCX + 0x40],0x0
MOV EDX,0x1
MOV qword ptr [RCX + 0x48],0x0
JMP 0x001328f1
CMP R10,0xc
JBE 0x00132a14
MOV ECX,0x5
LEA RDI,[0x16ac39]
MOV RSI,RAX
CMPSB.REPE RDI,RSI
SETA DL
SBB DL,0x0
TEST DL,DL
JNZ 0x00132a14
MOVZX EDX,byte ptr [RAX + 0x4]
SUB R10,0xc
ADD RAX,0xc
MOV RSI,RDX
MOVZX EDX,byte ptr [RAX + -0x7]
SHL RSI,0x8
ADD RDX,RSI
MOVZX ESI,byte ptr [RAX + -0x6]
SHL RDX,0x8
ADD RSI,RDX
SHL RSI,0x8
MOV RDX,RSI
MOVZX ESI,byte ptr [RAX + -0x5]
MOV qword ptr [RSP + 0x18],R10
ADD RSI,RDX
MOVZX EDX,byte ptr [RAX + -0x4]
SHL RSI,0x8
ADD RDX,RSI
MOV RSI,RDX
MOVZX EDX,byte ptr [RAX + -0x3]
SHL RSI,0x8
ADD RDX,RSI
MOVZX ESI,byte ptr [RAX + -0x2]
SHL RDX,0x8
ADD RSI,RDX
SHL RSI,0x8
MOV RDX,RSI
MOVZX ESI,byte ptr [RAX + -0x1]
MOV qword ptr [RSP + 0x10],RAX
ADD RSI,RDX
JMP 0x00132a06
MOV qword ptr [R14 + 0x30],0x0
XOR EDX,EDX
JMP 0x001328f1
MOV RBX,qword ptr [R14 + 0x10]
LEA RSI,[0x172e38]
XOR EDI,EDI
MOV EDX,0x5
CALL 0x00107130
MOV RDI,RAX
MOV RSI,RBX
XOR EAX,EAX
CALL 0x001550d0
XOR EDX,EDX
JMP 0x001328f1
LEA R9,[R12 + RAX*0x1 + 0x48]
LEA R8,[R12 + RAX*0x1 + 0x40]
MOV RCX,R10
MOV RSI,RBP
MOV RDI,RBX
CALL 0x00130cd0
XOR EDX,EDX
TEST EAX,EAX
SETNZ DL
JMP 0x001328f1
LEA RDX,[RSP + 0x18]
LEA RDI,[RSP + 0x10]
CALL 0x00111310
TEST EAX,EAX
JZ 0x00132be0
LEA R14,[R13*0x8]
SUB R14,R13
SHL R14,0x4
ADD R14,R12
MOV RDI,qword ptr [R14 + 0x20]
CALL 0x00107030
MOV RAX,qword ptr [RSP + 0x10]
MOV qword ptr [R14 + 0x20],RAX
JMP 0x00132a0f
MOV RBX,qword ptr [R14 + 0x10]
MOV EDX,0x5
LEA RSI,[0x172e80]
XOR EDI,EDI
CALL 0x00107130
MOV EDX,R15D
MOV RDI,RAX
MOV RSI,RBX
XOR EAX,EAX
CALL 0x001550d0
XOR EDX,EDX
JMP 0x001328f1
LEA RSI,[RBX + 0x88]
LEA RDI,[RBX + 0x80]
MOV RDX,RBP
CALL 0x00113f30
MOV EDX,0x5
LEA RSI,[0x172eb0]
XOR EDI,EDI
MOV RBX,RAX
CALL 0x00107130
MOV RSI,RBX
MOV RDI,RAX
XOR EAX,EAX
CALL 0x00154b80
XOR EDX,EDX
JMP 0x001328f1
(translation_unit "bool FUN_001328a0(ulong param_1,long param_2,undefined8 *param_3)\n\n{\n  void *__ptr;\n  int iVar1;\n  uint uVar2;\n  char *__format;\n  long lVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  byte *pbVar6;\n  byte *pbVar7;\n  bool bVar8;\n  bool bVar9;\n  byte bVar10;\n  byte *local_a8;\n  ulong local_a0;\n  int local_98 [2];\n  long local_90;\n  char local_78 [72];\n  \n  bVar10 = 0;\n  param_1 = param_1 & 0xffffffff;\n  __ptr = (void *)(&DAT_001910e0)[param_1 * 0xe];\n  if (__ptr != (void *)0x0) {\n    iVar1 = strcmp(*(char **)(&DAT_001910d8 + param_1 * 0x70),(char *)*param_3);\n    if (iVar1 == 0) {\n      return true;\n    }\n    free(__ptr);\n  }\n  uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n  __format = (char *)dcgettext(0,"%s section data",5);\n  snprintf(local_78,0x40,__format,uVar4);\n  uVar4 = *(undefined8 *)(param_2 + 0x10);\n  *(undefined8 *)(&DAT_00191110 + param_1 * 0x70) = 0;\n  (&DAT_001910e8)[param_1 * 0xe] = uVar4;\n  *(undefined8 *)(&DAT_001910d8 + param_1 * 0x70) = *param_3;\n  local_a8 = (byte *)FUN_001144a0(0,param_3 + 1,param_3 + 2,*(undefined8 *)(param_2 + 0x18),1,\n                                  *(undefined8 *)(param_2 + 0x20),local_78);\n  (&DAT_001910e0)[param_1 * 0xe] = local_a8;\n  if (local_a8 == (byte *)0x0) {\n    (&DAT_001910f0)[param_1 * 0xe] = 0;\n    return false;\n  }\n  local_a0 = *(ulong *)(param_2 + 0x20);\n  if ((*(byte *)(param_2 + 9) & 8) == 0) {\n    bVar8 = local_a0 < 0xc;\n    bVar9 = local_a0 == 0xc;\n    if (local_a0 < 0xd) goto LAB_00132a14;\n    lVar3 = 5;\n    pbVar6 = local_a8;\n    pbVar7 = &DAT_0016ac39;\n    do {\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar8 = *pbVar6 < *pbVar7;\n      bVar9 = *pbVar6 == *pbVar7;\n      pbVar6 = pbVar6 + (ulong)bVar10 * -2 + 1;\n      pbVar7 = pbVar7 + (ulong)bVar10 * -2 + 1;\n    } while (bVar9);\n    if ((!bVar8 && !bVar9) != bVar8) goto LAB_00132a14;\n    local_a0 = local_a0 - 0xc;\n    local_90 = (ulong)local_a8[0xb] +\n               ((ulong)local_a8[10] +\n               ((ulong)local_a8[9] +\n               ((ulong)local_a8[8] +\n               ((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *\n               0x100) * 0x100) * 0x100) * 0x100;\n    local_a8 = local_a8 + 0xc;\n  }\n  else {\n    if (local_a0 < (ulong)(-(uint)(DAT_0019345c == 0) & 0xc) + 0xc) {\n      uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n      uVar5 = dcgettext(0,"compressed section %s is too small to contain a compression header",5);\n      warn(uVar5,uVar4);\n      return false;\n    }\n    uVar2 = FUN_0010ffa0(local_98,local_a8,local_a0);\n    if (local_98[0] != 1) {\n      uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n      uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(uVar5,uVar4,local_98[0]);\n      return false;\n    }\n    local_a0 = local_a0 - uVar2;\n    local_a8 = local_a8 + uVar2;\n  }\n  if (local_90 != 0) {\n    iVar1 = FUN_00111310(&local_a8,local_90,&local_a0);\n    if (iVar1 == 0) {\n      uVar4 = FUN_00113f30(param_3 + 0x10,param_3 + 0x11,param_2);\n      uVar5 = dcgettext(0,"Unable to decompress section %s\n",5);\n      error(uVar5,uVar4);\n      return false;\n    }\n    free((void *)(&DAT_001910e0)[param_1 * 0xe]);\n    (&DAT_001910e0)[param_1 * 0xe] = local_a8;\n  }\nLAB_00132a14:\n  lVar3 = param_1 * 0x70;\n  (&DAT_001910f0)[param_1 * 0xe] = local_a0;\n  if ((&DAT_001910e0)[param_1 * 0xe] == 0) {\n    return false;\n  }\n  if (*(int *)(&DAT_00191128 + lVar3) != 0) {\n    iVar1 = FUN_00130cd0(param_3,param_2,(&DAT_001910e0)[param_1 * 0xe],local_a0,\n                         &DAT_00191100 + lVar3,&DAT_00191108 + lVar3);\n    return iVar1 != 0;\n  }\n  *(undefined8 *)(&DAT_00191100 + lVar3) = 0;\n  *(undefined8 *)(&DAT_00191108 + lVar3) = 0;\n  return true;\n}\n\n" (function_definition "bool FUN_001328a0(ulong param_1,long param_2,undefined8 *param_3)\n\n{\n  void *__ptr;\n  int iVar1;\n  uint uVar2;\n  char *__format;\n  long lVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  byte *pbVar6;\n  byte *pbVar7;\n  bool bVar8;\n  bool bVar9;\n  byte bVar10;\n  byte *local_a8;\n  ulong local_a0;\n  int local_98 [2];\n  long local_90;\n  char local_78 [72];\n  \n  bVar10 = 0;\n  param_1 = param_1 & 0xffffffff;\n  __ptr = (void *)(&DAT_001910e0)[param_1 * 0xe];\n  if (__ptr != (void *)0x0) {\n    iVar1 = strcmp(*(char **)(&DAT_001910d8 + param_1 * 0x70),(char *)*param_3);\n    if (iVar1 == 0) {\n      return true;\n    }\n    free(__ptr);\n  }\n  uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n  __format = (char *)dcgettext(0,"%s section data",5);\n  snprintf(local_78,0x40,__format,uVar4);\n  uVar4 = *(undefined8 *)(param_2 + 0x10);\n  *(undefined8 *)(&DAT_00191110 + param_1 * 0x70) = 0;\n  (&DAT_001910e8)[param_1 * 0xe] = uVar4;\n  *(undefined8 *)(&DAT_001910d8 + param_1 * 0x70) = *param_3;\n  local_a8 = (byte *)FUN_001144a0(0,param_3 + 1,param_3 + 2,*(undefined8 *)(param_2 + 0x18),1,\n                                  *(undefined8 *)(param_2 + 0x20),local_78);\n  (&DAT_001910e0)[param_1 * 0xe] = local_a8;\n  if (local_a8 == (byte *)0x0) {\n    (&DAT_001910f0)[param_1 * 0xe] = 0;\n    return false;\n  }\n  local_a0 = *(ulong *)(param_2 + 0x20);\n  if ((*(byte *)(param_2 + 9) & 8) == 0) {\n    bVar8 = local_a0 < 0xc;\n    bVar9 = local_a0 == 0xc;\n    if (local_a0 < 0xd) goto LAB_00132a14;\n    lVar3 = 5;\n    pbVar6 = local_a8;\n    pbVar7 = &DAT_0016ac39;\n    do {\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar8 = *pbVar6 < *pbVar7;\n      bVar9 = *pbVar6 == *pbVar7;\n      pbVar6 = pbVar6 + (ulong)bVar10 * -2 + 1;\n      pbVar7 = pbVar7 + (ulong)bVar10 * -2 + 1;\n    } while (bVar9);\n    if ((!bVar8 && !bVar9) != bVar8) goto LAB_00132a14;\n    local_a0 = local_a0 - 0xc;\n    local_90 = (ulong)local_a8[0xb] +\n               ((ulong)local_a8[10] +\n               ((ulong)local_a8[9] +\n               ((ulong)local_a8[8] +\n               ((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *\n               0x100) * 0x100) * 0x100) * 0x100;\n    local_a8 = local_a8 + 0xc;\n  }\n  else {\n    if (local_a0 < (ulong)(-(uint)(DAT_0019345c == 0) & 0xc) + 0xc) {\n      uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n      uVar5 = dcgettext(0,"compressed section %s is too small to contain a compression header",5);\n      warn(uVar5,uVar4);\n      return false;\n    }\n    uVar2 = FUN_0010ffa0(local_98,local_a8,local_a0);\n    if (local_98[0] != 1) {\n      uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n      uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(uVar5,uVar4,local_98[0]);\n      return false;\n    }\n    local_a0 = local_a0 - uVar2;\n    local_a8 = local_a8 + uVar2;\n  }\n  if (local_90 != 0) {\n    iVar1 = FUN_00111310(&local_a8,local_90,&local_a0);\n    if (iVar1 == 0) {\n      uVar4 = FUN_00113f30(param_3 + 0x10,param_3 + 0x11,param_2);\n      uVar5 = dcgettext(0,"Unable to decompress section %s\n",5);\n      error(uVar5,uVar4);\n      return false;\n    }\n    free((void *)(&DAT_001910e0)[param_1 * 0xe]);\n    (&DAT_001910e0)[param_1 * 0xe] = local_a8;\n  }\nLAB_00132a14:\n  lVar3 = param_1 * 0x70;\n  (&DAT_001910f0)[param_1 * 0xe] = local_a0;\n  if ((&DAT_001910e0)[param_1 * 0xe] == 0) {\n    return false;\n  }\n  if (*(int *)(&DAT_00191128 + lVar3) != 0) {\n    iVar1 = FUN_00130cd0(param_3,param_2,(&DAT_001910e0)[param_1 * 0xe],local_a0,\n                         &DAT_00191100 + lVar3,&DAT_00191108 + lVar3);\n    return iVar1 != 0;\n  }\n  *(undefined8 *)(&DAT_00191100 + lVar3) = 0;\n  *(undefined8 *)(&DAT_00191108 + lVar3) = 0;\n  return true;\n}" primitive_type (function_declarator "FUN_001328a0(ulong param_1,long param_2,undefined8 *param_3)" identifier (parameter_list "(ulong param_1,long param_2,undefined8 *param_3)" ( (parameter_declaration "ulong param_1" type_identifier identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  void *__ptr;\n  int iVar1;\n  uint uVar2;\n  char *__format;\n  long lVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  byte *pbVar6;\n  byte *pbVar7;\n  bool bVar8;\n  bool bVar9;\n  byte bVar10;\n  byte *local_a8;\n  ulong local_a0;\n  int local_98 [2];\n  long local_90;\n  char local_78 [72];\n  \n  bVar10 = 0;\n  param_1 = param_1 & 0xffffffff;\n  __ptr = (void *)(&DAT_001910e0)[param_1 * 0xe];\n  if (__ptr != (void *)0x0) {\n    iVar1 = strcmp(*(char **)(&DAT_001910d8 + param_1 * 0x70),(char *)*param_3);\n    if (iVar1 == 0) {\n      return true;\n    }\n    free(__ptr);\n  }\n  uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n  __format = (char *)dcgettext(0,"%s section data",5);\n  snprintf(local_78,0x40,__format,uVar4);\n  uVar4 = *(undefined8 *)(param_2 + 0x10);\n  *(undefined8 *)(&DAT_00191110 + param_1 * 0x70) = 0;\n  (&DAT_001910e8)[param_1 * 0xe] = uVar4;\n  *(undefined8 *)(&DAT_001910d8 + param_1 * 0x70) = *param_3;\n  local_a8 = (byte *)FUN_001144a0(0,param_3 + 1,param_3 + 2,*(undefined8 *)(param_2 + 0x18),1,\n                                  *(undefined8 *)(param_2 + 0x20),local_78);\n  (&DAT_001910e0)[param_1 * 0xe] = local_a8;\n  if (local_a8 == (byte *)0x0) {\n    (&DAT_001910f0)[param_1 * 0xe] = 0;\n    return false;\n  }\n  local_a0 = *(ulong *)(param_2 + 0x20);\n  if ((*(byte *)(param_2 + 9) & 8) == 0) {\n    bVar8 = local_a0 < 0xc;\n    bVar9 = local_a0 == 0xc;\n    if (local_a0 < 0xd) goto LAB_00132a14;\n    lVar3 = 5;\n    pbVar6 = local_a8;\n    pbVar7 = &DAT_0016ac39;\n    do {\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar8 = *pbVar6 < *pbVar7;\n      bVar9 = *pbVar6 == *pbVar7;\n      pbVar6 = pbVar6 + (ulong)bVar10 * -2 + 1;\n      pbVar7 = pbVar7 + (ulong)bVar10 * -2 + 1;\n    } while (bVar9);\n    if ((!bVar8 && !bVar9) != bVar8) goto LAB_00132a14;\n    local_a0 = local_a0 - 0xc;\n    local_90 = (ulong)local_a8[0xb] +\n               ((ulong)local_a8[10] +\n               ((ulong)local_a8[9] +\n               ((ulong)local_a8[8] +\n               ((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *\n               0x100) * 0x100) * 0x100) * 0x100;\n    local_a8 = local_a8 + 0xc;\n  }\n  else {\n    if (local_a0 < (ulong)(-(uint)(DAT_0019345c == 0) & 0xc) + 0xc) {\n      uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n      uVar5 = dcgettext(0,"compressed section %s is too small to contain a compression header",5);\n      warn(uVar5,uVar4);\n      return false;\n    }\n    uVar2 = FUN_0010ffa0(local_98,local_a8,local_a0);\n    if (local_98[0] != 1) {\n      uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n      uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(uVar5,uVar4,local_98[0]);\n      return false;\n    }\n    local_a0 = local_a0 - uVar2;\n    local_a8 = local_a8 + uVar2;\n  }\n  if (local_90 != 0) {\n    iVar1 = FUN_00111310(&local_a8,local_90,&local_a0);\n    if (iVar1 == 0) {\n      uVar4 = FUN_00113f30(param_3 + 0x10,param_3 + 0x11,param_2);\n      uVar5 = dcgettext(0,"Unable to decompress section %s\n",5);\n      error(uVar5,uVar4);\n      return false;\n    }\n    free((void *)(&DAT_001910e0)[param_1 * 0xe]);\n    (&DAT_001910e0)[param_1 * 0xe] = local_a8;\n  }\nLAB_00132a14:\n  lVar3 = param_1 * 0x70;\n  (&DAT_001910f0)[param_1 * 0xe] = local_a0;\n  if ((&DAT_001910e0)[param_1 * 0xe] == 0) {\n    return false;\n  }\n  if (*(int *)(&DAT_00191128 + lVar3) != 0) {\n    iVar1 = FUN_00130cd0(param_3,param_2,(&DAT_001910e0)[param_1 * 0xe],local_a0,\n                         &DAT_00191100 + lVar3,&DAT_00191108 + lVar3);\n    return iVar1 != 0;\n  }\n  *(undefined8 *)(&DAT_00191100 + lVar3) = 0;\n  *(undefined8 *)(&DAT_00191108 + lVar3) = 0;\n  return true;\n}" { (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "char *__format;" primitive_type (pointer_declarator "*__format" * identifier) ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (declaration "byte *pbVar6;" type_identifier (pointer_declarator "*pbVar6" * identifier) ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "bool bVar8;" primitive_type identifier ;) (declaration "bool bVar9;" primitive_type identifier ;) (declaration "byte bVar10;" type_identifier identifier ;) (declaration "byte *local_a8;" type_identifier (pointer_declarator "*local_a8" * identifier) ;) (declaration "ulong local_a0;" type_identifier identifier ;) (declaration "int local_98 [2];" primitive_type (array_declarator "local_98 [2]" identifier [ number_literal ]) ;) (declaration "long local_90;" (sized_type_specifier "long" long) identifier ;) (declaration "char local_78 [72];" primitive_type (array_declarator "local_78 [72]" identifier [ number_literal ]) ;) (expression_statement "bVar10 = 0;" (assignment_expression "bVar10 = 0" identifier = number_literal) ;) (expression_statement "param_1 = param_1 & 0xffffffff;" (assignment_expression "param_1 = param_1 & 0xffffffff" identifier = (binary_expression "param_1 & 0xffffffff" identifier & number_literal)) ;) (expression_statement "__ptr = (void *)(&DAT_001910e0)[param_1 * 0xe];" (assignment_expression "__ptr = (void *)(&DAT_001910e0)[param_1 * 0xe]" identifier = (cast_expression "(void *)(&DAT_001910e0)[param_1 * 0xe]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "(&DAT_001910e0)[param_1 * 0xe]" (parenthesized_expression "(&DAT_001910e0)" ( (pointer_expression "&DAT_001910e0" & identifier) )) [ (binary_expression "param_1 * 0xe" identifier * number_literal) ]))) ;) (if_statement "if (__ptr != (void *)0x0) {\n    iVar1 = strcmp(*(char **)(&DAT_001910d8 + param_1 * 0x70),(char *)*param_3);\n    if (iVar1 == 0) {\n      return true;\n    }\n    free(__ptr);\n  }" if (parenthesized_expression "(__ptr != (void *)0x0)" ( (binary_expression "__ptr != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar1 = strcmp(*(char **)(&DAT_001910d8 + param_1 * 0x70),(char *)*param_3);\n    if (iVar1 == 0) {\n      return true;\n    }\n    free(__ptr);\n  }" { (expression_statement "iVar1 = strcmp(*(char **)(&DAT_001910d8 + param_1 * 0x70),(char *)*param_3);" (assignment_expression "iVar1 = strcmp(*(char **)(&DAT_001910d8 + param_1 * 0x70),(char *)*param_3)" identifier = (call_expression "strcmp(*(char **)(&DAT_001910d8 + param_1 * 0x70),(char *)*param_3)" identifier (argument_list "(*(char **)(&DAT_001910d8 + param_1 * 0x70),(char *)*param_3)" ( (pointer_expression "*(char **)(&DAT_001910d8 + param_1 * 0x70)" * (cast_expression "(char **)(&DAT_001910d8 + param_1 * 0x70)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_001910d8 + param_1 * 0x70)" ( (binary_expression "&DAT_001910d8 + param_1 * 0x70" (pointer_expression "&DAT_001910d8" & identifier) + (binary_expression "param_1 * 0x70" identifier * number_literal)) )))) , (cast_expression "(char *)*param_3" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_3" * identifier)) )))) ;) (if_statement "if (iVar1 == 0) {\n      return true;\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      return true;\n    }" { (return_statement "return true;" return true ;) })) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) })) (expression_statement "uVar4 = (&DAT_001910d0)[param_1 * 0xe];" (assignment_expression "uVar4 = (&DAT_001910d0)[param_1 * 0xe]" identifier = (subscript_expression "(&DAT_001910d0)[param_1 * 0xe]" (parenthesized_expression "(&DAT_001910d0)" ( (pointer_expression "&DAT_001910d0" & identifier) )) [ (binary_expression "param_1 * 0xe" identifier * number_literal) ])) ;) (expression_statement "__format = (char *)dcgettext(0,"%s section data",5);" (assignment_expression "__format = (char *)dcgettext(0,"%s section data",5)" identifier = (cast_expression "(char *)dcgettext(0,"%s section data",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%s section data",5)" identifier (argument_list "(0,"%s section data",5)" ( number_literal , (string_literal ""%s section data"" " string_content ") , number_literal ))))) ;) (expression_statement "snprintf(local_78,0x40,__format,uVar4);" (call_expression "snprintf(local_78,0x40,__format,uVar4)" identifier (argument_list "(local_78,0x40,__format,uVar4)" ( identifier , number_literal , identifier , identifier ))) ;) (expression_statement "uVar4 = *(undefined8 *)(param_2 + 0x10);" (assignment_expression "uVar4 = *(undefined8 *)(param_2 + 0x10)" identifier = (pointer_expression "*(undefined8 *)(param_2 + 0x10)" * (cast_expression "(undefined8 *)(param_2 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(undefined8 *)(&DAT_00191110 + param_1 * 0x70) = 0;" (assignment_expression "*(undefined8 *)(&DAT_00191110 + param_1 * 0x70) = 0" (pointer_expression "*(undefined8 *)(&DAT_00191110 + param_1 * 0x70)" * (cast_expression "(undefined8 *)(&DAT_00191110 + param_1 * 0x70)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00191110 + param_1 * 0x70)" ( (binary_expression "&DAT_00191110 + param_1 * 0x70" (pointer_expression "&DAT_00191110" & identifier) + (binary_expression "param_1 * 0x70" identifier * number_literal)) )))) = number_literal) ;) (expression_statement "(&DAT_001910e8)[param_1 * 0xe] = uVar4;" (assignment_expression "(&DAT_001910e8)[param_1 * 0xe] = uVar4" (subscript_expression "(&DAT_001910e8)[param_1 * 0xe]" (parenthesized_expression "(&DAT_001910e8)" ( (pointer_expression "&DAT_001910e8" & identifier) )) [ (binary_expression "param_1 * 0xe" identifier * number_literal) ]) = identifier) ;) (expression_statement "*(undefined8 *)(&DAT_001910d8 + param_1 * 0x70) = *param_3;" (assignment_expression "*(undefined8 *)(&DAT_001910d8 + param_1 * 0x70) = *param_3" (pointer_expression "*(undefined8 *)(&DAT_001910d8 + param_1 * 0x70)" * (cast_expression "(undefined8 *)(&DAT_001910d8 + param_1 * 0x70)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_001910d8 + param_1 * 0x70)" ( (binary_expression "&DAT_001910d8 + param_1 * 0x70" (pointer_expression "&DAT_001910d8" & identifier) + (binary_expression "param_1 * 0x70" identifier * number_literal)) )))) = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "local_a8 = (byte *)FUN_001144a0(0,param_3 + 1,param_3 + 2,*(undefined8 *)(param_2 + 0x18),1,\n                                  *(undefined8 *)(param_2 + 0x20),local_78);" (assignment_expression "local_a8 = (byte *)FUN_001144a0(0,param_3 + 1,param_3 + 2,*(undefined8 *)(param_2 + 0x18),1,\n                                  *(undefined8 *)(param_2 + 0x20),local_78)" identifier = (cast_expression "(byte *)FUN_001144a0(0,param_3 + 1,param_3 + 2,*(undefined8 *)(param_2 + 0x18),1,\n                                  *(undefined8 *)(param_2 + 0x20),local_78)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001144a0(0,param_3 + 1,param_3 + 2,*(undefined8 *)(param_2 + 0x18),1,\n                                  *(undefined8 *)(param_2 + 0x20),local_78)" identifier (argument_list "(0,param_3 + 1,param_3 + 2,*(undefined8 *)(param_2 + 0x18),1,\n                                  *(undefined8 *)(param_2 + 0x20),local_78)" ( number_literal , (binary_expression "param_3 + 1" identifier + number_literal) , (binary_expression "param_3 + 2" identifier + number_literal) , (pointer_expression "*(undefined8 *)(param_2 + 0x18)" * (cast_expression "(undefined8 *)(param_2 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) )))) , number_literal , (pointer_expression "*(undefined8 *)(param_2 + 0x20)" * (cast_expression "(undefined8 *)(param_2 + 0x20)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x20)" ( (binary_expression "param_2 + 0x20" identifier + number_literal) )))) , identifier ))))) ;) (expression_statement "(&DAT_001910e0)[param_1 * 0xe] = local_a8;" (assignment_expression "(&DAT_001910e0)[param_1 * 0xe] = local_a8" (subscript_expression "(&DAT_001910e0)[param_1 * 0xe]" (parenthesized_expression "(&DAT_001910e0)" ( (pointer_expression "&DAT_001910e0" & identifier) )) [ (binary_expression "param_1 * 0xe" identifier * number_literal) ]) = identifier) ;) (if_statement "if (local_a8 == (byte *)0x0) {\n    (&DAT_001910f0)[param_1 * 0xe] = 0;\n    return false;\n  }" if (parenthesized_expression "(local_a8 == (byte *)0x0)" ( (binary_expression "local_a8 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (&DAT_001910f0)[param_1 * 0xe] = 0;\n    return false;\n  }" { (expression_statement "(&DAT_001910f0)[param_1 * 0xe] = 0;" (assignment_expression "(&DAT_001910f0)[param_1 * 0xe] = 0" (subscript_expression "(&DAT_001910f0)[param_1 * 0xe]" (parenthesized_expression "(&DAT_001910f0)" ( (pointer_expression "&DAT_001910f0" & identifier) )) [ (binary_expression "param_1 * 0xe" identifier * number_literal) ]) = number_literal) ;) (return_statement "return false;" return false ;) })) (expression_statement "local_a0 = *(ulong *)(param_2 + 0x20);" (assignment_expression "local_a0 = *(ulong *)(param_2 + 0x20)" identifier = (pointer_expression "*(ulong *)(param_2 + 0x20)" * (cast_expression "(ulong *)(param_2 + 0x20)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x20)" ( (binary_expression "param_2 + 0x20" identifier + number_literal) ))))) ;) (if_statement "if ((*(byte *)(param_2 + 9) & 8) == 0) {\n    bVar8 = local_a0 < 0xc;\n    bVar9 = local_a0 == 0xc;\n    if (local_a0 < 0xd) goto LAB_00132a14;\n    lVar3 = 5;\n    pbVar6 = local_a8;\n    pbVar7 = &DAT_0016ac39;\n    do {\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar8 = *pbVar6 < *pbVar7;\n      bVar9 = *pbVar6 == *pbVar7;\n      pbVar6 = pbVar6 + (ulong)bVar10 * -2 + 1;\n      pbVar7 = pbVar7 + (ulong)bVar10 * -2 + 1;\n    } while (bVar9);\n    if ((!bVar8 && !bVar9) != bVar8) goto LAB_00132a14;\n    local_a0 = local_a0 - 0xc;\n    local_90 = (ulong)local_a8[0xb] +\n               ((ulong)local_a8[10] +\n               ((ulong)local_a8[9] +\n               ((ulong)local_a8[8] +\n               ((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *\n               0x100) * 0x100) * 0x100) * 0x100;\n    local_a8 = local_a8 + 0xc;\n  }\n  else {\n    if (local_a0 < (ulong)(-(uint)(DAT_0019345c == 0) & 0xc) + 0xc) {\n      uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n      uVar5 = dcgettext(0,"compressed section %s is too small to contain a compression header",5);\n      warn(uVar5,uVar4);\n      return false;\n    }\n    uVar2 = FUN_0010ffa0(local_98,local_a8,local_a0);\n    if (local_98[0] != 1) {\n      uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n      uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(uVar5,uVar4,local_98[0]);\n      return false;\n    }\n    local_a0 = local_a0 - uVar2;\n    local_a8 = local_a8 + uVar2;\n  }" if (parenthesized_expression "((*(byte *)(param_2 + 9) & 8) == 0)" ( (binary_expression "(*(byte *)(param_2 + 9) & 8) == 0" (parenthesized_expression "(*(byte *)(param_2 + 9) & 8)" ( (binary_expression "*(byte *)(param_2 + 9) & 8" (pointer_expression "*(byte *)(param_2 + 9)" * (cast_expression "(byte *)(param_2 + 9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 9)" ( (binary_expression "param_2 + 9" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    bVar8 = local_a0 < 0xc;\n    bVar9 = local_a0 == 0xc;\n    if (local_a0 < 0xd) goto LAB_00132a14;\n    lVar3 = 5;\n    pbVar6 = local_a8;\n    pbVar7 = &DAT_0016ac39;\n    do {\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar8 = *pbVar6 < *pbVar7;\n      bVar9 = *pbVar6 == *pbVar7;\n      pbVar6 = pbVar6 + (ulong)bVar10 * -2 + 1;\n      pbVar7 = pbVar7 + (ulong)bVar10 * -2 + 1;\n    } while (bVar9);\n    if ((!bVar8 && !bVar9) != bVar8) goto LAB_00132a14;\n    local_a0 = local_a0 - 0xc;\n    local_90 = (ulong)local_a8[0xb] +\n               ((ulong)local_a8[10] +\n               ((ulong)local_a8[9] +\n               ((ulong)local_a8[8] +\n               ((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *\n               0x100) * 0x100) * 0x100) * 0x100;\n    local_a8 = local_a8 + 0xc;\n  }" { (expression_statement "bVar8 = local_a0 < 0xc;" (assignment_expression "bVar8 = local_a0 < 0xc" identifier = (binary_expression "local_a0 < 0xc" identifier < number_literal)) ;) (expression_statement "bVar9 = local_a0 == 0xc;" (assignment_expression "bVar9 = local_a0 == 0xc" identifier = (binary_expression "local_a0 == 0xc" identifier == number_literal)) ;) (if_statement "if (local_a0 < 0xd) goto LAB_00132a14;" if (parenthesized_expression "(local_a0 < 0xd)" ( (binary_expression "local_a0 < 0xd" identifier < number_literal) )) (goto_statement "goto LAB_00132a14;" goto statement_identifier ;)) (expression_statement "lVar3 = 5;" (assignment_expression "lVar3 = 5" identifier = number_literal) ;) (expression_statement "pbVar6 = local_a8;" (assignment_expression "pbVar6 = local_a8" identifier = identifier) ;) (expression_statement "pbVar7 = &DAT_0016ac39;" (assignment_expression "pbVar7 = &DAT_0016ac39" identifier = (pointer_expression "&DAT_0016ac39" & identifier)) ;) (do_statement "do {\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar8 = *pbVar6 < *pbVar7;\n      bVar9 = *pbVar6 == *pbVar7;\n      pbVar6 = pbVar6 + (ulong)bVar10 * -2 + 1;\n      pbVar7 = pbVar7 + (ulong)bVar10 * -2 + 1;\n    } while (bVar9);" do (compound_statement "{\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar8 = *pbVar6 < *pbVar7;\n      bVar9 = *pbVar6 == *pbVar7;\n      pbVar6 = pbVar6 + (ulong)bVar10 * -2 + 1;\n      pbVar7 = pbVar7 + (ulong)bVar10 * -2 + 1;\n    }" { (if_statement "if (lVar3 == 0) break;" if (parenthesized_expression "(lVar3 == 0)" ( (binary_expression "lVar3 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar3 = lVar3 + -1;" (assignment_expression "lVar3 = lVar3 + -1" identifier = (binary_expression "lVar3 + -1" identifier + number_literal)) ;) (expression_statement "bVar8 = *pbVar6 < *pbVar7;" (assignment_expression "bVar8 = *pbVar6 < *pbVar7" identifier = (binary_expression "*pbVar6 < *pbVar7" (pointer_expression "*pbVar6" * identifier) < (pointer_expression "*pbVar7" * identifier))) ;) (expression_statement "bVar9 = *pbVar6 == *pbVar7;" (assignment_expression "bVar9 = *pbVar6 == *pbVar7" identifier = (binary_expression "*pbVar6 == *pbVar7" (pointer_expression "*pbVar6" * identifier) == (pointer_expression "*pbVar7" * identifier))) ;) (expression_statement "pbVar6 = pbVar6 + (ulong)bVar10 * -2 + 1;" (assignment_expression "pbVar6 = pbVar6 + (ulong)bVar10 * -2 + 1" identifier = (binary_expression "pbVar6 + (ulong)bVar10 * -2 + 1" (binary_expression "pbVar6 + (ulong)bVar10 * -2" identifier + (binary_expression "(ulong)bVar10 * -2" (cast_expression "(ulong)bVar10" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar7 = pbVar7 + (ulong)bVar10 * -2 + 1;" (assignment_expression "pbVar7 = pbVar7 + (ulong)bVar10 * -2 + 1" identifier = (binary_expression "pbVar7 + (ulong)bVar10 * -2 + 1" (binary_expression "pbVar7 + (ulong)bVar10 * -2" identifier + (binary_expression "(ulong)bVar10 * -2" (cast_expression "(ulong)bVar10" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar9)" ( identifier )) ;) (if_statement "if ((!bVar8 && !bVar9) != bVar8) goto LAB_00132a14;" if (parenthesized_expression "((!bVar8 && !bVar9) != bVar8)" ( (binary_expression "(!bVar8 && !bVar9) != bVar8" (parenthesized_expression "(!bVar8 && !bVar9)" ( (binary_expression "!bVar8 && !bVar9" (unary_expression "!bVar8" ! identifier) && (unary_expression "!bVar9" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_00132a14;" goto statement_identifier ;)) (expression_statement "local_a0 = local_a0 - 0xc;" (assignment_expression "local_a0 = local_a0 - 0xc" identifier = (binary_expression "local_a0 - 0xc" identifier - number_literal)) ;) (expression_statement "local_90 = (ulong)local_a8[0xb] +\n               ((ulong)local_a8[10] +\n               ((ulong)local_a8[9] +\n               ((ulong)local_a8[8] +\n               ((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *\n               0x100) * 0x100) * 0x100) * 0x100;" (assignment_expression "local_90 = (ulong)local_a8[0xb] +\n               ((ulong)local_a8[10] +\n               ((ulong)local_a8[9] +\n               ((ulong)local_a8[8] +\n               ((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *\n               0x100) * 0x100) * 0x100) * 0x100" identifier = (binary_expression "(ulong)local_a8[0xb] +\n               ((ulong)local_a8[10] +\n               ((ulong)local_a8[9] +\n               ((ulong)local_a8[8] +\n               ((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *\n               0x100) * 0x100) * 0x100) * 0x100" (cast_expression "(ulong)local_a8[0xb]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "local_a8[0xb]" identifier [ number_literal ])) + (binary_expression "((ulong)local_a8[10] +\n               ((ulong)local_a8[9] +\n               ((ulong)local_a8[8] +\n               ((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *\n               0x100) * 0x100) * 0x100) * 0x100" (parenthesized_expression "((ulong)local_a8[10] +\n               ((ulong)local_a8[9] +\n               ((ulong)local_a8[8] +\n               ((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *\n               0x100) * 0x100) * 0x100)" ( (binary_expression "(ulong)local_a8[10] +\n               ((ulong)local_a8[9] +\n               ((ulong)local_a8[8] +\n               ((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *\n               0x100) * 0x100) * 0x100" (cast_expression "(ulong)local_a8[10]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "local_a8[10]" identifier [ number_literal ])) + (binary_expression "((ulong)local_a8[9] +\n               ((ulong)local_a8[8] +\n               ((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *\n               0x100) * 0x100) * 0x100" (parenthesized_expression "((ulong)local_a8[9] +\n               ((ulong)local_a8[8] +\n               ((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *\n               0x100) * 0x100)" ( (binary_expression "(ulong)local_a8[9] +\n               ((ulong)local_a8[8] +\n               ((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *\n               0x100) * 0x100" (cast_expression "(ulong)local_a8[9]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "local_a8[9]" identifier [ number_literal ])) + (binary_expression "((ulong)local_a8[8] +\n               ((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *\n               0x100) * 0x100" (parenthesized_expression "((ulong)local_a8[8] +\n               ((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *\n               0x100)" ( (binary_expression "(ulong)local_a8[8] +\n               ((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *\n               0x100" (cast_expression "(ulong)local_a8[8]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "local_a8[8]" identifier [ number_literal ])) + (binary_expression "((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *\n               0x100" (parenthesized_expression "((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100)" ( (binary_expression "(ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100" (cast_expression "(ulong)local_a8[7]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "local_a8[7]" identifier [ number_literal ])) + (binary_expression "((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100" (parenthesized_expression "((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100)" ( (binary_expression "(ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100" (cast_expression "(ulong)local_a8[6]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "local_a8[6]" identifier [ number_literal ])) + (binary_expression "(ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100" (cast_expression "(ulong)CONCAT11(local_a8[4],local_a8[5])" ( (type_descriptor "ulong" type_identifier) ) (call_expression "CONCAT11(local_a8[4],local_a8[5])" identifier (argument_list "(local_a8[4],local_a8[5])" ( (subscript_expression "local_a8[4]" identifier [ number_literal ]) , (subscript_expression "local_a8[5]" identifier [ number_literal ]) )))) * number_literal)) )) * number_literal)) )) * number_literal)) )) * number_literal)) )) * number_literal)) )) * number_literal))) ;) (expression_statement "local_a8 = local_a8 + 0xc;" (assignment_expression "local_a8 = local_a8 + 0xc" identifier = (binary_expression "local_a8 + 0xc" identifier + number_literal)) ;) }) (else_clause "else {\n    if (local_a0 < (ulong)(-(uint)(DAT_0019345c == 0) & 0xc) + 0xc) {\n      uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n      uVar5 = dcgettext(0,"compressed section %s is too small to contain a compression header",5);\n      warn(uVar5,uVar4);\n      return false;\n    }\n    uVar2 = FUN_0010ffa0(local_98,local_a8,local_a0);\n    if (local_98[0] != 1) {\n      uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n      uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(uVar5,uVar4,local_98[0]);\n      return false;\n    }\n    local_a0 = local_a0 - uVar2;\n    local_a8 = local_a8 + uVar2;\n  }" else (compound_statement "{\n    if (local_a0 < (ulong)(-(uint)(DAT_0019345c == 0) & 0xc) + 0xc) {\n      uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n      uVar5 = dcgettext(0,"compressed section %s is too small to contain a compression header",5);\n      warn(uVar5,uVar4);\n      return false;\n    }\n    uVar2 = FUN_0010ffa0(local_98,local_a8,local_a0);\n    if (local_98[0] != 1) {\n      uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n      uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(uVar5,uVar4,local_98[0]);\n      return false;\n    }\n    local_a0 = local_a0 - uVar2;\n    local_a8 = local_a8 + uVar2;\n  }" { (if_statement "if (local_a0 < (ulong)(-(uint)(DAT_0019345c == 0) & 0xc) + 0xc) {\n      uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n      uVar5 = dcgettext(0,"compressed section %s is too small to contain a compression header",5);\n      warn(uVar5,uVar4);\n      return false;\n    }" if (parenthesized_expression "(local_a0 < (ulong)(-(uint)(DAT_0019345c == 0) & 0xc) + 0xc)" ( (binary_expression "local_a0 < (ulong)(-(uint)(DAT_0019345c == 0) & 0xc) + 0xc" identifier < (binary_expression "(ulong)(-(uint)(DAT_0019345c == 0) & 0xc) + 0xc" (call_expression "(ulong)(-(uint)(DAT_0019345c == 0) & 0xc)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(-(uint)(DAT_0019345c == 0) & 0xc)" ( (binary_expression "-(uint)(DAT_0019345c == 0) & 0xc" (unary_expression "-(uint)(DAT_0019345c == 0)" - (call_expression "(uint)(DAT_0019345c == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(DAT_0019345c == 0)" ( (binary_expression "DAT_0019345c == 0" identifier == number_literal) )))) & number_literal) ))) + number_literal)) )) (compound_statement "{\n      uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n      uVar5 = dcgettext(0,"compressed section %s is too small to contain a compression header",5);\n      warn(uVar5,uVar4);\n      return false;\n    }" { (expression_statement "uVar4 = (&DAT_001910d0)[param_1 * 0xe];" (assignment_expression "uVar4 = (&DAT_001910d0)[param_1 * 0xe]" identifier = (subscript_expression "(&DAT_001910d0)[param_1 * 0xe]" (parenthesized_expression "(&DAT_001910d0)" ( (pointer_expression "&DAT_001910d0" & identifier) )) [ (binary_expression "param_1 * 0xe" identifier * number_literal) ])) ;) (expression_statement "uVar5 = dcgettext(0,"compressed section %s is too small to contain a compression header",5);" (assignment_expression "uVar5 = dcgettext(0,"compressed section %s is too small to contain a compression header",5)" identifier = (call_expression "dcgettext(0,"compressed section %s is too small to contain a compression header",5)" identifier (argument_list "(0,"compressed section %s is too small to contain a compression header",5)" ( number_literal , (string_literal ""compressed section %s is too small to contain a compression header"" " string_content ") , number_literal )))) ;) (expression_statement "warn(uVar5,uVar4);" (call_expression "warn(uVar5,uVar4)" identifier (argument_list "(uVar5,uVar4)" ( identifier , identifier ))) ;) (return_statement "return false;" return false ;) })) (expression_statement "uVar2 = FUN_0010ffa0(local_98,local_a8,local_a0);" (assignment_expression "uVar2 = FUN_0010ffa0(local_98,local_a8,local_a0)" identifier = (call_expression "FUN_0010ffa0(local_98,local_a8,local_a0)" identifier (argument_list "(local_98,local_a8,local_a0)" ( identifier , identifier , identifier )))) ;) (if_statement "if (local_98[0] != 1) {\n      uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n      uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(uVar5,uVar4,local_98[0]);\n      return false;\n    }" if (parenthesized_expression "(local_98[0] != 1)" ( (binary_expression "local_98[0] != 1" (subscript_expression "local_98[0]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n      uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(uVar5,uVar4,local_98[0]);\n      return false;\n    }" { (expression_statement "uVar4 = (&DAT_001910d0)[param_1 * 0xe];" (assignment_expression "uVar4 = (&DAT_001910d0)[param_1 * 0xe]" identifier = (subscript_expression "(&DAT_001910d0)[param_1 * 0xe]" (parenthesized_expression "(&DAT_001910d0)" ( (pointer_expression "&DAT_001910d0" & identifier) )) [ (binary_expression "param_1 * 0xe" identifier * number_literal) ])) ;) (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,uVar4,local_98[0]);" (call_expression "warn(uVar5,uVar4,local_98[0])" identifier (argument_list "(uVar5,uVar4,local_98[0])" ( identifier , identifier , (subscript_expression "local_98[0]" identifier [ number_literal ]) ))) ;) (return_statement "return false;" return false ;) })) (expression_statement "local_a0 = local_a0 - uVar2;" (assignment_expression "local_a0 = local_a0 - uVar2" identifier = (binary_expression "local_a0 - uVar2" identifier - identifier)) ;) (expression_statement "local_a8 = local_a8 + uVar2;" (assignment_expression "local_a8 = local_a8 + uVar2" identifier = (binary_expression "local_a8 + uVar2" identifier + identifier)) ;) }))) (if_statement "if (local_90 != 0) {\n    iVar1 = FUN_00111310(&local_a8,local_90,&local_a0);\n    if (iVar1 == 0) {\n      uVar4 = FUN_00113f30(param_3 + 0x10,param_3 + 0x11,param_2);\n      uVar5 = dcgettext(0,"Unable to decompress section %s\n",5);\n      error(uVar5,uVar4);\n      return false;\n    }\n    free((void *)(&DAT_001910e0)[param_1 * 0xe]);\n    (&DAT_001910e0)[param_1 * 0xe] = local_a8;\n  }" if (parenthesized_expression "(local_90 != 0)" ( (binary_expression "local_90 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar1 = FUN_00111310(&local_a8,local_90,&local_a0);\n    if (iVar1 == 0) {\n      uVar4 = FUN_00113f30(param_3 + 0x10,param_3 + 0x11,param_2);\n      uVar5 = dcgettext(0,"Unable to decompress section %s\n",5);\n      error(uVar5,uVar4);\n      return false;\n    }\n    free((void *)(&DAT_001910e0)[param_1 * 0xe]);\n    (&DAT_001910e0)[param_1 * 0xe] = local_a8;\n  }" { (expression_statement "iVar1 = FUN_00111310(&local_a8,local_90,&local_a0);" (assignment_expression "iVar1 = FUN_00111310(&local_a8,local_90,&local_a0)" identifier = (call_expression "FUN_00111310(&local_a8,local_90,&local_a0)" identifier (argument_list "(&local_a8,local_90,&local_a0)" ( (pointer_expression "&local_a8" & identifier) , identifier , (pointer_expression "&local_a0" & identifier) )))) ;) (if_statement "if (iVar1 == 0) {\n      uVar4 = FUN_00113f30(param_3 + 0x10,param_3 + 0x11,param_2);\n      uVar5 = dcgettext(0,"Unable to decompress section %s\n",5);\n      error(uVar5,uVar4);\n      return false;\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar4 = FUN_00113f30(param_3 + 0x10,param_3 + 0x11,param_2);\n      uVar5 = dcgettext(0,"Unable to decompress section %s\n",5);\n      error(uVar5,uVar4);\n      return false;\n    }" { (expression_statement "uVar4 = FUN_00113f30(param_3 + 0x10,param_3 + 0x11,param_2);" (assignment_expression "uVar4 = FUN_00113f30(param_3 + 0x10,param_3 + 0x11,param_2)" identifier = (call_expression "FUN_00113f30(param_3 + 0x10,param_3 + 0x11,param_2)" identifier (argument_list "(param_3 + 0x10,param_3 + 0x11,param_2)" ( (binary_expression "param_3 + 0x10" identifier + number_literal) , (binary_expression "param_3 + 0x11" identifier + number_literal) , identifier )))) ;) (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,uVar4);" (call_expression "error(uVar5,uVar4)" identifier (argument_list "(uVar5,uVar4)" ( identifier , identifier ))) ;) (return_statement "return false;" return false ;) })) (expression_statement "free((void *)(&DAT_001910e0)[param_1 * 0xe]);" (call_expression "free((void *)(&DAT_001910e0)[param_1 * 0xe])" identifier (argument_list "((void *)(&DAT_001910e0)[param_1 * 0xe])" ( (cast_expression "(void *)(&DAT_001910e0)[param_1 * 0xe]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "(&DAT_001910e0)[param_1 * 0xe]" (parenthesized_expression "(&DAT_001910e0)" ( (pointer_expression "&DAT_001910e0" & identifier) )) [ (binary_expression "param_1 * 0xe" identifier * number_literal) ])) ))) ;) (expression_statement "(&DAT_001910e0)[param_1 * 0xe] = local_a8;" (assignment_expression "(&DAT_001910e0)[param_1 * 0xe] = local_a8" (subscript_expression "(&DAT_001910e0)[param_1 * 0xe]" (parenthesized_expression "(&DAT_001910e0)" ( (pointer_expression "&DAT_001910e0" & identifier) )) [ (binary_expression "param_1 * 0xe" identifier * number_literal) ]) = identifier) ;) })) (labeled_statement "LAB_00132a14:\n  lVar3 = param_1 * 0x70;" statement_identifier : (expression_statement "lVar3 = param_1 * 0x70;" (assignment_expression "lVar3 = param_1 * 0x70" identifier = (binary_expression "param_1 * 0x70" identifier * number_literal)) ;)) (expression_statement "(&DAT_001910f0)[param_1 * 0xe] = local_a0;" (assignment_expression "(&DAT_001910f0)[param_1 * 0xe] = local_a0" (subscript_expression "(&DAT_001910f0)[param_1 * 0xe]" (parenthesized_expression "(&DAT_001910f0)" ( (pointer_expression "&DAT_001910f0" & identifier) )) [ (binary_expression "param_1 * 0xe" identifier * number_literal) ]) = identifier) ;) (if_statement "if ((&DAT_001910e0)[param_1 * 0xe] == 0) {\n    return false;\n  }" if (parenthesized_expression "((&DAT_001910e0)[param_1 * 0xe] == 0)" ( (binary_expression "(&DAT_001910e0)[param_1 * 0xe] == 0" (subscript_expression "(&DAT_001910e0)[param_1 * 0xe]" (parenthesized_expression "(&DAT_001910e0)" ( (pointer_expression "&DAT_001910e0" & identifier) )) [ (binary_expression "param_1 * 0xe" identifier * number_literal) ]) == number_literal) )) (compound_statement "{\n    return false;\n  }" { (return_statement "return false;" return false ;) })) (if_statement "if (*(int *)(&DAT_00191128 + lVar3) != 0) {\n    iVar1 = FUN_00130cd0(param_3,param_2,(&DAT_001910e0)[param_1 * 0xe],local_a0,\n                         &DAT_00191100 + lVar3,&DAT_00191108 + lVar3);\n    return iVar1 != 0;\n  }" if (parenthesized_expression "(*(int *)(&DAT_00191128 + lVar3) != 0)" ( (binary_expression "*(int *)(&DAT_00191128 + lVar3) != 0" (pointer_expression "*(int *)(&DAT_00191128 + lVar3)" * (cast_expression "(int *)(&DAT_00191128 + lVar3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00191128 + lVar3)" ( (binary_expression "&DAT_00191128 + lVar3" (pointer_expression "&DAT_00191128" & identifier) + identifier) )))) != number_literal) )) (compound_statement "{\n    iVar1 = FUN_00130cd0(param_3,param_2,(&DAT_001910e0)[param_1 * 0xe],local_a0,\n                         &DAT_00191100 + lVar3,&DAT_00191108 + lVar3);\n    return iVar1 != 0;\n  }" { (expression_statement "iVar1 = FUN_00130cd0(param_3,param_2,(&DAT_001910e0)[param_1 * 0xe],local_a0,\n                         &DAT_00191100 + lVar3,&DAT_00191108 + lVar3);" (assignment_expression "iVar1 = FUN_00130cd0(param_3,param_2,(&DAT_001910e0)[param_1 * 0xe],local_a0,\n                         &DAT_00191100 + lVar3,&DAT_00191108 + lVar3)" identifier = (call_expression "FUN_00130cd0(param_3,param_2,(&DAT_001910e0)[param_1 * 0xe],local_a0,\n                         &DAT_00191100 + lVar3,&DAT_00191108 + lVar3)" identifier (argument_list "(param_3,param_2,(&DAT_001910e0)[param_1 * 0xe],local_a0,\n                         &DAT_00191100 + lVar3,&DAT_00191108 + lVar3)" ( identifier , identifier , (subscript_expression "(&DAT_001910e0)[param_1 * 0xe]" (parenthesized_expression "(&DAT_001910e0)" ( (pointer_expression "&DAT_001910e0" & identifier) )) [ (binary_expression "param_1 * 0xe" identifier * number_literal) ]) , identifier , (binary_expression "&DAT_00191100 + lVar3" (pointer_expression "&DAT_00191100" & identifier) + identifier) , (binary_expression "&DAT_00191108 + lVar3" (pointer_expression "&DAT_00191108" & identifier) + identifier) )))) ;) (return_statement "return iVar1 != 0;" return (binary_expression "iVar1 != 0" identifier != number_literal) ;) })) (expression_statement "*(undefined8 *)(&DAT_00191100 + lVar3) = 0;" (assignment_expression "*(undefined8 *)(&DAT_00191100 + lVar3) = 0" (pointer_expression "*(undefined8 *)(&DAT_00191100 + lVar3)" * (cast_expression "(undefined8 *)(&DAT_00191100 + lVar3)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00191100 + lVar3)" ( (binary_expression "&DAT_00191100 + lVar3" (pointer_expression "&DAT_00191100" & identifier) + identifier) )))) = number_literal) ;) (expression_statement "*(undefined8 *)(&DAT_00191108 + lVar3) = 0;" (assignment_expression "*(undefined8 *)(&DAT_00191108 + lVar3) = 0" (pointer_expression "*(undefined8 *)(&DAT_00191108 + lVar3)" * (cast_expression "(undefined8 *)(&DAT_00191108 + lVar3)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00191108 + lVar3)" ( (binary_expression "&DAT_00191108 + lVar3" (pointer_expression "&DAT_00191108" & identifier) + identifier) )))) = number_literal) ;) (return_statement "return true;" return true ;) })))
(translation_unit "bfd_boolean\nload_specific_debug_section(dwarf_section_display_enum debug,Elf_Internal_Shdr *sec,void *data)\n\n{\n  void *__ptr;\n  undefined8 uVar1;\n  bfd_vma bVar2;\n  int iVar3;\n  uint uVar4;\n  bfd_boolean bVar5;\n  char *pcVar6;\n  long lVar7;\n  char *message;\n  Filedata *filedata;\n  byte *pbVar8;\n  byte *pbVar9;\n  ulong uVar10;\n  bool bVar11;\n  bool bVar12;\n  byte bVar13;\n  uchar *start;\n  dwarf_size_type size;\n  Elf_Internal_Chdr chdr;\n  char buf [64];\n  \n  bVar13 = 0;\n  uVar10 = (ulong)debug;\n  __ptr = (void *)(&DAT_001910e0)[uVar10 * 0xe];\n  if (__ptr != (void *)0x0) {\n                    /* WARNING: Load size is inaccurate */\n    iVar3 = strcmp(*(char **)(&DAT_001910d8 + uVar10 * 0x70),*data);\n    if (iVar3 == 0) {\n      return 1;\n    }\n    free(__ptr);\n  }\n  uVar1 = (&DAT_001910d0)[uVar10 * 0xe];\n  pcVar6 = (char *)dcgettext(0,"%s section data",5);\n  snprintf(buf,0x40,pcVar6,uVar1);\n  bVar2 = sec->sh_addr;\n  *(undefined8 *)(&DAT_00191110 + uVar10 * 0x70) = 0;\n  (&DAT_001910e8)[uVar10 * 0xe] = bVar2;\n                    /* WARNING: Load size is inaccurate */\n  *(undefined8 *)(&DAT_001910d8 + uVar10 * 0x70) = *data;\n  start = (uchar *)get_data((void *)0x0,(Filedata *)((long)data + 8),(long)data + 0x10,\n                            sec->sh_offset,1,(char *)sec->sh_size,(Filedata *)buf);\n  (&DAT_001910e0)[uVar10 * 0xe] = start;\n  if (start == (byte *)0x0) {\n    (&DAT_001910f0)[uVar10 * 0xe] = 0;\n    return 0;\n  }\n  size = sec->sh_size;\n  if ((sec->sh_flags & 0x800) == 0) {\n    bVar11 = size < 0xc;\n    bVar12 = size == 0xc;\n    if (size < 0xd) goto LAB_00132a14;\n    lVar7 = 5;\n    pbVar8 = start;\n    pbVar9 = &DAT_0016ac39;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar11 = *pbVar8 < *pbVar9;\n      bVar12 = *pbVar8 == *pbVar9;\n      pbVar8 = pbVar8 + (ulong)bVar13 * -2 + 1;\n      pbVar9 = pbVar9 + (ulong)bVar13 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar11 && !bVar12) != bVar11) goto LAB_00132a14;\n    size = size - 0xc;\n    chdr.ch_size = (ulong)start[0xb] +\n                   ((ulong)start[10] +\n                   ((ulong)start[9] +\n                   ((ulong)start[8] +\n                   ((ulong)start[7] +\n                   ((ulong)start[6] + (ulong)CONCAT11(start[4],start[5]) * 0x100) * 0x100) * 0x100)\n                   * 0x100) * 0x100) * 0x100;\n    start = start + 0xc;\n  }\n  else {\n    if (size < (ulong)(-(uint)(is_32bit_elf == 0) & 0xc) + 0xc) {\n      uVar1 = (&DAT_001910d0)[uVar10 * 0xe];\n      pcVar6 = (char *)dcgettext(0,\n                                 "compressed section %s is too small to contain a compression header"\n                                 ,5);\n      warn(pcVar6,uVar1);\n      return 0;\n    }\n    uVar4 = get_compression_header(&chdr,start,size);\n    if (chdr.ch_type != 1) {\n      uVar1 = (&DAT_001910d0)[uVar10 * 0xe];\n      pcVar6 = (char *)dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(pcVar6,uVar1,(ulong)chdr.ch_type);\n      return 0;\n    }\n    size = size - uVar4;\n    start = start + uVar4;\n  }\n  if (chdr.ch_size != 0) {\n    bVar5 = uncompress_section_contents(&start,chdr.ch_size,&size);\n    if (bVar5 == 0) {\n      pcVar6 = printable_section_name\n                         ((Filedata *)((long)data + 0x80),(Elf_Internal_Shdr *)((long)data + 0x88),\n                          (Filedata *)sec);\n      message = (char *)dcgettext(0,"Unable to decompress section %s\n",5);\n      error(message,pcVar6);\n      return 0;\n    }\n    free((void *)(&DAT_001910e0)[uVar10 * 0xe]);\n    (&DAT_001910e0)[uVar10 * 0xe] = start;\n  }\nLAB_00132a14:\n  lVar7 = uVar10 * 0x70;\n  (&DAT_001910f0)[uVar10 * 0xe] = size;\n  if ((uchar *)(&DAT_001910e0)[uVar10 * 0xe] == (uchar *)0x0) {\n    return 0;\n  }\n  if (*(int *)(&DAT_00191128 + lVar7) != 0) {\n    bVar5 = apply_relocations((Filedata *)data,sec,(uchar *)(&DAT_001910e0)[uVar10 * 0xe],size,\n                              (void **)(&DAT_00191100 + lVar7),(ulong *)(&DAT_00191108 + lVar7));\n    return (uint)(bVar5 != 0);\n  }\n  *(undefined8 *)(&DAT_00191100 + lVar7) = 0;\n  *(undefined8 *)(&DAT_00191108 + lVar7) = 0;\n  return 1;\n}\n\n" (function_definition "bfd_boolean\nload_specific_debug_section(dwarf_section_display_enum debug,Elf_Internal_Shdr *sec,void *data)\n\n{\n  void *__ptr;\n  undefined8 uVar1;\n  bfd_vma bVar2;\n  int iVar3;\n  uint uVar4;\n  bfd_boolean bVar5;\n  char *pcVar6;\n  long lVar7;\n  char *message;\n  Filedata *filedata;\n  byte *pbVar8;\n  byte *pbVar9;\n  ulong uVar10;\n  bool bVar11;\n  bool bVar12;\n  byte bVar13;\n  uchar *start;\n  dwarf_size_type size;\n  Elf_Internal_Chdr chdr;\n  char buf [64];\n  \n  bVar13 = 0;\n  uVar10 = (ulong)debug;\n  __ptr = (void *)(&DAT_001910e0)[uVar10 * 0xe];\n  if (__ptr != (void *)0x0) {\n                    /* WARNING: Load size is inaccurate */\n    iVar3 = strcmp(*(char **)(&DAT_001910d8 + uVar10 * 0x70),*data);\n    if (iVar3 == 0) {\n      return 1;\n    }\n    free(__ptr);\n  }\n  uVar1 = (&DAT_001910d0)[uVar10 * 0xe];\n  pcVar6 = (char *)dcgettext(0,"%s section data",5);\n  snprintf(buf,0x40,pcVar6,uVar1);\n  bVar2 = sec->sh_addr;\n  *(undefined8 *)(&DAT_00191110 + uVar10 * 0x70) = 0;\n  (&DAT_001910e8)[uVar10 * 0xe] = bVar2;\n                    /* WARNING: Load size is inaccurate */\n  *(undefined8 *)(&DAT_001910d8 + uVar10 * 0x70) = *data;\n  start = (uchar *)get_data((void *)0x0,(Filedata *)((long)data + 8),(long)data + 0x10,\n                            sec->sh_offset,1,(char *)sec->sh_size,(Filedata *)buf);\n  (&DAT_001910e0)[uVar10 * 0xe] = start;\n  if (start == (byte *)0x0) {\n    (&DAT_001910f0)[uVar10 * 0xe] = 0;\n    return 0;\n  }\n  size = sec->sh_size;\n  if ((sec->sh_flags & 0x800) == 0) {\n    bVar11 = size < 0xc;\n    bVar12 = size == 0xc;\n    if (size < 0xd) goto LAB_00132a14;\n    lVar7 = 5;\n    pbVar8 = start;\n    pbVar9 = &DAT_0016ac39;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar11 = *pbVar8 < *pbVar9;\n      bVar12 = *pbVar8 == *pbVar9;\n      pbVar8 = pbVar8 + (ulong)bVar13 * -2 + 1;\n      pbVar9 = pbVar9 + (ulong)bVar13 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar11 && !bVar12) != bVar11) goto LAB_00132a14;\n    size = size - 0xc;\n    chdr.ch_size = (ulong)start[0xb] +\n                   ((ulong)start[10] +\n                   ((ulong)start[9] +\n                   ((ulong)start[8] +\n                   ((ulong)start[7] +\n                   ((ulong)start[6] + (ulong)CONCAT11(start[4],start[5]) * 0x100) * 0x100) * 0x100)\n                   * 0x100) * 0x100) * 0x100;\n    start = start + 0xc;\n  }\n  else {\n    if (size < (ulong)(-(uint)(is_32bit_elf == 0) & 0xc) + 0xc) {\n      uVar1 = (&DAT_001910d0)[uVar10 * 0xe];\n      pcVar6 = (char *)dcgettext(0,\n                                 "compressed section %s is too small to contain a compression header"\n                                 ,5);\n      warn(pcVar6,uVar1);\n      return 0;\n    }\n    uVar4 = get_compression_header(&chdr,start,size);\n    if (chdr.ch_type != 1) {\n      uVar1 = (&DAT_001910d0)[uVar10 * 0xe];\n      pcVar6 = (char *)dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(pcVar6,uVar1,(ulong)chdr.ch_type);\n      return 0;\n    }\n    size = size - uVar4;\n    start = start + uVar4;\n  }\n  if (chdr.ch_size != 0) {\n    bVar5 = uncompress_section_contents(&start,chdr.ch_size,&size);\n    if (bVar5 == 0) {\n      pcVar6 = printable_section_name\n                         ((Filedata *)((long)data + 0x80),(Elf_Internal_Shdr *)((long)data + 0x88),\n                          (Filedata *)sec);\n      message = (char *)dcgettext(0,"Unable to decompress section %s\n",5);\n      error(message,pcVar6);\n      return 0;\n    }\n    free((void *)(&DAT_001910e0)[uVar10 * 0xe]);\n    (&DAT_001910e0)[uVar10 * 0xe] = start;\n  }\nLAB_00132a14:\n  lVar7 = uVar10 * 0x70;\n  (&DAT_001910f0)[uVar10 * 0xe] = size;\n  if ((uchar *)(&DAT_001910e0)[uVar10 * 0xe] == (uchar *)0x0) {\n    return 0;\n  }\n  if (*(int *)(&DAT_00191128 + lVar7) != 0) {\n    bVar5 = apply_relocations((Filedata *)data,sec,(uchar *)(&DAT_001910e0)[uVar10 * 0xe],size,\n                              (void **)(&DAT_00191100 + lVar7),(ulong *)(&DAT_00191108 + lVar7));\n    return (uint)(bVar5 != 0);\n  }\n  *(undefined8 *)(&DAT_00191100 + lVar7) = 0;\n  *(undefined8 *)(&DAT_00191108 + lVar7) = 0;\n  return 1;\n}" type_identifier (function_declarator "load_specific_debug_section(dwarf_section_display_enum debug,Elf_Internal_Shdr *sec,void *data)" identifier (parameter_list "(dwarf_section_display_enum debug,Elf_Internal_Shdr *sec,void *data)" ( (parameter_declaration "dwarf_section_display_enum debug" type_identifier identifier) , (parameter_declaration "Elf_Internal_Shdr *sec" type_identifier (pointer_declarator "*sec" * identifier)) , (parameter_declaration "void *data" primitive_type (pointer_declarator "*data" * identifier)) ))) (compound_statement "{\n  void *__ptr;\n  undefined8 uVar1;\n  bfd_vma bVar2;\n  int iVar3;\n  uint uVar4;\n  bfd_boolean bVar5;\n  char *pcVar6;\n  long lVar7;\n  char *message;\n  Filedata *filedata;\n  byte *pbVar8;\n  byte *pbVar9;\n  ulong uVar10;\n  bool bVar11;\n  bool bVar12;\n  byte bVar13;\n  uchar *start;\n  dwarf_size_type size;\n  Elf_Internal_Chdr chdr;\n  char buf [64];\n  \n  bVar13 = 0;\n  uVar10 = (ulong)debug;\n  __ptr = (void *)(&DAT_001910e0)[uVar10 * 0xe];\n  if (__ptr != (void *)0x0) {\n                    /* WARNING: Load size is inaccurate */\n    iVar3 = strcmp(*(char **)(&DAT_001910d8 + uVar10 * 0x70),*data);\n    if (iVar3 == 0) {\n      return 1;\n    }\n    free(__ptr);\n  }\n  uVar1 = (&DAT_001910d0)[uVar10 * 0xe];\n  pcVar6 = (char *)dcgettext(0,"%s section data",5);\n  snprintf(buf,0x40,pcVar6,uVar1);\n  bVar2 = sec->sh_addr;\n  *(undefined8 *)(&DAT_00191110 + uVar10 * 0x70) = 0;\n  (&DAT_001910e8)[uVar10 * 0xe] = bVar2;\n                    /* WARNING: Load size is inaccurate */\n  *(undefined8 *)(&DAT_001910d8 + uVar10 * 0x70) = *data;\n  start = (uchar *)get_data((void *)0x0,(Filedata *)((long)data + 8),(long)data + 0x10,\n                            sec->sh_offset,1,(char *)sec->sh_size,(Filedata *)buf);\n  (&DAT_001910e0)[uVar10 * 0xe] = start;\n  if (start == (byte *)0x0) {\n    (&DAT_001910f0)[uVar10 * 0xe] = 0;\n    return 0;\n  }\n  size = sec->sh_size;\n  if ((sec->sh_flags & 0x800) == 0) {\n    bVar11 = size < 0xc;\n    bVar12 = size == 0xc;\n    if (size < 0xd) goto LAB_00132a14;\n    lVar7 = 5;\n    pbVar8 = start;\n    pbVar9 = &DAT_0016ac39;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar11 = *pbVar8 < *pbVar9;\n      bVar12 = *pbVar8 == *pbVar9;\n      pbVar8 = pbVar8 + (ulong)bVar13 * -2 + 1;\n      pbVar9 = pbVar9 + (ulong)bVar13 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar11 && !bVar12) != bVar11) goto LAB_00132a14;\n    size = size - 0xc;\n    chdr.ch_size = (ulong)start[0xb] +\n                   ((ulong)start[10] +\n                   ((ulong)start[9] +\n                   ((ulong)start[8] +\n                   ((ulong)start[7] +\n                   ((ulong)start[6] + (ulong)CONCAT11(start[4],start[5]) * 0x100) * 0x100) * 0x100)\n                   * 0x100) * 0x100) * 0x100;\n    start = start + 0xc;\n  }\n  else {\n    if (size < (ulong)(-(uint)(is_32bit_elf == 0) & 0xc) + 0xc) {\n      uVar1 = (&DAT_001910d0)[uVar10 * 0xe];\n      pcVar6 = (char *)dcgettext(0,\n                                 "compressed section %s is too small to contain a compression header"\n                                 ,5);\n      warn(pcVar6,uVar1);\n      return 0;\n    }\n    uVar4 = get_compression_header(&chdr,start,size);\n    if (chdr.ch_type != 1) {\n      uVar1 = (&DAT_001910d0)[uVar10 * 0xe];\n      pcVar6 = (char *)dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(pcVar6,uVar1,(ulong)chdr.ch_type);\n      return 0;\n    }\n    size = size - uVar4;\n    start = start + uVar4;\n  }\n  if (chdr.ch_size != 0) {\n    bVar5 = uncompress_section_contents(&start,chdr.ch_size,&size);\n    if (bVar5 == 0) {\n      pcVar6 = printable_section_name\n                         ((Filedata *)((long)data + 0x80),(Elf_Internal_Shdr *)((long)data + 0x88),\n                          (Filedata *)sec);\n      message = (char *)dcgettext(0,"Unable to decompress section %s\n",5);\n      error(message,pcVar6);\n      return 0;\n    }\n    free((void *)(&DAT_001910e0)[uVar10 * 0xe]);\n    (&DAT_001910e0)[uVar10 * 0xe] = start;\n  }\nLAB_00132a14:\n  lVar7 = uVar10 * 0x70;\n  (&DAT_001910f0)[uVar10 * 0xe] = size;\n  if ((uchar *)(&DAT_001910e0)[uVar10 * 0xe] == (uchar *)0x0) {\n    return 0;\n  }\n  if (*(int *)(&DAT_00191128 + lVar7) != 0) {\n    bVar5 = apply_relocations((Filedata *)data,sec,(uchar *)(&DAT_001910e0)[uVar10 * 0xe],size,\n                              (void **)(&DAT_00191100 + lVar7),(ulong *)(&DAT_00191108 + lVar7));\n    return (uint)(bVar5 != 0);\n  }\n  *(undefined8 *)(&DAT_00191100 + lVar7) = 0;\n  *(undefined8 *)(&DAT_00191108 + lVar7) = 0;\n  return 1;\n}" { (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "undefined8 uVar1;" type_identifier identifier ;) (declaration "bfd_vma bVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "bfd_boolean bVar5;" type_identifier identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "char *message;" primitive_type (pointer_declarator "*message" * identifier) ;) (declaration "Filedata *filedata;" type_identifier (pointer_declarator "*filedata" * identifier) ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "ulong uVar10;" type_identifier identifier ;) (declaration "bool bVar11;" primitive_type identifier ;) (declaration "bool bVar12;" primitive_type identifier ;) (declaration "byte bVar13;" type_identifier identifier ;) (declaration "uchar *start;" type_identifier (pointer_declarator "*start" * identifier) ;) (declaration "dwarf_size_type size;" type_identifier identifier ;) (declaration "Elf_Internal_Chdr chdr;" type_identifier identifier ;) (declaration "char buf [64];" primitive_type (array_declarator "buf [64]" identifier [ number_literal ]) ;) (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) (expression_statement "uVar10 = (ulong)debug;" (assignment_expression "uVar10 = (ulong)debug" identifier = (cast_expression "(ulong)debug" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "__ptr = (void *)(&DAT_001910e0)[uVar10 * 0xe];" (assignment_expression "__ptr = (void *)(&DAT_001910e0)[uVar10 * 0xe]" identifier = (cast_expression "(void *)(&DAT_001910e0)[uVar10 * 0xe]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "(&DAT_001910e0)[uVar10 * 0xe]" (parenthesized_expression "(&DAT_001910e0)" ( (pointer_expression "&DAT_001910e0" & identifier) )) [ (binary_expression "uVar10 * 0xe" identifier * number_literal) ]))) ;) (if_statement "if (__ptr != (void *)0x0) {\n                    /* WARNING: Load size is inaccurate */\n    iVar3 = strcmp(*(char **)(&DAT_001910d8 + uVar10 * 0x70),*data);\n    if (iVar3 == 0) {\n      return 1;\n    }\n    free(__ptr);\n  }" if (parenthesized_expression "(__ptr != (void *)0x0)" ( (binary_expression "__ptr != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Load size is inaccurate */\n    iVar3 = strcmp(*(char **)(&DAT_001910d8 + uVar10 * 0x70),*data);\n    if (iVar3 == 0) {\n      return 1;\n    }\n    free(__ptr);\n  }" { comment (expression_statement "iVar3 = strcmp(*(char **)(&DAT_001910d8 + uVar10 * 0x70),*data);" (assignment_expression "iVar3 = strcmp(*(char **)(&DAT_001910d8 + uVar10 * 0x70),*data)" identifier = (call_expression "strcmp(*(char **)(&DAT_001910d8 + uVar10 * 0x70),*data)" identifier (argument_list "(*(char **)(&DAT_001910d8 + uVar10 * 0x70),*data)" ( (pointer_expression "*(char **)(&DAT_001910d8 + uVar10 * 0x70)" * (cast_expression "(char **)(&DAT_001910d8 + uVar10 * 0x70)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_001910d8 + uVar10 * 0x70)" ( (binary_expression "&DAT_001910d8 + uVar10 * 0x70" (pointer_expression "&DAT_001910d8" & identifier) + (binary_expression "uVar10 * 0x70" identifier * number_literal)) )))) , (pointer_expression "*data" * identifier) )))) ;) (if_statement "if (iVar3 == 0) {\n      return 1;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) })) (expression_statement "uVar1 = (&DAT_001910d0)[uVar10 * 0xe];" (assignment_expression "uVar1 = (&DAT_001910d0)[uVar10 * 0xe]" identifier = (subscript_expression "(&DAT_001910d0)[uVar10 * 0xe]" (parenthesized_expression "(&DAT_001910d0)" ( (pointer_expression "&DAT_001910d0" & identifier) )) [ (binary_expression "uVar10 * 0xe" identifier * number_literal) ])) ;) (expression_statement "pcVar6 = (char *)dcgettext(0,"%s section data",5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,"%s section data",5)" identifier = (cast_expression "(char *)dcgettext(0,"%s section data",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%s section data",5)" identifier (argument_list "(0,"%s section data",5)" ( number_literal , (string_literal ""%s section data"" " string_content ") , number_literal ))))) ;) (expression_statement "snprintf(buf,0x40,pcVar6,uVar1);" (call_expression "snprintf(buf,0x40,pcVar6,uVar1)" identifier (argument_list "(buf,0x40,pcVar6,uVar1)" ( identifier , number_literal , identifier , identifier ))) ;) (expression_statement "bVar2 = sec->sh_addr;" (assignment_expression "bVar2 = sec->sh_addr" identifier = (field_expression "sec->sh_addr" identifier -> field_identifier)) ;) (expression_statement "*(undefined8 *)(&DAT_00191110 + uVar10 * 0x70) = 0;" (assignment_expression "*(undefined8 *)(&DAT_00191110 + uVar10 * 0x70) = 0" (pointer_expression "*(undefined8 *)(&DAT_00191110 + uVar10 * 0x70)" * (cast_expression "(undefined8 *)(&DAT_00191110 + uVar10 * 0x70)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00191110 + uVar10 * 0x70)" ( (binary_expression "&DAT_00191110 + uVar10 * 0x70" (pointer_expression "&DAT_00191110" & identifier) + (binary_expression "uVar10 * 0x70" identifier * number_literal)) )))) = number_literal) ;) (expression_statement "(&DAT_001910e8)[uVar10 * 0xe] = bVar2;" (assignment_expression "(&DAT_001910e8)[uVar10 * 0xe] = bVar2" (subscript_expression "(&DAT_001910e8)[uVar10 * 0xe]" (parenthesized_expression "(&DAT_001910e8)" ( (pointer_expression "&DAT_001910e8" & identifier) )) [ (binary_expression "uVar10 * 0xe" identifier * number_literal) ]) = identifier) ;) comment (expression_statement "*(undefined8 *)(&DAT_001910d8 + uVar10 * 0x70) = *data;" (assignment_expression "*(undefined8 *)(&DAT_001910d8 + uVar10 * 0x70) = *data" (pointer_expression "*(undefined8 *)(&DAT_001910d8 + uVar10 * 0x70)" * (cast_expression "(undefined8 *)(&DAT_001910d8 + uVar10 * 0x70)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_001910d8 + uVar10 * 0x70)" ( (binary_expression "&DAT_001910d8 + uVar10 * 0x70" (pointer_expression "&DAT_001910d8" & identifier) + (binary_expression "uVar10 * 0x70" identifier * number_literal)) )))) = (pointer_expression "*data" * identifier)) ;) (expression_statement "start = (uchar *)get_data((void *)0x0,(Filedata *)((long)data + 8),(long)data + 0x10,\n                            sec->sh_offset,1,(char *)sec->sh_size,(Filedata *)buf);" (assignment_expression "start = (uchar *)get_data((void *)0x0,(Filedata *)((long)data + 8),(long)data + 0x10,\n                            sec->sh_offset,1,(char *)sec->sh_size,(Filedata *)buf)" identifier = (cast_expression "(uchar *)get_data((void *)0x0,(Filedata *)((long)data + 8),(long)data + 0x10,\n                            sec->sh_offset,1,(char *)sec->sh_size,(Filedata *)buf)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "get_data((void *)0x0,(Filedata *)((long)data + 8),(long)data + 0x10,\n                            sec->sh_offset,1,(char *)sec->sh_size,(Filedata *)buf)" identifier (argument_list "((void *)0x0,(Filedata *)((long)data + 8),(long)data + 0x10,\n                            sec->sh_offset,1,(char *)sec->sh_size,(Filedata *)buf)" ( (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(Filedata *)((long)data + 8)" ( (type_descriptor "Filedata *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)data + 8)" ( (binary_expression "(long)data + 8" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))) , (binary_expression "(long)data + 0x10" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) , (field_expression "sec->sh_offset" identifier -> field_identifier) , number_literal , (cast_expression "(char *)sec->sh_size" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "sec->sh_size" identifier -> field_identifier)) , (cast_expression "(Filedata *)buf" ( (type_descriptor "Filedata *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))))) ;) (expression_statement "(&DAT_001910e0)[uVar10 * 0xe] = start;" (assignment_expression "(&DAT_001910e0)[uVar10 * 0xe] = start" (subscript_expression "(&DAT_001910e0)[uVar10 * 0xe]" (parenthesized_expression "(&DAT_001910e0)" ( (pointer_expression "&DAT_001910e0" & identifier) )) [ (binary_expression "uVar10 * 0xe" identifier * number_literal) ]) = identifier) ;) (if_statement "if (start == (byte *)0x0) {\n    (&DAT_001910f0)[uVar10 * 0xe] = 0;\n    return 0;\n  }" if (parenthesized_expression "(start == (byte *)0x0)" ( (binary_expression "start == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (&DAT_001910f0)[uVar10 * 0xe] = 0;\n    return 0;\n  }" { (expression_statement "(&DAT_001910f0)[uVar10 * 0xe] = 0;" (assignment_expression "(&DAT_001910f0)[uVar10 * 0xe] = 0" (subscript_expression "(&DAT_001910f0)[uVar10 * 0xe]" (parenthesized_expression "(&DAT_001910f0)" ( (pointer_expression "&DAT_001910f0" & identifier) )) [ (binary_expression "uVar10 * 0xe" identifier * number_literal) ]) = number_literal) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "size = sec->sh_size;" (assignment_expression "size = sec->sh_size" identifier = (field_expression "sec->sh_size" identifier -> field_identifier)) ;) (if_statement "if ((sec->sh_flags & 0x800) == 0) {\n    bVar11 = size < 0xc;\n    bVar12 = size == 0xc;\n    if (size < 0xd) goto LAB_00132a14;\n    lVar7 = 5;\n    pbVar8 = start;\n    pbVar9 = &DAT_0016ac39;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar11 = *pbVar8 < *pbVar9;\n      bVar12 = *pbVar8 == *pbVar9;\n      pbVar8 = pbVar8 + (ulong)bVar13 * -2 + 1;\n      pbVar9 = pbVar9 + (ulong)bVar13 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar11 && !bVar12) != bVar11) goto LAB_00132a14;\n    size = size - 0xc;\n    chdr.ch_size = (ulong)start[0xb] +\n                   ((ulong)start[10] +\n                   ((ulong)start[9] +\n                   ((ulong)start[8] +\n                   ((ulong)start[7] +\n                   ((ulong)start[6] + (ulong)CONCAT11(start[4],start[5]) * 0x100) * 0x100) * 0x100)\n                   * 0x100) * 0x100) * 0x100;\n    start = start + 0xc;\n  }\n  else {\n    if (size < (ulong)(-(uint)(is_32bit_elf == 0) & 0xc) + 0xc) {\n      uVar1 = (&DAT_001910d0)[uVar10 * 0xe];\n      pcVar6 = (char *)dcgettext(0,\n                                 "compressed section %s is too small to contain a compression header"\n                                 ,5);\n      warn(pcVar6,uVar1);\n      return 0;\n    }\n    uVar4 = get_compression_header(&chdr,start,size);\n    if (chdr.ch_type != 1) {\n      uVar1 = (&DAT_001910d0)[uVar10 * 0xe];\n      pcVar6 = (char *)dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(pcVar6,uVar1,(ulong)chdr.ch_type);\n      return 0;\n    }\n    size = size - uVar4;\n    start = start + uVar4;\n  }" if (parenthesized_expression "((sec->sh_flags & 0x800) == 0)" ( (binary_expression "(sec->sh_flags & 0x800) == 0" (parenthesized_expression "(sec->sh_flags & 0x800)" ( (binary_expression "sec->sh_flags & 0x800" (field_expression "sec->sh_flags" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n    bVar11 = size < 0xc;\n    bVar12 = size == 0xc;\n    if (size < 0xd) goto LAB_00132a14;\n    lVar7 = 5;\n    pbVar8 = start;\n    pbVar9 = &DAT_0016ac39;\n    do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar11 = *pbVar8 < *pbVar9;\n      bVar12 = *pbVar8 == *pbVar9;\n      pbVar8 = pbVar8 + (ulong)bVar13 * -2 + 1;\n      pbVar9 = pbVar9 + (ulong)bVar13 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar11 && !bVar12) != bVar11) goto LAB_00132a14;\n    size = size - 0xc;\n    chdr.ch_size = (ulong)start[0xb] +\n                   ((ulong)start[10] +\n                   ((ulong)start[9] +\n                   ((ulong)start[8] +\n                   ((ulong)start[7] +\n                   ((ulong)start[6] + (ulong)CONCAT11(start[4],start[5]) * 0x100) * 0x100) * 0x100)\n                   * 0x100) * 0x100) * 0x100;\n    start = start + 0xc;\n  }" { (expression_statement "bVar11 = size < 0xc;" (assignment_expression "bVar11 = size < 0xc" identifier = (binary_expression "size < 0xc" identifier < number_literal)) ;) (expression_statement "bVar12 = size == 0xc;" (assignment_expression "bVar12 = size == 0xc" identifier = (binary_expression "size == 0xc" identifier == number_literal)) ;) (if_statement "if (size < 0xd) goto LAB_00132a14;" if (parenthesized_expression "(size < 0xd)" ( (binary_expression "size < 0xd" identifier < number_literal) )) (goto_statement "goto LAB_00132a14;" goto statement_identifier ;)) (expression_statement "lVar7 = 5;" (assignment_expression "lVar7 = 5" identifier = number_literal) ;) (expression_statement "pbVar8 = start;" (assignment_expression "pbVar8 = start" identifier = identifier) ;) (expression_statement "pbVar9 = &DAT_0016ac39;" (assignment_expression "pbVar9 = &DAT_0016ac39" identifier = (pointer_expression "&DAT_0016ac39" & identifier)) ;) (do_statement "do {\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar11 = *pbVar8 < *pbVar9;\n      bVar12 = *pbVar8 == *pbVar9;\n      pbVar8 = pbVar8 + (ulong)bVar13 * -2 + 1;\n      pbVar9 = pbVar9 + (ulong)bVar13 * -2 + 1;\n    } while (bVar12);" do (compound_statement "{\n      if (lVar7 == 0) break;\n      lVar7 = lVar7 + -1;\n      bVar11 = *pbVar8 < *pbVar9;\n      bVar12 = *pbVar8 == *pbVar9;\n      pbVar8 = pbVar8 + (ulong)bVar13 * -2 + 1;\n      pbVar9 = pbVar9 + (ulong)bVar13 * -2 + 1;\n    }" { (if_statement "if (lVar7 == 0) break;" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar7 = lVar7 + -1;" (assignment_expression "lVar7 = lVar7 + -1" identifier = (binary_expression "lVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar11 = *pbVar8 < *pbVar9;" (assignment_expression "bVar11 = *pbVar8 < *pbVar9" identifier = (binary_expression "*pbVar8 < *pbVar9" (pointer_expression "*pbVar8" * identifier) < (pointer_expression "*pbVar9" * identifier))) ;) (expression_statement "bVar12 = *pbVar8 == *pbVar9;" (assignment_expression "bVar12 = *pbVar8 == *pbVar9" identifier = (binary_expression "*pbVar8 == *pbVar9" (pointer_expression "*pbVar8" * identifier) == (pointer_expression "*pbVar9" * identifier))) ;) (expression_statement "pbVar8 = pbVar8 + (ulong)bVar13 * -2 + 1;" (assignment_expression "pbVar8 = pbVar8 + (ulong)bVar13 * -2 + 1" identifier = (binary_expression "pbVar8 + (ulong)bVar13 * -2 + 1" (binary_expression "pbVar8 + (ulong)bVar13 * -2" identifier + (binary_expression "(ulong)bVar13 * -2" (cast_expression "(ulong)bVar13" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar9 = pbVar9 + (ulong)bVar13 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (ulong)bVar13 * -2 + 1" identifier = (binary_expression "pbVar9 + (ulong)bVar13 * -2 + 1" (binary_expression "pbVar9 + (ulong)bVar13 * -2" identifier + (binary_expression "(ulong)bVar13 * -2" (cast_expression "(ulong)bVar13" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar12)" ( identifier )) ;) (if_statement "if ((!bVar11 && !bVar12) != bVar11) goto LAB_00132a14;" if (parenthesized_expression "((!bVar11 && !bVar12) != bVar11)" ( (binary_expression "(!bVar11 && !bVar12) != bVar11" (parenthesized_expression "(!bVar11 && !bVar12)" ( (binary_expression "!bVar11 && !bVar12" (unary_expression "!bVar11" ! identifier) && (unary_expression "!bVar12" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_00132a14;" goto statement_identifier ;)) (expression_statement "size = size - 0xc;" (assignment_expression "size = size - 0xc" identifier = (binary_expression "size - 0xc" identifier - number_literal)) ;) (expression_statement "chdr.ch_size = (ulong)start[0xb] +\n                   ((ulong)start[10] +\n                   ((ulong)start[9] +\n                   ((ulong)start[8] +\n                   ((ulong)start[7] +\n                   ((ulong)start[6] + (ulong)CONCAT11(start[4],start[5]) * 0x100) * 0x100) * 0x100)\n                   * 0x100) * 0x100) * 0x100;" (assignment_expression "chdr.ch_size = (ulong)start[0xb] +\n                   ((ulong)start[10] +\n                   ((ulong)start[9] +\n                   ((ulong)start[8] +\n                   ((ulong)start[7] +\n                   ((ulong)start[6] + (ulong)CONCAT11(start[4],start[5]) * 0x100) * 0x100) * 0x100)\n                   * 0x100) * 0x100) * 0x100" (field_expression "chdr.ch_size" identifier . field_identifier) = (binary_expression "(ulong)start[0xb] +\n                   ((ulong)start[10] +\n                   ((ulong)start[9] +\n                   ((ulong)start[8] +\n                   ((ulong)start[7] +\n                   ((ulong)start[6] + (ulong)CONCAT11(start[4],start[5]) * 0x100) * 0x100) * 0x100)\n                   * 0x100) * 0x100) * 0x100" (cast_expression "(ulong)start[0xb]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "start[0xb]" identifier [ number_literal ])) + (binary_expression "((ulong)start[10] +\n                   ((ulong)start[9] +\n                   ((ulong)start[8] +\n                   ((ulong)start[7] +\n                   ((ulong)start[6] + (ulong)CONCAT11(start[4],start[5]) * 0x100) * 0x100) * 0x100)\n                   * 0x100) * 0x100) * 0x100" (parenthesized_expression "((ulong)start[10] +\n                   ((ulong)start[9] +\n                   ((ulong)start[8] +\n                   ((ulong)start[7] +\n                   ((ulong)start[6] + (ulong)CONCAT11(start[4],start[5]) * 0x100) * 0x100) * 0x100)\n                   * 0x100) * 0x100)" ( (binary_expression "(ulong)start[10] +\n                   ((ulong)start[9] +\n                   ((ulong)start[8] +\n                   ((ulong)start[7] +\n                   ((ulong)start[6] + (ulong)CONCAT11(start[4],start[5]) * 0x100) * 0x100) * 0x100)\n                   * 0x100) * 0x100" (cast_expression "(ulong)start[10]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "start[10]" identifier [ number_literal ])) + (binary_expression "((ulong)start[9] +\n                   ((ulong)start[8] +\n                   ((ulong)start[7] +\n                   ((ulong)start[6] + (ulong)CONCAT11(start[4],start[5]) * 0x100) * 0x100) * 0x100)\n                   * 0x100) * 0x100" (parenthesized_expression "((ulong)start[9] +\n                   ((ulong)start[8] +\n                   ((ulong)start[7] +\n                   ((ulong)start[6] + (ulong)CONCAT11(start[4],start[5]) * 0x100) * 0x100) * 0x100)\n                   * 0x100)" ( (binary_expression "(ulong)start[9] +\n                   ((ulong)start[8] +\n                   ((ulong)start[7] +\n                   ((ulong)start[6] + (ulong)CONCAT11(start[4],start[5]) * 0x100) * 0x100) * 0x100)\n                   * 0x100" (cast_expression "(ulong)start[9]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "start[9]" identifier [ number_literal ])) + (binary_expression "((ulong)start[8] +\n                   ((ulong)start[7] +\n                   ((ulong)start[6] + (ulong)CONCAT11(start[4],start[5]) * 0x100) * 0x100) * 0x100)\n                   * 0x100" (parenthesized_expression "((ulong)start[8] +\n                   ((ulong)start[7] +\n                   ((ulong)start[6] + (ulong)CONCAT11(start[4],start[5]) * 0x100) * 0x100) * 0x100)" ( (binary_expression "(ulong)start[8] +\n                   ((ulong)start[7] +\n                   ((ulong)start[6] + (ulong)CONCAT11(start[4],start[5]) * 0x100) * 0x100) * 0x100" (cast_expression "(ulong)start[8]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "start[8]" identifier [ number_literal ])) + (binary_expression "((ulong)start[7] +\n                   ((ulong)start[6] + (ulong)CONCAT11(start[4],start[5]) * 0x100) * 0x100) * 0x100" (parenthesized_expression "((ulong)start[7] +\n                   ((ulong)start[6] + (ulong)CONCAT11(start[4],start[5]) * 0x100) * 0x100)" ( (binary_expression "(ulong)start[7] +\n                   ((ulong)start[6] + (ulong)CONCAT11(start[4],start[5]) * 0x100) * 0x100" (cast_expression "(ulong)start[7]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "start[7]" identifier [ number_literal ])) + (binary_expression "((ulong)start[6] + (ulong)CONCAT11(start[4],start[5]) * 0x100) * 0x100" (parenthesized_expression "((ulong)start[6] + (ulong)CONCAT11(start[4],start[5]) * 0x100)" ( (binary_expression "(ulong)start[6] + (ulong)CONCAT11(start[4],start[5]) * 0x100" (cast_expression "(ulong)start[6]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "start[6]" identifier [ number_literal ])) + (binary_expression "(ulong)CONCAT11(start[4],start[5]) * 0x100" (cast_expression "(ulong)CONCAT11(start[4],start[5])" ( (type_descriptor "ulong" 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)) )) * number_literal)) )) * number_literal)) )) * number_literal)) )) * number_literal)) )) * number_literal))) ;) (expression_statement "start = start + 0xc;" (assignment_expression "start = start + 0xc" identifier = (binary_expression "start + 0xc" identifier + number_literal)) ;) }) (else_clause "else {\n    if (size < (ulong)(-(uint)(is_32bit_elf == 0) & 0xc) + 0xc) {\n      uVar1 = (&DAT_001910d0)[uVar10 * 0xe];\n      pcVar6 = (char *)dcgettext(0,\n                                 "compressed section %s is too small to contain a compression header"\n                                 ,5);\n      warn(pcVar6,uVar1);\n      return 0;\n    }\n    uVar4 = get_compression_header(&chdr,start,size);\n    if (chdr.ch_type != 1) {\n      uVar1 = (&DAT_001910d0)[uVar10 * 0xe];\n      pcVar6 = (char *)dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(pcVar6,uVar1,(ulong)chdr.ch_type);\n      return 0;\n    }\n    size = size - uVar4;\n    start = start + uVar4;\n  }" else (compound_statement "{\n    if (size < (ulong)(-(uint)(is_32bit_elf == 0) & 0xc) + 0xc) {\n      uVar1 = (&DAT_001910d0)[uVar10 * 0xe];\n      pcVar6 = (char *)dcgettext(0,\n                                 "compressed section %s is too small to contain a compression header"\n                                 ,5);\n      warn(pcVar6,uVar1);\n      return 0;\n    }\n    uVar4 = get_compression_header(&chdr,start,size);\n    if (chdr.ch_type != 1) {\n      uVar1 = (&DAT_001910d0)[uVar10 * 0xe];\n      pcVar6 = (char *)dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(pcVar6,uVar1,(ulong)chdr.ch_type);\n      return 0;\n    }\n    size = size - uVar4;\n    start = start + uVar4;\n  }" { (if_statement "if (size < (ulong)(-(uint)(is_32bit_elf == 0) & 0xc) + 0xc) {\n      uVar1 = (&DAT_001910d0)[uVar10 * 0xe];\n      pcVar6 = (char *)dcgettext(0,\n                                 "compressed section %s is too small to contain a compression header"\n                                 ,5);\n      warn(pcVar6,uVar1);\n      return 0;\n    }" if (parenthesized_expression "(size < (ulong)(-(uint)(is_32bit_elf == 0) & 0xc) + 0xc)" ( (binary_expression "size < (ulong)(-(uint)(is_32bit_elf == 0) & 0xc) + 0xc" identifier < (binary_expression "(ulong)(-(uint)(is_32bit_elf == 0) & 0xc) + 0xc" (call_expression "(ulong)(-(uint)(is_32bit_elf == 0) & 0xc)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(-(uint)(is_32bit_elf == 0) & 0xc)" ( (binary_expression "-(uint)(is_32bit_elf == 0) & 0xc" (unary_expression "-(uint)(is_32bit_elf == 0)" - (call_expression "(uint)(is_32bit_elf == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(is_32bit_elf == 0)" ( (binary_expression "is_32bit_elf == 0" identifier == number_literal) )))) & number_literal) ))) + number_literal)) )) (compound_statement "{\n      uVar1 = (&DAT_001910d0)[uVar10 * 0xe];\n      pcVar6 = (char *)dcgettext(0,\n                                 "compressed section %s is too small to contain a compression header"\n                                 ,5);\n      warn(pcVar6,uVar1);\n      return 0;\n    }" { (expression_statement "uVar1 = (&DAT_001910d0)[uVar10 * 0xe];" (assignment_expression "uVar1 = (&DAT_001910d0)[uVar10 * 0xe]" identifier = (subscript_expression "(&DAT_001910d0)[uVar10 * 0xe]" (parenthesized_expression "(&DAT_001910d0)" ( (pointer_expression "&DAT_001910d0" & identifier) )) [ (binary_expression "uVar10 * 0xe" identifier * number_literal) ])) ;) (expression_statement "pcVar6 = (char *)dcgettext(0,\n                                 "compressed section %s is too small to contain a compression header"\n                                 ,5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,\n                                 "compressed section %s is too small to contain a compression header"\n                                 ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                 "compressed section %s is too small to contain a compression header"\n                                 ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                 "compressed section %s is too small to contain a compression header"\n                                 ,5)" identifier (argument_list "(0,\n                                 "compressed section %s is too small to contain a compression header"\n                                 ,5)" ( number_literal , (string_literal ""compressed section %s is too small to contain a compression header"" " string_content ") , number_literal ))))) ;) (expression_statement "warn(pcVar6,uVar1);" (call_expression "warn(pcVar6,uVar1)" identifier (argument_list "(pcVar6,uVar1)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar4 = get_compression_header(&chdr,start,size);" (assignment_expression "uVar4 = 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      uVar1 = (&DAT_001910d0)[uVar10 * 0xe];\n      pcVar6 = (char *)dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(pcVar6,uVar1,(ulong)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      uVar1 = (&DAT_001910d0)[uVar10 * 0xe];\n      pcVar6 = (char *)dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(pcVar6,uVar1,(ulong)chdr.ch_type);\n      return 0;\n    }" { (expression_statement "uVar1 = (&DAT_001910d0)[uVar10 * 0xe];" (assignment_expression "uVar1 = (&DAT_001910d0)[uVar10 * 0xe]" identifier = (subscript_expression "(&DAT_001910d0)[uVar10 * 0xe]" (parenthesized_expression "(&DAT_001910d0)" ( (pointer_expression "&DAT_001910d0" & identifier) )) [ (binary_expression "uVar10 * 0xe" identifier * number_literal) ])) ;) (expression_statement "pcVar6 = (char *)dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);" (assignment_expression "pcVar6 = (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(pcVar6,uVar1,(ulong)chdr.ch_type);" (call_expression "warn(pcVar6,uVar1,(ulong)chdr.ch_type)" identifier (argument_list "(pcVar6,uVar1,(ulong)chdr.ch_type)" ( identifier , identifier , (cast_expression "(ulong)chdr.ch_type" ( (type_descriptor "ulong" type_identifier) ) (field_expression "chdr.ch_type" identifier . field_identifier)) ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "size = size - uVar4;" (assignment_expression "size = size - uVar4" identifier = (binary_expression "size - uVar4" identifier - identifier)) ;) (expression_statement "start = start + uVar4;" (assignment_expression "start = start + uVar4" identifier = (binary_expression "start + uVar4" identifier + identifier)) ;) }))) (if_statement "if (chdr.ch_size != 0) {\n    bVar5 = uncompress_section_contents(&start,chdr.ch_size,&size);\n    if (bVar5 == 0) {\n      pcVar6 = printable_section_name\n                         ((Filedata *)((long)data + 0x80),(Elf_Internal_Shdr *)((long)data + 0x88),\n                          (Filedata *)sec);\n      message = (char *)dcgettext(0,"Unable to decompress section %s\n",5);\n      error(message,pcVar6);\n      return 0;\n    }\n    free((void *)(&DAT_001910e0)[uVar10 * 0xe]);\n    (&DAT_001910e0)[uVar10 * 0xe] = start;\n  }" if (parenthesized_expression "(chdr.ch_size != 0)" ( (binary_expression "chdr.ch_size != 0" (field_expression "chdr.ch_size" identifier . field_identifier) != number_literal) )) (compound_statement "{\n    bVar5 = uncompress_section_contents(&start,chdr.ch_size,&size);\n    if (bVar5 == 0) {\n      pcVar6 = printable_section_name\n                         ((Filedata *)((long)data + 0x80),(Elf_Internal_Shdr *)((long)data + 0x88),\n                          (Filedata *)sec);\n      message = (char *)dcgettext(0,"Unable to decompress section %s\n",5);\n      error(message,pcVar6);\n      return 0;\n    }\n    free((void *)(&DAT_001910e0)[uVar10 * 0xe]);\n    (&DAT_001910e0)[uVar10 * 0xe] = start;\n  }" { (expression_statement "bVar5 = uncompress_section_contents(&start,chdr.ch_size,&size);" (assignment_expression "bVar5 = uncompress_section_contents(&start,chdr.ch_size,&size)" identifier = (call_expression "uncompress_section_contents(&start,chdr.ch_size,&size)" identifier (argument_list "(&start,chdr.ch_size,&size)" ( (pointer_expression "&start" & identifier) , (field_expression "chdr.ch_size" identifier . field_identifier) , (pointer_expression "&size" & identifier) )))) ;) (if_statement "if (bVar5 == 0) {\n      pcVar6 = printable_section_name\n                         ((Filedata *)((long)data + 0x80),(Elf_Internal_Shdr *)((long)data + 0x88),\n                          (Filedata *)sec);\n      message = (char *)dcgettext(0,"Unable to decompress section %s\n",5);\n      error(message,pcVar6);\n      return 0;\n    }" if (parenthesized_expression "(bVar5 == 0)" ( (binary_expression "bVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar6 = printable_section_name\n                         ((Filedata *)((long)data + 0x80),(Elf_Internal_Shdr *)((long)data + 0x88),\n                          (Filedata *)sec);\n      message = (char *)dcgettext(0,"Unable to decompress section %s\n",5);\n      error(message,pcVar6);\n      return 0;\n    }" { (expression_statement "pcVar6 = printable_section_name\n                         ((Filedata *)((long)data + 0x80),(Elf_Internal_Shdr *)((long)data + 0x88),\n                          (Filedata *)sec);" (assignment_expression "pcVar6 = printable_section_name\n                         ((Filedata *)((long)data + 0x80),(Elf_Internal_Shdr *)((long)data + 0x88),\n                          (Filedata *)sec)" identifier = (call_expression "printable_section_name\n                         ((Filedata *)((long)data + 0x80),(Elf_Internal_Shdr *)((long)data + 0x88),\n                          (Filedata *)sec)" identifier (argument_list "((Filedata *)((long)data + 0x80),(Elf_Internal_Shdr *)((long)data + 0x88),\n                          (Filedata *)sec)" ( (cast_expression "(Filedata *)((long)data + 0x80)" ( (type_descriptor "Filedata *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)data + 0x80)" ( (binary_expression "(long)data + 0x80" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))) , (cast_expression "(Elf_Internal_Shdr *)((long)data + 0x88)" ( (type_descriptor "Elf_Internal_Shdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)data + 0x88)" ( (binary_expression "(long)data + 0x88" (cast_expression "(long)data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))) , (cast_expression "(Filedata *)sec" ( (type_descriptor "Filedata *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "message = (char *)dcgettext(0,"Unable to decompress section %s\n",5);" (assignment_expression "message = (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(message,pcVar6);" (call_expression "error(message,pcVar6)" identifier (argument_list "(message,pcVar6)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "free((void *)(&DAT_001910e0)[uVar10 * 0xe]);" (call_expression "free((void *)(&DAT_001910e0)[uVar10 * 0xe])" identifier (argument_list "((void *)(&DAT_001910e0)[uVar10 * 0xe])" ( (cast_expression "(void *)(&DAT_001910e0)[uVar10 * 0xe]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "(&DAT_001910e0)[uVar10 * 0xe]" (parenthesized_expression "(&DAT_001910e0)" ( (pointer_expression "&DAT_001910e0" & identifier) )) [ (binary_expression "uVar10 * 0xe" identifier * number_literal) ])) ))) ;) (expression_statement "(&DAT_001910e0)[uVar10 * 0xe] = start;" (assignment_expression "(&DAT_001910e0)[uVar10 * 0xe] = start" (subscript_expression "(&DAT_001910e0)[uVar10 * 0xe]" (parenthesized_expression "(&DAT_001910e0)" ( (pointer_expression "&DAT_001910e0" & identifier) )) [ (binary_expression "uVar10 * 0xe" identifier * number_literal) ]) = identifier) ;) })) (labeled_statement "LAB_00132a14:\n  lVar7 = uVar10 * 0x70;" statement_identifier : (expression_statement "lVar7 = uVar10 * 0x70;" (assignment_expression "lVar7 = uVar10 * 0x70" identifier = (binary_expression "uVar10 * 0x70" identifier * number_literal)) ;)) (expression_statement "(&DAT_001910f0)[uVar10 * 0xe] = size;" (assignment_expression "(&DAT_001910f0)[uVar10 * 0xe] = size" (subscript_expression "(&DAT_001910f0)[uVar10 * 0xe]" (parenthesized_expression "(&DAT_001910f0)" ( (pointer_expression "&DAT_001910f0" & identifier) )) [ (binary_expression "uVar10 * 0xe" identifier * number_literal) ]) = identifier) ;) (if_statement "if ((uchar *)(&DAT_001910e0)[uVar10 * 0xe] == (uchar *)0x0) {\n    return 0;\n  }" if (parenthesized_expression "((uchar *)(&DAT_001910e0)[uVar10 * 0xe] == (uchar *)0x0)" ( (binary_expression "(uchar *)(&DAT_001910e0)[uVar10 * 0xe] == (uchar *)0x0" (cast_expression "(uchar *)(&DAT_001910e0)[uVar10 * 0xe]" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "(&DAT_001910e0)[uVar10 * 0xe]" (parenthesized_expression "(&DAT_001910e0)" ( (pointer_expression "&DAT_001910e0" & identifier) )) [ (binary_expression "uVar10 * 0xe" identifier * number_literal) ])) == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (*(int *)(&DAT_00191128 + lVar7) != 0) {\n    bVar5 = apply_relocations((Filedata *)data,sec,(uchar *)(&DAT_001910e0)[uVar10 * 0xe],size,\n                              (void **)(&DAT_00191100 + lVar7),(ulong *)(&DAT_00191108 + lVar7));\n    return (uint)(bVar5 != 0);\n  }" if (parenthesized_expression "(*(int *)(&DAT_00191128 + lVar7) != 0)" ( (binary_expression "*(int *)(&DAT_00191128 + lVar7) != 0" (pointer_expression "*(int *)(&DAT_00191128 + lVar7)" * (cast_expression "(int *)(&DAT_00191128 + lVar7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00191128 + lVar7)" ( (binary_expression "&DAT_00191128 + lVar7" (pointer_expression "&DAT_00191128" & identifier) + identifier) )))) != number_literal) )) (compound_statement "{\n    bVar5 = apply_relocations((Filedata *)data,sec,(uchar *)(&DAT_001910e0)[uVar10 * 0xe],size,\n                              (void **)(&DAT_00191100 + lVar7),(ulong *)(&DAT_00191108 + lVar7));\n    return (uint)(bVar5 != 0);\n  }" { (expression_statement "bVar5 = apply_relocations((Filedata *)data,sec,(uchar *)(&DAT_001910e0)[uVar10 * 0xe],size,\n                              (void **)(&DAT_00191100 + lVar7),(ulong *)(&DAT_00191108 + lVar7));" (assignment_expression "bVar5 = apply_relocations((Filedata *)data,sec,(uchar *)(&DAT_001910e0)[uVar10 * 0xe],size,\n                              (void **)(&DAT_00191100 + lVar7),(ulong *)(&DAT_00191108 + lVar7))" identifier = (call_expression "apply_relocations((Filedata *)data,sec,(uchar *)(&DAT_001910e0)[uVar10 * 0xe],size,\n                              (void **)(&DAT_00191100 + lVar7),(ulong *)(&DAT_00191108 + lVar7))" identifier (argument_list "((Filedata *)data,sec,(uchar *)(&DAT_001910e0)[uVar10 * 0xe],size,\n                              (void **)(&DAT_00191100 + lVar7),(ulong *)(&DAT_00191108 + lVar7))" ( (cast_expression "(Filedata *)data" ( (type_descriptor "Filedata *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (cast_expression "(uchar *)(&DAT_001910e0)[uVar10 * 0xe]" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "(&DAT_001910e0)[uVar10 * 0xe]" (parenthesized_expression "(&DAT_001910e0)" ( (pointer_expression "&DAT_001910e0" & identifier) )) [ (binary_expression "uVar10 * 0xe" identifier * number_literal) ])) , identifier , (cast_expression "(void **)(&DAT_00191100 + lVar7)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_00191100 + lVar7)" ( (binary_expression "&DAT_00191100 + lVar7" (pointer_expression "&DAT_00191100" & identifier) + identifier) ))) , (cast_expression "(ulong *)(&DAT_00191108 + lVar7)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00191108 + lVar7)" ( (binary_expression "&DAT_00191108 + lVar7" (pointer_expression "&DAT_00191108" & identifier) + identifier) ))) )))) ;) (return_statement "return (uint)(bVar5 != 0);" return (call_expression "(uint)(bVar5 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(bVar5 != 0)" ( (binary_expression "bVar5 != 0" identifier != number_literal) ))) ;) })) (expression_statement "*(undefined8 *)(&DAT_00191100 + lVar7) = 0;" (assignment_expression "*(undefined8 *)(&DAT_00191100 + lVar7) = 0" (pointer_expression "*(undefined8 *)(&DAT_00191100 + lVar7)" * (cast_expression "(undefined8 *)(&DAT_00191100 + lVar7)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00191100 + lVar7)" ( (binary_expression "&DAT_00191100 + lVar7" (pointer_expression "&DAT_00191100" & identifier) + identifier) )))) = number_literal) ;) (expression_statement "*(undefined8 *)(&DAT_00191108 + lVar7) = 0;" (assignment_expression "*(undefined8 *)(&DAT_00191108 + lVar7) = 0" (pointer_expression "*(undefined8 *)(&DAT_00191108 + lVar7)" * (cast_expression "(undefined8 *)(&DAT_00191108 + lVar7)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00191108 + lVar7)" ( (binary_expression "&DAT_00191108 + lVar7" (pointer_expression "&DAT_00191108" & identifier) + identifier) )))) = number_literal) ;) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "bool FUN_001328a0(ulong param_1,long param_2,undefined8 *param_3)\n\n{\n  void *__ptr;\n  int iVar1;\n  uint uVar2;\n  char *__format;\n  long lVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  byte *pbVar6;\n  byte *pbVar7;\n  bool bVar8;\n  bool bVar9;\n  byte bVar10;\n  byte *local_a8;\n  ulong local_a0;\n  int local_98 [2];\n  long local_90;\n  char local_78 [72];\n  \n  bVar10 = 0;\n  param_1 = param_1 & 0xffffffff;\n  __ptr = (void *)(&DAT_001910e0)[param_1 * 0xe];\n  if (__ptr != (void *)0x0) {\n    iVar1 = strcmp(*(char **)(&DAT_001910d8 + param_1 * 0x70),(char *)*param_3);\n    if (iVar1 == 0) {\n      return true;\n    }\n    free(__ptr);\n  }\n  uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n  __format = (char *)dcgettext(0,"%s section data",5);\n  snprintf(local_78,0x40,__format,uVar4);\n  uVar4 = *(undefined8 *)(param_2 + 0x10);\n  *(undefined8 *)(&DAT_00191110 + param_1 * 0x70) = 0;\n  (&DAT_001910e8)[param_1 * 0xe] = uVar4;\n  *(undefined8 *)(&DAT_001910d8 + param_1 * 0x70) = *param_3;\n  local_a8 = (byte *)FUN_001144a0(0,param_3 + 1,param_3 + 2,*(undefined8 *)(param_2 + 0x18),1,\n                                  *(undefined8 *)(param_2 + 0x20),local_78);\n  (&DAT_001910e0)[param_1 * 0xe] = local_a8;\n  if (local_a8 == (byte *)0x0) {\n    (&DAT_001910f0)[param_1 * 0xe] = 0;\n    return false;\n  }\n  local_a0 = *(ulong *)(param_2 + 0x20);\n  if ((*(byte *)(param_2 + 9) & 8) == 0) {\n    bVar8 = local_a0 < 0xc;\n    bVar9 = local_a0 == 0xc;\n    if (local_a0 < 0xd) goto LAB_00132a14;\n    lVar3 = 5;\n    pbVar6 = local_a8;\n    pbVar7 = &DAT_0016ac39;\n    do {\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar8 = *pbVar6 < *pbVar7;\n      bVar9 = *pbVar6 == *pbVar7;\n      pbVar6 = pbVar6 + (ulong)bVar10 * -2 + 1;\n      pbVar7 = pbVar7 + (ulong)bVar10 * -2 + 1;\n    } while (bVar9);\n    if ((!bVar8 && !bVar9) != bVar8) goto LAB_00132a14;\n    local_a0 = local_a0 - 0xc;\n    local_90 = (ulong)local_a8[0xb] +\n               ((ulong)local_a8[10] +\n               ((ulong)local_a8[9] +\n               ((ulong)local_a8[8] +\n               ((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *\n               0x100) * 0x100) * 0x100) * 0x100;\n    local_a8 = local_a8 + 0xc;\n  }\n  else {\n    if (local_a0 < (ulong)(-(uint)(DAT_0019345c == 0) & 0xc) + 0xc) {\n      uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n      uVar5 = dcgettext(0,"compressed section %s is too small to contain a compression header",5);\n      warn(uVar5,uVar4);\n      return false;\n    }\n    uVar2 = FUN_0010ffa0(local_98,local_a8,local_a0);\n    if (local_98[0] != 1) {\n      uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n      uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(uVar5,uVar4,local_98[0]);\n      return false;\n    }\n    local_a0 = local_a0 - uVar2;\n    local_a8 = local_a8 + uVar2;\n  }\n  if (local_90 != 0) {\n    iVar1 = FUN_00111310(&local_a8,local_90,&local_a0);\n    if (iVar1 == 0) {\n      uVar4 = FUN_00113f30(param_3 + 0x10,param_3 + 0x11,param_2);\n      uVar5 = dcgettext(0,"Unable to decompress section %s\n",5);\n      error(uVar5,uVar4);\n      return false;\n    }\n    free((void *)(&DAT_001910e0)[param_1 * 0xe]);\n    (&DAT_001910e0)[param_1 * 0xe] = local_a8;\n  }\nLAB_00132a14:\n  lVar3 = param_1 * 0x70;\n  (&DAT_001910f0)[param_1 * 0xe] = local_a0;\n  if ((&DAT_001910e0)[param_1 * 0xe] == 0) {\n    return false;\n  }\n  if (*(int *)(&DAT_00191128 + lVar3) != 0) {\n    iVar1 = FUN_00130cd0(param_3,param_2,(&DAT_001910e0)[param_1 * 0xe],local_a0,\n                         &DAT_00191100 + lVar3,&DAT_00191108 + lVar3);\n    return iVar1 != 0;\n  }\n  *(undefined8 *)(&DAT_00191100 + lVar3) = 0;\n  *(undefined8 *)(&DAT_00191108 + lVar3) = 0;\n  return true;\n}\n\n" (function_definition "bool FUN_001328a0(ulong param_1,long param_2,undefined8 *param_3)\n\n{\n  void *__ptr;\n  int iVar1;\n  uint uVar2;\n  char *__format;\n  long lVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  byte *pbVar6;\n  byte *pbVar7;\n  bool bVar8;\n  bool bVar9;\n  byte bVar10;\n  byte *local_a8;\n  ulong local_a0;\n  int local_98 [2];\n  long local_90;\n  char local_78 [72];\n  \n  bVar10 = 0;\n  param_1 = param_1 & 0xffffffff;\n  __ptr = (void *)(&DAT_001910e0)[param_1 * 0xe];\n  if (__ptr != (void *)0x0) {\n    iVar1 = strcmp(*(char **)(&DAT_001910d8 + param_1 * 0x70),(char *)*param_3);\n    if (iVar1 == 0) {\n      return true;\n    }\n    free(__ptr);\n  }\n  uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n  __format = (char *)dcgettext(0,"%s section data",5);\n  snprintf(local_78,0x40,__format,uVar4);\n  uVar4 = *(undefined8 *)(param_2 + 0x10);\n  *(undefined8 *)(&DAT_00191110 + param_1 * 0x70) = 0;\n  (&DAT_001910e8)[param_1 * 0xe] = uVar4;\n  *(undefined8 *)(&DAT_001910d8 + param_1 * 0x70) = *param_3;\n  local_a8 = (byte *)FUN_001144a0(0,param_3 + 1,param_3 + 2,*(undefined8 *)(param_2 + 0x18),1,\n                                  *(undefined8 *)(param_2 + 0x20),local_78);\n  (&DAT_001910e0)[param_1 * 0xe] = local_a8;\n  if (local_a8 == (byte *)0x0) {\n    (&DAT_001910f0)[param_1 * 0xe] = 0;\n    return false;\n  }\n  local_a0 = *(ulong *)(param_2 + 0x20);\n  if ((*(byte *)(param_2 + 9) & 8) == 0) {\n    bVar8 = local_a0 < 0xc;\n    bVar9 = local_a0 == 0xc;\n    if (local_a0 < 0xd) goto LAB_00132a14;\n    lVar3 = 5;\n    pbVar6 = local_a8;\n    pbVar7 = &DAT_0016ac39;\n    do {\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar8 = *pbVar6 < *pbVar7;\n      bVar9 = *pbVar6 == *pbVar7;\n      pbVar6 = pbVar6 + (ulong)bVar10 * -2 + 1;\n      pbVar7 = pbVar7 + (ulong)bVar10 * -2 + 1;\n    } while (bVar9);\n    if ((!bVar8 && !bVar9) != bVar8) goto LAB_00132a14;\n    local_a0 = local_a0 - 0xc;\n    local_90 = (ulong)local_a8[0xb] +\n               ((ulong)local_a8[10] +\n               ((ulong)local_a8[9] +\n               ((ulong)local_a8[8] +\n               ((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *\n               0x100) * 0x100) * 0x100) * 0x100;\n    local_a8 = local_a8 + 0xc;\n  }\n  else {\n    if (local_a0 < (ulong)(-(uint)(DAT_0019345c == 0) & 0xc) + 0xc) {\n      uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n      uVar5 = dcgettext(0,"compressed section %s is too small to contain a compression header",5);\n      warn(uVar5,uVar4);\n      return false;\n    }\n    uVar2 = FUN_0010ffa0(local_98,local_a8,local_a0);\n    if (local_98[0] != 1) {\n      uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n      uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(uVar5,uVar4,local_98[0]);\n      return false;\n    }\n    local_a0 = local_a0 - uVar2;\n    local_a8 = local_a8 + uVar2;\n  }\n  if (local_90 != 0) {\n    iVar1 = FUN_00111310(&local_a8,local_90,&local_a0);\n    if (iVar1 == 0) {\n      uVar4 = FUN_00113f30(param_3 + 0x10,param_3 + 0x11,param_2);\n      uVar5 = dcgettext(0,"Unable to decompress section %s\n",5);\n      error(uVar5,uVar4);\n      return false;\n    }\n    free((void *)(&DAT_001910e0)[param_1 * 0xe]);\n    (&DAT_001910e0)[param_1 * 0xe] = local_a8;\n  }\nLAB_00132a14:\n  lVar3 = param_1 * 0x70;\n  (&DAT_001910f0)[param_1 * 0xe] = local_a0;\n  if ((&DAT_001910e0)[param_1 * 0xe] == 0) {\n    return false;\n  }\n  if (*(int *)(&DAT_00191128 + lVar3) != 0) {\n    iVar1 = FUN_00130cd0(param_3,param_2,(&DAT_001910e0)[param_1 * 0xe],local_a0,\n                         &DAT_00191100 + lVar3,&DAT_00191108 + lVar3);\n    return iVar1 != 0;\n  }\n  *(undefined8 *)(&DAT_00191100 + lVar3) = 0;\n  *(undefined8 *)(&DAT_00191108 + lVar3) = 0;\n  return true;\n}" primitive_type (function_declarator "FUN_001328a0(ulong param_1,long param_2,undefined8 *param_3)" identifier (parameter_list "(ulong param_1,long param_2,undefined8 *param_3)" ( (parameter_declaration "ulong param_1" type_identifier identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  void *__ptr;\n  int iVar1;\n  uint uVar2;\n  char *__format;\n  long lVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  byte *pbVar6;\n  byte *pbVar7;\n  bool bVar8;\n  bool bVar9;\n  byte bVar10;\n  byte *local_a8;\n  ulong local_a0;\n  int local_98 [2];\n  long local_90;\n  char local_78 [72];\n  \n  bVar10 = 0;\n  param_1 = param_1 & 0xffffffff;\n  __ptr = (void *)(&DAT_001910e0)[param_1 * 0xe];\n  if (__ptr != (void *)0x0) {\n    iVar1 = strcmp(*(char **)(&DAT_001910d8 + param_1 * 0x70),(char *)*param_3);\n    if (iVar1 == 0) {\n      return true;\n    }\n    free(__ptr);\n  }\n  uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n  __format = (char *)dcgettext(0,"%s section data",5);\n  snprintf(local_78,0x40,__format,uVar4);\n  uVar4 = *(undefined8 *)(param_2 + 0x10);\n  *(undefined8 *)(&DAT_00191110 + param_1 * 0x70) = 0;\n  (&DAT_001910e8)[param_1 * 0xe] = uVar4;\n  *(undefined8 *)(&DAT_001910d8 + param_1 * 0x70) = *param_3;\n  local_a8 = (byte *)FUN_001144a0(0,param_3 + 1,param_3 + 2,*(undefined8 *)(param_2 + 0x18),1,\n                                  *(undefined8 *)(param_2 + 0x20),local_78);\n  (&DAT_001910e0)[param_1 * 0xe] = local_a8;\n  if (local_a8 == (byte *)0x0) {\n    (&DAT_001910f0)[param_1 * 0xe] = 0;\n    return false;\n  }\n  local_a0 = *(ulong *)(param_2 + 0x20);\n  if ((*(byte *)(param_2 + 9) & 8) == 0) {\n    bVar8 = local_a0 < 0xc;\n    bVar9 = local_a0 == 0xc;\n    if (local_a0 < 0xd) goto LAB_00132a14;\n    lVar3 = 5;\n    pbVar6 = local_a8;\n    pbVar7 = &DAT_0016ac39;\n    do {\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar8 = *pbVar6 < *pbVar7;\n      bVar9 = *pbVar6 == *pbVar7;\n      pbVar6 = pbVar6 + (ulong)bVar10 * -2 + 1;\n      pbVar7 = pbVar7 + (ulong)bVar10 * -2 + 1;\n    } while (bVar9);\n    if ((!bVar8 && !bVar9) != bVar8) goto LAB_00132a14;\n    local_a0 = local_a0 - 0xc;\n    local_90 = (ulong)local_a8[0xb] +\n               ((ulong)local_a8[10] +\n               ((ulong)local_a8[9] +\n               ((ulong)local_a8[8] +\n               ((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *\n               0x100) * 0x100) * 0x100) * 0x100;\n    local_a8 = local_a8 + 0xc;\n  }\n  else {\n    if (local_a0 < (ulong)(-(uint)(DAT_0019345c == 0) & 0xc) + 0xc) {\n      uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n      uVar5 = dcgettext(0,"compressed section %s is too small to contain a compression header",5);\n      warn(uVar5,uVar4);\n      return false;\n    }\n    uVar2 = FUN_0010ffa0(local_98,local_a8,local_a0);\n    if (local_98[0] != 1) {\n      uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n      uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(uVar5,uVar4,local_98[0]);\n      return false;\n    }\n    local_a0 = local_a0 - uVar2;\n    local_a8 = local_a8 + uVar2;\n  }\n  if (local_90 != 0) {\n    iVar1 = FUN_00111310(&local_a8,local_90,&local_a0);\n    if (iVar1 == 0) {\n      uVar4 = FUN_00113f30(param_3 + 0x10,param_3 + 0x11,param_2);\n      uVar5 = dcgettext(0,"Unable to decompress section %s\n",5);\n      error(uVar5,uVar4);\n      return false;\n    }\n    free((void *)(&DAT_001910e0)[param_1 * 0xe]);\n    (&DAT_001910e0)[param_1 * 0xe] = local_a8;\n  }\nLAB_00132a14:\n  lVar3 = param_1 * 0x70;\n  (&DAT_001910f0)[param_1 * 0xe] = local_a0;\n  if ((&DAT_001910e0)[param_1 * 0xe] == 0) {\n    return false;\n  }\n  if (*(int *)(&DAT_00191128 + lVar3) != 0) {\n    iVar1 = FUN_00130cd0(param_3,param_2,(&DAT_001910e0)[param_1 * 0xe],local_a0,\n                         &DAT_00191100 + lVar3,&DAT_00191108 + lVar3);\n    return iVar1 != 0;\n  }\n  *(undefined8 *)(&DAT_00191100 + lVar3) = 0;\n  *(undefined8 *)(&DAT_00191108 + lVar3) = 0;\n  return true;\n}" { (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "char *__format;" primitive_type (pointer_declarator "*__format" * identifier) ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (declaration "byte *pbVar6;" type_identifier (pointer_declarator "*pbVar6" * identifier) ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "bool bVar8;" primitive_type identifier ;) (declaration "bool bVar9;" primitive_type identifier ;) (declaration "byte bVar10;" type_identifier identifier ;) (declaration "byte *local_a8;" type_identifier (pointer_declarator "*local_a8" * identifier) ;) (declaration "ulong local_a0;" type_identifier identifier ;) (declaration "int local_98 [2];" primitive_type (array_declarator "local_98 [2]" identifier [ number_literal ]) ;) (declaration "long local_90;" (sized_type_specifier "long" long) identifier ;) (declaration "char local_78 [72];" primitive_type (array_declarator "local_78 [72]" identifier [ number_literal ]) ;) (expression_statement "bVar10 = 0;" (assignment_expression "bVar10 = 0" identifier = number_literal) ;) (expression_statement "param_1 = param_1 & 0xffffffff;" (assignment_expression "param_1 = param_1 & 0xffffffff" identifier = (binary_expression "param_1 & 0xffffffff" identifier & number_literal)) ;) (expression_statement "__ptr = (void *)(&DAT_001910e0)[param_1 * 0xe];" (assignment_expression "__ptr = (void *)(&DAT_001910e0)[param_1 * 0xe]" identifier = (cast_expression "(void *)(&DAT_001910e0)[param_1 * 0xe]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "(&DAT_001910e0)[param_1 * 0xe]" (parenthesized_expression "(&DAT_001910e0)" ( (pointer_expression "&DAT_001910e0" & identifier) )) [ (binary_expression "param_1 * 0xe" identifier * number_literal) ]))) ;) (if_statement "if (__ptr != (void *)0x0) {\n    iVar1 = strcmp(*(char **)(&DAT_001910d8 + param_1 * 0x70),(char *)*param_3);\n    if (iVar1 == 0) {\n      return true;\n    }\n    free(__ptr);\n  }" if (parenthesized_expression "(__ptr != (void *)0x0)" ( (binary_expression "__ptr != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar1 = strcmp(*(char **)(&DAT_001910d8 + param_1 * 0x70),(char *)*param_3);\n    if (iVar1 == 0) {\n      return true;\n    }\n    free(__ptr);\n  }" { (expression_statement "iVar1 = strcmp(*(char **)(&DAT_001910d8 + param_1 * 0x70),(char *)*param_3);" (assignment_expression "iVar1 = strcmp(*(char **)(&DAT_001910d8 + param_1 * 0x70),(char *)*param_3)" identifier = (call_expression "strcmp(*(char **)(&DAT_001910d8 + param_1 * 0x70),(char *)*param_3)" identifier (argument_list "(*(char **)(&DAT_001910d8 + param_1 * 0x70),(char *)*param_3)" ( (pointer_expression "*(char **)(&DAT_001910d8 + param_1 * 0x70)" * (cast_expression "(char **)(&DAT_001910d8 + param_1 * 0x70)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_001910d8 + param_1 * 0x70)" ( (binary_expression "&DAT_001910d8 + param_1 * 0x70" (pointer_expression "&DAT_001910d8" & identifier) + (binary_expression "param_1 * 0x70" identifier * number_literal)) )))) , (cast_expression "(char *)*param_3" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_3" * identifier)) )))) ;) (if_statement "if (iVar1 == 0) {\n      return true;\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      return true;\n    }" { (return_statement "return true;" return true ;) })) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) })) (expression_statement "uVar4 = (&DAT_001910d0)[param_1 * 0xe];" (assignment_expression "uVar4 = (&DAT_001910d0)[param_1 * 0xe]" identifier = (subscript_expression "(&DAT_001910d0)[param_1 * 0xe]" (parenthesized_expression "(&DAT_001910d0)" ( (pointer_expression "&DAT_001910d0" & identifier) )) [ (binary_expression "param_1 * 0xe" identifier * number_literal) ])) ;) (expression_statement "__format = (char *)dcgettext(0,"%s section data",5);" (assignment_expression "__format = (char *)dcgettext(0,"%s section data",5)" identifier = (cast_expression "(char *)dcgettext(0,"%s section data",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%s section data",5)" identifier (argument_list "(0,"%s section data",5)" ( number_literal , (string_literal ""%s section data"" " string_content ") , number_literal ))))) ;) (expression_statement "snprintf(local_78,0x40,__format,uVar4);" (call_expression "snprintf(local_78,0x40,__format,uVar4)" identifier (argument_list "(local_78,0x40,__format,uVar4)" ( identifier , number_literal , identifier , identifier ))) ;) (expression_statement "uVar4 = *(undefined8 *)(param_2 + 0x10);" (assignment_expression "uVar4 = *(undefined8 *)(param_2 + 0x10)" identifier = (pointer_expression "*(undefined8 *)(param_2 + 0x10)" * (cast_expression "(undefined8 *)(param_2 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(undefined8 *)(&DAT_00191110 + param_1 * 0x70) = 0;" (assignment_expression "*(undefined8 *)(&DAT_00191110 + param_1 * 0x70) = 0" (pointer_expression "*(undefined8 *)(&DAT_00191110 + param_1 * 0x70)" * (cast_expression "(undefined8 *)(&DAT_00191110 + param_1 * 0x70)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00191110 + param_1 * 0x70)" ( (binary_expression "&DAT_00191110 + param_1 * 0x70" (pointer_expression "&DAT_00191110" & identifier) + (binary_expression "param_1 * 0x70" identifier * number_literal)) )))) = number_literal) ;) (expression_statement "(&DAT_001910e8)[param_1 * 0xe] = uVar4;" (assignment_expression "(&DAT_001910e8)[param_1 * 0xe] = uVar4" (subscript_expression "(&DAT_001910e8)[param_1 * 0xe]" (parenthesized_expression "(&DAT_001910e8)" ( (pointer_expression "&DAT_001910e8" & identifier) )) [ (binary_expression "param_1 * 0xe" identifier * number_literal) ]) = identifier) ;) (expression_statement "*(undefined8 *)(&DAT_001910d8 + param_1 * 0x70) = *param_3;" (assignment_expression "*(undefined8 *)(&DAT_001910d8 + param_1 * 0x70) = *param_3" (pointer_expression "*(undefined8 *)(&DAT_001910d8 + param_1 * 0x70)" * (cast_expression "(undefined8 *)(&DAT_001910d8 + param_1 * 0x70)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_001910d8 + param_1 * 0x70)" ( (binary_expression "&DAT_001910d8 + param_1 * 0x70" (pointer_expression "&DAT_001910d8" & identifier) + (binary_expression "param_1 * 0x70" identifier * number_literal)) )))) = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "local_a8 = (byte *)FUN_001144a0(0,param_3 + 1,param_3 + 2,*(undefined8 *)(param_2 + 0x18),1,\n                                  *(undefined8 *)(param_2 + 0x20),local_78);" (assignment_expression "local_a8 = (byte *)FUN_001144a0(0,param_3 + 1,param_3 + 2,*(undefined8 *)(param_2 + 0x18),1,\n                                  *(undefined8 *)(param_2 + 0x20),local_78)" identifier = (cast_expression "(byte *)FUN_001144a0(0,param_3 + 1,param_3 + 2,*(undefined8 *)(param_2 + 0x18),1,\n                                  *(undefined8 *)(param_2 + 0x20),local_78)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001144a0(0,param_3 + 1,param_3 + 2,*(undefined8 *)(param_2 + 0x18),1,\n                                  *(undefined8 *)(param_2 + 0x20),local_78)" identifier (argument_list "(0,param_3 + 1,param_3 + 2,*(undefined8 *)(param_2 + 0x18),1,\n                                  *(undefined8 *)(param_2 + 0x20),local_78)" ( number_literal , (binary_expression "param_3 + 1" identifier + number_literal) , (binary_expression "param_3 + 2" identifier + number_literal) , (pointer_expression "*(undefined8 *)(param_2 + 0x18)" * (cast_expression "(undefined8 *)(param_2 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) )))) , number_literal , (pointer_expression "*(undefined8 *)(param_2 + 0x20)" * (cast_expression "(undefined8 *)(param_2 + 0x20)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x20)" ( (binary_expression "param_2 + 0x20" identifier + number_literal) )))) , identifier ))))) ;) (expression_statement "(&DAT_001910e0)[param_1 * 0xe] = local_a8;" (assignment_expression "(&DAT_001910e0)[param_1 * 0xe] = local_a8" (subscript_expression "(&DAT_001910e0)[param_1 * 0xe]" (parenthesized_expression "(&DAT_001910e0)" ( (pointer_expression "&DAT_001910e0" & identifier) )) [ (binary_expression "param_1 * 0xe" identifier * number_literal) ]) = identifier) ;) (if_statement "if (local_a8 == (byte *)0x0) {\n    (&DAT_001910f0)[param_1 * 0xe] = 0;\n    return false;\n  }" if (parenthesized_expression "(local_a8 == (byte *)0x0)" ( (binary_expression "local_a8 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (&DAT_001910f0)[param_1 * 0xe] = 0;\n    return false;\n  }" { (expression_statement "(&DAT_001910f0)[param_1 * 0xe] = 0;" (assignment_expression "(&DAT_001910f0)[param_1 * 0xe] = 0" (subscript_expression "(&DAT_001910f0)[param_1 * 0xe]" (parenthesized_expression "(&DAT_001910f0)" ( (pointer_expression "&DAT_001910f0" & identifier) )) [ (binary_expression "param_1 * 0xe" identifier * number_literal) ]) = number_literal) ;) (return_statement "return false;" return false ;) })) (expression_statement "local_a0 = *(ulong *)(param_2 + 0x20);" (assignment_expression "local_a0 = *(ulong *)(param_2 + 0x20)" identifier = (pointer_expression "*(ulong *)(param_2 + 0x20)" * (cast_expression "(ulong *)(param_2 + 0x20)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x20)" ( (binary_expression "param_2 + 0x20" identifier + number_literal) ))))) ;) (if_statement "if ((*(byte *)(param_2 + 9) & 8) == 0) {\n    bVar8 = local_a0 < 0xc;\n    bVar9 = local_a0 == 0xc;\n    if (local_a0 < 0xd) goto LAB_00132a14;\n    lVar3 = 5;\n    pbVar6 = local_a8;\n    pbVar7 = &DAT_0016ac39;\n    do {\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar8 = *pbVar6 < *pbVar7;\n      bVar9 = *pbVar6 == *pbVar7;\n      pbVar6 = pbVar6 + (ulong)bVar10 * -2 + 1;\n      pbVar7 = pbVar7 + (ulong)bVar10 * -2 + 1;\n    } while (bVar9);\n    if ((!bVar8 && !bVar9) != bVar8) goto LAB_00132a14;\n    local_a0 = local_a0 - 0xc;\n    local_90 = (ulong)local_a8[0xb] +\n               ((ulong)local_a8[10] +\n               ((ulong)local_a8[9] +\n               ((ulong)local_a8[8] +\n               ((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *\n               0x100) * 0x100) * 0x100) * 0x100;\n    local_a8 = local_a8 + 0xc;\n  }\n  else {\n    if (local_a0 < (ulong)(-(uint)(DAT_0019345c == 0) & 0xc) + 0xc) {\n      uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n      uVar5 = dcgettext(0,"compressed section %s is too small to contain a compression header",5);\n      warn(uVar5,uVar4);\n      return false;\n    }\n    uVar2 = FUN_0010ffa0(local_98,local_a8,local_a0);\n    if (local_98[0] != 1) {\n      uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n      uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(uVar5,uVar4,local_98[0]);\n      return false;\n    }\n    local_a0 = local_a0 - uVar2;\n    local_a8 = local_a8 + uVar2;\n  }" if (parenthesized_expression "((*(byte *)(param_2 + 9) & 8) == 0)" ( (binary_expression "(*(byte *)(param_2 + 9) & 8) == 0" (parenthesized_expression "(*(byte *)(param_2 + 9) & 8)" ( (binary_expression "*(byte *)(param_2 + 9) & 8" (pointer_expression "*(byte *)(param_2 + 9)" * (cast_expression "(byte *)(param_2 + 9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 9)" ( (binary_expression "param_2 + 9" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    bVar8 = local_a0 < 0xc;\n    bVar9 = local_a0 == 0xc;\n    if (local_a0 < 0xd) goto LAB_00132a14;\n    lVar3 = 5;\n    pbVar6 = local_a8;\n    pbVar7 = &DAT_0016ac39;\n    do {\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar8 = *pbVar6 < *pbVar7;\n      bVar9 = *pbVar6 == *pbVar7;\n      pbVar6 = pbVar6 + (ulong)bVar10 * -2 + 1;\n      pbVar7 = pbVar7 + (ulong)bVar10 * -2 + 1;\n    } while (bVar9);\n    if ((!bVar8 && !bVar9) != bVar8) goto LAB_00132a14;\n    local_a0 = local_a0 - 0xc;\n    local_90 = (ulong)local_a8[0xb] +\n               ((ulong)local_a8[10] +\n               ((ulong)local_a8[9] +\n               ((ulong)local_a8[8] +\n               ((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *\n               0x100) * 0x100) * 0x100) * 0x100;\n    local_a8 = local_a8 + 0xc;\n  }" { (expression_statement "bVar8 = local_a0 < 0xc;" (assignment_expression "bVar8 = local_a0 < 0xc" identifier = (binary_expression "local_a0 < 0xc" identifier < number_literal)) ;) (expression_statement "bVar9 = local_a0 == 0xc;" (assignment_expression "bVar9 = local_a0 == 0xc" identifier = (binary_expression "local_a0 == 0xc" identifier == number_literal)) ;) (if_statement "if (local_a0 < 0xd) goto LAB_00132a14;" if (parenthesized_expression "(local_a0 < 0xd)" ( (binary_expression "local_a0 < 0xd" identifier < number_literal) )) (goto_statement "goto LAB_00132a14;" goto statement_identifier ;)) (expression_statement "lVar3 = 5;" (assignment_expression "lVar3 = 5" identifier = number_literal) ;) (expression_statement "pbVar6 = local_a8;" (assignment_expression "pbVar6 = local_a8" identifier = identifier) ;) (expression_statement "pbVar7 = &DAT_0016ac39;" (assignment_expression "pbVar7 = &DAT_0016ac39" identifier = (pointer_expression "&DAT_0016ac39" & identifier)) ;) (do_statement "do {\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar8 = *pbVar6 < *pbVar7;\n      bVar9 = *pbVar6 == *pbVar7;\n      pbVar6 = pbVar6 + (ulong)bVar10 * -2 + 1;\n      pbVar7 = pbVar7 + (ulong)bVar10 * -2 + 1;\n    } while (bVar9);" do (compound_statement "{\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar8 = *pbVar6 < *pbVar7;\n      bVar9 = *pbVar6 == *pbVar7;\n      pbVar6 = pbVar6 + (ulong)bVar10 * -2 + 1;\n      pbVar7 = pbVar7 + (ulong)bVar10 * -2 + 1;\n    }" { (if_statement "if (lVar3 == 0) break;" if (parenthesized_expression "(lVar3 == 0)" ( (binary_expression "lVar3 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar3 = lVar3 + -1;" (assignment_expression "lVar3 = lVar3 + -1" identifier = (binary_expression "lVar3 + -1" identifier + number_literal)) ;) (expression_statement "bVar8 = *pbVar6 < *pbVar7;" (assignment_expression "bVar8 = *pbVar6 < *pbVar7" identifier = (binary_expression "*pbVar6 < *pbVar7" (pointer_expression "*pbVar6" * identifier) < (pointer_expression "*pbVar7" * identifier))) ;) (expression_statement "bVar9 = *pbVar6 == *pbVar7;" (assignment_expression "bVar9 = *pbVar6 == *pbVar7" identifier = (binary_expression "*pbVar6 == *pbVar7" (pointer_expression "*pbVar6" * identifier) == (pointer_expression "*pbVar7" * identifier))) ;) (expression_statement "pbVar6 = pbVar6 + (ulong)bVar10 * -2 + 1;" (assignment_expression "pbVar6 = pbVar6 + (ulong)bVar10 * -2 + 1" identifier = (binary_expression "pbVar6 + (ulong)bVar10 * -2 + 1" (binary_expression "pbVar6 + (ulong)bVar10 * -2" identifier + (binary_expression "(ulong)bVar10 * -2" (cast_expression "(ulong)bVar10" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar7 = pbVar7 + (ulong)bVar10 * -2 + 1;" (assignment_expression "pbVar7 = pbVar7 + (ulong)bVar10 * -2 + 1" identifier = (binary_expression "pbVar7 + (ulong)bVar10 * -2 + 1" (binary_expression "pbVar7 + (ulong)bVar10 * -2" identifier + (binary_expression "(ulong)bVar10 * -2" (cast_expression "(ulong)bVar10" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar9)" ( identifier )) ;) (if_statement "if ((!bVar8 && !bVar9) != bVar8) goto LAB_00132a14;" if (parenthesized_expression "((!bVar8 && !bVar9) != bVar8)" ( (binary_expression "(!bVar8 && !bVar9) != bVar8" (parenthesized_expression "(!bVar8 && !bVar9)" ( (binary_expression "!bVar8 && !bVar9" (unary_expression "!bVar8" ! identifier) && (unary_expression "!bVar9" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_00132a14;" goto statement_identifier ;)) (expression_statement "local_a0 = local_a0 - 0xc;" (assignment_expression "local_a0 = local_a0 - 0xc" identifier = (binary_expression "local_a0 - 0xc" identifier - number_literal)) ;) (expression_statement "local_90 = (ulong)local_a8[0xb] +\n               ((ulong)local_a8[10] +\n               ((ulong)local_a8[9] +\n               ((ulong)local_a8[8] +\n               ((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *\n               0x100) * 0x100) * 0x100) * 0x100;" (assignment_expression "local_90 = (ulong)local_a8[0xb] +\n               ((ulong)local_a8[10] +\n               ((ulong)local_a8[9] +\n               ((ulong)local_a8[8] +\n               ((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *\n               0x100) * 0x100) * 0x100) * 0x100" identifier = (binary_expression "(ulong)local_a8[0xb] +\n               ((ulong)local_a8[10] +\n               ((ulong)local_a8[9] +\n               ((ulong)local_a8[8] +\n               ((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *\n               0x100) * 0x100) * 0x100) * 0x100" (cast_expression "(ulong)local_a8[0xb]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "local_a8[0xb]" identifier [ number_literal ])) + (binary_expression "((ulong)local_a8[10] +\n               ((ulong)local_a8[9] +\n               ((ulong)local_a8[8] +\n               ((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *\n               0x100) * 0x100) * 0x100) * 0x100" (parenthesized_expression "((ulong)local_a8[10] +\n               ((ulong)local_a8[9] +\n               ((ulong)local_a8[8] +\n               ((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *\n               0x100) * 0x100) * 0x100)" ( (binary_expression "(ulong)local_a8[10] +\n               ((ulong)local_a8[9] +\n               ((ulong)local_a8[8] +\n               ((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *\n               0x100) * 0x100) * 0x100" (cast_expression "(ulong)local_a8[10]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "local_a8[10]" identifier [ number_literal ])) + (binary_expression "((ulong)local_a8[9] +\n               ((ulong)local_a8[8] +\n               ((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *\n               0x100) * 0x100) * 0x100" (parenthesized_expression "((ulong)local_a8[9] +\n               ((ulong)local_a8[8] +\n               ((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *\n               0x100) * 0x100)" ( (binary_expression "(ulong)local_a8[9] +\n               ((ulong)local_a8[8] +\n               ((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *\n               0x100) * 0x100" (cast_expression "(ulong)local_a8[9]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "local_a8[9]" identifier [ number_literal ])) + (binary_expression "((ulong)local_a8[8] +\n               ((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *\n               0x100) * 0x100" (parenthesized_expression "((ulong)local_a8[8] +\n               ((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *\n               0x100)" ( (binary_expression "(ulong)local_a8[8] +\n               ((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *\n               0x100" (cast_expression "(ulong)local_a8[8]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "local_a8[8]" identifier [ number_literal ])) + (binary_expression "((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *\n               0x100" (parenthesized_expression "((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100)" ( (binary_expression "(ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100" (cast_expression "(ulong)local_a8[7]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "local_a8[7]" identifier [ number_literal ])) + (binary_expression "((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100" (parenthesized_expression "((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100)" ( (binary_expression "(ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100" (cast_expression "(ulong)local_a8[6]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "local_a8[6]" identifier [ number_literal ])) + (binary_expression "(ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100" (cast_expression "(ulong)CONCAT11(local_a8[4],local_a8[5])" ( (type_descriptor "ulong" type_identifier) ) (call_expression "CONCAT11(local_a8[4],local_a8[5])" identifier (argument_list "(local_a8[4],local_a8[5])" ( (subscript_expression "local_a8[4]" identifier [ number_literal ]) , (subscript_expression "local_a8[5]" identifier [ number_literal ]) )))) * number_literal)) )) * number_literal)) )) * number_literal)) )) * number_literal)) )) * number_literal)) )) * number_literal))) ;) (expression_statement "local_a8 = local_a8 + 0xc;" (assignment_expression "local_a8 = local_a8 + 0xc" identifier = (binary_expression "local_a8 + 0xc" identifier + number_literal)) ;) }) (else_clause "else {\n    if (local_a0 < (ulong)(-(uint)(DAT_0019345c == 0) & 0xc) + 0xc) {\n      uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n      uVar5 = dcgettext(0,"compressed section %s is too small to contain a compression header",5);\n      warn(uVar5,uVar4);\n      return false;\n    }\n    uVar2 = FUN_0010ffa0(local_98,local_a8,local_a0);\n    if (local_98[0] != 1) {\n      uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n      uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(uVar5,uVar4,local_98[0]);\n      return false;\n    }\n    local_a0 = local_a0 - uVar2;\n    local_a8 = local_a8 + uVar2;\n  }" else (compound_statement "{\n    if (local_a0 < (ulong)(-(uint)(DAT_0019345c == 0) & 0xc) + 0xc) {\n      uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n      uVar5 = dcgettext(0,"compressed section %s is too small to contain a compression header",5);\n      warn(uVar5,uVar4);\n      return false;\n    }\n    uVar2 = FUN_0010ffa0(local_98,local_a8,local_a0);\n    if (local_98[0] != 1) {\n      uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n      uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(uVar5,uVar4,local_98[0]);\n      return false;\n    }\n    local_a0 = local_a0 - uVar2;\n    local_a8 = local_a8 + uVar2;\n  }" { (if_statement "if (local_a0 < (ulong)(-(uint)(DAT_0019345c == 0) & 0xc) + 0xc) {\n      uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n      uVar5 = dcgettext(0,"compressed section %s is too small to contain a compression header",5);\n      warn(uVar5,uVar4);\n      return false;\n    }" if (parenthesized_expression "(local_a0 < (ulong)(-(uint)(DAT_0019345c == 0) & 0xc) + 0xc)" ( (binary_expression "local_a0 < (ulong)(-(uint)(DAT_0019345c == 0) & 0xc) + 0xc" identifier < (binary_expression "(ulong)(-(uint)(DAT_0019345c == 0) & 0xc) + 0xc" (call_expression "(ulong)(-(uint)(DAT_0019345c == 0) & 0xc)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(-(uint)(DAT_0019345c == 0) & 0xc)" ( (binary_expression "-(uint)(DAT_0019345c == 0) & 0xc" (unary_expression "-(uint)(DAT_0019345c == 0)" - (call_expression "(uint)(DAT_0019345c == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(DAT_0019345c == 0)" ( (binary_expression "DAT_0019345c == 0" identifier == number_literal) )))) & number_literal) ))) + number_literal)) )) (compound_statement "{\n      uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n      uVar5 = dcgettext(0,"compressed section %s is too small to contain a compression header",5);\n      warn(uVar5,uVar4);\n      return false;\n    }" { (expression_statement "uVar4 = (&DAT_001910d0)[param_1 * 0xe];" (assignment_expression "uVar4 = (&DAT_001910d0)[param_1 * 0xe]" identifier = (subscript_expression "(&DAT_001910d0)[param_1 * 0xe]" (parenthesized_expression "(&DAT_001910d0)" ( (pointer_expression "&DAT_001910d0" & identifier) )) [ (binary_expression "param_1 * 0xe" identifier * number_literal) ])) ;) (expression_statement "uVar5 = dcgettext(0,"compressed section %s is too small to contain a compression header",5);" (assignment_expression "uVar5 = dcgettext(0,"compressed section %s is too small to contain a compression header",5)" identifier = (call_expression "dcgettext(0,"compressed section %s is too small to contain a compression header",5)" identifier (argument_list "(0,"compressed section %s is too small to contain a compression header",5)" ( number_literal , (string_literal ""compressed section %s is too small to contain a compression header"" " string_content ") , number_literal )))) ;) (expression_statement "warn(uVar5,uVar4);" (call_expression "warn(uVar5,uVar4)" identifier (argument_list "(uVar5,uVar4)" ( identifier , identifier ))) ;) (return_statement "return false;" return false ;) })) (expression_statement "uVar2 = FUN_0010ffa0(local_98,local_a8,local_a0);" (assignment_expression "uVar2 = FUN_0010ffa0(local_98,local_a8,local_a0)" identifier = (call_expression "FUN_0010ffa0(local_98,local_a8,local_a0)" identifier (argument_list "(local_98,local_a8,local_a0)" ( identifier , identifier , identifier )))) ;) (if_statement "if (local_98[0] != 1) {\n      uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n      uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(uVar5,uVar4,local_98[0]);\n      return false;\n    }" if (parenthesized_expression "(local_98[0] != 1)" ( (binary_expression "local_98[0] != 1" (subscript_expression "local_98[0]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n      uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(uVar5,uVar4,local_98[0]);\n      return false;\n    }" { (expression_statement "uVar4 = (&DAT_001910d0)[param_1 * 0xe];" (assignment_expression "uVar4 = (&DAT_001910d0)[param_1 * 0xe]" identifier = (subscript_expression "(&DAT_001910d0)[param_1 * 0xe]" (parenthesized_expression "(&DAT_001910d0)" ( (pointer_expression "&DAT_001910d0" & identifier) )) [ (binary_expression "param_1 * 0xe" identifier * number_literal) ])) ;) (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,uVar4,local_98[0]);" (call_expression "warn(uVar5,uVar4,local_98[0])" identifier (argument_list "(uVar5,uVar4,local_98[0])" ( identifier , identifier , (subscript_expression "local_98[0]" identifier [ number_literal ]) ))) ;) (return_statement "return false;" return false ;) })) (expression_statement "local_a0 = local_a0 - uVar2;" (assignment_expression "local_a0 = local_a0 - uVar2" identifier = (binary_expression "local_a0 - uVar2" identifier - identifier)) ;) (expression_statement "local_a8 = local_a8 + uVar2;" (assignment_expression "local_a8 = local_a8 + uVar2" identifier = (binary_expression "local_a8 + uVar2" identifier + identifier)) ;) }))) (if_statement "if (local_90 != 0) {\n    iVar1 = FUN_00111310(&local_a8,local_90,&local_a0);\n    if (iVar1 == 0) {\n      uVar4 = FUN_00113f30(param_3 + 0x10,param_3 + 0x11,param_2);\n      uVar5 = dcgettext(0,"Unable to decompress section %s\n",5);\n      error(uVar5,uVar4);\n      return false;\n    }\n    free((void *)(&DAT_001910e0)[param_1 * 0xe]);\n    (&DAT_001910e0)[param_1 * 0xe] = local_a8;\n  }" if (parenthesized_expression "(local_90 != 0)" ( (binary_expression "local_90 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar1 = FUN_00111310(&local_a8,local_90,&local_a0);\n    if (iVar1 == 0) {\n      uVar4 = FUN_00113f30(param_3 + 0x10,param_3 + 0x11,param_2);\n      uVar5 = dcgettext(0,"Unable to decompress section %s\n",5);\n      error(uVar5,uVar4);\n      return false;\n    }\n    free((void *)(&DAT_001910e0)[param_1 * 0xe]);\n    (&DAT_001910e0)[param_1 * 0xe] = local_a8;\n  }" { (expression_statement "iVar1 = FUN_00111310(&local_a8,local_90,&local_a0);" (assignment_expression "iVar1 = FUN_00111310(&local_a8,local_90,&local_a0)" identifier = (call_expression "FUN_00111310(&local_a8,local_90,&local_a0)" identifier (argument_list "(&local_a8,local_90,&local_a0)" ( (pointer_expression "&local_a8" & identifier) , identifier , (pointer_expression "&local_a0" & identifier) )))) ;) (if_statement "if (iVar1 == 0) {\n      uVar4 = FUN_00113f30(param_3 + 0x10,param_3 + 0x11,param_2);\n      uVar5 = dcgettext(0,"Unable to decompress section %s\n",5);\n      error(uVar5,uVar4);\n      return false;\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar4 = FUN_00113f30(param_3 + 0x10,param_3 + 0x11,param_2);\n      uVar5 = dcgettext(0,"Unable to decompress section %s\n",5);\n      error(uVar5,uVar4);\n      return false;\n    }" { (expression_statement "uVar4 = FUN_00113f30(param_3 + 0x10,param_3 + 0x11,param_2);" (assignment_expression "uVar4 = FUN_00113f30(param_3 + 0x10,param_3 + 0x11,param_2)" identifier = (call_expression "FUN_00113f30(param_3 + 0x10,param_3 + 0x11,param_2)" identifier (argument_list "(param_3 + 0x10,param_3 + 0x11,param_2)" ( (binary_expression "param_3 + 0x10" identifier + number_literal) , (binary_expression "param_3 + 0x11" identifier + number_literal) , identifier )))) ;) (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,uVar4);" (call_expression "error(uVar5,uVar4)" identifier (argument_list "(uVar5,uVar4)" ( identifier , identifier ))) ;) (return_statement "return false;" return false ;) })) (expression_statement "free((void *)(&DAT_001910e0)[param_1 * 0xe]);" (call_expression "free((void *)(&DAT_001910e0)[param_1 * 0xe])" identifier (argument_list "((void *)(&DAT_001910e0)[param_1 * 0xe])" ( (cast_expression "(void *)(&DAT_001910e0)[param_1 * 0xe]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "(&DAT_001910e0)[param_1 * 0xe]" (parenthesized_expression "(&DAT_001910e0)" ( (pointer_expression "&DAT_001910e0" & identifier) )) [ (binary_expression "param_1 * 0xe" identifier * number_literal) ])) ))) ;) (expression_statement "(&DAT_001910e0)[param_1 * 0xe] = local_a8;" (assignment_expression "(&DAT_001910e0)[param_1 * 0xe] = local_a8" (subscript_expression "(&DAT_001910e0)[param_1 * 0xe]" (parenthesized_expression "(&DAT_001910e0)" ( (pointer_expression "&DAT_001910e0" & identifier) )) [ (binary_expression "param_1 * 0xe" identifier * number_literal) ]) = identifier) ;) })) (labeled_statement "LAB_00132a14:\n  lVar3 = param_1 * 0x70;" statement_identifier : (expression_statement "lVar3 = param_1 * 0x70;" (assignment_expression "lVar3 = param_1 * 0x70" identifier = (binary_expression "param_1 * 0x70" identifier * number_literal)) ;)) (expression_statement "(&DAT_001910f0)[param_1 * 0xe] = local_a0;" (assignment_expression "(&DAT_001910f0)[param_1 * 0xe] = local_a0" (subscript_expression "(&DAT_001910f0)[param_1 * 0xe]" (parenthesized_expression "(&DAT_001910f0)" ( (pointer_expression "&DAT_001910f0" & identifier) )) [ (binary_expression "param_1 * 0xe" identifier * number_literal) ]) = identifier) ;) (if_statement "if ((&DAT_001910e0)[param_1 * 0xe] == 0) {\n    return false;\n  }" if (parenthesized_expression "((&DAT_001910e0)[param_1 * 0xe] == 0)" ( (binary_expression "(&DAT_001910e0)[param_1 * 0xe] == 0" (subscript_expression "(&DAT_001910e0)[param_1 * 0xe]" (parenthesized_expression "(&DAT_001910e0)" ( (pointer_expression "&DAT_001910e0" & identifier) )) [ (binary_expression "param_1 * 0xe" identifier * number_literal) ]) == number_literal) )) (compound_statement "{\n    return false;\n  }" { (return_statement "return false;" return false ;) })) (if_statement "if (*(int *)(&DAT_00191128 + lVar3) != 0) {\n    iVar1 = FUN_00130cd0(param_3,param_2,(&DAT_001910e0)[param_1 * 0xe],local_a0,\n                         &DAT_00191100 + lVar3,&DAT_00191108 + lVar3);\n    return iVar1 != 0;\n  }" if (parenthesized_expression "(*(int *)(&DAT_00191128 + lVar3) != 0)" ( (binary_expression "*(int *)(&DAT_00191128 + lVar3) != 0" (pointer_expression "*(int *)(&DAT_00191128 + lVar3)" * (cast_expression "(int *)(&DAT_00191128 + lVar3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00191128 + lVar3)" ( (binary_expression "&DAT_00191128 + lVar3" (pointer_expression "&DAT_00191128" & identifier) + identifier) )))) != number_literal) )) (compound_statement "{\n    iVar1 = FUN_00130cd0(param_3,param_2,(&DAT_001910e0)[param_1 * 0xe],local_a0,\n                         &DAT_00191100 + lVar3,&DAT_00191108 + lVar3);\n    return iVar1 != 0;\n  }" { (expression_statement "iVar1 = FUN_00130cd0(param_3,param_2,(&DAT_001910e0)[param_1 * 0xe],local_a0,\n                         &DAT_00191100 + lVar3,&DAT_00191108 + lVar3);" (assignment_expression "iVar1 = FUN_00130cd0(param_3,param_2,(&DAT_001910e0)[param_1 * 0xe],local_a0,\n                         &DAT_00191100 + lVar3,&DAT_00191108 + lVar3)" identifier = (call_expression "FUN_00130cd0(param_3,param_2,(&DAT_001910e0)[param_1 * 0xe],local_a0,\n                         &DAT_00191100 + lVar3,&DAT_00191108 + lVar3)" identifier (argument_list "(param_3,param_2,(&DAT_001910e0)[param_1 * 0xe],local_a0,\n                         &DAT_00191100 + lVar3,&DAT_00191108 + lVar3)" ( identifier , identifier , (subscript_expression "(&DAT_001910e0)[param_1 * 0xe]" (parenthesized_expression "(&DAT_001910e0)" ( (pointer_expression "&DAT_001910e0" & identifier) )) [ (binary_expression "param_1 * 0xe" identifier * number_literal) ]) , identifier , (binary_expression "&DAT_00191100 + lVar3" (pointer_expression "&DAT_00191100" & identifier) + identifier) , (binary_expression "&DAT_00191108 + lVar3" (pointer_expression "&DAT_00191108" & identifier) + identifier) )))) ;) (return_statement "return iVar1 != 0;" return (binary_expression "iVar1 != 0" identifier != number_literal) ;) })) (expression_statement "*(undefined8 *)(&DAT_00191100 + lVar3) = 0;" (assignment_expression "*(undefined8 *)(&DAT_00191100 + lVar3) = 0" (pointer_expression "*(undefined8 *)(&DAT_00191100 + lVar3)" * (cast_expression "(undefined8 *)(&DAT_00191100 + lVar3)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00191100 + lVar3)" ( (binary_expression "&DAT_00191100 + lVar3" (pointer_expression "&DAT_00191100" & identifier) + identifier) )))) = number_literal) ;) (expression_statement "*(undefined8 *)(&DAT_00191108 + lVar3) = 0;" (assignment_expression "*(undefined8 *)(&DAT_00191108 + lVar3) = 0" (pointer_expression "*(undefined8 *)(&DAT_00191108 + lVar3)" * (cast_expression "(undefined8 *)(&DAT_00191108 + lVar3)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00191108 + lVar3)" ( (binary_expression "&DAT_00191108 + lVar3" (pointer_expression "&DAT_00191108" & identifier) + identifier) )))) = number_literal) ;) (return_statement "return true;" return true ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression IDENT * LIT) ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression IDENT * LIT)) )))) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return BOOL ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression IDENT * LIT) ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression IDENT * LIT)) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression IDENT * LIT) ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression IDENT * LIT)) )))) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT ))))) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression IDENT * LIT) ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression IDENT * LIT) ]) = LIT) ;) (return_statement return BOOL ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (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 = (binary_expression IDENT < LIT)) ;) (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 (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 IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) )))) * LIT)) )) * LIT)) )) * LIT)) )) * LIT)) )) * LIT)) )) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == LIT) )))) & LIT) ))) + LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression IDENT * LIT) ])) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (return_statement return BOOL ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression IDENT * LIT) ])) ;) (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 , (subscript_expression IDENT [ LIT ]) ))) ;) (return_statement return BOOL ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , IDENT )))) ;) (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 (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression IDENT * LIT) ])) ))) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression IDENT * LIT) ]) = IDENT) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;)) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression IDENT * LIT) ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression IDENT * LIT) ]) == LIT) )) (compound_statement { (return_statement return BOOL ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression IDENT * LIT) ]) , IDENT , (binary_expression (pointer_expression & IDENT) + IDENT) , (binary_expression (pointer_expression & IDENT) + IDENT) )))) ;) (return_statement return (binary_expression IDENT != LIT) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) )))) = LIT) ;) (return_statement return BOOL ;) })))
(function_definition "bool FUN_001328a0(ulong param_1,long param_2,undefined8 *param_3)\n\n{\n  void *__ptr;\n  int iVar1;\n  uint uVar2;\n  char *__format;\n  long lVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  byte *pbVar6;\n  byte *pbVar7;\n  bool bVar8;\n  bool bVar9;\n  byte bVar10;\n  byte *local_a8;\n  ulong local_a0;\n  int local_98 [2];\n  long local_90;\n  char local_78 [72];\n  \n  bVar10 = 0;\n  param_1 = param_1 & 0xffffffff;\n  __ptr = (void *)(&DAT_001910e0)[param_1 * 0xe];\n  if (__ptr != (void *)0x0) {\n    iVar1 = strcmp(*(char **)(&DAT_001910d8 + param_1 * 0x70),(char *)*param_3);\n    if (iVar1 == 0) {\n      return true;\n    }\n    free(__ptr);\n  }\n  uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n  __format = (char *)dcgettext(0,"%s section data",5);\n  snprintf(local_78,0x40,__format,uVar4);\n  uVar4 = *(undefined8 *)(param_2 + 0x10);\n  *(undefined8 *)(&DAT_00191110 + param_1 * 0x70) = 0;\n  (&DAT_001910e8)[param_1 * 0xe] = uVar4;\n  *(undefined8 *)(&DAT_001910d8 + param_1 * 0x70) = *param_3;\n  local_a8 = (byte *)FUN_001144a0(0,param_3 + 1,param_3 + 2,*(undefined8 *)(param_2 + 0x18),1,\n                                  *(undefined8 *)(param_2 + 0x20),local_78);\n  (&DAT_001910e0)[param_1 * 0xe] = local_a8;\n  if (local_a8 == (byte *)0x0) {\n    (&DAT_001910f0)[param_1 * 0xe] = 0;\n    return false;\n  }\n  local_a0 = *(ulong *)(param_2 + 0x20);\n  if ((*(byte *)(param_2 + 9) & 8) == 0) {\n    bVar8 = local_a0 < 0xc;\n    bVar9 = local_a0 == 0xc;\n    if (local_a0 < 0xd) goto LAB_00132a14;\n    lVar3 = 5;\n    pbVar6 = local_a8;\n    pbVar7 = &DAT_0016ac39;\n    do {\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar8 = *pbVar6 < *pbVar7;\n      bVar9 = *pbVar6 == *pbVar7;\n      pbVar6 = pbVar6 + (ulong)bVar10 * -2 + 1;\n      pbVar7 = pbVar7 + (ulong)bVar10 * -2 + 1;\n    } while (bVar9);\n    if ((!bVar8 && !bVar9) != bVar8) goto LAB_00132a14;\n    local_a0 = local_a0 - 0xc;\n    local_90 = (ulong)local_a8[0xb] +\n               ((ulong)local_a8[10] +\n               ((ulong)local_a8[9] +\n               ((ulong)local_a8[8] +\n               ((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *\n               0x100) * 0x100) * 0x100) * 0x100;\n    local_a8 = local_a8 + 0xc;\n  }\n  else {\n    if (local_a0 < (ulong)(-(uint)(DAT_0019345c == 0) & 0xc) + 0xc) {\n      uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n      uVar5 = dcgettext(0,"compressed section %s is too small to contain a compression header",5);\n      warn(uVar5,uVar4);\n      return false;\n    }\n    uVar2 = FUN_0010ffa0(local_98,local_a8,local_a0);\n    if (local_98[0] != 1) {\n      uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n      uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(uVar5,uVar4,local_98[0]);\n      return false;\n    }\n    local_a0 = local_a0 - uVar2;\n    local_a8 = local_a8 + uVar2;\n  }\n  if (local_90 != 0) {\n    iVar1 = FUN_00111310(&local_a8,local_90,&local_a0);\n    if (iVar1 == 0) {\n      uVar4 = FUN_00113f30(param_3 + 0x10,param_3 + 0x11,param_2);\n      uVar5 = dcgettext(0,"Unable to decompress section %s\n",5);\n      error(uVar5,uVar4);\n      return false;\n    }\n    free((void *)(&DAT_001910e0)[param_1 * 0xe]);\n    (&DAT_001910e0)[param_1 * 0xe] = local_a8;\n  }\nLAB_00132a14:\n  lVar3 = param_1 * 0x70;\n  (&DAT_001910f0)[param_1 * 0xe] = local_a0;\n  if ((&DAT_001910e0)[param_1 * 0xe] == 0) {\n    return false;\n  }\n  if (*(int *)(&DAT_00191128 + lVar3) != 0) {\n    iVar1 = FUN_00130cd0(param_3,param_2,(&DAT_001910e0)[param_1 * 0xe],local_a0,\n                         &DAT_00191100 + lVar3,&DAT_00191108 + lVar3);\n    return iVar1 != 0;\n  }\n  *(undefined8 *)(&DAT_00191100 + lVar3) = 0;\n  *(undefined8 *)(&DAT_00191108 + lVar3) = 0;\n  return true;\n}" (primitive_type "bool") (function_declarator "FUN_001328a0(ulong param_1,long param_2,undefined8 *param_3)" (identifier "FUN_001328a0") (parameter_list "(ulong param_1,long param_2,undefined8 *param_3)" (( "(") (parameter_declaration "ulong param_1" (type_identifier "ulong") (identifier "param_1")) (, ",") (parameter_declaration "long param_2" (sized_type_specifier "long" (long "long")) (identifier "param_2")) (, ",") (parameter_declaration "undefined8 *param_3" (type_identifier "undefined8") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")"))) (compound_statement "{\n  void *__ptr;\n  int iVar1;\n  uint uVar2;\n  char *__format;\n  long lVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  byte *pbVar6;\n  byte *pbVar7;\n  bool bVar8;\n  bool bVar9;\n  byte bVar10;\n  byte *local_a8;\n  ulong local_a0;\n  int local_98 [2];\n  long local_90;\n  char local_78 [72];\n  \n  bVar10 = 0;\n  param_1 = param_1 & 0xffffffff;\n  __ptr = (void *)(&DAT_001910e0)[param_1 * 0xe];\n  if (__ptr != (void *)0x0) {\n    iVar1 = strcmp(*(char **)(&DAT_001910d8 + param_1 * 0x70),(char *)*param_3);\n    if (iVar1 == 0) {\n      return true;\n    }\n    free(__ptr);\n  }\n  uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n  __format = (char *)dcgettext(0,"%s section data",5);\n  snprintf(local_78,0x40,__format,uVar4);\n  uVar4 = *(undefined8 *)(param_2 + 0x10);\n  *(undefined8 *)(&DAT_00191110 + param_1 * 0x70) = 0;\n  (&DAT_001910e8)[param_1 * 0xe] = uVar4;\n  *(undefined8 *)(&DAT_001910d8 + param_1 * 0x70) = *param_3;\n  local_a8 = (byte *)FUN_001144a0(0,param_3 + 1,param_3 + 2,*(undefined8 *)(param_2 + 0x18),1,\n                                  *(undefined8 *)(param_2 + 0x20),local_78);\n  (&DAT_001910e0)[param_1 * 0xe] = local_a8;\n  if (local_a8 == (byte *)0x0) {\n    (&DAT_001910f0)[param_1 * 0xe] = 0;\n    return false;\n  }\n  local_a0 = *(ulong *)(param_2 + 0x20);\n  if ((*(byte *)(param_2 + 9) & 8) == 0) {\n    bVar8 = local_a0 < 0xc;\n    bVar9 = local_a0 == 0xc;\n    if (local_a0 < 0xd) goto LAB_00132a14;\n    lVar3 = 5;\n    pbVar6 = local_a8;\n    pbVar7 = &DAT_0016ac39;\n    do {\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar8 = *pbVar6 < *pbVar7;\n      bVar9 = *pbVar6 == *pbVar7;\n      pbVar6 = pbVar6 + (ulong)bVar10 * -2 + 1;\n      pbVar7 = pbVar7 + (ulong)bVar10 * -2 + 1;\n    } while (bVar9);\n    if ((!bVar8 && !bVar9) != bVar8) goto LAB_00132a14;\n    local_a0 = local_a0 - 0xc;\n    local_90 = (ulong)local_a8[0xb] +\n               ((ulong)local_a8[10] +\n               ((ulong)local_a8[9] +\n               ((ulong)local_a8[8] +\n               ((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *\n               0x100) * 0x100) * 0x100) * 0x100;\n    local_a8 = local_a8 + 0xc;\n  }\n  else {\n    if (local_a0 < (ulong)(-(uint)(DAT_0019345c == 0) & 0xc) + 0xc) {\n      uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n      uVar5 = dcgettext(0,"compressed section %s is too small to contain a compression header",5);\n      warn(uVar5,uVar4);\n      return false;\n    }\n    uVar2 = FUN_0010ffa0(local_98,local_a8,local_a0);\n    if (local_98[0] != 1) {\n      uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n      uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(uVar5,uVar4,local_98[0]);\n      return false;\n    }\n    local_a0 = local_a0 - uVar2;\n    local_a8 = local_a8 + uVar2;\n  }\n  if (local_90 != 0) {\n    iVar1 = FUN_00111310(&local_a8,local_90,&local_a0);\n    if (iVar1 == 0) {\n      uVar4 = FUN_00113f30(param_3 + 0x10,param_3 + 0x11,param_2);\n      uVar5 = dcgettext(0,"Unable to decompress section %s\n",5);\n      error(uVar5,uVar4);\n      return false;\n    }\n    free((void *)(&DAT_001910e0)[param_1 * 0xe]);\n    (&DAT_001910e0)[param_1 * 0xe] = local_a8;\n  }\nLAB_00132a14:\n  lVar3 = param_1 * 0x70;\n  (&DAT_001910f0)[param_1 * 0xe] = local_a0;\n  if ((&DAT_001910e0)[param_1 * 0xe] == 0) {\n    return false;\n  }\n  if (*(int *)(&DAT_00191128 + lVar3) != 0) {\n    iVar1 = FUN_00130cd0(param_3,param_2,(&DAT_001910e0)[param_1 * 0xe],local_a0,\n                         &DAT_00191100 + lVar3,&DAT_00191108 + lVar3);\n    return iVar1 != 0;\n  }\n  *(undefined8 *)(&DAT_00191100 + lVar3) = 0;\n  *(undefined8 *)(&DAT_00191108 + lVar3) = 0;\n  return true;\n}" ({ "{") (declaration "void *__ptr;" (primitive_type "void") (pointer_declarator "*__ptr" (* "*") (identifier "__ptr")) (; ";")) (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "char *__format;" (primitive_type "char") (pointer_declarator "*__format" (* "*") (identifier "__format")) (; ";")) (declaration "long lVar3;" (sized_type_specifier "long" (long "long")) (identifier "lVar3") (; ";")) (declaration "undefined8 uVar4;" (type_identifier "undefined8") (identifier "uVar4") (; ";")) (declaration "undefined8 uVar5;" (type_identifier "undefined8") (identifier "uVar5") (; ";")) (declaration "byte *pbVar6;" (type_identifier "byte") (pointer_declarator "*pbVar6" (* "*") (identifier "pbVar6")) (; ";")) (declaration "byte *pbVar7;" (type_identifier "byte") (pointer_declarator "*pbVar7" (* "*") (identifier "pbVar7")) (; ";")) (declaration "bool bVar8;" (primitive_type "bool") (identifier "bVar8") (; ";")) (declaration "bool bVar9;" (primitive_type "bool") (identifier "bVar9") (; ";")) (declaration "byte bVar10;" (type_identifier "byte") (identifier "bVar10") (; ";")) (declaration "byte *local_a8;" (type_identifier "byte") (pointer_declarator "*local_a8" (* "*") (identifier "local_a8")) (; ";")) (declaration "ulong local_a0;" (type_identifier "ulong") (identifier "local_a0") (; ";")) (declaration "int local_98 [2];" (primitive_type "int") (array_declarator "local_98 [2]" (identifier "local_98") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "long local_90;" (sized_type_specifier "long" (long "long")) (identifier "local_90") (; ";")) (declaration "char local_78 [72];" (primitive_type "char") (array_declarator "local_78 [72]" (identifier "local_78") ([ "[") (number_literal "72") (] "]")) (; ";")) (expression_statement "bVar10 = 0;" (assignment_expression "bVar10 = 0" (identifier "bVar10") (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1 = param_1 & 0xffffffff;" (assignment_expression "param_1 = param_1 & 0xffffffff" (identifier "param_1") (= "=") (binary_expression "param_1 & 0xffffffff" (identifier "param_1") (& "&") (number_literal "0xffffffff"))) (; ";")) (expression_statement "__ptr = (void *)(&DAT_001910e0)[param_1 * 0xe];" (assignment_expression "__ptr = (void *)(&DAT_001910e0)[param_1 * 0xe]" (identifier "__ptr") (= "=") (cast_expression "(void *)(&DAT_001910e0)[param_1 * 0xe]" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "(&DAT_001910e0)[param_1 * 0xe]" (parenthesized_expression "(&DAT_001910e0)" (( "(") (pointer_expression "&DAT_001910e0" (& "&") (identifier "DAT_001910e0")) () ")")) ([ "[") (binary_expression "param_1 * 0xe" (identifier "param_1") (* "*") (number_literal "0xe")) (] "]")))) (; ";")) (if_statement "if (__ptr != (void *)0x0) {\n    iVar1 = strcmp(*(char **)(&DAT_001910d8 + param_1 * 0x70),(char *)*param_3);\n    if (iVar1 == 0) {\n      return true;\n    }\n    free(__ptr);\n  }" (if "if") (parenthesized_expression "(__ptr != (void *)0x0)" (( "(") (binary_expression "__ptr != (void *)0x0" (identifier "__ptr") (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    iVar1 = strcmp(*(char **)(&DAT_001910d8 + param_1 * 0x70),(char *)*param_3);\n    if (iVar1 == 0) {\n      return true;\n    }\n    free(__ptr);\n  }" ({ "{") (expression_statement "iVar1 = strcmp(*(char **)(&DAT_001910d8 + param_1 * 0x70),(char *)*param_3);" (assignment_expression "iVar1 = strcmp(*(char **)(&DAT_001910d8 + param_1 * 0x70),(char *)*param_3)" (identifier "iVar1") (= "=") (call_expression "strcmp(*(char **)(&DAT_001910d8 + param_1 * 0x70),(char *)*param_3)" (identifier "strcmp") (argument_list "(*(char **)(&DAT_001910d8 + param_1 * 0x70),(char *)*param_3)" (( "(") (pointer_expression "*(char **)(&DAT_001910d8 + param_1 * 0x70)" (* "*") (cast_expression "(char **)(&DAT_001910d8 + param_1 * 0x70)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(&DAT_001910d8 + param_1 * 0x70)" (( "(") (binary_expression "&DAT_001910d8 + param_1 * 0x70" (pointer_expression "&DAT_001910d8" (& "&") (identifier "DAT_001910d8")) (+ "+") (binary_expression "param_1 * 0x70" (identifier "param_1") (* "*") (number_literal "0x70"))) () ")")))) (, ",") (cast_expression "(char *)*param_3" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n      return true;\n    }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return true;\n    }" ({ "{") (return_statement "return true;" (return "return") (true "true") (; ";")) (} "}"))) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" (identifier "free") (argument_list "(__ptr)" (( "(") (identifier "__ptr") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar4 = (&DAT_001910d0)[param_1 * 0xe];" (assignment_expression "uVar4 = (&DAT_001910d0)[param_1 * 0xe]" (identifier "uVar4") (= "=") (subscript_expression "(&DAT_001910d0)[param_1 * 0xe]" (parenthesized_expression "(&DAT_001910d0)" (( "(") (pointer_expression "&DAT_001910d0" (& "&") (identifier "DAT_001910d0")) () ")")) ([ "[") (binary_expression "param_1 * 0xe" (identifier "param_1") (* "*") (number_literal "0xe")) (] "]"))) (; ";")) (expression_statement "__format = (char *)dcgettext(0,"%s section data",5);" (assignment_expression "__format = (char *)dcgettext(0,"%s section data",5)" (identifier "__format") (= "=") (cast_expression "(char *)dcgettext(0,"%s section data",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"%s section data",5)" (identifier "dcgettext") (argument_list "(0,"%s section data",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%s section data"" (" """) (string_content "%s section data") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "snprintf(local_78,0x40,__format,uVar4);" (call_expression "snprintf(local_78,0x40,__format,uVar4)" (identifier "snprintf") (argument_list "(local_78,0x40,__format,uVar4)" (( "(") (identifier "local_78") (, ",") (number_literal "0x40") (, ",") (identifier "__format") (, ",") (identifier "uVar4") () ")"))) (; ";")) (expression_statement "uVar4 = *(undefined8 *)(param_2 + 0x10);" (assignment_expression "uVar4 = *(undefined8 *)(param_2 + 0x10)" (identifier "uVar4") (= "=") (pointer_expression "*(undefined8 *)(param_2 + 0x10)" (* "*") (cast_expression "(undefined8 *)(param_2 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x10)" (( "(") (binary_expression "param_2 + 0x10" (identifier "param_2") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "*(undefined8 *)(&DAT_00191110 + param_1 * 0x70) = 0;" (assignment_expression "*(undefined8 *)(&DAT_00191110 + param_1 * 0x70) = 0" (pointer_expression "*(undefined8 *)(&DAT_00191110 + param_1 * 0x70)" (* "*") (cast_expression "(undefined8 *)(&DAT_00191110 + param_1 * 0x70)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00191110 + param_1 * 0x70)" (( "(") (binary_expression "&DAT_00191110 + param_1 * 0x70" (pointer_expression "&DAT_00191110" (& "&") (identifier "DAT_00191110")) (+ "+") (binary_expression "param_1 * 0x70" (identifier "param_1") (* "*") (number_literal "0x70"))) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "(&DAT_001910e8)[param_1 * 0xe] = uVar4;" (assignment_expression "(&DAT_001910e8)[param_1 * 0xe] = uVar4" (subscript_expression "(&DAT_001910e8)[param_1 * 0xe]" (parenthesized_expression "(&DAT_001910e8)" (( "(") (pointer_expression "&DAT_001910e8" (& "&") (identifier "DAT_001910e8")) () ")")) ([ "[") (binary_expression "param_1 * 0xe" (identifier "param_1") (* "*") (number_literal "0xe")) (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "*(undefined8 *)(&DAT_001910d8 + param_1 * 0x70) = *param_3;" (assignment_expression "*(undefined8 *)(&DAT_001910d8 + param_1 * 0x70) = *param_3" (pointer_expression "*(undefined8 *)(&DAT_001910d8 + param_1 * 0x70)" (* "*") (cast_expression "(undefined8 *)(&DAT_001910d8 + param_1 * 0x70)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_001910d8 + param_1 * 0x70)" (( "(") (binary_expression "&DAT_001910d8 + param_1 * 0x70" (pointer_expression "&DAT_001910d8" (& "&") (identifier "DAT_001910d8")) (+ "+") (binary_expression "param_1 * 0x70" (identifier "param_1") (* "*") (number_literal "0x70"))) () ")")))) (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (expression_statement "local_a8 = (byte *)FUN_001144a0(0,param_3 + 1,param_3 + 2,*(undefined8 *)(param_2 + 0x18),1,\n                                  *(undefined8 *)(param_2 + 0x20),local_78);" (assignment_expression "local_a8 = (byte *)FUN_001144a0(0,param_3 + 1,param_3 + 2,*(undefined8 *)(param_2 + 0x18),1,\n                                  *(undefined8 *)(param_2 + 0x20),local_78)" (identifier "local_a8") (= "=") (cast_expression "(byte *)FUN_001144a0(0,param_3 + 1,param_3 + 2,*(undefined8 *)(param_2 + 0x18),1,\n                                  *(undefined8 *)(param_2 + 0x20),local_78)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001144a0(0,param_3 + 1,param_3 + 2,*(undefined8 *)(param_2 + 0x18),1,\n                                  *(undefined8 *)(param_2 + 0x20),local_78)" (identifier "FUN_001144a0") (argument_list "(0,param_3 + 1,param_3 + 2,*(undefined8 *)(param_2 + 0x18),1,\n                                  *(undefined8 *)(param_2 + 0x20),local_78)" (( "(") (number_literal "0") (, ",") (binary_expression "param_3 + 1" (identifier "param_3") (+ "+") (number_literal "1")) (, ",") (binary_expression "param_3 + 2" (identifier "param_3") (+ "+") (number_literal "2")) (, ",") (pointer_expression "*(undefined8 *)(param_2 + 0x18)" (* "*") (cast_expression "(undefined8 *)(param_2 + 0x18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x18)" (( "(") (binary_expression "param_2 + 0x18" (identifier "param_2") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (number_literal "1") (, ",") (pointer_expression "*(undefined8 *)(param_2 + 0x20)" (* "*") (cast_expression "(undefined8 *)(param_2 + 0x20)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x20)" (( "(") (binary_expression "param_2 + 0x20" (identifier "param_2") (+ "+") (number_literal "0x20")) () ")")))) (, ",") (identifier "local_78") () ")"))))) (; ";")) (expression_statement "(&DAT_001910e0)[param_1 * 0xe] = local_a8;" (assignment_expression "(&DAT_001910e0)[param_1 * 0xe] = local_a8" (subscript_expression "(&DAT_001910e0)[param_1 * 0xe]" (parenthesized_expression "(&DAT_001910e0)" (( "(") (pointer_expression "&DAT_001910e0" (& "&") (identifier "DAT_001910e0")) () ")")) ([ "[") (binary_expression "param_1 * 0xe" (identifier "param_1") (* "*") (number_literal "0xe")) (] "]")) (= "=") (identifier "local_a8")) (; ";")) (if_statement "if (local_a8 == (byte *)0x0) {\n    (&DAT_001910f0)[param_1 * 0xe] = 0;\n    return false;\n  }" (if "if") (parenthesized_expression "(local_a8 == (byte *)0x0)" (( "(") (binary_expression "local_a8 == (byte *)0x0" (identifier "local_a8") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    (&DAT_001910f0)[param_1 * 0xe] = 0;\n    return false;\n  }" ({ "{") (expression_statement "(&DAT_001910f0)[param_1 * 0xe] = 0;" (assignment_expression "(&DAT_001910f0)[param_1 * 0xe] = 0" (subscript_expression "(&DAT_001910f0)[param_1 * 0xe]" (parenthesized_expression "(&DAT_001910f0)" (( "(") (pointer_expression "&DAT_001910f0" (& "&") (identifier "DAT_001910f0")) () ")")) ([ "[") (binary_expression "param_1 * 0xe" (identifier "param_1") (* "*") (number_literal "0xe")) (] "]")) (= "=") (number_literal "0")) (; ";")) (return_statement "return false;" (return "return") (false "false") (; ";")) (} "}"))) (expression_statement "local_a0 = *(ulong *)(param_2 + 0x20);" (assignment_expression "local_a0 = *(ulong *)(param_2 + 0x20)" (identifier "local_a0") (= "=") (pointer_expression "*(ulong *)(param_2 + 0x20)" (* "*") (cast_expression "(ulong *)(param_2 + 0x20)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x20)" (( "(") (binary_expression "param_2 + 0x20" (identifier "param_2") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (if_statement "if ((*(byte *)(param_2 + 9) & 8) == 0) {\n    bVar8 = local_a0 < 0xc;\n    bVar9 = local_a0 == 0xc;\n    if (local_a0 < 0xd) goto LAB_00132a14;\n    lVar3 = 5;\n    pbVar6 = local_a8;\n    pbVar7 = &DAT_0016ac39;\n    do {\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar8 = *pbVar6 < *pbVar7;\n      bVar9 = *pbVar6 == *pbVar7;\n      pbVar6 = pbVar6 + (ulong)bVar10 * -2 + 1;\n      pbVar7 = pbVar7 + (ulong)bVar10 * -2 + 1;\n    } while (bVar9);\n    if ((!bVar8 && !bVar9) != bVar8) goto LAB_00132a14;\n    local_a0 = local_a0 - 0xc;\n    local_90 = (ulong)local_a8[0xb] +\n               ((ulong)local_a8[10] +\n               ((ulong)local_a8[9] +\n               ((ulong)local_a8[8] +\n               ((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *\n               0x100) * 0x100) * 0x100) * 0x100;\n    local_a8 = local_a8 + 0xc;\n  }\n  else {\n    if (local_a0 < (ulong)(-(uint)(DAT_0019345c == 0) & 0xc) + 0xc) {\n      uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n      uVar5 = dcgettext(0,"compressed section %s is too small to contain a compression header",5);\n      warn(uVar5,uVar4);\n      return false;\n    }\n    uVar2 = FUN_0010ffa0(local_98,local_a8,local_a0);\n    if (local_98[0] != 1) {\n      uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n      uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(uVar5,uVar4,local_98[0]);\n      return false;\n    }\n    local_a0 = local_a0 - uVar2;\n    local_a8 = local_a8 + uVar2;\n  }" (if "if") (parenthesized_expression "((*(byte *)(param_2 + 9) & 8) == 0)" (( "(") (binary_expression "(*(byte *)(param_2 + 9) & 8) == 0" (parenthesized_expression "(*(byte *)(param_2 + 9) & 8)" (( "(") (binary_expression "*(byte *)(param_2 + 9) & 8" (pointer_expression "*(byte *)(param_2 + 9)" (* "*") (cast_expression "(byte *)(param_2 + 9)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 9)" (( "(") (binary_expression "param_2 + 9" (identifier "param_2") (+ "+") (number_literal "9")) () ")")))) (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    bVar8 = local_a0 < 0xc;\n    bVar9 = local_a0 == 0xc;\n    if (local_a0 < 0xd) goto LAB_00132a14;\n    lVar3 = 5;\n    pbVar6 = local_a8;\n    pbVar7 = &DAT_0016ac39;\n    do {\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar8 = *pbVar6 < *pbVar7;\n      bVar9 = *pbVar6 == *pbVar7;\n      pbVar6 = pbVar6 + (ulong)bVar10 * -2 + 1;\n      pbVar7 = pbVar7 + (ulong)bVar10 * -2 + 1;\n    } while (bVar9);\n    if ((!bVar8 && !bVar9) != bVar8) goto LAB_00132a14;\n    local_a0 = local_a0 - 0xc;\n    local_90 = (ulong)local_a8[0xb] +\n               ((ulong)local_a8[10] +\n               ((ulong)local_a8[9] +\n               ((ulong)local_a8[8] +\n               ((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *\n               0x100) * 0x100) * 0x100) * 0x100;\n    local_a8 = local_a8 + 0xc;\n  }" ({ "{") (expression_statement "bVar8 = local_a0 < 0xc;" (assignment_expression "bVar8 = local_a0 < 0xc" (identifier "bVar8") (= "=") (binary_expression "local_a0 < 0xc" (identifier "local_a0") (< "<") (number_literal "0xc"))) (; ";")) (expression_statement "bVar9 = local_a0 == 0xc;" (assignment_expression "bVar9 = local_a0 == 0xc" (identifier "bVar9") (= "=") (binary_expression "local_a0 == 0xc" (identifier "local_a0") (== "==") (number_literal "0xc"))) (; ";")) (if_statement "if (local_a0 < 0xd) goto LAB_00132a14;" (if "if") (parenthesized_expression "(local_a0 < 0xd)" (( "(") (binary_expression "local_a0 < 0xd" (identifier "local_a0") (< "<") (number_literal "0xd")) () ")")) (goto_statement "goto LAB_00132a14;" (goto "goto") (statement_identifier "LAB_00132a14") (; ";"))) (expression_statement "lVar3 = 5;" (assignment_expression "lVar3 = 5" (identifier "lVar3") (= "=") (number_literal "5")) (; ";")) (expression_statement "pbVar6 = local_a8;" (assignment_expression "pbVar6 = local_a8" (identifier "pbVar6") (= "=") (identifier "local_a8")) (; ";")) (expression_statement "pbVar7 = &DAT_0016ac39;" (assignment_expression "pbVar7 = &DAT_0016ac39" (identifier "pbVar7") (= "=") (pointer_expression "&DAT_0016ac39" (& "&") (identifier "DAT_0016ac39"))) (; ";")) (do_statement "do {\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar8 = *pbVar6 < *pbVar7;\n      bVar9 = *pbVar6 == *pbVar7;\n      pbVar6 = pbVar6 + (ulong)bVar10 * -2 + 1;\n      pbVar7 = pbVar7 + (ulong)bVar10 * -2 + 1;\n    } while (bVar9);" (do "do") (compound_statement "{\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar8 = *pbVar6 < *pbVar7;\n      bVar9 = *pbVar6 == *pbVar7;\n      pbVar6 = pbVar6 + (ulong)bVar10 * -2 + 1;\n      pbVar7 = pbVar7 + (ulong)bVar10 * -2 + 1;\n    }" ({ "{") (if_statement "if (lVar3 == 0) break;" (if "if") (parenthesized_expression "(lVar3 == 0)" (( "(") (binary_expression "lVar3 == 0" (identifier "lVar3") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar3 = lVar3 + -1;" (assignment_expression "lVar3 = lVar3 + -1" (identifier "lVar3") (= "=") (binary_expression "lVar3 + -1" (identifier "lVar3") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar8 = *pbVar6 < *pbVar7;" (assignment_expression "bVar8 = *pbVar6 < *pbVar7" (identifier "bVar8") (= "=") (binary_expression "*pbVar6 < *pbVar7" (pointer_expression "*pbVar6" (* "*") (identifier "pbVar6")) (< "<") (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")))) (; ";")) (expression_statement "bVar9 = *pbVar6 == *pbVar7;" (assignment_expression "bVar9 = *pbVar6 == *pbVar7" (identifier "bVar9") (= "=") (binary_expression "*pbVar6 == *pbVar7" (pointer_expression "*pbVar6" (* "*") (identifier "pbVar6")) (== "==") (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")))) (; ";")) (expression_statement "pbVar6 = pbVar6 + (ulong)bVar10 * -2 + 1;" (assignment_expression "pbVar6 = pbVar6 + (ulong)bVar10 * -2 + 1" (identifier "pbVar6") (= "=") (binary_expression "pbVar6 + (ulong)bVar10 * -2 + 1" (binary_expression "pbVar6 + (ulong)bVar10 * -2" (identifier "pbVar6") (+ "+") (binary_expression "(ulong)bVar10 * -2" (cast_expression "(ulong)bVar10" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar10")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar7 = pbVar7 + (ulong)bVar10 * -2 + 1;" (assignment_expression "pbVar7 = pbVar7 + (ulong)bVar10 * -2 + 1" (identifier "pbVar7") (= "=") (binary_expression "pbVar7 + (ulong)bVar10 * -2 + 1" (binary_expression "pbVar7 + (ulong)bVar10 * -2" (identifier "pbVar7") (+ "+") (binary_expression "(ulong)bVar10 * -2" (cast_expression "(ulong)bVar10" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar10")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar9)" (( "(") (identifier "bVar9") () ")")) (; ";")) (if_statement "if ((!bVar8 && !bVar9) != bVar8) goto LAB_00132a14;" (if "if") (parenthesized_expression "((!bVar8 && !bVar9) != bVar8)" (( "(") (binary_expression "(!bVar8 && !bVar9) != bVar8" (parenthesized_expression "(!bVar8 && !bVar9)" (( "(") (binary_expression "!bVar8 && !bVar9" (unary_expression "!bVar8" (! "!") (identifier "bVar8")) (&& "&&") (unary_expression "!bVar9" (! "!") (identifier "bVar9"))) () ")")) (!= "!=") (identifier "bVar8")) () ")")) (goto_statement "goto LAB_00132a14;" (goto "goto") (statement_identifier "LAB_00132a14") (; ";"))) (expression_statement "local_a0 = local_a0 - 0xc;" (assignment_expression "local_a0 = local_a0 - 0xc" (identifier "local_a0") (= "=") (binary_expression "local_a0 - 0xc" (identifier "local_a0") (- "-") (number_literal "0xc"))) (; ";")) (expression_statement "local_90 = (ulong)local_a8[0xb] +\n               ((ulong)local_a8[10] +\n               ((ulong)local_a8[9] +\n               ((ulong)local_a8[8] +\n               ((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *\n               0x100) * 0x100) * 0x100) * 0x100;" (assignment_expression "local_90 = (ulong)local_a8[0xb] +\n               ((ulong)local_a8[10] +\n               ((ulong)local_a8[9] +\n               ((ulong)local_a8[8] +\n               ((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *\n               0x100) * 0x100) * 0x100) * 0x100" (identifier "local_90") (= "=") (binary_expression "(ulong)local_a8[0xb] +\n               ((ulong)local_a8[10] +\n               ((ulong)local_a8[9] +\n               ((ulong)local_a8[8] +\n               ((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *\n               0x100) * 0x100) * 0x100) * 0x100" (cast_expression "(ulong)local_a8[0xb]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "local_a8[0xb]" (identifier "local_a8") ([ "[") (number_literal "0xb") (] "]"))) (+ "+") (binary_expression "((ulong)local_a8[10] +\n               ((ulong)local_a8[9] +\n               ((ulong)local_a8[8] +\n               ((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *\n               0x100) * 0x100) * 0x100) * 0x100" (parenthesized_expression "((ulong)local_a8[10] +\n               ((ulong)local_a8[9] +\n               ((ulong)local_a8[8] +\n               ((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *\n               0x100) * 0x100) * 0x100)" (( "(") (binary_expression "(ulong)local_a8[10] +\n               ((ulong)local_a8[9] +\n               ((ulong)local_a8[8] +\n               ((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *\n               0x100) * 0x100) * 0x100" (cast_expression "(ulong)local_a8[10]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "local_a8[10]" (identifier "local_a8") ([ "[") (number_literal "10") (] "]"))) (+ "+") (binary_expression "((ulong)local_a8[9] +\n               ((ulong)local_a8[8] +\n               ((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *\n               0x100) * 0x100) * 0x100" (parenthesized_expression "((ulong)local_a8[9] +\n               ((ulong)local_a8[8] +\n               ((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *\n               0x100) * 0x100)" (( "(") (binary_expression "(ulong)local_a8[9] +\n               ((ulong)local_a8[8] +\n               ((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *\n               0x100) * 0x100" (cast_expression "(ulong)local_a8[9]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "local_a8[9]" (identifier "local_a8") ([ "[") (number_literal "9") (] "]"))) (+ "+") (binary_expression "((ulong)local_a8[8] +\n               ((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *\n               0x100) * 0x100" (parenthesized_expression "((ulong)local_a8[8] +\n               ((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *\n               0x100)" (( "(") (binary_expression "(ulong)local_a8[8] +\n               ((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *\n               0x100" (cast_expression "(ulong)local_a8[8]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "local_a8[8]" (identifier "local_a8") ([ "[") (number_literal "8") (] "]"))) (+ "+") (binary_expression "((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *\n               0x100" (parenthesized_expression "((ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100)" (( "(") (binary_expression "(ulong)local_a8[7] +\n               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100" (cast_expression "(ulong)local_a8[7]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "local_a8[7]" (identifier "local_a8") ([ "[") (number_literal "7") (] "]"))) (+ "+") (binary_expression "((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100" (parenthesized_expression "((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100)" (( "(") (binary_expression "(ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100" (cast_expression "(ulong)local_a8[6]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "local_a8[6]" (identifier "local_a8") ([ "[") (number_literal "6") (] "]"))) (+ "+") (binary_expression "(ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100" (cast_expression "(ulong)CONCAT11(local_a8[4],local_a8[5])" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (call_expression "CONCAT11(local_a8[4],local_a8[5])" (identifier "CONCAT11") (argument_list "(local_a8[4],local_a8[5])" (( "(") (subscript_expression "local_a8[4]" (identifier "local_a8") ([ "[") (number_literal "4") (] "]")) (, ",") (subscript_expression "local_a8[5]" (identifier "local_a8") ([ "[") (number_literal "5") (] "]")) () ")")))) (* "*") (number_literal "0x100"))) () ")")) (* "*") (number_literal "0x100"))) () ")")) (* "*") (number_literal "0x100"))) () ")")) (* "*") (number_literal "0x100"))) () ")")) (* "*") (number_literal "0x100"))) () ")")) (* "*") (number_literal "0x100")))) (; ";")) (expression_statement "local_a8 = local_a8 + 0xc;" (assignment_expression "local_a8 = local_a8 + 0xc" (identifier "local_a8") (= "=") (binary_expression "local_a8 + 0xc" (identifier "local_a8") (+ "+") (number_literal "0xc"))) (; ";")) (} "}")) (else_clause "else {\n    if (local_a0 < (ulong)(-(uint)(DAT_0019345c == 0) & 0xc) + 0xc) {\n      uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n      uVar5 = dcgettext(0,"compressed section %s is too small to contain a compression header",5);\n      warn(uVar5,uVar4);\n      return false;\n    }\n    uVar2 = FUN_0010ffa0(local_98,local_a8,local_a0);\n    if (local_98[0] != 1) {\n      uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n      uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(uVar5,uVar4,local_98[0]);\n      return false;\n    }\n    local_a0 = local_a0 - uVar2;\n    local_a8 = local_a8 + uVar2;\n  }" (else "else") (compound_statement "{\n    if (local_a0 < (ulong)(-(uint)(DAT_0019345c == 0) & 0xc) + 0xc) {\n      uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n      uVar5 = dcgettext(0,"compressed section %s is too small to contain a compression header",5);\n      warn(uVar5,uVar4);\n      return false;\n    }\n    uVar2 = FUN_0010ffa0(local_98,local_a8,local_a0);\n    if (local_98[0] != 1) {\n      uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n      uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(uVar5,uVar4,local_98[0]);\n      return false;\n    }\n    local_a0 = local_a0 - uVar2;\n    local_a8 = local_a8 + uVar2;\n  }" ({ "{") (if_statement "if (local_a0 < (ulong)(-(uint)(DAT_0019345c == 0) & 0xc) + 0xc) {\n      uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n      uVar5 = dcgettext(0,"compressed section %s is too small to contain a compression header",5);\n      warn(uVar5,uVar4);\n      return false;\n    }" (if "if") (parenthesized_expression "(local_a0 < (ulong)(-(uint)(DAT_0019345c == 0) & 0xc) + 0xc)" (( "(") (binary_expression "local_a0 < (ulong)(-(uint)(DAT_0019345c == 0) & 0xc) + 0xc" (identifier "local_a0") (< "<") (binary_expression "(ulong)(-(uint)(DAT_0019345c == 0) & 0xc) + 0xc" (call_expression "(ulong)(-(uint)(DAT_0019345c == 0) & 0xc)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(-(uint)(DAT_0019345c == 0) & 0xc)" (( "(") (binary_expression "-(uint)(DAT_0019345c == 0) & 0xc" (unary_expression "-(uint)(DAT_0019345c == 0)" (- "-") (call_expression "(uint)(DAT_0019345c == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(DAT_0019345c == 0)" (( "(") (binary_expression "DAT_0019345c == 0" (identifier "DAT_0019345c") (== "==") (number_literal "0")) () ")")))) (& "&") (number_literal "0xc")) () ")"))) (+ "+") (number_literal "0xc"))) () ")")) (compound_statement "{\n      uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n      uVar5 = dcgettext(0,"compressed section %s is too small to contain a compression header",5);\n      warn(uVar5,uVar4);\n      return false;\n    }" ({ "{") (expression_statement "uVar4 = (&DAT_001910d0)[param_1 * 0xe];" (assignment_expression "uVar4 = (&DAT_001910d0)[param_1 * 0xe]" (identifier "uVar4") (= "=") (subscript_expression "(&DAT_001910d0)[param_1 * 0xe]" (parenthesized_expression "(&DAT_001910d0)" (( "(") (pointer_expression "&DAT_001910d0" (& "&") (identifier "DAT_001910d0")) () ")")) ([ "[") (binary_expression "param_1 * 0xe" (identifier "param_1") (* "*") (number_literal "0xe")) (] "]"))) (; ";")) (expression_statement "uVar5 = dcgettext(0,"compressed section %s is too small to contain a compression header",5);" (assignment_expression "uVar5 = dcgettext(0,"compressed section %s is too small to contain a compression header",5)" (identifier "uVar5") (= "=") (call_expression "dcgettext(0,"compressed section %s is too small to contain a compression header",5)" (identifier "dcgettext") (argument_list "(0,"compressed section %s is too small to contain a compression header",5)" (( "(") (number_literal "0") (, ",") (string_literal ""compressed section %s is too small to contain a compression header"" (" """) (string_content "compressed section %s is too small to contain a compression header") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "warn(uVar5,uVar4);" (call_expression "warn(uVar5,uVar4)" (identifier "warn") (argument_list "(uVar5,uVar4)" (( "(") (identifier "uVar5") (, ",") (identifier "uVar4") () ")"))) (; ";")) (return_statement "return false;" (return "return") (false "false") (; ";")) (} "}"))) (expression_statement "uVar2 = FUN_0010ffa0(local_98,local_a8,local_a0);" (assignment_expression "uVar2 = FUN_0010ffa0(local_98,local_a8,local_a0)" (identifier "uVar2") (= "=") (call_expression "FUN_0010ffa0(local_98,local_a8,local_a0)" (identifier "FUN_0010ffa0") (argument_list "(local_98,local_a8,local_a0)" (( "(") (identifier "local_98") (, ",") (identifier "local_a8") (, ",") (identifier "local_a0") () ")")))) (; ";")) (if_statement "if (local_98[0] != 1) {\n      uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n      uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(uVar5,uVar4,local_98[0]);\n      return false;\n    }" (if "if") (parenthesized_expression "(local_98[0] != 1)" (( "(") (binary_expression "local_98[0] != 1" (subscript_expression "local_98[0]" (identifier "local_98") ([ "[") (number_literal "0") (] "]")) (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n      uVar4 = (&DAT_001910d0)[param_1 * 0xe];\n      uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);\n      warn(uVar5,uVar4,local_98[0]);\n      return false;\n    }" ({ "{") (expression_statement "uVar4 = (&DAT_001910d0)[param_1 * 0xe];" (assignment_expression "uVar4 = (&DAT_001910d0)[param_1 * 0xe]" (identifier "uVar4") (= "=") (subscript_expression "(&DAT_001910d0)[param_1 * 0xe]" (parenthesized_expression "(&DAT_001910d0)" (( "(") (pointer_expression "&DAT_001910d0" (& "&") (identifier "DAT_001910d0")) () ")")) ([ "[") (binary_expression "param_1 * 0xe" (identifier "param_1") (* "*") (number_literal "0xe")) (] "]"))) (; ";")) (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,uVar4,local_98[0]);" (call_expression "warn(uVar5,uVar4,local_98[0])" (identifier "warn") (argument_list "(uVar5,uVar4,local_98[0])" (( "(") (identifier "uVar5") (, ",") (identifier "uVar4") (, ",") (subscript_expression "local_98[0]" (identifier "local_98") ([ "[") (number_literal "0") (] "]")) () ")"))) (; ";")) (return_statement "return false;" (return "return") (false "false") (; ";")) (} "}"))) (expression_statement "local_a0 = local_a0 - uVar2;" (assignment_expression "local_a0 = local_a0 - uVar2" (identifier "local_a0") (= "=") (binary_expression "local_a0 - uVar2" (identifier "local_a0") (- "-") (identifier "uVar2"))) (; ";")) (expression_statement "local_a8 = local_a8 + uVar2;" (assignment_expression "local_a8 = local_a8 + uVar2" (identifier "local_a8") (= "=") (binary_expression "local_a8 + uVar2" (identifier "local_a8") (+ "+") (identifier "uVar2"))) (; ";")) (} "}")))) (if_statement "if (local_90 != 0) {\n    iVar1 = FUN_00111310(&local_a8,local_90,&local_a0);\n    if (iVar1 == 0) {\n      uVar4 = FUN_00113f30(param_3 + 0x10,param_3 + 0x11,param_2);\n      uVar5 = dcgettext(0,"Unable to decompress section %s\n",5);\n      error(uVar5,uVar4);\n      return false;\n    }\n    free((void *)(&DAT_001910e0)[param_1 * 0xe]);\n    (&DAT_001910e0)[param_1 * 0xe] = local_a8;\n  }" (if "if") (parenthesized_expression "(local_90 != 0)" (( "(") (binary_expression "local_90 != 0" (identifier "local_90") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar1 = FUN_00111310(&local_a8,local_90,&local_a0);\n    if (iVar1 == 0) {\n      uVar4 = FUN_00113f30(param_3 + 0x10,param_3 + 0x11,param_2);\n      uVar5 = dcgettext(0,"Unable to decompress section %s\n",5);\n      error(uVar5,uVar4);\n      return false;\n    }\n    free((void *)(&DAT_001910e0)[param_1 * 0xe]);\n    (&DAT_001910e0)[param_1 * 0xe] = local_a8;\n  }" ({ "{") (expression_statement "iVar1 = FUN_00111310(&local_a8,local_90,&local_a0);" (assignment_expression "iVar1 = FUN_00111310(&local_a8,local_90,&local_a0)" (identifier "iVar1") (= "=") (call_expression "FUN_00111310(&local_a8,local_90,&local_a0)" (identifier "FUN_00111310") (argument_list "(&local_a8,local_90,&local_a0)" (( "(") (pointer_expression "&local_a8" (& "&") (identifier "local_a8")) (, ",") (identifier "local_90") (, ",") (pointer_expression "&local_a0" (& "&") (identifier "local_a0")) () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n      uVar4 = FUN_00113f30(param_3 + 0x10,param_3 + 0x11,param_2);\n      uVar5 = dcgettext(0,"Unable to decompress section %s\n",5);\n      error(uVar5,uVar4);\n      return false;\n    }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar4 = FUN_00113f30(param_3 + 0x10,param_3 + 0x11,param_2);\n      uVar5 = dcgettext(0,"Unable to decompress section %s\n",5);\n      error(uVar5,uVar4);\n      return false;\n    }" ({ "{") (expression_statement "uVar4 = FUN_00113f30(param_3 + 0x10,param_3 + 0x11,param_2);" (assignment_expression "uVar4 = FUN_00113f30(param_3 + 0x10,param_3 + 0x11,param_2)" (identifier "uVar4") (= "=") (call_expression "FUN_00113f30(param_3 + 0x10,param_3 + 0x11,param_2)" (identifier "FUN_00113f30") (argument_list "(param_3 + 0x10,param_3 + 0x11,param_2)" (( "(") (binary_expression "param_3 + 0x10" (identifier "param_3") (+ "+") (number_literal "0x10")) (, ",") (binary_expression "param_3 + 0x11" (identifier "param_3") (+ "+") (number_literal "0x11")) (, ",") (identifier "param_2") () ")")))) (; ";")) (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,uVar4);" (call_expression "error(uVar5,uVar4)" (identifier "error") (argument_list "(uVar5,uVar4)" (( "(") (identifier "uVar5") (, ",") (identifier "uVar4") () ")"))) (; ";")) (return_statement "return false;" (return "return") (false "false") (; ";")) (} "}"))) (expression_statement "free((void *)(&DAT_001910e0)[param_1 * 0xe]);" (call_expression "free((void *)(&DAT_001910e0)[param_1 * 0xe])" (identifier "free") (argument_list "((void *)(&DAT_001910e0)[param_1 * 0xe])" (( "(") (cast_expression "(void *)(&DAT_001910e0)[param_1 * 0xe]" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "(&DAT_001910e0)[param_1 * 0xe]" (parenthesized_expression "(&DAT_001910e0)" (( "(") (pointer_expression "&DAT_001910e0" (& "&") (identifier "DAT_001910e0")) () ")")) ([ "[") (binary_expression "param_1 * 0xe" (identifier "param_1") (* "*") (number_literal "0xe")) (] "]"))) () ")"))) (; ";")) (expression_statement "(&DAT_001910e0)[param_1 * 0xe] = local_a8;" (assignment_expression "(&DAT_001910e0)[param_1 * 0xe] = local_a8" (subscript_expression "(&DAT_001910e0)[param_1 * 0xe]" (parenthesized_expression "(&DAT_001910e0)" (( "(") (pointer_expression "&DAT_001910e0" (& "&") (identifier "DAT_001910e0")) () ")")) ([ "[") (binary_expression "param_1 * 0xe" (identifier "param_1") (* "*") (number_literal "0xe")) (] "]")) (= "=") (identifier "local_a8")) (; ";")) (} "}"))) (labeled_statement "LAB_00132a14:\n  lVar3 = param_1 * 0x70;" (statement_identifier "LAB_00132a14") (: ":") (expression_statement "lVar3 = param_1 * 0x70;" (assignment_expression "lVar3 = param_1 * 0x70" (identifier "lVar3") (= "=") (binary_expression "param_1 * 0x70" (identifier "param_1") (* "*") (number_literal "0x70"))) (; ";"))) (expression_statement "(&DAT_001910f0)[param_1 * 0xe] = local_a0;" (assignment_expression "(&DAT_001910f0)[param_1 * 0xe] = local_a0" (subscript_expression "(&DAT_001910f0)[param_1 * 0xe]" (parenthesized_expression "(&DAT_001910f0)" (( "(") (pointer_expression "&DAT_001910f0" (& "&") (identifier "DAT_001910f0")) () ")")) ([ "[") (binary_expression "param_1 * 0xe" (identifier "param_1") (* "*") (number_literal "0xe")) (] "]")) (= "=") (identifier "local_a0")) (; ";")) (if_statement "if ((&DAT_001910e0)[param_1 * 0xe] == 0) {\n    return false;\n  }" (if "if") (parenthesized_expression "((&DAT_001910e0)[param_1 * 0xe] == 0)" (( "(") (binary_expression "(&DAT_001910e0)[param_1 * 0xe] == 0" (subscript_expression "(&DAT_001910e0)[param_1 * 0xe]" (parenthesized_expression "(&DAT_001910e0)" (( "(") (pointer_expression "&DAT_001910e0" (& "&") (identifier "DAT_001910e0")) () ")")) ([ "[") (binary_expression "param_1 * 0xe" (identifier "param_1") (* "*") (number_literal "0xe")) (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return false;\n  }" ({ "{") (return_statement "return false;" (return "return") (false "false") (; ";")) (} "}"))) (if_statement "if (*(int *)(&DAT_00191128 + lVar3) != 0) {\n    iVar1 = FUN_00130cd0(param_3,param_2,(&DAT_001910e0)[param_1 * 0xe],local_a0,\n                         &DAT_00191100 + lVar3,&DAT_00191108 + lVar3);\n    return iVar1 != 0;\n  }" (if "if") (parenthesized_expression "(*(int *)(&DAT_00191128 + lVar3) != 0)" (( "(") (binary_expression "*(int *)(&DAT_00191128 + lVar3) != 0" (pointer_expression "*(int *)(&DAT_00191128 + lVar3)" (* "*") (cast_expression "(int *)(&DAT_00191128 + lVar3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00191128 + lVar3)" (( "(") (binary_expression "&DAT_00191128 + lVar3" (pointer_expression "&DAT_00191128" (& "&") (identifier "DAT_00191128")) (+ "+") (identifier "lVar3")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar1 = FUN_00130cd0(param_3,param_2,(&DAT_001910e0)[param_1 * 0xe],local_a0,\n                         &DAT_00191100 + lVar3,&DAT_00191108 + lVar3);\n    return iVar1 != 0;\n  }" ({ "{") (expression_statement "iVar1 = FUN_00130cd0(param_3,param_2,(&DAT_001910e0)[param_1 * 0xe],local_a0,\n                         &DAT_00191100 + lVar3,&DAT_00191108 + lVar3);" (assignment_expression "iVar1 = FUN_00130cd0(param_3,param_2,(&DAT_001910e0)[param_1 * 0xe],local_a0,\n                         &DAT_00191100 + lVar3,&DAT_00191108 + lVar3)" (identifier "iVar1") (= "=") (call_expression "FUN_00130cd0(param_3,param_2,(&DAT_001910e0)[param_1 * 0xe],local_a0,\n                         &DAT_00191100 + lVar3,&DAT_00191108 + lVar3)" (identifier "FUN_00130cd0") (argument_list "(param_3,param_2,(&DAT_001910e0)[param_1 * 0xe],local_a0,\n                         &DAT_00191100 + lVar3,&DAT_00191108 + lVar3)" (( "(") (identifier "param_3") (, ",") (identifier "param_2") (, ",") (subscript_expression "(&DAT_001910e0)[param_1 * 0xe]" (parenthesized_expression "(&DAT_001910e0)" (( "(") (pointer_expression "&DAT_001910e0" (& "&") (identifier "DAT_001910e0")) () ")")) ([ "[") (binary_expression "param_1 * 0xe" (identifier "param_1") (* "*") (number_literal "0xe")) (] "]")) (, ",") (identifier "local_a0") (, ",") (binary_expression "&DAT_00191100 + lVar3" (pointer_expression "&DAT_00191100" (& "&") (identifier "DAT_00191100")) (+ "+") (identifier "lVar3")) (, ",") (binary_expression "&DAT_00191108 + lVar3" (pointer_expression "&DAT_00191108" (& "&") (identifier "DAT_00191108")) (+ "+") (identifier "lVar3")) () ")")))) (; ";")) (return_statement "return iVar1 != 0;" (return "return") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "*(undefined8 *)(&DAT_00191100 + lVar3) = 0;" (assignment_expression "*(undefined8 *)(&DAT_00191100 + lVar3) = 0" (pointer_expression "*(undefined8 *)(&DAT_00191100 + lVar3)" (* "*") (cast_expression "(undefined8 *)(&DAT_00191100 + lVar3)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00191100 + lVar3)" (( "(") (binary_expression "&DAT_00191100 + lVar3" (pointer_expression "&DAT_00191100" (& "&") (identifier "DAT_00191100")) (+ "+") (identifier "lVar3")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined8 *)(&DAT_00191108 + lVar3) = 0;" (assignment_expression "*(undefined8 *)(&DAT_00191108 + lVar3) = 0" (pointer_expression "*(undefined8 *)(&DAT_00191108 + lVar3)" (* "*") (cast_expression "(undefined8 *)(&DAT_00191108 + lVar3)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00191108 + lVar3)" (( "(") (binary_expression "&DAT_00191108 + lVar3" (pointer_expression "&DAT_00191108" (& "&") (identifier "DAT_00191108")) (+ "+") (identifier "lVar3")) () ")")))) (= "=") (number_literal "0")) (; ";")) (return_statement "return true;" (return "return") (true "true") (; ";")) (} "}")))

type_1
function_1(type_2 debug,type_3 *sec,void *data)

{
  void *var_2;
  type_4 uVar1;
  type_5 bVar2;
  int var_4;
  type_6 var_19;
  type_1 var_21;
  char *pcVar6;
  long var_11;
  char *message;
  type_7 *filedata;
  type_8 *var_12;
  type_8 *var_13;
  type_9 var_1;
  bool var_14;
  bool bVar12;
  type_8 bVar13;
  type_10 *var_9;
  type_11 var_10;
  type_12 chdr;
  char buf [64];
  
  bVar13 = 0;
  var_1 = (type_9)debug;
  var_2 = (void *)(&DAT_001910e0)[var_1 * 0xe];
  if (var_2 != (void *)0x0) {
                    /* WARNING: Load size is inaccurate */
    var_4 = var_3(*(char **)(&DAT_001910d8 + var_1 * 0x70),*data);
    if (var_4 == 0) {
      return 1;
    }
    var_5(var_2);
  }
  uVar1 = (&DAT_001910d0)[var_1 * 0xe];
  pcVar6 = (char *)var_6(0,"%s section data",5);
  var_7(buf,0x40,pcVar6,uVar1);
  bVar2 = sec->sh_addr;
  *(type_4 *)(&DAT_00191110 + var_1 * 0x70) = 0;
  (&DAT_001910e8)[var_1 * 0xe] = bVar2;
                    /* WARNING: Load size is inaccurate */
  *(type_4 *)(&DAT_001910d8 + var_1 * 0x70) = *data;
  var_9 = (type_10 *)var_8((void *)0x0,(type_7 *)((long)data + 8),(long)data + 0x10,
                            sec->sh_offset,1,(char *)sec->sh_size,(type_7 *)buf);
  (&DAT_001910e0)[var_1 * 0xe] = var_9;
  if (var_9 == (type_8 *)0x0) {
    (&DAT_001910f0)[var_1 * 0xe] = 0;
    return 0;
  }
  var_10 = sec->sh_size;
  if ((sec->sh_flags & 0x800) == 0) {
    var_14 = var_10 < 0xc;
    bVar12 = var_10 == 0xc;
    if (var_10 < 0xd) goto LAB_00132a14;
    var_11 = 5;
    var_12 = var_9;
    var_13 = &DAT_0016ac39;
    do {
      if (var_11 == 0) break;
      var_11 = var_11 + -1;
      var_14 = *var_12 < *var_13;
      bVar12 = *var_12 == *var_13;
      var_12 = var_12 + (type_9)bVar13 * -2 + 1;
      var_13 = var_13 + (type_9)bVar13 * -2 + 1;
    } while (bVar12);
    if ((!var_14 && !bVar12) != var_14) goto LAB_00132a14;
    var_10 = var_10 - 0xc;
    chdr.ch_size = (type_9)var_9[0xb] +
                   ((type_9)var_9[10] +
                   ((type_9)var_9[9] +
                   ((type_9)var_9[8] +
                   ((type_9)var_9[7] +
                   ((type_9)var_9[6] + (type_9)var_15(var_9[4],var_9[5]) * 0x100) * 0x100) * 0x100)
                   * 0x100) * 0x100) * 0x100;
    var_9 = var_9 + 0xc;
  }
  else {
    if (var_10 < (type_9)(-(type_6)(var_16 == 0) & 0xc) + 0xc) {
      uVar1 = (&DAT_001910d0)[var_1 * 0xe];
      pcVar6 = (char *)var_6(0,
                                 "compressed section %s is too small to contain a compression header"
                                 ,5);
      var_17(pcVar6,uVar1);
      return 0;
    }
    var_19 = var_18(&chdr,var_9,var_10);
    if (chdr.ch_type != 1) {
      uVar1 = (&DAT_001910d0)[var_1 * 0xe];
      pcVar6 = (char *)var_6(0,"section \'%s\' has unsupported compress type: %d\n",5);
      var_17(pcVar6,uVar1,(type_9)chdr.ch_type);
      return 0;
    }
    var_10 = var_10 - var_19;
    var_9 = var_9 + var_19;
  }
  if (chdr.ch_size != 0) {
    var_21 = var_20(&var_9,chdr.ch_size,&var_10);
    if (var_21 == 0) {
      pcVar6 = var_22
                         ((type_7 *)((long)data + 0x80),(type_3 *)((long)data + 0x88),
                          (type_7 *)sec);
      message = (char *)var_6(0,"Unable to decompress section %s\n",5);
      var_23(message,pcVar6);
      return 0;
    }
    var_5((void *)(&DAT_001910e0)[var_1 * 0xe]);
    (&DAT_001910e0)[var_1 * 0xe] = var_9;
  }
LAB_00132a14:
  var_11 = var_1 * 0x70;
  (&DAT_001910f0)[var_1 * 0xe] = var_10;
  if ((type_10 *)(&DAT_001910e0)[var_1 * 0xe] == (type_10 *)0x0) {
    return 0;
  }
  if (*(int *)(&DAT_00191128 + var_11) != 0) {
    var_21 = var_24((type_7 *)data,sec,(type_10 *)(&DAT_001910e0)[var_1 * 0xe],var_10,
                              (void **)(&DAT_00191100 + var_11),(type_9 *)(&DAT_00191108 + var_11));
    return (type_6)(var_21 != 0);
  }
  *(type_4 *)(&DAT_00191100 + var_11) = 0;
  *(type_4 *)(&DAT_00191108 + var_11) = 0;
  return 1;
}


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

bool MASKED(ulong param_1,long param_2,undefined8 *param_3)

{
  void *__ptr;
  int iVar1;
  uint uVar2;
  char *__format;
  long lVar3;
  undefined8 uVar4;
  undefined8 uVar5;
  byte *pbVar6;
  byte *pbVar7;
  bool bVar8;
  bool bVar9;
  byte bVar10;
  byte *local_a8;
  ulong local_a0;
  int local_98 [2];
  long local_90;
  char local_78 [72];
  
  bVar10 = 0;
  param_1 = param_1 & 0xffffffff;
  __ptr = (void *)(&DAT_001910e0)[param_1 * 0xe];
  if (__ptr != (void *)0x0) {
    iVar1 = strcmp(*(char **)(&DAT_001910d8 + param_1 * 0x70),(char *)*param_3);
    if (iVar1 == 0) {
      return true;
    }
    free(__ptr);
  }
  uVar4 = (&DAT_001910d0)[param_1 * 0xe];
  __format = (char *)dcgettext(0,"%s section data",5);
  snprintf(local_78,0x40,__format,uVar4);
  uVar4 = *(undefined8 *)(param_2 + 0x10);
  *(undefined8 *)(&DAT_00191110 + param_1 * 0x70) = 0;
  (&DAT_001910e8)[param_1 * 0xe] = uVar4;
  *(undefined8 *)(&DAT_001910d8 + param_1 * 0x70) = *param_3;
  local_a8 = (byte *)FUN_001144a0(0,param_3 + 1,param_3 + 2,*(undefined8 *)(param_2 + 0x18),1,
                                  *(undefined8 *)(param_2 + 0x20),local_78);
  (&DAT_001910e0)[param_1 * 0xe] = local_a8;
  if (local_a8 == (byte *)0x0) {
    (&DAT_001910f0)[param_1 * 0xe] = 0;
    return false;
  }
  local_a0 = *(ulong *)(param_2 + 0x20);
  if ((*(byte *)(param_2 + 9) & 8) == 0) {
    bVar8 = local_a0 < 0xc;
    bVar9 = local_a0 == 0xc;
    if (local_a0 < 0xd) goto LAB_00132a14;
    lVar3 = 5;
    pbVar6 = local_a8;
    pbVar7 = &DAT_0016ac39;
    do {
      if (lVar3 == 0) break;
      lVar3 = lVar3 + -1;
      bVar8 = *pbVar6 < *pbVar7;
      bVar9 = *pbVar6 == *pbVar7;
      pbVar6 = pbVar6 + (ulong)bVar10 * -2 + 1;
      pbVar7 = pbVar7 + (ulong)bVar10 * -2 + 1;
    } while (bVar9);
    if ((!bVar8 && !bVar9) != bVar8) goto LAB_00132a14;
    local_a0 = local_a0 - 0xc;
    local_90 = (ulong)local_a8[0xb] +
               ((ulong)local_a8[10] +
               ((ulong)local_a8[9] +
               ((ulong)local_a8[8] +
               ((ulong)local_a8[7] +
               ((ulong)local_a8[6] + (ulong)CONCAT11(local_a8[4],local_a8[5]) * 0x100) * 0x100) *
               0x100) * 0x100) * 0x100) * 0x100;
    local_a8 = local_a8 + 0xc;
  }
  else {
    if (local_a0 < (ulong)(-(uint)(DAT_0019345c == 0) & 0xc) + 0xc) {
      uVar4 = (&DAT_001910d0)[param_1 * 0xe];
      uVar5 = dcgettext(0,"compressed section %s is too small to contain a compression header",5);
      warn(uVar5,uVar4);
      return false;
    }
    uVar2 = FUN_0010ffa0(local_98,local_a8,local_a0);
    if (local_98[0] != 1) {
      uVar4 = (&DAT_001910d0)[param_1 * 0xe];
      uVar5 = dcgettext(0,"section \'%s\' has unsupported compress type: %d\n",5);
      warn(uVar5,uVar4,local_98[0]);
      return false;
    }
    local_a0 = local_a0 - uVar2;
    local_a8 = local_a8 + uVar2;
  }
  if (local_90 != 0) {
    iVar1 = FUN_00111310(&local_a8,local_90,&local_a0);
    if (iVar1 == 0) {
      uVar4 = FUN_00113f30(param_3 + 0x10,param_3 + 0x11,param_2);
      uVar5 = dcgettext(0,"Unable to decompress section %s\n",5);
      error(uVar5,uVar4);
      return false;
    }
    free((void *)(&DAT_001910e0)[param_1 * 0xe]);
    (&DAT_001910e0)[param_1 * 0xe] = local_a8;
  }
LAB_00132a14:
  lVar3 = param_1 * 0x70;
  (&DAT_001910f0)[param_1 * 0xe] = local_a0;
  if ((&DAT_001910e0)[param_1 * 0xe] == 0) {
    return false;
  }
  if (*(int *)(&DAT_00191128 + lVar3) != 0) {
    iVar1 = FUN_00130cd0(param_3,param_2,(&DAT_001910e0)[param_1 * 0xe],local_a0,
                         &DAT_00191100 + lVar3,&DAT_00191108 + lVar3);
    return iVar1 != 0;
  }
  *(undefined8 *)(&DAT_00191100 + lVar3) = 0;
  *(undefined8 *)(&DAT_00191108 + lVar3) = 0;
  return true;
}

