
ssize_t getndelim2(char **lineptr,size_t *linesize,size_t offset,size_t nmax,int delim1,int delim2,
                  FILE *stream)

{
  byte bVar1;
  bool bVar2;
  bool bVar3;
  undefined *puVar4;
  size_t sVar5;
  size_t *psVar6;
  size_t *s;
  char *pcVar7;
  ssize_t sVar8;
  size_t *psVar9;
  uint *s_00;
  void *pvVar10;
  uint uVar11;
  byte *pbVar12;
  uint uVar13;
  size_t *psVar14;
  uint uVar15;
  size_t *psVar16;
  uint uVar17;
  size_t *n;
  uint *puVar18;
  uint uVar19;
  uint uVar20;
  size_t *psVar21;
  char *pcVar22;
  int iVar23;
  size_t *psVar24;
  size_t *c1_in;
  char *pcVar25;
  size_t *local_48;
  size_t buffer_len;
  uint *local_2c;
  
  puVar4 = PTR___stack_chk_guard_0002b2f8;
  local_2c = *(uint **)PTR___stack_chk_guard_0002b2f8;
  pcVar25 = *lineptr;
  psVar24 = (size_t *)*linesize;
  psVar14 = linesize;
  psVar16 = (size_t *)offset;
  n = (size_t *)nmax;
  if (pcVar25 == (char *)0x0) {
    psVar24 = (size_t *)nmax;
    if (0x40 < nmax) {
      psVar24 = (size_t *)0x40;
    }
    pcVar25 = (char *)(*(code *)PTR_malloc_0002b2b4)(psVar24);
    if (pcVar25 != (char *)0x0) goto LAB_00013ed4;
    sVar8 = -1;
  }
  else {
LAB_00013ed4:
    psVar9 = psVar16;
    if (offset <= psVar24) {
      psVar21 = (size_t *)((int)psVar24 - offset);
      pcVar22 = pcVar25 + offset;
      if ((psVar21 != (size_t *)0x0) || (psVar24 < nmax)) {
        c1_in = (size_t *)delim2;
        if ((delim1 != -1) && (c1_in = (size_t *)delim1, delim2 == -1)) {
          delim2 = delim1;
        }
        psVar6 = (size_t *)(offset + 0x80000000);
        do {
          psVar14 = &buffer_len;
          s = (size_t *)freadptr(stream,&buffer_len);
          sVar5 = buffer_len;
          pcVar7 = pcVar25;
          if (s == (size_t *)0x0) {
            pbVar12 = (byte *)stream->_IO_read_ptr;
            if (pbVar12 < stream->_IO_read_end) {
              stream->_IO_read_ptr = (char *)(pbVar12 + 1);
              local_48 = (size_t *)(uint)*pbVar12;
            }
            else {
              local_48 = (size_t *)(*(code *)PTR___uflow_0002b264)(stream);
              if (local_48 == (size_t *)0xffffffff) {
                psVar9 = psVar16;
                if (pcVar22 == pcVar25) goto LAB_000140b0;
                break;
              }
            }
            bVar3 = c1_in == local_48 || (size_t *)delim2 == local_48;
            n = (size_t *)0x2;
            buffer_len = 1;
          }
          else if ((c1_in == (size_t *)0xffffffff) ||
                  (psVar14 = c1_in, psVar16 = (size_t *)delim2,
                  pvVar10 = memchr2(s,(int)c1_in,delim2,buffer_len), pvVar10 == (void *)0x0)) {
            n = (size_t *)(sVar5 + 1);
            bVar3 = false;
          }
          else {
            bVar3 = true;
            buffer_len = (int)pvVar10 + (1 - (int)s);
            n = (size_t *)((int)pvVar10 + (2 - (int)s));
          }
          bVar2 = psVar21 < (size_t *)0x2;
          if ((psVar21 < n) && (bVar2 = psVar21 < (size_t *)0x2, psVar24 < nmax)) {
            iVar23 = (int)pcVar22 - (int)pcVar25;
            psVar16 = (size_t *)nmax;
            if (psVar24 < (size_t *)0x40) {
              psVar9 = psVar24 + 0x10;
              if ((size_t *)((int)psVar9 - iVar23) < n) {
LAB_0001414c:
                psVar9 = (size_t *)((int)n + iVar23);
                goto LAB_00014154;
              }
LAB_00013f98:
              if (psVar9 < nmax) {
                psVar16 = psVar9;
              }
            }
            else {
              psVar9 = (size_t *)((int)psVar24 * 2);
              if ((size_t *)((int)psVar9 - iVar23) < n) goto LAB_0001414c;
LAB_00014154:
              if (psVar24 < psVar9) goto LAB_00013f98;
            }
            if (((int)((int)psVar16 - offset) < 0) &&
               (psVar16 = psVar6, psVar9 = psVar6, psVar24 == psVar6)) goto LAB_000140b0;
            psVar21 = (size_t *)((int)psVar16 - iVar23);
            psVar14 = psVar16;
            psVar9 = psVar16;
            pcVar7 = (char *)(*(code *)PTR_realloc_0002b2b8)(pcVar25);
            if (pcVar7 == (char *)0x0) goto LAB_000140b0;
            pcVar22 = pcVar7 + iVar23;
            bVar2 = psVar21 < (size_t *)0x2;
            psVar24 = psVar16;
          }
          if (!bVar2) {
            n = (size_t *)((int)psVar21 + -1);
            if (buffer_len <= (size_t *)((int)psVar21 + -1)) {
              n = (size_t *)buffer_len;
            }
            if (s == (size_t *)0x0) {
              *pcVar22 = (char)local_48;
            }
            else {
              psVar14 = s;
              psVar16 = n;
              (*(code *)PTR_memcpy_0002b2fc)(pcVar22);
            }
            pcVar22 = pcVar22 + (int)n;
            psVar21 = (size_t *)((int)psVar21 - (int)n);
          }
          pcVar25 = pcVar7;
          if ((s != (size_t *)0x0) &&
             (psVar14 = (size_t *)buffer_len, iVar23 = freadseek(stream,buffer_len),
             psVar9 = psVar16, iVar23 != 0)) goto LAB_000140b0;
        } while (!bVar3);
        *pcVar22 = '\0';
        *lineptr = pcVar7;
        sVar8 = (int)pcVar22 - (int)(pcVar7 + offset);
        *linesize = (size_t)psVar24;
        if (sVar8 == 0) {
          sVar8 = -1;
        }
        goto LAB_000140c0;
      }
    }
LAB_000140b0:
    psVar16 = psVar9;
    *lineptr = pcVar25;
    sVar8 = -1;
    *linesize = (size_t)psVar24;
  }
LAB_000140c0:
  if (local_2c == *(uint **)puVar4) {
    return sVar8;
  }
  s_00 = local_2c;
  (*(code *)PTR___stack_chk_fail_0002b2e0)();
  uVar19 = (uint)psVar14 & 0xff;
  uVar20 = (uint)psVar16 & 0xff;
  if (uVar19 == uVar20) {
    pvVar10 = rpl_memchr(s_00,(uint)psVar14 & 0xff,(size_t)n);
    return (ssize_t)pvVar10;
  }
  if ((n != (size_t *)0x0) && (((uint)s_00 & 3) != 0)) {
    if (uVar19 == *(byte *)s_00) {
      return (ssize_t)s_00;
    }
    if (uVar20 == *(byte *)s_00) {
      return (ssize_t)s_00;
    }
    while( true ) {
      n = (size_t *)((int)n + -1);
      s_00 = (uint *)((int)s_00 + 1);
      if ((n == (size_t *)0x0) || (((uint)s_00 & 3) == 0)) break;
      if (*(byte *)s_00 == uVar19) {
        return (ssize_t)s_00;
      }
      if (*(byte *)s_00 == uVar20) {
        return (ssize_t)s_00;
      }
    }
  }
  uVar15 = ((uint)psVar14 & 0xff) << 8 | (uint)psVar14 & 0xff;
  uVar17 = ((uint)psVar16 & 0xff) << 8 | (uint)psVar16 & 0xff;
  uVar15 = uVar15 << 0x10 | uVar15;
  uVar17 = uVar17 << 0x10 | uVar17;
  if (n < (size_t *)0x4) {
LAB_0001433c:
    if (n == (size_t *)0x0) {
      return 0;
    }
  }
  else {
    uVar11 = uVar15 ^ *s_00;
    uVar13 = uVar17 ^ *s_00;
    if (((~uVar11 & uVar11 + 0xfefefeff | ~uVar13 & uVar13 + 0xfefefeff) & 0x80808080) != 0) {
      bVar1 = *(byte *)s_00;
      goto LAB_00014348;
    }
    do {
      n = n + -1;
      s_00 = s_00 + 1;
      if (n < (size_t *)0x4) goto LAB_0001433c;
      uVar13 = *s_00 ^ uVar15;
      uVar11 = *s_00 ^ uVar17;
    } while (((uVar13 + 0xfefefeff & ~uVar13 | uVar11 + 0xfefefeff & ~uVar11) & 0x80808080) == 0);
  }
  bVar1 = *(byte *)s_00;
LAB_00014348:
  if ((uVar19 != bVar1) && (uVar20 != bVar1)) {
    puVar18 = (uint *)((int)s_00 + (int)n);
    do {
      s_00 = (uint *)((int)s_00 + 1);
      if (s_00 == puVar18) {
        return 0;
      }
    } while ((*(byte *)s_00 != uVar19) && (*(byte *)s_00 != uVar20));
  }
  return (ssize_t)s_00;
}



uint * getndelim2(undefined4 *param_1,uint *param_2,uint *param_3,uint *param_4,uint *param_5,
                 uint *param_6,int param_7)

{
  byte bVar1;
  bool bVar2;
  bool bVar3;
  undefined *puVar4;
  uint *puVar5;
  uint *puVar6;
  uint *puVar7;
  undefined1 *puVar8;
  uint *puVar9;
  uint uVar10;
  byte *pbVar11;
  uint uVar12;
  uint *puVar13;
  uint uVar14;
  uint *puVar15;
  uint uVar16;
  uint *puVar17;
  uint uVar18;
  uint uVar19;
  uint *puVar20;
  undefined1 *puVar21;
  int iVar22;
  uint *puVar23;
  uint *puVar24;
  undefined1 *puVar25;
  uint *local_48;
  uint *local_30;
  
  puVar4 = PTR___stack_chk_guard_0002b2f8;
  puVar5 = *(uint **)PTR___stack_chk_guard_0002b2f8;
  puVar25 = (undefined1 *)*param_1;
  puVar23 = (uint *)*param_2;
  puVar13 = param_2;
  puVar15 = param_3;
  puVar17 = param_4;
  if (puVar25 == (undefined1 *)0x0) {
    puVar23 = param_4;
    if ((uint *)0x40 < param_4) {
      puVar23 = (uint *)0x40;
    }
    puVar25 = (undefined1 *)(*(code *)PTR_malloc_0002b2b4)(puVar23);
    if (puVar25 != (undefined1 *)0x0) goto LAB_00013ed4;
    puVar9 = (uint *)0xffffffff;
  }
  else {
LAB_00013ed4:
    puVar9 = puVar15;
    if (param_3 <= puVar23) {
      puVar20 = (uint *)((int)puVar23 - (int)param_3);
      puVar21 = puVar25 + (int)param_3;
      if ((puVar20 != (uint *)0x0) || (puVar23 < param_4)) {
        puVar24 = param_6;
        if ((param_5 != (uint *)0xffffffff) && (puVar24 = param_5, param_6 == (uint *)0xffffffff)) {
          param_6 = param_5;
        }
        puVar6 = param_3 + -0x20000000;
        do {
          puVar13 = (uint *)0xffffffd0;
          puVar7 = (uint *)freadptr(param_7);
          puVar8 = puVar25;
          if (puVar7 == (uint *)0x0) {
            pbVar11 = *(byte **)(param_7 + 4);
            if (pbVar11 < *(byte **)(param_7 + 8)) {
              *(byte **)(param_7 + 4) = pbVar11 + 1;
              local_48 = (uint *)(uint)*pbVar11;
            }
            else {
              local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);
              if (local_48 == (uint *)0xffffffff) {
                puVar9 = puVar15;
                if (puVar21 == puVar25) goto LAB_000140b0;
                break;
              }
            }
            bVar3 = puVar24 == local_48 || param_6 == local_48;
            puVar17 = (uint *)0x2;
            local_30 = (uint *)0x1;
          }
          else if ((puVar24 == (uint *)0xffffffff) ||
                  (puVar13 = puVar24, puVar15 = param_6,
                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0)) {
            puVar17 = (uint *)((int)local_30 + 1);
            bVar3 = false;
          }
          else {
            bVar3 = true;
            local_30 = (uint *)((iVar22 - (int)puVar7) + 1);
            puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);
          }
          bVar2 = puVar20 < (uint *)0x2;
          if ((puVar20 < puVar17) && (bVar2 = puVar20 < (uint *)0x2, puVar23 < param_4)) {
            iVar22 = (int)puVar21 - (int)puVar25;
            puVar15 = param_4;
            if (puVar23 < (uint *)0x40) {
              puVar9 = puVar23 + 0x10;
              if ((uint *)((int)puVar9 - iVar22) < puVar17) {
LAB_0001414c:
                puVar9 = (uint *)((int)puVar17 + iVar22);
                goto LAB_00014154;
              }
LAB_00013f98:
              if (puVar9 < param_4) {
                puVar15 = puVar9;
              }
            }
            else {
              puVar9 = (uint *)((int)puVar23 * 2);
              if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;
LAB_00014154:
              if (puVar23 < puVar9) goto LAB_00013f98;
            }
            if (((int)puVar15 - (int)param_3 < 0) &&
               (puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6)) goto LAB_000140b0;
            puVar20 = (uint *)((int)puVar15 - iVar22);
            puVar13 = puVar15;
            puVar9 = puVar15;
            puVar8 = (undefined1 *)(*(code *)PTR_realloc_0002b2b8)(puVar25);
            if (puVar8 == (undefined1 *)0x0) goto LAB_000140b0;
            puVar21 = puVar8 + iVar22;
            bVar2 = puVar20 < (uint *)0x2;
            puVar23 = puVar15;
          }
          if (!bVar2) {
            puVar17 = (uint *)((int)puVar20 + -1);
            if (local_30 <= (uint *)((int)puVar20 + -1)) {
              puVar17 = local_30;
            }
            if (puVar7 == (uint *)0x0) {
              *puVar21 = (char)local_48;
            }
            else {
              puVar13 = puVar7;
              puVar15 = puVar17;
              (*(code *)PTR_memcpy_0002b2fc)(puVar21);
            }
            puVar21 = puVar21 + (int)puVar17;
            puVar20 = (uint *)((int)puVar20 - (int)puVar17);
          }
          puVar25 = puVar8;
          if ((puVar7 != (uint *)0x0) &&
             (puVar13 = local_30, iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0))
          goto LAB_000140b0;
        } while (!bVar3);
        *puVar21 = 0;
        *param_1 = puVar8;
        puVar9 = (uint *)(puVar21 + -(int)(puVar8 + (int)param_3));
        *param_2 = (uint)puVar23;
        if (puVar9 == (uint *)0x0) {
          puVar9 = (uint *)0xffffffff;
        }
        goto LAB_000140c0;
      }
    }
LAB_000140b0:
    puVar15 = puVar9;
    *param_1 = puVar25;
    puVar9 = (uint *)0xffffffff;
    *param_2 = (uint)puVar23;
  }
LAB_000140c0:
  if (puVar5 == *(uint **)puVar4) {
    return puVar9;
  }
  (*(code *)PTR___stack_chk_fail_0002b2e0)();
  uVar18 = (uint)puVar13 & 0xff;
  uVar19 = (uint)puVar15 & 0xff;
  if (uVar18 == uVar19) {
    puVar5 = (uint *)rpl_memchr();
    return puVar5;
  }
  if ((puVar17 != (uint *)0x0) && (((uint)puVar5 & 3) != 0)) {
    if (uVar18 == *(byte *)puVar5) {
      return puVar5;
    }
    if (uVar19 == *(byte *)puVar5) {
      return puVar5;
    }
    while( true ) {
      puVar17 = (uint *)((int)puVar17 - 1);
      puVar5 = (uint *)((int)puVar5 + 1);
      if ((puVar17 == (uint *)0x0) || (((uint)puVar5 & 3) == 0)) break;
      if (*(byte *)puVar5 == uVar18) {
        return puVar5;
      }
      if (*(byte *)puVar5 == uVar19) {
        return puVar5;
      }
    }
  }
  uVar14 = ((uint)puVar13 & 0xff) << 8 | (uint)puVar13 & 0xff;
  uVar16 = ((uint)puVar15 & 0xff) << 8 | (uint)puVar15 & 0xff;
  uVar14 = uVar14 << 0x10 | uVar14;
  uVar16 = uVar16 << 0x10 | uVar16;
  if (puVar17 < (uint *)0x4) {
LAB_0001433c:
    if (puVar17 == (uint *)0x0) {
      return (uint *)0x0;
    }
  }
  else {
    uVar10 = uVar14 ^ *puVar5;
    uVar12 = uVar16 ^ *puVar5;
    if (((~uVar10 & uVar10 + 0xfefefeff | ~uVar12 & uVar12 + 0xfefefeff) & 0x80808080) != 0) {
      bVar1 = *(byte *)puVar5;
      goto LAB_00014348;
    }
    do {
      puVar17 = puVar17 + -1;
      puVar5 = puVar5 + 1;
      if (puVar17 < (uint *)0x4) goto LAB_0001433c;
      uVar12 = *puVar5 ^ uVar14;
      uVar10 = *puVar5 ^ uVar16;
    } while (((uVar12 + 0xfefefeff & ~uVar12 | uVar10 + 0xfefefeff & ~uVar10) & 0x80808080) == 0);
  }
  bVar1 = *(byte *)puVar5;
LAB_00014348:
  if ((uVar18 != bVar1) && (uVar19 != bVar1)) {
    puVar17 = (uint *)((int)puVar5 + (int)puVar17);
    do {
      puVar5 = (uint *)((int)puVar5 + 1);
      if (puVar5 == puVar17) {
        return (uint *)0x0;
      }
    } while ((*(byte *)puVar5 != uVar18) && (*(byte *)puVar5 != uVar19));
  }
  return puVar5;
}


lui gp,0x2
addiu gp,gp,-0xd90
addu gp,gp,t9
lw v0,-0x7dd8(gp)
addiu sp,sp,-0x60
sw s6,0x50(sp)
sw v0,0x24(sp)
sw gp,0x10(sp)
sw s5,0x4c(sp)
sw s4,0x48(sp)
sw s2,0x40(sp)
sw ra,0x5c(sp)
sw s8,0x58(sp)
sw s7,0x54(sp)
sw s3,0x44(sp)
sw s1,0x3c(sp)
sw s0,0x38(sp)
sw a0,0x28(sp)
sw a1,0x2c(sp)
sw a2,0x68(sp)
sw a3,0x6c(sp)
lw v0,0x0(v0)
lw s6,0x0(a0)
lw s5,0x70(sp)
lw s2,0x78(sp)
lw s4,0x0(a1)
sw v0,0x34(sp)
beq s6,zero,0x000141c4
_li v0,0x40
lw v0,0x68(sp)
sltu v0,s4,v0
bne v0,zero,0x000140ac
_lw v0,0x68(sp)
subu s0,s4,v0
bne s0,zero,0x00013f00
_addu s1,s6,v0
lw v0,0x6c(sp)
sltu v0,s4,v0
beq v0,zero,0x000140b0
_lw v0,0x28(sp)
li v0,-0x1
beq s5,v0,0x000141bc
_lw v1,0x74(sp)
bne v1,v0,0x00013f1c
_lw v1,0x68(sp)
sw s5,0x74(sp)
lw v1,0x68(sp)
lui v0,0x8000
addiu s8,sp,0x30
addu v0,v1,v0
sw v0,0x20(sp)
lw t9,-0x7f5c(gp)
or a1,s8,zero
bal 0x00017670
_or a0,s2,zero
lw gp,0x10(sp)
beq v0,zero,0x00014164
_or s7,v0,zero
li v0,-0x1
bne s5,v0,0x00014100
_lw s3,0x30(sp)
addiu a3,s3,0x1
or s3,zero,zero
sltu v0,s0,a3
beq v0,zero,0x00013ff4
_sltiu v0,s0,0x2
lw v0,0x6c(sp)
sltu v0,s4,v0
beq v0,zero,0x00013ff4
_sltiu v0,s0,0x2
sltiu v0,s4,0x40
beq v0,zero,0x00014138
_subu s1,s1,s6
addiu v0,s4,0x40
subu a0,v0,s1
sltu a0,a0,a3
bne a0,zero,0x0001414c
_nop
lw v1,0x6c(sp)
sltu a2,v0,v1
movn v1,v0,a2
or a2,v1,zero
lw v0,0x68(sp)
subu v0,a2,v0
bgez v0,0x00013fc0
_lw v0,0x20(sp)
beq s4,v0,0x000140ac
_or a2,v0,zero
lw t9,-0x7e18(gp)
or a1,a2,zero
or a0,s6,zero
sw a2,0x1c(sp)
jalr t9
_subu s0,a2,s1
beq v0,zero,0x000140ac
_lw gp,0x10(sp)
lw a2,0x1c(sp)
addu s1,v0,s1
or s6,v0,zero
or s4,a2,zero
sltiu v0,s0,0x2
bne v0,zero,0x00014038
_addiu v0,s0,-0x1
lw a0,0x30(sp)
sltu a3,v0,a0
movz v0,a0,a3
beq s7,zero,0x000141a8
_or a3,v0,zero
lw t9,-0x7dd4(gp)
or a2,v0,zero
sw v0,0x1c(sp)
or a1,s7,zero
jalr t9
_or a0,s1,zero
lw gp,0x10(sp)
lw a3,0x1c(sp)
addu s1,s1,a3
subu s0,s0,a3
beq s7,zero,0x00014054
_lw t9,-0x7f58(gp)
or a0,s2,zero
bal 0x00018b70
_lw a1,0x30(sp)
bne v0,zero,0x000140ac
_lw gp,0x10(sp)
beq s3,zero,0x00013f30
_lw t9,-0x7f5c(gp)
lw v1,0x28(sp)
lw v0,0x68(sp)
sb zero,0x0(s1)
addu v0,s6,v0
sw s6,0x0(v1)
lw v1,0x2c(sp)
subu v0,s1,v0
bne v0,zero,0x000140c0
_sw s4,0x0(v1)
b 0x000140c0
_li v0,-0x1
lw t9,-0x7e6c(gp)
jalr t9
_or a0,s2,zero
li v1,-0x1
lw gp,0x10(sp)
bne v0,v1,0x00014184
_sw v0,0x18(sp)
bne s1,s6,0x00014060
_lw v1,0x28(sp)
lw v0,0x28(sp)
lw v1,0x2c(sp)
sw s6,0x0(v0)
li v0,-0x1
sw s4,0x0(v1)
lw v1,0x24(sp)
lw a0,0x34(sp)
lw v1,0x0(v1)
bne a0,v1,0x000141f4
_lw ra,0x5c(sp)
lw s8,0x58(sp)
lw s7,0x54(sp)
lw s6,0x50(sp)
lw s5,0x4c(sp)
lw s4,0x48(sp)
lw s3,0x44(sp)
lw s2,0x40(sp)
lw s1,0x3c(sp)
lw s0,0x38(sp)
jr ra
_addiu sp,sp,0x60
lw t9,-0x7f54(gp)
or a3,s3,zero
lw a2,0x74(sp)
or a1,s5,zero
bal 0x00014200
_or a0,s7,zero
beq v0,zero,0x00013f54
_lw gp,0x10(sp)
subu v0,v0,s7
li s3,0x1
addiu a0,v0,0x1
addiu a3,v0,0x2
b 0x00013f5c
_sw a0,0x30(sp)
sll v0,s4,0x1
subu a0,v0,s1
sltu a0,a0,a3
beq a0,zero,0x00014154
_sltu a0,s4,v0
addu v0,a3,s1
sltu a0,s4,v0
bne a0,zero,0x00013f98
_lw a2,0x6c(sp)
b 0x00013fac
_lw v0,0x68(sp)
lw a0,0x4(s2)
lw v0,0x8(s2)
sltu v0,a0,v0
beq v0,zero,0x00014088
_addiu v0,a0,0x1
sw v0,0x4(s2)
lbu v0,0x0(a0)
sw v0,0x18(sp)
lw v0,0x18(sp)
beq s5,v0,0x000141b4
_lw v1,0x74(sp)
xor s3,v1,v0
sltiu s3,s3,0x1
li v0,0x1
li a3,0x2
b 0x00013f5c
_sw v0,0x30(sp)
lw v0,0x18(sp)
b 0x00014030
_sb v0,0x0(s1)
b 0x00014198
_li s3,0x1
b 0x00013f18
_lw s5,0x74(sp)
lw t9,-0x7e1c(gp)
sltiu s4,a3,0x41
or v1,a3,zero
movz v1,v0,s4
or a0,v1,zero
jalr t9
_or s4,v1,zero
lw gp,0x10(sp)
bne v0,zero,0x00013ed4
_or s6,v0,zero
b 0x000140c0
_li v0,-0x1
lw t9,-0x7df0(gp)
jalr t9
_nop
(translation_unit "uint * getndelim2(undefined4 *param_1,uint *param_2,uint *param_3,uint *param_4,uint *param_5,\n                 uint *param_6,int param_7)\n\n{\n  byte bVar1;\n  bool bVar2;\n  bool bVar3;\n  undefined *puVar4;\n  uint *puVar5;\n  uint *puVar6;\n  uint *puVar7;\n  undefined1 *puVar8;\n  uint *puVar9;\n  uint uVar10;\n  byte *pbVar11;\n  uint uVar12;\n  uint *puVar13;\n  uint uVar14;\n  uint *puVar15;\n  uint uVar16;\n  uint *puVar17;\n  uint uVar18;\n  uint uVar19;\n  uint *puVar20;\n  undefined1 *puVar21;\n  int iVar22;\n  uint *puVar23;\n  uint *puVar24;\n  undefined1 *puVar25;\n  uint *local_48;\n  uint *local_30;\n  \n  puVar4 = PTR___stack_chk_guard_0002b2f8;\n  puVar5 = *(uint **)PTR___stack_chk_guard_0002b2f8;\n  puVar25 = (undefined1 *)*param_1;\n  puVar23 = (uint *)*param_2;\n  puVar13 = param_2;\n  puVar15 = param_3;\n  puVar17 = param_4;\n  if (puVar25 == (undefined1 *)0x0) {\n    puVar23 = param_4;\n    if ((uint *)0x40 < param_4) {\n      puVar23 = (uint *)0x40;\n    }\n    puVar25 = (undefined1 *)(*(code *)PTR_malloc_0002b2b4)(puVar23);\n    if (puVar25 != (undefined1 *)0x0) goto LAB_00013ed4;\n    puVar9 = (uint *)0xffffffff;\n  }\n  else {\nLAB_00013ed4:\n    puVar9 = puVar15;\n    if (param_3 <= puVar23) {\n      puVar20 = (uint *)((int)puVar23 - (int)param_3);\n      puVar21 = puVar25 + (int)param_3;\n      if ((puVar20 != (uint *)0x0) || (puVar23 < param_4)) {\n        puVar24 = param_6;\n        if ((param_5 != (uint *)0xffffffff) && (puVar24 = param_5, param_6 == (uint *)0xffffffff)) {\n          param_6 = param_5;\n        }\n        puVar6 = param_3 + -0x20000000;\n        do {\n          puVar13 = (uint *)0xffffffd0;\n          puVar7 = (uint *)freadptr(param_7);\n          puVar8 = puVar25;\n          if (puVar7 == (uint *)0x0) {\n            pbVar11 = *(byte **)(param_7 + 4);\n            if (pbVar11 < *(byte **)(param_7 + 8)) {\n              *(byte **)(param_7 + 4) = pbVar11 + 1;\n              local_48 = (uint *)(uint)*pbVar11;\n            }\n            else {\n              local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);\n              if (local_48 == (uint *)0xffffffff) {\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = puVar24 == local_48 || param_6 == local_48;\n            puVar17 = (uint *)0x2;\n            local_30 = (uint *)0x1;\n          }\n          else if ((puVar24 == (uint *)0xffffffff) ||\n                  (puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0)) {\n            puVar17 = (uint *)((int)local_30 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            local_30 = (uint *)((iVar22 - (int)puVar7) + 1);\n            puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);\n          }\n          bVar2 = puVar20 < (uint *)0x2;\n          if ((puVar20 < puVar17) && (bVar2 = puVar20 < (uint *)0x2, puVar23 < param_4)) {\n            iVar22 = (int)puVar21 - (int)puVar25;\n            puVar15 = param_4;\n            if (puVar23 < (uint *)0x40) {\n              puVar9 = puVar23 + 0x10;\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) {\nLAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (puVar9 < param_4) {\n                puVar15 = puVar9;\n              }\n            }\n            else {\n              puVar9 = (uint *)((int)puVar23 * 2);\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;\nLAB_00014154:\n              if (puVar23 < puVar9) goto LAB_00013f98;\n            }\n            if (((int)puVar15 - (int)param_3 < 0) &&\n               (puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6)) goto LAB_000140b0;\n            puVar20 = (uint *)((int)puVar15 - iVar22);\n            puVar13 = puVar15;\n            puVar9 = puVar15;\n            puVar8 = (undefined1 *)(*(code *)PTR_realloc_0002b2b8)(puVar25);\n            if (puVar8 == (undefined1 *)0x0) goto LAB_000140b0;\n            puVar21 = puVar8 + iVar22;\n            bVar2 = puVar20 < (uint *)0x2;\n            puVar23 = puVar15;\n          }\n          if (!bVar2) {\n            puVar17 = (uint *)((int)puVar20 + -1);\n            if (local_30 <= (uint *)((int)puVar20 + -1)) {\n              puVar17 = local_30;\n            }\n            if (puVar7 == (uint *)0x0) {\n              *puVar21 = (char)local_48;\n            }\n            else {\n              puVar13 = puVar7;\n              puVar15 = puVar17;\n              (*(code *)PTR_memcpy_0002b2fc)(puVar21);\n            }\n            puVar21 = puVar21 + (int)puVar17;\n            puVar20 = (uint *)((int)puVar20 - (int)puVar17);\n          }\n          puVar25 = puVar8;\n          if ((puVar7 != (uint *)0x0) &&\n             (puVar13 = local_30, iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0))\n          goto LAB_000140b0;\n        } while (!bVar3);\n        *puVar21 = 0;\n        *param_1 = puVar8;\n        puVar9 = (uint *)(puVar21 + -(int)(puVar8 + (int)param_3));\n        *param_2 = (uint)puVar23;\n        if (puVar9 == (uint *)0x0) {\n          puVar9 = (uint *)0xffffffff;\n        }\n        goto LAB_000140c0;\n      }\n    }\nLAB_000140b0:\n    puVar15 = puVar9;\n    *param_1 = puVar25;\n    puVar9 = (uint *)0xffffffff;\n    *param_2 = (uint)puVar23;\n  }\nLAB_000140c0:\n  if (puVar5 == *(uint **)puVar4) {\n    return puVar9;\n  }\n  (*(code *)PTR___stack_chk_fail_0002b2e0)();\n  uVar18 = (uint)puVar13 & 0xff;\n  uVar19 = (uint)puVar15 & 0xff;\n  if (uVar18 == uVar19) {\n    puVar5 = (uint *)rpl_memchr();\n    return puVar5;\n  }\n  if ((puVar17 != (uint *)0x0) && (((uint)puVar5 & 3) != 0)) {\n    if (uVar18 == *(byte *)puVar5) {\n      return puVar5;\n    }\n    if (uVar19 == *(byte *)puVar5) {\n      return puVar5;\n    }\n    while( true ) {\n      puVar17 = (uint *)((int)puVar17 - 1);\n      puVar5 = (uint *)((int)puVar5 + 1);\n      if ((puVar17 == (uint *)0x0) || (((uint)puVar5 & 3) == 0)) break;\n      if (*(byte *)puVar5 == uVar18) {\n        return puVar5;\n      }\n      if (*(byte *)puVar5 == uVar19) {\n        return puVar5;\n      }\n    }\n  }\n  uVar14 = ((uint)puVar13 & 0xff) << 8 | (uint)puVar13 & 0xff;\n  uVar16 = ((uint)puVar15 & 0xff) << 8 | (uint)puVar15 & 0xff;\n  uVar14 = uVar14 << 0x10 | uVar14;\n  uVar16 = uVar16 << 0x10 | uVar16;\n  if (puVar17 < (uint *)0x4) {\nLAB_0001433c:\n    if (puVar17 == (uint *)0x0) {\n      return (uint *)0x0;\n    }\n  }\n  else {\n    uVar10 = uVar14 ^ *puVar5;\n    uVar12 = uVar16 ^ *puVar5;\n    if (((~uVar10 & uVar10 + 0xfefefeff | ~uVar12 & uVar12 + 0xfefefeff) & 0x80808080) != 0) {\n      bVar1 = *(byte *)puVar5;\n      goto LAB_00014348;\n    }\n    do {\n      puVar17 = puVar17 + -1;\n      puVar5 = puVar5 + 1;\n      if (puVar17 < (uint *)0x4) goto LAB_0001433c;\n      uVar12 = *puVar5 ^ uVar14;\n      uVar10 = *puVar5 ^ uVar16;\n    } while (((uVar12 + 0xfefefeff & ~uVar12 | uVar10 + 0xfefefeff & ~uVar10) & 0x80808080) == 0);\n  }\n  bVar1 = *(byte *)puVar5;\nLAB_00014348:\n  if ((uVar18 != bVar1) && (uVar19 != bVar1)) {\n    puVar17 = (uint *)((int)puVar5 + (int)puVar17);\n    do {\n      puVar5 = (uint *)((int)puVar5 + 1);\n      if (puVar5 == puVar17) {\n        return (uint *)0x0;\n      }\n    } while ((*(byte *)puVar5 != uVar18) && (*(byte *)puVar5 != uVar19));\n  }\n  return puVar5;\n}\n\n" (function_definition "uint * getndelim2(undefined4 *param_1,uint *param_2,uint *param_3,uint *param_4,uint *param_5,\n                 uint *param_6,int param_7)\n\n{\n  byte bVar1;\n  bool bVar2;\n  bool bVar3;\n  undefined *puVar4;\n  uint *puVar5;\n  uint *puVar6;\n  uint *puVar7;\n  undefined1 *puVar8;\n  uint *puVar9;\n  uint uVar10;\n  byte *pbVar11;\n  uint uVar12;\n  uint *puVar13;\n  uint uVar14;\n  uint *puVar15;\n  uint uVar16;\n  uint *puVar17;\n  uint uVar18;\n  uint uVar19;\n  uint *puVar20;\n  undefined1 *puVar21;\n  int iVar22;\n  uint *puVar23;\n  uint *puVar24;\n  undefined1 *puVar25;\n  uint *local_48;\n  uint *local_30;\n  \n  puVar4 = PTR___stack_chk_guard_0002b2f8;\n  puVar5 = *(uint **)PTR___stack_chk_guard_0002b2f8;\n  puVar25 = (undefined1 *)*param_1;\n  puVar23 = (uint *)*param_2;\n  puVar13 = param_2;\n  puVar15 = param_3;\n  puVar17 = param_4;\n  if (puVar25 == (undefined1 *)0x0) {\n    puVar23 = param_4;\n    if ((uint *)0x40 < param_4) {\n      puVar23 = (uint *)0x40;\n    }\n    puVar25 = (undefined1 *)(*(code *)PTR_malloc_0002b2b4)(puVar23);\n    if (puVar25 != (undefined1 *)0x0) goto LAB_00013ed4;\n    puVar9 = (uint *)0xffffffff;\n  }\n  else {\nLAB_00013ed4:\n    puVar9 = puVar15;\n    if (param_3 <= puVar23) {\n      puVar20 = (uint *)((int)puVar23 - (int)param_3);\n      puVar21 = puVar25 + (int)param_3;\n      if ((puVar20 != (uint *)0x0) || (puVar23 < param_4)) {\n        puVar24 = param_6;\n        if ((param_5 != (uint *)0xffffffff) && (puVar24 = param_5, param_6 == (uint *)0xffffffff)) {\n          param_6 = param_5;\n        }\n        puVar6 = param_3 + -0x20000000;\n        do {\n          puVar13 = (uint *)0xffffffd0;\n          puVar7 = (uint *)freadptr(param_7);\n          puVar8 = puVar25;\n          if (puVar7 == (uint *)0x0) {\n            pbVar11 = *(byte **)(param_7 + 4);\n            if (pbVar11 < *(byte **)(param_7 + 8)) {\n              *(byte **)(param_7 + 4) = pbVar11 + 1;\n              local_48 = (uint *)(uint)*pbVar11;\n            }\n            else {\n              local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);\n              if (local_48 == (uint *)0xffffffff) {\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = puVar24 == local_48 || param_6 == local_48;\n            puVar17 = (uint *)0x2;\n            local_30 = (uint *)0x1;\n          }\n          else if ((puVar24 == (uint *)0xffffffff) ||\n                  (puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0)) {\n            puVar17 = (uint *)((int)local_30 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            local_30 = (uint *)((iVar22 - (int)puVar7) + 1);\n            puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);\n          }\n          bVar2 = puVar20 < (uint *)0x2;\n          if ((puVar20 < puVar17) && (bVar2 = puVar20 < (uint *)0x2, puVar23 < param_4)) {\n            iVar22 = (int)puVar21 - (int)puVar25;\n            puVar15 = param_4;\n            if (puVar23 < (uint *)0x40) {\n              puVar9 = puVar23 + 0x10;\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) {\nLAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (puVar9 < param_4) {\n                puVar15 = puVar9;\n              }\n            }\n            else {\n              puVar9 = (uint *)((int)puVar23 * 2);\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;\nLAB_00014154:\n              if (puVar23 < puVar9) goto LAB_00013f98;\n            }\n            if (((int)puVar15 - (int)param_3 < 0) &&\n               (puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6)) goto LAB_000140b0;\n            puVar20 = (uint *)((int)puVar15 - iVar22);\n            puVar13 = puVar15;\n            puVar9 = puVar15;\n            puVar8 = (undefined1 *)(*(code *)PTR_realloc_0002b2b8)(puVar25);\n            if (puVar8 == (undefined1 *)0x0) goto LAB_000140b0;\n            puVar21 = puVar8 + iVar22;\n            bVar2 = puVar20 < (uint *)0x2;\n            puVar23 = puVar15;\n          }\n          if (!bVar2) {\n            puVar17 = (uint *)((int)puVar20 + -1);\n            if (local_30 <= (uint *)((int)puVar20 + -1)) {\n              puVar17 = local_30;\n            }\n            if (puVar7 == (uint *)0x0) {\n              *puVar21 = (char)local_48;\n            }\n            else {\n              puVar13 = puVar7;\n              puVar15 = puVar17;\n              (*(code *)PTR_memcpy_0002b2fc)(puVar21);\n            }\n            puVar21 = puVar21 + (int)puVar17;\n            puVar20 = (uint *)((int)puVar20 - (int)puVar17);\n          }\n          puVar25 = puVar8;\n          if ((puVar7 != (uint *)0x0) &&\n             (puVar13 = local_30, iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0))\n          goto LAB_000140b0;\n        } while (!bVar3);\n        *puVar21 = 0;\n        *param_1 = puVar8;\n        puVar9 = (uint *)(puVar21 + -(int)(puVar8 + (int)param_3));\n        *param_2 = (uint)puVar23;\n        if (puVar9 == (uint *)0x0) {\n          puVar9 = (uint *)0xffffffff;\n        }\n        goto LAB_000140c0;\n      }\n    }\nLAB_000140b0:\n    puVar15 = puVar9;\n    *param_1 = puVar25;\n    puVar9 = (uint *)0xffffffff;\n    *param_2 = (uint)puVar23;\n  }\nLAB_000140c0:\n  if (puVar5 == *(uint **)puVar4) {\n    return puVar9;\n  }\n  (*(code *)PTR___stack_chk_fail_0002b2e0)();\n  uVar18 = (uint)puVar13 & 0xff;\n  uVar19 = (uint)puVar15 & 0xff;\n  if (uVar18 == uVar19) {\n    puVar5 = (uint *)rpl_memchr();\n    return puVar5;\n  }\n  if ((puVar17 != (uint *)0x0) && (((uint)puVar5 & 3) != 0)) {\n    if (uVar18 == *(byte *)puVar5) {\n      return puVar5;\n    }\n    if (uVar19 == *(byte *)puVar5) {\n      return puVar5;\n    }\n    while( true ) {\n      puVar17 = (uint *)((int)puVar17 - 1);\n      puVar5 = (uint *)((int)puVar5 + 1);\n      if ((puVar17 == (uint *)0x0) || (((uint)puVar5 & 3) == 0)) break;\n      if (*(byte *)puVar5 == uVar18) {\n        return puVar5;\n      }\n      if (*(byte *)puVar5 == uVar19) {\n        return puVar5;\n      }\n    }\n  }\n  uVar14 = ((uint)puVar13 & 0xff) << 8 | (uint)puVar13 & 0xff;\n  uVar16 = ((uint)puVar15 & 0xff) << 8 | (uint)puVar15 & 0xff;\n  uVar14 = uVar14 << 0x10 | uVar14;\n  uVar16 = uVar16 << 0x10 | uVar16;\n  if (puVar17 < (uint *)0x4) {\nLAB_0001433c:\n    if (puVar17 == (uint *)0x0) {\n      return (uint *)0x0;\n    }\n  }\n  else {\n    uVar10 = uVar14 ^ *puVar5;\n    uVar12 = uVar16 ^ *puVar5;\n    if (((~uVar10 & uVar10 + 0xfefefeff | ~uVar12 & uVar12 + 0xfefefeff) & 0x80808080) != 0) {\n      bVar1 = *(byte *)puVar5;\n      goto LAB_00014348;\n    }\n    do {\n      puVar17 = puVar17 + -1;\n      puVar5 = puVar5 + 1;\n      if (puVar17 < (uint *)0x4) goto LAB_0001433c;\n      uVar12 = *puVar5 ^ uVar14;\n      uVar10 = *puVar5 ^ uVar16;\n    } while (((uVar12 + 0xfefefeff & ~uVar12 | uVar10 + 0xfefefeff & ~uVar10) & 0x80808080) == 0);\n  }\n  bVar1 = *(byte *)puVar5;\nLAB_00014348:\n  if ((uVar18 != bVar1) && (uVar19 != bVar1)) {\n    puVar17 = (uint *)((int)puVar5 + (int)puVar17);\n    do {\n      puVar5 = (uint *)((int)puVar5 + 1);\n      if (puVar5 == puVar17) {\n        return (uint *)0x0;\n      }\n    } while ((*(byte *)puVar5 != uVar18) && (*(byte *)puVar5 != uVar19));\n  }\n  return puVar5;\n}" type_identifier (pointer_declarator "* getndelim2(undefined4 *param_1,uint *param_2,uint *param_3,uint *param_4,uint *param_5,\n                 uint *param_6,int param_7)" * (function_declarator "getndelim2(undefined4 *param_1,uint *param_2,uint *param_3,uint *param_4,uint *param_5,\n                 uint *param_6,int param_7)" identifier (parameter_list "(undefined4 *param_1,uint *param_2,uint *param_3,uint *param_4,uint *param_5,\n                 uint *param_6,int param_7)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "uint *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "uint *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "uint *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "uint *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) , (parameter_declaration "int param_7" primitive_type identifier) )))) (compound_statement "{\n  byte bVar1;\n  bool bVar2;\n  bool bVar3;\n  undefined *puVar4;\n  uint *puVar5;\n  uint *puVar6;\n  uint *puVar7;\n  undefined1 *puVar8;\n  uint *puVar9;\n  uint uVar10;\n  byte *pbVar11;\n  uint uVar12;\n  uint *puVar13;\n  uint uVar14;\n  uint *puVar15;\n  uint uVar16;\n  uint *puVar17;\n  uint uVar18;\n  uint uVar19;\n  uint *puVar20;\n  undefined1 *puVar21;\n  int iVar22;\n  uint *puVar23;\n  uint *puVar24;\n  undefined1 *puVar25;\n  uint *local_48;\n  uint *local_30;\n  \n  puVar4 = PTR___stack_chk_guard_0002b2f8;\n  puVar5 = *(uint **)PTR___stack_chk_guard_0002b2f8;\n  puVar25 = (undefined1 *)*param_1;\n  puVar23 = (uint *)*param_2;\n  puVar13 = param_2;\n  puVar15 = param_3;\n  puVar17 = param_4;\n  if (puVar25 == (undefined1 *)0x0) {\n    puVar23 = param_4;\n    if ((uint *)0x40 < param_4) {\n      puVar23 = (uint *)0x40;\n    }\n    puVar25 = (undefined1 *)(*(code *)PTR_malloc_0002b2b4)(puVar23);\n    if (puVar25 != (undefined1 *)0x0) goto LAB_00013ed4;\n    puVar9 = (uint *)0xffffffff;\n  }\n  else {\nLAB_00013ed4:\n    puVar9 = puVar15;\n    if (param_3 <= puVar23) {\n      puVar20 = (uint *)((int)puVar23 - (int)param_3);\n      puVar21 = puVar25 + (int)param_3;\n      if ((puVar20 != (uint *)0x0) || (puVar23 < param_4)) {\n        puVar24 = param_6;\n        if ((param_5 != (uint *)0xffffffff) && (puVar24 = param_5, param_6 == (uint *)0xffffffff)) {\n          param_6 = param_5;\n        }\n        puVar6 = param_3 + -0x20000000;\n        do {\n          puVar13 = (uint *)0xffffffd0;\n          puVar7 = (uint *)freadptr(param_7);\n          puVar8 = puVar25;\n          if (puVar7 == (uint *)0x0) {\n            pbVar11 = *(byte **)(param_7 + 4);\n            if (pbVar11 < *(byte **)(param_7 + 8)) {\n              *(byte **)(param_7 + 4) = pbVar11 + 1;\n              local_48 = (uint *)(uint)*pbVar11;\n            }\n            else {\n              local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);\n              if (local_48 == (uint *)0xffffffff) {\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = puVar24 == local_48 || param_6 == local_48;\n            puVar17 = (uint *)0x2;\n            local_30 = (uint *)0x1;\n          }\n          else if ((puVar24 == (uint *)0xffffffff) ||\n                  (puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0)) {\n            puVar17 = (uint *)((int)local_30 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            local_30 = (uint *)((iVar22 - (int)puVar7) + 1);\n            puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);\n          }\n          bVar2 = puVar20 < (uint *)0x2;\n          if ((puVar20 < puVar17) && (bVar2 = puVar20 < (uint *)0x2, puVar23 < param_4)) {\n            iVar22 = (int)puVar21 - (int)puVar25;\n            puVar15 = param_4;\n            if (puVar23 < (uint *)0x40) {\n              puVar9 = puVar23 + 0x10;\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) {\nLAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (puVar9 < param_4) {\n                puVar15 = puVar9;\n              }\n            }\n            else {\n              puVar9 = (uint *)((int)puVar23 * 2);\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;\nLAB_00014154:\n              if (puVar23 < puVar9) goto LAB_00013f98;\n            }\n            if (((int)puVar15 - (int)param_3 < 0) &&\n               (puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6)) goto LAB_000140b0;\n            puVar20 = (uint *)((int)puVar15 - iVar22);\n            puVar13 = puVar15;\n            puVar9 = puVar15;\n            puVar8 = (undefined1 *)(*(code *)PTR_realloc_0002b2b8)(puVar25);\n            if (puVar8 == (undefined1 *)0x0) goto LAB_000140b0;\n            puVar21 = puVar8 + iVar22;\n            bVar2 = puVar20 < (uint *)0x2;\n            puVar23 = puVar15;\n          }\n          if (!bVar2) {\n            puVar17 = (uint *)((int)puVar20 + -1);\n            if (local_30 <= (uint *)((int)puVar20 + -1)) {\n              puVar17 = local_30;\n            }\n            if (puVar7 == (uint *)0x0) {\n              *puVar21 = (char)local_48;\n            }\n            else {\n              puVar13 = puVar7;\n              puVar15 = puVar17;\n              (*(code *)PTR_memcpy_0002b2fc)(puVar21);\n            }\n            puVar21 = puVar21 + (int)puVar17;\n            puVar20 = (uint *)((int)puVar20 - (int)puVar17);\n          }\n          puVar25 = puVar8;\n          if ((puVar7 != (uint *)0x0) &&\n             (puVar13 = local_30, iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0))\n          goto LAB_000140b0;\n        } while (!bVar3);\n        *puVar21 = 0;\n        *param_1 = puVar8;\n        puVar9 = (uint *)(puVar21 + -(int)(puVar8 + (int)param_3));\n        *param_2 = (uint)puVar23;\n        if (puVar9 == (uint *)0x0) {\n          puVar9 = (uint *)0xffffffff;\n        }\n        goto LAB_000140c0;\n      }\n    }\nLAB_000140b0:\n    puVar15 = puVar9;\n    *param_1 = puVar25;\n    puVar9 = (uint *)0xffffffff;\n    *param_2 = (uint)puVar23;\n  }\nLAB_000140c0:\n  if (puVar5 == *(uint **)puVar4) {\n    return puVar9;\n  }\n  (*(code *)PTR___stack_chk_fail_0002b2e0)();\n  uVar18 = (uint)puVar13 & 0xff;\n  uVar19 = (uint)puVar15 & 0xff;\n  if (uVar18 == uVar19) {\n    puVar5 = (uint *)rpl_memchr();\n    return puVar5;\n  }\n  if ((puVar17 != (uint *)0x0) && (((uint)puVar5 & 3) != 0)) {\n    if (uVar18 == *(byte *)puVar5) {\n      return puVar5;\n    }\n    if (uVar19 == *(byte *)puVar5) {\n      return puVar5;\n    }\n    while( true ) {\n      puVar17 = (uint *)((int)puVar17 - 1);\n      puVar5 = (uint *)((int)puVar5 + 1);\n      if ((puVar17 == (uint *)0x0) || (((uint)puVar5 & 3) == 0)) break;\n      if (*(byte *)puVar5 == uVar18) {\n        return puVar5;\n      }\n      if (*(byte *)puVar5 == uVar19) {\n        return puVar5;\n      }\n    }\n  }\n  uVar14 = ((uint)puVar13 & 0xff) << 8 | (uint)puVar13 & 0xff;\n  uVar16 = ((uint)puVar15 & 0xff) << 8 | (uint)puVar15 & 0xff;\n  uVar14 = uVar14 << 0x10 | uVar14;\n  uVar16 = uVar16 << 0x10 | uVar16;\n  if (puVar17 < (uint *)0x4) {\nLAB_0001433c:\n    if (puVar17 == (uint *)0x0) {\n      return (uint *)0x0;\n    }\n  }\n  else {\n    uVar10 = uVar14 ^ *puVar5;\n    uVar12 = uVar16 ^ *puVar5;\n    if (((~uVar10 & uVar10 + 0xfefefeff | ~uVar12 & uVar12 + 0xfefefeff) & 0x80808080) != 0) {\n      bVar1 = *(byte *)puVar5;\n      goto LAB_00014348;\n    }\n    do {\n      puVar17 = puVar17 + -1;\n      puVar5 = puVar5 + 1;\n      if (puVar17 < (uint *)0x4) goto LAB_0001433c;\n      uVar12 = *puVar5 ^ uVar14;\n      uVar10 = *puVar5 ^ uVar16;\n    } while (((uVar12 + 0xfefefeff & ~uVar12 | uVar10 + 0xfefefeff & ~uVar10) & 0x80808080) == 0);\n  }\n  bVar1 = *(byte *)puVar5;\nLAB_00014348:\n  if ((uVar18 != bVar1) && (uVar19 != bVar1)) {\n    puVar17 = (uint *)((int)puVar5 + (int)puVar17);\n    do {\n      puVar5 = (uint *)((int)puVar5 + 1);\n      if (puVar5 == puVar17) {\n        return (uint *)0x0;\n      }\n    } while ((*(byte *)puVar5 != uVar18) && (*(byte *)puVar5 != uVar19));\n  }\n  return puVar5;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "uint *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "uint *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined1 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "uint *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "uint *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "uint *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "uint *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "undefined1 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "uint *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "uint *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "undefined1 *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "uint *local_48;" type_identifier (pointer_declarator "*local_48" * identifier) ;) (declaration "uint *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (expression_statement "puVar4 = PTR___stack_chk_guard_0002b2f8;" (assignment_expression "puVar4 = PTR___stack_chk_guard_0002b2f8" identifier = identifier) ;) (expression_statement "puVar5 = *(uint **)PTR___stack_chk_guard_0002b2f8;" (assignment_expression "puVar5 = *(uint **)PTR___stack_chk_guard_0002b2f8" identifier = (pointer_expression "*(uint **)PTR___stack_chk_guard_0002b2f8" * (cast_expression "(uint **)PTR___stack_chk_guard_0002b2f8" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "puVar25 = (undefined1 *)*param_1;" (assignment_expression "puVar25 = (undefined1 *)*param_1" identifier = (cast_expression "(undefined1 *)*param_1" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "puVar23 = (uint *)*param_2;" (assignment_expression "puVar23 = (uint *)*param_2" identifier = (cast_expression "(uint *)*param_2" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (expression_statement "puVar13 = param_2;" (assignment_expression "puVar13 = param_2" identifier = identifier) ;) (expression_statement "puVar15 = param_3;" (assignment_expression "puVar15 = param_3" identifier = identifier) ;) (expression_statement "puVar17 = param_4;" (assignment_expression "puVar17 = param_4" identifier = identifier) ;) (if_statement "if (puVar25 == (undefined1 *)0x0) {\n    puVar23 = param_4;\n    if ((uint *)0x40 < param_4) {\n      puVar23 = (uint *)0x40;\n    }\n    puVar25 = (undefined1 *)(*(code *)PTR_malloc_0002b2b4)(puVar23);\n    if (puVar25 != (undefined1 *)0x0) goto LAB_00013ed4;\n    puVar9 = (uint *)0xffffffff;\n  }\n  else {\nLAB_00013ed4:\n    puVar9 = puVar15;\n    if (param_3 <= puVar23) {\n      puVar20 = (uint *)((int)puVar23 - (int)param_3);\n      puVar21 = puVar25 + (int)param_3;\n      if ((puVar20 != (uint *)0x0) || (puVar23 < param_4)) {\n        puVar24 = param_6;\n        if ((param_5 != (uint *)0xffffffff) && (puVar24 = param_5, param_6 == (uint *)0xffffffff)) {\n          param_6 = param_5;\n        }\n        puVar6 = param_3 + -0x20000000;\n        do {\n          puVar13 = (uint *)0xffffffd0;\n          puVar7 = (uint *)freadptr(param_7);\n          puVar8 = puVar25;\n          if (puVar7 == (uint *)0x0) {\n            pbVar11 = *(byte **)(param_7 + 4);\n            if (pbVar11 < *(byte **)(param_7 + 8)) {\n              *(byte **)(param_7 + 4) = pbVar11 + 1;\n              local_48 = (uint *)(uint)*pbVar11;\n            }\n            else {\n              local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);\n              if (local_48 == (uint *)0xffffffff) {\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = puVar24 == local_48 || param_6 == local_48;\n            puVar17 = (uint *)0x2;\n            local_30 = (uint *)0x1;\n          }\n          else if ((puVar24 == (uint *)0xffffffff) ||\n                  (puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0)) {\n            puVar17 = (uint *)((int)local_30 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            local_30 = (uint *)((iVar22 - (int)puVar7) + 1);\n            puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);\n          }\n          bVar2 = puVar20 < (uint *)0x2;\n          if ((puVar20 < puVar17) && (bVar2 = puVar20 < (uint *)0x2, puVar23 < param_4)) {\n            iVar22 = (int)puVar21 - (int)puVar25;\n            puVar15 = param_4;\n            if (puVar23 < (uint *)0x40) {\n              puVar9 = puVar23 + 0x10;\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) {\nLAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (puVar9 < param_4) {\n                puVar15 = puVar9;\n              }\n            }\n            else {\n              puVar9 = (uint *)((int)puVar23 * 2);\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;\nLAB_00014154:\n              if (puVar23 < puVar9) goto LAB_00013f98;\n            }\n            if (((int)puVar15 - (int)param_3 < 0) &&\n               (puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6)) goto LAB_000140b0;\n            puVar20 = (uint *)((int)puVar15 - iVar22);\n            puVar13 = puVar15;\n            puVar9 = puVar15;\n            puVar8 = (undefined1 *)(*(code *)PTR_realloc_0002b2b8)(puVar25);\n            if (puVar8 == (undefined1 *)0x0) goto LAB_000140b0;\n            puVar21 = puVar8 + iVar22;\n            bVar2 = puVar20 < (uint *)0x2;\n            puVar23 = puVar15;\n          }\n          if (!bVar2) {\n            puVar17 = (uint *)((int)puVar20 + -1);\n            if (local_30 <= (uint *)((int)puVar20 + -1)) {\n              puVar17 = local_30;\n            }\n            if (puVar7 == (uint *)0x0) {\n              *puVar21 = (char)local_48;\n            }\n            else {\n              puVar13 = puVar7;\n              puVar15 = puVar17;\n              (*(code *)PTR_memcpy_0002b2fc)(puVar21);\n            }\n            puVar21 = puVar21 + (int)puVar17;\n            puVar20 = (uint *)((int)puVar20 - (int)puVar17);\n          }\n          puVar25 = puVar8;\n          if ((puVar7 != (uint *)0x0) &&\n             (puVar13 = local_30, iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0))\n          goto LAB_000140b0;\n        } while (!bVar3);\n        *puVar21 = 0;\n        *param_1 = puVar8;\n        puVar9 = (uint *)(puVar21 + -(int)(puVar8 + (int)param_3));\n        *param_2 = (uint)puVar23;\n        if (puVar9 == (uint *)0x0) {\n          puVar9 = (uint *)0xffffffff;\n        }\n        goto LAB_000140c0;\n      }\n    }\nLAB_000140b0:\n    puVar15 = puVar9;\n    *param_1 = puVar25;\n    puVar9 = (uint *)0xffffffff;\n    *param_2 = (uint)puVar23;\n  }" if (parenthesized_expression "(puVar25 == (undefined1 *)0x0)" ( (binary_expression "puVar25 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar23 = param_4;\n    if ((uint *)0x40 < param_4) {\n      puVar23 = (uint *)0x40;\n    }\n    puVar25 = (undefined1 *)(*(code *)PTR_malloc_0002b2b4)(puVar23);\n    if (puVar25 != (undefined1 *)0x0) goto LAB_00013ed4;\n    puVar9 = (uint *)0xffffffff;\n  }" { (expression_statement "puVar23 = param_4;" (assignment_expression "puVar23 = param_4" identifier = identifier) ;) (if_statement "if ((uint *)0x40 < param_4) {\n      puVar23 = (uint *)0x40;\n    }" if (parenthesized_expression "((uint *)0x40 < param_4)" ( (binary_expression "(uint *)0x40 < param_4" (cast_expression "(uint *)0x40" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) (compound_statement "{\n      puVar23 = (uint *)0x40;\n    }" { (expression_statement "puVar23 = (uint *)0x40;" (assignment_expression "puVar23 = (uint *)0x40" identifier = (cast_expression "(uint *)0x40" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "puVar25 = (undefined1 *)(*(code *)PTR_malloc_0002b2b4)(puVar23);" (assignment_expression "puVar25 = (undefined1 *)(*(code *)PTR_malloc_0002b2b4)(puVar23)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR_malloc_0002b2b4)(puVar23)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_0002b2b4)(puVar23)" (parenthesized_expression "(*(code *)PTR_malloc_0002b2b4)" ( (pointer_expression "*(code *)PTR_malloc_0002b2b4" * (cast_expression "(code *)PTR_malloc_0002b2b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar23)" ( identifier ))))) ;) (if_statement "if (puVar25 != (undefined1 *)0x0) goto LAB_00013ed4;" if (parenthesized_expression "(puVar25 != (undefined1 *)0x0)" ( (binary_expression "puVar25 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00013ed4;" goto statement_identifier ;)) (expression_statement "puVar9 = (uint *)0xffffffff;" (assignment_expression "puVar9 = (uint *)0xffffffff" identifier = (cast_expression "(uint *)0xffffffff" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\nLAB_00013ed4:\n    puVar9 = puVar15;\n    if (param_3 <= puVar23) {\n      puVar20 = (uint *)((int)puVar23 - (int)param_3);\n      puVar21 = puVar25 + (int)param_3;\n      if ((puVar20 != (uint *)0x0) || (puVar23 < param_4)) {\n        puVar24 = param_6;\n        if ((param_5 != (uint *)0xffffffff) && (puVar24 = param_5, param_6 == (uint *)0xffffffff)) {\n          param_6 = param_5;\n        }\n        puVar6 = param_3 + -0x20000000;\n        do {\n          puVar13 = (uint *)0xffffffd0;\n          puVar7 = (uint *)freadptr(param_7);\n          puVar8 = puVar25;\n          if (puVar7 == (uint *)0x0) {\n            pbVar11 = *(byte **)(param_7 + 4);\n            if (pbVar11 < *(byte **)(param_7 + 8)) {\n              *(byte **)(param_7 + 4) = pbVar11 + 1;\n              local_48 = (uint *)(uint)*pbVar11;\n            }\n            else {\n              local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);\n              if (local_48 == (uint *)0xffffffff) {\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = puVar24 == local_48 || param_6 == local_48;\n            puVar17 = (uint *)0x2;\n            local_30 = (uint *)0x1;\n          }\n          else if ((puVar24 == (uint *)0xffffffff) ||\n                  (puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0)) {\n            puVar17 = (uint *)((int)local_30 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            local_30 = (uint *)((iVar22 - (int)puVar7) + 1);\n            puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);\n          }\n          bVar2 = puVar20 < (uint *)0x2;\n          if ((puVar20 < puVar17) && (bVar2 = puVar20 < (uint *)0x2, puVar23 < param_4)) {\n            iVar22 = (int)puVar21 - (int)puVar25;\n            puVar15 = param_4;\n            if (puVar23 < (uint *)0x40) {\n              puVar9 = puVar23 + 0x10;\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) {\nLAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (puVar9 < param_4) {\n                puVar15 = puVar9;\n              }\n            }\n            else {\n              puVar9 = (uint *)((int)puVar23 * 2);\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;\nLAB_00014154:\n              if (puVar23 < puVar9) goto LAB_00013f98;\n            }\n            if (((int)puVar15 - (int)param_3 < 0) &&\n               (puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6)) goto LAB_000140b0;\n            puVar20 = (uint *)((int)puVar15 - iVar22);\n            puVar13 = puVar15;\n            puVar9 = puVar15;\n            puVar8 = (undefined1 *)(*(code *)PTR_realloc_0002b2b8)(puVar25);\n            if (puVar8 == (undefined1 *)0x0) goto LAB_000140b0;\n            puVar21 = puVar8 + iVar22;\n            bVar2 = puVar20 < (uint *)0x2;\n            puVar23 = puVar15;\n          }\n          if (!bVar2) {\n            puVar17 = (uint *)((int)puVar20 + -1);\n            if (local_30 <= (uint *)((int)puVar20 + -1)) {\n              puVar17 = local_30;\n            }\n            if (puVar7 == (uint *)0x0) {\n              *puVar21 = (char)local_48;\n            }\n            else {\n              puVar13 = puVar7;\n              puVar15 = puVar17;\n              (*(code *)PTR_memcpy_0002b2fc)(puVar21);\n            }\n            puVar21 = puVar21 + (int)puVar17;\n            puVar20 = (uint *)((int)puVar20 - (int)puVar17);\n          }\n          puVar25 = puVar8;\n          if ((puVar7 != (uint *)0x0) &&\n             (puVar13 = local_30, iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0))\n          goto LAB_000140b0;\n        } while (!bVar3);\n        *puVar21 = 0;\n        *param_1 = puVar8;\n        puVar9 = (uint *)(puVar21 + -(int)(puVar8 + (int)param_3));\n        *param_2 = (uint)puVar23;\n        if (puVar9 == (uint *)0x0) {\n          puVar9 = (uint *)0xffffffff;\n        }\n        goto LAB_000140c0;\n      }\n    }\nLAB_000140b0:\n    puVar15 = puVar9;\n    *param_1 = puVar25;\n    puVar9 = (uint *)0xffffffff;\n    *param_2 = (uint)puVar23;\n  }" else (compound_statement "{\nLAB_00013ed4:\n    puVar9 = puVar15;\n    if (param_3 <= puVar23) {\n      puVar20 = (uint *)((int)puVar23 - (int)param_3);\n      puVar21 = puVar25 + (int)param_3;\n      if ((puVar20 != (uint *)0x0) || (puVar23 < param_4)) {\n        puVar24 = param_6;\n        if ((param_5 != (uint *)0xffffffff) && (puVar24 = param_5, param_6 == (uint *)0xffffffff)) {\n          param_6 = param_5;\n        }\n        puVar6 = param_3 + -0x20000000;\n        do {\n          puVar13 = (uint *)0xffffffd0;\n          puVar7 = (uint *)freadptr(param_7);\n          puVar8 = puVar25;\n          if (puVar7 == (uint *)0x0) {\n            pbVar11 = *(byte **)(param_7 + 4);\n            if (pbVar11 < *(byte **)(param_7 + 8)) {\n              *(byte **)(param_7 + 4) = pbVar11 + 1;\n              local_48 = (uint *)(uint)*pbVar11;\n            }\n            else {\n              local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);\n              if (local_48 == (uint *)0xffffffff) {\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = puVar24 == local_48 || param_6 == local_48;\n            puVar17 = (uint *)0x2;\n            local_30 = (uint *)0x1;\n          }\n          else if ((puVar24 == (uint *)0xffffffff) ||\n                  (puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0)) {\n            puVar17 = (uint *)((int)local_30 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            local_30 = (uint *)((iVar22 - (int)puVar7) + 1);\n            puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);\n          }\n          bVar2 = puVar20 < (uint *)0x2;\n          if ((puVar20 < puVar17) && (bVar2 = puVar20 < (uint *)0x2, puVar23 < param_4)) {\n            iVar22 = (int)puVar21 - (int)puVar25;\n            puVar15 = param_4;\n            if (puVar23 < (uint *)0x40) {\n              puVar9 = puVar23 + 0x10;\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) {\nLAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (puVar9 < param_4) {\n                puVar15 = puVar9;\n              }\n            }\n            else {\n              puVar9 = (uint *)((int)puVar23 * 2);\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;\nLAB_00014154:\n              if (puVar23 < puVar9) goto LAB_00013f98;\n            }\n            if (((int)puVar15 - (int)param_3 < 0) &&\n               (puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6)) goto LAB_000140b0;\n            puVar20 = (uint *)((int)puVar15 - iVar22);\n            puVar13 = puVar15;\n            puVar9 = puVar15;\n            puVar8 = (undefined1 *)(*(code *)PTR_realloc_0002b2b8)(puVar25);\n            if (puVar8 == (undefined1 *)0x0) goto LAB_000140b0;\n            puVar21 = puVar8 + iVar22;\n            bVar2 = puVar20 < (uint *)0x2;\n            puVar23 = puVar15;\n          }\n          if (!bVar2) {\n            puVar17 = (uint *)((int)puVar20 + -1);\n            if (local_30 <= (uint *)((int)puVar20 + -1)) {\n              puVar17 = local_30;\n            }\n            if (puVar7 == (uint *)0x0) {\n              *puVar21 = (char)local_48;\n            }\n            else {\n              puVar13 = puVar7;\n              puVar15 = puVar17;\n              (*(code *)PTR_memcpy_0002b2fc)(puVar21);\n            }\n            puVar21 = puVar21 + (int)puVar17;\n            puVar20 = (uint *)((int)puVar20 - (int)puVar17);\n          }\n          puVar25 = puVar8;\n          if ((puVar7 != (uint *)0x0) &&\n             (puVar13 = local_30, iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0))\n          goto LAB_000140b0;\n        } while (!bVar3);\n        *puVar21 = 0;\n        *param_1 = puVar8;\n        puVar9 = (uint *)(puVar21 + -(int)(puVar8 + (int)param_3));\n        *param_2 = (uint)puVar23;\n        if (puVar9 == (uint *)0x0) {\n          puVar9 = (uint *)0xffffffff;\n        }\n        goto LAB_000140c0;\n      }\n    }\nLAB_000140b0:\n    puVar15 = puVar9;\n    *param_1 = puVar25;\n    puVar9 = (uint *)0xffffffff;\n    *param_2 = (uint)puVar23;\n  }" { (labeled_statement "LAB_00013ed4:\n    puVar9 = puVar15;" statement_identifier : (expression_statement "puVar9 = puVar15;" (assignment_expression "puVar9 = puVar15" identifier = identifier) ;)) (if_statement "if (param_3 <= puVar23) {\n      puVar20 = (uint *)((int)puVar23 - (int)param_3);\n      puVar21 = puVar25 + (int)param_3;\n      if ((puVar20 != (uint *)0x0) || (puVar23 < param_4)) {\n        puVar24 = param_6;\n        if ((param_5 != (uint *)0xffffffff) && (puVar24 = param_5, param_6 == (uint *)0xffffffff)) {\n          param_6 = param_5;\n        }\n        puVar6 = param_3 + -0x20000000;\n        do {\n          puVar13 = (uint *)0xffffffd0;\n          puVar7 = (uint *)freadptr(param_7);\n          puVar8 = puVar25;\n          if (puVar7 == (uint *)0x0) {\n            pbVar11 = *(byte **)(param_7 + 4);\n            if (pbVar11 < *(byte **)(param_7 + 8)) {\n              *(byte **)(param_7 + 4) = pbVar11 + 1;\n              local_48 = (uint *)(uint)*pbVar11;\n            }\n            else {\n              local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);\n              if (local_48 == (uint *)0xffffffff) {\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = puVar24 == local_48 || param_6 == local_48;\n            puVar17 = (uint *)0x2;\n            local_30 = (uint *)0x1;\n          }\n          else if ((puVar24 == (uint *)0xffffffff) ||\n                  (puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0)) {\n            puVar17 = (uint *)((int)local_30 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            local_30 = (uint *)((iVar22 - (int)puVar7) + 1);\n            puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);\n          }\n          bVar2 = puVar20 < (uint *)0x2;\n          if ((puVar20 < puVar17) && (bVar2 = puVar20 < (uint *)0x2, puVar23 < param_4)) {\n            iVar22 = (int)puVar21 - (int)puVar25;\n            puVar15 = param_4;\n            if (puVar23 < (uint *)0x40) {\n              puVar9 = puVar23 + 0x10;\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) {\nLAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (puVar9 < param_4) {\n                puVar15 = puVar9;\n              }\n            }\n            else {\n              puVar9 = (uint *)((int)puVar23 * 2);\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;\nLAB_00014154:\n              if (puVar23 < puVar9) goto LAB_00013f98;\n            }\n            if (((int)puVar15 - (int)param_3 < 0) &&\n               (puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6)) goto LAB_000140b0;\n            puVar20 = (uint *)((int)puVar15 - iVar22);\n            puVar13 = puVar15;\n            puVar9 = puVar15;\n            puVar8 = (undefined1 *)(*(code *)PTR_realloc_0002b2b8)(puVar25);\n            if (puVar8 == (undefined1 *)0x0) goto LAB_000140b0;\n            puVar21 = puVar8 + iVar22;\n            bVar2 = puVar20 < (uint *)0x2;\n            puVar23 = puVar15;\n          }\n          if (!bVar2) {\n            puVar17 = (uint *)((int)puVar20 + -1);\n            if (local_30 <= (uint *)((int)puVar20 + -1)) {\n              puVar17 = local_30;\n            }\n            if (puVar7 == (uint *)0x0) {\n              *puVar21 = (char)local_48;\n            }\n            else {\n              puVar13 = puVar7;\n              puVar15 = puVar17;\n              (*(code *)PTR_memcpy_0002b2fc)(puVar21);\n            }\n            puVar21 = puVar21 + (int)puVar17;\n            puVar20 = (uint *)((int)puVar20 - (int)puVar17);\n          }\n          puVar25 = puVar8;\n          if ((puVar7 != (uint *)0x0) &&\n             (puVar13 = local_30, iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0))\n          goto LAB_000140b0;\n        } while (!bVar3);\n        *puVar21 = 0;\n        *param_1 = puVar8;\n        puVar9 = (uint *)(puVar21 + -(int)(puVar8 + (int)param_3));\n        *param_2 = (uint)puVar23;\n        if (puVar9 == (uint *)0x0) {\n          puVar9 = (uint *)0xffffffff;\n        }\n        goto LAB_000140c0;\n      }\n    }" if (parenthesized_expression "(param_3 <= puVar23)" ( (binary_expression "param_3 <= puVar23" identifier <= identifier) )) (compound_statement "{\n      puVar20 = (uint *)((int)puVar23 - (int)param_3);\n      puVar21 = puVar25 + (int)param_3;\n      if ((puVar20 != (uint *)0x0) || (puVar23 < param_4)) {\n        puVar24 = param_6;\n        if ((param_5 != (uint *)0xffffffff) && (puVar24 = param_5, param_6 == (uint *)0xffffffff)) {\n          param_6 = param_5;\n        }\n        puVar6 = param_3 + -0x20000000;\n        do {\n          puVar13 = (uint *)0xffffffd0;\n          puVar7 = (uint *)freadptr(param_7);\n          puVar8 = puVar25;\n          if (puVar7 == (uint *)0x0) {\n            pbVar11 = *(byte **)(param_7 + 4);\n            if (pbVar11 < *(byte **)(param_7 + 8)) {\n              *(byte **)(param_7 + 4) = pbVar11 + 1;\n              local_48 = (uint *)(uint)*pbVar11;\n            }\n            else {\n              local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);\n              if (local_48 == (uint *)0xffffffff) {\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = puVar24 == local_48 || param_6 == local_48;\n            puVar17 = (uint *)0x2;\n            local_30 = (uint *)0x1;\n          }\n          else if ((puVar24 == (uint *)0xffffffff) ||\n                  (puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0)) {\n            puVar17 = (uint *)((int)local_30 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            local_30 = (uint *)((iVar22 - (int)puVar7) + 1);\n            puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);\n          }\n          bVar2 = puVar20 < (uint *)0x2;\n          if ((puVar20 < puVar17) && (bVar2 = puVar20 < (uint *)0x2, puVar23 < param_4)) {\n            iVar22 = (int)puVar21 - (int)puVar25;\n            puVar15 = param_4;\n            if (puVar23 < (uint *)0x40) {\n              puVar9 = puVar23 + 0x10;\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) {\nLAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (puVar9 < param_4) {\n                puVar15 = puVar9;\n              }\n            }\n            else {\n              puVar9 = (uint *)((int)puVar23 * 2);\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;\nLAB_00014154:\n              if (puVar23 < puVar9) goto LAB_00013f98;\n            }\n            if (((int)puVar15 - (int)param_3 < 0) &&\n               (puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6)) goto LAB_000140b0;\n            puVar20 = (uint *)((int)puVar15 - iVar22);\n            puVar13 = puVar15;\n            puVar9 = puVar15;\n            puVar8 = (undefined1 *)(*(code *)PTR_realloc_0002b2b8)(puVar25);\n            if (puVar8 == (undefined1 *)0x0) goto LAB_000140b0;\n            puVar21 = puVar8 + iVar22;\n            bVar2 = puVar20 < (uint *)0x2;\n            puVar23 = puVar15;\n          }\n          if (!bVar2) {\n            puVar17 = (uint *)((int)puVar20 + -1);\n            if (local_30 <= (uint *)((int)puVar20 + -1)) {\n              puVar17 = local_30;\n            }\n            if (puVar7 == (uint *)0x0) {\n              *puVar21 = (char)local_48;\n            }\n            else {\n              puVar13 = puVar7;\n              puVar15 = puVar17;\n              (*(code *)PTR_memcpy_0002b2fc)(puVar21);\n            }\n            puVar21 = puVar21 + (int)puVar17;\n            puVar20 = (uint *)((int)puVar20 - (int)puVar17);\n          }\n          puVar25 = puVar8;\n          if ((puVar7 != (uint *)0x0) &&\n             (puVar13 = local_30, iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0))\n          goto LAB_000140b0;\n        } while (!bVar3);\n        *puVar21 = 0;\n        *param_1 = puVar8;\n        puVar9 = (uint *)(puVar21 + -(int)(puVar8 + (int)param_3));\n        *param_2 = (uint)puVar23;\n        if (puVar9 == (uint *)0x0) {\n          puVar9 = (uint *)0xffffffff;\n        }\n        goto LAB_000140c0;\n      }\n    }" { (expression_statement "puVar20 = (uint *)((int)puVar23 - (int)param_3);" (assignment_expression "puVar20 = (uint *)((int)puVar23 - (int)param_3)" identifier = (cast_expression "(uint *)((int)puVar23 - (int)param_3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 - (int)param_3)" ( (binary_expression "(int)puVar23 - (int)param_3" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "puVar21 = puVar25 + (int)param_3;" (assignment_expression "puVar21 = puVar25 + (int)param_3" identifier = (binary_expression "puVar25 + (int)param_3" identifier + (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((puVar20 != (uint *)0x0) || (puVar23 < param_4)) {\n        puVar24 = param_6;\n        if ((param_5 != (uint *)0xffffffff) && (puVar24 = param_5, param_6 == (uint *)0xffffffff)) {\n          param_6 = param_5;\n        }\n        puVar6 = param_3 + -0x20000000;\n        do {\n          puVar13 = (uint *)0xffffffd0;\n          puVar7 = (uint *)freadptr(param_7);\n          puVar8 = puVar25;\n          if (puVar7 == (uint *)0x0) {\n            pbVar11 = *(byte **)(param_7 + 4);\n            if (pbVar11 < *(byte **)(param_7 + 8)) {\n              *(byte **)(param_7 + 4) = pbVar11 + 1;\n              local_48 = (uint *)(uint)*pbVar11;\n            }\n            else {\n              local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);\n              if (local_48 == (uint *)0xffffffff) {\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = puVar24 == local_48 || param_6 == local_48;\n            puVar17 = (uint *)0x2;\n            local_30 = (uint *)0x1;\n          }\n          else if ((puVar24 == (uint *)0xffffffff) ||\n                  (puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0)) {\n            puVar17 = (uint *)((int)local_30 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            local_30 = (uint *)((iVar22 - (int)puVar7) + 1);\n            puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);\n          }\n          bVar2 = puVar20 < (uint *)0x2;\n          if ((puVar20 < puVar17) && (bVar2 = puVar20 < (uint *)0x2, puVar23 < param_4)) {\n            iVar22 = (int)puVar21 - (int)puVar25;\n            puVar15 = param_4;\n            if (puVar23 < (uint *)0x40) {\n              puVar9 = puVar23 + 0x10;\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) {\nLAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (puVar9 < param_4) {\n                puVar15 = puVar9;\n              }\n            }\n            else {\n              puVar9 = (uint *)((int)puVar23 * 2);\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;\nLAB_00014154:\n              if (puVar23 < puVar9) goto LAB_00013f98;\n            }\n            if (((int)puVar15 - (int)param_3 < 0) &&\n               (puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6)) goto LAB_000140b0;\n            puVar20 = (uint *)((int)puVar15 - iVar22);\n            puVar13 = puVar15;\n            puVar9 = puVar15;\n            puVar8 = (undefined1 *)(*(code *)PTR_realloc_0002b2b8)(puVar25);\n            if (puVar8 == (undefined1 *)0x0) goto LAB_000140b0;\n            puVar21 = puVar8 + iVar22;\n            bVar2 = puVar20 < (uint *)0x2;\n            puVar23 = puVar15;\n          }\n          if (!bVar2) {\n            puVar17 = (uint *)((int)puVar20 + -1);\n            if (local_30 <= (uint *)((int)puVar20 + -1)) {\n              puVar17 = local_30;\n            }\n            if (puVar7 == (uint *)0x0) {\n              *puVar21 = (char)local_48;\n            }\n            else {\n              puVar13 = puVar7;\n              puVar15 = puVar17;\n              (*(code *)PTR_memcpy_0002b2fc)(puVar21);\n            }\n            puVar21 = puVar21 + (int)puVar17;\n            puVar20 = (uint *)((int)puVar20 - (int)puVar17);\n          }\n          puVar25 = puVar8;\n          if ((puVar7 != (uint *)0x0) &&\n             (puVar13 = local_30, iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0))\n          goto LAB_000140b0;\n        } while (!bVar3);\n        *puVar21 = 0;\n        *param_1 = puVar8;\n        puVar9 = (uint *)(puVar21 + -(int)(puVar8 + (int)param_3));\n        *param_2 = (uint)puVar23;\n        if (puVar9 == (uint *)0x0) {\n          puVar9 = (uint *)0xffffffff;\n        }\n        goto LAB_000140c0;\n      }" if (parenthesized_expression "((puVar20 != (uint *)0x0) || (puVar23 < param_4))" ( (binary_expression "(puVar20 != (uint *)0x0) || (puVar23 < param_4)" (parenthesized_expression "(puVar20 != (uint *)0x0)" ( (binary_expression "puVar20 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(puVar23 < param_4)" ( (binary_expression "puVar23 < param_4" identifier < identifier) ))) )) (compound_statement "{\n        puVar24 = param_6;\n        if ((param_5 != (uint *)0xffffffff) && (puVar24 = param_5, param_6 == (uint *)0xffffffff)) {\n          param_6 = param_5;\n        }\n        puVar6 = param_3 + -0x20000000;\n        do {\n          puVar13 = (uint *)0xffffffd0;\n          puVar7 = (uint *)freadptr(param_7);\n          puVar8 = puVar25;\n          if (puVar7 == (uint *)0x0) {\n            pbVar11 = *(byte **)(param_7 + 4);\n            if (pbVar11 < *(byte **)(param_7 + 8)) {\n              *(byte **)(param_7 + 4) = pbVar11 + 1;\n              local_48 = (uint *)(uint)*pbVar11;\n            }\n            else {\n              local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);\n              if (local_48 == (uint *)0xffffffff) {\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = puVar24 == local_48 || param_6 == local_48;\n            puVar17 = (uint *)0x2;\n            local_30 = (uint *)0x1;\n          }\n          else if ((puVar24 == (uint *)0xffffffff) ||\n                  (puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0)) {\n            puVar17 = (uint *)((int)local_30 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            local_30 = (uint *)((iVar22 - (int)puVar7) + 1);\n            puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);\n          }\n          bVar2 = puVar20 < (uint *)0x2;\n          if ((puVar20 < puVar17) && (bVar2 = puVar20 < (uint *)0x2, puVar23 < param_4)) {\n            iVar22 = (int)puVar21 - (int)puVar25;\n            puVar15 = param_4;\n            if (puVar23 < (uint *)0x40) {\n              puVar9 = puVar23 + 0x10;\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) {\nLAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (puVar9 < param_4) {\n                puVar15 = puVar9;\n              }\n            }\n            else {\n              puVar9 = (uint *)((int)puVar23 * 2);\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;\nLAB_00014154:\n              if (puVar23 < puVar9) goto LAB_00013f98;\n            }\n            if (((int)puVar15 - (int)param_3 < 0) &&\n               (puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6)) goto LAB_000140b0;\n            puVar20 = (uint *)((int)puVar15 - iVar22);\n            puVar13 = puVar15;\n            puVar9 = puVar15;\n            puVar8 = (undefined1 *)(*(code *)PTR_realloc_0002b2b8)(puVar25);\n            if (puVar8 == (undefined1 *)0x0) goto LAB_000140b0;\n            puVar21 = puVar8 + iVar22;\n            bVar2 = puVar20 < (uint *)0x2;\n            puVar23 = puVar15;\n          }\n          if (!bVar2) {\n            puVar17 = (uint *)((int)puVar20 + -1);\n            if (local_30 <= (uint *)((int)puVar20 + -1)) {\n              puVar17 = local_30;\n            }\n            if (puVar7 == (uint *)0x0) {\n              *puVar21 = (char)local_48;\n            }\n            else {\n              puVar13 = puVar7;\n              puVar15 = puVar17;\n              (*(code *)PTR_memcpy_0002b2fc)(puVar21);\n            }\n            puVar21 = puVar21 + (int)puVar17;\n            puVar20 = (uint *)((int)puVar20 - (int)puVar17);\n          }\n          puVar25 = puVar8;\n          if ((puVar7 != (uint *)0x0) &&\n             (puVar13 = local_30, iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0))\n          goto LAB_000140b0;\n        } while (!bVar3);\n        *puVar21 = 0;\n        *param_1 = puVar8;\n        puVar9 = (uint *)(puVar21 + -(int)(puVar8 + (int)param_3));\n        *param_2 = (uint)puVar23;\n        if (puVar9 == (uint *)0x0) {\n          puVar9 = (uint *)0xffffffff;\n        }\n        goto LAB_000140c0;\n      }" { (expression_statement "puVar24 = param_6;" (assignment_expression "puVar24 = param_6" identifier = identifier) ;) (if_statement "if ((param_5 != (uint *)0xffffffff) && (puVar24 = param_5, param_6 == (uint *)0xffffffff)) {\n          param_6 = param_5;\n        }" if (parenthesized_expression "((param_5 != (uint *)0xffffffff) && (puVar24 = param_5, param_6 == (uint *)0xffffffff))" ( (binary_expression "(param_5 != (uint *)0xffffffff) && (puVar24 = param_5, param_6 == (uint *)0xffffffff)" (parenthesized_expression "(param_5 != (uint *)0xffffffff)" ( (binary_expression "param_5 != (uint *)0xffffffff" identifier != (cast_expression "(uint *)0xffffffff" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(puVar24 = param_5, param_6 == (uint *)0xffffffff)" ( (comma_expression "puVar24 = param_5, param_6 == (uint *)0xffffffff" (assignment_expression "puVar24 = param_5" identifier = identifier) , (binary_expression "param_6 == (uint *)0xffffffff" identifier == (cast_expression "(uint *)0xffffffff" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n          param_6 = param_5;\n        }" { (expression_statement "param_6 = param_5;" (assignment_expression "param_6 = param_5" identifier = identifier) ;) })) (expression_statement "puVar6 = param_3 + -0x20000000;" (assignment_expression "puVar6 = param_3 + -0x20000000" identifier = (binary_expression "param_3 + -0x20000000" identifier + number_literal)) ;) (do_statement "do {\n          puVar13 = (uint *)0xffffffd0;\n          puVar7 = (uint *)freadptr(param_7);\n          puVar8 = puVar25;\n          if (puVar7 == (uint *)0x0) {\n            pbVar11 = *(byte **)(param_7 + 4);\n            if (pbVar11 < *(byte **)(param_7 + 8)) {\n              *(byte **)(param_7 + 4) = pbVar11 + 1;\n              local_48 = (uint *)(uint)*pbVar11;\n            }\n            else {\n              local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);\n              if (local_48 == (uint *)0xffffffff) {\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = puVar24 == local_48 || param_6 == local_48;\n            puVar17 = (uint *)0x2;\n            local_30 = (uint *)0x1;\n          }\n          else if ((puVar24 == (uint *)0xffffffff) ||\n                  (puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0)) {\n            puVar17 = (uint *)((int)local_30 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            local_30 = (uint *)((iVar22 - (int)puVar7) + 1);\n            puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);\n          }\n          bVar2 = puVar20 < (uint *)0x2;\n          if ((puVar20 < puVar17) && (bVar2 = puVar20 < (uint *)0x2, puVar23 < param_4)) {\n            iVar22 = (int)puVar21 - (int)puVar25;\n            puVar15 = param_4;\n            if (puVar23 < (uint *)0x40) {\n              puVar9 = puVar23 + 0x10;\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) {\nLAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (puVar9 < param_4) {\n                puVar15 = puVar9;\n              }\n            }\n            else {\n              puVar9 = (uint *)((int)puVar23 * 2);\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;\nLAB_00014154:\n              if (puVar23 < puVar9) goto LAB_00013f98;\n            }\n            if (((int)puVar15 - (int)param_3 < 0) &&\n               (puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6)) goto LAB_000140b0;\n            puVar20 = (uint *)((int)puVar15 - iVar22);\n            puVar13 = puVar15;\n            puVar9 = puVar15;\n            puVar8 = (undefined1 *)(*(code *)PTR_realloc_0002b2b8)(puVar25);\n            if (puVar8 == (undefined1 *)0x0) goto LAB_000140b0;\n            puVar21 = puVar8 + iVar22;\n            bVar2 = puVar20 < (uint *)0x2;\n            puVar23 = puVar15;\n          }\n          if (!bVar2) {\n            puVar17 = (uint *)((int)puVar20 + -1);\n            if (local_30 <= (uint *)((int)puVar20 + -1)) {\n              puVar17 = local_30;\n            }\n            if (puVar7 == (uint *)0x0) {\n              *puVar21 = (char)local_48;\n            }\n            else {\n              puVar13 = puVar7;\n              puVar15 = puVar17;\n              (*(code *)PTR_memcpy_0002b2fc)(puVar21);\n            }\n            puVar21 = puVar21 + (int)puVar17;\n            puVar20 = (uint *)((int)puVar20 - (int)puVar17);\n          }\n          puVar25 = puVar8;\n          if ((puVar7 != (uint *)0x0) &&\n             (puVar13 = local_30, iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0))\n          goto LAB_000140b0;\n        } while (!bVar3);" do (compound_statement "{\n          puVar13 = (uint *)0xffffffd0;\n          puVar7 = (uint *)freadptr(param_7);\n          puVar8 = puVar25;\n          if (puVar7 == (uint *)0x0) {\n            pbVar11 = *(byte **)(param_7 + 4);\n            if (pbVar11 < *(byte **)(param_7 + 8)) {\n              *(byte **)(param_7 + 4) = pbVar11 + 1;\n              local_48 = (uint *)(uint)*pbVar11;\n            }\n            else {\n              local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);\n              if (local_48 == (uint *)0xffffffff) {\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = puVar24 == local_48 || param_6 == local_48;\n            puVar17 = (uint *)0x2;\n            local_30 = (uint *)0x1;\n          }\n          else if ((puVar24 == (uint *)0xffffffff) ||\n                  (puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0)) {\n            puVar17 = (uint *)((int)local_30 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            local_30 = (uint *)((iVar22 - (int)puVar7) + 1);\n            puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);\n          }\n          bVar2 = puVar20 < (uint *)0x2;\n          if ((puVar20 < puVar17) && (bVar2 = puVar20 < (uint *)0x2, puVar23 < param_4)) {\n            iVar22 = (int)puVar21 - (int)puVar25;\n            puVar15 = param_4;\n            if (puVar23 < (uint *)0x40) {\n              puVar9 = puVar23 + 0x10;\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) {\nLAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (puVar9 < param_4) {\n                puVar15 = puVar9;\n              }\n            }\n            else {\n              puVar9 = (uint *)((int)puVar23 * 2);\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;\nLAB_00014154:\n              if (puVar23 < puVar9) goto LAB_00013f98;\n            }\n            if (((int)puVar15 - (int)param_3 < 0) &&\n               (puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6)) goto LAB_000140b0;\n            puVar20 = (uint *)((int)puVar15 - iVar22);\n            puVar13 = puVar15;\n            puVar9 = puVar15;\n            puVar8 = (undefined1 *)(*(code *)PTR_realloc_0002b2b8)(puVar25);\n            if (puVar8 == (undefined1 *)0x0) goto LAB_000140b0;\n            puVar21 = puVar8 + iVar22;\n            bVar2 = puVar20 < (uint *)0x2;\n            puVar23 = puVar15;\n          }\n          if (!bVar2) {\n            puVar17 = (uint *)((int)puVar20 + -1);\n            if (local_30 <= (uint *)((int)puVar20 + -1)) {\n              puVar17 = local_30;\n            }\n            if (puVar7 == (uint *)0x0) {\n              *puVar21 = (char)local_48;\n            }\n            else {\n              puVar13 = puVar7;\n              puVar15 = puVar17;\n              (*(code *)PTR_memcpy_0002b2fc)(puVar21);\n            }\n            puVar21 = puVar21 + (int)puVar17;\n            puVar20 = (uint *)((int)puVar20 - (int)puVar17);\n          }\n          puVar25 = puVar8;\n          if ((puVar7 != (uint *)0x0) &&\n             (puVar13 = local_30, iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0))\n          goto LAB_000140b0;\n        }" { (expression_statement "puVar13 = (uint *)0xffffffd0;" (assignment_expression "puVar13 = (uint *)0xffffffd0" identifier = (cast_expression "(uint *)0xffffffd0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar7 = (uint *)freadptr(param_7);" (assignment_expression "puVar7 = (uint *)freadptr(param_7)" identifier = (cast_expression "(uint *)freadptr(param_7)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "freadptr(param_7)" identifier (argument_list "(param_7)" ( identifier ))))) ;) (expression_statement "puVar8 = puVar25;" (assignment_expression "puVar8 = puVar25" identifier = identifier) ;) (if_statement "if (puVar7 == (uint *)0x0) {\n            pbVar11 = *(byte **)(param_7 + 4);\n            if (pbVar11 < *(byte **)(param_7 + 8)) {\n              *(byte **)(param_7 + 4) = pbVar11 + 1;\n              local_48 = (uint *)(uint)*pbVar11;\n            }\n            else {\n              local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);\n              if (local_48 == (uint *)0xffffffff) {\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = puVar24 == local_48 || param_6 == local_48;\n            puVar17 = (uint *)0x2;\n            local_30 = (uint *)0x1;\n          }\n          else if ((puVar24 == (uint *)0xffffffff) ||\n                  (puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0)) {\n            puVar17 = (uint *)((int)local_30 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            local_30 = (uint *)((iVar22 - (int)puVar7) + 1);\n            puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);\n          }" if (parenthesized_expression "(puVar7 == (uint *)0x0)" ( (binary_expression "puVar7 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pbVar11 = *(byte **)(param_7 + 4);\n            if (pbVar11 < *(byte **)(param_7 + 8)) {\n              *(byte **)(param_7 + 4) = pbVar11 + 1;\n              local_48 = (uint *)(uint)*pbVar11;\n            }\n            else {\n              local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);\n              if (local_48 == (uint *)0xffffffff) {\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = puVar24 == local_48 || param_6 == local_48;\n            puVar17 = (uint *)0x2;\n            local_30 = (uint *)0x1;\n          }" { (expression_statement "pbVar11 = *(byte **)(param_7 + 4);" (assignment_expression "pbVar11 = *(byte **)(param_7 + 4)" identifier = (pointer_expression "*(byte **)(param_7 + 4)" * (cast_expression "(byte **)(param_7 + 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 4)" ( (binary_expression "param_7 + 4" identifier + number_literal) ))))) ;) (if_statement "if (pbVar11 < *(byte **)(param_7 + 8)) {\n              *(byte **)(param_7 + 4) = pbVar11 + 1;\n              local_48 = (uint *)(uint)*pbVar11;\n            }\n            else {\n              local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);\n              if (local_48 == (uint *)0xffffffff) {\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }\n            }" if (parenthesized_expression "(pbVar11 < *(byte **)(param_7 + 8))" ( (binary_expression "pbVar11 < *(byte **)(param_7 + 8)" identifier < (pointer_expression "*(byte **)(param_7 + 8)" * (cast_expression "(byte **)(param_7 + 8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) ))))) )) (compound_statement "{\n              *(byte **)(param_7 + 4) = pbVar11 + 1;\n              local_48 = (uint *)(uint)*pbVar11;\n            }" { (expression_statement "*(byte **)(param_7 + 4) = pbVar11 + 1;" (assignment_expression "*(byte **)(param_7 + 4) = pbVar11 + 1" (pointer_expression "*(byte **)(param_7 + 4)" * (cast_expression "(byte **)(param_7 + 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 4)" ( (binary_expression "param_7 + 4" identifier + number_literal) )))) = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (expression_statement "local_48 = (uint *)(uint)*pbVar11;" (assignment_expression "local_48 = (uint *)(uint)*pbVar11" identifier = (binary_expression "(uint *)(uint)*pbVar11" (cast_expression "(uint *)(uint)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier)) ;) }) (else_clause "else {\n              local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);\n              if (local_48 == (uint *)0xffffffff) {\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }\n            }" else (compound_statement "{\n              local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);\n              if (local_48 == (uint *)0xffffffff) {\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }\n            }" { (expression_statement "local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);" (assignment_expression "local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7)" identifier = (cast_expression "(uint *)(*(code *)PTR___uflow_0002b264)(param_7)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___uflow_0002b264)(param_7)" (parenthesized_expression "(*(code *)PTR___uflow_0002b264)" ( (pointer_expression "*(code *)PTR___uflow_0002b264" * (cast_expression "(code *)PTR___uflow_0002b264" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_7)" ( identifier ))))) ;) (if_statement "if (local_48 == (uint *)0xffffffff) {\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }" if (parenthesized_expression "(local_48 == (uint *)0xffffffff)" ( (binary_expression "local_48 == (uint *)0xffffffff" identifier == (cast_expression "(uint *)0xffffffff" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }" { (expression_statement "puVar9 = puVar15;" (assignment_expression "puVar9 = puVar15" identifier = identifier) ;) (if_statement "if (puVar21 == puVar25) goto LAB_000140b0;" if (parenthesized_expression "(puVar21 == puVar25)" ( (binary_expression "puVar21 == puVar25" identifier == identifier) )) (goto_statement "goto LAB_000140b0;" goto statement_identifier ;)) (break_statement "break;" break ;) })) }))) (expression_statement "bVar3 = puVar24 == local_48 || param_6 == local_48;" (assignment_expression "bVar3 = puVar24 == local_48 || param_6 == local_48" identifier = (binary_expression "puVar24 == local_48 || param_6 == local_48" (binary_expression "puVar24 == local_48" identifier == identifier) || (binary_expression "param_6 == local_48" identifier == identifier))) ;) (expression_statement "puVar17 = (uint *)0x2;" (assignment_expression "puVar17 = (uint *)0x2" identifier = (cast_expression "(uint *)0x2" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_30 = (uint *)0x1;" (assignment_expression "local_30 = (uint *)0x1" identifier = (cast_expression "(uint *)0x1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else if ((puVar24 == (uint *)0xffffffff) ||\n                  (puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0)) {\n            puVar17 = (uint *)((int)local_30 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            local_30 = (uint *)((iVar22 - (int)puVar7) + 1);\n            puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);\n          }" else (if_statement "if ((puVar24 == (uint *)0xffffffff) ||\n                  (puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0)) {\n            puVar17 = (uint *)((int)local_30 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            local_30 = (uint *)((iVar22 - (int)puVar7) + 1);\n            puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);\n          }" if (parenthesized_expression "((puVar24 == (uint *)0xffffffff) ||\n                  (puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0))" ( (binary_expression "(puVar24 == (uint *)0xffffffff) ||\n                  (puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0)" (parenthesized_expression "(puVar24 == (uint *)0xffffffff)" ( (binary_expression "puVar24 == (uint *)0xffffffff" identifier == (cast_expression "(uint *)0xffffffff" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0)" ( (comma_expression "puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0" (assignment_expression "puVar13 = puVar24" identifier = identifier) , (comma_expression "puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0" (assignment_expression "puVar15 = param_6" identifier = identifier) , (comma_expression "iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0" (assignment_expression "iVar22 = memchr2(puVar7,puVar24,param_6,local_30)" identifier = (call_expression "memchr2(puVar7,puVar24,param_6,local_30)" identifier (argument_list "(puVar7,puVar24,param_6,local_30)" ( identifier , identifier , identifier , identifier )))) , (binary_expression "iVar22 == 0" identifier == number_literal)))) ))) )) (compound_statement "{\n            puVar17 = (uint *)((int)local_30 + 1);\n            bVar3 = false;\n          }" { (expression_statement "puVar17 = (uint *)((int)local_30 + 1);" (assignment_expression "puVar17 = (uint *)((int)local_30 + 1)" identifier = (cast_expression "(uint *)((int)local_30 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_30 + 1)" ( (binary_expression "(int)local_30 + 1" (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) }) (else_clause "else {\n            bVar3 = true;\n            local_30 = (uint *)((iVar22 - (int)puVar7) + 1);\n            puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);\n          }" else (compound_statement "{\n            bVar3 = true;\n            local_30 = (uint *)((iVar22 - (int)puVar7) + 1);\n            puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);\n          }" { (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) (expression_statement "local_30 = (uint *)((iVar22 - (int)puVar7) + 1);" (assignment_expression "local_30 = (uint *)((iVar22 - (int)puVar7) + 1)" identifier = (cast_expression "(uint *)((iVar22 - (int)puVar7) + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar22 - (int)puVar7) + 1)" ( (binary_expression "(iVar22 - (int)puVar7) + 1" (parenthesized_expression "(iVar22 - (int)puVar7)" ( (binary_expression "iVar22 - (int)puVar7" identifier - (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) + number_literal) )))) ;) (expression_statement "puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);" (assignment_expression "puVar17 = (uint *)((iVar22 - (int)puVar7) + 2)" identifier = (cast_expression "(uint *)((iVar22 - (int)puVar7) + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar22 - (int)puVar7) + 2)" ( (binary_expression "(iVar22 - (int)puVar7) + 2" (parenthesized_expression "(iVar22 - (int)puVar7)" ( (binary_expression "iVar22 - (int)puVar7" identifier - (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) + number_literal) )))) ;) }))))) (expression_statement "bVar2 = puVar20 < (uint *)0x2;" (assignment_expression "bVar2 = puVar20 < (uint *)0x2" identifier = (binary_expression "puVar20 < (uint *)0x2" identifier < (cast_expression "(uint *)0x2" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if ((puVar20 < puVar17) && (bVar2 = puVar20 < (uint *)0x2, puVar23 < param_4)) {\n            iVar22 = (int)puVar21 - (int)puVar25;\n            puVar15 = param_4;\n            if (puVar23 < (uint *)0x40) {\n              puVar9 = puVar23 + 0x10;\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) {\nLAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (puVar9 < param_4) {\n                puVar15 = puVar9;\n              }\n            }\n            else {\n              puVar9 = (uint *)((int)puVar23 * 2);\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;\nLAB_00014154:\n              if (puVar23 < puVar9) goto LAB_00013f98;\n            }\n            if (((int)puVar15 - (int)param_3 < 0) &&\n               (puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6)) goto LAB_000140b0;\n            puVar20 = (uint *)((int)puVar15 - iVar22);\n            puVar13 = puVar15;\n            puVar9 = puVar15;\n            puVar8 = (undefined1 *)(*(code *)PTR_realloc_0002b2b8)(puVar25);\n            if (puVar8 == (undefined1 *)0x0) goto LAB_000140b0;\n            puVar21 = puVar8 + iVar22;\n            bVar2 = puVar20 < (uint *)0x2;\n            puVar23 = puVar15;\n          }" if (parenthesized_expression "((puVar20 < puVar17) && (bVar2 = puVar20 < (uint *)0x2, puVar23 < param_4))" ( (binary_expression "(puVar20 < puVar17) && (bVar2 = puVar20 < (uint *)0x2, puVar23 < param_4)" (parenthesized_expression "(puVar20 < puVar17)" ( (binary_expression "puVar20 < puVar17" identifier < identifier) )) && (parenthesized_expression "(bVar2 = puVar20 < (uint *)0x2, puVar23 < param_4)" ( (comma_expression "bVar2 = puVar20 < (uint *)0x2, puVar23 < param_4" (assignment_expression "bVar2 = puVar20 < (uint *)0x2" identifier = (binary_expression "puVar20 < (uint *)0x2" identifier < (cast_expression "(uint *)0x2" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) , (binary_expression "puVar23 < param_4" identifier < identifier)) ))) )) (compound_statement "{\n            iVar22 = (int)puVar21 - (int)puVar25;\n            puVar15 = param_4;\n            if (puVar23 < (uint *)0x40) {\n              puVar9 = puVar23 + 0x10;\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) {\nLAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (puVar9 < param_4) {\n                puVar15 = puVar9;\n              }\n            }\n            else {\n              puVar9 = (uint *)((int)puVar23 * 2);\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;\nLAB_00014154:\n              if (puVar23 < puVar9) goto LAB_00013f98;\n            }\n            if (((int)puVar15 - (int)param_3 < 0) &&\n               (puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6)) goto LAB_000140b0;\n            puVar20 = (uint *)((int)puVar15 - iVar22);\n            puVar13 = puVar15;\n            puVar9 = puVar15;\n            puVar8 = (undefined1 *)(*(code *)PTR_realloc_0002b2b8)(puVar25);\n            if (puVar8 == (undefined1 *)0x0) goto LAB_000140b0;\n            puVar21 = puVar8 + iVar22;\n            bVar2 = puVar20 < (uint *)0x2;\n            puVar23 = puVar15;\n          }" { (expression_statement "iVar22 = (int)puVar21 - (int)puVar25;" (assignment_expression "iVar22 = (int)puVar21 - (int)puVar25" identifier = (binary_expression "(int)puVar21 - (int)puVar25" (cast_expression "(int)puVar21" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar25" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "puVar15 = param_4;" (assignment_expression "puVar15 = param_4" identifier = identifier) ;) (if_statement "if (puVar23 < (uint *)0x40) {\n              puVar9 = puVar23 + 0x10;\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) {\nLAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (puVar9 < param_4) {\n                puVar15 = puVar9;\n              }\n            }\n            else {\n              puVar9 = (uint *)((int)puVar23 * 2);\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;\nLAB_00014154:\n              if (puVar23 < puVar9) goto LAB_00013f98;\n            }" if (parenthesized_expression "(puVar23 < (uint *)0x40)" ( (binary_expression "puVar23 < (uint *)0x40" identifier < (cast_expression "(uint *)0x40" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              puVar9 = puVar23 + 0x10;\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) {\nLAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (puVar9 < param_4) {\n                puVar15 = puVar9;\n              }\n            }" { (expression_statement "puVar9 = puVar23 + 0x10;" (assignment_expression "puVar9 = puVar23 + 0x10" identifier = (binary_expression "puVar23 + 0x10" identifier + number_literal)) ;) (if_statement "if ((uint *)((int)puVar9 - iVar22) < puVar17) {\nLAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);\n                goto LAB_00014154;\n              }" if (parenthesized_expression "((uint *)((int)puVar9 - iVar22) < puVar17)" ( (binary_expression "(uint *)((int)puVar9 - iVar22) < puVar17" (cast_expression "(uint *)((int)puVar9 - iVar22)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 - iVar22)" ( (binary_expression "(int)puVar9 - iVar22" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) ))) < identifier) )) (compound_statement "{\nLAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);\n                goto LAB_00014154;\n              }" { (labeled_statement "LAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);" statement_identifier : (expression_statement "puVar9 = (uint *)((int)puVar17 + iVar22);" (assignment_expression "puVar9 = (uint *)((int)puVar17 + iVar22)" identifier = (cast_expression "(uint *)((int)puVar17 + iVar22)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar17 + iVar22)" ( (binary_expression "(int)puVar17 + iVar22" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;)) (goto_statement "goto LAB_00014154;" goto statement_identifier ;) })) (labeled_statement "LAB_00013f98:\n              if (puVar9 < param_4) {\n                puVar15 = puVar9;\n              }" statement_identifier : (if_statement "if (puVar9 < param_4) {\n                puVar15 = puVar9;\n              }" if (parenthesized_expression "(puVar9 < param_4)" ( (binary_expression "puVar9 < param_4" identifier < identifier) )) (compound_statement "{\n                puVar15 = puVar9;\n              }" { (expression_statement "puVar15 = puVar9;" (assignment_expression "puVar15 = puVar9" identifier = identifier) ;) }))) }) (else_clause "else {\n              puVar9 = (uint *)((int)puVar23 * 2);\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;\nLAB_00014154:\n              if (puVar23 < puVar9) goto LAB_00013f98;\n            }" else (compound_statement "{\n              puVar9 = (uint *)((int)puVar23 * 2);\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;\nLAB_00014154:\n              if (puVar23 < puVar9) goto LAB_00013f98;\n            }" { (expression_statement "puVar9 = (uint *)((int)puVar23 * 2);" (assignment_expression "puVar9 = (uint *)((int)puVar23 * 2)" identifier = (cast_expression "(uint *)((int)puVar23 * 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 * 2)" ( (binary_expression "(int)puVar23 * 2" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (if_statement "if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;" if (parenthesized_expression "((uint *)((int)puVar9 - iVar22) < puVar17)" ( (binary_expression "(uint *)((int)puVar9 - iVar22) < puVar17" (cast_expression "(uint *)((int)puVar9 - iVar22)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 - iVar22)" ( (binary_expression "(int)puVar9 - iVar22" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) ))) < identifier) )) (goto_statement "goto LAB_0001414c;" goto statement_identifier ;)) (labeled_statement "LAB_00014154:\n              if (puVar23 < puVar9) goto LAB_00013f98;" statement_identifier : (if_statement "if (puVar23 < puVar9) goto LAB_00013f98;" if (parenthesized_expression "(puVar23 < puVar9)" ( (binary_expression "puVar23 < puVar9" identifier < identifier) )) (goto_statement "goto LAB_00013f98;" goto statement_identifier ;))) }))) (if_statement "if (((int)puVar15 - (int)param_3 < 0) &&\n               (puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6)) goto LAB_000140b0;" if (parenthesized_expression "(((int)puVar15 - (int)param_3 < 0) &&\n               (puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6))" ( (binary_expression "((int)puVar15 - (int)param_3 < 0) &&\n               (puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6)" (parenthesized_expression "((int)puVar15 - (int)param_3 < 0)" ( (binary_expression "(int)puVar15 - (int)param_3 < 0" (binary_expression "(int)puVar15 - (int)param_3" (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) < number_literal) )) && (parenthesized_expression "(puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6)" ( (comma_expression "puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6" (assignment_expression "puVar15 = puVar6" identifier = identifier) , (comma_expression "puVar9 = puVar6, puVar23 == puVar6" (assignment_expression "puVar9 = puVar6" identifier = identifier) , (binary_expression "puVar23 == puVar6" identifier == identifier))) ))) )) (goto_statement "goto LAB_000140b0;" goto statement_identifier ;)) (expression_statement "puVar20 = (uint *)((int)puVar15 - iVar22);" (assignment_expression "puVar20 = (uint *)((int)puVar15 - iVar22)" identifier = (cast_expression "(uint *)((int)puVar15 - iVar22)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar15 - iVar22)" ( (binary_expression "(int)puVar15 - iVar22" (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) (expression_statement "puVar13 = puVar15;" (assignment_expression "puVar13 = puVar15" identifier = identifier) ;) (expression_statement "puVar9 = puVar15;" (assignment_expression "puVar9 = puVar15" identifier = identifier) ;) (expression_statement "puVar8 = (undefined1 *)(*(code *)PTR_realloc_0002b2b8)(puVar25);" (assignment_expression "puVar8 = (undefined1 *)(*(code *)PTR_realloc_0002b2b8)(puVar25)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR_realloc_0002b2b8)(puVar25)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_realloc_0002b2b8)(puVar25)" (parenthesized_expression "(*(code *)PTR_realloc_0002b2b8)" ( (pointer_expression "*(code *)PTR_realloc_0002b2b8" * (cast_expression "(code *)PTR_realloc_0002b2b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar25)" ( identifier ))))) ;) (if_statement "if (puVar8 == (undefined1 *)0x0) goto LAB_000140b0;" if (parenthesized_expression "(puVar8 == (undefined1 *)0x0)" ( (binary_expression "puVar8 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000140b0;" goto statement_identifier ;)) (expression_statement "puVar21 = puVar8 + iVar22;" (assignment_expression "puVar21 = puVar8 + iVar22" identifier = (binary_expression "puVar8 + iVar22" identifier + identifier)) ;) (expression_statement "bVar2 = puVar20 < (uint *)0x2;" (assignment_expression "bVar2 = puVar20 < (uint *)0x2" identifier = (binary_expression "puVar20 < (uint *)0x2" identifier < (cast_expression "(uint *)0x2" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "puVar23 = puVar15;" (assignment_expression "puVar23 = puVar15" identifier = identifier) ;) })) (if_statement "if (!bVar2) {\n            puVar17 = (uint *)((int)puVar20 + -1);\n            if (local_30 <= (uint *)((int)puVar20 + -1)) {\n              puVar17 = local_30;\n            }\n            if (puVar7 == (uint *)0x0) {\n              *puVar21 = (char)local_48;\n            }\n            else {\n              puVar13 = puVar7;\n              puVar15 = puVar17;\n              (*(code *)PTR_memcpy_0002b2fc)(puVar21);\n            }\n            puVar21 = puVar21 + (int)puVar17;\n            puVar20 = (uint *)((int)puVar20 - (int)puVar17);\n          }" if (parenthesized_expression "(!bVar2)" ( (unary_expression "!bVar2" ! identifier) )) (compound_statement "{\n            puVar17 = (uint *)((int)puVar20 + -1);\n            if (local_30 <= (uint *)((int)puVar20 + -1)) {\n              puVar17 = local_30;\n            }\n            if (puVar7 == (uint *)0x0) {\n              *puVar21 = (char)local_48;\n            }\n            else {\n              puVar13 = puVar7;\n              puVar15 = puVar17;\n              (*(code *)PTR_memcpy_0002b2fc)(puVar21);\n            }\n            puVar21 = puVar21 + (int)puVar17;\n            puVar20 = (uint *)((int)puVar20 - (int)puVar17);\n          }" { (expression_statement "puVar17 = (uint *)((int)puVar20 + -1);" (assignment_expression "puVar17 = (uint *)((int)puVar20 + -1)" identifier = (cast_expression "(uint *)((int)puVar20 + -1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar20 + -1)" ( (binary_expression "(int)puVar20 + -1" (cast_expression "(int)puVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (local_30 <= (uint *)((int)puVar20 + -1)) {\n              puVar17 = local_30;\n            }" if (parenthesized_expression "(local_30 <= (uint *)((int)puVar20 + -1))" ( (binary_expression "local_30 <= (uint *)((int)puVar20 + -1)" identifier <= (cast_expression "(uint *)((int)puVar20 + -1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar20 + -1)" ( (binary_expression "(int)puVar20 + -1" (cast_expression "(int)puVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )) (compound_statement "{\n              puVar17 = local_30;\n            }" { (expression_statement "puVar17 = local_30;" (assignment_expression "puVar17 = local_30" identifier = identifier) ;) })) (if_statement "if (puVar7 == (uint *)0x0) {\n              *puVar21 = (char)local_48;\n            }\n            else {\n              puVar13 = puVar7;\n              puVar15 = puVar17;\n              (*(code *)PTR_memcpy_0002b2fc)(puVar21);\n            }" if (parenthesized_expression "(puVar7 == (uint *)0x0)" ( (binary_expression "puVar7 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              *puVar21 = (char)local_48;\n            }" { (expression_statement "*puVar21 = (char)local_48;" (assignment_expression "*puVar21 = (char)local_48" (pointer_expression "*puVar21" * identifier) = (cast_expression "(char)local_48" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }) (else_clause "else {\n              puVar13 = puVar7;\n              puVar15 = puVar17;\n              (*(code *)PTR_memcpy_0002b2fc)(puVar21);\n            }" else (compound_statement "{\n              puVar13 = puVar7;\n              puVar15 = puVar17;\n              (*(code *)PTR_memcpy_0002b2fc)(puVar21);\n            }" { (expression_statement "puVar13 = puVar7;" (assignment_expression "puVar13 = puVar7" identifier = identifier) ;) (expression_statement "puVar15 = puVar17;" (assignment_expression "puVar15 = puVar17" identifier = identifier) ;) (expression_statement "(*(code *)PTR_memcpy_0002b2fc)(puVar21);" (call_expression "(*(code *)PTR_memcpy_0002b2fc)(puVar21)" (parenthesized_expression "(*(code *)PTR_memcpy_0002b2fc)" ( (pointer_expression "*(code *)PTR_memcpy_0002b2fc" * (cast_expression "(code *)PTR_memcpy_0002b2fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar21)" ( identifier ))) ;) }))) (expression_statement "puVar21 = puVar21 + (int)puVar17;" (assignment_expression "puVar21 = puVar21 + (int)puVar17" identifier = (binary_expression "puVar21 + (int)puVar17" identifier + (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "puVar20 = (uint *)((int)puVar20 - (int)puVar17);" (assignment_expression "puVar20 = (uint *)((int)puVar20 - (int)puVar17)" identifier = (cast_expression "(uint *)((int)puVar20 - (int)puVar17)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar20 - (int)puVar17)" ( (binary_expression "(int)puVar20 - (int)puVar17" (cast_expression "(int)puVar20" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) })) (expression_statement "puVar25 = puVar8;" (assignment_expression "puVar25 = puVar8" identifier = identifier) ;) (if_statement "if ((puVar7 != (uint *)0x0) &&\n             (puVar13 = local_30, iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0))\n          goto LAB_000140b0;" if (parenthesized_expression "((puVar7 != (uint *)0x0) &&\n             (puVar13 = local_30, iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0))" ( (binary_expression "(puVar7 != (uint *)0x0) &&\n             (puVar13 = local_30, iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0)" (parenthesized_expression "(puVar7 != (uint *)0x0)" ( (binary_expression "puVar7 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(puVar13 = local_30, iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0)" ( (comma_expression "puVar13 = local_30, iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0" (assignment_expression "puVar13 = local_30" identifier = identifier) , (comma_expression "iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0" (assignment_expression "iVar22 = freadseek(param_7)" identifier = (call_expression "freadseek(param_7)" identifier (argument_list "(param_7)" ( identifier )))) , (comma_expression "puVar9 = puVar15, iVar22 != 0" (assignment_expression "puVar9 = puVar15" identifier = identifier) , (binary_expression "iVar22 != 0" identifier != number_literal)))) ))) )) (goto_statement "goto LAB_000140b0;" goto statement_identifier ;)) }) while (parenthesized_expression "(!bVar3)" ( (unary_expression "!bVar3" ! identifier) )) ;) (expression_statement "*puVar21 = 0;" (assignment_expression "*puVar21 = 0" (pointer_expression "*puVar21" * identifier) = number_literal) ;) (expression_statement "*param_1 = puVar8;" (assignment_expression "*param_1 = puVar8" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "puVar9 = (uint *)(puVar21 + -(int)(puVar8 + (int)param_3));" (assignment_expression "puVar9 = (uint *)(puVar21 + -(int)(puVar8 + (int)param_3))" identifier = (cast_expression "(uint *)(puVar21 + -(int)(puVar8 + (int)param_3))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -(int)(puVar8 + (int)param_3))" ( (binary_expression "puVar21 + -(int)(puVar8 + (int)param_3)" identifier + (unary_expression "-(int)(puVar8 + (int)param_3)" - (cast_expression "(int)(puVar8 + (int)param_3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar8 + (int)param_3)" ( (binary_expression "puVar8 + (int)param_3" identifier + (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) )))) ;) (expression_statement "*param_2 = (uint)puVar23;" (assignment_expression "*param_2 = (uint)puVar23" (pointer_expression "*param_2" * identifier) = (cast_expression "(uint)puVar23" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (puVar9 == (uint *)0x0) {\n          puVar9 = (uint *)0xffffffff;\n        }" if (parenthesized_expression "(puVar9 == (uint *)0x0)" ( (binary_expression "puVar9 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          puVar9 = (uint *)0xffffffff;\n        }" { (expression_statement "puVar9 = (uint *)0xffffffff;" (assignment_expression "puVar9 = (uint *)0xffffffff" identifier = (cast_expression "(uint *)0xffffffff" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (goto_statement "goto LAB_000140c0;" goto statement_identifier ;) })) })) (labeled_statement "LAB_000140b0:\n    puVar15 = puVar9;" statement_identifier : (expression_statement "puVar15 = puVar9;" (assignment_expression "puVar15 = puVar9" identifier = identifier) ;)) (expression_statement "*param_1 = puVar25;" (assignment_expression "*param_1 = puVar25" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "puVar9 = (uint *)0xffffffff;" (assignment_expression "puVar9 = (uint *)0xffffffff" identifier = (cast_expression "(uint *)0xffffffff" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*param_2 = (uint)puVar23;" (assignment_expression "*param_2 = (uint)puVar23" (pointer_expression "*param_2" * identifier) = (cast_expression "(uint)puVar23" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }))) (labeled_statement "LAB_000140c0:\n  if (puVar5 == *(uint **)puVar4) {\n    return puVar9;\n  }" statement_identifier : (if_statement "if (puVar5 == *(uint **)puVar4) {\n    return puVar9;\n  }" if (parenthesized_expression "(puVar5 == *(uint **)puVar4)" ( (binary_expression "puVar5 == *(uint **)puVar4" identifier == (pointer_expression "*(uint **)puVar4" * (cast_expression "(uint **)puVar4" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return puVar9;\n  }" { (return_statement "return puVar9;" return identifier ;) }))) (expression_statement "(*(code *)PTR___stack_chk_fail_0002b2e0)();" (call_expression "(*(code *)PTR___stack_chk_fail_0002b2e0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0002b2e0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0002b2e0" * (cast_expression "(code *)PTR___stack_chk_fail_0002b2e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar18 = (uint)puVar13 & 0xff;" (assignment_expression "uVar18 = (uint)puVar13 & 0xff" identifier = (binary_expression "(uint)puVar13 & 0xff" (cast_expression "(uint)puVar13" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar19 = (uint)puVar15 & 0xff;" (assignment_expression "uVar19 = (uint)puVar15 & 0xff" identifier = (binary_expression "(uint)puVar15 & 0xff" (cast_expression "(uint)puVar15" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (if_statement "if (uVar18 == uVar19) {\n    puVar5 = (uint *)rpl_memchr();\n    return puVar5;\n  }" if (parenthesized_expression "(uVar18 == uVar19)" ( (binary_expression "uVar18 == uVar19" identifier == identifier) )) (compound_statement "{\n    puVar5 = (uint *)rpl_memchr();\n    return puVar5;\n  }" { (expression_statement "puVar5 = (uint *)rpl_memchr();" (assignment_expression "puVar5 = (uint *)rpl_memchr()" identifier = (cast_expression "(uint *)rpl_memchr()" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "rpl_memchr()" identifier (argument_list "()" ( ))))) ;) (return_statement "return puVar5;" return identifier ;) })) (if_statement "if ((puVar17 != (uint *)0x0) && (((uint)puVar5 & 3) != 0)) {\n    if (uVar18 == *(byte *)puVar5) {\n      return puVar5;\n    }\n    if (uVar19 == *(byte *)puVar5) {\n      return puVar5;\n    }\n    while( true ) {\n      puVar17 = (uint *)((int)puVar17 - 1);\n      puVar5 = (uint *)((int)puVar5 + 1);\n      if ((puVar17 == (uint *)0x0) || (((uint)puVar5 & 3) == 0)) break;\n      if (*(byte *)puVar5 == uVar18) {\n        return puVar5;\n      }\n      if (*(byte *)puVar5 == uVar19) {\n        return puVar5;\n      }\n    }\n  }" if (parenthesized_expression "((puVar17 != (uint *)0x0) && (((uint)puVar5 & 3) != 0))" ( (binary_expression "(puVar17 != (uint *)0x0) && (((uint)puVar5 & 3) != 0)" (parenthesized_expression "(puVar17 != (uint *)0x0)" ( (binary_expression "puVar17 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(((uint)puVar5 & 3) != 0)" ( (binary_expression "((uint)puVar5 & 3) != 0" (parenthesized_expression "((uint)puVar5 & 3)" ( (binary_expression "(uint)puVar5 & 3" (cast_expression "(uint)puVar5" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    if (uVar18 == *(byte *)puVar5) {\n      return puVar5;\n    }\n    if (uVar19 == *(byte *)puVar5) {\n      return puVar5;\n    }\n    while( true ) {\n      puVar17 = (uint *)((int)puVar17 - 1);\n      puVar5 = (uint *)((int)puVar5 + 1);\n      if ((puVar17 == (uint *)0x0) || (((uint)puVar5 & 3) == 0)) break;\n      if (*(byte *)puVar5 == uVar18) {\n        return puVar5;\n      }\n      if (*(byte *)puVar5 == uVar19) {\n        return puVar5;\n      }\n    }\n  }" { (if_statement "if (uVar18 == *(byte *)puVar5) {\n      return puVar5;\n    }" if (parenthesized_expression "(uVar18 == *(byte *)puVar5)" ( (binary_expression "uVar18 == *(byte *)puVar5" identifier == (pointer_expression "*(byte *)puVar5" * (cast_expression "(byte *)puVar5" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n      return puVar5;\n    }" { (return_statement "return puVar5;" return identifier ;) })) (if_statement "if (uVar19 == *(byte *)puVar5) {\n      return puVar5;\n    }" if (parenthesized_expression "(uVar19 == *(byte *)puVar5)" ( (binary_expression "uVar19 == *(byte *)puVar5" identifier == (pointer_expression "*(byte *)puVar5" * (cast_expression "(byte *)puVar5" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n      return puVar5;\n    }" { (return_statement "return puVar5;" return identifier ;) })) (while_statement "while( true ) {\n      puVar17 = (uint *)((int)puVar17 - 1);\n      puVar5 = (uint *)((int)puVar5 + 1);\n      if ((puVar17 == (uint *)0x0) || (((uint)puVar5 & 3) == 0)) break;\n      if (*(byte *)puVar5 == uVar18) {\n        return puVar5;\n      }\n      if (*(byte *)puVar5 == uVar19) {\n        return puVar5;\n      }\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      puVar17 = (uint *)((int)puVar17 - 1);\n      puVar5 = (uint *)((int)puVar5 + 1);\n      if ((puVar17 == (uint *)0x0) || (((uint)puVar5 & 3) == 0)) break;\n      if (*(byte *)puVar5 == uVar18) {\n        return puVar5;\n      }\n      if (*(byte *)puVar5 == uVar19) {\n        return puVar5;\n      }\n    }" { (expression_statement "puVar17 = (uint *)((int)puVar17 - 1);" (assignment_expression "puVar17 = (uint *)((int)puVar17 - 1)" identifier = (cast_expression "(uint *)((int)puVar17 - 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar17 - 1)" ( (binary_expression "(int)puVar17 - 1" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal) )))) ;) (expression_statement "puVar5 = (uint *)((int)puVar5 + 1);" (assignment_expression "puVar5 = (uint *)((int)puVar5 + 1)" identifier = (cast_expression "(uint *)((int)puVar5 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar5 + 1)" ( (binary_expression "(int)puVar5 + 1" (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((puVar17 == (uint *)0x0) || (((uint)puVar5 & 3) == 0)) break;" if (parenthesized_expression "((puVar17 == (uint *)0x0) || (((uint)puVar5 & 3) == 0))" ( (binary_expression "(puVar17 == (uint *)0x0) || (((uint)puVar5 & 3) == 0)" (parenthesized_expression "(puVar17 == (uint *)0x0)" ( (binary_expression "puVar17 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(((uint)puVar5 & 3) == 0)" ( (binary_expression "((uint)puVar5 & 3) == 0" (parenthesized_expression "((uint)puVar5 & 3)" ( (binary_expression "(uint)puVar5 & 3" (cast_expression "(uint)puVar5" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) ))) )) (break_statement "break;" break ;)) (if_statement "if (*(byte *)puVar5 == uVar18) {\n        return puVar5;\n      }" if (parenthesized_expression "(*(byte *)puVar5 == uVar18)" ( (binary_expression "*(byte *)puVar5 == uVar18" (pointer_expression "*(byte *)puVar5" * (cast_expression "(byte *)puVar5" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == identifier) )) (compound_statement "{\n        return puVar5;\n      }" { (return_statement "return puVar5;" return identifier ;) })) (if_statement "if (*(byte *)puVar5 == uVar19) {\n        return puVar5;\n      }" if (parenthesized_expression "(*(byte *)puVar5 == uVar19)" ( (binary_expression "*(byte *)puVar5 == uVar19" (pointer_expression "*(byte *)puVar5" * (cast_expression "(byte *)puVar5" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == identifier) )) (compound_statement "{\n        return puVar5;\n      }" { (return_statement "return puVar5;" return identifier ;) })) })) })) (expression_statement "uVar14 = ((uint)puVar13 & 0xff) << 8 | (uint)puVar13 & 0xff;" (assignment_expression "uVar14 = ((uint)puVar13 & 0xff) << 8 | (uint)puVar13 & 0xff" identifier = (binary_expression "((uint)puVar13 & 0xff) << 8 | (uint)puVar13 & 0xff" (binary_expression "((uint)puVar13 & 0xff) << 8" (parenthesized_expression "((uint)puVar13 & 0xff)" ( (binary_expression "(uint)puVar13 & 0xff" (cast_expression "(uint)puVar13" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) << number_literal) | (binary_expression "(uint)puVar13 & 0xff" (cast_expression "(uint)puVar13" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal))) ;) (expression_statement "uVar16 = ((uint)puVar15 & 0xff) << 8 | (uint)puVar15 & 0xff;" (assignment_expression "uVar16 = ((uint)puVar15 & 0xff) << 8 | (uint)puVar15 & 0xff" identifier = (binary_expression "((uint)puVar15 & 0xff) << 8 | (uint)puVar15 & 0xff" (binary_expression "((uint)puVar15 & 0xff) << 8" (parenthesized_expression "((uint)puVar15 & 0xff)" ( (binary_expression "(uint)puVar15 & 0xff" (cast_expression "(uint)puVar15" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) << number_literal) | (binary_expression "(uint)puVar15 & 0xff" (cast_expression "(uint)puVar15" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal))) ;) (expression_statement "uVar14 = uVar14 << 0x10 | uVar14;" (assignment_expression "uVar14 = uVar14 << 0x10 | uVar14" identifier = (binary_expression "uVar14 << 0x10 | uVar14" (binary_expression "uVar14 << 0x10" identifier << number_literal) | identifier)) ;) (expression_statement "uVar16 = uVar16 << 0x10 | uVar16;" (assignment_expression "uVar16 = uVar16 << 0x10 | uVar16" identifier = (binary_expression "uVar16 << 0x10 | uVar16" (binary_expression "uVar16 << 0x10" identifier << number_literal) | identifier)) ;) (if_statement "if (puVar17 < (uint *)0x4) {\nLAB_0001433c:\n    if (puVar17 == (uint *)0x0) {\n      return (uint *)0x0;\n    }\n  }\n  else {\n    uVar10 = uVar14 ^ *puVar5;\n    uVar12 = uVar16 ^ *puVar5;\n    if (((~uVar10 & uVar10 + 0xfefefeff | ~uVar12 & uVar12 + 0xfefefeff) & 0x80808080) != 0) {\n      bVar1 = *(byte *)puVar5;\n      goto LAB_00014348;\n    }\n    do {\n      puVar17 = puVar17 + -1;\n      puVar5 = puVar5 + 1;\n      if (puVar17 < (uint *)0x4) goto LAB_0001433c;\n      uVar12 = *puVar5 ^ uVar14;\n      uVar10 = *puVar5 ^ uVar16;\n    } while (((uVar12 + 0xfefefeff & ~uVar12 | uVar10 + 0xfefefeff & ~uVar10) & 0x80808080) == 0);\n  }" if (parenthesized_expression "(puVar17 < (uint *)0x4)" ( (binary_expression "puVar17 < (uint *)0x4" identifier < (cast_expression "(uint *)0x4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0001433c:\n    if (puVar17 == (uint *)0x0) {\n      return (uint *)0x0;\n    }\n  }" { (labeled_statement "LAB_0001433c:\n    if (puVar17 == (uint *)0x0) {\n      return (uint *)0x0;\n    }" statement_identifier : (if_statement "if (puVar17 == (uint *)0x0) {\n      return (uint *)0x0;\n    }" if (parenthesized_expression "(puVar17 == (uint *)0x0)" ( (binary_expression "puVar17 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return (uint *)0x0;\n    }" { (return_statement "return (uint *)0x0;" return (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) }))) }) (else_clause "else {\n    uVar10 = uVar14 ^ *puVar5;\n    uVar12 = uVar16 ^ *puVar5;\n    if (((~uVar10 & uVar10 + 0xfefefeff | ~uVar12 & uVar12 + 0xfefefeff) & 0x80808080) != 0) {\n      bVar1 = *(byte *)puVar5;\n      goto LAB_00014348;\n    }\n    do {\n      puVar17 = puVar17 + -1;\n      puVar5 = puVar5 + 1;\n      if (puVar17 < (uint *)0x4) goto LAB_0001433c;\n      uVar12 = *puVar5 ^ uVar14;\n      uVar10 = *puVar5 ^ uVar16;\n    } while (((uVar12 + 0xfefefeff & ~uVar12 | uVar10 + 0xfefefeff & ~uVar10) & 0x80808080) == 0);\n  }" else (compound_statement "{\n    uVar10 = uVar14 ^ *puVar5;\n    uVar12 = uVar16 ^ *puVar5;\n    if (((~uVar10 & uVar10 + 0xfefefeff | ~uVar12 & uVar12 + 0xfefefeff) & 0x80808080) != 0) {\n      bVar1 = *(byte *)puVar5;\n      goto LAB_00014348;\n    }\n    do {\n      puVar17 = puVar17 + -1;\n      puVar5 = puVar5 + 1;\n      if (puVar17 < (uint *)0x4) goto LAB_0001433c;\n      uVar12 = *puVar5 ^ uVar14;\n      uVar10 = *puVar5 ^ uVar16;\n    } while (((uVar12 + 0xfefefeff & ~uVar12 | uVar10 + 0xfefefeff & ~uVar10) & 0x80808080) == 0);\n  }" { (expression_statement "uVar10 = uVar14 ^ *puVar5;" (assignment_expression "uVar10 = uVar14 ^ *puVar5" identifier = (binary_expression "uVar14 ^ *puVar5" identifier ^ (pointer_expression "*puVar5" * identifier))) ;) (expression_statement "uVar12 = uVar16 ^ *puVar5;" (assignment_expression "uVar12 = uVar16 ^ *puVar5" identifier = (binary_expression "uVar16 ^ *puVar5" identifier ^ (pointer_expression "*puVar5" * identifier))) ;) (if_statement "if (((~uVar10 & uVar10 + 0xfefefeff | ~uVar12 & uVar12 + 0xfefefeff) & 0x80808080) != 0) {\n      bVar1 = *(byte *)puVar5;\n      goto LAB_00014348;\n    }" if (parenthesized_expression "(((~uVar10 & uVar10 + 0xfefefeff | ~uVar12 & uVar12 + 0xfefefeff) & 0x80808080) != 0)" ( (binary_expression "((~uVar10 & uVar10 + 0xfefefeff | ~uVar12 & uVar12 + 0xfefefeff) & 0x80808080) != 0" (parenthesized_expression "((~uVar10 & uVar10 + 0xfefefeff | ~uVar12 & uVar12 + 0xfefefeff) & 0x80808080)" ( (binary_expression "(~uVar10 & uVar10 + 0xfefefeff | ~uVar12 & uVar12 + 0xfefefeff) & 0x80808080" (parenthesized_expression "(~uVar10 & uVar10 + 0xfefefeff | ~uVar12 & uVar12 + 0xfefefeff)" ( (binary_expression "~uVar10 & uVar10 + 0xfefefeff | ~uVar12 & uVar12 + 0xfefefeff" (binary_expression "~uVar10 & uVar10 + 0xfefefeff" (unary_expression "~uVar10" ~ identifier) & (binary_expression "uVar10 + 0xfefefeff" identifier + number_literal)) | (binary_expression "~uVar12 & uVar12 + 0xfefefeff" (unary_expression "~uVar12" ~ identifier) & (binary_expression "uVar12 + 0xfefefeff" identifier + number_literal))) )) & number_literal) )) != number_literal) )) (compound_statement "{\n      bVar1 = *(byte *)puVar5;\n      goto LAB_00014348;\n    }" { (expression_statement "bVar1 = *(byte *)puVar5;" (assignment_expression "bVar1 = *(byte *)puVar5" identifier = (pointer_expression "*(byte *)puVar5" * (cast_expression "(byte *)puVar5" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (goto_statement "goto LAB_00014348;" goto statement_identifier ;) })) (do_statement "do {\n      puVar17 = puVar17 + -1;\n      puVar5 = puVar5 + 1;\n      if (puVar17 < (uint *)0x4) goto LAB_0001433c;\n      uVar12 = *puVar5 ^ uVar14;\n      uVar10 = *puVar5 ^ uVar16;\n    } while (((uVar12 + 0xfefefeff & ~uVar12 | uVar10 + 0xfefefeff & ~uVar10) & 0x80808080) == 0);" do (compound_statement "{\n      puVar17 = puVar17 + -1;\n      puVar5 = puVar5 + 1;\n      if (puVar17 < (uint *)0x4) goto LAB_0001433c;\n      uVar12 = *puVar5 ^ uVar14;\n      uVar10 = *puVar5 ^ uVar16;\n    }" { (expression_statement "puVar17 = puVar17 + -1;" (assignment_expression "puVar17 = puVar17 + -1" identifier = (binary_expression "puVar17 + -1" identifier + number_literal)) ;) (expression_statement "puVar5 = puVar5 + 1;" (assignment_expression "puVar5 = puVar5 + 1" identifier = (binary_expression "puVar5 + 1" identifier + number_literal)) ;) (if_statement "if (puVar17 < (uint *)0x4) goto LAB_0001433c;" if (parenthesized_expression "(puVar17 < (uint *)0x4)" ( (binary_expression "puVar17 < (uint *)0x4" identifier < (cast_expression "(uint *)0x4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001433c;" goto statement_identifier ;)) (expression_statement "uVar12 = *puVar5 ^ uVar14;" (assignment_expression "uVar12 = *puVar5 ^ uVar14" identifier = (binary_expression "*puVar5 ^ uVar14" (pointer_expression "*puVar5" * identifier) ^ identifier)) ;) (expression_statement "uVar10 = *puVar5 ^ uVar16;" (assignment_expression "uVar10 = *puVar5 ^ uVar16" identifier = (binary_expression "*puVar5 ^ uVar16" (pointer_expression "*puVar5" * identifier) ^ identifier)) ;) }) while (parenthesized_expression "(((uVar12 + 0xfefefeff & ~uVar12 | uVar10 + 0xfefefeff & ~uVar10) & 0x80808080) == 0)" ( (binary_expression "((uVar12 + 0xfefefeff & ~uVar12 | uVar10 + 0xfefefeff & ~uVar10) & 0x80808080) == 0" (parenthesized_expression "((uVar12 + 0xfefefeff & ~uVar12 | uVar10 + 0xfefefeff & ~uVar10) & 0x80808080)" ( (binary_expression "(uVar12 + 0xfefefeff & ~uVar12 | uVar10 + 0xfefefeff & ~uVar10) & 0x80808080" (parenthesized_expression "(uVar12 + 0xfefefeff & ~uVar12 | uVar10 + 0xfefefeff & ~uVar10)" ( (binary_expression "uVar12 + 0xfefefeff & ~uVar12 | uVar10 + 0xfefefeff & ~uVar10" (binary_expression "uVar12 + 0xfefefeff & ~uVar12" (binary_expression "uVar12 + 0xfefefeff" identifier + number_literal) & (unary_expression "~uVar12" ~ identifier)) | (binary_expression "uVar10 + 0xfefefeff & ~uVar10" (binary_expression "uVar10 + 0xfefefeff" identifier + number_literal) & (unary_expression "~uVar10" ~ identifier))) )) & number_literal) )) == number_literal) )) ;) }))) (expression_statement "bVar1 = *(byte *)puVar5;" (assignment_expression "bVar1 = *(byte *)puVar5" identifier = (pointer_expression "*(byte *)puVar5" * (cast_expression "(byte *)puVar5" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (labeled_statement "LAB_00014348:\n  if ((uVar18 != bVar1) && (uVar19 != bVar1)) {\n    puVar17 = (uint *)((int)puVar5 + (int)puVar17);\n    do {\n      puVar5 = (uint *)((int)puVar5 + 1);\n      if (puVar5 == puVar17) {\n        return (uint *)0x0;\n      }\n    } while ((*(byte *)puVar5 != uVar18) && (*(byte *)puVar5 != uVar19));\n  }" statement_identifier : (if_statement "if ((uVar18 != bVar1) && (uVar19 != bVar1)) {\n    puVar17 = (uint *)((int)puVar5 + (int)puVar17);\n    do {\n      puVar5 = (uint *)((int)puVar5 + 1);\n      if (puVar5 == puVar17) {\n        return (uint *)0x0;\n      }\n    } while ((*(byte *)puVar5 != uVar18) && (*(byte *)puVar5 != uVar19));\n  }" if (parenthesized_expression "((uVar18 != bVar1) && (uVar19 != bVar1))" ( (binary_expression "(uVar18 != bVar1) && (uVar19 != bVar1)" (parenthesized_expression "(uVar18 != bVar1)" ( (binary_expression "uVar18 != bVar1" identifier != identifier) )) && (parenthesized_expression "(uVar19 != bVar1)" ( (binary_expression "uVar19 != bVar1" identifier != identifier) ))) )) (compound_statement "{\n    puVar17 = (uint *)((int)puVar5 + (int)puVar17);\n    do {\n      puVar5 = (uint *)((int)puVar5 + 1);\n      if (puVar5 == puVar17) {\n        return (uint *)0x0;\n      }\n    } while ((*(byte *)puVar5 != uVar18) && (*(byte *)puVar5 != uVar19));\n  }" { (expression_statement "puVar17 = (uint *)((int)puVar5 + (int)puVar17);" (assignment_expression "puVar17 = (uint *)((int)puVar5 + (int)puVar17)" identifier = (cast_expression "(uint *)((int)puVar5 + (int)puVar17)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar5 + (int)puVar17)" ( (binary_expression "(int)puVar5 + (int)puVar17" (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (do_statement "do {\n      puVar5 = (uint *)((int)puVar5 + 1);\n      if (puVar5 == puVar17) {\n        return (uint *)0x0;\n      }\n    } while ((*(byte *)puVar5 != uVar18) && (*(byte *)puVar5 != uVar19));" do (compound_statement "{\n      puVar5 = (uint *)((int)puVar5 + 1);\n      if (puVar5 == puVar17) {\n        return (uint *)0x0;\n      }\n    }" { (expression_statement "puVar5 = (uint *)((int)puVar5 + 1);" (assignment_expression "puVar5 = (uint *)((int)puVar5 + 1)" identifier = (cast_expression "(uint *)((int)puVar5 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar5 + 1)" ( (binary_expression "(int)puVar5 + 1" (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (puVar5 == puVar17) {\n        return (uint *)0x0;\n      }" if (parenthesized_expression "(puVar5 == puVar17)" ( (binary_expression "puVar5 == puVar17" identifier == identifier) )) (compound_statement "{\n        return (uint *)0x0;\n      }" { (return_statement "return (uint *)0x0;" return (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) }) while (parenthesized_expression "((*(byte *)puVar5 != uVar18) && (*(byte *)puVar5 != uVar19))" ( (binary_expression "(*(byte *)puVar5 != uVar18) && (*(byte *)puVar5 != uVar19)" (parenthesized_expression "(*(byte *)puVar5 != uVar18)" ( (binary_expression "*(byte *)puVar5 != uVar18" (pointer_expression "*(byte *)puVar5" * (cast_expression "(byte *)puVar5" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) != identifier) )) && (parenthesized_expression "(*(byte *)puVar5 != uVar19)" ( (binary_expression "*(byte *)puVar5 != uVar19" (pointer_expression "*(byte *)puVar5" * (cast_expression "(byte *)puVar5" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) != identifier) ))) )) ;) }))) (return_statement "return puVar5;" return identifier ;) })))
(translation_unit "ssize_t getndelim2(char **lineptr,size_t *linesize,size_t offset,size_t nmax,int delim1,int delim2,\n                  FILE *stream)\n\n{\n  byte bVar1;\n  bool bVar2;\n  bool bVar3;\n  undefined *puVar4;\n  size_t sVar5;\n  size_t *psVar6;\n  size_t *s;\n  char *pcVar7;\n  ssize_t sVar8;\n  size_t *psVar9;\n  uint *s_00;\n  void *pvVar10;\n  uint uVar11;\n  byte *pbVar12;\n  uint uVar13;\n  size_t *psVar14;\n  uint uVar15;\n  size_t *psVar16;\n  uint uVar17;\n  size_t *n;\n  uint *puVar18;\n  uint uVar19;\n  uint uVar20;\n  size_t *psVar21;\n  char *pcVar22;\n  int iVar23;\n  size_t *psVar24;\n  size_t *c1_in;\n  char *pcVar25;\n  size_t *local_48;\n  size_t buffer_len;\n  uint *local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_0002b2f8;\n  local_2c = *(uint **)PTR___stack_chk_guard_0002b2f8;\n  pcVar25 = *lineptr;\n  psVar24 = (size_t *)*linesize;\n  psVar14 = linesize;\n  psVar16 = (size_t *)offset;\n  n = (size_t *)nmax;\n  if (pcVar25 == (char *)0x0) {\n    psVar24 = (size_t *)nmax;\n    if (0x40 < nmax) {\n      psVar24 = (size_t *)0x40;\n    }\n    pcVar25 = (char *)(*(code *)PTR_malloc_0002b2b4)(psVar24);\n    if (pcVar25 != (char *)0x0) goto LAB_00013ed4;\n    sVar8 = -1;\n  }\n  else {\nLAB_00013ed4:\n    psVar9 = psVar16;\n    if (offset <= psVar24) {\n      psVar21 = (size_t *)((int)psVar24 - offset);\n      pcVar22 = pcVar25 + offset;\n      if ((psVar21 != (size_t *)0x0) || (psVar24 < nmax)) {\n        c1_in = (size_t *)delim2;\n        if ((delim1 != -1) && (c1_in = (size_t *)delim1, delim2 == -1)) {\n          delim2 = delim1;\n        }\n        psVar6 = (size_t *)(offset + 0x80000000);\n        do {\n          psVar14 = &buffer_len;\n          s = (size_t *)freadptr(stream,&buffer_len);\n          sVar5 = buffer_len;\n          pcVar7 = pcVar25;\n          if (s == (size_t *)0x0) {\n            pbVar12 = (byte *)stream->_IO_read_ptr;\n            if (pbVar12 < stream->_IO_read_end) {\n              stream->_IO_read_ptr = (char *)(pbVar12 + 1);\n              local_48 = (size_t *)(uint)*pbVar12;\n            }\n            else {\n              local_48 = (size_t *)(*(code *)PTR___uflow_0002b264)(stream);\n              if (local_48 == (size_t *)0xffffffff) {\n                psVar9 = psVar16;\n                if (pcVar22 == pcVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = c1_in == local_48 || (size_t *)delim2 == local_48;\n            n = (size_t *)0x2;\n            buffer_len = 1;\n          }\n          else if ((c1_in == (size_t *)0xffffffff) ||\n                  (psVar14 = c1_in, psVar16 = (size_t *)delim2,\n                  pvVar10 = memchr2(s,(int)c1_in,delim2,buffer_len), pvVar10 == (void *)0x0)) {\n            n = (size_t *)(sVar5 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            buffer_len = (int)pvVar10 + (1 - (int)s);\n            n = (size_t *)((int)pvVar10 + (2 - (int)s));\n          }\n          bVar2 = psVar21 < (size_t *)0x2;\n          if ((psVar21 < n) && (bVar2 = psVar21 < (size_t *)0x2, psVar24 < nmax)) {\n            iVar23 = (int)pcVar22 - (int)pcVar25;\n            psVar16 = (size_t *)nmax;\n            if (psVar24 < (size_t *)0x40) {\n              psVar9 = psVar24 + 0x10;\n              if ((size_t *)((int)psVar9 - iVar23) < n) {\nLAB_0001414c:\n                psVar9 = (size_t *)((int)n + iVar23);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (psVar9 < nmax) {\n                psVar16 = psVar9;\n              }\n            }\n            else {\n              psVar9 = (size_t *)((int)psVar24 * 2);\n              if ((size_t *)((int)psVar9 - iVar23) < n) goto LAB_0001414c;\nLAB_00014154:\n              if (psVar24 < psVar9) goto LAB_00013f98;\n            }\n            if (((int)((int)psVar16 - offset) < 0) &&\n               (psVar16 = psVar6, psVar9 = psVar6, psVar24 == psVar6)) goto LAB_000140b0;\n            psVar21 = (size_t *)((int)psVar16 - iVar23);\n            psVar14 = psVar16;\n            psVar9 = psVar16;\n            pcVar7 = (char *)(*(code *)PTR_realloc_0002b2b8)(pcVar25);\n            if (pcVar7 == (char *)0x0) goto LAB_000140b0;\n            pcVar22 = pcVar7 + iVar23;\n            bVar2 = psVar21 < (size_t *)0x2;\n            psVar24 = psVar16;\n          }\n          if (!bVar2) {\n            n = (size_t *)((int)psVar21 + -1);\n            if (buffer_len <= (size_t *)((int)psVar21 + -1)) {\n              n = (size_t *)buffer_len;\n            }\n            if (s == (size_t *)0x0) {\n              *pcVar22 = (char)local_48;\n            }\n            else {\n              psVar14 = s;\n              psVar16 = n;\n              (*(code *)PTR_memcpy_0002b2fc)(pcVar22);\n            }\n            pcVar22 = pcVar22 + (int)n;\n            psVar21 = (size_t *)((int)psVar21 - (int)n);\n          }\n          pcVar25 = pcVar7;\n          if ((s != (size_t *)0x0) &&\n             (psVar14 = (size_t *)buffer_len, iVar23 = freadseek(stream,buffer_len),\n             psVar9 = psVar16, iVar23 != 0)) goto LAB_000140b0;\n        } while (!bVar3);\n        *pcVar22 = '\0';\n        *lineptr = pcVar7;\n        sVar8 = (int)pcVar22 - (int)(pcVar7 + offset);\n        *linesize = (size_t)psVar24;\n        if (sVar8 == 0) {\n          sVar8 = -1;\n        }\n        goto LAB_000140c0;\n      }\n    }\nLAB_000140b0:\n    psVar16 = psVar9;\n    *lineptr = pcVar25;\n    sVar8 = -1;\n    *linesize = (size_t)psVar24;\n  }\nLAB_000140c0:\n  if (local_2c == *(uint **)puVar4) {\n    return sVar8;\n  }\n  s_00 = local_2c;\n  (*(code *)PTR___stack_chk_fail_0002b2e0)();\n  uVar19 = (uint)psVar14 & 0xff;\n  uVar20 = (uint)psVar16 & 0xff;\n  if (uVar19 == uVar20) {\n    pvVar10 = rpl_memchr(s_00,(uint)psVar14 & 0xff,(size_t)n);\n    return (ssize_t)pvVar10;\n  }\n  if ((n != (size_t *)0x0) && (((uint)s_00 & 3) != 0)) {\n    if (uVar19 == *(byte *)s_00) {\n      return (ssize_t)s_00;\n    }\n    if (uVar20 == *(byte *)s_00) {\n      return (ssize_t)s_00;\n    }\n    while( true ) {\n      n = (size_t *)((int)n + -1);\n      s_00 = (uint *)((int)s_00 + 1);\n      if ((n == (size_t *)0x0) || (((uint)s_00 & 3) == 0)) break;\n      if (*(byte *)s_00 == uVar19) {\n        return (ssize_t)s_00;\n      }\n      if (*(byte *)s_00 == uVar20) {\n        return (ssize_t)s_00;\n      }\n    }\n  }\n  uVar15 = ((uint)psVar14 & 0xff) << 8 | (uint)psVar14 & 0xff;\n  uVar17 = ((uint)psVar16 & 0xff) << 8 | (uint)psVar16 & 0xff;\n  uVar15 = uVar15 << 0x10 | uVar15;\n  uVar17 = uVar17 << 0x10 | uVar17;\n  if (n < (size_t *)0x4) {\nLAB_0001433c:\n    if (n == (size_t *)0x0) {\n      return 0;\n    }\n  }\n  else {\n    uVar11 = uVar15 ^ *s_00;\n    uVar13 = uVar17 ^ *s_00;\n    if (((~uVar11 & uVar11 + 0xfefefeff | ~uVar13 & uVar13 + 0xfefefeff) & 0x80808080) != 0) {\n      bVar1 = *(byte *)s_00;\n      goto LAB_00014348;\n    }\n    do {\n      n = n + -1;\n      s_00 = s_00 + 1;\n      if (n < (size_t *)0x4) goto LAB_0001433c;\n      uVar13 = *s_00 ^ uVar15;\n      uVar11 = *s_00 ^ uVar17;\n    } while (((uVar13 + 0xfefefeff & ~uVar13 | uVar11 + 0xfefefeff & ~uVar11) & 0x80808080) == 0);\n  }\n  bVar1 = *(byte *)s_00;\nLAB_00014348:\n  if ((uVar19 != bVar1) && (uVar20 != bVar1)) {\n    puVar18 = (uint *)((int)s_00 + (int)n);\n    do {\n      s_00 = (uint *)((int)s_00 + 1);\n      if (s_00 == puVar18) {\n        return 0;\n      }\n    } while ((*(byte *)s_00 != uVar19) && (*(byte *)s_00 != uVar20));\n  }\n  return (ssize_t)s_00;\n}\n\n" (function_definition "ssize_t getndelim2(char **lineptr,size_t *linesize,size_t offset,size_t nmax,int delim1,int delim2,\n                  FILE *stream)\n\n{\n  byte bVar1;\n  bool bVar2;\n  bool bVar3;\n  undefined *puVar4;\n  size_t sVar5;\n  size_t *psVar6;\n  size_t *s;\n  char *pcVar7;\n  ssize_t sVar8;\n  size_t *psVar9;\n  uint *s_00;\n  void *pvVar10;\n  uint uVar11;\n  byte *pbVar12;\n  uint uVar13;\n  size_t *psVar14;\n  uint uVar15;\n  size_t *psVar16;\n  uint uVar17;\n  size_t *n;\n  uint *puVar18;\n  uint uVar19;\n  uint uVar20;\n  size_t *psVar21;\n  char *pcVar22;\n  int iVar23;\n  size_t *psVar24;\n  size_t *c1_in;\n  char *pcVar25;\n  size_t *local_48;\n  size_t buffer_len;\n  uint *local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_0002b2f8;\n  local_2c = *(uint **)PTR___stack_chk_guard_0002b2f8;\n  pcVar25 = *lineptr;\n  psVar24 = (size_t *)*linesize;\n  psVar14 = linesize;\n  psVar16 = (size_t *)offset;\n  n = (size_t *)nmax;\n  if (pcVar25 == (char *)0x0) {\n    psVar24 = (size_t *)nmax;\n    if (0x40 < nmax) {\n      psVar24 = (size_t *)0x40;\n    }\n    pcVar25 = (char *)(*(code *)PTR_malloc_0002b2b4)(psVar24);\n    if (pcVar25 != (char *)0x0) goto LAB_00013ed4;\n    sVar8 = -1;\n  }\n  else {\nLAB_00013ed4:\n    psVar9 = psVar16;\n    if (offset <= psVar24) {\n      psVar21 = (size_t *)((int)psVar24 - offset);\n      pcVar22 = pcVar25 + offset;\n      if ((psVar21 != (size_t *)0x0) || (psVar24 < nmax)) {\n        c1_in = (size_t *)delim2;\n        if ((delim1 != -1) && (c1_in = (size_t *)delim1, delim2 == -1)) {\n          delim2 = delim1;\n        }\n        psVar6 = (size_t *)(offset + 0x80000000);\n        do {\n          psVar14 = &buffer_len;\n          s = (size_t *)freadptr(stream,&buffer_len);\n          sVar5 = buffer_len;\n          pcVar7 = pcVar25;\n          if (s == (size_t *)0x0) {\n            pbVar12 = (byte *)stream->_IO_read_ptr;\n            if (pbVar12 < stream->_IO_read_end) {\n              stream->_IO_read_ptr = (char *)(pbVar12 + 1);\n              local_48 = (size_t *)(uint)*pbVar12;\n            }\n            else {\n              local_48 = (size_t *)(*(code *)PTR___uflow_0002b264)(stream);\n              if (local_48 == (size_t *)0xffffffff) {\n                psVar9 = psVar16;\n                if (pcVar22 == pcVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = c1_in == local_48 || (size_t *)delim2 == local_48;\n            n = (size_t *)0x2;\n            buffer_len = 1;\n          }\n          else if ((c1_in == (size_t *)0xffffffff) ||\n                  (psVar14 = c1_in, psVar16 = (size_t *)delim2,\n                  pvVar10 = memchr2(s,(int)c1_in,delim2,buffer_len), pvVar10 == (void *)0x0)) {\n            n = (size_t *)(sVar5 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            buffer_len = (int)pvVar10 + (1 - (int)s);\n            n = (size_t *)((int)pvVar10 + (2 - (int)s));\n          }\n          bVar2 = psVar21 < (size_t *)0x2;\n          if ((psVar21 < n) && (bVar2 = psVar21 < (size_t *)0x2, psVar24 < nmax)) {\n            iVar23 = (int)pcVar22 - (int)pcVar25;\n            psVar16 = (size_t *)nmax;\n            if (psVar24 < (size_t *)0x40) {\n              psVar9 = psVar24 + 0x10;\n              if ((size_t *)((int)psVar9 - iVar23) < n) {\nLAB_0001414c:\n                psVar9 = (size_t *)((int)n + iVar23);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (psVar9 < nmax) {\n                psVar16 = psVar9;\n              }\n            }\n            else {\n              psVar9 = (size_t *)((int)psVar24 * 2);\n              if ((size_t *)((int)psVar9 - iVar23) < n) goto LAB_0001414c;\nLAB_00014154:\n              if (psVar24 < psVar9) goto LAB_00013f98;\n            }\n            if (((int)((int)psVar16 - offset) < 0) &&\n               (psVar16 = psVar6, psVar9 = psVar6, psVar24 == psVar6)) goto LAB_000140b0;\n            psVar21 = (size_t *)((int)psVar16 - iVar23);\n            psVar14 = psVar16;\n            psVar9 = psVar16;\n            pcVar7 = (char *)(*(code *)PTR_realloc_0002b2b8)(pcVar25);\n            if (pcVar7 == (char *)0x0) goto LAB_000140b0;\n            pcVar22 = pcVar7 + iVar23;\n            bVar2 = psVar21 < (size_t *)0x2;\n            psVar24 = psVar16;\n          }\n          if (!bVar2) {\n            n = (size_t *)((int)psVar21 + -1);\n            if (buffer_len <= (size_t *)((int)psVar21 + -1)) {\n              n = (size_t *)buffer_len;\n            }\n            if (s == (size_t *)0x0) {\n              *pcVar22 = (char)local_48;\n            }\n            else {\n              psVar14 = s;\n              psVar16 = n;\n              (*(code *)PTR_memcpy_0002b2fc)(pcVar22);\n            }\n            pcVar22 = pcVar22 + (int)n;\n            psVar21 = (size_t *)((int)psVar21 - (int)n);\n          }\n          pcVar25 = pcVar7;\n          if ((s != (size_t *)0x0) &&\n             (psVar14 = (size_t *)buffer_len, iVar23 = freadseek(stream,buffer_len),\n             psVar9 = psVar16, iVar23 != 0)) goto LAB_000140b0;\n        } while (!bVar3);\n        *pcVar22 = '\0';\n        *lineptr = pcVar7;\n        sVar8 = (int)pcVar22 - (int)(pcVar7 + offset);\n        *linesize = (size_t)psVar24;\n        if (sVar8 == 0) {\n          sVar8 = -1;\n        }\n        goto LAB_000140c0;\n      }\n    }\nLAB_000140b0:\n    psVar16 = psVar9;\n    *lineptr = pcVar25;\n    sVar8 = -1;\n    *linesize = (size_t)psVar24;\n  }\nLAB_000140c0:\n  if (local_2c == *(uint **)puVar4) {\n    return sVar8;\n  }\n  s_00 = local_2c;\n  (*(code *)PTR___stack_chk_fail_0002b2e0)();\n  uVar19 = (uint)psVar14 & 0xff;\n  uVar20 = (uint)psVar16 & 0xff;\n  if (uVar19 == uVar20) {\n    pvVar10 = rpl_memchr(s_00,(uint)psVar14 & 0xff,(size_t)n);\n    return (ssize_t)pvVar10;\n  }\n  if ((n != (size_t *)0x0) && (((uint)s_00 & 3) != 0)) {\n    if (uVar19 == *(byte *)s_00) {\n      return (ssize_t)s_00;\n    }\n    if (uVar20 == *(byte *)s_00) {\n      return (ssize_t)s_00;\n    }\n    while( true ) {\n      n = (size_t *)((int)n + -1);\n      s_00 = (uint *)((int)s_00 + 1);\n      if ((n == (size_t *)0x0) || (((uint)s_00 & 3) == 0)) break;\n      if (*(byte *)s_00 == uVar19) {\n        return (ssize_t)s_00;\n      }\n      if (*(byte *)s_00 == uVar20) {\n        return (ssize_t)s_00;\n      }\n    }\n  }\n  uVar15 = ((uint)psVar14 & 0xff) << 8 | (uint)psVar14 & 0xff;\n  uVar17 = ((uint)psVar16 & 0xff) << 8 | (uint)psVar16 & 0xff;\n  uVar15 = uVar15 << 0x10 | uVar15;\n  uVar17 = uVar17 << 0x10 | uVar17;\n  if (n < (size_t *)0x4) {\nLAB_0001433c:\n    if (n == (size_t *)0x0) {\n      return 0;\n    }\n  }\n  else {\n    uVar11 = uVar15 ^ *s_00;\n    uVar13 = uVar17 ^ *s_00;\n    if (((~uVar11 & uVar11 + 0xfefefeff | ~uVar13 & uVar13 + 0xfefefeff) & 0x80808080) != 0) {\n      bVar1 = *(byte *)s_00;\n      goto LAB_00014348;\n    }\n    do {\n      n = n + -1;\n      s_00 = s_00 + 1;\n      if (n < (size_t *)0x4) goto LAB_0001433c;\n      uVar13 = *s_00 ^ uVar15;\n      uVar11 = *s_00 ^ uVar17;\n    } while (((uVar13 + 0xfefefeff & ~uVar13 | uVar11 + 0xfefefeff & ~uVar11) & 0x80808080) == 0);\n  }\n  bVar1 = *(byte *)s_00;\nLAB_00014348:\n  if ((uVar19 != bVar1) && (uVar20 != bVar1)) {\n    puVar18 = (uint *)((int)s_00 + (int)n);\n    do {\n      s_00 = (uint *)((int)s_00 + 1);\n      if (s_00 == puVar18) {\n        return 0;\n      }\n    } while ((*(byte *)s_00 != uVar19) && (*(byte *)s_00 != uVar20));\n  }\n  return (ssize_t)s_00;\n}" primitive_type (function_declarator "getndelim2(char **lineptr,size_t *linesize,size_t offset,size_t nmax,int delim1,int delim2,\n                  FILE *stream)" identifier (parameter_list "(char **lineptr,size_t *linesize,size_t offset,size_t nmax,int delim1,int delim2,\n                  FILE *stream)" ( (parameter_declaration "char **lineptr" primitive_type (pointer_declarator "**lineptr" * (pointer_declarator "*lineptr" * identifier))) , (parameter_declaration "size_t *linesize" primitive_type (pointer_declarator "*linesize" * identifier)) , (parameter_declaration "size_t offset" primitive_type identifier) , (parameter_declaration "size_t nmax" primitive_type identifier) , (parameter_declaration "int delim1" primitive_type identifier) , (parameter_declaration "int delim2" primitive_type identifier) , (parameter_declaration "FILE *stream" type_identifier (pointer_declarator "*stream" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  bool bVar2;\n  bool bVar3;\n  undefined *puVar4;\n  size_t sVar5;\n  size_t *psVar6;\n  size_t *s;\n  char *pcVar7;\n  ssize_t sVar8;\n  size_t *psVar9;\n  uint *s_00;\n  void *pvVar10;\n  uint uVar11;\n  byte *pbVar12;\n  uint uVar13;\n  size_t *psVar14;\n  uint uVar15;\n  size_t *psVar16;\n  uint uVar17;\n  size_t *n;\n  uint *puVar18;\n  uint uVar19;\n  uint uVar20;\n  size_t *psVar21;\n  char *pcVar22;\n  int iVar23;\n  size_t *psVar24;\n  size_t *c1_in;\n  char *pcVar25;\n  size_t *local_48;\n  size_t buffer_len;\n  uint *local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_0002b2f8;\n  local_2c = *(uint **)PTR___stack_chk_guard_0002b2f8;\n  pcVar25 = *lineptr;\n  psVar24 = (size_t *)*linesize;\n  psVar14 = linesize;\n  psVar16 = (size_t *)offset;\n  n = (size_t *)nmax;\n  if (pcVar25 == (char *)0x0) {\n    psVar24 = (size_t *)nmax;\n    if (0x40 < nmax) {\n      psVar24 = (size_t *)0x40;\n    }\n    pcVar25 = (char *)(*(code *)PTR_malloc_0002b2b4)(psVar24);\n    if (pcVar25 != (char *)0x0) goto LAB_00013ed4;\n    sVar8 = -1;\n  }\n  else {\nLAB_00013ed4:\n    psVar9 = psVar16;\n    if (offset <= psVar24) {\n      psVar21 = (size_t *)((int)psVar24 - offset);\n      pcVar22 = pcVar25 + offset;\n      if ((psVar21 != (size_t *)0x0) || (psVar24 < nmax)) {\n        c1_in = (size_t *)delim2;\n        if ((delim1 != -1) && (c1_in = (size_t *)delim1, delim2 == -1)) {\n          delim2 = delim1;\n        }\n        psVar6 = (size_t *)(offset + 0x80000000);\n        do {\n          psVar14 = &buffer_len;\n          s = (size_t *)freadptr(stream,&buffer_len);\n          sVar5 = buffer_len;\n          pcVar7 = pcVar25;\n          if (s == (size_t *)0x0) {\n            pbVar12 = (byte *)stream->_IO_read_ptr;\n            if (pbVar12 < stream->_IO_read_end) {\n              stream->_IO_read_ptr = (char *)(pbVar12 + 1);\n              local_48 = (size_t *)(uint)*pbVar12;\n            }\n            else {\n              local_48 = (size_t *)(*(code *)PTR___uflow_0002b264)(stream);\n              if (local_48 == (size_t *)0xffffffff) {\n                psVar9 = psVar16;\n                if (pcVar22 == pcVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = c1_in == local_48 || (size_t *)delim2 == local_48;\n            n = (size_t *)0x2;\n            buffer_len = 1;\n          }\n          else if ((c1_in == (size_t *)0xffffffff) ||\n                  (psVar14 = c1_in, psVar16 = (size_t *)delim2,\n                  pvVar10 = memchr2(s,(int)c1_in,delim2,buffer_len), pvVar10 == (void *)0x0)) {\n            n = (size_t *)(sVar5 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            buffer_len = (int)pvVar10 + (1 - (int)s);\n            n = (size_t *)((int)pvVar10 + (2 - (int)s));\n          }\n          bVar2 = psVar21 < (size_t *)0x2;\n          if ((psVar21 < n) && (bVar2 = psVar21 < (size_t *)0x2, psVar24 < nmax)) {\n            iVar23 = (int)pcVar22 - (int)pcVar25;\n            psVar16 = (size_t *)nmax;\n            if (psVar24 < (size_t *)0x40) {\n              psVar9 = psVar24 + 0x10;\n              if ((size_t *)((int)psVar9 - iVar23) < n) {\nLAB_0001414c:\n                psVar9 = (size_t *)((int)n + iVar23);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (psVar9 < nmax) {\n                psVar16 = psVar9;\n              }\n            }\n            else {\n              psVar9 = (size_t *)((int)psVar24 * 2);\n              if ((size_t *)((int)psVar9 - iVar23) < n) goto LAB_0001414c;\nLAB_00014154:\n              if (psVar24 < psVar9) goto LAB_00013f98;\n            }\n            if (((int)((int)psVar16 - offset) < 0) &&\n               (psVar16 = psVar6, psVar9 = psVar6, psVar24 == psVar6)) goto LAB_000140b0;\n            psVar21 = (size_t *)((int)psVar16 - iVar23);\n            psVar14 = psVar16;\n            psVar9 = psVar16;\n            pcVar7 = (char *)(*(code *)PTR_realloc_0002b2b8)(pcVar25);\n            if (pcVar7 == (char *)0x0) goto LAB_000140b0;\n            pcVar22 = pcVar7 + iVar23;\n            bVar2 = psVar21 < (size_t *)0x2;\n            psVar24 = psVar16;\n          }\n          if (!bVar2) {\n            n = (size_t *)((int)psVar21 + -1);\n            if (buffer_len <= (size_t *)((int)psVar21 + -1)) {\n              n = (size_t *)buffer_len;\n            }\n            if (s == (size_t *)0x0) {\n              *pcVar22 = (char)local_48;\n            }\n            else {\n              psVar14 = s;\n              psVar16 = n;\n              (*(code *)PTR_memcpy_0002b2fc)(pcVar22);\n            }\n            pcVar22 = pcVar22 + (int)n;\n            psVar21 = (size_t *)((int)psVar21 - (int)n);\n          }\n          pcVar25 = pcVar7;\n          if ((s != (size_t *)0x0) &&\n             (psVar14 = (size_t *)buffer_len, iVar23 = freadseek(stream,buffer_len),\n             psVar9 = psVar16, iVar23 != 0)) goto LAB_000140b0;\n        } while (!bVar3);\n        *pcVar22 = '\0';\n        *lineptr = pcVar7;\n        sVar8 = (int)pcVar22 - (int)(pcVar7 + offset);\n        *linesize = (size_t)psVar24;\n        if (sVar8 == 0) {\n          sVar8 = -1;\n        }\n        goto LAB_000140c0;\n      }\n    }\nLAB_000140b0:\n    psVar16 = psVar9;\n    *lineptr = pcVar25;\n    sVar8 = -1;\n    *linesize = (size_t)psVar24;\n  }\nLAB_000140c0:\n  if (local_2c == *(uint **)puVar4) {\n    return sVar8;\n  }\n  s_00 = local_2c;\n  (*(code *)PTR___stack_chk_fail_0002b2e0)();\n  uVar19 = (uint)psVar14 & 0xff;\n  uVar20 = (uint)psVar16 & 0xff;\n  if (uVar19 == uVar20) {\n    pvVar10 = rpl_memchr(s_00,(uint)psVar14 & 0xff,(size_t)n);\n    return (ssize_t)pvVar10;\n  }\n  if ((n != (size_t *)0x0) && (((uint)s_00 & 3) != 0)) {\n    if (uVar19 == *(byte *)s_00) {\n      return (ssize_t)s_00;\n    }\n    if (uVar20 == *(byte *)s_00) {\n      return (ssize_t)s_00;\n    }\n    while( true ) {\n      n = (size_t *)((int)n + -1);\n      s_00 = (uint *)((int)s_00 + 1);\n      if ((n == (size_t *)0x0) || (((uint)s_00 & 3) == 0)) break;\n      if (*(byte *)s_00 == uVar19) {\n        return (ssize_t)s_00;\n      }\n      if (*(byte *)s_00 == uVar20) {\n        return (ssize_t)s_00;\n      }\n    }\n  }\n  uVar15 = ((uint)psVar14 & 0xff) << 8 | (uint)psVar14 & 0xff;\n  uVar17 = ((uint)psVar16 & 0xff) << 8 | (uint)psVar16 & 0xff;\n  uVar15 = uVar15 << 0x10 | uVar15;\n  uVar17 = uVar17 << 0x10 | uVar17;\n  if (n < (size_t *)0x4) {\nLAB_0001433c:\n    if (n == (size_t *)0x0) {\n      return 0;\n    }\n  }\n  else {\n    uVar11 = uVar15 ^ *s_00;\n    uVar13 = uVar17 ^ *s_00;\n    if (((~uVar11 & uVar11 + 0xfefefeff | ~uVar13 & uVar13 + 0xfefefeff) & 0x80808080) != 0) {\n      bVar1 = *(byte *)s_00;\n      goto LAB_00014348;\n    }\n    do {\n      n = n + -1;\n      s_00 = s_00 + 1;\n      if (n < (size_t *)0x4) goto LAB_0001433c;\n      uVar13 = *s_00 ^ uVar15;\n      uVar11 = *s_00 ^ uVar17;\n    } while (((uVar13 + 0xfefefeff & ~uVar13 | uVar11 + 0xfefefeff & ~uVar11) & 0x80808080) == 0);\n  }\n  bVar1 = *(byte *)s_00;\nLAB_00014348:\n  if ((uVar19 != bVar1) && (uVar20 != bVar1)) {\n    puVar18 = (uint *)((int)s_00 + (int)n);\n    do {\n      s_00 = (uint *)((int)s_00 + 1);\n      if (s_00 == puVar18) {\n        return 0;\n      }\n    } while ((*(byte *)s_00 != uVar19) && (*(byte *)s_00 != uVar20));\n  }\n  return (ssize_t)s_00;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "size_t sVar5;" primitive_type identifier ;) (declaration "size_t *psVar6;" primitive_type (pointer_declarator "*psVar6" * identifier) ;) (declaration "size_t *s;" primitive_type (pointer_declarator "*s" * identifier) ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "ssize_t sVar8;" primitive_type identifier ;) (declaration "size_t *psVar9;" primitive_type (pointer_declarator "*psVar9" * identifier) ;) (declaration "uint *s_00;" type_identifier (pointer_declarator "*s_00" * identifier) ;) (declaration "void *pvVar10;" primitive_type (pointer_declarator "*pvVar10" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "size_t *psVar14;" primitive_type (pointer_declarator "*psVar14" * identifier) ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "size_t *psVar16;" primitive_type (pointer_declarator "*psVar16" * identifier) ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "size_t *n;" primitive_type (pointer_declarator "*n" * identifier) ;) (declaration "uint *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "size_t *psVar21;" primitive_type (pointer_declarator "*psVar21" * identifier) ;) (declaration "char *pcVar22;" primitive_type (pointer_declarator "*pcVar22" * identifier) ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "size_t *psVar24;" primitive_type (pointer_declarator "*psVar24" * identifier) ;) (declaration "size_t *c1_in;" primitive_type (pointer_declarator "*c1_in" * identifier) ;) (declaration "char *pcVar25;" primitive_type (pointer_declarator "*pcVar25" * identifier) ;) (declaration "size_t *local_48;" primitive_type (pointer_declarator "*local_48" * identifier) ;) (declaration "size_t buffer_len;" primitive_type identifier ;) (declaration "uint *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (expression_statement "puVar4 = PTR___stack_chk_guard_0002b2f8;" (assignment_expression "puVar4 = PTR___stack_chk_guard_0002b2f8" identifier = identifier) ;) (expression_statement "local_2c = *(uint **)PTR___stack_chk_guard_0002b2f8;" (assignment_expression "local_2c = *(uint **)PTR___stack_chk_guard_0002b2f8" identifier = (pointer_expression "*(uint **)PTR___stack_chk_guard_0002b2f8" * (cast_expression "(uint **)PTR___stack_chk_guard_0002b2f8" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar25 = *lineptr;" (assignment_expression "pcVar25 = *lineptr" identifier = (pointer_expression "*lineptr" * identifier)) ;) (expression_statement "psVar24 = (size_t *)*linesize;" (assignment_expression "psVar24 = (size_t *)*linesize" identifier = (cast_expression "(size_t *)*linesize" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*linesize" * identifier))) ;) (expression_statement "psVar14 = linesize;" (assignment_expression "psVar14 = linesize" identifier = identifier) ;) (expression_statement "psVar16 = (size_t *)offset;" (assignment_expression "psVar16 = (size_t *)offset" identifier = (cast_expression "(size_t *)offset" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "n = (size_t *)nmax;" (assignment_expression "n = (size_t *)nmax" identifier = (cast_expression "(size_t *)nmax" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (pcVar25 == (char *)0x0) {\n    psVar24 = (size_t *)nmax;\n    if (0x40 < nmax) {\n      psVar24 = (size_t *)0x40;\n    }\n    pcVar25 = (char *)(*(code *)PTR_malloc_0002b2b4)(psVar24);\n    if (pcVar25 != (char *)0x0) goto LAB_00013ed4;\n    sVar8 = -1;\n  }\n  else {\nLAB_00013ed4:\n    psVar9 = psVar16;\n    if (offset <= psVar24) {\n      psVar21 = (size_t *)((int)psVar24 - offset);\n      pcVar22 = pcVar25 + offset;\n      if ((psVar21 != (size_t *)0x0) || (psVar24 < nmax)) {\n        c1_in = (size_t *)delim2;\n        if ((delim1 != -1) && (c1_in = (size_t *)delim1, delim2 == -1)) {\n          delim2 = delim1;\n        }\n        psVar6 = (size_t *)(offset + 0x80000000);\n        do {\n          psVar14 = &buffer_len;\n          s = (size_t *)freadptr(stream,&buffer_len);\n          sVar5 = buffer_len;\n          pcVar7 = pcVar25;\n          if (s == (size_t *)0x0) {\n            pbVar12 = (byte *)stream->_IO_read_ptr;\n            if (pbVar12 < stream->_IO_read_end) {\n              stream->_IO_read_ptr = (char *)(pbVar12 + 1);\n              local_48 = (size_t *)(uint)*pbVar12;\n            }\n            else {\n              local_48 = (size_t *)(*(code *)PTR___uflow_0002b264)(stream);\n              if (local_48 == (size_t *)0xffffffff) {\n                psVar9 = psVar16;\n                if (pcVar22 == pcVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = c1_in == local_48 || (size_t *)delim2 == local_48;\n            n = (size_t *)0x2;\n            buffer_len = 1;\n          }\n          else if ((c1_in == (size_t *)0xffffffff) ||\n                  (psVar14 = c1_in, psVar16 = (size_t *)delim2,\n                  pvVar10 = memchr2(s,(int)c1_in,delim2,buffer_len), pvVar10 == (void *)0x0)) {\n            n = (size_t *)(sVar5 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            buffer_len = (int)pvVar10 + (1 - (int)s);\n            n = (size_t *)((int)pvVar10 + (2 - (int)s));\n          }\n          bVar2 = psVar21 < (size_t *)0x2;\n          if ((psVar21 < n) && (bVar2 = psVar21 < (size_t *)0x2, psVar24 < nmax)) {\n            iVar23 = (int)pcVar22 - (int)pcVar25;\n            psVar16 = (size_t *)nmax;\n            if (psVar24 < (size_t *)0x40) {\n              psVar9 = psVar24 + 0x10;\n              if ((size_t *)((int)psVar9 - iVar23) < n) {\nLAB_0001414c:\n                psVar9 = (size_t *)((int)n + iVar23);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (psVar9 < nmax) {\n                psVar16 = psVar9;\n              }\n            }\n            else {\n              psVar9 = (size_t *)((int)psVar24 * 2);\n              if ((size_t *)((int)psVar9 - iVar23) < n) goto LAB_0001414c;\nLAB_00014154:\n              if (psVar24 < psVar9) goto LAB_00013f98;\n            }\n            if (((int)((int)psVar16 - offset) < 0) &&\n               (psVar16 = psVar6, psVar9 = psVar6, psVar24 == psVar6)) goto LAB_000140b0;\n            psVar21 = (size_t *)((int)psVar16 - iVar23);\n            psVar14 = psVar16;\n            psVar9 = psVar16;\n            pcVar7 = (char *)(*(code *)PTR_realloc_0002b2b8)(pcVar25);\n            if (pcVar7 == (char *)0x0) goto LAB_000140b0;\n            pcVar22 = pcVar7 + iVar23;\n            bVar2 = psVar21 < (size_t *)0x2;\n            psVar24 = psVar16;\n          }\n          if (!bVar2) {\n            n = (size_t *)((int)psVar21 + -1);\n            if (buffer_len <= (size_t *)((int)psVar21 + -1)) {\n              n = (size_t *)buffer_len;\n            }\n            if (s == (size_t *)0x0) {\n              *pcVar22 = (char)local_48;\n            }\n            else {\n              psVar14 = s;\n              psVar16 = n;\n              (*(code *)PTR_memcpy_0002b2fc)(pcVar22);\n            }\n            pcVar22 = pcVar22 + (int)n;\n            psVar21 = (size_t *)((int)psVar21 - (int)n);\n          }\n          pcVar25 = pcVar7;\n          if ((s != (size_t *)0x0) &&\n             (psVar14 = (size_t *)buffer_len, iVar23 = freadseek(stream,buffer_len),\n             psVar9 = psVar16, iVar23 != 0)) goto LAB_000140b0;\n        } while (!bVar3);\n        *pcVar22 = '\0';\n        *lineptr = pcVar7;\n        sVar8 = (int)pcVar22 - (int)(pcVar7 + offset);\n        *linesize = (size_t)psVar24;\n        if (sVar8 == 0) {\n          sVar8 = -1;\n        }\n        goto LAB_000140c0;\n      }\n    }\nLAB_000140b0:\n    psVar16 = psVar9;\n    *lineptr = pcVar25;\n    sVar8 = -1;\n    *linesize = (size_t)psVar24;\n  }" if (parenthesized_expression "(pcVar25 == (char *)0x0)" ( (binary_expression "pcVar25 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    psVar24 = (size_t *)nmax;\n    if (0x40 < nmax) {\n      psVar24 = (size_t *)0x40;\n    }\n    pcVar25 = (char *)(*(code *)PTR_malloc_0002b2b4)(psVar24);\n    if (pcVar25 != (char *)0x0) goto LAB_00013ed4;\n    sVar8 = -1;\n  }" { (expression_statement "psVar24 = (size_t *)nmax;" (assignment_expression "psVar24 = (size_t *)nmax" identifier = (cast_expression "(size_t *)nmax" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (0x40 < nmax) {\n      psVar24 = (size_t *)0x40;\n    }" if (parenthesized_expression "(0x40 < nmax)" ( (binary_expression "0x40 < nmax" number_literal < identifier) )) (compound_statement "{\n      psVar24 = (size_t *)0x40;\n    }" { (expression_statement "psVar24 = (size_t *)0x40;" (assignment_expression "psVar24 = (size_t *)0x40" identifier = (cast_expression "(size_t *)0x40" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "pcVar25 = (char *)(*(code *)PTR_malloc_0002b2b4)(psVar24);" (assignment_expression "pcVar25 = (char *)(*(code *)PTR_malloc_0002b2b4)(psVar24)" identifier = (cast_expression "(char *)(*(code *)PTR_malloc_0002b2b4)(psVar24)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_0002b2b4)(psVar24)" (parenthesized_expression "(*(code *)PTR_malloc_0002b2b4)" ( (pointer_expression "*(code *)PTR_malloc_0002b2b4" * (cast_expression "(code *)PTR_malloc_0002b2b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(psVar24)" ( identifier ))))) ;) (if_statement "if (pcVar25 != (char *)0x0) goto LAB_00013ed4;" if (parenthesized_expression "(pcVar25 != (char *)0x0)" ( (binary_expression "pcVar25 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00013ed4;" goto statement_identifier ;)) (expression_statement "sVar8 = -1;" (assignment_expression "sVar8 = -1" identifier = number_literal) ;) }) (else_clause "else {\nLAB_00013ed4:\n    psVar9 = psVar16;\n    if (offset <= psVar24) {\n      psVar21 = (size_t *)((int)psVar24 - offset);\n      pcVar22 = pcVar25 + offset;\n      if ((psVar21 != (size_t *)0x0) || (psVar24 < nmax)) {\n        c1_in = (size_t *)delim2;\n        if ((delim1 != -1) && (c1_in = (size_t *)delim1, delim2 == -1)) {\n          delim2 = delim1;\n        }\n        psVar6 = (size_t *)(offset + 0x80000000);\n        do {\n          psVar14 = &buffer_len;\n          s = (size_t *)freadptr(stream,&buffer_len);\n          sVar5 = buffer_len;\n          pcVar7 = pcVar25;\n          if (s == (size_t *)0x0) {\n            pbVar12 = (byte *)stream->_IO_read_ptr;\n            if (pbVar12 < stream->_IO_read_end) {\n              stream->_IO_read_ptr = (char *)(pbVar12 + 1);\n              local_48 = (size_t *)(uint)*pbVar12;\n            }\n            else {\n              local_48 = (size_t *)(*(code *)PTR___uflow_0002b264)(stream);\n              if (local_48 == (size_t *)0xffffffff) {\n                psVar9 = psVar16;\n                if (pcVar22 == pcVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = c1_in == local_48 || (size_t *)delim2 == local_48;\n            n = (size_t *)0x2;\n            buffer_len = 1;\n          }\n          else if ((c1_in == (size_t *)0xffffffff) ||\n                  (psVar14 = c1_in, psVar16 = (size_t *)delim2,\n                  pvVar10 = memchr2(s,(int)c1_in,delim2,buffer_len), pvVar10 == (void *)0x0)) {\n            n = (size_t *)(sVar5 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            buffer_len = (int)pvVar10 + (1 - (int)s);\n            n = (size_t *)((int)pvVar10 + (2 - (int)s));\n          }\n          bVar2 = psVar21 < (size_t *)0x2;\n          if ((psVar21 < n) && (bVar2 = psVar21 < (size_t *)0x2, psVar24 < nmax)) {\n            iVar23 = (int)pcVar22 - (int)pcVar25;\n            psVar16 = (size_t *)nmax;\n            if (psVar24 < (size_t *)0x40) {\n              psVar9 = psVar24 + 0x10;\n              if ((size_t *)((int)psVar9 - iVar23) < n) {\nLAB_0001414c:\n                psVar9 = (size_t *)((int)n + iVar23);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (psVar9 < nmax) {\n                psVar16 = psVar9;\n              }\n            }\n            else {\n              psVar9 = (size_t *)((int)psVar24 * 2);\n              if ((size_t *)((int)psVar9 - iVar23) < n) goto LAB_0001414c;\nLAB_00014154:\n              if (psVar24 < psVar9) goto LAB_00013f98;\n            }\n            if (((int)((int)psVar16 - offset) < 0) &&\n               (psVar16 = psVar6, psVar9 = psVar6, psVar24 == psVar6)) goto LAB_000140b0;\n            psVar21 = (size_t *)((int)psVar16 - iVar23);\n            psVar14 = psVar16;\n            psVar9 = psVar16;\n            pcVar7 = (char *)(*(code *)PTR_realloc_0002b2b8)(pcVar25);\n            if (pcVar7 == (char *)0x0) goto LAB_000140b0;\n            pcVar22 = pcVar7 + iVar23;\n            bVar2 = psVar21 < (size_t *)0x2;\n            psVar24 = psVar16;\n          }\n          if (!bVar2) {\n            n = (size_t *)((int)psVar21 + -1);\n            if (buffer_len <= (size_t *)((int)psVar21 + -1)) {\n              n = (size_t *)buffer_len;\n            }\n            if (s == (size_t *)0x0) {\n              *pcVar22 = (char)local_48;\n            }\n            else {\n              psVar14 = s;\n              psVar16 = n;\n              (*(code *)PTR_memcpy_0002b2fc)(pcVar22);\n            }\n            pcVar22 = pcVar22 + (int)n;\n            psVar21 = (size_t *)((int)psVar21 - (int)n);\n          }\n          pcVar25 = pcVar7;\n          if ((s != (size_t *)0x0) &&\n             (psVar14 = (size_t *)buffer_len, iVar23 = freadseek(stream,buffer_len),\n             psVar9 = psVar16, iVar23 != 0)) goto LAB_000140b0;\n        } while (!bVar3);\n        *pcVar22 = '\0';\n        *lineptr = pcVar7;\n        sVar8 = (int)pcVar22 - (int)(pcVar7 + offset);\n        *linesize = (size_t)psVar24;\n        if (sVar8 == 0) {\n          sVar8 = -1;\n        }\n        goto LAB_000140c0;\n      }\n    }\nLAB_000140b0:\n    psVar16 = psVar9;\n    *lineptr = pcVar25;\n    sVar8 = -1;\n    *linesize = (size_t)psVar24;\n  }" else (compound_statement "{\nLAB_00013ed4:\n    psVar9 = psVar16;\n    if (offset <= psVar24) {\n      psVar21 = (size_t *)((int)psVar24 - offset);\n      pcVar22 = pcVar25 + offset;\n      if ((psVar21 != (size_t *)0x0) || (psVar24 < nmax)) {\n        c1_in = (size_t *)delim2;\n        if ((delim1 != -1) && (c1_in = (size_t *)delim1, delim2 == -1)) {\n          delim2 = delim1;\n        }\n        psVar6 = (size_t *)(offset + 0x80000000);\n        do {\n          psVar14 = &buffer_len;\n          s = (size_t *)freadptr(stream,&buffer_len);\n          sVar5 = buffer_len;\n          pcVar7 = pcVar25;\n          if (s == (size_t *)0x0) {\n            pbVar12 = (byte *)stream->_IO_read_ptr;\n            if (pbVar12 < stream->_IO_read_end) {\n              stream->_IO_read_ptr = (char *)(pbVar12 + 1);\n              local_48 = (size_t *)(uint)*pbVar12;\n            }\n            else {\n              local_48 = (size_t *)(*(code *)PTR___uflow_0002b264)(stream);\n              if (local_48 == (size_t *)0xffffffff) {\n                psVar9 = psVar16;\n                if (pcVar22 == pcVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = c1_in == local_48 || (size_t *)delim2 == local_48;\n            n = (size_t *)0x2;\n            buffer_len = 1;\n          }\n          else if ((c1_in == (size_t *)0xffffffff) ||\n                  (psVar14 = c1_in, psVar16 = (size_t *)delim2,\n                  pvVar10 = memchr2(s,(int)c1_in,delim2,buffer_len), pvVar10 == (void *)0x0)) {\n            n = (size_t *)(sVar5 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            buffer_len = (int)pvVar10 + (1 - (int)s);\n            n = (size_t *)((int)pvVar10 + (2 - (int)s));\n          }\n          bVar2 = psVar21 < (size_t *)0x2;\n          if ((psVar21 < n) && (bVar2 = psVar21 < (size_t *)0x2, psVar24 < nmax)) {\n            iVar23 = (int)pcVar22 - (int)pcVar25;\n            psVar16 = (size_t *)nmax;\n            if (psVar24 < (size_t *)0x40) {\n              psVar9 = psVar24 + 0x10;\n              if ((size_t *)((int)psVar9 - iVar23) < n) {\nLAB_0001414c:\n                psVar9 = (size_t *)((int)n + iVar23);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (psVar9 < nmax) {\n                psVar16 = psVar9;\n              }\n            }\n            else {\n              psVar9 = (size_t *)((int)psVar24 * 2);\n              if ((size_t *)((int)psVar9 - iVar23) < n) goto LAB_0001414c;\nLAB_00014154:\n              if (psVar24 < psVar9) goto LAB_00013f98;\n            }\n            if (((int)((int)psVar16 - offset) < 0) &&\n               (psVar16 = psVar6, psVar9 = psVar6, psVar24 == psVar6)) goto LAB_000140b0;\n            psVar21 = (size_t *)((int)psVar16 - iVar23);\n            psVar14 = psVar16;\n            psVar9 = psVar16;\n            pcVar7 = (char *)(*(code *)PTR_realloc_0002b2b8)(pcVar25);\n            if (pcVar7 == (char *)0x0) goto LAB_000140b0;\n            pcVar22 = pcVar7 + iVar23;\n            bVar2 = psVar21 < (size_t *)0x2;\n            psVar24 = psVar16;\n          }\n          if (!bVar2) {\n            n = (size_t *)((int)psVar21 + -1);\n            if (buffer_len <= (size_t *)((int)psVar21 + -1)) {\n              n = (size_t *)buffer_len;\n            }\n            if (s == (size_t *)0x0) {\n              *pcVar22 = (char)local_48;\n            }\n            else {\n              psVar14 = s;\n              psVar16 = n;\n              (*(code *)PTR_memcpy_0002b2fc)(pcVar22);\n            }\n            pcVar22 = pcVar22 + (int)n;\n            psVar21 = (size_t *)((int)psVar21 - (int)n);\n          }\n          pcVar25 = pcVar7;\n          if ((s != (size_t *)0x0) &&\n             (psVar14 = (size_t *)buffer_len, iVar23 = freadseek(stream,buffer_len),\n             psVar9 = psVar16, iVar23 != 0)) goto LAB_000140b0;\n        } while (!bVar3);\n        *pcVar22 = '\0';\n        *lineptr = pcVar7;\n        sVar8 = (int)pcVar22 - (int)(pcVar7 + offset);\n        *linesize = (size_t)psVar24;\n        if (sVar8 == 0) {\n          sVar8 = -1;\n        }\n        goto LAB_000140c0;\n      }\n    }\nLAB_000140b0:\n    psVar16 = psVar9;\n    *lineptr = pcVar25;\n    sVar8 = -1;\n    *linesize = (size_t)psVar24;\n  }" { (labeled_statement "LAB_00013ed4:\n    psVar9 = psVar16;" statement_identifier : (expression_statement "psVar9 = psVar16;" (assignment_expression "psVar9 = psVar16" identifier = identifier) ;)) (if_statement "if (offset <= psVar24) {\n      psVar21 = (size_t *)((int)psVar24 - offset);\n      pcVar22 = pcVar25 + offset;\n      if ((psVar21 != (size_t *)0x0) || (psVar24 < nmax)) {\n        c1_in = (size_t *)delim2;\n        if ((delim1 != -1) && (c1_in = (size_t *)delim1, delim2 == -1)) {\n          delim2 = delim1;\n        }\n        psVar6 = (size_t *)(offset + 0x80000000);\n        do {\n          psVar14 = &buffer_len;\n          s = (size_t *)freadptr(stream,&buffer_len);\n          sVar5 = buffer_len;\n          pcVar7 = pcVar25;\n          if (s == (size_t *)0x0) {\n            pbVar12 = (byte *)stream->_IO_read_ptr;\n            if (pbVar12 < stream->_IO_read_end) {\n              stream->_IO_read_ptr = (char *)(pbVar12 + 1);\n              local_48 = (size_t *)(uint)*pbVar12;\n            }\n            else {\n              local_48 = (size_t *)(*(code *)PTR___uflow_0002b264)(stream);\n              if (local_48 == (size_t *)0xffffffff) {\n                psVar9 = psVar16;\n                if (pcVar22 == pcVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = c1_in == local_48 || (size_t *)delim2 == local_48;\n            n = (size_t *)0x2;\n            buffer_len = 1;\n          }\n          else if ((c1_in == (size_t *)0xffffffff) ||\n                  (psVar14 = c1_in, psVar16 = (size_t *)delim2,\n                  pvVar10 = memchr2(s,(int)c1_in,delim2,buffer_len), pvVar10 == (void *)0x0)) {\n            n = (size_t *)(sVar5 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            buffer_len = (int)pvVar10 + (1 - (int)s);\n            n = (size_t *)((int)pvVar10 + (2 - (int)s));\n          }\n          bVar2 = psVar21 < (size_t *)0x2;\n          if ((psVar21 < n) && (bVar2 = psVar21 < (size_t *)0x2, psVar24 < nmax)) {\n            iVar23 = (int)pcVar22 - (int)pcVar25;\n            psVar16 = (size_t *)nmax;\n            if (psVar24 < (size_t *)0x40) {\n              psVar9 = psVar24 + 0x10;\n              if ((size_t *)((int)psVar9 - iVar23) < n) {\nLAB_0001414c:\n                psVar9 = (size_t *)((int)n + iVar23);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (psVar9 < nmax) {\n                psVar16 = psVar9;\n              }\n            }\n            else {\n              psVar9 = (size_t *)((int)psVar24 * 2);\n              if ((size_t *)((int)psVar9 - iVar23) < n) goto LAB_0001414c;\nLAB_00014154:\n              if (psVar24 < psVar9) goto LAB_00013f98;\n            }\n            if (((int)((int)psVar16 - offset) < 0) &&\n               (psVar16 = psVar6, psVar9 = psVar6, psVar24 == psVar6)) goto LAB_000140b0;\n            psVar21 = (size_t *)((int)psVar16 - iVar23);\n            psVar14 = psVar16;\n            psVar9 = psVar16;\n            pcVar7 = (char *)(*(code *)PTR_realloc_0002b2b8)(pcVar25);\n            if (pcVar7 == (char *)0x0) goto LAB_000140b0;\n            pcVar22 = pcVar7 + iVar23;\n            bVar2 = psVar21 < (size_t *)0x2;\n            psVar24 = psVar16;\n          }\n          if (!bVar2) {\n            n = (size_t *)((int)psVar21 + -1);\n            if (buffer_len <= (size_t *)((int)psVar21 + -1)) {\n              n = (size_t *)buffer_len;\n            }\n            if (s == (size_t *)0x0) {\n              *pcVar22 = (char)local_48;\n            }\n            else {\n              psVar14 = s;\n              psVar16 = n;\n              (*(code *)PTR_memcpy_0002b2fc)(pcVar22);\n            }\n            pcVar22 = pcVar22 + (int)n;\n            psVar21 = (size_t *)((int)psVar21 - (int)n);\n          }\n          pcVar25 = pcVar7;\n          if ((s != (size_t *)0x0) &&\n             (psVar14 = (size_t *)buffer_len, iVar23 = freadseek(stream,buffer_len),\n             psVar9 = psVar16, iVar23 != 0)) goto LAB_000140b0;\n        } while (!bVar3);\n        *pcVar22 = '\0';\n        *lineptr = pcVar7;\n        sVar8 = (int)pcVar22 - (int)(pcVar7 + offset);\n        *linesize = (size_t)psVar24;\n        if (sVar8 == 0) {\n          sVar8 = -1;\n        }\n        goto LAB_000140c0;\n      }\n    }" if (parenthesized_expression "(offset <= psVar24)" ( (binary_expression "offset <= psVar24" identifier <= identifier) )) (compound_statement "{\n      psVar21 = (size_t *)((int)psVar24 - offset);\n      pcVar22 = pcVar25 + offset;\n      if ((psVar21 != (size_t *)0x0) || (psVar24 < nmax)) {\n        c1_in = (size_t *)delim2;\n        if ((delim1 != -1) && (c1_in = (size_t *)delim1, delim2 == -1)) {\n          delim2 = delim1;\n        }\n        psVar6 = (size_t *)(offset + 0x80000000);\n        do {\n          psVar14 = &buffer_len;\n          s = (size_t *)freadptr(stream,&buffer_len);\n          sVar5 = buffer_len;\n          pcVar7 = pcVar25;\n          if (s == (size_t *)0x0) {\n            pbVar12 = (byte *)stream->_IO_read_ptr;\n            if (pbVar12 < stream->_IO_read_end) {\n              stream->_IO_read_ptr = (char *)(pbVar12 + 1);\n              local_48 = (size_t *)(uint)*pbVar12;\n            }\n            else {\n              local_48 = (size_t *)(*(code *)PTR___uflow_0002b264)(stream);\n              if (local_48 == (size_t *)0xffffffff) {\n                psVar9 = psVar16;\n                if (pcVar22 == pcVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = c1_in == local_48 || (size_t *)delim2 == local_48;\n            n = (size_t *)0x2;\n            buffer_len = 1;\n          }\n          else if ((c1_in == (size_t *)0xffffffff) ||\n                  (psVar14 = c1_in, psVar16 = (size_t *)delim2,\n                  pvVar10 = memchr2(s,(int)c1_in,delim2,buffer_len), pvVar10 == (void *)0x0)) {\n            n = (size_t *)(sVar5 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            buffer_len = (int)pvVar10 + (1 - (int)s);\n            n = (size_t *)((int)pvVar10 + (2 - (int)s));\n          }\n          bVar2 = psVar21 < (size_t *)0x2;\n          if ((psVar21 < n) && (bVar2 = psVar21 < (size_t *)0x2, psVar24 < nmax)) {\n            iVar23 = (int)pcVar22 - (int)pcVar25;\n            psVar16 = (size_t *)nmax;\n            if (psVar24 < (size_t *)0x40) {\n              psVar9 = psVar24 + 0x10;\n              if ((size_t *)((int)psVar9 - iVar23) < n) {\nLAB_0001414c:\n                psVar9 = (size_t *)((int)n + iVar23);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (psVar9 < nmax) {\n                psVar16 = psVar9;\n              }\n            }\n            else {\n              psVar9 = (size_t *)((int)psVar24 * 2);\n              if ((size_t *)((int)psVar9 - iVar23) < n) goto LAB_0001414c;\nLAB_00014154:\n              if (psVar24 < psVar9) goto LAB_00013f98;\n            }\n            if (((int)((int)psVar16 - offset) < 0) &&\n               (psVar16 = psVar6, psVar9 = psVar6, psVar24 == psVar6)) goto LAB_000140b0;\n            psVar21 = (size_t *)((int)psVar16 - iVar23);\n            psVar14 = psVar16;\n            psVar9 = psVar16;\n            pcVar7 = (char *)(*(code *)PTR_realloc_0002b2b8)(pcVar25);\n            if (pcVar7 == (char *)0x0) goto LAB_000140b0;\n            pcVar22 = pcVar7 + iVar23;\n            bVar2 = psVar21 < (size_t *)0x2;\n            psVar24 = psVar16;\n          }\n          if (!bVar2) {\n            n = (size_t *)((int)psVar21 + -1);\n            if (buffer_len <= (size_t *)((int)psVar21 + -1)) {\n              n = (size_t *)buffer_len;\n            }\n            if (s == (size_t *)0x0) {\n              *pcVar22 = (char)local_48;\n            }\n            else {\n              psVar14 = s;\n              psVar16 = n;\n              (*(code *)PTR_memcpy_0002b2fc)(pcVar22);\n            }\n            pcVar22 = pcVar22 + (int)n;\n            psVar21 = (size_t *)((int)psVar21 - (int)n);\n          }\n          pcVar25 = pcVar7;\n          if ((s != (size_t *)0x0) &&\n             (psVar14 = (size_t *)buffer_len, iVar23 = freadseek(stream,buffer_len),\n             psVar9 = psVar16, iVar23 != 0)) goto LAB_000140b0;\n        } while (!bVar3);\n        *pcVar22 = '\0';\n        *lineptr = pcVar7;\n        sVar8 = (int)pcVar22 - (int)(pcVar7 + offset);\n        *linesize = (size_t)psVar24;\n        if (sVar8 == 0) {\n          sVar8 = -1;\n        }\n        goto LAB_000140c0;\n      }\n    }" { (expression_statement "psVar21 = (size_t *)((int)psVar24 - offset);" (assignment_expression "psVar21 = (size_t *)((int)psVar24 - offset)" identifier = (cast_expression "(size_t *)((int)psVar24 - offset)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)psVar24 - offset)" ( (binary_expression "(int)psVar24 - offset" (cast_expression "(int)psVar24" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) (expression_statement "pcVar22 = pcVar25 + offset;" (assignment_expression "pcVar22 = pcVar25 + offset" identifier = (binary_expression "pcVar25 + offset" identifier + identifier)) ;) (if_statement "if ((psVar21 != (size_t *)0x0) || (psVar24 < nmax)) {\n        c1_in = (size_t *)delim2;\n        if ((delim1 != -1) && (c1_in = (size_t *)delim1, delim2 == -1)) {\n          delim2 = delim1;\n        }\n        psVar6 = (size_t *)(offset + 0x80000000);\n        do {\n          psVar14 = &buffer_len;\n          s = (size_t *)freadptr(stream,&buffer_len);\n          sVar5 = buffer_len;\n          pcVar7 = pcVar25;\n          if (s == (size_t *)0x0) {\n            pbVar12 = (byte *)stream->_IO_read_ptr;\n            if (pbVar12 < stream->_IO_read_end) {\n              stream->_IO_read_ptr = (char *)(pbVar12 + 1);\n              local_48 = (size_t *)(uint)*pbVar12;\n            }\n            else {\n              local_48 = (size_t *)(*(code *)PTR___uflow_0002b264)(stream);\n              if (local_48 == (size_t *)0xffffffff) {\n                psVar9 = psVar16;\n                if (pcVar22 == pcVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = c1_in == local_48 || (size_t *)delim2 == local_48;\n            n = (size_t *)0x2;\n            buffer_len = 1;\n          }\n          else if ((c1_in == (size_t *)0xffffffff) ||\n                  (psVar14 = c1_in, psVar16 = (size_t *)delim2,\n                  pvVar10 = memchr2(s,(int)c1_in,delim2,buffer_len), pvVar10 == (void *)0x0)) {\n            n = (size_t *)(sVar5 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            buffer_len = (int)pvVar10 + (1 - (int)s);\n            n = (size_t *)((int)pvVar10 + (2 - (int)s));\n          }\n          bVar2 = psVar21 < (size_t *)0x2;\n          if ((psVar21 < n) && (bVar2 = psVar21 < (size_t *)0x2, psVar24 < nmax)) {\n            iVar23 = (int)pcVar22 - (int)pcVar25;\n            psVar16 = (size_t *)nmax;\n            if (psVar24 < (size_t *)0x40) {\n              psVar9 = psVar24 + 0x10;\n              if ((size_t *)((int)psVar9 - iVar23) < n) {\nLAB_0001414c:\n                psVar9 = (size_t *)((int)n + iVar23);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (psVar9 < nmax) {\n                psVar16 = psVar9;\n              }\n            }\n            else {\n              psVar9 = (size_t *)((int)psVar24 * 2);\n              if ((size_t *)((int)psVar9 - iVar23) < n) goto LAB_0001414c;\nLAB_00014154:\n              if (psVar24 < psVar9) goto LAB_00013f98;\n            }\n            if (((int)((int)psVar16 - offset) < 0) &&\n               (psVar16 = psVar6, psVar9 = psVar6, psVar24 == psVar6)) goto LAB_000140b0;\n            psVar21 = (size_t *)((int)psVar16 - iVar23);\n            psVar14 = psVar16;\n            psVar9 = psVar16;\n            pcVar7 = (char *)(*(code *)PTR_realloc_0002b2b8)(pcVar25);\n            if (pcVar7 == (char *)0x0) goto LAB_000140b0;\n            pcVar22 = pcVar7 + iVar23;\n            bVar2 = psVar21 < (size_t *)0x2;\n            psVar24 = psVar16;\n          }\n          if (!bVar2) {\n            n = (size_t *)((int)psVar21 + -1);\n            if (buffer_len <= (size_t *)((int)psVar21 + -1)) {\n              n = (size_t *)buffer_len;\n            }\n            if (s == (size_t *)0x0) {\n              *pcVar22 = (char)local_48;\n            }\n            else {\n              psVar14 = s;\n              psVar16 = n;\n              (*(code *)PTR_memcpy_0002b2fc)(pcVar22);\n            }\n            pcVar22 = pcVar22 + (int)n;\n            psVar21 = (size_t *)((int)psVar21 - (int)n);\n          }\n          pcVar25 = pcVar7;\n          if ((s != (size_t *)0x0) &&\n             (psVar14 = (size_t *)buffer_len, iVar23 = freadseek(stream,buffer_len),\n             psVar9 = psVar16, iVar23 != 0)) goto LAB_000140b0;\n        } while (!bVar3);\n        *pcVar22 = '\0';\n        *lineptr = pcVar7;\n        sVar8 = (int)pcVar22 - (int)(pcVar7 + offset);\n        *linesize = (size_t)psVar24;\n        if (sVar8 == 0) {\n          sVar8 = -1;\n        }\n        goto LAB_000140c0;\n      }" if (parenthesized_expression "((psVar21 != (size_t *)0x0) || (psVar24 < nmax))" ( (binary_expression "(psVar21 != (size_t *)0x0) || (psVar24 < nmax)" (parenthesized_expression "(psVar21 != (size_t *)0x0)" ( (binary_expression "psVar21 != (size_t *)0x0" identifier != (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(psVar24 < nmax)" ( (binary_expression "psVar24 < nmax" identifier < identifier) ))) )) (compound_statement "{\n        c1_in = (size_t *)delim2;\n        if ((delim1 != -1) && (c1_in = (size_t *)delim1, delim2 == -1)) {\n          delim2 = delim1;\n        }\n        psVar6 = (size_t *)(offset + 0x80000000);\n        do {\n          psVar14 = &buffer_len;\n          s = (size_t *)freadptr(stream,&buffer_len);\n          sVar5 = buffer_len;\n          pcVar7 = pcVar25;\n          if (s == (size_t *)0x0) {\n            pbVar12 = (byte *)stream->_IO_read_ptr;\n            if (pbVar12 < stream->_IO_read_end) {\n              stream->_IO_read_ptr = (char *)(pbVar12 + 1);\n              local_48 = (size_t *)(uint)*pbVar12;\n            }\n            else {\n              local_48 = (size_t *)(*(code *)PTR___uflow_0002b264)(stream);\n              if (local_48 == (size_t *)0xffffffff) {\n                psVar9 = psVar16;\n                if (pcVar22 == pcVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = c1_in == local_48 || (size_t *)delim2 == local_48;\n            n = (size_t *)0x2;\n            buffer_len = 1;\n          }\n          else if ((c1_in == (size_t *)0xffffffff) ||\n                  (psVar14 = c1_in, psVar16 = (size_t *)delim2,\n                  pvVar10 = memchr2(s,(int)c1_in,delim2,buffer_len), pvVar10 == (void *)0x0)) {\n            n = (size_t *)(sVar5 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            buffer_len = (int)pvVar10 + (1 - (int)s);\n            n = (size_t *)((int)pvVar10 + (2 - (int)s));\n          }\n          bVar2 = psVar21 < (size_t *)0x2;\n          if ((psVar21 < n) && (bVar2 = psVar21 < (size_t *)0x2, psVar24 < nmax)) {\n            iVar23 = (int)pcVar22 - (int)pcVar25;\n            psVar16 = (size_t *)nmax;\n            if (psVar24 < (size_t *)0x40) {\n              psVar9 = psVar24 + 0x10;\n              if ((size_t *)((int)psVar9 - iVar23) < n) {\nLAB_0001414c:\n                psVar9 = (size_t *)((int)n + iVar23);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (psVar9 < nmax) {\n                psVar16 = psVar9;\n              }\n            }\n            else {\n              psVar9 = (size_t *)((int)psVar24 * 2);\n              if ((size_t *)((int)psVar9 - iVar23) < n) goto LAB_0001414c;\nLAB_00014154:\n              if (psVar24 < psVar9) goto LAB_00013f98;\n            }\n            if (((int)((int)psVar16 - offset) < 0) &&\n               (psVar16 = psVar6, psVar9 = psVar6, psVar24 == psVar6)) goto LAB_000140b0;\n            psVar21 = (size_t *)((int)psVar16 - iVar23);\n            psVar14 = psVar16;\n            psVar9 = psVar16;\n            pcVar7 = (char *)(*(code *)PTR_realloc_0002b2b8)(pcVar25);\n            if (pcVar7 == (char *)0x0) goto LAB_000140b0;\n            pcVar22 = pcVar7 + iVar23;\n            bVar2 = psVar21 < (size_t *)0x2;\n            psVar24 = psVar16;\n          }\n          if (!bVar2) {\n            n = (size_t *)((int)psVar21 + -1);\n            if (buffer_len <= (size_t *)((int)psVar21 + -1)) {\n              n = (size_t *)buffer_len;\n            }\n            if (s == (size_t *)0x0) {\n              *pcVar22 = (char)local_48;\n            }\n            else {\n              psVar14 = s;\n              psVar16 = n;\n              (*(code *)PTR_memcpy_0002b2fc)(pcVar22);\n            }\n            pcVar22 = pcVar22 + (int)n;\n            psVar21 = (size_t *)((int)psVar21 - (int)n);\n          }\n          pcVar25 = pcVar7;\n          if ((s != (size_t *)0x0) &&\n             (psVar14 = (size_t *)buffer_len, iVar23 = freadseek(stream,buffer_len),\n             psVar9 = psVar16, iVar23 != 0)) goto LAB_000140b0;\n        } while (!bVar3);\n        *pcVar22 = '\0';\n        *lineptr = pcVar7;\n        sVar8 = (int)pcVar22 - (int)(pcVar7 + offset);\n        *linesize = (size_t)psVar24;\n        if (sVar8 == 0) {\n          sVar8 = -1;\n        }\n        goto LAB_000140c0;\n      }" { (expression_statement "c1_in = (size_t *)delim2;" (assignment_expression "c1_in = (size_t *)delim2" identifier = (cast_expression "(size_t *)delim2" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((delim1 != -1) && (c1_in = (size_t *)delim1, delim2 == -1)) {\n          delim2 = delim1;\n        }" if (parenthesized_expression "((delim1 != -1) && (c1_in = (size_t *)delim1, delim2 == -1))" ( (binary_expression "(delim1 != -1) && (c1_in = (size_t *)delim1, delim2 == -1)" (parenthesized_expression "(delim1 != -1)" ( (binary_expression "delim1 != -1" identifier != number_literal) )) && (parenthesized_expression "(c1_in = (size_t *)delim1, delim2 == -1)" ( (comma_expression "c1_in = (size_t *)delim1, delim2 == -1" (assignment_expression "c1_in = (size_t *)delim1" identifier = (cast_expression "(size_t *)delim1" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "delim2 == -1" identifier == number_literal)) ))) )) (compound_statement "{\n          delim2 = delim1;\n        }" { (expression_statement "delim2 = delim1;" (assignment_expression "delim2 = delim1" identifier = identifier) ;) })) (expression_statement "psVar6 = (size_t *)(offset + 0x80000000);" (assignment_expression "psVar6 = (size_t *)(offset + 0x80000000)" identifier = (cast_expression "(size_t *)(offset + 0x80000000)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(offset + 0x80000000)" ( (binary_expression "offset + 0x80000000" identifier + number_literal) )))) ;) (do_statement "do {\n          psVar14 = &buffer_len;\n          s = (size_t *)freadptr(stream,&buffer_len);\n          sVar5 = buffer_len;\n          pcVar7 = pcVar25;\n          if (s == (size_t *)0x0) {\n            pbVar12 = (byte *)stream->_IO_read_ptr;\n            if (pbVar12 < stream->_IO_read_end) {\n              stream->_IO_read_ptr = (char *)(pbVar12 + 1);\n              local_48 = (size_t *)(uint)*pbVar12;\n            }\n            else {\n              local_48 = (size_t *)(*(code *)PTR___uflow_0002b264)(stream);\n              if (local_48 == (size_t *)0xffffffff) {\n                psVar9 = psVar16;\n                if (pcVar22 == pcVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = c1_in == local_48 || (size_t *)delim2 == local_48;\n            n = (size_t *)0x2;\n            buffer_len = 1;\n          }\n          else if ((c1_in == (size_t *)0xffffffff) ||\n                  (psVar14 = c1_in, psVar16 = (size_t *)delim2,\n                  pvVar10 = memchr2(s,(int)c1_in,delim2,buffer_len), pvVar10 == (void *)0x0)) {\n            n = (size_t *)(sVar5 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            buffer_len = (int)pvVar10 + (1 - (int)s);\n            n = (size_t *)((int)pvVar10 + (2 - (int)s));\n          }\n          bVar2 = psVar21 < (size_t *)0x2;\n          if ((psVar21 < n) && (bVar2 = psVar21 < (size_t *)0x2, psVar24 < nmax)) {\n            iVar23 = (int)pcVar22 - (int)pcVar25;\n            psVar16 = (size_t *)nmax;\n            if (psVar24 < (size_t *)0x40) {\n              psVar9 = psVar24 + 0x10;\n              if ((size_t *)((int)psVar9 - iVar23) < n) {\nLAB_0001414c:\n                psVar9 = (size_t *)((int)n + iVar23);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (psVar9 < nmax) {\n                psVar16 = psVar9;\n              }\n            }\n            else {\n              psVar9 = (size_t *)((int)psVar24 * 2);\n              if ((size_t *)((int)psVar9 - iVar23) < n) goto LAB_0001414c;\nLAB_00014154:\n              if (psVar24 < psVar9) goto LAB_00013f98;\n            }\n            if (((int)((int)psVar16 - offset) < 0) &&\n               (psVar16 = psVar6, psVar9 = psVar6, psVar24 == psVar6)) goto LAB_000140b0;\n            psVar21 = (size_t *)((int)psVar16 - iVar23);\n            psVar14 = psVar16;\n            psVar9 = psVar16;\n            pcVar7 = (char *)(*(code *)PTR_realloc_0002b2b8)(pcVar25);\n            if (pcVar7 == (char *)0x0) goto LAB_000140b0;\n            pcVar22 = pcVar7 + iVar23;\n            bVar2 = psVar21 < (size_t *)0x2;\n            psVar24 = psVar16;\n          }\n          if (!bVar2) {\n            n = (size_t *)((int)psVar21 + -1);\n            if (buffer_len <= (size_t *)((int)psVar21 + -1)) {\n              n = (size_t *)buffer_len;\n            }\n            if (s == (size_t *)0x0) {\n              *pcVar22 = (char)local_48;\n            }\n            else {\n              psVar14 = s;\n              psVar16 = n;\n              (*(code *)PTR_memcpy_0002b2fc)(pcVar22);\n            }\n            pcVar22 = pcVar22 + (int)n;\n            psVar21 = (size_t *)((int)psVar21 - (int)n);\n          }\n          pcVar25 = pcVar7;\n          if ((s != (size_t *)0x0) &&\n             (psVar14 = (size_t *)buffer_len, iVar23 = freadseek(stream,buffer_len),\n             psVar9 = psVar16, iVar23 != 0)) goto LAB_000140b0;\n        } while (!bVar3);" do (compound_statement "{\n          psVar14 = &buffer_len;\n          s = (size_t *)freadptr(stream,&buffer_len);\n          sVar5 = buffer_len;\n          pcVar7 = pcVar25;\n          if (s == (size_t *)0x0) {\n            pbVar12 = (byte *)stream->_IO_read_ptr;\n            if (pbVar12 < stream->_IO_read_end) {\n              stream->_IO_read_ptr = (char *)(pbVar12 + 1);\n              local_48 = (size_t *)(uint)*pbVar12;\n            }\n            else {\n              local_48 = (size_t *)(*(code *)PTR___uflow_0002b264)(stream);\n              if (local_48 == (size_t *)0xffffffff) {\n                psVar9 = psVar16;\n                if (pcVar22 == pcVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = c1_in == local_48 || (size_t *)delim2 == local_48;\n            n = (size_t *)0x2;\n            buffer_len = 1;\n          }\n          else if ((c1_in == (size_t *)0xffffffff) ||\n                  (psVar14 = c1_in, psVar16 = (size_t *)delim2,\n                  pvVar10 = memchr2(s,(int)c1_in,delim2,buffer_len), pvVar10 == (void *)0x0)) {\n            n = (size_t *)(sVar5 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            buffer_len = (int)pvVar10 + (1 - (int)s);\n            n = (size_t *)((int)pvVar10 + (2 - (int)s));\n          }\n          bVar2 = psVar21 < (size_t *)0x2;\n          if ((psVar21 < n) && (bVar2 = psVar21 < (size_t *)0x2, psVar24 < nmax)) {\n            iVar23 = (int)pcVar22 - (int)pcVar25;\n            psVar16 = (size_t *)nmax;\n            if (psVar24 < (size_t *)0x40) {\n              psVar9 = psVar24 + 0x10;\n              if ((size_t *)((int)psVar9 - iVar23) < n) {\nLAB_0001414c:\n                psVar9 = (size_t *)((int)n + iVar23);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (psVar9 < nmax) {\n                psVar16 = psVar9;\n              }\n            }\n            else {\n              psVar9 = (size_t *)((int)psVar24 * 2);\n              if ((size_t *)((int)psVar9 - iVar23) < n) goto LAB_0001414c;\nLAB_00014154:\n              if (psVar24 < psVar9) goto LAB_00013f98;\n            }\n            if (((int)((int)psVar16 - offset) < 0) &&\n               (psVar16 = psVar6, psVar9 = psVar6, psVar24 == psVar6)) goto LAB_000140b0;\n            psVar21 = (size_t *)((int)psVar16 - iVar23);\n            psVar14 = psVar16;\n            psVar9 = psVar16;\n            pcVar7 = (char *)(*(code *)PTR_realloc_0002b2b8)(pcVar25);\n            if (pcVar7 == (char *)0x0) goto LAB_000140b0;\n            pcVar22 = pcVar7 + iVar23;\n            bVar2 = psVar21 < (size_t *)0x2;\n            psVar24 = psVar16;\n          }\n          if (!bVar2) {\n            n = (size_t *)((int)psVar21 + -1);\n            if (buffer_len <= (size_t *)((int)psVar21 + -1)) {\n              n = (size_t *)buffer_len;\n            }\n            if (s == (size_t *)0x0) {\n              *pcVar22 = (char)local_48;\n            }\n            else {\n              psVar14 = s;\n              psVar16 = n;\n              (*(code *)PTR_memcpy_0002b2fc)(pcVar22);\n            }\n            pcVar22 = pcVar22 + (int)n;\n            psVar21 = (size_t *)((int)psVar21 - (int)n);\n          }\n          pcVar25 = pcVar7;\n          if ((s != (size_t *)0x0) &&\n             (psVar14 = (size_t *)buffer_len, iVar23 = freadseek(stream,buffer_len),\n             psVar9 = psVar16, iVar23 != 0)) goto LAB_000140b0;\n        }" { (expression_statement "psVar14 = &buffer_len;" (assignment_expression "psVar14 = &buffer_len" identifier = (pointer_expression "&buffer_len" & identifier)) ;) (expression_statement "s = (size_t *)freadptr(stream,&buffer_len);" (assignment_expression "s = (size_t *)freadptr(stream,&buffer_len)" identifier = (cast_expression "(size_t *)freadptr(stream,&buffer_len)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "freadptr(stream,&buffer_len)" identifier (argument_list "(stream,&buffer_len)" ( identifier , (pointer_expression "&buffer_len" & identifier) ))))) ;) (expression_statement "sVar5 = buffer_len;" (assignment_expression "sVar5 = buffer_len" identifier = identifier) ;) (expression_statement "pcVar7 = pcVar25;" (assignment_expression "pcVar7 = pcVar25" identifier = identifier) ;) (if_statement "if (s == (size_t *)0x0) {\n            pbVar12 = (byte *)stream->_IO_read_ptr;\n            if (pbVar12 < stream->_IO_read_end) {\n              stream->_IO_read_ptr = (char *)(pbVar12 + 1);\n              local_48 = (size_t *)(uint)*pbVar12;\n            }\n            else {\n              local_48 = (size_t *)(*(code *)PTR___uflow_0002b264)(stream);\n              if (local_48 == (size_t *)0xffffffff) {\n                psVar9 = psVar16;\n                if (pcVar22 == pcVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = c1_in == local_48 || (size_t *)delim2 == local_48;\n            n = (size_t *)0x2;\n            buffer_len = 1;\n          }\n          else if ((c1_in == (size_t *)0xffffffff) ||\n                  (psVar14 = c1_in, psVar16 = (size_t *)delim2,\n                  pvVar10 = memchr2(s,(int)c1_in,delim2,buffer_len), pvVar10 == (void *)0x0)) {\n            n = (size_t *)(sVar5 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            buffer_len = (int)pvVar10 + (1 - (int)s);\n            n = (size_t *)((int)pvVar10 + (2 - (int)s));\n          }" if (parenthesized_expression "(s == (size_t *)0x0)" ( (binary_expression "s == (size_t *)0x0" identifier == (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pbVar12 = (byte *)stream->_IO_read_ptr;\n            if (pbVar12 < stream->_IO_read_end) {\n              stream->_IO_read_ptr = (char *)(pbVar12 + 1);\n              local_48 = (size_t *)(uint)*pbVar12;\n            }\n            else {\n              local_48 = (size_t *)(*(code *)PTR___uflow_0002b264)(stream);\n              if (local_48 == (size_t *)0xffffffff) {\n                psVar9 = psVar16;\n                if (pcVar22 == pcVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = c1_in == local_48 || (size_t *)delim2 == local_48;\n            n = (size_t *)0x2;\n            buffer_len = 1;\n          }" { (expression_statement "pbVar12 = (byte *)stream->_IO_read_ptr;" (assignment_expression "pbVar12 = (byte *)stream->_IO_read_ptr" identifier = (cast_expression "(byte *)stream->_IO_read_ptr" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "stream->_IO_read_ptr" identifier -> field_identifier))) ;) (if_statement "if (pbVar12 < stream->_IO_read_end) {\n              stream->_IO_read_ptr = (char *)(pbVar12 + 1);\n              local_48 = (size_t *)(uint)*pbVar12;\n            }\n            else {\n              local_48 = (size_t *)(*(code *)PTR___uflow_0002b264)(stream);\n              if (local_48 == (size_t *)0xffffffff) {\n                psVar9 = psVar16;\n                if (pcVar22 == pcVar25) goto LAB_000140b0;\n                break;\n              }\n            }" if (parenthesized_expression "(pbVar12 < stream->_IO_read_end)" ( (binary_expression "pbVar12 < stream->_IO_read_end" identifier < (field_expression "stream->_IO_read_end" identifier -> field_identifier)) )) (compound_statement "{\n              stream->_IO_read_ptr = (char *)(pbVar12 + 1);\n              local_48 = (size_t *)(uint)*pbVar12;\n            }" { (expression_statement "stream->_IO_read_ptr = (char *)(pbVar12 + 1);" (assignment_expression "stream->_IO_read_ptr = (char *)(pbVar12 + 1)" (field_expression "stream->_IO_read_ptr" identifier -> field_identifier) = (cast_expression "(char *)(pbVar12 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar12 + 1)" ( (binary_expression "pbVar12 + 1" identifier + number_literal) )))) ;) (expression_statement "local_48 = (size_t *)(uint)*pbVar12;" (assignment_expression "local_48 = (size_t *)(uint)*pbVar12" identifier = (binary_expression "(size_t *)(uint)*pbVar12" (cast_expression "(size_t *)(uint)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier)) ;) }) (else_clause "else {\n              local_48 = (size_t *)(*(code *)PTR___uflow_0002b264)(stream);\n              if (local_48 == (size_t *)0xffffffff) {\n                psVar9 = psVar16;\n                if (pcVar22 == pcVar25) goto LAB_000140b0;\n                break;\n              }\n            }" else (compound_statement "{\n              local_48 = (size_t *)(*(code *)PTR___uflow_0002b264)(stream);\n              if (local_48 == (size_t *)0xffffffff) {\n                psVar9 = psVar16;\n                if (pcVar22 == pcVar25) goto LAB_000140b0;\n                break;\n              }\n            }" { (expression_statement "local_48 = (size_t *)(*(code *)PTR___uflow_0002b264)(stream);" (assignment_expression "local_48 = (size_t *)(*(code *)PTR___uflow_0002b264)(stream)" identifier = (cast_expression "(size_t *)(*(code *)PTR___uflow_0002b264)(stream)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___uflow_0002b264)(stream)" (parenthesized_expression "(*(code *)PTR___uflow_0002b264)" ( (pointer_expression "*(code *)PTR___uflow_0002b264" * (cast_expression "(code *)PTR___uflow_0002b264" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(stream)" ( identifier ))))) ;) (if_statement "if (local_48 == (size_t *)0xffffffff) {\n                psVar9 = psVar16;\n                if (pcVar22 == pcVar25) goto LAB_000140b0;\n                break;\n              }" if (parenthesized_expression "(local_48 == (size_t *)0xffffffff)" ( (binary_expression "local_48 == (size_t *)0xffffffff" identifier == (cast_expression "(size_t *)0xffffffff" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                psVar9 = psVar16;\n                if (pcVar22 == pcVar25) goto LAB_000140b0;\n                break;\n              }" { (expression_statement "psVar9 = psVar16;" (assignment_expression "psVar9 = psVar16" identifier = identifier) ;) (if_statement "if (pcVar22 == pcVar25) goto LAB_000140b0;" if (parenthesized_expression "(pcVar22 == pcVar25)" ( (binary_expression "pcVar22 == pcVar25" identifier == identifier) )) (goto_statement "goto LAB_000140b0;" goto statement_identifier ;)) (break_statement "break;" break ;) })) }))) (expression_statement "bVar3 = c1_in == local_48 || (size_t *)delim2 == local_48;" (assignment_expression "bVar3 = c1_in == local_48 || (size_t *)delim2 == local_48" identifier = (binary_expression "c1_in == local_48 || (size_t *)delim2 == local_48" (binary_expression "c1_in == local_48" identifier == identifier) || (binary_expression "(size_t *)delim2 == local_48" (cast_expression "(size_t *)delim2" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) == identifier))) ;) (expression_statement "n = (size_t *)0x2;" (assignment_expression "n = (size_t *)0x2" identifier = (cast_expression "(size_t *)0x2" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "buffer_len = 1;" (assignment_expression "buffer_len = 1" identifier = number_literal) ;) }) (else_clause "else if ((c1_in == (size_t *)0xffffffff) ||\n                  (psVar14 = c1_in, psVar16 = (size_t *)delim2,\n                  pvVar10 = memchr2(s,(int)c1_in,delim2,buffer_len), pvVar10 == (void *)0x0)) {\n            n = (size_t *)(sVar5 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            buffer_len = (int)pvVar10 + (1 - (int)s);\n            n = (size_t *)((int)pvVar10 + (2 - (int)s));\n          }" else (if_statement "if ((c1_in == (size_t *)0xffffffff) ||\n                  (psVar14 = c1_in, psVar16 = (size_t *)delim2,\n                  pvVar10 = memchr2(s,(int)c1_in,delim2,buffer_len), pvVar10 == (void *)0x0)) {\n            n = (size_t *)(sVar5 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            buffer_len = (int)pvVar10 + (1 - (int)s);\n            n = (size_t *)((int)pvVar10 + (2 - (int)s));\n          }" if (parenthesized_expression "((c1_in == (size_t *)0xffffffff) ||\n                  (psVar14 = c1_in, psVar16 = (size_t *)delim2,\n                  pvVar10 = memchr2(s,(int)c1_in,delim2,buffer_len), pvVar10 == (void *)0x0))" ( (binary_expression "(c1_in == (size_t *)0xffffffff) ||\n                  (psVar14 = c1_in, psVar16 = (size_t *)delim2,\n                  pvVar10 = memchr2(s,(int)c1_in,delim2,buffer_len), pvVar10 == (void *)0x0)" (parenthesized_expression "(c1_in == (size_t *)0xffffffff)" ( (binary_expression "c1_in == (size_t *)0xffffffff" identifier == (cast_expression "(size_t *)0xffffffff" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(psVar14 = c1_in, psVar16 = (size_t *)delim2,\n                  pvVar10 = memchr2(s,(int)c1_in,delim2,buffer_len), pvVar10 == (void *)0x0)" ( (comma_expression "psVar14 = c1_in, psVar16 = (size_t *)delim2,\n                  pvVar10 = memchr2(s,(int)c1_in,delim2,buffer_len), pvVar10 == (void *)0x0" (assignment_expression "psVar14 = c1_in" identifier = identifier) , (comma_expression "psVar16 = (size_t *)delim2,\n                  pvVar10 = memchr2(s,(int)c1_in,delim2,buffer_len), pvVar10 == (void *)0x0" (assignment_expression "psVar16 = (size_t *)delim2" identifier = (cast_expression "(size_t *)delim2" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) , (comma_expression "pvVar10 = memchr2(s,(int)c1_in,delim2,buffer_len), pvVar10 == (void *)0x0" (assignment_expression "pvVar10 = memchr2(s,(int)c1_in,delim2,buffer_len)" identifier = (call_expression "memchr2(s,(int)c1_in,delim2,buffer_len)" identifier (argument_list "(s,(int)c1_in,delim2,buffer_len)" ( identifier , (cast_expression "(int)c1_in" ( (type_descriptor "int" primitive_type) ) identifier) , identifier , identifier )))) , (binary_expression "pvVar10 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))))) ))) )) (compound_statement "{\n            n = (size_t *)(sVar5 + 1);\n            bVar3 = false;\n          }" { (expression_statement "n = (size_t *)(sVar5 + 1);" (assignment_expression "n = (size_t *)(sVar5 + 1)" identifier = (cast_expression "(size_t *)(sVar5 + 1)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(sVar5 + 1)" ( (binary_expression "sVar5 + 1" identifier + number_literal) )))) ;) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) }) (else_clause "else {\n            bVar3 = true;\n            buffer_len = (int)pvVar10 + (1 - (int)s);\n            n = (size_t *)((int)pvVar10 + (2 - (int)s));\n          }" else (compound_statement "{\n            bVar3 = true;\n            buffer_len = (int)pvVar10 + (1 - (int)s);\n            n = (size_t *)((int)pvVar10 + (2 - (int)s));\n          }" { (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) (expression_statement "buffer_len = (int)pvVar10 + (1 - (int)s);" (assignment_expression "buffer_len = (int)pvVar10 + (1 - (int)s)" identifier = (binary_expression "(int)pvVar10 + (1 - (int)s)" (cast_expression "(int)pvVar10" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(1 - (int)s)" ( (binary_expression "1 - (int)s" number_literal - (cast_expression "(int)s" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "n = (size_t *)((int)pvVar10 + (2 - (int)s));" (assignment_expression "n = (size_t *)((int)pvVar10 + (2 - (int)s))" identifier = (cast_expression "(size_t *)((int)pvVar10 + (2 - (int)s))" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar10 + (2 - (int)s))" ( (binary_expression "(int)pvVar10 + (2 - (int)s)" (cast_expression "(int)pvVar10" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(2 - (int)s)" ( (binary_expression "2 - (int)s" number_literal - (cast_expression "(int)s" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) }))))) (expression_statement "bVar2 = psVar21 < (size_t *)0x2;" (assignment_expression "bVar2 = psVar21 < (size_t *)0x2" identifier = (binary_expression "psVar21 < (size_t *)0x2" identifier < (cast_expression "(size_t *)0x2" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if ((psVar21 < n) && (bVar2 = psVar21 < (size_t *)0x2, psVar24 < nmax)) {\n            iVar23 = (int)pcVar22 - (int)pcVar25;\n            psVar16 = (size_t *)nmax;\n            if (psVar24 < (size_t *)0x40) {\n              psVar9 = psVar24 + 0x10;\n              if ((size_t *)((int)psVar9 - iVar23) < n) {\nLAB_0001414c:\n                psVar9 = (size_t *)((int)n + iVar23);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (psVar9 < nmax) {\n                psVar16 = psVar9;\n              }\n            }\n            else {\n              psVar9 = (size_t *)((int)psVar24 * 2);\n              if ((size_t *)((int)psVar9 - iVar23) < n) goto LAB_0001414c;\nLAB_00014154:\n              if (psVar24 < psVar9) goto LAB_00013f98;\n            }\n            if (((int)((int)psVar16 - offset) < 0) &&\n               (psVar16 = psVar6, psVar9 = psVar6, psVar24 == psVar6)) goto LAB_000140b0;\n            psVar21 = (size_t *)((int)psVar16 - iVar23);\n            psVar14 = psVar16;\n            psVar9 = psVar16;\n            pcVar7 = (char *)(*(code *)PTR_realloc_0002b2b8)(pcVar25);\n            if (pcVar7 == (char *)0x0) goto LAB_000140b0;\n            pcVar22 = pcVar7 + iVar23;\n            bVar2 = psVar21 < (size_t *)0x2;\n            psVar24 = psVar16;\n          }" if (parenthesized_expression "((psVar21 < n) && (bVar2 = psVar21 < (size_t *)0x2, psVar24 < nmax))" ( (binary_expression "(psVar21 < n) && (bVar2 = psVar21 < (size_t *)0x2, psVar24 < nmax)" (parenthesized_expression "(psVar21 < n)" ( (binary_expression "psVar21 < n" identifier < identifier) )) && (parenthesized_expression "(bVar2 = psVar21 < (size_t *)0x2, psVar24 < nmax)" ( (comma_expression "bVar2 = psVar21 < (size_t *)0x2, psVar24 < nmax" (assignment_expression "bVar2 = psVar21 < (size_t *)0x2" identifier = (binary_expression "psVar21 < (size_t *)0x2" identifier < (cast_expression "(size_t *)0x2" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) , (binary_expression "psVar24 < nmax" identifier < identifier)) ))) )) (compound_statement "{\n            iVar23 = (int)pcVar22 - (int)pcVar25;\n            psVar16 = (size_t *)nmax;\n            if (psVar24 < (size_t *)0x40) {\n              psVar9 = psVar24 + 0x10;\n              if ((size_t *)((int)psVar9 - iVar23) < n) {\nLAB_0001414c:\n                psVar9 = (size_t *)((int)n + iVar23);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (psVar9 < nmax) {\n                psVar16 = psVar9;\n              }\n            }\n            else {\n              psVar9 = (size_t *)((int)psVar24 * 2);\n              if ((size_t *)((int)psVar9 - iVar23) < n) goto LAB_0001414c;\nLAB_00014154:\n              if (psVar24 < psVar9) goto LAB_00013f98;\n            }\n            if (((int)((int)psVar16 - offset) < 0) &&\n               (psVar16 = psVar6, psVar9 = psVar6, psVar24 == psVar6)) goto LAB_000140b0;\n            psVar21 = (size_t *)((int)psVar16 - iVar23);\n            psVar14 = psVar16;\n            psVar9 = psVar16;\n            pcVar7 = (char *)(*(code *)PTR_realloc_0002b2b8)(pcVar25);\n            if (pcVar7 == (char *)0x0) goto LAB_000140b0;\n            pcVar22 = pcVar7 + iVar23;\n            bVar2 = psVar21 < (size_t *)0x2;\n            psVar24 = psVar16;\n          }" { (expression_statement "iVar23 = (int)pcVar22 - (int)pcVar25;" (assignment_expression "iVar23 = (int)pcVar22 - (int)pcVar25" identifier = (binary_expression "(int)pcVar22 - (int)pcVar25" (cast_expression "(int)pcVar22" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar25" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "psVar16 = (size_t *)nmax;" (assignment_expression "psVar16 = (size_t *)nmax" identifier = (cast_expression "(size_t *)nmax" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (psVar24 < (size_t *)0x40) {\n              psVar9 = psVar24 + 0x10;\n              if ((size_t *)((int)psVar9 - iVar23) < n) {\nLAB_0001414c:\n                psVar9 = (size_t *)((int)n + iVar23);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (psVar9 < nmax) {\n                psVar16 = psVar9;\n              }\n            }\n            else {\n              psVar9 = (size_t *)((int)psVar24 * 2);\n              if ((size_t *)((int)psVar9 - iVar23) < n) goto LAB_0001414c;\nLAB_00014154:\n              if (psVar24 < psVar9) goto LAB_00013f98;\n            }" if (parenthesized_expression "(psVar24 < (size_t *)0x40)" ( (binary_expression "psVar24 < (size_t *)0x40" identifier < (cast_expression "(size_t *)0x40" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              psVar9 = psVar24 + 0x10;\n              if ((size_t *)((int)psVar9 - iVar23) < n) {\nLAB_0001414c:\n                psVar9 = (size_t *)((int)n + iVar23);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (psVar9 < nmax) {\n                psVar16 = psVar9;\n              }\n            }" { (expression_statement "psVar9 = psVar24 + 0x10;" (assignment_expression "psVar9 = psVar24 + 0x10" identifier = (binary_expression "psVar24 + 0x10" identifier + number_literal)) ;) (if_statement "if ((size_t *)((int)psVar9 - iVar23) < n) {\nLAB_0001414c:\n                psVar9 = (size_t *)((int)n + iVar23);\n                goto LAB_00014154;\n              }" if (parenthesized_expression "((size_t *)((int)psVar9 - iVar23) < n)" ( (binary_expression "(size_t *)((int)psVar9 - iVar23) < n" (cast_expression "(size_t *)((int)psVar9 - iVar23)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)psVar9 - iVar23)" ( (binary_expression "(int)psVar9 - iVar23" (cast_expression "(int)psVar9" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) ))) < identifier) )) (compound_statement "{\nLAB_0001414c:\n                psVar9 = (size_t *)((int)n + iVar23);\n                goto LAB_00014154;\n              }" { (labeled_statement "LAB_0001414c:\n                psVar9 = (size_t *)((int)n + iVar23);" statement_identifier : (expression_statement "psVar9 = (size_t *)((int)n + iVar23);" (assignment_expression "psVar9 = (size_t *)((int)n + iVar23)" identifier = (cast_expression "(size_t *)((int)n + iVar23)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)n + iVar23)" ( (binary_expression "(int)n + iVar23" (cast_expression "(int)n" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;)) (goto_statement "goto LAB_00014154;" goto statement_identifier ;) })) (labeled_statement "LAB_00013f98:\n              if (psVar9 < nmax) {\n                psVar16 = psVar9;\n              }" statement_identifier : (if_statement "if (psVar9 < nmax) {\n                psVar16 = psVar9;\n              }" if (parenthesized_expression "(psVar9 < nmax)" ( (binary_expression "psVar9 < nmax" identifier < identifier) )) (compound_statement "{\n                psVar16 = psVar9;\n              }" { (expression_statement "psVar16 = psVar9;" (assignment_expression "psVar16 = psVar9" identifier = identifier) ;) }))) }) (else_clause "else {\n              psVar9 = (size_t *)((int)psVar24 * 2);\n              if ((size_t *)((int)psVar9 - iVar23) < n) goto LAB_0001414c;\nLAB_00014154:\n              if (psVar24 < psVar9) goto LAB_00013f98;\n            }" else (compound_statement "{\n              psVar9 = (size_t *)((int)psVar24 * 2);\n              if ((size_t *)((int)psVar9 - iVar23) < n) goto LAB_0001414c;\nLAB_00014154:\n              if (psVar24 < psVar9) goto LAB_00013f98;\n            }" { (expression_statement "psVar9 = (size_t *)((int)psVar24 * 2);" (assignment_expression "psVar9 = (size_t *)((int)psVar24 * 2)" identifier = (cast_expression "(size_t *)((int)psVar24 * 2)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)psVar24 * 2)" ( (binary_expression "(int)psVar24 * 2" (cast_expression "(int)psVar24" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (if_statement "if ((size_t *)((int)psVar9 - iVar23) < n) goto LAB_0001414c;" if (parenthesized_expression "((size_t *)((int)psVar9 - iVar23) < n)" ( (binary_expression "(size_t *)((int)psVar9 - iVar23) < n" (cast_expression "(size_t *)((int)psVar9 - iVar23)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)psVar9 - iVar23)" ( (binary_expression "(int)psVar9 - iVar23" (cast_expression "(int)psVar9" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) ))) < identifier) )) (goto_statement "goto LAB_0001414c;" goto statement_identifier ;)) (labeled_statement "LAB_00014154:\n              if (psVar24 < psVar9) goto LAB_00013f98;" statement_identifier : (if_statement "if (psVar24 < psVar9) goto LAB_00013f98;" if (parenthesized_expression "(psVar24 < psVar9)" ( (binary_expression "psVar24 < psVar9" identifier < identifier) )) (goto_statement "goto LAB_00013f98;" goto statement_identifier ;))) }))) (if_statement "if (((int)((int)psVar16 - offset) < 0) &&\n               (psVar16 = psVar6, psVar9 = psVar6, psVar24 == psVar6)) goto LAB_000140b0;" if (parenthesized_expression "(((int)((int)psVar16 - offset) < 0) &&\n               (psVar16 = psVar6, psVar9 = psVar6, psVar24 == psVar6))" ( (binary_expression "((int)((int)psVar16 - offset) < 0) &&\n               (psVar16 = psVar6, psVar9 = psVar6, psVar24 == psVar6)" (parenthesized_expression "((int)((int)psVar16 - offset) < 0)" ( (binary_expression "(int)((int)psVar16 - offset) < 0" (cast_expression "(int)((int)psVar16 - offset)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)psVar16 - offset)" ( (binary_expression "(int)psVar16 - offset" (cast_expression "(int)psVar16" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) ))) < number_literal) )) && (parenthesized_expression "(psVar16 = psVar6, psVar9 = psVar6, psVar24 == psVar6)" ( (comma_expression "psVar16 = psVar6, psVar9 = psVar6, psVar24 == psVar6" (assignment_expression "psVar16 = psVar6" identifier = identifier) , (comma_expression "psVar9 = psVar6, psVar24 == psVar6" (assignment_expression "psVar9 = psVar6" identifier = identifier) , (binary_expression "psVar24 == psVar6" identifier == identifier))) ))) )) (goto_statement "goto LAB_000140b0;" goto statement_identifier ;)) (expression_statement "psVar21 = (size_t *)((int)psVar16 - iVar23);" (assignment_expression "psVar21 = (size_t *)((int)psVar16 - iVar23)" identifier = (cast_expression "(size_t *)((int)psVar16 - iVar23)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)psVar16 - iVar23)" ( (binary_expression "(int)psVar16 - iVar23" (cast_expression "(int)psVar16" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) (expression_statement "psVar14 = psVar16;" (assignment_expression "psVar14 = psVar16" identifier = identifier) ;) (expression_statement "psVar9 = psVar16;" (assignment_expression "psVar9 = psVar16" identifier = identifier) ;) (expression_statement "pcVar7 = (char *)(*(code *)PTR_realloc_0002b2b8)(pcVar25);" (assignment_expression "pcVar7 = (char *)(*(code *)PTR_realloc_0002b2b8)(pcVar25)" identifier = (cast_expression "(char *)(*(code *)PTR_realloc_0002b2b8)(pcVar25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_realloc_0002b2b8)(pcVar25)" (parenthesized_expression "(*(code *)PTR_realloc_0002b2b8)" ( (pointer_expression "*(code *)PTR_realloc_0002b2b8" * (cast_expression "(code *)PTR_realloc_0002b2b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar25)" ( identifier ))))) ;) (if_statement "if (pcVar7 == (char *)0x0) goto LAB_000140b0;" if (parenthesized_expression "(pcVar7 == (char *)0x0)" ( (binary_expression "pcVar7 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000140b0;" goto statement_identifier ;)) (expression_statement "pcVar22 = pcVar7 + iVar23;" (assignment_expression "pcVar22 = pcVar7 + iVar23" identifier = (binary_expression "pcVar7 + iVar23" identifier + identifier)) ;) (expression_statement "bVar2 = psVar21 < (size_t *)0x2;" (assignment_expression "bVar2 = psVar21 < (size_t *)0x2" identifier = (binary_expression "psVar21 < (size_t *)0x2" identifier < (cast_expression "(size_t *)0x2" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "psVar24 = psVar16;" (assignment_expression "psVar24 = psVar16" identifier = identifier) ;) })) (if_statement "if (!bVar2) {\n            n = (size_t *)((int)psVar21 + -1);\n            if (buffer_len <= (size_t *)((int)psVar21 + -1)) {\n              n = (size_t *)buffer_len;\n            }\n            if (s == (size_t *)0x0) {\n              *pcVar22 = (char)local_48;\n            }\n            else {\n              psVar14 = s;\n              psVar16 = n;\n              (*(code *)PTR_memcpy_0002b2fc)(pcVar22);\n            }\n            pcVar22 = pcVar22 + (int)n;\n            psVar21 = (size_t *)((int)psVar21 - (int)n);\n          }" if (parenthesized_expression "(!bVar2)" ( (unary_expression "!bVar2" ! identifier) )) (compound_statement "{\n            n = (size_t *)((int)psVar21 + -1);\n            if (buffer_len <= (size_t *)((int)psVar21 + -1)) {\n              n = (size_t *)buffer_len;\n            }\n            if (s == (size_t *)0x0) {\n              *pcVar22 = (char)local_48;\n            }\n            else {\n              psVar14 = s;\n              psVar16 = n;\n              (*(code *)PTR_memcpy_0002b2fc)(pcVar22);\n            }\n            pcVar22 = pcVar22 + (int)n;\n            psVar21 = (size_t *)((int)psVar21 - (int)n);\n          }" { (expression_statement "n = (size_t *)((int)psVar21 + -1);" (assignment_expression "n = (size_t *)((int)psVar21 + -1)" identifier = (cast_expression "(size_t *)((int)psVar21 + -1)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)psVar21 + -1)" ( (binary_expression "(int)psVar21 + -1" (cast_expression "(int)psVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (buffer_len <= (size_t *)((int)psVar21 + -1)) {\n              n = (size_t *)buffer_len;\n            }" if (parenthesized_expression "(buffer_len <= (size_t *)((int)psVar21 + -1))" ( (binary_expression "buffer_len <= (size_t *)((int)psVar21 + -1)" identifier <= (cast_expression "(size_t *)((int)psVar21 + -1)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)psVar21 + -1)" ( (binary_expression "(int)psVar21 + -1" (cast_expression "(int)psVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )) (compound_statement "{\n              n = (size_t *)buffer_len;\n            }" { (expression_statement "n = (size_t *)buffer_len;" (assignment_expression "n = (size_t *)buffer_len" identifier = (cast_expression "(size_t *)buffer_len" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (if_statement "if (s == (size_t *)0x0) {\n              *pcVar22 = (char)local_48;\n            }\n            else {\n              psVar14 = s;\n              psVar16 = n;\n              (*(code *)PTR_memcpy_0002b2fc)(pcVar22);\n            }" if (parenthesized_expression "(s == (size_t *)0x0)" ( (binary_expression "s == (size_t *)0x0" identifier == (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              *pcVar22 = (char)local_48;\n            }" { (expression_statement "*pcVar22 = (char)local_48;" (assignment_expression "*pcVar22 = (char)local_48" (pointer_expression "*pcVar22" * identifier) = (cast_expression "(char)local_48" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }) (else_clause "else {\n              psVar14 = s;\n              psVar16 = n;\n              (*(code *)PTR_memcpy_0002b2fc)(pcVar22);\n            }" else (compound_statement "{\n              psVar14 = s;\n              psVar16 = n;\n              (*(code *)PTR_memcpy_0002b2fc)(pcVar22);\n            }" { (expression_statement "psVar14 = s;" (assignment_expression "psVar14 = s" identifier = identifier) ;) (expression_statement "psVar16 = n;" (assignment_expression "psVar16 = n" identifier = identifier) ;) (expression_statement "(*(code *)PTR_memcpy_0002b2fc)(pcVar22);" (call_expression "(*(code *)PTR_memcpy_0002b2fc)(pcVar22)" (parenthesized_expression "(*(code *)PTR_memcpy_0002b2fc)" ( (pointer_expression "*(code *)PTR_memcpy_0002b2fc" * (cast_expression "(code *)PTR_memcpy_0002b2fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar22)" ( identifier ))) ;) }))) (expression_statement "pcVar22 = pcVar22 + (int)n;" (assignment_expression "pcVar22 = pcVar22 + (int)n" identifier = (binary_expression "pcVar22 + (int)n" identifier + (cast_expression "(int)n" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "psVar21 = (size_t *)((int)psVar21 - (int)n);" (assignment_expression "psVar21 = (size_t *)((int)psVar21 - (int)n)" identifier = (cast_expression "(size_t *)((int)psVar21 - (int)n)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)psVar21 - (int)n)" ( (binary_expression "(int)psVar21 - (int)n" (cast_expression "(int)psVar21" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)n" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) })) (expression_statement "pcVar25 = pcVar7;" (assignment_expression "pcVar25 = pcVar7" identifier = identifier) ;) (if_statement "if ((s != (size_t *)0x0) &&\n             (psVar14 = (size_t *)buffer_len, iVar23 = freadseek(stream,buffer_len),\n             psVar9 = psVar16, iVar23 != 0)) goto LAB_000140b0;" if (parenthesized_expression "((s != (size_t *)0x0) &&\n             (psVar14 = (size_t *)buffer_len, iVar23 = freadseek(stream,buffer_len),\n             psVar9 = psVar16, iVar23 != 0))" ( (binary_expression "(s != (size_t *)0x0) &&\n             (psVar14 = (size_t *)buffer_len, iVar23 = freadseek(stream,buffer_len),\n             psVar9 = psVar16, iVar23 != 0)" (parenthesized_expression "(s != (size_t *)0x0)" ( (binary_expression "s != (size_t *)0x0" identifier != (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(psVar14 = (size_t *)buffer_len, iVar23 = freadseek(stream,buffer_len),\n             psVar9 = psVar16, iVar23 != 0)" ( (comma_expression "psVar14 = (size_t *)buffer_len, iVar23 = freadseek(stream,buffer_len),\n             psVar9 = psVar16, iVar23 != 0" (assignment_expression "psVar14 = (size_t *)buffer_len" identifier = (cast_expression "(size_t *)buffer_len" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) , (comma_expression "iVar23 = freadseek(stream,buffer_len),\n             psVar9 = psVar16, iVar23 != 0" (assignment_expression "iVar23 = freadseek(stream,buffer_len)" identifier = (call_expression "freadseek(stream,buffer_len)" identifier (argument_list "(stream,buffer_len)" ( identifier , identifier )))) , (comma_expression "psVar9 = psVar16, iVar23 != 0" (assignment_expression "psVar9 = psVar16" identifier = identifier) , (binary_expression "iVar23 != 0" identifier != number_literal)))) ))) )) (goto_statement "goto LAB_000140b0;" goto statement_identifier ;)) }) while (parenthesized_expression "(!bVar3)" ( (unary_expression "!bVar3" ! identifier) )) ;) (expression_statement "*pcVar22 = '\0';" (assignment_expression "*pcVar22 = '\0'" (pointer_expression "*pcVar22" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "*lineptr = pcVar7;" (assignment_expression "*lineptr = pcVar7" (pointer_expression "*lineptr" * identifier) = identifier) ;) (expression_statement "sVar8 = (int)pcVar22 - (int)(pcVar7 + offset);" (assignment_expression "sVar8 = (int)pcVar22 - (int)(pcVar7 + offset)" identifier = (binary_expression "(int)pcVar22 - (int)(pcVar7 + offset)" (cast_expression "(int)pcVar22" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)(pcVar7 + offset)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar7 + offset)" ( (binary_expression "pcVar7 + offset" identifier + identifier) ))))) ;) (expression_statement "*linesize = (size_t)psVar24;" (assignment_expression "*linesize = (size_t)psVar24" (pointer_expression "*linesize" * identifier) = (cast_expression "(size_t)psVar24" ( (type_descriptor "size_t" primitive_type) ) identifier)) ;) (if_statement "if (sVar8 == 0) {\n          sVar8 = -1;\n        }" if (parenthesized_expression "(sVar8 == 0)" ( (binary_expression "sVar8 == 0" identifier == number_literal) )) (compound_statement "{\n          sVar8 = -1;\n        }" { (expression_statement "sVar8 = -1;" (assignment_expression "sVar8 = -1" identifier = number_literal) ;) })) (goto_statement "goto LAB_000140c0;" goto statement_identifier ;) })) })) (labeled_statement "LAB_000140b0:\n    psVar16 = psVar9;" statement_identifier : (expression_statement "psVar16 = psVar9;" (assignment_expression "psVar16 = psVar9" identifier = identifier) ;)) (expression_statement "*lineptr = pcVar25;" (assignment_expression "*lineptr = pcVar25" (pointer_expression "*lineptr" * identifier) = identifier) ;) (expression_statement "sVar8 = -1;" (assignment_expression "sVar8 = -1" identifier = number_literal) ;) (expression_statement "*linesize = (size_t)psVar24;" (assignment_expression "*linesize = (size_t)psVar24" (pointer_expression "*linesize" * identifier) = (cast_expression "(size_t)psVar24" ( (type_descriptor "size_t" primitive_type) ) identifier)) ;) }))) (labeled_statement "LAB_000140c0:\n  if (local_2c == *(uint **)puVar4) {\n    return sVar8;\n  }" statement_identifier : (if_statement "if (local_2c == *(uint **)puVar4) {\n    return sVar8;\n  }" if (parenthesized_expression "(local_2c == *(uint **)puVar4)" ( (binary_expression "local_2c == *(uint **)puVar4" identifier == (pointer_expression "*(uint **)puVar4" * (cast_expression "(uint **)puVar4" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return sVar8;\n  }" { (return_statement "return sVar8;" return identifier ;) }))) (expression_statement "s_00 = local_2c;" (assignment_expression "s_00 = local_2c" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0002b2e0)();" (call_expression "(*(code *)PTR___stack_chk_fail_0002b2e0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0002b2e0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0002b2e0" * (cast_expression "(code *)PTR___stack_chk_fail_0002b2e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar19 = (uint)psVar14 & 0xff;" (assignment_expression "uVar19 = (uint)psVar14 & 0xff" identifier = (binary_expression "(uint)psVar14 & 0xff" (cast_expression "(uint)psVar14" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar20 = (uint)psVar16 & 0xff;" (assignment_expression "uVar20 = (uint)psVar16 & 0xff" identifier = (binary_expression "(uint)psVar16 & 0xff" (cast_expression "(uint)psVar16" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (if_statement "if (uVar19 == uVar20) {\n    pvVar10 = rpl_memchr(s_00,(uint)psVar14 & 0xff,(size_t)n);\n    return (ssize_t)pvVar10;\n  }" if (parenthesized_expression "(uVar19 == uVar20)" ( (binary_expression "uVar19 == uVar20" identifier == identifier) )) (compound_statement "{\n    pvVar10 = rpl_memchr(s_00,(uint)psVar14 & 0xff,(size_t)n);\n    return (ssize_t)pvVar10;\n  }" { (expression_statement "pvVar10 = rpl_memchr(s_00,(uint)psVar14 & 0xff,(size_t)n);" (assignment_expression "pvVar10 = rpl_memchr(s_00,(uint)psVar14 & 0xff,(size_t)n)" identifier = (call_expression "rpl_memchr(s_00,(uint)psVar14 & 0xff,(size_t)n)" identifier (argument_list "(s_00,(uint)psVar14 & 0xff,(size_t)n)" ( identifier , (binary_expression "(uint)psVar14 & 0xff" (cast_expression "(uint)psVar14" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) , (cast_expression "(size_t)n" ( (type_descriptor "size_t" primitive_type) ) identifier) )))) ;) (return_statement "return (ssize_t)pvVar10;" return (cast_expression "(ssize_t)pvVar10" ( (type_descriptor "ssize_t" primitive_type) ) identifier) ;) })) (if_statement "if ((n != (size_t *)0x0) && (((uint)s_00 & 3) != 0)) {\n    if (uVar19 == *(byte *)s_00) {\n      return (ssize_t)s_00;\n    }\n    if (uVar20 == *(byte *)s_00) {\n      return (ssize_t)s_00;\n    }\n    while( true ) {\n      n = (size_t *)((int)n + -1);\n      s_00 = (uint *)((int)s_00 + 1);\n      if ((n == (size_t *)0x0) || (((uint)s_00 & 3) == 0)) break;\n      if (*(byte *)s_00 == uVar19) {\n        return (ssize_t)s_00;\n      }\n      if (*(byte *)s_00 == uVar20) {\n        return (ssize_t)s_00;\n      }\n    }\n  }" if (parenthesized_expression "((n != (size_t *)0x0) && (((uint)s_00 & 3) != 0))" ( (binary_expression "(n != (size_t *)0x0) && (((uint)s_00 & 3) != 0)" (parenthesized_expression "(n != (size_t *)0x0)" ( (binary_expression "n != (size_t *)0x0" identifier != (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(((uint)s_00 & 3) != 0)" ( (binary_expression "((uint)s_00 & 3) != 0" (parenthesized_expression "((uint)s_00 & 3)" ( (binary_expression "(uint)s_00 & 3" (cast_expression "(uint)s_00" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    if (uVar19 == *(byte *)s_00) {\n      return (ssize_t)s_00;\n    }\n    if (uVar20 == *(byte *)s_00) {\n      return (ssize_t)s_00;\n    }\n    while( true ) {\n      n = (size_t *)((int)n + -1);\n      s_00 = (uint *)((int)s_00 + 1);\n      if ((n == (size_t *)0x0) || (((uint)s_00 & 3) == 0)) break;\n      if (*(byte *)s_00 == uVar19) {\n        return (ssize_t)s_00;\n      }\n      if (*(byte *)s_00 == uVar20) {\n        return (ssize_t)s_00;\n      }\n    }\n  }" { (if_statement "if (uVar19 == *(byte *)s_00) {\n      return (ssize_t)s_00;\n    }" if (parenthesized_expression "(uVar19 == *(byte *)s_00)" ( (binary_expression "uVar19 == *(byte *)s_00" identifier == (pointer_expression "*(byte *)s_00" * (cast_expression "(byte *)s_00" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n      return (ssize_t)s_00;\n    }" { (return_statement "return (ssize_t)s_00;" return (cast_expression "(ssize_t)s_00" ( (type_descriptor "ssize_t" primitive_type) ) identifier) ;) })) (if_statement "if (uVar20 == *(byte *)s_00) {\n      return (ssize_t)s_00;\n    }" if (parenthesized_expression "(uVar20 == *(byte *)s_00)" ( (binary_expression "uVar20 == *(byte *)s_00" identifier == (pointer_expression "*(byte *)s_00" * (cast_expression "(byte *)s_00" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n      return (ssize_t)s_00;\n    }" { (return_statement "return (ssize_t)s_00;" return (cast_expression "(ssize_t)s_00" ( (type_descriptor "ssize_t" primitive_type) ) identifier) ;) })) (while_statement "while( true ) {\n      n = (size_t *)((int)n + -1);\n      s_00 = (uint *)((int)s_00 + 1);\n      if ((n == (size_t *)0x0) || (((uint)s_00 & 3) == 0)) break;\n      if (*(byte *)s_00 == uVar19) {\n        return (ssize_t)s_00;\n      }\n      if (*(byte *)s_00 == uVar20) {\n        return (ssize_t)s_00;\n      }\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      n = (size_t *)((int)n + -1);\n      s_00 = (uint *)((int)s_00 + 1);\n      if ((n == (size_t *)0x0) || (((uint)s_00 & 3) == 0)) break;\n      if (*(byte *)s_00 == uVar19) {\n        return (ssize_t)s_00;\n      }\n      if (*(byte *)s_00 == uVar20) {\n        return (ssize_t)s_00;\n      }\n    }" { (expression_statement "n = (size_t *)((int)n + -1);" (assignment_expression "n = (size_t *)((int)n + -1)" identifier = (cast_expression "(size_t *)((int)n + -1)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)n + -1)" ( (binary_expression "(int)n + -1" (cast_expression "(int)n" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "s_00 = (uint *)((int)s_00 + 1);" (assignment_expression "s_00 = (uint *)((int)s_00 + 1)" identifier = (cast_expression "(uint *)((int)s_00 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)s_00 + 1)" ( (binary_expression "(int)s_00 + 1" (cast_expression "(int)s_00" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((n == (size_t *)0x0) || (((uint)s_00 & 3) == 0)) break;" if (parenthesized_expression "((n == (size_t *)0x0) || (((uint)s_00 & 3) == 0))" ( (binary_expression "(n == (size_t *)0x0) || (((uint)s_00 & 3) == 0)" (parenthesized_expression "(n == (size_t *)0x0)" ( (binary_expression "n == (size_t *)0x0" identifier == (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(((uint)s_00 & 3) == 0)" ( (binary_expression "((uint)s_00 & 3) == 0" (parenthesized_expression "((uint)s_00 & 3)" ( (binary_expression "(uint)s_00 & 3" (cast_expression "(uint)s_00" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) ))) )) (break_statement "break;" break ;)) (if_statement "if (*(byte *)s_00 == uVar19) {\n        return (ssize_t)s_00;\n      }" if (parenthesized_expression "(*(byte *)s_00 == uVar19)" ( (binary_expression "*(byte *)s_00 == uVar19" (pointer_expression "*(byte *)s_00" * (cast_expression "(byte *)s_00" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == identifier) )) (compound_statement "{\n        return (ssize_t)s_00;\n      }" { (return_statement "return (ssize_t)s_00;" return (cast_expression "(ssize_t)s_00" ( (type_descriptor "ssize_t" primitive_type) ) identifier) ;) })) (if_statement "if (*(byte *)s_00 == uVar20) {\n        return (ssize_t)s_00;\n      }" if (parenthesized_expression "(*(byte *)s_00 == uVar20)" ( (binary_expression "*(byte *)s_00 == uVar20" (pointer_expression "*(byte *)s_00" * (cast_expression "(byte *)s_00" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == identifier) )) (compound_statement "{\n        return (ssize_t)s_00;\n      }" { (return_statement "return (ssize_t)s_00;" return (cast_expression "(ssize_t)s_00" ( (type_descriptor "ssize_t" primitive_type) ) identifier) ;) })) })) })) (expression_statement "uVar15 = ((uint)psVar14 & 0xff) << 8 | (uint)psVar14 & 0xff;" (assignment_expression "uVar15 = ((uint)psVar14 & 0xff) << 8 | (uint)psVar14 & 0xff" identifier = (binary_expression "((uint)psVar14 & 0xff) << 8 | (uint)psVar14 & 0xff" (binary_expression "((uint)psVar14 & 0xff) << 8" (parenthesized_expression "((uint)psVar14 & 0xff)" ( (binary_expression "(uint)psVar14 & 0xff" (cast_expression "(uint)psVar14" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) << number_literal) | (binary_expression "(uint)psVar14 & 0xff" (cast_expression "(uint)psVar14" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal))) ;) (expression_statement "uVar17 = ((uint)psVar16 & 0xff) << 8 | (uint)psVar16 & 0xff;" (assignment_expression "uVar17 = ((uint)psVar16 & 0xff) << 8 | (uint)psVar16 & 0xff" identifier = (binary_expression "((uint)psVar16 & 0xff) << 8 | (uint)psVar16 & 0xff" (binary_expression "((uint)psVar16 & 0xff) << 8" (parenthesized_expression "((uint)psVar16 & 0xff)" ( (binary_expression "(uint)psVar16 & 0xff" (cast_expression "(uint)psVar16" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) << number_literal) | (binary_expression "(uint)psVar16 & 0xff" (cast_expression "(uint)psVar16" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal))) ;) (expression_statement "uVar15 = uVar15 << 0x10 | uVar15;" (assignment_expression "uVar15 = uVar15 << 0x10 | uVar15" identifier = (binary_expression "uVar15 << 0x10 | uVar15" (binary_expression "uVar15 << 0x10" identifier << number_literal) | identifier)) ;) (expression_statement "uVar17 = uVar17 << 0x10 | uVar17;" (assignment_expression "uVar17 = uVar17 << 0x10 | uVar17" identifier = (binary_expression "uVar17 << 0x10 | uVar17" (binary_expression "uVar17 << 0x10" identifier << number_literal) | identifier)) ;) (if_statement "if (n < (size_t *)0x4) {\nLAB_0001433c:\n    if (n == (size_t *)0x0) {\n      return 0;\n    }\n  }\n  else {\n    uVar11 = uVar15 ^ *s_00;\n    uVar13 = uVar17 ^ *s_00;\n    if (((~uVar11 & uVar11 + 0xfefefeff | ~uVar13 & uVar13 + 0xfefefeff) & 0x80808080) != 0) {\n      bVar1 = *(byte *)s_00;\n      goto LAB_00014348;\n    }\n    do {\n      n = n + -1;\n      s_00 = s_00 + 1;\n      if (n < (size_t *)0x4) goto LAB_0001433c;\n      uVar13 = *s_00 ^ uVar15;\n      uVar11 = *s_00 ^ uVar17;\n    } while (((uVar13 + 0xfefefeff & ~uVar13 | uVar11 + 0xfefefeff & ~uVar11) & 0x80808080) == 0);\n  }" if (parenthesized_expression "(n < (size_t *)0x4)" ( (binary_expression "n < (size_t *)0x4" identifier < (cast_expression "(size_t *)0x4" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0001433c:\n    if (n == (size_t *)0x0) {\n      return 0;\n    }\n  }" { (labeled_statement "LAB_0001433c:\n    if (n == (size_t *)0x0) {\n      return 0;\n    }" statement_identifier : (if_statement "if (n == (size_t *)0x0) {\n      return 0;\n    }" if (parenthesized_expression "(n == (size_t *)0x0)" ( (binary_expression "n == (size_t *)0x0" identifier == (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) }))) }) (else_clause "else {\n    uVar11 = uVar15 ^ *s_00;\n    uVar13 = uVar17 ^ *s_00;\n    if (((~uVar11 & uVar11 + 0xfefefeff | ~uVar13 & uVar13 + 0xfefefeff) & 0x80808080) != 0) {\n      bVar1 = *(byte *)s_00;\n      goto LAB_00014348;\n    }\n    do {\n      n = n + -1;\n      s_00 = s_00 + 1;\n      if (n < (size_t *)0x4) goto LAB_0001433c;\n      uVar13 = *s_00 ^ uVar15;\n      uVar11 = *s_00 ^ uVar17;\n    } while (((uVar13 + 0xfefefeff & ~uVar13 | uVar11 + 0xfefefeff & ~uVar11) & 0x80808080) == 0);\n  }" else (compound_statement "{\n    uVar11 = uVar15 ^ *s_00;\n    uVar13 = uVar17 ^ *s_00;\n    if (((~uVar11 & uVar11 + 0xfefefeff | ~uVar13 & uVar13 + 0xfefefeff) & 0x80808080) != 0) {\n      bVar1 = *(byte *)s_00;\n      goto LAB_00014348;\n    }\n    do {\n      n = n + -1;\n      s_00 = s_00 + 1;\n      if (n < (size_t *)0x4) goto LAB_0001433c;\n      uVar13 = *s_00 ^ uVar15;\n      uVar11 = *s_00 ^ uVar17;\n    } while (((uVar13 + 0xfefefeff & ~uVar13 | uVar11 + 0xfefefeff & ~uVar11) & 0x80808080) == 0);\n  }" { (expression_statement "uVar11 = uVar15 ^ *s_00;" (assignment_expression "uVar11 = uVar15 ^ *s_00" identifier = (binary_expression "uVar15 ^ *s_00" identifier ^ (pointer_expression "*s_00" * identifier))) ;) (expression_statement "uVar13 = uVar17 ^ *s_00;" (assignment_expression "uVar13 = uVar17 ^ *s_00" identifier = (binary_expression "uVar17 ^ *s_00" identifier ^ (pointer_expression "*s_00" * identifier))) ;) (if_statement "if (((~uVar11 & uVar11 + 0xfefefeff | ~uVar13 & uVar13 + 0xfefefeff) & 0x80808080) != 0) {\n      bVar1 = *(byte *)s_00;\n      goto LAB_00014348;\n    }" if (parenthesized_expression "(((~uVar11 & uVar11 + 0xfefefeff | ~uVar13 & uVar13 + 0xfefefeff) & 0x80808080) != 0)" ( (binary_expression "((~uVar11 & uVar11 + 0xfefefeff | ~uVar13 & uVar13 + 0xfefefeff) & 0x80808080) != 0" (parenthesized_expression "((~uVar11 & uVar11 + 0xfefefeff | ~uVar13 & uVar13 + 0xfefefeff) & 0x80808080)" ( (binary_expression "(~uVar11 & uVar11 + 0xfefefeff | ~uVar13 & uVar13 + 0xfefefeff) & 0x80808080" (parenthesized_expression "(~uVar11 & uVar11 + 0xfefefeff | ~uVar13 & uVar13 + 0xfefefeff)" ( (binary_expression "~uVar11 & uVar11 + 0xfefefeff | ~uVar13 & uVar13 + 0xfefefeff" (binary_expression "~uVar11 & uVar11 + 0xfefefeff" (unary_expression "~uVar11" ~ identifier) & (binary_expression "uVar11 + 0xfefefeff" identifier + number_literal)) | (binary_expression "~uVar13 & uVar13 + 0xfefefeff" (unary_expression "~uVar13" ~ identifier) & (binary_expression "uVar13 + 0xfefefeff" identifier + number_literal))) )) & number_literal) )) != number_literal) )) (compound_statement "{\n      bVar1 = *(byte *)s_00;\n      goto LAB_00014348;\n    }" { (expression_statement "bVar1 = *(byte *)s_00;" (assignment_expression "bVar1 = *(byte *)s_00" identifier = (pointer_expression "*(byte *)s_00" * (cast_expression "(byte *)s_00" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (goto_statement "goto LAB_00014348;" goto statement_identifier ;) })) (do_statement "do {\n      n = n + -1;\n      s_00 = s_00 + 1;\n      if (n < (size_t *)0x4) goto LAB_0001433c;\n      uVar13 = *s_00 ^ uVar15;\n      uVar11 = *s_00 ^ uVar17;\n    } while (((uVar13 + 0xfefefeff & ~uVar13 | uVar11 + 0xfefefeff & ~uVar11) & 0x80808080) == 0);" do (compound_statement "{\n      n = n + -1;\n      s_00 = s_00 + 1;\n      if (n < (size_t *)0x4) goto LAB_0001433c;\n      uVar13 = *s_00 ^ uVar15;\n      uVar11 = *s_00 ^ uVar17;\n    }" { (expression_statement "n = n + -1;" (assignment_expression "n = n + -1" identifier = (binary_expression "n + -1" identifier + number_literal)) ;) (expression_statement "s_00 = s_00 + 1;" (assignment_expression "s_00 = s_00 + 1" identifier = (binary_expression "s_00 + 1" identifier + number_literal)) ;) (if_statement "if (n < (size_t *)0x4) goto LAB_0001433c;" if (parenthesized_expression "(n < (size_t *)0x4)" ( (binary_expression "n < (size_t *)0x4" identifier < (cast_expression "(size_t *)0x4" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001433c;" goto statement_identifier ;)) (expression_statement "uVar13 = *s_00 ^ uVar15;" (assignment_expression "uVar13 = *s_00 ^ uVar15" identifier = (binary_expression "*s_00 ^ uVar15" (pointer_expression "*s_00" * identifier) ^ identifier)) ;) (expression_statement "uVar11 = *s_00 ^ uVar17;" (assignment_expression "uVar11 = *s_00 ^ uVar17" identifier = (binary_expression "*s_00 ^ uVar17" (pointer_expression "*s_00" * identifier) ^ identifier)) ;) }) while (parenthesized_expression "(((uVar13 + 0xfefefeff & ~uVar13 | uVar11 + 0xfefefeff & ~uVar11) & 0x80808080) == 0)" ( (binary_expression "((uVar13 + 0xfefefeff & ~uVar13 | uVar11 + 0xfefefeff & ~uVar11) & 0x80808080) == 0" (parenthesized_expression "((uVar13 + 0xfefefeff & ~uVar13 | uVar11 + 0xfefefeff & ~uVar11) & 0x80808080)" ( (binary_expression "(uVar13 + 0xfefefeff & ~uVar13 | uVar11 + 0xfefefeff & ~uVar11) & 0x80808080" (parenthesized_expression "(uVar13 + 0xfefefeff & ~uVar13 | uVar11 + 0xfefefeff & ~uVar11)" ( (binary_expression "uVar13 + 0xfefefeff & ~uVar13 | uVar11 + 0xfefefeff & ~uVar11" (binary_expression "uVar13 + 0xfefefeff & ~uVar13" (binary_expression "uVar13 + 0xfefefeff" identifier + number_literal) & (unary_expression "~uVar13" ~ identifier)) | (binary_expression "uVar11 + 0xfefefeff & ~uVar11" (binary_expression "uVar11 + 0xfefefeff" identifier + number_literal) & (unary_expression "~uVar11" ~ identifier))) )) & number_literal) )) == number_literal) )) ;) }))) (expression_statement "bVar1 = *(byte *)s_00;" (assignment_expression "bVar1 = *(byte *)s_00" identifier = (pointer_expression "*(byte *)s_00" * (cast_expression "(byte *)s_00" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (labeled_statement "LAB_00014348:\n  if ((uVar19 != bVar1) && (uVar20 != bVar1)) {\n    puVar18 = (uint *)((int)s_00 + (int)n);\n    do {\n      s_00 = (uint *)((int)s_00 + 1);\n      if (s_00 == puVar18) {\n        return 0;\n      }\n    } while ((*(byte *)s_00 != uVar19) && (*(byte *)s_00 != uVar20));\n  }" statement_identifier : (if_statement "if ((uVar19 != bVar1) && (uVar20 != bVar1)) {\n    puVar18 = (uint *)((int)s_00 + (int)n);\n    do {\n      s_00 = (uint *)((int)s_00 + 1);\n      if (s_00 == puVar18) {\n        return 0;\n      }\n    } while ((*(byte *)s_00 != uVar19) && (*(byte *)s_00 != uVar20));\n  }" if (parenthesized_expression "((uVar19 != bVar1) && (uVar20 != bVar1))" ( (binary_expression "(uVar19 != bVar1) && (uVar20 != bVar1)" (parenthesized_expression "(uVar19 != bVar1)" ( (binary_expression "uVar19 != bVar1" identifier != identifier) )) && (parenthesized_expression "(uVar20 != bVar1)" ( (binary_expression "uVar20 != bVar1" identifier != identifier) ))) )) (compound_statement "{\n    puVar18 = (uint *)((int)s_00 + (int)n);\n    do {\n      s_00 = (uint *)((int)s_00 + 1);\n      if (s_00 == puVar18) {\n        return 0;\n      }\n    } while ((*(byte *)s_00 != uVar19) && (*(byte *)s_00 != uVar20));\n  }" { (expression_statement "puVar18 = (uint *)((int)s_00 + (int)n);" (assignment_expression "puVar18 = (uint *)((int)s_00 + (int)n)" identifier = (cast_expression "(uint *)((int)s_00 + (int)n)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)s_00 + (int)n)" ( (binary_expression "(int)s_00 + (int)n" (cast_expression "(int)s_00" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)n" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (do_statement "do {\n      s_00 = (uint *)((int)s_00 + 1);\n      if (s_00 == puVar18) {\n        return 0;\n      }\n    } while ((*(byte *)s_00 != uVar19) && (*(byte *)s_00 != uVar20));" do (compound_statement "{\n      s_00 = (uint *)((int)s_00 + 1);\n      if (s_00 == puVar18) {\n        return 0;\n      }\n    }" { (expression_statement "s_00 = (uint *)((int)s_00 + 1);" (assignment_expression "s_00 = (uint *)((int)s_00 + 1)" identifier = (cast_expression "(uint *)((int)s_00 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)s_00 + 1)" ( (binary_expression "(int)s_00 + 1" (cast_expression "(int)s_00" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (s_00 == puVar18) {\n        return 0;\n      }" if (parenthesized_expression "(s_00 == puVar18)" ( (binary_expression "s_00 == puVar18" identifier == identifier) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) }) while (parenthesized_expression "((*(byte *)s_00 != uVar19) && (*(byte *)s_00 != uVar20))" ( (binary_expression "(*(byte *)s_00 != uVar19) && (*(byte *)s_00 != uVar20)" (parenthesized_expression "(*(byte *)s_00 != uVar19)" ( (binary_expression "*(byte *)s_00 != uVar19" (pointer_expression "*(byte *)s_00" * (cast_expression "(byte *)s_00" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) != identifier) )) && (parenthesized_expression "(*(byte *)s_00 != uVar20)" ( (binary_expression "*(byte *)s_00 != uVar20" (pointer_expression "*(byte *)s_00" * (cast_expression "(byte *)s_00" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) != identifier) ))) )) ;) }))) (return_statement "return (ssize_t)s_00;" return (cast_expression "(ssize_t)s_00" ( (type_descriptor "ssize_t" primitive_type) ) identifier) ;) })))
(translation_unit "uint * getndelim2(undefined4 *param_1,uint *param_2,uint *param_3,uint *param_4,uint *param_5,\n                 uint *param_6,int param_7)\n\n{\n  byte bVar1;\n  bool bVar2;\n  bool bVar3;\n  undefined *puVar4;\n  uint *puVar5;\n  uint *puVar6;\n  uint *puVar7;\n  undefined1 *puVar8;\n  uint *puVar9;\n  uint uVar10;\n  byte *pbVar11;\n  uint uVar12;\n  uint *puVar13;\n  uint uVar14;\n  uint *puVar15;\n  uint uVar16;\n  uint *puVar17;\n  uint uVar18;\n  uint uVar19;\n  uint *puVar20;\n  undefined1 *puVar21;\n  int iVar22;\n  uint *puVar23;\n  uint *puVar24;\n  undefined1 *puVar25;\n  uint *local_48;\n  uint *local_30;\n  \n  puVar4 = PTR___stack_chk_guard_0002b2f8;\n  puVar5 = *(uint **)PTR___stack_chk_guard_0002b2f8;\n  puVar25 = (undefined1 *)*param_1;\n  puVar23 = (uint *)*param_2;\n  puVar13 = param_2;\n  puVar15 = param_3;\n  puVar17 = param_4;\n  if (puVar25 == (undefined1 *)0x0) {\n    puVar23 = param_4;\n    if ((uint *)0x40 < param_4) {\n      puVar23 = (uint *)0x40;\n    }\n    puVar25 = (undefined1 *)(*(code *)PTR_malloc_0002b2b4)(puVar23);\n    if (puVar25 != (undefined1 *)0x0) goto LAB_00013ed4;\n    puVar9 = (uint *)0xffffffff;\n  }\n  else {\nLAB_00013ed4:\n    puVar9 = puVar15;\n    if (param_3 <= puVar23) {\n      puVar20 = (uint *)((int)puVar23 - (int)param_3);\n      puVar21 = puVar25 + (int)param_3;\n      if ((puVar20 != (uint *)0x0) || (puVar23 < param_4)) {\n        puVar24 = param_6;\n        if ((param_5 != (uint *)0xffffffff) && (puVar24 = param_5, param_6 == (uint *)0xffffffff)) {\n          param_6 = param_5;\n        }\n        puVar6 = param_3 + -0x20000000;\n        do {\n          puVar13 = (uint *)0xffffffd0;\n          puVar7 = (uint *)freadptr(param_7);\n          puVar8 = puVar25;\n          if (puVar7 == (uint *)0x0) {\n            pbVar11 = *(byte **)(param_7 + 4);\n            if (pbVar11 < *(byte **)(param_7 + 8)) {\n              *(byte **)(param_7 + 4) = pbVar11 + 1;\n              local_48 = (uint *)(uint)*pbVar11;\n            }\n            else {\n              local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);\n              if (local_48 == (uint *)0xffffffff) {\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = puVar24 == local_48 || param_6 == local_48;\n            puVar17 = (uint *)0x2;\n            local_30 = (uint *)0x1;\n          }\n          else if ((puVar24 == (uint *)0xffffffff) ||\n                  (puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0)) {\n            puVar17 = (uint *)((int)local_30 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            local_30 = (uint *)((iVar22 - (int)puVar7) + 1);\n            puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);\n          }\n          bVar2 = puVar20 < (uint *)0x2;\n          if ((puVar20 < puVar17) && (bVar2 = puVar20 < (uint *)0x2, puVar23 < param_4)) {\n            iVar22 = (int)puVar21 - (int)puVar25;\n            puVar15 = param_4;\n            if (puVar23 < (uint *)0x40) {\n              puVar9 = puVar23 + 0x10;\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) {\nLAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (puVar9 < param_4) {\n                puVar15 = puVar9;\n              }\n            }\n            else {\n              puVar9 = (uint *)((int)puVar23 * 2);\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;\nLAB_00014154:\n              if (puVar23 < puVar9) goto LAB_00013f98;\n            }\n            if (((int)puVar15 - (int)param_3 < 0) &&\n               (puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6)) goto LAB_000140b0;\n            puVar20 = (uint *)((int)puVar15 - iVar22);\n            puVar13 = puVar15;\n            puVar9 = puVar15;\n            puVar8 = (undefined1 *)(*(code *)PTR_realloc_0002b2b8)(puVar25);\n            if (puVar8 == (undefined1 *)0x0) goto LAB_000140b0;\n            puVar21 = puVar8 + iVar22;\n            bVar2 = puVar20 < (uint *)0x2;\n            puVar23 = puVar15;\n          }\n          if (!bVar2) {\n            puVar17 = (uint *)((int)puVar20 + -1);\n            if (local_30 <= (uint *)((int)puVar20 + -1)) {\n              puVar17 = local_30;\n            }\n            if (puVar7 == (uint *)0x0) {\n              *puVar21 = (char)local_48;\n            }\n            else {\n              puVar13 = puVar7;\n              puVar15 = puVar17;\n              (*(code *)PTR_memcpy_0002b2fc)(puVar21);\n            }\n            puVar21 = puVar21 + (int)puVar17;\n            puVar20 = (uint *)((int)puVar20 - (int)puVar17);\n          }\n          puVar25 = puVar8;\n          if ((puVar7 != (uint *)0x0) &&\n             (puVar13 = local_30, iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0))\n          goto LAB_000140b0;\n        } while (!bVar3);\n        *puVar21 = 0;\n        *param_1 = puVar8;\n        puVar9 = (uint *)(puVar21 + -(int)(puVar8 + (int)param_3));\n        *param_2 = (uint)puVar23;\n        if (puVar9 == (uint *)0x0) {\n          puVar9 = (uint *)0xffffffff;\n        }\n        goto LAB_000140c0;\n      }\n    }\nLAB_000140b0:\n    puVar15 = puVar9;\n    *param_1 = puVar25;\n    puVar9 = (uint *)0xffffffff;\n    *param_2 = (uint)puVar23;\n  }\nLAB_000140c0:\n  if (puVar5 == *(uint **)puVar4) {\n    return puVar9;\n  }\n  (*(code *)PTR___stack_chk_fail_0002b2e0)();\n  uVar18 = (uint)puVar13 & 0xff;\n  uVar19 = (uint)puVar15 & 0xff;\n  if (uVar18 == uVar19) {\n    puVar5 = (uint *)rpl_memchr();\n    return puVar5;\n  }\n  if ((puVar17 != (uint *)0x0) && (((uint)puVar5 & 3) != 0)) {\n    if (uVar18 == *(byte *)puVar5) {\n      return puVar5;\n    }\n    if (uVar19 == *(byte *)puVar5) {\n      return puVar5;\n    }\n    while( true ) {\n      puVar17 = (uint *)((int)puVar17 - 1);\n      puVar5 = (uint *)((int)puVar5 + 1);\n      if ((puVar17 == (uint *)0x0) || (((uint)puVar5 & 3) == 0)) break;\n      if (*(byte *)puVar5 == uVar18) {\n        return puVar5;\n      }\n      if (*(byte *)puVar5 == uVar19) {\n        return puVar5;\n      }\n    }\n  }\n  uVar14 = ((uint)puVar13 & 0xff) << 8 | (uint)puVar13 & 0xff;\n  uVar16 = ((uint)puVar15 & 0xff) << 8 | (uint)puVar15 & 0xff;\n  uVar14 = uVar14 << 0x10 | uVar14;\n  uVar16 = uVar16 << 0x10 | uVar16;\n  if (puVar17 < (uint *)0x4) {\nLAB_0001433c:\n    if (puVar17 == (uint *)0x0) {\n      return (uint *)0x0;\n    }\n  }\n  else {\n    uVar10 = uVar14 ^ *puVar5;\n    uVar12 = uVar16 ^ *puVar5;\n    if (((~uVar10 & uVar10 + 0xfefefeff | ~uVar12 & uVar12 + 0xfefefeff) & 0x80808080) != 0) {\n      bVar1 = *(byte *)puVar5;\n      goto LAB_00014348;\n    }\n    do {\n      puVar17 = puVar17 + -1;\n      puVar5 = puVar5 + 1;\n      if (puVar17 < (uint *)0x4) goto LAB_0001433c;\n      uVar12 = *puVar5 ^ uVar14;\n      uVar10 = *puVar5 ^ uVar16;\n    } while (((uVar12 + 0xfefefeff & ~uVar12 | uVar10 + 0xfefefeff & ~uVar10) & 0x80808080) == 0);\n  }\n  bVar1 = *(byte *)puVar5;\nLAB_00014348:\n  if ((uVar18 != bVar1) && (uVar19 != bVar1)) {\n    puVar17 = (uint *)((int)puVar5 + (int)puVar17);\n    do {\n      puVar5 = (uint *)((int)puVar5 + 1);\n      if (puVar5 == puVar17) {\n        return (uint *)0x0;\n      }\n    } while ((*(byte *)puVar5 != uVar18) && (*(byte *)puVar5 != uVar19));\n  }\n  return puVar5;\n}\n\n" (function_definition "uint * getndelim2(undefined4 *param_1,uint *param_2,uint *param_3,uint *param_4,uint *param_5,\n                 uint *param_6,int param_7)\n\n{\n  byte bVar1;\n  bool bVar2;\n  bool bVar3;\n  undefined *puVar4;\n  uint *puVar5;\n  uint *puVar6;\n  uint *puVar7;\n  undefined1 *puVar8;\n  uint *puVar9;\n  uint uVar10;\n  byte *pbVar11;\n  uint uVar12;\n  uint *puVar13;\n  uint uVar14;\n  uint *puVar15;\n  uint uVar16;\n  uint *puVar17;\n  uint uVar18;\n  uint uVar19;\n  uint *puVar20;\n  undefined1 *puVar21;\n  int iVar22;\n  uint *puVar23;\n  uint *puVar24;\n  undefined1 *puVar25;\n  uint *local_48;\n  uint *local_30;\n  \n  puVar4 = PTR___stack_chk_guard_0002b2f8;\n  puVar5 = *(uint **)PTR___stack_chk_guard_0002b2f8;\n  puVar25 = (undefined1 *)*param_1;\n  puVar23 = (uint *)*param_2;\n  puVar13 = param_2;\n  puVar15 = param_3;\n  puVar17 = param_4;\n  if (puVar25 == (undefined1 *)0x0) {\n    puVar23 = param_4;\n    if ((uint *)0x40 < param_4) {\n      puVar23 = (uint *)0x40;\n    }\n    puVar25 = (undefined1 *)(*(code *)PTR_malloc_0002b2b4)(puVar23);\n    if (puVar25 != (undefined1 *)0x0) goto LAB_00013ed4;\n    puVar9 = (uint *)0xffffffff;\n  }\n  else {\nLAB_00013ed4:\n    puVar9 = puVar15;\n    if (param_3 <= puVar23) {\n      puVar20 = (uint *)((int)puVar23 - (int)param_3);\n      puVar21 = puVar25 + (int)param_3;\n      if ((puVar20 != (uint *)0x0) || (puVar23 < param_4)) {\n        puVar24 = param_6;\n        if ((param_5 != (uint *)0xffffffff) && (puVar24 = param_5, param_6 == (uint *)0xffffffff)) {\n          param_6 = param_5;\n        }\n        puVar6 = param_3 + -0x20000000;\n        do {\n          puVar13 = (uint *)0xffffffd0;\n          puVar7 = (uint *)freadptr(param_7);\n          puVar8 = puVar25;\n          if (puVar7 == (uint *)0x0) {\n            pbVar11 = *(byte **)(param_7 + 4);\n            if (pbVar11 < *(byte **)(param_7 + 8)) {\n              *(byte **)(param_7 + 4) = pbVar11 + 1;\n              local_48 = (uint *)(uint)*pbVar11;\n            }\n            else {\n              local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);\n              if (local_48 == (uint *)0xffffffff) {\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = puVar24 == local_48 || param_6 == local_48;\n            puVar17 = (uint *)0x2;\n            local_30 = (uint *)0x1;\n          }\n          else if ((puVar24 == (uint *)0xffffffff) ||\n                  (puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0)) {\n            puVar17 = (uint *)((int)local_30 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            local_30 = (uint *)((iVar22 - (int)puVar7) + 1);\n            puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);\n          }\n          bVar2 = puVar20 < (uint *)0x2;\n          if ((puVar20 < puVar17) && (bVar2 = puVar20 < (uint *)0x2, puVar23 < param_4)) {\n            iVar22 = (int)puVar21 - (int)puVar25;\n            puVar15 = param_4;\n            if (puVar23 < (uint *)0x40) {\n              puVar9 = puVar23 + 0x10;\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) {\nLAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (puVar9 < param_4) {\n                puVar15 = puVar9;\n              }\n            }\n            else {\n              puVar9 = (uint *)((int)puVar23 * 2);\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;\nLAB_00014154:\n              if (puVar23 < puVar9) goto LAB_00013f98;\n            }\n            if (((int)puVar15 - (int)param_3 < 0) &&\n               (puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6)) goto LAB_000140b0;\n            puVar20 = (uint *)((int)puVar15 - iVar22);\n            puVar13 = puVar15;\n            puVar9 = puVar15;\n            puVar8 = (undefined1 *)(*(code *)PTR_realloc_0002b2b8)(puVar25);\n            if (puVar8 == (undefined1 *)0x0) goto LAB_000140b0;\n            puVar21 = puVar8 + iVar22;\n            bVar2 = puVar20 < (uint *)0x2;\n            puVar23 = puVar15;\n          }\n          if (!bVar2) {\n            puVar17 = (uint *)((int)puVar20 + -1);\n            if (local_30 <= (uint *)((int)puVar20 + -1)) {\n              puVar17 = local_30;\n            }\n            if (puVar7 == (uint *)0x0) {\n              *puVar21 = (char)local_48;\n            }\n            else {\n              puVar13 = puVar7;\n              puVar15 = puVar17;\n              (*(code *)PTR_memcpy_0002b2fc)(puVar21);\n            }\n            puVar21 = puVar21 + (int)puVar17;\n            puVar20 = (uint *)((int)puVar20 - (int)puVar17);\n          }\n          puVar25 = puVar8;\n          if ((puVar7 != (uint *)0x0) &&\n             (puVar13 = local_30, iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0))\n          goto LAB_000140b0;\n        } while (!bVar3);\n        *puVar21 = 0;\n        *param_1 = puVar8;\n        puVar9 = (uint *)(puVar21 + -(int)(puVar8 + (int)param_3));\n        *param_2 = (uint)puVar23;\n        if (puVar9 == (uint *)0x0) {\n          puVar9 = (uint *)0xffffffff;\n        }\n        goto LAB_000140c0;\n      }\n    }\nLAB_000140b0:\n    puVar15 = puVar9;\n    *param_1 = puVar25;\n    puVar9 = (uint *)0xffffffff;\n    *param_2 = (uint)puVar23;\n  }\nLAB_000140c0:\n  if (puVar5 == *(uint **)puVar4) {\n    return puVar9;\n  }\n  (*(code *)PTR___stack_chk_fail_0002b2e0)();\n  uVar18 = (uint)puVar13 & 0xff;\n  uVar19 = (uint)puVar15 & 0xff;\n  if (uVar18 == uVar19) {\n    puVar5 = (uint *)rpl_memchr();\n    return puVar5;\n  }\n  if ((puVar17 != (uint *)0x0) && (((uint)puVar5 & 3) != 0)) {\n    if (uVar18 == *(byte *)puVar5) {\n      return puVar5;\n    }\n    if (uVar19 == *(byte *)puVar5) {\n      return puVar5;\n    }\n    while( true ) {\n      puVar17 = (uint *)((int)puVar17 - 1);\n      puVar5 = (uint *)((int)puVar5 + 1);\n      if ((puVar17 == (uint *)0x0) || (((uint)puVar5 & 3) == 0)) break;\n      if (*(byte *)puVar5 == uVar18) {\n        return puVar5;\n      }\n      if (*(byte *)puVar5 == uVar19) {\n        return puVar5;\n      }\n    }\n  }\n  uVar14 = ((uint)puVar13 & 0xff) << 8 | (uint)puVar13 & 0xff;\n  uVar16 = ((uint)puVar15 & 0xff) << 8 | (uint)puVar15 & 0xff;\n  uVar14 = uVar14 << 0x10 | uVar14;\n  uVar16 = uVar16 << 0x10 | uVar16;\n  if (puVar17 < (uint *)0x4) {\nLAB_0001433c:\n    if (puVar17 == (uint *)0x0) {\n      return (uint *)0x0;\n    }\n  }\n  else {\n    uVar10 = uVar14 ^ *puVar5;\n    uVar12 = uVar16 ^ *puVar5;\n    if (((~uVar10 & uVar10 + 0xfefefeff | ~uVar12 & uVar12 + 0xfefefeff) & 0x80808080) != 0) {\n      bVar1 = *(byte *)puVar5;\n      goto LAB_00014348;\n    }\n    do {\n      puVar17 = puVar17 + -1;\n      puVar5 = puVar5 + 1;\n      if (puVar17 < (uint *)0x4) goto LAB_0001433c;\n      uVar12 = *puVar5 ^ uVar14;\n      uVar10 = *puVar5 ^ uVar16;\n    } while (((uVar12 + 0xfefefeff & ~uVar12 | uVar10 + 0xfefefeff & ~uVar10) & 0x80808080) == 0);\n  }\n  bVar1 = *(byte *)puVar5;\nLAB_00014348:\n  if ((uVar18 != bVar1) && (uVar19 != bVar1)) {\n    puVar17 = (uint *)((int)puVar5 + (int)puVar17);\n    do {\n      puVar5 = (uint *)((int)puVar5 + 1);\n      if (puVar5 == puVar17) {\n        return (uint *)0x0;\n      }\n    } while ((*(byte *)puVar5 != uVar18) && (*(byte *)puVar5 != uVar19));\n  }\n  return puVar5;\n}" type_identifier (pointer_declarator "* getndelim2(undefined4 *param_1,uint *param_2,uint *param_3,uint *param_4,uint *param_5,\n                 uint *param_6,int param_7)" * (function_declarator "getndelim2(undefined4 *param_1,uint *param_2,uint *param_3,uint *param_4,uint *param_5,\n                 uint *param_6,int param_7)" identifier (parameter_list "(undefined4 *param_1,uint *param_2,uint *param_3,uint *param_4,uint *param_5,\n                 uint *param_6,int param_7)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "uint *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "uint *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "uint *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "uint *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) , (parameter_declaration "int param_7" primitive_type identifier) )))) (compound_statement "{\n  byte bVar1;\n  bool bVar2;\n  bool bVar3;\n  undefined *puVar4;\n  uint *puVar5;\n  uint *puVar6;\n  uint *puVar7;\n  undefined1 *puVar8;\n  uint *puVar9;\n  uint uVar10;\n  byte *pbVar11;\n  uint uVar12;\n  uint *puVar13;\n  uint uVar14;\n  uint *puVar15;\n  uint uVar16;\n  uint *puVar17;\n  uint uVar18;\n  uint uVar19;\n  uint *puVar20;\n  undefined1 *puVar21;\n  int iVar22;\n  uint *puVar23;\n  uint *puVar24;\n  undefined1 *puVar25;\n  uint *local_48;\n  uint *local_30;\n  \n  puVar4 = PTR___stack_chk_guard_0002b2f8;\n  puVar5 = *(uint **)PTR___stack_chk_guard_0002b2f8;\n  puVar25 = (undefined1 *)*param_1;\n  puVar23 = (uint *)*param_2;\n  puVar13 = param_2;\n  puVar15 = param_3;\n  puVar17 = param_4;\n  if (puVar25 == (undefined1 *)0x0) {\n    puVar23 = param_4;\n    if ((uint *)0x40 < param_4) {\n      puVar23 = (uint *)0x40;\n    }\n    puVar25 = (undefined1 *)(*(code *)PTR_malloc_0002b2b4)(puVar23);\n    if (puVar25 != (undefined1 *)0x0) goto LAB_00013ed4;\n    puVar9 = (uint *)0xffffffff;\n  }\n  else {\nLAB_00013ed4:\n    puVar9 = puVar15;\n    if (param_3 <= puVar23) {\n      puVar20 = (uint *)((int)puVar23 - (int)param_3);\n      puVar21 = puVar25 + (int)param_3;\n      if ((puVar20 != (uint *)0x0) || (puVar23 < param_4)) {\n        puVar24 = param_6;\n        if ((param_5 != (uint *)0xffffffff) && (puVar24 = param_5, param_6 == (uint *)0xffffffff)) {\n          param_6 = param_5;\n        }\n        puVar6 = param_3 + -0x20000000;\n        do {\n          puVar13 = (uint *)0xffffffd0;\n          puVar7 = (uint *)freadptr(param_7);\n          puVar8 = puVar25;\n          if (puVar7 == (uint *)0x0) {\n            pbVar11 = *(byte **)(param_7 + 4);\n            if (pbVar11 < *(byte **)(param_7 + 8)) {\n              *(byte **)(param_7 + 4) = pbVar11 + 1;\n              local_48 = (uint *)(uint)*pbVar11;\n            }\n            else {\n              local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);\n              if (local_48 == (uint *)0xffffffff) {\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = puVar24 == local_48 || param_6 == local_48;\n            puVar17 = (uint *)0x2;\n            local_30 = (uint *)0x1;\n          }\n          else if ((puVar24 == (uint *)0xffffffff) ||\n                  (puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0)) {\n            puVar17 = (uint *)((int)local_30 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            local_30 = (uint *)((iVar22 - (int)puVar7) + 1);\n            puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);\n          }\n          bVar2 = puVar20 < (uint *)0x2;\n          if ((puVar20 < puVar17) && (bVar2 = puVar20 < (uint *)0x2, puVar23 < param_4)) {\n            iVar22 = (int)puVar21 - (int)puVar25;\n            puVar15 = param_4;\n            if (puVar23 < (uint *)0x40) {\n              puVar9 = puVar23 + 0x10;\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) {\nLAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (puVar9 < param_4) {\n                puVar15 = puVar9;\n              }\n            }\n            else {\n              puVar9 = (uint *)((int)puVar23 * 2);\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;\nLAB_00014154:\n              if (puVar23 < puVar9) goto LAB_00013f98;\n            }\n            if (((int)puVar15 - (int)param_3 < 0) &&\n               (puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6)) goto LAB_000140b0;\n            puVar20 = (uint *)((int)puVar15 - iVar22);\n            puVar13 = puVar15;\n            puVar9 = puVar15;\n            puVar8 = (undefined1 *)(*(code *)PTR_realloc_0002b2b8)(puVar25);\n            if (puVar8 == (undefined1 *)0x0) goto LAB_000140b0;\n            puVar21 = puVar8 + iVar22;\n            bVar2 = puVar20 < (uint *)0x2;\n            puVar23 = puVar15;\n          }\n          if (!bVar2) {\n            puVar17 = (uint *)((int)puVar20 + -1);\n            if (local_30 <= (uint *)((int)puVar20 + -1)) {\n              puVar17 = local_30;\n            }\n            if (puVar7 == (uint *)0x0) {\n              *puVar21 = (char)local_48;\n            }\n            else {\n              puVar13 = puVar7;\n              puVar15 = puVar17;\n              (*(code *)PTR_memcpy_0002b2fc)(puVar21);\n            }\n            puVar21 = puVar21 + (int)puVar17;\n            puVar20 = (uint *)((int)puVar20 - (int)puVar17);\n          }\n          puVar25 = puVar8;\n          if ((puVar7 != (uint *)0x0) &&\n             (puVar13 = local_30, iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0))\n          goto LAB_000140b0;\n        } while (!bVar3);\n        *puVar21 = 0;\n        *param_1 = puVar8;\n        puVar9 = (uint *)(puVar21 + -(int)(puVar8 + (int)param_3));\n        *param_2 = (uint)puVar23;\n        if (puVar9 == (uint *)0x0) {\n          puVar9 = (uint *)0xffffffff;\n        }\n        goto LAB_000140c0;\n      }\n    }\nLAB_000140b0:\n    puVar15 = puVar9;\n    *param_1 = puVar25;\n    puVar9 = (uint *)0xffffffff;\n    *param_2 = (uint)puVar23;\n  }\nLAB_000140c0:\n  if (puVar5 == *(uint **)puVar4) {\n    return puVar9;\n  }\n  (*(code *)PTR___stack_chk_fail_0002b2e0)();\n  uVar18 = (uint)puVar13 & 0xff;\n  uVar19 = (uint)puVar15 & 0xff;\n  if (uVar18 == uVar19) {\n    puVar5 = (uint *)rpl_memchr();\n    return puVar5;\n  }\n  if ((puVar17 != (uint *)0x0) && (((uint)puVar5 & 3) != 0)) {\n    if (uVar18 == *(byte *)puVar5) {\n      return puVar5;\n    }\n    if (uVar19 == *(byte *)puVar5) {\n      return puVar5;\n    }\n    while( true ) {\n      puVar17 = (uint *)((int)puVar17 - 1);\n      puVar5 = (uint *)((int)puVar5 + 1);\n      if ((puVar17 == (uint *)0x0) || (((uint)puVar5 & 3) == 0)) break;\n      if (*(byte *)puVar5 == uVar18) {\n        return puVar5;\n      }\n      if (*(byte *)puVar5 == uVar19) {\n        return puVar5;\n      }\n    }\n  }\n  uVar14 = ((uint)puVar13 & 0xff) << 8 | (uint)puVar13 & 0xff;\n  uVar16 = ((uint)puVar15 & 0xff) << 8 | (uint)puVar15 & 0xff;\n  uVar14 = uVar14 << 0x10 | uVar14;\n  uVar16 = uVar16 << 0x10 | uVar16;\n  if (puVar17 < (uint *)0x4) {\nLAB_0001433c:\n    if (puVar17 == (uint *)0x0) {\n      return (uint *)0x0;\n    }\n  }\n  else {\n    uVar10 = uVar14 ^ *puVar5;\n    uVar12 = uVar16 ^ *puVar5;\n    if (((~uVar10 & uVar10 + 0xfefefeff | ~uVar12 & uVar12 + 0xfefefeff) & 0x80808080) != 0) {\n      bVar1 = *(byte *)puVar5;\n      goto LAB_00014348;\n    }\n    do {\n      puVar17 = puVar17 + -1;\n      puVar5 = puVar5 + 1;\n      if (puVar17 < (uint *)0x4) goto LAB_0001433c;\n      uVar12 = *puVar5 ^ uVar14;\n      uVar10 = *puVar5 ^ uVar16;\n    } while (((uVar12 + 0xfefefeff & ~uVar12 | uVar10 + 0xfefefeff & ~uVar10) & 0x80808080) == 0);\n  }\n  bVar1 = *(byte *)puVar5;\nLAB_00014348:\n  if ((uVar18 != bVar1) && (uVar19 != bVar1)) {\n    puVar17 = (uint *)((int)puVar5 + (int)puVar17);\n    do {\n      puVar5 = (uint *)((int)puVar5 + 1);\n      if (puVar5 == puVar17) {\n        return (uint *)0x0;\n      }\n    } while ((*(byte *)puVar5 != uVar18) && (*(byte *)puVar5 != uVar19));\n  }\n  return puVar5;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "uint *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "uint *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined1 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "uint *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "uint *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "uint *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "uint *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "undefined1 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "uint *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "uint *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "undefined1 *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "uint *local_48;" type_identifier (pointer_declarator "*local_48" * identifier) ;) (declaration "uint *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (expression_statement "puVar4 = PTR___stack_chk_guard_0002b2f8;" (assignment_expression "puVar4 = PTR___stack_chk_guard_0002b2f8" identifier = identifier) ;) (expression_statement "puVar5 = *(uint **)PTR___stack_chk_guard_0002b2f8;" (assignment_expression "puVar5 = *(uint **)PTR___stack_chk_guard_0002b2f8" identifier = (pointer_expression "*(uint **)PTR___stack_chk_guard_0002b2f8" * (cast_expression "(uint **)PTR___stack_chk_guard_0002b2f8" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "puVar25 = (undefined1 *)*param_1;" (assignment_expression "puVar25 = (undefined1 *)*param_1" identifier = (cast_expression "(undefined1 *)*param_1" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "puVar23 = (uint *)*param_2;" (assignment_expression "puVar23 = (uint *)*param_2" identifier = (cast_expression "(uint *)*param_2" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (expression_statement "puVar13 = param_2;" (assignment_expression "puVar13 = param_2" identifier = identifier) ;) (expression_statement "puVar15 = param_3;" (assignment_expression "puVar15 = param_3" identifier = identifier) ;) (expression_statement "puVar17 = param_4;" (assignment_expression "puVar17 = param_4" identifier = identifier) ;) (if_statement "if (puVar25 == (undefined1 *)0x0) {\n    puVar23 = param_4;\n    if ((uint *)0x40 < param_4) {\n      puVar23 = (uint *)0x40;\n    }\n    puVar25 = (undefined1 *)(*(code *)PTR_malloc_0002b2b4)(puVar23);\n    if (puVar25 != (undefined1 *)0x0) goto LAB_00013ed4;\n    puVar9 = (uint *)0xffffffff;\n  }\n  else {\nLAB_00013ed4:\n    puVar9 = puVar15;\n    if (param_3 <= puVar23) {\n      puVar20 = (uint *)((int)puVar23 - (int)param_3);\n      puVar21 = puVar25 + (int)param_3;\n      if ((puVar20 != (uint *)0x0) || (puVar23 < param_4)) {\n        puVar24 = param_6;\n        if ((param_5 != (uint *)0xffffffff) && (puVar24 = param_5, param_6 == (uint *)0xffffffff)) {\n          param_6 = param_5;\n        }\n        puVar6 = param_3 + -0x20000000;\n        do {\n          puVar13 = (uint *)0xffffffd0;\n          puVar7 = (uint *)freadptr(param_7);\n          puVar8 = puVar25;\n          if (puVar7 == (uint *)0x0) {\n            pbVar11 = *(byte **)(param_7 + 4);\n            if (pbVar11 < *(byte **)(param_7 + 8)) {\n              *(byte **)(param_7 + 4) = pbVar11 + 1;\n              local_48 = (uint *)(uint)*pbVar11;\n            }\n            else {\n              local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);\n              if (local_48 == (uint *)0xffffffff) {\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = puVar24 == local_48 || param_6 == local_48;\n            puVar17 = (uint *)0x2;\n            local_30 = (uint *)0x1;\n          }\n          else if ((puVar24 == (uint *)0xffffffff) ||\n                  (puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0)) {\n            puVar17 = (uint *)((int)local_30 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            local_30 = (uint *)((iVar22 - (int)puVar7) + 1);\n            puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);\n          }\n          bVar2 = puVar20 < (uint *)0x2;\n          if ((puVar20 < puVar17) && (bVar2 = puVar20 < (uint *)0x2, puVar23 < param_4)) {\n            iVar22 = (int)puVar21 - (int)puVar25;\n            puVar15 = param_4;\n            if (puVar23 < (uint *)0x40) {\n              puVar9 = puVar23 + 0x10;\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) {\nLAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (puVar9 < param_4) {\n                puVar15 = puVar9;\n              }\n            }\n            else {\n              puVar9 = (uint *)((int)puVar23 * 2);\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;\nLAB_00014154:\n              if (puVar23 < puVar9) goto LAB_00013f98;\n            }\n            if (((int)puVar15 - (int)param_3 < 0) &&\n               (puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6)) goto LAB_000140b0;\n            puVar20 = (uint *)((int)puVar15 - iVar22);\n            puVar13 = puVar15;\n            puVar9 = puVar15;\n            puVar8 = (undefined1 *)(*(code *)PTR_realloc_0002b2b8)(puVar25);\n            if (puVar8 == (undefined1 *)0x0) goto LAB_000140b0;\n            puVar21 = puVar8 + iVar22;\n            bVar2 = puVar20 < (uint *)0x2;\n            puVar23 = puVar15;\n          }\n          if (!bVar2) {\n            puVar17 = (uint *)((int)puVar20 + -1);\n            if (local_30 <= (uint *)((int)puVar20 + -1)) {\n              puVar17 = local_30;\n            }\n            if (puVar7 == (uint *)0x0) {\n              *puVar21 = (char)local_48;\n            }\n            else {\n              puVar13 = puVar7;\n              puVar15 = puVar17;\n              (*(code *)PTR_memcpy_0002b2fc)(puVar21);\n            }\n            puVar21 = puVar21 + (int)puVar17;\n            puVar20 = (uint *)((int)puVar20 - (int)puVar17);\n          }\n          puVar25 = puVar8;\n          if ((puVar7 != (uint *)0x0) &&\n             (puVar13 = local_30, iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0))\n          goto LAB_000140b0;\n        } while (!bVar3);\n        *puVar21 = 0;\n        *param_1 = puVar8;\n        puVar9 = (uint *)(puVar21 + -(int)(puVar8 + (int)param_3));\n        *param_2 = (uint)puVar23;\n        if (puVar9 == (uint *)0x0) {\n          puVar9 = (uint *)0xffffffff;\n        }\n        goto LAB_000140c0;\n      }\n    }\nLAB_000140b0:\n    puVar15 = puVar9;\n    *param_1 = puVar25;\n    puVar9 = (uint *)0xffffffff;\n    *param_2 = (uint)puVar23;\n  }" if (parenthesized_expression "(puVar25 == (undefined1 *)0x0)" ( (binary_expression "puVar25 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar23 = param_4;\n    if ((uint *)0x40 < param_4) {\n      puVar23 = (uint *)0x40;\n    }\n    puVar25 = (undefined1 *)(*(code *)PTR_malloc_0002b2b4)(puVar23);\n    if (puVar25 != (undefined1 *)0x0) goto LAB_00013ed4;\n    puVar9 = (uint *)0xffffffff;\n  }" { (expression_statement "puVar23 = param_4;" (assignment_expression "puVar23 = param_4" identifier = identifier) ;) (if_statement "if ((uint *)0x40 < param_4) {\n      puVar23 = (uint *)0x40;\n    }" if (parenthesized_expression "((uint *)0x40 < param_4)" ( (binary_expression "(uint *)0x40 < param_4" (cast_expression "(uint *)0x40" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) (compound_statement "{\n      puVar23 = (uint *)0x40;\n    }" { (expression_statement "puVar23 = (uint *)0x40;" (assignment_expression "puVar23 = (uint *)0x40" identifier = (cast_expression "(uint *)0x40" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "puVar25 = (undefined1 *)(*(code *)PTR_malloc_0002b2b4)(puVar23);" (assignment_expression "puVar25 = (undefined1 *)(*(code *)PTR_malloc_0002b2b4)(puVar23)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR_malloc_0002b2b4)(puVar23)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_0002b2b4)(puVar23)" (parenthesized_expression "(*(code *)PTR_malloc_0002b2b4)" ( (pointer_expression "*(code *)PTR_malloc_0002b2b4" * (cast_expression "(code *)PTR_malloc_0002b2b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar23)" ( identifier ))))) ;) (if_statement "if (puVar25 != (undefined1 *)0x0) goto LAB_00013ed4;" if (parenthesized_expression "(puVar25 != (undefined1 *)0x0)" ( (binary_expression "puVar25 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00013ed4;" goto statement_identifier ;)) (expression_statement "puVar9 = (uint *)0xffffffff;" (assignment_expression "puVar9 = (uint *)0xffffffff" identifier = (cast_expression "(uint *)0xffffffff" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\nLAB_00013ed4:\n    puVar9 = puVar15;\n    if (param_3 <= puVar23) {\n      puVar20 = (uint *)((int)puVar23 - (int)param_3);\n      puVar21 = puVar25 + (int)param_3;\n      if ((puVar20 != (uint *)0x0) || (puVar23 < param_4)) {\n        puVar24 = param_6;\n        if ((param_5 != (uint *)0xffffffff) && (puVar24 = param_5, param_6 == (uint *)0xffffffff)) {\n          param_6 = param_5;\n        }\n        puVar6 = param_3 + -0x20000000;\n        do {\n          puVar13 = (uint *)0xffffffd0;\n          puVar7 = (uint *)freadptr(param_7);\n          puVar8 = puVar25;\n          if (puVar7 == (uint *)0x0) {\n            pbVar11 = *(byte **)(param_7 + 4);\n            if (pbVar11 < *(byte **)(param_7 + 8)) {\n              *(byte **)(param_7 + 4) = pbVar11 + 1;\n              local_48 = (uint *)(uint)*pbVar11;\n            }\n            else {\n              local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);\n              if (local_48 == (uint *)0xffffffff) {\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = puVar24 == local_48 || param_6 == local_48;\n            puVar17 = (uint *)0x2;\n            local_30 = (uint *)0x1;\n          }\n          else if ((puVar24 == (uint *)0xffffffff) ||\n                  (puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0)) {\n            puVar17 = (uint *)((int)local_30 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            local_30 = (uint *)((iVar22 - (int)puVar7) + 1);\n            puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);\n          }\n          bVar2 = puVar20 < (uint *)0x2;\n          if ((puVar20 < puVar17) && (bVar2 = puVar20 < (uint *)0x2, puVar23 < param_4)) {\n            iVar22 = (int)puVar21 - (int)puVar25;\n            puVar15 = param_4;\n            if (puVar23 < (uint *)0x40) {\n              puVar9 = puVar23 + 0x10;\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) {\nLAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (puVar9 < param_4) {\n                puVar15 = puVar9;\n              }\n            }\n            else {\n              puVar9 = (uint *)((int)puVar23 * 2);\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;\nLAB_00014154:\n              if (puVar23 < puVar9) goto LAB_00013f98;\n            }\n            if (((int)puVar15 - (int)param_3 < 0) &&\n               (puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6)) goto LAB_000140b0;\n            puVar20 = (uint *)((int)puVar15 - iVar22);\n            puVar13 = puVar15;\n            puVar9 = puVar15;\n            puVar8 = (undefined1 *)(*(code *)PTR_realloc_0002b2b8)(puVar25);\n            if (puVar8 == (undefined1 *)0x0) goto LAB_000140b0;\n            puVar21 = puVar8 + iVar22;\n            bVar2 = puVar20 < (uint *)0x2;\n            puVar23 = puVar15;\n          }\n          if (!bVar2) {\n            puVar17 = (uint *)((int)puVar20 + -1);\n            if (local_30 <= (uint *)((int)puVar20 + -1)) {\n              puVar17 = local_30;\n            }\n            if (puVar7 == (uint *)0x0) {\n              *puVar21 = (char)local_48;\n            }\n            else {\n              puVar13 = puVar7;\n              puVar15 = puVar17;\n              (*(code *)PTR_memcpy_0002b2fc)(puVar21);\n            }\n            puVar21 = puVar21 + (int)puVar17;\n            puVar20 = (uint *)((int)puVar20 - (int)puVar17);\n          }\n          puVar25 = puVar8;\n          if ((puVar7 != (uint *)0x0) &&\n             (puVar13 = local_30, iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0))\n          goto LAB_000140b0;\n        } while (!bVar3);\n        *puVar21 = 0;\n        *param_1 = puVar8;\n        puVar9 = (uint *)(puVar21 + -(int)(puVar8 + (int)param_3));\n        *param_2 = (uint)puVar23;\n        if (puVar9 == (uint *)0x0) {\n          puVar9 = (uint *)0xffffffff;\n        }\n        goto LAB_000140c0;\n      }\n    }\nLAB_000140b0:\n    puVar15 = puVar9;\n    *param_1 = puVar25;\n    puVar9 = (uint *)0xffffffff;\n    *param_2 = (uint)puVar23;\n  }" else (compound_statement "{\nLAB_00013ed4:\n    puVar9 = puVar15;\n    if (param_3 <= puVar23) {\n      puVar20 = (uint *)((int)puVar23 - (int)param_3);\n      puVar21 = puVar25 + (int)param_3;\n      if ((puVar20 != (uint *)0x0) || (puVar23 < param_4)) {\n        puVar24 = param_6;\n        if ((param_5 != (uint *)0xffffffff) && (puVar24 = param_5, param_6 == (uint *)0xffffffff)) {\n          param_6 = param_5;\n        }\n        puVar6 = param_3 + -0x20000000;\n        do {\n          puVar13 = (uint *)0xffffffd0;\n          puVar7 = (uint *)freadptr(param_7);\n          puVar8 = puVar25;\n          if (puVar7 == (uint *)0x0) {\n            pbVar11 = *(byte **)(param_7 + 4);\n            if (pbVar11 < *(byte **)(param_7 + 8)) {\n              *(byte **)(param_7 + 4) = pbVar11 + 1;\n              local_48 = (uint *)(uint)*pbVar11;\n            }\n            else {\n              local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);\n              if (local_48 == (uint *)0xffffffff) {\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = puVar24 == local_48 || param_6 == local_48;\n            puVar17 = (uint *)0x2;\n            local_30 = (uint *)0x1;\n          }\n          else if ((puVar24 == (uint *)0xffffffff) ||\n                  (puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0)) {\n            puVar17 = (uint *)((int)local_30 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            local_30 = (uint *)((iVar22 - (int)puVar7) + 1);\n            puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);\n          }\n          bVar2 = puVar20 < (uint *)0x2;\n          if ((puVar20 < puVar17) && (bVar2 = puVar20 < (uint *)0x2, puVar23 < param_4)) {\n            iVar22 = (int)puVar21 - (int)puVar25;\n            puVar15 = param_4;\n            if (puVar23 < (uint *)0x40) {\n              puVar9 = puVar23 + 0x10;\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) {\nLAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (puVar9 < param_4) {\n                puVar15 = puVar9;\n              }\n            }\n            else {\n              puVar9 = (uint *)((int)puVar23 * 2);\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;\nLAB_00014154:\n              if (puVar23 < puVar9) goto LAB_00013f98;\n            }\n            if (((int)puVar15 - (int)param_3 < 0) &&\n               (puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6)) goto LAB_000140b0;\n            puVar20 = (uint *)((int)puVar15 - iVar22);\n            puVar13 = puVar15;\n            puVar9 = puVar15;\n            puVar8 = (undefined1 *)(*(code *)PTR_realloc_0002b2b8)(puVar25);\n            if (puVar8 == (undefined1 *)0x0) goto LAB_000140b0;\n            puVar21 = puVar8 + iVar22;\n            bVar2 = puVar20 < (uint *)0x2;\n            puVar23 = puVar15;\n          }\n          if (!bVar2) {\n            puVar17 = (uint *)((int)puVar20 + -1);\n            if (local_30 <= (uint *)((int)puVar20 + -1)) {\n              puVar17 = local_30;\n            }\n            if (puVar7 == (uint *)0x0) {\n              *puVar21 = (char)local_48;\n            }\n            else {\n              puVar13 = puVar7;\n              puVar15 = puVar17;\n              (*(code *)PTR_memcpy_0002b2fc)(puVar21);\n            }\n            puVar21 = puVar21 + (int)puVar17;\n            puVar20 = (uint *)((int)puVar20 - (int)puVar17);\n          }\n          puVar25 = puVar8;\n          if ((puVar7 != (uint *)0x0) &&\n             (puVar13 = local_30, iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0))\n          goto LAB_000140b0;\n        } while (!bVar3);\n        *puVar21 = 0;\n        *param_1 = puVar8;\n        puVar9 = (uint *)(puVar21 + -(int)(puVar8 + (int)param_3));\n        *param_2 = (uint)puVar23;\n        if (puVar9 == (uint *)0x0) {\n          puVar9 = (uint *)0xffffffff;\n        }\n        goto LAB_000140c0;\n      }\n    }\nLAB_000140b0:\n    puVar15 = puVar9;\n    *param_1 = puVar25;\n    puVar9 = (uint *)0xffffffff;\n    *param_2 = (uint)puVar23;\n  }" { (labeled_statement "LAB_00013ed4:\n    puVar9 = puVar15;" statement_identifier : (expression_statement "puVar9 = puVar15;" (assignment_expression "puVar9 = puVar15" identifier = identifier) ;)) (if_statement "if (param_3 <= puVar23) {\n      puVar20 = (uint *)((int)puVar23 - (int)param_3);\n      puVar21 = puVar25 + (int)param_3;\n      if ((puVar20 != (uint *)0x0) || (puVar23 < param_4)) {\n        puVar24 = param_6;\n        if ((param_5 != (uint *)0xffffffff) && (puVar24 = param_5, param_6 == (uint *)0xffffffff)) {\n          param_6 = param_5;\n        }\n        puVar6 = param_3 + -0x20000000;\n        do {\n          puVar13 = (uint *)0xffffffd0;\n          puVar7 = (uint *)freadptr(param_7);\n          puVar8 = puVar25;\n          if (puVar7 == (uint *)0x0) {\n            pbVar11 = *(byte **)(param_7 + 4);\n            if (pbVar11 < *(byte **)(param_7 + 8)) {\n              *(byte **)(param_7 + 4) = pbVar11 + 1;\n              local_48 = (uint *)(uint)*pbVar11;\n            }\n            else {\n              local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);\n              if (local_48 == (uint *)0xffffffff) {\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = puVar24 == local_48 || param_6 == local_48;\n            puVar17 = (uint *)0x2;\n            local_30 = (uint *)0x1;\n          }\n          else if ((puVar24 == (uint *)0xffffffff) ||\n                  (puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0)) {\n            puVar17 = (uint *)((int)local_30 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            local_30 = (uint *)((iVar22 - (int)puVar7) + 1);\n            puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);\n          }\n          bVar2 = puVar20 < (uint *)0x2;\n          if ((puVar20 < puVar17) && (bVar2 = puVar20 < (uint *)0x2, puVar23 < param_4)) {\n            iVar22 = (int)puVar21 - (int)puVar25;\n            puVar15 = param_4;\n            if (puVar23 < (uint *)0x40) {\n              puVar9 = puVar23 + 0x10;\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) {\nLAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (puVar9 < param_4) {\n                puVar15 = puVar9;\n              }\n            }\n            else {\n              puVar9 = (uint *)((int)puVar23 * 2);\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;\nLAB_00014154:\n              if (puVar23 < puVar9) goto LAB_00013f98;\n            }\n            if (((int)puVar15 - (int)param_3 < 0) &&\n               (puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6)) goto LAB_000140b0;\n            puVar20 = (uint *)((int)puVar15 - iVar22);\n            puVar13 = puVar15;\n            puVar9 = puVar15;\n            puVar8 = (undefined1 *)(*(code *)PTR_realloc_0002b2b8)(puVar25);\n            if (puVar8 == (undefined1 *)0x0) goto LAB_000140b0;\n            puVar21 = puVar8 + iVar22;\n            bVar2 = puVar20 < (uint *)0x2;\n            puVar23 = puVar15;\n          }\n          if (!bVar2) {\n            puVar17 = (uint *)((int)puVar20 + -1);\n            if (local_30 <= (uint *)((int)puVar20 + -1)) {\n              puVar17 = local_30;\n            }\n            if (puVar7 == (uint *)0x0) {\n              *puVar21 = (char)local_48;\n            }\n            else {\n              puVar13 = puVar7;\n              puVar15 = puVar17;\n              (*(code *)PTR_memcpy_0002b2fc)(puVar21);\n            }\n            puVar21 = puVar21 + (int)puVar17;\n            puVar20 = (uint *)((int)puVar20 - (int)puVar17);\n          }\n          puVar25 = puVar8;\n          if ((puVar7 != (uint *)0x0) &&\n             (puVar13 = local_30, iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0))\n          goto LAB_000140b0;\n        } while (!bVar3);\n        *puVar21 = 0;\n        *param_1 = puVar8;\n        puVar9 = (uint *)(puVar21 + -(int)(puVar8 + (int)param_3));\n        *param_2 = (uint)puVar23;\n        if (puVar9 == (uint *)0x0) {\n          puVar9 = (uint *)0xffffffff;\n        }\n        goto LAB_000140c0;\n      }\n    }" if (parenthesized_expression "(param_3 <= puVar23)" ( (binary_expression "param_3 <= puVar23" identifier <= identifier) )) (compound_statement "{\n      puVar20 = (uint *)((int)puVar23 - (int)param_3);\n      puVar21 = puVar25 + (int)param_3;\n      if ((puVar20 != (uint *)0x0) || (puVar23 < param_4)) {\n        puVar24 = param_6;\n        if ((param_5 != (uint *)0xffffffff) && (puVar24 = param_5, param_6 == (uint *)0xffffffff)) {\n          param_6 = param_5;\n        }\n        puVar6 = param_3 + -0x20000000;\n        do {\n          puVar13 = (uint *)0xffffffd0;\n          puVar7 = (uint *)freadptr(param_7);\n          puVar8 = puVar25;\n          if (puVar7 == (uint *)0x0) {\n            pbVar11 = *(byte **)(param_7 + 4);\n            if (pbVar11 < *(byte **)(param_7 + 8)) {\n              *(byte **)(param_7 + 4) = pbVar11 + 1;\n              local_48 = (uint *)(uint)*pbVar11;\n            }\n            else {\n              local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);\n              if (local_48 == (uint *)0xffffffff) {\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = puVar24 == local_48 || param_6 == local_48;\n            puVar17 = (uint *)0x2;\n            local_30 = (uint *)0x1;\n          }\n          else if ((puVar24 == (uint *)0xffffffff) ||\n                  (puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0)) {\n            puVar17 = (uint *)((int)local_30 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            local_30 = (uint *)((iVar22 - (int)puVar7) + 1);\n            puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);\n          }\n          bVar2 = puVar20 < (uint *)0x2;\n          if ((puVar20 < puVar17) && (bVar2 = puVar20 < (uint *)0x2, puVar23 < param_4)) {\n            iVar22 = (int)puVar21 - (int)puVar25;\n            puVar15 = param_4;\n            if (puVar23 < (uint *)0x40) {\n              puVar9 = puVar23 + 0x10;\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) {\nLAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (puVar9 < param_4) {\n                puVar15 = puVar9;\n              }\n            }\n            else {\n              puVar9 = (uint *)((int)puVar23 * 2);\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;\nLAB_00014154:\n              if (puVar23 < puVar9) goto LAB_00013f98;\n            }\n            if (((int)puVar15 - (int)param_3 < 0) &&\n               (puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6)) goto LAB_000140b0;\n            puVar20 = (uint *)((int)puVar15 - iVar22);\n            puVar13 = puVar15;\n            puVar9 = puVar15;\n            puVar8 = (undefined1 *)(*(code *)PTR_realloc_0002b2b8)(puVar25);\n            if (puVar8 == (undefined1 *)0x0) goto LAB_000140b0;\n            puVar21 = puVar8 + iVar22;\n            bVar2 = puVar20 < (uint *)0x2;\n            puVar23 = puVar15;\n          }\n          if (!bVar2) {\n            puVar17 = (uint *)((int)puVar20 + -1);\n            if (local_30 <= (uint *)((int)puVar20 + -1)) {\n              puVar17 = local_30;\n            }\n            if (puVar7 == (uint *)0x0) {\n              *puVar21 = (char)local_48;\n            }\n            else {\n              puVar13 = puVar7;\n              puVar15 = puVar17;\n              (*(code *)PTR_memcpy_0002b2fc)(puVar21);\n            }\n            puVar21 = puVar21 + (int)puVar17;\n            puVar20 = (uint *)((int)puVar20 - (int)puVar17);\n          }\n          puVar25 = puVar8;\n          if ((puVar7 != (uint *)0x0) &&\n             (puVar13 = local_30, iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0))\n          goto LAB_000140b0;\n        } while (!bVar3);\n        *puVar21 = 0;\n        *param_1 = puVar8;\n        puVar9 = (uint *)(puVar21 + -(int)(puVar8 + (int)param_3));\n        *param_2 = (uint)puVar23;\n        if (puVar9 == (uint *)0x0) {\n          puVar9 = (uint *)0xffffffff;\n        }\n        goto LAB_000140c0;\n      }\n    }" { (expression_statement "puVar20 = (uint *)((int)puVar23 - (int)param_3);" (assignment_expression "puVar20 = (uint *)((int)puVar23 - (int)param_3)" identifier = (cast_expression "(uint *)((int)puVar23 - (int)param_3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 - (int)param_3)" ( (binary_expression "(int)puVar23 - (int)param_3" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "puVar21 = puVar25 + (int)param_3;" (assignment_expression "puVar21 = puVar25 + (int)param_3" identifier = (binary_expression "puVar25 + (int)param_3" identifier + (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((puVar20 != (uint *)0x0) || (puVar23 < param_4)) {\n        puVar24 = param_6;\n        if ((param_5 != (uint *)0xffffffff) && (puVar24 = param_5, param_6 == (uint *)0xffffffff)) {\n          param_6 = param_5;\n        }\n        puVar6 = param_3 + -0x20000000;\n        do {\n          puVar13 = (uint *)0xffffffd0;\n          puVar7 = (uint *)freadptr(param_7);\n          puVar8 = puVar25;\n          if (puVar7 == (uint *)0x0) {\n            pbVar11 = *(byte **)(param_7 + 4);\n            if (pbVar11 < *(byte **)(param_7 + 8)) {\n              *(byte **)(param_7 + 4) = pbVar11 + 1;\n              local_48 = (uint *)(uint)*pbVar11;\n            }\n            else {\n              local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);\n              if (local_48 == (uint *)0xffffffff) {\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = puVar24 == local_48 || param_6 == local_48;\n            puVar17 = (uint *)0x2;\n            local_30 = (uint *)0x1;\n          }\n          else if ((puVar24 == (uint *)0xffffffff) ||\n                  (puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0)) {\n            puVar17 = (uint *)((int)local_30 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            local_30 = (uint *)((iVar22 - (int)puVar7) + 1);\n            puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);\n          }\n          bVar2 = puVar20 < (uint *)0x2;\n          if ((puVar20 < puVar17) && (bVar2 = puVar20 < (uint *)0x2, puVar23 < param_4)) {\n            iVar22 = (int)puVar21 - (int)puVar25;\n            puVar15 = param_4;\n            if (puVar23 < (uint *)0x40) {\n              puVar9 = puVar23 + 0x10;\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) {\nLAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (puVar9 < param_4) {\n                puVar15 = puVar9;\n              }\n            }\n            else {\n              puVar9 = (uint *)((int)puVar23 * 2);\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;\nLAB_00014154:\n              if (puVar23 < puVar9) goto LAB_00013f98;\n            }\n            if (((int)puVar15 - (int)param_3 < 0) &&\n               (puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6)) goto LAB_000140b0;\n            puVar20 = (uint *)((int)puVar15 - iVar22);\n            puVar13 = puVar15;\n            puVar9 = puVar15;\n            puVar8 = (undefined1 *)(*(code *)PTR_realloc_0002b2b8)(puVar25);\n            if (puVar8 == (undefined1 *)0x0) goto LAB_000140b0;\n            puVar21 = puVar8 + iVar22;\n            bVar2 = puVar20 < (uint *)0x2;\n            puVar23 = puVar15;\n          }\n          if (!bVar2) {\n            puVar17 = (uint *)((int)puVar20 + -1);\n            if (local_30 <= (uint *)((int)puVar20 + -1)) {\n              puVar17 = local_30;\n            }\n            if (puVar7 == (uint *)0x0) {\n              *puVar21 = (char)local_48;\n            }\n            else {\n              puVar13 = puVar7;\n              puVar15 = puVar17;\n              (*(code *)PTR_memcpy_0002b2fc)(puVar21);\n            }\n            puVar21 = puVar21 + (int)puVar17;\n            puVar20 = (uint *)((int)puVar20 - (int)puVar17);\n          }\n          puVar25 = puVar8;\n          if ((puVar7 != (uint *)0x0) &&\n             (puVar13 = local_30, iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0))\n          goto LAB_000140b0;\n        } while (!bVar3);\n        *puVar21 = 0;\n        *param_1 = puVar8;\n        puVar9 = (uint *)(puVar21 + -(int)(puVar8 + (int)param_3));\n        *param_2 = (uint)puVar23;\n        if (puVar9 == (uint *)0x0) {\n          puVar9 = (uint *)0xffffffff;\n        }\n        goto LAB_000140c0;\n      }" if (parenthesized_expression "((puVar20 != (uint *)0x0) || (puVar23 < param_4))" ( (binary_expression "(puVar20 != (uint *)0x0) || (puVar23 < param_4)" (parenthesized_expression "(puVar20 != (uint *)0x0)" ( (binary_expression "puVar20 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(puVar23 < param_4)" ( (binary_expression "puVar23 < param_4" identifier < identifier) ))) )) (compound_statement "{\n        puVar24 = param_6;\n        if ((param_5 != (uint *)0xffffffff) && (puVar24 = param_5, param_6 == (uint *)0xffffffff)) {\n          param_6 = param_5;\n        }\n        puVar6 = param_3 + -0x20000000;\n        do {\n          puVar13 = (uint *)0xffffffd0;\n          puVar7 = (uint *)freadptr(param_7);\n          puVar8 = puVar25;\n          if (puVar7 == (uint *)0x0) {\n            pbVar11 = *(byte **)(param_7 + 4);\n            if (pbVar11 < *(byte **)(param_7 + 8)) {\n              *(byte **)(param_7 + 4) = pbVar11 + 1;\n              local_48 = (uint *)(uint)*pbVar11;\n            }\n            else {\n              local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);\n              if (local_48 == (uint *)0xffffffff) {\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = puVar24 == local_48 || param_6 == local_48;\n            puVar17 = (uint *)0x2;\n            local_30 = (uint *)0x1;\n          }\n          else if ((puVar24 == (uint *)0xffffffff) ||\n                  (puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0)) {\n            puVar17 = (uint *)((int)local_30 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            local_30 = (uint *)((iVar22 - (int)puVar7) + 1);\n            puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);\n          }\n          bVar2 = puVar20 < (uint *)0x2;\n          if ((puVar20 < puVar17) && (bVar2 = puVar20 < (uint *)0x2, puVar23 < param_4)) {\n            iVar22 = (int)puVar21 - (int)puVar25;\n            puVar15 = param_4;\n            if (puVar23 < (uint *)0x40) {\n              puVar9 = puVar23 + 0x10;\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) {\nLAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (puVar9 < param_4) {\n                puVar15 = puVar9;\n              }\n            }\n            else {\n              puVar9 = (uint *)((int)puVar23 * 2);\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;\nLAB_00014154:\n              if (puVar23 < puVar9) goto LAB_00013f98;\n            }\n            if (((int)puVar15 - (int)param_3 < 0) &&\n               (puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6)) goto LAB_000140b0;\n            puVar20 = (uint *)((int)puVar15 - iVar22);\n            puVar13 = puVar15;\n            puVar9 = puVar15;\n            puVar8 = (undefined1 *)(*(code *)PTR_realloc_0002b2b8)(puVar25);\n            if (puVar8 == (undefined1 *)0x0) goto LAB_000140b0;\n            puVar21 = puVar8 + iVar22;\n            bVar2 = puVar20 < (uint *)0x2;\n            puVar23 = puVar15;\n          }\n          if (!bVar2) {\n            puVar17 = (uint *)((int)puVar20 + -1);\n            if (local_30 <= (uint *)((int)puVar20 + -1)) {\n              puVar17 = local_30;\n            }\n            if (puVar7 == (uint *)0x0) {\n              *puVar21 = (char)local_48;\n            }\n            else {\n              puVar13 = puVar7;\n              puVar15 = puVar17;\n              (*(code *)PTR_memcpy_0002b2fc)(puVar21);\n            }\n            puVar21 = puVar21 + (int)puVar17;\n            puVar20 = (uint *)((int)puVar20 - (int)puVar17);\n          }\n          puVar25 = puVar8;\n          if ((puVar7 != (uint *)0x0) &&\n             (puVar13 = local_30, iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0))\n          goto LAB_000140b0;\n        } while (!bVar3);\n        *puVar21 = 0;\n        *param_1 = puVar8;\n        puVar9 = (uint *)(puVar21 + -(int)(puVar8 + (int)param_3));\n        *param_2 = (uint)puVar23;\n        if (puVar9 == (uint *)0x0) {\n          puVar9 = (uint *)0xffffffff;\n        }\n        goto LAB_000140c0;\n      }" { (expression_statement "puVar24 = param_6;" (assignment_expression "puVar24 = param_6" identifier = identifier) ;) (if_statement "if ((param_5 != (uint *)0xffffffff) && (puVar24 = param_5, param_6 == (uint *)0xffffffff)) {\n          param_6 = param_5;\n        }" if (parenthesized_expression "((param_5 != (uint *)0xffffffff) && (puVar24 = param_5, param_6 == (uint *)0xffffffff))" ( (binary_expression "(param_5 != (uint *)0xffffffff) && (puVar24 = param_5, param_6 == (uint *)0xffffffff)" (parenthesized_expression "(param_5 != (uint *)0xffffffff)" ( (binary_expression "param_5 != (uint *)0xffffffff" identifier != (cast_expression "(uint *)0xffffffff" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(puVar24 = param_5, param_6 == (uint *)0xffffffff)" ( (comma_expression "puVar24 = param_5, param_6 == (uint *)0xffffffff" (assignment_expression "puVar24 = param_5" identifier = identifier) , (binary_expression "param_6 == (uint *)0xffffffff" identifier == (cast_expression "(uint *)0xffffffff" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n          param_6 = param_5;\n        }" { (expression_statement "param_6 = param_5;" (assignment_expression "param_6 = param_5" identifier = identifier) ;) })) (expression_statement "puVar6 = param_3 + -0x20000000;" (assignment_expression "puVar6 = param_3 + -0x20000000" identifier = (binary_expression "param_3 + -0x20000000" identifier + number_literal)) ;) (do_statement "do {\n          puVar13 = (uint *)0xffffffd0;\n          puVar7 = (uint *)freadptr(param_7);\n          puVar8 = puVar25;\n          if (puVar7 == (uint *)0x0) {\n            pbVar11 = *(byte **)(param_7 + 4);\n            if (pbVar11 < *(byte **)(param_7 + 8)) {\n              *(byte **)(param_7 + 4) = pbVar11 + 1;\n              local_48 = (uint *)(uint)*pbVar11;\n            }\n            else {\n              local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);\n              if (local_48 == (uint *)0xffffffff) {\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = puVar24 == local_48 || param_6 == local_48;\n            puVar17 = (uint *)0x2;\n            local_30 = (uint *)0x1;\n          }\n          else if ((puVar24 == (uint *)0xffffffff) ||\n                  (puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0)) {\n            puVar17 = (uint *)((int)local_30 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            local_30 = (uint *)((iVar22 - (int)puVar7) + 1);\n            puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);\n          }\n          bVar2 = puVar20 < (uint *)0x2;\n          if ((puVar20 < puVar17) && (bVar2 = puVar20 < (uint *)0x2, puVar23 < param_4)) {\n            iVar22 = (int)puVar21 - (int)puVar25;\n            puVar15 = param_4;\n            if (puVar23 < (uint *)0x40) {\n              puVar9 = puVar23 + 0x10;\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) {\nLAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (puVar9 < param_4) {\n                puVar15 = puVar9;\n              }\n            }\n            else {\n              puVar9 = (uint *)((int)puVar23 * 2);\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;\nLAB_00014154:\n              if (puVar23 < puVar9) goto LAB_00013f98;\n            }\n            if (((int)puVar15 - (int)param_3 < 0) &&\n               (puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6)) goto LAB_000140b0;\n            puVar20 = (uint *)((int)puVar15 - iVar22);\n            puVar13 = puVar15;\n            puVar9 = puVar15;\n            puVar8 = (undefined1 *)(*(code *)PTR_realloc_0002b2b8)(puVar25);\n            if (puVar8 == (undefined1 *)0x0) goto LAB_000140b0;\n            puVar21 = puVar8 + iVar22;\n            bVar2 = puVar20 < (uint *)0x2;\n            puVar23 = puVar15;\n          }\n          if (!bVar2) {\n            puVar17 = (uint *)((int)puVar20 + -1);\n            if (local_30 <= (uint *)((int)puVar20 + -1)) {\n              puVar17 = local_30;\n            }\n            if (puVar7 == (uint *)0x0) {\n              *puVar21 = (char)local_48;\n            }\n            else {\n              puVar13 = puVar7;\n              puVar15 = puVar17;\n              (*(code *)PTR_memcpy_0002b2fc)(puVar21);\n            }\n            puVar21 = puVar21 + (int)puVar17;\n            puVar20 = (uint *)((int)puVar20 - (int)puVar17);\n          }\n          puVar25 = puVar8;\n          if ((puVar7 != (uint *)0x0) &&\n             (puVar13 = local_30, iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0))\n          goto LAB_000140b0;\n        } while (!bVar3);" do (compound_statement "{\n          puVar13 = (uint *)0xffffffd0;\n          puVar7 = (uint *)freadptr(param_7);\n          puVar8 = puVar25;\n          if (puVar7 == (uint *)0x0) {\n            pbVar11 = *(byte **)(param_7 + 4);\n            if (pbVar11 < *(byte **)(param_7 + 8)) {\n              *(byte **)(param_7 + 4) = pbVar11 + 1;\n              local_48 = (uint *)(uint)*pbVar11;\n            }\n            else {\n              local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);\n              if (local_48 == (uint *)0xffffffff) {\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = puVar24 == local_48 || param_6 == local_48;\n            puVar17 = (uint *)0x2;\n            local_30 = (uint *)0x1;\n          }\n          else if ((puVar24 == (uint *)0xffffffff) ||\n                  (puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0)) {\n            puVar17 = (uint *)((int)local_30 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            local_30 = (uint *)((iVar22 - (int)puVar7) + 1);\n            puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);\n          }\n          bVar2 = puVar20 < (uint *)0x2;\n          if ((puVar20 < puVar17) && (bVar2 = puVar20 < (uint *)0x2, puVar23 < param_4)) {\n            iVar22 = (int)puVar21 - (int)puVar25;\n            puVar15 = param_4;\n            if (puVar23 < (uint *)0x40) {\n              puVar9 = puVar23 + 0x10;\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) {\nLAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (puVar9 < param_4) {\n                puVar15 = puVar9;\n              }\n            }\n            else {\n              puVar9 = (uint *)((int)puVar23 * 2);\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;\nLAB_00014154:\n              if (puVar23 < puVar9) goto LAB_00013f98;\n            }\n            if (((int)puVar15 - (int)param_3 < 0) &&\n               (puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6)) goto LAB_000140b0;\n            puVar20 = (uint *)((int)puVar15 - iVar22);\n            puVar13 = puVar15;\n            puVar9 = puVar15;\n            puVar8 = (undefined1 *)(*(code *)PTR_realloc_0002b2b8)(puVar25);\n            if (puVar8 == (undefined1 *)0x0) goto LAB_000140b0;\n            puVar21 = puVar8 + iVar22;\n            bVar2 = puVar20 < (uint *)0x2;\n            puVar23 = puVar15;\n          }\n          if (!bVar2) {\n            puVar17 = (uint *)((int)puVar20 + -1);\n            if (local_30 <= (uint *)((int)puVar20 + -1)) {\n              puVar17 = local_30;\n            }\n            if (puVar7 == (uint *)0x0) {\n              *puVar21 = (char)local_48;\n            }\n            else {\n              puVar13 = puVar7;\n              puVar15 = puVar17;\n              (*(code *)PTR_memcpy_0002b2fc)(puVar21);\n            }\n            puVar21 = puVar21 + (int)puVar17;\n            puVar20 = (uint *)((int)puVar20 - (int)puVar17);\n          }\n          puVar25 = puVar8;\n          if ((puVar7 != (uint *)0x0) &&\n             (puVar13 = local_30, iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0))\n          goto LAB_000140b0;\n        }" { (expression_statement "puVar13 = (uint *)0xffffffd0;" (assignment_expression "puVar13 = (uint *)0xffffffd0" identifier = (cast_expression "(uint *)0xffffffd0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar7 = (uint *)freadptr(param_7);" (assignment_expression "puVar7 = (uint *)freadptr(param_7)" identifier = (cast_expression "(uint *)freadptr(param_7)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "freadptr(param_7)" identifier (argument_list "(param_7)" ( identifier ))))) ;) (expression_statement "puVar8 = puVar25;" (assignment_expression "puVar8 = puVar25" identifier = identifier) ;) (if_statement "if (puVar7 == (uint *)0x0) {\n            pbVar11 = *(byte **)(param_7 + 4);\n            if (pbVar11 < *(byte **)(param_7 + 8)) {\n              *(byte **)(param_7 + 4) = pbVar11 + 1;\n              local_48 = (uint *)(uint)*pbVar11;\n            }\n            else {\n              local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);\n              if (local_48 == (uint *)0xffffffff) {\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = puVar24 == local_48 || param_6 == local_48;\n            puVar17 = (uint *)0x2;\n            local_30 = (uint *)0x1;\n          }\n          else if ((puVar24 == (uint *)0xffffffff) ||\n                  (puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0)) {\n            puVar17 = (uint *)((int)local_30 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            local_30 = (uint *)((iVar22 - (int)puVar7) + 1);\n            puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);\n          }" if (parenthesized_expression "(puVar7 == (uint *)0x0)" ( (binary_expression "puVar7 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pbVar11 = *(byte **)(param_7 + 4);\n            if (pbVar11 < *(byte **)(param_7 + 8)) {\n              *(byte **)(param_7 + 4) = pbVar11 + 1;\n              local_48 = (uint *)(uint)*pbVar11;\n            }\n            else {\n              local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);\n              if (local_48 == (uint *)0xffffffff) {\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = puVar24 == local_48 || param_6 == local_48;\n            puVar17 = (uint *)0x2;\n            local_30 = (uint *)0x1;\n          }" { (expression_statement "pbVar11 = *(byte **)(param_7 + 4);" (assignment_expression "pbVar11 = *(byte **)(param_7 + 4)" identifier = (pointer_expression "*(byte **)(param_7 + 4)" * (cast_expression "(byte **)(param_7 + 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 4)" ( (binary_expression "param_7 + 4" identifier + number_literal) ))))) ;) (if_statement "if (pbVar11 < *(byte **)(param_7 + 8)) {\n              *(byte **)(param_7 + 4) = pbVar11 + 1;\n              local_48 = (uint *)(uint)*pbVar11;\n            }\n            else {\n              local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);\n              if (local_48 == (uint *)0xffffffff) {\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }\n            }" if (parenthesized_expression "(pbVar11 < *(byte **)(param_7 + 8))" ( (binary_expression "pbVar11 < *(byte **)(param_7 + 8)" identifier < (pointer_expression "*(byte **)(param_7 + 8)" * (cast_expression "(byte **)(param_7 + 8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) ))))) )) (compound_statement "{\n              *(byte **)(param_7 + 4) = pbVar11 + 1;\n              local_48 = (uint *)(uint)*pbVar11;\n            }" { (expression_statement "*(byte **)(param_7 + 4) = pbVar11 + 1;" (assignment_expression "*(byte **)(param_7 + 4) = pbVar11 + 1" (pointer_expression "*(byte **)(param_7 + 4)" * (cast_expression "(byte **)(param_7 + 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 4)" ( (binary_expression "param_7 + 4" identifier + number_literal) )))) = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (expression_statement "local_48 = (uint *)(uint)*pbVar11;" (assignment_expression "local_48 = (uint *)(uint)*pbVar11" identifier = (binary_expression "(uint *)(uint)*pbVar11" (cast_expression "(uint *)(uint)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier)) ;) }) (else_clause "else {\n              local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);\n              if (local_48 == (uint *)0xffffffff) {\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }\n            }" else (compound_statement "{\n              local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);\n              if (local_48 == (uint *)0xffffffff) {\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }\n            }" { (expression_statement "local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);" (assignment_expression "local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7)" identifier = (cast_expression "(uint *)(*(code *)PTR___uflow_0002b264)(param_7)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___uflow_0002b264)(param_7)" (parenthesized_expression "(*(code *)PTR___uflow_0002b264)" ( (pointer_expression "*(code *)PTR___uflow_0002b264" * (cast_expression "(code *)PTR___uflow_0002b264" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_7)" ( identifier ))))) ;) (if_statement "if (local_48 == (uint *)0xffffffff) {\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }" if (parenthesized_expression "(local_48 == (uint *)0xffffffff)" ( (binary_expression "local_48 == (uint *)0xffffffff" identifier == (cast_expression "(uint *)0xffffffff" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }" { (expression_statement "puVar9 = puVar15;" (assignment_expression "puVar9 = puVar15" identifier = identifier) ;) (if_statement "if (puVar21 == puVar25) goto LAB_000140b0;" if (parenthesized_expression "(puVar21 == puVar25)" ( (binary_expression "puVar21 == puVar25" identifier == identifier) )) (goto_statement "goto LAB_000140b0;" goto statement_identifier ;)) (break_statement "break;" break ;) })) }))) (expression_statement "bVar3 = puVar24 == local_48 || param_6 == local_48;" (assignment_expression "bVar3 = puVar24 == local_48 || param_6 == local_48" identifier = (binary_expression "puVar24 == local_48 || param_6 == local_48" (binary_expression "puVar24 == local_48" identifier == identifier) || (binary_expression "param_6 == local_48" identifier == identifier))) ;) (expression_statement "puVar17 = (uint *)0x2;" (assignment_expression "puVar17 = (uint *)0x2" identifier = (cast_expression "(uint *)0x2" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_30 = (uint *)0x1;" (assignment_expression "local_30 = (uint *)0x1" identifier = (cast_expression "(uint *)0x1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else if ((puVar24 == (uint *)0xffffffff) ||\n                  (puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0)) {\n            puVar17 = (uint *)((int)local_30 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            local_30 = (uint *)((iVar22 - (int)puVar7) + 1);\n            puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);\n          }" else (if_statement "if ((puVar24 == (uint *)0xffffffff) ||\n                  (puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0)) {\n            puVar17 = (uint *)((int)local_30 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            local_30 = (uint *)((iVar22 - (int)puVar7) + 1);\n            puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);\n          }" if (parenthesized_expression "((puVar24 == (uint *)0xffffffff) ||\n                  (puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0))" ( (binary_expression "(puVar24 == (uint *)0xffffffff) ||\n                  (puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0)" (parenthesized_expression "(puVar24 == (uint *)0xffffffff)" ( (binary_expression "puVar24 == (uint *)0xffffffff" identifier == (cast_expression "(uint *)0xffffffff" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0)" ( (comma_expression "puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0" (assignment_expression "puVar13 = puVar24" identifier = identifier) , (comma_expression "puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0" (assignment_expression "puVar15 = param_6" identifier = identifier) , (comma_expression "iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0" (assignment_expression "iVar22 = memchr2(puVar7,puVar24,param_6,local_30)" identifier = (call_expression "memchr2(puVar7,puVar24,param_6,local_30)" identifier (argument_list "(puVar7,puVar24,param_6,local_30)" ( identifier , identifier , identifier , identifier )))) , (binary_expression "iVar22 == 0" identifier == number_literal)))) ))) )) (compound_statement "{\n            puVar17 = (uint *)((int)local_30 + 1);\n            bVar3 = false;\n          }" { (expression_statement "puVar17 = (uint *)((int)local_30 + 1);" (assignment_expression "puVar17 = (uint *)((int)local_30 + 1)" identifier = (cast_expression "(uint *)((int)local_30 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_30 + 1)" ( (binary_expression "(int)local_30 + 1" (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) }) (else_clause "else {\n            bVar3 = true;\n            local_30 = (uint *)((iVar22 - (int)puVar7) + 1);\n            puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);\n          }" else (compound_statement "{\n            bVar3 = true;\n            local_30 = (uint *)((iVar22 - (int)puVar7) + 1);\n            puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);\n          }" { (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) (expression_statement "local_30 = (uint *)((iVar22 - (int)puVar7) + 1);" (assignment_expression "local_30 = (uint *)((iVar22 - (int)puVar7) + 1)" identifier = (cast_expression "(uint *)((iVar22 - (int)puVar7) + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar22 - (int)puVar7) + 1)" ( (binary_expression "(iVar22 - (int)puVar7) + 1" (parenthesized_expression "(iVar22 - (int)puVar7)" ( (binary_expression "iVar22 - (int)puVar7" identifier - (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) + number_literal) )))) ;) (expression_statement "puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);" (assignment_expression "puVar17 = (uint *)((iVar22 - (int)puVar7) + 2)" identifier = (cast_expression "(uint *)((iVar22 - (int)puVar7) + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar22 - (int)puVar7) + 2)" ( (binary_expression "(iVar22 - (int)puVar7) + 2" (parenthesized_expression "(iVar22 - (int)puVar7)" ( (binary_expression "iVar22 - (int)puVar7" identifier - (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) + number_literal) )))) ;) }))))) (expression_statement "bVar2 = puVar20 < (uint *)0x2;" (assignment_expression "bVar2 = puVar20 < (uint *)0x2" identifier = (binary_expression "puVar20 < (uint *)0x2" identifier < (cast_expression "(uint *)0x2" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if ((puVar20 < puVar17) && (bVar2 = puVar20 < (uint *)0x2, puVar23 < param_4)) {\n            iVar22 = (int)puVar21 - (int)puVar25;\n            puVar15 = param_4;\n            if (puVar23 < (uint *)0x40) {\n              puVar9 = puVar23 + 0x10;\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) {\nLAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (puVar9 < param_4) {\n                puVar15 = puVar9;\n              }\n            }\n            else {\n              puVar9 = (uint *)((int)puVar23 * 2);\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;\nLAB_00014154:\n              if (puVar23 < puVar9) goto LAB_00013f98;\n            }\n            if (((int)puVar15 - (int)param_3 < 0) &&\n               (puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6)) goto LAB_000140b0;\n            puVar20 = (uint *)((int)puVar15 - iVar22);\n            puVar13 = puVar15;\n            puVar9 = puVar15;\n            puVar8 = (undefined1 *)(*(code *)PTR_realloc_0002b2b8)(puVar25);\n            if (puVar8 == (undefined1 *)0x0) goto LAB_000140b0;\n            puVar21 = puVar8 + iVar22;\n            bVar2 = puVar20 < (uint *)0x2;\n            puVar23 = puVar15;\n          }" if (parenthesized_expression "((puVar20 < puVar17) && (bVar2 = puVar20 < (uint *)0x2, puVar23 < param_4))" ( (binary_expression "(puVar20 < puVar17) && (bVar2 = puVar20 < (uint *)0x2, puVar23 < param_4)" (parenthesized_expression "(puVar20 < puVar17)" ( (binary_expression "puVar20 < puVar17" identifier < identifier) )) && (parenthesized_expression "(bVar2 = puVar20 < (uint *)0x2, puVar23 < param_4)" ( (comma_expression "bVar2 = puVar20 < (uint *)0x2, puVar23 < param_4" (assignment_expression "bVar2 = puVar20 < (uint *)0x2" identifier = (binary_expression "puVar20 < (uint *)0x2" identifier < (cast_expression "(uint *)0x2" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) , (binary_expression "puVar23 < param_4" identifier < identifier)) ))) )) (compound_statement "{\n            iVar22 = (int)puVar21 - (int)puVar25;\n            puVar15 = param_4;\n            if (puVar23 < (uint *)0x40) {\n              puVar9 = puVar23 + 0x10;\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) {\nLAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (puVar9 < param_4) {\n                puVar15 = puVar9;\n              }\n            }\n            else {\n              puVar9 = (uint *)((int)puVar23 * 2);\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;\nLAB_00014154:\n              if (puVar23 < puVar9) goto LAB_00013f98;\n            }\n            if (((int)puVar15 - (int)param_3 < 0) &&\n               (puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6)) goto LAB_000140b0;\n            puVar20 = (uint *)((int)puVar15 - iVar22);\n            puVar13 = puVar15;\n            puVar9 = puVar15;\n            puVar8 = (undefined1 *)(*(code *)PTR_realloc_0002b2b8)(puVar25);\n            if (puVar8 == (undefined1 *)0x0) goto LAB_000140b0;\n            puVar21 = puVar8 + iVar22;\n            bVar2 = puVar20 < (uint *)0x2;\n            puVar23 = puVar15;\n          }" { (expression_statement "iVar22 = (int)puVar21 - (int)puVar25;" (assignment_expression "iVar22 = (int)puVar21 - (int)puVar25" identifier = (binary_expression "(int)puVar21 - (int)puVar25" (cast_expression "(int)puVar21" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar25" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "puVar15 = param_4;" (assignment_expression "puVar15 = param_4" identifier = identifier) ;) (if_statement "if (puVar23 < (uint *)0x40) {\n              puVar9 = puVar23 + 0x10;\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) {\nLAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (puVar9 < param_4) {\n                puVar15 = puVar9;\n              }\n            }\n            else {\n              puVar9 = (uint *)((int)puVar23 * 2);\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;\nLAB_00014154:\n              if (puVar23 < puVar9) goto LAB_00013f98;\n            }" if (parenthesized_expression "(puVar23 < (uint *)0x40)" ( (binary_expression "puVar23 < (uint *)0x40" identifier < (cast_expression "(uint *)0x40" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              puVar9 = puVar23 + 0x10;\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) {\nLAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (puVar9 < param_4) {\n                puVar15 = puVar9;\n              }\n            }" { (expression_statement "puVar9 = puVar23 + 0x10;" (assignment_expression "puVar9 = puVar23 + 0x10" identifier = (binary_expression "puVar23 + 0x10" identifier + number_literal)) ;) (if_statement "if ((uint *)((int)puVar9 - iVar22) < puVar17) {\nLAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);\n                goto LAB_00014154;\n              }" if (parenthesized_expression "((uint *)((int)puVar9 - iVar22) < puVar17)" ( (binary_expression "(uint *)((int)puVar9 - iVar22) < puVar17" (cast_expression "(uint *)((int)puVar9 - iVar22)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 - iVar22)" ( (binary_expression "(int)puVar9 - iVar22" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) ))) < identifier) )) (compound_statement "{\nLAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);\n                goto LAB_00014154;\n              }" { (labeled_statement "LAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);" statement_identifier : (expression_statement "puVar9 = (uint *)((int)puVar17 + iVar22);" (assignment_expression "puVar9 = (uint *)((int)puVar17 + iVar22)" identifier = (cast_expression "(uint *)((int)puVar17 + iVar22)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar17 + iVar22)" ( (binary_expression "(int)puVar17 + iVar22" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;)) (goto_statement "goto LAB_00014154;" goto statement_identifier ;) })) (labeled_statement "LAB_00013f98:\n              if (puVar9 < param_4) {\n                puVar15 = puVar9;\n              }" statement_identifier : (if_statement "if (puVar9 < param_4) {\n                puVar15 = puVar9;\n              }" if (parenthesized_expression "(puVar9 < param_4)" ( (binary_expression "puVar9 < param_4" identifier < identifier) )) (compound_statement "{\n                puVar15 = puVar9;\n              }" { (expression_statement "puVar15 = puVar9;" (assignment_expression "puVar15 = puVar9" identifier = identifier) ;) }))) }) (else_clause "else {\n              puVar9 = (uint *)((int)puVar23 * 2);\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;\nLAB_00014154:\n              if (puVar23 < puVar9) goto LAB_00013f98;\n            }" else (compound_statement "{\n              puVar9 = (uint *)((int)puVar23 * 2);\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;\nLAB_00014154:\n              if (puVar23 < puVar9) goto LAB_00013f98;\n            }" { (expression_statement "puVar9 = (uint *)((int)puVar23 * 2);" (assignment_expression "puVar9 = (uint *)((int)puVar23 * 2)" identifier = (cast_expression "(uint *)((int)puVar23 * 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 * 2)" ( (binary_expression "(int)puVar23 * 2" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (if_statement "if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;" if (parenthesized_expression "((uint *)((int)puVar9 - iVar22) < puVar17)" ( (binary_expression "(uint *)((int)puVar9 - iVar22) < puVar17" (cast_expression "(uint *)((int)puVar9 - iVar22)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 - iVar22)" ( (binary_expression "(int)puVar9 - iVar22" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) ))) < identifier) )) (goto_statement "goto LAB_0001414c;" goto statement_identifier ;)) (labeled_statement "LAB_00014154:\n              if (puVar23 < puVar9) goto LAB_00013f98;" statement_identifier : (if_statement "if (puVar23 < puVar9) goto LAB_00013f98;" if (parenthesized_expression "(puVar23 < puVar9)" ( (binary_expression "puVar23 < puVar9" identifier < identifier) )) (goto_statement "goto LAB_00013f98;" goto statement_identifier ;))) }))) (if_statement "if (((int)puVar15 - (int)param_3 < 0) &&\n               (puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6)) goto LAB_000140b0;" if (parenthesized_expression "(((int)puVar15 - (int)param_3 < 0) &&\n               (puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6))" ( (binary_expression "((int)puVar15 - (int)param_3 < 0) &&\n               (puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6)" (parenthesized_expression "((int)puVar15 - (int)param_3 < 0)" ( (binary_expression "(int)puVar15 - (int)param_3 < 0" (binary_expression "(int)puVar15 - (int)param_3" (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) < number_literal) )) && (parenthesized_expression "(puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6)" ( (comma_expression "puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6" (assignment_expression "puVar15 = puVar6" identifier = identifier) , (comma_expression "puVar9 = puVar6, puVar23 == puVar6" (assignment_expression "puVar9 = puVar6" identifier = identifier) , (binary_expression "puVar23 == puVar6" identifier == identifier))) ))) )) (goto_statement "goto LAB_000140b0;" goto statement_identifier ;)) (expression_statement "puVar20 = (uint *)((int)puVar15 - iVar22);" (assignment_expression "puVar20 = (uint *)((int)puVar15 - iVar22)" identifier = (cast_expression "(uint *)((int)puVar15 - iVar22)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar15 - iVar22)" ( (binary_expression "(int)puVar15 - iVar22" (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) (expression_statement "puVar13 = puVar15;" (assignment_expression "puVar13 = puVar15" identifier = identifier) ;) (expression_statement "puVar9 = puVar15;" (assignment_expression "puVar9 = puVar15" identifier = identifier) ;) (expression_statement "puVar8 = (undefined1 *)(*(code *)PTR_realloc_0002b2b8)(puVar25);" (assignment_expression "puVar8 = (undefined1 *)(*(code *)PTR_realloc_0002b2b8)(puVar25)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR_realloc_0002b2b8)(puVar25)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_realloc_0002b2b8)(puVar25)" (parenthesized_expression "(*(code *)PTR_realloc_0002b2b8)" ( (pointer_expression "*(code *)PTR_realloc_0002b2b8" * (cast_expression "(code *)PTR_realloc_0002b2b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar25)" ( identifier ))))) ;) (if_statement "if (puVar8 == (undefined1 *)0x0) goto LAB_000140b0;" if (parenthesized_expression "(puVar8 == (undefined1 *)0x0)" ( (binary_expression "puVar8 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000140b0;" goto statement_identifier ;)) (expression_statement "puVar21 = puVar8 + iVar22;" (assignment_expression "puVar21 = puVar8 + iVar22" identifier = (binary_expression "puVar8 + iVar22" identifier + identifier)) ;) (expression_statement "bVar2 = puVar20 < (uint *)0x2;" (assignment_expression "bVar2 = puVar20 < (uint *)0x2" identifier = (binary_expression "puVar20 < (uint *)0x2" identifier < (cast_expression "(uint *)0x2" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "puVar23 = puVar15;" (assignment_expression "puVar23 = puVar15" identifier = identifier) ;) })) (if_statement "if (!bVar2) {\n            puVar17 = (uint *)((int)puVar20 + -1);\n            if (local_30 <= (uint *)((int)puVar20 + -1)) {\n              puVar17 = local_30;\n            }\n            if (puVar7 == (uint *)0x0) {\n              *puVar21 = (char)local_48;\n            }\n            else {\n              puVar13 = puVar7;\n              puVar15 = puVar17;\n              (*(code *)PTR_memcpy_0002b2fc)(puVar21);\n            }\n            puVar21 = puVar21 + (int)puVar17;\n            puVar20 = (uint *)((int)puVar20 - (int)puVar17);\n          }" if (parenthesized_expression "(!bVar2)" ( (unary_expression "!bVar2" ! identifier) )) (compound_statement "{\n            puVar17 = (uint *)((int)puVar20 + -1);\n            if (local_30 <= (uint *)((int)puVar20 + -1)) {\n              puVar17 = local_30;\n            }\n            if (puVar7 == (uint *)0x0) {\n              *puVar21 = (char)local_48;\n            }\n            else {\n              puVar13 = puVar7;\n              puVar15 = puVar17;\n              (*(code *)PTR_memcpy_0002b2fc)(puVar21);\n            }\n            puVar21 = puVar21 + (int)puVar17;\n            puVar20 = (uint *)((int)puVar20 - (int)puVar17);\n          }" { (expression_statement "puVar17 = (uint *)((int)puVar20 + -1);" (assignment_expression "puVar17 = (uint *)((int)puVar20 + -1)" identifier = (cast_expression "(uint *)((int)puVar20 + -1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar20 + -1)" ( (binary_expression "(int)puVar20 + -1" (cast_expression "(int)puVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (local_30 <= (uint *)((int)puVar20 + -1)) {\n              puVar17 = local_30;\n            }" if (parenthesized_expression "(local_30 <= (uint *)((int)puVar20 + -1))" ( (binary_expression "local_30 <= (uint *)((int)puVar20 + -1)" identifier <= (cast_expression "(uint *)((int)puVar20 + -1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar20 + -1)" ( (binary_expression "(int)puVar20 + -1" (cast_expression "(int)puVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )) (compound_statement "{\n              puVar17 = local_30;\n            }" { (expression_statement "puVar17 = local_30;" (assignment_expression "puVar17 = local_30" identifier = identifier) ;) })) (if_statement "if (puVar7 == (uint *)0x0) {\n              *puVar21 = (char)local_48;\n            }\n            else {\n              puVar13 = puVar7;\n              puVar15 = puVar17;\n              (*(code *)PTR_memcpy_0002b2fc)(puVar21);\n            }" if (parenthesized_expression "(puVar7 == (uint *)0x0)" ( (binary_expression "puVar7 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              *puVar21 = (char)local_48;\n            }" { (expression_statement "*puVar21 = (char)local_48;" (assignment_expression "*puVar21 = (char)local_48" (pointer_expression "*puVar21" * identifier) = (cast_expression "(char)local_48" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }) (else_clause "else {\n              puVar13 = puVar7;\n              puVar15 = puVar17;\n              (*(code *)PTR_memcpy_0002b2fc)(puVar21);\n            }" else (compound_statement "{\n              puVar13 = puVar7;\n              puVar15 = puVar17;\n              (*(code *)PTR_memcpy_0002b2fc)(puVar21);\n            }" { (expression_statement "puVar13 = puVar7;" (assignment_expression "puVar13 = puVar7" identifier = identifier) ;) (expression_statement "puVar15 = puVar17;" (assignment_expression "puVar15 = puVar17" identifier = identifier) ;) (expression_statement "(*(code *)PTR_memcpy_0002b2fc)(puVar21);" (call_expression "(*(code *)PTR_memcpy_0002b2fc)(puVar21)" (parenthesized_expression "(*(code *)PTR_memcpy_0002b2fc)" ( (pointer_expression "*(code *)PTR_memcpy_0002b2fc" * (cast_expression "(code *)PTR_memcpy_0002b2fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar21)" ( identifier ))) ;) }))) (expression_statement "puVar21 = puVar21 + (int)puVar17;" (assignment_expression "puVar21 = puVar21 + (int)puVar17" identifier = (binary_expression "puVar21 + (int)puVar17" identifier + (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "puVar20 = (uint *)((int)puVar20 - (int)puVar17);" (assignment_expression "puVar20 = (uint *)((int)puVar20 - (int)puVar17)" identifier = (cast_expression "(uint *)((int)puVar20 - (int)puVar17)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar20 - (int)puVar17)" ( (binary_expression "(int)puVar20 - (int)puVar17" (cast_expression "(int)puVar20" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) })) (expression_statement "puVar25 = puVar8;" (assignment_expression "puVar25 = puVar8" identifier = identifier) ;) (if_statement "if ((puVar7 != (uint *)0x0) &&\n             (puVar13 = local_30, iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0))\n          goto LAB_000140b0;" if (parenthesized_expression "((puVar7 != (uint *)0x0) &&\n             (puVar13 = local_30, iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0))" ( (binary_expression "(puVar7 != (uint *)0x0) &&\n             (puVar13 = local_30, iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0)" (parenthesized_expression "(puVar7 != (uint *)0x0)" ( (binary_expression "puVar7 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(puVar13 = local_30, iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0)" ( (comma_expression "puVar13 = local_30, iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0" (assignment_expression "puVar13 = local_30" identifier = identifier) , (comma_expression "iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0" (assignment_expression "iVar22 = freadseek(param_7)" identifier = (call_expression "freadseek(param_7)" identifier (argument_list "(param_7)" ( identifier )))) , (comma_expression "puVar9 = puVar15, iVar22 != 0" (assignment_expression "puVar9 = puVar15" identifier = identifier) , (binary_expression "iVar22 != 0" identifier != number_literal)))) ))) )) (goto_statement "goto LAB_000140b0;" goto statement_identifier ;)) }) while (parenthesized_expression "(!bVar3)" ( (unary_expression "!bVar3" ! identifier) )) ;) (expression_statement "*puVar21 = 0;" (assignment_expression "*puVar21 = 0" (pointer_expression "*puVar21" * identifier) = number_literal) ;) (expression_statement "*param_1 = puVar8;" (assignment_expression "*param_1 = puVar8" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "puVar9 = (uint *)(puVar21 + -(int)(puVar8 + (int)param_3));" (assignment_expression "puVar9 = (uint *)(puVar21 + -(int)(puVar8 + (int)param_3))" identifier = (cast_expression "(uint *)(puVar21 + -(int)(puVar8 + (int)param_3))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -(int)(puVar8 + (int)param_3))" ( (binary_expression "puVar21 + -(int)(puVar8 + (int)param_3)" identifier + (unary_expression "-(int)(puVar8 + (int)param_3)" - (cast_expression "(int)(puVar8 + (int)param_3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar8 + (int)param_3)" ( (binary_expression "puVar8 + (int)param_3" identifier + (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) )))) ;) (expression_statement "*param_2 = (uint)puVar23;" (assignment_expression "*param_2 = (uint)puVar23" (pointer_expression "*param_2" * identifier) = (cast_expression "(uint)puVar23" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (puVar9 == (uint *)0x0) {\n          puVar9 = (uint *)0xffffffff;\n        }" if (parenthesized_expression "(puVar9 == (uint *)0x0)" ( (binary_expression "puVar9 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          puVar9 = (uint *)0xffffffff;\n        }" { (expression_statement "puVar9 = (uint *)0xffffffff;" (assignment_expression "puVar9 = (uint *)0xffffffff" identifier = (cast_expression "(uint *)0xffffffff" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (goto_statement "goto LAB_000140c0;" goto statement_identifier ;) })) })) (labeled_statement "LAB_000140b0:\n    puVar15 = puVar9;" statement_identifier : (expression_statement "puVar15 = puVar9;" (assignment_expression "puVar15 = puVar9" identifier = identifier) ;)) (expression_statement "*param_1 = puVar25;" (assignment_expression "*param_1 = puVar25" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "puVar9 = (uint *)0xffffffff;" (assignment_expression "puVar9 = (uint *)0xffffffff" identifier = (cast_expression "(uint *)0xffffffff" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*param_2 = (uint)puVar23;" (assignment_expression "*param_2 = (uint)puVar23" (pointer_expression "*param_2" * identifier) = (cast_expression "(uint)puVar23" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }))) (labeled_statement "LAB_000140c0:\n  if (puVar5 == *(uint **)puVar4) {\n    return puVar9;\n  }" statement_identifier : (if_statement "if (puVar5 == *(uint **)puVar4) {\n    return puVar9;\n  }" if (parenthesized_expression "(puVar5 == *(uint **)puVar4)" ( (binary_expression "puVar5 == *(uint **)puVar4" identifier == (pointer_expression "*(uint **)puVar4" * (cast_expression "(uint **)puVar4" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return puVar9;\n  }" { (return_statement "return puVar9;" return identifier ;) }))) (expression_statement "(*(code *)PTR___stack_chk_fail_0002b2e0)();" (call_expression "(*(code *)PTR___stack_chk_fail_0002b2e0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0002b2e0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0002b2e0" * (cast_expression "(code *)PTR___stack_chk_fail_0002b2e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar18 = (uint)puVar13 & 0xff;" (assignment_expression "uVar18 = (uint)puVar13 & 0xff" identifier = (binary_expression "(uint)puVar13 & 0xff" (cast_expression "(uint)puVar13" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar19 = (uint)puVar15 & 0xff;" (assignment_expression "uVar19 = (uint)puVar15 & 0xff" identifier = (binary_expression "(uint)puVar15 & 0xff" (cast_expression "(uint)puVar15" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (if_statement "if (uVar18 == uVar19) {\n    puVar5 = (uint *)rpl_memchr();\n    return puVar5;\n  }" if (parenthesized_expression "(uVar18 == uVar19)" ( (binary_expression "uVar18 == uVar19" identifier == identifier) )) (compound_statement "{\n    puVar5 = (uint *)rpl_memchr();\n    return puVar5;\n  }" { (expression_statement "puVar5 = (uint *)rpl_memchr();" (assignment_expression "puVar5 = (uint *)rpl_memchr()" identifier = (cast_expression "(uint *)rpl_memchr()" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "rpl_memchr()" identifier (argument_list "()" ( ))))) ;) (return_statement "return puVar5;" return identifier ;) })) (if_statement "if ((puVar17 != (uint *)0x0) && (((uint)puVar5 & 3) != 0)) {\n    if (uVar18 == *(byte *)puVar5) {\n      return puVar5;\n    }\n    if (uVar19 == *(byte *)puVar5) {\n      return puVar5;\n    }\n    while( true ) {\n      puVar17 = (uint *)((int)puVar17 - 1);\n      puVar5 = (uint *)((int)puVar5 + 1);\n      if ((puVar17 == (uint *)0x0) || (((uint)puVar5 & 3) == 0)) break;\n      if (*(byte *)puVar5 == uVar18) {\n        return puVar5;\n      }\n      if (*(byte *)puVar5 == uVar19) {\n        return puVar5;\n      }\n    }\n  }" if (parenthesized_expression "((puVar17 != (uint *)0x0) && (((uint)puVar5 & 3) != 0))" ( (binary_expression "(puVar17 != (uint *)0x0) && (((uint)puVar5 & 3) != 0)" (parenthesized_expression "(puVar17 != (uint *)0x0)" ( (binary_expression "puVar17 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(((uint)puVar5 & 3) != 0)" ( (binary_expression "((uint)puVar5 & 3) != 0" (parenthesized_expression "((uint)puVar5 & 3)" ( (binary_expression "(uint)puVar5 & 3" (cast_expression "(uint)puVar5" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    if (uVar18 == *(byte *)puVar5) {\n      return puVar5;\n    }\n    if (uVar19 == *(byte *)puVar5) {\n      return puVar5;\n    }\n    while( true ) {\n      puVar17 = (uint *)((int)puVar17 - 1);\n      puVar5 = (uint *)((int)puVar5 + 1);\n      if ((puVar17 == (uint *)0x0) || (((uint)puVar5 & 3) == 0)) break;\n      if (*(byte *)puVar5 == uVar18) {\n        return puVar5;\n      }\n      if (*(byte *)puVar5 == uVar19) {\n        return puVar5;\n      }\n    }\n  }" { (if_statement "if (uVar18 == *(byte *)puVar5) {\n      return puVar5;\n    }" if (parenthesized_expression "(uVar18 == *(byte *)puVar5)" ( (binary_expression "uVar18 == *(byte *)puVar5" identifier == (pointer_expression "*(byte *)puVar5" * (cast_expression "(byte *)puVar5" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n      return puVar5;\n    }" { (return_statement "return puVar5;" return identifier ;) })) (if_statement "if (uVar19 == *(byte *)puVar5) {\n      return puVar5;\n    }" if (parenthesized_expression "(uVar19 == *(byte *)puVar5)" ( (binary_expression "uVar19 == *(byte *)puVar5" identifier == (pointer_expression "*(byte *)puVar5" * (cast_expression "(byte *)puVar5" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n      return puVar5;\n    }" { (return_statement "return puVar5;" return identifier ;) })) (while_statement "while( true ) {\n      puVar17 = (uint *)((int)puVar17 - 1);\n      puVar5 = (uint *)((int)puVar5 + 1);\n      if ((puVar17 == (uint *)0x0) || (((uint)puVar5 & 3) == 0)) break;\n      if (*(byte *)puVar5 == uVar18) {\n        return puVar5;\n      }\n      if (*(byte *)puVar5 == uVar19) {\n        return puVar5;\n      }\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      puVar17 = (uint *)((int)puVar17 - 1);\n      puVar5 = (uint *)((int)puVar5 + 1);\n      if ((puVar17 == (uint *)0x0) || (((uint)puVar5 & 3) == 0)) break;\n      if (*(byte *)puVar5 == uVar18) {\n        return puVar5;\n      }\n      if (*(byte *)puVar5 == uVar19) {\n        return puVar5;\n      }\n    }" { (expression_statement "puVar17 = (uint *)((int)puVar17 - 1);" (assignment_expression "puVar17 = (uint *)((int)puVar17 - 1)" identifier = (cast_expression "(uint *)((int)puVar17 - 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar17 - 1)" ( (binary_expression "(int)puVar17 - 1" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal) )))) ;) (expression_statement "puVar5 = (uint *)((int)puVar5 + 1);" (assignment_expression "puVar5 = (uint *)((int)puVar5 + 1)" identifier = (cast_expression "(uint *)((int)puVar5 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar5 + 1)" ( (binary_expression "(int)puVar5 + 1" (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((puVar17 == (uint *)0x0) || (((uint)puVar5 & 3) == 0)) break;" if (parenthesized_expression "((puVar17 == (uint *)0x0) || (((uint)puVar5 & 3) == 0))" ( (binary_expression "(puVar17 == (uint *)0x0) || (((uint)puVar5 & 3) == 0)" (parenthesized_expression "(puVar17 == (uint *)0x0)" ( (binary_expression "puVar17 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(((uint)puVar5 & 3) == 0)" ( (binary_expression "((uint)puVar5 & 3) == 0" (parenthesized_expression "((uint)puVar5 & 3)" ( (binary_expression "(uint)puVar5 & 3" (cast_expression "(uint)puVar5" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) ))) )) (break_statement "break;" break ;)) (if_statement "if (*(byte *)puVar5 == uVar18) {\n        return puVar5;\n      }" if (parenthesized_expression "(*(byte *)puVar5 == uVar18)" ( (binary_expression "*(byte *)puVar5 == uVar18" (pointer_expression "*(byte *)puVar5" * (cast_expression "(byte *)puVar5" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == identifier) )) (compound_statement "{\n        return puVar5;\n      }" { (return_statement "return puVar5;" return identifier ;) })) (if_statement "if (*(byte *)puVar5 == uVar19) {\n        return puVar5;\n      }" if (parenthesized_expression "(*(byte *)puVar5 == uVar19)" ( (binary_expression "*(byte *)puVar5 == uVar19" (pointer_expression "*(byte *)puVar5" * (cast_expression "(byte *)puVar5" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == identifier) )) (compound_statement "{\n        return puVar5;\n      }" { (return_statement "return puVar5;" return identifier ;) })) })) })) (expression_statement "uVar14 = ((uint)puVar13 & 0xff) << 8 | (uint)puVar13 & 0xff;" (assignment_expression "uVar14 = ((uint)puVar13 & 0xff) << 8 | (uint)puVar13 & 0xff" identifier = (binary_expression "((uint)puVar13 & 0xff) << 8 | (uint)puVar13 & 0xff" (binary_expression "((uint)puVar13 & 0xff) << 8" (parenthesized_expression "((uint)puVar13 & 0xff)" ( (binary_expression "(uint)puVar13 & 0xff" (cast_expression "(uint)puVar13" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) << number_literal) | (binary_expression "(uint)puVar13 & 0xff" (cast_expression "(uint)puVar13" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal))) ;) (expression_statement "uVar16 = ((uint)puVar15 & 0xff) << 8 | (uint)puVar15 & 0xff;" (assignment_expression "uVar16 = ((uint)puVar15 & 0xff) << 8 | (uint)puVar15 & 0xff" identifier = (binary_expression "((uint)puVar15 & 0xff) << 8 | (uint)puVar15 & 0xff" (binary_expression "((uint)puVar15 & 0xff) << 8" (parenthesized_expression "((uint)puVar15 & 0xff)" ( (binary_expression "(uint)puVar15 & 0xff" (cast_expression "(uint)puVar15" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) << number_literal) | (binary_expression "(uint)puVar15 & 0xff" (cast_expression "(uint)puVar15" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal))) ;) (expression_statement "uVar14 = uVar14 << 0x10 | uVar14;" (assignment_expression "uVar14 = uVar14 << 0x10 | uVar14" identifier = (binary_expression "uVar14 << 0x10 | uVar14" (binary_expression "uVar14 << 0x10" identifier << number_literal) | identifier)) ;) (expression_statement "uVar16 = uVar16 << 0x10 | uVar16;" (assignment_expression "uVar16 = uVar16 << 0x10 | uVar16" identifier = (binary_expression "uVar16 << 0x10 | uVar16" (binary_expression "uVar16 << 0x10" identifier << number_literal) | identifier)) ;) (if_statement "if (puVar17 < (uint *)0x4) {\nLAB_0001433c:\n    if (puVar17 == (uint *)0x0) {\n      return (uint *)0x0;\n    }\n  }\n  else {\n    uVar10 = uVar14 ^ *puVar5;\n    uVar12 = uVar16 ^ *puVar5;\n    if (((~uVar10 & uVar10 + 0xfefefeff | ~uVar12 & uVar12 + 0xfefefeff) & 0x80808080) != 0) {\n      bVar1 = *(byte *)puVar5;\n      goto LAB_00014348;\n    }\n    do {\n      puVar17 = puVar17 + -1;\n      puVar5 = puVar5 + 1;\n      if (puVar17 < (uint *)0x4) goto LAB_0001433c;\n      uVar12 = *puVar5 ^ uVar14;\n      uVar10 = *puVar5 ^ uVar16;\n    } while (((uVar12 + 0xfefefeff & ~uVar12 | uVar10 + 0xfefefeff & ~uVar10) & 0x80808080) == 0);\n  }" if (parenthesized_expression "(puVar17 < (uint *)0x4)" ( (binary_expression "puVar17 < (uint *)0x4" identifier < (cast_expression "(uint *)0x4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0001433c:\n    if (puVar17 == (uint *)0x0) {\n      return (uint *)0x0;\n    }\n  }" { (labeled_statement "LAB_0001433c:\n    if (puVar17 == (uint *)0x0) {\n      return (uint *)0x0;\n    }" statement_identifier : (if_statement "if (puVar17 == (uint *)0x0) {\n      return (uint *)0x0;\n    }" if (parenthesized_expression "(puVar17 == (uint *)0x0)" ( (binary_expression "puVar17 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return (uint *)0x0;\n    }" { (return_statement "return (uint *)0x0;" return (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) }))) }) (else_clause "else {\n    uVar10 = uVar14 ^ *puVar5;\n    uVar12 = uVar16 ^ *puVar5;\n    if (((~uVar10 & uVar10 + 0xfefefeff | ~uVar12 & uVar12 + 0xfefefeff) & 0x80808080) != 0) {\n      bVar1 = *(byte *)puVar5;\n      goto LAB_00014348;\n    }\n    do {\n      puVar17 = puVar17 + -1;\n      puVar5 = puVar5 + 1;\n      if (puVar17 < (uint *)0x4) goto LAB_0001433c;\n      uVar12 = *puVar5 ^ uVar14;\n      uVar10 = *puVar5 ^ uVar16;\n    } while (((uVar12 + 0xfefefeff & ~uVar12 | uVar10 + 0xfefefeff & ~uVar10) & 0x80808080) == 0);\n  }" else (compound_statement "{\n    uVar10 = uVar14 ^ *puVar5;\n    uVar12 = uVar16 ^ *puVar5;\n    if (((~uVar10 & uVar10 + 0xfefefeff | ~uVar12 & uVar12 + 0xfefefeff) & 0x80808080) != 0) {\n      bVar1 = *(byte *)puVar5;\n      goto LAB_00014348;\n    }\n    do {\n      puVar17 = puVar17 + -1;\n      puVar5 = puVar5 + 1;\n      if (puVar17 < (uint *)0x4) goto LAB_0001433c;\n      uVar12 = *puVar5 ^ uVar14;\n      uVar10 = *puVar5 ^ uVar16;\n    } while (((uVar12 + 0xfefefeff & ~uVar12 | uVar10 + 0xfefefeff & ~uVar10) & 0x80808080) == 0);\n  }" { (expression_statement "uVar10 = uVar14 ^ *puVar5;" (assignment_expression "uVar10 = uVar14 ^ *puVar5" identifier = (binary_expression "uVar14 ^ *puVar5" identifier ^ (pointer_expression "*puVar5" * identifier))) ;) (expression_statement "uVar12 = uVar16 ^ *puVar5;" (assignment_expression "uVar12 = uVar16 ^ *puVar5" identifier = (binary_expression "uVar16 ^ *puVar5" identifier ^ (pointer_expression "*puVar5" * identifier))) ;) (if_statement "if (((~uVar10 & uVar10 + 0xfefefeff | ~uVar12 & uVar12 + 0xfefefeff) & 0x80808080) != 0) {\n      bVar1 = *(byte *)puVar5;\n      goto LAB_00014348;\n    }" if (parenthesized_expression "(((~uVar10 & uVar10 + 0xfefefeff | ~uVar12 & uVar12 + 0xfefefeff) & 0x80808080) != 0)" ( (binary_expression "((~uVar10 & uVar10 + 0xfefefeff | ~uVar12 & uVar12 + 0xfefefeff) & 0x80808080) != 0" (parenthesized_expression "((~uVar10 & uVar10 + 0xfefefeff | ~uVar12 & uVar12 + 0xfefefeff) & 0x80808080)" ( (binary_expression "(~uVar10 & uVar10 + 0xfefefeff | ~uVar12 & uVar12 + 0xfefefeff) & 0x80808080" (parenthesized_expression "(~uVar10 & uVar10 + 0xfefefeff | ~uVar12 & uVar12 + 0xfefefeff)" ( (binary_expression "~uVar10 & uVar10 + 0xfefefeff | ~uVar12 & uVar12 + 0xfefefeff" (binary_expression "~uVar10 & uVar10 + 0xfefefeff" (unary_expression "~uVar10" ~ identifier) & (binary_expression "uVar10 + 0xfefefeff" identifier + number_literal)) | (binary_expression "~uVar12 & uVar12 + 0xfefefeff" (unary_expression "~uVar12" ~ identifier) & (binary_expression "uVar12 + 0xfefefeff" identifier + number_literal))) )) & number_literal) )) != number_literal) )) (compound_statement "{\n      bVar1 = *(byte *)puVar5;\n      goto LAB_00014348;\n    }" { (expression_statement "bVar1 = *(byte *)puVar5;" (assignment_expression "bVar1 = *(byte *)puVar5" identifier = (pointer_expression "*(byte *)puVar5" * (cast_expression "(byte *)puVar5" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (goto_statement "goto LAB_00014348;" goto statement_identifier ;) })) (do_statement "do {\n      puVar17 = puVar17 + -1;\n      puVar5 = puVar5 + 1;\n      if (puVar17 < (uint *)0x4) goto LAB_0001433c;\n      uVar12 = *puVar5 ^ uVar14;\n      uVar10 = *puVar5 ^ uVar16;\n    } while (((uVar12 + 0xfefefeff & ~uVar12 | uVar10 + 0xfefefeff & ~uVar10) & 0x80808080) == 0);" do (compound_statement "{\n      puVar17 = puVar17 + -1;\n      puVar5 = puVar5 + 1;\n      if (puVar17 < (uint *)0x4) goto LAB_0001433c;\n      uVar12 = *puVar5 ^ uVar14;\n      uVar10 = *puVar5 ^ uVar16;\n    }" { (expression_statement "puVar17 = puVar17 + -1;" (assignment_expression "puVar17 = puVar17 + -1" identifier = (binary_expression "puVar17 + -1" identifier + number_literal)) ;) (expression_statement "puVar5 = puVar5 + 1;" (assignment_expression "puVar5 = puVar5 + 1" identifier = (binary_expression "puVar5 + 1" identifier + number_literal)) ;) (if_statement "if (puVar17 < (uint *)0x4) goto LAB_0001433c;" if (parenthesized_expression "(puVar17 < (uint *)0x4)" ( (binary_expression "puVar17 < (uint *)0x4" identifier < (cast_expression "(uint *)0x4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001433c;" goto statement_identifier ;)) (expression_statement "uVar12 = *puVar5 ^ uVar14;" (assignment_expression "uVar12 = *puVar5 ^ uVar14" identifier = (binary_expression "*puVar5 ^ uVar14" (pointer_expression "*puVar5" * identifier) ^ identifier)) ;) (expression_statement "uVar10 = *puVar5 ^ uVar16;" (assignment_expression "uVar10 = *puVar5 ^ uVar16" identifier = (binary_expression "*puVar5 ^ uVar16" (pointer_expression "*puVar5" * identifier) ^ identifier)) ;) }) while (parenthesized_expression "(((uVar12 + 0xfefefeff & ~uVar12 | uVar10 + 0xfefefeff & ~uVar10) & 0x80808080) == 0)" ( (binary_expression "((uVar12 + 0xfefefeff & ~uVar12 | uVar10 + 0xfefefeff & ~uVar10) & 0x80808080) == 0" (parenthesized_expression "((uVar12 + 0xfefefeff & ~uVar12 | uVar10 + 0xfefefeff & ~uVar10) & 0x80808080)" ( (binary_expression "(uVar12 + 0xfefefeff & ~uVar12 | uVar10 + 0xfefefeff & ~uVar10) & 0x80808080" (parenthesized_expression "(uVar12 + 0xfefefeff & ~uVar12 | uVar10 + 0xfefefeff & ~uVar10)" ( (binary_expression "uVar12 + 0xfefefeff & ~uVar12 | uVar10 + 0xfefefeff & ~uVar10" (binary_expression "uVar12 + 0xfefefeff & ~uVar12" (binary_expression "uVar12 + 0xfefefeff" identifier + number_literal) & (unary_expression "~uVar12" ~ identifier)) | (binary_expression "uVar10 + 0xfefefeff & ~uVar10" (binary_expression "uVar10 + 0xfefefeff" identifier + number_literal) & (unary_expression "~uVar10" ~ identifier))) )) & number_literal) )) == number_literal) )) ;) }))) (expression_statement "bVar1 = *(byte *)puVar5;" (assignment_expression "bVar1 = *(byte *)puVar5" identifier = (pointer_expression "*(byte *)puVar5" * (cast_expression "(byte *)puVar5" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (labeled_statement "LAB_00014348:\n  if ((uVar18 != bVar1) && (uVar19 != bVar1)) {\n    puVar17 = (uint *)((int)puVar5 + (int)puVar17);\n    do {\n      puVar5 = (uint *)((int)puVar5 + 1);\n      if (puVar5 == puVar17) {\n        return (uint *)0x0;\n      }\n    } while ((*(byte *)puVar5 != uVar18) && (*(byte *)puVar5 != uVar19));\n  }" statement_identifier : (if_statement "if ((uVar18 != bVar1) && (uVar19 != bVar1)) {\n    puVar17 = (uint *)((int)puVar5 + (int)puVar17);\n    do {\n      puVar5 = (uint *)((int)puVar5 + 1);\n      if (puVar5 == puVar17) {\n        return (uint *)0x0;\n      }\n    } while ((*(byte *)puVar5 != uVar18) && (*(byte *)puVar5 != uVar19));\n  }" if (parenthesized_expression "((uVar18 != bVar1) && (uVar19 != bVar1))" ( (binary_expression "(uVar18 != bVar1) && (uVar19 != bVar1)" (parenthesized_expression "(uVar18 != bVar1)" ( (binary_expression "uVar18 != bVar1" identifier != identifier) )) && (parenthesized_expression "(uVar19 != bVar1)" ( (binary_expression "uVar19 != bVar1" identifier != identifier) ))) )) (compound_statement "{\n    puVar17 = (uint *)((int)puVar5 + (int)puVar17);\n    do {\n      puVar5 = (uint *)((int)puVar5 + 1);\n      if (puVar5 == puVar17) {\n        return (uint *)0x0;\n      }\n    } while ((*(byte *)puVar5 != uVar18) && (*(byte *)puVar5 != uVar19));\n  }" { (expression_statement "puVar17 = (uint *)((int)puVar5 + (int)puVar17);" (assignment_expression "puVar17 = (uint *)((int)puVar5 + (int)puVar17)" identifier = (cast_expression "(uint *)((int)puVar5 + (int)puVar17)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar5 + (int)puVar17)" ( (binary_expression "(int)puVar5 + (int)puVar17" (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (do_statement "do {\n      puVar5 = (uint *)((int)puVar5 + 1);\n      if (puVar5 == puVar17) {\n        return (uint *)0x0;\n      }\n    } while ((*(byte *)puVar5 != uVar18) && (*(byte *)puVar5 != uVar19));" do (compound_statement "{\n      puVar5 = (uint *)((int)puVar5 + 1);\n      if (puVar5 == puVar17) {\n        return (uint *)0x0;\n      }\n    }" { (expression_statement "puVar5 = (uint *)((int)puVar5 + 1);" (assignment_expression "puVar5 = (uint *)((int)puVar5 + 1)" identifier = (cast_expression "(uint *)((int)puVar5 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar5 + 1)" ( (binary_expression "(int)puVar5 + 1" (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (puVar5 == puVar17) {\n        return (uint *)0x0;\n      }" if (parenthesized_expression "(puVar5 == puVar17)" ( (binary_expression "puVar5 == puVar17" identifier == identifier) )) (compound_statement "{\n        return (uint *)0x0;\n      }" { (return_statement "return (uint *)0x0;" return (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) }) while (parenthesized_expression "((*(byte *)puVar5 != uVar18) && (*(byte *)puVar5 != uVar19))" ( (binary_expression "(*(byte *)puVar5 != uVar18) && (*(byte *)puVar5 != uVar19)" (parenthesized_expression "(*(byte *)puVar5 != uVar18)" ( (binary_expression "*(byte *)puVar5 != uVar18" (pointer_expression "*(byte *)puVar5" * (cast_expression "(byte *)puVar5" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) != identifier) )) && (parenthesized_expression "(*(byte *)puVar5 != uVar19)" ( (binary_expression "*(byte *)puVar5 != uVar19" (pointer_expression "*(byte *)puVar5" * (cast_expression "(byte *)puVar5" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) != identifier) ))) )) ;) }))) (return_statement "return puVar5;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression IDENT < IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( IDENT ))) * IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (break_statement break ;) })) }))) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT == IDENT) || (binary_expression IDENT == IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT )))) , (binary_expression IDENT == LIT)))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) + LIT) )))) ;) }))))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) , (binary_expression IDENT < IDENT)) ))) )) (compound_statement { (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 < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT) ))) < IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;)) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT) ))) < IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (goto_statement goto statement_identifier ;))) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) < LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT == IDENT))) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (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 (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != LIT)))) ))) )) (goto_statement goto statement_identifier ;)) }) while (parenthesized_expression ( (unary_expression ! IDENT) )) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (unary_expression - (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) (goto_statement goto statement_identifier ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) != LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) })) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) == LIT) ))) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) == IDENT) )) (compound_statement { (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) == IDENT) )) (compound_statement { (return_statement return IDENT ;) })) })) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) << LIT) | (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) << LIT) | (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << LIT) | IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << LIT) | IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (unary_expression ~ IDENT) & (binary_expression IDENT + LIT)) | (binary_expression (unary_expression ~ IDENT) & (binary_expression IDENT + LIT))) )) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (goto_statement goto statement_identifier ;) })) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) ^ IDENT)) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT + LIT) & (unary_expression ~ IDENT)) | (binary_expression (binary_expression IDENT + LIT) & (unary_expression ~ IDENT))) )) & LIT) )) == LIT) )) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != IDENT) )) && (parenthesized_expression ( (binary_expression IDENT != IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) != IDENT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) != IDENT) ))) )) ;) }))) (return_statement return IDENT ;) })))
(function_definition "uint * getndelim2(undefined4 *param_1,uint *param_2,uint *param_3,uint *param_4,uint *param_5,\n                 uint *param_6,int param_7)\n\n{\n  byte bVar1;\n  bool bVar2;\n  bool bVar3;\n  undefined *puVar4;\n  uint *puVar5;\n  uint *puVar6;\n  uint *puVar7;\n  undefined1 *puVar8;\n  uint *puVar9;\n  uint uVar10;\n  byte *pbVar11;\n  uint uVar12;\n  uint *puVar13;\n  uint uVar14;\n  uint *puVar15;\n  uint uVar16;\n  uint *puVar17;\n  uint uVar18;\n  uint uVar19;\n  uint *puVar20;\n  undefined1 *puVar21;\n  int iVar22;\n  uint *puVar23;\n  uint *puVar24;\n  undefined1 *puVar25;\n  uint *local_48;\n  uint *local_30;\n  \n  puVar4 = PTR___stack_chk_guard_0002b2f8;\n  puVar5 = *(uint **)PTR___stack_chk_guard_0002b2f8;\n  puVar25 = (undefined1 *)*param_1;\n  puVar23 = (uint *)*param_2;\n  puVar13 = param_2;\n  puVar15 = param_3;\n  puVar17 = param_4;\n  if (puVar25 == (undefined1 *)0x0) {\n    puVar23 = param_4;\n    if ((uint *)0x40 < param_4) {\n      puVar23 = (uint *)0x40;\n    }\n    puVar25 = (undefined1 *)(*(code *)PTR_malloc_0002b2b4)(puVar23);\n    if (puVar25 != (undefined1 *)0x0) goto LAB_00013ed4;\n    puVar9 = (uint *)0xffffffff;\n  }\n  else {\nLAB_00013ed4:\n    puVar9 = puVar15;\n    if (param_3 <= puVar23) {\n      puVar20 = (uint *)((int)puVar23 - (int)param_3);\n      puVar21 = puVar25 + (int)param_3;\n      if ((puVar20 != (uint *)0x0) || (puVar23 < param_4)) {\n        puVar24 = param_6;\n        if ((param_5 != (uint *)0xffffffff) && (puVar24 = param_5, param_6 == (uint *)0xffffffff)) {\n          param_6 = param_5;\n        }\n        puVar6 = param_3 + -0x20000000;\n        do {\n          puVar13 = (uint *)0xffffffd0;\n          puVar7 = (uint *)freadptr(param_7);\n          puVar8 = puVar25;\n          if (puVar7 == (uint *)0x0) {\n            pbVar11 = *(byte **)(param_7 + 4);\n            if (pbVar11 < *(byte **)(param_7 + 8)) {\n              *(byte **)(param_7 + 4) = pbVar11 + 1;\n              local_48 = (uint *)(uint)*pbVar11;\n            }\n            else {\n              local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);\n              if (local_48 == (uint *)0xffffffff) {\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = puVar24 == local_48 || param_6 == local_48;\n            puVar17 = (uint *)0x2;\n            local_30 = (uint *)0x1;\n          }\n          else if ((puVar24 == (uint *)0xffffffff) ||\n                  (puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0)) {\n            puVar17 = (uint *)((int)local_30 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            local_30 = (uint *)((iVar22 - (int)puVar7) + 1);\n            puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);\n          }\n          bVar2 = puVar20 < (uint *)0x2;\n          if ((puVar20 < puVar17) && (bVar2 = puVar20 < (uint *)0x2, puVar23 < param_4)) {\n            iVar22 = (int)puVar21 - (int)puVar25;\n            puVar15 = param_4;\n            if (puVar23 < (uint *)0x40) {\n              puVar9 = puVar23 + 0x10;\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) {\nLAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (puVar9 < param_4) {\n                puVar15 = puVar9;\n              }\n            }\n            else {\n              puVar9 = (uint *)((int)puVar23 * 2);\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;\nLAB_00014154:\n              if (puVar23 < puVar9) goto LAB_00013f98;\n            }\n            if (((int)puVar15 - (int)param_3 < 0) &&\n               (puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6)) goto LAB_000140b0;\n            puVar20 = (uint *)((int)puVar15 - iVar22);\n            puVar13 = puVar15;\n            puVar9 = puVar15;\n            puVar8 = (undefined1 *)(*(code *)PTR_realloc_0002b2b8)(puVar25);\n            if (puVar8 == (undefined1 *)0x0) goto LAB_000140b0;\n            puVar21 = puVar8 + iVar22;\n            bVar2 = puVar20 < (uint *)0x2;\n            puVar23 = puVar15;\n          }\n          if (!bVar2) {\n            puVar17 = (uint *)((int)puVar20 + -1);\n            if (local_30 <= (uint *)((int)puVar20 + -1)) {\n              puVar17 = local_30;\n            }\n            if (puVar7 == (uint *)0x0) {\n              *puVar21 = (char)local_48;\n            }\n            else {\n              puVar13 = puVar7;\n              puVar15 = puVar17;\n              (*(code *)PTR_memcpy_0002b2fc)(puVar21);\n            }\n            puVar21 = puVar21 + (int)puVar17;\n            puVar20 = (uint *)((int)puVar20 - (int)puVar17);\n          }\n          puVar25 = puVar8;\n          if ((puVar7 != (uint *)0x0) &&\n             (puVar13 = local_30, iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0))\n          goto LAB_000140b0;\n        } while (!bVar3);\n        *puVar21 = 0;\n        *param_1 = puVar8;\n        puVar9 = (uint *)(puVar21 + -(int)(puVar8 + (int)param_3));\n        *param_2 = (uint)puVar23;\n        if (puVar9 == (uint *)0x0) {\n          puVar9 = (uint *)0xffffffff;\n        }\n        goto LAB_000140c0;\n      }\n    }\nLAB_000140b0:\n    puVar15 = puVar9;\n    *param_1 = puVar25;\n    puVar9 = (uint *)0xffffffff;\n    *param_2 = (uint)puVar23;\n  }\nLAB_000140c0:\n  if (puVar5 == *(uint **)puVar4) {\n    return puVar9;\n  }\n  (*(code *)PTR___stack_chk_fail_0002b2e0)();\n  uVar18 = (uint)puVar13 & 0xff;\n  uVar19 = (uint)puVar15 & 0xff;\n  if (uVar18 == uVar19) {\n    puVar5 = (uint *)rpl_memchr();\n    return puVar5;\n  }\n  if ((puVar17 != (uint *)0x0) && (((uint)puVar5 & 3) != 0)) {\n    if (uVar18 == *(byte *)puVar5) {\n      return puVar5;\n    }\n    if (uVar19 == *(byte *)puVar5) {\n      return puVar5;\n    }\n    while( true ) {\n      puVar17 = (uint *)((int)puVar17 - 1);\n      puVar5 = (uint *)((int)puVar5 + 1);\n      if ((puVar17 == (uint *)0x0) || (((uint)puVar5 & 3) == 0)) break;\n      if (*(byte *)puVar5 == uVar18) {\n        return puVar5;\n      }\n      if (*(byte *)puVar5 == uVar19) {\n        return puVar5;\n      }\n    }\n  }\n  uVar14 = ((uint)puVar13 & 0xff) << 8 | (uint)puVar13 & 0xff;\n  uVar16 = ((uint)puVar15 & 0xff) << 8 | (uint)puVar15 & 0xff;\n  uVar14 = uVar14 << 0x10 | uVar14;\n  uVar16 = uVar16 << 0x10 | uVar16;\n  if (puVar17 < (uint *)0x4) {\nLAB_0001433c:\n    if (puVar17 == (uint *)0x0) {\n      return (uint *)0x0;\n    }\n  }\n  else {\n    uVar10 = uVar14 ^ *puVar5;\n    uVar12 = uVar16 ^ *puVar5;\n    if (((~uVar10 & uVar10 + 0xfefefeff | ~uVar12 & uVar12 + 0xfefefeff) & 0x80808080) != 0) {\n      bVar1 = *(byte *)puVar5;\n      goto LAB_00014348;\n    }\n    do {\n      puVar17 = puVar17 + -1;\n      puVar5 = puVar5 + 1;\n      if (puVar17 < (uint *)0x4) goto LAB_0001433c;\n      uVar12 = *puVar5 ^ uVar14;\n      uVar10 = *puVar5 ^ uVar16;\n    } while (((uVar12 + 0xfefefeff & ~uVar12 | uVar10 + 0xfefefeff & ~uVar10) & 0x80808080) == 0);\n  }\n  bVar1 = *(byte *)puVar5;\nLAB_00014348:\n  if ((uVar18 != bVar1) && (uVar19 != bVar1)) {\n    puVar17 = (uint *)((int)puVar5 + (int)puVar17);\n    do {\n      puVar5 = (uint *)((int)puVar5 + 1);\n      if (puVar5 == puVar17) {\n        return (uint *)0x0;\n      }\n    } while ((*(byte *)puVar5 != uVar18) && (*(byte *)puVar5 != uVar19));\n  }\n  return puVar5;\n}" (type_identifier "uint") (pointer_declarator "* getndelim2(undefined4 *param_1,uint *param_2,uint *param_3,uint *param_4,uint *param_5,\n                 uint *param_6,int param_7)" (* "*") (function_declarator "getndelim2(undefined4 *param_1,uint *param_2,uint *param_3,uint *param_4,uint *param_5,\n                 uint *param_6,int param_7)" (identifier "getndelim2") (parameter_list "(undefined4 *param_1,uint *param_2,uint *param_3,uint *param_4,uint *param_5,\n                 uint *param_6,int param_7)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "uint *param_2" (type_identifier "uint") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "uint *param_3" (type_identifier "uint") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "uint *param_4" (type_identifier "uint") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "uint *param_5" (type_identifier "uint") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) (, ",") (parameter_declaration "uint *param_6" (type_identifier "uint") (pointer_declarator "*param_6" (* "*") (identifier "param_6"))) (, ",") (parameter_declaration "int param_7" (primitive_type "int") (identifier "param_7")) () ")")))) (compound_statement "{\n  byte bVar1;\n  bool bVar2;\n  bool bVar3;\n  undefined *puVar4;\n  uint *puVar5;\n  uint *puVar6;\n  uint *puVar7;\n  undefined1 *puVar8;\n  uint *puVar9;\n  uint uVar10;\n  byte *pbVar11;\n  uint uVar12;\n  uint *puVar13;\n  uint uVar14;\n  uint *puVar15;\n  uint uVar16;\n  uint *puVar17;\n  uint uVar18;\n  uint uVar19;\n  uint *puVar20;\n  undefined1 *puVar21;\n  int iVar22;\n  uint *puVar23;\n  uint *puVar24;\n  undefined1 *puVar25;\n  uint *local_48;\n  uint *local_30;\n  \n  puVar4 = PTR___stack_chk_guard_0002b2f8;\n  puVar5 = *(uint **)PTR___stack_chk_guard_0002b2f8;\n  puVar25 = (undefined1 *)*param_1;\n  puVar23 = (uint *)*param_2;\n  puVar13 = param_2;\n  puVar15 = param_3;\n  puVar17 = param_4;\n  if (puVar25 == (undefined1 *)0x0) {\n    puVar23 = param_4;\n    if ((uint *)0x40 < param_4) {\n      puVar23 = (uint *)0x40;\n    }\n    puVar25 = (undefined1 *)(*(code *)PTR_malloc_0002b2b4)(puVar23);\n    if (puVar25 != (undefined1 *)0x0) goto LAB_00013ed4;\n    puVar9 = (uint *)0xffffffff;\n  }\n  else {\nLAB_00013ed4:\n    puVar9 = puVar15;\n    if (param_3 <= puVar23) {\n      puVar20 = (uint *)((int)puVar23 - (int)param_3);\n      puVar21 = puVar25 + (int)param_3;\n      if ((puVar20 != (uint *)0x0) || (puVar23 < param_4)) {\n        puVar24 = param_6;\n        if ((param_5 != (uint *)0xffffffff) && (puVar24 = param_5, param_6 == (uint *)0xffffffff)) {\n          param_6 = param_5;\n        }\n        puVar6 = param_3 + -0x20000000;\n        do {\n          puVar13 = (uint *)0xffffffd0;\n          puVar7 = (uint *)freadptr(param_7);\n          puVar8 = puVar25;\n          if (puVar7 == (uint *)0x0) {\n            pbVar11 = *(byte **)(param_7 + 4);\n            if (pbVar11 < *(byte **)(param_7 + 8)) {\n              *(byte **)(param_7 + 4) = pbVar11 + 1;\n              local_48 = (uint *)(uint)*pbVar11;\n            }\n            else {\n              local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);\n              if (local_48 == (uint *)0xffffffff) {\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = puVar24 == local_48 || param_6 == local_48;\n            puVar17 = (uint *)0x2;\n            local_30 = (uint *)0x1;\n          }\n          else if ((puVar24 == (uint *)0xffffffff) ||\n                  (puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0)) {\n            puVar17 = (uint *)((int)local_30 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            local_30 = (uint *)((iVar22 - (int)puVar7) + 1);\n            puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);\n          }\n          bVar2 = puVar20 < (uint *)0x2;\n          if ((puVar20 < puVar17) && (bVar2 = puVar20 < (uint *)0x2, puVar23 < param_4)) {\n            iVar22 = (int)puVar21 - (int)puVar25;\n            puVar15 = param_4;\n            if (puVar23 < (uint *)0x40) {\n              puVar9 = puVar23 + 0x10;\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) {\nLAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (puVar9 < param_4) {\n                puVar15 = puVar9;\n              }\n            }\n            else {\n              puVar9 = (uint *)((int)puVar23 * 2);\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;\nLAB_00014154:\n              if (puVar23 < puVar9) goto LAB_00013f98;\n            }\n            if (((int)puVar15 - (int)param_3 < 0) &&\n               (puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6)) goto LAB_000140b0;\n            puVar20 = (uint *)((int)puVar15 - iVar22);\n            puVar13 = puVar15;\n            puVar9 = puVar15;\n            puVar8 = (undefined1 *)(*(code *)PTR_realloc_0002b2b8)(puVar25);\n            if (puVar8 == (undefined1 *)0x0) goto LAB_000140b0;\n            puVar21 = puVar8 + iVar22;\n            bVar2 = puVar20 < (uint *)0x2;\n            puVar23 = puVar15;\n          }\n          if (!bVar2) {\n            puVar17 = (uint *)((int)puVar20 + -1);\n            if (local_30 <= (uint *)((int)puVar20 + -1)) {\n              puVar17 = local_30;\n            }\n            if (puVar7 == (uint *)0x0) {\n              *puVar21 = (char)local_48;\n            }\n            else {\n              puVar13 = puVar7;\n              puVar15 = puVar17;\n              (*(code *)PTR_memcpy_0002b2fc)(puVar21);\n            }\n            puVar21 = puVar21 + (int)puVar17;\n            puVar20 = (uint *)((int)puVar20 - (int)puVar17);\n          }\n          puVar25 = puVar8;\n          if ((puVar7 != (uint *)0x0) &&\n             (puVar13 = local_30, iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0))\n          goto LAB_000140b0;\n        } while (!bVar3);\n        *puVar21 = 0;\n        *param_1 = puVar8;\n        puVar9 = (uint *)(puVar21 + -(int)(puVar8 + (int)param_3));\n        *param_2 = (uint)puVar23;\n        if (puVar9 == (uint *)0x0) {\n          puVar9 = (uint *)0xffffffff;\n        }\n        goto LAB_000140c0;\n      }\n    }\nLAB_000140b0:\n    puVar15 = puVar9;\n    *param_1 = puVar25;\n    puVar9 = (uint *)0xffffffff;\n    *param_2 = (uint)puVar23;\n  }\nLAB_000140c0:\n  if (puVar5 == *(uint **)puVar4) {\n    return puVar9;\n  }\n  (*(code *)PTR___stack_chk_fail_0002b2e0)();\n  uVar18 = (uint)puVar13 & 0xff;\n  uVar19 = (uint)puVar15 & 0xff;\n  if (uVar18 == uVar19) {\n    puVar5 = (uint *)rpl_memchr();\n    return puVar5;\n  }\n  if ((puVar17 != (uint *)0x0) && (((uint)puVar5 & 3) != 0)) {\n    if (uVar18 == *(byte *)puVar5) {\n      return puVar5;\n    }\n    if (uVar19 == *(byte *)puVar5) {\n      return puVar5;\n    }\n    while( true ) {\n      puVar17 = (uint *)((int)puVar17 - 1);\n      puVar5 = (uint *)((int)puVar5 + 1);\n      if ((puVar17 == (uint *)0x0) || (((uint)puVar5 & 3) == 0)) break;\n      if (*(byte *)puVar5 == uVar18) {\n        return puVar5;\n      }\n      if (*(byte *)puVar5 == uVar19) {\n        return puVar5;\n      }\n    }\n  }\n  uVar14 = ((uint)puVar13 & 0xff) << 8 | (uint)puVar13 & 0xff;\n  uVar16 = ((uint)puVar15 & 0xff) << 8 | (uint)puVar15 & 0xff;\n  uVar14 = uVar14 << 0x10 | uVar14;\n  uVar16 = uVar16 << 0x10 | uVar16;\n  if (puVar17 < (uint *)0x4) {\nLAB_0001433c:\n    if (puVar17 == (uint *)0x0) {\n      return (uint *)0x0;\n    }\n  }\n  else {\n    uVar10 = uVar14 ^ *puVar5;\n    uVar12 = uVar16 ^ *puVar5;\n    if (((~uVar10 & uVar10 + 0xfefefeff | ~uVar12 & uVar12 + 0xfefefeff) & 0x80808080) != 0) {\n      bVar1 = *(byte *)puVar5;\n      goto LAB_00014348;\n    }\n    do {\n      puVar17 = puVar17 + -1;\n      puVar5 = puVar5 + 1;\n      if (puVar17 < (uint *)0x4) goto LAB_0001433c;\n      uVar12 = *puVar5 ^ uVar14;\n      uVar10 = *puVar5 ^ uVar16;\n    } while (((uVar12 + 0xfefefeff & ~uVar12 | uVar10 + 0xfefefeff & ~uVar10) & 0x80808080) == 0);\n  }\n  bVar1 = *(byte *)puVar5;\nLAB_00014348:\n  if ((uVar18 != bVar1) && (uVar19 != bVar1)) {\n    puVar17 = (uint *)((int)puVar5 + (int)puVar17);\n    do {\n      puVar5 = (uint *)((int)puVar5 + 1);\n      if (puVar5 == puVar17) {\n        return (uint *)0x0;\n      }\n    } while ((*(byte *)puVar5 != uVar18) && (*(byte *)puVar5 != uVar19));\n  }\n  return puVar5;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "bool bVar2;" (primitive_type "bool") (identifier "bVar2") (; ";")) (declaration "bool bVar3;" (primitive_type "bool") (identifier "bVar3") (; ";")) (declaration "undefined *puVar4;" (type_identifier "undefined") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "uint *puVar5;" (type_identifier "uint") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "uint *puVar6;" (type_identifier "uint") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "uint *puVar7;" (type_identifier "uint") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "undefined1 *puVar8;" (type_identifier "undefined1") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "uint *puVar9;" (type_identifier "uint") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "byte *pbVar11;" (type_identifier "byte") (pointer_declarator "*pbVar11" (* "*") (identifier "pbVar11")) (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "uint *puVar13;" (type_identifier "uint") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "uint *puVar15;" (type_identifier "uint") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "uint uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "uint *puVar17;" (type_identifier "uint") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "uint uVar18;" (type_identifier "uint") (identifier "uVar18") (; ";")) (declaration "uint uVar19;" (type_identifier "uint") (identifier "uVar19") (; ";")) (declaration "uint *puVar20;" (type_identifier "uint") (pointer_declarator "*puVar20" (* "*") (identifier "puVar20")) (; ";")) (declaration "undefined1 *puVar21;" (type_identifier "undefined1") (pointer_declarator "*puVar21" (* "*") (identifier "puVar21")) (; ";")) (declaration "int iVar22;" (primitive_type "int") (identifier "iVar22") (; ";")) (declaration "uint *puVar23;" (type_identifier "uint") (pointer_declarator "*puVar23" (* "*") (identifier "puVar23")) (; ";")) (declaration "uint *puVar24;" (type_identifier "uint") (pointer_declarator "*puVar24" (* "*") (identifier "puVar24")) (; ";")) (declaration "undefined1 *puVar25;" (type_identifier "undefined1") (pointer_declarator "*puVar25" (* "*") (identifier "puVar25")) (; ";")) (declaration "uint *local_48;" (type_identifier "uint") (pointer_declarator "*local_48" (* "*") (identifier "local_48")) (; ";")) (declaration "uint *local_30;" (type_identifier "uint") (pointer_declarator "*local_30" (* "*") (identifier "local_30")) (; ";")) (expression_statement "puVar4 = PTR___stack_chk_guard_0002b2f8;" (assignment_expression "puVar4 = PTR___stack_chk_guard_0002b2f8" (identifier "puVar4") (= "=") (identifier "PTR___stack_chk_guard_0002b2f8")) (; ";")) (expression_statement "puVar5 = *(uint **)PTR___stack_chk_guard_0002b2f8;" (assignment_expression "puVar5 = *(uint **)PTR___stack_chk_guard_0002b2f8" (identifier "puVar5") (= "=") (pointer_expression "*(uint **)PTR___stack_chk_guard_0002b2f8" (* "*") (cast_expression "(uint **)PTR___stack_chk_guard_0002b2f8" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR___stack_chk_guard_0002b2f8")))) (; ";")) (expression_statement "puVar25 = (undefined1 *)*param_1;" (assignment_expression "puVar25 = (undefined1 *)*param_1" (identifier "puVar25") (= "=") (cast_expression "(undefined1 *)*param_1" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (expression_statement "puVar23 = (uint *)*param_2;" (assignment_expression "puVar23 = (uint *)*param_2" (identifier "puVar23") (= "=") (cast_expression "(uint *)*param_2" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (; ";")) (expression_statement "puVar13 = param_2;" (assignment_expression "puVar13 = param_2" (identifier "puVar13") (= "=") (identifier "param_2")) (; ";")) (expression_statement "puVar15 = param_3;" (assignment_expression "puVar15 = param_3" (identifier "puVar15") (= "=") (identifier "param_3")) (; ";")) (expression_statement "puVar17 = param_4;" (assignment_expression "puVar17 = param_4" (identifier "puVar17") (= "=") (identifier "param_4")) (; ";")) (if_statement "if (puVar25 == (undefined1 *)0x0) {\n    puVar23 = param_4;\n    if ((uint *)0x40 < param_4) {\n      puVar23 = (uint *)0x40;\n    }\n    puVar25 = (undefined1 *)(*(code *)PTR_malloc_0002b2b4)(puVar23);\n    if (puVar25 != (undefined1 *)0x0) goto LAB_00013ed4;\n    puVar9 = (uint *)0xffffffff;\n  }\n  else {\nLAB_00013ed4:\n    puVar9 = puVar15;\n    if (param_3 <= puVar23) {\n      puVar20 = (uint *)((int)puVar23 - (int)param_3);\n      puVar21 = puVar25 + (int)param_3;\n      if ((puVar20 != (uint *)0x0) || (puVar23 < param_4)) {\n        puVar24 = param_6;\n        if ((param_5 != (uint *)0xffffffff) && (puVar24 = param_5, param_6 == (uint *)0xffffffff)) {\n          param_6 = param_5;\n        }\n        puVar6 = param_3 + -0x20000000;\n        do {\n          puVar13 = (uint *)0xffffffd0;\n          puVar7 = (uint *)freadptr(param_7);\n          puVar8 = puVar25;\n          if (puVar7 == (uint *)0x0) {\n            pbVar11 = *(byte **)(param_7 + 4);\n            if (pbVar11 < *(byte **)(param_7 + 8)) {\n              *(byte **)(param_7 + 4) = pbVar11 + 1;\n              local_48 = (uint *)(uint)*pbVar11;\n            }\n            else {\n              local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);\n              if (local_48 == (uint *)0xffffffff) {\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = puVar24 == local_48 || param_6 == local_48;\n            puVar17 = (uint *)0x2;\n            local_30 = (uint *)0x1;\n          }\n          else if ((puVar24 == (uint *)0xffffffff) ||\n                  (puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0)) {\n            puVar17 = (uint *)((int)local_30 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            local_30 = (uint *)((iVar22 - (int)puVar7) + 1);\n            puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);\n          }\n          bVar2 = puVar20 < (uint *)0x2;\n          if ((puVar20 < puVar17) && (bVar2 = puVar20 < (uint *)0x2, puVar23 < param_4)) {\n            iVar22 = (int)puVar21 - (int)puVar25;\n            puVar15 = param_4;\n            if (puVar23 < (uint *)0x40) {\n              puVar9 = puVar23 + 0x10;\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) {\nLAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (puVar9 < param_4) {\n                puVar15 = puVar9;\n              }\n            }\n            else {\n              puVar9 = (uint *)((int)puVar23 * 2);\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;\nLAB_00014154:\n              if (puVar23 < puVar9) goto LAB_00013f98;\n            }\n            if (((int)puVar15 - (int)param_3 < 0) &&\n               (puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6)) goto LAB_000140b0;\n            puVar20 = (uint *)((int)puVar15 - iVar22);\n            puVar13 = puVar15;\n            puVar9 = puVar15;\n            puVar8 = (undefined1 *)(*(code *)PTR_realloc_0002b2b8)(puVar25);\n            if (puVar8 == (undefined1 *)0x0) goto LAB_000140b0;\n            puVar21 = puVar8 + iVar22;\n            bVar2 = puVar20 < (uint *)0x2;\n            puVar23 = puVar15;\n          }\n          if (!bVar2) {\n            puVar17 = (uint *)((int)puVar20 + -1);\n            if (local_30 <= (uint *)((int)puVar20 + -1)) {\n              puVar17 = local_30;\n            }\n            if (puVar7 == (uint *)0x0) {\n              *puVar21 = (char)local_48;\n            }\n            else {\n              puVar13 = puVar7;\n              puVar15 = puVar17;\n              (*(code *)PTR_memcpy_0002b2fc)(puVar21);\n            }\n            puVar21 = puVar21 + (int)puVar17;\n            puVar20 = (uint *)((int)puVar20 - (int)puVar17);\n          }\n          puVar25 = puVar8;\n          if ((puVar7 != (uint *)0x0) &&\n             (puVar13 = local_30, iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0))\n          goto LAB_000140b0;\n        } while (!bVar3);\n        *puVar21 = 0;\n        *param_1 = puVar8;\n        puVar9 = (uint *)(puVar21 + -(int)(puVar8 + (int)param_3));\n        *param_2 = (uint)puVar23;\n        if (puVar9 == (uint *)0x0) {\n          puVar9 = (uint *)0xffffffff;\n        }\n        goto LAB_000140c0;\n      }\n    }\nLAB_000140b0:\n    puVar15 = puVar9;\n    *param_1 = puVar25;\n    puVar9 = (uint *)0xffffffff;\n    *param_2 = (uint)puVar23;\n  }" (if "if") (parenthesized_expression "(puVar25 == (undefined1 *)0x0)" (( "(") (binary_expression "puVar25 == (undefined1 *)0x0" (identifier "puVar25") (== "==") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    puVar23 = param_4;\n    if ((uint *)0x40 < param_4) {\n      puVar23 = (uint *)0x40;\n    }\n    puVar25 = (undefined1 *)(*(code *)PTR_malloc_0002b2b4)(puVar23);\n    if (puVar25 != (undefined1 *)0x0) goto LAB_00013ed4;\n    puVar9 = (uint *)0xffffffff;\n  }" ({ "{") (expression_statement "puVar23 = param_4;" (assignment_expression "puVar23 = param_4" (identifier "puVar23") (= "=") (identifier "param_4")) (; ";")) (if_statement "if ((uint *)0x40 < param_4) {\n      puVar23 = (uint *)0x40;\n    }" (if "if") (parenthesized_expression "((uint *)0x40 < param_4)" (( "(") (binary_expression "(uint *)0x40 < param_4" (cast_expression "(uint *)0x40" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x40")) (< "<") (identifier "param_4")) () ")")) (compound_statement "{\n      puVar23 = (uint *)0x40;\n    }" ({ "{") (expression_statement "puVar23 = (uint *)0x40;" (assignment_expression "puVar23 = (uint *)0x40" (identifier "puVar23") (= "=") (cast_expression "(uint *)0x40" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x40"))) (; ";")) (} "}"))) (expression_statement "puVar25 = (undefined1 *)(*(code *)PTR_malloc_0002b2b4)(puVar23);" (assignment_expression "puVar25 = (undefined1 *)(*(code *)PTR_malloc_0002b2b4)(puVar23)" (identifier "puVar25") (= "=") (cast_expression "(undefined1 *)(*(code *)PTR_malloc_0002b2b4)(puVar23)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_malloc_0002b2b4)(puVar23)" (parenthesized_expression "(*(code *)PTR_malloc_0002b2b4)" (( "(") (pointer_expression "*(code *)PTR_malloc_0002b2b4" (* "*") (cast_expression "(code *)PTR_malloc_0002b2b4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_malloc_0002b2b4"))) () ")")) (argument_list "(puVar23)" (( "(") (identifier "puVar23") () ")"))))) (; ";")) (if_statement "if (puVar25 != (undefined1 *)0x0) goto LAB_00013ed4;" (if "if") (parenthesized_expression "(puVar25 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar25 != (undefined1 *)0x0" (identifier "puVar25") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00013ed4;" (goto "goto") (statement_identifier "LAB_00013ed4") (; ";"))) (expression_statement "puVar9 = (uint *)0xffffffff;" (assignment_expression "puVar9 = (uint *)0xffffffff" (identifier "puVar9") (= "=") (cast_expression "(uint *)0xffffffff" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (} "}")) (else_clause "else {\nLAB_00013ed4:\n    puVar9 = puVar15;\n    if (param_3 <= puVar23) {\n      puVar20 = (uint *)((int)puVar23 - (int)param_3);\n      puVar21 = puVar25 + (int)param_3;\n      if ((puVar20 != (uint *)0x0) || (puVar23 < param_4)) {\n        puVar24 = param_6;\n        if ((param_5 != (uint *)0xffffffff) && (puVar24 = param_5, param_6 == (uint *)0xffffffff)) {\n          param_6 = param_5;\n        }\n        puVar6 = param_3 + -0x20000000;\n        do {\n          puVar13 = (uint *)0xffffffd0;\n          puVar7 = (uint *)freadptr(param_7);\n          puVar8 = puVar25;\n          if (puVar7 == (uint *)0x0) {\n            pbVar11 = *(byte **)(param_7 + 4);\n            if (pbVar11 < *(byte **)(param_7 + 8)) {\n              *(byte **)(param_7 + 4) = pbVar11 + 1;\n              local_48 = (uint *)(uint)*pbVar11;\n            }\n            else {\n              local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);\n              if (local_48 == (uint *)0xffffffff) {\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = puVar24 == local_48 || param_6 == local_48;\n            puVar17 = (uint *)0x2;\n            local_30 = (uint *)0x1;\n          }\n          else if ((puVar24 == (uint *)0xffffffff) ||\n                  (puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0)) {\n            puVar17 = (uint *)((int)local_30 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            local_30 = (uint *)((iVar22 - (int)puVar7) + 1);\n            puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);\n          }\n          bVar2 = puVar20 < (uint *)0x2;\n          if ((puVar20 < puVar17) && (bVar2 = puVar20 < (uint *)0x2, puVar23 < param_4)) {\n            iVar22 = (int)puVar21 - (int)puVar25;\n            puVar15 = param_4;\n            if (puVar23 < (uint *)0x40) {\n              puVar9 = puVar23 + 0x10;\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) {\nLAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (puVar9 < param_4) {\n                puVar15 = puVar9;\n              }\n            }\n            else {\n              puVar9 = (uint *)((int)puVar23 * 2);\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;\nLAB_00014154:\n              if (puVar23 < puVar9) goto LAB_00013f98;\n            }\n            if (((int)puVar15 - (int)param_3 < 0) &&\n               (puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6)) goto LAB_000140b0;\n            puVar20 = (uint *)((int)puVar15 - iVar22);\n            puVar13 = puVar15;\n            puVar9 = puVar15;\n            puVar8 = (undefined1 *)(*(code *)PTR_realloc_0002b2b8)(puVar25);\n            if (puVar8 == (undefined1 *)0x0) goto LAB_000140b0;\n            puVar21 = puVar8 + iVar22;\n            bVar2 = puVar20 < (uint *)0x2;\n            puVar23 = puVar15;\n          }\n          if (!bVar2) {\n            puVar17 = (uint *)((int)puVar20 + -1);\n            if (local_30 <= (uint *)((int)puVar20 + -1)) {\n              puVar17 = local_30;\n            }\n            if (puVar7 == (uint *)0x0) {\n              *puVar21 = (char)local_48;\n            }\n            else {\n              puVar13 = puVar7;\n              puVar15 = puVar17;\n              (*(code *)PTR_memcpy_0002b2fc)(puVar21);\n            }\n            puVar21 = puVar21 + (int)puVar17;\n            puVar20 = (uint *)((int)puVar20 - (int)puVar17);\n          }\n          puVar25 = puVar8;\n          if ((puVar7 != (uint *)0x0) &&\n             (puVar13 = local_30, iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0))\n          goto LAB_000140b0;\n        } while (!bVar3);\n        *puVar21 = 0;\n        *param_1 = puVar8;\n        puVar9 = (uint *)(puVar21 + -(int)(puVar8 + (int)param_3));\n        *param_2 = (uint)puVar23;\n        if (puVar9 == (uint *)0x0) {\n          puVar9 = (uint *)0xffffffff;\n        }\n        goto LAB_000140c0;\n      }\n    }\nLAB_000140b0:\n    puVar15 = puVar9;\n    *param_1 = puVar25;\n    puVar9 = (uint *)0xffffffff;\n    *param_2 = (uint)puVar23;\n  }" (else "else") (compound_statement "{\nLAB_00013ed4:\n    puVar9 = puVar15;\n    if (param_3 <= puVar23) {\n      puVar20 = (uint *)((int)puVar23 - (int)param_3);\n      puVar21 = puVar25 + (int)param_3;\n      if ((puVar20 != (uint *)0x0) || (puVar23 < param_4)) {\n        puVar24 = param_6;\n        if ((param_5 != (uint *)0xffffffff) && (puVar24 = param_5, param_6 == (uint *)0xffffffff)) {\n          param_6 = param_5;\n        }\n        puVar6 = param_3 + -0x20000000;\n        do {\n          puVar13 = (uint *)0xffffffd0;\n          puVar7 = (uint *)freadptr(param_7);\n          puVar8 = puVar25;\n          if (puVar7 == (uint *)0x0) {\n            pbVar11 = *(byte **)(param_7 + 4);\n            if (pbVar11 < *(byte **)(param_7 + 8)) {\n              *(byte **)(param_7 + 4) = pbVar11 + 1;\n              local_48 = (uint *)(uint)*pbVar11;\n            }\n            else {\n              local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);\n              if (local_48 == (uint *)0xffffffff) {\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = puVar24 == local_48 || param_6 == local_48;\n            puVar17 = (uint *)0x2;\n            local_30 = (uint *)0x1;\n          }\n          else if ((puVar24 == (uint *)0xffffffff) ||\n                  (puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0)) {\n            puVar17 = (uint *)((int)local_30 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            local_30 = (uint *)((iVar22 - (int)puVar7) + 1);\n            puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);\n          }\n          bVar2 = puVar20 < (uint *)0x2;\n          if ((puVar20 < puVar17) && (bVar2 = puVar20 < (uint *)0x2, puVar23 < param_4)) {\n            iVar22 = (int)puVar21 - (int)puVar25;\n            puVar15 = param_4;\n            if (puVar23 < (uint *)0x40) {\n              puVar9 = puVar23 + 0x10;\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) {\nLAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (puVar9 < param_4) {\n                puVar15 = puVar9;\n              }\n            }\n            else {\n              puVar9 = (uint *)((int)puVar23 * 2);\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;\nLAB_00014154:\n              if (puVar23 < puVar9) goto LAB_00013f98;\n            }\n            if (((int)puVar15 - (int)param_3 < 0) &&\n               (puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6)) goto LAB_000140b0;\n            puVar20 = (uint *)((int)puVar15 - iVar22);\n            puVar13 = puVar15;\n            puVar9 = puVar15;\n            puVar8 = (undefined1 *)(*(code *)PTR_realloc_0002b2b8)(puVar25);\n            if (puVar8 == (undefined1 *)0x0) goto LAB_000140b0;\n            puVar21 = puVar8 + iVar22;\n            bVar2 = puVar20 < (uint *)0x2;\n            puVar23 = puVar15;\n          }\n          if (!bVar2) {\n            puVar17 = (uint *)((int)puVar20 + -1);\n            if (local_30 <= (uint *)((int)puVar20 + -1)) {\n              puVar17 = local_30;\n            }\n            if (puVar7 == (uint *)0x0) {\n              *puVar21 = (char)local_48;\n            }\n            else {\n              puVar13 = puVar7;\n              puVar15 = puVar17;\n              (*(code *)PTR_memcpy_0002b2fc)(puVar21);\n            }\n            puVar21 = puVar21 + (int)puVar17;\n            puVar20 = (uint *)((int)puVar20 - (int)puVar17);\n          }\n          puVar25 = puVar8;\n          if ((puVar7 != (uint *)0x0) &&\n             (puVar13 = local_30, iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0))\n          goto LAB_000140b0;\n        } while (!bVar3);\n        *puVar21 = 0;\n        *param_1 = puVar8;\n        puVar9 = (uint *)(puVar21 + -(int)(puVar8 + (int)param_3));\n        *param_2 = (uint)puVar23;\n        if (puVar9 == (uint *)0x0) {\n          puVar9 = (uint *)0xffffffff;\n        }\n        goto LAB_000140c0;\n      }\n    }\nLAB_000140b0:\n    puVar15 = puVar9;\n    *param_1 = puVar25;\n    puVar9 = (uint *)0xffffffff;\n    *param_2 = (uint)puVar23;\n  }" ({ "{") (labeled_statement "LAB_00013ed4:\n    puVar9 = puVar15;" (statement_identifier "LAB_00013ed4") (: ":") (expression_statement "puVar9 = puVar15;" (assignment_expression "puVar9 = puVar15" (identifier "puVar9") (= "=") (identifier "puVar15")) (; ";"))) (if_statement "if (param_3 <= puVar23) {\n      puVar20 = (uint *)((int)puVar23 - (int)param_3);\n      puVar21 = puVar25 + (int)param_3;\n      if ((puVar20 != (uint *)0x0) || (puVar23 < param_4)) {\n        puVar24 = param_6;\n        if ((param_5 != (uint *)0xffffffff) && (puVar24 = param_5, param_6 == (uint *)0xffffffff)) {\n          param_6 = param_5;\n        }\n        puVar6 = param_3 + -0x20000000;\n        do {\n          puVar13 = (uint *)0xffffffd0;\n          puVar7 = (uint *)freadptr(param_7);\n          puVar8 = puVar25;\n          if (puVar7 == (uint *)0x0) {\n            pbVar11 = *(byte **)(param_7 + 4);\n            if (pbVar11 < *(byte **)(param_7 + 8)) {\n              *(byte **)(param_7 + 4) = pbVar11 + 1;\n              local_48 = (uint *)(uint)*pbVar11;\n            }\n            else {\n              local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);\n              if (local_48 == (uint *)0xffffffff) {\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = puVar24 == local_48 || param_6 == local_48;\n            puVar17 = (uint *)0x2;\n            local_30 = (uint *)0x1;\n          }\n          else if ((puVar24 == (uint *)0xffffffff) ||\n                  (puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0)) {\n            puVar17 = (uint *)((int)local_30 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            local_30 = (uint *)((iVar22 - (int)puVar7) + 1);\n            puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);\n          }\n          bVar2 = puVar20 < (uint *)0x2;\n          if ((puVar20 < puVar17) && (bVar2 = puVar20 < (uint *)0x2, puVar23 < param_4)) {\n            iVar22 = (int)puVar21 - (int)puVar25;\n            puVar15 = param_4;\n            if (puVar23 < (uint *)0x40) {\n              puVar9 = puVar23 + 0x10;\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) {\nLAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (puVar9 < param_4) {\n                puVar15 = puVar9;\n              }\n            }\n            else {\n              puVar9 = (uint *)((int)puVar23 * 2);\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;\nLAB_00014154:\n              if (puVar23 < puVar9) goto LAB_00013f98;\n            }\n            if (((int)puVar15 - (int)param_3 < 0) &&\n               (puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6)) goto LAB_000140b0;\n            puVar20 = (uint *)((int)puVar15 - iVar22);\n            puVar13 = puVar15;\n            puVar9 = puVar15;\n            puVar8 = (undefined1 *)(*(code *)PTR_realloc_0002b2b8)(puVar25);\n            if (puVar8 == (undefined1 *)0x0) goto LAB_000140b0;\n            puVar21 = puVar8 + iVar22;\n            bVar2 = puVar20 < (uint *)0x2;\n            puVar23 = puVar15;\n          }\n          if (!bVar2) {\n            puVar17 = (uint *)((int)puVar20 + -1);\n            if (local_30 <= (uint *)((int)puVar20 + -1)) {\n              puVar17 = local_30;\n            }\n            if (puVar7 == (uint *)0x0) {\n              *puVar21 = (char)local_48;\n            }\n            else {\n              puVar13 = puVar7;\n              puVar15 = puVar17;\n              (*(code *)PTR_memcpy_0002b2fc)(puVar21);\n            }\n            puVar21 = puVar21 + (int)puVar17;\n            puVar20 = (uint *)((int)puVar20 - (int)puVar17);\n          }\n          puVar25 = puVar8;\n          if ((puVar7 != (uint *)0x0) &&\n             (puVar13 = local_30, iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0))\n          goto LAB_000140b0;\n        } while (!bVar3);\n        *puVar21 = 0;\n        *param_1 = puVar8;\n        puVar9 = (uint *)(puVar21 + -(int)(puVar8 + (int)param_3));\n        *param_2 = (uint)puVar23;\n        if (puVar9 == (uint *)0x0) {\n          puVar9 = (uint *)0xffffffff;\n        }\n        goto LAB_000140c0;\n      }\n    }" (if "if") (parenthesized_expression "(param_3 <= puVar23)" (( "(") (binary_expression "param_3 <= puVar23" (identifier "param_3") (<= "<=") (identifier "puVar23")) () ")")) (compound_statement "{\n      puVar20 = (uint *)((int)puVar23 - (int)param_3);\n      puVar21 = puVar25 + (int)param_3;\n      if ((puVar20 != (uint *)0x0) || (puVar23 < param_4)) {\n        puVar24 = param_6;\n        if ((param_5 != (uint *)0xffffffff) && (puVar24 = param_5, param_6 == (uint *)0xffffffff)) {\n          param_6 = param_5;\n        }\n        puVar6 = param_3 + -0x20000000;\n        do {\n          puVar13 = (uint *)0xffffffd0;\n          puVar7 = (uint *)freadptr(param_7);\n          puVar8 = puVar25;\n          if (puVar7 == (uint *)0x0) {\n            pbVar11 = *(byte **)(param_7 + 4);\n            if (pbVar11 < *(byte **)(param_7 + 8)) {\n              *(byte **)(param_7 + 4) = pbVar11 + 1;\n              local_48 = (uint *)(uint)*pbVar11;\n            }\n            else {\n              local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);\n              if (local_48 == (uint *)0xffffffff) {\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = puVar24 == local_48 || param_6 == local_48;\n            puVar17 = (uint *)0x2;\n            local_30 = (uint *)0x1;\n          }\n          else if ((puVar24 == (uint *)0xffffffff) ||\n                  (puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0)) {\n            puVar17 = (uint *)((int)local_30 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            local_30 = (uint *)((iVar22 - (int)puVar7) + 1);\n            puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);\n          }\n          bVar2 = puVar20 < (uint *)0x2;\n          if ((puVar20 < puVar17) && (bVar2 = puVar20 < (uint *)0x2, puVar23 < param_4)) {\n            iVar22 = (int)puVar21 - (int)puVar25;\n            puVar15 = param_4;\n            if (puVar23 < (uint *)0x40) {\n              puVar9 = puVar23 + 0x10;\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) {\nLAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (puVar9 < param_4) {\n                puVar15 = puVar9;\n              }\n            }\n            else {\n              puVar9 = (uint *)((int)puVar23 * 2);\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;\nLAB_00014154:\n              if (puVar23 < puVar9) goto LAB_00013f98;\n            }\n            if (((int)puVar15 - (int)param_3 < 0) &&\n               (puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6)) goto LAB_000140b0;\n            puVar20 = (uint *)((int)puVar15 - iVar22);\n            puVar13 = puVar15;\n            puVar9 = puVar15;\n            puVar8 = (undefined1 *)(*(code *)PTR_realloc_0002b2b8)(puVar25);\n            if (puVar8 == (undefined1 *)0x0) goto LAB_000140b0;\n            puVar21 = puVar8 + iVar22;\n            bVar2 = puVar20 < (uint *)0x2;\n            puVar23 = puVar15;\n          }\n          if (!bVar2) {\n            puVar17 = (uint *)((int)puVar20 + -1);\n            if (local_30 <= (uint *)((int)puVar20 + -1)) {\n              puVar17 = local_30;\n            }\n            if (puVar7 == (uint *)0x0) {\n              *puVar21 = (char)local_48;\n            }\n            else {\n              puVar13 = puVar7;\n              puVar15 = puVar17;\n              (*(code *)PTR_memcpy_0002b2fc)(puVar21);\n            }\n            puVar21 = puVar21 + (int)puVar17;\n            puVar20 = (uint *)((int)puVar20 - (int)puVar17);\n          }\n          puVar25 = puVar8;\n          if ((puVar7 != (uint *)0x0) &&\n             (puVar13 = local_30, iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0))\n          goto LAB_000140b0;\n        } while (!bVar3);\n        *puVar21 = 0;\n        *param_1 = puVar8;\n        puVar9 = (uint *)(puVar21 + -(int)(puVar8 + (int)param_3));\n        *param_2 = (uint)puVar23;\n        if (puVar9 == (uint *)0x0) {\n          puVar9 = (uint *)0xffffffff;\n        }\n        goto LAB_000140c0;\n      }\n    }" ({ "{") (expression_statement "puVar20 = (uint *)((int)puVar23 - (int)param_3);" (assignment_expression "puVar20 = (uint *)((int)puVar23 - (int)param_3)" (identifier "puVar20") (= "=") (cast_expression "(uint *)((int)puVar23 - (int)param_3)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar23 - (int)param_3)" (( "(") (binary_expression "(int)puVar23 - (int)param_3" (cast_expression "(int)puVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar23")) (- "-") (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3"))) () ")")))) (; ";")) (expression_statement "puVar21 = puVar25 + (int)param_3;" (assignment_expression "puVar21 = puVar25 + (int)param_3" (identifier "puVar21") (= "=") (binary_expression "puVar25 + (int)param_3" (identifier "puVar25") (+ "+") (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")))) (; ";")) (if_statement "if ((puVar20 != (uint *)0x0) || (puVar23 < param_4)) {\n        puVar24 = param_6;\n        if ((param_5 != (uint *)0xffffffff) && (puVar24 = param_5, param_6 == (uint *)0xffffffff)) {\n          param_6 = param_5;\n        }\n        puVar6 = param_3 + -0x20000000;\n        do {\n          puVar13 = (uint *)0xffffffd0;\n          puVar7 = (uint *)freadptr(param_7);\n          puVar8 = puVar25;\n          if (puVar7 == (uint *)0x0) {\n            pbVar11 = *(byte **)(param_7 + 4);\n            if (pbVar11 < *(byte **)(param_7 + 8)) {\n              *(byte **)(param_7 + 4) = pbVar11 + 1;\n              local_48 = (uint *)(uint)*pbVar11;\n            }\n            else {\n              local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);\n              if (local_48 == (uint *)0xffffffff) {\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = puVar24 == local_48 || param_6 == local_48;\n            puVar17 = (uint *)0x2;\n            local_30 = (uint *)0x1;\n          }\n          else if ((puVar24 == (uint *)0xffffffff) ||\n                  (puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0)) {\n            puVar17 = (uint *)((int)local_30 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            local_30 = (uint *)((iVar22 - (int)puVar7) + 1);\n            puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);\n          }\n          bVar2 = puVar20 < (uint *)0x2;\n          if ((puVar20 < puVar17) && (bVar2 = puVar20 < (uint *)0x2, puVar23 < param_4)) {\n            iVar22 = (int)puVar21 - (int)puVar25;\n            puVar15 = param_4;\n            if (puVar23 < (uint *)0x40) {\n              puVar9 = puVar23 + 0x10;\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) {\nLAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (puVar9 < param_4) {\n                puVar15 = puVar9;\n              }\n            }\n            else {\n              puVar9 = (uint *)((int)puVar23 * 2);\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;\nLAB_00014154:\n              if (puVar23 < puVar9) goto LAB_00013f98;\n            }\n            if (((int)puVar15 - (int)param_3 < 0) &&\n               (puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6)) goto LAB_000140b0;\n            puVar20 = (uint *)((int)puVar15 - iVar22);\n            puVar13 = puVar15;\n            puVar9 = puVar15;\n            puVar8 = (undefined1 *)(*(code *)PTR_realloc_0002b2b8)(puVar25);\n            if (puVar8 == (undefined1 *)0x0) goto LAB_000140b0;\n            puVar21 = puVar8 + iVar22;\n            bVar2 = puVar20 < (uint *)0x2;\n            puVar23 = puVar15;\n          }\n          if (!bVar2) {\n            puVar17 = (uint *)((int)puVar20 + -1);\n            if (local_30 <= (uint *)((int)puVar20 + -1)) {\n              puVar17 = local_30;\n            }\n            if (puVar7 == (uint *)0x0) {\n              *puVar21 = (char)local_48;\n            }\n            else {\n              puVar13 = puVar7;\n              puVar15 = puVar17;\n              (*(code *)PTR_memcpy_0002b2fc)(puVar21);\n            }\n            puVar21 = puVar21 + (int)puVar17;\n            puVar20 = (uint *)((int)puVar20 - (int)puVar17);\n          }\n          puVar25 = puVar8;\n          if ((puVar7 != (uint *)0x0) &&\n             (puVar13 = local_30, iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0))\n          goto LAB_000140b0;\n        } while (!bVar3);\n        *puVar21 = 0;\n        *param_1 = puVar8;\n        puVar9 = (uint *)(puVar21 + -(int)(puVar8 + (int)param_3));\n        *param_2 = (uint)puVar23;\n        if (puVar9 == (uint *)0x0) {\n          puVar9 = (uint *)0xffffffff;\n        }\n        goto LAB_000140c0;\n      }" (if "if") (parenthesized_expression "((puVar20 != (uint *)0x0) || (puVar23 < param_4))" (( "(") (binary_expression "(puVar20 != (uint *)0x0) || (puVar23 < param_4)" (parenthesized_expression "(puVar20 != (uint *)0x0)" (( "(") (binary_expression "puVar20 != (uint *)0x0" (identifier "puVar20") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(puVar23 < param_4)" (( "(") (binary_expression "puVar23 < param_4" (identifier "puVar23") (< "<") (identifier "param_4")) () ")"))) () ")")) (compound_statement "{\n        puVar24 = param_6;\n        if ((param_5 != (uint *)0xffffffff) && (puVar24 = param_5, param_6 == (uint *)0xffffffff)) {\n          param_6 = param_5;\n        }\n        puVar6 = param_3 + -0x20000000;\n        do {\n          puVar13 = (uint *)0xffffffd0;\n          puVar7 = (uint *)freadptr(param_7);\n          puVar8 = puVar25;\n          if (puVar7 == (uint *)0x0) {\n            pbVar11 = *(byte **)(param_7 + 4);\n            if (pbVar11 < *(byte **)(param_7 + 8)) {\n              *(byte **)(param_7 + 4) = pbVar11 + 1;\n              local_48 = (uint *)(uint)*pbVar11;\n            }\n            else {\n              local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);\n              if (local_48 == (uint *)0xffffffff) {\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = puVar24 == local_48 || param_6 == local_48;\n            puVar17 = (uint *)0x2;\n            local_30 = (uint *)0x1;\n          }\n          else if ((puVar24 == (uint *)0xffffffff) ||\n                  (puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0)) {\n            puVar17 = (uint *)((int)local_30 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            local_30 = (uint *)((iVar22 - (int)puVar7) + 1);\n            puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);\n          }\n          bVar2 = puVar20 < (uint *)0x2;\n          if ((puVar20 < puVar17) && (bVar2 = puVar20 < (uint *)0x2, puVar23 < param_4)) {\n            iVar22 = (int)puVar21 - (int)puVar25;\n            puVar15 = param_4;\n            if (puVar23 < (uint *)0x40) {\n              puVar9 = puVar23 + 0x10;\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) {\nLAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (puVar9 < param_4) {\n                puVar15 = puVar9;\n              }\n            }\n            else {\n              puVar9 = (uint *)((int)puVar23 * 2);\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;\nLAB_00014154:\n              if (puVar23 < puVar9) goto LAB_00013f98;\n            }\n            if (((int)puVar15 - (int)param_3 < 0) &&\n               (puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6)) goto LAB_000140b0;\n            puVar20 = (uint *)((int)puVar15 - iVar22);\n            puVar13 = puVar15;\n            puVar9 = puVar15;\n            puVar8 = (undefined1 *)(*(code *)PTR_realloc_0002b2b8)(puVar25);\n            if (puVar8 == (undefined1 *)0x0) goto LAB_000140b0;\n            puVar21 = puVar8 + iVar22;\n            bVar2 = puVar20 < (uint *)0x2;\n            puVar23 = puVar15;\n          }\n          if (!bVar2) {\n            puVar17 = (uint *)((int)puVar20 + -1);\n            if (local_30 <= (uint *)((int)puVar20 + -1)) {\n              puVar17 = local_30;\n            }\n            if (puVar7 == (uint *)0x0) {\n              *puVar21 = (char)local_48;\n            }\n            else {\n              puVar13 = puVar7;\n              puVar15 = puVar17;\n              (*(code *)PTR_memcpy_0002b2fc)(puVar21);\n            }\n            puVar21 = puVar21 + (int)puVar17;\n            puVar20 = (uint *)((int)puVar20 - (int)puVar17);\n          }\n          puVar25 = puVar8;\n          if ((puVar7 != (uint *)0x0) &&\n             (puVar13 = local_30, iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0))\n          goto LAB_000140b0;\n        } while (!bVar3);\n        *puVar21 = 0;\n        *param_1 = puVar8;\n        puVar9 = (uint *)(puVar21 + -(int)(puVar8 + (int)param_3));\n        *param_2 = (uint)puVar23;\n        if (puVar9 == (uint *)0x0) {\n          puVar9 = (uint *)0xffffffff;\n        }\n        goto LAB_000140c0;\n      }" ({ "{") (expression_statement "puVar24 = param_6;" (assignment_expression "puVar24 = param_6" (identifier "puVar24") (= "=") (identifier "param_6")) (; ";")) (if_statement "if ((param_5 != (uint *)0xffffffff) && (puVar24 = param_5, param_6 == (uint *)0xffffffff)) {\n          param_6 = param_5;\n        }" (if "if") (parenthesized_expression "((param_5 != (uint *)0xffffffff) && (puVar24 = param_5, param_6 == (uint *)0xffffffff))" (( "(") (binary_expression "(param_5 != (uint *)0xffffffff) && (puVar24 = param_5, param_6 == (uint *)0xffffffff)" (parenthesized_expression "(param_5 != (uint *)0xffffffff)" (( "(") (binary_expression "param_5 != (uint *)0xffffffff" (identifier "param_5") (!= "!=") (cast_expression "(uint *)0xffffffff" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) () ")")) (&& "&&") (parenthesized_expression "(puVar24 = param_5, param_6 == (uint *)0xffffffff)" (( "(") (comma_expression "puVar24 = param_5, param_6 == (uint *)0xffffffff" (assignment_expression "puVar24 = param_5" (identifier "puVar24") (= "=") (identifier "param_5")) (, ",") (binary_expression "param_6 == (uint *)0xffffffff" (identifier "param_6") (== "==") (cast_expression "(uint *)0xffffffff" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff")))) () ")"))) () ")")) (compound_statement "{\n          param_6 = param_5;\n        }" ({ "{") (expression_statement "param_6 = param_5;" (assignment_expression "param_6 = param_5" (identifier "param_6") (= "=") (identifier "param_5")) (; ";")) (} "}"))) (expression_statement "puVar6 = param_3 + -0x20000000;" (assignment_expression "puVar6 = param_3 + -0x20000000" (identifier "puVar6") (= "=") (binary_expression "param_3 + -0x20000000" (identifier "param_3") (+ "+") (number_literal "-0x20000000"))) (; ";")) (do_statement "do {\n          puVar13 = (uint *)0xffffffd0;\n          puVar7 = (uint *)freadptr(param_7);\n          puVar8 = puVar25;\n          if (puVar7 == (uint *)0x0) {\n            pbVar11 = *(byte **)(param_7 + 4);\n            if (pbVar11 < *(byte **)(param_7 + 8)) {\n              *(byte **)(param_7 + 4) = pbVar11 + 1;\n              local_48 = (uint *)(uint)*pbVar11;\n            }\n            else {\n              local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);\n              if (local_48 == (uint *)0xffffffff) {\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = puVar24 == local_48 || param_6 == local_48;\n            puVar17 = (uint *)0x2;\n            local_30 = (uint *)0x1;\n          }\n          else if ((puVar24 == (uint *)0xffffffff) ||\n                  (puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0)) {\n            puVar17 = (uint *)((int)local_30 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            local_30 = (uint *)((iVar22 - (int)puVar7) + 1);\n            puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);\n          }\n          bVar2 = puVar20 < (uint *)0x2;\n          if ((puVar20 < puVar17) && (bVar2 = puVar20 < (uint *)0x2, puVar23 < param_4)) {\n            iVar22 = (int)puVar21 - (int)puVar25;\n            puVar15 = param_4;\n            if (puVar23 < (uint *)0x40) {\n              puVar9 = puVar23 + 0x10;\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) {\nLAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (puVar9 < param_4) {\n                puVar15 = puVar9;\n              }\n            }\n            else {\n              puVar9 = (uint *)((int)puVar23 * 2);\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;\nLAB_00014154:\n              if (puVar23 < puVar9) goto LAB_00013f98;\n            }\n            if (((int)puVar15 - (int)param_3 < 0) &&\n               (puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6)) goto LAB_000140b0;\n            puVar20 = (uint *)((int)puVar15 - iVar22);\n            puVar13 = puVar15;\n            puVar9 = puVar15;\n            puVar8 = (undefined1 *)(*(code *)PTR_realloc_0002b2b8)(puVar25);\n            if (puVar8 == (undefined1 *)0x0) goto LAB_000140b0;\n            puVar21 = puVar8 + iVar22;\n            bVar2 = puVar20 < (uint *)0x2;\n            puVar23 = puVar15;\n          }\n          if (!bVar2) {\n            puVar17 = (uint *)((int)puVar20 + -1);\n            if (local_30 <= (uint *)((int)puVar20 + -1)) {\n              puVar17 = local_30;\n            }\n            if (puVar7 == (uint *)0x0) {\n              *puVar21 = (char)local_48;\n            }\n            else {\n              puVar13 = puVar7;\n              puVar15 = puVar17;\n              (*(code *)PTR_memcpy_0002b2fc)(puVar21);\n            }\n            puVar21 = puVar21 + (int)puVar17;\n            puVar20 = (uint *)((int)puVar20 - (int)puVar17);\n          }\n          puVar25 = puVar8;\n          if ((puVar7 != (uint *)0x0) &&\n             (puVar13 = local_30, iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0))\n          goto LAB_000140b0;\n        } while (!bVar3);" (do "do") (compound_statement "{\n          puVar13 = (uint *)0xffffffd0;\n          puVar7 = (uint *)freadptr(param_7);\n          puVar8 = puVar25;\n          if (puVar7 == (uint *)0x0) {\n            pbVar11 = *(byte **)(param_7 + 4);\n            if (pbVar11 < *(byte **)(param_7 + 8)) {\n              *(byte **)(param_7 + 4) = pbVar11 + 1;\n              local_48 = (uint *)(uint)*pbVar11;\n            }\n            else {\n              local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);\n              if (local_48 == (uint *)0xffffffff) {\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = puVar24 == local_48 || param_6 == local_48;\n            puVar17 = (uint *)0x2;\n            local_30 = (uint *)0x1;\n          }\n          else if ((puVar24 == (uint *)0xffffffff) ||\n                  (puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0)) {\n            puVar17 = (uint *)((int)local_30 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            local_30 = (uint *)((iVar22 - (int)puVar7) + 1);\n            puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);\n          }\n          bVar2 = puVar20 < (uint *)0x2;\n          if ((puVar20 < puVar17) && (bVar2 = puVar20 < (uint *)0x2, puVar23 < param_4)) {\n            iVar22 = (int)puVar21 - (int)puVar25;\n            puVar15 = param_4;\n            if (puVar23 < (uint *)0x40) {\n              puVar9 = puVar23 + 0x10;\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) {\nLAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (puVar9 < param_4) {\n                puVar15 = puVar9;\n              }\n            }\n            else {\n              puVar9 = (uint *)((int)puVar23 * 2);\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;\nLAB_00014154:\n              if (puVar23 < puVar9) goto LAB_00013f98;\n            }\n            if (((int)puVar15 - (int)param_3 < 0) &&\n               (puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6)) goto LAB_000140b0;\n            puVar20 = (uint *)((int)puVar15 - iVar22);\n            puVar13 = puVar15;\n            puVar9 = puVar15;\n            puVar8 = (undefined1 *)(*(code *)PTR_realloc_0002b2b8)(puVar25);\n            if (puVar8 == (undefined1 *)0x0) goto LAB_000140b0;\n            puVar21 = puVar8 + iVar22;\n            bVar2 = puVar20 < (uint *)0x2;\n            puVar23 = puVar15;\n          }\n          if (!bVar2) {\n            puVar17 = (uint *)((int)puVar20 + -1);\n            if (local_30 <= (uint *)((int)puVar20 + -1)) {\n              puVar17 = local_30;\n            }\n            if (puVar7 == (uint *)0x0) {\n              *puVar21 = (char)local_48;\n            }\n            else {\n              puVar13 = puVar7;\n              puVar15 = puVar17;\n              (*(code *)PTR_memcpy_0002b2fc)(puVar21);\n            }\n            puVar21 = puVar21 + (int)puVar17;\n            puVar20 = (uint *)((int)puVar20 - (int)puVar17);\n          }\n          puVar25 = puVar8;\n          if ((puVar7 != (uint *)0x0) &&\n             (puVar13 = local_30, iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0))\n          goto LAB_000140b0;\n        }" ({ "{") (expression_statement "puVar13 = (uint *)0xffffffd0;" (assignment_expression "puVar13 = (uint *)0xffffffd0" (identifier "puVar13") (= "=") (cast_expression "(uint *)0xffffffd0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffd0"))) (; ";")) (expression_statement "puVar7 = (uint *)freadptr(param_7);" (assignment_expression "puVar7 = (uint *)freadptr(param_7)" (identifier "puVar7") (= "=") (cast_expression "(uint *)freadptr(param_7)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "freadptr(param_7)" (identifier "freadptr") (argument_list "(param_7)" (( "(") (identifier "param_7") () ")"))))) (; ";")) (expression_statement "puVar8 = puVar25;" (assignment_expression "puVar8 = puVar25" (identifier "puVar8") (= "=") (identifier "puVar25")) (; ";")) (if_statement "if (puVar7 == (uint *)0x0) {\n            pbVar11 = *(byte **)(param_7 + 4);\n            if (pbVar11 < *(byte **)(param_7 + 8)) {\n              *(byte **)(param_7 + 4) = pbVar11 + 1;\n              local_48 = (uint *)(uint)*pbVar11;\n            }\n            else {\n              local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);\n              if (local_48 == (uint *)0xffffffff) {\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = puVar24 == local_48 || param_6 == local_48;\n            puVar17 = (uint *)0x2;\n            local_30 = (uint *)0x1;\n          }\n          else if ((puVar24 == (uint *)0xffffffff) ||\n                  (puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0)) {\n            puVar17 = (uint *)((int)local_30 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            local_30 = (uint *)((iVar22 - (int)puVar7) + 1);\n            puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);\n          }" (if "if") (parenthesized_expression "(puVar7 == (uint *)0x0)" (( "(") (binary_expression "puVar7 == (uint *)0x0" (identifier "puVar7") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            pbVar11 = *(byte **)(param_7 + 4);\n            if (pbVar11 < *(byte **)(param_7 + 8)) {\n              *(byte **)(param_7 + 4) = pbVar11 + 1;\n              local_48 = (uint *)(uint)*pbVar11;\n            }\n            else {\n              local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);\n              if (local_48 == (uint *)0xffffffff) {\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }\n            }\n            bVar3 = puVar24 == local_48 || param_6 == local_48;\n            puVar17 = (uint *)0x2;\n            local_30 = (uint *)0x1;\n          }" ({ "{") (expression_statement "pbVar11 = *(byte **)(param_7 + 4);" (assignment_expression "pbVar11 = *(byte **)(param_7 + 4)" (identifier "pbVar11") (= "=") (pointer_expression "*(byte **)(param_7 + 4)" (* "*") (cast_expression "(byte **)(param_7 + 4)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_7 + 4)" (( "(") (binary_expression "param_7 + 4" (identifier "param_7") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (pbVar11 < *(byte **)(param_7 + 8)) {\n              *(byte **)(param_7 + 4) = pbVar11 + 1;\n              local_48 = (uint *)(uint)*pbVar11;\n            }\n            else {\n              local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);\n              if (local_48 == (uint *)0xffffffff) {\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }\n            }" (if "if") (parenthesized_expression "(pbVar11 < *(byte **)(param_7 + 8))" (( "(") (binary_expression "pbVar11 < *(byte **)(param_7 + 8)" (identifier "pbVar11") (< "<") (pointer_expression "*(byte **)(param_7 + 8)" (* "*") (cast_expression "(byte **)(param_7 + 8)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_7 + 8)" (( "(") (binary_expression "param_7 + 8" (identifier "param_7") (+ "+") (number_literal "8")) () ")"))))) () ")")) (compound_statement "{\n              *(byte **)(param_7 + 4) = pbVar11 + 1;\n              local_48 = (uint *)(uint)*pbVar11;\n            }" ({ "{") (expression_statement "*(byte **)(param_7 + 4) = pbVar11 + 1;" (assignment_expression "*(byte **)(param_7 + 4) = pbVar11 + 1" (pointer_expression "*(byte **)(param_7 + 4)" (* "*") (cast_expression "(byte **)(param_7 + 4)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_7 + 4)" (( "(") (binary_expression "param_7 + 4" (identifier "param_7") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "pbVar11 + 1" (identifier "pbVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_48 = (uint *)(uint)*pbVar11;" (assignment_expression "local_48 = (uint *)(uint)*pbVar11" (identifier "local_48") (= "=") (binary_expression "(uint *)(uint)*pbVar11" (cast_expression "(uint *)(uint)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (identifier "pbVar11"))) (; ";")) (} "}")) (else_clause "else {\n              local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);\n              if (local_48 == (uint *)0xffffffff) {\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }\n            }" (else "else") (compound_statement "{\n              local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);\n              if (local_48 == (uint *)0xffffffff) {\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }\n            }" ({ "{") (expression_statement "local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);" (assignment_expression "local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7)" (identifier "local_48") (= "=") (cast_expression "(uint *)(*(code *)PTR___uflow_0002b264)(param_7)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___uflow_0002b264)(param_7)" (parenthesized_expression "(*(code *)PTR___uflow_0002b264)" (( "(") (pointer_expression "*(code *)PTR___uflow_0002b264" (* "*") (cast_expression "(code *)PTR___uflow_0002b264" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___uflow_0002b264"))) () ")")) (argument_list "(param_7)" (( "(") (identifier "param_7") () ")"))))) (; ";")) (if_statement "if (local_48 == (uint *)0xffffffff) {\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }" (if "if") (parenthesized_expression "(local_48 == (uint *)0xffffffff)" (( "(") (binary_expression "local_48 == (uint *)0xffffffff" (identifier "local_48") (== "==") (cast_expression "(uint *)0xffffffff" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) () ")")) (compound_statement "{\n                puVar9 = puVar15;\n                if (puVar21 == puVar25) goto LAB_000140b0;\n                break;\n              }" ({ "{") (expression_statement "puVar9 = puVar15;" (assignment_expression "puVar9 = puVar15" (identifier "puVar9") (= "=") (identifier "puVar15")) (; ";")) (if_statement "if (puVar21 == puVar25) goto LAB_000140b0;" (if "if") (parenthesized_expression "(puVar21 == puVar25)" (( "(") (binary_expression "puVar21 == puVar25" (identifier "puVar21") (== "==") (identifier "puVar25")) () ")")) (goto_statement "goto LAB_000140b0;" (goto "goto") (statement_identifier "LAB_000140b0") (; ";"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (} "}")))) (expression_statement "bVar3 = puVar24 == local_48 || param_6 == local_48;" (assignment_expression "bVar3 = puVar24 == local_48 || param_6 == local_48" (identifier "bVar3") (= "=") (binary_expression "puVar24 == local_48 || param_6 == local_48" (binary_expression "puVar24 == local_48" (identifier "puVar24") (== "==") (identifier "local_48")) (|| "||") (binary_expression "param_6 == local_48" (identifier "param_6") (== "==") (identifier "local_48")))) (; ";")) (expression_statement "puVar17 = (uint *)0x2;" (assignment_expression "puVar17 = (uint *)0x2" (identifier "puVar17") (= "=") (cast_expression "(uint *)0x2" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) (; ";")) (expression_statement "local_30 = (uint *)0x1;" (assignment_expression "local_30 = (uint *)0x1" (identifier "local_30") (= "=") (cast_expression "(uint *)0x1" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (} "}")) (else_clause "else if ((puVar24 == (uint *)0xffffffff) ||\n                  (puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0)) {\n            puVar17 = (uint *)((int)local_30 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            local_30 = (uint *)((iVar22 - (int)puVar7) + 1);\n            puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);\n          }" (else "else") (if_statement "if ((puVar24 == (uint *)0xffffffff) ||\n                  (puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0)) {\n            puVar17 = (uint *)((int)local_30 + 1);\n            bVar3 = false;\n          }\n          else {\n            bVar3 = true;\n            local_30 = (uint *)((iVar22 - (int)puVar7) + 1);\n            puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);\n          }" (if "if") (parenthesized_expression "((puVar24 == (uint *)0xffffffff) ||\n                  (puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0))" (( "(") (binary_expression "(puVar24 == (uint *)0xffffffff) ||\n                  (puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0)" (parenthesized_expression "(puVar24 == (uint *)0xffffffff)" (( "(") (binary_expression "puVar24 == (uint *)0xffffffff" (identifier "puVar24") (== "==") (cast_expression "(uint *)0xffffffff" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) () ")")) (|| "||") (parenthesized_expression "(puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0)" (( "(") (comma_expression "puVar13 = puVar24, puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0" (assignment_expression "puVar13 = puVar24" (identifier "puVar13") (= "=") (identifier "puVar24")) (, ",") (comma_expression "puVar15 = param_6,\n                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0" (assignment_expression "puVar15 = param_6" (identifier "puVar15") (= "=") (identifier "param_6")) (, ",") (comma_expression "iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0" (assignment_expression "iVar22 = memchr2(puVar7,puVar24,param_6,local_30)" (identifier "iVar22") (= "=") (call_expression "memchr2(puVar7,puVar24,param_6,local_30)" (identifier "memchr2") (argument_list "(puVar7,puVar24,param_6,local_30)" (( "(") (identifier "puVar7") (, ",") (identifier "puVar24") (, ",") (identifier "param_6") (, ",") (identifier "local_30") () ")")))) (, ",") (binary_expression "iVar22 == 0" (identifier "iVar22") (== "==") (number_literal "0"))))) () ")"))) () ")")) (compound_statement "{\n            puVar17 = (uint *)((int)local_30 + 1);\n            bVar3 = false;\n          }" ({ "{") (expression_statement "puVar17 = (uint *)((int)local_30 + 1);" (assignment_expression "puVar17 = (uint *)((int)local_30 + 1)" (identifier "puVar17") (= "=") (cast_expression "(uint *)((int)local_30 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_30 + 1)" (( "(") (binary_expression "(int)local_30 + 1" (cast_expression "(int)local_30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_30")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" (identifier "bVar3") (= "=") (false "false")) (; ";")) (} "}")) (else_clause "else {\n            bVar3 = true;\n            local_30 = (uint *)((iVar22 - (int)puVar7) + 1);\n            puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);\n          }" (else "else") (compound_statement "{\n            bVar3 = true;\n            local_30 = (uint *)((iVar22 - (int)puVar7) + 1);\n            puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);\n          }" ({ "{") (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" (identifier "bVar3") (= "=") (true "true")) (; ";")) (expression_statement "local_30 = (uint *)((iVar22 - (int)puVar7) + 1);" (assignment_expression "local_30 = (uint *)((iVar22 - (int)puVar7) + 1)" (identifier "local_30") (= "=") (cast_expression "(uint *)((iVar22 - (int)puVar7) + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((iVar22 - (int)puVar7) + 1)" (( "(") (binary_expression "(iVar22 - (int)puVar7) + 1" (parenthesized_expression "(iVar22 - (int)puVar7)" (( "(") (binary_expression "iVar22 - (int)puVar7" (identifier "iVar22") (- "-") (cast_expression "(int)puVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar7"))) () ")")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);" (assignment_expression "puVar17 = (uint *)((iVar22 - (int)puVar7) + 2)" (identifier "puVar17") (= "=") (cast_expression "(uint *)((iVar22 - (int)puVar7) + 2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((iVar22 - (int)puVar7) + 2)" (( "(") (binary_expression "(iVar22 - (int)puVar7) + 2" (parenthesized_expression "(iVar22 - (int)puVar7)" (( "(") (binary_expression "iVar22 - (int)puVar7" (identifier "iVar22") (- "-") (cast_expression "(int)puVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar7"))) () ")")) (+ "+") (number_literal "2")) () ")")))) (; ";")) (} "}")))))) (expression_statement "bVar2 = puVar20 < (uint *)0x2;" (assignment_expression "bVar2 = puVar20 < (uint *)0x2" (identifier "bVar2") (= "=") (binary_expression "puVar20 < (uint *)0x2" (identifier "puVar20") (< "<") (cast_expression "(uint *)0x2" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2")))) (; ";")) (if_statement "if ((puVar20 < puVar17) && (bVar2 = puVar20 < (uint *)0x2, puVar23 < param_4)) {\n            iVar22 = (int)puVar21 - (int)puVar25;\n            puVar15 = param_4;\n            if (puVar23 < (uint *)0x40) {\n              puVar9 = puVar23 + 0x10;\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) {\nLAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (puVar9 < param_4) {\n                puVar15 = puVar9;\n              }\n            }\n            else {\n              puVar9 = (uint *)((int)puVar23 * 2);\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;\nLAB_00014154:\n              if (puVar23 < puVar9) goto LAB_00013f98;\n            }\n            if (((int)puVar15 - (int)param_3 < 0) &&\n               (puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6)) goto LAB_000140b0;\n            puVar20 = (uint *)((int)puVar15 - iVar22);\n            puVar13 = puVar15;\n            puVar9 = puVar15;\n            puVar8 = (undefined1 *)(*(code *)PTR_realloc_0002b2b8)(puVar25);\n            if (puVar8 == (undefined1 *)0x0) goto LAB_000140b0;\n            puVar21 = puVar8 + iVar22;\n            bVar2 = puVar20 < (uint *)0x2;\n            puVar23 = puVar15;\n          }" (if "if") (parenthesized_expression "((puVar20 < puVar17) && (bVar2 = puVar20 < (uint *)0x2, puVar23 < param_4))" (( "(") (binary_expression "(puVar20 < puVar17) && (bVar2 = puVar20 < (uint *)0x2, puVar23 < param_4)" (parenthesized_expression "(puVar20 < puVar17)" (( "(") (binary_expression "puVar20 < puVar17" (identifier "puVar20") (< "<") (identifier "puVar17")) () ")")) (&& "&&") (parenthesized_expression "(bVar2 = puVar20 < (uint *)0x2, puVar23 < param_4)" (( "(") (comma_expression "bVar2 = puVar20 < (uint *)0x2, puVar23 < param_4" (assignment_expression "bVar2 = puVar20 < (uint *)0x2" (identifier "bVar2") (= "=") (binary_expression "puVar20 < (uint *)0x2" (identifier "puVar20") (< "<") (cast_expression "(uint *)0x2" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2")))) (, ",") (binary_expression "puVar23 < param_4" (identifier "puVar23") (< "<") (identifier "param_4"))) () ")"))) () ")")) (compound_statement "{\n            iVar22 = (int)puVar21 - (int)puVar25;\n            puVar15 = param_4;\n            if (puVar23 < (uint *)0x40) {\n              puVar9 = puVar23 + 0x10;\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) {\nLAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (puVar9 < param_4) {\n                puVar15 = puVar9;\n              }\n            }\n            else {\n              puVar9 = (uint *)((int)puVar23 * 2);\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;\nLAB_00014154:\n              if (puVar23 < puVar9) goto LAB_00013f98;\n            }\n            if (((int)puVar15 - (int)param_3 < 0) &&\n               (puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6)) goto LAB_000140b0;\n            puVar20 = (uint *)((int)puVar15 - iVar22);\n            puVar13 = puVar15;\n            puVar9 = puVar15;\n            puVar8 = (undefined1 *)(*(code *)PTR_realloc_0002b2b8)(puVar25);\n            if (puVar8 == (undefined1 *)0x0) goto LAB_000140b0;\n            puVar21 = puVar8 + iVar22;\n            bVar2 = puVar20 < (uint *)0x2;\n            puVar23 = puVar15;\n          }" ({ "{") (expression_statement "iVar22 = (int)puVar21 - (int)puVar25;" (assignment_expression "iVar22 = (int)puVar21 - (int)puVar25" (identifier "iVar22") (= "=") (binary_expression "(int)puVar21 - (int)puVar25" (cast_expression "(int)puVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar21")) (- "-") (cast_expression "(int)puVar25" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar25")))) (; ";")) (expression_statement "puVar15 = param_4;" (assignment_expression "puVar15 = param_4" (identifier "puVar15") (= "=") (identifier "param_4")) (; ";")) (if_statement "if (puVar23 < (uint *)0x40) {\n              puVar9 = puVar23 + 0x10;\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) {\nLAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (puVar9 < param_4) {\n                puVar15 = puVar9;\n              }\n            }\n            else {\n              puVar9 = (uint *)((int)puVar23 * 2);\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;\nLAB_00014154:\n              if (puVar23 < puVar9) goto LAB_00013f98;\n            }" (if "if") (parenthesized_expression "(puVar23 < (uint *)0x40)" (( "(") (binary_expression "puVar23 < (uint *)0x40" (identifier "puVar23") (< "<") (cast_expression "(uint *)0x40" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x40"))) () ")")) (compound_statement "{\n              puVar9 = puVar23 + 0x10;\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) {\nLAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);\n                goto LAB_00014154;\n              }\nLAB_00013f98:\n              if (puVar9 < param_4) {\n                puVar15 = puVar9;\n              }\n            }" ({ "{") (expression_statement "puVar9 = puVar23 + 0x10;" (assignment_expression "puVar9 = puVar23 + 0x10" (identifier "puVar9") (= "=") (binary_expression "puVar23 + 0x10" (identifier "puVar23") (+ "+") (number_literal "0x10"))) (; ";")) (if_statement "if ((uint *)((int)puVar9 - iVar22) < puVar17) {\nLAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);\n                goto LAB_00014154;\n              }" (if "if") (parenthesized_expression "((uint *)((int)puVar9 - iVar22) < puVar17)" (( "(") (binary_expression "(uint *)((int)puVar9 - iVar22) < puVar17" (cast_expression "(uint *)((int)puVar9 - iVar22)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar9 - iVar22)" (( "(") (binary_expression "(int)puVar9 - iVar22" (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9")) (- "-") (identifier "iVar22")) () ")"))) (< "<") (identifier "puVar17")) () ")")) (compound_statement "{\nLAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);\n                goto LAB_00014154;\n              }" ({ "{") (labeled_statement "LAB_0001414c:\n                puVar9 = (uint *)((int)puVar17 + iVar22);" (statement_identifier "LAB_0001414c") (: ":") (expression_statement "puVar9 = (uint *)((int)puVar17 + iVar22);" (assignment_expression "puVar9 = (uint *)((int)puVar17 + iVar22)" (identifier "puVar9") (= "=") (cast_expression "(uint *)((int)puVar17 + iVar22)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar17 + iVar22)" (( "(") (binary_expression "(int)puVar17 + iVar22" (cast_expression "(int)puVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar17")) (+ "+") (identifier "iVar22")) () ")")))) (; ";"))) (goto_statement "goto LAB_00014154;" (goto "goto") (statement_identifier "LAB_00014154") (; ";")) (} "}"))) (labeled_statement "LAB_00013f98:\n              if (puVar9 < param_4) {\n                puVar15 = puVar9;\n              }" (statement_identifier "LAB_00013f98") (: ":") (if_statement "if (puVar9 < param_4) {\n                puVar15 = puVar9;\n              }" (if "if") (parenthesized_expression "(puVar9 < param_4)" (( "(") (binary_expression "puVar9 < param_4" (identifier "puVar9") (< "<") (identifier "param_4")) () ")")) (compound_statement "{\n                puVar15 = puVar9;\n              }" ({ "{") (expression_statement "puVar15 = puVar9;" (assignment_expression "puVar15 = puVar9" (identifier "puVar15") (= "=") (identifier "puVar9")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n              puVar9 = (uint *)((int)puVar23 * 2);\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;\nLAB_00014154:\n              if (puVar23 < puVar9) goto LAB_00013f98;\n            }" (else "else") (compound_statement "{\n              puVar9 = (uint *)((int)puVar23 * 2);\n              if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;\nLAB_00014154:\n              if (puVar23 < puVar9) goto LAB_00013f98;\n            }" ({ "{") (expression_statement "puVar9 = (uint *)((int)puVar23 * 2);" (assignment_expression "puVar9 = (uint *)((int)puVar23 * 2)" (identifier "puVar9") (= "=") (cast_expression "(uint *)((int)puVar23 * 2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar23 * 2)" (( "(") (binary_expression "(int)puVar23 * 2" (cast_expression "(int)puVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar23")) (* "*") (number_literal "2")) () ")")))) (; ";")) (if_statement "if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;" (if "if") (parenthesized_expression "((uint *)((int)puVar9 - iVar22) < puVar17)" (( "(") (binary_expression "(uint *)((int)puVar9 - iVar22) < puVar17" (cast_expression "(uint *)((int)puVar9 - iVar22)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar9 - iVar22)" (( "(") (binary_expression "(int)puVar9 - iVar22" (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9")) (- "-") (identifier "iVar22")) () ")"))) (< "<") (identifier "puVar17")) () ")")) (goto_statement "goto LAB_0001414c;" (goto "goto") (statement_identifier "LAB_0001414c") (; ";"))) (labeled_statement "LAB_00014154:\n              if (puVar23 < puVar9) goto LAB_00013f98;" (statement_identifier "LAB_00014154") (: ":") (if_statement "if (puVar23 < puVar9) goto LAB_00013f98;" (if "if") (parenthesized_expression "(puVar23 < puVar9)" (( "(") (binary_expression "puVar23 < puVar9" (identifier "puVar23") (< "<") (identifier "puVar9")) () ")")) (goto_statement "goto LAB_00013f98;" (goto "goto") (statement_identifier "LAB_00013f98") (; ";")))) (} "}")))) (if_statement "if (((int)puVar15 - (int)param_3 < 0) &&\n               (puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6)) goto LAB_000140b0;" (if "if") (parenthesized_expression "(((int)puVar15 - (int)param_3 < 0) &&\n               (puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6))" (( "(") (binary_expression "((int)puVar15 - (int)param_3 < 0) &&\n               (puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6)" (parenthesized_expression "((int)puVar15 - (int)param_3 < 0)" (( "(") (binary_expression "(int)puVar15 - (int)param_3 < 0" (binary_expression "(int)puVar15 - (int)param_3" (cast_expression "(int)puVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar15")) (- "-") (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3"))) (< "<") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6)" (( "(") (comma_expression "puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6" (assignment_expression "puVar15 = puVar6" (identifier "puVar15") (= "=") (identifier "puVar6")) (, ",") (comma_expression "puVar9 = puVar6, puVar23 == puVar6" (assignment_expression "puVar9 = puVar6" (identifier "puVar9") (= "=") (identifier "puVar6")) (, ",") (binary_expression "puVar23 == puVar6" (identifier "puVar23") (== "==") (identifier "puVar6")))) () ")"))) () ")")) (goto_statement "goto LAB_000140b0;" (goto "goto") (statement_identifier "LAB_000140b0") (; ";"))) (expression_statement "puVar20 = (uint *)((int)puVar15 - iVar22);" (assignment_expression "puVar20 = (uint *)((int)puVar15 - iVar22)" (identifier "puVar20") (= "=") (cast_expression "(uint *)((int)puVar15 - iVar22)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar15 - iVar22)" (( "(") (binary_expression "(int)puVar15 - iVar22" (cast_expression "(int)puVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar15")) (- "-") (identifier "iVar22")) () ")")))) (; ";")) (expression_statement "puVar13 = puVar15;" (assignment_expression "puVar13 = puVar15" (identifier "puVar13") (= "=") (identifier "puVar15")) (; ";")) (expression_statement "puVar9 = puVar15;" (assignment_expression "puVar9 = puVar15" (identifier "puVar9") (= "=") (identifier "puVar15")) (; ";")) (expression_statement "puVar8 = (undefined1 *)(*(code *)PTR_realloc_0002b2b8)(puVar25);" (assignment_expression "puVar8 = (undefined1 *)(*(code *)PTR_realloc_0002b2b8)(puVar25)" (identifier "puVar8") (= "=") (cast_expression "(undefined1 *)(*(code *)PTR_realloc_0002b2b8)(puVar25)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_realloc_0002b2b8)(puVar25)" (parenthesized_expression "(*(code *)PTR_realloc_0002b2b8)" (( "(") (pointer_expression "*(code *)PTR_realloc_0002b2b8" (* "*") (cast_expression "(code *)PTR_realloc_0002b2b8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_realloc_0002b2b8"))) () ")")) (argument_list "(puVar25)" (( "(") (identifier "puVar25") () ")"))))) (; ";")) (if_statement "if (puVar8 == (undefined1 *)0x0) goto LAB_000140b0;" (if "if") (parenthesized_expression "(puVar8 == (undefined1 *)0x0)" (( "(") (binary_expression "puVar8 == (undefined1 *)0x0" (identifier "puVar8") (== "==") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000140b0;" (goto "goto") (statement_identifier "LAB_000140b0") (; ";"))) (expression_statement "puVar21 = puVar8 + iVar22;" (assignment_expression "puVar21 = puVar8 + iVar22" (identifier "puVar21") (= "=") (binary_expression "puVar8 + iVar22" (identifier "puVar8") (+ "+") (identifier "iVar22"))) (; ";")) (expression_statement "bVar2 = puVar20 < (uint *)0x2;" (assignment_expression "bVar2 = puVar20 < (uint *)0x2" (identifier "bVar2") (= "=") (binary_expression "puVar20 < (uint *)0x2" (identifier "puVar20") (< "<") (cast_expression "(uint *)0x2" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2")))) (; ";")) (expression_statement "puVar23 = puVar15;" (assignment_expression "puVar23 = puVar15" (identifier "puVar23") (= "=") (identifier "puVar15")) (; ";")) (} "}"))) (if_statement "if (!bVar2) {\n            puVar17 = (uint *)((int)puVar20 + -1);\n            if (local_30 <= (uint *)((int)puVar20 + -1)) {\n              puVar17 = local_30;\n            }\n            if (puVar7 == (uint *)0x0) {\n              *puVar21 = (char)local_48;\n            }\n            else {\n              puVar13 = puVar7;\n              puVar15 = puVar17;\n              (*(code *)PTR_memcpy_0002b2fc)(puVar21);\n            }\n            puVar21 = puVar21 + (int)puVar17;\n            puVar20 = (uint *)((int)puVar20 - (int)puVar17);\n          }" (if "if") (parenthesized_expression "(!bVar2)" (( "(") (unary_expression "!bVar2" (! "!") (identifier "bVar2")) () ")")) (compound_statement "{\n            puVar17 = (uint *)((int)puVar20 + -1);\n            if (local_30 <= (uint *)((int)puVar20 + -1)) {\n              puVar17 = local_30;\n            }\n            if (puVar7 == (uint *)0x0) {\n              *puVar21 = (char)local_48;\n            }\n            else {\n              puVar13 = puVar7;\n              puVar15 = puVar17;\n              (*(code *)PTR_memcpy_0002b2fc)(puVar21);\n            }\n            puVar21 = puVar21 + (int)puVar17;\n            puVar20 = (uint *)((int)puVar20 - (int)puVar17);\n          }" ({ "{") (expression_statement "puVar17 = (uint *)((int)puVar20 + -1);" (assignment_expression "puVar17 = (uint *)((int)puVar20 + -1)" (identifier "puVar17") (= "=") (cast_expression "(uint *)((int)puVar20 + -1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar20 + -1)" (( "(") (binary_expression "(int)puVar20 + -1" (cast_expression "(int)puVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar20")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (if_statement "if (local_30 <= (uint *)((int)puVar20 + -1)) {\n              puVar17 = local_30;\n            }" (if "if") (parenthesized_expression "(local_30 <= (uint *)((int)puVar20 + -1))" (( "(") (binary_expression "local_30 <= (uint *)((int)puVar20 + -1)" (identifier "local_30") (<= "<=") (cast_expression "(uint *)((int)puVar20 + -1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar20 + -1)" (( "(") (binary_expression "(int)puVar20 + -1" (cast_expression "(int)puVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar20")) (+ "+") (number_literal "-1")) () ")")))) () ")")) (compound_statement "{\n              puVar17 = local_30;\n            }" ({ "{") (expression_statement "puVar17 = local_30;" (assignment_expression "puVar17 = local_30" (identifier "puVar17") (= "=") (identifier "local_30")) (; ";")) (} "}"))) (if_statement "if (puVar7 == (uint *)0x0) {\n              *puVar21 = (char)local_48;\n            }\n            else {\n              puVar13 = puVar7;\n              puVar15 = puVar17;\n              (*(code *)PTR_memcpy_0002b2fc)(puVar21);\n            }" (if "if") (parenthesized_expression "(puVar7 == (uint *)0x0)" (( "(") (binary_expression "puVar7 == (uint *)0x0" (identifier "puVar7") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              *puVar21 = (char)local_48;\n            }" ({ "{") (expression_statement "*puVar21 = (char)local_48;" (assignment_expression "*puVar21 = (char)local_48" (pointer_expression "*puVar21" (* "*") (identifier "puVar21")) (= "=") (cast_expression "(char)local_48" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_48"))) (; ";")) (} "}")) (else_clause "else {\n              puVar13 = puVar7;\n              puVar15 = puVar17;\n              (*(code *)PTR_memcpy_0002b2fc)(puVar21);\n            }" (else "else") (compound_statement "{\n              puVar13 = puVar7;\n              puVar15 = puVar17;\n              (*(code *)PTR_memcpy_0002b2fc)(puVar21);\n            }" ({ "{") (expression_statement "puVar13 = puVar7;" (assignment_expression "puVar13 = puVar7" (identifier "puVar13") (= "=") (identifier "puVar7")) (; ";")) (expression_statement "puVar15 = puVar17;" (assignment_expression "puVar15 = puVar17" (identifier "puVar15") (= "=") (identifier "puVar17")) (; ";")) (expression_statement "(*(code *)PTR_memcpy_0002b2fc)(puVar21);" (call_expression "(*(code *)PTR_memcpy_0002b2fc)(puVar21)" (parenthesized_expression "(*(code *)PTR_memcpy_0002b2fc)" (( "(") (pointer_expression "*(code *)PTR_memcpy_0002b2fc" (* "*") (cast_expression "(code *)PTR_memcpy_0002b2fc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memcpy_0002b2fc"))) () ")")) (argument_list "(puVar21)" (( "(") (identifier "puVar21") () ")"))) (; ";")) (} "}")))) (expression_statement "puVar21 = puVar21 + (int)puVar17;" (assignment_expression "puVar21 = puVar21 + (int)puVar17" (identifier "puVar21") (= "=") (binary_expression "puVar21 + (int)puVar17" (identifier "puVar21") (+ "+") (cast_expression "(int)puVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar17")))) (; ";")) (expression_statement "puVar20 = (uint *)((int)puVar20 - (int)puVar17);" (assignment_expression "puVar20 = (uint *)((int)puVar20 - (int)puVar17)" (identifier "puVar20") (= "=") (cast_expression "(uint *)((int)puVar20 - (int)puVar17)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar20 - (int)puVar17)" (( "(") (binary_expression "(int)puVar20 - (int)puVar17" (cast_expression "(int)puVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar20")) (- "-") (cast_expression "(int)puVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar17"))) () ")")))) (; ";")) (} "}"))) (expression_statement "puVar25 = puVar8;" (assignment_expression "puVar25 = puVar8" (identifier "puVar25") (= "=") (identifier "puVar8")) (; ";")) (if_statement "if ((puVar7 != (uint *)0x0) &&\n             (puVar13 = local_30, iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0))\n          goto LAB_000140b0;" (if "if") (parenthesized_expression "((puVar7 != (uint *)0x0) &&\n             (puVar13 = local_30, iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0))" (( "(") (binary_expression "(puVar7 != (uint *)0x0) &&\n             (puVar13 = local_30, iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0)" (parenthesized_expression "(puVar7 != (uint *)0x0)" (( "(") (binary_expression "puVar7 != (uint *)0x0" (identifier "puVar7") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(puVar13 = local_30, iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0)" (( "(") (comma_expression "puVar13 = local_30, iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0" (assignment_expression "puVar13 = local_30" (identifier "puVar13") (= "=") (identifier "local_30")) (, ",") (comma_expression "iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0" (assignment_expression "iVar22 = freadseek(param_7)" (identifier "iVar22") (= "=") (call_expression "freadseek(param_7)" (identifier "freadseek") (argument_list "(param_7)" (( "(") (identifier "param_7") () ")")))) (, ",") (comma_expression "puVar9 = puVar15, iVar22 != 0" (assignment_expression "puVar9 = puVar15" (identifier "puVar9") (= "=") (identifier "puVar15")) (, ",") (binary_expression "iVar22 != 0" (identifier "iVar22") (!= "!=") (number_literal "0"))))) () ")"))) () ")")) (goto_statement "goto LAB_000140b0;" (goto "goto") (statement_identifier "LAB_000140b0") (; ";"))) (} "}")) (while "while") (parenthesized_expression "(!bVar3)" (( "(") (unary_expression "!bVar3" (! "!") (identifier "bVar3")) () ")")) (; ";")) (expression_statement "*puVar21 = 0;" (assignment_expression "*puVar21 = 0" (pointer_expression "*puVar21" (* "*") (identifier "puVar21")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*param_1 = puVar8;" (assignment_expression "*param_1 = puVar8" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "puVar8")) (; ";")) (expression_statement "puVar9 = (uint *)(puVar21 + -(int)(puVar8 + (int)param_3));" (assignment_expression "puVar9 = (uint *)(puVar21 + -(int)(puVar8 + (int)param_3))" (identifier "puVar9") (= "=") (cast_expression "(uint *)(puVar21 + -(int)(puVar8 + (int)param_3))" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -(int)(puVar8 + (int)param_3))" (( "(") (binary_expression "puVar21 + -(int)(puVar8 + (int)param_3)" (identifier "puVar21") (+ "+") (unary_expression "-(int)(puVar8 + (int)param_3)" (- "-") (cast_expression "(int)(puVar8 + (int)param_3)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(puVar8 + (int)param_3)" (( "(") (binary_expression "puVar8 + (int)param_3" (identifier "puVar8") (+ "+") (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3"))) () ")"))))) () ")")))) (; ";")) (expression_statement "*param_2 = (uint)puVar23;" (assignment_expression "*param_2 = (uint)puVar23" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(uint)puVar23" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar23"))) (; ";")) (if_statement "if (puVar9 == (uint *)0x0) {\n          puVar9 = (uint *)0xffffffff;\n        }" (if "if") (parenthesized_expression "(puVar9 == (uint *)0x0)" (( "(") (binary_expression "puVar9 == (uint *)0x0" (identifier "puVar9") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          puVar9 = (uint *)0xffffffff;\n        }" ({ "{") (expression_statement "puVar9 = (uint *)0xffffffff;" (assignment_expression "puVar9 = (uint *)0xffffffff" (identifier "puVar9") (= "=") (cast_expression "(uint *)0xffffffff" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (} "}"))) (goto_statement "goto LAB_000140c0;" (goto "goto") (statement_identifier "LAB_000140c0") (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_000140b0:\n    puVar15 = puVar9;" (statement_identifier "LAB_000140b0") (: ":") (expression_statement "puVar15 = puVar9;" (assignment_expression "puVar15 = puVar9" (identifier "puVar15") (= "=") (identifier "puVar9")) (; ";"))) (expression_statement "*param_1 = puVar25;" (assignment_expression "*param_1 = puVar25" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "puVar25")) (; ";")) (expression_statement "puVar9 = (uint *)0xffffffff;" (assignment_expression "puVar9 = (uint *)0xffffffff" (identifier "puVar9") (= "=") (cast_expression "(uint *)0xffffffff" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (expression_statement "*param_2 = (uint)puVar23;" (assignment_expression "*param_2 = (uint)puVar23" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(uint)puVar23" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar23"))) (; ";")) (} "}")))) (labeled_statement "LAB_000140c0:\n  if (puVar5 == *(uint **)puVar4) {\n    return puVar9;\n  }" (statement_identifier "LAB_000140c0") (: ":") (if_statement "if (puVar5 == *(uint **)puVar4) {\n    return puVar9;\n  }" (if "if") (parenthesized_expression "(puVar5 == *(uint **)puVar4)" (( "(") (binary_expression "puVar5 == *(uint **)puVar4" (identifier "puVar5") (== "==") (pointer_expression "*(uint **)puVar4" (* "*") (cast_expression "(uint **)puVar4" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar4")))) () ")")) (compound_statement "{\n    return puVar9;\n  }" ({ "{") (return_statement "return puVar9;" (return "return") (identifier "puVar9") (; ";")) (} "}")))) (expression_statement "(*(code *)PTR___stack_chk_fail_0002b2e0)();" (call_expression "(*(code *)PTR___stack_chk_fail_0002b2e0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0002b2e0)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_0002b2e0" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_0002b2e0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_0002b2e0"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar18 = (uint)puVar13 & 0xff;" (assignment_expression "uVar18 = (uint)puVar13 & 0xff" (identifier "uVar18") (= "=") (binary_expression "(uint)puVar13 & 0xff" (cast_expression "(uint)puVar13" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar13")) (& "&") (number_literal "0xff"))) (; ";")) (expression_statement "uVar19 = (uint)puVar15 & 0xff;" (assignment_expression "uVar19 = (uint)puVar15 & 0xff" (identifier "uVar19") (= "=") (binary_expression "(uint)puVar15 & 0xff" (cast_expression "(uint)puVar15" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar15")) (& "&") (number_literal "0xff"))) (; ";")) (if_statement "if (uVar18 == uVar19) {\n    puVar5 = (uint *)rpl_memchr();\n    return puVar5;\n  }" (if "if") (parenthesized_expression "(uVar18 == uVar19)" (( "(") (binary_expression "uVar18 == uVar19" (identifier "uVar18") (== "==") (identifier "uVar19")) () ")")) (compound_statement "{\n    puVar5 = (uint *)rpl_memchr();\n    return puVar5;\n  }" ({ "{") (expression_statement "puVar5 = (uint *)rpl_memchr();" (assignment_expression "puVar5 = (uint *)rpl_memchr()" (identifier "puVar5") (= "=") (cast_expression "(uint *)rpl_memchr()" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "rpl_memchr()" (identifier "rpl_memchr") (argument_list "()" (( "(") () ")"))))) (; ";")) (return_statement "return puVar5;" (return "return") (identifier "puVar5") (; ";")) (} "}"))) (if_statement "if ((puVar17 != (uint *)0x0) && (((uint)puVar5 & 3) != 0)) {\n    if (uVar18 == *(byte *)puVar5) {\n      return puVar5;\n    }\n    if (uVar19 == *(byte *)puVar5) {\n      return puVar5;\n    }\n    while( true ) {\n      puVar17 = (uint *)((int)puVar17 - 1);\n      puVar5 = (uint *)((int)puVar5 + 1);\n      if ((puVar17 == (uint *)0x0) || (((uint)puVar5 & 3) == 0)) break;\n      if (*(byte *)puVar5 == uVar18) {\n        return puVar5;\n      }\n      if (*(byte *)puVar5 == uVar19) {\n        return puVar5;\n      }\n    }\n  }" (if "if") (parenthesized_expression "((puVar17 != (uint *)0x0) && (((uint)puVar5 & 3) != 0))" (( "(") (binary_expression "(puVar17 != (uint *)0x0) && (((uint)puVar5 & 3) != 0)" (parenthesized_expression "(puVar17 != (uint *)0x0)" (( "(") (binary_expression "puVar17 != (uint *)0x0" (identifier "puVar17") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(((uint)puVar5 & 3) != 0)" (( "(") (binary_expression "((uint)puVar5 & 3) != 0" (parenthesized_expression "((uint)puVar5 & 3)" (( "(") (binary_expression "(uint)puVar5 & 3" (cast_expression "(uint)puVar5" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar5")) (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    if (uVar18 == *(byte *)puVar5) {\n      return puVar5;\n    }\n    if (uVar19 == *(byte *)puVar5) {\n      return puVar5;\n    }\n    while( true ) {\n      puVar17 = (uint *)((int)puVar17 - 1);\n      puVar5 = (uint *)((int)puVar5 + 1);\n      if ((puVar17 == (uint *)0x0) || (((uint)puVar5 & 3) == 0)) break;\n      if (*(byte *)puVar5 == uVar18) {\n        return puVar5;\n      }\n      if (*(byte *)puVar5 == uVar19) {\n        return puVar5;\n      }\n    }\n  }" ({ "{") (if_statement "if (uVar18 == *(byte *)puVar5) {\n      return puVar5;\n    }" (if "if") (parenthesized_expression "(uVar18 == *(byte *)puVar5)" (( "(") (binary_expression "uVar18 == *(byte *)puVar5" (identifier "uVar18") (== "==") (pointer_expression "*(byte *)puVar5" (* "*") (cast_expression "(byte *)puVar5" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar5")))) () ")")) (compound_statement "{\n      return puVar5;\n    }" ({ "{") (return_statement "return puVar5;" (return "return") (identifier "puVar5") (; ";")) (} "}"))) (if_statement "if (uVar19 == *(byte *)puVar5) {\n      return puVar5;\n    }" (if "if") (parenthesized_expression "(uVar19 == *(byte *)puVar5)" (( "(") (binary_expression "uVar19 == *(byte *)puVar5" (identifier "uVar19") (== "==") (pointer_expression "*(byte *)puVar5" (* "*") (cast_expression "(byte *)puVar5" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar5")))) () ")")) (compound_statement "{\n      return puVar5;\n    }" ({ "{") (return_statement "return puVar5;" (return "return") (identifier "puVar5") (; ";")) (} "}"))) (while_statement "while( true ) {\n      puVar17 = (uint *)((int)puVar17 - 1);\n      puVar5 = (uint *)((int)puVar5 + 1);\n      if ((puVar17 == (uint *)0x0) || (((uint)puVar5 & 3) == 0)) break;\n      if (*(byte *)puVar5 == uVar18) {\n        return puVar5;\n      }\n      if (*(byte *)puVar5 == uVar19) {\n        return puVar5;\n      }\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      puVar17 = (uint *)((int)puVar17 - 1);\n      puVar5 = (uint *)((int)puVar5 + 1);\n      if ((puVar17 == (uint *)0x0) || (((uint)puVar5 & 3) == 0)) break;\n      if (*(byte *)puVar5 == uVar18) {\n        return puVar5;\n      }\n      if (*(byte *)puVar5 == uVar19) {\n        return puVar5;\n      }\n    }" ({ "{") (expression_statement "puVar17 = (uint *)((int)puVar17 - 1);" (assignment_expression "puVar17 = (uint *)((int)puVar17 - 1)" (identifier "puVar17") (= "=") (cast_expression "(uint *)((int)puVar17 - 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar17 - 1)" (( "(") (binary_expression "(int)puVar17 - 1" (cast_expression "(int)puVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar17")) (- "-") (number_literal "1")) () ")")))) (; ";")) (expression_statement "puVar5 = (uint *)((int)puVar5 + 1);" (assignment_expression "puVar5 = (uint *)((int)puVar5 + 1)" (identifier "puVar5") (= "=") (cast_expression "(uint *)((int)puVar5 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar5 + 1)" (( "(") (binary_expression "(int)puVar5 + 1" (cast_expression "(int)puVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar5")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if ((puVar17 == (uint *)0x0) || (((uint)puVar5 & 3) == 0)) break;" (if "if") (parenthesized_expression "((puVar17 == (uint *)0x0) || (((uint)puVar5 & 3) == 0))" (( "(") (binary_expression "(puVar17 == (uint *)0x0) || (((uint)puVar5 & 3) == 0)" (parenthesized_expression "(puVar17 == (uint *)0x0)" (( "(") (binary_expression "puVar17 == (uint *)0x0" (identifier "puVar17") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(((uint)puVar5 & 3) == 0)" (( "(") (binary_expression "((uint)puVar5 & 3) == 0" (parenthesized_expression "((uint)puVar5 & 3)" (( "(") (binary_expression "(uint)puVar5 & 3" (cast_expression "(uint)puVar5" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar5")) (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (*(byte *)puVar5 == uVar18) {\n        return puVar5;\n      }" (if "if") (parenthesized_expression "(*(byte *)puVar5 == uVar18)" (( "(") (binary_expression "*(byte *)puVar5 == uVar18" (pointer_expression "*(byte *)puVar5" (* "*") (cast_expression "(byte *)puVar5" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar5"))) (== "==") (identifier "uVar18")) () ")")) (compound_statement "{\n        return puVar5;\n      }" ({ "{") (return_statement "return puVar5;" (return "return") (identifier "puVar5") (; ";")) (} "}"))) (if_statement "if (*(byte *)puVar5 == uVar19) {\n        return puVar5;\n      }" (if "if") (parenthesized_expression "(*(byte *)puVar5 == uVar19)" (( "(") (binary_expression "*(byte *)puVar5 == uVar19" (pointer_expression "*(byte *)puVar5" (* "*") (cast_expression "(byte *)puVar5" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar5"))) (== "==") (identifier "uVar19")) () ")")) (compound_statement "{\n        return puVar5;\n      }" ({ "{") (return_statement "return puVar5;" (return "return") (identifier "puVar5") (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "uVar14 = ((uint)puVar13 & 0xff) << 8 | (uint)puVar13 & 0xff;" (assignment_expression "uVar14 = ((uint)puVar13 & 0xff) << 8 | (uint)puVar13 & 0xff" (identifier "uVar14") (= "=") (binary_expression "((uint)puVar13 & 0xff) << 8 | (uint)puVar13 & 0xff" (binary_expression "((uint)puVar13 & 0xff) << 8" (parenthesized_expression "((uint)puVar13 & 0xff)" (( "(") (binary_expression "(uint)puVar13 & 0xff" (cast_expression "(uint)puVar13" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar13")) (& "&") (number_literal "0xff")) () ")")) (<< "<<") (number_literal "8")) (| "|") (binary_expression "(uint)puVar13 & 0xff" (cast_expression "(uint)puVar13" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar13")) (& "&") (number_literal "0xff")))) (; ";")) (expression_statement "uVar16 = ((uint)puVar15 & 0xff) << 8 | (uint)puVar15 & 0xff;" (assignment_expression "uVar16 = ((uint)puVar15 & 0xff) << 8 | (uint)puVar15 & 0xff" (identifier "uVar16") (= "=") (binary_expression "((uint)puVar15 & 0xff) << 8 | (uint)puVar15 & 0xff" (binary_expression "((uint)puVar15 & 0xff) << 8" (parenthesized_expression "((uint)puVar15 & 0xff)" (( "(") (binary_expression "(uint)puVar15 & 0xff" (cast_expression "(uint)puVar15" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar15")) (& "&") (number_literal "0xff")) () ")")) (<< "<<") (number_literal "8")) (| "|") (binary_expression "(uint)puVar15 & 0xff" (cast_expression "(uint)puVar15" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar15")) (& "&") (number_literal "0xff")))) (; ";")) (expression_statement "uVar14 = uVar14 << 0x10 | uVar14;" (assignment_expression "uVar14 = uVar14 << 0x10 | uVar14" (identifier "uVar14") (= "=") (binary_expression "uVar14 << 0x10 | uVar14" (binary_expression "uVar14 << 0x10" (identifier "uVar14") (<< "<<") (number_literal "0x10")) (| "|") (identifier "uVar14"))) (; ";")) (expression_statement "uVar16 = uVar16 << 0x10 | uVar16;" (assignment_expression "uVar16 = uVar16 << 0x10 | uVar16" (identifier "uVar16") (= "=") (binary_expression "uVar16 << 0x10 | uVar16" (binary_expression "uVar16 << 0x10" (identifier "uVar16") (<< "<<") (number_literal "0x10")) (| "|") (identifier "uVar16"))) (; ";")) (if_statement "if (puVar17 < (uint *)0x4) {\nLAB_0001433c:\n    if (puVar17 == (uint *)0x0) {\n      return (uint *)0x0;\n    }\n  }\n  else {\n    uVar10 = uVar14 ^ *puVar5;\n    uVar12 = uVar16 ^ *puVar5;\n    if (((~uVar10 & uVar10 + 0xfefefeff | ~uVar12 & uVar12 + 0xfefefeff) & 0x80808080) != 0) {\n      bVar1 = *(byte *)puVar5;\n      goto LAB_00014348;\n    }\n    do {\n      puVar17 = puVar17 + -1;\n      puVar5 = puVar5 + 1;\n      if (puVar17 < (uint *)0x4) goto LAB_0001433c;\n      uVar12 = *puVar5 ^ uVar14;\n      uVar10 = *puVar5 ^ uVar16;\n    } while (((uVar12 + 0xfefefeff & ~uVar12 | uVar10 + 0xfefefeff & ~uVar10) & 0x80808080) == 0);\n  }" (if "if") (parenthesized_expression "(puVar17 < (uint *)0x4)" (( "(") (binary_expression "puVar17 < (uint *)0x4" (identifier "puVar17") (< "<") (cast_expression "(uint *)0x4" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x4"))) () ")")) (compound_statement "{\nLAB_0001433c:\n    if (puVar17 == (uint *)0x0) {\n      return (uint *)0x0;\n    }\n  }" ({ "{") (labeled_statement "LAB_0001433c:\n    if (puVar17 == (uint *)0x0) {\n      return (uint *)0x0;\n    }" (statement_identifier "LAB_0001433c") (: ":") (if_statement "if (puVar17 == (uint *)0x0) {\n      return (uint *)0x0;\n    }" (if "if") (parenthesized_expression "(puVar17 == (uint *)0x0)" (( "(") (binary_expression "puVar17 == (uint *)0x0" (identifier "puVar17") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      return (uint *)0x0;\n    }" ({ "{") (return_statement "return (uint *)0x0;" (return "return") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n    uVar10 = uVar14 ^ *puVar5;\n    uVar12 = uVar16 ^ *puVar5;\n    if (((~uVar10 & uVar10 + 0xfefefeff | ~uVar12 & uVar12 + 0xfefefeff) & 0x80808080) != 0) {\n      bVar1 = *(byte *)puVar5;\n      goto LAB_00014348;\n    }\n    do {\n      puVar17 = puVar17 + -1;\n      puVar5 = puVar5 + 1;\n      if (puVar17 < (uint *)0x4) goto LAB_0001433c;\n      uVar12 = *puVar5 ^ uVar14;\n      uVar10 = *puVar5 ^ uVar16;\n    } while (((uVar12 + 0xfefefeff & ~uVar12 | uVar10 + 0xfefefeff & ~uVar10) & 0x80808080) == 0);\n  }" (else "else") (compound_statement "{\n    uVar10 = uVar14 ^ *puVar5;\n    uVar12 = uVar16 ^ *puVar5;\n    if (((~uVar10 & uVar10 + 0xfefefeff | ~uVar12 & uVar12 + 0xfefefeff) & 0x80808080) != 0) {\n      bVar1 = *(byte *)puVar5;\n      goto LAB_00014348;\n    }\n    do {\n      puVar17 = puVar17 + -1;\n      puVar5 = puVar5 + 1;\n      if (puVar17 < (uint *)0x4) goto LAB_0001433c;\n      uVar12 = *puVar5 ^ uVar14;\n      uVar10 = *puVar5 ^ uVar16;\n    } while (((uVar12 + 0xfefefeff & ~uVar12 | uVar10 + 0xfefefeff & ~uVar10) & 0x80808080) == 0);\n  }" ({ "{") (expression_statement "uVar10 = uVar14 ^ *puVar5;" (assignment_expression "uVar10 = uVar14 ^ *puVar5" (identifier "uVar10") (= "=") (binary_expression "uVar14 ^ *puVar5" (identifier "uVar14") (^ "^") (pointer_expression "*puVar5" (* "*") (identifier "puVar5")))) (; ";")) (expression_statement "uVar12 = uVar16 ^ *puVar5;" (assignment_expression "uVar12 = uVar16 ^ *puVar5" (identifier "uVar12") (= "=") (binary_expression "uVar16 ^ *puVar5" (identifier "uVar16") (^ "^") (pointer_expression "*puVar5" (* "*") (identifier "puVar5")))) (; ";")) (if_statement "if (((~uVar10 & uVar10 + 0xfefefeff | ~uVar12 & uVar12 + 0xfefefeff) & 0x80808080) != 0) {\n      bVar1 = *(byte *)puVar5;\n      goto LAB_00014348;\n    }" (if "if") (parenthesized_expression "(((~uVar10 & uVar10 + 0xfefefeff | ~uVar12 & uVar12 + 0xfefefeff) & 0x80808080) != 0)" (( "(") (binary_expression "((~uVar10 & uVar10 + 0xfefefeff | ~uVar12 & uVar12 + 0xfefefeff) & 0x80808080) != 0" (parenthesized_expression "((~uVar10 & uVar10 + 0xfefefeff | ~uVar12 & uVar12 + 0xfefefeff) & 0x80808080)" (( "(") (binary_expression "(~uVar10 & uVar10 + 0xfefefeff | ~uVar12 & uVar12 + 0xfefefeff) & 0x80808080" (parenthesized_expression "(~uVar10 & uVar10 + 0xfefefeff | ~uVar12 & uVar12 + 0xfefefeff)" (( "(") (binary_expression "~uVar10 & uVar10 + 0xfefefeff | ~uVar12 & uVar12 + 0xfefefeff" (binary_expression "~uVar10 & uVar10 + 0xfefefeff" (unary_expression "~uVar10" (~ "~") (identifier "uVar10")) (& "&") (binary_expression "uVar10 + 0xfefefeff" (identifier "uVar10") (+ "+") (number_literal "0xfefefeff"))) (| "|") (binary_expression "~uVar12 & uVar12 + 0xfefefeff" (unary_expression "~uVar12" (~ "~") (identifier "uVar12")) (& "&") (binary_expression "uVar12 + 0xfefefeff" (identifier "uVar12") (+ "+") (number_literal "0xfefefeff")))) () ")")) (& "&") (number_literal "0x80808080")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      bVar1 = *(byte *)puVar5;\n      goto LAB_00014348;\n    }" ({ "{") (expression_statement "bVar1 = *(byte *)puVar5;" (assignment_expression "bVar1 = *(byte *)puVar5" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)puVar5" (* "*") (cast_expression "(byte *)puVar5" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar5")))) (; ";")) (goto_statement "goto LAB_00014348;" (goto "goto") (statement_identifier "LAB_00014348") (; ";")) (} "}"))) (do_statement "do {\n      puVar17 = puVar17 + -1;\n      puVar5 = puVar5 + 1;\n      if (puVar17 < (uint *)0x4) goto LAB_0001433c;\n      uVar12 = *puVar5 ^ uVar14;\n      uVar10 = *puVar5 ^ uVar16;\n    } while (((uVar12 + 0xfefefeff & ~uVar12 | uVar10 + 0xfefefeff & ~uVar10) & 0x80808080) == 0);" (do "do") (compound_statement "{\n      puVar17 = puVar17 + -1;\n      puVar5 = puVar5 + 1;\n      if (puVar17 < (uint *)0x4) goto LAB_0001433c;\n      uVar12 = *puVar5 ^ uVar14;\n      uVar10 = *puVar5 ^ uVar16;\n    }" ({ "{") (expression_statement "puVar17 = puVar17 + -1;" (assignment_expression "puVar17 = puVar17 + -1" (identifier "puVar17") (= "=") (binary_expression "puVar17 + -1" (identifier "puVar17") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "puVar5 = puVar5 + 1;" (assignment_expression "puVar5 = puVar5 + 1" (identifier "puVar5") (= "=") (binary_expression "puVar5 + 1" (identifier "puVar5") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (puVar17 < (uint *)0x4) goto LAB_0001433c;" (if "if") (parenthesized_expression "(puVar17 < (uint *)0x4)" (( "(") (binary_expression "puVar17 < (uint *)0x4" (identifier "puVar17") (< "<") (cast_expression "(uint *)0x4" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x4"))) () ")")) (goto_statement "goto LAB_0001433c;" (goto "goto") (statement_identifier "LAB_0001433c") (; ";"))) (expression_statement "uVar12 = *puVar5 ^ uVar14;" (assignment_expression "uVar12 = *puVar5 ^ uVar14" (identifier "uVar12") (= "=") (binary_expression "*puVar5 ^ uVar14" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (^ "^") (identifier "uVar14"))) (; ";")) (expression_statement "uVar10 = *puVar5 ^ uVar16;" (assignment_expression "uVar10 = *puVar5 ^ uVar16" (identifier "uVar10") (= "=") (binary_expression "*puVar5 ^ uVar16" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (^ "^") (identifier "uVar16"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(((uVar12 + 0xfefefeff & ~uVar12 | uVar10 + 0xfefefeff & ~uVar10) & 0x80808080) == 0)" (( "(") (binary_expression "((uVar12 + 0xfefefeff & ~uVar12 | uVar10 + 0xfefefeff & ~uVar10) & 0x80808080) == 0" (parenthesized_expression "((uVar12 + 0xfefefeff & ~uVar12 | uVar10 + 0xfefefeff & ~uVar10) & 0x80808080)" (( "(") (binary_expression "(uVar12 + 0xfefefeff & ~uVar12 | uVar10 + 0xfefefeff & ~uVar10) & 0x80808080" (parenthesized_expression "(uVar12 + 0xfefefeff & ~uVar12 | uVar10 + 0xfefefeff & ~uVar10)" (( "(") (binary_expression "uVar12 + 0xfefefeff & ~uVar12 | uVar10 + 0xfefefeff & ~uVar10" (binary_expression "uVar12 + 0xfefefeff & ~uVar12" (binary_expression "uVar12 + 0xfefefeff" (identifier "uVar12") (+ "+") (number_literal "0xfefefeff")) (& "&") (unary_expression "~uVar12" (~ "~") (identifier "uVar12"))) (| "|") (binary_expression "uVar10 + 0xfefefeff & ~uVar10" (binary_expression "uVar10 + 0xfefefeff" (identifier "uVar10") (+ "+") (number_literal "0xfefefeff")) (& "&") (unary_expression "~uVar10" (~ "~") (identifier "uVar10")))) () ")")) (& "&") (number_literal "0x80808080")) () ")")) (== "==") (number_literal "0")) () ")")) (; ";")) (} "}")))) (expression_statement "bVar1 = *(byte *)puVar5;" (assignment_expression "bVar1 = *(byte *)puVar5" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)puVar5" (* "*") (cast_expression "(byte *)puVar5" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar5")))) (; ";")) (labeled_statement "LAB_00014348:\n  if ((uVar18 != bVar1) && (uVar19 != bVar1)) {\n    puVar17 = (uint *)((int)puVar5 + (int)puVar17);\n    do {\n      puVar5 = (uint *)((int)puVar5 + 1);\n      if (puVar5 == puVar17) {\n        return (uint *)0x0;\n      }\n    } while ((*(byte *)puVar5 != uVar18) && (*(byte *)puVar5 != uVar19));\n  }" (statement_identifier "LAB_00014348") (: ":") (if_statement "if ((uVar18 != bVar1) && (uVar19 != bVar1)) {\n    puVar17 = (uint *)((int)puVar5 + (int)puVar17);\n    do {\n      puVar5 = (uint *)((int)puVar5 + 1);\n      if (puVar5 == puVar17) {\n        return (uint *)0x0;\n      }\n    } while ((*(byte *)puVar5 != uVar18) && (*(byte *)puVar5 != uVar19));\n  }" (if "if") (parenthesized_expression "((uVar18 != bVar1) && (uVar19 != bVar1))" (( "(") (binary_expression "(uVar18 != bVar1) && (uVar19 != bVar1)" (parenthesized_expression "(uVar18 != bVar1)" (( "(") (binary_expression "uVar18 != bVar1" (identifier "uVar18") (!= "!=") (identifier "bVar1")) () ")")) (&& "&&") (parenthesized_expression "(uVar19 != bVar1)" (( "(") (binary_expression "uVar19 != bVar1" (identifier "uVar19") (!= "!=") (identifier "bVar1")) () ")"))) () ")")) (compound_statement "{\n    puVar17 = (uint *)((int)puVar5 + (int)puVar17);\n    do {\n      puVar5 = (uint *)((int)puVar5 + 1);\n      if (puVar5 == puVar17) {\n        return (uint *)0x0;\n      }\n    } while ((*(byte *)puVar5 != uVar18) && (*(byte *)puVar5 != uVar19));\n  }" ({ "{") (expression_statement "puVar17 = (uint *)((int)puVar5 + (int)puVar17);" (assignment_expression "puVar17 = (uint *)((int)puVar5 + (int)puVar17)" (identifier "puVar17") (= "=") (cast_expression "(uint *)((int)puVar5 + (int)puVar17)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar5 + (int)puVar17)" (( "(") (binary_expression "(int)puVar5 + (int)puVar17" (cast_expression "(int)puVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar5")) (+ "+") (cast_expression "(int)puVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar17"))) () ")")))) (; ";")) (do_statement "do {\n      puVar5 = (uint *)((int)puVar5 + 1);\n      if (puVar5 == puVar17) {\n        return (uint *)0x0;\n      }\n    } while ((*(byte *)puVar5 != uVar18) && (*(byte *)puVar5 != uVar19));" (do "do") (compound_statement "{\n      puVar5 = (uint *)((int)puVar5 + 1);\n      if (puVar5 == puVar17) {\n        return (uint *)0x0;\n      }\n    }" ({ "{") (expression_statement "puVar5 = (uint *)((int)puVar5 + 1);" (assignment_expression "puVar5 = (uint *)((int)puVar5 + 1)" (identifier "puVar5") (= "=") (cast_expression "(uint *)((int)puVar5 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar5 + 1)" (( "(") (binary_expression "(int)puVar5 + 1" (cast_expression "(int)puVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar5")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (puVar5 == puVar17) {\n        return (uint *)0x0;\n      }" (if "if") (parenthesized_expression "(puVar5 == puVar17)" (( "(") (binary_expression "puVar5 == puVar17" (identifier "puVar5") (== "==") (identifier "puVar17")) () ")")) (compound_statement "{\n        return (uint *)0x0;\n      }" ({ "{") (return_statement "return (uint *)0x0;" (return "return") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "((*(byte *)puVar5 != uVar18) && (*(byte *)puVar5 != uVar19))" (( "(") (binary_expression "(*(byte *)puVar5 != uVar18) && (*(byte *)puVar5 != uVar19)" (parenthesized_expression "(*(byte *)puVar5 != uVar18)" (( "(") (binary_expression "*(byte *)puVar5 != uVar18" (pointer_expression "*(byte *)puVar5" (* "*") (cast_expression "(byte *)puVar5" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar5"))) (!= "!=") (identifier "uVar18")) () ")")) (&& "&&") (parenthesized_expression "(*(byte *)puVar5 != uVar19)" (( "(") (binary_expression "*(byte *)puVar5 != uVar19" (pointer_expression "*(byte *)puVar5" (* "*") (cast_expression "(byte *)puVar5" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar5"))) (!= "!=") (identifier "uVar19")) () ")"))) () ")")) (; ";")) (} "}")))) (return_statement "return puVar5;" (return "return") (identifier "puVar5") (; ";")) (} "}")))
(translation_unit (function_definition type: (type_identifier) declarator: (pointer_declarator declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (identifier))) right: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (break_statement)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (false)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (true))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) right: (number_literal))))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (binary_expression left: (identifier) right: (identifier)))))) consequence: (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))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))) right: (identifier))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))))))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier))))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (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: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))))))) consequence: (goto_statement label: (statement_identifier)))) condition: (parenthesized_expression (unary_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) (goto_statement label: (statement_identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) consequence: (compound_statement (return_statement (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) consequence: (compound_statement (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) consequence: (compound_statement (return_statement (identifier)))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) consequence: (break_statement)) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (identifier))) consequence: (compound_statement (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (identifier))) consequence: (compound_statement (return_statement (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (return_statement (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (unary_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal))) right: (binary_expression left: (unary_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) (goto_statement label: (statement_identifier)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier))))) condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (unary_expression argument: (identifier))) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (unary_expression argument: (identifier))))) right: (number_literal))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (return_statement (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (identifier))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (identifier))))))))) (return_statement (identifier)))))

uint * MASKED(undefined4 *param_1,uint *param_2,uint *param_3,uint *param_4,uint *param_5,
                 uint *param_6,int param_7)

{
  byte bVar1;
  bool bVar2;
  bool bVar3;
  undefined *puVar4;
  uint *puVar5;
  uint *puVar6;
  uint *puVar7;
  undefined1 *puVar8;
  uint *puVar9;
  uint uVar10;
  byte *pbVar11;
  uint uVar12;
  uint *puVar13;
  uint uVar14;
  uint *puVar15;
  uint uVar16;
  uint *puVar17;
  uint uVar18;
  uint uVar19;
  uint *puVar20;
  undefined1 *puVar21;
  int iVar22;
  uint *puVar23;
  uint *puVar24;
  undefined1 *puVar25;
  uint *local_48;
  uint *local_30;
  
  puVar4 = PTR___stack_chk_guard_0002b2f8;
  puVar5 = *(uint **)PTR___stack_chk_guard_0002b2f8;
  puVar25 = (undefined1 *)*param_1;
  puVar23 = (uint *)*param_2;
  puVar13 = param_2;
  puVar15 = param_3;
  puVar17 = param_4;
  if (puVar25 == (undefined1 *)0x0) {
    puVar23 = param_4;
    if ((uint *)0x40 < param_4) {
      puVar23 = (uint *)0x40;
    }
    puVar25 = (undefined1 *)(*(code *)PTR_malloc_0002b2b4)(puVar23);
    if (puVar25 != (undefined1 *)0x0) goto LAB_00013ed4;
    puVar9 = (uint *)0xffffffff;
  }
  else {
LAB_00013ed4:
    puVar9 = puVar15;
    if (param_3 <= puVar23) {
      puVar20 = (uint *)((int)puVar23 - (int)param_3);
      puVar21 = puVar25 + (int)param_3;
      if ((puVar20 != (uint *)0x0) || (puVar23 < param_4)) {
        puVar24 = param_6;
        if ((param_5 != (uint *)0xffffffff) && (puVar24 = param_5, param_6 == (uint *)0xffffffff)) {
          param_6 = param_5;
        }
        puVar6 = param_3 + -0x20000000;
        do {
          puVar13 = (uint *)0xffffffd0;
          puVar7 = (uint *)freadptr(param_7);
          puVar8 = puVar25;
          if (puVar7 == (uint *)0x0) {
            pbVar11 = *(byte **)(param_7 + 4);
            if (pbVar11 < *(byte **)(param_7 + 8)) {
              *(byte **)(param_7 + 4) = pbVar11 + 1;
              local_48 = (uint *)(uint)*pbVar11;
            }
            else {
              local_48 = (uint *)(*(code *)PTR___uflow_0002b264)(param_7);
              if (local_48 == (uint *)0xffffffff) {
                puVar9 = puVar15;
                if (puVar21 == puVar25) goto LAB_000140b0;
                break;
              }
            }
            bVar3 = puVar24 == local_48 || param_6 == local_48;
            puVar17 = (uint *)0x2;
            local_30 = (uint *)0x1;
          }
          else if ((puVar24 == (uint *)0xffffffff) ||
                  (puVar13 = puVar24, puVar15 = param_6,
                  iVar22 = memchr2(puVar7,puVar24,param_6,local_30), iVar22 == 0)) {
            puVar17 = (uint *)((int)local_30 + 1);
            bVar3 = false;
          }
          else {
            bVar3 = true;
            local_30 = (uint *)((iVar22 - (int)puVar7) + 1);
            puVar17 = (uint *)((iVar22 - (int)puVar7) + 2);
          }
          bVar2 = puVar20 < (uint *)0x2;
          if ((puVar20 < puVar17) && (bVar2 = puVar20 < (uint *)0x2, puVar23 < param_4)) {
            iVar22 = (int)puVar21 - (int)puVar25;
            puVar15 = param_4;
            if (puVar23 < (uint *)0x40) {
              puVar9 = puVar23 + 0x10;
              if ((uint *)((int)puVar9 - iVar22) < puVar17) {
LAB_0001414c:
                puVar9 = (uint *)((int)puVar17 + iVar22);
                goto LAB_00014154;
              }
LAB_00013f98:
              if (puVar9 < param_4) {
                puVar15 = puVar9;
              }
            }
            else {
              puVar9 = (uint *)((int)puVar23 * 2);
              if ((uint *)((int)puVar9 - iVar22) < puVar17) goto LAB_0001414c;
LAB_00014154:
              if (puVar23 < puVar9) goto LAB_00013f98;
            }
            if (((int)puVar15 - (int)param_3 < 0) &&
               (puVar15 = puVar6, puVar9 = puVar6, puVar23 == puVar6)) goto LAB_000140b0;
            puVar20 = (uint *)((int)puVar15 - iVar22);
            puVar13 = puVar15;
            puVar9 = puVar15;
            puVar8 = (undefined1 *)(*(code *)PTR_realloc_0002b2b8)(puVar25);
            if (puVar8 == (undefined1 *)0x0) goto LAB_000140b0;
            puVar21 = puVar8 + iVar22;
            bVar2 = puVar20 < (uint *)0x2;
            puVar23 = puVar15;
          }
          if (!bVar2) {
            puVar17 = (uint *)((int)puVar20 + -1);
            if (local_30 <= (uint *)((int)puVar20 + -1)) {
              puVar17 = local_30;
            }
            if (puVar7 == (uint *)0x0) {
              *puVar21 = (char)local_48;
            }
            else {
              puVar13 = puVar7;
              puVar15 = puVar17;
              (*(code *)PTR_memcpy_0002b2fc)(puVar21);
            }
            puVar21 = puVar21 + (int)puVar17;
            puVar20 = (uint *)((int)puVar20 - (int)puVar17);
          }
          puVar25 = puVar8;
          if ((puVar7 != (uint *)0x0) &&
             (puVar13 = local_30, iVar22 = freadseek(param_7), puVar9 = puVar15, iVar22 != 0))
          goto LAB_000140b0;
        } while (!bVar3);
        *puVar21 = 0;
        *param_1 = puVar8;
        puVar9 = (uint *)(puVar21 + -(int)(puVar8 + (int)param_3));
        *param_2 = (uint)puVar23;
        if (puVar9 == (uint *)0x0) {
          puVar9 = (uint *)0xffffffff;
        }
        goto LAB_000140c0;
      }
    }
LAB_000140b0:
    puVar15 = puVar9;
    *param_1 = puVar25;
    puVar9 = (uint *)0xffffffff;
    *param_2 = (uint)puVar23;
  }
LAB_000140c0:
  if (puVar5 == *(uint **)puVar4) {
    return puVar9;
  }
  (*(code *)PTR___stack_chk_fail_0002b2e0)();
  uVar18 = (uint)puVar13 & 0xff;
  uVar19 = (uint)puVar15 & 0xff;
  if (uVar18 == uVar19) {
    puVar5 = (uint *)rpl_memchr();
    return puVar5;
  }
  if ((puVar17 != (uint *)0x0) && (((uint)puVar5 & 3) != 0)) {
    if (uVar18 == *(byte *)puVar5) {
      return puVar5;
    }
    if (uVar19 == *(byte *)puVar5) {
      return puVar5;
    }
    while( true ) {
      puVar17 = (uint *)((int)puVar17 - 1);
      puVar5 = (uint *)((int)puVar5 + 1);
      if ((puVar17 == (uint *)0x0) || (((uint)puVar5 & 3) == 0)) break;
      if (*(byte *)puVar5 == uVar18) {
        return puVar5;
      }
      if (*(byte *)puVar5 == uVar19) {
        return puVar5;
      }
    }
  }
  uVar14 = ((uint)puVar13 & 0xff) << 8 | (uint)puVar13 & 0xff;
  uVar16 = ((uint)puVar15 & 0xff) << 8 | (uint)puVar15 & 0xff;
  uVar14 = uVar14 << 0x10 | uVar14;
  uVar16 = uVar16 << 0x10 | uVar16;
  if (puVar17 < (uint *)0x4) {
LAB_0001433c:
    if (puVar17 == (uint *)0x0) {
      return (uint *)0x0;
    }
  }
  else {
    uVar10 = uVar14 ^ *puVar5;
    uVar12 = uVar16 ^ *puVar5;
    if (((~uVar10 & uVar10 + 0xfefefeff | ~uVar12 & uVar12 + 0xfefefeff) & 0x80808080) != 0) {
      bVar1 = *(byte *)puVar5;
      goto LAB_00014348;
    }
    do {
      puVar17 = puVar17 + -1;
      puVar5 = puVar5 + 1;
      if (puVar17 < (uint *)0x4) goto LAB_0001433c;
      uVar12 = *puVar5 ^ uVar14;
      uVar10 = *puVar5 ^ uVar16;
    } while (((uVar12 + 0xfefefeff & ~uVar12 | uVar10 + 0xfefefeff & ~uVar10) & 0x80808080) == 0);
  }
  bVar1 = *(byte *)puVar5;
LAB_00014348:
  if ((uVar18 != bVar1) && (uVar19 != bVar1)) {
    puVar17 = (uint *)((int)puVar5 + (int)puVar17);
    do {
      puVar5 = (uint *)((int)puVar5 + 1);
      if (puVar5 == puVar17) {
        return (uint *)0x0;
      }
    } while ((*(byte *)puVar5 != uVar18) && (*(byte *)puVar5 != uVar19));
  }
  return puVar5;
}

