
void compress_debug(bfd *abfd,asection *sec,void *xxx)

{
  obstack *ob;
  ulong uVar1;
  byte *pbVar2;
  long *plVar3;
  long *plVar4;
  long lVar5;
  undefined8 uVar6;
  undefined8 *puVar7;
  int iVar8;
  z_stream_s *strm;
  long lVar9;
  char *pcVar10;
  ulong uVar11;
  fragS *pfVar12;
  long lVar13;
  ulong uVar14;
  uint uVar15;
  long lVar16;
  long lVar17;
  ulong uVar18;
  byte *pbVar19;
  byte *pbVar20;
  bool bVar21;
  bool bVar22;
  fragS *local_88;
  uint local_5c;
  int avail_out;
  int out_size;
  fragS *last_newf;
  char *next_out;
  
  uVar1 = sec->size;
  if (0x1f < uVar1) {
    uVar15 = sec->flags & 0x101;
    bVar21 = uVar15 == 0;
    bVar22 = uVar15 == 1;
    if (!bVar22) {
      pbVar2 = (byte *)sec->name;
      lVar13 = 7;
      pbVar19 = pbVar2;
      pbVar20 = (byte *)".debug_";
      do {
        if (lVar13 == 0) break;
        lVar13 = lVar13 + -1;
        bVar21 = *pbVar19 < *pbVar20;
        bVar22 = *pbVar19 == *pbVar20;
        pbVar19 = pbVar19 + 1;
        pbVar20 = pbVar20 + 1;
      } while (bVar22);
      if ((!bVar21 && !bVar22) == bVar21) {
        plVar3 = (long *)sec->userdata;
        lVar13 = *plVar3;
        strm = compress_init();
        if (strm != (z_stream_s *)0x0) {
          if (flag_compress_debug == COMPRESS_DEBUG_GABI_ZLIB) {
            local_5c = bfd_get_compression_header_size(stdoutput,0);
            uVar18 = (ulong)local_5c;
          }
          else {
            local_5c = 0;
            uVar18 = 0xc;
          }
          ob = (obstack *)(lVar13 + 0x30);
          local_88 = frag_alloc(ob);
          uVar14 = *(ulong *)(lVar13 + 0x50);
          lVar9 = *(long *)(lVar13 + 0x48);
          if (uVar14 - lVar9 < uVar18) {
            local_88 = frag_alloc(ob);
            uVar14 = *(ulong *)(lVar13 + 0x50);
            lVar9 = *(long *)(lVar13 + 0x48);
            if (uVar14 - lVar9 < uVar18) {
              pcVar10 = (char *)dcngettext(0,"can\'t extend frag %lu char",
                                           "can\'t extend frag %lu chars",uVar18,5);
                    /* WARNING: Subroutine does not return */
              as_fatal(pcVar10,uVar18);
            }
          }
          pcVar10 = (char *)(lVar9 + uVar18);
          *(char **)(lVar13 + 0x48) = pcVar10;
          local_88->fr_fix = uVar18;
          last_newf = local_88;
          plVar4 = (long *)*plVar3;
          local_88->fr_type = rs_fill;
          lVar9 = *plVar4;
          if (lVar9 != 0) {
            if (*(int *)(lVar9 + 0x5c) == 1) {
              do {
                lVar16 = *(long *)(lVar9 + 0x10);
                if (lVar16 != 0) {
                  iVar8 = compress_frag(strm,(char *)(lVar9 + 0x80),(int)lVar16,&last_newf,ob);
                  if (iVar8 < 0) {
                    return;
                  }
                  lVar16 = *(long *)(lVar9 + 0x10);
                  uVar18 = uVar18 + (long)iVar8;
                }
                lVar17 = *(long *)(lVar9 + 0x20);
                lVar5 = *(long *)(lVar9 + 0x18);
                if (lVar17 < 0) {
                    /* WARNING: Subroutine does not return */
                  as_abort("../../gas/write.c",0x5e0,"compress_debug");
                }
                if ((lVar5 != 0) && (lVar17 != 0)) {
                  do {
                    iVar8 = compress_frag(strm,(char *)(lVar9 + 0x80) + lVar16,(int)lVar5,&last_newf
                                          ,ob);
                    if (iVar8 < 0) {
                      return;
                    }
                    uVar18 = uVar18 + (long)iVar8;
                    lVar17 = lVar17 + -1;
                  } while (lVar17 != 0);
                }
                lVar9 = *(long *)(lVar9 + 0x38);
                if (lVar9 == 0) {
                  pcVar10 = *(char **)(lVar13 + 0x48);
                  uVar14 = *(ulong *)(lVar13 + 0x50);
                  goto LAB_0012dd51;
                }
              } while (*(int *)(lVar9 + 0x5c) == 1);
            }
                    /* WARNING: Subroutine does not return */
            as_abort("../../gas/write.c",0x5d4,"compress_debug");
          }
LAB_0012dd51:
          while( true ) {
            avail_out = (int)uVar14 - (int)pcVar10;
            if (avail_out < 1) {
              if (*(char **)(lVar13 + 0x40) == pcVar10) {
                *(byte *)(lVar13 + 0x80) = *(byte *)(lVar13 + 0x80) | 2;
              }
              uVar11 = (ulong)(pcVar10 + *(ulong *)(lVar13 + 0x60)) & ~*(ulong *)(lVar13 + 0x60);
              *(ulong *)(lVar13 + 0x48) = uVar11;
              if (uVar14 - *(long *)(lVar13 + 0x38) < uVar11 - *(long *)(lVar13 + 0x38)) {
                *(ulong *)(lVar13 + 0x48) = uVar14;
                uVar11 = uVar14;
              }
              *(ulong *)(lVar13 + 0x40) = uVar11;
              pfVar12 = frag_alloc(ob);
              uVar6 = *(undefined8 *)(lVar13 + 0x50);
              pfVar12->fr_type = rs_fill;
              last_newf->fr_next = pfVar12;
              pcVar10 = *(char **)(lVar13 + 0x48);
              avail_out = (int)uVar6 - (int)pcVar10;
              last_newf = pfVar12;
              if (avail_out < 1) {
                pcVar10 = (char *)dcgettext(0,"can\'t extend frag",5);
                    /* WARNING: Subroutine does not return */
                as_fatal(pcVar10);
              }
            }
            *(char **)(lVar13 + 0x48) = pcVar10 + avail_out;
            next_out = pcVar10;
            iVar8 = compress_finish(strm,&next_out,&avail_out,&out_size);
            if (iVar8 < 0) {
              return;
            }
            uVar18 = uVar18 + (long)out_size;
            last_newf->fr_fix = last_newf->fr_fix + (long)out_size;
            if (0 < avail_out) {
              *(long *)(lVar13 + 0x48) = *(long *)(lVar13 + 0x48) + (long)-avail_out;
            }
            if (iVar8 == 0) break;
            pcVar10 = *(char **)(lVar13 + 0x48);
            uVar14 = *(ulong *)(lVar13 + 0x50);
          }
          if (uVar18 < uVar1) {
            puVar7 = (undefined8 *)*plVar3;
            *puVar7 = local_88;
            puVar7[1] = last_newf;
            bfd_update_compression_header(abfd,local_88->fr_literal,sec);
            iVar8 = bfd_set_section_size(abfd,sec,uVar18);
            if (iVar8 == 0) {
                    /* WARNING: Subroutine does not return */
              as_abort("../../gas/write.c",0x622,"compress_debug");
            }
            if (local_5c == 0) {
              pcVar10 = (char *)concat(&DAT_0014ff08,pbVar2 + 1,0);
              sec->name = pcVar10;
            }
          }
        }
      }
    }
  }
  return;
}



void FUN_0012dae0(undefined8 param_1,undefined8 *param_2)

{
  long lVar1;
  ulong uVar2;
  byte *pbVar3;
  long *plVar4;
  long *plVar5;
  int iVar6;
  long lVar7;
  long lVar8;
  ulong uVar9;
  long lVar10;
  undefined8 uVar11;
  long lVar12;
  ulong uVar13;
  long lVar14;
  ulong uVar15;
  byte *pbVar16;
  byte *pbVar17;
  bool bVar18;
  bool bVar19;
  long local_88;
  uint local_5c;
  int local_50;
  int local_4c;
  long local_48;
  long local_40 [2];
  
  uVar2 = param_2[7];
  if (0x1f < uVar2) {
    bVar18 = (*(uint *)(param_2 + 4) & 0x101) == 0;
    bVar19 = (*(uint *)(param_2 + 4) & 0x101) == 1;
    if (!bVar19) {
      pbVar3 = (byte *)*param_2;
      lVar12 = 7;
      pbVar16 = pbVar3;
      pbVar17 = &DAT_0014ff00;
      do {
        if (lVar12 == 0) break;
        lVar12 = lVar12 + -1;
        bVar18 = *pbVar16 < *pbVar17;
        bVar19 = *pbVar16 == *pbVar17;
        pbVar16 = pbVar16 + 1;
        pbVar17 = pbVar17 + 1;
      } while (bVar19);
      if ((!bVar18 && !bVar19) == bVar18) {
        plVar4 = (long *)param_2[0x15];
        lVar12 = *plVar4;
        lVar7 = FUN_0010c160();
        if (lVar7 != 0) {
          if (DAT_001e4554 == 5) {
            local_5c = bfd_get_compression_header_size(DAT_001e4750,0);
            uVar15 = (ulong)local_5c;
          }
          else {
            local_5c = 0;
            uVar15 = 0xc;
          }
          lVar1 = lVar12 + 0x30;
          local_88 = FUN_00116bb0(lVar1);
          uVar13 = *(ulong *)(lVar12 + 0x50);
          lVar8 = *(long *)(lVar12 + 0x48);
          if (uVar13 - lVar8 < uVar15) {
            local_88 = FUN_00116bb0(lVar1);
            uVar13 = *(ulong *)(lVar12 + 0x50);
            lVar8 = *(long *)(lVar12 + 0x48);
            if (uVar13 - lVar8 < uVar15) {
              uVar11 = dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",
                                  uVar15,5);
                    /* WARNING: Subroutine does not return */
              FUN_0011dc10(uVar11,uVar15);
            }
          }
          lVar8 = lVar8 + uVar15;
          *(long *)(lVar12 + 0x48) = lVar8;
          *(ulong *)(local_88 + 0x10) = uVar15;
          local_48 = local_88;
          plVar5 = (long *)*plVar4;
          *(undefined4 *)(local_88 + 0x5c) = 1;
          lVar10 = *plVar5;
          if (lVar10 != 0) {
            if (*(int *)(lVar10 + 0x5c) == 1) {
              do {
                lVar8 = *(long *)(lVar10 + 0x10);
                if (lVar8 != 0) {
                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);
                  if (iVar6 < 0) {
                    return;
                  }
                  lVar8 = *(long *)(lVar10 + 0x10);
                  uVar15 = uVar15 + (long)iVar6;
                }
                lVar14 = *(long *)(lVar10 + 0x20);
                uVar13 = *(ulong *)(lVar10 + 0x18);
                if (lVar14 < 0) {
                    /* WARNING: Subroutine does not return */
                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");
                }
                if ((uVar13 != 0) && (lVar14 != 0)) {
                  do {
                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,
                                         lVar1);
                    if (iVar6 < 0) {
                      return;
                    }
                    uVar15 = uVar15 + (long)iVar6;
                    lVar14 = lVar14 + -1;
                  } while (lVar14 != 0);
                }
                lVar10 = *(long *)(lVar10 + 0x38);
                if (lVar10 == 0) {
                  lVar8 = *(long *)(lVar12 + 0x48);
                  uVar13 = *(ulong *)(lVar12 + 0x50);
                  goto LAB_0012dd51;
                }
              } while (*(int *)(lVar10 + 0x5c) == 1);
            }
                    /* WARNING: Subroutine does not return */
            FUN_0011dd00("../../gas/write.c",0x5d4,"compress_debug");
          }
LAB_0012dd51:
          while( true ) {
            local_50 = (int)uVar13 - (int)lVar8;
            if (local_50 < 1) {
              if (*(long *)(lVar12 + 0x40) == lVar8) {
                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;
              }
              uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60);
              *(ulong *)(lVar12 + 0x48) = uVar9;
              if (uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)) {
                *(ulong *)(lVar12 + 0x48) = uVar13;
                uVar9 = uVar13;
              }
              *(ulong *)(lVar12 + 0x40) = uVar9;
              lVar10 = FUN_00116bb0(lVar1);
              uVar11 = *(undefined8 *)(lVar12 + 0x50);
              *(undefined4 *)(lVar10 + 0x5c) = 1;
              *(long *)(local_48 + 0x38) = lVar10;
              lVar8 = *(long *)(lVar12 + 0x48);
              local_50 = (int)uVar11 - (int)lVar8;
              local_48 = lVar10;
              if (local_50 < 1) {
                uVar11 = dcgettext(0,"can\'t extend frag",5);
                    /* WARNING: Subroutine does not return */
                FUN_0011dc10(uVar11);
              }
            }
            *(long *)(lVar12 + 0x48) = lVar8 + local_50;
            local_40[0] = lVar8;
            iVar6 = FUN_0010c220(lVar7,local_40,&local_50,&local_4c);
            if (iVar6 < 0) {
              return;
            }
            uVar15 = uVar15 + (long)local_4c;
            *(long *)(local_48 + 0x10) = *(long *)(local_48 + 0x10) + (long)local_4c;
            if (0 < local_50) {
              *(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50;
            }
            if (iVar6 == 0) break;
            lVar8 = *(long *)(lVar12 + 0x48);
            uVar13 = *(ulong *)(lVar12 + 0x50);
          }
          if (uVar15 < uVar2) {
            plVar4 = (long *)*plVar4;
            *plVar4 = local_88;
            plVar4[1] = local_48;
            bfd_update_compression_header(param_1,local_88 + 0x80,param_2);
            iVar6 = bfd_set_section_size(param_1,param_2,uVar15);
            if (iVar6 == 0) {
                    /* WARNING: Subroutine does not return */
              FUN_0011dd00("../../gas/write.c",0x622,"compress_debug");
            }
            if (local_5c == 0) {
              uVar11 = concat(&DAT_0014ff08,pbVar3 + 1,0);
              *param_2 = uVar11;
            }
          }
        }
      }
    }
  }
  return;
}


PUSH R15
MOV R8,RDI
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x88
MOV RDI,qword ptr [RSI + 0x38]
MOV qword ptr [RSP + 0x18],RDI
CMP RDI,0x1f
JBE 0x0012db34
MOV EDX,dword ptr [RSI + 0x20]
MOV RAX,RSI
AND EDX,0x101
CMP EDX,0x1
JZ 0x0012db34
MOV RSI,qword ptr [RSI]
MOV ECX,0x7
LEA RDI,[0x14ff00]
MOV qword ptr [RSP + 0x20],RSI
CMPSB.REPE RDI,RSI
SETA DL
SBB DL,0x0
TEST DL,DL
JZ 0x0012db50
ADD RSP,0x88
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV qword ptr [RSP + 0x40],RAX
MOV RAX,qword ptr [RAX + 0xa8]
MOV qword ptr [RSP + 0x48],R8
MOV qword ptr [RSP + 0x38],RAX
MOV R13,qword ptr [RAX]
CALL 0x0010c160
MOV qword ptr [RSP + 0x10],RAX
TEST RAX,RAX
JZ 0x0012db34
CMP dword ptr [0x001e4554],0x5
JZ 0x0012dd28
MOV dword ptr [RSP + 0x5c],0x0
MOV EBP,0xc
MOV EBX,0xc
LEA RAX,[R13 + 0x30]
MOV RDI,RAX
MOV qword ptr [RSP + 0x8],RAX
CALL 0x00116bb0
MOV RCX,qword ptr [R13 + 0x50]
MOV qword ptr [RSP + 0x30],RAX
MOV RAX,qword ptr [R13 + 0x48]
MOV RDX,RCX
SUB RDX,RAX
CMP RDX,RBP
JC 0x0012dcd0
MOV RSI,qword ptr [RSP + 0x30]
ADD RAX,RBP
MOV qword ptr [R13 + 0x48],RAX
MOV qword ptr [RSI + 0x10],RBX
MOV RBX,qword ptr [RSP + 0x38]
MOV qword ptr [RSP + 0x70],RSI
MOV RDX,qword ptr [RBX]
MOV dword ptr [RSI + 0x5c],0x1
MOV R14,qword ptr [RDX]
TEST R14,R14
JZ 0x0012dd51
CMP dword ptr [R14 + 0x5c],0x1
JNZ 0x0012df14
MOV qword ptr [RSP + 0x50],R13
LEA R15,[RSP + 0x70]
MOV R13,R14
JMP 0x0012dc43
MOV RBX,qword ptr [R13 + 0x20]
MOV R12,qword ptr [R13 + 0x18]
TEST RBX,RBX
JS 0x0012defc
TEST R12,R12
JZ 0x0012dc2b
TEST RBX,RBX
JNZ 0x0012dc80
MOV R13,qword ptr [R13 + 0x38]
TEST R13,R13
JZ 0x0012dd44
CMP dword ptr [R13 + 0x5c],0x1
JNZ 0x0012df14
MOV RDX,qword ptr [R13 + 0x10]
LEA R14,[R13 + 0x80]
TEST RDX,RDX
JZ 0x0012dc10
MOV R8,qword ptr [RSP + 0x8]
MOV RDI,qword ptr [RSP + 0x10]
MOV RCX,R15
MOV RSI,R14
CALL 0x0012d950
TEST EAX,EAX
JS 0x0012db34
CDQE
MOV RDX,qword ptr [R13 + 0x10]
ADD RBP,RAX
JMP 0x0012dc10
MOV qword ptr [RSP + 0x28],R13
ADD R14,RDX
MOV R13,qword ptr [RSP + 0x10]
JMP 0x0012dc9b
CDQE
ADD RBP,RAX
SUB RBX,0x1
JZ 0x0012dcc0
MOV R8,qword ptr [RSP + 0x8]
MOV RCX,R15
MOV EDX,R12D
MOV RSI,R14
MOV RDI,R13
CALL 0x0012d950
TEST EAX,EAX
JNS 0x0012dc90
JMP 0x0012db34
MOV R13,qword ptr [RSP + 0x28]
JMP 0x0012dc2b
MOV RDI,qword ptr [RSP + 0x8]
CALL 0x00116bb0
MOV RCX,qword ptr [R13 + 0x50]
MOV qword ptr [RSP + 0x30],RAX
MOV RAX,qword ptr [R13 + 0x48]
MOV RDX,RCX
SUB RDX,RAX
CMP RDX,RBP
JNC 0x0012dbc4
LEA RSI,[0x14cc79]
XOR EDI,EDI
MOV R8D,0x5
MOV RCX,RBP
LEA RDX,[0x14cc5d]
CALL 0x00108630
MOV RSI,RBP
MOV RDI,RAX
XOR EAX,EAX
CALL 0x0011dc10
MOV RDI,qword ptr [0x001e4750]
XOR ESI,ESI
CALL 0x00108580
MOV EBP,EAX
MOV RBX,RBP
MOV dword ptr [RSP + 0x5c],EBP
JMP 0x0012db97
MOV R13,qword ptr [RSP + 0x50]
MOV RAX,qword ptr [R13 + 0x48]
MOV RCX,qword ptr [R13 + 0x50]
LEA RBX,[RSP + 0x6c]
LEA R12,[RSP + 0x68]
MOV R15,qword ptr [RSP + 0x10]
LEA R14,[RSP + 0x78]
JMP 0x0012ddc7
MOV qword ptr [RSP + 0x78],RAX
ADD RAX,RDX
MOV RCX,RBX
MOV RDX,R12
MOV qword ptr [R13 + 0x48],RAX
MOV RSI,R14
MOV RDI,R15
CALL 0x0010c220
TEST EAX,EAX
JS 0x0012db34
MOVSXD RDX,dword ptr [RSP + 0x6c]
MOV RCX,qword ptr [RSP + 0x70]
ADD RBP,RDX
ADD qword ptr [RCX + 0x10],RDX
MOV EDX,dword ptr [RSP + 0x68]
TEST EDX,EDX
JLE 0x0012ddb7
NEG EDX
MOVSXD RDX,EDX
ADD qword ptr [R13 + 0x48],RDX
TEST EAX,EAX
JZ 0x0012de7d
MOV RAX,qword ptr [R13 + 0x48]
MOV RCX,qword ptr [R13 + 0x50]
MOV RSI,RCX
SUB RSI,RAX
MOVSXD RDX,ESI
MOV dword ptr [RSP + 0x68],ESI
TEST ESI,ESI
JG 0x0012dd70
CMP qword ptr [R13 + 0x40],RAX
JZ 0x0012de70
MOV RDX,qword ptr [R13 + 0x60]
MOV RDI,RCX
ADD RAX,RDX
NOT RDX
AND RAX,RDX
MOV RDX,qword ptr [R13 + 0x38]
MOV RSI,RAX
MOV qword ptr [R13 + 0x48],RAX
SUB RSI,RDX
SUB RDI,RDX
CMP RSI,RDI
JBE 0x0012de0f
MOV qword ptr [R13 + 0x48],RCX
MOV RAX,RCX
MOV qword ptr [R13 + 0x40],RAX
MOV RDI,qword ptr [RSP + 0x8]
CALL 0x00116bb0
MOV RDX,qword ptr [RSP + 0x70]
MOV RCX,qword ptr [R13 + 0x50]
MOV dword ptr [RAX + 0x5c],0x1
MOV qword ptr [RSP + 0x70],RAX
MOV qword ptr [RDX + 0x38],RAX
MOV RAX,qword ptr [R13 + 0x48]
SUB RCX,RAX
MOVSXD RDX,ECX
MOV dword ptr [RSP + 0x68],ECX
TEST ECX,ECX
JG 0x0012dd70
XOR EDI,EDI
MOV EDX,0x5
LEA RSI,[0x14feee]
CALL 0x001081c0
MOV RDI,RAX
XOR EAX,EAX
CALL 0x0011dc10
OR byte ptr [R13 + 0x80],0x2
JMP 0x0012dde2
CMP qword ptr [RSP + 0x18],RBP
JBE 0x0012db34
MOV RAX,qword ptr [RSP + 0x38]
MOV RBX,qword ptr [RSP + 0x30]
MOV R15,qword ptr [RSP + 0x40]
MOV RAX,qword ptr [RAX]
LEA RSI,[RBX + 0x80]
MOV RDX,R15
MOV qword ptr [RAX],RBX
MOV RBX,qword ptr [RSP + 0x48]
MOV qword ptr [RAX + 0x8],RCX
MOV RDI,RBX
CALL 0x00108050
MOV RDX,RBP
MOV RSI,R15
MOV RDI,RBX
CALL 0x001084d0
TEST EAX,EAX
JZ 0x0012df2c
MOV EAX,dword ptr [RSP + 0x5c]
TEST EAX,EAX
JNZ 0x0012db34
MOV RSI,qword ptr [RSP + 0x20]
XOR EDX,EDX
LEA RDI,[0x14ff08]
XOR EAX,EAX
ADD RSI,0x1
CALL 0x00108290
MOV RCX,qword ptr [RSP + 0x40]
MOV qword ptr [RCX],RAX
JMP 0x0012db34
LEA RDX,[0x150248]
MOV ESI,0x5e0
LEA RDI,[0x14fedc]
CALL 0x0011dd00
LEA RDX,[0x150248]
MOV ESI,0x5d4
LEA RDI,[0x14fedc]
CALL 0x0011dd00
LEA RDX,[0x150248]
MOV ESI,0x622
LEA RDI,[0x14fedc]
CALL 0x0011dd00
(translation_unit "void FUN_0012dae0(undefined8 param_1,undefined8 *param_2)\n\n{\n  long lVar1;\n  ulong uVar2;\n  byte *pbVar3;\n  long *plVar4;\n  long *plVar5;\n  int iVar6;\n  long lVar7;\n  long lVar8;\n  ulong uVar9;\n  long lVar10;\n  undefined8 uVar11;\n  long lVar12;\n  ulong uVar13;\n  long lVar14;\n  ulong uVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  bool bVar18;\n  bool bVar19;\n  long local_88;\n  uint local_5c;\n  int local_50;\n  int local_4c;\n  long local_48;\n  long local_40 [2];\n  \n  uVar2 = param_2[7];\n  if (0x1f < uVar2) {\n    bVar18 = (*(uint *)(param_2 + 4) & 0x101) == 0;\n    bVar19 = (*(uint *)(param_2 + 4) & 0x101) == 1;\n    if (!bVar19) {\n      pbVar3 = (byte *)*param_2;\n      lVar12 = 7;\n      pbVar16 = pbVar3;\n      pbVar17 = &DAT_0014ff00;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar18 = *pbVar16 < *pbVar17;\n        bVar19 = *pbVar16 == *pbVar17;\n        pbVar16 = pbVar16 + 1;\n        pbVar17 = pbVar17 + 1;\n      } while (bVar19);\n      if ((!bVar18 && !bVar19) == bVar18) {\n        plVar4 = (long *)param_2[0x15];\n        lVar12 = *plVar4;\n        lVar7 = FUN_0010c160();\n        if (lVar7 != 0) {\n          if (DAT_001e4554 == 5) {\n            local_5c = bfd_get_compression_header_size(DAT_001e4750,0);\n            uVar15 = (ulong)local_5c;\n          }\n          else {\n            local_5c = 0;\n            uVar15 = 0xc;\n          }\n          lVar1 = lVar12 + 0x30;\n          local_88 = FUN_00116bb0(lVar1);\n          uVar13 = *(ulong *)(lVar12 + 0x50);\n          lVar8 = *(long *)(lVar12 + 0x48);\n          if (uVar13 - lVar8 < uVar15) {\n            local_88 = FUN_00116bb0(lVar1);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n            lVar8 = *(long *)(lVar12 + 0x48);\n            if (uVar13 - lVar8 < uVar15) {\n              uVar11 = dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5);\n                    /* WARNING: Subroutine does not return */\n              FUN_0011dc10(uVar11,uVar15);\n            }\n          }\n          lVar8 = lVar8 + uVar15;\n          *(long *)(lVar12 + 0x48) = lVar8;\n          *(ulong *)(local_88 + 0x10) = uVar15;\n          local_48 = local_88;\n          plVar5 = (long *)*plVar4;\n          *(undefined4 *)(local_88 + 0x5c) = 1;\n          lVar10 = *plVar5;\n          if (lVar10 != 0) {\n            if (*(int *)(lVar10 + 0x5c) == 1) {\n              do {\n                lVar8 = *(long *)(lVar10 + 0x10);\n                if (lVar8 != 0) {\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }\n                lVar14 = *(long *)(lVar10 + 0x20);\n                uVar13 = *(ulong *)(lVar10 + 0x18);\n                if (lVar14 < 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((uVar13 != 0) && (lVar14 != 0)) {\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }\n                lVar10 = *(long *)(lVar10 + 0x38);\n                if (lVar10 == 0) {\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar10 + 0x5c) == 1);\n            }\n                    /* WARNING: Subroutine does not return */\n            FUN_0011dd00("../../gas/write.c",0x5d4,"compress_debug");\n          }\nLAB_0012dd51:\n          while( true ) {\n            local_50 = (int)uVar13 - (int)lVar8;\n            if (local_50 < 1) {\n              if (*(long *)(lVar12 + 0x40) == lVar8) {\n                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;\n              }\n              uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60);\n              *(ulong *)(lVar12 + 0x48) = uVar9;\n              if (uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)) {\n                *(ulong *)(lVar12 + 0x48) = uVar13;\n                uVar9 = uVar13;\n              }\n              *(ulong *)(lVar12 + 0x40) = uVar9;\n              lVar10 = FUN_00116bb0(lVar1);\n              uVar11 = *(undefined8 *)(lVar12 + 0x50);\n              *(undefined4 *)(lVar10 + 0x5c) = 1;\n              *(long *)(local_48 + 0x38) = lVar10;\n              lVar8 = *(long *)(lVar12 + 0x48);\n              local_50 = (int)uVar11 - (int)lVar8;\n              local_48 = lVar10;\n              if (local_50 < 1) {\n                uVar11 = dcgettext(0,"can\'t extend frag",5);\n                    /* WARNING: Subroutine does not return */\n                FUN_0011dc10(uVar11);\n              }\n            }\n            *(long *)(lVar12 + 0x48) = lVar8 + local_50;\n            local_40[0] = lVar8;\n            iVar6 = FUN_0010c220(lVar7,local_40,&local_50,&local_4c);\n            if (iVar6 < 0) {\n              return;\n            }\n            uVar15 = uVar15 + (long)local_4c;\n            *(long *)(local_48 + 0x10) = *(long *)(local_48 + 0x10) + (long)local_4c;\n            if (0 < local_50) {\n              *(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50;\n            }\n            if (iVar6 == 0) break;\n            lVar8 = *(long *)(lVar12 + 0x48);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n          }\n          if (uVar15 < uVar2) {\n            plVar4 = (long *)*plVar4;\n            *plVar4 = local_88;\n            plVar4[1] = local_48;\n            bfd_update_compression_header(param_1,local_88 + 0x80,param_2);\n            iVar6 = bfd_set_section_size(param_1,param_2,uVar15);\n            if (iVar6 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0011dd00("../../gas/write.c",0x622,"compress_debug");\n            }\n            if (local_5c == 0) {\n              uVar11 = concat(&DAT_0014ff08,pbVar3 + 1,0);\n              *param_2 = uVar11;\n            }\n          }\n        }\n      }\n    }\n  }\n  return;\n}\n\n" (function_definition "void FUN_0012dae0(undefined8 param_1,undefined8 *param_2)\n\n{\n  long lVar1;\n  ulong uVar2;\n  byte *pbVar3;\n  long *plVar4;\n  long *plVar5;\n  int iVar6;\n  long lVar7;\n  long lVar8;\n  ulong uVar9;\n  long lVar10;\n  undefined8 uVar11;\n  long lVar12;\n  ulong uVar13;\n  long lVar14;\n  ulong uVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  bool bVar18;\n  bool bVar19;\n  long local_88;\n  uint local_5c;\n  int local_50;\n  int local_4c;\n  long local_48;\n  long local_40 [2];\n  \n  uVar2 = param_2[7];\n  if (0x1f < uVar2) {\n    bVar18 = (*(uint *)(param_2 + 4) & 0x101) == 0;\n    bVar19 = (*(uint *)(param_2 + 4) & 0x101) == 1;\n    if (!bVar19) {\n      pbVar3 = (byte *)*param_2;\n      lVar12 = 7;\n      pbVar16 = pbVar3;\n      pbVar17 = &DAT_0014ff00;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar18 = *pbVar16 < *pbVar17;\n        bVar19 = *pbVar16 == *pbVar17;\n        pbVar16 = pbVar16 + 1;\n        pbVar17 = pbVar17 + 1;\n      } while (bVar19);\n      if ((!bVar18 && !bVar19) == bVar18) {\n        plVar4 = (long *)param_2[0x15];\n        lVar12 = *plVar4;\n        lVar7 = FUN_0010c160();\n        if (lVar7 != 0) {\n          if (DAT_001e4554 == 5) {\n            local_5c = bfd_get_compression_header_size(DAT_001e4750,0);\n            uVar15 = (ulong)local_5c;\n          }\n          else {\n            local_5c = 0;\n            uVar15 = 0xc;\n          }\n          lVar1 = lVar12 + 0x30;\n          local_88 = FUN_00116bb0(lVar1);\n          uVar13 = *(ulong *)(lVar12 + 0x50);\n          lVar8 = *(long *)(lVar12 + 0x48);\n          if (uVar13 - lVar8 < uVar15) {\n            local_88 = FUN_00116bb0(lVar1);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n            lVar8 = *(long *)(lVar12 + 0x48);\n            if (uVar13 - lVar8 < uVar15) {\n              uVar11 = dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5);\n                    /* WARNING: Subroutine does not return */\n              FUN_0011dc10(uVar11,uVar15);\n            }\n          }\n          lVar8 = lVar8 + uVar15;\n          *(long *)(lVar12 + 0x48) = lVar8;\n          *(ulong *)(local_88 + 0x10) = uVar15;\n          local_48 = local_88;\n          plVar5 = (long *)*plVar4;\n          *(undefined4 *)(local_88 + 0x5c) = 1;\n          lVar10 = *plVar5;\n          if (lVar10 != 0) {\n            if (*(int *)(lVar10 + 0x5c) == 1) {\n              do {\n                lVar8 = *(long *)(lVar10 + 0x10);\n                if (lVar8 != 0) {\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }\n                lVar14 = *(long *)(lVar10 + 0x20);\n                uVar13 = *(ulong *)(lVar10 + 0x18);\n                if (lVar14 < 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((uVar13 != 0) && (lVar14 != 0)) {\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }\n                lVar10 = *(long *)(lVar10 + 0x38);\n                if (lVar10 == 0) {\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar10 + 0x5c) == 1);\n            }\n                    /* WARNING: Subroutine does not return */\n            FUN_0011dd00("../../gas/write.c",0x5d4,"compress_debug");\n          }\nLAB_0012dd51:\n          while( true ) {\n            local_50 = (int)uVar13 - (int)lVar8;\n            if (local_50 < 1) {\n              if (*(long *)(lVar12 + 0x40) == lVar8) {\n                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;\n              }\n              uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60);\n              *(ulong *)(lVar12 + 0x48) = uVar9;\n              if (uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)) {\n                *(ulong *)(lVar12 + 0x48) = uVar13;\n                uVar9 = uVar13;\n              }\n              *(ulong *)(lVar12 + 0x40) = uVar9;\n              lVar10 = FUN_00116bb0(lVar1);\n              uVar11 = *(undefined8 *)(lVar12 + 0x50);\n              *(undefined4 *)(lVar10 + 0x5c) = 1;\n              *(long *)(local_48 + 0x38) = lVar10;\n              lVar8 = *(long *)(lVar12 + 0x48);\n              local_50 = (int)uVar11 - (int)lVar8;\n              local_48 = lVar10;\n              if (local_50 < 1) {\n                uVar11 = dcgettext(0,"can\'t extend frag",5);\n                    /* WARNING: Subroutine does not return */\n                FUN_0011dc10(uVar11);\n              }\n            }\n            *(long *)(lVar12 + 0x48) = lVar8 + local_50;\n            local_40[0] = lVar8;\n            iVar6 = FUN_0010c220(lVar7,local_40,&local_50,&local_4c);\n            if (iVar6 < 0) {\n              return;\n            }\n            uVar15 = uVar15 + (long)local_4c;\n            *(long *)(local_48 + 0x10) = *(long *)(local_48 + 0x10) + (long)local_4c;\n            if (0 < local_50) {\n              *(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50;\n            }\n            if (iVar6 == 0) break;\n            lVar8 = *(long *)(lVar12 + 0x48);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n          }\n          if (uVar15 < uVar2) {\n            plVar4 = (long *)*plVar4;\n            *plVar4 = local_88;\n            plVar4[1] = local_48;\n            bfd_update_compression_header(param_1,local_88 + 0x80,param_2);\n            iVar6 = bfd_set_section_size(param_1,param_2,uVar15);\n            if (iVar6 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0011dd00("../../gas/write.c",0x622,"compress_debug");\n            }\n            if (local_5c == 0) {\n              uVar11 = concat(&DAT_0014ff08,pbVar3 + 1,0);\n              *param_2 = uVar11;\n            }\n          }\n        }\n      }\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0012dae0(undefined8 param_1,undefined8 *param_2)" identifier (parameter_list "(undefined8 param_1,undefined8 *param_2)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "undefined8 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  long lVar1;\n  ulong uVar2;\n  byte *pbVar3;\n  long *plVar4;\n  long *plVar5;\n  int iVar6;\n  long lVar7;\n  long lVar8;\n  ulong uVar9;\n  long lVar10;\n  undefined8 uVar11;\n  long lVar12;\n  ulong uVar13;\n  long lVar14;\n  ulong uVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  bool bVar18;\n  bool bVar19;\n  long local_88;\n  uint local_5c;\n  int local_50;\n  int local_4c;\n  long local_48;\n  long local_40 [2];\n  \n  uVar2 = param_2[7];\n  if (0x1f < uVar2) {\n    bVar18 = (*(uint *)(param_2 + 4) & 0x101) == 0;\n    bVar19 = (*(uint *)(param_2 + 4) & 0x101) == 1;\n    if (!bVar19) {\n      pbVar3 = (byte *)*param_2;\n      lVar12 = 7;\n      pbVar16 = pbVar3;\n      pbVar17 = &DAT_0014ff00;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar18 = *pbVar16 < *pbVar17;\n        bVar19 = *pbVar16 == *pbVar17;\n        pbVar16 = pbVar16 + 1;\n        pbVar17 = pbVar17 + 1;\n      } while (bVar19);\n      if ((!bVar18 && !bVar19) == bVar18) {\n        plVar4 = (long *)param_2[0x15];\n        lVar12 = *plVar4;\n        lVar7 = FUN_0010c160();\n        if (lVar7 != 0) {\n          if (DAT_001e4554 == 5) {\n            local_5c = bfd_get_compression_header_size(DAT_001e4750,0);\n            uVar15 = (ulong)local_5c;\n          }\n          else {\n            local_5c = 0;\n            uVar15 = 0xc;\n          }\n          lVar1 = lVar12 + 0x30;\n          local_88 = FUN_00116bb0(lVar1);\n          uVar13 = *(ulong *)(lVar12 + 0x50);\n          lVar8 = *(long *)(lVar12 + 0x48);\n          if (uVar13 - lVar8 < uVar15) {\n            local_88 = FUN_00116bb0(lVar1);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n            lVar8 = *(long *)(lVar12 + 0x48);\n            if (uVar13 - lVar8 < uVar15) {\n              uVar11 = dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5);\n                    /* WARNING: Subroutine does not return */\n              FUN_0011dc10(uVar11,uVar15);\n            }\n          }\n          lVar8 = lVar8 + uVar15;\n          *(long *)(lVar12 + 0x48) = lVar8;\n          *(ulong *)(local_88 + 0x10) = uVar15;\n          local_48 = local_88;\n          plVar5 = (long *)*plVar4;\n          *(undefined4 *)(local_88 + 0x5c) = 1;\n          lVar10 = *plVar5;\n          if (lVar10 != 0) {\n            if (*(int *)(lVar10 + 0x5c) == 1) {\n              do {\n                lVar8 = *(long *)(lVar10 + 0x10);\n                if (lVar8 != 0) {\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }\n                lVar14 = *(long *)(lVar10 + 0x20);\n                uVar13 = *(ulong *)(lVar10 + 0x18);\n                if (lVar14 < 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((uVar13 != 0) && (lVar14 != 0)) {\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }\n                lVar10 = *(long *)(lVar10 + 0x38);\n                if (lVar10 == 0) {\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar10 + 0x5c) == 1);\n            }\n                    /* WARNING: Subroutine does not return */\n            FUN_0011dd00("../../gas/write.c",0x5d4,"compress_debug");\n          }\nLAB_0012dd51:\n          while( true ) {\n            local_50 = (int)uVar13 - (int)lVar8;\n            if (local_50 < 1) {\n              if (*(long *)(lVar12 + 0x40) == lVar8) {\n                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;\n              }\n              uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60);\n              *(ulong *)(lVar12 + 0x48) = uVar9;\n              if (uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)) {\n                *(ulong *)(lVar12 + 0x48) = uVar13;\n                uVar9 = uVar13;\n              }\n              *(ulong *)(lVar12 + 0x40) = uVar9;\n              lVar10 = FUN_00116bb0(lVar1);\n              uVar11 = *(undefined8 *)(lVar12 + 0x50);\n              *(undefined4 *)(lVar10 + 0x5c) = 1;\n              *(long *)(local_48 + 0x38) = lVar10;\n              lVar8 = *(long *)(lVar12 + 0x48);\n              local_50 = (int)uVar11 - (int)lVar8;\n              local_48 = lVar10;\n              if (local_50 < 1) {\n                uVar11 = dcgettext(0,"can\'t extend frag",5);\n                    /* WARNING: Subroutine does not return */\n                FUN_0011dc10(uVar11);\n              }\n            }\n            *(long *)(lVar12 + 0x48) = lVar8 + local_50;\n            local_40[0] = lVar8;\n            iVar6 = FUN_0010c220(lVar7,local_40,&local_50,&local_4c);\n            if (iVar6 < 0) {\n              return;\n            }\n            uVar15 = uVar15 + (long)local_4c;\n            *(long *)(local_48 + 0x10) = *(long *)(local_48 + 0x10) + (long)local_4c;\n            if (0 < local_50) {\n              *(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50;\n            }\n            if (iVar6 == 0) break;\n            lVar8 = *(long *)(lVar12 + 0x48);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n          }\n          if (uVar15 < uVar2) {\n            plVar4 = (long *)*plVar4;\n            *plVar4 = local_88;\n            plVar4[1] = local_48;\n            bfd_update_compression_header(param_1,local_88 + 0x80,param_2);\n            iVar6 = bfd_set_section_size(param_1,param_2,uVar15);\n            if (iVar6 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0011dd00("../../gas/write.c",0x622,"compress_debug");\n            }\n            if (local_5c == 0) {\n              uVar11 = concat(&DAT_0014ff08,pbVar3 + 1,0);\n              *param_2 = uVar11;\n            }\n          }\n        }\n      }\n    }\n  }\n  return;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar2;" type_identifier identifier ;) (declaration "byte *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "long *plVar4;" (sized_type_specifier "long" long) (pointer_declarator "*plVar4" * identifier) ;) (declaration "long *plVar5;" (sized_type_specifier "long" long) (pointer_declarator "*plVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar8;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar11;" type_identifier identifier ;) (declaration "long lVar12;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar13;" type_identifier identifier ;) (declaration "long lVar14;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar15;" type_identifier identifier ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "bool bVar18;" primitive_type identifier ;) (declaration "bool bVar19;" primitive_type identifier ;) (declaration "long local_88;" (sized_type_specifier "long" long) identifier ;) (declaration "uint local_5c;" type_identifier identifier ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "int local_4c;" primitive_type identifier ;) (declaration "long local_48;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_40 [2];" (sized_type_specifier "long" long) (array_declarator "local_40 [2]" identifier [ number_literal ]) ;) (expression_statement "uVar2 = param_2[7];" (assignment_expression "uVar2 = param_2[7]" identifier = (subscript_expression "param_2[7]" identifier [ number_literal ])) ;) (if_statement "if (0x1f < uVar2) {\n    bVar18 = (*(uint *)(param_2 + 4) & 0x101) == 0;\n    bVar19 = (*(uint *)(param_2 + 4) & 0x101) == 1;\n    if (!bVar19) {\n      pbVar3 = (byte *)*param_2;\n      lVar12 = 7;\n      pbVar16 = pbVar3;\n      pbVar17 = &DAT_0014ff00;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar18 = *pbVar16 < *pbVar17;\n        bVar19 = *pbVar16 == *pbVar17;\n        pbVar16 = pbVar16 + 1;\n        pbVar17 = pbVar17 + 1;\n      } while (bVar19);\n      if ((!bVar18 && !bVar19) == bVar18) {\n        plVar4 = (long *)param_2[0x15];\n        lVar12 = *plVar4;\n        lVar7 = FUN_0010c160();\n        if (lVar7 != 0) {\n          if (DAT_001e4554 == 5) {\n            local_5c = bfd_get_compression_header_size(DAT_001e4750,0);\n            uVar15 = (ulong)local_5c;\n          }\n          else {\n            local_5c = 0;\n            uVar15 = 0xc;\n          }\n          lVar1 = lVar12 + 0x30;\n          local_88 = FUN_00116bb0(lVar1);\n          uVar13 = *(ulong *)(lVar12 + 0x50);\n          lVar8 = *(long *)(lVar12 + 0x48);\n          if (uVar13 - lVar8 < uVar15) {\n            local_88 = FUN_00116bb0(lVar1);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n            lVar8 = *(long *)(lVar12 + 0x48);\n            if (uVar13 - lVar8 < uVar15) {\n              uVar11 = dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5);\n                    /* WARNING: Subroutine does not return */\n              FUN_0011dc10(uVar11,uVar15);\n            }\n          }\n          lVar8 = lVar8 + uVar15;\n          *(long *)(lVar12 + 0x48) = lVar8;\n          *(ulong *)(local_88 + 0x10) = uVar15;\n          local_48 = local_88;\n          plVar5 = (long *)*plVar4;\n          *(undefined4 *)(local_88 + 0x5c) = 1;\n          lVar10 = *plVar5;\n          if (lVar10 != 0) {\n            if (*(int *)(lVar10 + 0x5c) == 1) {\n              do {\n                lVar8 = *(long *)(lVar10 + 0x10);\n                if (lVar8 != 0) {\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }\n                lVar14 = *(long *)(lVar10 + 0x20);\n                uVar13 = *(ulong *)(lVar10 + 0x18);\n                if (lVar14 < 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((uVar13 != 0) && (lVar14 != 0)) {\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }\n                lVar10 = *(long *)(lVar10 + 0x38);\n                if (lVar10 == 0) {\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar10 + 0x5c) == 1);\n            }\n                    /* WARNING: Subroutine does not return */\n            FUN_0011dd00("../../gas/write.c",0x5d4,"compress_debug");\n          }\nLAB_0012dd51:\n          while( true ) {\n            local_50 = (int)uVar13 - (int)lVar8;\n            if (local_50 < 1) {\n              if (*(long *)(lVar12 + 0x40) == lVar8) {\n                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;\n              }\n              uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60);\n              *(ulong *)(lVar12 + 0x48) = uVar9;\n              if (uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)) {\n                *(ulong *)(lVar12 + 0x48) = uVar13;\n                uVar9 = uVar13;\n              }\n              *(ulong *)(lVar12 + 0x40) = uVar9;\n              lVar10 = FUN_00116bb0(lVar1);\n              uVar11 = *(undefined8 *)(lVar12 + 0x50);\n              *(undefined4 *)(lVar10 + 0x5c) = 1;\n              *(long *)(local_48 + 0x38) = lVar10;\n              lVar8 = *(long *)(lVar12 + 0x48);\n              local_50 = (int)uVar11 - (int)lVar8;\n              local_48 = lVar10;\n              if (local_50 < 1) {\n                uVar11 = dcgettext(0,"can\'t extend frag",5);\n                    /* WARNING: Subroutine does not return */\n                FUN_0011dc10(uVar11);\n              }\n            }\n            *(long *)(lVar12 + 0x48) = lVar8 + local_50;\n            local_40[0] = lVar8;\n            iVar6 = FUN_0010c220(lVar7,local_40,&local_50,&local_4c);\n            if (iVar6 < 0) {\n              return;\n            }\n            uVar15 = uVar15 + (long)local_4c;\n            *(long *)(local_48 + 0x10) = *(long *)(local_48 + 0x10) + (long)local_4c;\n            if (0 < local_50) {\n              *(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50;\n            }\n            if (iVar6 == 0) break;\n            lVar8 = *(long *)(lVar12 + 0x48);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n          }\n          if (uVar15 < uVar2) {\n            plVar4 = (long *)*plVar4;\n            *plVar4 = local_88;\n            plVar4[1] = local_48;\n            bfd_update_compression_header(param_1,local_88 + 0x80,param_2);\n            iVar6 = bfd_set_section_size(param_1,param_2,uVar15);\n            if (iVar6 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0011dd00("../../gas/write.c",0x622,"compress_debug");\n            }\n            if (local_5c == 0) {\n              uVar11 = concat(&DAT_0014ff08,pbVar3 + 1,0);\n              *param_2 = uVar11;\n            }\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "(0x1f < uVar2)" ( (binary_expression "0x1f < uVar2" number_literal < identifier) )) (compound_statement "{\n    bVar18 = (*(uint *)(param_2 + 4) & 0x101) == 0;\n    bVar19 = (*(uint *)(param_2 + 4) & 0x101) == 1;\n    if (!bVar19) {\n      pbVar3 = (byte *)*param_2;\n      lVar12 = 7;\n      pbVar16 = pbVar3;\n      pbVar17 = &DAT_0014ff00;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar18 = *pbVar16 < *pbVar17;\n        bVar19 = *pbVar16 == *pbVar17;\n        pbVar16 = pbVar16 + 1;\n        pbVar17 = pbVar17 + 1;\n      } while (bVar19);\n      if ((!bVar18 && !bVar19) == bVar18) {\n        plVar4 = (long *)param_2[0x15];\n        lVar12 = *plVar4;\n        lVar7 = FUN_0010c160();\n        if (lVar7 != 0) {\n          if (DAT_001e4554 == 5) {\n            local_5c = bfd_get_compression_header_size(DAT_001e4750,0);\n            uVar15 = (ulong)local_5c;\n          }\n          else {\n            local_5c = 0;\n            uVar15 = 0xc;\n          }\n          lVar1 = lVar12 + 0x30;\n          local_88 = FUN_00116bb0(lVar1);\n          uVar13 = *(ulong *)(lVar12 + 0x50);\n          lVar8 = *(long *)(lVar12 + 0x48);\n          if (uVar13 - lVar8 < uVar15) {\n            local_88 = FUN_00116bb0(lVar1);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n            lVar8 = *(long *)(lVar12 + 0x48);\n            if (uVar13 - lVar8 < uVar15) {\n              uVar11 = dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5);\n                    /* WARNING: Subroutine does not return */\n              FUN_0011dc10(uVar11,uVar15);\n            }\n          }\n          lVar8 = lVar8 + uVar15;\n          *(long *)(lVar12 + 0x48) = lVar8;\n          *(ulong *)(local_88 + 0x10) = uVar15;\n          local_48 = local_88;\n          plVar5 = (long *)*plVar4;\n          *(undefined4 *)(local_88 + 0x5c) = 1;\n          lVar10 = *plVar5;\n          if (lVar10 != 0) {\n            if (*(int *)(lVar10 + 0x5c) == 1) {\n              do {\n                lVar8 = *(long *)(lVar10 + 0x10);\n                if (lVar8 != 0) {\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }\n                lVar14 = *(long *)(lVar10 + 0x20);\n                uVar13 = *(ulong *)(lVar10 + 0x18);\n                if (lVar14 < 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((uVar13 != 0) && (lVar14 != 0)) {\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }\n                lVar10 = *(long *)(lVar10 + 0x38);\n                if (lVar10 == 0) {\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar10 + 0x5c) == 1);\n            }\n                    /* WARNING: Subroutine does not return */\n            FUN_0011dd00("../../gas/write.c",0x5d4,"compress_debug");\n          }\nLAB_0012dd51:\n          while( true ) {\n            local_50 = (int)uVar13 - (int)lVar8;\n            if (local_50 < 1) {\n              if (*(long *)(lVar12 + 0x40) == lVar8) {\n                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;\n              }\n              uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60);\n              *(ulong *)(lVar12 + 0x48) = uVar9;\n              if (uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)) {\n                *(ulong *)(lVar12 + 0x48) = uVar13;\n                uVar9 = uVar13;\n              }\n              *(ulong *)(lVar12 + 0x40) = uVar9;\n              lVar10 = FUN_00116bb0(lVar1);\n              uVar11 = *(undefined8 *)(lVar12 + 0x50);\n              *(undefined4 *)(lVar10 + 0x5c) = 1;\n              *(long *)(local_48 + 0x38) = lVar10;\n              lVar8 = *(long *)(lVar12 + 0x48);\n              local_50 = (int)uVar11 - (int)lVar8;\n              local_48 = lVar10;\n              if (local_50 < 1) {\n                uVar11 = dcgettext(0,"can\'t extend frag",5);\n                    /* WARNING: Subroutine does not return */\n                FUN_0011dc10(uVar11);\n              }\n            }\n            *(long *)(lVar12 + 0x48) = lVar8 + local_50;\n            local_40[0] = lVar8;\n            iVar6 = FUN_0010c220(lVar7,local_40,&local_50,&local_4c);\n            if (iVar6 < 0) {\n              return;\n            }\n            uVar15 = uVar15 + (long)local_4c;\n            *(long *)(local_48 + 0x10) = *(long *)(local_48 + 0x10) + (long)local_4c;\n            if (0 < local_50) {\n              *(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50;\n            }\n            if (iVar6 == 0) break;\n            lVar8 = *(long *)(lVar12 + 0x48);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n          }\n          if (uVar15 < uVar2) {\n            plVar4 = (long *)*plVar4;\n            *plVar4 = local_88;\n            plVar4[1] = local_48;\n            bfd_update_compression_header(param_1,local_88 + 0x80,param_2);\n            iVar6 = bfd_set_section_size(param_1,param_2,uVar15);\n            if (iVar6 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0011dd00("../../gas/write.c",0x622,"compress_debug");\n            }\n            if (local_5c == 0) {\n              uVar11 = concat(&DAT_0014ff08,pbVar3 + 1,0);\n              *param_2 = uVar11;\n            }\n          }\n        }\n      }\n    }\n  }" { (expression_statement "bVar18 = (*(uint *)(param_2 + 4) & 0x101) == 0;" (assignment_expression "bVar18 = (*(uint *)(param_2 + 4) & 0x101) == 0" identifier = (binary_expression "(*(uint *)(param_2 + 4) & 0x101) == 0" (parenthesized_expression "(*(uint *)(param_2 + 4) & 0x101)" ( (binary_expression "*(uint *)(param_2 + 4) & 0x101" (pointer_expression "*(uint *)(param_2 + 4)" * (cast_expression "(uint *)(param_2 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal)) ;) (expression_statement "bVar19 = (*(uint *)(param_2 + 4) & 0x101) == 1;" (assignment_expression "bVar19 = (*(uint *)(param_2 + 4) & 0x101) == 1" identifier = (binary_expression "(*(uint *)(param_2 + 4) & 0x101) == 1" (parenthesized_expression "(*(uint *)(param_2 + 4) & 0x101)" ( (binary_expression "*(uint *)(param_2 + 4) & 0x101" (pointer_expression "*(uint *)(param_2 + 4)" * (cast_expression "(uint *)(param_2 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal)) ;) (if_statement "if (!bVar19) {\n      pbVar3 = (byte *)*param_2;\n      lVar12 = 7;\n      pbVar16 = pbVar3;\n      pbVar17 = &DAT_0014ff00;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar18 = *pbVar16 < *pbVar17;\n        bVar19 = *pbVar16 == *pbVar17;\n        pbVar16 = pbVar16 + 1;\n        pbVar17 = pbVar17 + 1;\n      } while (bVar19);\n      if ((!bVar18 && !bVar19) == bVar18) {\n        plVar4 = (long *)param_2[0x15];\n        lVar12 = *plVar4;\n        lVar7 = FUN_0010c160();\n        if (lVar7 != 0) {\n          if (DAT_001e4554 == 5) {\n            local_5c = bfd_get_compression_header_size(DAT_001e4750,0);\n            uVar15 = (ulong)local_5c;\n          }\n          else {\n            local_5c = 0;\n            uVar15 = 0xc;\n          }\n          lVar1 = lVar12 + 0x30;\n          local_88 = FUN_00116bb0(lVar1);\n          uVar13 = *(ulong *)(lVar12 + 0x50);\n          lVar8 = *(long *)(lVar12 + 0x48);\n          if (uVar13 - lVar8 < uVar15) {\n            local_88 = FUN_00116bb0(lVar1);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n            lVar8 = *(long *)(lVar12 + 0x48);\n            if (uVar13 - lVar8 < uVar15) {\n              uVar11 = dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5);\n                    /* WARNING: Subroutine does not return */\n              FUN_0011dc10(uVar11,uVar15);\n            }\n          }\n          lVar8 = lVar8 + uVar15;\n          *(long *)(lVar12 + 0x48) = lVar8;\n          *(ulong *)(local_88 + 0x10) = uVar15;\n          local_48 = local_88;\n          plVar5 = (long *)*plVar4;\n          *(undefined4 *)(local_88 + 0x5c) = 1;\n          lVar10 = *plVar5;\n          if (lVar10 != 0) {\n            if (*(int *)(lVar10 + 0x5c) == 1) {\n              do {\n                lVar8 = *(long *)(lVar10 + 0x10);\n                if (lVar8 != 0) {\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }\n                lVar14 = *(long *)(lVar10 + 0x20);\n                uVar13 = *(ulong *)(lVar10 + 0x18);\n                if (lVar14 < 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((uVar13 != 0) && (lVar14 != 0)) {\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }\n                lVar10 = *(long *)(lVar10 + 0x38);\n                if (lVar10 == 0) {\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar10 + 0x5c) == 1);\n            }\n                    /* WARNING: Subroutine does not return */\n            FUN_0011dd00("../../gas/write.c",0x5d4,"compress_debug");\n          }\nLAB_0012dd51:\n          while( true ) {\n            local_50 = (int)uVar13 - (int)lVar8;\n            if (local_50 < 1) {\n              if (*(long *)(lVar12 + 0x40) == lVar8) {\n                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;\n              }\n              uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60);\n              *(ulong *)(lVar12 + 0x48) = uVar9;\n              if (uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)) {\n                *(ulong *)(lVar12 + 0x48) = uVar13;\n                uVar9 = uVar13;\n              }\n              *(ulong *)(lVar12 + 0x40) = uVar9;\n              lVar10 = FUN_00116bb0(lVar1);\n              uVar11 = *(undefined8 *)(lVar12 + 0x50);\n              *(undefined4 *)(lVar10 + 0x5c) = 1;\n              *(long *)(local_48 + 0x38) = lVar10;\n              lVar8 = *(long *)(lVar12 + 0x48);\n              local_50 = (int)uVar11 - (int)lVar8;\n              local_48 = lVar10;\n              if (local_50 < 1) {\n                uVar11 = dcgettext(0,"can\'t extend frag",5);\n                    /* WARNING: Subroutine does not return */\n                FUN_0011dc10(uVar11);\n              }\n            }\n            *(long *)(lVar12 + 0x48) = lVar8 + local_50;\n            local_40[0] = lVar8;\n            iVar6 = FUN_0010c220(lVar7,local_40,&local_50,&local_4c);\n            if (iVar6 < 0) {\n              return;\n            }\n            uVar15 = uVar15 + (long)local_4c;\n            *(long *)(local_48 + 0x10) = *(long *)(local_48 + 0x10) + (long)local_4c;\n            if (0 < local_50) {\n              *(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50;\n            }\n            if (iVar6 == 0) break;\n            lVar8 = *(long *)(lVar12 + 0x48);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n          }\n          if (uVar15 < uVar2) {\n            plVar4 = (long *)*plVar4;\n            *plVar4 = local_88;\n            plVar4[1] = local_48;\n            bfd_update_compression_header(param_1,local_88 + 0x80,param_2);\n            iVar6 = bfd_set_section_size(param_1,param_2,uVar15);\n            if (iVar6 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0011dd00("../../gas/write.c",0x622,"compress_debug");\n            }\n            if (local_5c == 0) {\n              uVar11 = concat(&DAT_0014ff08,pbVar3 + 1,0);\n              *param_2 = uVar11;\n            }\n          }\n        }\n      }\n    }" if (parenthesized_expression "(!bVar19)" ( (unary_expression "!bVar19" ! identifier) )) (compound_statement "{\n      pbVar3 = (byte *)*param_2;\n      lVar12 = 7;\n      pbVar16 = pbVar3;\n      pbVar17 = &DAT_0014ff00;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar18 = *pbVar16 < *pbVar17;\n        bVar19 = *pbVar16 == *pbVar17;\n        pbVar16 = pbVar16 + 1;\n        pbVar17 = pbVar17 + 1;\n      } while (bVar19);\n      if ((!bVar18 && !bVar19) == bVar18) {\n        plVar4 = (long *)param_2[0x15];\n        lVar12 = *plVar4;\n        lVar7 = FUN_0010c160();\n        if (lVar7 != 0) {\n          if (DAT_001e4554 == 5) {\n            local_5c = bfd_get_compression_header_size(DAT_001e4750,0);\n            uVar15 = (ulong)local_5c;\n          }\n          else {\n            local_5c = 0;\n            uVar15 = 0xc;\n          }\n          lVar1 = lVar12 + 0x30;\n          local_88 = FUN_00116bb0(lVar1);\n          uVar13 = *(ulong *)(lVar12 + 0x50);\n          lVar8 = *(long *)(lVar12 + 0x48);\n          if (uVar13 - lVar8 < uVar15) {\n            local_88 = FUN_00116bb0(lVar1);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n            lVar8 = *(long *)(lVar12 + 0x48);\n            if (uVar13 - lVar8 < uVar15) {\n              uVar11 = dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5);\n                    /* WARNING: Subroutine does not return */\n              FUN_0011dc10(uVar11,uVar15);\n            }\n          }\n          lVar8 = lVar8 + uVar15;\n          *(long *)(lVar12 + 0x48) = lVar8;\n          *(ulong *)(local_88 + 0x10) = uVar15;\n          local_48 = local_88;\n          plVar5 = (long *)*plVar4;\n          *(undefined4 *)(local_88 + 0x5c) = 1;\n          lVar10 = *plVar5;\n          if (lVar10 != 0) {\n            if (*(int *)(lVar10 + 0x5c) == 1) {\n              do {\n                lVar8 = *(long *)(lVar10 + 0x10);\n                if (lVar8 != 0) {\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }\n                lVar14 = *(long *)(lVar10 + 0x20);\n                uVar13 = *(ulong *)(lVar10 + 0x18);\n                if (lVar14 < 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((uVar13 != 0) && (lVar14 != 0)) {\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }\n                lVar10 = *(long *)(lVar10 + 0x38);\n                if (lVar10 == 0) {\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar10 + 0x5c) == 1);\n            }\n                    /* WARNING: Subroutine does not return */\n            FUN_0011dd00("../../gas/write.c",0x5d4,"compress_debug");\n          }\nLAB_0012dd51:\n          while( true ) {\n            local_50 = (int)uVar13 - (int)lVar8;\n            if (local_50 < 1) {\n              if (*(long *)(lVar12 + 0x40) == lVar8) {\n                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;\n              }\n              uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60);\n              *(ulong *)(lVar12 + 0x48) = uVar9;\n              if (uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)) {\n                *(ulong *)(lVar12 + 0x48) = uVar13;\n                uVar9 = uVar13;\n              }\n              *(ulong *)(lVar12 + 0x40) = uVar9;\n              lVar10 = FUN_00116bb0(lVar1);\n              uVar11 = *(undefined8 *)(lVar12 + 0x50);\n              *(undefined4 *)(lVar10 + 0x5c) = 1;\n              *(long *)(local_48 + 0x38) = lVar10;\n              lVar8 = *(long *)(lVar12 + 0x48);\n              local_50 = (int)uVar11 - (int)lVar8;\n              local_48 = lVar10;\n              if (local_50 < 1) {\n                uVar11 = dcgettext(0,"can\'t extend frag",5);\n                    /* WARNING: Subroutine does not return */\n                FUN_0011dc10(uVar11);\n              }\n            }\n            *(long *)(lVar12 + 0x48) = lVar8 + local_50;\n            local_40[0] = lVar8;\n            iVar6 = FUN_0010c220(lVar7,local_40,&local_50,&local_4c);\n            if (iVar6 < 0) {\n              return;\n            }\n            uVar15 = uVar15 + (long)local_4c;\n            *(long *)(local_48 + 0x10) = *(long *)(local_48 + 0x10) + (long)local_4c;\n            if (0 < local_50) {\n              *(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50;\n            }\n            if (iVar6 == 0) break;\n            lVar8 = *(long *)(lVar12 + 0x48);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n          }\n          if (uVar15 < uVar2) {\n            plVar4 = (long *)*plVar4;\n            *plVar4 = local_88;\n            plVar4[1] = local_48;\n            bfd_update_compression_header(param_1,local_88 + 0x80,param_2);\n            iVar6 = bfd_set_section_size(param_1,param_2,uVar15);\n            if (iVar6 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0011dd00("../../gas/write.c",0x622,"compress_debug");\n            }\n            if (local_5c == 0) {\n              uVar11 = concat(&DAT_0014ff08,pbVar3 + 1,0);\n              *param_2 = uVar11;\n            }\n          }\n        }\n      }\n    }" { (expression_statement "pbVar3 = (byte *)*param_2;" (assignment_expression "pbVar3 = (byte *)*param_2" identifier = (cast_expression "(byte *)*param_2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (expression_statement "lVar12 = 7;" (assignment_expression "lVar12 = 7" identifier = number_literal) ;) (expression_statement "pbVar16 = pbVar3;" (assignment_expression "pbVar16 = pbVar3" identifier = identifier) ;) (expression_statement "pbVar17 = &DAT_0014ff00;" (assignment_expression "pbVar17 = &DAT_0014ff00" identifier = (pointer_expression "&DAT_0014ff00" & identifier)) ;) (do_statement "do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar18 = *pbVar16 < *pbVar17;\n        bVar19 = *pbVar16 == *pbVar17;\n        pbVar16 = pbVar16 + 1;\n        pbVar17 = pbVar17 + 1;\n      } while (bVar19);" do (compound_statement "{\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar18 = *pbVar16 < *pbVar17;\n        bVar19 = *pbVar16 == *pbVar17;\n        pbVar16 = pbVar16 + 1;\n        pbVar17 = pbVar17 + 1;\n      }" { (if_statement "if (lVar12 == 0) break;" if (parenthesized_expression "(lVar12 == 0)" ( (binary_expression "lVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar12 = lVar12 + -1;" (assignment_expression "lVar12 = lVar12 + -1" identifier = (binary_expression "lVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar18 = *pbVar16 < *pbVar17;" (assignment_expression "bVar18 = *pbVar16 < *pbVar17" identifier = (binary_expression "*pbVar16 < *pbVar17" (pointer_expression "*pbVar16" * identifier) < (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "bVar19 = *pbVar16 == *pbVar17;" (assignment_expression "bVar19 = *pbVar16 == *pbVar17" identifier = (binary_expression "*pbVar16 == *pbVar17" (pointer_expression "*pbVar16" * identifier) == (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "pbVar16 = pbVar16 + 1;" (assignment_expression "pbVar16 = pbVar16 + 1" identifier = (binary_expression "pbVar16 + 1" identifier + number_literal)) ;) (expression_statement "pbVar17 = pbVar17 + 1;" (assignment_expression "pbVar17 = pbVar17 + 1" identifier = (binary_expression "pbVar17 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar19)" ( identifier )) ;) (if_statement "if ((!bVar18 && !bVar19) == bVar18) {\n        plVar4 = (long *)param_2[0x15];\n        lVar12 = *plVar4;\n        lVar7 = FUN_0010c160();\n        if (lVar7 != 0) {\n          if (DAT_001e4554 == 5) {\n            local_5c = bfd_get_compression_header_size(DAT_001e4750,0);\n            uVar15 = (ulong)local_5c;\n          }\n          else {\n            local_5c = 0;\n            uVar15 = 0xc;\n          }\n          lVar1 = lVar12 + 0x30;\n          local_88 = FUN_00116bb0(lVar1);\n          uVar13 = *(ulong *)(lVar12 + 0x50);\n          lVar8 = *(long *)(lVar12 + 0x48);\n          if (uVar13 - lVar8 < uVar15) {\n            local_88 = FUN_00116bb0(lVar1);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n            lVar8 = *(long *)(lVar12 + 0x48);\n            if (uVar13 - lVar8 < uVar15) {\n              uVar11 = dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5);\n                    /* WARNING: Subroutine does not return */\n              FUN_0011dc10(uVar11,uVar15);\n            }\n          }\n          lVar8 = lVar8 + uVar15;\n          *(long *)(lVar12 + 0x48) = lVar8;\n          *(ulong *)(local_88 + 0x10) = uVar15;\n          local_48 = local_88;\n          plVar5 = (long *)*plVar4;\n          *(undefined4 *)(local_88 + 0x5c) = 1;\n          lVar10 = *plVar5;\n          if (lVar10 != 0) {\n            if (*(int *)(lVar10 + 0x5c) == 1) {\n              do {\n                lVar8 = *(long *)(lVar10 + 0x10);\n                if (lVar8 != 0) {\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }\n                lVar14 = *(long *)(lVar10 + 0x20);\n                uVar13 = *(ulong *)(lVar10 + 0x18);\n                if (lVar14 < 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((uVar13 != 0) && (lVar14 != 0)) {\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }\n                lVar10 = *(long *)(lVar10 + 0x38);\n                if (lVar10 == 0) {\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar10 + 0x5c) == 1);\n            }\n                    /* WARNING: Subroutine does not return */\n            FUN_0011dd00("../../gas/write.c",0x5d4,"compress_debug");\n          }\nLAB_0012dd51:\n          while( true ) {\n            local_50 = (int)uVar13 - (int)lVar8;\n            if (local_50 < 1) {\n              if (*(long *)(lVar12 + 0x40) == lVar8) {\n                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;\n              }\n              uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60);\n              *(ulong *)(lVar12 + 0x48) = uVar9;\n              if (uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)) {\n                *(ulong *)(lVar12 + 0x48) = uVar13;\n                uVar9 = uVar13;\n              }\n              *(ulong *)(lVar12 + 0x40) = uVar9;\n              lVar10 = FUN_00116bb0(lVar1);\n              uVar11 = *(undefined8 *)(lVar12 + 0x50);\n              *(undefined4 *)(lVar10 + 0x5c) = 1;\n              *(long *)(local_48 + 0x38) = lVar10;\n              lVar8 = *(long *)(lVar12 + 0x48);\n              local_50 = (int)uVar11 - (int)lVar8;\n              local_48 = lVar10;\n              if (local_50 < 1) {\n                uVar11 = dcgettext(0,"can\'t extend frag",5);\n                    /* WARNING: Subroutine does not return */\n                FUN_0011dc10(uVar11);\n              }\n            }\n            *(long *)(lVar12 + 0x48) = lVar8 + local_50;\n            local_40[0] = lVar8;\n            iVar6 = FUN_0010c220(lVar7,local_40,&local_50,&local_4c);\n            if (iVar6 < 0) {\n              return;\n            }\n            uVar15 = uVar15 + (long)local_4c;\n            *(long *)(local_48 + 0x10) = *(long *)(local_48 + 0x10) + (long)local_4c;\n            if (0 < local_50) {\n              *(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50;\n            }\n            if (iVar6 == 0) break;\n            lVar8 = *(long *)(lVar12 + 0x48);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n          }\n          if (uVar15 < uVar2) {\n            plVar4 = (long *)*plVar4;\n            *plVar4 = local_88;\n            plVar4[1] = local_48;\n            bfd_update_compression_header(param_1,local_88 + 0x80,param_2);\n            iVar6 = bfd_set_section_size(param_1,param_2,uVar15);\n            if (iVar6 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0011dd00("../../gas/write.c",0x622,"compress_debug");\n            }\n            if (local_5c == 0) {\n              uVar11 = concat(&DAT_0014ff08,pbVar3 + 1,0);\n              *param_2 = uVar11;\n            }\n          }\n        }\n      }" if (parenthesized_expression "((!bVar18 && !bVar19) == bVar18)" ( (binary_expression "(!bVar18 && !bVar19) == bVar18" (parenthesized_expression "(!bVar18 && !bVar19)" ( (binary_expression "!bVar18 && !bVar19" (unary_expression "!bVar18" ! identifier) && (unary_expression "!bVar19" ! identifier)) )) == identifier) )) (compound_statement "{\n        plVar4 = (long *)param_2[0x15];\n        lVar12 = *plVar4;\n        lVar7 = FUN_0010c160();\n        if (lVar7 != 0) {\n          if (DAT_001e4554 == 5) {\n            local_5c = bfd_get_compression_header_size(DAT_001e4750,0);\n            uVar15 = (ulong)local_5c;\n          }\n          else {\n            local_5c = 0;\n            uVar15 = 0xc;\n          }\n          lVar1 = lVar12 + 0x30;\n          local_88 = FUN_00116bb0(lVar1);\n          uVar13 = *(ulong *)(lVar12 + 0x50);\n          lVar8 = *(long *)(lVar12 + 0x48);\n          if (uVar13 - lVar8 < uVar15) {\n            local_88 = FUN_00116bb0(lVar1);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n            lVar8 = *(long *)(lVar12 + 0x48);\n            if (uVar13 - lVar8 < uVar15) {\n              uVar11 = dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5);\n                    /* WARNING: Subroutine does not return */\n              FUN_0011dc10(uVar11,uVar15);\n            }\n          }\n          lVar8 = lVar8 + uVar15;\n          *(long *)(lVar12 + 0x48) = lVar8;\n          *(ulong *)(local_88 + 0x10) = uVar15;\n          local_48 = local_88;\n          plVar5 = (long *)*plVar4;\n          *(undefined4 *)(local_88 + 0x5c) = 1;\n          lVar10 = *plVar5;\n          if (lVar10 != 0) {\n            if (*(int *)(lVar10 + 0x5c) == 1) {\n              do {\n                lVar8 = *(long *)(lVar10 + 0x10);\n                if (lVar8 != 0) {\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }\n                lVar14 = *(long *)(lVar10 + 0x20);\n                uVar13 = *(ulong *)(lVar10 + 0x18);\n                if (lVar14 < 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((uVar13 != 0) && (lVar14 != 0)) {\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }\n                lVar10 = *(long *)(lVar10 + 0x38);\n                if (lVar10 == 0) {\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar10 + 0x5c) == 1);\n            }\n                    /* WARNING: Subroutine does not return */\n            FUN_0011dd00("../../gas/write.c",0x5d4,"compress_debug");\n          }\nLAB_0012dd51:\n          while( true ) {\n            local_50 = (int)uVar13 - (int)lVar8;\n            if (local_50 < 1) {\n              if (*(long *)(lVar12 + 0x40) == lVar8) {\n                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;\n              }\n              uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60);\n              *(ulong *)(lVar12 + 0x48) = uVar9;\n              if (uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)) {\n                *(ulong *)(lVar12 + 0x48) = uVar13;\n                uVar9 = uVar13;\n              }\n              *(ulong *)(lVar12 + 0x40) = uVar9;\n              lVar10 = FUN_00116bb0(lVar1);\n              uVar11 = *(undefined8 *)(lVar12 + 0x50);\n              *(undefined4 *)(lVar10 + 0x5c) = 1;\n              *(long *)(local_48 + 0x38) = lVar10;\n              lVar8 = *(long *)(lVar12 + 0x48);\n              local_50 = (int)uVar11 - (int)lVar8;\n              local_48 = lVar10;\n              if (local_50 < 1) {\n                uVar11 = dcgettext(0,"can\'t extend frag",5);\n                    /* WARNING: Subroutine does not return */\n                FUN_0011dc10(uVar11);\n              }\n            }\n            *(long *)(lVar12 + 0x48) = lVar8 + local_50;\n            local_40[0] = lVar8;\n            iVar6 = FUN_0010c220(lVar7,local_40,&local_50,&local_4c);\n            if (iVar6 < 0) {\n              return;\n            }\n            uVar15 = uVar15 + (long)local_4c;\n            *(long *)(local_48 + 0x10) = *(long *)(local_48 + 0x10) + (long)local_4c;\n            if (0 < local_50) {\n              *(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50;\n            }\n            if (iVar6 == 0) break;\n            lVar8 = *(long *)(lVar12 + 0x48);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n          }\n          if (uVar15 < uVar2) {\n            plVar4 = (long *)*plVar4;\n            *plVar4 = local_88;\n            plVar4[1] = local_48;\n            bfd_update_compression_header(param_1,local_88 + 0x80,param_2);\n            iVar6 = bfd_set_section_size(param_1,param_2,uVar15);\n            if (iVar6 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0011dd00("../../gas/write.c",0x622,"compress_debug");\n            }\n            if (local_5c == 0) {\n              uVar11 = concat(&DAT_0014ff08,pbVar3 + 1,0);\n              *param_2 = uVar11;\n            }\n          }\n        }\n      }" { (expression_statement "plVar4 = (long *)param_2[0x15];" (assignment_expression "plVar4 = (long *)param_2[0x15]" identifier = (cast_expression "(long *)param_2[0x15]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[0x15]" identifier [ number_literal ]))) ;) (expression_statement "lVar12 = *plVar4;" (assignment_expression "lVar12 = *plVar4" identifier = (pointer_expression "*plVar4" * identifier)) ;) (expression_statement "lVar7 = FUN_0010c160();" (assignment_expression "lVar7 = FUN_0010c160()" identifier = (call_expression "FUN_0010c160()" identifier (argument_list "()" ( )))) ;) (if_statement "if (lVar7 != 0) {\n          if (DAT_001e4554 == 5) {\n            local_5c = bfd_get_compression_header_size(DAT_001e4750,0);\n            uVar15 = (ulong)local_5c;\n          }\n          else {\n            local_5c = 0;\n            uVar15 = 0xc;\n          }\n          lVar1 = lVar12 + 0x30;\n          local_88 = FUN_00116bb0(lVar1);\n          uVar13 = *(ulong *)(lVar12 + 0x50);\n          lVar8 = *(long *)(lVar12 + 0x48);\n          if (uVar13 - lVar8 < uVar15) {\n            local_88 = FUN_00116bb0(lVar1);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n            lVar8 = *(long *)(lVar12 + 0x48);\n            if (uVar13 - lVar8 < uVar15) {\n              uVar11 = dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5);\n                    /* WARNING: Subroutine does not return */\n              FUN_0011dc10(uVar11,uVar15);\n            }\n          }\n          lVar8 = lVar8 + uVar15;\n          *(long *)(lVar12 + 0x48) = lVar8;\n          *(ulong *)(local_88 + 0x10) = uVar15;\n          local_48 = local_88;\n          plVar5 = (long *)*plVar4;\n          *(undefined4 *)(local_88 + 0x5c) = 1;\n          lVar10 = *plVar5;\n          if (lVar10 != 0) {\n            if (*(int *)(lVar10 + 0x5c) == 1) {\n              do {\n                lVar8 = *(long *)(lVar10 + 0x10);\n                if (lVar8 != 0) {\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }\n                lVar14 = *(long *)(lVar10 + 0x20);\n                uVar13 = *(ulong *)(lVar10 + 0x18);\n                if (lVar14 < 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((uVar13 != 0) && (lVar14 != 0)) {\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }\n                lVar10 = *(long *)(lVar10 + 0x38);\n                if (lVar10 == 0) {\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar10 + 0x5c) == 1);\n            }\n                    /* WARNING: Subroutine does not return */\n            FUN_0011dd00("../../gas/write.c",0x5d4,"compress_debug");\n          }\nLAB_0012dd51:\n          while( true ) {\n            local_50 = (int)uVar13 - (int)lVar8;\n            if (local_50 < 1) {\n              if (*(long *)(lVar12 + 0x40) == lVar8) {\n                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;\n              }\n              uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60);\n              *(ulong *)(lVar12 + 0x48) = uVar9;\n              if (uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)) {\n                *(ulong *)(lVar12 + 0x48) = uVar13;\n                uVar9 = uVar13;\n              }\n              *(ulong *)(lVar12 + 0x40) = uVar9;\n              lVar10 = FUN_00116bb0(lVar1);\n              uVar11 = *(undefined8 *)(lVar12 + 0x50);\n              *(undefined4 *)(lVar10 + 0x5c) = 1;\n              *(long *)(local_48 + 0x38) = lVar10;\n              lVar8 = *(long *)(lVar12 + 0x48);\n              local_50 = (int)uVar11 - (int)lVar8;\n              local_48 = lVar10;\n              if (local_50 < 1) {\n                uVar11 = dcgettext(0,"can\'t extend frag",5);\n                    /* WARNING: Subroutine does not return */\n                FUN_0011dc10(uVar11);\n              }\n            }\n            *(long *)(lVar12 + 0x48) = lVar8 + local_50;\n            local_40[0] = lVar8;\n            iVar6 = FUN_0010c220(lVar7,local_40,&local_50,&local_4c);\n            if (iVar6 < 0) {\n              return;\n            }\n            uVar15 = uVar15 + (long)local_4c;\n            *(long *)(local_48 + 0x10) = *(long *)(local_48 + 0x10) + (long)local_4c;\n            if (0 < local_50) {\n              *(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50;\n            }\n            if (iVar6 == 0) break;\n            lVar8 = *(long *)(lVar12 + 0x48);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n          }\n          if (uVar15 < uVar2) {\n            plVar4 = (long *)*plVar4;\n            *plVar4 = local_88;\n            plVar4[1] = local_48;\n            bfd_update_compression_header(param_1,local_88 + 0x80,param_2);\n            iVar6 = bfd_set_section_size(param_1,param_2,uVar15);\n            if (iVar6 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0011dd00("../../gas/write.c",0x622,"compress_debug");\n            }\n            if (local_5c == 0) {\n              uVar11 = concat(&DAT_0014ff08,pbVar3 + 1,0);\n              *param_2 = uVar11;\n            }\n          }\n        }" if (parenthesized_expression "(lVar7 != 0)" ( (binary_expression "lVar7 != 0" identifier != number_literal) )) (compound_statement "{\n          if (DAT_001e4554 == 5) {\n            local_5c = bfd_get_compression_header_size(DAT_001e4750,0);\n            uVar15 = (ulong)local_5c;\n          }\n          else {\n            local_5c = 0;\n            uVar15 = 0xc;\n          }\n          lVar1 = lVar12 + 0x30;\n          local_88 = FUN_00116bb0(lVar1);\n          uVar13 = *(ulong *)(lVar12 + 0x50);\n          lVar8 = *(long *)(lVar12 + 0x48);\n          if (uVar13 - lVar8 < uVar15) {\n            local_88 = FUN_00116bb0(lVar1);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n            lVar8 = *(long *)(lVar12 + 0x48);\n            if (uVar13 - lVar8 < uVar15) {\n              uVar11 = dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5);\n                    /* WARNING: Subroutine does not return */\n              FUN_0011dc10(uVar11,uVar15);\n            }\n          }\n          lVar8 = lVar8 + uVar15;\n          *(long *)(lVar12 + 0x48) = lVar8;\n          *(ulong *)(local_88 + 0x10) = uVar15;\n          local_48 = local_88;\n          plVar5 = (long *)*plVar4;\n          *(undefined4 *)(local_88 + 0x5c) = 1;\n          lVar10 = *plVar5;\n          if (lVar10 != 0) {\n            if (*(int *)(lVar10 + 0x5c) == 1) {\n              do {\n                lVar8 = *(long *)(lVar10 + 0x10);\n                if (lVar8 != 0) {\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }\n                lVar14 = *(long *)(lVar10 + 0x20);\n                uVar13 = *(ulong *)(lVar10 + 0x18);\n                if (lVar14 < 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((uVar13 != 0) && (lVar14 != 0)) {\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }\n                lVar10 = *(long *)(lVar10 + 0x38);\n                if (lVar10 == 0) {\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar10 + 0x5c) == 1);\n            }\n                    /* WARNING: Subroutine does not return */\n            FUN_0011dd00("../../gas/write.c",0x5d4,"compress_debug");\n          }\nLAB_0012dd51:\n          while( true ) {\n            local_50 = (int)uVar13 - (int)lVar8;\n            if (local_50 < 1) {\n              if (*(long *)(lVar12 + 0x40) == lVar8) {\n                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;\n              }\n              uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60);\n              *(ulong *)(lVar12 + 0x48) = uVar9;\n              if (uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)) {\n                *(ulong *)(lVar12 + 0x48) = uVar13;\n                uVar9 = uVar13;\n              }\n              *(ulong *)(lVar12 + 0x40) = uVar9;\n              lVar10 = FUN_00116bb0(lVar1);\n              uVar11 = *(undefined8 *)(lVar12 + 0x50);\n              *(undefined4 *)(lVar10 + 0x5c) = 1;\n              *(long *)(local_48 + 0x38) = lVar10;\n              lVar8 = *(long *)(lVar12 + 0x48);\n              local_50 = (int)uVar11 - (int)lVar8;\n              local_48 = lVar10;\n              if (local_50 < 1) {\n                uVar11 = dcgettext(0,"can\'t extend frag",5);\n                    /* WARNING: Subroutine does not return */\n                FUN_0011dc10(uVar11);\n              }\n            }\n            *(long *)(lVar12 + 0x48) = lVar8 + local_50;\n            local_40[0] = lVar8;\n            iVar6 = FUN_0010c220(lVar7,local_40,&local_50,&local_4c);\n            if (iVar6 < 0) {\n              return;\n            }\n            uVar15 = uVar15 + (long)local_4c;\n            *(long *)(local_48 + 0x10) = *(long *)(local_48 + 0x10) + (long)local_4c;\n            if (0 < local_50) {\n              *(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50;\n            }\n            if (iVar6 == 0) break;\n            lVar8 = *(long *)(lVar12 + 0x48);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n          }\n          if (uVar15 < uVar2) {\n            plVar4 = (long *)*plVar4;\n            *plVar4 = local_88;\n            plVar4[1] = local_48;\n            bfd_update_compression_header(param_1,local_88 + 0x80,param_2);\n            iVar6 = bfd_set_section_size(param_1,param_2,uVar15);\n            if (iVar6 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0011dd00("../../gas/write.c",0x622,"compress_debug");\n            }\n            if (local_5c == 0) {\n              uVar11 = concat(&DAT_0014ff08,pbVar3 + 1,0);\n              *param_2 = uVar11;\n            }\n          }\n        }" { (if_statement "if (DAT_001e4554 == 5) {\n            local_5c = bfd_get_compression_header_size(DAT_001e4750,0);\n            uVar15 = (ulong)local_5c;\n          }\n          else {\n            local_5c = 0;\n            uVar15 = 0xc;\n          }" if (parenthesized_expression "(DAT_001e4554 == 5)" ( (binary_expression "DAT_001e4554 == 5" identifier == number_literal) )) (compound_statement "{\n            local_5c = bfd_get_compression_header_size(DAT_001e4750,0);\n            uVar15 = (ulong)local_5c;\n          }" { (expression_statement "local_5c = bfd_get_compression_header_size(DAT_001e4750,0);" (assignment_expression "local_5c = bfd_get_compression_header_size(DAT_001e4750,0)" identifier = (call_expression "bfd_get_compression_header_size(DAT_001e4750,0)" identifier (argument_list "(DAT_001e4750,0)" ( identifier , number_literal )))) ;) (expression_statement "uVar15 = (ulong)local_5c;" (assignment_expression "uVar15 = (ulong)local_5c" identifier = (cast_expression "(ulong)local_5c" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) }) (else_clause "else {\n            local_5c = 0;\n            uVar15 = 0xc;\n          }" else (compound_statement "{\n            local_5c = 0;\n            uVar15 = 0xc;\n          }" { (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) (expression_statement "uVar15 = 0xc;" (assignment_expression "uVar15 = 0xc" identifier = number_literal) ;) }))) (expression_statement "lVar1 = lVar12 + 0x30;" (assignment_expression "lVar1 = lVar12 + 0x30" identifier = (binary_expression "lVar12 + 0x30" identifier + number_literal)) ;) (expression_statement "local_88 = FUN_00116bb0(lVar1);" (assignment_expression "local_88 = FUN_00116bb0(lVar1)" identifier = (call_expression "FUN_00116bb0(lVar1)" identifier (argument_list "(lVar1)" ( identifier )))) ;) (expression_statement "uVar13 = *(ulong *)(lVar12 + 0x50);" (assignment_expression "uVar13 = *(ulong *)(lVar12 + 0x50)" identifier = (pointer_expression "*(ulong *)(lVar12 + 0x50)" * (cast_expression "(ulong *)(lVar12 + 0x50)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x50)" ( (binary_expression "lVar12 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "lVar8 = *(long *)(lVar12 + 0x48);" (assignment_expression "lVar8 = *(long *)(lVar12 + 0x48)" identifier = (pointer_expression "*(long *)(lVar12 + 0x48)" * (cast_expression "(long *)(lVar12 + 0x48)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x48)" ( (binary_expression "lVar12 + 0x48" identifier + number_literal) ))))) ;) (if_statement "if (uVar13 - lVar8 < uVar15) {\n            local_88 = FUN_00116bb0(lVar1);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n            lVar8 = *(long *)(lVar12 + 0x48);\n            if (uVar13 - lVar8 < uVar15) {\n              uVar11 = dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5);\n                    /* WARNING: Subroutine does not return */\n              FUN_0011dc10(uVar11,uVar15);\n            }\n          }" if (parenthesized_expression "(uVar13 - lVar8 < uVar15)" ( (binary_expression "uVar13 - lVar8 < uVar15" (binary_expression "uVar13 - lVar8" identifier - identifier) < identifier) )) (compound_statement "{\n            local_88 = FUN_00116bb0(lVar1);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n            lVar8 = *(long *)(lVar12 + 0x48);\n            if (uVar13 - lVar8 < uVar15) {\n              uVar11 = dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5);\n                    /* WARNING: Subroutine does not return */\n              FUN_0011dc10(uVar11,uVar15);\n            }\n          }" { (expression_statement "local_88 = FUN_00116bb0(lVar1);" (assignment_expression "local_88 = FUN_00116bb0(lVar1)" identifier = (call_expression "FUN_00116bb0(lVar1)" identifier (argument_list "(lVar1)" ( identifier )))) ;) (expression_statement "uVar13 = *(ulong *)(lVar12 + 0x50);" (assignment_expression "uVar13 = *(ulong *)(lVar12 + 0x50)" identifier = (pointer_expression "*(ulong *)(lVar12 + 0x50)" * (cast_expression "(ulong *)(lVar12 + 0x50)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x50)" ( (binary_expression "lVar12 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "lVar8 = *(long *)(lVar12 + 0x48);" (assignment_expression "lVar8 = *(long *)(lVar12 + 0x48)" identifier = (pointer_expression "*(long *)(lVar12 + 0x48)" * (cast_expression "(long *)(lVar12 + 0x48)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x48)" ( (binary_expression "lVar12 + 0x48" identifier + number_literal) ))))) ;) (if_statement "if (uVar13 - lVar8 < uVar15) {\n              uVar11 = dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5);\n                    /* WARNING: Subroutine does not return */\n              FUN_0011dc10(uVar11,uVar15);\n            }" if (parenthesized_expression "(uVar13 - lVar8 < uVar15)" ( (binary_expression "uVar13 - lVar8 < uVar15" (binary_expression "uVar13 - lVar8" identifier - identifier) < identifier) )) (compound_statement "{\n              uVar11 = dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5);\n                    /* WARNING: Subroutine does not return */\n              FUN_0011dc10(uVar11,uVar15);\n            }" { (expression_statement "uVar11 = dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5);" (assignment_expression "uVar11 = dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5)" identifier = (call_expression "dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5)" identifier (argument_list "(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5)" ( number_literal , (string_literal ""can\'t extend frag %lu char"" " string_content escape_sequence string_content ") , (string_literal ""can\'t extend frag %lu chars"" " string_content escape_sequence string_content ") , identifier , number_literal )))) ;) comment (expression_statement "FUN_0011dc10(uVar11,uVar15);" (call_expression "FUN_0011dc10(uVar11,uVar15)" identifier (argument_list "(uVar11,uVar15)" ( identifier , identifier ))) ;) })) })) (expression_statement "lVar8 = lVar8 + uVar15;" (assignment_expression "lVar8 = lVar8 + uVar15" identifier = (binary_expression "lVar8 + uVar15" identifier + identifier)) ;) (expression_statement "*(long *)(lVar12 + 0x48) = lVar8;" (assignment_expression "*(long *)(lVar12 + 0x48) = lVar8" (pointer_expression "*(long *)(lVar12 + 0x48)" * (cast_expression "(long *)(lVar12 + 0x48)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x48)" ( (binary_expression "lVar12 + 0x48" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(ulong *)(local_88 + 0x10) = uVar15;" (assignment_expression "*(ulong *)(local_88 + 0x10) = uVar15" (pointer_expression "*(ulong *)(local_88 + 0x10)" * (cast_expression "(ulong *)(local_88 + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_88 + 0x10)" ( (binary_expression "local_88 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_48 = local_88;" (assignment_expression "local_48 = local_88" identifier = identifier) ;) (expression_statement "plVar5 = (long *)*plVar4;" (assignment_expression "plVar5 = (long *)*plVar4" identifier = (cast_expression "(long *)*plVar4" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar4" * identifier))) ;) (expression_statement "*(undefined4 *)(local_88 + 0x5c) = 1;" (assignment_expression "*(undefined4 *)(local_88 + 0x5c) = 1" (pointer_expression "*(undefined4 *)(local_88 + 0x5c)" * (cast_expression "(undefined4 *)(local_88 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_88 + 0x5c)" ( (binary_expression "local_88 + 0x5c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "lVar10 = *plVar5;" (assignment_expression "lVar10 = *plVar5" identifier = (pointer_expression "*plVar5" * identifier)) ;) (if_statement "if (lVar10 != 0) {\n            if (*(int *)(lVar10 + 0x5c) == 1) {\n              do {\n                lVar8 = *(long *)(lVar10 + 0x10);\n                if (lVar8 != 0) {\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }\n                lVar14 = *(long *)(lVar10 + 0x20);\n                uVar13 = *(ulong *)(lVar10 + 0x18);\n                if (lVar14 < 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((uVar13 != 0) && (lVar14 != 0)) {\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }\n                lVar10 = *(long *)(lVar10 + 0x38);\n                if (lVar10 == 0) {\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar10 + 0x5c) == 1);\n            }\n                    /* WARNING: Subroutine does not return */\n            FUN_0011dd00("../../gas/write.c",0x5d4,"compress_debug");\n          }" if (parenthesized_expression "(lVar10 != 0)" ( (binary_expression "lVar10 != 0" identifier != number_literal) )) (compound_statement "{\n            if (*(int *)(lVar10 + 0x5c) == 1) {\n              do {\n                lVar8 = *(long *)(lVar10 + 0x10);\n                if (lVar8 != 0) {\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }\n                lVar14 = *(long *)(lVar10 + 0x20);\n                uVar13 = *(ulong *)(lVar10 + 0x18);\n                if (lVar14 < 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((uVar13 != 0) && (lVar14 != 0)) {\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }\n                lVar10 = *(long *)(lVar10 + 0x38);\n                if (lVar10 == 0) {\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar10 + 0x5c) == 1);\n            }\n                    /* WARNING: Subroutine does not return */\n            FUN_0011dd00("../../gas/write.c",0x5d4,"compress_debug");\n          }" { (if_statement "if (*(int *)(lVar10 + 0x5c) == 1) {\n              do {\n                lVar8 = *(long *)(lVar10 + 0x10);\n                if (lVar8 != 0) {\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }\n                lVar14 = *(long *)(lVar10 + 0x20);\n                uVar13 = *(ulong *)(lVar10 + 0x18);\n                if (lVar14 < 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((uVar13 != 0) && (lVar14 != 0)) {\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }\n                lVar10 = *(long *)(lVar10 + 0x38);\n                if (lVar10 == 0) {\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar10 + 0x5c) == 1);\n            }" if (parenthesized_expression "(*(int *)(lVar10 + 0x5c) == 1)" ( (binary_expression "*(int *)(lVar10 + 0x5c) == 1" (pointer_expression "*(int *)(lVar10 + 0x5c)" * (cast_expression "(int *)(lVar10 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x5c)" ( (binary_expression "lVar10 + 0x5c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n              do {\n                lVar8 = *(long *)(lVar10 + 0x10);\n                if (lVar8 != 0) {\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }\n                lVar14 = *(long *)(lVar10 + 0x20);\n                uVar13 = *(ulong *)(lVar10 + 0x18);\n                if (lVar14 < 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((uVar13 != 0) && (lVar14 != 0)) {\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }\n                lVar10 = *(long *)(lVar10 + 0x38);\n                if (lVar10 == 0) {\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar10 + 0x5c) == 1);\n            }" { (do_statement "do {\n                lVar8 = *(long *)(lVar10 + 0x10);\n                if (lVar8 != 0) {\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }\n                lVar14 = *(long *)(lVar10 + 0x20);\n                uVar13 = *(ulong *)(lVar10 + 0x18);\n                if (lVar14 < 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((uVar13 != 0) && (lVar14 != 0)) {\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }\n                lVar10 = *(long *)(lVar10 + 0x38);\n                if (lVar10 == 0) {\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar10 + 0x5c) == 1);" do (compound_statement "{\n                lVar8 = *(long *)(lVar10 + 0x10);\n                if (lVar8 != 0) {\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }\n                lVar14 = *(long *)(lVar10 + 0x20);\n                uVar13 = *(ulong *)(lVar10 + 0x18);\n                if (lVar14 < 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((uVar13 != 0) && (lVar14 != 0)) {\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }\n                lVar10 = *(long *)(lVar10 + 0x38);\n                if (lVar10 == 0) {\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              }" { (expression_statement "lVar8 = *(long *)(lVar10 + 0x10);" (assignment_expression "lVar8 = *(long *)(lVar10 + 0x10)" identifier = (pointer_expression "*(long *)(lVar10 + 0x10)" * (cast_expression "(long *)(lVar10 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x10)" ( (binary_expression "lVar10 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (lVar8 != 0) {\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }" if (parenthesized_expression "(lVar8 != 0)" ( (binary_expression "lVar8 != 0" identifier != number_literal) )) (compound_statement "{\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }" { (expression_statement "iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);" (assignment_expression "iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1)" identifier = (call_expression "FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1)" identifier (argument_list "(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1)" ( identifier , (binary_expression "lVar10 + 0x80" identifier + number_literal) , identifier , (pointer_expression "&local_48" & identifier) , identifier )))) ;) (if_statement "if (iVar6 < 0) {\n                    return;\n                  }" if (parenthesized_expression "(iVar6 < 0)" ( (binary_expression "iVar6 < 0" identifier < number_literal) )) (compound_statement "{\n                    return;\n                  }" { (return_statement "return;" return ;) })) (expression_statement "lVar8 = *(long *)(lVar10 + 0x10);" (assignment_expression "lVar8 = *(long *)(lVar10 + 0x10)" identifier = (pointer_expression "*(long *)(lVar10 + 0x10)" * (cast_expression "(long *)(lVar10 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x10)" ( (binary_expression "lVar10 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar15 = uVar15 + (long)iVar6;" (assignment_expression "uVar15 = uVar15 + (long)iVar6" identifier = (binary_expression "uVar15 + (long)iVar6" identifier + (cast_expression "(long)iVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) })) (expression_statement "lVar14 = *(long *)(lVar10 + 0x20);" (assignment_expression "lVar14 = *(long *)(lVar10 + 0x20)" identifier = (pointer_expression "*(long *)(lVar10 + 0x20)" * (cast_expression "(long *)(lVar10 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x20)" ( (binary_expression "lVar10 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "uVar13 = *(ulong *)(lVar10 + 0x18);" (assignment_expression "uVar13 = *(ulong *)(lVar10 + 0x18)" identifier = (pointer_expression "*(ulong *)(lVar10 + 0x18)" * (cast_expression "(ulong *)(lVar10 + 0x18)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x18)" ( (binary_expression "lVar10 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (lVar14 < 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }" if (parenthesized_expression "(lVar14 < 0)" ( (binary_expression "lVar14 < 0" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }" { comment (expression_statement "FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");" (call_expression "FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug")" identifier (argument_list "("../../gas/write.c",0x5e0,"compress_debug")" ( (string_literal ""../../gas/write.c"" " string_content ") , number_literal , (string_literal ""compress_debug"" " string_content ") ))) ;) })) (if_statement "if ((uVar13 != 0) && (lVar14 != 0)) {\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }" if (parenthesized_expression "((uVar13 != 0) && (lVar14 != 0))" ( (binary_expression "(uVar13 != 0) && (lVar14 != 0)" (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )) && (parenthesized_expression "(lVar14 != 0)" ( (binary_expression "lVar14 != 0" identifier != number_literal) ))) )) (compound_statement "{\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }" { (do_statement "do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);" do (compound_statement "{\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  }" { (expression_statement "iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);" (assignment_expression "iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1)" identifier = (call_expression "FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1)" identifier (argument_list "(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1)" ( identifier , (binary_expression "lVar10 + 0x80 + lVar8" (binary_expression "lVar10 + 0x80" identifier + number_literal) + identifier) , (binary_expression "uVar13 & 0xffffffff" identifier & number_literal) , (pointer_expression "&local_48" & identifier) , identifier )))) ;) (if_statement "if (iVar6 < 0) {\n                      return;\n                    }" if (parenthesized_expression "(iVar6 < 0)" ( (binary_expression "iVar6 < 0" identifier < number_literal) )) (compound_statement "{\n                      return;\n                    }" { (return_statement "return;" return ;) })) (expression_statement "uVar15 = uVar15 + (long)iVar6;" (assignment_expression "uVar15 = uVar15 + (long)iVar6" identifier = (binary_expression "uVar15 + (long)iVar6" identifier + (cast_expression "(long)iVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (expression_statement "lVar14 = lVar14 + -1;" (assignment_expression "lVar14 = lVar14 + -1" identifier = (binary_expression "lVar14 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar14 != 0)" ( (binary_expression "lVar14 != 0" identifier != number_literal) )) ;) })) (expression_statement "lVar10 = *(long *)(lVar10 + 0x38);" (assignment_expression "lVar10 = *(long *)(lVar10 + 0x38)" identifier = (pointer_expression "*(long *)(lVar10 + 0x38)" * (cast_expression "(long *)(lVar10 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x38)" ( (binary_expression "lVar10 + 0x38" identifier + number_literal) ))))) ;) (if_statement "if (lVar10 == 0) {\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (compound_statement "{\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }" { (expression_statement "lVar8 = *(long *)(lVar12 + 0x48);" (assignment_expression "lVar8 = *(long *)(lVar12 + 0x48)" identifier = (pointer_expression "*(long *)(lVar12 + 0x48)" * (cast_expression "(long *)(lVar12 + 0x48)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x48)" ( (binary_expression "lVar12 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "uVar13 = *(ulong *)(lVar12 + 0x50);" (assignment_expression "uVar13 = *(ulong *)(lVar12 + 0x50)" identifier = (pointer_expression "*(ulong *)(lVar12 + 0x50)" * (cast_expression "(ulong *)(lVar12 + 0x50)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x50)" ( (binary_expression "lVar12 + 0x50" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0012dd51;" goto statement_identifier ;) })) }) while (parenthesized_expression "(*(int *)(lVar10 + 0x5c) == 1)" ( (binary_expression "*(int *)(lVar10 + 0x5c) == 1" (pointer_expression "*(int *)(lVar10 + 0x5c)" * (cast_expression "(int *)(lVar10 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x5c)" ( (binary_expression "lVar10 + 0x5c" identifier + number_literal) )))) == number_literal) )) ;) })) comment (expression_statement "FUN_0011dd00("../../gas/write.c",0x5d4,"compress_debug");" (call_expression "FUN_0011dd00("../../gas/write.c",0x5d4,"compress_debug")" identifier (argument_list "("../../gas/write.c",0x5d4,"compress_debug")" ( (string_literal ""../../gas/write.c"" " string_content ") , number_literal , (string_literal ""compress_debug"" " string_content ") ))) ;) })) (labeled_statement "LAB_0012dd51:\n          while( true ) {\n            local_50 = (int)uVar13 - (int)lVar8;\n            if (local_50 < 1) {\n              if (*(long *)(lVar12 + 0x40) == lVar8) {\n                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;\n              }\n              uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60);\n              *(ulong *)(lVar12 + 0x48) = uVar9;\n              if (uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)) {\n                *(ulong *)(lVar12 + 0x48) = uVar13;\n                uVar9 = uVar13;\n              }\n              *(ulong *)(lVar12 + 0x40) = uVar9;\n              lVar10 = FUN_00116bb0(lVar1);\n              uVar11 = *(undefined8 *)(lVar12 + 0x50);\n              *(undefined4 *)(lVar10 + 0x5c) = 1;\n              *(long *)(local_48 + 0x38) = lVar10;\n              lVar8 = *(long *)(lVar12 + 0x48);\n              local_50 = (int)uVar11 - (int)lVar8;\n              local_48 = lVar10;\n              if (local_50 < 1) {\n                uVar11 = dcgettext(0,"can\'t extend frag",5);\n                    /* WARNING: Subroutine does not return */\n                FUN_0011dc10(uVar11);\n              }\n            }\n            *(long *)(lVar12 + 0x48) = lVar8 + local_50;\n            local_40[0] = lVar8;\n            iVar6 = FUN_0010c220(lVar7,local_40,&local_50,&local_4c);\n            if (iVar6 < 0) {\n              return;\n            }\n            uVar15 = uVar15 + (long)local_4c;\n            *(long *)(local_48 + 0x10) = *(long *)(local_48 + 0x10) + (long)local_4c;\n            if (0 < local_50) {\n              *(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50;\n            }\n            if (iVar6 == 0) break;\n            lVar8 = *(long *)(lVar12 + 0x48);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n          }" statement_identifier : (while_statement "while( true ) {\n            local_50 = (int)uVar13 - (int)lVar8;\n            if (local_50 < 1) {\n              if (*(long *)(lVar12 + 0x40) == lVar8) {\n                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;\n              }\n              uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60);\n              *(ulong *)(lVar12 + 0x48) = uVar9;\n              if (uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)) {\n                *(ulong *)(lVar12 + 0x48) = uVar13;\n                uVar9 = uVar13;\n              }\n              *(ulong *)(lVar12 + 0x40) = uVar9;\n              lVar10 = FUN_00116bb0(lVar1);\n              uVar11 = *(undefined8 *)(lVar12 + 0x50);\n              *(undefined4 *)(lVar10 + 0x5c) = 1;\n              *(long *)(local_48 + 0x38) = lVar10;\n              lVar8 = *(long *)(lVar12 + 0x48);\n              local_50 = (int)uVar11 - (int)lVar8;\n              local_48 = lVar10;\n              if (local_50 < 1) {\n                uVar11 = dcgettext(0,"can\'t extend frag",5);\n                    /* WARNING: Subroutine does not return */\n                FUN_0011dc10(uVar11);\n              }\n            }\n            *(long *)(lVar12 + 0x48) = lVar8 + local_50;\n            local_40[0] = lVar8;\n            iVar6 = FUN_0010c220(lVar7,local_40,&local_50,&local_4c);\n            if (iVar6 < 0) {\n              return;\n            }\n            uVar15 = uVar15 + (long)local_4c;\n            *(long *)(local_48 + 0x10) = *(long *)(local_48 + 0x10) + (long)local_4c;\n            if (0 < local_50) {\n              *(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50;\n            }\n            if (iVar6 == 0) break;\n            lVar8 = *(long *)(lVar12 + 0x48);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            local_50 = (int)uVar13 - (int)lVar8;\n            if (local_50 < 1) {\n              if (*(long *)(lVar12 + 0x40) == lVar8) {\n                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;\n              }\n              uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60);\n              *(ulong *)(lVar12 + 0x48) = uVar9;\n              if (uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)) {\n                *(ulong *)(lVar12 + 0x48) = uVar13;\n                uVar9 = uVar13;\n              }\n              *(ulong *)(lVar12 + 0x40) = uVar9;\n              lVar10 = FUN_00116bb0(lVar1);\n              uVar11 = *(undefined8 *)(lVar12 + 0x50);\n              *(undefined4 *)(lVar10 + 0x5c) = 1;\n              *(long *)(local_48 + 0x38) = lVar10;\n              lVar8 = *(long *)(lVar12 + 0x48);\n              local_50 = (int)uVar11 - (int)lVar8;\n              local_48 = lVar10;\n              if (local_50 < 1) {\n                uVar11 = dcgettext(0,"can\'t extend frag",5);\n                    /* WARNING: Subroutine does not return */\n                FUN_0011dc10(uVar11);\n              }\n            }\n            *(long *)(lVar12 + 0x48) = lVar8 + local_50;\n            local_40[0] = lVar8;\n            iVar6 = FUN_0010c220(lVar7,local_40,&local_50,&local_4c);\n            if (iVar6 < 0) {\n              return;\n            }\n            uVar15 = uVar15 + (long)local_4c;\n            *(long *)(local_48 + 0x10) = *(long *)(local_48 + 0x10) + (long)local_4c;\n            if (0 < local_50) {\n              *(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50;\n            }\n            if (iVar6 == 0) break;\n            lVar8 = *(long *)(lVar12 + 0x48);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n          }" { (expression_statement "local_50 = (int)uVar13 - (int)lVar8;" (assignment_expression "local_50 = (int)uVar13 - (int)lVar8" identifier = (binary_expression "(int)uVar13 - (int)lVar8" (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)lVar8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (local_50 < 1) {\n              if (*(long *)(lVar12 + 0x40) == lVar8) {\n                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;\n              }\n              uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60);\n              *(ulong *)(lVar12 + 0x48) = uVar9;\n              if (uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)) {\n                *(ulong *)(lVar12 + 0x48) = uVar13;\n                uVar9 = uVar13;\n              }\n              *(ulong *)(lVar12 + 0x40) = uVar9;\n              lVar10 = FUN_00116bb0(lVar1);\n              uVar11 = *(undefined8 *)(lVar12 + 0x50);\n              *(undefined4 *)(lVar10 + 0x5c) = 1;\n              *(long *)(local_48 + 0x38) = lVar10;\n              lVar8 = *(long *)(lVar12 + 0x48);\n              local_50 = (int)uVar11 - (int)lVar8;\n              local_48 = lVar10;\n              if (local_50 < 1) {\n                uVar11 = dcgettext(0,"can\'t extend frag",5);\n                    /* WARNING: Subroutine does not return */\n                FUN_0011dc10(uVar11);\n              }\n            }" if (parenthesized_expression "(local_50 < 1)" ( (binary_expression "local_50 < 1" identifier < number_literal) )) (compound_statement "{\n              if (*(long *)(lVar12 + 0x40) == lVar8) {\n                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;\n              }\n              uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60);\n              *(ulong *)(lVar12 + 0x48) = uVar9;\n              if (uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)) {\n                *(ulong *)(lVar12 + 0x48) = uVar13;\n                uVar9 = uVar13;\n              }\n              *(ulong *)(lVar12 + 0x40) = uVar9;\n              lVar10 = FUN_00116bb0(lVar1);\n              uVar11 = *(undefined8 *)(lVar12 + 0x50);\n              *(undefined4 *)(lVar10 + 0x5c) = 1;\n              *(long *)(local_48 + 0x38) = lVar10;\n              lVar8 = *(long *)(lVar12 + 0x48);\n              local_50 = (int)uVar11 - (int)lVar8;\n              local_48 = lVar10;\n              if (local_50 < 1) {\n                uVar11 = dcgettext(0,"can\'t extend frag",5);\n                    /* WARNING: Subroutine does not return */\n                FUN_0011dc10(uVar11);\n              }\n            }" { (if_statement "if (*(long *)(lVar12 + 0x40) == lVar8) {\n                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;\n              }" if (parenthesized_expression "(*(long *)(lVar12 + 0x40) == lVar8)" ( (binary_expression "*(long *)(lVar12 + 0x40) == lVar8" (pointer_expression "*(long *)(lVar12 + 0x40)" * (cast_expression "(long *)(lVar12 + 0x40)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x40)" ( (binary_expression "lVar12 + 0x40" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;\n              }" { (expression_statement "*(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;" (assignment_expression "*(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2" (pointer_expression "*(byte *)(lVar12 + 0x80)" * (cast_expression "(byte *)(lVar12 + 0x80)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x80)" ( (binary_expression "lVar12 + 0x80" identifier + number_literal) )))) = (binary_expression "*(byte *)(lVar12 + 0x80) | 2" (pointer_expression "*(byte *)(lVar12 + 0x80)" * (cast_expression "(byte *)(lVar12 + 0x80)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x80)" ( (binary_expression "lVar12 + 0x80" identifier + number_literal) )))) | number_literal)) ;) })) (expression_statement "uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60);" (assignment_expression "uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60)" identifier = (binary_expression "lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60)" (binary_expression "lVar8 + *(ulong *)(lVar12 + 0x60)" identifier + (pointer_expression "*(ulong *)(lVar12 + 0x60)" * (cast_expression "(ulong *)(lVar12 + 0x60)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x60)" ( (binary_expression "lVar12 + 0x60" identifier + number_literal) ))))) & (unary_expression "~*(ulong *)(lVar12 + 0x60)" ~ (pointer_expression "*(ulong *)(lVar12 + 0x60)" * (cast_expression "(ulong *)(lVar12 + 0x60)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x60)" ( (binary_expression "lVar12 + 0x60" identifier + number_literal) ))))))) ;) (expression_statement "*(ulong *)(lVar12 + 0x48) = uVar9;" (assignment_expression "*(ulong *)(lVar12 + 0x48) = uVar9" (pointer_expression "*(ulong *)(lVar12 + 0x48)" * (cast_expression "(ulong *)(lVar12 + 0x48)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x48)" ( (binary_expression "lVar12 + 0x48" identifier + number_literal) )))) = identifier) ;) (if_statement "if (uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)) {\n                *(ulong *)(lVar12 + 0x48) = uVar13;\n                uVar9 = uVar13;\n              }" if (parenthesized_expression "(uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38))" ( (binary_expression "uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)" (binary_expression "uVar13 - *(long *)(lVar12 + 0x38)" identifier - (pointer_expression "*(long *)(lVar12 + 0x38)" * (cast_expression "(long *)(lVar12 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x38)" ( (binary_expression "lVar12 + 0x38" identifier + number_literal) ))))) < (binary_expression "uVar9 - *(long *)(lVar12 + 0x38)" identifier - (pointer_expression "*(long *)(lVar12 + 0x38)" * (cast_expression "(long *)(lVar12 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x38)" ( (binary_expression "lVar12 + 0x38" identifier + number_literal) )))))) )) (compound_statement "{\n                *(ulong *)(lVar12 + 0x48) = uVar13;\n                uVar9 = uVar13;\n              }" { (expression_statement "*(ulong *)(lVar12 + 0x48) = uVar13;" (assignment_expression "*(ulong *)(lVar12 + 0x48) = uVar13" (pointer_expression "*(ulong *)(lVar12 + 0x48)" * (cast_expression "(ulong *)(lVar12 + 0x48)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x48)" ( (binary_expression "lVar12 + 0x48" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar9 = uVar13;" (assignment_expression "uVar9 = uVar13" identifier = identifier) ;) })) (expression_statement "*(ulong *)(lVar12 + 0x40) = uVar9;" (assignment_expression "*(ulong *)(lVar12 + 0x40) = uVar9" (pointer_expression "*(ulong *)(lVar12 + 0x40)" * (cast_expression "(ulong *)(lVar12 + 0x40)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x40)" ( (binary_expression "lVar12 + 0x40" identifier + number_literal) )))) = identifier) ;) (expression_statement "lVar10 = FUN_00116bb0(lVar1);" (assignment_expression "lVar10 = FUN_00116bb0(lVar1)" identifier = (call_expression "FUN_00116bb0(lVar1)" identifier (argument_list "(lVar1)" ( identifier )))) ;) (expression_statement "uVar11 = *(undefined8 *)(lVar12 + 0x50);" (assignment_expression "uVar11 = *(undefined8 *)(lVar12 + 0x50)" identifier = (pointer_expression "*(undefined8 *)(lVar12 + 0x50)" * (cast_expression "(undefined8 *)(lVar12 + 0x50)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x50)" ( (binary_expression "lVar12 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(lVar10 + 0x5c) = 1;" (assignment_expression "*(undefined4 *)(lVar10 + 0x5c) = 1" (pointer_expression "*(undefined4 *)(lVar10 + 0x5c)" * (cast_expression "(undefined4 *)(lVar10 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x5c)" ( (binary_expression "lVar10 + 0x5c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(long *)(local_48 + 0x38) = lVar10;" (assignment_expression "*(long *)(local_48 + 0x38) = lVar10" (pointer_expression "*(long *)(local_48 + 0x38)" * (cast_expression "(long *)(local_48 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_48 + 0x38)" ( (binary_expression "local_48 + 0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "lVar8 = *(long *)(lVar12 + 0x48);" (assignment_expression "lVar8 = *(long *)(lVar12 + 0x48)" identifier = (pointer_expression "*(long *)(lVar12 + 0x48)" * (cast_expression "(long *)(lVar12 + 0x48)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x48)" ( (binary_expression "lVar12 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "local_50 = (int)uVar11 - (int)lVar8;" (assignment_expression "local_50 = (int)uVar11 - (int)lVar8" identifier = (binary_expression "(int)uVar11 - (int)lVar8" (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)lVar8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_48 = lVar10;" (assignment_expression "local_48 = lVar10" identifier = identifier) ;) (if_statement "if (local_50 < 1) {\n                uVar11 = dcgettext(0,"can\'t extend frag",5);\n                    /* WARNING: Subroutine does not return */\n                FUN_0011dc10(uVar11);\n              }" if (parenthesized_expression "(local_50 < 1)" ( (binary_expression "local_50 < 1" identifier < number_literal) )) (compound_statement "{\n                uVar11 = dcgettext(0,"can\'t extend frag",5);\n                    /* WARNING: Subroutine does not return */\n                FUN_0011dc10(uVar11);\n              }" { (expression_statement "uVar11 = dcgettext(0,"can\'t extend frag",5);" (assignment_expression "uVar11 = dcgettext(0,"can\'t extend frag",5)" identifier = (call_expression "dcgettext(0,"can\'t extend frag",5)" identifier (argument_list "(0,"can\'t extend frag",5)" ( number_literal , (string_literal ""can\'t extend frag"" " string_content escape_sequence string_content ") , number_literal )))) ;) comment (expression_statement "FUN_0011dc10(uVar11);" (call_expression "FUN_0011dc10(uVar11)" identifier (argument_list "(uVar11)" ( identifier ))) ;) })) })) (expression_statement "*(long *)(lVar12 + 0x48) = lVar8 + local_50;" (assignment_expression "*(long *)(lVar12 + 0x48) = lVar8 + local_50" (pointer_expression "*(long *)(lVar12 + 0x48)" * (cast_expression "(long *)(lVar12 + 0x48)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x48)" ( (binary_expression "lVar12 + 0x48" identifier + number_literal) )))) = (binary_expression "lVar8 + local_50" identifier + identifier)) ;) (expression_statement "local_40[0] = lVar8;" (assignment_expression "local_40[0] = lVar8" (subscript_expression "local_40[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar6 = FUN_0010c220(lVar7,local_40,&local_50,&local_4c);" (assignment_expression "iVar6 = FUN_0010c220(lVar7,local_40,&local_50,&local_4c)" identifier = (call_expression "FUN_0010c220(lVar7,local_40,&local_50,&local_4c)" identifier (argument_list "(lVar7,local_40,&local_50,&local_4c)" ( identifier , identifier , (pointer_expression "&local_50" & identifier) , (pointer_expression "&local_4c" & identifier) )))) ;) (if_statement "if (iVar6 < 0) {\n              return;\n            }" if (parenthesized_expression "(iVar6 < 0)" ( (binary_expression "iVar6 < 0" identifier < number_literal) )) (compound_statement "{\n              return;\n            }" { (return_statement "return;" return ;) })) (expression_statement "uVar15 = uVar15 + (long)local_4c;" (assignment_expression "uVar15 = uVar15 + (long)local_4c" identifier = (binary_expression "uVar15 + (long)local_4c" identifier + (cast_expression "(long)local_4c" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (expression_statement "*(long *)(local_48 + 0x10) = *(long *)(local_48 + 0x10) + (long)local_4c;" (assignment_expression "*(long *)(local_48 + 0x10) = *(long *)(local_48 + 0x10) + (long)local_4c" (pointer_expression "*(long *)(local_48 + 0x10)" * (cast_expression "(long *)(local_48 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_48 + 0x10)" ( (binary_expression "local_48 + 0x10" identifier + number_literal) )))) = (binary_expression "*(long *)(local_48 + 0x10) + (long)local_4c" (pointer_expression "*(long *)(local_48 + 0x10)" * (cast_expression "(long *)(local_48 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_48 + 0x10)" ( (binary_expression "local_48 + 0x10" identifier + number_literal) )))) + (cast_expression "(long)local_4c" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (if_statement "if (0 < local_50) {\n              *(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50;\n            }" if (parenthesized_expression "(0 < local_50)" ( (binary_expression "0 < local_50" number_literal < identifier) )) (compound_statement "{\n              *(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50;\n            }" { (expression_statement "*(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50;" (assignment_expression "*(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50" (pointer_expression "*(long *)(lVar12 + 0x48)" * (cast_expression "(long *)(lVar12 + 0x48)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x48)" ( (binary_expression "lVar12 + 0x48" identifier + number_literal) )))) = (binary_expression "*(long *)(lVar12 + 0x48) + (long)-local_50" (pointer_expression "*(long *)(lVar12 + 0x48)" * (cast_expression "(long *)(lVar12 + 0x48)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x48)" ( (binary_expression "lVar12 + 0x48" identifier + number_literal) )))) + (cast_expression "(long)-local_50" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (unary_expression "-local_50" - identifier)))) ;) })) (if_statement "if (iVar6 == 0) break;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar8 = *(long *)(lVar12 + 0x48);" (assignment_expression "lVar8 = *(long *)(lVar12 + 0x48)" identifier = (pointer_expression "*(long *)(lVar12 + 0x48)" * (cast_expression "(long *)(lVar12 + 0x48)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x48)" ( (binary_expression "lVar12 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "uVar13 = *(ulong *)(lVar12 + 0x50);" (assignment_expression "uVar13 = *(ulong *)(lVar12 + 0x50)" identifier = (pointer_expression "*(ulong *)(lVar12 + 0x50)" * (cast_expression "(ulong *)(lVar12 + 0x50)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x50)" ( (binary_expression "lVar12 + 0x50" identifier + number_literal) ))))) ;) }))) (if_statement "if (uVar15 < uVar2) {\n            plVar4 = (long *)*plVar4;\n            *plVar4 = local_88;\n            plVar4[1] = local_48;\n            bfd_update_compression_header(param_1,local_88 + 0x80,param_2);\n            iVar6 = bfd_set_section_size(param_1,param_2,uVar15);\n            if (iVar6 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0011dd00("../../gas/write.c",0x622,"compress_debug");\n            }\n            if (local_5c == 0) {\n              uVar11 = concat(&DAT_0014ff08,pbVar3 + 1,0);\n              *param_2 = uVar11;\n            }\n          }" if (parenthesized_expression "(uVar15 < uVar2)" ( (binary_expression "uVar15 < uVar2" identifier < identifier) )) (compound_statement "{\n            plVar4 = (long *)*plVar4;\n            *plVar4 = local_88;\n            plVar4[1] = local_48;\n            bfd_update_compression_header(param_1,local_88 + 0x80,param_2);\n            iVar6 = bfd_set_section_size(param_1,param_2,uVar15);\n            if (iVar6 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0011dd00("../../gas/write.c",0x622,"compress_debug");\n            }\n            if (local_5c == 0) {\n              uVar11 = concat(&DAT_0014ff08,pbVar3 + 1,0);\n              *param_2 = uVar11;\n            }\n          }" { (expression_statement "plVar4 = (long *)*plVar4;" (assignment_expression "plVar4 = (long *)*plVar4" identifier = (cast_expression "(long *)*plVar4" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar4" * identifier))) ;) (expression_statement "*plVar4 = local_88;" (assignment_expression "*plVar4 = local_88" (pointer_expression "*plVar4" * identifier) = identifier) ;) (expression_statement "plVar4[1] = local_48;" (assignment_expression "plVar4[1] = local_48" (subscript_expression "plVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bfd_update_compression_header(param_1,local_88 + 0x80,param_2);" (call_expression "bfd_update_compression_header(param_1,local_88 + 0x80,param_2)" identifier (argument_list "(param_1,local_88 + 0x80,param_2)" ( identifier , (binary_expression "local_88 + 0x80" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar6 = bfd_set_section_size(param_1,param_2,uVar15);" (assignment_expression "iVar6 = bfd_set_section_size(param_1,param_2,uVar15)" identifier = (call_expression "bfd_set_section_size(param_1,param_2,uVar15)" identifier (argument_list "(param_1,param_2,uVar15)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar6 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0011dd00("../../gas/write.c",0x622,"compress_debug");\n            }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n              FUN_0011dd00("../../gas/write.c",0x622,"compress_debug");\n            }" { comment (expression_statement "FUN_0011dd00("../../gas/write.c",0x622,"compress_debug");" (call_expression "FUN_0011dd00("../../gas/write.c",0x622,"compress_debug")" identifier (argument_list "("../../gas/write.c",0x622,"compress_debug")" ( (string_literal ""../../gas/write.c"" " string_content ") , number_literal , (string_literal ""compress_debug"" " string_content ") ))) ;) })) (if_statement "if (local_5c == 0) {\n              uVar11 = concat(&DAT_0014ff08,pbVar3 + 1,0);\n              *param_2 = uVar11;\n            }" if (parenthesized_expression "(local_5c == 0)" ( (binary_expression "local_5c == 0" identifier == number_literal) )) (compound_statement "{\n              uVar11 = concat(&DAT_0014ff08,pbVar3 + 1,0);\n              *param_2 = uVar11;\n            }" { (expression_statement "uVar11 = concat(&DAT_0014ff08,pbVar3 + 1,0);" (assignment_expression "uVar11 = concat(&DAT_0014ff08,pbVar3 + 1,0)" identifier = (call_expression "concat(&DAT_0014ff08,pbVar3 + 1,0)" identifier (argument_list "(&DAT_0014ff08,pbVar3 + 1,0)" ( (pointer_expression "&DAT_0014ff08" & identifier) , (binary_expression "pbVar3 + 1" identifier + number_literal) , number_literal )))) ;) (expression_statement "*param_2 = uVar11;" (assignment_expression "*param_2 = uVar11" (pointer_expression "*param_2" * identifier) = identifier) ;) })) })) })) })) })) })) (return_statement "return;" return ;) })))
(translation_unit "void compress_debug(bfd *abfd,asection *sec,void *xxx)\n\n{\n  obstack *ob;\n  ulong uVar1;\n  byte *pbVar2;\n  long *plVar3;\n  long *plVar4;\n  long lVar5;\n  undefined8 uVar6;\n  undefined8 *puVar7;\n  int iVar8;\n  z_stream_s *strm;\n  long lVar9;\n  char *pcVar10;\n  ulong uVar11;\n  fragS *pfVar12;\n  long lVar13;\n  ulong uVar14;\n  uint uVar15;\n  long lVar16;\n  long lVar17;\n  ulong uVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  bool bVar21;\n  bool bVar22;\n  fragS *local_88;\n  uint local_5c;\n  int avail_out;\n  int out_size;\n  fragS *last_newf;\n  char *next_out;\n  \n  uVar1 = sec->size;\n  if (0x1f < uVar1) {\n    uVar15 = sec->flags & 0x101;\n    bVar21 = uVar15 == 0;\n    bVar22 = uVar15 == 1;\n    if (!bVar22) {\n      pbVar2 = (byte *)sec->name;\n      lVar13 = 7;\n      pbVar19 = pbVar2;\n      pbVar20 = (byte *)".debug_";\n      do {\n        if (lVar13 == 0) break;\n        lVar13 = lVar13 + -1;\n        bVar21 = *pbVar19 < *pbVar20;\n        bVar22 = *pbVar19 == *pbVar20;\n        pbVar19 = pbVar19 + 1;\n        pbVar20 = pbVar20 + 1;\n      } while (bVar22);\n      if ((!bVar21 && !bVar22) == bVar21) {\n        plVar3 = (long *)sec->userdata;\n        lVar13 = *plVar3;\n        strm = compress_init();\n        if (strm != (z_stream_s *)0x0) {\n          if (flag_compress_debug == COMPRESS_DEBUG_GABI_ZLIB) {\n            local_5c = bfd_get_compression_header_size(stdoutput,0);\n            uVar18 = (ulong)local_5c;\n          }\n          else {\n            local_5c = 0;\n            uVar18 = 0xc;\n          }\n          ob = (obstack *)(lVar13 + 0x30);\n          local_88 = frag_alloc(ob);\n          uVar14 = *(ulong *)(lVar13 + 0x50);\n          lVar9 = *(long *)(lVar13 + 0x48);\n          if (uVar14 - lVar9 < uVar18) {\n            local_88 = frag_alloc(ob);\n            uVar14 = *(ulong *)(lVar13 + 0x50);\n            lVar9 = *(long *)(lVar13 + 0x48);\n            if (uVar14 - lVar9 < uVar18) {\n              pcVar10 = (char *)dcngettext(0,"can\'t extend frag %lu char",\n                                           "can\'t extend frag %lu chars",uVar18,5);\n                    /* WARNING: Subroutine does not return */\n              as_fatal(pcVar10,uVar18);\n            }\n          }\n          pcVar10 = (char *)(lVar9 + uVar18);\n          *(char **)(lVar13 + 0x48) = pcVar10;\n          local_88->fr_fix = uVar18;\n          last_newf = local_88;\n          plVar4 = (long *)*plVar3;\n          local_88->fr_type = rs_fill;\n          lVar9 = *plVar4;\n          if (lVar9 != 0) {\n            if (*(int *)(lVar9 + 0x5c) == 1) {\n              do {\n                lVar16 = *(long *)(lVar9 + 0x10);\n                if (lVar16 != 0) {\n                  iVar8 = compress_frag(strm,(char *)(lVar9 + 0x80),(int)lVar16,&last_newf,ob);\n                  if (iVar8 < 0) {\n                    return;\n                  }\n                  lVar16 = *(long *)(lVar9 + 0x10);\n                  uVar18 = uVar18 + (long)iVar8;\n                }\n                lVar17 = *(long *)(lVar9 + 0x20);\n                lVar5 = *(long *)(lVar9 + 0x18);\n                if (lVar17 < 0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((lVar5 != 0) && (lVar17 != 0)) {\n                  do {\n                    iVar8 = compress_frag(strm,(char *)(lVar9 + 0x80) + lVar16,(int)lVar5,&last_newf\n                                          ,ob);\n                    if (iVar8 < 0) {\n                      return;\n                    }\n                    uVar18 = uVar18 + (long)iVar8;\n                    lVar17 = lVar17 + -1;\n                  } while (lVar17 != 0);\n                }\n                lVar9 = *(long *)(lVar9 + 0x38);\n                if (lVar9 == 0) {\n                  pcVar10 = *(char **)(lVar13 + 0x48);\n                  uVar14 = *(ulong *)(lVar13 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar9 + 0x5c) == 1);\n            }\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/write.c",0x5d4,"compress_debug");\n          }\nLAB_0012dd51:\n          while( true ) {\n            avail_out = (int)uVar14 - (int)pcVar10;\n            if (avail_out < 1) {\n              if (*(char **)(lVar13 + 0x40) == pcVar10) {\n                *(byte *)(lVar13 + 0x80) = *(byte *)(lVar13 + 0x80) | 2;\n              }\n              uVar11 = (ulong)(pcVar10 + *(ulong *)(lVar13 + 0x60)) & ~*(ulong *)(lVar13 + 0x60);\n              *(ulong *)(lVar13 + 0x48) = uVar11;\n              if (uVar14 - *(long *)(lVar13 + 0x38) < uVar11 - *(long *)(lVar13 + 0x38)) {\n                *(ulong *)(lVar13 + 0x48) = uVar14;\n                uVar11 = uVar14;\n              }\n              *(ulong *)(lVar13 + 0x40) = uVar11;\n              pfVar12 = frag_alloc(ob);\n              uVar6 = *(undefined8 *)(lVar13 + 0x50);\n              pfVar12->fr_type = rs_fill;\n              last_newf->fr_next = pfVar12;\n              pcVar10 = *(char **)(lVar13 + 0x48);\n              avail_out = (int)uVar6 - (int)pcVar10;\n              last_newf = pfVar12;\n              if (avail_out < 1) {\n                pcVar10 = (char *)dcgettext(0,"can\'t extend frag",5);\n                    /* WARNING: Subroutine does not return */\n                as_fatal(pcVar10);\n              }\n            }\n            *(char **)(lVar13 + 0x48) = pcVar10 + avail_out;\n            next_out = pcVar10;\n            iVar8 = compress_finish(strm,&next_out,&avail_out,&out_size);\n            if (iVar8 < 0) {\n              return;\n            }\n            uVar18 = uVar18 + (long)out_size;\n            last_newf->fr_fix = last_newf->fr_fix + (long)out_size;\n            if (0 < avail_out) {\n              *(long *)(lVar13 + 0x48) = *(long *)(lVar13 + 0x48) + (long)-avail_out;\n            }\n            if (iVar8 == 0) break;\n            pcVar10 = *(char **)(lVar13 + 0x48);\n            uVar14 = *(ulong *)(lVar13 + 0x50);\n          }\n          if (uVar18 < uVar1) {\n            puVar7 = (undefined8 *)*plVar3;\n            *puVar7 = local_88;\n            puVar7[1] = last_newf;\n            bfd_update_compression_header(abfd,local_88->fr_literal,sec);\n            iVar8 = bfd_set_section_size(abfd,sec,uVar18);\n            if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/write.c",0x622,"compress_debug");\n            }\n            if (local_5c == 0) {\n              pcVar10 = (char *)concat(&DAT_0014ff08,pbVar2 + 1,0);\n              sec->name = pcVar10;\n            }\n          }\n        }\n      }\n    }\n  }\n  return;\n}\n\n" (function_definition "void compress_debug(bfd *abfd,asection *sec,void *xxx)\n\n{\n  obstack *ob;\n  ulong uVar1;\n  byte *pbVar2;\n  long *plVar3;\n  long *plVar4;\n  long lVar5;\n  undefined8 uVar6;\n  undefined8 *puVar7;\n  int iVar8;\n  z_stream_s *strm;\n  long lVar9;\n  char *pcVar10;\n  ulong uVar11;\n  fragS *pfVar12;\n  long lVar13;\n  ulong uVar14;\n  uint uVar15;\n  long lVar16;\n  long lVar17;\n  ulong uVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  bool bVar21;\n  bool bVar22;\n  fragS *local_88;\n  uint local_5c;\n  int avail_out;\n  int out_size;\n  fragS *last_newf;\n  char *next_out;\n  \n  uVar1 = sec->size;\n  if (0x1f < uVar1) {\n    uVar15 = sec->flags & 0x101;\n    bVar21 = uVar15 == 0;\n    bVar22 = uVar15 == 1;\n    if (!bVar22) {\n      pbVar2 = (byte *)sec->name;\n      lVar13 = 7;\n      pbVar19 = pbVar2;\n      pbVar20 = (byte *)".debug_";\n      do {\n        if (lVar13 == 0) break;\n        lVar13 = lVar13 + -1;\n        bVar21 = *pbVar19 < *pbVar20;\n        bVar22 = *pbVar19 == *pbVar20;\n        pbVar19 = pbVar19 + 1;\n        pbVar20 = pbVar20 + 1;\n      } while (bVar22);\n      if ((!bVar21 && !bVar22) == bVar21) {\n        plVar3 = (long *)sec->userdata;\n        lVar13 = *plVar3;\n        strm = compress_init();\n        if (strm != (z_stream_s *)0x0) {\n          if (flag_compress_debug == COMPRESS_DEBUG_GABI_ZLIB) {\n            local_5c = bfd_get_compression_header_size(stdoutput,0);\n            uVar18 = (ulong)local_5c;\n          }\n          else {\n            local_5c = 0;\n            uVar18 = 0xc;\n          }\n          ob = (obstack *)(lVar13 + 0x30);\n          local_88 = frag_alloc(ob);\n          uVar14 = *(ulong *)(lVar13 + 0x50);\n          lVar9 = *(long *)(lVar13 + 0x48);\n          if (uVar14 - lVar9 < uVar18) {\n            local_88 = frag_alloc(ob);\n            uVar14 = *(ulong *)(lVar13 + 0x50);\n            lVar9 = *(long *)(lVar13 + 0x48);\n            if (uVar14 - lVar9 < uVar18) {\n              pcVar10 = (char *)dcngettext(0,"can\'t extend frag %lu char",\n                                           "can\'t extend frag %lu chars",uVar18,5);\n                    /* WARNING: Subroutine does not return */\n              as_fatal(pcVar10,uVar18);\n            }\n          }\n          pcVar10 = (char *)(lVar9 + uVar18);\n          *(char **)(lVar13 + 0x48) = pcVar10;\n          local_88->fr_fix = uVar18;\n          last_newf = local_88;\n          plVar4 = (long *)*plVar3;\n          local_88->fr_type = rs_fill;\n          lVar9 = *plVar4;\n          if (lVar9 != 0) {\n            if (*(int *)(lVar9 + 0x5c) == 1) {\n              do {\n                lVar16 = *(long *)(lVar9 + 0x10);\n                if (lVar16 != 0) {\n                  iVar8 = compress_frag(strm,(char *)(lVar9 + 0x80),(int)lVar16,&last_newf,ob);\n                  if (iVar8 < 0) {\n                    return;\n                  }\n                  lVar16 = *(long *)(lVar9 + 0x10);\n                  uVar18 = uVar18 + (long)iVar8;\n                }\n                lVar17 = *(long *)(lVar9 + 0x20);\n                lVar5 = *(long *)(lVar9 + 0x18);\n                if (lVar17 < 0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((lVar5 != 0) && (lVar17 != 0)) {\n                  do {\n                    iVar8 = compress_frag(strm,(char *)(lVar9 + 0x80) + lVar16,(int)lVar5,&last_newf\n                                          ,ob);\n                    if (iVar8 < 0) {\n                      return;\n                    }\n                    uVar18 = uVar18 + (long)iVar8;\n                    lVar17 = lVar17 + -1;\n                  } while (lVar17 != 0);\n                }\n                lVar9 = *(long *)(lVar9 + 0x38);\n                if (lVar9 == 0) {\n                  pcVar10 = *(char **)(lVar13 + 0x48);\n                  uVar14 = *(ulong *)(lVar13 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar9 + 0x5c) == 1);\n            }\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/write.c",0x5d4,"compress_debug");\n          }\nLAB_0012dd51:\n          while( true ) {\n            avail_out = (int)uVar14 - (int)pcVar10;\n            if (avail_out < 1) {\n              if (*(char **)(lVar13 + 0x40) == pcVar10) {\n                *(byte *)(lVar13 + 0x80) = *(byte *)(lVar13 + 0x80) | 2;\n              }\n              uVar11 = (ulong)(pcVar10 + *(ulong *)(lVar13 + 0x60)) & ~*(ulong *)(lVar13 + 0x60);\n              *(ulong *)(lVar13 + 0x48) = uVar11;\n              if (uVar14 - *(long *)(lVar13 + 0x38) < uVar11 - *(long *)(lVar13 + 0x38)) {\n                *(ulong *)(lVar13 + 0x48) = uVar14;\n                uVar11 = uVar14;\n              }\n              *(ulong *)(lVar13 + 0x40) = uVar11;\n              pfVar12 = frag_alloc(ob);\n              uVar6 = *(undefined8 *)(lVar13 + 0x50);\n              pfVar12->fr_type = rs_fill;\n              last_newf->fr_next = pfVar12;\n              pcVar10 = *(char **)(lVar13 + 0x48);\n              avail_out = (int)uVar6 - (int)pcVar10;\n              last_newf = pfVar12;\n              if (avail_out < 1) {\n                pcVar10 = (char *)dcgettext(0,"can\'t extend frag",5);\n                    /* WARNING: Subroutine does not return */\n                as_fatal(pcVar10);\n              }\n            }\n            *(char **)(lVar13 + 0x48) = pcVar10 + avail_out;\n            next_out = pcVar10;\n            iVar8 = compress_finish(strm,&next_out,&avail_out,&out_size);\n            if (iVar8 < 0) {\n              return;\n            }\n            uVar18 = uVar18 + (long)out_size;\n            last_newf->fr_fix = last_newf->fr_fix + (long)out_size;\n            if (0 < avail_out) {\n              *(long *)(lVar13 + 0x48) = *(long *)(lVar13 + 0x48) + (long)-avail_out;\n            }\n            if (iVar8 == 0) break;\n            pcVar10 = *(char **)(lVar13 + 0x48);\n            uVar14 = *(ulong *)(lVar13 + 0x50);\n          }\n          if (uVar18 < uVar1) {\n            puVar7 = (undefined8 *)*plVar3;\n            *puVar7 = local_88;\n            puVar7[1] = last_newf;\n            bfd_update_compression_header(abfd,local_88->fr_literal,sec);\n            iVar8 = bfd_set_section_size(abfd,sec,uVar18);\n            if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/write.c",0x622,"compress_debug");\n            }\n            if (local_5c == 0) {\n              pcVar10 = (char *)concat(&DAT_0014ff08,pbVar2 + 1,0);\n              sec->name = pcVar10;\n            }\n          }\n        }\n      }\n    }\n  }\n  return;\n}" primitive_type (function_declarator "compress_debug(bfd *abfd,asection *sec,void *xxx)" identifier (parameter_list "(bfd *abfd,asection *sec,void *xxx)" ( (parameter_declaration "bfd *abfd" type_identifier (pointer_declarator "*abfd" * identifier)) , (parameter_declaration "asection *sec" type_identifier (pointer_declarator "*sec" * identifier)) , (parameter_declaration "void *xxx" primitive_type (pointer_declarator "*xxx" * identifier)) ))) (compound_statement "{\n  obstack *ob;\n  ulong uVar1;\n  byte *pbVar2;\n  long *plVar3;\n  long *plVar4;\n  long lVar5;\n  undefined8 uVar6;\n  undefined8 *puVar7;\n  int iVar8;\n  z_stream_s *strm;\n  long lVar9;\n  char *pcVar10;\n  ulong uVar11;\n  fragS *pfVar12;\n  long lVar13;\n  ulong uVar14;\n  uint uVar15;\n  long lVar16;\n  long lVar17;\n  ulong uVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  bool bVar21;\n  bool bVar22;\n  fragS *local_88;\n  uint local_5c;\n  int avail_out;\n  int out_size;\n  fragS *last_newf;\n  char *next_out;\n  \n  uVar1 = sec->size;\n  if (0x1f < uVar1) {\n    uVar15 = sec->flags & 0x101;\n    bVar21 = uVar15 == 0;\n    bVar22 = uVar15 == 1;\n    if (!bVar22) {\n      pbVar2 = (byte *)sec->name;\n      lVar13 = 7;\n      pbVar19 = pbVar2;\n      pbVar20 = (byte *)".debug_";\n      do {\n        if (lVar13 == 0) break;\n        lVar13 = lVar13 + -1;\n        bVar21 = *pbVar19 < *pbVar20;\n        bVar22 = *pbVar19 == *pbVar20;\n        pbVar19 = pbVar19 + 1;\n        pbVar20 = pbVar20 + 1;\n      } while (bVar22);\n      if ((!bVar21 && !bVar22) == bVar21) {\n        plVar3 = (long *)sec->userdata;\n        lVar13 = *plVar3;\n        strm = compress_init();\n        if (strm != (z_stream_s *)0x0) {\n          if (flag_compress_debug == COMPRESS_DEBUG_GABI_ZLIB) {\n            local_5c = bfd_get_compression_header_size(stdoutput,0);\n            uVar18 = (ulong)local_5c;\n          }\n          else {\n            local_5c = 0;\n            uVar18 = 0xc;\n          }\n          ob = (obstack *)(lVar13 + 0x30);\n          local_88 = frag_alloc(ob);\n          uVar14 = *(ulong *)(lVar13 + 0x50);\n          lVar9 = *(long *)(lVar13 + 0x48);\n          if (uVar14 - lVar9 < uVar18) {\n            local_88 = frag_alloc(ob);\n            uVar14 = *(ulong *)(lVar13 + 0x50);\n            lVar9 = *(long *)(lVar13 + 0x48);\n            if (uVar14 - lVar9 < uVar18) {\n              pcVar10 = (char *)dcngettext(0,"can\'t extend frag %lu char",\n                                           "can\'t extend frag %lu chars",uVar18,5);\n                    /* WARNING: Subroutine does not return */\n              as_fatal(pcVar10,uVar18);\n            }\n          }\n          pcVar10 = (char *)(lVar9 + uVar18);\n          *(char **)(lVar13 + 0x48) = pcVar10;\n          local_88->fr_fix = uVar18;\n          last_newf = local_88;\n          plVar4 = (long *)*plVar3;\n          local_88->fr_type = rs_fill;\n          lVar9 = *plVar4;\n          if (lVar9 != 0) {\n            if (*(int *)(lVar9 + 0x5c) == 1) {\n              do {\n                lVar16 = *(long *)(lVar9 + 0x10);\n                if (lVar16 != 0) {\n                  iVar8 = compress_frag(strm,(char *)(lVar9 + 0x80),(int)lVar16,&last_newf,ob);\n                  if (iVar8 < 0) {\n                    return;\n                  }\n                  lVar16 = *(long *)(lVar9 + 0x10);\n                  uVar18 = uVar18 + (long)iVar8;\n                }\n                lVar17 = *(long *)(lVar9 + 0x20);\n                lVar5 = *(long *)(lVar9 + 0x18);\n                if (lVar17 < 0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((lVar5 != 0) && (lVar17 != 0)) {\n                  do {\n                    iVar8 = compress_frag(strm,(char *)(lVar9 + 0x80) + lVar16,(int)lVar5,&last_newf\n                                          ,ob);\n                    if (iVar8 < 0) {\n                      return;\n                    }\n                    uVar18 = uVar18 + (long)iVar8;\n                    lVar17 = lVar17 + -1;\n                  } while (lVar17 != 0);\n                }\n                lVar9 = *(long *)(lVar9 + 0x38);\n                if (lVar9 == 0) {\n                  pcVar10 = *(char **)(lVar13 + 0x48);\n                  uVar14 = *(ulong *)(lVar13 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar9 + 0x5c) == 1);\n            }\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/write.c",0x5d4,"compress_debug");\n          }\nLAB_0012dd51:\n          while( true ) {\n            avail_out = (int)uVar14 - (int)pcVar10;\n            if (avail_out < 1) {\n              if (*(char **)(lVar13 + 0x40) == pcVar10) {\n                *(byte *)(lVar13 + 0x80) = *(byte *)(lVar13 + 0x80) | 2;\n              }\n              uVar11 = (ulong)(pcVar10 + *(ulong *)(lVar13 + 0x60)) & ~*(ulong *)(lVar13 + 0x60);\n              *(ulong *)(lVar13 + 0x48) = uVar11;\n              if (uVar14 - *(long *)(lVar13 + 0x38) < uVar11 - *(long *)(lVar13 + 0x38)) {\n                *(ulong *)(lVar13 + 0x48) = uVar14;\n                uVar11 = uVar14;\n              }\n              *(ulong *)(lVar13 + 0x40) = uVar11;\n              pfVar12 = frag_alloc(ob);\n              uVar6 = *(undefined8 *)(lVar13 + 0x50);\n              pfVar12->fr_type = rs_fill;\n              last_newf->fr_next = pfVar12;\n              pcVar10 = *(char **)(lVar13 + 0x48);\n              avail_out = (int)uVar6 - (int)pcVar10;\n              last_newf = pfVar12;\n              if (avail_out < 1) {\n                pcVar10 = (char *)dcgettext(0,"can\'t extend frag",5);\n                    /* WARNING: Subroutine does not return */\n                as_fatal(pcVar10);\n              }\n            }\n            *(char **)(lVar13 + 0x48) = pcVar10 + avail_out;\n            next_out = pcVar10;\n            iVar8 = compress_finish(strm,&next_out,&avail_out,&out_size);\n            if (iVar8 < 0) {\n              return;\n            }\n            uVar18 = uVar18 + (long)out_size;\n            last_newf->fr_fix = last_newf->fr_fix + (long)out_size;\n            if (0 < avail_out) {\n              *(long *)(lVar13 + 0x48) = *(long *)(lVar13 + 0x48) + (long)-avail_out;\n            }\n            if (iVar8 == 0) break;\n            pcVar10 = *(char **)(lVar13 + 0x48);\n            uVar14 = *(ulong *)(lVar13 + 0x50);\n          }\n          if (uVar18 < uVar1) {\n            puVar7 = (undefined8 *)*plVar3;\n            *puVar7 = local_88;\n            puVar7[1] = last_newf;\n            bfd_update_compression_header(abfd,local_88->fr_literal,sec);\n            iVar8 = bfd_set_section_size(abfd,sec,uVar18);\n            if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/write.c",0x622,"compress_debug");\n            }\n            if (local_5c == 0) {\n              pcVar10 = (char *)concat(&DAT_0014ff08,pbVar2 + 1,0);\n              sec->name = pcVar10;\n            }\n          }\n        }\n      }\n    }\n  }\n  return;\n}" { (declaration "obstack *ob;" type_identifier (pointer_declarator "*ob" * identifier) ;) (declaration "ulong uVar1;" type_identifier identifier ;) (declaration "byte *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * identifier) ;) (declaration "long *plVar3;" (sized_type_specifier "long" long) (pointer_declarator "*plVar3" * identifier) ;) (declaration "long *plVar4;" (sized_type_specifier "long" long) (pointer_declarator "*plVar4" * identifier) ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar6;" type_identifier identifier ;) (declaration "undefined8 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "z_stream_s *strm;" type_identifier (pointer_declarator "*strm" * identifier) ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "ulong uVar11;" type_identifier identifier ;) (declaration "fragS *pfVar12;" type_identifier (pointer_declarator "*pfVar12" * identifier) ;) (declaration "long lVar13;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar14;" type_identifier identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "long lVar16;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar17;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar18;" type_identifier identifier ;) (declaration "byte *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * identifier) ;) (declaration "byte *pbVar20;" type_identifier (pointer_declarator "*pbVar20" * identifier) ;) (declaration "bool bVar21;" primitive_type identifier ;) (declaration "bool bVar22;" primitive_type identifier ;) (declaration "fragS *local_88;" type_identifier (pointer_declarator "*local_88" * identifier) ;) (declaration "uint local_5c;" type_identifier identifier ;) (declaration "int avail_out;" primitive_type identifier ;) (declaration "int out_size;" primitive_type identifier ;) (declaration "fragS *last_newf;" type_identifier (pointer_declarator "*last_newf" * identifier) ;) (declaration "char *next_out;" primitive_type (pointer_declarator "*next_out" * identifier) ;) (expression_statement "uVar1 = sec->size;" (assignment_expression "uVar1 = sec->size" identifier = (field_expression "sec->size" identifier -> field_identifier)) ;) (if_statement "if (0x1f < uVar1) {\n    uVar15 = sec->flags & 0x101;\n    bVar21 = uVar15 == 0;\n    bVar22 = uVar15 == 1;\n    if (!bVar22) {\n      pbVar2 = (byte *)sec->name;\n      lVar13 = 7;\n      pbVar19 = pbVar2;\n      pbVar20 = (byte *)".debug_";\n      do {\n        if (lVar13 == 0) break;\n        lVar13 = lVar13 + -1;\n        bVar21 = *pbVar19 < *pbVar20;\n        bVar22 = *pbVar19 == *pbVar20;\n        pbVar19 = pbVar19 + 1;\n        pbVar20 = pbVar20 + 1;\n      } while (bVar22);\n      if ((!bVar21 && !bVar22) == bVar21) {\n        plVar3 = (long *)sec->userdata;\n        lVar13 = *plVar3;\n        strm = compress_init();\n        if (strm != (z_stream_s *)0x0) {\n          if (flag_compress_debug == COMPRESS_DEBUG_GABI_ZLIB) {\n            local_5c = bfd_get_compression_header_size(stdoutput,0);\n            uVar18 = (ulong)local_5c;\n          }\n          else {\n            local_5c = 0;\n            uVar18 = 0xc;\n          }\n          ob = (obstack *)(lVar13 + 0x30);\n          local_88 = frag_alloc(ob);\n          uVar14 = *(ulong *)(lVar13 + 0x50);\n          lVar9 = *(long *)(lVar13 + 0x48);\n          if (uVar14 - lVar9 < uVar18) {\n            local_88 = frag_alloc(ob);\n            uVar14 = *(ulong *)(lVar13 + 0x50);\n            lVar9 = *(long *)(lVar13 + 0x48);\n            if (uVar14 - lVar9 < uVar18) {\n              pcVar10 = (char *)dcngettext(0,"can\'t extend frag %lu char",\n                                           "can\'t extend frag %lu chars",uVar18,5);\n                    /* WARNING: Subroutine does not return */\n              as_fatal(pcVar10,uVar18);\n            }\n          }\n          pcVar10 = (char *)(lVar9 + uVar18);\n          *(char **)(lVar13 + 0x48) = pcVar10;\n          local_88->fr_fix = uVar18;\n          last_newf = local_88;\n          plVar4 = (long *)*plVar3;\n          local_88->fr_type = rs_fill;\n          lVar9 = *plVar4;\n          if (lVar9 != 0) {\n            if (*(int *)(lVar9 + 0x5c) == 1) {\n              do {\n                lVar16 = *(long *)(lVar9 + 0x10);\n                if (lVar16 != 0) {\n                  iVar8 = compress_frag(strm,(char *)(lVar9 + 0x80),(int)lVar16,&last_newf,ob);\n                  if (iVar8 < 0) {\n                    return;\n                  }\n                  lVar16 = *(long *)(lVar9 + 0x10);\n                  uVar18 = uVar18 + (long)iVar8;\n                }\n                lVar17 = *(long *)(lVar9 + 0x20);\n                lVar5 = *(long *)(lVar9 + 0x18);\n                if (lVar17 < 0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((lVar5 != 0) && (lVar17 != 0)) {\n                  do {\n                    iVar8 = compress_frag(strm,(char *)(lVar9 + 0x80) + lVar16,(int)lVar5,&last_newf\n                                          ,ob);\n                    if (iVar8 < 0) {\n                      return;\n                    }\n                    uVar18 = uVar18 + (long)iVar8;\n                    lVar17 = lVar17 + -1;\n                  } while (lVar17 != 0);\n                }\n                lVar9 = *(long *)(lVar9 + 0x38);\n                if (lVar9 == 0) {\n                  pcVar10 = *(char **)(lVar13 + 0x48);\n                  uVar14 = *(ulong *)(lVar13 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar9 + 0x5c) == 1);\n            }\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/write.c",0x5d4,"compress_debug");\n          }\nLAB_0012dd51:\n          while( true ) {\n            avail_out = (int)uVar14 - (int)pcVar10;\n            if (avail_out < 1) {\n              if (*(char **)(lVar13 + 0x40) == pcVar10) {\n                *(byte *)(lVar13 + 0x80) = *(byte *)(lVar13 + 0x80) | 2;\n              }\n              uVar11 = (ulong)(pcVar10 + *(ulong *)(lVar13 + 0x60)) & ~*(ulong *)(lVar13 + 0x60);\n              *(ulong *)(lVar13 + 0x48) = uVar11;\n              if (uVar14 - *(long *)(lVar13 + 0x38) < uVar11 - *(long *)(lVar13 + 0x38)) {\n                *(ulong *)(lVar13 + 0x48) = uVar14;\n                uVar11 = uVar14;\n              }\n              *(ulong *)(lVar13 + 0x40) = uVar11;\n              pfVar12 = frag_alloc(ob);\n              uVar6 = *(undefined8 *)(lVar13 + 0x50);\n              pfVar12->fr_type = rs_fill;\n              last_newf->fr_next = pfVar12;\n              pcVar10 = *(char **)(lVar13 + 0x48);\n              avail_out = (int)uVar6 - (int)pcVar10;\n              last_newf = pfVar12;\n              if (avail_out < 1) {\n                pcVar10 = (char *)dcgettext(0,"can\'t extend frag",5);\n                    /* WARNING: Subroutine does not return */\n                as_fatal(pcVar10);\n              }\n            }\n            *(char **)(lVar13 + 0x48) = pcVar10 + avail_out;\n            next_out = pcVar10;\n            iVar8 = compress_finish(strm,&next_out,&avail_out,&out_size);\n            if (iVar8 < 0) {\n              return;\n            }\n            uVar18 = uVar18 + (long)out_size;\n            last_newf->fr_fix = last_newf->fr_fix + (long)out_size;\n            if (0 < avail_out) {\n              *(long *)(lVar13 + 0x48) = *(long *)(lVar13 + 0x48) + (long)-avail_out;\n            }\n            if (iVar8 == 0) break;\n            pcVar10 = *(char **)(lVar13 + 0x48);\n            uVar14 = *(ulong *)(lVar13 + 0x50);\n          }\n          if (uVar18 < uVar1) {\n            puVar7 = (undefined8 *)*plVar3;\n            *puVar7 = local_88;\n            puVar7[1] = last_newf;\n            bfd_update_compression_header(abfd,local_88->fr_literal,sec);\n            iVar8 = bfd_set_section_size(abfd,sec,uVar18);\n            if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/write.c",0x622,"compress_debug");\n            }\n            if (local_5c == 0) {\n              pcVar10 = (char *)concat(&DAT_0014ff08,pbVar2 + 1,0);\n              sec->name = pcVar10;\n            }\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "(0x1f < uVar1)" ( (binary_expression "0x1f < uVar1" number_literal < identifier) )) (compound_statement "{\n    uVar15 = sec->flags & 0x101;\n    bVar21 = uVar15 == 0;\n    bVar22 = uVar15 == 1;\n    if (!bVar22) {\n      pbVar2 = (byte *)sec->name;\n      lVar13 = 7;\n      pbVar19 = pbVar2;\n      pbVar20 = (byte *)".debug_";\n      do {\n        if (lVar13 == 0) break;\n        lVar13 = lVar13 + -1;\n        bVar21 = *pbVar19 < *pbVar20;\n        bVar22 = *pbVar19 == *pbVar20;\n        pbVar19 = pbVar19 + 1;\n        pbVar20 = pbVar20 + 1;\n      } while (bVar22);\n      if ((!bVar21 && !bVar22) == bVar21) {\n        plVar3 = (long *)sec->userdata;\n        lVar13 = *plVar3;\n        strm = compress_init();\n        if (strm != (z_stream_s *)0x0) {\n          if (flag_compress_debug == COMPRESS_DEBUG_GABI_ZLIB) {\n            local_5c = bfd_get_compression_header_size(stdoutput,0);\n            uVar18 = (ulong)local_5c;\n          }\n          else {\n            local_5c = 0;\n            uVar18 = 0xc;\n          }\n          ob = (obstack *)(lVar13 + 0x30);\n          local_88 = frag_alloc(ob);\n          uVar14 = *(ulong *)(lVar13 + 0x50);\n          lVar9 = *(long *)(lVar13 + 0x48);\n          if (uVar14 - lVar9 < uVar18) {\n            local_88 = frag_alloc(ob);\n            uVar14 = *(ulong *)(lVar13 + 0x50);\n            lVar9 = *(long *)(lVar13 + 0x48);\n            if (uVar14 - lVar9 < uVar18) {\n              pcVar10 = (char *)dcngettext(0,"can\'t extend frag %lu char",\n                                           "can\'t extend frag %lu chars",uVar18,5);\n                    /* WARNING: Subroutine does not return */\n              as_fatal(pcVar10,uVar18);\n            }\n          }\n          pcVar10 = (char *)(lVar9 + uVar18);\n          *(char **)(lVar13 + 0x48) = pcVar10;\n          local_88->fr_fix = uVar18;\n          last_newf = local_88;\n          plVar4 = (long *)*plVar3;\n          local_88->fr_type = rs_fill;\n          lVar9 = *plVar4;\n          if (lVar9 != 0) {\n            if (*(int *)(lVar9 + 0x5c) == 1) {\n              do {\n                lVar16 = *(long *)(lVar9 + 0x10);\n                if (lVar16 != 0) {\n                  iVar8 = compress_frag(strm,(char *)(lVar9 + 0x80),(int)lVar16,&last_newf,ob);\n                  if (iVar8 < 0) {\n                    return;\n                  }\n                  lVar16 = *(long *)(lVar9 + 0x10);\n                  uVar18 = uVar18 + (long)iVar8;\n                }\n                lVar17 = *(long *)(lVar9 + 0x20);\n                lVar5 = *(long *)(lVar9 + 0x18);\n                if (lVar17 < 0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((lVar5 != 0) && (lVar17 != 0)) {\n                  do {\n                    iVar8 = compress_frag(strm,(char *)(lVar9 + 0x80) + lVar16,(int)lVar5,&last_newf\n                                          ,ob);\n                    if (iVar8 < 0) {\n                      return;\n                    }\n                    uVar18 = uVar18 + (long)iVar8;\n                    lVar17 = lVar17 + -1;\n                  } while (lVar17 != 0);\n                }\n                lVar9 = *(long *)(lVar9 + 0x38);\n                if (lVar9 == 0) {\n                  pcVar10 = *(char **)(lVar13 + 0x48);\n                  uVar14 = *(ulong *)(lVar13 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar9 + 0x5c) == 1);\n            }\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/write.c",0x5d4,"compress_debug");\n          }\nLAB_0012dd51:\n          while( true ) {\n            avail_out = (int)uVar14 - (int)pcVar10;\n            if (avail_out < 1) {\n              if (*(char **)(lVar13 + 0x40) == pcVar10) {\n                *(byte *)(lVar13 + 0x80) = *(byte *)(lVar13 + 0x80) | 2;\n              }\n              uVar11 = (ulong)(pcVar10 + *(ulong *)(lVar13 + 0x60)) & ~*(ulong *)(lVar13 + 0x60);\n              *(ulong *)(lVar13 + 0x48) = uVar11;\n              if (uVar14 - *(long *)(lVar13 + 0x38) < uVar11 - *(long *)(lVar13 + 0x38)) {\n                *(ulong *)(lVar13 + 0x48) = uVar14;\n                uVar11 = uVar14;\n              }\n              *(ulong *)(lVar13 + 0x40) = uVar11;\n              pfVar12 = frag_alloc(ob);\n              uVar6 = *(undefined8 *)(lVar13 + 0x50);\n              pfVar12->fr_type = rs_fill;\n              last_newf->fr_next = pfVar12;\n              pcVar10 = *(char **)(lVar13 + 0x48);\n              avail_out = (int)uVar6 - (int)pcVar10;\n              last_newf = pfVar12;\n              if (avail_out < 1) {\n                pcVar10 = (char *)dcgettext(0,"can\'t extend frag",5);\n                    /* WARNING: Subroutine does not return */\n                as_fatal(pcVar10);\n              }\n            }\n            *(char **)(lVar13 + 0x48) = pcVar10 + avail_out;\n            next_out = pcVar10;\n            iVar8 = compress_finish(strm,&next_out,&avail_out,&out_size);\n            if (iVar8 < 0) {\n              return;\n            }\n            uVar18 = uVar18 + (long)out_size;\n            last_newf->fr_fix = last_newf->fr_fix + (long)out_size;\n            if (0 < avail_out) {\n              *(long *)(lVar13 + 0x48) = *(long *)(lVar13 + 0x48) + (long)-avail_out;\n            }\n            if (iVar8 == 0) break;\n            pcVar10 = *(char **)(lVar13 + 0x48);\n            uVar14 = *(ulong *)(lVar13 + 0x50);\n          }\n          if (uVar18 < uVar1) {\n            puVar7 = (undefined8 *)*plVar3;\n            *puVar7 = local_88;\n            puVar7[1] = last_newf;\n            bfd_update_compression_header(abfd,local_88->fr_literal,sec);\n            iVar8 = bfd_set_section_size(abfd,sec,uVar18);\n            if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/write.c",0x622,"compress_debug");\n            }\n            if (local_5c == 0) {\n              pcVar10 = (char *)concat(&DAT_0014ff08,pbVar2 + 1,0);\n              sec->name = pcVar10;\n            }\n          }\n        }\n      }\n    }\n  }" { (expression_statement "uVar15 = sec->flags & 0x101;" (assignment_expression "uVar15 = sec->flags & 0x101" identifier = (binary_expression "sec->flags & 0x101" (field_expression "sec->flags" identifier -> field_identifier) & number_literal)) ;) (expression_statement "bVar21 = uVar15 == 0;" (assignment_expression "bVar21 = uVar15 == 0" identifier = (binary_expression "uVar15 == 0" identifier == number_literal)) ;) (expression_statement "bVar22 = uVar15 == 1;" (assignment_expression "bVar22 = uVar15 == 1" identifier = (binary_expression "uVar15 == 1" identifier == number_literal)) ;) (if_statement "if (!bVar22) {\n      pbVar2 = (byte *)sec->name;\n      lVar13 = 7;\n      pbVar19 = pbVar2;\n      pbVar20 = (byte *)".debug_";\n      do {\n        if (lVar13 == 0) break;\n        lVar13 = lVar13 + -1;\n        bVar21 = *pbVar19 < *pbVar20;\n        bVar22 = *pbVar19 == *pbVar20;\n        pbVar19 = pbVar19 + 1;\n        pbVar20 = pbVar20 + 1;\n      } while (bVar22);\n      if ((!bVar21 && !bVar22) == bVar21) {\n        plVar3 = (long *)sec->userdata;\n        lVar13 = *plVar3;\n        strm = compress_init();\n        if (strm != (z_stream_s *)0x0) {\n          if (flag_compress_debug == COMPRESS_DEBUG_GABI_ZLIB) {\n            local_5c = bfd_get_compression_header_size(stdoutput,0);\n            uVar18 = (ulong)local_5c;\n          }\n          else {\n            local_5c = 0;\n            uVar18 = 0xc;\n          }\n          ob = (obstack *)(lVar13 + 0x30);\n          local_88 = frag_alloc(ob);\n          uVar14 = *(ulong *)(lVar13 + 0x50);\n          lVar9 = *(long *)(lVar13 + 0x48);\n          if (uVar14 - lVar9 < uVar18) {\n            local_88 = frag_alloc(ob);\n            uVar14 = *(ulong *)(lVar13 + 0x50);\n            lVar9 = *(long *)(lVar13 + 0x48);\n            if (uVar14 - lVar9 < uVar18) {\n              pcVar10 = (char *)dcngettext(0,"can\'t extend frag %lu char",\n                                           "can\'t extend frag %lu chars",uVar18,5);\n                    /* WARNING: Subroutine does not return */\n              as_fatal(pcVar10,uVar18);\n            }\n          }\n          pcVar10 = (char *)(lVar9 + uVar18);\n          *(char **)(lVar13 + 0x48) = pcVar10;\n          local_88->fr_fix = uVar18;\n          last_newf = local_88;\n          plVar4 = (long *)*plVar3;\n          local_88->fr_type = rs_fill;\n          lVar9 = *plVar4;\n          if (lVar9 != 0) {\n            if (*(int *)(lVar9 + 0x5c) == 1) {\n              do {\n                lVar16 = *(long *)(lVar9 + 0x10);\n                if (lVar16 != 0) {\n                  iVar8 = compress_frag(strm,(char *)(lVar9 + 0x80),(int)lVar16,&last_newf,ob);\n                  if (iVar8 < 0) {\n                    return;\n                  }\n                  lVar16 = *(long *)(lVar9 + 0x10);\n                  uVar18 = uVar18 + (long)iVar8;\n                }\n                lVar17 = *(long *)(lVar9 + 0x20);\n                lVar5 = *(long *)(lVar9 + 0x18);\n                if (lVar17 < 0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((lVar5 != 0) && (lVar17 != 0)) {\n                  do {\n                    iVar8 = compress_frag(strm,(char *)(lVar9 + 0x80) + lVar16,(int)lVar5,&last_newf\n                                          ,ob);\n                    if (iVar8 < 0) {\n                      return;\n                    }\n                    uVar18 = uVar18 + (long)iVar8;\n                    lVar17 = lVar17 + -1;\n                  } while (lVar17 != 0);\n                }\n                lVar9 = *(long *)(lVar9 + 0x38);\n                if (lVar9 == 0) {\n                  pcVar10 = *(char **)(lVar13 + 0x48);\n                  uVar14 = *(ulong *)(lVar13 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar9 + 0x5c) == 1);\n            }\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/write.c",0x5d4,"compress_debug");\n          }\nLAB_0012dd51:\n          while( true ) {\n            avail_out = (int)uVar14 - (int)pcVar10;\n            if (avail_out < 1) {\n              if (*(char **)(lVar13 + 0x40) == pcVar10) {\n                *(byte *)(lVar13 + 0x80) = *(byte *)(lVar13 + 0x80) | 2;\n              }\n              uVar11 = (ulong)(pcVar10 + *(ulong *)(lVar13 + 0x60)) & ~*(ulong *)(lVar13 + 0x60);\n              *(ulong *)(lVar13 + 0x48) = uVar11;\n              if (uVar14 - *(long *)(lVar13 + 0x38) < uVar11 - *(long *)(lVar13 + 0x38)) {\n                *(ulong *)(lVar13 + 0x48) = uVar14;\n                uVar11 = uVar14;\n              }\n              *(ulong *)(lVar13 + 0x40) = uVar11;\n              pfVar12 = frag_alloc(ob);\n              uVar6 = *(undefined8 *)(lVar13 + 0x50);\n              pfVar12->fr_type = rs_fill;\n              last_newf->fr_next = pfVar12;\n              pcVar10 = *(char **)(lVar13 + 0x48);\n              avail_out = (int)uVar6 - (int)pcVar10;\n              last_newf = pfVar12;\n              if (avail_out < 1) {\n                pcVar10 = (char *)dcgettext(0,"can\'t extend frag",5);\n                    /* WARNING: Subroutine does not return */\n                as_fatal(pcVar10);\n              }\n            }\n            *(char **)(lVar13 + 0x48) = pcVar10 + avail_out;\n            next_out = pcVar10;\n            iVar8 = compress_finish(strm,&next_out,&avail_out,&out_size);\n            if (iVar8 < 0) {\n              return;\n            }\n            uVar18 = uVar18 + (long)out_size;\n            last_newf->fr_fix = last_newf->fr_fix + (long)out_size;\n            if (0 < avail_out) {\n              *(long *)(lVar13 + 0x48) = *(long *)(lVar13 + 0x48) + (long)-avail_out;\n            }\n            if (iVar8 == 0) break;\n            pcVar10 = *(char **)(lVar13 + 0x48);\n            uVar14 = *(ulong *)(lVar13 + 0x50);\n          }\n          if (uVar18 < uVar1) {\n            puVar7 = (undefined8 *)*plVar3;\n            *puVar7 = local_88;\n            puVar7[1] = last_newf;\n            bfd_update_compression_header(abfd,local_88->fr_literal,sec);\n            iVar8 = bfd_set_section_size(abfd,sec,uVar18);\n            if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/write.c",0x622,"compress_debug");\n            }\n            if (local_5c == 0) {\n              pcVar10 = (char *)concat(&DAT_0014ff08,pbVar2 + 1,0);\n              sec->name = pcVar10;\n            }\n          }\n        }\n      }\n    }" if (parenthesized_expression "(!bVar22)" ( (unary_expression "!bVar22" ! identifier) )) (compound_statement "{\n      pbVar2 = (byte *)sec->name;\n      lVar13 = 7;\n      pbVar19 = pbVar2;\n      pbVar20 = (byte *)".debug_";\n      do {\n        if (lVar13 == 0) break;\n        lVar13 = lVar13 + -1;\n        bVar21 = *pbVar19 < *pbVar20;\n        bVar22 = *pbVar19 == *pbVar20;\n        pbVar19 = pbVar19 + 1;\n        pbVar20 = pbVar20 + 1;\n      } while (bVar22);\n      if ((!bVar21 && !bVar22) == bVar21) {\n        plVar3 = (long *)sec->userdata;\n        lVar13 = *plVar3;\n        strm = compress_init();\n        if (strm != (z_stream_s *)0x0) {\n          if (flag_compress_debug == COMPRESS_DEBUG_GABI_ZLIB) {\n            local_5c = bfd_get_compression_header_size(stdoutput,0);\n            uVar18 = (ulong)local_5c;\n          }\n          else {\n            local_5c = 0;\n            uVar18 = 0xc;\n          }\n          ob = (obstack *)(lVar13 + 0x30);\n          local_88 = frag_alloc(ob);\n          uVar14 = *(ulong *)(lVar13 + 0x50);\n          lVar9 = *(long *)(lVar13 + 0x48);\n          if (uVar14 - lVar9 < uVar18) {\n            local_88 = frag_alloc(ob);\n            uVar14 = *(ulong *)(lVar13 + 0x50);\n            lVar9 = *(long *)(lVar13 + 0x48);\n            if (uVar14 - lVar9 < uVar18) {\n              pcVar10 = (char *)dcngettext(0,"can\'t extend frag %lu char",\n                                           "can\'t extend frag %lu chars",uVar18,5);\n                    /* WARNING: Subroutine does not return */\n              as_fatal(pcVar10,uVar18);\n            }\n          }\n          pcVar10 = (char *)(lVar9 + uVar18);\n          *(char **)(lVar13 + 0x48) = pcVar10;\n          local_88->fr_fix = uVar18;\n          last_newf = local_88;\n          plVar4 = (long *)*plVar3;\n          local_88->fr_type = rs_fill;\n          lVar9 = *plVar4;\n          if (lVar9 != 0) {\n            if (*(int *)(lVar9 + 0x5c) == 1) {\n              do {\n                lVar16 = *(long *)(lVar9 + 0x10);\n                if (lVar16 != 0) {\n                  iVar8 = compress_frag(strm,(char *)(lVar9 + 0x80),(int)lVar16,&last_newf,ob);\n                  if (iVar8 < 0) {\n                    return;\n                  }\n                  lVar16 = *(long *)(lVar9 + 0x10);\n                  uVar18 = uVar18 + (long)iVar8;\n                }\n                lVar17 = *(long *)(lVar9 + 0x20);\n                lVar5 = *(long *)(lVar9 + 0x18);\n                if (lVar17 < 0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((lVar5 != 0) && (lVar17 != 0)) {\n                  do {\n                    iVar8 = compress_frag(strm,(char *)(lVar9 + 0x80) + lVar16,(int)lVar5,&last_newf\n                                          ,ob);\n                    if (iVar8 < 0) {\n                      return;\n                    }\n                    uVar18 = uVar18 + (long)iVar8;\n                    lVar17 = lVar17 + -1;\n                  } while (lVar17 != 0);\n                }\n                lVar9 = *(long *)(lVar9 + 0x38);\n                if (lVar9 == 0) {\n                  pcVar10 = *(char **)(lVar13 + 0x48);\n                  uVar14 = *(ulong *)(lVar13 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar9 + 0x5c) == 1);\n            }\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/write.c",0x5d4,"compress_debug");\n          }\nLAB_0012dd51:\n          while( true ) {\n            avail_out = (int)uVar14 - (int)pcVar10;\n            if (avail_out < 1) {\n              if (*(char **)(lVar13 + 0x40) == pcVar10) {\n                *(byte *)(lVar13 + 0x80) = *(byte *)(lVar13 + 0x80) | 2;\n              }\n              uVar11 = (ulong)(pcVar10 + *(ulong *)(lVar13 + 0x60)) & ~*(ulong *)(lVar13 + 0x60);\n              *(ulong *)(lVar13 + 0x48) = uVar11;\n              if (uVar14 - *(long *)(lVar13 + 0x38) < uVar11 - *(long *)(lVar13 + 0x38)) {\n                *(ulong *)(lVar13 + 0x48) = uVar14;\n                uVar11 = uVar14;\n              }\n              *(ulong *)(lVar13 + 0x40) = uVar11;\n              pfVar12 = frag_alloc(ob);\n              uVar6 = *(undefined8 *)(lVar13 + 0x50);\n              pfVar12->fr_type = rs_fill;\n              last_newf->fr_next = pfVar12;\n              pcVar10 = *(char **)(lVar13 + 0x48);\n              avail_out = (int)uVar6 - (int)pcVar10;\n              last_newf = pfVar12;\n              if (avail_out < 1) {\n                pcVar10 = (char *)dcgettext(0,"can\'t extend frag",5);\n                    /* WARNING: Subroutine does not return */\n                as_fatal(pcVar10);\n              }\n            }\n            *(char **)(lVar13 + 0x48) = pcVar10 + avail_out;\n            next_out = pcVar10;\n            iVar8 = compress_finish(strm,&next_out,&avail_out,&out_size);\n            if (iVar8 < 0) {\n              return;\n            }\n            uVar18 = uVar18 + (long)out_size;\n            last_newf->fr_fix = last_newf->fr_fix + (long)out_size;\n            if (0 < avail_out) {\n              *(long *)(lVar13 + 0x48) = *(long *)(lVar13 + 0x48) + (long)-avail_out;\n            }\n            if (iVar8 == 0) break;\n            pcVar10 = *(char **)(lVar13 + 0x48);\n            uVar14 = *(ulong *)(lVar13 + 0x50);\n          }\n          if (uVar18 < uVar1) {\n            puVar7 = (undefined8 *)*plVar3;\n            *puVar7 = local_88;\n            puVar7[1] = last_newf;\n            bfd_update_compression_header(abfd,local_88->fr_literal,sec);\n            iVar8 = bfd_set_section_size(abfd,sec,uVar18);\n            if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/write.c",0x622,"compress_debug");\n            }\n            if (local_5c == 0) {\n              pcVar10 = (char *)concat(&DAT_0014ff08,pbVar2 + 1,0);\n              sec->name = pcVar10;\n            }\n          }\n        }\n      }\n    }" { (expression_statement "pbVar2 = (byte *)sec->name;" (assignment_expression "pbVar2 = (byte *)sec->name" identifier = (cast_expression "(byte *)sec->name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "sec->name" identifier -> field_identifier))) ;) (expression_statement "lVar13 = 7;" (assignment_expression "lVar13 = 7" identifier = number_literal) ;) (expression_statement "pbVar19 = pbVar2;" (assignment_expression "pbVar19 = pbVar2" identifier = identifier) ;) (expression_statement "pbVar20 = (byte *)".debug_";" (assignment_expression "pbVar20 = (byte *)".debug_"" identifier = (cast_expression "(byte *)".debug_"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".debug_"" " string_content "))) ;) (do_statement "do {\n        if (lVar13 == 0) break;\n        lVar13 = lVar13 + -1;\n        bVar21 = *pbVar19 < *pbVar20;\n        bVar22 = *pbVar19 == *pbVar20;\n        pbVar19 = pbVar19 + 1;\n        pbVar20 = pbVar20 + 1;\n      } while (bVar22);" do (compound_statement "{\n        if (lVar13 == 0) break;\n        lVar13 = lVar13 + -1;\n        bVar21 = *pbVar19 < *pbVar20;\n        bVar22 = *pbVar19 == *pbVar20;\n        pbVar19 = pbVar19 + 1;\n        pbVar20 = pbVar20 + 1;\n      }" { (if_statement "if (lVar13 == 0) break;" if (parenthesized_expression "(lVar13 == 0)" ( (binary_expression "lVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar13 = lVar13 + -1;" (assignment_expression "lVar13 = lVar13 + -1" identifier = (binary_expression "lVar13 + -1" identifier + number_literal)) ;) (expression_statement "bVar21 = *pbVar19 < *pbVar20;" (assignment_expression "bVar21 = *pbVar19 < *pbVar20" identifier = (binary_expression "*pbVar19 < *pbVar20" (pointer_expression "*pbVar19" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar22 = *pbVar19 == *pbVar20;" (assignment_expression "bVar22 = *pbVar19 == *pbVar20" identifier = (binary_expression "*pbVar19 == *pbVar20" (pointer_expression "*pbVar19" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar19 = pbVar19 + 1;" (assignment_expression "pbVar19 = pbVar19 + 1" identifier = (binary_expression "pbVar19 + 1" identifier + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + 1;" (assignment_expression "pbVar20 = pbVar20 + 1" identifier = (binary_expression "pbVar20 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (if_statement "if ((!bVar21 && !bVar22) == bVar21) {\n        plVar3 = (long *)sec->userdata;\n        lVar13 = *plVar3;\n        strm = compress_init();\n        if (strm != (z_stream_s *)0x0) {\n          if (flag_compress_debug == COMPRESS_DEBUG_GABI_ZLIB) {\n            local_5c = bfd_get_compression_header_size(stdoutput,0);\n            uVar18 = (ulong)local_5c;\n          }\n          else {\n            local_5c = 0;\n            uVar18 = 0xc;\n          }\n          ob = (obstack *)(lVar13 + 0x30);\n          local_88 = frag_alloc(ob);\n          uVar14 = *(ulong *)(lVar13 + 0x50);\n          lVar9 = *(long *)(lVar13 + 0x48);\n          if (uVar14 - lVar9 < uVar18) {\n            local_88 = frag_alloc(ob);\n            uVar14 = *(ulong *)(lVar13 + 0x50);\n            lVar9 = *(long *)(lVar13 + 0x48);\n            if (uVar14 - lVar9 < uVar18) {\n              pcVar10 = (char *)dcngettext(0,"can\'t extend frag %lu char",\n                                           "can\'t extend frag %lu chars",uVar18,5);\n                    /* WARNING: Subroutine does not return */\n              as_fatal(pcVar10,uVar18);\n            }\n          }\n          pcVar10 = (char *)(lVar9 + uVar18);\n          *(char **)(lVar13 + 0x48) = pcVar10;\n          local_88->fr_fix = uVar18;\n          last_newf = local_88;\n          plVar4 = (long *)*plVar3;\n          local_88->fr_type = rs_fill;\n          lVar9 = *plVar4;\n          if (lVar9 != 0) {\n            if (*(int *)(lVar9 + 0x5c) == 1) {\n              do {\n                lVar16 = *(long *)(lVar9 + 0x10);\n                if (lVar16 != 0) {\n                  iVar8 = compress_frag(strm,(char *)(lVar9 + 0x80),(int)lVar16,&last_newf,ob);\n                  if (iVar8 < 0) {\n                    return;\n                  }\n                  lVar16 = *(long *)(lVar9 + 0x10);\n                  uVar18 = uVar18 + (long)iVar8;\n                }\n                lVar17 = *(long *)(lVar9 + 0x20);\n                lVar5 = *(long *)(lVar9 + 0x18);\n                if (lVar17 < 0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((lVar5 != 0) && (lVar17 != 0)) {\n                  do {\n                    iVar8 = compress_frag(strm,(char *)(lVar9 + 0x80) + lVar16,(int)lVar5,&last_newf\n                                          ,ob);\n                    if (iVar8 < 0) {\n                      return;\n                    }\n                    uVar18 = uVar18 + (long)iVar8;\n                    lVar17 = lVar17 + -1;\n                  } while (lVar17 != 0);\n                }\n                lVar9 = *(long *)(lVar9 + 0x38);\n                if (lVar9 == 0) {\n                  pcVar10 = *(char **)(lVar13 + 0x48);\n                  uVar14 = *(ulong *)(lVar13 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar9 + 0x5c) == 1);\n            }\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/write.c",0x5d4,"compress_debug");\n          }\nLAB_0012dd51:\n          while( true ) {\n            avail_out = (int)uVar14 - (int)pcVar10;\n            if (avail_out < 1) {\n              if (*(char **)(lVar13 + 0x40) == pcVar10) {\n                *(byte *)(lVar13 + 0x80) = *(byte *)(lVar13 + 0x80) | 2;\n              }\n              uVar11 = (ulong)(pcVar10 + *(ulong *)(lVar13 + 0x60)) & ~*(ulong *)(lVar13 + 0x60);\n              *(ulong *)(lVar13 + 0x48) = uVar11;\n              if (uVar14 - *(long *)(lVar13 + 0x38) < uVar11 - *(long *)(lVar13 + 0x38)) {\n                *(ulong *)(lVar13 + 0x48) = uVar14;\n                uVar11 = uVar14;\n              }\n              *(ulong *)(lVar13 + 0x40) = uVar11;\n              pfVar12 = frag_alloc(ob);\n              uVar6 = *(undefined8 *)(lVar13 + 0x50);\n              pfVar12->fr_type = rs_fill;\n              last_newf->fr_next = pfVar12;\n              pcVar10 = *(char **)(lVar13 + 0x48);\n              avail_out = (int)uVar6 - (int)pcVar10;\n              last_newf = pfVar12;\n              if (avail_out < 1) {\n                pcVar10 = (char *)dcgettext(0,"can\'t extend frag",5);\n                    /* WARNING: Subroutine does not return */\n                as_fatal(pcVar10);\n              }\n            }\n            *(char **)(lVar13 + 0x48) = pcVar10 + avail_out;\n            next_out = pcVar10;\n            iVar8 = compress_finish(strm,&next_out,&avail_out,&out_size);\n            if (iVar8 < 0) {\n              return;\n            }\n            uVar18 = uVar18 + (long)out_size;\n            last_newf->fr_fix = last_newf->fr_fix + (long)out_size;\n            if (0 < avail_out) {\n              *(long *)(lVar13 + 0x48) = *(long *)(lVar13 + 0x48) + (long)-avail_out;\n            }\n            if (iVar8 == 0) break;\n            pcVar10 = *(char **)(lVar13 + 0x48);\n            uVar14 = *(ulong *)(lVar13 + 0x50);\n          }\n          if (uVar18 < uVar1) {\n            puVar7 = (undefined8 *)*plVar3;\n            *puVar7 = local_88;\n            puVar7[1] = last_newf;\n            bfd_update_compression_header(abfd,local_88->fr_literal,sec);\n            iVar8 = bfd_set_section_size(abfd,sec,uVar18);\n            if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/write.c",0x622,"compress_debug");\n            }\n            if (local_5c == 0) {\n              pcVar10 = (char *)concat(&DAT_0014ff08,pbVar2 + 1,0);\n              sec->name = pcVar10;\n            }\n          }\n        }\n      }" if (parenthesized_expression "((!bVar21 && !bVar22) == bVar21)" ( (binary_expression "(!bVar21 && !bVar22) == bVar21" (parenthesized_expression "(!bVar21 && !bVar22)" ( (binary_expression "!bVar21 && !bVar22" (unary_expression "!bVar21" ! identifier) && (unary_expression "!bVar22" ! identifier)) )) == identifier) )) (compound_statement "{\n        plVar3 = (long *)sec->userdata;\n        lVar13 = *plVar3;\n        strm = compress_init();\n        if (strm != (z_stream_s *)0x0) {\n          if (flag_compress_debug == COMPRESS_DEBUG_GABI_ZLIB) {\n            local_5c = bfd_get_compression_header_size(stdoutput,0);\n            uVar18 = (ulong)local_5c;\n          }\n          else {\n            local_5c = 0;\n            uVar18 = 0xc;\n          }\n          ob = (obstack *)(lVar13 + 0x30);\n          local_88 = frag_alloc(ob);\n          uVar14 = *(ulong *)(lVar13 + 0x50);\n          lVar9 = *(long *)(lVar13 + 0x48);\n          if (uVar14 - lVar9 < uVar18) {\n            local_88 = frag_alloc(ob);\n            uVar14 = *(ulong *)(lVar13 + 0x50);\n            lVar9 = *(long *)(lVar13 + 0x48);\n            if (uVar14 - lVar9 < uVar18) {\n              pcVar10 = (char *)dcngettext(0,"can\'t extend frag %lu char",\n                                           "can\'t extend frag %lu chars",uVar18,5);\n                    /* WARNING: Subroutine does not return */\n              as_fatal(pcVar10,uVar18);\n            }\n          }\n          pcVar10 = (char *)(lVar9 + uVar18);\n          *(char **)(lVar13 + 0x48) = pcVar10;\n          local_88->fr_fix = uVar18;\n          last_newf = local_88;\n          plVar4 = (long *)*plVar3;\n          local_88->fr_type = rs_fill;\n          lVar9 = *plVar4;\n          if (lVar9 != 0) {\n            if (*(int *)(lVar9 + 0x5c) == 1) {\n              do {\n                lVar16 = *(long *)(lVar9 + 0x10);\n                if (lVar16 != 0) {\n                  iVar8 = compress_frag(strm,(char *)(lVar9 + 0x80),(int)lVar16,&last_newf,ob);\n                  if (iVar8 < 0) {\n                    return;\n                  }\n                  lVar16 = *(long *)(lVar9 + 0x10);\n                  uVar18 = uVar18 + (long)iVar8;\n                }\n                lVar17 = *(long *)(lVar9 + 0x20);\n                lVar5 = *(long *)(lVar9 + 0x18);\n                if (lVar17 < 0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((lVar5 != 0) && (lVar17 != 0)) {\n                  do {\n                    iVar8 = compress_frag(strm,(char *)(lVar9 + 0x80) + lVar16,(int)lVar5,&last_newf\n                                          ,ob);\n                    if (iVar8 < 0) {\n                      return;\n                    }\n                    uVar18 = uVar18 + (long)iVar8;\n                    lVar17 = lVar17 + -1;\n                  } while (lVar17 != 0);\n                }\n                lVar9 = *(long *)(lVar9 + 0x38);\n                if (lVar9 == 0) {\n                  pcVar10 = *(char **)(lVar13 + 0x48);\n                  uVar14 = *(ulong *)(lVar13 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar9 + 0x5c) == 1);\n            }\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/write.c",0x5d4,"compress_debug");\n          }\nLAB_0012dd51:\n          while( true ) {\n            avail_out = (int)uVar14 - (int)pcVar10;\n            if (avail_out < 1) {\n              if (*(char **)(lVar13 + 0x40) == pcVar10) {\n                *(byte *)(lVar13 + 0x80) = *(byte *)(lVar13 + 0x80) | 2;\n              }\n              uVar11 = (ulong)(pcVar10 + *(ulong *)(lVar13 + 0x60)) & ~*(ulong *)(lVar13 + 0x60);\n              *(ulong *)(lVar13 + 0x48) = uVar11;\n              if (uVar14 - *(long *)(lVar13 + 0x38) < uVar11 - *(long *)(lVar13 + 0x38)) {\n                *(ulong *)(lVar13 + 0x48) = uVar14;\n                uVar11 = uVar14;\n              }\n              *(ulong *)(lVar13 + 0x40) = uVar11;\n              pfVar12 = frag_alloc(ob);\n              uVar6 = *(undefined8 *)(lVar13 + 0x50);\n              pfVar12->fr_type = rs_fill;\n              last_newf->fr_next = pfVar12;\n              pcVar10 = *(char **)(lVar13 + 0x48);\n              avail_out = (int)uVar6 - (int)pcVar10;\n              last_newf = pfVar12;\n              if (avail_out < 1) {\n                pcVar10 = (char *)dcgettext(0,"can\'t extend frag",5);\n                    /* WARNING: Subroutine does not return */\n                as_fatal(pcVar10);\n              }\n            }\n            *(char **)(lVar13 + 0x48) = pcVar10 + avail_out;\n            next_out = pcVar10;\n            iVar8 = compress_finish(strm,&next_out,&avail_out,&out_size);\n            if (iVar8 < 0) {\n              return;\n            }\n            uVar18 = uVar18 + (long)out_size;\n            last_newf->fr_fix = last_newf->fr_fix + (long)out_size;\n            if (0 < avail_out) {\n              *(long *)(lVar13 + 0x48) = *(long *)(lVar13 + 0x48) + (long)-avail_out;\n            }\n            if (iVar8 == 0) break;\n            pcVar10 = *(char **)(lVar13 + 0x48);\n            uVar14 = *(ulong *)(lVar13 + 0x50);\n          }\n          if (uVar18 < uVar1) {\n            puVar7 = (undefined8 *)*plVar3;\n            *puVar7 = local_88;\n            puVar7[1] = last_newf;\n            bfd_update_compression_header(abfd,local_88->fr_literal,sec);\n            iVar8 = bfd_set_section_size(abfd,sec,uVar18);\n            if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/write.c",0x622,"compress_debug");\n            }\n            if (local_5c == 0) {\n              pcVar10 = (char *)concat(&DAT_0014ff08,pbVar2 + 1,0);\n              sec->name = pcVar10;\n            }\n          }\n        }\n      }" { (expression_statement "plVar3 = (long *)sec->userdata;" (assignment_expression "plVar3 = (long *)sec->userdata" identifier = (cast_expression "(long *)sec->userdata" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (field_expression "sec->userdata" identifier -> field_identifier))) ;) (expression_statement "lVar13 = *plVar3;" (assignment_expression "lVar13 = *plVar3" identifier = (pointer_expression "*plVar3" * identifier)) ;) (expression_statement "strm = compress_init();" (assignment_expression "strm = compress_init()" identifier = (call_expression "compress_init()" identifier (argument_list "()" ( )))) ;) (if_statement "if (strm != (z_stream_s *)0x0) {\n          if (flag_compress_debug == COMPRESS_DEBUG_GABI_ZLIB) {\n            local_5c = bfd_get_compression_header_size(stdoutput,0);\n            uVar18 = (ulong)local_5c;\n          }\n          else {\n            local_5c = 0;\n            uVar18 = 0xc;\n          }\n          ob = (obstack *)(lVar13 + 0x30);\n          local_88 = frag_alloc(ob);\n          uVar14 = *(ulong *)(lVar13 + 0x50);\n          lVar9 = *(long *)(lVar13 + 0x48);\n          if (uVar14 - lVar9 < uVar18) {\n            local_88 = frag_alloc(ob);\n            uVar14 = *(ulong *)(lVar13 + 0x50);\n            lVar9 = *(long *)(lVar13 + 0x48);\n            if (uVar14 - lVar9 < uVar18) {\n              pcVar10 = (char *)dcngettext(0,"can\'t extend frag %lu char",\n                                           "can\'t extend frag %lu chars",uVar18,5);\n                    /* WARNING: Subroutine does not return */\n              as_fatal(pcVar10,uVar18);\n            }\n          }\n          pcVar10 = (char *)(lVar9 + uVar18);\n          *(char **)(lVar13 + 0x48) = pcVar10;\n          local_88->fr_fix = uVar18;\n          last_newf = local_88;\n          plVar4 = (long *)*plVar3;\n          local_88->fr_type = rs_fill;\n          lVar9 = *plVar4;\n          if (lVar9 != 0) {\n            if (*(int *)(lVar9 + 0x5c) == 1) {\n              do {\n                lVar16 = *(long *)(lVar9 + 0x10);\n                if (lVar16 != 0) {\n                  iVar8 = compress_frag(strm,(char *)(lVar9 + 0x80),(int)lVar16,&last_newf,ob);\n                  if (iVar8 < 0) {\n                    return;\n                  }\n                  lVar16 = *(long *)(lVar9 + 0x10);\n                  uVar18 = uVar18 + (long)iVar8;\n                }\n                lVar17 = *(long *)(lVar9 + 0x20);\n                lVar5 = *(long *)(lVar9 + 0x18);\n                if (lVar17 < 0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((lVar5 != 0) && (lVar17 != 0)) {\n                  do {\n                    iVar8 = compress_frag(strm,(char *)(lVar9 + 0x80) + lVar16,(int)lVar5,&last_newf\n                                          ,ob);\n                    if (iVar8 < 0) {\n                      return;\n                    }\n                    uVar18 = uVar18 + (long)iVar8;\n                    lVar17 = lVar17 + -1;\n                  } while (lVar17 != 0);\n                }\n                lVar9 = *(long *)(lVar9 + 0x38);\n                if (lVar9 == 0) {\n                  pcVar10 = *(char **)(lVar13 + 0x48);\n                  uVar14 = *(ulong *)(lVar13 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar9 + 0x5c) == 1);\n            }\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/write.c",0x5d4,"compress_debug");\n          }\nLAB_0012dd51:\n          while( true ) {\n            avail_out = (int)uVar14 - (int)pcVar10;\n            if (avail_out < 1) {\n              if (*(char **)(lVar13 + 0x40) == pcVar10) {\n                *(byte *)(lVar13 + 0x80) = *(byte *)(lVar13 + 0x80) | 2;\n              }\n              uVar11 = (ulong)(pcVar10 + *(ulong *)(lVar13 + 0x60)) & ~*(ulong *)(lVar13 + 0x60);\n              *(ulong *)(lVar13 + 0x48) = uVar11;\n              if (uVar14 - *(long *)(lVar13 + 0x38) < uVar11 - *(long *)(lVar13 + 0x38)) {\n                *(ulong *)(lVar13 + 0x48) = uVar14;\n                uVar11 = uVar14;\n              }\n              *(ulong *)(lVar13 + 0x40) = uVar11;\n              pfVar12 = frag_alloc(ob);\n              uVar6 = *(undefined8 *)(lVar13 + 0x50);\n              pfVar12->fr_type = rs_fill;\n              last_newf->fr_next = pfVar12;\n              pcVar10 = *(char **)(lVar13 + 0x48);\n              avail_out = (int)uVar6 - (int)pcVar10;\n              last_newf = pfVar12;\n              if (avail_out < 1) {\n                pcVar10 = (char *)dcgettext(0,"can\'t extend frag",5);\n                    /* WARNING: Subroutine does not return */\n                as_fatal(pcVar10);\n              }\n            }\n            *(char **)(lVar13 + 0x48) = pcVar10 + avail_out;\n            next_out = pcVar10;\n            iVar8 = compress_finish(strm,&next_out,&avail_out,&out_size);\n            if (iVar8 < 0) {\n              return;\n            }\n            uVar18 = uVar18 + (long)out_size;\n            last_newf->fr_fix = last_newf->fr_fix + (long)out_size;\n            if (0 < avail_out) {\n              *(long *)(lVar13 + 0x48) = *(long *)(lVar13 + 0x48) + (long)-avail_out;\n            }\n            if (iVar8 == 0) break;\n            pcVar10 = *(char **)(lVar13 + 0x48);\n            uVar14 = *(ulong *)(lVar13 + 0x50);\n          }\n          if (uVar18 < uVar1) {\n            puVar7 = (undefined8 *)*plVar3;\n            *puVar7 = local_88;\n            puVar7[1] = last_newf;\n            bfd_update_compression_header(abfd,local_88->fr_literal,sec);\n            iVar8 = bfd_set_section_size(abfd,sec,uVar18);\n            if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/write.c",0x622,"compress_debug");\n            }\n            if (local_5c == 0) {\n              pcVar10 = (char *)concat(&DAT_0014ff08,pbVar2 + 1,0);\n              sec->name = pcVar10;\n            }\n          }\n        }" if (parenthesized_expression "(strm != (z_stream_s *)0x0)" ( (binary_expression "strm != (z_stream_s *)0x0" identifier != (cast_expression "(z_stream_s *)0x0" ( (type_descriptor "z_stream_s *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (flag_compress_debug == COMPRESS_DEBUG_GABI_ZLIB) {\n            local_5c = bfd_get_compression_header_size(stdoutput,0);\n            uVar18 = (ulong)local_5c;\n          }\n          else {\n            local_5c = 0;\n            uVar18 = 0xc;\n          }\n          ob = (obstack *)(lVar13 + 0x30);\n          local_88 = frag_alloc(ob);\n          uVar14 = *(ulong *)(lVar13 + 0x50);\n          lVar9 = *(long *)(lVar13 + 0x48);\n          if (uVar14 - lVar9 < uVar18) {\n            local_88 = frag_alloc(ob);\n            uVar14 = *(ulong *)(lVar13 + 0x50);\n            lVar9 = *(long *)(lVar13 + 0x48);\n            if (uVar14 - lVar9 < uVar18) {\n              pcVar10 = (char *)dcngettext(0,"can\'t extend frag %lu char",\n                                           "can\'t extend frag %lu chars",uVar18,5);\n                    /* WARNING: Subroutine does not return */\n              as_fatal(pcVar10,uVar18);\n            }\n          }\n          pcVar10 = (char *)(lVar9 + uVar18);\n          *(char **)(lVar13 + 0x48) = pcVar10;\n          local_88->fr_fix = uVar18;\n          last_newf = local_88;\n          plVar4 = (long *)*plVar3;\n          local_88->fr_type = rs_fill;\n          lVar9 = *plVar4;\n          if (lVar9 != 0) {\n            if (*(int *)(lVar9 + 0x5c) == 1) {\n              do {\n                lVar16 = *(long *)(lVar9 + 0x10);\n                if (lVar16 != 0) {\n                  iVar8 = compress_frag(strm,(char *)(lVar9 + 0x80),(int)lVar16,&last_newf,ob);\n                  if (iVar8 < 0) {\n                    return;\n                  }\n                  lVar16 = *(long *)(lVar9 + 0x10);\n                  uVar18 = uVar18 + (long)iVar8;\n                }\n                lVar17 = *(long *)(lVar9 + 0x20);\n                lVar5 = *(long *)(lVar9 + 0x18);\n                if (lVar17 < 0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((lVar5 != 0) && (lVar17 != 0)) {\n                  do {\n                    iVar8 = compress_frag(strm,(char *)(lVar9 + 0x80) + lVar16,(int)lVar5,&last_newf\n                                          ,ob);\n                    if (iVar8 < 0) {\n                      return;\n                    }\n                    uVar18 = uVar18 + (long)iVar8;\n                    lVar17 = lVar17 + -1;\n                  } while (lVar17 != 0);\n                }\n                lVar9 = *(long *)(lVar9 + 0x38);\n                if (lVar9 == 0) {\n                  pcVar10 = *(char **)(lVar13 + 0x48);\n                  uVar14 = *(ulong *)(lVar13 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar9 + 0x5c) == 1);\n            }\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/write.c",0x5d4,"compress_debug");\n          }\nLAB_0012dd51:\n          while( true ) {\n            avail_out = (int)uVar14 - (int)pcVar10;\n            if (avail_out < 1) {\n              if (*(char **)(lVar13 + 0x40) == pcVar10) {\n                *(byte *)(lVar13 + 0x80) = *(byte *)(lVar13 + 0x80) | 2;\n              }\n              uVar11 = (ulong)(pcVar10 + *(ulong *)(lVar13 + 0x60)) & ~*(ulong *)(lVar13 + 0x60);\n              *(ulong *)(lVar13 + 0x48) = uVar11;\n              if (uVar14 - *(long *)(lVar13 + 0x38) < uVar11 - *(long *)(lVar13 + 0x38)) {\n                *(ulong *)(lVar13 + 0x48) = uVar14;\n                uVar11 = uVar14;\n              }\n              *(ulong *)(lVar13 + 0x40) = uVar11;\n              pfVar12 = frag_alloc(ob);\n              uVar6 = *(undefined8 *)(lVar13 + 0x50);\n              pfVar12->fr_type = rs_fill;\n              last_newf->fr_next = pfVar12;\n              pcVar10 = *(char **)(lVar13 + 0x48);\n              avail_out = (int)uVar6 - (int)pcVar10;\n              last_newf = pfVar12;\n              if (avail_out < 1) {\n                pcVar10 = (char *)dcgettext(0,"can\'t extend frag",5);\n                    /* WARNING: Subroutine does not return */\n                as_fatal(pcVar10);\n              }\n            }\n            *(char **)(lVar13 + 0x48) = pcVar10 + avail_out;\n            next_out = pcVar10;\n            iVar8 = compress_finish(strm,&next_out,&avail_out,&out_size);\n            if (iVar8 < 0) {\n              return;\n            }\n            uVar18 = uVar18 + (long)out_size;\n            last_newf->fr_fix = last_newf->fr_fix + (long)out_size;\n            if (0 < avail_out) {\n              *(long *)(lVar13 + 0x48) = *(long *)(lVar13 + 0x48) + (long)-avail_out;\n            }\n            if (iVar8 == 0) break;\n            pcVar10 = *(char **)(lVar13 + 0x48);\n            uVar14 = *(ulong *)(lVar13 + 0x50);\n          }\n          if (uVar18 < uVar1) {\n            puVar7 = (undefined8 *)*plVar3;\n            *puVar7 = local_88;\n            puVar7[1] = last_newf;\n            bfd_update_compression_header(abfd,local_88->fr_literal,sec);\n            iVar8 = bfd_set_section_size(abfd,sec,uVar18);\n            if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/write.c",0x622,"compress_debug");\n            }\n            if (local_5c == 0) {\n              pcVar10 = (char *)concat(&DAT_0014ff08,pbVar2 + 1,0);\n              sec->name = pcVar10;\n            }\n          }\n        }" { (if_statement "if (flag_compress_debug == COMPRESS_DEBUG_GABI_ZLIB) {\n            local_5c = bfd_get_compression_header_size(stdoutput,0);\n            uVar18 = (ulong)local_5c;\n          }\n          else {\n            local_5c = 0;\n            uVar18 = 0xc;\n          }" if (parenthesized_expression "(flag_compress_debug == COMPRESS_DEBUG_GABI_ZLIB)" ( (binary_expression "flag_compress_debug == COMPRESS_DEBUG_GABI_ZLIB" identifier == identifier) )) (compound_statement "{\n            local_5c = bfd_get_compression_header_size(stdoutput,0);\n            uVar18 = (ulong)local_5c;\n          }" { (expression_statement "local_5c = bfd_get_compression_header_size(stdoutput,0);" (assignment_expression "local_5c = bfd_get_compression_header_size(stdoutput,0)" identifier = (call_expression "bfd_get_compression_header_size(stdoutput,0)" identifier (argument_list "(stdoutput,0)" ( identifier , number_literal )))) ;) (expression_statement "uVar18 = (ulong)local_5c;" (assignment_expression "uVar18 = (ulong)local_5c" identifier = (cast_expression "(ulong)local_5c" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) }) (else_clause "else {\n            local_5c = 0;\n            uVar18 = 0xc;\n          }" else (compound_statement "{\n            local_5c = 0;\n            uVar18 = 0xc;\n          }" { (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) (expression_statement "uVar18 = 0xc;" (assignment_expression "uVar18 = 0xc" identifier = number_literal) ;) }))) (expression_statement "ob = (obstack *)(lVar13 + 0x30);" (assignment_expression "ob = (obstack *)(lVar13 + 0x30)" identifier = (cast_expression "(obstack *)(lVar13 + 0x30)" ( (type_descriptor "obstack *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x30)" ( (binary_expression "lVar13 + 0x30" identifier + number_literal) )))) ;) (expression_statement "local_88 = frag_alloc(ob);" (assignment_expression "local_88 = frag_alloc(ob)" identifier = (call_expression "frag_alloc(ob)" identifier (argument_list "(ob)" ( identifier )))) ;) (expression_statement "uVar14 = *(ulong *)(lVar13 + 0x50);" (assignment_expression "uVar14 = *(ulong *)(lVar13 + 0x50)" identifier = (pointer_expression "*(ulong *)(lVar13 + 0x50)" * (cast_expression "(ulong *)(lVar13 + 0x50)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x50)" ( (binary_expression "lVar13 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "lVar9 = *(long *)(lVar13 + 0x48);" (assignment_expression "lVar9 = *(long *)(lVar13 + 0x48)" identifier = (pointer_expression "*(long *)(lVar13 + 0x48)" * (cast_expression "(long *)(lVar13 + 0x48)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x48)" ( (binary_expression "lVar13 + 0x48" identifier + number_literal) ))))) ;) (if_statement "if (uVar14 - lVar9 < uVar18) {\n            local_88 = frag_alloc(ob);\n            uVar14 = *(ulong *)(lVar13 + 0x50);\n            lVar9 = *(long *)(lVar13 + 0x48);\n            if (uVar14 - lVar9 < uVar18) {\n              pcVar10 = (char *)dcngettext(0,"can\'t extend frag %lu char",\n                                           "can\'t extend frag %lu chars",uVar18,5);\n                    /* WARNING: Subroutine does not return */\n              as_fatal(pcVar10,uVar18);\n            }\n          }" if (parenthesized_expression "(uVar14 - lVar9 < uVar18)" ( (binary_expression "uVar14 - lVar9 < uVar18" (binary_expression "uVar14 - lVar9" identifier - identifier) < identifier) )) (compound_statement "{\n            local_88 = frag_alloc(ob);\n            uVar14 = *(ulong *)(lVar13 + 0x50);\n            lVar9 = *(long *)(lVar13 + 0x48);\n            if (uVar14 - lVar9 < uVar18) {\n              pcVar10 = (char *)dcngettext(0,"can\'t extend frag %lu char",\n                                           "can\'t extend frag %lu chars",uVar18,5);\n                    /* WARNING: Subroutine does not return */\n              as_fatal(pcVar10,uVar18);\n            }\n          }" { (expression_statement "local_88 = frag_alloc(ob);" (assignment_expression "local_88 = frag_alloc(ob)" identifier = (call_expression "frag_alloc(ob)" identifier (argument_list "(ob)" ( identifier )))) ;) (expression_statement "uVar14 = *(ulong *)(lVar13 + 0x50);" (assignment_expression "uVar14 = *(ulong *)(lVar13 + 0x50)" identifier = (pointer_expression "*(ulong *)(lVar13 + 0x50)" * (cast_expression "(ulong *)(lVar13 + 0x50)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x50)" ( (binary_expression "lVar13 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "lVar9 = *(long *)(lVar13 + 0x48);" (assignment_expression "lVar9 = *(long *)(lVar13 + 0x48)" identifier = (pointer_expression "*(long *)(lVar13 + 0x48)" * (cast_expression "(long *)(lVar13 + 0x48)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x48)" ( (binary_expression "lVar13 + 0x48" identifier + number_literal) ))))) ;) (if_statement "if (uVar14 - lVar9 < uVar18) {\n              pcVar10 = (char *)dcngettext(0,"can\'t extend frag %lu char",\n                                           "can\'t extend frag %lu chars",uVar18,5);\n                    /* WARNING: Subroutine does not return */\n              as_fatal(pcVar10,uVar18);\n            }" if (parenthesized_expression "(uVar14 - lVar9 < uVar18)" ( (binary_expression "uVar14 - lVar9 < uVar18" (binary_expression "uVar14 - lVar9" identifier - identifier) < identifier) )) (compound_statement "{\n              pcVar10 = (char *)dcngettext(0,"can\'t extend frag %lu char",\n                                           "can\'t extend frag %lu chars",uVar18,5);\n                    /* WARNING: Subroutine does not return */\n              as_fatal(pcVar10,uVar18);\n            }" { (expression_statement "pcVar10 = (char *)dcngettext(0,"can\'t extend frag %lu char",\n                                           "can\'t extend frag %lu chars",uVar18,5);" (assignment_expression "pcVar10 = (char *)dcngettext(0,"can\'t extend frag %lu char",\n                                           "can\'t extend frag %lu chars",uVar18,5)" identifier = (cast_expression "(char *)dcngettext(0,"can\'t extend frag %lu char",\n                                           "can\'t extend frag %lu chars",uVar18,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcngettext(0,"can\'t extend frag %lu char",\n                                           "can\'t extend frag %lu chars",uVar18,5)" identifier (argument_list "(0,"can\'t extend frag %lu char",\n                                           "can\'t extend frag %lu chars",uVar18,5)" ( number_literal , (string_literal ""can\'t extend frag %lu char"" " string_content escape_sequence string_content ") , (string_literal ""can\'t extend frag %lu chars"" " string_content escape_sequence string_content ") , identifier , number_literal ))))) ;) comment (expression_statement "as_fatal(pcVar10,uVar18);" (call_expression "as_fatal(pcVar10,uVar18)" identifier (argument_list "(pcVar10,uVar18)" ( identifier , identifier ))) ;) })) })) (expression_statement "pcVar10 = (char *)(lVar9 + uVar18);" (assignment_expression "pcVar10 = (char *)(lVar9 + uVar18)" identifier = (cast_expression "(char *)(lVar9 + uVar18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + uVar18)" ( (binary_expression "lVar9 + uVar18" identifier + identifier) )))) ;) (expression_statement "*(char **)(lVar13 + 0x48) = pcVar10;" (assignment_expression "*(char **)(lVar13 + 0x48) = pcVar10" (pointer_expression "*(char **)(lVar13 + 0x48)" * (cast_expression "(char **)(lVar13 + 0x48)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar13 + 0x48)" ( (binary_expression "lVar13 + 0x48" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_88->fr_fix = uVar18;" (assignment_expression "local_88->fr_fix = uVar18" (field_expression "local_88->fr_fix" identifier -> field_identifier) = identifier) ;) (expression_statement "last_newf = local_88;" (assignment_expression "last_newf = local_88" identifier = identifier) ;) (expression_statement "plVar4 = (long *)*plVar3;" (assignment_expression "plVar4 = (long *)*plVar3" identifier = (cast_expression "(long *)*plVar3" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar3" * identifier))) ;) (expression_statement "local_88->fr_type = rs_fill;" (assignment_expression "local_88->fr_type = rs_fill" (field_expression "local_88->fr_type" identifier -> field_identifier) = identifier) ;) (expression_statement "lVar9 = *plVar4;" (assignment_expression "lVar9 = *plVar4" identifier = (pointer_expression "*plVar4" * identifier)) ;) (if_statement "if (lVar9 != 0) {\n            if (*(int *)(lVar9 + 0x5c) == 1) {\n              do {\n                lVar16 = *(long *)(lVar9 + 0x10);\n                if (lVar16 != 0) {\n                  iVar8 = compress_frag(strm,(char *)(lVar9 + 0x80),(int)lVar16,&last_newf,ob);\n                  if (iVar8 < 0) {\n                    return;\n                  }\n                  lVar16 = *(long *)(lVar9 + 0x10);\n                  uVar18 = uVar18 + (long)iVar8;\n                }\n                lVar17 = *(long *)(lVar9 + 0x20);\n                lVar5 = *(long *)(lVar9 + 0x18);\n                if (lVar17 < 0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((lVar5 != 0) && (lVar17 != 0)) {\n                  do {\n                    iVar8 = compress_frag(strm,(char *)(lVar9 + 0x80) + lVar16,(int)lVar5,&last_newf\n                                          ,ob);\n                    if (iVar8 < 0) {\n                      return;\n                    }\n                    uVar18 = uVar18 + (long)iVar8;\n                    lVar17 = lVar17 + -1;\n                  } while (lVar17 != 0);\n                }\n                lVar9 = *(long *)(lVar9 + 0x38);\n                if (lVar9 == 0) {\n                  pcVar10 = *(char **)(lVar13 + 0x48);\n                  uVar14 = *(ulong *)(lVar13 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar9 + 0x5c) == 1);\n            }\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/write.c",0x5d4,"compress_debug");\n          }" if (parenthesized_expression "(lVar9 != 0)" ( (binary_expression "lVar9 != 0" identifier != number_literal) )) (compound_statement "{\n            if (*(int *)(lVar9 + 0x5c) == 1) {\n              do {\n                lVar16 = *(long *)(lVar9 + 0x10);\n                if (lVar16 != 0) {\n                  iVar8 = compress_frag(strm,(char *)(lVar9 + 0x80),(int)lVar16,&last_newf,ob);\n                  if (iVar8 < 0) {\n                    return;\n                  }\n                  lVar16 = *(long *)(lVar9 + 0x10);\n                  uVar18 = uVar18 + (long)iVar8;\n                }\n                lVar17 = *(long *)(lVar9 + 0x20);\n                lVar5 = *(long *)(lVar9 + 0x18);\n                if (lVar17 < 0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((lVar5 != 0) && (lVar17 != 0)) {\n                  do {\n                    iVar8 = compress_frag(strm,(char *)(lVar9 + 0x80) + lVar16,(int)lVar5,&last_newf\n                                          ,ob);\n                    if (iVar8 < 0) {\n                      return;\n                    }\n                    uVar18 = uVar18 + (long)iVar8;\n                    lVar17 = lVar17 + -1;\n                  } while (lVar17 != 0);\n                }\n                lVar9 = *(long *)(lVar9 + 0x38);\n                if (lVar9 == 0) {\n                  pcVar10 = *(char **)(lVar13 + 0x48);\n                  uVar14 = *(ulong *)(lVar13 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar9 + 0x5c) == 1);\n            }\n                    /* WARNING: Subroutine does not return */\n            as_abort("../../gas/write.c",0x5d4,"compress_debug");\n          }" { (if_statement "if (*(int *)(lVar9 + 0x5c) == 1) {\n              do {\n                lVar16 = *(long *)(lVar9 + 0x10);\n                if (lVar16 != 0) {\n                  iVar8 = compress_frag(strm,(char *)(lVar9 + 0x80),(int)lVar16,&last_newf,ob);\n                  if (iVar8 < 0) {\n                    return;\n                  }\n                  lVar16 = *(long *)(lVar9 + 0x10);\n                  uVar18 = uVar18 + (long)iVar8;\n                }\n                lVar17 = *(long *)(lVar9 + 0x20);\n                lVar5 = *(long *)(lVar9 + 0x18);\n                if (lVar17 < 0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((lVar5 != 0) && (lVar17 != 0)) {\n                  do {\n                    iVar8 = compress_frag(strm,(char *)(lVar9 + 0x80) + lVar16,(int)lVar5,&last_newf\n                                          ,ob);\n                    if (iVar8 < 0) {\n                      return;\n                    }\n                    uVar18 = uVar18 + (long)iVar8;\n                    lVar17 = lVar17 + -1;\n                  } while (lVar17 != 0);\n                }\n                lVar9 = *(long *)(lVar9 + 0x38);\n                if (lVar9 == 0) {\n                  pcVar10 = *(char **)(lVar13 + 0x48);\n                  uVar14 = *(ulong *)(lVar13 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar9 + 0x5c) == 1);\n            }" if (parenthesized_expression "(*(int *)(lVar9 + 0x5c) == 1)" ( (binary_expression "*(int *)(lVar9 + 0x5c) == 1" (pointer_expression "*(int *)(lVar9 + 0x5c)" * (cast_expression "(int *)(lVar9 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x5c)" ( (binary_expression "lVar9 + 0x5c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n              do {\n                lVar16 = *(long *)(lVar9 + 0x10);\n                if (lVar16 != 0) {\n                  iVar8 = compress_frag(strm,(char *)(lVar9 + 0x80),(int)lVar16,&last_newf,ob);\n                  if (iVar8 < 0) {\n                    return;\n                  }\n                  lVar16 = *(long *)(lVar9 + 0x10);\n                  uVar18 = uVar18 + (long)iVar8;\n                }\n                lVar17 = *(long *)(lVar9 + 0x20);\n                lVar5 = *(long *)(lVar9 + 0x18);\n                if (lVar17 < 0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((lVar5 != 0) && (lVar17 != 0)) {\n                  do {\n                    iVar8 = compress_frag(strm,(char *)(lVar9 + 0x80) + lVar16,(int)lVar5,&last_newf\n                                          ,ob);\n                    if (iVar8 < 0) {\n                      return;\n                    }\n                    uVar18 = uVar18 + (long)iVar8;\n                    lVar17 = lVar17 + -1;\n                  } while (lVar17 != 0);\n                }\n                lVar9 = *(long *)(lVar9 + 0x38);\n                if (lVar9 == 0) {\n                  pcVar10 = *(char **)(lVar13 + 0x48);\n                  uVar14 = *(ulong *)(lVar13 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar9 + 0x5c) == 1);\n            }" { (do_statement "do {\n                lVar16 = *(long *)(lVar9 + 0x10);\n                if (lVar16 != 0) {\n                  iVar8 = compress_frag(strm,(char *)(lVar9 + 0x80),(int)lVar16,&last_newf,ob);\n                  if (iVar8 < 0) {\n                    return;\n                  }\n                  lVar16 = *(long *)(lVar9 + 0x10);\n                  uVar18 = uVar18 + (long)iVar8;\n                }\n                lVar17 = *(long *)(lVar9 + 0x20);\n                lVar5 = *(long *)(lVar9 + 0x18);\n                if (lVar17 < 0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((lVar5 != 0) && (lVar17 != 0)) {\n                  do {\n                    iVar8 = compress_frag(strm,(char *)(lVar9 + 0x80) + lVar16,(int)lVar5,&last_newf\n                                          ,ob);\n                    if (iVar8 < 0) {\n                      return;\n                    }\n                    uVar18 = uVar18 + (long)iVar8;\n                    lVar17 = lVar17 + -1;\n                  } while (lVar17 != 0);\n                }\n                lVar9 = *(long *)(lVar9 + 0x38);\n                if (lVar9 == 0) {\n                  pcVar10 = *(char **)(lVar13 + 0x48);\n                  uVar14 = *(ulong *)(lVar13 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar9 + 0x5c) == 1);" do (compound_statement "{\n                lVar16 = *(long *)(lVar9 + 0x10);\n                if (lVar16 != 0) {\n                  iVar8 = compress_frag(strm,(char *)(lVar9 + 0x80),(int)lVar16,&last_newf,ob);\n                  if (iVar8 < 0) {\n                    return;\n                  }\n                  lVar16 = *(long *)(lVar9 + 0x10);\n                  uVar18 = uVar18 + (long)iVar8;\n                }\n                lVar17 = *(long *)(lVar9 + 0x20);\n                lVar5 = *(long *)(lVar9 + 0x18);\n                if (lVar17 < 0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((lVar5 != 0) && (lVar17 != 0)) {\n                  do {\n                    iVar8 = compress_frag(strm,(char *)(lVar9 + 0x80) + lVar16,(int)lVar5,&last_newf\n                                          ,ob);\n                    if (iVar8 < 0) {\n                      return;\n                    }\n                    uVar18 = uVar18 + (long)iVar8;\n                    lVar17 = lVar17 + -1;\n                  } while (lVar17 != 0);\n                }\n                lVar9 = *(long *)(lVar9 + 0x38);\n                if (lVar9 == 0) {\n                  pcVar10 = *(char **)(lVar13 + 0x48);\n                  uVar14 = *(ulong *)(lVar13 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              }" { (expression_statement "lVar16 = *(long *)(lVar9 + 0x10);" (assignment_expression "lVar16 = *(long *)(lVar9 + 0x10)" identifier = (pointer_expression "*(long *)(lVar9 + 0x10)" * (cast_expression "(long *)(lVar9 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x10)" ( (binary_expression "lVar9 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (lVar16 != 0) {\n                  iVar8 = compress_frag(strm,(char *)(lVar9 + 0x80),(int)lVar16,&last_newf,ob);\n                  if (iVar8 < 0) {\n                    return;\n                  }\n                  lVar16 = *(long *)(lVar9 + 0x10);\n                  uVar18 = uVar18 + (long)iVar8;\n                }" if (parenthesized_expression "(lVar16 != 0)" ( (binary_expression "lVar16 != 0" identifier != number_literal) )) (compound_statement "{\n                  iVar8 = compress_frag(strm,(char *)(lVar9 + 0x80),(int)lVar16,&last_newf,ob);\n                  if (iVar8 < 0) {\n                    return;\n                  }\n                  lVar16 = *(long *)(lVar9 + 0x10);\n                  uVar18 = uVar18 + (long)iVar8;\n                }" { (expression_statement "iVar8 = compress_frag(strm,(char *)(lVar9 + 0x80),(int)lVar16,&last_newf,ob);" (assignment_expression "iVar8 = compress_frag(strm,(char *)(lVar9 + 0x80),(int)lVar16,&last_newf,ob)" identifier = (call_expression "compress_frag(strm,(char *)(lVar9 + 0x80),(int)lVar16,&last_newf,ob)" identifier (argument_list "(strm,(char *)(lVar9 + 0x80),(int)lVar16,&last_newf,ob)" ( identifier , (cast_expression "(char *)(lVar9 + 0x80)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x80)" ( (binary_expression "lVar9 + 0x80" identifier + number_literal) ))) , (cast_expression "(int)lVar16" ( (type_descriptor "int" primitive_type) ) identifier) , (pointer_expression "&last_newf" & identifier) , identifier )))) ;) (if_statement "if (iVar8 < 0) {\n                    return;\n                  }" if (parenthesized_expression "(iVar8 < 0)" ( (binary_expression "iVar8 < 0" identifier < number_literal) )) (compound_statement "{\n                    return;\n                  }" { (return_statement "return;" return ;) })) (expression_statement "lVar16 = *(long *)(lVar9 + 0x10);" (assignment_expression "lVar16 = *(long *)(lVar9 + 0x10)" identifier = (pointer_expression "*(long *)(lVar9 + 0x10)" * (cast_expression "(long *)(lVar9 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x10)" ( (binary_expression "lVar9 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar18 = uVar18 + (long)iVar8;" (assignment_expression "uVar18 = uVar18 + (long)iVar8" identifier = (binary_expression "uVar18 + (long)iVar8" identifier + (cast_expression "(long)iVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) })) (expression_statement "lVar17 = *(long *)(lVar9 + 0x20);" (assignment_expression "lVar17 = *(long *)(lVar9 + 0x20)" identifier = (pointer_expression "*(long *)(lVar9 + 0x20)" * (cast_expression "(long *)(lVar9 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x20)" ( (binary_expression "lVar9 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "lVar5 = *(long *)(lVar9 + 0x18);" (assignment_expression "lVar5 = *(long *)(lVar9 + 0x18)" identifier = (pointer_expression "*(long *)(lVar9 + 0x18)" * (cast_expression "(long *)(lVar9 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x18)" ( (binary_expression "lVar9 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (lVar17 < 0) {\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/write.c",0x5e0,"compress_debug");\n                }" if (parenthesized_expression "(lVar17 < 0)" ( (binary_expression "lVar17 < 0" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                  as_abort("../../gas/write.c",0x5e0,"compress_debug");\n                }" { comment (expression_statement "as_abort("../../gas/write.c",0x5e0,"compress_debug");" (call_expression "as_abort("../../gas/write.c",0x5e0,"compress_debug")" identifier (argument_list "("../../gas/write.c",0x5e0,"compress_debug")" ( (string_literal ""../../gas/write.c"" " string_content ") , number_literal , (string_literal ""compress_debug"" " string_content ") ))) ;) })) (if_statement "if ((lVar5 != 0) && (lVar17 != 0)) {\n                  do {\n                    iVar8 = compress_frag(strm,(char *)(lVar9 + 0x80) + lVar16,(int)lVar5,&last_newf\n                                          ,ob);\n                    if (iVar8 < 0) {\n                      return;\n                    }\n                    uVar18 = uVar18 + (long)iVar8;\n                    lVar17 = lVar17 + -1;\n                  } while (lVar17 != 0);\n                }" if (parenthesized_expression "((lVar5 != 0) && (lVar17 != 0))" ( (binary_expression "(lVar5 != 0) && (lVar17 != 0)" (parenthesized_expression "(lVar5 != 0)" ( (binary_expression "lVar5 != 0" identifier != number_literal) )) && (parenthesized_expression "(lVar17 != 0)" ( (binary_expression "lVar17 != 0" identifier != number_literal) ))) )) (compound_statement "{\n                  do {\n                    iVar8 = compress_frag(strm,(char *)(lVar9 + 0x80) + lVar16,(int)lVar5,&last_newf\n                                          ,ob);\n                    if (iVar8 < 0) {\n                      return;\n                    }\n                    uVar18 = uVar18 + (long)iVar8;\n                    lVar17 = lVar17 + -1;\n                  } while (lVar17 != 0);\n                }" { (do_statement "do {\n                    iVar8 = compress_frag(strm,(char *)(lVar9 + 0x80) + lVar16,(int)lVar5,&last_newf\n                                          ,ob);\n                    if (iVar8 < 0) {\n                      return;\n                    }\n                    uVar18 = uVar18 + (long)iVar8;\n                    lVar17 = lVar17 + -1;\n                  } while (lVar17 != 0);" do (compound_statement "{\n                    iVar8 = compress_frag(strm,(char *)(lVar9 + 0x80) + lVar16,(int)lVar5,&last_newf\n                                          ,ob);\n                    if (iVar8 < 0) {\n                      return;\n                    }\n                    uVar18 = uVar18 + (long)iVar8;\n                    lVar17 = lVar17 + -1;\n                  }" { (expression_statement "iVar8 = compress_frag(strm,(char *)(lVar9 + 0x80) + lVar16,(int)lVar5,&last_newf\n                                          ,ob);" (assignment_expression "iVar8 = compress_frag(strm,(char *)(lVar9 + 0x80) + lVar16,(int)lVar5,&last_newf\n                                          ,ob)" identifier = (call_expression "compress_frag(strm,(char *)(lVar9 + 0x80) + lVar16,(int)lVar5,&last_newf\n                                          ,ob)" identifier (argument_list "(strm,(char *)(lVar9 + 0x80) + lVar16,(int)lVar5,&last_newf\n                                          ,ob)" ( identifier , (binary_expression "(char *)(lVar9 + 0x80) + lVar16" (cast_expression "(char *)(lVar9 + 0x80)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x80)" ( (binary_expression "lVar9 + 0x80" identifier + number_literal) ))) + identifier) , (cast_expression "(int)lVar5" ( (type_descriptor "int" primitive_type) ) identifier) , (pointer_expression "&last_newf" & identifier) , identifier )))) ;) (if_statement "if (iVar8 < 0) {\n                      return;\n                    }" if (parenthesized_expression "(iVar8 < 0)" ( (binary_expression "iVar8 < 0" identifier < number_literal) )) (compound_statement "{\n                      return;\n                    }" { (return_statement "return;" return ;) })) (expression_statement "uVar18 = uVar18 + (long)iVar8;" (assignment_expression "uVar18 = uVar18 + (long)iVar8" identifier = (binary_expression "uVar18 + (long)iVar8" identifier + (cast_expression "(long)iVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (expression_statement "lVar17 = lVar17 + -1;" (assignment_expression "lVar17 = lVar17 + -1" identifier = (binary_expression "lVar17 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar17 != 0)" ( (binary_expression "lVar17 != 0" identifier != number_literal) )) ;) })) (expression_statement "lVar9 = *(long *)(lVar9 + 0x38);" (assignment_expression "lVar9 = *(long *)(lVar9 + 0x38)" identifier = (pointer_expression "*(long *)(lVar9 + 0x38)" * (cast_expression "(long *)(lVar9 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x38)" ( (binary_expression "lVar9 + 0x38" identifier + number_literal) ))))) ;) (if_statement "if (lVar9 == 0) {\n                  pcVar10 = *(char **)(lVar13 + 0x48);\n                  uVar14 = *(ulong *)(lVar13 + 0x50);\n                  goto LAB_0012dd51;\n                }" if (parenthesized_expression "(lVar9 == 0)" ( (binary_expression "lVar9 == 0" identifier == number_literal) )) (compound_statement "{\n                  pcVar10 = *(char **)(lVar13 + 0x48);\n                  uVar14 = *(ulong *)(lVar13 + 0x50);\n                  goto LAB_0012dd51;\n                }" { (expression_statement "pcVar10 = *(char **)(lVar13 + 0x48);" (assignment_expression "pcVar10 = *(char **)(lVar13 + 0x48)" identifier = (pointer_expression "*(char **)(lVar13 + 0x48)" * (cast_expression "(char **)(lVar13 + 0x48)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar13 + 0x48)" ( (binary_expression "lVar13 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = *(ulong *)(lVar13 + 0x50);" (assignment_expression "uVar14 = *(ulong *)(lVar13 + 0x50)" identifier = (pointer_expression "*(ulong *)(lVar13 + 0x50)" * (cast_expression "(ulong *)(lVar13 + 0x50)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x50)" ( (binary_expression "lVar13 + 0x50" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0012dd51;" goto statement_identifier ;) })) }) while (parenthesized_expression "(*(int *)(lVar9 + 0x5c) == 1)" ( (binary_expression "*(int *)(lVar9 + 0x5c) == 1" (pointer_expression "*(int *)(lVar9 + 0x5c)" * (cast_expression "(int *)(lVar9 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x5c)" ( (binary_expression "lVar9 + 0x5c" identifier + number_literal) )))) == number_literal) )) ;) })) comment (expression_statement "as_abort("../../gas/write.c",0x5d4,"compress_debug");" (call_expression "as_abort("../../gas/write.c",0x5d4,"compress_debug")" identifier (argument_list "("../../gas/write.c",0x5d4,"compress_debug")" ( (string_literal ""../../gas/write.c"" " string_content ") , number_literal , (string_literal ""compress_debug"" " string_content ") ))) ;) })) (labeled_statement "LAB_0012dd51:\n          while( true ) {\n            avail_out = (int)uVar14 - (int)pcVar10;\n            if (avail_out < 1) {\n              if (*(char **)(lVar13 + 0x40) == pcVar10) {\n                *(byte *)(lVar13 + 0x80) = *(byte *)(lVar13 + 0x80) | 2;\n              }\n              uVar11 = (ulong)(pcVar10 + *(ulong *)(lVar13 + 0x60)) & ~*(ulong *)(lVar13 + 0x60);\n              *(ulong *)(lVar13 + 0x48) = uVar11;\n              if (uVar14 - *(long *)(lVar13 + 0x38) < uVar11 - *(long *)(lVar13 + 0x38)) {\n                *(ulong *)(lVar13 + 0x48) = uVar14;\n                uVar11 = uVar14;\n              }\n              *(ulong *)(lVar13 + 0x40) = uVar11;\n              pfVar12 = frag_alloc(ob);\n              uVar6 = *(undefined8 *)(lVar13 + 0x50);\n              pfVar12->fr_type = rs_fill;\n              last_newf->fr_next = pfVar12;\n              pcVar10 = *(char **)(lVar13 + 0x48);\n              avail_out = (int)uVar6 - (int)pcVar10;\n              last_newf = pfVar12;\n              if (avail_out < 1) {\n                pcVar10 = (char *)dcgettext(0,"can\'t extend frag",5);\n                    /* WARNING: Subroutine does not return */\n                as_fatal(pcVar10);\n              }\n            }\n            *(char **)(lVar13 + 0x48) = pcVar10 + avail_out;\n            next_out = pcVar10;\n            iVar8 = compress_finish(strm,&next_out,&avail_out,&out_size);\n            if (iVar8 < 0) {\n              return;\n            }\n            uVar18 = uVar18 + (long)out_size;\n            last_newf->fr_fix = last_newf->fr_fix + (long)out_size;\n            if (0 < avail_out) {\n              *(long *)(lVar13 + 0x48) = *(long *)(lVar13 + 0x48) + (long)-avail_out;\n            }\n            if (iVar8 == 0) break;\n            pcVar10 = *(char **)(lVar13 + 0x48);\n            uVar14 = *(ulong *)(lVar13 + 0x50);\n          }" statement_identifier : (while_statement "while( true ) {\n            avail_out = (int)uVar14 - (int)pcVar10;\n            if (avail_out < 1) {\n              if (*(char **)(lVar13 + 0x40) == pcVar10) {\n                *(byte *)(lVar13 + 0x80) = *(byte *)(lVar13 + 0x80) | 2;\n              }\n              uVar11 = (ulong)(pcVar10 + *(ulong *)(lVar13 + 0x60)) & ~*(ulong *)(lVar13 + 0x60);\n              *(ulong *)(lVar13 + 0x48) = uVar11;\n              if (uVar14 - *(long *)(lVar13 + 0x38) < uVar11 - *(long *)(lVar13 + 0x38)) {\n                *(ulong *)(lVar13 + 0x48) = uVar14;\n                uVar11 = uVar14;\n              }\n              *(ulong *)(lVar13 + 0x40) = uVar11;\n              pfVar12 = frag_alloc(ob);\n              uVar6 = *(undefined8 *)(lVar13 + 0x50);\n              pfVar12->fr_type = rs_fill;\n              last_newf->fr_next = pfVar12;\n              pcVar10 = *(char **)(lVar13 + 0x48);\n              avail_out = (int)uVar6 - (int)pcVar10;\n              last_newf = pfVar12;\n              if (avail_out < 1) {\n                pcVar10 = (char *)dcgettext(0,"can\'t extend frag",5);\n                    /* WARNING: Subroutine does not return */\n                as_fatal(pcVar10);\n              }\n            }\n            *(char **)(lVar13 + 0x48) = pcVar10 + avail_out;\n            next_out = pcVar10;\n            iVar8 = compress_finish(strm,&next_out,&avail_out,&out_size);\n            if (iVar8 < 0) {\n              return;\n            }\n            uVar18 = uVar18 + (long)out_size;\n            last_newf->fr_fix = last_newf->fr_fix + (long)out_size;\n            if (0 < avail_out) {\n              *(long *)(lVar13 + 0x48) = *(long *)(lVar13 + 0x48) + (long)-avail_out;\n            }\n            if (iVar8 == 0) break;\n            pcVar10 = *(char **)(lVar13 + 0x48);\n            uVar14 = *(ulong *)(lVar13 + 0x50);\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            avail_out = (int)uVar14 - (int)pcVar10;\n            if (avail_out < 1) {\n              if (*(char **)(lVar13 + 0x40) == pcVar10) {\n                *(byte *)(lVar13 + 0x80) = *(byte *)(lVar13 + 0x80) | 2;\n              }\n              uVar11 = (ulong)(pcVar10 + *(ulong *)(lVar13 + 0x60)) & ~*(ulong *)(lVar13 + 0x60);\n              *(ulong *)(lVar13 + 0x48) = uVar11;\n              if (uVar14 - *(long *)(lVar13 + 0x38) < uVar11 - *(long *)(lVar13 + 0x38)) {\n                *(ulong *)(lVar13 + 0x48) = uVar14;\n                uVar11 = uVar14;\n              }\n              *(ulong *)(lVar13 + 0x40) = uVar11;\n              pfVar12 = frag_alloc(ob);\n              uVar6 = *(undefined8 *)(lVar13 + 0x50);\n              pfVar12->fr_type = rs_fill;\n              last_newf->fr_next = pfVar12;\n              pcVar10 = *(char **)(lVar13 + 0x48);\n              avail_out = (int)uVar6 - (int)pcVar10;\n              last_newf = pfVar12;\n              if (avail_out < 1) {\n                pcVar10 = (char *)dcgettext(0,"can\'t extend frag",5);\n                    /* WARNING: Subroutine does not return */\n                as_fatal(pcVar10);\n              }\n            }\n            *(char **)(lVar13 + 0x48) = pcVar10 + avail_out;\n            next_out = pcVar10;\n            iVar8 = compress_finish(strm,&next_out,&avail_out,&out_size);\n            if (iVar8 < 0) {\n              return;\n            }\n            uVar18 = uVar18 + (long)out_size;\n            last_newf->fr_fix = last_newf->fr_fix + (long)out_size;\n            if (0 < avail_out) {\n              *(long *)(lVar13 + 0x48) = *(long *)(lVar13 + 0x48) + (long)-avail_out;\n            }\n            if (iVar8 == 0) break;\n            pcVar10 = *(char **)(lVar13 + 0x48);\n            uVar14 = *(ulong *)(lVar13 + 0x50);\n          }" { (expression_statement "avail_out = (int)uVar14 - (int)pcVar10;" (assignment_expression "avail_out = (int)uVar14 - (int)pcVar10" identifier = (binary_expression "(int)uVar14 - (int)pcVar10" (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar10" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (avail_out < 1) {\n              if (*(char **)(lVar13 + 0x40) == pcVar10) {\n                *(byte *)(lVar13 + 0x80) = *(byte *)(lVar13 + 0x80) | 2;\n              }\n              uVar11 = (ulong)(pcVar10 + *(ulong *)(lVar13 + 0x60)) & ~*(ulong *)(lVar13 + 0x60);\n              *(ulong *)(lVar13 + 0x48) = uVar11;\n              if (uVar14 - *(long *)(lVar13 + 0x38) < uVar11 - *(long *)(lVar13 + 0x38)) {\n                *(ulong *)(lVar13 + 0x48) = uVar14;\n                uVar11 = uVar14;\n              }\n              *(ulong *)(lVar13 + 0x40) = uVar11;\n              pfVar12 = frag_alloc(ob);\n              uVar6 = *(undefined8 *)(lVar13 + 0x50);\n              pfVar12->fr_type = rs_fill;\n              last_newf->fr_next = pfVar12;\n              pcVar10 = *(char **)(lVar13 + 0x48);\n              avail_out = (int)uVar6 - (int)pcVar10;\n              last_newf = pfVar12;\n              if (avail_out < 1) {\n                pcVar10 = (char *)dcgettext(0,"can\'t extend frag",5);\n                    /* WARNING: Subroutine does not return */\n                as_fatal(pcVar10);\n              }\n            }" if (parenthesized_expression "(avail_out < 1)" ( (binary_expression "avail_out < 1" identifier < number_literal) )) (compound_statement "{\n              if (*(char **)(lVar13 + 0x40) == pcVar10) {\n                *(byte *)(lVar13 + 0x80) = *(byte *)(lVar13 + 0x80) | 2;\n              }\n              uVar11 = (ulong)(pcVar10 + *(ulong *)(lVar13 + 0x60)) & ~*(ulong *)(lVar13 + 0x60);\n              *(ulong *)(lVar13 + 0x48) = uVar11;\n              if (uVar14 - *(long *)(lVar13 + 0x38) < uVar11 - *(long *)(lVar13 + 0x38)) {\n                *(ulong *)(lVar13 + 0x48) = uVar14;\n                uVar11 = uVar14;\n              }\n              *(ulong *)(lVar13 + 0x40) = uVar11;\n              pfVar12 = frag_alloc(ob);\n              uVar6 = *(undefined8 *)(lVar13 + 0x50);\n              pfVar12->fr_type = rs_fill;\n              last_newf->fr_next = pfVar12;\n              pcVar10 = *(char **)(lVar13 + 0x48);\n              avail_out = (int)uVar6 - (int)pcVar10;\n              last_newf = pfVar12;\n              if (avail_out < 1) {\n                pcVar10 = (char *)dcgettext(0,"can\'t extend frag",5);\n                    /* WARNING: Subroutine does not return */\n                as_fatal(pcVar10);\n              }\n            }" { (if_statement "if (*(char **)(lVar13 + 0x40) == pcVar10) {\n                *(byte *)(lVar13 + 0x80) = *(byte *)(lVar13 + 0x80) | 2;\n              }" if (parenthesized_expression "(*(char **)(lVar13 + 0x40) == pcVar10)" ( (binary_expression "*(char **)(lVar13 + 0x40) == pcVar10" (pointer_expression "*(char **)(lVar13 + 0x40)" * (cast_expression "(char **)(lVar13 + 0x40)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar13 + 0x40)" ( (binary_expression "lVar13 + 0x40" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n                *(byte *)(lVar13 + 0x80) = *(byte *)(lVar13 + 0x80) | 2;\n              }" { (expression_statement "*(byte *)(lVar13 + 0x80) = *(byte *)(lVar13 + 0x80) | 2;" (assignment_expression "*(byte *)(lVar13 + 0x80) = *(byte *)(lVar13 + 0x80) | 2" (pointer_expression "*(byte *)(lVar13 + 0x80)" * (cast_expression "(byte *)(lVar13 + 0x80)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x80)" ( (binary_expression "lVar13 + 0x80" identifier + number_literal) )))) = (binary_expression "*(byte *)(lVar13 + 0x80) | 2" (pointer_expression "*(byte *)(lVar13 + 0x80)" * (cast_expression "(byte *)(lVar13 + 0x80)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x80)" ( (binary_expression "lVar13 + 0x80" identifier + number_literal) )))) | number_literal)) ;) })) (expression_statement "uVar11 = (ulong)(pcVar10 + *(ulong *)(lVar13 + 0x60)) & ~*(ulong *)(lVar13 + 0x60);" (assignment_expression "uVar11 = (ulong)(pcVar10 + *(ulong *)(lVar13 + 0x60)) & ~*(ulong *)(lVar13 + 0x60)" identifier = (binary_expression "(ulong)(pcVar10 + *(ulong *)(lVar13 + 0x60)) & ~*(ulong *)(lVar13 + 0x60)" (call_expression "(ulong)(pcVar10 + *(ulong *)(lVar13 + 0x60))" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pcVar10 + *(ulong *)(lVar13 + 0x60))" ( (binary_expression "pcVar10 + *(ulong *)(lVar13 + 0x60)" identifier + (pointer_expression "*(ulong *)(lVar13 + 0x60)" * (cast_expression "(ulong *)(lVar13 + 0x60)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x60)" ( (binary_expression "lVar13 + 0x60" identifier + number_literal) ))))) ))) & (unary_expression "~*(ulong *)(lVar13 + 0x60)" ~ (pointer_expression "*(ulong *)(lVar13 + 0x60)" * (cast_expression "(ulong *)(lVar13 + 0x60)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x60)" ( (binary_expression "lVar13 + 0x60" identifier + number_literal) ))))))) ;) (expression_statement "*(ulong *)(lVar13 + 0x48) = uVar11;" (assignment_expression "*(ulong *)(lVar13 + 0x48) = uVar11" (pointer_expression "*(ulong *)(lVar13 + 0x48)" * (cast_expression "(ulong *)(lVar13 + 0x48)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x48)" ( (binary_expression "lVar13 + 0x48" identifier + number_literal) )))) = identifier) ;) (if_statement "if (uVar14 - *(long *)(lVar13 + 0x38) < uVar11 - *(long *)(lVar13 + 0x38)) {\n                *(ulong *)(lVar13 + 0x48) = uVar14;\n                uVar11 = uVar14;\n              }" if (parenthesized_expression "(uVar14 - *(long *)(lVar13 + 0x38) < uVar11 - *(long *)(lVar13 + 0x38))" ( (binary_expression "uVar14 - *(long *)(lVar13 + 0x38) < uVar11 - *(long *)(lVar13 + 0x38)" (binary_expression "uVar14 - *(long *)(lVar13 + 0x38)" identifier - (pointer_expression "*(long *)(lVar13 + 0x38)" * (cast_expression "(long *)(lVar13 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x38)" ( (binary_expression "lVar13 + 0x38" identifier + number_literal) ))))) < (binary_expression "uVar11 - *(long *)(lVar13 + 0x38)" identifier - (pointer_expression "*(long *)(lVar13 + 0x38)" * (cast_expression "(long *)(lVar13 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x38)" ( (binary_expression "lVar13 + 0x38" identifier + number_literal) )))))) )) (compound_statement "{\n                *(ulong *)(lVar13 + 0x48) = uVar14;\n                uVar11 = uVar14;\n              }" { (expression_statement "*(ulong *)(lVar13 + 0x48) = uVar14;" (assignment_expression "*(ulong *)(lVar13 + 0x48) = uVar14" (pointer_expression "*(ulong *)(lVar13 + 0x48)" * (cast_expression "(ulong *)(lVar13 + 0x48)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x48)" ( (binary_expression "lVar13 + 0x48" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar11 = uVar14;" (assignment_expression "uVar11 = uVar14" identifier = identifier) ;) })) (expression_statement "*(ulong *)(lVar13 + 0x40) = uVar11;" (assignment_expression "*(ulong *)(lVar13 + 0x40) = uVar11" (pointer_expression "*(ulong *)(lVar13 + 0x40)" * (cast_expression "(ulong *)(lVar13 + 0x40)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x40)" ( (binary_expression "lVar13 + 0x40" identifier + number_literal) )))) = identifier) ;) (expression_statement "pfVar12 = frag_alloc(ob);" (assignment_expression "pfVar12 = frag_alloc(ob)" identifier = (call_expression "frag_alloc(ob)" identifier (argument_list "(ob)" ( identifier )))) ;) (expression_statement "uVar6 = *(undefined8 *)(lVar13 + 0x50);" (assignment_expression "uVar6 = *(undefined8 *)(lVar13 + 0x50)" identifier = (pointer_expression "*(undefined8 *)(lVar13 + 0x50)" * (cast_expression "(undefined8 *)(lVar13 + 0x50)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x50)" ( (binary_expression "lVar13 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "pfVar12->fr_type = rs_fill;" (assignment_expression "pfVar12->fr_type = rs_fill" (field_expression "pfVar12->fr_type" identifier -> field_identifier) = identifier) ;) (expression_statement "last_newf->fr_next = pfVar12;" (assignment_expression "last_newf->fr_next = pfVar12" (field_expression "last_newf->fr_next" identifier -> field_identifier) = identifier) ;) (expression_statement "pcVar10 = *(char **)(lVar13 + 0x48);" (assignment_expression "pcVar10 = *(char **)(lVar13 + 0x48)" identifier = (pointer_expression "*(char **)(lVar13 + 0x48)" * (cast_expression "(char **)(lVar13 + 0x48)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar13 + 0x48)" ( (binary_expression "lVar13 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "avail_out = (int)uVar6 - (int)pcVar10;" (assignment_expression "avail_out = (int)uVar6 - (int)pcVar10" identifier = (binary_expression "(int)uVar6 - (int)pcVar10" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar10" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "last_newf = pfVar12;" (assignment_expression "last_newf = pfVar12" identifier = identifier) ;) (if_statement "if (avail_out < 1) {\n                pcVar10 = (char *)dcgettext(0,"can\'t extend frag",5);\n                    /* WARNING: Subroutine does not return */\n                as_fatal(pcVar10);\n              }" if (parenthesized_expression "(avail_out < 1)" ( (binary_expression "avail_out < 1" identifier < number_literal) )) (compound_statement "{\n                pcVar10 = (char *)dcgettext(0,"can\'t extend frag",5);\n                    /* WARNING: Subroutine does not return */\n                as_fatal(pcVar10);\n              }" { (expression_statement "pcVar10 = (char *)dcgettext(0,"can\'t extend frag",5);" (assignment_expression "pcVar10 = (char *)dcgettext(0,"can\'t extend frag",5)" identifier = (cast_expression "(char *)dcgettext(0,"can\'t extend frag",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"can\'t extend frag",5)" identifier (argument_list "(0,"can\'t extend frag",5)" ( number_literal , (string_literal ""can\'t extend frag"" " string_content escape_sequence string_content ") , number_literal ))))) ;) comment (expression_statement "as_fatal(pcVar10);" (call_expression "as_fatal(pcVar10)" identifier (argument_list "(pcVar10)" ( identifier ))) ;) })) })) (expression_statement "*(char **)(lVar13 + 0x48) = pcVar10 + avail_out;" (assignment_expression "*(char **)(lVar13 + 0x48) = pcVar10 + avail_out" (pointer_expression "*(char **)(lVar13 + 0x48)" * (cast_expression "(char **)(lVar13 + 0x48)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar13 + 0x48)" ( (binary_expression "lVar13 + 0x48" identifier + number_literal) )))) = (binary_expression "pcVar10 + avail_out" identifier + identifier)) ;) (expression_statement "next_out = pcVar10;" (assignment_expression "next_out = pcVar10" identifier = identifier) ;) (expression_statement "iVar8 = compress_finish(strm,&next_out,&avail_out,&out_size);" (assignment_expression "iVar8 = compress_finish(strm,&next_out,&avail_out,&out_size)" identifier = (call_expression "compress_finish(strm,&next_out,&avail_out,&out_size)" identifier (argument_list "(strm,&next_out,&avail_out,&out_size)" ( identifier , (pointer_expression "&next_out" & identifier) , (pointer_expression "&avail_out" & identifier) , (pointer_expression "&out_size" & identifier) )))) ;) (if_statement "if (iVar8 < 0) {\n              return;\n            }" if (parenthesized_expression "(iVar8 < 0)" ( (binary_expression "iVar8 < 0" identifier < number_literal) )) (compound_statement "{\n              return;\n            }" { (return_statement "return;" return ;) })) (expression_statement "uVar18 = uVar18 + (long)out_size;" (assignment_expression "uVar18 = uVar18 + (long)out_size" identifier = (binary_expression "uVar18 + (long)out_size" identifier + (cast_expression "(long)out_size" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (expression_statement "last_newf->fr_fix = last_newf->fr_fix + (long)out_size;" (assignment_expression "last_newf->fr_fix = last_newf->fr_fix + (long)out_size" (field_expression "last_newf->fr_fix" identifier -> field_identifier) = (binary_expression "last_newf->fr_fix + (long)out_size" (field_expression "last_newf->fr_fix" identifier -> field_identifier) + (cast_expression "(long)out_size" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (if_statement "if (0 < avail_out) {\n              *(long *)(lVar13 + 0x48) = *(long *)(lVar13 + 0x48) + (long)-avail_out;\n            }" if (parenthesized_expression "(0 < avail_out)" ( (binary_expression "0 < avail_out" number_literal < identifier) )) (compound_statement "{\n              *(long *)(lVar13 + 0x48) = *(long *)(lVar13 + 0x48) + (long)-avail_out;\n            }" { (expression_statement "*(long *)(lVar13 + 0x48) = *(long *)(lVar13 + 0x48) + (long)-avail_out;" (assignment_expression "*(long *)(lVar13 + 0x48) = *(long *)(lVar13 + 0x48) + (long)-avail_out" (pointer_expression "*(long *)(lVar13 + 0x48)" * (cast_expression "(long *)(lVar13 + 0x48)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x48)" ( (binary_expression "lVar13 + 0x48" identifier + number_literal) )))) = (binary_expression "*(long *)(lVar13 + 0x48) + (long)-avail_out" (pointer_expression "*(long *)(lVar13 + 0x48)" * (cast_expression "(long *)(lVar13 + 0x48)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x48)" ( (binary_expression "lVar13 + 0x48" identifier + number_literal) )))) + (cast_expression "(long)-avail_out" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (unary_expression "-avail_out" - identifier)))) ;) })) (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "pcVar10 = *(char **)(lVar13 + 0x48);" (assignment_expression "pcVar10 = *(char **)(lVar13 + 0x48)" identifier = (pointer_expression "*(char **)(lVar13 + 0x48)" * (cast_expression "(char **)(lVar13 + 0x48)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar13 + 0x48)" ( (binary_expression "lVar13 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = *(ulong *)(lVar13 + 0x50);" (assignment_expression "uVar14 = *(ulong *)(lVar13 + 0x50)" identifier = (pointer_expression "*(ulong *)(lVar13 + 0x50)" * (cast_expression "(ulong *)(lVar13 + 0x50)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x50)" ( (binary_expression "lVar13 + 0x50" identifier + number_literal) ))))) ;) }))) (if_statement "if (uVar18 < uVar1) {\n            puVar7 = (undefined8 *)*plVar3;\n            *puVar7 = local_88;\n            puVar7[1] = last_newf;\n            bfd_update_compression_header(abfd,local_88->fr_literal,sec);\n            iVar8 = bfd_set_section_size(abfd,sec,uVar18);\n            if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/write.c",0x622,"compress_debug");\n            }\n            if (local_5c == 0) {\n              pcVar10 = (char *)concat(&DAT_0014ff08,pbVar2 + 1,0);\n              sec->name = pcVar10;\n            }\n          }" if (parenthesized_expression "(uVar18 < uVar1)" ( (binary_expression "uVar18 < uVar1" identifier < identifier) )) (compound_statement "{\n            puVar7 = (undefined8 *)*plVar3;\n            *puVar7 = local_88;\n            puVar7[1] = last_newf;\n            bfd_update_compression_header(abfd,local_88->fr_literal,sec);\n            iVar8 = bfd_set_section_size(abfd,sec,uVar18);\n            if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/write.c",0x622,"compress_debug");\n            }\n            if (local_5c == 0) {\n              pcVar10 = (char *)concat(&DAT_0014ff08,pbVar2 + 1,0);\n              sec->name = pcVar10;\n            }\n          }" { (expression_statement "puVar7 = (undefined8 *)*plVar3;" (assignment_expression "puVar7 = (undefined8 *)*plVar3" identifier = (cast_expression "(undefined8 *)*plVar3" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar3" * identifier))) ;) (expression_statement "*puVar7 = local_88;" (assignment_expression "*puVar7 = local_88" (pointer_expression "*puVar7" * identifier) = identifier) ;) (expression_statement "puVar7[1] = last_newf;" (assignment_expression "puVar7[1] = last_newf" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bfd_update_compression_header(abfd,local_88->fr_literal,sec);" (call_expression "bfd_update_compression_header(abfd,local_88->fr_literal,sec)" identifier (argument_list "(abfd,local_88->fr_literal,sec)" ( identifier , (field_expression "local_88->fr_literal" identifier -> field_identifier) , identifier ))) ;) (expression_statement "iVar8 = bfd_set_section_size(abfd,sec,uVar18);" (assignment_expression "iVar8 = bfd_set_section_size(abfd,sec,uVar18)" identifier = (call_expression "bfd_set_section_size(abfd,sec,uVar18)" identifier (argument_list "(abfd,sec,uVar18)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar8 == 0) {\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/write.c",0x622,"compress_debug");\n            }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n              as_abort("../../gas/write.c",0x622,"compress_debug");\n            }" { comment (expression_statement "as_abort("../../gas/write.c",0x622,"compress_debug");" (call_expression "as_abort("../../gas/write.c",0x622,"compress_debug")" identifier (argument_list "("../../gas/write.c",0x622,"compress_debug")" ( (string_literal ""../../gas/write.c"" " string_content ") , number_literal , (string_literal ""compress_debug"" " string_content ") ))) ;) })) (if_statement "if (local_5c == 0) {\n              pcVar10 = (char *)concat(&DAT_0014ff08,pbVar2 + 1,0);\n              sec->name = pcVar10;\n            }" if (parenthesized_expression "(local_5c == 0)" ( (binary_expression "local_5c == 0" identifier == number_literal) )) (compound_statement "{\n              pcVar10 = (char *)concat(&DAT_0014ff08,pbVar2 + 1,0);\n              sec->name = pcVar10;\n            }" { (expression_statement "pcVar10 = (char *)concat(&DAT_0014ff08,pbVar2 + 1,0);" (assignment_expression "pcVar10 = (char *)concat(&DAT_0014ff08,pbVar2 + 1,0)" identifier = (cast_expression "(char *)concat(&DAT_0014ff08,pbVar2 + 1,0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "concat(&DAT_0014ff08,pbVar2 + 1,0)" identifier (argument_list "(&DAT_0014ff08,pbVar2 + 1,0)" ( (pointer_expression "&DAT_0014ff08" & identifier) , (binary_expression "pbVar2 + 1" identifier + number_literal) , number_literal ))))) ;) (expression_statement "sec->name = pcVar10;" (assignment_expression "sec->name = pcVar10" (field_expression "sec->name" identifier -> field_identifier) = identifier) ;) })) })) })) })) })) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0012dae0(undefined8 param_1,undefined8 *param_2)\n\n{\n  long lVar1;\n  ulong uVar2;\n  byte *pbVar3;\n  long *plVar4;\n  long *plVar5;\n  int iVar6;\n  long lVar7;\n  long lVar8;\n  ulong uVar9;\n  long lVar10;\n  undefined8 uVar11;\n  long lVar12;\n  ulong uVar13;\n  long lVar14;\n  ulong uVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  bool bVar18;\n  bool bVar19;\n  long local_88;\n  uint local_5c;\n  int local_50;\n  int local_4c;\n  long local_48;\n  long local_40 [2];\n  \n  uVar2 = param_2[7];\n  if (0x1f < uVar2) {\n    bVar18 = (*(uint *)(param_2 + 4) & 0x101) == 0;\n    bVar19 = (*(uint *)(param_2 + 4) & 0x101) == 1;\n    if (!bVar19) {\n      pbVar3 = (byte *)*param_2;\n      lVar12 = 7;\n      pbVar16 = pbVar3;\n      pbVar17 = &DAT_0014ff00;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar18 = *pbVar16 < *pbVar17;\n        bVar19 = *pbVar16 == *pbVar17;\n        pbVar16 = pbVar16 + 1;\n        pbVar17 = pbVar17 + 1;\n      } while (bVar19);\n      if ((!bVar18 && !bVar19) == bVar18) {\n        plVar4 = (long *)param_2[0x15];\n        lVar12 = *plVar4;\n        lVar7 = FUN_0010c160();\n        if (lVar7 != 0) {\n          if (DAT_001e4554 == 5) {\n            local_5c = bfd_get_compression_header_size(DAT_001e4750,0);\n            uVar15 = (ulong)local_5c;\n          }\n          else {\n            local_5c = 0;\n            uVar15 = 0xc;\n          }\n          lVar1 = lVar12 + 0x30;\n          local_88 = FUN_00116bb0(lVar1);\n          uVar13 = *(ulong *)(lVar12 + 0x50);\n          lVar8 = *(long *)(lVar12 + 0x48);\n          if (uVar13 - lVar8 < uVar15) {\n            local_88 = FUN_00116bb0(lVar1);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n            lVar8 = *(long *)(lVar12 + 0x48);\n            if (uVar13 - lVar8 < uVar15) {\n              uVar11 = dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5);\n                    \n              FUN_0011dc10(uVar11,uVar15);\n            }\n          }\n          lVar8 = lVar8 + uVar15;\n          *(long *)(lVar12 + 0x48) = lVar8;\n          *(ulong *)(local_88 + 0x10) = uVar15;\n          local_48 = local_88;\n          plVar5 = (long *)*plVar4;\n          *(undefined4 *)(local_88 + 0x5c) = 1;\n          lVar10 = *plVar5;\n          if (lVar10 != 0) {\n            if (*(int *)(lVar10 + 0x5c) == 1) {\n              do {\n                lVar8 = *(long *)(lVar10 + 0x10);\n                if (lVar8 != 0) {\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }\n                lVar14 = *(long *)(lVar10 + 0x20);\n                uVar13 = *(ulong *)(lVar10 + 0x18);\n                if (lVar14 < 0) {\n                    \n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((uVar13 != 0) && (lVar14 != 0)) {\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }\n                lVar10 = *(long *)(lVar10 + 0x38);\n                if (lVar10 == 0) {\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar10 + 0x5c) == 1);\n            }\n                    \n            FUN_0011dd00("../../gas/write.c",0x5d4,"compress_debug");\n          }\nLAB_0012dd51:\n          while( true ) {\n            local_50 = (int)uVar13 - (int)lVar8;\n            if (local_50 < 1) {\n              if (*(long *)(lVar12 + 0x40) == lVar8) {\n                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;\n              }\n              uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60);\n              *(ulong *)(lVar12 + 0x48) = uVar9;\n              if (uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)) {\n                *(ulong *)(lVar12 + 0x48) = uVar13;\n                uVar9 = uVar13;\n              }\n              *(ulong *)(lVar12 + 0x40) = uVar9;\n              lVar10 = FUN_00116bb0(lVar1);\n              uVar11 = *(undefined8 *)(lVar12 + 0x50);\n              *(undefined4 *)(lVar10 + 0x5c) = 1;\n              *(long *)(local_48 + 0x38) = lVar10;\n              lVar8 = *(long *)(lVar12 + 0x48);\n              local_50 = (int)uVar11 - (int)lVar8;\n              local_48 = lVar10;\n              if (local_50 < 1) {\n                uVar11 = dcgettext(0,"can\'t extend frag",5);\n                    \n                FUN_0011dc10(uVar11);\n              }\n            }\n            *(long *)(lVar12 + 0x48) = lVar8 + local_50;\n            local_40[0] = lVar8;\n            iVar6 = FUN_0010c220(lVar7,local_40,&local_50,&local_4c);\n            if (iVar6 < 0) {\n              return;\n            }\n            uVar15 = uVar15 + (long)local_4c;\n            *(long *)(local_48 + 0x10) = *(long *)(local_48 + 0x10) + (long)local_4c;\n            if (0 < local_50) {\n              *(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50;\n            }\n            if (iVar6 == 0) break;\n            lVar8 = *(long *)(lVar12 + 0x48);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n          }\n          if (uVar15 < uVar2) {\n            plVar4 = (long *)*plVar4;\n            *plVar4 = local_88;\n            plVar4[1] = local_48;\n            bfd_update_compression_header(param_1,local_88 + 0x80,param_2);\n            iVar6 = bfd_set_section_size(param_1,param_2,uVar15);\n            if (iVar6 == 0) {\n                    \n              FUN_0011dd00("../../gas/write.c",0x622,"compress_debug");\n            }\n            if (local_5c == 0) {\n              uVar11 = concat(&DAT_0014ff08,pbVar3 + 1,0);\n              *param_2 = uVar11;\n            }\n          }\n        }\n      }\n    }\n  }\n  return;\n}\n\n" (function_definition "void FUN_0012dae0(undefined8 param_1,undefined8 *param_2)\n\n{\n  long lVar1;\n  ulong uVar2;\n  byte *pbVar3;\n  long *plVar4;\n  long *plVar5;\n  int iVar6;\n  long lVar7;\n  long lVar8;\n  ulong uVar9;\n  long lVar10;\n  undefined8 uVar11;\n  long lVar12;\n  ulong uVar13;\n  long lVar14;\n  ulong uVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  bool bVar18;\n  bool bVar19;\n  long local_88;\n  uint local_5c;\n  int local_50;\n  int local_4c;\n  long local_48;\n  long local_40 [2];\n  \n  uVar2 = param_2[7];\n  if (0x1f < uVar2) {\n    bVar18 = (*(uint *)(param_2 + 4) & 0x101) == 0;\n    bVar19 = (*(uint *)(param_2 + 4) & 0x101) == 1;\n    if (!bVar19) {\n      pbVar3 = (byte *)*param_2;\n      lVar12 = 7;\n      pbVar16 = pbVar3;\n      pbVar17 = &DAT_0014ff00;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar18 = *pbVar16 < *pbVar17;\n        bVar19 = *pbVar16 == *pbVar17;\n        pbVar16 = pbVar16 + 1;\n        pbVar17 = pbVar17 + 1;\n      } while (bVar19);\n      if ((!bVar18 && !bVar19) == bVar18) {\n        plVar4 = (long *)param_2[0x15];\n        lVar12 = *plVar4;\n        lVar7 = FUN_0010c160();\n        if (lVar7 != 0) {\n          if (DAT_001e4554 == 5) {\n            local_5c = bfd_get_compression_header_size(DAT_001e4750,0);\n            uVar15 = (ulong)local_5c;\n          }\n          else {\n            local_5c = 0;\n            uVar15 = 0xc;\n          }\n          lVar1 = lVar12 + 0x30;\n          local_88 = FUN_00116bb0(lVar1);\n          uVar13 = *(ulong *)(lVar12 + 0x50);\n          lVar8 = *(long *)(lVar12 + 0x48);\n          if (uVar13 - lVar8 < uVar15) {\n            local_88 = FUN_00116bb0(lVar1);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n            lVar8 = *(long *)(lVar12 + 0x48);\n            if (uVar13 - lVar8 < uVar15) {\n              uVar11 = dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5);\n                    \n              FUN_0011dc10(uVar11,uVar15);\n            }\n          }\n          lVar8 = lVar8 + uVar15;\n          *(long *)(lVar12 + 0x48) = lVar8;\n          *(ulong *)(local_88 + 0x10) = uVar15;\n          local_48 = local_88;\n          plVar5 = (long *)*plVar4;\n          *(undefined4 *)(local_88 + 0x5c) = 1;\n          lVar10 = *plVar5;\n          if (lVar10 != 0) {\n            if (*(int *)(lVar10 + 0x5c) == 1) {\n              do {\n                lVar8 = *(long *)(lVar10 + 0x10);\n                if (lVar8 != 0) {\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }\n                lVar14 = *(long *)(lVar10 + 0x20);\n                uVar13 = *(ulong *)(lVar10 + 0x18);\n                if (lVar14 < 0) {\n                    \n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((uVar13 != 0) && (lVar14 != 0)) {\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }\n                lVar10 = *(long *)(lVar10 + 0x38);\n                if (lVar10 == 0) {\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar10 + 0x5c) == 1);\n            }\n                    \n            FUN_0011dd00("../../gas/write.c",0x5d4,"compress_debug");\n          }\nLAB_0012dd51:\n          while( true ) {\n            local_50 = (int)uVar13 - (int)lVar8;\n            if (local_50 < 1) {\n              if (*(long *)(lVar12 + 0x40) == lVar8) {\n                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;\n              }\n              uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60);\n              *(ulong *)(lVar12 + 0x48) = uVar9;\n              if (uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)) {\n                *(ulong *)(lVar12 + 0x48) = uVar13;\n                uVar9 = uVar13;\n              }\n              *(ulong *)(lVar12 + 0x40) = uVar9;\n              lVar10 = FUN_00116bb0(lVar1);\n              uVar11 = *(undefined8 *)(lVar12 + 0x50);\n              *(undefined4 *)(lVar10 + 0x5c) = 1;\n              *(long *)(local_48 + 0x38) = lVar10;\n              lVar8 = *(long *)(lVar12 + 0x48);\n              local_50 = (int)uVar11 - (int)lVar8;\n              local_48 = lVar10;\n              if (local_50 < 1) {\n                uVar11 = dcgettext(0,"can\'t extend frag",5);\n                    \n                FUN_0011dc10(uVar11);\n              }\n            }\n            *(long *)(lVar12 + 0x48) = lVar8 + local_50;\n            local_40[0] = lVar8;\n            iVar6 = FUN_0010c220(lVar7,local_40,&local_50,&local_4c);\n            if (iVar6 < 0) {\n              return;\n            }\n            uVar15 = uVar15 + (long)local_4c;\n            *(long *)(local_48 + 0x10) = *(long *)(local_48 + 0x10) + (long)local_4c;\n            if (0 < local_50) {\n              *(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50;\n            }\n            if (iVar6 == 0) break;\n            lVar8 = *(long *)(lVar12 + 0x48);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n          }\n          if (uVar15 < uVar2) {\n            plVar4 = (long *)*plVar4;\n            *plVar4 = local_88;\n            plVar4[1] = local_48;\n            bfd_update_compression_header(param_1,local_88 + 0x80,param_2);\n            iVar6 = bfd_set_section_size(param_1,param_2,uVar15);\n            if (iVar6 == 0) {\n                    \n              FUN_0011dd00("../../gas/write.c",0x622,"compress_debug");\n            }\n            if (local_5c == 0) {\n              uVar11 = concat(&DAT_0014ff08,pbVar3 + 1,0);\n              *param_2 = uVar11;\n            }\n          }\n        }\n      }\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0012dae0(undefined8 param_1,undefined8 *param_2)" identifier (parameter_list "(undefined8 param_1,undefined8 *param_2)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "undefined8 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  long lVar1;\n  ulong uVar2;\n  byte *pbVar3;\n  long *plVar4;\n  long *plVar5;\n  int iVar6;\n  long lVar7;\n  long lVar8;\n  ulong uVar9;\n  long lVar10;\n  undefined8 uVar11;\n  long lVar12;\n  ulong uVar13;\n  long lVar14;\n  ulong uVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  bool bVar18;\n  bool bVar19;\n  long local_88;\n  uint local_5c;\n  int local_50;\n  int local_4c;\n  long local_48;\n  long local_40 [2];\n  \n  uVar2 = param_2[7];\n  if (0x1f < uVar2) {\n    bVar18 = (*(uint *)(param_2 + 4) & 0x101) == 0;\n    bVar19 = (*(uint *)(param_2 + 4) & 0x101) == 1;\n    if (!bVar19) {\n      pbVar3 = (byte *)*param_2;\n      lVar12 = 7;\n      pbVar16 = pbVar3;\n      pbVar17 = &DAT_0014ff00;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar18 = *pbVar16 < *pbVar17;\n        bVar19 = *pbVar16 == *pbVar17;\n        pbVar16 = pbVar16 + 1;\n        pbVar17 = pbVar17 + 1;\n      } while (bVar19);\n      if ((!bVar18 && !bVar19) == bVar18) {\n        plVar4 = (long *)param_2[0x15];\n        lVar12 = *plVar4;\n        lVar7 = FUN_0010c160();\n        if (lVar7 != 0) {\n          if (DAT_001e4554 == 5) {\n            local_5c = bfd_get_compression_header_size(DAT_001e4750,0);\n            uVar15 = (ulong)local_5c;\n          }\n          else {\n            local_5c = 0;\n            uVar15 = 0xc;\n          }\n          lVar1 = lVar12 + 0x30;\n          local_88 = FUN_00116bb0(lVar1);\n          uVar13 = *(ulong *)(lVar12 + 0x50);\n          lVar8 = *(long *)(lVar12 + 0x48);\n          if (uVar13 - lVar8 < uVar15) {\n            local_88 = FUN_00116bb0(lVar1);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n            lVar8 = *(long *)(lVar12 + 0x48);\n            if (uVar13 - lVar8 < uVar15) {\n              uVar11 = dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5);\n                    \n              FUN_0011dc10(uVar11,uVar15);\n            }\n          }\n          lVar8 = lVar8 + uVar15;\n          *(long *)(lVar12 + 0x48) = lVar8;\n          *(ulong *)(local_88 + 0x10) = uVar15;\n          local_48 = local_88;\n          plVar5 = (long *)*plVar4;\n          *(undefined4 *)(local_88 + 0x5c) = 1;\n          lVar10 = *plVar5;\n          if (lVar10 != 0) {\n            if (*(int *)(lVar10 + 0x5c) == 1) {\n              do {\n                lVar8 = *(long *)(lVar10 + 0x10);\n                if (lVar8 != 0) {\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }\n                lVar14 = *(long *)(lVar10 + 0x20);\n                uVar13 = *(ulong *)(lVar10 + 0x18);\n                if (lVar14 < 0) {\n                    \n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((uVar13 != 0) && (lVar14 != 0)) {\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }\n                lVar10 = *(long *)(lVar10 + 0x38);\n                if (lVar10 == 0) {\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar10 + 0x5c) == 1);\n            }\n                    \n            FUN_0011dd00("../../gas/write.c",0x5d4,"compress_debug");\n          }\nLAB_0012dd51:\n          while( true ) {\n            local_50 = (int)uVar13 - (int)lVar8;\n            if (local_50 < 1) {\n              if (*(long *)(lVar12 + 0x40) == lVar8) {\n                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;\n              }\n              uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60);\n              *(ulong *)(lVar12 + 0x48) = uVar9;\n              if (uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)) {\n                *(ulong *)(lVar12 + 0x48) = uVar13;\n                uVar9 = uVar13;\n              }\n              *(ulong *)(lVar12 + 0x40) = uVar9;\n              lVar10 = FUN_00116bb0(lVar1);\n              uVar11 = *(undefined8 *)(lVar12 + 0x50);\n              *(undefined4 *)(lVar10 + 0x5c) = 1;\n              *(long *)(local_48 + 0x38) = lVar10;\n              lVar8 = *(long *)(lVar12 + 0x48);\n              local_50 = (int)uVar11 - (int)lVar8;\n              local_48 = lVar10;\n              if (local_50 < 1) {\n                uVar11 = dcgettext(0,"can\'t extend frag",5);\n                    \n                FUN_0011dc10(uVar11);\n              }\n            }\n            *(long *)(lVar12 + 0x48) = lVar8 + local_50;\n            local_40[0] = lVar8;\n            iVar6 = FUN_0010c220(lVar7,local_40,&local_50,&local_4c);\n            if (iVar6 < 0) {\n              return;\n            }\n            uVar15 = uVar15 + (long)local_4c;\n            *(long *)(local_48 + 0x10) = *(long *)(local_48 + 0x10) + (long)local_4c;\n            if (0 < local_50) {\n              *(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50;\n            }\n            if (iVar6 == 0) break;\n            lVar8 = *(long *)(lVar12 + 0x48);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n          }\n          if (uVar15 < uVar2) {\n            plVar4 = (long *)*plVar4;\n            *plVar4 = local_88;\n            plVar4[1] = local_48;\n            bfd_update_compression_header(param_1,local_88 + 0x80,param_2);\n            iVar6 = bfd_set_section_size(param_1,param_2,uVar15);\n            if (iVar6 == 0) {\n                    \n              FUN_0011dd00("../../gas/write.c",0x622,"compress_debug");\n            }\n            if (local_5c == 0) {\n              uVar11 = concat(&DAT_0014ff08,pbVar3 + 1,0);\n              *param_2 = uVar11;\n            }\n          }\n        }\n      }\n    }\n  }\n  return;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar2;" type_identifier identifier ;) (declaration "byte *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "long *plVar4;" (sized_type_specifier "long" long) (pointer_declarator "*plVar4" * identifier) ;) (declaration "long *plVar5;" (sized_type_specifier "long" long) (pointer_declarator "*plVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar8;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar11;" type_identifier identifier ;) (declaration "long lVar12;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar13;" type_identifier identifier ;) (declaration "long lVar14;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar15;" type_identifier identifier ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "bool bVar18;" primitive_type identifier ;) (declaration "bool bVar19;" primitive_type identifier ;) (declaration "long local_88;" (sized_type_specifier "long" long) identifier ;) (declaration "uint local_5c;" type_identifier identifier ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "int local_4c;" primitive_type identifier ;) (declaration "long local_48;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_40 [2];" (sized_type_specifier "long" long) (array_declarator "local_40 [2]" identifier [ number_literal ]) ;) (expression_statement "uVar2 = param_2[7];" (assignment_expression "uVar2 = param_2[7]" identifier = (subscript_expression "param_2[7]" identifier [ number_literal ])) ;) (if_statement "if (0x1f < uVar2) {\n    bVar18 = (*(uint *)(param_2 + 4) & 0x101) == 0;\n    bVar19 = (*(uint *)(param_2 + 4) & 0x101) == 1;\n    if (!bVar19) {\n      pbVar3 = (byte *)*param_2;\n      lVar12 = 7;\n      pbVar16 = pbVar3;\n      pbVar17 = &DAT_0014ff00;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar18 = *pbVar16 < *pbVar17;\n        bVar19 = *pbVar16 == *pbVar17;\n        pbVar16 = pbVar16 + 1;\n        pbVar17 = pbVar17 + 1;\n      } while (bVar19);\n      if ((!bVar18 && !bVar19) == bVar18) {\n        plVar4 = (long *)param_2[0x15];\n        lVar12 = *plVar4;\n        lVar7 = FUN_0010c160();\n        if (lVar7 != 0) {\n          if (DAT_001e4554 == 5) {\n            local_5c = bfd_get_compression_header_size(DAT_001e4750,0);\n            uVar15 = (ulong)local_5c;\n          }\n          else {\n            local_5c = 0;\n            uVar15 = 0xc;\n          }\n          lVar1 = lVar12 + 0x30;\n          local_88 = FUN_00116bb0(lVar1);\n          uVar13 = *(ulong *)(lVar12 + 0x50);\n          lVar8 = *(long *)(lVar12 + 0x48);\n          if (uVar13 - lVar8 < uVar15) {\n            local_88 = FUN_00116bb0(lVar1);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n            lVar8 = *(long *)(lVar12 + 0x48);\n            if (uVar13 - lVar8 < uVar15) {\n              uVar11 = dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5);\n                    \n              FUN_0011dc10(uVar11,uVar15);\n            }\n          }\n          lVar8 = lVar8 + uVar15;\n          *(long *)(lVar12 + 0x48) = lVar8;\n          *(ulong *)(local_88 + 0x10) = uVar15;\n          local_48 = local_88;\n          plVar5 = (long *)*plVar4;\n          *(undefined4 *)(local_88 + 0x5c) = 1;\n          lVar10 = *plVar5;\n          if (lVar10 != 0) {\n            if (*(int *)(lVar10 + 0x5c) == 1) {\n              do {\n                lVar8 = *(long *)(lVar10 + 0x10);\n                if (lVar8 != 0) {\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }\n                lVar14 = *(long *)(lVar10 + 0x20);\n                uVar13 = *(ulong *)(lVar10 + 0x18);\n                if (lVar14 < 0) {\n                    \n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((uVar13 != 0) && (lVar14 != 0)) {\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }\n                lVar10 = *(long *)(lVar10 + 0x38);\n                if (lVar10 == 0) {\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar10 + 0x5c) == 1);\n            }\n                    \n            FUN_0011dd00("../../gas/write.c",0x5d4,"compress_debug");\n          }\nLAB_0012dd51:\n          while( true ) {\n            local_50 = (int)uVar13 - (int)lVar8;\n            if (local_50 < 1) {\n              if (*(long *)(lVar12 + 0x40) == lVar8) {\n                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;\n              }\n              uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60);\n              *(ulong *)(lVar12 + 0x48) = uVar9;\n              if (uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)) {\n                *(ulong *)(lVar12 + 0x48) = uVar13;\n                uVar9 = uVar13;\n              }\n              *(ulong *)(lVar12 + 0x40) = uVar9;\n              lVar10 = FUN_00116bb0(lVar1);\n              uVar11 = *(undefined8 *)(lVar12 + 0x50);\n              *(undefined4 *)(lVar10 + 0x5c) = 1;\n              *(long *)(local_48 + 0x38) = lVar10;\n              lVar8 = *(long *)(lVar12 + 0x48);\n              local_50 = (int)uVar11 - (int)lVar8;\n              local_48 = lVar10;\n              if (local_50 < 1) {\n                uVar11 = dcgettext(0,"can\'t extend frag",5);\n                    \n                FUN_0011dc10(uVar11);\n              }\n            }\n            *(long *)(lVar12 + 0x48) = lVar8 + local_50;\n            local_40[0] = lVar8;\n            iVar6 = FUN_0010c220(lVar7,local_40,&local_50,&local_4c);\n            if (iVar6 < 0) {\n              return;\n            }\n            uVar15 = uVar15 + (long)local_4c;\n            *(long *)(local_48 + 0x10) = *(long *)(local_48 + 0x10) + (long)local_4c;\n            if (0 < local_50) {\n              *(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50;\n            }\n            if (iVar6 == 0) break;\n            lVar8 = *(long *)(lVar12 + 0x48);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n          }\n          if (uVar15 < uVar2) {\n            plVar4 = (long *)*plVar4;\n            *plVar4 = local_88;\n            plVar4[1] = local_48;\n            bfd_update_compression_header(param_1,local_88 + 0x80,param_2);\n            iVar6 = bfd_set_section_size(param_1,param_2,uVar15);\n            if (iVar6 == 0) {\n                    \n              FUN_0011dd00("../../gas/write.c",0x622,"compress_debug");\n            }\n            if (local_5c == 0) {\n              uVar11 = concat(&DAT_0014ff08,pbVar3 + 1,0);\n              *param_2 = uVar11;\n            }\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "(0x1f < uVar2)" ( (binary_expression "0x1f < uVar2" number_literal < identifier) )) (compound_statement "{\n    bVar18 = (*(uint *)(param_2 + 4) & 0x101) == 0;\n    bVar19 = (*(uint *)(param_2 + 4) & 0x101) == 1;\n    if (!bVar19) {\n      pbVar3 = (byte *)*param_2;\n      lVar12 = 7;\n      pbVar16 = pbVar3;\n      pbVar17 = &DAT_0014ff00;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar18 = *pbVar16 < *pbVar17;\n        bVar19 = *pbVar16 == *pbVar17;\n        pbVar16 = pbVar16 + 1;\n        pbVar17 = pbVar17 + 1;\n      } while (bVar19);\n      if ((!bVar18 && !bVar19) == bVar18) {\n        plVar4 = (long *)param_2[0x15];\n        lVar12 = *plVar4;\n        lVar7 = FUN_0010c160();\n        if (lVar7 != 0) {\n          if (DAT_001e4554 == 5) {\n            local_5c = bfd_get_compression_header_size(DAT_001e4750,0);\n            uVar15 = (ulong)local_5c;\n          }\n          else {\n            local_5c = 0;\n            uVar15 = 0xc;\n          }\n          lVar1 = lVar12 + 0x30;\n          local_88 = FUN_00116bb0(lVar1);\n          uVar13 = *(ulong *)(lVar12 + 0x50);\n          lVar8 = *(long *)(lVar12 + 0x48);\n          if (uVar13 - lVar8 < uVar15) {\n            local_88 = FUN_00116bb0(lVar1);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n            lVar8 = *(long *)(lVar12 + 0x48);\n            if (uVar13 - lVar8 < uVar15) {\n              uVar11 = dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5);\n                    \n              FUN_0011dc10(uVar11,uVar15);\n            }\n          }\n          lVar8 = lVar8 + uVar15;\n          *(long *)(lVar12 + 0x48) = lVar8;\n          *(ulong *)(local_88 + 0x10) = uVar15;\n          local_48 = local_88;\n          plVar5 = (long *)*plVar4;\n          *(undefined4 *)(local_88 + 0x5c) = 1;\n          lVar10 = *plVar5;\n          if (lVar10 != 0) {\n            if (*(int *)(lVar10 + 0x5c) == 1) {\n              do {\n                lVar8 = *(long *)(lVar10 + 0x10);\n                if (lVar8 != 0) {\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }\n                lVar14 = *(long *)(lVar10 + 0x20);\n                uVar13 = *(ulong *)(lVar10 + 0x18);\n                if (lVar14 < 0) {\n                    \n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((uVar13 != 0) && (lVar14 != 0)) {\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }\n                lVar10 = *(long *)(lVar10 + 0x38);\n                if (lVar10 == 0) {\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar10 + 0x5c) == 1);\n            }\n                    \n            FUN_0011dd00("../../gas/write.c",0x5d4,"compress_debug");\n          }\nLAB_0012dd51:\n          while( true ) {\n            local_50 = (int)uVar13 - (int)lVar8;\n            if (local_50 < 1) {\n              if (*(long *)(lVar12 + 0x40) == lVar8) {\n                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;\n              }\n              uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60);\n              *(ulong *)(lVar12 + 0x48) = uVar9;\n              if (uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)) {\n                *(ulong *)(lVar12 + 0x48) = uVar13;\n                uVar9 = uVar13;\n              }\n              *(ulong *)(lVar12 + 0x40) = uVar9;\n              lVar10 = FUN_00116bb0(lVar1);\n              uVar11 = *(undefined8 *)(lVar12 + 0x50);\n              *(undefined4 *)(lVar10 + 0x5c) = 1;\n              *(long *)(local_48 + 0x38) = lVar10;\n              lVar8 = *(long *)(lVar12 + 0x48);\n              local_50 = (int)uVar11 - (int)lVar8;\n              local_48 = lVar10;\n              if (local_50 < 1) {\n                uVar11 = dcgettext(0,"can\'t extend frag",5);\n                    \n                FUN_0011dc10(uVar11);\n              }\n            }\n            *(long *)(lVar12 + 0x48) = lVar8 + local_50;\n            local_40[0] = lVar8;\n            iVar6 = FUN_0010c220(lVar7,local_40,&local_50,&local_4c);\n            if (iVar6 < 0) {\n              return;\n            }\n            uVar15 = uVar15 + (long)local_4c;\n            *(long *)(local_48 + 0x10) = *(long *)(local_48 + 0x10) + (long)local_4c;\n            if (0 < local_50) {\n              *(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50;\n            }\n            if (iVar6 == 0) break;\n            lVar8 = *(long *)(lVar12 + 0x48);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n          }\n          if (uVar15 < uVar2) {\n            plVar4 = (long *)*plVar4;\n            *plVar4 = local_88;\n            plVar4[1] = local_48;\n            bfd_update_compression_header(param_1,local_88 + 0x80,param_2);\n            iVar6 = bfd_set_section_size(param_1,param_2,uVar15);\n            if (iVar6 == 0) {\n                    \n              FUN_0011dd00("../../gas/write.c",0x622,"compress_debug");\n            }\n            if (local_5c == 0) {\n              uVar11 = concat(&DAT_0014ff08,pbVar3 + 1,0);\n              *param_2 = uVar11;\n            }\n          }\n        }\n      }\n    }\n  }" { (expression_statement "bVar18 = (*(uint *)(param_2 + 4) & 0x101) == 0;" (assignment_expression "bVar18 = (*(uint *)(param_2 + 4) & 0x101) == 0" identifier = (binary_expression "(*(uint *)(param_2 + 4) & 0x101) == 0" (parenthesized_expression "(*(uint *)(param_2 + 4) & 0x101)" ( (binary_expression "*(uint *)(param_2 + 4) & 0x101" (pointer_expression "*(uint *)(param_2 + 4)" * (cast_expression "(uint *)(param_2 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal)) ;) (expression_statement "bVar19 = (*(uint *)(param_2 + 4) & 0x101) == 1;" (assignment_expression "bVar19 = (*(uint *)(param_2 + 4) & 0x101) == 1" identifier = (binary_expression "(*(uint *)(param_2 + 4) & 0x101) == 1" (parenthesized_expression "(*(uint *)(param_2 + 4) & 0x101)" ( (binary_expression "*(uint *)(param_2 + 4) & 0x101" (pointer_expression "*(uint *)(param_2 + 4)" * (cast_expression "(uint *)(param_2 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal)) ;) (if_statement "if (!bVar19) {\n      pbVar3 = (byte *)*param_2;\n      lVar12 = 7;\n      pbVar16 = pbVar3;\n      pbVar17 = &DAT_0014ff00;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar18 = *pbVar16 < *pbVar17;\n        bVar19 = *pbVar16 == *pbVar17;\n        pbVar16 = pbVar16 + 1;\n        pbVar17 = pbVar17 + 1;\n      } while (bVar19);\n      if ((!bVar18 && !bVar19) == bVar18) {\n        plVar4 = (long *)param_2[0x15];\n        lVar12 = *plVar4;\n        lVar7 = FUN_0010c160();\n        if (lVar7 != 0) {\n          if (DAT_001e4554 == 5) {\n            local_5c = bfd_get_compression_header_size(DAT_001e4750,0);\n            uVar15 = (ulong)local_5c;\n          }\n          else {\n            local_5c = 0;\n            uVar15 = 0xc;\n          }\n          lVar1 = lVar12 + 0x30;\n          local_88 = FUN_00116bb0(lVar1);\n          uVar13 = *(ulong *)(lVar12 + 0x50);\n          lVar8 = *(long *)(lVar12 + 0x48);\n          if (uVar13 - lVar8 < uVar15) {\n            local_88 = FUN_00116bb0(lVar1);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n            lVar8 = *(long *)(lVar12 + 0x48);\n            if (uVar13 - lVar8 < uVar15) {\n              uVar11 = dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5);\n                    \n              FUN_0011dc10(uVar11,uVar15);\n            }\n          }\n          lVar8 = lVar8 + uVar15;\n          *(long *)(lVar12 + 0x48) = lVar8;\n          *(ulong *)(local_88 + 0x10) = uVar15;\n          local_48 = local_88;\n          plVar5 = (long *)*plVar4;\n          *(undefined4 *)(local_88 + 0x5c) = 1;\n          lVar10 = *plVar5;\n          if (lVar10 != 0) {\n            if (*(int *)(lVar10 + 0x5c) == 1) {\n              do {\n                lVar8 = *(long *)(lVar10 + 0x10);\n                if (lVar8 != 0) {\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }\n                lVar14 = *(long *)(lVar10 + 0x20);\n                uVar13 = *(ulong *)(lVar10 + 0x18);\n                if (lVar14 < 0) {\n                    \n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((uVar13 != 0) && (lVar14 != 0)) {\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }\n                lVar10 = *(long *)(lVar10 + 0x38);\n                if (lVar10 == 0) {\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar10 + 0x5c) == 1);\n            }\n                    \n            FUN_0011dd00("../../gas/write.c",0x5d4,"compress_debug");\n          }\nLAB_0012dd51:\n          while( true ) {\n            local_50 = (int)uVar13 - (int)lVar8;\n            if (local_50 < 1) {\n              if (*(long *)(lVar12 + 0x40) == lVar8) {\n                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;\n              }\n              uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60);\n              *(ulong *)(lVar12 + 0x48) = uVar9;\n              if (uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)) {\n                *(ulong *)(lVar12 + 0x48) = uVar13;\n                uVar9 = uVar13;\n              }\n              *(ulong *)(lVar12 + 0x40) = uVar9;\n              lVar10 = FUN_00116bb0(lVar1);\n              uVar11 = *(undefined8 *)(lVar12 + 0x50);\n              *(undefined4 *)(lVar10 + 0x5c) = 1;\n              *(long *)(local_48 + 0x38) = lVar10;\n              lVar8 = *(long *)(lVar12 + 0x48);\n              local_50 = (int)uVar11 - (int)lVar8;\n              local_48 = lVar10;\n              if (local_50 < 1) {\n                uVar11 = dcgettext(0,"can\'t extend frag",5);\n                    \n                FUN_0011dc10(uVar11);\n              }\n            }\n            *(long *)(lVar12 + 0x48) = lVar8 + local_50;\n            local_40[0] = lVar8;\n            iVar6 = FUN_0010c220(lVar7,local_40,&local_50,&local_4c);\n            if (iVar6 < 0) {\n              return;\n            }\n            uVar15 = uVar15 + (long)local_4c;\n            *(long *)(local_48 + 0x10) = *(long *)(local_48 + 0x10) + (long)local_4c;\n            if (0 < local_50) {\n              *(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50;\n            }\n            if (iVar6 == 0) break;\n            lVar8 = *(long *)(lVar12 + 0x48);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n          }\n          if (uVar15 < uVar2) {\n            plVar4 = (long *)*plVar4;\n            *plVar4 = local_88;\n            plVar4[1] = local_48;\n            bfd_update_compression_header(param_1,local_88 + 0x80,param_2);\n            iVar6 = bfd_set_section_size(param_1,param_2,uVar15);\n            if (iVar6 == 0) {\n                    \n              FUN_0011dd00("../../gas/write.c",0x622,"compress_debug");\n            }\n            if (local_5c == 0) {\n              uVar11 = concat(&DAT_0014ff08,pbVar3 + 1,0);\n              *param_2 = uVar11;\n            }\n          }\n        }\n      }\n    }" if (parenthesized_expression "(!bVar19)" ( (unary_expression "!bVar19" ! identifier) )) (compound_statement "{\n      pbVar3 = (byte *)*param_2;\n      lVar12 = 7;\n      pbVar16 = pbVar3;\n      pbVar17 = &DAT_0014ff00;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar18 = *pbVar16 < *pbVar17;\n        bVar19 = *pbVar16 == *pbVar17;\n        pbVar16 = pbVar16 + 1;\n        pbVar17 = pbVar17 + 1;\n      } while (bVar19);\n      if ((!bVar18 && !bVar19) == bVar18) {\n        plVar4 = (long *)param_2[0x15];\n        lVar12 = *plVar4;\n        lVar7 = FUN_0010c160();\n        if (lVar7 != 0) {\n          if (DAT_001e4554 == 5) {\n            local_5c = bfd_get_compression_header_size(DAT_001e4750,0);\n            uVar15 = (ulong)local_5c;\n          }\n          else {\n            local_5c = 0;\n            uVar15 = 0xc;\n          }\n          lVar1 = lVar12 + 0x30;\n          local_88 = FUN_00116bb0(lVar1);\n          uVar13 = *(ulong *)(lVar12 + 0x50);\n          lVar8 = *(long *)(lVar12 + 0x48);\n          if (uVar13 - lVar8 < uVar15) {\n            local_88 = FUN_00116bb0(lVar1);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n            lVar8 = *(long *)(lVar12 + 0x48);\n            if (uVar13 - lVar8 < uVar15) {\n              uVar11 = dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5);\n                    \n              FUN_0011dc10(uVar11,uVar15);\n            }\n          }\n          lVar8 = lVar8 + uVar15;\n          *(long *)(lVar12 + 0x48) = lVar8;\n          *(ulong *)(local_88 + 0x10) = uVar15;\n          local_48 = local_88;\n          plVar5 = (long *)*plVar4;\n          *(undefined4 *)(local_88 + 0x5c) = 1;\n          lVar10 = *plVar5;\n          if (lVar10 != 0) {\n            if (*(int *)(lVar10 + 0x5c) == 1) {\n              do {\n                lVar8 = *(long *)(lVar10 + 0x10);\n                if (lVar8 != 0) {\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }\n                lVar14 = *(long *)(lVar10 + 0x20);\n                uVar13 = *(ulong *)(lVar10 + 0x18);\n                if (lVar14 < 0) {\n                    \n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((uVar13 != 0) && (lVar14 != 0)) {\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }\n                lVar10 = *(long *)(lVar10 + 0x38);\n                if (lVar10 == 0) {\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar10 + 0x5c) == 1);\n            }\n                    \n            FUN_0011dd00("../../gas/write.c",0x5d4,"compress_debug");\n          }\nLAB_0012dd51:\n          while( true ) {\n            local_50 = (int)uVar13 - (int)lVar8;\n            if (local_50 < 1) {\n              if (*(long *)(lVar12 + 0x40) == lVar8) {\n                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;\n              }\n              uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60);\n              *(ulong *)(lVar12 + 0x48) = uVar9;\n              if (uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)) {\n                *(ulong *)(lVar12 + 0x48) = uVar13;\n                uVar9 = uVar13;\n              }\n              *(ulong *)(lVar12 + 0x40) = uVar9;\n              lVar10 = FUN_00116bb0(lVar1);\n              uVar11 = *(undefined8 *)(lVar12 + 0x50);\n              *(undefined4 *)(lVar10 + 0x5c) = 1;\n              *(long *)(local_48 + 0x38) = lVar10;\n              lVar8 = *(long *)(lVar12 + 0x48);\n              local_50 = (int)uVar11 - (int)lVar8;\n              local_48 = lVar10;\n              if (local_50 < 1) {\n                uVar11 = dcgettext(0,"can\'t extend frag",5);\n                    \n                FUN_0011dc10(uVar11);\n              }\n            }\n            *(long *)(lVar12 + 0x48) = lVar8 + local_50;\n            local_40[0] = lVar8;\n            iVar6 = FUN_0010c220(lVar7,local_40,&local_50,&local_4c);\n            if (iVar6 < 0) {\n              return;\n            }\n            uVar15 = uVar15 + (long)local_4c;\n            *(long *)(local_48 + 0x10) = *(long *)(local_48 + 0x10) + (long)local_4c;\n            if (0 < local_50) {\n              *(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50;\n            }\n            if (iVar6 == 0) break;\n            lVar8 = *(long *)(lVar12 + 0x48);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n          }\n          if (uVar15 < uVar2) {\n            plVar4 = (long *)*plVar4;\n            *plVar4 = local_88;\n            plVar4[1] = local_48;\n            bfd_update_compression_header(param_1,local_88 + 0x80,param_2);\n            iVar6 = bfd_set_section_size(param_1,param_2,uVar15);\n            if (iVar6 == 0) {\n                    \n              FUN_0011dd00("../../gas/write.c",0x622,"compress_debug");\n            }\n            if (local_5c == 0) {\n              uVar11 = concat(&DAT_0014ff08,pbVar3 + 1,0);\n              *param_2 = uVar11;\n            }\n          }\n        }\n      }\n    }" { (expression_statement "pbVar3 = (byte *)*param_2;" (assignment_expression "pbVar3 = (byte *)*param_2" identifier = (cast_expression "(byte *)*param_2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (expression_statement "lVar12 = 7;" (assignment_expression "lVar12 = 7" identifier = number_literal) ;) (expression_statement "pbVar16 = pbVar3;" (assignment_expression "pbVar16 = pbVar3" identifier = identifier) ;) (expression_statement "pbVar17 = &DAT_0014ff00;" (assignment_expression "pbVar17 = &DAT_0014ff00" identifier = (pointer_expression "&DAT_0014ff00" & identifier)) ;) (do_statement "do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar18 = *pbVar16 < *pbVar17;\n        bVar19 = *pbVar16 == *pbVar17;\n        pbVar16 = pbVar16 + 1;\n        pbVar17 = pbVar17 + 1;\n      } while (bVar19);" do (compound_statement "{\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar18 = *pbVar16 < *pbVar17;\n        bVar19 = *pbVar16 == *pbVar17;\n        pbVar16 = pbVar16 + 1;\n        pbVar17 = pbVar17 + 1;\n      }" { (if_statement "if (lVar12 == 0) break;" if (parenthesized_expression "(lVar12 == 0)" ( (binary_expression "lVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar12 = lVar12 + -1;" (assignment_expression "lVar12 = lVar12 + -1" identifier = (binary_expression "lVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar18 = *pbVar16 < *pbVar17;" (assignment_expression "bVar18 = *pbVar16 < *pbVar17" identifier = (binary_expression "*pbVar16 < *pbVar17" (pointer_expression "*pbVar16" * identifier) < (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "bVar19 = *pbVar16 == *pbVar17;" (assignment_expression "bVar19 = *pbVar16 == *pbVar17" identifier = (binary_expression "*pbVar16 == *pbVar17" (pointer_expression "*pbVar16" * identifier) == (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "pbVar16 = pbVar16 + 1;" (assignment_expression "pbVar16 = pbVar16 + 1" identifier = (binary_expression "pbVar16 + 1" identifier + number_literal)) ;) (expression_statement "pbVar17 = pbVar17 + 1;" (assignment_expression "pbVar17 = pbVar17 + 1" identifier = (binary_expression "pbVar17 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar19)" ( identifier )) ;) (if_statement "if ((!bVar18 && !bVar19) == bVar18) {\n        plVar4 = (long *)param_2[0x15];\n        lVar12 = *plVar4;\n        lVar7 = FUN_0010c160();\n        if (lVar7 != 0) {\n          if (DAT_001e4554 == 5) {\n            local_5c = bfd_get_compression_header_size(DAT_001e4750,0);\n            uVar15 = (ulong)local_5c;\n          }\n          else {\n            local_5c = 0;\n            uVar15 = 0xc;\n          }\n          lVar1 = lVar12 + 0x30;\n          local_88 = FUN_00116bb0(lVar1);\n          uVar13 = *(ulong *)(lVar12 + 0x50);\n          lVar8 = *(long *)(lVar12 + 0x48);\n          if (uVar13 - lVar8 < uVar15) {\n            local_88 = FUN_00116bb0(lVar1);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n            lVar8 = *(long *)(lVar12 + 0x48);\n            if (uVar13 - lVar8 < uVar15) {\n              uVar11 = dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5);\n                    \n              FUN_0011dc10(uVar11,uVar15);\n            }\n          }\n          lVar8 = lVar8 + uVar15;\n          *(long *)(lVar12 + 0x48) = lVar8;\n          *(ulong *)(local_88 + 0x10) = uVar15;\n          local_48 = local_88;\n          plVar5 = (long *)*plVar4;\n          *(undefined4 *)(local_88 + 0x5c) = 1;\n          lVar10 = *plVar5;\n          if (lVar10 != 0) {\n            if (*(int *)(lVar10 + 0x5c) == 1) {\n              do {\n                lVar8 = *(long *)(lVar10 + 0x10);\n                if (lVar8 != 0) {\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }\n                lVar14 = *(long *)(lVar10 + 0x20);\n                uVar13 = *(ulong *)(lVar10 + 0x18);\n                if (lVar14 < 0) {\n                    \n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((uVar13 != 0) && (lVar14 != 0)) {\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }\n                lVar10 = *(long *)(lVar10 + 0x38);\n                if (lVar10 == 0) {\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar10 + 0x5c) == 1);\n            }\n                    \n            FUN_0011dd00("../../gas/write.c",0x5d4,"compress_debug");\n          }\nLAB_0012dd51:\n          while( true ) {\n            local_50 = (int)uVar13 - (int)lVar8;\n            if (local_50 < 1) {\n              if (*(long *)(lVar12 + 0x40) == lVar8) {\n                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;\n              }\n              uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60);\n              *(ulong *)(lVar12 + 0x48) = uVar9;\n              if (uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)) {\n                *(ulong *)(lVar12 + 0x48) = uVar13;\n                uVar9 = uVar13;\n              }\n              *(ulong *)(lVar12 + 0x40) = uVar9;\n              lVar10 = FUN_00116bb0(lVar1);\n              uVar11 = *(undefined8 *)(lVar12 + 0x50);\n              *(undefined4 *)(lVar10 + 0x5c) = 1;\n              *(long *)(local_48 + 0x38) = lVar10;\n              lVar8 = *(long *)(lVar12 + 0x48);\n              local_50 = (int)uVar11 - (int)lVar8;\n              local_48 = lVar10;\n              if (local_50 < 1) {\n                uVar11 = dcgettext(0,"can\'t extend frag",5);\n                    \n                FUN_0011dc10(uVar11);\n              }\n            }\n            *(long *)(lVar12 + 0x48) = lVar8 + local_50;\n            local_40[0] = lVar8;\n            iVar6 = FUN_0010c220(lVar7,local_40,&local_50,&local_4c);\n            if (iVar6 < 0) {\n              return;\n            }\n            uVar15 = uVar15 + (long)local_4c;\n            *(long *)(local_48 + 0x10) = *(long *)(local_48 + 0x10) + (long)local_4c;\n            if (0 < local_50) {\n              *(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50;\n            }\n            if (iVar6 == 0) break;\n            lVar8 = *(long *)(lVar12 + 0x48);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n          }\n          if (uVar15 < uVar2) {\n            plVar4 = (long *)*plVar4;\n            *plVar4 = local_88;\n            plVar4[1] = local_48;\n            bfd_update_compression_header(param_1,local_88 + 0x80,param_2);\n            iVar6 = bfd_set_section_size(param_1,param_2,uVar15);\n            if (iVar6 == 0) {\n                    \n              FUN_0011dd00("../../gas/write.c",0x622,"compress_debug");\n            }\n            if (local_5c == 0) {\n              uVar11 = concat(&DAT_0014ff08,pbVar3 + 1,0);\n              *param_2 = uVar11;\n            }\n          }\n        }\n      }" if (parenthesized_expression "((!bVar18 && !bVar19) == bVar18)" ( (binary_expression "(!bVar18 && !bVar19) == bVar18" (parenthesized_expression "(!bVar18 && !bVar19)" ( (binary_expression "!bVar18 && !bVar19" (unary_expression "!bVar18" ! identifier) && (unary_expression "!bVar19" ! identifier)) )) == identifier) )) (compound_statement "{\n        plVar4 = (long *)param_2[0x15];\n        lVar12 = *plVar4;\n        lVar7 = FUN_0010c160();\n        if (lVar7 != 0) {\n          if (DAT_001e4554 == 5) {\n            local_5c = bfd_get_compression_header_size(DAT_001e4750,0);\n            uVar15 = (ulong)local_5c;\n          }\n          else {\n            local_5c = 0;\n            uVar15 = 0xc;\n          }\n          lVar1 = lVar12 + 0x30;\n          local_88 = FUN_00116bb0(lVar1);\n          uVar13 = *(ulong *)(lVar12 + 0x50);\n          lVar8 = *(long *)(lVar12 + 0x48);\n          if (uVar13 - lVar8 < uVar15) {\n            local_88 = FUN_00116bb0(lVar1);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n            lVar8 = *(long *)(lVar12 + 0x48);\n            if (uVar13 - lVar8 < uVar15) {\n              uVar11 = dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5);\n                    \n              FUN_0011dc10(uVar11,uVar15);\n            }\n          }\n          lVar8 = lVar8 + uVar15;\n          *(long *)(lVar12 + 0x48) = lVar8;\n          *(ulong *)(local_88 + 0x10) = uVar15;\n          local_48 = local_88;\n          plVar5 = (long *)*plVar4;\n          *(undefined4 *)(local_88 + 0x5c) = 1;\n          lVar10 = *plVar5;\n          if (lVar10 != 0) {\n            if (*(int *)(lVar10 + 0x5c) == 1) {\n              do {\n                lVar8 = *(long *)(lVar10 + 0x10);\n                if (lVar8 != 0) {\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }\n                lVar14 = *(long *)(lVar10 + 0x20);\n                uVar13 = *(ulong *)(lVar10 + 0x18);\n                if (lVar14 < 0) {\n                    \n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((uVar13 != 0) && (lVar14 != 0)) {\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }\n                lVar10 = *(long *)(lVar10 + 0x38);\n                if (lVar10 == 0) {\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar10 + 0x5c) == 1);\n            }\n                    \n            FUN_0011dd00("../../gas/write.c",0x5d4,"compress_debug");\n          }\nLAB_0012dd51:\n          while( true ) {\n            local_50 = (int)uVar13 - (int)lVar8;\n            if (local_50 < 1) {\n              if (*(long *)(lVar12 + 0x40) == lVar8) {\n                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;\n              }\n              uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60);\n              *(ulong *)(lVar12 + 0x48) = uVar9;\n              if (uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)) {\n                *(ulong *)(lVar12 + 0x48) = uVar13;\n                uVar9 = uVar13;\n              }\n              *(ulong *)(lVar12 + 0x40) = uVar9;\n              lVar10 = FUN_00116bb0(lVar1);\n              uVar11 = *(undefined8 *)(lVar12 + 0x50);\n              *(undefined4 *)(lVar10 + 0x5c) = 1;\n              *(long *)(local_48 + 0x38) = lVar10;\n              lVar8 = *(long *)(lVar12 + 0x48);\n              local_50 = (int)uVar11 - (int)lVar8;\n              local_48 = lVar10;\n              if (local_50 < 1) {\n                uVar11 = dcgettext(0,"can\'t extend frag",5);\n                    \n                FUN_0011dc10(uVar11);\n              }\n            }\n            *(long *)(lVar12 + 0x48) = lVar8 + local_50;\n            local_40[0] = lVar8;\n            iVar6 = FUN_0010c220(lVar7,local_40,&local_50,&local_4c);\n            if (iVar6 < 0) {\n              return;\n            }\n            uVar15 = uVar15 + (long)local_4c;\n            *(long *)(local_48 + 0x10) = *(long *)(local_48 + 0x10) + (long)local_4c;\n            if (0 < local_50) {\n              *(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50;\n            }\n            if (iVar6 == 0) break;\n            lVar8 = *(long *)(lVar12 + 0x48);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n          }\n          if (uVar15 < uVar2) {\n            plVar4 = (long *)*plVar4;\n            *plVar4 = local_88;\n            plVar4[1] = local_48;\n            bfd_update_compression_header(param_1,local_88 + 0x80,param_2);\n            iVar6 = bfd_set_section_size(param_1,param_2,uVar15);\n            if (iVar6 == 0) {\n                    \n              FUN_0011dd00("../../gas/write.c",0x622,"compress_debug");\n            }\n            if (local_5c == 0) {\n              uVar11 = concat(&DAT_0014ff08,pbVar3 + 1,0);\n              *param_2 = uVar11;\n            }\n          }\n        }\n      }" { (expression_statement "plVar4 = (long *)param_2[0x15];" (assignment_expression "plVar4 = (long *)param_2[0x15]" identifier = (cast_expression "(long *)param_2[0x15]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[0x15]" identifier [ number_literal ]))) ;) (expression_statement "lVar12 = *plVar4;" (assignment_expression "lVar12 = *plVar4" identifier = (pointer_expression "*plVar4" * identifier)) ;) (expression_statement "lVar7 = FUN_0010c160();" (assignment_expression "lVar7 = FUN_0010c160()" identifier = (call_expression "FUN_0010c160()" identifier (argument_list "()" ( )))) ;) (if_statement "if (lVar7 != 0) {\n          if (DAT_001e4554 == 5) {\n            local_5c = bfd_get_compression_header_size(DAT_001e4750,0);\n            uVar15 = (ulong)local_5c;\n          }\n          else {\n            local_5c = 0;\n            uVar15 = 0xc;\n          }\n          lVar1 = lVar12 + 0x30;\n          local_88 = FUN_00116bb0(lVar1);\n          uVar13 = *(ulong *)(lVar12 + 0x50);\n          lVar8 = *(long *)(lVar12 + 0x48);\n          if (uVar13 - lVar8 < uVar15) {\n            local_88 = FUN_00116bb0(lVar1);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n            lVar8 = *(long *)(lVar12 + 0x48);\n            if (uVar13 - lVar8 < uVar15) {\n              uVar11 = dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5);\n                    \n              FUN_0011dc10(uVar11,uVar15);\n            }\n          }\n          lVar8 = lVar8 + uVar15;\n          *(long *)(lVar12 + 0x48) = lVar8;\n          *(ulong *)(local_88 + 0x10) = uVar15;\n          local_48 = local_88;\n          plVar5 = (long *)*plVar4;\n          *(undefined4 *)(local_88 + 0x5c) = 1;\n          lVar10 = *plVar5;\n          if (lVar10 != 0) {\n            if (*(int *)(lVar10 + 0x5c) == 1) {\n              do {\n                lVar8 = *(long *)(lVar10 + 0x10);\n                if (lVar8 != 0) {\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }\n                lVar14 = *(long *)(lVar10 + 0x20);\n                uVar13 = *(ulong *)(lVar10 + 0x18);\n                if (lVar14 < 0) {\n                    \n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((uVar13 != 0) && (lVar14 != 0)) {\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }\n                lVar10 = *(long *)(lVar10 + 0x38);\n                if (lVar10 == 0) {\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar10 + 0x5c) == 1);\n            }\n                    \n            FUN_0011dd00("../../gas/write.c",0x5d4,"compress_debug");\n          }\nLAB_0012dd51:\n          while( true ) {\n            local_50 = (int)uVar13 - (int)lVar8;\n            if (local_50 < 1) {\n              if (*(long *)(lVar12 + 0x40) == lVar8) {\n                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;\n              }\n              uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60);\n              *(ulong *)(lVar12 + 0x48) = uVar9;\n              if (uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)) {\n                *(ulong *)(lVar12 + 0x48) = uVar13;\n                uVar9 = uVar13;\n              }\n              *(ulong *)(lVar12 + 0x40) = uVar9;\n              lVar10 = FUN_00116bb0(lVar1);\n              uVar11 = *(undefined8 *)(lVar12 + 0x50);\n              *(undefined4 *)(lVar10 + 0x5c) = 1;\n              *(long *)(local_48 + 0x38) = lVar10;\n              lVar8 = *(long *)(lVar12 + 0x48);\n              local_50 = (int)uVar11 - (int)lVar8;\n              local_48 = lVar10;\n              if (local_50 < 1) {\n                uVar11 = dcgettext(0,"can\'t extend frag",5);\n                    \n                FUN_0011dc10(uVar11);\n              }\n            }\n            *(long *)(lVar12 + 0x48) = lVar8 + local_50;\n            local_40[0] = lVar8;\n            iVar6 = FUN_0010c220(lVar7,local_40,&local_50,&local_4c);\n            if (iVar6 < 0) {\n              return;\n            }\n            uVar15 = uVar15 + (long)local_4c;\n            *(long *)(local_48 + 0x10) = *(long *)(local_48 + 0x10) + (long)local_4c;\n            if (0 < local_50) {\n              *(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50;\n            }\n            if (iVar6 == 0) break;\n            lVar8 = *(long *)(lVar12 + 0x48);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n          }\n          if (uVar15 < uVar2) {\n            plVar4 = (long *)*plVar4;\n            *plVar4 = local_88;\n            plVar4[1] = local_48;\n            bfd_update_compression_header(param_1,local_88 + 0x80,param_2);\n            iVar6 = bfd_set_section_size(param_1,param_2,uVar15);\n            if (iVar6 == 0) {\n                    \n              FUN_0011dd00("../../gas/write.c",0x622,"compress_debug");\n            }\n            if (local_5c == 0) {\n              uVar11 = concat(&DAT_0014ff08,pbVar3 + 1,0);\n              *param_2 = uVar11;\n            }\n          }\n        }" if (parenthesized_expression "(lVar7 != 0)" ( (binary_expression "lVar7 != 0" identifier != number_literal) )) (compound_statement "{\n          if (DAT_001e4554 == 5) {\n            local_5c = bfd_get_compression_header_size(DAT_001e4750,0);\n            uVar15 = (ulong)local_5c;\n          }\n          else {\n            local_5c = 0;\n            uVar15 = 0xc;\n          }\n          lVar1 = lVar12 + 0x30;\n          local_88 = FUN_00116bb0(lVar1);\n          uVar13 = *(ulong *)(lVar12 + 0x50);\n          lVar8 = *(long *)(lVar12 + 0x48);\n          if (uVar13 - lVar8 < uVar15) {\n            local_88 = FUN_00116bb0(lVar1);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n            lVar8 = *(long *)(lVar12 + 0x48);\n            if (uVar13 - lVar8 < uVar15) {\n              uVar11 = dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5);\n                    \n              FUN_0011dc10(uVar11,uVar15);\n            }\n          }\n          lVar8 = lVar8 + uVar15;\n          *(long *)(lVar12 + 0x48) = lVar8;\n          *(ulong *)(local_88 + 0x10) = uVar15;\n          local_48 = local_88;\n          plVar5 = (long *)*plVar4;\n          *(undefined4 *)(local_88 + 0x5c) = 1;\n          lVar10 = *plVar5;\n          if (lVar10 != 0) {\n            if (*(int *)(lVar10 + 0x5c) == 1) {\n              do {\n                lVar8 = *(long *)(lVar10 + 0x10);\n                if (lVar8 != 0) {\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }\n                lVar14 = *(long *)(lVar10 + 0x20);\n                uVar13 = *(ulong *)(lVar10 + 0x18);\n                if (lVar14 < 0) {\n                    \n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((uVar13 != 0) && (lVar14 != 0)) {\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }\n                lVar10 = *(long *)(lVar10 + 0x38);\n                if (lVar10 == 0) {\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar10 + 0x5c) == 1);\n            }\n                    \n            FUN_0011dd00("../../gas/write.c",0x5d4,"compress_debug");\n          }\nLAB_0012dd51:\n          while( true ) {\n            local_50 = (int)uVar13 - (int)lVar8;\n            if (local_50 < 1) {\n              if (*(long *)(lVar12 + 0x40) == lVar8) {\n                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;\n              }\n              uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60);\n              *(ulong *)(lVar12 + 0x48) = uVar9;\n              if (uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)) {\n                *(ulong *)(lVar12 + 0x48) = uVar13;\n                uVar9 = uVar13;\n              }\n              *(ulong *)(lVar12 + 0x40) = uVar9;\n              lVar10 = FUN_00116bb0(lVar1);\n              uVar11 = *(undefined8 *)(lVar12 + 0x50);\n              *(undefined4 *)(lVar10 + 0x5c) = 1;\n              *(long *)(local_48 + 0x38) = lVar10;\n              lVar8 = *(long *)(lVar12 + 0x48);\n              local_50 = (int)uVar11 - (int)lVar8;\n              local_48 = lVar10;\n              if (local_50 < 1) {\n                uVar11 = dcgettext(0,"can\'t extend frag",5);\n                    \n                FUN_0011dc10(uVar11);\n              }\n            }\n            *(long *)(lVar12 + 0x48) = lVar8 + local_50;\n            local_40[0] = lVar8;\n            iVar6 = FUN_0010c220(lVar7,local_40,&local_50,&local_4c);\n            if (iVar6 < 0) {\n              return;\n            }\n            uVar15 = uVar15 + (long)local_4c;\n            *(long *)(local_48 + 0x10) = *(long *)(local_48 + 0x10) + (long)local_4c;\n            if (0 < local_50) {\n              *(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50;\n            }\n            if (iVar6 == 0) break;\n            lVar8 = *(long *)(lVar12 + 0x48);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n          }\n          if (uVar15 < uVar2) {\n            plVar4 = (long *)*plVar4;\n            *plVar4 = local_88;\n            plVar4[1] = local_48;\n            bfd_update_compression_header(param_1,local_88 + 0x80,param_2);\n            iVar6 = bfd_set_section_size(param_1,param_2,uVar15);\n            if (iVar6 == 0) {\n                    \n              FUN_0011dd00("../../gas/write.c",0x622,"compress_debug");\n            }\n            if (local_5c == 0) {\n              uVar11 = concat(&DAT_0014ff08,pbVar3 + 1,0);\n              *param_2 = uVar11;\n            }\n          }\n        }" { (if_statement "if (DAT_001e4554 == 5) {\n            local_5c = bfd_get_compression_header_size(DAT_001e4750,0);\n            uVar15 = (ulong)local_5c;\n          }\n          else {\n            local_5c = 0;\n            uVar15 = 0xc;\n          }" if (parenthesized_expression "(DAT_001e4554 == 5)" ( (binary_expression "DAT_001e4554 == 5" identifier == number_literal) )) (compound_statement "{\n            local_5c = bfd_get_compression_header_size(DAT_001e4750,0);\n            uVar15 = (ulong)local_5c;\n          }" { (expression_statement "local_5c = bfd_get_compression_header_size(DAT_001e4750,0);" (assignment_expression "local_5c = bfd_get_compression_header_size(DAT_001e4750,0)" identifier = (call_expression "bfd_get_compression_header_size(DAT_001e4750,0)" identifier (argument_list "(DAT_001e4750,0)" ( identifier , number_literal )))) ;) (expression_statement "uVar15 = (ulong)local_5c;" (assignment_expression "uVar15 = (ulong)local_5c" identifier = (cast_expression "(ulong)local_5c" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) }) (else_clause "else {\n            local_5c = 0;\n            uVar15 = 0xc;\n          }" else (compound_statement "{\n            local_5c = 0;\n            uVar15 = 0xc;\n          }" { (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) (expression_statement "uVar15 = 0xc;" (assignment_expression "uVar15 = 0xc" identifier = number_literal) ;) }))) (expression_statement "lVar1 = lVar12 + 0x30;" (assignment_expression "lVar1 = lVar12 + 0x30" identifier = (binary_expression "lVar12 + 0x30" identifier + number_literal)) ;) (expression_statement "local_88 = FUN_00116bb0(lVar1);" (assignment_expression "local_88 = FUN_00116bb0(lVar1)" identifier = (call_expression "FUN_00116bb0(lVar1)" identifier (argument_list "(lVar1)" ( identifier )))) ;) (expression_statement "uVar13 = *(ulong *)(lVar12 + 0x50);" (assignment_expression "uVar13 = *(ulong *)(lVar12 + 0x50)" identifier = (pointer_expression "*(ulong *)(lVar12 + 0x50)" * (cast_expression "(ulong *)(lVar12 + 0x50)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x50)" ( (binary_expression "lVar12 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "lVar8 = *(long *)(lVar12 + 0x48);" (assignment_expression "lVar8 = *(long *)(lVar12 + 0x48)" identifier = (pointer_expression "*(long *)(lVar12 + 0x48)" * (cast_expression "(long *)(lVar12 + 0x48)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x48)" ( (binary_expression "lVar12 + 0x48" identifier + number_literal) ))))) ;) (if_statement "if (uVar13 - lVar8 < uVar15) {\n            local_88 = FUN_00116bb0(lVar1);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n            lVar8 = *(long *)(lVar12 + 0x48);\n            if (uVar13 - lVar8 < uVar15) {\n              uVar11 = dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5);\n                    \n              FUN_0011dc10(uVar11,uVar15);\n            }\n          }" if (parenthesized_expression "(uVar13 - lVar8 < uVar15)" ( (binary_expression "uVar13 - lVar8 < uVar15" (binary_expression "uVar13 - lVar8" identifier - identifier) < identifier) )) (compound_statement "{\n            local_88 = FUN_00116bb0(lVar1);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n            lVar8 = *(long *)(lVar12 + 0x48);\n            if (uVar13 - lVar8 < uVar15) {\n              uVar11 = dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5);\n                    \n              FUN_0011dc10(uVar11,uVar15);\n            }\n          }" { (expression_statement "local_88 = FUN_00116bb0(lVar1);" (assignment_expression "local_88 = FUN_00116bb0(lVar1)" identifier = (call_expression "FUN_00116bb0(lVar1)" identifier (argument_list "(lVar1)" ( identifier )))) ;) (expression_statement "uVar13 = *(ulong *)(lVar12 + 0x50);" (assignment_expression "uVar13 = *(ulong *)(lVar12 + 0x50)" identifier = (pointer_expression "*(ulong *)(lVar12 + 0x50)" * (cast_expression "(ulong *)(lVar12 + 0x50)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x50)" ( (binary_expression "lVar12 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "lVar8 = *(long *)(lVar12 + 0x48);" (assignment_expression "lVar8 = *(long *)(lVar12 + 0x48)" identifier = (pointer_expression "*(long *)(lVar12 + 0x48)" * (cast_expression "(long *)(lVar12 + 0x48)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x48)" ( (binary_expression "lVar12 + 0x48" identifier + number_literal) ))))) ;) (if_statement "if (uVar13 - lVar8 < uVar15) {\n              uVar11 = dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5);\n                    \n              FUN_0011dc10(uVar11,uVar15);\n            }" if (parenthesized_expression "(uVar13 - lVar8 < uVar15)" ( (binary_expression "uVar13 - lVar8 < uVar15" (binary_expression "uVar13 - lVar8" identifier - identifier) < identifier) )) (compound_statement "{\n              uVar11 = dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5);\n                    \n              FUN_0011dc10(uVar11,uVar15);\n            }" { (expression_statement "uVar11 = dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5);" (assignment_expression "uVar11 = dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5)" identifier = (call_expression "dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5)" identifier (argument_list "(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5)" ( number_literal , (string_literal ""can\'t extend frag %lu char"" " string_content escape_sequence string_content ") , (string_literal ""can\'t extend frag %lu chars"" " string_content escape_sequence string_content ") , identifier , number_literal )))) ;) (expression_statement "FUN_0011dc10(uVar11,uVar15);" (call_expression "FUN_0011dc10(uVar11,uVar15)" identifier (argument_list "(uVar11,uVar15)" ( identifier , identifier ))) ;) })) })) (expression_statement "lVar8 = lVar8 + uVar15;" (assignment_expression "lVar8 = lVar8 + uVar15" identifier = (binary_expression "lVar8 + uVar15" identifier + identifier)) ;) (expression_statement "*(long *)(lVar12 + 0x48) = lVar8;" (assignment_expression "*(long *)(lVar12 + 0x48) = lVar8" (pointer_expression "*(long *)(lVar12 + 0x48)" * (cast_expression "(long *)(lVar12 + 0x48)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x48)" ( (binary_expression "lVar12 + 0x48" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(ulong *)(local_88 + 0x10) = uVar15;" (assignment_expression "*(ulong *)(local_88 + 0x10) = uVar15" (pointer_expression "*(ulong *)(local_88 + 0x10)" * (cast_expression "(ulong *)(local_88 + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_88 + 0x10)" ( (binary_expression "local_88 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_48 = local_88;" (assignment_expression "local_48 = local_88" identifier = identifier) ;) (expression_statement "plVar5 = (long *)*plVar4;" (assignment_expression "plVar5 = (long *)*plVar4" identifier = (cast_expression "(long *)*plVar4" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar4" * identifier))) ;) (expression_statement "*(undefined4 *)(local_88 + 0x5c) = 1;" (assignment_expression "*(undefined4 *)(local_88 + 0x5c) = 1" (pointer_expression "*(undefined4 *)(local_88 + 0x5c)" * (cast_expression "(undefined4 *)(local_88 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_88 + 0x5c)" ( (binary_expression "local_88 + 0x5c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "lVar10 = *plVar5;" (assignment_expression "lVar10 = *plVar5" identifier = (pointer_expression "*plVar5" * identifier)) ;) (if_statement "if (lVar10 != 0) {\n            if (*(int *)(lVar10 + 0x5c) == 1) {\n              do {\n                lVar8 = *(long *)(lVar10 + 0x10);\n                if (lVar8 != 0) {\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }\n                lVar14 = *(long *)(lVar10 + 0x20);\n                uVar13 = *(ulong *)(lVar10 + 0x18);\n                if (lVar14 < 0) {\n                    \n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((uVar13 != 0) && (lVar14 != 0)) {\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }\n                lVar10 = *(long *)(lVar10 + 0x38);\n                if (lVar10 == 0) {\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar10 + 0x5c) == 1);\n            }\n                    \n            FUN_0011dd00("../../gas/write.c",0x5d4,"compress_debug");\n          }" if (parenthesized_expression "(lVar10 != 0)" ( (binary_expression "lVar10 != 0" identifier != number_literal) )) (compound_statement "{\n            if (*(int *)(lVar10 + 0x5c) == 1) {\n              do {\n                lVar8 = *(long *)(lVar10 + 0x10);\n                if (lVar8 != 0) {\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }\n                lVar14 = *(long *)(lVar10 + 0x20);\n                uVar13 = *(ulong *)(lVar10 + 0x18);\n                if (lVar14 < 0) {\n                    \n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((uVar13 != 0) && (lVar14 != 0)) {\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }\n                lVar10 = *(long *)(lVar10 + 0x38);\n                if (lVar10 == 0) {\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar10 + 0x5c) == 1);\n            }\n                    \n            FUN_0011dd00("../../gas/write.c",0x5d4,"compress_debug");\n          }" { (if_statement "if (*(int *)(lVar10 + 0x5c) == 1) {\n              do {\n                lVar8 = *(long *)(lVar10 + 0x10);\n                if (lVar8 != 0) {\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }\n                lVar14 = *(long *)(lVar10 + 0x20);\n                uVar13 = *(ulong *)(lVar10 + 0x18);\n                if (lVar14 < 0) {\n                    \n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((uVar13 != 0) && (lVar14 != 0)) {\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }\n                lVar10 = *(long *)(lVar10 + 0x38);\n                if (lVar10 == 0) {\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar10 + 0x5c) == 1);\n            }" if (parenthesized_expression "(*(int *)(lVar10 + 0x5c) == 1)" ( (binary_expression "*(int *)(lVar10 + 0x5c) == 1" (pointer_expression "*(int *)(lVar10 + 0x5c)" * (cast_expression "(int *)(lVar10 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x5c)" ( (binary_expression "lVar10 + 0x5c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n              do {\n                lVar8 = *(long *)(lVar10 + 0x10);\n                if (lVar8 != 0) {\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }\n                lVar14 = *(long *)(lVar10 + 0x20);\n                uVar13 = *(ulong *)(lVar10 + 0x18);\n                if (lVar14 < 0) {\n                    \n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((uVar13 != 0) && (lVar14 != 0)) {\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }\n                lVar10 = *(long *)(lVar10 + 0x38);\n                if (lVar10 == 0) {\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar10 + 0x5c) == 1);\n            }" { (do_statement "do {\n                lVar8 = *(long *)(lVar10 + 0x10);\n                if (lVar8 != 0) {\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }\n                lVar14 = *(long *)(lVar10 + 0x20);\n                uVar13 = *(ulong *)(lVar10 + 0x18);\n                if (lVar14 < 0) {\n                    \n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((uVar13 != 0) && (lVar14 != 0)) {\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }\n                lVar10 = *(long *)(lVar10 + 0x38);\n                if (lVar10 == 0) {\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar10 + 0x5c) == 1);" do (compound_statement "{\n                lVar8 = *(long *)(lVar10 + 0x10);\n                if (lVar8 != 0) {\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }\n                lVar14 = *(long *)(lVar10 + 0x20);\n                uVar13 = *(ulong *)(lVar10 + 0x18);\n                if (lVar14 < 0) {\n                    \n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((uVar13 != 0) && (lVar14 != 0)) {\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }\n                lVar10 = *(long *)(lVar10 + 0x38);\n                if (lVar10 == 0) {\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              }" { (expression_statement "lVar8 = *(long *)(lVar10 + 0x10);" (assignment_expression "lVar8 = *(long *)(lVar10 + 0x10)" identifier = (pointer_expression "*(long *)(lVar10 + 0x10)" * (cast_expression "(long *)(lVar10 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x10)" ( (binary_expression "lVar10 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (lVar8 != 0) {\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }" if (parenthesized_expression "(lVar8 != 0)" ( (binary_expression "lVar8 != 0" identifier != number_literal) )) (compound_statement "{\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }" { (expression_statement "iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);" (assignment_expression "iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1)" identifier = (call_expression "FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1)" identifier (argument_list "(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1)" ( identifier , (binary_expression "lVar10 + 0x80" identifier + number_literal) , identifier , (pointer_expression "&local_48" & identifier) , identifier )))) ;) (if_statement "if (iVar6 < 0) {\n                    return;\n                  }" if (parenthesized_expression "(iVar6 < 0)" ( (binary_expression "iVar6 < 0" identifier < number_literal) )) (compound_statement "{\n                    return;\n                  }" { (return_statement "return;" return ;) })) (expression_statement "lVar8 = *(long *)(lVar10 + 0x10);" (assignment_expression "lVar8 = *(long *)(lVar10 + 0x10)" identifier = (pointer_expression "*(long *)(lVar10 + 0x10)" * (cast_expression "(long *)(lVar10 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x10)" ( (binary_expression "lVar10 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar15 = uVar15 + (long)iVar6;" (assignment_expression "uVar15 = uVar15 + (long)iVar6" identifier = (binary_expression "uVar15 + (long)iVar6" identifier + (cast_expression "(long)iVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) })) (expression_statement "lVar14 = *(long *)(lVar10 + 0x20);" (assignment_expression "lVar14 = *(long *)(lVar10 + 0x20)" identifier = (pointer_expression "*(long *)(lVar10 + 0x20)" * (cast_expression "(long *)(lVar10 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x20)" ( (binary_expression "lVar10 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "uVar13 = *(ulong *)(lVar10 + 0x18);" (assignment_expression "uVar13 = *(ulong *)(lVar10 + 0x18)" identifier = (pointer_expression "*(ulong *)(lVar10 + 0x18)" * (cast_expression "(ulong *)(lVar10 + 0x18)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x18)" ( (binary_expression "lVar10 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (lVar14 < 0) {\n                    \n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }" if (parenthesized_expression "(lVar14 < 0)" ( (binary_expression "lVar14 < 0" identifier < number_literal) )) (compound_statement "{\n                    \n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }" { (expression_statement "FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");" (call_expression "FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug")" identifier (argument_list "("../../gas/write.c",0x5e0,"compress_debug")" ( (string_literal ""../../gas/write.c"" " string_content ") , number_literal , (string_literal ""compress_debug"" " string_content ") ))) ;) })) (if_statement "if ((uVar13 != 0) && (lVar14 != 0)) {\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }" if (parenthesized_expression "((uVar13 != 0) && (lVar14 != 0))" ( (binary_expression "(uVar13 != 0) && (lVar14 != 0)" (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )) && (parenthesized_expression "(lVar14 != 0)" ( (binary_expression "lVar14 != 0" identifier != number_literal) ))) )) (compound_statement "{\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }" { (do_statement "do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);" do (compound_statement "{\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  }" { (expression_statement "iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);" (assignment_expression "iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1)" identifier = (call_expression "FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1)" identifier (argument_list "(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1)" ( identifier , (binary_expression "lVar10 + 0x80 + lVar8" (binary_expression "lVar10 + 0x80" identifier + number_literal) + identifier) , (binary_expression "uVar13 & 0xffffffff" identifier & number_literal) , (pointer_expression "&local_48" & identifier) , identifier )))) ;) (if_statement "if (iVar6 < 0) {\n                      return;\n                    }" if (parenthesized_expression "(iVar6 < 0)" ( (binary_expression "iVar6 < 0" identifier < number_literal) )) (compound_statement "{\n                      return;\n                    }" { (return_statement "return;" return ;) })) (expression_statement "uVar15 = uVar15 + (long)iVar6;" (assignment_expression "uVar15 = uVar15 + (long)iVar6" identifier = (binary_expression "uVar15 + (long)iVar6" identifier + (cast_expression "(long)iVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (expression_statement "lVar14 = lVar14 + -1;" (assignment_expression "lVar14 = lVar14 + -1" identifier = (binary_expression "lVar14 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar14 != 0)" ( (binary_expression "lVar14 != 0" identifier != number_literal) )) ;) })) (expression_statement "lVar10 = *(long *)(lVar10 + 0x38);" (assignment_expression "lVar10 = *(long *)(lVar10 + 0x38)" identifier = (pointer_expression "*(long *)(lVar10 + 0x38)" * (cast_expression "(long *)(lVar10 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x38)" ( (binary_expression "lVar10 + 0x38" identifier + number_literal) ))))) ;) (if_statement "if (lVar10 == 0) {\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (compound_statement "{\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }" { (expression_statement "lVar8 = *(long *)(lVar12 + 0x48);" (assignment_expression "lVar8 = *(long *)(lVar12 + 0x48)" identifier = (pointer_expression "*(long *)(lVar12 + 0x48)" * (cast_expression "(long *)(lVar12 + 0x48)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x48)" ( (binary_expression "lVar12 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "uVar13 = *(ulong *)(lVar12 + 0x50);" (assignment_expression "uVar13 = *(ulong *)(lVar12 + 0x50)" identifier = (pointer_expression "*(ulong *)(lVar12 + 0x50)" * (cast_expression "(ulong *)(lVar12 + 0x50)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x50)" ( (binary_expression "lVar12 + 0x50" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0012dd51;" goto statement_identifier ;) })) }) while (parenthesized_expression "(*(int *)(lVar10 + 0x5c) == 1)" ( (binary_expression "*(int *)(lVar10 + 0x5c) == 1" (pointer_expression "*(int *)(lVar10 + 0x5c)" * (cast_expression "(int *)(lVar10 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x5c)" ( (binary_expression "lVar10 + 0x5c" identifier + number_literal) )))) == number_literal) )) ;) })) (expression_statement "FUN_0011dd00("../../gas/write.c",0x5d4,"compress_debug");" (call_expression "FUN_0011dd00("../../gas/write.c",0x5d4,"compress_debug")" identifier (argument_list "("../../gas/write.c",0x5d4,"compress_debug")" ( (string_literal ""../../gas/write.c"" " string_content ") , number_literal , (string_literal ""compress_debug"" " string_content ") ))) ;) })) (labeled_statement "LAB_0012dd51:\n          while( true ) {\n            local_50 = (int)uVar13 - (int)lVar8;\n            if (local_50 < 1) {\n              if (*(long *)(lVar12 + 0x40) == lVar8) {\n                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;\n              }\n              uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60);\n              *(ulong *)(lVar12 + 0x48) = uVar9;\n              if (uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)) {\n                *(ulong *)(lVar12 + 0x48) = uVar13;\n                uVar9 = uVar13;\n              }\n              *(ulong *)(lVar12 + 0x40) = uVar9;\n              lVar10 = FUN_00116bb0(lVar1);\n              uVar11 = *(undefined8 *)(lVar12 + 0x50);\n              *(undefined4 *)(lVar10 + 0x5c) = 1;\n              *(long *)(local_48 + 0x38) = lVar10;\n              lVar8 = *(long *)(lVar12 + 0x48);\n              local_50 = (int)uVar11 - (int)lVar8;\n              local_48 = lVar10;\n              if (local_50 < 1) {\n                uVar11 = dcgettext(0,"can\'t extend frag",5);\n                    \n                FUN_0011dc10(uVar11);\n              }\n            }\n            *(long *)(lVar12 + 0x48) = lVar8 + local_50;\n            local_40[0] = lVar8;\n            iVar6 = FUN_0010c220(lVar7,local_40,&local_50,&local_4c);\n            if (iVar6 < 0) {\n              return;\n            }\n            uVar15 = uVar15 + (long)local_4c;\n            *(long *)(local_48 + 0x10) = *(long *)(local_48 + 0x10) + (long)local_4c;\n            if (0 < local_50) {\n              *(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50;\n            }\n            if (iVar6 == 0) break;\n            lVar8 = *(long *)(lVar12 + 0x48);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n          }" statement_identifier : (while_statement "while( true ) {\n            local_50 = (int)uVar13 - (int)lVar8;\n            if (local_50 < 1) {\n              if (*(long *)(lVar12 + 0x40) == lVar8) {\n                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;\n              }\n              uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60);\n              *(ulong *)(lVar12 + 0x48) = uVar9;\n              if (uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)) {\n                *(ulong *)(lVar12 + 0x48) = uVar13;\n                uVar9 = uVar13;\n              }\n              *(ulong *)(lVar12 + 0x40) = uVar9;\n              lVar10 = FUN_00116bb0(lVar1);\n              uVar11 = *(undefined8 *)(lVar12 + 0x50);\n              *(undefined4 *)(lVar10 + 0x5c) = 1;\n              *(long *)(local_48 + 0x38) = lVar10;\n              lVar8 = *(long *)(lVar12 + 0x48);\n              local_50 = (int)uVar11 - (int)lVar8;\n              local_48 = lVar10;\n              if (local_50 < 1) {\n                uVar11 = dcgettext(0,"can\'t extend frag",5);\n                    \n                FUN_0011dc10(uVar11);\n              }\n            }\n            *(long *)(lVar12 + 0x48) = lVar8 + local_50;\n            local_40[0] = lVar8;\n            iVar6 = FUN_0010c220(lVar7,local_40,&local_50,&local_4c);\n            if (iVar6 < 0) {\n              return;\n            }\n            uVar15 = uVar15 + (long)local_4c;\n            *(long *)(local_48 + 0x10) = *(long *)(local_48 + 0x10) + (long)local_4c;\n            if (0 < local_50) {\n              *(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50;\n            }\n            if (iVar6 == 0) break;\n            lVar8 = *(long *)(lVar12 + 0x48);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            local_50 = (int)uVar13 - (int)lVar8;\n            if (local_50 < 1) {\n              if (*(long *)(lVar12 + 0x40) == lVar8) {\n                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;\n              }\n              uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60);\n              *(ulong *)(lVar12 + 0x48) = uVar9;\n              if (uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)) {\n                *(ulong *)(lVar12 + 0x48) = uVar13;\n                uVar9 = uVar13;\n              }\n              *(ulong *)(lVar12 + 0x40) = uVar9;\n              lVar10 = FUN_00116bb0(lVar1);\n              uVar11 = *(undefined8 *)(lVar12 + 0x50);\n              *(undefined4 *)(lVar10 + 0x5c) = 1;\n              *(long *)(local_48 + 0x38) = lVar10;\n              lVar8 = *(long *)(lVar12 + 0x48);\n              local_50 = (int)uVar11 - (int)lVar8;\n              local_48 = lVar10;\n              if (local_50 < 1) {\n                uVar11 = dcgettext(0,"can\'t extend frag",5);\n                    \n                FUN_0011dc10(uVar11);\n              }\n            }\n            *(long *)(lVar12 + 0x48) = lVar8 + local_50;\n            local_40[0] = lVar8;\n            iVar6 = FUN_0010c220(lVar7,local_40,&local_50,&local_4c);\n            if (iVar6 < 0) {\n              return;\n            }\n            uVar15 = uVar15 + (long)local_4c;\n            *(long *)(local_48 + 0x10) = *(long *)(local_48 + 0x10) + (long)local_4c;\n            if (0 < local_50) {\n              *(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50;\n            }\n            if (iVar6 == 0) break;\n            lVar8 = *(long *)(lVar12 + 0x48);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n          }" { (expression_statement "local_50 = (int)uVar13 - (int)lVar8;" (assignment_expression "local_50 = (int)uVar13 - (int)lVar8" identifier = (binary_expression "(int)uVar13 - (int)lVar8" (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)lVar8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (local_50 < 1) {\n              if (*(long *)(lVar12 + 0x40) == lVar8) {\n                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;\n              }\n              uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60);\n              *(ulong *)(lVar12 + 0x48) = uVar9;\n              if (uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)) {\n                *(ulong *)(lVar12 + 0x48) = uVar13;\n                uVar9 = uVar13;\n              }\n              *(ulong *)(lVar12 + 0x40) = uVar9;\n              lVar10 = FUN_00116bb0(lVar1);\n              uVar11 = *(undefined8 *)(lVar12 + 0x50);\n              *(undefined4 *)(lVar10 + 0x5c) = 1;\n              *(long *)(local_48 + 0x38) = lVar10;\n              lVar8 = *(long *)(lVar12 + 0x48);\n              local_50 = (int)uVar11 - (int)lVar8;\n              local_48 = lVar10;\n              if (local_50 < 1) {\n                uVar11 = dcgettext(0,"can\'t extend frag",5);\n                    \n                FUN_0011dc10(uVar11);\n              }\n            }" if (parenthesized_expression "(local_50 < 1)" ( (binary_expression "local_50 < 1" identifier < number_literal) )) (compound_statement "{\n              if (*(long *)(lVar12 + 0x40) == lVar8) {\n                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;\n              }\n              uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60);\n              *(ulong *)(lVar12 + 0x48) = uVar9;\n              if (uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)) {\n                *(ulong *)(lVar12 + 0x48) = uVar13;\n                uVar9 = uVar13;\n              }\n              *(ulong *)(lVar12 + 0x40) = uVar9;\n              lVar10 = FUN_00116bb0(lVar1);\n              uVar11 = *(undefined8 *)(lVar12 + 0x50);\n              *(undefined4 *)(lVar10 + 0x5c) = 1;\n              *(long *)(local_48 + 0x38) = lVar10;\n              lVar8 = *(long *)(lVar12 + 0x48);\n              local_50 = (int)uVar11 - (int)lVar8;\n              local_48 = lVar10;\n              if (local_50 < 1) {\n                uVar11 = dcgettext(0,"can\'t extend frag",5);\n                    \n                FUN_0011dc10(uVar11);\n              }\n            }" { (if_statement "if (*(long *)(lVar12 + 0x40) == lVar8) {\n                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;\n              }" if (parenthesized_expression "(*(long *)(lVar12 + 0x40) == lVar8)" ( (binary_expression "*(long *)(lVar12 + 0x40) == lVar8" (pointer_expression "*(long *)(lVar12 + 0x40)" * (cast_expression "(long *)(lVar12 + 0x40)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x40)" ( (binary_expression "lVar12 + 0x40" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;\n              }" { (expression_statement "*(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;" (assignment_expression "*(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2" (pointer_expression "*(byte *)(lVar12 + 0x80)" * (cast_expression "(byte *)(lVar12 + 0x80)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x80)" ( (binary_expression "lVar12 + 0x80" identifier + number_literal) )))) = (binary_expression "*(byte *)(lVar12 + 0x80) | 2" (pointer_expression "*(byte *)(lVar12 + 0x80)" * (cast_expression "(byte *)(lVar12 + 0x80)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x80)" ( (binary_expression "lVar12 + 0x80" identifier + number_literal) )))) | number_literal)) ;) })) (expression_statement "uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60);" (assignment_expression "uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60)" identifier = (binary_expression "lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60)" (binary_expression "lVar8 + *(ulong *)(lVar12 + 0x60)" identifier + (pointer_expression "*(ulong *)(lVar12 + 0x60)" * (cast_expression "(ulong *)(lVar12 + 0x60)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x60)" ( (binary_expression "lVar12 + 0x60" identifier + number_literal) ))))) & (unary_expression "~*(ulong *)(lVar12 + 0x60)" ~ (pointer_expression "*(ulong *)(lVar12 + 0x60)" * (cast_expression "(ulong *)(lVar12 + 0x60)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x60)" ( (binary_expression "lVar12 + 0x60" identifier + number_literal) ))))))) ;) (expression_statement "*(ulong *)(lVar12 + 0x48) = uVar9;" (assignment_expression "*(ulong *)(lVar12 + 0x48) = uVar9" (pointer_expression "*(ulong *)(lVar12 + 0x48)" * (cast_expression "(ulong *)(lVar12 + 0x48)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x48)" ( (binary_expression "lVar12 + 0x48" identifier + number_literal) )))) = identifier) ;) (if_statement "if (uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)) {\n                *(ulong *)(lVar12 + 0x48) = uVar13;\n                uVar9 = uVar13;\n              }" if (parenthesized_expression "(uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38))" ( (binary_expression "uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)" (binary_expression "uVar13 - *(long *)(lVar12 + 0x38)" identifier - (pointer_expression "*(long *)(lVar12 + 0x38)" * (cast_expression "(long *)(lVar12 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x38)" ( (binary_expression "lVar12 + 0x38" identifier + number_literal) ))))) < (binary_expression "uVar9 - *(long *)(lVar12 + 0x38)" identifier - (pointer_expression "*(long *)(lVar12 + 0x38)" * (cast_expression "(long *)(lVar12 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x38)" ( (binary_expression "lVar12 + 0x38" identifier + number_literal) )))))) )) (compound_statement "{\n                *(ulong *)(lVar12 + 0x48) = uVar13;\n                uVar9 = uVar13;\n              }" { (expression_statement "*(ulong *)(lVar12 + 0x48) = uVar13;" (assignment_expression "*(ulong *)(lVar12 + 0x48) = uVar13" (pointer_expression "*(ulong *)(lVar12 + 0x48)" * (cast_expression "(ulong *)(lVar12 + 0x48)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x48)" ( (binary_expression "lVar12 + 0x48" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar9 = uVar13;" (assignment_expression "uVar9 = uVar13" identifier = identifier) ;) })) (expression_statement "*(ulong *)(lVar12 + 0x40) = uVar9;" (assignment_expression "*(ulong *)(lVar12 + 0x40) = uVar9" (pointer_expression "*(ulong *)(lVar12 + 0x40)" * (cast_expression "(ulong *)(lVar12 + 0x40)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x40)" ( (binary_expression "lVar12 + 0x40" identifier + number_literal) )))) = identifier) ;) (expression_statement "lVar10 = FUN_00116bb0(lVar1);" (assignment_expression "lVar10 = FUN_00116bb0(lVar1)" identifier = (call_expression "FUN_00116bb0(lVar1)" identifier (argument_list "(lVar1)" ( identifier )))) ;) (expression_statement "uVar11 = *(undefined8 *)(lVar12 + 0x50);" (assignment_expression "uVar11 = *(undefined8 *)(lVar12 + 0x50)" identifier = (pointer_expression "*(undefined8 *)(lVar12 + 0x50)" * (cast_expression "(undefined8 *)(lVar12 + 0x50)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x50)" ( (binary_expression "lVar12 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(lVar10 + 0x5c) = 1;" (assignment_expression "*(undefined4 *)(lVar10 + 0x5c) = 1" (pointer_expression "*(undefined4 *)(lVar10 + 0x5c)" * (cast_expression "(undefined4 *)(lVar10 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x5c)" ( (binary_expression "lVar10 + 0x5c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(long *)(local_48 + 0x38) = lVar10;" (assignment_expression "*(long *)(local_48 + 0x38) = lVar10" (pointer_expression "*(long *)(local_48 + 0x38)" * (cast_expression "(long *)(local_48 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_48 + 0x38)" ( (binary_expression "local_48 + 0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "lVar8 = *(long *)(lVar12 + 0x48);" (assignment_expression "lVar8 = *(long *)(lVar12 + 0x48)" identifier = (pointer_expression "*(long *)(lVar12 + 0x48)" * (cast_expression "(long *)(lVar12 + 0x48)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x48)" ( (binary_expression "lVar12 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "local_50 = (int)uVar11 - (int)lVar8;" (assignment_expression "local_50 = (int)uVar11 - (int)lVar8" identifier = (binary_expression "(int)uVar11 - (int)lVar8" (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)lVar8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_48 = lVar10;" (assignment_expression "local_48 = lVar10" identifier = identifier) ;) (if_statement "if (local_50 < 1) {\n                uVar11 = dcgettext(0,"can\'t extend frag",5);\n                    \n                FUN_0011dc10(uVar11);\n              }" if (parenthesized_expression "(local_50 < 1)" ( (binary_expression "local_50 < 1" identifier < number_literal) )) (compound_statement "{\n                uVar11 = dcgettext(0,"can\'t extend frag",5);\n                    \n                FUN_0011dc10(uVar11);\n              }" { (expression_statement "uVar11 = dcgettext(0,"can\'t extend frag",5);" (assignment_expression "uVar11 = dcgettext(0,"can\'t extend frag",5)" identifier = (call_expression "dcgettext(0,"can\'t extend frag",5)" identifier (argument_list "(0,"can\'t extend frag",5)" ( number_literal , (string_literal ""can\'t extend frag"" " string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "FUN_0011dc10(uVar11);" (call_expression "FUN_0011dc10(uVar11)" identifier (argument_list "(uVar11)" ( identifier ))) ;) })) })) (expression_statement "*(long *)(lVar12 + 0x48) = lVar8 + local_50;" (assignment_expression "*(long *)(lVar12 + 0x48) = lVar8 + local_50" (pointer_expression "*(long *)(lVar12 + 0x48)" * (cast_expression "(long *)(lVar12 + 0x48)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x48)" ( (binary_expression "lVar12 + 0x48" identifier + number_literal) )))) = (binary_expression "lVar8 + local_50" identifier + identifier)) ;) (expression_statement "local_40[0] = lVar8;" (assignment_expression "local_40[0] = lVar8" (subscript_expression "local_40[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar6 = FUN_0010c220(lVar7,local_40,&local_50,&local_4c);" (assignment_expression "iVar6 = FUN_0010c220(lVar7,local_40,&local_50,&local_4c)" identifier = (call_expression "FUN_0010c220(lVar7,local_40,&local_50,&local_4c)" identifier (argument_list "(lVar7,local_40,&local_50,&local_4c)" ( identifier , identifier , (pointer_expression "&local_50" & identifier) , (pointer_expression "&local_4c" & identifier) )))) ;) (if_statement "if (iVar6 < 0) {\n              return;\n            }" if (parenthesized_expression "(iVar6 < 0)" ( (binary_expression "iVar6 < 0" identifier < number_literal) )) (compound_statement "{\n              return;\n            }" { (return_statement "return;" return ;) })) (expression_statement "uVar15 = uVar15 + (long)local_4c;" (assignment_expression "uVar15 = uVar15 + (long)local_4c" identifier = (binary_expression "uVar15 + (long)local_4c" identifier + (cast_expression "(long)local_4c" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (expression_statement "*(long *)(local_48 + 0x10) = *(long *)(local_48 + 0x10) + (long)local_4c;" (assignment_expression "*(long *)(local_48 + 0x10) = *(long *)(local_48 + 0x10) + (long)local_4c" (pointer_expression "*(long *)(local_48 + 0x10)" * (cast_expression "(long *)(local_48 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_48 + 0x10)" ( (binary_expression "local_48 + 0x10" identifier + number_literal) )))) = (binary_expression "*(long *)(local_48 + 0x10) + (long)local_4c" (pointer_expression "*(long *)(local_48 + 0x10)" * (cast_expression "(long *)(local_48 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_48 + 0x10)" ( (binary_expression "local_48 + 0x10" identifier + number_literal) )))) + (cast_expression "(long)local_4c" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (if_statement "if (0 < local_50) {\n              *(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50;\n            }" if (parenthesized_expression "(0 < local_50)" ( (binary_expression "0 < local_50" number_literal < identifier) )) (compound_statement "{\n              *(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50;\n            }" { (expression_statement "*(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50;" (assignment_expression "*(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50" (pointer_expression "*(long *)(lVar12 + 0x48)" * (cast_expression "(long *)(lVar12 + 0x48)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x48)" ( (binary_expression "lVar12 + 0x48" identifier + number_literal) )))) = (binary_expression "*(long *)(lVar12 + 0x48) + (long)-local_50" (pointer_expression "*(long *)(lVar12 + 0x48)" * (cast_expression "(long *)(lVar12 + 0x48)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x48)" ( (binary_expression "lVar12 + 0x48" identifier + number_literal) )))) + (cast_expression "(long)-local_50" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (unary_expression "-local_50" - identifier)))) ;) })) (if_statement "if (iVar6 == 0) break;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar8 = *(long *)(lVar12 + 0x48);" (assignment_expression "lVar8 = *(long *)(lVar12 + 0x48)" identifier = (pointer_expression "*(long *)(lVar12 + 0x48)" * (cast_expression "(long *)(lVar12 + 0x48)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x48)" ( (binary_expression "lVar12 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "uVar13 = *(ulong *)(lVar12 + 0x50);" (assignment_expression "uVar13 = *(ulong *)(lVar12 + 0x50)" identifier = (pointer_expression "*(ulong *)(lVar12 + 0x50)" * (cast_expression "(ulong *)(lVar12 + 0x50)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x50)" ( (binary_expression "lVar12 + 0x50" identifier + number_literal) ))))) ;) }))) (if_statement "if (uVar15 < uVar2) {\n            plVar4 = (long *)*plVar4;\n            *plVar4 = local_88;\n            plVar4[1] = local_48;\n            bfd_update_compression_header(param_1,local_88 + 0x80,param_2);\n            iVar6 = bfd_set_section_size(param_1,param_2,uVar15);\n            if (iVar6 == 0) {\n                    \n              FUN_0011dd00("../../gas/write.c",0x622,"compress_debug");\n            }\n            if (local_5c == 0) {\n              uVar11 = concat(&DAT_0014ff08,pbVar3 + 1,0);\n              *param_2 = uVar11;\n            }\n          }" if (parenthesized_expression "(uVar15 < uVar2)" ( (binary_expression "uVar15 < uVar2" identifier < identifier) )) (compound_statement "{\n            plVar4 = (long *)*plVar4;\n            *plVar4 = local_88;\n            plVar4[1] = local_48;\n            bfd_update_compression_header(param_1,local_88 + 0x80,param_2);\n            iVar6 = bfd_set_section_size(param_1,param_2,uVar15);\n            if (iVar6 == 0) {\n                    \n              FUN_0011dd00("../../gas/write.c",0x622,"compress_debug");\n            }\n            if (local_5c == 0) {\n              uVar11 = concat(&DAT_0014ff08,pbVar3 + 1,0);\n              *param_2 = uVar11;\n            }\n          }" { (expression_statement "plVar4 = (long *)*plVar4;" (assignment_expression "plVar4 = (long *)*plVar4" identifier = (cast_expression "(long *)*plVar4" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar4" * identifier))) ;) (expression_statement "*plVar4 = local_88;" (assignment_expression "*plVar4 = local_88" (pointer_expression "*plVar4" * identifier) = identifier) ;) (expression_statement "plVar4[1] = local_48;" (assignment_expression "plVar4[1] = local_48" (subscript_expression "plVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bfd_update_compression_header(param_1,local_88 + 0x80,param_2);" (call_expression "bfd_update_compression_header(param_1,local_88 + 0x80,param_2)" identifier (argument_list "(param_1,local_88 + 0x80,param_2)" ( identifier , (binary_expression "local_88 + 0x80" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar6 = bfd_set_section_size(param_1,param_2,uVar15);" (assignment_expression "iVar6 = bfd_set_section_size(param_1,param_2,uVar15)" identifier = (call_expression "bfd_set_section_size(param_1,param_2,uVar15)" identifier (argument_list "(param_1,param_2,uVar15)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar6 == 0) {\n                    \n              FUN_0011dd00("../../gas/write.c",0x622,"compress_debug");\n            }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n              FUN_0011dd00("../../gas/write.c",0x622,"compress_debug");\n            }" { (expression_statement "FUN_0011dd00("../../gas/write.c",0x622,"compress_debug");" (call_expression "FUN_0011dd00("../../gas/write.c",0x622,"compress_debug")" identifier (argument_list "("../../gas/write.c",0x622,"compress_debug")" ( (string_literal ""../../gas/write.c"" " string_content ") , number_literal , (string_literal ""compress_debug"" " string_content ") ))) ;) })) (if_statement "if (local_5c == 0) {\n              uVar11 = concat(&DAT_0014ff08,pbVar3 + 1,0);\n              *param_2 = uVar11;\n            }" if (parenthesized_expression "(local_5c == 0)" ( (binary_expression "local_5c == 0" identifier == number_literal) )) (compound_statement "{\n              uVar11 = concat(&DAT_0014ff08,pbVar3 + 1,0);\n              *param_2 = uVar11;\n            }" { (expression_statement "uVar11 = concat(&DAT_0014ff08,pbVar3 + 1,0);" (assignment_expression "uVar11 = concat(&DAT_0014ff08,pbVar3 + 1,0)" identifier = (call_expression "concat(&DAT_0014ff08,pbVar3 + 1,0)" identifier (argument_list "(&DAT_0014ff08,pbVar3 + 1,0)" ( (pointer_expression "&DAT_0014ff08" & identifier) , (binary_expression "pbVar3 + 1" identifier + number_literal) , number_literal )))) ;) (expression_statement "*param_2 = uVar11;" (assignment_expression "*param_2 = uVar11" (pointer_expression "*param_2" * identifier) = identifier) ;) })) })) })) })) })) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) (array_declarator IDENT [ LIT ]) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (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 IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - IDENT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - IDENT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content ") , (string_literal " string_content escape_sequence string_content ") , IDENT , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT , (pointer_expression & IDENT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression (binary_expression IDENT + LIT) + IDENT) , (binary_expression IDENT & LIT) , (pointer_expression & IDENT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (labeled_statement statement_identifier : (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) & (unary_expression ~ (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 IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) < (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( 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 IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (unary_expression - IDENT)))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) })) })) })) })) })) (return_statement return ;) })))
(function_definition "void FUN_0012dae0(undefined8 param_1,undefined8 *param_2)\n\n{\n  long lVar1;\n  ulong uVar2;\n  byte *pbVar3;\n  long *plVar4;\n  long *plVar5;\n  int iVar6;\n  long lVar7;\n  long lVar8;\n  ulong uVar9;\n  long lVar10;\n  undefined8 uVar11;\n  long lVar12;\n  ulong uVar13;\n  long lVar14;\n  ulong uVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  bool bVar18;\n  bool bVar19;\n  long local_88;\n  uint local_5c;\n  int local_50;\n  int local_4c;\n  long local_48;\n  long local_40 [2];\n  \n  uVar2 = param_2[7];\n  if (0x1f < uVar2) {\n    bVar18 = (*(uint *)(param_2 + 4) & 0x101) == 0;\n    bVar19 = (*(uint *)(param_2 + 4) & 0x101) == 1;\n    if (!bVar19) {\n      pbVar3 = (byte *)*param_2;\n      lVar12 = 7;\n      pbVar16 = pbVar3;\n      pbVar17 = &DAT_0014ff00;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar18 = *pbVar16 < *pbVar17;\n        bVar19 = *pbVar16 == *pbVar17;\n        pbVar16 = pbVar16 + 1;\n        pbVar17 = pbVar17 + 1;\n      } while (bVar19);\n      if ((!bVar18 && !bVar19) == bVar18) {\n        plVar4 = (long *)param_2[0x15];\n        lVar12 = *plVar4;\n        lVar7 = FUN_0010c160();\n        if (lVar7 != 0) {\n          if (DAT_001e4554 == 5) {\n            local_5c = bfd_get_compression_header_size(DAT_001e4750,0);\n            uVar15 = (ulong)local_5c;\n          }\n          else {\n            local_5c = 0;\n            uVar15 = 0xc;\n          }\n          lVar1 = lVar12 + 0x30;\n          local_88 = FUN_00116bb0(lVar1);\n          uVar13 = *(ulong *)(lVar12 + 0x50);\n          lVar8 = *(long *)(lVar12 + 0x48);\n          if (uVar13 - lVar8 < uVar15) {\n            local_88 = FUN_00116bb0(lVar1);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n            lVar8 = *(long *)(lVar12 + 0x48);\n            if (uVar13 - lVar8 < uVar15) {\n              uVar11 = dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5);\n                    \n              FUN_0011dc10(uVar11,uVar15);\n            }\n          }\n          lVar8 = lVar8 + uVar15;\n          *(long *)(lVar12 + 0x48) = lVar8;\n          *(ulong *)(local_88 + 0x10) = uVar15;\n          local_48 = local_88;\n          plVar5 = (long *)*plVar4;\n          *(undefined4 *)(local_88 + 0x5c) = 1;\n          lVar10 = *plVar5;\n          if (lVar10 != 0) {\n            if (*(int *)(lVar10 + 0x5c) == 1) {\n              do {\n                lVar8 = *(long *)(lVar10 + 0x10);\n                if (lVar8 != 0) {\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }\n                lVar14 = *(long *)(lVar10 + 0x20);\n                uVar13 = *(ulong *)(lVar10 + 0x18);\n                if (lVar14 < 0) {\n                    \n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((uVar13 != 0) && (lVar14 != 0)) {\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }\n                lVar10 = *(long *)(lVar10 + 0x38);\n                if (lVar10 == 0) {\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar10 + 0x5c) == 1);\n            }\n                    \n            FUN_0011dd00("../../gas/write.c",0x5d4,"compress_debug");\n          }\nLAB_0012dd51:\n          while( true ) {\n            local_50 = (int)uVar13 - (int)lVar8;\n            if (local_50 < 1) {\n              if (*(long *)(lVar12 + 0x40) == lVar8) {\n                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;\n              }\n              uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60);\n              *(ulong *)(lVar12 + 0x48) = uVar9;\n              if (uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)) {\n                *(ulong *)(lVar12 + 0x48) = uVar13;\n                uVar9 = uVar13;\n              }\n              *(ulong *)(lVar12 + 0x40) = uVar9;\n              lVar10 = FUN_00116bb0(lVar1);\n              uVar11 = *(undefined8 *)(lVar12 + 0x50);\n              *(undefined4 *)(lVar10 + 0x5c) = 1;\n              *(long *)(local_48 + 0x38) = lVar10;\n              lVar8 = *(long *)(lVar12 + 0x48);\n              local_50 = (int)uVar11 - (int)lVar8;\n              local_48 = lVar10;\n              if (local_50 < 1) {\n                uVar11 = dcgettext(0,"can\'t extend frag",5);\n                    \n                FUN_0011dc10(uVar11);\n              }\n            }\n            *(long *)(lVar12 + 0x48) = lVar8 + local_50;\n            local_40[0] = lVar8;\n            iVar6 = FUN_0010c220(lVar7,local_40,&local_50,&local_4c);\n            if (iVar6 < 0) {\n              return;\n            }\n            uVar15 = uVar15 + (long)local_4c;\n            *(long *)(local_48 + 0x10) = *(long *)(local_48 + 0x10) + (long)local_4c;\n            if (0 < local_50) {\n              *(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50;\n            }\n            if (iVar6 == 0) break;\n            lVar8 = *(long *)(lVar12 + 0x48);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n          }\n          if (uVar15 < uVar2) {\n            plVar4 = (long *)*plVar4;\n            *plVar4 = local_88;\n            plVar4[1] = local_48;\n            bfd_update_compression_header(param_1,local_88 + 0x80,param_2);\n            iVar6 = bfd_set_section_size(param_1,param_2,uVar15);\n            if (iVar6 == 0) {\n                    \n              FUN_0011dd00("../../gas/write.c",0x622,"compress_debug");\n            }\n            if (local_5c == 0) {\n              uVar11 = concat(&DAT_0014ff08,pbVar3 + 1,0);\n              *param_2 = uVar11;\n            }\n          }\n        }\n      }\n    }\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0012dae0(undefined8 param_1,undefined8 *param_2)" (identifier "FUN_0012dae0") (parameter_list "(undefined8 param_1,undefined8 *param_2)" (( "(") (parameter_declaration "undefined8 param_1" (type_identifier "undefined8") (identifier "param_1")) (, ",") (parameter_declaration "undefined8 *param_2" (type_identifier "undefined8") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  long lVar1;\n  ulong uVar2;\n  byte *pbVar3;\n  long *plVar4;\n  long *plVar5;\n  int iVar6;\n  long lVar7;\n  long lVar8;\n  ulong uVar9;\n  long lVar10;\n  undefined8 uVar11;\n  long lVar12;\n  ulong uVar13;\n  long lVar14;\n  ulong uVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  bool bVar18;\n  bool bVar19;\n  long local_88;\n  uint local_5c;\n  int local_50;\n  int local_4c;\n  long local_48;\n  long local_40 [2];\n  \n  uVar2 = param_2[7];\n  if (0x1f < uVar2) {\n    bVar18 = (*(uint *)(param_2 + 4) & 0x101) == 0;\n    bVar19 = (*(uint *)(param_2 + 4) & 0x101) == 1;\n    if (!bVar19) {\n      pbVar3 = (byte *)*param_2;\n      lVar12 = 7;\n      pbVar16 = pbVar3;\n      pbVar17 = &DAT_0014ff00;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar18 = *pbVar16 < *pbVar17;\n        bVar19 = *pbVar16 == *pbVar17;\n        pbVar16 = pbVar16 + 1;\n        pbVar17 = pbVar17 + 1;\n      } while (bVar19);\n      if ((!bVar18 && !bVar19) == bVar18) {\n        plVar4 = (long *)param_2[0x15];\n        lVar12 = *plVar4;\n        lVar7 = FUN_0010c160();\n        if (lVar7 != 0) {\n          if (DAT_001e4554 == 5) {\n            local_5c = bfd_get_compression_header_size(DAT_001e4750,0);\n            uVar15 = (ulong)local_5c;\n          }\n          else {\n            local_5c = 0;\n            uVar15 = 0xc;\n          }\n          lVar1 = lVar12 + 0x30;\n          local_88 = FUN_00116bb0(lVar1);\n          uVar13 = *(ulong *)(lVar12 + 0x50);\n          lVar8 = *(long *)(lVar12 + 0x48);\n          if (uVar13 - lVar8 < uVar15) {\n            local_88 = FUN_00116bb0(lVar1);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n            lVar8 = *(long *)(lVar12 + 0x48);\n            if (uVar13 - lVar8 < uVar15) {\n              uVar11 = dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5);\n                    \n              FUN_0011dc10(uVar11,uVar15);\n            }\n          }\n          lVar8 = lVar8 + uVar15;\n          *(long *)(lVar12 + 0x48) = lVar8;\n          *(ulong *)(local_88 + 0x10) = uVar15;\n          local_48 = local_88;\n          plVar5 = (long *)*plVar4;\n          *(undefined4 *)(local_88 + 0x5c) = 1;\n          lVar10 = *plVar5;\n          if (lVar10 != 0) {\n            if (*(int *)(lVar10 + 0x5c) == 1) {\n              do {\n                lVar8 = *(long *)(lVar10 + 0x10);\n                if (lVar8 != 0) {\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }\n                lVar14 = *(long *)(lVar10 + 0x20);\n                uVar13 = *(ulong *)(lVar10 + 0x18);\n                if (lVar14 < 0) {\n                    \n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((uVar13 != 0) && (lVar14 != 0)) {\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }\n                lVar10 = *(long *)(lVar10 + 0x38);\n                if (lVar10 == 0) {\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar10 + 0x5c) == 1);\n            }\n                    \n            FUN_0011dd00("../../gas/write.c",0x5d4,"compress_debug");\n          }\nLAB_0012dd51:\n          while( true ) {\n            local_50 = (int)uVar13 - (int)lVar8;\n            if (local_50 < 1) {\n              if (*(long *)(lVar12 + 0x40) == lVar8) {\n                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;\n              }\n              uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60);\n              *(ulong *)(lVar12 + 0x48) = uVar9;\n              if (uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)) {\n                *(ulong *)(lVar12 + 0x48) = uVar13;\n                uVar9 = uVar13;\n              }\n              *(ulong *)(lVar12 + 0x40) = uVar9;\n              lVar10 = FUN_00116bb0(lVar1);\n              uVar11 = *(undefined8 *)(lVar12 + 0x50);\n              *(undefined4 *)(lVar10 + 0x5c) = 1;\n              *(long *)(local_48 + 0x38) = lVar10;\n              lVar8 = *(long *)(lVar12 + 0x48);\n              local_50 = (int)uVar11 - (int)lVar8;\n              local_48 = lVar10;\n              if (local_50 < 1) {\n                uVar11 = dcgettext(0,"can\'t extend frag",5);\n                    \n                FUN_0011dc10(uVar11);\n              }\n            }\n            *(long *)(lVar12 + 0x48) = lVar8 + local_50;\n            local_40[0] = lVar8;\n            iVar6 = FUN_0010c220(lVar7,local_40,&local_50,&local_4c);\n            if (iVar6 < 0) {\n              return;\n            }\n            uVar15 = uVar15 + (long)local_4c;\n            *(long *)(local_48 + 0x10) = *(long *)(local_48 + 0x10) + (long)local_4c;\n            if (0 < local_50) {\n              *(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50;\n            }\n            if (iVar6 == 0) break;\n            lVar8 = *(long *)(lVar12 + 0x48);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n          }\n          if (uVar15 < uVar2) {\n            plVar4 = (long *)*plVar4;\n            *plVar4 = local_88;\n            plVar4[1] = local_48;\n            bfd_update_compression_header(param_1,local_88 + 0x80,param_2);\n            iVar6 = bfd_set_section_size(param_1,param_2,uVar15);\n            if (iVar6 == 0) {\n                    \n              FUN_0011dd00("../../gas/write.c",0x622,"compress_debug");\n            }\n            if (local_5c == 0) {\n              uVar11 = concat(&DAT_0014ff08,pbVar3 + 1,0);\n              *param_2 = uVar11;\n            }\n          }\n        }\n      }\n    }\n  }\n  return;\n}" ({ "{") (declaration "long lVar1;" (sized_type_specifier "long" (long "long")) (identifier "lVar1") (; ";")) (declaration "ulong uVar2;" (type_identifier "ulong") (identifier "uVar2") (; ";")) (declaration "byte *pbVar3;" (type_identifier "byte") (pointer_declarator "*pbVar3" (* "*") (identifier "pbVar3")) (; ";")) (declaration "long *plVar4;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar4" (* "*") (identifier "plVar4")) (; ";")) (declaration "long *plVar5;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar5" (* "*") (identifier "plVar5")) (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "long lVar7;" (sized_type_specifier "long" (long "long")) (identifier "lVar7") (; ";")) (declaration "long lVar8;" (sized_type_specifier "long" (long "long")) (identifier "lVar8") (; ";")) (declaration "ulong uVar9;" (type_identifier "ulong") (identifier "uVar9") (; ";")) (declaration "long lVar10;" (sized_type_specifier "long" (long "long")) (identifier "lVar10") (; ";")) (declaration "undefined8 uVar11;" (type_identifier "undefined8") (identifier "uVar11") (; ";")) (declaration "long lVar12;" (sized_type_specifier "long" (long "long")) (identifier "lVar12") (; ";")) (declaration "ulong uVar13;" (type_identifier "ulong") (identifier "uVar13") (; ";")) (declaration "long lVar14;" (sized_type_specifier "long" (long "long")) (identifier "lVar14") (; ";")) (declaration "ulong uVar15;" (type_identifier "ulong") (identifier "uVar15") (; ";")) (declaration "byte *pbVar16;" (type_identifier "byte") (pointer_declarator "*pbVar16" (* "*") (identifier "pbVar16")) (; ";")) (declaration "byte *pbVar17;" (type_identifier "byte") (pointer_declarator "*pbVar17" (* "*") (identifier "pbVar17")) (; ";")) (declaration "bool bVar18;" (primitive_type "bool") (identifier "bVar18") (; ";")) (declaration "bool bVar19;" (primitive_type "bool") (identifier "bVar19") (; ";")) (declaration "long local_88;" (sized_type_specifier "long" (long "long")) (identifier "local_88") (; ";")) (declaration "uint local_5c;" (type_identifier "uint") (identifier "local_5c") (; ";")) (declaration "int local_50;" (primitive_type "int") (identifier "local_50") (; ";")) (declaration "int local_4c;" (primitive_type "int") (identifier "local_4c") (; ";")) (declaration "long local_48;" (sized_type_specifier "long" (long "long")) (identifier "local_48") (; ";")) (declaration "long local_40 [2];" (sized_type_specifier "long" (long "long")) (array_declarator "local_40 [2]" (identifier "local_40") ([ "[") (number_literal "2") (] "]")) (; ";")) (expression_statement "uVar2 = param_2[7];" (assignment_expression "uVar2 = param_2[7]" (identifier "uVar2") (= "=") (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]"))) (; ";")) (if_statement "if (0x1f < uVar2) {\n    bVar18 = (*(uint *)(param_2 + 4) & 0x101) == 0;\n    bVar19 = (*(uint *)(param_2 + 4) & 0x101) == 1;\n    if (!bVar19) {\n      pbVar3 = (byte *)*param_2;\n      lVar12 = 7;\n      pbVar16 = pbVar3;\n      pbVar17 = &DAT_0014ff00;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar18 = *pbVar16 < *pbVar17;\n        bVar19 = *pbVar16 == *pbVar17;\n        pbVar16 = pbVar16 + 1;\n        pbVar17 = pbVar17 + 1;\n      } while (bVar19);\n      if ((!bVar18 && !bVar19) == bVar18) {\n        plVar4 = (long *)param_2[0x15];\n        lVar12 = *plVar4;\n        lVar7 = FUN_0010c160();\n        if (lVar7 != 0) {\n          if (DAT_001e4554 == 5) {\n            local_5c = bfd_get_compression_header_size(DAT_001e4750,0);\n            uVar15 = (ulong)local_5c;\n          }\n          else {\n            local_5c = 0;\n            uVar15 = 0xc;\n          }\n          lVar1 = lVar12 + 0x30;\n          local_88 = FUN_00116bb0(lVar1);\n          uVar13 = *(ulong *)(lVar12 + 0x50);\n          lVar8 = *(long *)(lVar12 + 0x48);\n          if (uVar13 - lVar8 < uVar15) {\n            local_88 = FUN_00116bb0(lVar1);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n            lVar8 = *(long *)(lVar12 + 0x48);\n            if (uVar13 - lVar8 < uVar15) {\n              uVar11 = dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5);\n                    \n              FUN_0011dc10(uVar11,uVar15);\n            }\n          }\n          lVar8 = lVar8 + uVar15;\n          *(long *)(lVar12 + 0x48) = lVar8;\n          *(ulong *)(local_88 + 0x10) = uVar15;\n          local_48 = local_88;\n          plVar5 = (long *)*plVar4;\n          *(undefined4 *)(local_88 + 0x5c) = 1;\n          lVar10 = *plVar5;\n          if (lVar10 != 0) {\n            if (*(int *)(lVar10 + 0x5c) == 1) {\n              do {\n                lVar8 = *(long *)(lVar10 + 0x10);\n                if (lVar8 != 0) {\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }\n                lVar14 = *(long *)(lVar10 + 0x20);\n                uVar13 = *(ulong *)(lVar10 + 0x18);\n                if (lVar14 < 0) {\n                    \n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((uVar13 != 0) && (lVar14 != 0)) {\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }\n                lVar10 = *(long *)(lVar10 + 0x38);\n                if (lVar10 == 0) {\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar10 + 0x5c) == 1);\n            }\n                    \n            FUN_0011dd00("../../gas/write.c",0x5d4,"compress_debug");\n          }\nLAB_0012dd51:\n          while( true ) {\n            local_50 = (int)uVar13 - (int)lVar8;\n            if (local_50 < 1) {\n              if (*(long *)(lVar12 + 0x40) == lVar8) {\n                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;\n              }\n              uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60);\n              *(ulong *)(lVar12 + 0x48) = uVar9;\n              if (uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)) {\n                *(ulong *)(lVar12 + 0x48) = uVar13;\n                uVar9 = uVar13;\n              }\n              *(ulong *)(lVar12 + 0x40) = uVar9;\n              lVar10 = FUN_00116bb0(lVar1);\n              uVar11 = *(undefined8 *)(lVar12 + 0x50);\n              *(undefined4 *)(lVar10 + 0x5c) = 1;\n              *(long *)(local_48 + 0x38) = lVar10;\n              lVar8 = *(long *)(lVar12 + 0x48);\n              local_50 = (int)uVar11 - (int)lVar8;\n              local_48 = lVar10;\n              if (local_50 < 1) {\n                uVar11 = dcgettext(0,"can\'t extend frag",5);\n                    \n                FUN_0011dc10(uVar11);\n              }\n            }\n            *(long *)(lVar12 + 0x48) = lVar8 + local_50;\n            local_40[0] = lVar8;\n            iVar6 = FUN_0010c220(lVar7,local_40,&local_50,&local_4c);\n            if (iVar6 < 0) {\n              return;\n            }\n            uVar15 = uVar15 + (long)local_4c;\n            *(long *)(local_48 + 0x10) = *(long *)(local_48 + 0x10) + (long)local_4c;\n            if (0 < local_50) {\n              *(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50;\n            }\n            if (iVar6 == 0) break;\n            lVar8 = *(long *)(lVar12 + 0x48);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n          }\n          if (uVar15 < uVar2) {\n            plVar4 = (long *)*plVar4;\n            *plVar4 = local_88;\n            plVar4[1] = local_48;\n            bfd_update_compression_header(param_1,local_88 + 0x80,param_2);\n            iVar6 = bfd_set_section_size(param_1,param_2,uVar15);\n            if (iVar6 == 0) {\n                    \n              FUN_0011dd00("../../gas/write.c",0x622,"compress_debug");\n            }\n            if (local_5c == 0) {\n              uVar11 = concat(&DAT_0014ff08,pbVar3 + 1,0);\n              *param_2 = uVar11;\n            }\n          }\n        }\n      }\n    }\n  }" (if "if") (parenthesized_expression "(0x1f < uVar2)" (( "(") (binary_expression "0x1f < uVar2" (number_literal "0x1f") (< "<") (identifier "uVar2")) () ")")) (compound_statement "{\n    bVar18 = (*(uint *)(param_2 + 4) & 0x101) == 0;\n    bVar19 = (*(uint *)(param_2 + 4) & 0x101) == 1;\n    if (!bVar19) {\n      pbVar3 = (byte *)*param_2;\n      lVar12 = 7;\n      pbVar16 = pbVar3;\n      pbVar17 = &DAT_0014ff00;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar18 = *pbVar16 < *pbVar17;\n        bVar19 = *pbVar16 == *pbVar17;\n        pbVar16 = pbVar16 + 1;\n        pbVar17 = pbVar17 + 1;\n      } while (bVar19);\n      if ((!bVar18 && !bVar19) == bVar18) {\n        plVar4 = (long *)param_2[0x15];\n        lVar12 = *plVar4;\n        lVar7 = FUN_0010c160();\n        if (lVar7 != 0) {\n          if (DAT_001e4554 == 5) {\n            local_5c = bfd_get_compression_header_size(DAT_001e4750,0);\n            uVar15 = (ulong)local_5c;\n          }\n          else {\n            local_5c = 0;\n            uVar15 = 0xc;\n          }\n          lVar1 = lVar12 + 0x30;\n          local_88 = FUN_00116bb0(lVar1);\n          uVar13 = *(ulong *)(lVar12 + 0x50);\n          lVar8 = *(long *)(lVar12 + 0x48);\n          if (uVar13 - lVar8 < uVar15) {\n            local_88 = FUN_00116bb0(lVar1);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n            lVar8 = *(long *)(lVar12 + 0x48);\n            if (uVar13 - lVar8 < uVar15) {\n              uVar11 = dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5);\n                    \n              FUN_0011dc10(uVar11,uVar15);\n            }\n          }\n          lVar8 = lVar8 + uVar15;\n          *(long *)(lVar12 + 0x48) = lVar8;\n          *(ulong *)(local_88 + 0x10) = uVar15;\n          local_48 = local_88;\n          plVar5 = (long *)*plVar4;\n          *(undefined4 *)(local_88 + 0x5c) = 1;\n          lVar10 = *plVar5;\n          if (lVar10 != 0) {\n            if (*(int *)(lVar10 + 0x5c) == 1) {\n              do {\n                lVar8 = *(long *)(lVar10 + 0x10);\n                if (lVar8 != 0) {\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }\n                lVar14 = *(long *)(lVar10 + 0x20);\n                uVar13 = *(ulong *)(lVar10 + 0x18);\n                if (lVar14 < 0) {\n                    \n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((uVar13 != 0) && (lVar14 != 0)) {\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }\n                lVar10 = *(long *)(lVar10 + 0x38);\n                if (lVar10 == 0) {\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar10 + 0x5c) == 1);\n            }\n                    \n            FUN_0011dd00("../../gas/write.c",0x5d4,"compress_debug");\n          }\nLAB_0012dd51:\n          while( true ) {\n            local_50 = (int)uVar13 - (int)lVar8;\n            if (local_50 < 1) {\n              if (*(long *)(lVar12 + 0x40) == lVar8) {\n                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;\n              }\n              uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60);\n              *(ulong *)(lVar12 + 0x48) = uVar9;\n              if (uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)) {\n                *(ulong *)(lVar12 + 0x48) = uVar13;\n                uVar9 = uVar13;\n              }\n              *(ulong *)(lVar12 + 0x40) = uVar9;\n              lVar10 = FUN_00116bb0(lVar1);\n              uVar11 = *(undefined8 *)(lVar12 + 0x50);\n              *(undefined4 *)(lVar10 + 0x5c) = 1;\n              *(long *)(local_48 + 0x38) = lVar10;\n              lVar8 = *(long *)(lVar12 + 0x48);\n              local_50 = (int)uVar11 - (int)lVar8;\n              local_48 = lVar10;\n              if (local_50 < 1) {\n                uVar11 = dcgettext(0,"can\'t extend frag",5);\n                    \n                FUN_0011dc10(uVar11);\n              }\n            }\n            *(long *)(lVar12 + 0x48) = lVar8 + local_50;\n            local_40[0] = lVar8;\n            iVar6 = FUN_0010c220(lVar7,local_40,&local_50,&local_4c);\n            if (iVar6 < 0) {\n              return;\n            }\n            uVar15 = uVar15 + (long)local_4c;\n            *(long *)(local_48 + 0x10) = *(long *)(local_48 + 0x10) + (long)local_4c;\n            if (0 < local_50) {\n              *(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50;\n            }\n            if (iVar6 == 0) break;\n            lVar8 = *(long *)(lVar12 + 0x48);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n          }\n          if (uVar15 < uVar2) {\n            plVar4 = (long *)*plVar4;\n            *plVar4 = local_88;\n            plVar4[1] = local_48;\n            bfd_update_compression_header(param_1,local_88 + 0x80,param_2);\n            iVar6 = bfd_set_section_size(param_1,param_2,uVar15);\n            if (iVar6 == 0) {\n                    \n              FUN_0011dd00("../../gas/write.c",0x622,"compress_debug");\n            }\n            if (local_5c == 0) {\n              uVar11 = concat(&DAT_0014ff08,pbVar3 + 1,0);\n              *param_2 = uVar11;\n            }\n          }\n        }\n      }\n    }\n  }" ({ "{") (expression_statement "bVar18 = (*(uint *)(param_2 + 4) & 0x101) == 0;" (assignment_expression "bVar18 = (*(uint *)(param_2 + 4) & 0x101) == 0" (identifier "bVar18") (= "=") (binary_expression "(*(uint *)(param_2 + 4) & 0x101) == 0" (parenthesized_expression "(*(uint *)(param_2 + 4) & 0x101)" (( "(") (binary_expression "*(uint *)(param_2 + 4) & 0x101" (pointer_expression "*(uint *)(param_2 + 4)" (* "*") (cast_expression "(uint *)(param_2 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 4)" (( "(") (binary_expression "param_2 + 4" (identifier "param_2") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "0x101")) () ")")) (== "==") (number_literal "0"))) (; ";")) (expression_statement "bVar19 = (*(uint *)(param_2 + 4) & 0x101) == 1;" (assignment_expression "bVar19 = (*(uint *)(param_2 + 4) & 0x101) == 1" (identifier "bVar19") (= "=") (binary_expression "(*(uint *)(param_2 + 4) & 0x101) == 1" (parenthesized_expression "(*(uint *)(param_2 + 4) & 0x101)" (( "(") (binary_expression "*(uint *)(param_2 + 4) & 0x101" (pointer_expression "*(uint *)(param_2 + 4)" (* "*") (cast_expression "(uint *)(param_2 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 4)" (( "(") (binary_expression "param_2 + 4" (identifier "param_2") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "0x101")) () ")")) (== "==") (number_literal "1"))) (; ";")) (if_statement "if (!bVar19) {\n      pbVar3 = (byte *)*param_2;\n      lVar12 = 7;\n      pbVar16 = pbVar3;\n      pbVar17 = &DAT_0014ff00;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar18 = *pbVar16 < *pbVar17;\n        bVar19 = *pbVar16 == *pbVar17;\n        pbVar16 = pbVar16 + 1;\n        pbVar17 = pbVar17 + 1;\n      } while (bVar19);\n      if ((!bVar18 && !bVar19) == bVar18) {\n        plVar4 = (long *)param_2[0x15];\n        lVar12 = *plVar4;\n        lVar7 = FUN_0010c160();\n        if (lVar7 != 0) {\n          if (DAT_001e4554 == 5) {\n            local_5c = bfd_get_compression_header_size(DAT_001e4750,0);\n            uVar15 = (ulong)local_5c;\n          }\n          else {\n            local_5c = 0;\n            uVar15 = 0xc;\n          }\n          lVar1 = lVar12 + 0x30;\n          local_88 = FUN_00116bb0(lVar1);\n          uVar13 = *(ulong *)(lVar12 + 0x50);\n          lVar8 = *(long *)(lVar12 + 0x48);\n          if (uVar13 - lVar8 < uVar15) {\n            local_88 = FUN_00116bb0(lVar1);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n            lVar8 = *(long *)(lVar12 + 0x48);\n            if (uVar13 - lVar8 < uVar15) {\n              uVar11 = dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5);\n                    \n              FUN_0011dc10(uVar11,uVar15);\n            }\n          }\n          lVar8 = lVar8 + uVar15;\n          *(long *)(lVar12 + 0x48) = lVar8;\n          *(ulong *)(local_88 + 0x10) = uVar15;\n          local_48 = local_88;\n          plVar5 = (long *)*plVar4;\n          *(undefined4 *)(local_88 + 0x5c) = 1;\n          lVar10 = *plVar5;\n          if (lVar10 != 0) {\n            if (*(int *)(lVar10 + 0x5c) == 1) {\n              do {\n                lVar8 = *(long *)(lVar10 + 0x10);\n                if (lVar8 != 0) {\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }\n                lVar14 = *(long *)(lVar10 + 0x20);\n                uVar13 = *(ulong *)(lVar10 + 0x18);\n                if (lVar14 < 0) {\n                    \n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((uVar13 != 0) && (lVar14 != 0)) {\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }\n                lVar10 = *(long *)(lVar10 + 0x38);\n                if (lVar10 == 0) {\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar10 + 0x5c) == 1);\n            }\n                    \n            FUN_0011dd00("../../gas/write.c",0x5d4,"compress_debug");\n          }\nLAB_0012dd51:\n          while( true ) {\n            local_50 = (int)uVar13 - (int)lVar8;\n            if (local_50 < 1) {\n              if (*(long *)(lVar12 + 0x40) == lVar8) {\n                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;\n              }\n              uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60);\n              *(ulong *)(lVar12 + 0x48) = uVar9;\n              if (uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)) {\n                *(ulong *)(lVar12 + 0x48) = uVar13;\n                uVar9 = uVar13;\n              }\n              *(ulong *)(lVar12 + 0x40) = uVar9;\n              lVar10 = FUN_00116bb0(lVar1);\n              uVar11 = *(undefined8 *)(lVar12 + 0x50);\n              *(undefined4 *)(lVar10 + 0x5c) = 1;\n              *(long *)(local_48 + 0x38) = lVar10;\n              lVar8 = *(long *)(lVar12 + 0x48);\n              local_50 = (int)uVar11 - (int)lVar8;\n              local_48 = lVar10;\n              if (local_50 < 1) {\n                uVar11 = dcgettext(0,"can\'t extend frag",5);\n                    \n                FUN_0011dc10(uVar11);\n              }\n            }\n            *(long *)(lVar12 + 0x48) = lVar8 + local_50;\n            local_40[0] = lVar8;\n            iVar6 = FUN_0010c220(lVar7,local_40,&local_50,&local_4c);\n            if (iVar6 < 0) {\n              return;\n            }\n            uVar15 = uVar15 + (long)local_4c;\n            *(long *)(local_48 + 0x10) = *(long *)(local_48 + 0x10) + (long)local_4c;\n            if (0 < local_50) {\n              *(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50;\n            }\n            if (iVar6 == 0) break;\n            lVar8 = *(long *)(lVar12 + 0x48);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n          }\n          if (uVar15 < uVar2) {\n            plVar4 = (long *)*plVar4;\n            *plVar4 = local_88;\n            plVar4[1] = local_48;\n            bfd_update_compression_header(param_1,local_88 + 0x80,param_2);\n            iVar6 = bfd_set_section_size(param_1,param_2,uVar15);\n            if (iVar6 == 0) {\n                    \n              FUN_0011dd00("../../gas/write.c",0x622,"compress_debug");\n            }\n            if (local_5c == 0) {\n              uVar11 = concat(&DAT_0014ff08,pbVar3 + 1,0);\n              *param_2 = uVar11;\n            }\n          }\n        }\n      }\n    }" (if "if") (parenthesized_expression "(!bVar19)" (( "(") (unary_expression "!bVar19" (! "!") (identifier "bVar19")) () ")")) (compound_statement "{\n      pbVar3 = (byte *)*param_2;\n      lVar12 = 7;\n      pbVar16 = pbVar3;\n      pbVar17 = &DAT_0014ff00;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar18 = *pbVar16 < *pbVar17;\n        bVar19 = *pbVar16 == *pbVar17;\n        pbVar16 = pbVar16 + 1;\n        pbVar17 = pbVar17 + 1;\n      } while (bVar19);\n      if ((!bVar18 && !bVar19) == bVar18) {\n        plVar4 = (long *)param_2[0x15];\n        lVar12 = *plVar4;\n        lVar7 = FUN_0010c160();\n        if (lVar7 != 0) {\n          if (DAT_001e4554 == 5) {\n            local_5c = bfd_get_compression_header_size(DAT_001e4750,0);\n            uVar15 = (ulong)local_5c;\n          }\n          else {\n            local_5c = 0;\n            uVar15 = 0xc;\n          }\n          lVar1 = lVar12 + 0x30;\n          local_88 = FUN_00116bb0(lVar1);\n          uVar13 = *(ulong *)(lVar12 + 0x50);\n          lVar8 = *(long *)(lVar12 + 0x48);\n          if (uVar13 - lVar8 < uVar15) {\n            local_88 = FUN_00116bb0(lVar1);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n            lVar8 = *(long *)(lVar12 + 0x48);\n            if (uVar13 - lVar8 < uVar15) {\n              uVar11 = dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5);\n                    \n              FUN_0011dc10(uVar11,uVar15);\n            }\n          }\n          lVar8 = lVar8 + uVar15;\n          *(long *)(lVar12 + 0x48) = lVar8;\n          *(ulong *)(local_88 + 0x10) = uVar15;\n          local_48 = local_88;\n          plVar5 = (long *)*plVar4;\n          *(undefined4 *)(local_88 + 0x5c) = 1;\n          lVar10 = *plVar5;\n          if (lVar10 != 0) {\n            if (*(int *)(lVar10 + 0x5c) == 1) {\n              do {\n                lVar8 = *(long *)(lVar10 + 0x10);\n                if (lVar8 != 0) {\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }\n                lVar14 = *(long *)(lVar10 + 0x20);\n                uVar13 = *(ulong *)(lVar10 + 0x18);\n                if (lVar14 < 0) {\n                    \n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((uVar13 != 0) && (lVar14 != 0)) {\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }\n                lVar10 = *(long *)(lVar10 + 0x38);\n                if (lVar10 == 0) {\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar10 + 0x5c) == 1);\n            }\n                    \n            FUN_0011dd00("../../gas/write.c",0x5d4,"compress_debug");\n          }\nLAB_0012dd51:\n          while( true ) {\n            local_50 = (int)uVar13 - (int)lVar8;\n            if (local_50 < 1) {\n              if (*(long *)(lVar12 + 0x40) == lVar8) {\n                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;\n              }\n              uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60);\n              *(ulong *)(lVar12 + 0x48) = uVar9;\n              if (uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)) {\n                *(ulong *)(lVar12 + 0x48) = uVar13;\n                uVar9 = uVar13;\n              }\n              *(ulong *)(lVar12 + 0x40) = uVar9;\n              lVar10 = FUN_00116bb0(lVar1);\n              uVar11 = *(undefined8 *)(lVar12 + 0x50);\n              *(undefined4 *)(lVar10 + 0x5c) = 1;\n              *(long *)(local_48 + 0x38) = lVar10;\n              lVar8 = *(long *)(lVar12 + 0x48);\n              local_50 = (int)uVar11 - (int)lVar8;\n              local_48 = lVar10;\n              if (local_50 < 1) {\n                uVar11 = dcgettext(0,"can\'t extend frag",5);\n                    \n                FUN_0011dc10(uVar11);\n              }\n            }\n            *(long *)(lVar12 + 0x48) = lVar8 + local_50;\n            local_40[0] = lVar8;\n            iVar6 = FUN_0010c220(lVar7,local_40,&local_50,&local_4c);\n            if (iVar6 < 0) {\n              return;\n            }\n            uVar15 = uVar15 + (long)local_4c;\n            *(long *)(local_48 + 0x10) = *(long *)(local_48 + 0x10) + (long)local_4c;\n            if (0 < local_50) {\n              *(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50;\n            }\n            if (iVar6 == 0) break;\n            lVar8 = *(long *)(lVar12 + 0x48);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n          }\n          if (uVar15 < uVar2) {\n            plVar4 = (long *)*plVar4;\n            *plVar4 = local_88;\n            plVar4[1] = local_48;\n            bfd_update_compression_header(param_1,local_88 + 0x80,param_2);\n            iVar6 = bfd_set_section_size(param_1,param_2,uVar15);\n            if (iVar6 == 0) {\n                    \n              FUN_0011dd00("../../gas/write.c",0x622,"compress_debug");\n            }\n            if (local_5c == 0) {\n              uVar11 = concat(&DAT_0014ff08,pbVar3 + 1,0);\n              *param_2 = uVar11;\n            }\n          }\n        }\n      }\n    }" ({ "{") (expression_statement "pbVar3 = (byte *)*param_2;" (assignment_expression "pbVar3 = (byte *)*param_2" (identifier "pbVar3") (= "=") (cast_expression "(byte *)*param_2" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (; ";")) (expression_statement "lVar12 = 7;" (assignment_expression "lVar12 = 7" (identifier "lVar12") (= "=") (number_literal "7")) (; ";")) (expression_statement "pbVar16 = pbVar3;" (assignment_expression "pbVar16 = pbVar3" (identifier "pbVar16") (= "=") (identifier "pbVar3")) (; ";")) (expression_statement "pbVar17 = &DAT_0014ff00;" (assignment_expression "pbVar17 = &DAT_0014ff00" (identifier "pbVar17") (= "=") (pointer_expression "&DAT_0014ff00" (& "&") (identifier "DAT_0014ff00"))) (; ";")) (do_statement "do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar18 = *pbVar16 < *pbVar17;\n        bVar19 = *pbVar16 == *pbVar17;\n        pbVar16 = pbVar16 + 1;\n        pbVar17 = pbVar17 + 1;\n      } while (bVar19);" (do "do") (compound_statement "{\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar18 = *pbVar16 < *pbVar17;\n        bVar19 = *pbVar16 == *pbVar17;\n        pbVar16 = pbVar16 + 1;\n        pbVar17 = pbVar17 + 1;\n      }" ({ "{") (if_statement "if (lVar12 == 0) break;" (if "if") (parenthesized_expression "(lVar12 == 0)" (( "(") (binary_expression "lVar12 == 0" (identifier "lVar12") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar12 = lVar12 + -1;" (assignment_expression "lVar12 = lVar12 + -1" (identifier "lVar12") (= "=") (binary_expression "lVar12 + -1" (identifier "lVar12") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar18 = *pbVar16 < *pbVar17;" (assignment_expression "bVar18 = *pbVar16 < *pbVar17" (identifier "bVar18") (= "=") (binary_expression "*pbVar16 < *pbVar17" (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")) (< "<") (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")))) (; ";")) (expression_statement "bVar19 = *pbVar16 == *pbVar17;" (assignment_expression "bVar19 = *pbVar16 == *pbVar17" (identifier "bVar19") (= "=") (binary_expression "*pbVar16 == *pbVar17" (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")) (== "==") (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")))) (; ";")) (expression_statement "pbVar16 = pbVar16 + 1;" (assignment_expression "pbVar16 = pbVar16 + 1" (identifier "pbVar16") (= "=") (binary_expression "pbVar16 + 1" (identifier "pbVar16") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar17 = pbVar17 + 1;" (assignment_expression "pbVar17 = pbVar17 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + 1" (identifier "pbVar17") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar19)" (( "(") (identifier "bVar19") () ")")) (; ";")) (if_statement "if ((!bVar18 && !bVar19) == bVar18) {\n        plVar4 = (long *)param_2[0x15];\n        lVar12 = *plVar4;\n        lVar7 = FUN_0010c160();\n        if (lVar7 != 0) {\n          if (DAT_001e4554 == 5) {\n            local_5c = bfd_get_compression_header_size(DAT_001e4750,0);\n            uVar15 = (ulong)local_5c;\n          }\n          else {\n            local_5c = 0;\n            uVar15 = 0xc;\n          }\n          lVar1 = lVar12 + 0x30;\n          local_88 = FUN_00116bb0(lVar1);\n          uVar13 = *(ulong *)(lVar12 + 0x50);\n          lVar8 = *(long *)(lVar12 + 0x48);\n          if (uVar13 - lVar8 < uVar15) {\n            local_88 = FUN_00116bb0(lVar1);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n            lVar8 = *(long *)(lVar12 + 0x48);\n            if (uVar13 - lVar8 < uVar15) {\n              uVar11 = dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5);\n                    \n              FUN_0011dc10(uVar11,uVar15);\n            }\n          }\n          lVar8 = lVar8 + uVar15;\n          *(long *)(lVar12 + 0x48) = lVar8;\n          *(ulong *)(local_88 + 0x10) = uVar15;\n          local_48 = local_88;\n          plVar5 = (long *)*plVar4;\n          *(undefined4 *)(local_88 + 0x5c) = 1;\n          lVar10 = *plVar5;\n          if (lVar10 != 0) {\n            if (*(int *)(lVar10 + 0x5c) == 1) {\n              do {\n                lVar8 = *(long *)(lVar10 + 0x10);\n                if (lVar8 != 0) {\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }\n                lVar14 = *(long *)(lVar10 + 0x20);\n                uVar13 = *(ulong *)(lVar10 + 0x18);\n                if (lVar14 < 0) {\n                    \n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((uVar13 != 0) && (lVar14 != 0)) {\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }\n                lVar10 = *(long *)(lVar10 + 0x38);\n                if (lVar10 == 0) {\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar10 + 0x5c) == 1);\n            }\n                    \n            FUN_0011dd00("../../gas/write.c",0x5d4,"compress_debug");\n          }\nLAB_0012dd51:\n          while( true ) {\n            local_50 = (int)uVar13 - (int)lVar8;\n            if (local_50 < 1) {\n              if (*(long *)(lVar12 + 0x40) == lVar8) {\n                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;\n              }\n              uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60);\n              *(ulong *)(lVar12 + 0x48) = uVar9;\n              if (uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)) {\n                *(ulong *)(lVar12 + 0x48) = uVar13;\n                uVar9 = uVar13;\n              }\n              *(ulong *)(lVar12 + 0x40) = uVar9;\n              lVar10 = FUN_00116bb0(lVar1);\n              uVar11 = *(undefined8 *)(lVar12 + 0x50);\n              *(undefined4 *)(lVar10 + 0x5c) = 1;\n              *(long *)(local_48 + 0x38) = lVar10;\n              lVar8 = *(long *)(lVar12 + 0x48);\n              local_50 = (int)uVar11 - (int)lVar8;\n              local_48 = lVar10;\n              if (local_50 < 1) {\n                uVar11 = dcgettext(0,"can\'t extend frag",5);\n                    \n                FUN_0011dc10(uVar11);\n              }\n            }\n            *(long *)(lVar12 + 0x48) = lVar8 + local_50;\n            local_40[0] = lVar8;\n            iVar6 = FUN_0010c220(lVar7,local_40,&local_50,&local_4c);\n            if (iVar6 < 0) {\n              return;\n            }\n            uVar15 = uVar15 + (long)local_4c;\n            *(long *)(local_48 + 0x10) = *(long *)(local_48 + 0x10) + (long)local_4c;\n            if (0 < local_50) {\n              *(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50;\n            }\n            if (iVar6 == 0) break;\n            lVar8 = *(long *)(lVar12 + 0x48);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n          }\n          if (uVar15 < uVar2) {\n            plVar4 = (long *)*plVar4;\n            *plVar4 = local_88;\n            plVar4[1] = local_48;\n            bfd_update_compression_header(param_1,local_88 + 0x80,param_2);\n            iVar6 = bfd_set_section_size(param_1,param_2,uVar15);\n            if (iVar6 == 0) {\n                    \n              FUN_0011dd00("../../gas/write.c",0x622,"compress_debug");\n            }\n            if (local_5c == 0) {\n              uVar11 = concat(&DAT_0014ff08,pbVar3 + 1,0);\n              *param_2 = uVar11;\n            }\n          }\n        }\n      }" (if "if") (parenthesized_expression "((!bVar18 && !bVar19) == bVar18)" (( "(") (binary_expression "(!bVar18 && !bVar19) == bVar18" (parenthesized_expression "(!bVar18 && !bVar19)" (( "(") (binary_expression "!bVar18 && !bVar19" (unary_expression "!bVar18" (! "!") (identifier "bVar18")) (&& "&&") (unary_expression "!bVar19" (! "!") (identifier "bVar19"))) () ")")) (== "==") (identifier "bVar18")) () ")")) (compound_statement "{\n        plVar4 = (long *)param_2[0x15];\n        lVar12 = *plVar4;\n        lVar7 = FUN_0010c160();\n        if (lVar7 != 0) {\n          if (DAT_001e4554 == 5) {\n            local_5c = bfd_get_compression_header_size(DAT_001e4750,0);\n            uVar15 = (ulong)local_5c;\n          }\n          else {\n            local_5c = 0;\n            uVar15 = 0xc;\n          }\n          lVar1 = lVar12 + 0x30;\n          local_88 = FUN_00116bb0(lVar1);\n          uVar13 = *(ulong *)(lVar12 + 0x50);\n          lVar8 = *(long *)(lVar12 + 0x48);\n          if (uVar13 - lVar8 < uVar15) {\n            local_88 = FUN_00116bb0(lVar1);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n            lVar8 = *(long *)(lVar12 + 0x48);\n            if (uVar13 - lVar8 < uVar15) {\n              uVar11 = dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5);\n                    \n              FUN_0011dc10(uVar11,uVar15);\n            }\n          }\n          lVar8 = lVar8 + uVar15;\n          *(long *)(lVar12 + 0x48) = lVar8;\n          *(ulong *)(local_88 + 0x10) = uVar15;\n          local_48 = local_88;\n          plVar5 = (long *)*plVar4;\n          *(undefined4 *)(local_88 + 0x5c) = 1;\n          lVar10 = *plVar5;\n          if (lVar10 != 0) {\n            if (*(int *)(lVar10 + 0x5c) == 1) {\n              do {\n                lVar8 = *(long *)(lVar10 + 0x10);\n                if (lVar8 != 0) {\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }\n                lVar14 = *(long *)(lVar10 + 0x20);\n                uVar13 = *(ulong *)(lVar10 + 0x18);\n                if (lVar14 < 0) {\n                    \n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((uVar13 != 0) && (lVar14 != 0)) {\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }\n                lVar10 = *(long *)(lVar10 + 0x38);\n                if (lVar10 == 0) {\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar10 + 0x5c) == 1);\n            }\n                    \n            FUN_0011dd00("../../gas/write.c",0x5d4,"compress_debug");\n          }\nLAB_0012dd51:\n          while( true ) {\n            local_50 = (int)uVar13 - (int)lVar8;\n            if (local_50 < 1) {\n              if (*(long *)(lVar12 + 0x40) == lVar8) {\n                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;\n              }\n              uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60);\n              *(ulong *)(lVar12 + 0x48) = uVar9;\n              if (uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)) {\n                *(ulong *)(lVar12 + 0x48) = uVar13;\n                uVar9 = uVar13;\n              }\n              *(ulong *)(lVar12 + 0x40) = uVar9;\n              lVar10 = FUN_00116bb0(lVar1);\n              uVar11 = *(undefined8 *)(lVar12 + 0x50);\n              *(undefined4 *)(lVar10 + 0x5c) = 1;\n              *(long *)(local_48 + 0x38) = lVar10;\n              lVar8 = *(long *)(lVar12 + 0x48);\n              local_50 = (int)uVar11 - (int)lVar8;\n              local_48 = lVar10;\n              if (local_50 < 1) {\n                uVar11 = dcgettext(0,"can\'t extend frag",5);\n                    \n                FUN_0011dc10(uVar11);\n              }\n            }\n            *(long *)(lVar12 + 0x48) = lVar8 + local_50;\n            local_40[0] = lVar8;\n            iVar6 = FUN_0010c220(lVar7,local_40,&local_50,&local_4c);\n            if (iVar6 < 0) {\n              return;\n            }\n            uVar15 = uVar15 + (long)local_4c;\n            *(long *)(local_48 + 0x10) = *(long *)(local_48 + 0x10) + (long)local_4c;\n            if (0 < local_50) {\n              *(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50;\n            }\n            if (iVar6 == 0) break;\n            lVar8 = *(long *)(lVar12 + 0x48);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n          }\n          if (uVar15 < uVar2) {\n            plVar4 = (long *)*plVar4;\n            *plVar4 = local_88;\n            plVar4[1] = local_48;\n            bfd_update_compression_header(param_1,local_88 + 0x80,param_2);\n            iVar6 = bfd_set_section_size(param_1,param_2,uVar15);\n            if (iVar6 == 0) {\n                    \n              FUN_0011dd00("../../gas/write.c",0x622,"compress_debug");\n            }\n            if (local_5c == 0) {\n              uVar11 = concat(&DAT_0014ff08,pbVar3 + 1,0);\n              *param_2 = uVar11;\n            }\n          }\n        }\n      }" ({ "{") (expression_statement "plVar4 = (long *)param_2[0x15];" (assignment_expression "plVar4 = (long *)param_2[0x15]" (identifier "plVar4") (= "=") (cast_expression "(long *)param_2[0x15]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[0x15]" (identifier "param_2") ([ "[") (number_literal "0x15") (] "]")))) (; ";")) (expression_statement "lVar12 = *plVar4;" (assignment_expression "lVar12 = *plVar4" (identifier "lVar12") (= "=") (pointer_expression "*plVar4" (* "*") (identifier "plVar4"))) (; ";")) (expression_statement "lVar7 = FUN_0010c160();" (assignment_expression "lVar7 = FUN_0010c160()" (identifier "lVar7") (= "=") (call_expression "FUN_0010c160()" (identifier "FUN_0010c160") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (lVar7 != 0) {\n          if (DAT_001e4554 == 5) {\n            local_5c = bfd_get_compression_header_size(DAT_001e4750,0);\n            uVar15 = (ulong)local_5c;\n          }\n          else {\n            local_5c = 0;\n            uVar15 = 0xc;\n          }\n          lVar1 = lVar12 + 0x30;\n          local_88 = FUN_00116bb0(lVar1);\n          uVar13 = *(ulong *)(lVar12 + 0x50);\n          lVar8 = *(long *)(lVar12 + 0x48);\n          if (uVar13 - lVar8 < uVar15) {\n            local_88 = FUN_00116bb0(lVar1);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n            lVar8 = *(long *)(lVar12 + 0x48);\n            if (uVar13 - lVar8 < uVar15) {\n              uVar11 = dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5);\n                    \n              FUN_0011dc10(uVar11,uVar15);\n            }\n          }\n          lVar8 = lVar8 + uVar15;\n          *(long *)(lVar12 + 0x48) = lVar8;\n          *(ulong *)(local_88 + 0x10) = uVar15;\n          local_48 = local_88;\n          plVar5 = (long *)*plVar4;\n          *(undefined4 *)(local_88 + 0x5c) = 1;\n          lVar10 = *plVar5;\n          if (lVar10 != 0) {\n            if (*(int *)(lVar10 + 0x5c) == 1) {\n              do {\n                lVar8 = *(long *)(lVar10 + 0x10);\n                if (lVar8 != 0) {\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }\n                lVar14 = *(long *)(lVar10 + 0x20);\n                uVar13 = *(ulong *)(lVar10 + 0x18);\n                if (lVar14 < 0) {\n                    \n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((uVar13 != 0) && (lVar14 != 0)) {\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }\n                lVar10 = *(long *)(lVar10 + 0x38);\n                if (lVar10 == 0) {\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar10 + 0x5c) == 1);\n            }\n                    \n            FUN_0011dd00("../../gas/write.c",0x5d4,"compress_debug");\n          }\nLAB_0012dd51:\n          while( true ) {\n            local_50 = (int)uVar13 - (int)lVar8;\n            if (local_50 < 1) {\n              if (*(long *)(lVar12 + 0x40) == lVar8) {\n                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;\n              }\n              uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60);\n              *(ulong *)(lVar12 + 0x48) = uVar9;\n              if (uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)) {\n                *(ulong *)(lVar12 + 0x48) = uVar13;\n                uVar9 = uVar13;\n              }\n              *(ulong *)(lVar12 + 0x40) = uVar9;\n              lVar10 = FUN_00116bb0(lVar1);\n              uVar11 = *(undefined8 *)(lVar12 + 0x50);\n              *(undefined4 *)(lVar10 + 0x5c) = 1;\n              *(long *)(local_48 + 0x38) = lVar10;\n              lVar8 = *(long *)(lVar12 + 0x48);\n              local_50 = (int)uVar11 - (int)lVar8;\n              local_48 = lVar10;\n              if (local_50 < 1) {\n                uVar11 = dcgettext(0,"can\'t extend frag",5);\n                    \n                FUN_0011dc10(uVar11);\n              }\n            }\n            *(long *)(lVar12 + 0x48) = lVar8 + local_50;\n            local_40[0] = lVar8;\n            iVar6 = FUN_0010c220(lVar7,local_40,&local_50,&local_4c);\n            if (iVar6 < 0) {\n              return;\n            }\n            uVar15 = uVar15 + (long)local_4c;\n            *(long *)(local_48 + 0x10) = *(long *)(local_48 + 0x10) + (long)local_4c;\n            if (0 < local_50) {\n              *(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50;\n            }\n            if (iVar6 == 0) break;\n            lVar8 = *(long *)(lVar12 + 0x48);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n          }\n          if (uVar15 < uVar2) {\n            plVar4 = (long *)*plVar4;\n            *plVar4 = local_88;\n            plVar4[1] = local_48;\n            bfd_update_compression_header(param_1,local_88 + 0x80,param_2);\n            iVar6 = bfd_set_section_size(param_1,param_2,uVar15);\n            if (iVar6 == 0) {\n                    \n              FUN_0011dd00("../../gas/write.c",0x622,"compress_debug");\n            }\n            if (local_5c == 0) {\n              uVar11 = concat(&DAT_0014ff08,pbVar3 + 1,0);\n              *param_2 = uVar11;\n            }\n          }\n        }" (if "if") (parenthesized_expression "(lVar7 != 0)" (( "(") (binary_expression "lVar7 != 0" (identifier "lVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          if (DAT_001e4554 == 5) {\n            local_5c = bfd_get_compression_header_size(DAT_001e4750,0);\n            uVar15 = (ulong)local_5c;\n          }\n          else {\n            local_5c = 0;\n            uVar15 = 0xc;\n          }\n          lVar1 = lVar12 + 0x30;\n          local_88 = FUN_00116bb0(lVar1);\n          uVar13 = *(ulong *)(lVar12 + 0x50);\n          lVar8 = *(long *)(lVar12 + 0x48);\n          if (uVar13 - lVar8 < uVar15) {\n            local_88 = FUN_00116bb0(lVar1);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n            lVar8 = *(long *)(lVar12 + 0x48);\n            if (uVar13 - lVar8 < uVar15) {\n              uVar11 = dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5);\n                    \n              FUN_0011dc10(uVar11,uVar15);\n            }\n          }\n          lVar8 = lVar8 + uVar15;\n          *(long *)(lVar12 + 0x48) = lVar8;\n          *(ulong *)(local_88 + 0x10) = uVar15;\n          local_48 = local_88;\n          plVar5 = (long *)*plVar4;\n          *(undefined4 *)(local_88 + 0x5c) = 1;\n          lVar10 = *plVar5;\n          if (lVar10 != 0) {\n            if (*(int *)(lVar10 + 0x5c) == 1) {\n              do {\n                lVar8 = *(long *)(lVar10 + 0x10);\n                if (lVar8 != 0) {\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }\n                lVar14 = *(long *)(lVar10 + 0x20);\n                uVar13 = *(ulong *)(lVar10 + 0x18);\n                if (lVar14 < 0) {\n                    \n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((uVar13 != 0) && (lVar14 != 0)) {\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }\n                lVar10 = *(long *)(lVar10 + 0x38);\n                if (lVar10 == 0) {\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar10 + 0x5c) == 1);\n            }\n                    \n            FUN_0011dd00("../../gas/write.c",0x5d4,"compress_debug");\n          }\nLAB_0012dd51:\n          while( true ) {\n            local_50 = (int)uVar13 - (int)lVar8;\n            if (local_50 < 1) {\n              if (*(long *)(lVar12 + 0x40) == lVar8) {\n                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;\n              }\n              uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60);\n              *(ulong *)(lVar12 + 0x48) = uVar9;\n              if (uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)) {\n                *(ulong *)(lVar12 + 0x48) = uVar13;\n                uVar9 = uVar13;\n              }\n              *(ulong *)(lVar12 + 0x40) = uVar9;\n              lVar10 = FUN_00116bb0(lVar1);\n              uVar11 = *(undefined8 *)(lVar12 + 0x50);\n              *(undefined4 *)(lVar10 + 0x5c) = 1;\n              *(long *)(local_48 + 0x38) = lVar10;\n              lVar8 = *(long *)(lVar12 + 0x48);\n              local_50 = (int)uVar11 - (int)lVar8;\n              local_48 = lVar10;\n              if (local_50 < 1) {\n                uVar11 = dcgettext(0,"can\'t extend frag",5);\n                    \n                FUN_0011dc10(uVar11);\n              }\n            }\n            *(long *)(lVar12 + 0x48) = lVar8 + local_50;\n            local_40[0] = lVar8;\n            iVar6 = FUN_0010c220(lVar7,local_40,&local_50,&local_4c);\n            if (iVar6 < 0) {\n              return;\n            }\n            uVar15 = uVar15 + (long)local_4c;\n            *(long *)(local_48 + 0x10) = *(long *)(local_48 + 0x10) + (long)local_4c;\n            if (0 < local_50) {\n              *(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50;\n            }\n            if (iVar6 == 0) break;\n            lVar8 = *(long *)(lVar12 + 0x48);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n          }\n          if (uVar15 < uVar2) {\n            plVar4 = (long *)*plVar4;\n            *plVar4 = local_88;\n            plVar4[1] = local_48;\n            bfd_update_compression_header(param_1,local_88 + 0x80,param_2);\n            iVar6 = bfd_set_section_size(param_1,param_2,uVar15);\n            if (iVar6 == 0) {\n                    \n              FUN_0011dd00("../../gas/write.c",0x622,"compress_debug");\n            }\n            if (local_5c == 0) {\n              uVar11 = concat(&DAT_0014ff08,pbVar3 + 1,0);\n              *param_2 = uVar11;\n            }\n          }\n        }" ({ "{") (if_statement "if (DAT_001e4554 == 5) {\n            local_5c = bfd_get_compression_header_size(DAT_001e4750,0);\n            uVar15 = (ulong)local_5c;\n          }\n          else {\n            local_5c = 0;\n            uVar15 = 0xc;\n          }" (if "if") (parenthesized_expression "(DAT_001e4554 == 5)" (( "(") (binary_expression "DAT_001e4554 == 5" (identifier "DAT_001e4554") (== "==") (number_literal "5")) () ")")) (compound_statement "{\n            local_5c = bfd_get_compression_header_size(DAT_001e4750,0);\n            uVar15 = (ulong)local_5c;\n          }" ({ "{") (expression_statement "local_5c = bfd_get_compression_header_size(DAT_001e4750,0);" (assignment_expression "local_5c = bfd_get_compression_header_size(DAT_001e4750,0)" (identifier "local_5c") (= "=") (call_expression "bfd_get_compression_header_size(DAT_001e4750,0)" (identifier "bfd_get_compression_header_size") (argument_list "(DAT_001e4750,0)" (( "(") (identifier "DAT_001e4750") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "uVar15 = (ulong)local_5c;" (assignment_expression "uVar15 = (ulong)local_5c" (identifier "uVar15") (= "=") (cast_expression "(ulong)local_5c" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_5c"))) (; ";")) (} "}")) (else_clause "else {\n            local_5c = 0;\n            uVar15 = 0xc;\n          }" (else "else") (compound_statement "{\n            local_5c = 0;\n            uVar15 = 0xc;\n          }" ({ "{") (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" (identifier "local_5c") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar15 = 0xc;" (assignment_expression "uVar15 = 0xc" (identifier "uVar15") (= "=") (number_literal "0xc")) (; ";")) (} "}")))) (expression_statement "lVar1 = lVar12 + 0x30;" (assignment_expression "lVar1 = lVar12 + 0x30" (identifier "lVar1") (= "=") (binary_expression "lVar12 + 0x30" (identifier "lVar12") (+ "+") (number_literal "0x30"))) (; ";")) (expression_statement "local_88 = FUN_00116bb0(lVar1);" (assignment_expression "local_88 = FUN_00116bb0(lVar1)" (identifier "local_88") (= "=") (call_expression "FUN_00116bb0(lVar1)" (identifier "FUN_00116bb0") (argument_list "(lVar1)" (( "(") (identifier "lVar1") () ")")))) (; ";")) (expression_statement "uVar13 = *(ulong *)(lVar12 + 0x50);" (assignment_expression "uVar13 = *(ulong *)(lVar12 + 0x50)" (identifier "uVar13") (= "=") (pointer_expression "*(ulong *)(lVar12 + 0x50)" (* "*") (cast_expression "(ulong *)(lVar12 + 0x50)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + 0x50)" (( "(") (binary_expression "lVar12 + 0x50" (identifier "lVar12") (+ "+") (number_literal "0x50")) () ")"))))) (; ";")) (expression_statement "lVar8 = *(long *)(lVar12 + 0x48);" (assignment_expression "lVar8 = *(long *)(lVar12 + 0x48)" (identifier "lVar8") (= "=") (pointer_expression "*(long *)(lVar12 + 0x48)" (* "*") (cast_expression "(long *)(lVar12 + 0x48)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + 0x48)" (( "(") (binary_expression "lVar12 + 0x48" (identifier "lVar12") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (if_statement "if (uVar13 - lVar8 < uVar15) {\n            local_88 = FUN_00116bb0(lVar1);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n            lVar8 = *(long *)(lVar12 + 0x48);\n            if (uVar13 - lVar8 < uVar15) {\n              uVar11 = dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5);\n                    \n              FUN_0011dc10(uVar11,uVar15);\n            }\n          }" (if "if") (parenthesized_expression "(uVar13 - lVar8 < uVar15)" (( "(") (binary_expression "uVar13 - lVar8 < uVar15" (binary_expression "uVar13 - lVar8" (identifier "uVar13") (- "-") (identifier "lVar8")) (< "<") (identifier "uVar15")) () ")")) (compound_statement "{\n            local_88 = FUN_00116bb0(lVar1);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n            lVar8 = *(long *)(lVar12 + 0x48);\n            if (uVar13 - lVar8 < uVar15) {\n              uVar11 = dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5);\n                    \n              FUN_0011dc10(uVar11,uVar15);\n            }\n          }" ({ "{") (expression_statement "local_88 = FUN_00116bb0(lVar1);" (assignment_expression "local_88 = FUN_00116bb0(lVar1)" (identifier "local_88") (= "=") (call_expression "FUN_00116bb0(lVar1)" (identifier "FUN_00116bb0") (argument_list "(lVar1)" (( "(") (identifier "lVar1") () ")")))) (; ";")) (expression_statement "uVar13 = *(ulong *)(lVar12 + 0x50);" (assignment_expression "uVar13 = *(ulong *)(lVar12 + 0x50)" (identifier "uVar13") (= "=") (pointer_expression "*(ulong *)(lVar12 + 0x50)" (* "*") (cast_expression "(ulong *)(lVar12 + 0x50)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + 0x50)" (( "(") (binary_expression "lVar12 + 0x50" (identifier "lVar12") (+ "+") (number_literal "0x50")) () ")"))))) (; ";")) (expression_statement "lVar8 = *(long *)(lVar12 + 0x48);" (assignment_expression "lVar8 = *(long *)(lVar12 + 0x48)" (identifier "lVar8") (= "=") (pointer_expression "*(long *)(lVar12 + 0x48)" (* "*") (cast_expression "(long *)(lVar12 + 0x48)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + 0x48)" (( "(") (binary_expression "lVar12 + 0x48" (identifier "lVar12") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (if_statement "if (uVar13 - lVar8 < uVar15) {\n              uVar11 = dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5);\n                    \n              FUN_0011dc10(uVar11,uVar15);\n            }" (if "if") (parenthesized_expression "(uVar13 - lVar8 < uVar15)" (( "(") (binary_expression "uVar13 - lVar8 < uVar15" (binary_expression "uVar13 - lVar8" (identifier "uVar13") (- "-") (identifier "lVar8")) (< "<") (identifier "uVar15")) () ")")) (compound_statement "{\n              uVar11 = dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5);\n                    \n              FUN_0011dc10(uVar11,uVar15);\n            }" ({ "{") (expression_statement "uVar11 = dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5);" (assignment_expression "uVar11 = dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5)" (identifier "uVar11") (= "=") (call_expression "dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5)" (identifier "dcngettext") (argument_list "(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",\n                                  uVar15,5)" (( "(") (number_literal "0") (, ",") (string_literal ""can\'t extend frag %lu char"" (" """) (string_content "can") (escape_sequence "\'") (string_content "t extend frag %lu char") (" """)) (, ",") (string_literal ""can\'t extend frag %lu chars"" (" """) (string_content "can") (escape_sequence "\'") (string_content "t extend frag %lu chars") (" """)) (, ",") (identifier "uVar15") (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0011dc10(uVar11,uVar15);" (call_expression "FUN_0011dc10(uVar11,uVar15)" (identifier "FUN_0011dc10") (argument_list "(uVar11,uVar15)" (( "(") (identifier "uVar11") (, ",") (identifier "uVar15") () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "lVar8 = lVar8 + uVar15;" (assignment_expression "lVar8 = lVar8 + uVar15" (identifier "lVar8") (= "=") (binary_expression "lVar8 + uVar15" (identifier "lVar8") (+ "+") (identifier "uVar15"))) (; ";")) (expression_statement "*(long *)(lVar12 + 0x48) = lVar8;" (assignment_expression "*(long *)(lVar12 + 0x48) = lVar8" (pointer_expression "*(long *)(lVar12 + 0x48)" (* "*") (cast_expression "(long *)(lVar12 + 0x48)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + 0x48)" (( "(") (binary_expression "lVar12 + 0x48" (identifier "lVar12") (+ "+") (number_literal "0x48")) () ")")))) (= "=") (identifier "lVar8")) (; ";")) (expression_statement "*(ulong *)(local_88 + 0x10) = uVar15;" (assignment_expression "*(ulong *)(local_88 + 0x10) = uVar15" (pointer_expression "*(ulong *)(local_88 + 0x10)" (* "*") (cast_expression "(ulong *)(local_88 + 0x10)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_88 + 0x10)" (( "(") (binary_expression "local_88 + 0x10" (identifier "local_88") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "uVar15")) (; ";")) (expression_statement "local_48 = local_88;" (assignment_expression "local_48 = local_88" (identifier "local_48") (= "=") (identifier "local_88")) (; ";")) (expression_statement "plVar5 = (long *)*plVar4;" (assignment_expression "plVar5 = (long *)*plVar4" (identifier "plVar5") (= "=") (cast_expression "(long *)*plVar4" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar4" (* "*") (identifier "plVar4")))) (; ";")) (expression_statement "*(undefined4 *)(local_88 + 0x5c) = 1;" (assignment_expression "*(undefined4 *)(local_88 + 0x5c) = 1" (pointer_expression "*(undefined4 *)(local_88 + 0x5c)" (* "*") (cast_expression "(undefined4 *)(local_88 + 0x5c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_88 + 0x5c)" (( "(") (binary_expression "local_88 + 0x5c" (identifier "local_88") (+ "+") (number_literal "0x5c")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "lVar10 = *plVar5;" (assignment_expression "lVar10 = *plVar5" (identifier "lVar10") (= "=") (pointer_expression "*plVar5" (* "*") (identifier "plVar5"))) (; ";")) (if_statement "if (lVar10 != 0) {\n            if (*(int *)(lVar10 + 0x5c) == 1) {\n              do {\n                lVar8 = *(long *)(lVar10 + 0x10);\n                if (lVar8 != 0) {\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }\n                lVar14 = *(long *)(lVar10 + 0x20);\n                uVar13 = *(ulong *)(lVar10 + 0x18);\n                if (lVar14 < 0) {\n                    \n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((uVar13 != 0) && (lVar14 != 0)) {\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }\n                lVar10 = *(long *)(lVar10 + 0x38);\n                if (lVar10 == 0) {\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar10 + 0x5c) == 1);\n            }\n                    \n            FUN_0011dd00("../../gas/write.c",0x5d4,"compress_debug");\n          }" (if "if") (parenthesized_expression "(lVar10 != 0)" (( "(") (binary_expression "lVar10 != 0" (identifier "lVar10") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            if (*(int *)(lVar10 + 0x5c) == 1) {\n              do {\n                lVar8 = *(long *)(lVar10 + 0x10);\n                if (lVar8 != 0) {\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }\n                lVar14 = *(long *)(lVar10 + 0x20);\n                uVar13 = *(ulong *)(lVar10 + 0x18);\n                if (lVar14 < 0) {\n                    \n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((uVar13 != 0) && (lVar14 != 0)) {\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }\n                lVar10 = *(long *)(lVar10 + 0x38);\n                if (lVar10 == 0) {\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar10 + 0x5c) == 1);\n            }\n                    \n            FUN_0011dd00("../../gas/write.c",0x5d4,"compress_debug");\n          }" ({ "{") (if_statement "if (*(int *)(lVar10 + 0x5c) == 1) {\n              do {\n                lVar8 = *(long *)(lVar10 + 0x10);\n                if (lVar8 != 0) {\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }\n                lVar14 = *(long *)(lVar10 + 0x20);\n                uVar13 = *(ulong *)(lVar10 + 0x18);\n                if (lVar14 < 0) {\n                    \n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((uVar13 != 0) && (lVar14 != 0)) {\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }\n                lVar10 = *(long *)(lVar10 + 0x38);\n                if (lVar10 == 0) {\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar10 + 0x5c) == 1);\n            }" (if "if") (parenthesized_expression "(*(int *)(lVar10 + 0x5c) == 1)" (( "(") (binary_expression "*(int *)(lVar10 + 0x5c) == 1" (pointer_expression "*(int *)(lVar10 + 0x5c)" (* "*") (cast_expression "(int *)(lVar10 + 0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + 0x5c)" (( "(") (binary_expression "lVar10 + 0x5c" (identifier "lVar10") (+ "+") (number_literal "0x5c")) () ")")))) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n              do {\n                lVar8 = *(long *)(lVar10 + 0x10);\n                if (lVar8 != 0) {\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }\n                lVar14 = *(long *)(lVar10 + 0x20);\n                uVar13 = *(ulong *)(lVar10 + 0x18);\n                if (lVar14 < 0) {\n                    \n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((uVar13 != 0) && (lVar14 != 0)) {\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }\n                lVar10 = *(long *)(lVar10 + 0x38);\n                if (lVar10 == 0) {\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar10 + 0x5c) == 1);\n            }" ({ "{") (do_statement "do {\n                lVar8 = *(long *)(lVar10 + 0x10);\n                if (lVar8 != 0) {\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }\n                lVar14 = *(long *)(lVar10 + 0x20);\n                uVar13 = *(ulong *)(lVar10 + 0x18);\n                if (lVar14 < 0) {\n                    \n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((uVar13 != 0) && (lVar14 != 0)) {\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }\n                lVar10 = *(long *)(lVar10 + 0x38);\n                if (lVar10 == 0) {\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              } while (*(int *)(lVar10 + 0x5c) == 1);" (do "do") (compound_statement "{\n                lVar8 = *(long *)(lVar10 + 0x10);\n                if (lVar8 != 0) {\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }\n                lVar14 = *(long *)(lVar10 + 0x20);\n                uVar13 = *(ulong *)(lVar10 + 0x18);\n                if (lVar14 < 0) {\n                    \n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }\n                if ((uVar13 != 0) && (lVar14 != 0)) {\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }\n                lVar10 = *(long *)(lVar10 + 0x38);\n                if (lVar10 == 0) {\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }\n              }" ({ "{") (expression_statement "lVar8 = *(long *)(lVar10 + 0x10);" (assignment_expression "lVar8 = *(long *)(lVar10 + 0x10)" (identifier "lVar8") (= "=") (pointer_expression "*(long *)(lVar10 + 0x10)" (* "*") (cast_expression "(long *)(lVar10 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + 0x10)" (( "(") (binary_expression "lVar10 + 0x10" (identifier "lVar10") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if (lVar8 != 0) {\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }" (if "if") (parenthesized_expression "(lVar8 != 0)" (( "(") (binary_expression "lVar8 != 0" (identifier "lVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);\n                  if (iVar6 < 0) {\n                    return;\n                  }\n                  lVar8 = *(long *)(lVar10 + 0x10);\n                  uVar15 = uVar15 + (long)iVar6;\n                }" ({ "{") (expression_statement "iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);" (assignment_expression "iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1)" (identifier "iVar6") (= "=") (call_expression "FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1)" (identifier "FUN_0012d950") (argument_list "(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1)" (( "(") (identifier "lVar7") (, ",") (binary_expression "lVar10 + 0x80" (identifier "lVar10") (+ "+") (number_literal "0x80")) (, ",") (identifier "lVar8") (, ",") (pointer_expression "&local_48" (& "&") (identifier "local_48")) (, ",") (identifier "lVar1") () ")")))) (; ";")) (if_statement "if (iVar6 < 0) {\n                    return;\n                  }" (if "if") (parenthesized_expression "(iVar6 < 0)" (( "(") (binary_expression "iVar6 < 0" (identifier "iVar6") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                    return;\n                  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "lVar8 = *(long *)(lVar10 + 0x10);" (assignment_expression "lVar8 = *(long *)(lVar10 + 0x10)" (identifier "lVar8") (= "=") (pointer_expression "*(long *)(lVar10 + 0x10)" (* "*") (cast_expression "(long *)(lVar10 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + 0x10)" (( "(") (binary_expression "lVar10 + 0x10" (identifier "lVar10") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "uVar15 = uVar15 + (long)iVar6;" (assignment_expression "uVar15 = uVar15 + (long)iVar6" (identifier "uVar15") (= "=") (binary_expression "uVar15 + (long)iVar6" (identifier "uVar15") (+ "+") (cast_expression "(long)iVar6" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar6")))) (; ";")) (} "}"))) (expression_statement "lVar14 = *(long *)(lVar10 + 0x20);" (assignment_expression "lVar14 = *(long *)(lVar10 + 0x20)" (identifier "lVar14") (= "=") (pointer_expression "*(long *)(lVar10 + 0x20)" (* "*") (cast_expression "(long *)(lVar10 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + 0x20)" (( "(") (binary_expression "lVar10 + 0x20" (identifier "lVar10") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "uVar13 = *(ulong *)(lVar10 + 0x18);" (assignment_expression "uVar13 = *(ulong *)(lVar10 + 0x18)" (identifier "uVar13") (= "=") (pointer_expression "*(ulong *)(lVar10 + 0x18)" (* "*") (cast_expression "(ulong *)(lVar10 + 0x18)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + 0x18)" (( "(") (binary_expression "lVar10 + 0x18" (identifier "lVar10") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (lVar14 < 0) {\n                    \n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }" (if "if") (parenthesized_expression "(lVar14 < 0)" (( "(") (binary_expression "lVar14 < 0" (identifier "lVar14") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                    \n                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");\n                }" ({ "{") (expression_statement "FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");" (call_expression "FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug")" (identifier "FUN_0011dd00") (argument_list "("../../gas/write.c",0x5e0,"compress_debug")" (( "(") (string_literal ""../../gas/write.c"" (" """) (string_content "../../gas/write.c") (" """)) (, ",") (number_literal "0x5e0") (, ",") (string_literal ""compress_debug"" (" """) (string_content "compress_debug") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if ((uVar13 != 0) && (lVar14 != 0)) {\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }" (if "if") (parenthesized_expression "((uVar13 != 0) && (lVar14 != 0))" (( "(") (binary_expression "(uVar13 != 0) && (lVar14 != 0)" (parenthesized_expression "(uVar13 != 0)" (( "(") (binary_expression "uVar13 != 0" (identifier "uVar13") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(lVar14 != 0)" (( "(") (binary_expression "lVar14 != 0" (identifier "lVar14") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                  do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);\n                }" ({ "{") (do_statement "do {\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  } while (lVar14 != 0);" (do "do") (compound_statement "{\n                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);\n                    if (iVar6 < 0) {\n                      return;\n                    }\n                    uVar15 = uVar15 + (long)iVar6;\n                    lVar14 = lVar14 + -1;\n                  }" ({ "{") (expression_statement "iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1);" (assignment_expression "iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1)" (identifier "iVar6") (= "=") (call_expression "FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1)" (identifier "FUN_0012d950") (argument_list "(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,\n                                         lVar1)" (( "(") (identifier "lVar7") (, ",") (binary_expression "lVar10 + 0x80 + lVar8" (binary_expression "lVar10 + 0x80" (identifier "lVar10") (+ "+") (number_literal "0x80")) (+ "+") (identifier "lVar8")) (, ",") (binary_expression "uVar13 & 0xffffffff" (identifier "uVar13") (& "&") (number_literal "0xffffffff")) (, ",") (pointer_expression "&local_48" (& "&") (identifier "local_48")) (, ",") (identifier "lVar1") () ")")))) (; ";")) (if_statement "if (iVar6 < 0) {\n                      return;\n                    }" (if "if") (parenthesized_expression "(iVar6 < 0)" (( "(") (binary_expression "iVar6 < 0" (identifier "iVar6") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                      return;\n                    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar15 = uVar15 + (long)iVar6;" (assignment_expression "uVar15 = uVar15 + (long)iVar6" (identifier "uVar15") (= "=") (binary_expression "uVar15 + (long)iVar6" (identifier "uVar15") (+ "+") (cast_expression "(long)iVar6" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar6")))) (; ";")) (expression_statement "lVar14 = lVar14 + -1;" (assignment_expression "lVar14 = lVar14 + -1" (identifier "lVar14") (= "=") (binary_expression "lVar14 + -1" (identifier "lVar14") (+ "+") (number_literal "-1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(lVar14 != 0)" (( "(") (binary_expression "lVar14 != 0" (identifier "lVar14") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (expression_statement "lVar10 = *(long *)(lVar10 + 0x38);" (assignment_expression "lVar10 = *(long *)(lVar10 + 0x38)" (identifier "lVar10") (= "=") (pointer_expression "*(long *)(lVar10 + 0x38)" (* "*") (cast_expression "(long *)(lVar10 + 0x38)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + 0x38)" (( "(") (binary_expression "lVar10 + 0x38" (identifier "lVar10") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (if_statement "if (lVar10 == 0) {\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }" (if "if") (parenthesized_expression "(lVar10 == 0)" (( "(") (binary_expression "lVar10 == 0" (identifier "lVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  lVar8 = *(long *)(lVar12 + 0x48);\n                  uVar13 = *(ulong *)(lVar12 + 0x50);\n                  goto LAB_0012dd51;\n                }" ({ "{") (expression_statement "lVar8 = *(long *)(lVar12 + 0x48);" (assignment_expression "lVar8 = *(long *)(lVar12 + 0x48)" (identifier "lVar8") (= "=") (pointer_expression "*(long *)(lVar12 + 0x48)" (* "*") (cast_expression "(long *)(lVar12 + 0x48)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + 0x48)" (( "(") (binary_expression "lVar12 + 0x48" (identifier "lVar12") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (expression_statement "uVar13 = *(ulong *)(lVar12 + 0x50);" (assignment_expression "uVar13 = *(ulong *)(lVar12 + 0x50)" (identifier "uVar13") (= "=") (pointer_expression "*(ulong *)(lVar12 + 0x50)" (* "*") (cast_expression "(ulong *)(lVar12 + 0x50)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + 0x50)" (( "(") (binary_expression "lVar12 + 0x50" (identifier "lVar12") (+ "+") (number_literal "0x50")) () ")"))))) (; ";")) (goto_statement "goto LAB_0012dd51;" (goto "goto") (statement_identifier "LAB_0012dd51") (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "(*(int *)(lVar10 + 0x5c) == 1)" (( "(") (binary_expression "*(int *)(lVar10 + 0x5c) == 1" (pointer_expression "*(int *)(lVar10 + 0x5c)" (* "*") (cast_expression "(int *)(lVar10 + 0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + 0x5c)" (( "(") (binary_expression "lVar10 + 0x5c" (identifier "lVar10") (+ "+") (number_literal "0x5c")) () ")")))) (== "==") (number_literal "1")) () ")")) (; ";")) (} "}"))) (expression_statement "FUN_0011dd00("../../gas/write.c",0x5d4,"compress_debug");" (call_expression "FUN_0011dd00("../../gas/write.c",0x5d4,"compress_debug")" (identifier "FUN_0011dd00") (argument_list "("../../gas/write.c",0x5d4,"compress_debug")" (( "(") (string_literal ""../../gas/write.c"" (" """) (string_content "../../gas/write.c") (" """)) (, ",") (number_literal "0x5d4") (, ",") (string_literal ""compress_debug"" (" """) (string_content "compress_debug") (" """)) () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_0012dd51:\n          while( true ) {\n            local_50 = (int)uVar13 - (int)lVar8;\n            if (local_50 < 1) {\n              if (*(long *)(lVar12 + 0x40) == lVar8) {\n                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;\n              }\n              uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60);\n              *(ulong *)(lVar12 + 0x48) = uVar9;\n              if (uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)) {\n                *(ulong *)(lVar12 + 0x48) = uVar13;\n                uVar9 = uVar13;\n              }\n              *(ulong *)(lVar12 + 0x40) = uVar9;\n              lVar10 = FUN_00116bb0(lVar1);\n              uVar11 = *(undefined8 *)(lVar12 + 0x50);\n              *(undefined4 *)(lVar10 + 0x5c) = 1;\n              *(long *)(local_48 + 0x38) = lVar10;\n              lVar8 = *(long *)(lVar12 + 0x48);\n              local_50 = (int)uVar11 - (int)lVar8;\n              local_48 = lVar10;\n              if (local_50 < 1) {\n                uVar11 = dcgettext(0,"can\'t extend frag",5);\n                    \n                FUN_0011dc10(uVar11);\n              }\n            }\n            *(long *)(lVar12 + 0x48) = lVar8 + local_50;\n            local_40[0] = lVar8;\n            iVar6 = FUN_0010c220(lVar7,local_40,&local_50,&local_4c);\n            if (iVar6 < 0) {\n              return;\n            }\n            uVar15 = uVar15 + (long)local_4c;\n            *(long *)(local_48 + 0x10) = *(long *)(local_48 + 0x10) + (long)local_4c;\n            if (0 < local_50) {\n              *(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50;\n            }\n            if (iVar6 == 0) break;\n            lVar8 = *(long *)(lVar12 + 0x48);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n          }" (statement_identifier "LAB_0012dd51") (: ":") (while_statement "while( true ) {\n            local_50 = (int)uVar13 - (int)lVar8;\n            if (local_50 < 1) {\n              if (*(long *)(lVar12 + 0x40) == lVar8) {\n                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;\n              }\n              uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60);\n              *(ulong *)(lVar12 + 0x48) = uVar9;\n              if (uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)) {\n                *(ulong *)(lVar12 + 0x48) = uVar13;\n                uVar9 = uVar13;\n              }\n              *(ulong *)(lVar12 + 0x40) = uVar9;\n              lVar10 = FUN_00116bb0(lVar1);\n              uVar11 = *(undefined8 *)(lVar12 + 0x50);\n              *(undefined4 *)(lVar10 + 0x5c) = 1;\n              *(long *)(local_48 + 0x38) = lVar10;\n              lVar8 = *(long *)(lVar12 + 0x48);\n              local_50 = (int)uVar11 - (int)lVar8;\n              local_48 = lVar10;\n              if (local_50 < 1) {\n                uVar11 = dcgettext(0,"can\'t extend frag",5);\n                    \n                FUN_0011dc10(uVar11);\n              }\n            }\n            *(long *)(lVar12 + 0x48) = lVar8 + local_50;\n            local_40[0] = lVar8;\n            iVar6 = FUN_0010c220(lVar7,local_40,&local_50,&local_4c);\n            if (iVar6 < 0) {\n              return;\n            }\n            uVar15 = uVar15 + (long)local_4c;\n            *(long *)(local_48 + 0x10) = *(long *)(local_48 + 0x10) + (long)local_4c;\n            if (0 < local_50) {\n              *(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50;\n            }\n            if (iVar6 == 0) break;\n            lVar8 = *(long *)(lVar12 + 0x48);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n          }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n            local_50 = (int)uVar13 - (int)lVar8;\n            if (local_50 < 1) {\n              if (*(long *)(lVar12 + 0x40) == lVar8) {\n                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;\n              }\n              uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60);\n              *(ulong *)(lVar12 + 0x48) = uVar9;\n              if (uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)) {\n                *(ulong *)(lVar12 + 0x48) = uVar13;\n                uVar9 = uVar13;\n              }\n              *(ulong *)(lVar12 + 0x40) = uVar9;\n              lVar10 = FUN_00116bb0(lVar1);\n              uVar11 = *(undefined8 *)(lVar12 + 0x50);\n              *(undefined4 *)(lVar10 + 0x5c) = 1;\n              *(long *)(local_48 + 0x38) = lVar10;\n              lVar8 = *(long *)(lVar12 + 0x48);\n              local_50 = (int)uVar11 - (int)lVar8;\n              local_48 = lVar10;\n              if (local_50 < 1) {\n                uVar11 = dcgettext(0,"can\'t extend frag",5);\n                    \n                FUN_0011dc10(uVar11);\n              }\n            }\n            *(long *)(lVar12 + 0x48) = lVar8 + local_50;\n            local_40[0] = lVar8;\n            iVar6 = FUN_0010c220(lVar7,local_40,&local_50,&local_4c);\n            if (iVar6 < 0) {\n              return;\n            }\n            uVar15 = uVar15 + (long)local_4c;\n            *(long *)(local_48 + 0x10) = *(long *)(local_48 + 0x10) + (long)local_4c;\n            if (0 < local_50) {\n              *(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50;\n            }\n            if (iVar6 == 0) break;\n            lVar8 = *(long *)(lVar12 + 0x48);\n            uVar13 = *(ulong *)(lVar12 + 0x50);\n          }" ({ "{") (expression_statement "local_50 = (int)uVar13 - (int)lVar8;" (assignment_expression "local_50 = (int)uVar13 - (int)lVar8" (identifier "local_50") (= "=") (binary_expression "(int)uVar13 - (int)lVar8" (cast_expression "(int)uVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar13")) (- "-") (cast_expression "(int)lVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar8")))) (; ";")) (if_statement "if (local_50 < 1) {\n              if (*(long *)(lVar12 + 0x40) == lVar8) {\n                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;\n              }\n              uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60);\n              *(ulong *)(lVar12 + 0x48) = uVar9;\n              if (uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)) {\n                *(ulong *)(lVar12 + 0x48) = uVar13;\n                uVar9 = uVar13;\n              }\n              *(ulong *)(lVar12 + 0x40) = uVar9;\n              lVar10 = FUN_00116bb0(lVar1);\n              uVar11 = *(undefined8 *)(lVar12 + 0x50);\n              *(undefined4 *)(lVar10 + 0x5c) = 1;\n              *(long *)(local_48 + 0x38) = lVar10;\n              lVar8 = *(long *)(lVar12 + 0x48);\n              local_50 = (int)uVar11 - (int)lVar8;\n              local_48 = lVar10;\n              if (local_50 < 1) {\n                uVar11 = dcgettext(0,"can\'t extend frag",5);\n                    \n                FUN_0011dc10(uVar11);\n              }\n            }" (if "if") (parenthesized_expression "(local_50 < 1)" (( "(") (binary_expression "local_50 < 1" (identifier "local_50") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n              if (*(long *)(lVar12 + 0x40) == lVar8) {\n                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;\n              }\n              uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60);\n              *(ulong *)(lVar12 + 0x48) = uVar9;\n              if (uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)) {\n                *(ulong *)(lVar12 + 0x48) = uVar13;\n                uVar9 = uVar13;\n              }\n              *(ulong *)(lVar12 + 0x40) = uVar9;\n              lVar10 = FUN_00116bb0(lVar1);\n              uVar11 = *(undefined8 *)(lVar12 + 0x50);\n              *(undefined4 *)(lVar10 + 0x5c) = 1;\n              *(long *)(local_48 + 0x38) = lVar10;\n              lVar8 = *(long *)(lVar12 + 0x48);\n              local_50 = (int)uVar11 - (int)lVar8;\n              local_48 = lVar10;\n              if (local_50 < 1) {\n                uVar11 = dcgettext(0,"can\'t extend frag",5);\n                    \n                FUN_0011dc10(uVar11);\n              }\n            }" ({ "{") (if_statement "if (*(long *)(lVar12 + 0x40) == lVar8) {\n                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;\n              }" (if "if") (parenthesized_expression "(*(long *)(lVar12 + 0x40) == lVar8)" (( "(") (binary_expression "*(long *)(lVar12 + 0x40) == lVar8" (pointer_expression "*(long *)(lVar12 + 0x40)" (* "*") (cast_expression "(long *)(lVar12 + 0x40)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + 0x40)" (( "(") (binary_expression "lVar12 + 0x40" (identifier "lVar12") (+ "+") (number_literal "0x40")) () ")")))) (== "==") (identifier "lVar8")) () ")")) (compound_statement "{\n                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;\n              }" ({ "{") (expression_statement "*(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;" (assignment_expression "*(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2" (pointer_expression "*(byte *)(lVar12 + 0x80)" (* "*") (cast_expression "(byte *)(lVar12 + 0x80)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + 0x80)" (( "(") (binary_expression "lVar12 + 0x80" (identifier "lVar12") (+ "+") (number_literal "0x80")) () ")")))) (= "=") (binary_expression "*(byte *)(lVar12 + 0x80) | 2" (pointer_expression "*(byte *)(lVar12 + 0x80)" (* "*") (cast_expression "(byte *)(lVar12 + 0x80)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + 0x80)" (( "(") (binary_expression "lVar12 + 0x80" (identifier "lVar12") (+ "+") (number_literal "0x80")) () ")")))) (| "|") (number_literal "2"))) (; ";")) (} "}"))) (expression_statement "uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60);" (assignment_expression "uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60)" (identifier "uVar9") (= "=") (binary_expression "lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60)" (binary_expression "lVar8 + *(ulong *)(lVar12 + 0x60)" (identifier "lVar8") (+ "+") (pointer_expression "*(ulong *)(lVar12 + 0x60)" (* "*") (cast_expression "(ulong *)(lVar12 + 0x60)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + 0x60)" (( "(") (binary_expression "lVar12 + 0x60" (identifier "lVar12") (+ "+") (number_literal "0x60")) () ")"))))) (& "&") (unary_expression "~*(ulong *)(lVar12 + 0x60)" (~ "~") (pointer_expression "*(ulong *)(lVar12 + 0x60)" (* "*") (cast_expression "(ulong *)(lVar12 + 0x60)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + 0x60)" (( "(") (binary_expression "lVar12 + 0x60" (identifier "lVar12") (+ "+") (number_literal "0x60")) () ")"))))))) (; ";")) (expression_statement "*(ulong *)(lVar12 + 0x48) = uVar9;" (assignment_expression "*(ulong *)(lVar12 + 0x48) = uVar9" (pointer_expression "*(ulong *)(lVar12 + 0x48)" (* "*") (cast_expression "(ulong *)(lVar12 + 0x48)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + 0x48)" (( "(") (binary_expression "lVar12 + 0x48" (identifier "lVar12") (+ "+") (number_literal "0x48")) () ")")))) (= "=") (identifier "uVar9")) (; ";")) (if_statement "if (uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)) {\n                *(ulong *)(lVar12 + 0x48) = uVar13;\n                uVar9 = uVar13;\n              }" (if "if") (parenthesized_expression "(uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38))" (( "(") (binary_expression "uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)" (binary_expression "uVar13 - *(long *)(lVar12 + 0x38)" (identifier "uVar13") (- "-") (pointer_expression "*(long *)(lVar12 + 0x38)" (* "*") (cast_expression "(long *)(lVar12 + 0x38)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + 0x38)" (( "(") (binary_expression "lVar12 + 0x38" (identifier "lVar12") (+ "+") (number_literal "0x38")) () ")"))))) (< "<") (binary_expression "uVar9 - *(long *)(lVar12 + 0x38)" (identifier "uVar9") (- "-") (pointer_expression "*(long *)(lVar12 + 0x38)" (* "*") (cast_expression "(long *)(lVar12 + 0x38)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + 0x38)" (( "(") (binary_expression "lVar12 + 0x38" (identifier "lVar12") (+ "+") (number_literal "0x38")) () ")")))))) () ")")) (compound_statement "{\n                *(ulong *)(lVar12 + 0x48) = uVar13;\n                uVar9 = uVar13;\n              }" ({ "{") (expression_statement "*(ulong *)(lVar12 + 0x48) = uVar13;" (assignment_expression "*(ulong *)(lVar12 + 0x48) = uVar13" (pointer_expression "*(ulong *)(lVar12 + 0x48)" (* "*") (cast_expression "(ulong *)(lVar12 + 0x48)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + 0x48)" (( "(") (binary_expression "lVar12 + 0x48" (identifier "lVar12") (+ "+") (number_literal "0x48")) () ")")))) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "uVar9 = uVar13;" (assignment_expression "uVar9 = uVar13" (identifier "uVar9") (= "=") (identifier "uVar13")) (; ";")) (} "}"))) (expression_statement "*(ulong *)(lVar12 + 0x40) = uVar9;" (assignment_expression "*(ulong *)(lVar12 + 0x40) = uVar9" (pointer_expression "*(ulong *)(lVar12 + 0x40)" (* "*") (cast_expression "(ulong *)(lVar12 + 0x40)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + 0x40)" (( "(") (binary_expression "lVar12 + 0x40" (identifier "lVar12") (+ "+") (number_literal "0x40")) () ")")))) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "lVar10 = FUN_00116bb0(lVar1);" (assignment_expression "lVar10 = FUN_00116bb0(lVar1)" (identifier "lVar10") (= "=") (call_expression "FUN_00116bb0(lVar1)" (identifier "FUN_00116bb0") (argument_list "(lVar1)" (( "(") (identifier "lVar1") () ")")))) (; ";")) (expression_statement "uVar11 = *(undefined8 *)(lVar12 + 0x50);" (assignment_expression "uVar11 = *(undefined8 *)(lVar12 + 0x50)" (identifier "uVar11") (= "=") (pointer_expression "*(undefined8 *)(lVar12 + 0x50)" (* "*") (cast_expression "(undefined8 *)(lVar12 + 0x50)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + 0x50)" (( "(") (binary_expression "lVar12 + 0x50" (identifier "lVar12") (+ "+") (number_literal "0x50")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(lVar10 + 0x5c) = 1;" (assignment_expression "*(undefined4 *)(lVar10 + 0x5c) = 1" (pointer_expression "*(undefined4 *)(lVar10 + 0x5c)" (* "*") (cast_expression "(undefined4 *)(lVar10 + 0x5c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + 0x5c)" (( "(") (binary_expression "lVar10 + 0x5c" (identifier "lVar10") (+ "+") (number_literal "0x5c")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(long *)(local_48 + 0x38) = lVar10;" (assignment_expression "*(long *)(local_48 + 0x38) = lVar10" (pointer_expression "*(long *)(local_48 + 0x38)" (* "*") (cast_expression "(long *)(local_48 + 0x38)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_48 + 0x38)" (( "(") (binary_expression "local_48 + 0x38" (identifier "local_48") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (identifier "lVar10")) (; ";")) (expression_statement "lVar8 = *(long *)(lVar12 + 0x48);" (assignment_expression "lVar8 = *(long *)(lVar12 + 0x48)" (identifier "lVar8") (= "=") (pointer_expression "*(long *)(lVar12 + 0x48)" (* "*") (cast_expression "(long *)(lVar12 + 0x48)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + 0x48)" (( "(") (binary_expression "lVar12 + 0x48" (identifier "lVar12") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (expression_statement "local_50 = (int)uVar11 - (int)lVar8;" (assignment_expression "local_50 = (int)uVar11 - (int)lVar8" (identifier "local_50") (= "=") (binary_expression "(int)uVar11 - (int)lVar8" (cast_expression "(int)uVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar11")) (- "-") (cast_expression "(int)lVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar8")))) (; ";")) (expression_statement "local_48 = lVar10;" (assignment_expression "local_48 = lVar10" (identifier "local_48") (= "=") (identifier "lVar10")) (; ";")) (if_statement "if (local_50 < 1) {\n                uVar11 = dcgettext(0,"can\'t extend frag",5);\n                    \n                FUN_0011dc10(uVar11);\n              }" (if "if") (parenthesized_expression "(local_50 < 1)" (( "(") (binary_expression "local_50 < 1" (identifier "local_50") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n                uVar11 = dcgettext(0,"can\'t extend frag",5);\n                    \n                FUN_0011dc10(uVar11);\n              }" ({ "{") (expression_statement "uVar11 = dcgettext(0,"can\'t extend frag",5);" (assignment_expression "uVar11 = dcgettext(0,"can\'t extend frag",5)" (identifier "uVar11") (= "=") (call_expression "dcgettext(0,"can\'t extend frag",5)" (identifier "dcgettext") (argument_list "(0,"can\'t extend frag",5)" (( "(") (number_literal "0") (, ",") (string_literal ""can\'t extend frag"" (" """) (string_content "can") (escape_sequence "\'") (string_content "t extend frag") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0011dc10(uVar11);" (call_expression "FUN_0011dc10(uVar11)" (identifier "FUN_0011dc10") (argument_list "(uVar11)" (( "(") (identifier "uVar11") () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "*(long *)(lVar12 + 0x48) = lVar8 + local_50;" (assignment_expression "*(long *)(lVar12 + 0x48) = lVar8 + local_50" (pointer_expression "*(long *)(lVar12 + 0x48)" (* "*") (cast_expression "(long *)(lVar12 + 0x48)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + 0x48)" (( "(") (binary_expression "lVar12 + 0x48" (identifier "lVar12") (+ "+") (number_literal "0x48")) () ")")))) (= "=") (binary_expression "lVar8 + local_50" (identifier "lVar8") (+ "+") (identifier "local_50"))) (; ";")) (expression_statement "local_40[0] = lVar8;" (assignment_expression "local_40[0] = lVar8" (subscript_expression "local_40[0]" (identifier "local_40") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "lVar8")) (; ";")) (expression_statement "iVar6 = FUN_0010c220(lVar7,local_40,&local_50,&local_4c);" (assignment_expression "iVar6 = FUN_0010c220(lVar7,local_40,&local_50,&local_4c)" (identifier "iVar6") (= "=") (call_expression "FUN_0010c220(lVar7,local_40,&local_50,&local_4c)" (identifier "FUN_0010c220") (argument_list "(lVar7,local_40,&local_50,&local_4c)" (( "(") (identifier "lVar7") (, ",") (identifier "local_40") (, ",") (pointer_expression "&local_50" (& "&") (identifier "local_50")) (, ",") (pointer_expression "&local_4c" (& "&") (identifier "local_4c")) () ")")))) (; ";")) (if_statement "if (iVar6 < 0) {\n              return;\n            }" (if "if") (parenthesized_expression "(iVar6 < 0)" (( "(") (binary_expression "iVar6 < 0" (identifier "iVar6") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n              return;\n            }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar15 = uVar15 + (long)local_4c;" (assignment_expression "uVar15 = uVar15 + (long)local_4c" (identifier "uVar15") (= "=") (binary_expression "uVar15 + (long)local_4c" (identifier "uVar15") (+ "+") (cast_expression "(long)local_4c" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_4c")))) (; ";")) (expression_statement "*(long *)(local_48 + 0x10) = *(long *)(local_48 + 0x10) + (long)local_4c;" (assignment_expression "*(long *)(local_48 + 0x10) = *(long *)(local_48 + 0x10) + (long)local_4c" (pointer_expression "*(long *)(local_48 + 0x10)" (* "*") (cast_expression "(long *)(local_48 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_48 + 0x10)" (( "(") (binary_expression "local_48 + 0x10" (identifier "local_48") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (binary_expression "*(long *)(local_48 + 0x10) + (long)local_4c" (pointer_expression "*(long *)(local_48 + 0x10)" (* "*") (cast_expression "(long *)(local_48 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_48 + 0x10)" (( "(") (binary_expression "local_48 + 0x10" (identifier "local_48") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (cast_expression "(long)local_4c" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_4c")))) (; ";")) (if_statement "if (0 < local_50) {\n              *(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50;\n            }" (if "if") (parenthesized_expression "(0 < local_50)" (( "(") (binary_expression "0 < local_50" (number_literal "0") (< "<") (identifier "local_50")) () ")")) (compound_statement "{\n              *(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50;\n            }" ({ "{") (expression_statement "*(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50;" (assignment_expression "*(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50" (pointer_expression "*(long *)(lVar12 + 0x48)" (* "*") (cast_expression "(long *)(lVar12 + 0x48)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + 0x48)" (( "(") (binary_expression "lVar12 + 0x48" (identifier "lVar12") (+ "+") (number_literal "0x48")) () ")")))) (= "=") (binary_expression "*(long *)(lVar12 + 0x48) + (long)-local_50" (pointer_expression "*(long *)(lVar12 + 0x48)" (* "*") (cast_expression "(long *)(lVar12 + 0x48)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + 0x48)" (( "(") (binary_expression "lVar12 + 0x48" (identifier "lVar12") (+ "+") (number_literal "0x48")) () ")")))) (+ "+") (cast_expression "(long)-local_50" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (unary_expression "-local_50" (- "-") (identifier "local_50"))))) (; ";")) (} "}"))) (if_statement "if (iVar6 == 0) break;" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar8 = *(long *)(lVar12 + 0x48);" (assignment_expression "lVar8 = *(long *)(lVar12 + 0x48)" (identifier "lVar8") (= "=") (pointer_expression "*(long *)(lVar12 + 0x48)" (* "*") (cast_expression "(long *)(lVar12 + 0x48)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + 0x48)" (( "(") (binary_expression "lVar12 + 0x48" (identifier "lVar12") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (expression_statement "uVar13 = *(ulong *)(lVar12 + 0x50);" (assignment_expression "uVar13 = *(ulong *)(lVar12 + 0x50)" (identifier "uVar13") (= "=") (pointer_expression "*(ulong *)(lVar12 + 0x50)" (* "*") (cast_expression "(ulong *)(lVar12 + 0x50)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + 0x50)" (( "(") (binary_expression "lVar12 + 0x50" (identifier "lVar12") (+ "+") (number_literal "0x50")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (uVar15 < uVar2) {\n            plVar4 = (long *)*plVar4;\n            *plVar4 = local_88;\n            plVar4[1] = local_48;\n            bfd_update_compression_header(param_1,local_88 + 0x80,param_2);\n            iVar6 = bfd_set_section_size(param_1,param_2,uVar15);\n            if (iVar6 == 0) {\n                    \n              FUN_0011dd00("../../gas/write.c",0x622,"compress_debug");\n            }\n            if (local_5c == 0) {\n              uVar11 = concat(&DAT_0014ff08,pbVar3 + 1,0);\n              *param_2 = uVar11;\n            }\n          }" (if "if") (parenthesized_expression "(uVar15 < uVar2)" (( "(") (binary_expression "uVar15 < uVar2" (identifier "uVar15") (< "<") (identifier "uVar2")) () ")")) (compound_statement "{\n            plVar4 = (long *)*plVar4;\n            *plVar4 = local_88;\n            plVar4[1] = local_48;\n            bfd_update_compression_header(param_1,local_88 + 0x80,param_2);\n            iVar6 = bfd_set_section_size(param_1,param_2,uVar15);\n            if (iVar6 == 0) {\n                    \n              FUN_0011dd00("../../gas/write.c",0x622,"compress_debug");\n            }\n            if (local_5c == 0) {\n              uVar11 = concat(&DAT_0014ff08,pbVar3 + 1,0);\n              *param_2 = uVar11;\n            }\n          }" ({ "{") (expression_statement "plVar4 = (long *)*plVar4;" (assignment_expression "plVar4 = (long *)*plVar4" (identifier "plVar4") (= "=") (cast_expression "(long *)*plVar4" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar4" (* "*") (identifier "plVar4")))) (; ";")) (expression_statement "*plVar4 = local_88;" (assignment_expression "*plVar4 = local_88" (pointer_expression "*plVar4" (* "*") (identifier "plVar4")) (= "=") (identifier "local_88")) (; ";")) (expression_statement "plVar4[1] = local_48;" (assignment_expression "plVar4[1] = local_48" (subscript_expression "plVar4[1]" (identifier "plVar4") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_48")) (; ";")) (expression_statement "bfd_update_compression_header(param_1,local_88 + 0x80,param_2);" (call_expression "bfd_update_compression_header(param_1,local_88 + 0x80,param_2)" (identifier "bfd_update_compression_header") (argument_list "(param_1,local_88 + 0x80,param_2)" (( "(") (identifier "param_1") (, ",") (binary_expression "local_88 + 0x80" (identifier "local_88") (+ "+") (number_literal "0x80")) (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "iVar6 = bfd_set_section_size(param_1,param_2,uVar15);" (assignment_expression "iVar6 = bfd_set_section_size(param_1,param_2,uVar15)" (identifier "iVar6") (= "=") (call_expression "bfd_set_section_size(param_1,param_2,uVar15)" (identifier "bfd_set_section_size") (argument_list "(param_1,param_2,uVar15)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "uVar15") () ")")))) (; ";")) (if_statement "if (iVar6 == 0) {\n                    \n              FUN_0011dd00("../../gas/write.c",0x622,"compress_debug");\n            }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n              FUN_0011dd00("../../gas/write.c",0x622,"compress_debug");\n            }" ({ "{") (expression_statement "FUN_0011dd00("../../gas/write.c",0x622,"compress_debug");" (call_expression "FUN_0011dd00("../../gas/write.c",0x622,"compress_debug")" (identifier "FUN_0011dd00") (argument_list "("../../gas/write.c",0x622,"compress_debug")" (( "(") (string_literal ""../../gas/write.c"" (" """) (string_content "../../gas/write.c") (" """)) (, ",") (number_literal "0x622") (, ",") (string_literal ""compress_debug"" (" """) (string_content "compress_debug") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (local_5c == 0) {\n              uVar11 = concat(&DAT_0014ff08,pbVar3 + 1,0);\n              *param_2 = uVar11;\n            }" (if "if") (parenthesized_expression "(local_5c == 0)" (( "(") (binary_expression "local_5c == 0" (identifier "local_5c") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              uVar11 = concat(&DAT_0014ff08,pbVar3 + 1,0);\n              *param_2 = uVar11;\n            }" ({ "{") (expression_statement "uVar11 = concat(&DAT_0014ff08,pbVar3 + 1,0);" (assignment_expression "uVar11 = concat(&DAT_0014ff08,pbVar3 + 1,0)" (identifier "uVar11") (= "=") (call_expression "concat(&DAT_0014ff08,pbVar3 + 1,0)" (identifier "concat") (argument_list "(&DAT_0014ff08,pbVar3 + 1,0)" (( "(") (pointer_expression "&DAT_0014ff08" (& "&") (identifier "DAT_0014ff08")) (, ",") (binary_expression "pbVar3 + 1" (identifier "pbVar3") (+ "+") (number_literal "1")) (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "*param_2 = uVar11;" (assignment_expression "*param_2 = uVar11" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (identifier "uVar11")) (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(type_1 *abfd,type_2 *sec,void *xxx)

{
  type_3 *ob;
  type_4 var_1;
  type_5 *var_33;
  long *plVar3;
  long *plVar4;
  long var_23;
  type_6 uVar6;
  type_6 *puVar7;
  int var_20;
  type_7 *var_8;
  long var_14;
  char *var_25;
  type_4 var_26;
  type_8 *pfVar12;
  long var_3;
  type_4 var_13;
  type_9 var_2;
  long var_18;
  long var_21;
  type_4 var_15;
  type_5 *var_4;
  type_5 *var_5;
  bool var_6;
  bool bVar22;
  type_8 *local_88;
  type_9 var_31;
  int var_24;
  int out_size;
  type_8 *last_newf;
  char *next_out;
  
  var_1 = sec->size;
  if (0x1f < var_1) {
    var_2 = sec->flags & 0x101;
    var_6 = var_2 == 0;
    bVar22 = var_2 == 1;
    if (!bVar22) {
      var_33 = (type_5 *)sec->name;
      var_3 = 7;
      var_4 = var_33;
      var_5 = (type_5 *)".debug_";
      do {
        if (var_3 == 0) break;
        var_3 = var_3 + -1;
        var_6 = *var_4 < *var_5;
        bVar22 = *var_4 == *var_5;
        var_4 = var_4 + 1;
        var_5 = var_5 + 1;
      } while (bVar22);
      if ((!var_6 && !bVar22) == var_6) {
        plVar3 = (long *)sec->userdata;
        var_3 = *plVar3;
        var_8 = var_7();
        if (var_8 != (type_7 *)0x0) {
          if (var_9 == var_10) {
            var_31 = var_11(stdoutput,0);
            var_15 = (type_4)var_31;
          }
          else {
            var_31 = 0;
            var_15 = 0xc;
          }
          ob = (type_3 *)(var_3 + 0x30);
          local_88 = var_12(ob);
          var_13 = *(type_4 *)(var_3 + 0x50);
          var_14 = *(long *)(var_3 + 0x48);
          if (var_13 - var_14 < var_15) {
            local_88 = var_12(ob);
            var_13 = *(type_4 *)(var_3 + 0x50);
            var_14 = *(long *)(var_3 + 0x48);
            if (var_13 - var_14 < var_15) {
              var_25 = (char *)var_16(0,"can\'t extend frag %lu char",
                                           "can\'t extend frag %lu chars",var_15,5);
                    /* WARNING: Subroutine does not return */
              var_17(var_25,var_15);
            }
          }
          var_25 = (char *)(var_14 + var_15);
          *(char **)(var_3 + 0x48) = var_25;
          local_88->fr_fix = var_15;
          last_newf = local_88;
          plVar4 = (long *)*plVar3;
          local_88->fr_type = rs_fill;
          var_14 = *plVar4;
          if (var_14 != 0) {
            if (*(int *)(var_14 + 0x5c) == 1) {
              do {
                var_18 = *(long *)(var_14 + 0x10);
                if (var_18 != 0) {
                  var_20 = var_19(var_8,(char *)(var_14 + 0x80),(int)var_18,&last_newf,ob);
                  if (var_20 < 0) {
                    return;
                  }
                  var_18 = *(long *)(var_14 + 0x10);
                  var_15 = var_15 + (long)var_20;
                }
                var_21 = *(long *)(var_14 + 0x20);
                var_23 = *(long *)(var_14 + 0x18);
                if (var_21 < 0) {
                    /* WARNING: Subroutine does not return */
                  var_22("../../gas/write.c",0x5e0,"compress_debug");
                }
                if ((var_23 != 0) && (var_21 != 0)) {
                  do {
                    var_20 = var_19(var_8,(char *)(var_14 + 0x80) + var_18,(int)var_23,&last_newf
                                          ,ob);
                    if (var_20 < 0) {
                      return;
                    }
                    var_15 = var_15 + (long)var_20;
                    var_21 = var_21 + -1;
                  } while (var_21 != 0);
                }
                var_14 = *(long *)(var_14 + 0x38);
                if (var_14 == 0) {
                  var_25 = *(char **)(var_3 + 0x48);
                  var_13 = *(type_4 *)(var_3 + 0x50);
                  goto LAB_0012dd51;
                }
              } while (*(int *)(var_14 + 0x5c) == 1);
            }
                    /* WARNING: Subroutine does not return */
            var_22("../../gas/write.c",0x5d4,"compress_debug");
          }
LAB_0012dd51:
          while( true ) {
            var_24 = (int)var_13 - (int)var_25;
            if (var_24 < 1) {
              if (*(char **)(var_3 + 0x40) == var_25) {
                *(type_5 *)(var_3 + 0x80) = *(type_5 *)(var_3 + 0x80) | 2;
              }
              var_26 = (type_4)(var_25 + *(type_4 *)(var_3 + 0x60)) & ~*(type_4 *)(var_3 + 0x60);
              *(type_4 *)(var_3 + 0x48) = var_26;
              if (var_13 - *(long *)(var_3 + 0x38) < var_26 - *(long *)(var_3 + 0x38)) {
                *(type_4 *)(var_3 + 0x48) = var_13;
                var_26 = var_13;
              }
              *(type_4 *)(var_3 + 0x40) = var_26;
              pfVar12 = var_12(ob);
              uVar6 = *(type_6 *)(var_3 + 0x50);
              pfVar12->fr_type = rs_fill;
              last_newf->fr_next = pfVar12;
              var_25 = *(char **)(var_3 + 0x48);
              var_24 = (int)uVar6 - (int)var_25;
              last_newf = pfVar12;
              if (var_24 < 1) {
                var_25 = (char *)var_27(0,"can\'t extend frag",5);
                    /* WARNING: Subroutine does not return */
                var_17(var_25);
              }
            }
            *(char **)(var_3 + 0x48) = var_25 + var_24;
            next_out = var_25;
            var_20 = var_28(var_8,&next_out,&var_24,&out_size);
            if (var_20 < 0) {
              return;
            }
            var_15 = var_15 + (long)out_size;
            last_newf->fr_fix = last_newf->fr_fix + (long)out_size;
            if (0 < var_24) {
              *(long *)(var_3 + 0x48) = *(long *)(var_3 + 0x48) + (long)-var_24;
            }
            if (var_20 == 0) break;
            var_25 = *(char **)(var_3 + 0x48);
            var_13 = *(type_4 *)(var_3 + 0x50);
          }
          if (var_15 < var_1) {
            puVar7 = (type_6 *)*plVar3;
            *puVar7 = local_88;
            puVar7[1] = last_newf;
            var_29(abfd,local_88->fr_literal,sec);
            var_20 = var_30(abfd,sec,var_15);
            if (var_20 == 0) {
                    /* WARNING: Subroutine does not return */
              var_22("../../gas/write.c",0x622,"compress_debug");
            }
            if (var_31 == 0) {
              var_25 = (char *)var_32(&DAT_0014ff08,var_33 + 1,0);
              sec->name = var_25;
            }
          }
        }
      }
    }
  }
  return;
}


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

void MASKED(undefined8 param_1,undefined8 *param_2)

{
  long lVar1;
  ulong uVar2;
  byte *pbVar3;
  long *plVar4;
  long *plVar5;
  int iVar6;
  long lVar7;
  long lVar8;
  ulong uVar9;
  long lVar10;
  undefined8 uVar11;
  long lVar12;
  ulong uVar13;
  long lVar14;
  ulong uVar15;
  byte *pbVar16;
  byte *pbVar17;
  bool bVar18;
  bool bVar19;
  long local_88;
  uint local_5c;
  int local_50;
  int local_4c;
  long local_48;
  long local_40 [2];
  
  uVar2 = param_2[7];
  if (0x1f < uVar2) {
    bVar18 = (*(uint *)(param_2 + 4) & 0x101) == 0;
    bVar19 = (*(uint *)(param_2 + 4) & 0x101) == 1;
    if (!bVar19) {
      pbVar3 = (byte *)*param_2;
      lVar12 = 7;
      pbVar16 = pbVar3;
      pbVar17 = &DAT_0014ff00;
      do {
        if (lVar12 == 0) break;
        lVar12 = lVar12 + -1;
        bVar18 = *pbVar16 < *pbVar17;
        bVar19 = *pbVar16 == *pbVar17;
        pbVar16 = pbVar16 + 1;
        pbVar17 = pbVar17 + 1;
      } while (bVar19);
      if ((!bVar18 && !bVar19) == bVar18) {
        plVar4 = (long *)param_2[0x15];
        lVar12 = *plVar4;
        lVar7 = FUN_0010c160();
        if (lVar7 != 0) {
          if (DAT_001e4554 == 5) {
            local_5c = bfd_get_compression_header_size(DAT_001e4750,0);
            uVar15 = (ulong)local_5c;
          }
          else {
            local_5c = 0;
            uVar15 = 0xc;
          }
          lVar1 = lVar12 + 0x30;
          local_88 = FUN_00116bb0(lVar1);
          uVar13 = *(ulong *)(lVar12 + 0x50);
          lVar8 = *(long *)(lVar12 + 0x48);
          if (uVar13 - lVar8 < uVar15) {
            local_88 = FUN_00116bb0(lVar1);
            uVar13 = *(ulong *)(lVar12 + 0x50);
            lVar8 = *(long *)(lVar12 + 0x48);
            if (uVar13 - lVar8 < uVar15) {
              uVar11 = dcngettext(0,"can\'t extend frag %lu char","can\'t extend frag %lu chars",
                                  uVar15,5);
                    /* WARNING: Subroutine does not return */
              FUN_0011dc10(uVar11,uVar15);
            }
          }
          lVar8 = lVar8 + uVar15;
          *(long *)(lVar12 + 0x48) = lVar8;
          *(ulong *)(local_88 + 0x10) = uVar15;
          local_48 = local_88;
          plVar5 = (long *)*plVar4;
          *(undefined4 *)(local_88 + 0x5c) = 1;
          lVar10 = *plVar5;
          if (lVar10 != 0) {
            if (*(int *)(lVar10 + 0x5c) == 1) {
              do {
                lVar8 = *(long *)(lVar10 + 0x10);
                if (lVar8 != 0) {
                  iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80,lVar8,&local_48,lVar1);
                  if (iVar6 < 0) {
                    return;
                  }
                  lVar8 = *(long *)(lVar10 + 0x10);
                  uVar15 = uVar15 + (long)iVar6;
                }
                lVar14 = *(long *)(lVar10 + 0x20);
                uVar13 = *(ulong *)(lVar10 + 0x18);
                if (lVar14 < 0) {
                    /* WARNING: Subroutine does not return */
                  FUN_0011dd00("../../gas/write.c",0x5e0,"compress_debug");
                }
                if ((uVar13 != 0) && (lVar14 != 0)) {
                  do {
                    iVar6 = FUN_0012d950(lVar7,lVar10 + 0x80 + lVar8,uVar13 & 0xffffffff,&local_48,
                                         lVar1);
                    if (iVar6 < 0) {
                      return;
                    }
                    uVar15 = uVar15 + (long)iVar6;
                    lVar14 = lVar14 + -1;
                  } while (lVar14 != 0);
                }
                lVar10 = *(long *)(lVar10 + 0x38);
                if (lVar10 == 0) {
                  lVar8 = *(long *)(lVar12 + 0x48);
                  uVar13 = *(ulong *)(lVar12 + 0x50);
                  goto LAB_0012dd51;
                }
              } while (*(int *)(lVar10 + 0x5c) == 1);
            }
                    /* WARNING: Subroutine does not return */
            FUN_0011dd00("../../gas/write.c",0x5d4,"compress_debug");
          }
LAB_0012dd51:
          while( true ) {
            local_50 = (int)uVar13 - (int)lVar8;
            if (local_50 < 1) {
              if (*(long *)(lVar12 + 0x40) == lVar8) {
                *(byte *)(lVar12 + 0x80) = *(byte *)(lVar12 + 0x80) | 2;
              }
              uVar9 = lVar8 + *(ulong *)(lVar12 + 0x60) & ~*(ulong *)(lVar12 + 0x60);
              *(ulong *)(lVar12 + 0x48) = uVar9;
              if (uVar13 - *(long *)(lVar12 + 0x38) < uVar9 - *(long *)(lVar12 + 0x38)) {
                *(ulong *)(lVar12 + 0x48) = uVar13;
                uVar9 = uVar13;
              }
              *(ulong *)(lVar12 + 0x40) = uVar9;
              lVar10 = FUN_00116bb0(lVar1);
              uVar11 = *(undefined8 *)(lVar12 + 0x50);
              *(undefined4 *)(lVar10 + 0x5c) = 1;
              *(long *)(local_48 + 0x38) = lVar10;
              lVar8 = *(long *)(lVar12 + 0x48);
              local_50 = (int)uVar11 - (int)lVar8;
              local_48 = lVar10;
              if (local_50 < 1) {
                uVar11 = dcgettext(0,"can\'t extend frag",5);
                    /* WARNING: Subroutine does not return */
                FUN_0011dc10(uVar11);
              }
            }
            *(long *)(lVar12 + 0x48) = lVar8 + local_50;
            local_40[0] = lVar8;
            iVar6 = FUN_0010c220(lVar7,local_40,&local_50,&local_4c);
            if (iVar6 < 0) {
              return;
            }
            uVar15 = uVar15 + (long)local_4c;
            *(long *)(local_48 + 0x10) = *(long *)(local_48 + 0x10) + (long)local_4c;
            if (0 < local_50) {
              *(long *)(lVar12 + 0x48) = *(long *)(lVar12 + 0x48) + (long)-local_50;
            }
            if (iVar6 == 0) break;
            lVar8 = *(long *)(lVar12 + 0x48);
            uVar13 = *(ulong *)(lVar12 + 0x50);
          }
          if (uVar15 < uVar2) {
            plVar4 = (long *)*plVar4;
            *plVar4 = local_88;
            plVar4[1] = local_48;
            bfd_update_compression_header(param_1,local_88 + 0x80,param_2);
            iVar6 = bfd_set_section_size(param_1,param_2,uVar15);
            if (iVar6 == 0) {
                    /* WARNING: Subroutine does not return */
              FUN_0011dd00("../../gas/write.c",0x622,"compress_debug");
            }
            if (local_5c == 0) {
              uVar11 = concat(&DAT_0014ff08,pbVar3 + 1,0);
              *param_2 = uVar11;
            }
          }
        }
      }
    }
  }
  return;
}

