
strtol_error xstrtoumax(char *s,char **ptr,int strtol_base,uintmax_t *val,char *valid_suffixes)

{
  byte bVar1;
  int *piVar2;
  int *piVar3;
  uint uVar4;
  undefined4 *puVar5;
  int *piVar6;
  strtol_error sVar7;
  byte *pbVar8;
  int iVar9;
  undefined4 *puVar10;
  undefined4 *puVar11;
  undefined *puVar12;
  undefined4 uVar13;
  int iVar14;
  int iVar15;
  int iVar16;
  strtol_error sVar17;
  int iVar18;
  int iVar19;
  strtol_error sVar20;
  undefined *puVar21;
  uintmax_t uVar22;
  char *t_ptr;
  int local_2c;
  
  puVar21 = PTR___stack_chk_guard_000343b8;
  local_2c = *(int *)PTR___stack_chk_guard_000343b8;
  if ((uint)strtol_base < 0x25) {
    if (ptr == (char **)0x0) {
      ptr = &t_ptr;
    }
    piVar2 = (int *)(*(code *)PTR___errno_location_00034320)();
    puVar12 = PTR___ctype_b_loc_000342a8;
    *piVar2 = 0;
    piVar3 = (int *)(*(code *)puVar12)();
    bVar1 = *s;
    pbVar8 = (byte *)s;
    while( true ) {
      pbVar8 = pbVar8 + 1;
      if ((*(ushort *)(*piVar3 + (uint)bVar1 * 2) & 0x20) == 0) break;
      bVar1 = *pbVar8;
    }
    if (bVar1 == 0x2d) {
LAB_0001d698:
      sVar20 = LONGINT_INVALID;
    }
    else {
      uVar22 = (*(code *)PTR___strtoull_internal_000343b0)(s,ptr,strtol_base,0);
      if (*ptr == s) {
        if (((valid_suffixes == (char *)0x0) || (iVar18 = (int)*s, iVar18 == 0)) ||
           (iVar19 = (*(code *)PTR_strchr_00034344)(valid_suffixes,iVar18), iVar19 == 0))
        goto LAB_0001d698;
        uVar22 = 1;
        sVar20 = LONGINT_OK;
LAB_0001d6c8:
        uVar4 = iVar18 - 0x45U & 0xff;
        if (uVar4 < 0x30) {
                    /* WARNING: Could not emulate address calculation at 0x0001d6e4 */
                    /* WARNING: Treating indirect jump as call */
          sVar20 = (*(code *)(&_gp + *(int *)(PTR_LAB_00034138 + uVar4 * 4 + 0x3230)))();
          return sVar20;
        }
        uVar4 = iVar18 - 0x42U & 0xff;
        if (uVar4 < 0x36) {
                    /* WARNING: Could not emulate address calculation at 0x0001d7b8 */
                    /* WARNING: Treating indirect jump as call */
          sVar20 = (*(code *)(&_gp + *(int *)(PTR_LAB_00034138 + uVar4 * 4 + 0x33b0)))(1);
          return sVar20;
        }
      }
      else {
        sVar20 = LONGINT_OK;
        if (*piVar2 != 0) {
          if (*piVar2 != 0x22) goto LAB_0001d698;
          sVar20 = LONGINT_OVERFLOW;
        }
        if ((valid_suffixes == (char *)0x0) || (iVar18 = (int)**ptr, iVar18 == 0)) {
          *val = uVar22;
          goto LAB_0001d630;
        }
        iVar19 = (*(code *)PTR_strchr_00034344)(valid_suffixes,iVar18);
        if (iVar19 != 0) goto LAB_0001d6c8;
      }
      sVar20 = sVar20 | LONGINT_INVALID_SUFFIX_CHAR;
      *val = uVar22;
    }
LAB_0001d630:
    if (local_2c == *(int *)puVar21) {
      return sVar20;
    }
    (*(code *)PTR___stack_chk_fail_00034398)();
  }
  uVar13 = 0x60;
  piVar2 = (int *)(PTR_LAB_00034138 + 0x31f4);
  puVar12 = PTR_LAB_00034138 + 0x3204;
  puVar21 = PTR___assert_fail_000342ac;
  (*(code *)PTR___assert_fail_000342ac)();
  piVar3 = *(int **)(puVar21 + 0x16648);
  iVar18 = *piVar3;
  iVar19 = *(int *)(puVar21 + 0x163b8);
  if (piVar2 != (int *)0x406) {
    sVar20 = (**(code **)(puVar21 + 0x16598))();
    goto LAB_0001ddf8;
  }
  if (*(int *)(iVar19 + 0x4580) < 0) {
    piVar2 = (int *)0x0;
    sVar20 = rpl_fcntl((int)puVar12,0);
    if (((int)sVar20 < 0) || (sVar17 = sVar20, *(int *)(iVar19 + 0x4580) != -1)) goto LAB_0001ddf8;
  }
  else {
    sVar20 = (**(code **)(puVar21 + 0x16598))();
    if ((-1 < (int)sVar20) || (piVar6 = (int *)(**(code **)(puVar21 + 0x165b0))(), *piVar6 != 0x16))
    {
      *(undefined4 *)(iVar19 + 0x4580) = 1;
      goto LAB_0001ddf8;
    }
    piVar2 = (int *)0x0;
    sVar20 = rpl_fcntl((int)puVar12,0,uVar13);
    if ((int)sVar20 < 0) goto LAB_0001ddf8;
    *(undefined4 *)(iVar19 + 0x4580) = 0xffffffff;
    sVar17 = sVar20;
  }
  piVar2 = (int *)0x1;
  uVar4 = (**(code **)(puVar21 + 0x16598))(sVar17);
  if (-1 < (int)uVar4) {
    piVar2 = (int *)0x2;
    iVar19 = (**(code **)(puVar21 + 0x16598))(sVar17,2,uVar4 | 1);
    sVar20 = sVar17;
    if (iVar19 != -1) goto LAB_0001ddf8;
  }
  puVar5 = (undefined4 *)(**(code **)(puVar21 + 0x165b0))();
  uVar13 = *puVar5;
  sVar20 = ~LONGINT_OK;
  (**(code **)(puVar21 + 0x16540))(sVar17);
  *puVar5 = uVar13;
LAB_0001ddf8:
  if (iVar18 != *piVar3) {
    (**(code **)(puVar21 + 0x16628))();
    iVar19 = piVar2[8];
    iVar16 = *piVar2;
    sVar20 = (strtol_error)(iVar19 < iVar16);
    sVar17 = piVar2[7];
    if ((sVar20 != LONGINT_OK) &&
       (sVar20 = (strtol_error)((int)sVar17 < iVar19), sVar20 != LONGINT_OK)) {
      iVar9 = iVar16 - iVar19;
      sVar7 = sVar17;
      iVar15 = iVar16;
      do {
        iVar14 = iVar19 - sVar7;
        sVar20 = iVar9 + sVar7;
        if (iVar14 < iVar9) {
          iVar15 = iVar15 - iVar14;
          puVar5 = (undefined4 *)(iVar18 + sVar7 * 4);
          puVar11 = (undefined4 *)(iVar18 + iVar15 * 4);
          do {
            puVar10 = puVar5 + 1;
            uVar13 = *puVar5;
            *puVar5 = *puVar11;
            *puVar11 = uVar13;
            sVar20 = sVar7;
            puVar5 = puVar10;
            puVar11 = puVar11 + 1;
          } while ((undefined4 *)(iVar18 + (iVar14 + sVar7) * 4) != puVar10);
        }
        else {
          puVar5 = (undefined4 *)(iVar18 + sVar7 * 4);
          puVar11 = (undefined4 *)(iVar18 + iVar19 * 4);
          do {
            puVar10 = puVar5 + 1;
            uVar13 = *puVar5;
            *puVar5 = *puVar11;
            *puVar11 = uVar13;
            puVar5 = puVar10;
            puVar11 = puVar11 + 1;
          } while (puVar10 != (undefined4 *)(iVar18 + sVar20 * 4));
        }
      } while ((iVar19 < iVar15) && (iVar9 = iVar15 - iVar19, sVar7 = sVar20, (int)sVar20 < iVar19))
      ;
    }
    piVar2[8] = iVar16;
    piVar2[7] = (iVar16 - iVar19) + sVar17;
    return sVar20;
  }
  return sVar20;
}



uint xstrtoumax(byte *param_1,undefined4 *param_2,uint param_3,undefined8 *param_4,int param_5)

{
  byte bVar1;
  int *piVar2;
  int *piVar3;
  undefined4 *puVar4;
  int *piVar5;
  uint uVar6;
  byte *pbVar7;
  int iVar8;
  undefined4 *puVar9;
  undefined4 *puVar10;
  undefined *puVar11;
  undefined4 uVar12;
  int iVar13;
  int iVar14;
  int iVar15;
  uint uVar16;
  int iVar17;
  int iVar18;
  uint uVar19;
  undefined *puVar20;
  undefined8 uVar21;
  undefined4 uStack_30;
  int local_2c;
  
  puVar20 = PTR___stack_chk_guard_000343b8;
  local_2c = *(int *)PTR___stack_chk_guard_000343b8;
  if (param_3 < 0x25) {
    if (param_2 == (undefined4 *)0x0) {
      param_2 = &uStack_30;
    }
    piVar2 = (int *)(*(code *)PTR___errno_location_00034320)();
    puVar11 = PTR___ctype_b_loc_000342a8;
    *piVar2 = 0;
    piVar3 = (int *)(*(code *)puVar11)();
    bVar1 = *param_1;
    pbVar7 = param_1;
    while( true ) {
      pbVar7 = pbVar7 + 1;
      if ((*(ushort *)(*piVar3 + (uint)bVar1 * 2) & 0x20) == 0) break;
      bVar1 = *pbVar7;
    }
    if (bVar1 == 0x2d) {
LAB_0001d698:
      uVar19 = 4;
    }
    else {
      uVar21 = (*(code *)PTR___strtoull_internal_000343b0)(param_1,param_2,param_3,0);
      if ((byte *)*param_2 == param_1) {
        if (((param_5 == 0) || (iVar17 = (int)(char)*param_1, iVar17 == 0)) ||
           (iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17), iVar18 == 0))
        goto LAB_0001d698;
        uVar21 = 1;
        uVar19 = 0;
LAB_0001d6c8:
        uVar16 = iVar17 - 0x45U & 0xff;
        if (uVar16 < 0x30) {
                    /* WARNING: Could not emulate address calculation at 0x0001d6e4 */
                    /* WARNING: Treating indirect jump as call */
          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)))();
          return uVar19;
        }
        uVar16 = iVar17 - 0x42U & 0xff;
        if (uVar16 < 0x36) {
                    /* WARNING: Could not emulate address calculation at 0x0001d7b8 */
                    /* WARNING: Treating indirect jump as call */
          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)))(1);
          return uVar19;
        }
      }
      else {
        uVar19 = 0;
        if (*piVar2 != 0) {
          if (*piVar2 != 0x22) goto LAB_0001d698;
          uVar19 = 1;
        }
        if ((param_5 == 0) || (iVar17 = (int)(char)*(byte *)*param_2, iVar17 == 0)) {
          *param_4 = uVar21;
          goto LAB_0001d630;
        }
        iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17);
        if (iVar18 != 0) goto LAB_0001d6c8;
      }
      uVar19 = uVar19 | 2;
      *param_4 = uVar21;
    }
LAB_0001d630:
    if (local_2c == *(int *)puVar20) {
      return uVar19;
    }
    (*(code *)PTR___stack_chk_fail_00034398)();
  }
  uVar12 = 0x60;
  piVar2 = (int *)(PTR_LAB_00034138 + 0x31f4);
  puVar11 = PTR_LAB_00034138 + 0x3204;
  puVar20 = PTR___assert_fail_000342ac;
  (*(code *)PTR___assert_fail_000342ac)(puVar11);
  piVar3 = *(int **)(puVar20 + 0x16648);
  iVar17 = *piVar3;
  iVar18 = *(int *)(puVar20 + 0x163b8);
  if (piVar2 != (int *)0x406) {
    uVar19 = (**(code **)(puVar20 + 0x16598))();
    goto LAB_0001ddf8;
  }
  if (*(int *)(iVar18 + 0x4580) < 0) {
    piVar2 = (int *)0x0;
    uVar19 = rpl_fcntl();
    if (((int)uVar19 < 0) || (uVar16 = uVar19, *(int *)(iVar18 + 0x4580) != -1)) goto LAB_0001ddf8;
  }
  else {
    uVar19 = (**(code **)(puVar20 + 0x16598))();
    if ((-1 < (int)uVar19) || (piVar5 = (int *)(**(code **)(puVar20 + 0x165b0))(), *piVar5 != 0x16))
    {
      *(undefined4 *)(iVar18 + 0x4580) = 1;
      goto LAB_0001ddf8;
    }
    piVar2 = (int *)0x0;
    uVar19 = rpl_fcntl(puVar11,0,uVar12);
    if ((int)uVar19 < 0) goto LAB_0001ddf8;
    *(undefined4 *)(iVar18 + 0x4580) = 0xffffffff;
    uVar16 = uVar19;
  }
  piVar2 = (int *)0x1;
  uVar19 = (**(code **)(puVar20 + 0x16598))(uVar16);
  if (-1 < (int)uVar19) {
    piVar2 = (int *)0x2;
    iVar18 = (**(code **)(puVar20 + 0x16598))(uVar16,2,uVar19 | 1);
    uVar19 = uVar16;
    if (iVar18 != -1) goto LAB_0001ddf8;
  }
  puVar4 = (undefined4 *)(**(code **)(puVar20 + 0x165b0))();
  uVar12 = *puVar4;
  uVar19 = 0xffffffff;
  (**(code **)(puVar20 + 0x16540))(uVar16);
  *puVar4 = uVar12;
LAB_0001ddf8:
  if (iVar17 != *piVar3) {
    (**(code **)(puVar20 + 0x16628))();
    iVar18 = piVar2[8];
    iVar15 = *piVar2;
    uVar19 = (uint)(iVar18 < iVar15);
    uVar16 = piVar2[7];
    if ((uVar19 != 0) && (uVar19 = (uint)((int)uVar16 < iVar18), uVar19 != 0)) {
      iVar8 = iVar15 - iVar18;
      uVar6 = uVar16;
      iVar14 = iVar15;
      do {
        iVar13 = iVar18 - uVar6;
        uVar19 = iVar8 + uVar6;
        if (iVar13 < iVar8) {
          iVar14 = iVar14 - iVar13;
          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);
          puVar10 = (undefined4 *)(iVar17 + iVar14 * 4);
          do {
            puVar9 = puVar4 + 1;
            uVar12 = *puVar4;
            *puVar4 = *puVar10;
            *puVar10 = uVar12;
            uVar19 = uVar6;
            puVar4 = puVar9;
            puVar10 = puVar10 + 1;
          } while ((undefined4 *)(iVar17 + (iVar13 + uVar6) * 4) != puVar9);
        }
        else {
          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);
          puVar10 = (undefined4 *)(iVar17 + iVar18 * 4);
          do {
            puVar9 = puVar4 + 1;
            uVar12 = *puVar4;
            *puVar4 = *puVar10;
            *puVar10 = uVar12;
            puVar4 = puVar9;
            puVar10 = puVar10 + 1;
          } while (puVar9 != (undefined4 *)(iVar17 + uVar19 * 4));
        }
      } while ((iVar18 < iVar14) && (iVar8 = iVar14 - iVar18, uVar6 = uVar19, (int)uVar19 < iVar18))
      ;
    }
    piVar2[8] = iVar15;
    piVar2[7] = (iVar15 - iVar18) + uVar16;
    return uVar19;
  }
  return uVar19;
}


lui gp,0x2
addiu gp,gp,-0x1420
addu gp,gp,t9
addiu sp,sp,-0x50
sltiu v0,a2,0x25
sw s1,0x2c(sp)
lw s1,-0x7d48(gp)
sw gp,0x10(sp)
sw s4,0x38(sp)
sw ra,0x4c(sp)
sw s8,0x48(sp)
sw s7,0x44(sp)
sw s6,0x40(sp)
sw s5,0x3c(sp)
sw s3,0x34(sp)
sw s2,0x30(sp)
sw s0,0x28(sp)
lw v1,0x0(s1)
lw s4,0x60(sp)
sw v1,0x24(sp)
beq v0,zero,0x0001dd4c
_or s6,a2,zero
or s5,a0,zero
or s0,a1,zero
beq a1,zero,0x0001d6a0
_or s3,a3,zero
lw t9,-0x7de0(gp)
jalr t9
_nop
lw gp,0x10(sp)
or s2,v0,zero
lw t9,-0x7e58(gp)
jalr t9
_sw zero,0x0(v0)
or v1,s5,zero
lw gp,0x10(sp)
lbu a0,0x0(s5)
b 0x0001d5c0
_lw a1,0x0(v0)
lbu a0,0x0(v1)
sll v0,a0,0x1
addu v0,a1,v0
lhu v0,0x0(v0)
andi v0,v0,0x20
bne v0,zero,0x0001d5bc
_addiu v1,v1,0x1
li v0,0x2d
beq a0,v0,0x0001d698
_lw t9,-0x7d50(gp)
or a3,zero,zero
or a2,s6,zero
or a1,s0,zero
jalr t9
_or a0,s5,zero
lw s7,0x0(s0)
or s6,v0,zero
beq s7,s5,0x0001d684
_lw gp,0x10(sp)
lw v0,0x0(s2)
bne v0,zero,0x0001d670
_or s5,zero,zero
beq s4,zero,0x0001d628
_nop
lb s2,0x0(s7)
bne s2,zero,0x0001d768
_lw t9,-0x7dbc(gp)
sw s6,0x0(s3)
sw v1,0x4(s3)
lw a0,0x24(sp)
or v0,s5,zero
lw v1,0x0(s1)
bne a0,v1,0x0001dd40
_lw ra,0x4c(sp)
lw s8,0x48(sp)
lw s7,0x44(sp)
lw s6,0x40(sp)
lw s5,0x3c(sp)
lw s4,0x38(sp)
lw s3,0x34(sp)
lw s2,0x30(sp)
lw s1,0x2c(sp)
lw s0,0x28(sp)
jr ra
_addiu sp,sp,0x50
li a0,0x22
bne v0,a0,0x0001d698
_nop
b 0x0001d614
_li s5,0x1
beq s4,zero,0x0001d698
_nop
lb s2,0x0(s5)
bne s2,zero,0x0001d6a8
_lw t9,-0x7dbc(gp)
b 0x0001d630
_li s5,0x4
b 0x0001d588
_addiu s0,sp,0x20
or a1,s2,zero
jalr t9
_or a0,s4,zero
beq v0,zero,0x0001d698
_lw gp,0x10(sp)
or s6,zero,zero
li v1,0x1
or s5,zero,zero
addiu s8,s2,-0x45
andi v0,s8,0xff
sltiu a0,v0,0x30
beq a0,zero,0x0001d794
_sll a0,v0,0x2
lw v0,-0x7fc8(gp)
addiu v0,v0,0x3230
addu v0,v0,a0
lw v0,0x0(v0)
addu v0,v0,gp
jr v0
_nop
lw t9,-0x7dbc(gp)
li a1,0x30
sw v1,0x1c(sp)
jalr t9
_or a0,s4,zero
lw gp,0x10(sp)
beq v0,zero,0x0001d794
_lw v1,0x1c(sp)
lb v0,0x1(s7)
li a0,0x44
beq v0,a0,0x0001dc1c
_li a0,0x2
li a0,0x69
beq v0,a0,0x0001d838
_li a2,0x1
li a0,0x42
beq v0,a0,0x0001dc18
_andi s8,s8,0xff
sltiu v0,s8,0x30
beq v0,zero,0x0001d784
_lw v0,-0x7fc8(gp)
sll s8,s8,0x2
addiu v0,v0,0x32f0
addu s8,v0,s8
lw v0,0x0(s8)
addu v0,v0,gp
jr v0
_nop
or a1,s2,zero
sw v1,0x1c(sp)
jalr t9
_or a0,s4,zero
lw gp,0x10(sp)
bne v0,zero,0x0001d6c8
_lw v1,0x1c(sp)
sw s6,0x0(s3)
ori s5,s5,0x2
b 0x0001d630
_sw v1,0x4(s3)
li a0,0x1
li v0,0x400
addiu s2,s2,-0x42
andi s2,s2,0xff
sltiu a1,s2,0x36
beq a1,zero,0x0001d784
_lw a1,-0x7fc8(gp)
sll s2,s2,0x2
addiu a1,a1,0x33b0
addu s2,a1,s2
lw a1,0x0(s2)
addu a1,a1,gp
jr a1
_nop
sra t3,v0,0x1f
multu v1,v0
mflo t1
bne s6,zero,0x0001dc88
_mfhi t0
mult t3,v1
madd v0,s6
or a1,t1,zero
mflo a2
addu a2,a2,t0
bne a2,zero,0x0001dce0
_or v1,a2,zero
multu t1,v0
mflo t1
mfhi t0
mult t3,a1
madd v0,v1
or v1,t1,zero
mflo v0
addu s6,v0,t0
addu s7,s7,a0
sw s7,0x0(s0)
lb v0,0x0(s7)
beq v0,zero,0x0001d628
_nop
b 0x0001d628
_ori s5,s5,0x2
lb a0,0x2(s7)
li a1,0x3
li v0,0x400
xori a0,a0,0x42
movn a1,a2,a0
b 0x0001d79c
_or a0,a1,zero
bltz s6,0x0001dc44
_srl v0,v1,0x1f
sll s6,s6,0x1
sll v1,v1,0x1
b 0x0001d81c
_or s6,v0,s6
li a0,0x1
srl v0,s6,0x17
bne v0,zero,0x0001dc44
_srl v0,v1,0x17
sll s6,s6,0x9
sll v1,v1,0x9
b 0x0001d81c
_or s6,v0,s6
srl v0,s6,0x16
bne v0,zero,0x0001dc44
_srl v0,v1,0x16
sll s6,s6,0xa
sll v1,v1,0xa
b 0x0001d81c
_or s6,v0,s6
sra t3,v0,0x1f
li a1,0x7
b 0x0001d8d8
_or t4,zero,zero
mult t3,v1
madd v0,s6
or v1,t1,zero
mflo a2
addu s6,a2,t0
addiu a1,a1,-0x1
beq a1,zero,0x0001dc10
_nop
multu v1,v0
mflo t1
beq s6,zero,0x0001d8b8
_mfhi t0
multu v0,s6
mflo t7
mfhi t6
addu t2,t0,t7
sltu a3,t2,t7
addu a2,a3,t6
beq a2,zero,0x0001d8bc
_mult t3,v1
li t4,0x1
li s6,-0x1
b 0x0001d8cc
_li v1,-0x1
sra t3,v0,0x1f
li a1,0x6
b 0x0001d948
_or t4,zero,zero
mult t3,v1
madd v0,s6
or v1,t1,zero
mflo a2
addu s6,a2,t0
addiu a1,a1,-0x1
beq a1,zero,0x0001dc10
_nop
multu v1,v0
mflo t1
beq s6,zero,0x0001d928
_mfhi t0
multu v0,s6
mflo t7
mfhi t6
addu t2,t0,t7
sltu a3,t2,t7
addu a2,a3,t6
beq a2,zero,0x0001d92c
_mult t3,v1
li t4,0x1
li s6,-0x1
b 0x0001d93c
_li v1,-0x1
sra a1,v0,0x1f
multu v1,v0
mflo a3
bne s6,zero,0x0001dc24
_mfhi a2
mult a1,v1
madd v0,s6
or v1,a3,zero
mflo v0
b 0x0001d81c
_addu s6,v0,a2
sra t2,v0,0x1f
multu v1,v0
mflo t1
bne s6,zero,0x0001dc54
_mfhi t0
mult t2,v1
madd v0,s6
or v1,t1,zero
mflo a2
addu a2,a2,t0
bne a2,zero,0x0001dcb0
_or a1,a2,zero
multu t1,v0
mflo t1
mfhi t0
mult t2,v1
madd v0,a1
or a1,t1,zero
mflo a2
addu a2,a2,t0
bne a2,zero,0x0001dd10
_or t3,a2,zero
multu t1,v0
mflo t1
mfhi t0
mult t2,a1
madd v0,t3
or a1,zero,zero
or v1,t1,zero
or s5,s5,a1
mflo v0
b 0x0001d81c
_addu s6,v0,t0
sra t3,v0,0x1f
li a1,0x8
b 0x0001da68
_or t4,zero,zero
mult t3,v1
madd v0,s6
or v1,t1,zero
mflo a2
addu s6,a2,t0
addiu a1,a1,-0x1
beq a1,zero,0x0001dc10
_nop
multu v1,v0
mflo t1
beq s6,zero,0x0001da48
_mfhi t0
multu v0,s6
mflo t7
mfhi t6
addu t2,t0,t7
sltu a3,t2,t7
addu a2,a3,t6
beq a2,zero,0x0001da4c
_mult t3,v1
li t4,0x1
li s6,-0x1
b 0x0001da5c
_li v1,-0x1
sra t3,v0,0x1f
li a1,0x4
b 0x0001dad8
_or t4,zero,zero
mult t3,v1
madd v0,s6
or v1,t1,zero
mflo a2
addu s6,a2,t0
addiu a1,a1,-0x1
beq a1,zero,0x0001dc10
_nop
multu v1,v0
mflo t1
beq s6,zero,0x0001dab8
_mfhi t0
multu v0,s6
mflo t7
mfhi t6
addu t2,t0,t7
sltu a3,t2,t7
addu a2,a3,t6
beq a2,zero,0x0001dabc
_mult t3,v1
li t4,0x1
li s6,-0x1
b 0x0001dacc
_li v1,-0x1
sra t3,v0,0x1f
li a1,0x5
b 0x0001db48
_or t4,zero,zero
mult t3,v1
madd v0,s6
or v1,t1,zero
mflo a2
addu s6,a2,t0
addiu a1,a1,-0x1
beq a1,zero,0x0001dc10
_nop
multu v1,v0
mflo t1
beq s6,zero,0x0001db28
_mfhi t0
multu v0,s6
mflo t7
mfhi t6
addu t2,t0,t7
sltu a3,t2,t7
addu a2,a3,t6
beq a2,zero,0x0001db2c
_mult t3,v1
li t4,0x1
li s6,-0x1
b 0x0001db3c
_li v1,-0x1
li a0,0x1
or t3,zero,zero
b 0x0001d8ac
_li v0,0x400
li a0,0x1
or t3,zero,zero
b 0x0001da3c
_li v0,0x400
li a0,0x1
or t3,zero,zero
b 0x0001daac
_li v0,0x400
li a0,0x1
or t3,zero,zero
b 0x0001db1c
_li v0,0x400
li a0,0x1
or t3,zero,zero
b 0x0001d7d0
_li v0,0x400
li a0,0x1
or a1,zero,zero
b 0x0001d98c
_li v0,0x400
li a0,0x1
or t2,zero,zero
b 0x0001d9b8
_li v0,0x400
li a0,0x1
or t3,zero,zero
b 0x0001d91c
_li v0,0x400
b 0x0001d81c
_li a0,0x1
b 0x0001d81c
_or s5,s5,t4
li a0,0x2
b 0x0001d79c
_li v0,0x3e8
multu v0,s6
mflo t5
mfhi t4
addu t2,a2,t5
sltu t1,t2,t5
addu t0,t1,t4
beq t0,zero,0x0001d9a0
_mult a1,v1
li s5,0x1
li s6,-0x1
b 0x0001d81c
_li v1,-0x1
multu v0,s6
mflo a3
mfhi a2
addu a1,t0,a3
sltu a1,a1,a3
addu a1,a1,a2
beq a1,zero,0x0001d9cc
_mult t2,v1
li a1,0x1
li s6,-0x1
li v1,-0x1
b 0x0001d81c
_or s5,s5,a1
multu v0,s6
mflo a3
mfhi a2
addu a1,t0,a3
sltu a1,a1,a3
addu a1,a1,a2
beq a1,zero,0x0001d7e4
_mult t3,v1
b 0x0001dc48
_li s5,0x1
multu v0,a2
mflo t5
mfhi t4
multu t1,v0
mfhi t0
addu t3,t0,t5
sltu a3,t3,t5
addu a2,a3,t4
beq a2,zero,0x0001d9f0
_mflo t1
b 0x0001dc78
_li a1,0x1
multu v0,a2
mflo t5
mfhi t4
multu t1,v0
mfhi t0
addu t2,t0,t5
sltu a3,t2,t5
addu a2,a3,t4
beq a2,zero,0x0001d808
_mflo t1
b 0x0001dc48
_li s5,0x1
multu v0,a2
mflo a3
mfhi a2
multu t1,v0
mfhi t0
addu v1,t0,a3
sltu v1,v1,a3
addu a2,v1,a2
beq a2,zero,0x0001da18
_mflo t1
b 0x0001dc78
_li a1,0x1
lw t9,-0x7d68(gp)
jalr t9
_nop
lw a3,-0x7fc8(gp)
li a2,0x60
lw a1,-0x7fc8(gp)
lw a0,-0x7fc8(gp)
lw t9,-0x7e54(gp)
addiu a3,a3,0x3488
addiu a1,a1,0x31f4
jalr t9
_addiu a0,a0,0x3204
(translation_unit "uint xstrtoumax(byte *param_1,undefined4 *param_2,uint param_3,undefined8 *param_4,int param_5)\n\n{\n  byte bVar1;\n  int *piVar2;\n  int *piVar3;\n  undefined4 *puVar4;\n  int *piVar5;\n  uint uVar6;\n  byte *pbVar7;\n  int iVar8;\n  undefined4 *puVar9;\n  undefined4 *puVar10;\n  undefined *puVar11;\n  undefined4 uVar12;\n  int iVar13;\n  int iVar14;\n  int iVar15;\n  uint uVar16;\n  int iVar17;\n  int iVar18;\n  uint uVar19;\n  undefined *puVar20;\n  undefined8 uVar21;\n  undefined4 uStack_30;\n  int local_2c;\n  \n  puVar20 = PTR___stack_chk_guard_000343b8;\n  local_2c = *(int *)PTR___stack_chk_guard_000343b8;\n  if (param_3 < 0x25) {\n    if (param_2 == (undefined4 *)0x0) {\n      param_2 = &uStack_30;\n    }\n    piVar2 = (int *)(*(code *)PTR___errno_location_00034320)();\n    puVar11 = PTR___ctype_b_loc_000342a8;\n    *piVar2 = 0;\n    piVar3 = (int *)(*(code *)puVar11)();\n    bVar1 = *param_1;\n    pbVar7 = param_1;\n    while( true ) {\n      pbVar7 = pbVar7 + 1;\n      if ((*(ushort *)(*piVar3 + (uint)bVar1 * 2) & 0x20) == 0) break;\n      bVar1 = *pbVar7;\n    }\n    if (bVar1 == 0x2d) {\nLAB_0001d698:\n      uVar19 = 4;\n    }\n    else {\n      uVar21 = (*(code *)PTR___strtoull_internal_000343b0)(param_1,param_2,param_3,0);\n      if ((byte *)*param_2 == param_1) {\n        if (((param_5 == 0) || (iVar17 = (int)(char)*param_1, iVar17 == 0)) ||\n           (iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17), iVar18 == 0))\n        goto LAB_0001d698;\n        uVar21 = 1;\n        uVar19 = 0;\nLAB_0001d6c8:\n        uVar16 = iVar17 - 0x45U & 0xff;\n        if (uVar16 < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d6e4 */\n                    /* WARNING: Treating indirect jump as call */\n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)))();\n          return uVar19;\n        }\n        uVar16 = iVar17 - 0x42U & 0xff;\n        if (uVar16 < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d7b8 */\n                    /* WARNING: Treating indirect jump as call */\n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)))(1);\n          return uVar19;\n        }\n      }\n      else {\n        uVar19 = 0;\n        if (*piVar2 != 0) {\n          if (*piVar2 != 0x22) goto LAB_0001d698;\n          uVar19 = 1;\n        }\n        if ((param_5 == 0) || (iVar17 = (int)(char)*(byte *)*param_2, iVar17 == 0)) {\n          *param_4 = uVar21;\n          goto LAB_0001d630;\n        }\n        iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17);\n        if (iVar18 != 0) goto LAB_0001d6c8;\n      }\n      uVar19 = uVar19 | 2;\n      *param_4 = uVar21;\n    }\nLAB_0001d630:\n    if (local_2c == *(int *)puVar20) {\n      return uVar19;\n    }\n    (*(code *)PTR___stack_chk_fail_00034398)();\n  }\n  uVar12 = 0x60;\n  piVar2 = (int *)(PTR_LAB_00034138 + 0x31f4);\n  puVar11 = PTR_LAB_00034138 + 0x3204;\n  puVar20 = PTR___assert_fail_000342ac;\n  (*(code *)PTR___assert_fail_000342ac)(puVar11);\n  piVar3 = *(int **)(puVar20 + 0x16648);\n  iVar17 = *piVar3;\n  iVar18 = *(int *)(puVar20 + 0x163b8);\n  if (piVar2 != (int *)0x406) {\n    uVar19 = (**(code **)(puVar20 + 0x16598))();\n    goto LAB_0001ddf8;\n  }\n  if (*(int *)(iVar18 + 0x4580) < 0) {\n    piVar2 = (int *)0x0;\n    uVar19 = rpl_fcntl();\n    if (((int)uVar19 < 0) || (uVar16 = uVar19, *(int *)(iVar18 + 0x4580) != -1)) goto LAB_0001ddf8;\n  }\n  else {\n    uVar19 = (**(code **)(puVar20 + 0x16598))();\n    if ((-1 < (int)uVar19) || (piVar5 = (int *)(**(code **)(puVar20 + 0x165b0))(), *piVar5 != 0x16))\n    {\n      *(undefined4 *)(iVar18 + 0x4580) = 1;\n      goto LAB_0001ddf8;\n    }\n    piVar2 = (int *)0x0;\n    uVar19 = rpl_fcntl(puVar11,0,uVar12);\n    if ((int)uVar19 < 0) goto LAB_0001ddf8;\n    *(undefined4 *)(iVar18 + 0x4580) = 0xffffffff;\n    uVar16 = uVar19;\n  }\n  piVar2 = (int *)0x1;\n  uVar19 = (**(code **)(puVar20 + 0x16598))(uVar16);\n  if (-1 < (int)uVar19) {\n    piVar2 = (int *)0x2;\n    iVar18 = (**(code **)(puVar20 + 0x16598))(uVar16,2,uVar19 | 1);\n    uVar19 = uVar16;\n    if (iVar18 != -1) goto LAB_0001ddf8;\n  }\n  puVar4 = (undefined4 *)(**(code **)(puVar20 + 0x165b0))();\n  uVar12 = *puVar4;\n  uVar19 = 0xffffffff;\n  (**(code **)(puVar20 + 0x16540))(uVar16);\n  *puVar4 = uVar12;\nLAB_0001ddf8:\n  if (iVar17 != *piVar3) {\n    (**(code **)(puVar20 + 0x16628))();\n    iVar18 = piVar2[8];\n    iVar15 = *piVar2;\n    uVar19 = (uint)(iVar18 < iVar15);\n    uVar16 = piVar2[7];\n    if ((uVar19 != 0) && (uVar19 = (uint)((int)uVar16 < iVar18), uVar19 != 0)) {\n      iVar8 = iVar15 - iVar18;\n      uVar6 = uVar16;\n      iVar14 = iVar15;\n      do {\n        iVar13 = iVar18 - uVar6;\n        uVar19 = iVar8 + uVar6;\n        if (iVar13 < iVar8) {\n          iVar14 = iVar14 - iVar13;\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar14 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            uVar19 = uVar6;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while ((undefined4 *)(iVar17 + (iVar13 + uVar6) * 4) != puVar9);\n        }\n        else {\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar18 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while (puVar9 != (undefined4 *)(iVar17 + uVar19 * 4));\n        }\n      } while ((iVar18 < iVar14) && (iVar8 = iVar14 - iVar18, uVar6 = uVar19, (int)uVar19 < iVar18))\n      ;\n    }\n    piVar2[8] = iVar15;\n    piVar2[7] = (iVar15 - iVar18) + uVar16;\n    return uVar19;\n  }\n  return uVar19;\n}\n\n" (function_definition "uint xstrtoumax(byte *param_1,undefined4 *param_2,uint param_3,undefined8 *param_4,int param_5)\n\n{\n  byte bVar1;\n  int *piVar2;\n  int *piVar3;\n  undefined4 *puVar4;\n  int *piVar5;\n  uint uVar6;\n  byte *pbVar7;\n  int iVar8;\n  undefined4 *puVar9;\n  undefined4 *puVar10;\n  undefined *puVar11;\n  undefined4 uVar12;\n  int iVar13;\n  int iVar14;\n  int iVar15;\n  uint uVar16;\n  int iVar17;\n  int iVar18;\n  uint uVar19;\n  undefined *puVar20;\n  undefined8 uVar21;\n  undefined4 uStack_30;\n  int local_2c;\n  \n  puVar20 = PTR___stack_chk_guard_000343b8;\n  local_2c = *(int *)PTR___stack_chk_guard_000343b8;\n  if (param_3 < 0x25) {\n    if (param_2 == (undefined4 *)0x0) {\n      param_2 = &uStack_30;\n    }\n    piVar2 = (int *)(*(code *)PTR___errno_location_00034320)();\n    puVar11 = PTR___ctype_b_loc_000342a8;\n    *piVar2 = 0;\n    piVar3 = (int *)(*(code *)puVar11)();\n    bVar1 = *param_1;\n    pbVar7 = param_1;\n    while( true ) {\n      pbVar7 = pbVar7 + 1;\n      if ((*(ushort *)(*piVar3 + (uint)bVar1 * 2) & 0x20) == 0) break;\n      bVar1 = *pbVar7;\n    }\n    if (bVar1 == 0x2d) {\nLAB_0001d698:\n      uVar19 = 4;\n    }\n    else {\n      uVar21 = (*(code *)PTR___strtoull_internal_000343b0)(param_1,param_2,param_3,0);\n      if ((byte *)*param_2 == param_1) {\n        if (((param_5 == 0) || (iVar17 = (int)(char)*param_1, iVar17 == 0)) ||\n           (iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17), iVar18 == 0))\n        goto LAB_0001d698;\n        uVar21 = 1;\n        uVar19 = 0;\nLAB_0001d6c8:\n        uVar16 = iVar17 - 0x45U & 0xff;\n        if (uVar16 < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d6e4 */\n                    /* WARNING: Treating indirect jump as call */\n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)))();\n          return uVar19;\n        }\n        uVar16 = iVar17 - 0x42U & 0xff;\n        if (uVar16 < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d7b8 */\n                    /* WARNING: Treating indirect jump as call */\n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)))(1);\n          return uVar19;\n        }\n      }\n      else {\n        uVar19 = 0;\n        if (*piVar2 != 0) {\n          if (*piVar2 != 0x22) goto LAB_0001d698;\n          uVar19 = 1;\n        }\n        if ((param_5 == 0) || (iVar17 = (int)(char)*(byte *)*param_2, iVar17 == 0)) {\n          *param_4 = uVar21;\n          goto LAB_0001d630;\n        }\n        iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17);\n        if (iVar18 != 0) goto LAB_0001d6c8;\n      }\n      uVar19 = uVar19 | 2;\n      *param_4 = uVar21;\n    }\nLAB_0001d630:\n    if (local_2c == *(int *)puVar20) {\n      return uVar19;\n    }\n    (*(code *)PTR___stack_chk_fail_00034398)();\n  }\n  uVar12 = 0x60;\n  piVar2 = (int *)(PTR_LAB_00034138 + 0x31f4);\n  puVar11 = PTR_LAB_00034138 + 0x3204;\n  puVar20 = PTR___assert_fail_000342ac;\n  (*(code *)PTR___assert_fail_000342ac)(puVar11);\n  piVar3 = *(int **)(puVar20 + 0x16648);\n  iVar17 = *piVar3;\n  iVar18 = *(int *)(puVar20 + 0x163b8);\n  if (piVar2 != (int *)0x406) {\n    uVar19 = (**(code **)(puVar20 + 0x16598))();\n    goto LAB_0001ddf8;\n  }\n  if (*(int *)(iVar18 + 0x4580) < 0) {\n    piVar2 = (int *)0x0;\n    uVar19 = rpl_fcntl();\n    if (((int)uVar19 < 0) || (uVar16 = uVar19, *(int *)(iVar18 + 0x4580) != -1)) goto LAB_0001ddf8;\n  }\n  else {\n    uVar19 = (**(code **)(puVar20 + 0x16598))();\n    if ((-1 < (int)uVar19) || (piVar5 = (int *)(**(code **)(puVar20 + 0x165b0))(), *piVar5 != 0x16))\n    {\n      *(undefined4 *)(iVar18 + 0x4580) = 1;\n      goto LAB_0001ddf8;\n    }\n    piVar2 = (int *)0x0;\n    uVar19 = rpl_fcntl(puVar11,0,uVar12);\n    if ((int)uVar19 < 0) goto LAB_0001ddf8;\n    *(undefined4 *)(iVar18 + 0x4580) = 0xffffffff;\n    uVar16 = uVar19;\n  }\n  piVar2 = (int *)0x1;\n  uVar19 = (**(code **)(puVar20 + 0x16598))(uVar16);\n  if (-1 < (int)uVar19) {\n    piVar2 = (int *)0x2;\n    iVar18 = (**(code **)(puVar20 + 0x16598))(uVar16,2,uVar19 | 1);\n    uVar19 = uVar16;\n    if (iVar18 != -1) goto LAB_0001ddf8;\n  }\n  puVar4 = (undefined4 *)(**(code **)(puVar20 + 0x165b0))();\n  uVar12 = *puVar4;\n  uVar19 = 0xffffffff;\n  (**(code **)(puVar20 + 0x16540))(uVar16);\n  *puVar4 = uVar12;\nLAB_0001ddf8:\n  if (iVar17 != *piVar3) {\n    (**(code **)(puVar20 + 0x16628))();\n    iVar18 = piVar2[8];\n    iVar15 = *piVar2;\n    uVar19 = (uint)(iVar18 < iVar15);\n    uVar16 = piVar2[7];\n    if ((uVar19 != 0) && (uVar19 = (uint)((int)uVar16 < iVar18), uVar19 != 0)) {\n      iVar8 = iVar15 - iVar18;\n      uVar6 = uVar16;\n      iVar14 = iVar15;\n      do {\n        iVar13 = iVar18 - uVar6;\n        uVar19 = iVar8 + uVar6;\n        if (iVar13 < iVar8) {\n          iVar14 = iVar14 - iVar13;\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar14 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            uVar19 = uVar6;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while ((undefined4 *)(iVar17 + (iVar13 + uVar6) * 4) != puVar9);\n        }\n        else {\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar18 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while (puVar9 != (undefined4 *)(iVar17 + uVar19 * 4));\n        }\n      } while ((iVar18 < iVar14) && (iVar8 = iVar14 - iVar18, uVar6 = uVar19, (int)uVar19 < iVar18))\n      ;\n    }\n    piVar2[8] = iVar15;\n    piVar2[7] = (iVar15 - iVar18) + uVar16;\n    return uVar19;\n  }\n  return uVar19;\n}" type_identifier (function_declarator "xstrtoumax(byte *param_1,undefined4 *param_2,uint param_3,undefined8 *param_4,int param_5)" identifier (parameter_list "(byte *param_1,undefined4 *param_2,uint param_3,undefined8 *param_4,int param_5)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "undefined8 *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "int param_5" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  int *piVar2;\n  int *piVar3;\n  undefined4 *puVar4;\n  int *piVar5;\n  uint uVar6;\n  byte *pbVar7;\n  int iVar8;\n  undefined4 *puVar9;\n  undefined4 *puVar10;\n  undefined *puVar11;\n  undefined4 uVar12;\n  int iVar13;\n  int iVar14;\n  int iVar15;\n  uint uVar16;\n  int iVar17;\n  int iVar18;\n  uint uVar19;\n  undefined *puVar20;\n  undefined8 uVar21;\n  undefined4 uStack_30;\n  int local_2c;\n  \n  puVar20 = PTR___stack_chk_guard_000343b8;\n  local_2c = *(int *)PTR___stack_chk_guard_000343b8;\n  if (param_3 < 0x25) {\n    if (param_2 == (undefined4 *)0x0) {\n      param_2 = &uStack_30;\n    }\n    piVar2 = (int *)(*(code *)PTR___errno_location_00034320)();\n    puVar11 = PTR___ctype_b_loc_000342a8;\n    *piVar2 = 0;\n    piVar3 = (int *)(*(code *)puVar11)();\n    bVar1 = *param_1;\n    pbVar7 = param_1;\n    while( true ) {\n      pbVar7 = pbVar7 + 1;\n      if ((*(ushort *)(*piVar3 + (uint)bVar1 * 2) & 0x20) == 0) break;\n      bVar1 = *pbVar7;\n    }\n    if (bVar1 == 0x2d) {\nLAB_0001d698:\n      uVar19 = 4;\n    }\n    else {\n      uVar21 = (*(code *)PTR___strtoull_internal_000343b0)(param_1,param_2,param_3,0);\n      if ((byte *)*param_2 == param_1) {\n        if (((param_5 == 0) || (iVar17 = (int)(char)*param_1, iVar17 == 0)) ||\n           (iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17), iVar18 == 0))\n        goto LAB_0001d698;\n        uVar21 = 1;\n        uVar19 = 0;\nLAB_0001d6c8:\n        uVar16 = iVar17 - 0x45U & 0xff;\n        if (uVar16 < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d6e4 */\n                    /* WARNING: Treating indirect jump as call */\n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)))();\n          return uVar19;\n        }\n        uVar16 = iVar17 - 0x42U & 0xff;\n        if (uVar16 < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d7b8 */\n                    /* WARNING: Treating indirect jump as call */\n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)))(1);\n          return uVar19;\n        }\n      }\n      else {\n        uVar19 = 0;\n        if (*piVar2 != 0) {\n          if (*piVar2 != 0x22) goto LAB_0001d698;\n          uVar19 = 1;\n        }\n        if ((param_5 == 0) || (iVar17 = (int)(char)*(byte *)*param_2, iVar17 == 0)) {\n          *param_4 = uVar21;\n          goto LAB_0001d630;\n        }\n        iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17);\n        if (iVar18 != 0) goto LAB_0001d6c8;\n      }\n      uVar19 = uVar19 | 2;\n      *param_4 = uVar21;\n    }\nLAB_0001d630:\n    if (local_2c == *(int *)puVar20) {\n      return uVar19;\n    }\n    (*(code *)PTR___stack_chk_fail_00034398)();\n  }\n  uVar12 = 0x60;\n  piVar2 = (int *)(PTR_LAB_00034138 + 0x31f4);\n  puVar11 = PTR_LAB_00034138 + 0x3204;\n  puVar20 = PTR___assert_fail_000342ac;\n  (*(code *)PTR___assert_fail_000342ac)(puVar11);\n  piVar3 = *(int **)(puVar20 + 0x16648);\n  iVar17 = *piVar3;\n  iVar18 = *(int *)(puVar20 + 0x163b8);\n  if (piVar2 != (int *)0x406) {\n    uVar19 = (**(code **)(puVar20 + 0x16598))();\n    goto LAB_0001ddf8;\n  }\n  if (*(int *)(iVar18 + 0x4580) < 0) {\n    piVar2 = (int *)0x0;\n    uVar19 = rpl_fcntl();\n    if (((int)uVar19 < 0) || (uVar16 = uVar19, *(int *)(iVar18 + 0x4580) != -1)) goto LAB_0001ddf8;\n  }\n  else {\n    uVar19 = (**(code **)(puVar20 + 0x16598))();\n    if ((-1 < (int)uVar19) || (piVar5 = (int *)(**(code **)(puVar20 + 0x165b0))(), *piVar5 != 0x16))\n    {\n      *(undefined4 *)(iVar18 + 0x4580) = 1;\n      goto LAB_0001ddf8;\n    }\n    piVar2 = (int *)0x0;\n    uVar19 = rpl_fcntl(puVar11,0,uVar12);\n    if ((int)uVar19 < 0) goto LAB_0001ddf8;\n    *(undefined4 *)(iVar18 + 0x4580) = 0xffffffff;\n    uVar16 = uVar19;\n  }\n  piVar2 = (int *)0x1;\n  uVar19 = (**(code **)(puVar20 + 0x16598))(uVar16);\n  if (-1 < (int)uVar19) {\n    piVar2 = (int *)0x2;\n    iVar18 = (**(code **)(puVar20 + 0x16598))(uVar16,2,uVar19 | 1);\n    uVar19 = uVar16;\n    if (iVar18 != -1) goto LAB_0001ddf8;\n  }\n  puVar4 = (undefined4 *)(**(code **)(puVar20 + 0x165b0))();\n  uVar12 = *puVar4;\n  uVar19 = 0xffffffff;\n  (**(code **)(puVar20 + 0x16540))(uVar16);\n  *puVar4 = uVar12;\nLAB_0001ddf8:\n  if (iVar17 != *piVar3) {\n    (**(code **)(puVar20 + 0x16628))();\n    iVar18 = piVar2[8];\n    iVar15 = *piVar2;\n    uVar19 = (uint)(iVar18 < iVar15);\n    uVar16 = piVar2[7];\n    if ((uVar19 != 0) && (uVar19 = (uint)((int)uVar16 < iVar18), uVar19 != 0)) {\n      iVar8 = iVar15 - iVar18;\n      uVar6 = uVar16;\n      iVar14 = iVar15;\n      do {\n        iVar13 = iVar18 - uVar6;\n        uVar19 = iVar8 + uVar6;\n        if (iVar13 < iVar8) {\n          iVar14 = iVar14 - iVar13;\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar14 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            uVar19 = uVar6;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while ((undefined4 *)(iVar17 + (iVar13 + uVar6) * 4) != puVar9);\n        }\n        else {\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar18 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while (puVar9 != (undefined4 *)(iVar17 + uVar19 * 4));\n        }\n      } while ((iVar18 < iVar14) && (iVar8 = iVar14 - iVar18, uVar6 = uVar19, (int)uVar19 < iVar18))\n      ;\n    }\n    piVar2[8] = iVar15;\n    piVar2[7] = (iVar15 - iVar18) + uVar16;\n    return uVar19;\n  }\n  return uVar19;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "undefined *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "undefined *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "undefined8 uVar21;" type_identifier identifier ;) (declaration "undefined4 uStack_30;" type_identifier identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar20 = PTR___stack_chk_guard_000343b8;" (assignment_expression "puVar20 = PTR___stack_chk_guard_000343b8" identifier = identifier) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_000343b8;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_000343b8" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000343b8" * (cast_expression "(int *)PTR___stack_chk_guard_000343b8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (param_3 < 0x25) {\n    if (param_2 == (undefined4 *)0x0) {\n      param_2 = &uStack_30;\n    }\n    piVar2 = (int *)(*(code *)PTR___errno_location_00034320)();\n    puVar11 = PTR___ctype_b_loc_000342a8;\n    *piVar2 = 0;\n    piVar3 = (int *)(*(code *)puVar11)();\n    bVar1 = *param_1;\n    pbVar7 = param_1;\n    while( true ) {\n      pbVar7 = pbVar7 + 1;\n      if ((*(ushort *)(*piVar3 + (uint)bVar1 * 2) & 0x20) == 0) break;\n      bVar1 = *pbVar7;\n    }\n    if (bVar1 == 0x2d) {\nLAB_0001d698:\n      uVar19 = 4;\n    }\n    else {\n      uVar21 = (*(code *)PTR___strtoull_internal_000343b0)(param_1,param_2,param_3,0);\n      if ((byte *)*param_2 == param_1) {\n        if (((param_5 == 0) || (iVar17 = (int)(char)*param_1, iVar17 == 0)) ||\n           (iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17), iVar18 == 0))\n        goto LAB_0001d698;\n        uVar21 = 1;\n        uVar19 = 0;\nLAB_0001d6c8:\n        uVar16 = iVar17 - 0x45U & 0xff;\n        if (uVar16 < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d6e4 */\n                    /* WARNING: Treating indirect jump as call */\n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)))();\n          return uVar19;\n        }\n        uVar16 = iVar17 - 0x42U & 0xff;\n        if (uVar16 < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d7b8 */\n                    /* WARNING: Treating indirect jump as call */\n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)))(1);\n          return uVar19;\n        }\n      }\n      else {\n        uVar19 = 0;\n        if (*piVar2 != 0) {\n          if (*piVar2 != 0x22) goto LAB_0001d698;\n          uVar19 = 1;\n        }\n        if ((param_5 == 0) || (iVar17 = (int)(char)*(byte *)*param_2, iVar17 == 0)) {\n          *param_4 = uVar21;\n          goto LAB_0001d630;\n        }\n        iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17);\n        if (iVar18 != 0) goto LAB_0001d6c8;\n      }\n      uVar19 = uVar19 | 2;\n      *param_4 = uVar21;\n    }\nLAB_0001d630:\n    if (local_2c == *(int *)puVar20) {\n      return uVar19;\n    }\n    (*(code *)PTR___stack_chk_fail_00034398)();\n  }" if (parenthesized_expression "(param_3 < 0x25)" ( (binary_expression "param_3 < 0x25" identifier < number_literal) )) (compound_statement "{\n    if (param_2 == (undefined4 *)0x0) {\n      param_2 = &uStack_30;\n    }\n    piVar2 = (int *)(*(code *)PTR___errno_location_00034320)();\n    puVar11 = PTR___ctype_b_loc_000342a8;\n    *piVar2 = 0;\n    piVar3 = (int *)(*(code *)puVar11)();\n    bVar1 = *param_1;\n    pbVar7 = param_1;\n    while( true ) {\n      pbVar7 = pbVar7 + 1;\n      if ((*(ushort *)(*piVar3 + (uint)bVar1 * 2) & 0x20) == 0) break;\n      bVar1 = *pbVar7;\n    }\n    if (bVar1 == 0x2d) {\nLAB_0001d698:\n      uVar19 = 4;\n    }\n    else {\n      uVar21 = (*(code *)PTR___strtoull_internal_000343b0)(param_1,param_2,param_3,0);\n      if ((byte *)*param_2 == param_1) {\n        if (((param_5 == 0) || (iVar17 = (int)(char)*param_1, iVar17 == 0)) ||\n           (iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17), iVar18 == 0))\n        goto LAB_0001d698;\n        uVar21 = 1;\n        uVar19 = 0;\nLAB_0001d6c8:\n        uVar16 = iVar17 - 0x45U & 0xff;\n        if (uVar16 < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d6e4 */\n                    /* WARNING: Treating indirect jump as call */\n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)))();\n          return uVar19;\n        }\n        uVar16 = iVar17 - 0x42U & 0xff;\n        if (uVar16 < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d7b8 */\n                    /* WARNING: Treating indirect jump as call */\n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)))(1);\n          return uVar19;\n        }\n      }\n      else {\n        uVar19 = 0;\n        if (*piVar2 != 0) {\n          if (*piVar2 != 0x22) goto LAB_0001d698;\n          uVar19 = 1;\n        }\n        if ((param_5 == 0) || (iVar17 = (int)(char)*(byte *)*param_2, iVar17 == 0)) {\n          *param_4 = uVar21;\n          goto LAB_0001d630;\n        }\n        iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17);\n        if (iVar18 != 0) goto LAB_0001d6c8;\n      }\n      uVar19 = uVar19 | 2;\n      *param_4 = uVar21;\n    }\nLAB_0001d630:\n    if (local_2c == *(int *)puVar20) {\n      return uVar19;\n    }\n    (*(code *)PTR___stack_chk_fail_00034398)();\n  }" { (if_statement "if (param_2 == (undefined4 *)0x0) {\n      param_2 = &uStack_30;\n    }" if (parenthesized_expression "(param_2 == (undefined4 *)0x0)" ( (binary_expression "param_2 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      param_2 = &uStack_30;\n    }" { (expression_statement "param_2 = &uStack_30;" (assignment_expression "param_2 = &uStack_30" identifier = (pointer_expression "&uStack_30" & identifier)) ;) })) (expression_statement "piVar2 = (int *)(*(code *)PTR___errno_location_00034320)();" (assignment_expression "piVar2 = (int *)(*(code *)PTR___errno_location_00034320)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_00034320)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00034320)()" (parenthesized_expression "(*(code *)PTR___errno_location_00034320)" ( (pointer_expression "*(code *)PTR___errno_location_00034320" * (cast_expression "(code *)PTR___errno_location_00034320" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar11 = PTR___ctype_b_loc_000342a8;" (assignment_expression "puVar11 = PTR___ctype_b_loc_000342a8" identifier = identifier) ;) (expression_statement "*piVar2 = 0;" (assignment_expression "*piVar2 = 0" (pointer_expression "*piVar2" * identifier) = number_literal) ;) (expression_statement "piVar3 = (int *)(*(code *)puVar11)();" (assignment_expression "piVar3 = (int *)(*(code *)puVar11)()" identifier = (cast_expression "(int *)(*(code *)puVar11)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar11)()" (parenthesized_expression "(*(code *)puVar11)" ( (pointer_expression "*(code *)puVar11" * (cast_expression "(code *)puVar11" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "bVar1 = *param_1;" (assignment_expression "bVar1 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "pbVar7 = param_1;" (assignment_expression "pbVar7 = param_1" identifier = identifier) ;) (while_statement "while( true ) {\n      pbVar7 = pbVar7 + 1;\n      if ((*(ushort *)(*piVar3 + (uint)bVar1 * 2) & 0x20) == 0) break;\n      bVar1 = *pbVar7;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      pbVar7 = pbVar7 + 1;\n      if ((*(ushort *)(*piVar3 + (uint)bVar1 * 2) & 0x20) == 0) break;\n      bVar1 = *pbVar7;\n    }" { (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) (if_statement "if ((*(ushort *)(*piVar3 + (uint)bVar1 * 2) & 0x20) == 0) break;" if (parenthesized_expression "((*(ushort *)(*piVar3 + (uint)bVar1 * 2) & 0x20) == 0)" ( (binary_expression "(*(ushort *)(*piVar3 + (uint)bVar1 * 2) & 0x20) == 0" (parenthesized_expression "(*(ushort *)(*piVar3 + (uint)bVar1 * 2) & 0x20)" ( (binary_expression "*(ushort *)(*piVar3 + (uint)bVar1 * 2) & 0x20" (pointer_expression "*(ushort *)(*piVar3 + (uint)bVar1 * 2)" * (cast_expression "(ushort *)(*piVar3 + (uint)bVar1 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar3 + (uint)bVar1 * 2)" ( (binary_expression "*piVar3 + (uint)bVar1 * 2" (pointer_expression "*piVar3" * identifier) + (binary_expression "(uint)bVar1 * 2" (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) )))) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "bVar1 = *pbVar7;" (assignment_expression "bVar1 = *pbVar7" identifier = (pointer_expression "*pbVar7" * identifier)) ;) })) (if_statement "if (bVar1 == 0x2d) {\nLAB_0001d698:\n      uVar19 = 4;\n    }\n    else {\n      uVar21 = (*(code *)PTR___strtoull_internal_000343b0)(param_1,param_2,param_3,0);\n      if ((byte *)*param_2 == param_1) {\n        if (((param_5 == 0) || (iVar17 = (int)(char)*param_1, iVar17 == 0)) ||\n           (iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17), iVar18 == 0))\n        goto LAB_0001d698;\n        uVar21 = 1;\n        uVar19 = 0;\nLAB_0001d6c8:\n        uVar16 = iVar17 - 0x45U & 0xff;\n        if (uVar16 < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d6e4 */\n                    /* WARNING: Treating indirect jump as call */\n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)))();\n          return uVar19;\n        }\n        uVar16 = iVar17 - 0x42U & 0xff;\n        if (uVar16 < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d7b8 */\n                    /* WARNING: Treating indirect jump as call */\n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)))(1);\n          return uVar19;\n        }\n      }\n      else {\n        uVar19 = 0;\n        if (*piVar2 != 0) {\n          if (*piVar2 != 0x22) goto LAB_0001d698;\n          uVar19 = 1;\n        }\n        if ((param_5 == 0) || (iVar17 = (int)(char)*(byte *)*param_2, iVar17 == 0)) {\n          *param_4 = uVar21;\n          goto LAB_0001d630;\n        }\n        iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17);\n        if (iVar18 != 0) goto LAB_0001d6c8;\n      }\n      uVar19 = uVar19 | 2;\n      *param_4 = uVar21;\n    }" if (parenthesized_expression "(bVar1 == 0x2d)" ( (binary_expression "bVar1 == 0x2d" identifier == number_literal) )) (compound_statement "{\nLAB_0001d698:\n      uVar19 = 4;\n    }" { (labeled_statement "LAB_0001d698:\n      uVar19 = 4;" statement_identifier : (expression_statement "uVar19 = 4;" (assignment_expression "uVar19 = 4" identifier = number_literal) ;)) }) (else_clause "else {\n      uVar21 = (*(code *)PTR___strtoull_internal_000343b0)(param_1,param_2,param_3,0);\n      if ((byte *)*param_2 == param_1) {\n        if (((param_5 == 0) || (iVar17 = (int)(char)*param_1, iVar17 == 0)) ||\n           (iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17), iVar18 == 0))\n        goto LAB_0001d698;\n        uVar21 = 1;\n        uVar19 = 0;\nLAB_0001d6c8:\n        uVar16 = iVar17 - 0x45U & 0xff;\n        if (uVar16 < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d6e4 */\n                    /* WARNING: Treating indirect jump as call */\n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)))();\n          return uVar19;\n        }\n        uVar16 = iVar17 - 0x42U & 0xff;\n        if (uVar16 < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d7b8 */\n                    /* WARNING: Treating indirect jump as call */\n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)))(1);\n          return uVar19;\n        }\n      }\n      else {\n        uVar19 = 0;\n        if (*piVar2 != 0) {\n          if (*piVar2 != 0x22) goto LAB_0001d698;\n          uVar19 = 1;\n        }\n        if ((param_5 == 0) || (iVar17 = (int)(char)*(byte *)*param_2, iVar17 == 0)) {\n          *param_4 = uVar21;\n          goto LAB_0001d630;\n        }\n        iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17);\n        if (iVar18 != 0) goto LAB_0001d6c8;\n      }\n      uVar19 = uVar19 | 2;\n      *param_4 = uVar21;\n    }" else (compound_statement "{\n      uVar21 = (*(code *)PTR___strtoull_internal_000343b0)(param_1,param_2,param_3,0);\n      if ((byte *)*param_2 == param_1) {\n        if (((param_5 == 0) || (iVar17 = (int)(char)*param_1, iVar17 == 0)) ||\n           (iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17), iVar18 == 0))\n        goto LAB_0001d698;\n        uVar21 = 1;\n        uVar19 = 0;\nLAB_0001d6c8:\n        uVar16 = iVar17 - 0x45U & 0xff;\n        if (uVar16 < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d6e4 */\n                    /* WARNING: Treating indirect jump as call */\n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)))();\n          return uVar19;\n        }\n        uVar16 = iVar17 - 0x42U & 0xff;\n        if (uVar16 < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d7b8 */\n                    /* WARNING: Treating indirect jump as call */\n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)))(1);\n          return uVar19;\n        }\n      }\n      else {\n        uVar19 = 0;\n        if (*piVar2 != 0) {\n          if (*piVar2 != 0x22) goto LAB_0001d698;\n          uVar19 = 1;\n        }\n        if ((param_5 == 0) || (iVar17 = (int)(char)*(byte *)*param_2, iVar17 == 0)) {\n          *param_4 = uVar21;\n          goto LAB_0001d630;\n        }\n        iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17);\n        if (iVar18 != 0) goto LAB_0001d6c8;\n      }\n      uVar19 = uVar19 | 2;\n      *param_4 = uVar21;\n    }" { (expression_statement "uVar21 = (*(code *)PTR___strtoull_internal_000343b0)(param_1,param_2,param_3,0);" (assignment_expression "uVar21 = (*(code *)PTR___strtoull_internal_000343b0)(param_1,param_2,param_3,0)" identifier = (call_expression "(*(code *)PTR___strtoull_internal_000343b0)(param_1,param_2,param_3,0)" (parenthesized_expression "(*(code *)PTR___strtoull_internal_000343b0)" ( (pointer_expression "*(code *)PTR___strtoull_internal_000343b0" * (cast_expression "(code *)PTR___strtoull_internal_000343b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_2,param_3,0)" ( identifier , identifier , identifier , number_literal )))) ;) (if_statement "if ((byte *)*param_2 == param_1) {\n        if (((param_5 == 0) || (iVar17 = (int)(char)*param_1, iVar17 == 0)) ||\n           (iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17), iVar18 == 0))\n        goto LAB_0001d698;\n        uVar21 = 1;\n        uVar19 = 0;\nLAB_0001d6c8:\n        uVar16 = iVar17 - 0x45U & 0xff;\n        if (uVar16 < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d6e4 */\n                    /* WARNING: Treating indirect jump as call */\n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)))();\n          return uVar19;\n        }\n        uVar16 = iVar17 - 0x42U & 0xff;\n        if (uVar16 < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d7b8 */\n                    /* WARNING: Treating indirect jump as call */\n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)))(1);\n          return uVar19;\n        }\n      }\n      else {\n        uVar19 = 0;\n        if (*piVar2 != 0) {\n          if (*piVar2 != 0x22) goto LAB_0001d698;\n          uVar19 = 1;\n        }\n        if ((param_5 == 0) || (iVar17 = (int)(char)*(byte *)*param_2, iVar17 == 0)) {\n          *param_4 = uVar21;\n          goto LAB_0001d630;\n        }\n        iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17);\n        if (iVar18 != 0) goto LAB_0001d6c8;\n      }" if (parenthesized_expression "((byte *)*param_2 == param_1)" ( (binary_expression "(byte *)*param_2 == param_1" (cast_expression "(byte *)*param_2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier)) == identifier) )) (compound_statement "{\n        if (((param_5 == 0) || (iVar17 = (int)(char)*param_1, iVar17 == 0)) ||\n           (iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17), iVar18 == 0))\n        goto LAB_0001d698;\n        uVar21 = 1;\n        uVar19 = 0;\nLAB_0001d6c8:\n        uVar16 = iVar17 - 0x45U & 0xff;\n        if (uVar16 < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d6e4 */\n                    /* WARNING: Treating indirect jump as call */\n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)))();\n          return uVar19;\n        }\n        uVar16 = iVar17 - 0x42U & 0xff;\n        if (uVar16 < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d7b8 */\n                    /* WARNING: Treating indirect jump as call */\n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)))(1);\n          return uVar19;\n        }\n      }" { (if_statement "if (((param_5 == 0) || (iVar17 = (int)(char)*param_1, iVar17 == 0)) ||\n           (iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17), iVar18 == 0))\n        goto LAB_0001d698;" if (parenthesized_expression "(((param_5 == 0) || (iVar17 = (int)(char)*param_1, iVar17 == 0)) ||\n           (iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17), iVar18 == 0))" ( (binary_expression "((param_5 == 0) || (iVar17 = (int)(char)*param_1, iVar17 == 0)) ||\n           (iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17), iVar18 == 0)" (parenthesized_expression "((param_5 == 0) || (iVar17 = (int)(char)*param_1, iVar17 == 0))" ( (binary_expression "(param_5 == 0) || (iVar17 = (int)(char)*param_1, iVar17 == 0)" (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar17 = (int)(char)*param_1, iVar17 == 0)" ( (comma_expression "iVar17 = (int)(char)*param_1, iVar17 == 0" (assignment_expression "iVar17 = (int)(char)*param_1" identifier = (cast_expression "(int)(char)*param_1" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*param_1" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*param_1" * identifier)))) , (binary_expression "iVar17 == 0" identifier == number_literal)) ))) )) || (parenthesized_expression "(iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17), iVar18 == 0)" ( (comma_expression "iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17), iVar18 == 0" (assignment_expression "iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17)" identifier = (call_expression "(*(code *)PTR_strchr_00034344)(param_5,iVar17)" (parenthesized_expression "(*(code *)PTR_strchr_00034344)" ( (pointer_expression "*(code *)PTR_strchr_00034344" * (cast_expression "(code *)PTR_strchr_00034344" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_5,iVar17)" ( identifier , identifier )))) , (binary_expression "iVar18 == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_0001d698;" goto statement_identifier ;)) (expression_statement "uVar21 = 1;" (assignment_expression "uVar21 = 1" identifier = number_literal) ;) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0001d6c8:\n        uVar16 = iVar17 - 0x45U & 0xff;" statement_identifier : (expression_statement "uVar16 = iVar17 - 0x45U & 0xff;" (assignment_expression "uVar16 = iVar17 - 0x45U & 0xff" identifier = (binary_expression "iVar17 - 0x45U & 0xff" (binary_expression "iVar17 - 0x45U" identifier - number_literal) & number_literal)) ;)) (if_statement "if (uVar16 < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d6e4 */\n                    /* WARNING: Treating indirect jump as call */\n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)))();\n          return uVar19;\n        }" if (parenthesized_expression "(uVar16 < 0x30)" ( (binary_expression "uVar16 < 0x30" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not emulate address calculation at 0x0001d6e4 */\n                    /* WARNING: Treating indirect jump as call */\n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)))();\n          return uVar19;\n        }" { comment comment (expression_statement "uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)))();" (assignment_expression "uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)))()" identifier = (call_expression "(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)))" ( (pointer_expression "*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230))" * (cast_expression "(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230))" ( (binary_expression "&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)" * (cast_expression "(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)" ( (binary_expression "PTR_LAB_00034138 + uVar16 * 4 + 0x3230" (binary_expression "PTR_LAB_00034138 + uVar16 * 4" identifier + (binary_expression "uVar16 * 4" identifier * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return uVar19;" return identifier ;) })) (expression_statement "uVar16 = iVar17 - 0x42U & 0xff;" (assignment_expression "uVar16 = iVar17 - 0x42U & 0xff" identifier = (binary_expression "iVar17 - 0x42U & 0xff" (binary_expression "iVar17 - 0x42U" identifier - number_literal) & number_literal)) ;) (if_statement "if (uVar16 < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d7b8 */\n                    /* WARNING: Treating indirect jump as call */\n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)))(1);\n          return uVar19;\n        }" if (parenthesized_expression "(uVar16 < 0x36)" ( (binary_expression "uVar16 < 0x36" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not emulate address calculation at 0x0001d7b8 */\n                    /* WARNING: Treating indirect jump as call */\n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)))(1);\n          return uVar19;\n        }" { comment comment (expression_statement "uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)))(1);" (assignment_expression "uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)))(1)" identifier = (call_expression "(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)))(1)" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)))" ( (pointer_expression "*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0))" * (cast_expression "(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0))" ( (binary_expression "&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)" * (cast_expression "(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)" ( (binary_expression "PTR_LAB_00034138 + uVar16 * 4 + 0x33b0" (binary_expression "PTR_LAB_00034138 + uVar16 * 4" identifier + (binary_expression "uVar16 * 4" identifier * number_literal)) + number_literal) ))))) )))) )) (argument_list "(1)" ( number_literal )))) ;) (return_statement "return uVar19;" return identifier ;) })) }) (else_clause "else {\n        uVar19 = 0;\n        if (*piVar2 != 0) {\n          if (*piVar2 != 0x22) goto LAB_0001d698;\n          uVar19 = 1;\n        }\n        if ((param_5 == 0) || (iVar17 = (int)(char)*(byte *)*param_2, iVar17 == 0)) {\n          *param_4 = uVar21;\n          goto LAB_0001d630;\n        }\n        iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17);\n        if (iVar18 != 0) goto LAB_0001d6c8;\n      }" else (compound_statement "{\n        uVar19 = 0;\n        if (*piVar2 != 0) {\n          if (*piVar2 != 0x22) goto LAB_0001d698;\n          uVar19 = 1;\n        }\n        if ((param_5 == 0) || (iVar17 = (int)(char)*(byte *)*param_2, iVar17 == 0)) {\n          *param_4 = uVar21;\n          goto LAB_0001d630;\n        }\n        iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17);\n        if (iVar18 != 0) goto LAB_0001d6c8;\n      }" { (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (if_statement "if (*piVar2 != 0) {\n          if (*piVar2 != 0x22) goto LAB_0001d698;\n          uVar19 = 1;\n        }" if (parenthesized_expression "(*piVar2 != 0)" ( (binary_expression "*piVar2 != 0" (pointer_expression "*piVar2" * identifier) != number_literal) )) (compound_statement "{\n          if (*piVar2 != 0x22) goto LAB_0001d698;\n          uVar19 = 1;\n        }" { (if_statement "if (*piVar2 != 0x22) goto LAB_0001d698;" if (parenthesized_expression "(*piVar2 != 0x22)" ( (binary_expression "*piVar2 != 0x22" (pointer_expression "*piVar2" * identifier) != number_literal) )) (goto_statement "goto LAB_0001d698;" goto statement_identifier ;)) (expression_statement "uVar19 = 1;" (assignment_expression "uVar19 = 1" identifier = number_literal) ;) })) (if_statement "if ((param_5 == 0) || (iVar17 = (int)(char)*(byte *)*param_2, iVar17 == 0)) {\n          *param_4 = uVar21;\n          goto LAB_0001d630;\n        }" if (parenthesized_expression "((param_5 == 0) || (iVar17 = (int)(char)*(byte *)*param_2, iVar17 == 0))" ( (binary_expression "(param_5 == 0) || (iVar17 = (int)(char)*(byte *)*param_2, iVar17 == 0)" (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar17 = (int)(char)*(byte *)*param_2, iVar17 == 0)" ( (comma_expression "iVar17 = (int)(char)*(byte *)*param_2, iVar17 == 0" (assignment_expression "iVar17 = (int)(char)*(byte *)*param_2" identifier = (cast_expression "(int)(char)*(byte *)*param_2" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*(byte *)*param_2" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)*param_2" * (cast_expression "(byte *)*param_2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier)))))) , (binary_expression "iVar17 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n          *param_4 = uVar21;\n          goto LAB_0001d630;\n        }" { (expression_statement "*param_4 = uVar21;" (assignment_expression "*param_4 = uVar21" (pointer_expression "*param_4" * identifier) = identifier) ;) (goto_statement "goto LAB_0001d630;" goto statement_identifier ;) })) (expression_statement "iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17);" (assignment_expression "iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17)" identifier = (call_expression "(*(code *)PTR_strchr_00034344)(param_5,iVar17)" (parenthesized_expression "(*(code *)PTR_strchr_00034344)" ( (pointer_expression "*(code *)PTR_strchr_00034344" * (cast_expression "(code *)PTR_strchr_00034344" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_5,iVar17)" ( identifier , identifier )))) ;) (if_statement "if (iVar18 != 0) goto LAB_0001d6c8;" if (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001d6c8;" goto statement_identifier ;)) }))) (expression_statement "uVar19 = uVar19 | 2;" (assignment_expression "uVar19 = uVar19 | 2" identifier = (binary_expression "uVar19 | 2" identifier | number_literal)) ;) (expression_statement "*param_4 = uVar21;" (assignment_expression "*param_4 = uVar21" (pointer_expression "*param_4" * identifier) = identifier) ;) }))) (labeled_statement "LAB_0001d630:\n    if (local_2c == *(int *)puVar20) {\n      return uVar19;\n    }" statement_identifier : (if_statement "if (local_2c == *(int *)puVar20) {\n      return uVar19;\n    }" if (parenthesized_expression "(local_2c == *(int *)puVar20)" ( (binary_expression "local_2c == *(int *)puVar20" identifier == (pointer_expression "*(int *)puVar20" * (cast_expression "(int *)puVar20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n      return uVar19;\n    }" { (return_statement "return uVar19;" return identifier ;) }))) (expression_statement "(*(code *)PTR___stack_chk_fail_00034398)();" (call_expression "(*(code *)PTR___stack_chk_fail_00034398)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00034398)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00034398" * (cast_expression "(code *)PTR___stack_chk_fail_00034398" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "uVar12 = 0x60;" (assignment_expression "uVar12 = 0x60" identifier = number_literal) ;) (expression_statement "piVar2 = (int *)(PTR_LAB_00034138 + 0x31f4);" (assignment_expression "piVar2 = (int *)(PTR_LAB_00034138 + 0x31f4)" identifier = (cast_expression "(int *)(PTR_LAB_00034138 + 0x31f4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00034138 + 0x31f4)" ( (binary_expression "PTR_LAB_00034138 + 0x31f4" identifier + number_literal) )))) ;) (expression_statement "puVar11 = PTR_LAB_00034138 + 0x3204;" (assignment_expression "puVar11 = PTR_LAB_00034138 + 0x3204" identifier = (binary_expression "PTR_LAB_00034138 + 0x3204" identifier + number_literal)) ;) (expression_statement "puVar20 = PTR___assert_fail_000342ac;" (assignment_expression "puVar20 = PTR___assert_fail_000342ac" identifier = identifier) ;) (expression_statement "(*(code *)PTR___assert_fail_000342ac)(puVar11);" (call_expression "(*(code *)PTR___assert_fail_000342ac)(puVar11)" (parenthesized_expression "(*(code *)PTR___assert_fail_000342ac)" ( (pointer_expression "*(code *)PTR___assert_fail_000342ac" * (cast_expression "(code *)PTR___assert_fail_000342ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar11)" ( identifier ))) ;) (expression_statement "piVar3 = *(int **)(puVar20 + 0x16648);" (assignment_expression "piVar3 = *(int **)(puVar20 + 0x16648)" identifier = (pointer_expression "*(int **)(puVar20 + 0x16648)" * (cast_expression "(int **)(puVar20 + 0x16648)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x16648)" ( (binary_expression "puVar20 + 0x16648" identifier + number_literal) ))))) ;) (expression_statement "iVar17 = *piVar3;" (assignment_expression "iVar17 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (expression_statement "iVar18 = *(int *)(puVar20 + 0x163b8);" (assignment_expression "iVar18 = *(int *)(puVar20 + 0x163b8)" identifier = (pointer_expression "*(int *)(puVar20 + 0x163b8)" * (cast_expression "(int *)(puVar20 + 0x163b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x163b8)" ( (binary_expression "puVar20 + 0x163b8" identifier + number_literal) ))))) ;) (if_statement "if (piVar2 != (int *)0x406) {\n    uVar19 = (**(code **)(puVar20 + 0x16598))();\n    goto LAB_0001ddf8;\n  }" if (parenthesized_expression "(piVar2 != (int *)0x406)" ( (binary_expression "piVar2 != (int *)0x406" identifier != (cast_expression "(int *)0x406" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar19 = (**(code **)(puVar20 + 0x16598))();\n    goto LAB_0001ddf8;\n  }" { (expression_statement "uVar19 = (**(code **)(puVar20 + 0x16598))();" (assignment_expression "uVar19 = (**(code **)(puVar20 + 0x16598))()" identifier = (call_expression "(**(code **)(puVar20 + 0x16598))()" (parenthesized_expression "(**(code **)(puVar20 + 0x16598))" ( (pointer_expression "**(code **)(puVar20 + 0x16598)" * (pointer_expression "*(code **)(puVar20 + 0x16598)" * (cast_expression "(code **)(puVar20 + 0x16598)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x16598)" ( (binary_expression "puVar20 + 0x16598" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (goto_statement "goto LAB_0001ddf8;" goto statement_identifier ;) })) (if_statement "if (*(int *)(iVar18 + 0x4580) < 0) {\n    piVar2 = (int *)0x0;\n    uVar19 = rpl_fcntl();\n    if (((int)uVar19 < 0) || (uVar16 = uVar19, *(int *)(iVar18 + 0x4580) != -1)) goto LAB_0001ddf8;\n  }\n  else {\n    uVar19 = (**(code **)(puVar20 + 0x16598))();\n    if ((-1 < (int)uVar19) || (piVar5 = (int *)(**(code **)(puVar20 + 0x165b0))(), *piVar5 != 0x16))\n    {\n      *(undefined4 *)(iVar18 + 0x4580) = 1;\n      goto LAB_0001ddf8;\n    }\n    piVar2 = (int *)0x0;\n    uVar19 = rpl_fcntl(puVar11,0,uVar12);\n    if ((int)uVar19 < 0) goto LAB_0001ddf8;\n    *(undefined4 *)(iVar18 + 0x4580) = 0xffffffff;\n    uVar16 = uVar19;\n  }" if (parenthesized_expression "(*(int *)(iVar18 + 0x4580) < 0)" ( (binary_expression "*(int *)(iVar18 + 0x4580) < 0" (pointer_expression "*(int *)(iVar18 + 0x4580)" * (cast_expression "(int *)(iVar18 + 0x4580)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4580)" ( (binary_expression "iVar18 + 0x4580" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n    piVar2 = (int *)0x0;\n    uVar19 = rpl_fcntl();\n    if (((int)uVar19 < 0) || (uVar16 = uVar19, *(int *)(iVar18 + 0x4580) != -1)) goto LAB_0001ddf8;\n  }" { (expression_statement "piVar2 = (int *)0x0;" (assignment_expression "piVar2 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar19 = rpl_fcntl();" (assignment_expression "uVar19 = rpl_fcntl()" identifier = (call_expression "rpl_fcntl()" identifier (argument_list "()" ( )))) ;) (if_statement "if (((int)uVar19 < 0) || (uVar16 = uVar19, *(int *)(iVar18 + 0x4580) != -1)) goto LAB_0001ddf8;" if (parenthesized_expression "(((int)uVar19 < 0) || (uVar16 = uVar19, *(int *)(iVar18 + 0x4580) != -1))" ( (binary_expression "((int)uVar19 < 0) || (uVar16 = uVar19, *(int *)(iVar18 + 0x4580) != -1)" (parenthesized_expression "((int)uVar19 < 0)" ( (binary_expression "(int)uVar19 < 0" (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) || (parenthesized_expression "(uVar16 = uVar19, *(int *)(iVar18 + 0x4580) != -1)" ( (comma_expression "uVar16 = uVar19, *(int *)(iVar18 + 0x4580) != -1" (assignment_expression "uVar16 = uVar19" identifier = identifier) , (binary_expression "*(int *)(iVar18 + 0x4580) != -1" (pointer_expression "*(int *)(iVar18 + 0x4580)" * (cast_expression "(int *)(iVar18 + 0x4580)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4580)" ( (binary_expression "iVar18 + 0x4580" identifier + number_literal) )))) != number_literal)) ))) )) (goto_statement "goto LAB_0001ddf8;" goto statement_identifier ;)) }) (else_clause "else {\n    uVar19 = (**(code **)(puVar20 + 0x16598))();\n    if ((-1 < (int)uVar19) || (piVar5 = (int *)(**(code **)(puVar20 + 0x165b0))(), *piVar5 != 0x16))\n    {\n      *(undefined4 *)(iVar18 + 0x4580) = 1;\n      goto LAB_0001ddf8;\n    }\n    piVar2 = (int *)0x0;\n    uVar19 = rpl_fcntl(puVar11,0,uVar12);\n    if ((int)uVar19 < 0) goto LAB_0001ddf8;\n    *(undefined4 *)(iVar18 + 0x4580) = 0xffffffff;\n    uVar16 = uVar19;\n  }" else (compound_statement "{\n    uVar19 = (**(code **)(puVar20 + 0x16598))();\n    if ((-1 < (int)uVar19) || (piVar5 = (int *)(**(code **)(puVar20 + 0x165b0))(), *piVar5 != 0x16))\n    {\n      *(undefined4 *)(iVar18 + 0x4580) = 1;\n      goto LAB_0001ddf8;\n    }\n    piVar2 = (int *)0x0;\n    uVar19 = rpl_fcntl(puVar11,0,uVar12);\n    if ((int)uVar19 < 0) goto LAB_0001ddf8;\n    *(undefined4 *)(iVar18 + 0x4580) = 0xffffffff;\n    uVar16 = uVar19;\n  }" { (expression_statement "uVar19 = (**(code **)(puVar20 + 0x16598))();" (assignment_expression "uVar19 = (**(code **)(puVar20 + 0x16598))()" identifier = (call_expression "(**(code **)(puVar20 + 0x16598))()" (parenthesized_expression "(**(code **)(puVar20 + 0x16598))" ( (pointer_expression "**(code **)(puVar20 + 0x16598)" * (pointer_expression "*(code **)(puVar20 + 0x16598)" * (cast_expression "(code **)(puVar20 + 0x16598)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x16598)" ( (binary_expression "puVar20 + 0x16598" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if ((-1 < (int)uVar19) || (piVar5 = (int *)(**(code **)(puVar20 + 0x165b0))(), *piVar5 != 0x16))\n    {\n      *(undefined4 *)(iVar18 + 0x4580) = 1;\n      goto LAB_0001ddf8;\n    }" if (parenthesized_expression "((-1 < (int)uVar19) || (piVar5 = (int *)(**(code **)(puVar20 + 0x165b0))(), *piVar5 != 0x16))" ( (binary_expression "(-1 < (int)uVar19) || (piVar5 = (int *)(**(code **)(puVar20 + 0x165b0))(), *piVar5 != 0x16)" (parenthesized_expression "(-1 < (int)uVar19)" ( (binary_expression "-1 < (int)uVar19" number_literal < (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "(piVar5 = (int *)(**(code **)(puVar20 + 0x165b0))(), *piVar5 != 0x16)" ( (comma_expression "piVar5 = (int *)(**(code **)(puVar20 + 0x165b0))(), *piVar5 != 0x16" (assignment_expression "piVar5 = (int *)(**(code **)(puVar20 + 0x165b0))()" identifier = (cast_expression "(int *)(**(code **)(puVar20 + 0x165b0))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar20 + 0x165b0))()" (parenthesized_expression "(**(code **)(puVar20 + 0x165b0))" ( (pointer_expression "**(code **)(puVar20 + 0x165b0)" * (pointer_expression "*(code **)(puVar20 + 0x165b0)" * (cast_expression "(code **)(puVar20 + 0x165b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x165b0)" ( (binary_expression "puVar20 + 0x165b0" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) , (binary_expression "*piVar5 != 0x16" (pointer_expression "*piVar5" * identifier) != number_literal)) ))) )) (compound_statement "{\n      *(undefined4 *)(iVar18 + 0x4580) = 1;\n      goto LAB_0001ddf8;\n    }" { (expression_statement "*(undefined4 *)(iVar18 + 0x4580) = 1;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4580) = 1" (pointer_expression "*(undefined4 *)(iVar18 + 0x4580)" * (cast_expression "(undefined4 *)(iVar18 + 0x4580)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4580)" ( (binary_expression "iVar18 + 0x4580" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_0001ddf8;" goto statement_identifier ;) })) (expression_statement "piVar2 = (int *)0x0;" (assignment_expression "piVar2 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar19 = rpl_fcntl(puVar11,0,uVar12);" (assignment_expression "uVar19 = rpl_fcntl(puVar11,0,uVar12)" identifier = (call_expression "rpl_fcntl(puVar11,0,uVar12)" identifier (argument_list "(puVar11,0,uVar12)" ( identifier , number_literal , identifier )))) ;) (if_statement "if ((int)uVar19 < 0) goto LAB_0001ddf8;" if (parenthesized_expression "((int)uVar19 < 0)" ( (binary_expression "(int)uVar19 < 0" (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0001ddf8;" goto statement_identifier ;)) (expression_statement "*(undefined4 *)(iVar18 + 0x4580) = 0xffffffff;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4580) = 0xffffffff" (pointer_expression "*(undefined4 *)(iVar18 + 0x4580)" * (cast_expression "(undefined4 *)(iVar18 + 0x4580)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4580)" ( (binary_expression "iVar18 + 0x4580" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar16 = uVar19;" (assignment_expression "uVar16 = uVar19" identifier = identifier) ;) }))) (expression_statement "piVar2 = (int *)0x1;" (assignment_expression "piVar2 = (int *)0x1" identifier = (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar19 = (**(code **)(puVar20 + 0x16598))(uVar16);" (assignment_expression "uVar19 = (**(code **)(puVar20 + 0x16598))(uVar16)" identifier = (call_expression "(**(code **)(puVar20 + 0x16598))(uVar16)" (parenthesized_expression "(**(code **)(puVar20 + 0x16598))" ( (pointer_expression "**(code **)(puVar20 + 0x16598)" * (pointer_expression "*(code **)(puVar20 + 0x16598)" * (cast_expression "(code **)(puVar20 + 0x16598)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x16598)" ( (binary_expression "puVar20 + 0x16598" identifier + number_literal) ))))) )) (argument_list "(uVar16)" ( identifier )))) ;) (if_statement "if (-1 < (int)uVar19) {\n    piVar2 = (int *)0x2;\n    iVar18 = (**(code **)(puVar20 + 0x16598))(uVar16,2,uVar19 | 1);\n    uVar19 = uVar16;\n    if (iVar18 != -1) goto LAB_0001ddf8;\n  }" if (parenthesized_expression "(-1 < (int)uVar19)" ( (binary_expression "-1 < (int)uVar19" number_literal < (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    piVar2 = (int *)0x2;\n    iVar18 = (**(code **)(puVar20 + 0x16598))(uVar16,2,uVar19 | 1);\n    uVar19 = uVar16;\n    if (iVar18 != -1) goto LAB_0001ddf8;\n  }" { (expression_statement "piVar2 = (int *)0x2;" (assignment_expression "piVar2 = (int *)0x2" identifier = (cast_expression "(int *)0x2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar18 = (**(code **)(puVar20 + 0x16598))(uVar16,2,uVar19 | 1);" (assignment_expression "iVar18 = (**(code **)(puVar20 + 0x16598))(uVar16,2,uVar19 | 1)" identifier = (call_expression "(**(code **)(puVar20 + 0x16598))(uVar16,2,uVar19 | 1)" (parenthesized_expression "(**(code **)(puVar20 + 0x16598))" ( (pointer_expression "**(code **)(puVar20 + 0x16598)" * (pointer_expression "*(code **)(puVar20 + 0x16598)" * (cast_expression "(code **)(puVar20 + 0x16598)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x16598)" ( (binary_expression "puVar20 + 0x16598" identifier + number_literal) ))))) )) (argument_list "(uVar16,2,uVar19 | 1)" ( identifier , number_literal , (binary_expression "uVar19 | 1" identifier | number_literal) )))) ;) (expression_statement "uVar19 = uVar16;" (assignment_expression "uVar19 = uVar16" identifier = identifier) ;) (if_statement "if (iVar18 != -1) goto LAB_0001ddf8;" if (parenthesized_expression "(iVar18 != -1)" ( (binary_expression "iVar18 != -1" identifier != number_literal) )) (goto_statement "goto LAB_0001ddf8;" goto statement_identifier ;)) })) (expression_statement "puVar4 = (undefined4 *)(**(code **)(puVar20 + 0x165b0))();" (assignment_expression "puVar4 = (undefined4 *)(**(code **)(puVar20 + 0x165b0))()" identifier = (cast_expression "(undefined4 *)(**(code **)(puVar20 + 0x165b0))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar20 + 0x165b0))()" (parenthesized_expression "(**(code **)(puVar20 + 0x165b0))" ( (pointer_expression "**(code **)(puVar20 + 0x165b0)" * (pointer_expression "*(code **)(puVar20 + 0x165b0)" * (cast_expression "(code **)(puVar20 + 0x165b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x165b0)" ( (binary_expression "puVar20 + 0x165b0" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar12 = *puVar4;" (assignment_expression "uVar12 = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "uVar19 = 0xffffffff;" (assignment_expression "uVar19 = 0xffffffff" identifier = number_literal) ;) (expression_statement "(**(code **)(puVar20 + 0x16540))(uVar16);" (call_expression "(**(code **)(puVar20 + 0x16540))(uVar16)" (parenthesized_expression "(**(code **)(puVar20 + 0x16540))" ( (pointer_expression "**(code **)(puVar20 + 0x16540)" * (pointer_expression "*(code **)(puVar20 + 0x16540)" * (cast_expression "(code **)(puVar20 + 0x16540)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x16540)" ( (binary_expression "puVar20 + 0x16540" identifier + number_literal) ))))) )) (argument_list "(uVar16)" ( identifier ))) ;) (expression_statement "*puVar4 = uVar12;" (assignment_expression "*puVar4 = uVar12" (pointer_expression "*puVar4" * identifier) = identifier) ;) (labeled_statement "LAB_0001ddf8:\n  if (iVar17 != *piVar3) {\n    (**(code **)(puVar20 + 0x16628))();\n    iVar18 = piVar2[8];\n    iVar15 = *piVar2;\n    uVar19 = (uint)(iVar18 < iVar15);\n    uVar16 = piVar2[7];\n    if ((uVar19 != 0) && (uVar19 = (uint)((int)uVar16 < iVar18), uVar19 != 0)) {\n      iVar8 = iVar15 - iVar18;\n      uVar6 = uVar16;\n      iVar14 = iVar15;\n      do {\n        iVar13 = iVar18 - uVar6;\n        uVar19 = iVar8 + uVar6;\n        if (iVar13 < iVar8) {\n          iVar14 = iVar14 - iVar13;\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar14 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            uVar19 = uVar6;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while ((undefined4 *)(iVar17 + (iVar13 + uVar6) * 4) != puVar9);\n        }\n        else {\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar18 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while (puVar9 != (undefined4 *)(iVar17 + uVar19 * 4));\n        }\n      } while ((iVar18 < iVar14) && (iVar8 = iVar14 - iVar18, uVar6 = uVar19, (int)uVar19 < iVar18))\n      ;\n    }\n    piVar2[8] = iVar15;\n    piVar2[7] = (iVar15 - iVar18) + uVar16;\n    return uVar19;\n  }" statement_identifier : (if_statement "if (iVar17 != *piVar3) {\n    (**(code **)(puVar20 + 0x16628))();\n    iVar18 = piVar2[8];\n    iVar15 = *piVar2;\n    uVar19 = (uint)(iVar18 < iVar15);\n    uVar16 = piVar2[7];\n    if ((uVar19 != 0) && (uVar19 = (uint)((int)uVar16 < iVar18), uVar19 != 0)) {\n      iVar8 = iVar15 - iVar18;\n      uVar6 = uVar16;\n      iVar14 = iVar15;\n      do {\n        iVar13 = iVar18 - uVar6;\n        uVar19 = iVar8 + uVar6;\n        if (iVar13 < iVar8) {\n          iVar14 = iVar14 - iVar13;\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar14 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            uVar19 = uVar6;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while ((undefined4 *)(iVar17 + (iVar13 + uVar6) * 4) != puVar9);\n        }\n        else {\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar18 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while (puVar9 != (undefined4 *)(iVar17 + uVar19 * 4));\n        }\n      } while ((iVar18 < iVar14) && (iVar8 = iVar14 - iVar18, uVar6 = uVar19, (int)uVar19 < iVar18))\n      ;\n    }\n    piVar2[8] = iVar15;\n    piVar2[7] = (iVar15 - iVar18) + uVar16;\n    return uVar19;\n  }" if (parenthesized_expression "(iVar17 != *piVar3)" ( (binary_expression "iVar17 != *piVar3" identifier != (pointer_expression "*piVar3" * identifier)) )) (compound_statement "{\n    (**(code **)(puVar20 + 0x16628))();\n    iVar18 = piVar2[8];\n    iVar15 = *piVar2;\n    uVar19 = (uint)(iVar18 < iVar15);\n    uVar16 = piVar2[7];\n    if ((uVar19 != 0) && (uVar19 = (uint)((int)uVar16 < iVar18), uVar19 != 0)) {\n      iVar8 = iVar15 - iVar18;\n      uVar6 = uVar16;\n      iVar14 = iVar15;\n      do {\n        iVar13 = iVar18 - uVar6;\n        uVar19 = iVar8 + uVar6;\n        if (iVar13 < iVar8) {\n          iVar14 = iVar14 - iVar13;\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar14 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            uVar19 = uVar6;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while ((undefined4 *)(iVar17 + (iVar13 + uVar6) * 4) != puVar9);\n        }\n        else {\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar18 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while (puVar9 != (undefined4 *)(iVar17 + uVar19 * 4));\n        }\n      } while ((iVar18 < iVar14) && (iVar8 = iVar14 - iVar18, uVar6 = uVar19, (int)uVar19 < iVar18))\n      ;\n    }\n    piVar2[8] = iVar15;\n    piVar2[7] = (iVar15 - iVar18) + uVar16;\n    return uVar19;\n  }" { (expression_statement "(**(code **)(puVar20 + 0x16628))();" (call_expression "(**(code **)(puVar20 + 0x16628))()" (parenthesized_expression "(**(code **)(puVar20 + 0x16628))" ( (pointer_expression "**(code **)(puVar20 + 0x16628)" * (pointer_expression "*(code **)(puVar20 + 0x16628)" * (cast_expression "(code **)(puVar20 + 0x16628)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x16628)" ( (binary_expression "puVar20 + 0x16628" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar18 = piVar2[8];" (assignment_expression "iVar18 = piVar2[8]" identifier = (subscript_expression "piVar2[8]" identifier [ number_literal ])) ;) (expression_statement "iVar15 = *piVar2;" (assignment_expression "iVar15 = *piVar2" identifier = (pointer_expression "*piVar2" * identifier)) ;) (expression_statement "uVar19 = (uint)(iVar18 < iVar15);" (assignment_expression "uVar19 = (uint)(iVar18 < iVar15)" identifier = (call_expression "(uint)(iVar18 < iVar15)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar18 < iVar15)" ( (binary_expression "iVar18 < iVar15" identifier < identifier) )))) ;) (expression_statement "uVar16 = piVar2[7];" (assignment_expression "uVar16 = piVar2[7]" identifier = (subscript_expression "piVar2[7]" identifier [ number_literal ])) ;) (if_statement "if ((uVar19 != 0) && (uVar19 = (uint)((int)uVar16 < iVar18), uVar19 != 0)) {\n      iVar8 = iVar15 - iVar18;\n      uVar6 = uVar16;\n      iVar14 = iVar15;\n      do {\n        iVar13 = iVar18 - uVar6;\n        uVar19 = iVar8 + uVar6;\n        if (iVar13 < iVar8) {\n          iVar14 = iVar14 - iVar13;\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar14 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            uVar19 = uVar6;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while ((undefined4 *)(iVar17 + (iVar13 + uVar6) * 4) != puVar9);\n        }\n        else {\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar18 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while (puVar9 != (undefined4 *)(iVar17 + uVar19 * 4));\n        }\n      } while ((iVar18 < iVar14) && (iVar8 = iVar14 - iVar18, uVar6 = uVar19, (int)uVar19 < iVar18))\n      ;\n    }" if (parenthesized_expression "((uVar19 != 0) && (uVar19 = (uint)((int)uVar16 < iVar18), uVar19 != 0))" ( (binary_expression "(uVar19 != 0) && (uVar19 = (uint)((int)uVar16 < iVar18), uVar19 != 0)" (parenthesized_expression "(uVar19 != 0)" ( (binary_expression "uVar19 != 0" identifier != number_literal) )) && (parenthesized_expression "(uVar19 = (uint)((int)uVar16 < iVar18), uVar19 != 0)" ( (comma_expression "uVar19 = (uint)((int)uVar16 < iVar18), uVar19 != 0" (assignment_expression "uVar19 = (uint)((int)uVar16 < iVar18)" identifier = (call_expression "(uint)((int)uVar16 < iVar18)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)uVar16 < iVar18)" ( (binary_expression "(int)uVar16 < iVar18" (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )))) , (binary_expression "uVar19 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      iVar8 = iVar15 - iVar18;\n      uVar6 = uVar16;\n      iVar14 = iVar15;\n      do {\n        iVar13 = iVar18 - uVar6;\n        uVar19 = iVar8 + uVar6;\n        if (iVar13 < iVar8) {\n          iVar14 = iVar14 - iVar13;\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar14 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            uVar19 = uVar6;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while ((undefined4 *)(iVar17 + (iVar13 + uVar6) * 4) != puVar9);\n        }\n        else {\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar18 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while (puVar9 != (undefined4 *)(iVar17 + uVar19 * 4));\n        }\n      } while ((iVar18 < iVar14) && (iVar8 = iVar14 - iVar18, uVar6 = uVar19, (int)uVar19 < iVar18))\n      ;\n    }" { (expression_statement "iVar8 = iVar15 - iVar18;" (assignment_expression "iVar8 = iVar15 - iVar18" identifier = (binary_expression "iVar15 - iVar18" identifier - identifier)) ;) (expression_statement "uVar6 = uVar16;" (assignment_expression "uVar6 = uVar16" identifier = identifier) ;) (expression_statement "iVar14 = iVar15;" (assignment_expression "iVar14 = iVar15" identifier = identifier) ;) (do_statement "do {\n        iVar13 = iVar18 - uVar6;\n        uVar19 = iVar8 + uVar6;\n        if (iVar13 < iVar8) {\n          iVar14 = iVar14 - iVar13;\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar14 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            uVar19 = uVar6;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while ((undefined4 *)(iVar17 + (iVar13 + uVar6) * 4) != puVar9);\n        }\n        else {\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar18 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while (puVar9 != (undefined4 *)(iVar17 + uVar19 * 4));\n        }\n      } while ((iVar18 < iVar14) && (iVar8 = iVar14 - iVar18, uVar6 = uVar19, (int)uVar19 < iVar18))\n      ;" do (compound_statement "{\n        iVar13 = iVar18 - uVar6;\n        uVar19 = iVar8 + uVar6;\n        if (iVar13 < iVar8) {\n          iVar14 = iVar14 - iVar13;\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar14 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            uVar19 = uVar6;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while ((undefined4 *)(iVar17 + (iVar13 + uVar6) * 4) != puVar9);\n        }\n        else {\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar18 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while (puVar9 != (undefined4 *)(iVar17 + uVar19 * 4));\n        }\n      }" { (expression_statement "iVar13 = iVar18 - uVar6;" (assignment_expression "iVar13 = iVar18 - uVar6" identifier = (binary_expression "iVar18 - uVar6" identifier - identifier)) ;) (expression_statement "uVar19 = iVar8 + uVar6;" (assignment_expression "uVar19 = iVar8 + uVar6" identifier = (binary_expression "iVar8 + uVar6" identifier + identifier)) ;) (if_statement "if (iVar13 < iVar8) {\n          iVar14 = iVar14 - iVar13;\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar14 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            uVar19 = uVar6;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while ((undefined4 *)(iVar17 + (iVar13 + uVar6) * 4) != puVar9);\n        }\n        else {\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar18 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while (puVar9 != (undefined4 *)(iVar17 + uVar19 * 4));\n        }" if (parenthesized_expression "(iVar13 < iVar8)" ( (binary_expression "iVar13 < iVar8" identifier < identifier) )) (compound_statement "{\n          iVar14 = iVar14 - iVar13;\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar14 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            uVar19 = uVar6;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while ((undefined4 *)(iVar17 + (iVar13 + uVar6) * 4) != puVar9);\n        }" { (expression_statement "iVar14 = iVar14 - iVar13;" (assignment_expression "iVar14 = iVar14 - iVar13" identifier = (binary_expression "iVar14 - iVar13" identifier - identifier)) ;) (expression_statement "puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);" (assignment_expression "puVar4 = (undefined4 *)(iVar17 + uVar6 * 4)" identifier = (cast_expression "(undefined4 *)(iVar17 + uVar6 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + uVar6 * 4)" ( (binary_expression "iVar17 + uVar6 * 4" identifier + (binary_expression "uVar6 * 4" identifier * number_literal)) )))) ;) (expression_statement "puVar10 = (undefined4 *)(iVar17 + iVar14 * 4);" (assignment_expression "puVar10 = (undefined4 *)(iVar17 + iVar14 * 4)" identifier = (cast_expression "(undefined4 *)(iVar17 + iVar14 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + iVar14 * 4)" ( (binary_expression "iVar17 + iVar14 * 4" identifier + (binary_expression "iVar14 * 4" identifier * number_literal)) )))) ;) (do_statement "do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            uVar19 = uVar6;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while ((undefined4 *)(iVar17 + (iVar13 + uVar6) * 4) != puVar9);" do (compound_statement "{\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            uVar19 = uVar6;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          }" { (expression_statement "puVar9 = puVar4 + 1;" (assignment_expression "puVar9 = puVar4 + 1" identifier = (binary_expression "puVar4 + 1" identifier + number_literal)) ;) (expression_statement "uVar12 = *puVar4;" (assignment_expression "uVar12 = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "*puVar4 = *puVar10;" (assignment_expression "*puVar4 = *puVar10" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "*puVar10 = uVar12;" (assignment_expression "*puVar10 = uVar12" (pointer_expression "*puVar10" * identifier) = identifier) ;) (expression_statement "uVar19 = uVar6;" (assignment_expression "uVar19 = uVar6" identifier = identifier) ;) (expression_statement "puVar4 = puVar9;" (assignment_expression "puVar4 = puVar9" identifier = identifier) ;) (expression_statement "puVar10 = puVar10 + 1;" (assignment_expression "puVar10 = puVar10 + 1" identifier = (binary_expression "puVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((undefined4 *)(iVar17 + (iVar13 + uVar6) * 4) != puVar9)" ( (binary_expression "(undefined4 *)(iVar17 + (iVar13 + uVar6) * 4) != puVar9" (cast_expression "(undefined4 *)(iVar17 + (iVar13 + uVar6) * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + (iVar13 + uVar6) * 4)" ( (binary_expression "iVar17 + (iVar13 + uVar6) * 4" identifier + (binary_expression "(iVar13 + uVar6) * 4" (parenthesized_expression "(iVar13 + uVar6)" ( (binary_expression "iVar13 + uVar6" identifier + identifier) )) * number_literal)) ))) != identifier) )) ;) }) (else_clause "else {\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar18 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while (puVar9 != (undefined4 *)(iVar17 + uVar19 * 4));\n        }" else (compound_statement "{\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar18 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while (puVar9 != (undefined4 *)(iVar17 + uVar19 * 4));\n        }" { (expression_statement "puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);" (assignment_expression "puVar4 = (undefined4 *)(iVar17 + uVar6 * 4)" identifier = (cast_expression "(undefined4 *)(iVar17 + uVar6 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + uVar6 * 4)" ( (binary_expression "iVar17 + uVar6 * 4" identifier + (binary_expression "uVar6 * 4" identifier * number_literal)) )))) ;) (expression_statement "puVar10 = (undefined4 *)(iVar17 + iVar18 * 4);" (assignment_expression "puVar10 = (undefined4 *)(iVar17 + iVar18 * 4)" identifier = (cast_expression "(undefined4 *)(iVar17 + iVar18 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + iVar18 * 4)" ( (binary_expression "iVar17 + iVar18 * 4" identifier + (binary_expression "iVar18 * 4" identifier * number_literal)) )))) ;) (do_statement "do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while (puVar9 != (undefined4 *)(iVar17 + uVar19 * 4));" do (compound_statement "{\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          }" { (expression_statement "puVar9 = puVar4 + 1;" (assignment_expression "puVar9 = puVar4 + 1" identifier = (binary_expression "puVar4 + 1" identifier + number_literal)) ;) (expression_statement "uVar12 = *puVar4;" (assignment_expression "uVar12 = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "*puVar4 = *puVar10;" (assignment_expression "*puVar4 = *puVar10" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "*puVar10 = uVar12;" (assignment_expression "*puVar10 = uVar12" (pointer_expression "*puVar10" * identifier) = identifier) ;) (expression_statement "puVar4 = puVar9;" (assignment_expression "puVar4 = puVar9" identifier = identifier) ;) (expression_statement "puVar10 = puVar10 + 1;" (assignment_expression "puVar10 = puVar10 + 1" identifier = (binary_expression "puVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar9 != (undefined4 *)(iVar17 + uVar19 * 4))" ( (binary_expression "puVar9 != (undefined4 *)(iVar17 + uVar19 * 4)" identifier != (cast_expression "(undefined4 *)(iVar17 + uVar19 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + uVar19 * 4)" ( (binary_expression "iVar17 + uVar19 * 4" identifier + (binary_expression "uVar19 * 4" identifier * number_literal)) )))) )) ;) }))) }) while (parenthesized_expression "((iVar18 < iVar14) && (iVar8 = iVar14 - iVar18, uVar6 = uVar19, (int)uVar19 < iVar18))" ( (binary_expression "(iVar18 < iVar14) && (iVar8 = iVar14 - iVar18, uVar6 = uVar19, (int)uVar19 < iVar18)" (parenthesized_expression "(iVar18 < iVar14)" ( (binary_expression "iVar18 < iVar14" identifier < identifier) )) && (parenthesized_expression "(iVar8 = iVar14 - iVar18, uVar6 = uVar19, (int)uVar19 < iVar18)" ( (comma_expression "iVar8 = iVar14 - iVar18, uVar6 = uVar19, (int)uVar19 < iVar18" (assignment_expression "iVar8 = iVar14 - iVar18" identifier = (binary_expression "iVar14 - iVar18" identifier - identifier)) , (comma_expression "uVar6 = uVar19, (int)uVar19 < iVar18" (assignment_expression "uVar6 = uVar19" identifier = identifier) , (binary_expression "(int)uVar19 < iVar18" (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier) < identifier))) ))) )) ;) })) (expression_statement "piVar2[8] = iVar15;" (assignment_expression "piVar2[8] = iVar15" (subscript_expression "piVar2[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar2[7] = (iVar15 - iVar18) + uVar16;" (assignment_expression "piVar2[7] = (iVar15 - iVar18) + uVar16" (subscript_expression "piVar2[7]" identifier [ number_literal ]) = (binary_expression "(iVar15 - iVar18) + uVar16" (parenthesized_expression "(iVar15 - iVar18)" ( (binary_expression "iVar15 - iVar18" identifier - identifier) )) + identifier)) ;) (return_statement "return uVar19;" return identifier ;) }))) (return_statement "return uVar19;" return identifier ;) })))
(translation_unit "strtol_error xstrtoumax(char *s,char **ptr,int strtol_base,uintmax_t *val,char *valid_suffixes)\n\n{\n  byte bVar1;\n  int *piVar2;\n  int *piVar3;\n  uint uVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  strtol_error sVar7;\n  byte *pbVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  undefined4 *puVar11;\n  undefined *puVar12;\n  undefined4 uVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  strtol_error sVar17;\n  int iVar18;\n  int iVar19;\n  strtol_error sVar20;\n  undefined *puVar21;\n  uintmax_t uVar22;\n  char *t_ptr;\n  int local_2c;\n  \n  puVar21 = PTR___stack_chk_guard_000343b8;\n  local_2c = *(int *)PTR___stack_chk_guard_000343b8;\n  if ((uint)strtol_base < 0x25) {\n    if (ptr == (char **)0x0) {\n      ptr = &t_ptr;\n    }\n    piVar2 = (int *)(*(code *)PTR___errno_location_00034320)();\n    puVar12 = PTR___ctype_b_loc_000342a8;\n    *piVar2 = 0;\n    piVar3 = (int *)(*(code *)puVar12)();\n    bVar1 = *s;\n    pbVar8 = (byte *)s;\n    while( true ) {\n      pbVar8 = pbVar8 + 1;\n      if ((*(ushort *)(*piVar3 + (uint)bVar1 * 2) & 0x20) == 0) break;\n      bVar1 = *pbVar8;\n    }\n    if (bVar1 == 0x2d) {\nLAB_0001d698:\n      sVar20 = LONGINT_INVALID;\n    }\n    else {\n      uVar22 = (*(code *)PTR___strtoull_internal_000343b0)(s,ptr,strtol_base,0);\n      if (*ptr == s) {\n        if (((valid_suffixes == (char *)0x0) || (iVar18 = (int)*s, iVar18 == 0)) ||\n           (iVar19 = (*(code *)PTR_strchr_00034344)(valid_suffixes,iVar18), iVar19 == 0))\n        goto LAB_0001d698;\n        uVar22 = 1;\n        sVar20 = LONGINT_OK;\nLAB_0001d6c8:\n        uVar4 = iVar18 - 0x45U & 0xff;\n        if (uVar4 < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d6e4 */\n                    /* WARNING: Treating indirect jump as call */\n          sVar20 = (*(code *)(&_gp + *(int *)(PTR_LAB_00034138 + uVar4 * 4 + 0x3230)))();\n          return sVar20;\n        }\n        uVar4 = iVar18 - 0x42U & 0xff;\n        if (uVar4 < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d7b8 */\n                    /* WARNING: Treating indirect jump as call */\n          sVar20 = (*(code *)(&_gp + *(int *)(PTR_LAB_00034138 + uVar4 * 4 + 0x33b0)))(1);\n          return sVar20;\n        }\n      }\n      else {\n        sVar20 = LONGINT_OK;\n        if (*piVar2 != 0) {\n          if (*piVar2 != 0x22) goto LAB_0001d698;\n          sVar20 = LONGINT_OVERFLOW;\n        }\n        if ((valid_suffixes == (char *)0x0) || (iVar18 = (int)**ptr, iVar18 == 0)) {\n          *val = uVar22;\n          goto LAB_0001d630;\n        }\n        iVar19 = (*(code *)PTR_strchr_00034344)(valid_suffixes,iVar18);\n        if (iVar19 != 0) goto LAB_0001d6c8;\n      }\n      sVar20 = sVar20 | LONGINT_INVALID_SUFFIX_CHAR;\n      *val = uVar22;\n    }\nLAB_0001d630:\n    if (local_2c == *(int *)puVar21) {\n      return sVar20;\n    }\n    (*(code *)PTR___stack_chk_fail_00034398)();\n  }\n  uVar13 = 0x60;\n  piVar2 = (int *)(PTR_LAB_00034138 + 0x31f4);\n  puVar12 = PTR_LAB_00034138 + 0x3204;\n  puVar21 = PTR___assert_fail_000342ac;\n  (*(code *)PTR___assert_fail_000342ac)();\n  piVar3 = *(int **)(puVar21 + 0x16648);\n  iVar18 = *piVar3;\n  iVar19 = *(int *)(puVar21 + 0x163b8);\n  if (piVar2 != (int *)0x406) {\n    sVar20 = (**(code **)(puVar21 + 0x16598))();\n    goto LAB_0001ddf8;\n  }\n  if (*(int *)(iVar19 + 0x4580) < 0) {\n    piVar2 = (int *)0x0;\n    sVar20 = rpl_fcntl((int)puVar12,0);\n    if (((int)sVar20 < 0) || (sVar17 = sVar20, *(int *)(iVar19 + 0x4580) != -1)) goto LAB_0001ddf8;\n  }\n  else {\n    sVar20 = (**(code **)(puVar21 + 0x16598))();\n    if ((-1 < (int)sVar20) || (piVar6 = (int *)(**(code **)(puVar21 + 0x165b0))(), *piVar6 != 0x16))\n    {\n      *(undefined4 *)(iVar19 + 0x4580) = 1;\n      goto LAB_0001ddf8;\n    }\n    piVar2 = (int *)0x0;\n    sVar20 = rpl_fcntl((int)puVar12,0,uVar13);\n    if ((int)sVar20 < 0) goto LAB_0001ddf8;\n    *(undefined4 *)(iVar19 + 0x4580) = 0xffffffff;\n    sVar17 = sVar20;\n  }\n  piVar2 = (int *)0x1;\n  uVar4 = (**(code **)(puVar21 + 0x16598))(sVar17);\n  if (-1 < (int)uVar4) {\n    piVar2 = (int *)0x2;\n    iVar19 = (**(code **)(puVar21 + 0x16598))(sVar17,2,uVar4 | 1);\n    sVar20 = sVar17;\n    if (iVar19 != -1) goto LAB_0001ddf8;\n  }\n  puVar5 = (undefined4 *)(**(code **)(puVar21 + 0x165b0))();\n  uVar13 = *puVar5;\n  sVar20 = ~LONGINT_OK;\n  (**(code **)(puVar21 + 0x16540))(sVar17);\n  *puVar5 = uVar13;\nLAB_0001ddf8:\n  if (iVar18 != *piVar3) {\n    (**(code **)(puVar21 + 0x16628))();\n    iVar19 = piVar2[8];\n    iVar16 = *piVar2;\n    sVar20 = (strtol_error)(iVar19 < iVar16);\n    sVar17 = piVar2[7];\n    if ((sVar20 != LONGINT_OK) &&\n       (sVar20 = (strtol_error)((int)sVar17 < iVar19), sVar20 != LONGINT_OK)) {\n      iVar9 = iVar16 - iVar19;\n      sVar7 = sVar17;\n      iVar15 = iVar16;\n      do {\n        iVar14 = iVar19 - sVar7;\n        sVar20 = iVar9 + sVar7;\n        if (iVar14 < iVar9) {\n          iVar15 = iVar15 - iVar14;\n          puVar5 = (undefined4 *)(iVar18 + sVar7 * 4);\n          puVar11 = (undefined4 *)(iVar18 + iVar15 * 4);\n          do {\n            puVar10 = puVar5 + 1;\n            uVar13 = *puVar5;\n            *puVar5 = *puVar11;\n            *puVar11 = uVar13;\n            sVar20 = sVar7;\n            puVar5 = puVar10;\n            puVar11 = puVar11 + 1;\n          } while ((undefined4 *)(iVar18 + (iVar14 + sVar7) * 4) != puVar10);\n        }\n        else {\n          puVar5 = (undefined4 *)(iVar18 + sVar7 * 4);\n          puVar11 = (undefined4 *)(iVar18 + iVar19 * 4);\n          do {\n            puVar10 = puVar5 + 1;\n            uVar13 = *puVar5;\n            *puVar5 = *puVar11;\n            *puVar11 = uVar13;\n            puVar5 = puVar10;\n            puVar11 = puVar11 + 1;\n          } while (puVar10 != (undefined4 *)(iVar18 + sVar20 * 4));\n        }\n      } while ((iVar19 < iVar15) && (iVar9 = iVar15 - iVar19, sVar7 = sVar20, (int)sVar20 < iVar19))\n      ;\n    }\n    piVar2[8] = iVar16;\n    piVar2[7] = (iVar16 - iVar19) + sVar17;\n    return sVar20;\n  }\n  return sVar20;\n}\n\n" (function_definition "strtol_error xstrtoumax(char *s,char **ptr,int strtol_base,uintmax_t *val,char *valid_suffixes)\n\n{\n  byte bVar1;\n  int *piVar2;\n  int *piVar3;\n  uint uVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  strtol_error sVar7;\n  byte *pbVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  undefined4 *puVar11;\n  undefined *puVar12;\n  undefined4 uVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  strtol_error sVar17;\n  int iVar18;\n  int iVar19;\n  strtol_error sVar20;\n  undefined *puVar21;\n  uintmax_t uVar22;\n  char *t_ptr;\n  int local_2c;\n  \n  puVar21 = PTR___stack_chk_guard_000343b8;\n  local_2c = *(int *)PTR___stack_chk_guard_000343b8;\n  if ((uint)strtol_base < 0x25) {\n    if (ptr == (char **)0x0) {\n      ptr = &t_ptr;\n    }\n    piVar2 = (int *)(*(code *)PTR___errno_location_00034320)();\n    puVar12 = PTR___ctype_b_loc_000342a8;\n    *piVar2 = 0;\n    piVar3 = (int *)(*(code *)puVar12)();\n    bVar1 = *s;\n    pbVar8 = (byte *)s;\n    while( true ) {\n      pbVar8 = pbVar8 + 1;\n      if ((*(ushort *)(*piVar3 + (uint)bVar1 * 2) & 0x20) == 0) break;\n      bVar1 = *pbVar8;\n    }\n    if (bVar1 == 0x2d) {\nLAB_0001d698:\n      sVar20 = LONGINT_INVALID;\n    }\n    else {\n      uVar22 = (*(code *)PTR___strtoull_internal_000343b0)(s,ptr,strtol_base,0);\n      if (*ptr == s) {\n        if (((valid_suffixes == (char *)0x0) || (iVar18 = (int)*s, iVar18 == 0)) ||\n           (iVar19 = (*(code *)PTR_strchr_00034344)(valid_suffixes,iVar18), iVar19 == 0))\n        goto LAB_0001d698;\n        uVar22 = 1;\n        sVar20 = LONGINT_OK;\nLAB_0001d6c8:\n        uVar4 = iVar18 - 0x45U & 0xff;\n        if (uVar4 < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d6e4 */\n                    /* WARNING: Treating indirect jump as call */\n          sVar20 = (*(code *)(&_gp + *(int *)(PTR_LAB_00034138 + uVar4 * 4 + 0x3230)))();\n          return sVar20;\n        }\n        uVar4 = iVar18 - 0x42U & 0xff;\n        if (uVar4 < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d7b8 */\n                    /* WARNING: Treating indirect jump as call */\n          sVar20 = (*(code *)(&_gp + *(int *)(PTR_LAB_00034138 + uVar4 * 4 + 0x33b0)))(1);\n          return sVar20;\n        }\n      }\n      else {\n        sVar20 = LONGINT_OK;\n        if (*piVar2 != 0) {\n          if (*piVar2 != 0x22) goto LAB_0001d698;\n          sVar20 = LONGINT_OVERFLOW;\n        }\n        if ((valid_suffixes == (char *)0x0) || (iVar18 = (int)**ptr, iVar18 == 0)) {\n          *val = uVar22;\n          goto LAB_0001d630;\n        }\n        iVar19 = (*(code *)PTR_strchr_00034344)(valid_suffixes,iVar18);\n        if (iVar19 != 0) goto LAB_0001d6c8;\n      }\n      sVar20 = sVar20 | LONGINT_INVALID_SUFFIX_CHAR;\n      *val = uVar22;\n    }\nLAB_0001d630:\n    if (local_2c == *(int *)puVar21) {\n      return sVar20;\n    }\n    (*(code *)PTR___stack_chk_fail_00034398)();\n  }\n  uVar13 = 0x60;\n  piVar2 = (int *)(PTR_LAB_00034138 + 0x31f4);\n  puVar12 = PTR_LAB_00034138 + 0x3204;\n  puVar21 = PTR___assert_fail_000342ac;\n  (*(code *)PTR___assert_fail_000342ac)();\n  piVar3 = *(int **)(puVar21 + 0x16648);\n  iVar18 = *piVar3;\n  iVar19 = *(int *)(puVar21 + 0x163b8);\n  if (piVar2 != (int *)0x406) {\n    sVar20 = (**(code **)(puVar21 + 0x16598))();\n    goto LAB_0001ddf8;\n  }\n  if (*(int *)(iVar19 + 0x4580) < 0) {\n    piVar2 = (int *)0x0;\n    sVar20 = rpl_fcntl((int)puVar12,0);\n    if (((int)sVar20 < 0) || (sVar17 = sVar20, *(int *)(iVar19 + 0x4580) != -1)) goto LAB_0001ddf8;\n  }\n  else {\n    sVar20 = (**(code **)(puVar21 + 0x16598))();\n    if ((-1 < (int)sVar20) || (piVar6 = (int *)(**(code **)(puVar21 + 0x165b0))(), *piVar6 != 0x16))\n    {\n      *(undefined4 *)(iVar19 + 0x4580) = 1;\n      goto LAB_0001ddf8;\n    }\n    piVar2 = (int *)0x0;\n    sVar20 = rpl_fcntl((int)puVar12,0,uVar13);\n    if ((int)sVar20 < 0) goto LAB_0001ddf8;\n    *(undefined4 *)(iVar19 + 0x4580) = 0xffffffff;\n    sVar17 = sVar20;\n  }\n  piVar2 = (int *)0x1;\n  uVar4 = (**(code **)(puVar21 + 0x16598))(sVar17);\n  if (-1 < (int)uVar4) {\n    piVar2 = (int *)0x2;\n    iVar19 = (**(code **)(puVar21 + 0x16598))(sVar17,2,uVar4 | 1);\n    sVar20 = sVar17;\n    if (iVar19 != -1) goto LAB_0001ddf8;\n  }\n  puVar5 = (undefined4 *)(**(code **)(puVar21 + 0x165b0))();\n  uVar13 = *puVar5;\n  sVar20 = ~LONGINT_OK;\n  (**(code **)(puVar21 + 0x16540))(sVar17);\n  *puVar5 = uVar13;\nLAB_0001ddf8:\n  if (iVar18 != *piVar3) {\n    (**(code **)(puVar21 + 0x16628))();\n    iVar19 = piVar2[8];\n    iVar16 = *piVar2;\n    sVar20 = (strtol_error)(iVar19 < iVar16);\n    sVar17 = piVar2[7];\n    if ((sVar20 != LONGINT_OK) &&\n       (sVar20 = (strtol_error)((int)sVar17 < iVar19), sVar20 != LONGINT_OK)) {\n      iVar9 = iVar16 - iVar19;\n      sVar7 = sVar17;\n      iVar15 = iVar16;\n      do {\n        iVar14 = iVar19 - sVar7;\n        sVar20 = iVar9 + sVar7;\n        if (iVar14 < iVar9) {\n          iVar15 = iVar15 - iVar14;\n          puVar5 = (undefined4 *)(iVar18 + sVar7 * 4);\n          puVar11 = (undefined4 *)(iVar18 + iVar15 * 4);\n          do {\n            puVar10 = puVar5 + 1;\n            uVar13 = *puVar5;\n            *puVar5 = *puVar11;\n            *puVar11 = uVar13;\n            sVar20 = sVar7;\n            puVar5 = puVar10;\n            puVar11 = puVar11 + 1;\n          } while ((undefined4 *)(iVar18 + (iVar14 + sVar7) * 4) != puVar10);\n        }\n        else {\n          puVar5 = (undefined4 *)(iVar18 + sVar7 * 4);\n          puVar11 = (undefined4 *)(iVar18 + iVar19 * 4);\n          do {\n            puVar10 = puVar5 + 1;\n            uVar13 = *puVar5;\n            *puVar5 = *puVar11;\n            *puVar11 = uVar13;\n            puVar5 = puVar10;\n            puVar11 = puVar11 + 1;\n          } while (puVar10 != (undefined4 *)(iVar18 + sVar20 * 4));\n        }\n      } while ((iVar19 < iVar15) && (iVar9 = iVar15 - iVar19, sVar7 = sVar20, (int)sVar20 < iVar19))\n      ;\n    }\n    piVar2[8] = iVar16;\n    piVar2[7] = (iVar16 - iVar19) + sVar17;\n    return sVar20;\n  }\n  return sVar20;\n}" type_identifier (function_declarator "xstrtoumax(char *s,char **ptr,int strtol_base,uintmax_t *val,char *valid_suffixes)" identifier (parameter_list "(char *s,char **ptr,int strtol_base,uintmax_t *val,char *valid_suffixes)" ( (parameter_declaration "char *s" primitive_type (pointer_declarator "*s" * identifier)) , (parameter_declaration "char **ptr" primitive_type (pointer_declarator "**ptr" * (pointer_declarator "*ptr" * identifier))) , (parameter_declaration "int strtol_base" primitive_type identifier) , (parameter_declaration "uintmax_t *val" type_identifier (pointer_declarator "*val" * identifier)) , (parameter_declaration "char *valid_suffixes" primitive_type (pointer_declarator "*valid_suffixes" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  int *piVar2;\n  int *piVar3;\n  uint uVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  strtol_error sVar7;\n  byte *pbVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  undefined4 *puVar11;\n  undefined *puVar12;\n  undefined4 uVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  strtol_error sVar17;\n  int iVar18;\n  int iVar19;\n  strtol_error sVar20;\n  undefined *puVar21;\n  uintmax_t uVar22;\n  char *t_ptr;\n  int local_2c;\n  \n  puVar21 = PTR___stack_chk_guard_000343b8;\n  local_2c = *(int *)PTR___stack_chk_guard_000343b8;\n  if ((uint)strtol_base < 0x25) {\n    if (ptr == (char **)0x0) {\n      ptr = &t_ptr;\n    }\n    piVar2 = (int *)(*(code *)PTR___errno_location_00034320)();\n    puVar12 = PTR___ctype_b_loc_000342a8;\n    *piVar2 = 0;\n    piVar3 = (int *)(*(code *)puVar12)();\n    bVar1 = *s;\n    pbVar8 = (byte *)s;\n    while( true ) {\n      pbVar8 = pbVar8 + 1;\n      if ((*(ushort *)(*piVar3 + (uint)bVar1 * 2) & 0x20) == 0) break;\n      bVar1 = *pbVar8;\n    }\n    if (bVar1 == 0x2d) {\nLAB_0001d698:\n      sVar20 = LONGINT_INVALID;\n    }\n    else {\n      uVar22 = (*(code *)PTR___strtoull_internal_000343b0)(s,ptr,strtol_base,0);\n      if (*ptr == s) {\n        if (((valid_suffixes == (char *)0x0) || (iVar18 = (int)*s, iVar18 == 0)) ||\n           (iVar19 = (*(code *)PTR_strchr_00034344)(valid_suffixes,iVar18), iVar19 == 0))\n        goto LAB_0001d698;\n        uVar22 = 1;\n        sVar20 = LONGINT_OK;\nLAB_0001d6c8:\n        uVar4 = iVar18 - 0x45U & 0xff;\n        if (uVar4 < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d6e4 */\n                    /* WARNING: Treating indirect jump as call */\n          sVar20 = (*(code *)(&_gp + *(int *)(PTR_LAB_00034138 + uVar4 * 4 + 0x3230)))();\n          return sVar20;\n        }\n        uVar4 = iVar18 - 0x42U & 0xff;\n        if (uVar4 < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d7b8 */\n                    /* WARNING: Treating indirect jump as call */\n          sVar20 = (*(code *)(&_gp + *(int *)(PTR_LAB_00034138 + uVar4 * 4 + 0x33b0)))(1);\n          return sVar20;\n        }\n      }\n      else {\n        sVar20 = LONGINT_OK;\n        if (*piVar2 != 0) {\n          if (*piVar2 != 0x22) goto LAB_0001d698;\n          sVar20 = LONGINT_OVERFLOW;\n        }\n        if ((valid_suffixes == (char *)0x0) || (iVar18 = (int)**ptr, iVar18 == 0)) {\n          *val = uVar22;\n          goto LAB_0001d630;\n        }\n        iVar19 = (*(code *)PTR_strchr_00034344)(valid_suffixes,iVar18);\n        if (iVar19 != 0) goto LAB_0001d6c8;\n      }\n      sVar20 = sVar20 | LONGINT_INVALID_SUFFIX_CHAR;\n      *val = uVar22;\n    }\nLAB_0001d630:\n    if (local_2c == *(int *)puVar21) {\n      return sVar20;\n    }\n    (*(code *)PTR___stack_chk_fail_00034398)();\n  }\n  uVar13 = 0x60;\n  piVar2 = (int *)(PTR_LAB_00034138 + 0x31f4);\n  puVar12 = PTR_LAB_00034138 + 0x3204;\n  puVar21 = PTR___assert_fail_000342ac;\n  (*(code *)PTR___assert_fail_000342ac)();\n  piVar3 = *(int **)(puVar21 + 0x16648);\n  iVar18 = *piVar3;\n  iVar19 = *(int *)(puVar21 + 0x163b8);\n  if (piVar2 != (int *)0x406) {\n    sVar20 = (**(code **)(puVar21 + 0x16598))();\n    goto LAB_0001ddf8;\n  }\n  if (*(int *)(iVar19 + 0x4580) < 0) {\n    piVar2 = (int *)0x0;\n    sVar20 = rpl_fcntl((int)puVar12,0);\n    if (((int)sVar20 < 0) || (sVar17 = sVar20, *(int *)(iVar19 + 0x4580) != -1)) goto LAB_0001ddf8;\n  }\n  else {\n    sVar20 = (**(code **)(puVar21 + 0x16598))();\n    if ((-1 < (int)sVar20) || (piVar6 = (int *)(**(code **)(puVar21 + 0x165b0))(), *piVar6 != 0x16))\n    {\n      *(undefined4 *)(iVar19 + 0x4580) = 1;\n      goto LAB_0001ddf8;\n    }\n    piVar2 = (int *)0x0;\n    sVar20 = rpl_fcntl((int)puVar12,0,uVar13);\n    if ((int)sVar20 < 0) goto LAB_0001ddf8;\n    *(undefined4 *)(iVar19 + 0x4580) = 0xffffffff;\n    sVar17 = sVar20;\n  }\n  piVar2 = (int *)0x1;\n  uVar4 = (**(code **)(puVar21 + 0x16598))(sVar17);\n  if (-1 < (int)uVar4) {\n    piVar2 = (int *)0x2;\n    iVar19 = (**(code **)(puVar21 + 0x16598))(sVar17,2,uVar4 | 1);\n    sVar20 = sVar17;\n    if (iVar19 != -1) goto LAB_0001ddf8;\n  }\n  puVar5 = (undefined4 *)(**(code **)(puVar21 + 0x165b0))();\n  uVar13 = *puVar5;\n  sVar20 = ~LONGINT_OK;\n  (**(code **)(puVar21 + 0x16540))(sVar17);\n  *puVar5 = uVar13;\nLAB_0001ddf8:\n  if (iVar18 != *piVar3) {\n    (**(code **)(puVar21 + 0x16628))();\n    iVar19 = piVar2[8];\n    iVar16 = *piVar2;\n    sVar20 = (strtol_error)(iVar19 < iVar16);\n    sVar17 = piVar2[7];\n    if ((sVar20 != LONGINT_OK) &&\n       (sVar20 = (strtol_error)((int)sVar17 < iVar19), sVar20 != LONGINT_OK)) {\n      iVar9 = iVar16 - iVar19;\n      sVar7 = sVar17;\n      iVar15 = iVar16;\n      do {\n        iVar14 = iVar19 - sVar7;\n        sVar20 = iVar9 + sVar7;\n        if (iVar14 < iVar9) {\n          iVar15 = iVar15 - iVar14;\n          puVar5 = (undefined4 *)(iVar18 + sVar7 * 4);\n          puVar11 = (undefined4 *)(iVar18 + iVar15 * 4);\n          do {\n            puVar10 = puVar5 + 1;\n            uVar13 = *puVar5;\n            *puVar5 = *puVar11;\n            *puVar11 = uVar13;\n            sVar20 = sVar7;\n            puVar5 = puVar10;\n            puVar11 = puVar11 + 1;\n          } while ((undefined4 *)(iVar18 + (iVar14 + sVar7) * 4) != puVar10);\n        }\n        else {\n          puVar5 = (undefined4 *)(iVar18 + sVar7 * 4);\n          puVar11 = (undefined4 *)(iVar18 + iVar19 * 4);\n          do {\n            puVar10 = puVar5 + 1;\n            uVar13 = *puVar5;\n            *puVar5 = *puVar11;\n            *puVar11 = uVar13;\n            puVar5 = puVar10;\n            puVar11 = puVar11 + 1;\n          } while (puVar10 != (undefined4 *)(iVar18 + sVar20 * 4));\n        }\n      } while ((iVar19 < iVar15) && (iVar9 = iVar15 - iVar19, sVar7 = sVar20, (int)sVar20 < iVar19))\n      ;\n    }\n    piVar2[8] = iVar16;\n    piVar2[7] = (iVar16 - iVar19) + sVar17;\n    return sVar20;\n  }\n  return sVar20;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "strtol_error sVar7;" type_identifier identifier ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "undefined4 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined4 uVar13;" type_identifier identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "strtol_error sVar17;" type_identifier identifier ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "strtol_error sVar20;" type_identifier identifier ;) (declaration "undefined *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "uintmax_t uVar22;" type_identifier identifier ;) (declaration "char *t_ptr;" primitive_type (pointer_declarator "*t_ptr" * identifier) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar21 = PTR___stack_chk_guard_000343b8;" (assignment_expression "puVar21 = PTR___stack_chk_guard_000343b8" identifier = identifier) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_000343b8;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_000343b8" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000343b8" * (cast_expression "(int *)PTR___stack_chk_guard_000343b8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if ((uint)strtol_base < 0x25) {\n    if (ptr == (char **)0x0) {\n      ptr = &t_ptr;\n    }\n    piVar2 = (int *)(*(code *)PTR___errno_location_00034320)();\n    puVar12 = PTR___ctype_b_loc_000342a8;\n    *piVar2 = 0;\n    piVar3 = (int *)(*(code *)puVar12)();\n    bVar1 = *s;\n    pbVar8 = (byte *)s;\n    while( true ) {\n      pbVar8 = pbVar8 + 1;\n      if ((*(ushort *)(*piVar3 + (uint)bVar1 * 2) & 0x20) == 0) break;\n      bVar1 = *pbVar8;\n    }\n    if (bVar1 == 0x2d) {\nLAB_0001d698:\n      sVar20 = LONGINT_INVALID;\n    }\n    else {\n      uVar22 = (*(code *)PTR___strtoull_internal_000343b0)(s,ptr,strtol_base,0);\n      if (*ptr == s) {\n        if (((valid_suffixes == (char *)0x0) || (iVar18 = (int)*s, iVar18 == 0)) ||\n           (iVar19 = (*(code *)PTR_strchr_00034344)(valid_suffixes,iVar18), iVar19 == 0))\n        goto LAB_0001d698;\n        uVar22 = 1;\n        sVar20 = LONGINT_OK;\nLAB_0001d6c8:\n        uVar4 = iVar18 - 0x45U & 0xff;\n        if (uVar4 < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d6e4 */\n                    /* WARNING: Treating indirect jump as call */\n          sVar20 = (*(code *)(&_gp + *(int *)(PTR_LAB_00034138 + uVar4 * 4 + 0x3230)))();\n          return sVar20;\n        }\n        uVar4 = iVar18 - 0x42U & 0xff;\n        if (uVar4 < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d7b8 */\n                    /* WARNING: Treating indirect jump as call */\n          sVar20 = (*(code *)(&_gp + *(int *)(PTR_LAB_00034138 + uVar4 * 4 + 0x33b0)))(1);\n          return sVar20;\n        }\n      }\n      else {\n        sVar20 = LONGINT_OK;\n        if (*piVar2 != 0) {\n          if (*piVar2 != 0x22) goto LAB_0001d698;\n          sVar20 = LONGINT_OVERFLOW;\n        }\n        if ((valid_suffixes == (char *)0x0) || (iVar18 = (int)**ptr, iVar18 == 0)) {\n          *val = uVar22;\n          goto LAB_0001d630;\n        }\n        iVar19 = (*(code *)PTR_strchr_00034344)(valid_suffixes,iVar18);\n        if (iVar19 != 0) goto LAB_0001d6c8;\n      }\n      sVar20 = sVar20 | LONGINT_INVALID_SUFFIX_CHAR;\n      *val = uVar22;\n    }\nLAB_0001d630:\n    if (local_2c == *(int *)puVar21) {\n      return sVar20;\n    }\n    (*(code *)PTR___stack_chk_fail_00034398)();\n  }" if (parenthesized_expression "((uint)strtol_base < 0x25)" ( (binary_expression "(uint)strtol_base < 0x25" (cast_expression "(uint)strtol_base" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n    if (ptr == (char **)0x0) {\n      ptr = &t_ptr;\n    }\n    piVar2 = (int *)(*(code *)PTR___errno_location_00034320)();\n    puVar12 = PTR___ctype_b_loc_000342a8;\n    *piVar2 = 0;\n    piVar3 = (int *)(*(code *)puVar12)();\n    bVar1 = *s;\n    pbVar8 = (byte *)s;\n    while( true ) {\n      pbVar8 = pbVar8 + 1;\n      if ((*(ushort *)(*piVar3 + (uint)bVar1 * 2) & 0x20) == 0) break;\n      bVar1 = *pbVar8;\n    }\n    if (bVar1 == 0x2d) {\nLAB_0001d698:\n      sVar20 = LONGINT_INVALID;\n    }\n    else {\n      uVar22 = (*(code *)PTR___strtoull_internal_000343b0)(s,ptr,strtol_base,0);\n      if (*ptr == s) {\n        if (((valid_suffixes == (char *)0x0) || (iVar18 = (int)*s, iVar18 == 0)) ||\n           (iVar19 = (*(code *)PTR_strchr_00034344)(valid_suffixes,iVar18), iVar19 == 0))\n        goto LAB_0001d698;\n        uVar22 = 1;\n        sVar20 = LONGINT_OK;\nLAB_0001d6c8:\n        uVar4 = iVar18 - 0x45U & 0xff;\n        if (uVar4 < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d6e4 */\n                    /* WARNING: Treating indirect jump as call */\n          sVar20 = (*(code *)(&_gp + *(int *)(PTR_LAB_00034138 + uVar4 * 4 + 0x3230)))();\n          return sVar20;\n        }\n        uVar4 = iVar18 - 0x42U & 0xff;\n        if (uVar4 < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d7b8 */\n                    /* WARNING: Treating indirect jump as call */\n          sVar20 = (*(code *)(&_gp + *(int *)(PTR_LAB_00034138 + uVar4 * 4 + 0x33b0)))(1);\n          return sVar20;\n        }\n      }\n      else {\n        sVar20 = LONGINT_OK;\n        if (*piVar2 != 0) {\n          if (*piVar2 != 0x22) goto LAB_0001d698;\n          sVar20 = LONGINT_OVERFLOW;\n        }\n        if ((valid_suffixes == (char *)0x0) || (iVar18 = (int)**ptr, iVar18 == 0)) {\n          *val = uVar22;\n          goto LAB_0001d630;\n        }\n        iVar19 = (*(code *)PTR_strchr_00034344)(valid_suffixes,iVar18);\n        if (iVar19 != 0) goto LAB_0001d6c8;\n      }\n      sVar20 = sVar20 | LONGINT_INVALID_SUFFIX_CHAR;\n      *val = uVar22;\n    }\nLAB_0001d630:\n    if (local_2c == *(int *)puVar21) {\n      return sVar20;\n    }\n    (*(code *)PTR___stack_chk_fail_00034398)();\n  }" { (if_statement "if (ptr == (char **)0x0) {\n      ptr = &t_ptr;\n    }" if (parenthesized_expression "(ptr == (char **)0x0)" ( (binary_expression "ptr == (char **)0x0" identifier == (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n      ptr = &t_ptr;\n    }" { (expression_statement "ptr = &t_ptr;" (assignment_expression "ptr = &t_ptr" identifier = (pointer_expression "&t_ptr" & identifier)) ;) })) (expression_statement "piVar2 = (int *)(*(code *)PTR___errno_location_00034320)();" (assignment_expression "piVar2 = (int *)(*(code *)PTR___errno_location_00034320)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_00034320)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00034320)()" (parenthesized_expression "(*(code *)PTR___errno_location_00034320)" ( (pointer_expression "*(code *)PTR___errno_location_00034320" * (cast_expression "(code *)PTR___errno_location_00034320" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar12 = PTR___ctype_b_loc_000342a8;" (assignment_expression "puVar12 = PTR___ctype_b_loc_000342a8" identifier = identifier) ;) (expression_statement "*piVar2 = 0;" (assignment_expression "*piVar2 = 0" (pointer_expression "*piVar2" * identifier) = number_literal) ;) (expression_statement "piVar3 = (int *)(*(code *)puVar12)();" (assignment_expression "piVar3 = (int *)(*(code *)puVar12)()" identifier = (cast_expression "(int *)(*(code *)puVar12)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar12)()" (parenthesized_expression "(*(code *)puVar12)" ( (pointer_expression "*(code *)puVar12" * (cast_expression "(code *)puVar12" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "bVar1 = *s;" (assignment_expression "bVar1 = *s" identifier = (pointer_expression "*s" * identifier)) ;) (expression_statement "pbVar8 = (byte *)s;" (assignment_expression "pbVar8 = (byte *)s" identifier = (cast_expression "(byte *)s" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (while_statement "while( true ) {\n      pbVar8 = pbVar8 + 1;\n      if ((*(ushort *)(*piVar3 + (uint)bVar1 * 2) & 0x20) == 0) break;\n      bVar1 = *pbVar8;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      pbVar8 = pbVar8 + 1;\n      if ((*(ushort *)(*piVar3 + (uint)bVar1 * 2) & 0x20) == 0) break;\n      bVar1 = *pbVar8;\n    }" { (expression_statement "pbVar8 = pbVar8 + 1;" (assignment_expression "pbVar8 = pbVar8 + 1" identifier = (binary_expression "pbVar8 + 1" identifier + number_literal)) ;) (if_statement "if ((*(ushort *)(*piVar3 + (uint)bVar1 * 2) & 0x20) == 0) break;" if (parenthesized_expression "((*(ushort *)(*piVar3 + (uint)bVar1 * 2) & 0x20) == 0)" ( (binary_expression "(*(ushort *)(*piVar3 + (uint)bVar1 * 2) & 0x20) == 0" (parenthesized_expression "(*(ushort *)(*piVar3 + (uint)bVar1 * 2) & 0x20)" ( (binary_expression "*(ushort *)(*piVar3 + (uint)bVar1 * 2) & 0x20" (pointer_expression "*(ushort *)(*piVar3 + (uint)bVar1 * 2)" * (cast_expression "(ushort *)(*piVar3 + (uint)bVar1 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar3 + (uint)bVar1 * 2)" ( (binary_expression "*piVar3 + (uint)bVar1 * 2" (pointer_expression "*piVar3" * identifier) + (binary_expression "(uint)bVar1 * 2" (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) )))) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "bVar1 = *pbVar8;" (assignment_expression "bVar1 = *pbVar8" identifier = (pointer_expression "*pbVar8" * identifier)) ;) })) (if_statement "if (bVar1 == 0x2d) {\nLAB_0001d698:\n      sVar20 = LONGINT_INVALID;\n    }\n    else {\n      uVar22 = (*(code *)PTR___strtoull_internal_000343b0)(s,ptr,strtol_base,0);\n      if (*ptr == s) {\n        if (((valid_suffixes == (char *)0x0) || (iVar18 = (int)*s, iVar18 == 0)) ||\n           (iVar19 = (*(code *)PTR_strchr_00034344)(valid_suffixes,iVar18), iVar19 == 0))\n        goto LAB_0001d698;\n        uVar22 = 1;\n        sVar20 = LONGINT_OK;\nLAB_0001d6c8:\n        uVar4 = iVar18 - 0x45U & 0xff;\n        if (uVar4 < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d6e4 */\n                    /* WARNING: Treating indirect jump as call */\n          sVar20 = (*(code *)(&_gp + *(int *)(PTR_LAB_00034138 + uVar4 * 4 + 0x3230)))();\n          return sVar20;\n        }\n        uVar4 = iVar18 - 0x42U & 0xff;\n        if (uVar4 < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d7b8 */\n                    /* WARNING: Treating indirect jump as call */\n          sVar20 = (*(code *)(&_gp + *(int *)(PTR_LAB_00034138 + uVar4 * 4 + 0x33b0)))(1);\n          return sVar20;\n        }\n      }\n      else {\n        sVar20 = LONGINT_OK;\n        if (*piVar2 != 0) {\n          if (*piVar2 != 0x22) goto LAB_0001d698;\n          sVar20 = LONGINT_OVERFLOW;\n        }\n        if ((valid_suffixes == (char *)0x0) || (iVar18 = (int)**ptr, iVar18 == 0)) {\n          *val = uVar22;\n          goto LAB_0001d630;\n        }\n        iVar19 = (*(code *)PTR_strchr_00034344)(valid_suffixes,iVar18);\n        if (iVar19 != 0) goto LAB_0001d6c8;\n      }\n      sVar20 = sVar20 | LONGINT_INVALID_SUFFIX_CHAR;\n      *val = uVar22;\n    }" if (parenthesized_expression "(bVar1 == 0x2d)" ( (binary_expression "bVar1 == 0x2d" identifier == number_literal) )) (compound_statement "{\nLAB_0001d698:\n      sVar20 = LONGINT_INVALID;\n    }" { (labeled_statement "LAB_0001d698:\n      sVar20 = LONGINT_INVALID;" statement_identifier : (expression_statement "sVar20 = LONGINT_INVALID;" (assignment_expression "sVar20 = LONGINT_INVALID" identifier = identifier) ;)) }) (else_clause "else {\n      uVar22 = (*(code *)PTR___strtoull_internal_000343b0)(s,ptr,strtol_base,0);\n      if (*ptr == s) {\n        if (((valid_suffixes == (char *)0x0) || (iVar18 = (int)*s, iVar18 == 0)) ||\n           (iVar19 = (*(code *)PTR_strchr_00034344)(valid_suffixes,iVar18), iVar19 == 0))\n        goto LAB_0001d698;\n        uVar22 = 1;\n        sVar20 = LONGINT_OK;\nLAB_0001d6c8:\n        uVar4 = iVar18 - 0x45U & 0xff;\n        if (uVar4 < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d6e4 */\n                    /* WARNING: Treating indirect jump as call */\n          sVar20 = (*(code *)(&_gp + *(int *)(PTR_LAB_00034138 + uVar4 * 4 + 0x3230)))();\n          return sVar20;\n        }\n        uVar4 = iVar18 - 0x42U & 0xff;\n        if (uVar4 < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d7b8 */\n                    /* WARNING: Treating indirect jump as call */\n          sVar20 = (*(code *)(&_gp + *(int *)(PTR_LAB_00034138 + uVar4 * 4 + 0x33b0)))(1);\n          return sVar20;\n        }\n      }\n      else {\n        sVar20 = LONGINT_OK;\n        if (*piVar2 != 0) {\n          if (*piVar2 != 0x22) goto LAB_0001d698;\n          sVar20 = LONGINT_OVERFLOW;\n        }\n        if ((valid_suffixes == (char *)0x0) || (iVar18 = (int)**ptr, iVar18 == 0)) {\n          *val = uVar22;\n          goto LAB_0001d630;\n        }\n        iVar19 = (*(code *)PTR_strchr_00034344)(valid_suffixes,iVar18);\n        if (iVar19 != 0) goto LAB_0001d6c8;\n      }\n      sVar20 = sVar20 | LONGINT_INVALID_SUFFIX_CHAR;\n      *val = uVar22;\n    }" else (compound_statement "{\n      uVar22 = (*(code *)PTR___strtoull_internal_000343b0)(s,ptr,strtol_base,0);\n      if (*ptr == s) {\n        if (((valid_suffixes == (char *)0x0) || (iVar18 = (int)*s, iVar18 == 0)) ||\n           (iVar19 = (*(code *)PTR_strchr_00034344)(valid_suffixes,iVar18), iVar19 == 0))\n        goto LAB_0001d698;\n        uVar22 = 1;\n        sVar20 = LONGINT_OK;\nLAB_0001d6c8:\n        uVar4 = iVar18 - 0x45U & 0xff;\n        if (uVar4 < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d6e4 */\n                    /* WARNING: Treating indirect jump as call */\n          sVar20 = (*(code *)(&_gp + *(int *)(PTR_LAB_00034138 + uVar4 * 4 + 0x3230)))();\n          return sVar20;\n        }\n        uVar4 = iVar18 - 0x42U & 0xff;\n        if (uVar4 < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d7b8 */\n                    /* WARNING: Treating indirect jump as call */\n          sVar20 = (*(code *)(&_gp + *(int *)(PTR_LAB_00034138 + uVar4 * 4 + 0x33b0)))(1);\n          return sVar20;\n        }\n      }\n      else {\n        sVar20 = LONGINT_OK;\n        if (*piVar2 != 0) {\n          if (*piVar2 != 0x22) goto LAB_0001d698;\n          sVar20 = LONGINT_OVERFLOW;\n        }\n        if ((valid_suffixes == (char *)0x0) || (iVar18 = (int)**ptr, iVar18 == 0)) {\n          *val = uVar22;\n          goto LAB_0001d630;\n        }\n        iVar19 = (*(code *)PTR_strchr_00034344)(valid_suffixes,iVar18);\n        if (iVar19 != 0) goto LAB_0001d6c8;\n      }\n      sVar20 = sVar20 | LONGINT_INVALID_SUFFIX_CHAR;\n      *val = uVar22;\n    }" { (expression_statement "uVar22 = (*(code *)PTR___strtoull_internal_000343b0)(s,ptr,strtol_base,0);" (assignment_expression "uVar22 = (*(code *)PTR___strtoull_internal_000343b0)(s,ptr,strtol_base,0)" identifier = (call_expression "(*(code *)PTR___strtoull_internal_000343b0)(s,ptr,strtol_base,0)" (parenthesized_expression "(*(code *)PTR___strtoull_internal_000343b0)" ( (pointer_expression "*(code *)PTR___strtoull_internal_000343b0" * (cast_expression "(code *)PTR___strtoull_internal_000343b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(s,ptr,strtol_base,0)" ( identifier , identifier , identifier , number_literal )))) ;) (if_statement "if (*ptr == s) {\n        if (((valid_suffixes == (char *)0x0) || (iVar18 = (int)*s, iVar18 == 0)) ||\n           (iVar19 = (*(code *)PTR_strchr_00034344)(valid_suffixes,iVar18), iVar19 == 0))\n        goto LAB_0001d698;\n        uVar22 = 1;\n        sVar20 = LONGINT_OK;\nLAB_0001d6c8:\n        uVar4 = iVar18 - 0x45U & 0xff;\n        if (uVar4 < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d6e4 */\n                    /* WARNING: Treating indirect jump as call */\n          sVar20 = (*(code *)(&_gp + *(int *)(PTR_LAB_00034138 + uVar4 * 4 + 0x3230)))();\n          return sVar20;\n        }\n        uVar4 = iVar18 - 0x42U & 0xff;\n        if (uVar4 < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d7b8 */\n                    /* WARNING: Treating indirect jump as call */\n          sVar20 = (*(code *)(&_gp + *(int *)(PTR_LAB_00034138 + uVar4 * 4 + 0x33b0)))(1);\n          return sVar20;\n        }\n      }\n      else {\n        sVar20 = LONGINT_OK;\n        if (*piVar2 != 0) {\n          if (*piVar2 != 0x22) goto LAB_0001d698;\n          sVar20 = LONGINT_OVERFLOW;\n        }\n        if ((valid_suffixes == (char *)0x0) || (iVar18 = (int)**ptr, iVar18 == 0)) {\n          *val = uVar22;\n          goto LAB_0001d630;\n        }\n        iVar19 = (*(code *)PTR_strchr_00034344)(valid_suffixes,iVar18);\n        if (iVar19 != 0) goto LAB_0001d6c8;\n      }" if (parenthesized_expression "(*ptr == s)" ( (binary_expression "*ptr == s" (pointer_expression "*ptr" * identifier) == identifier) )) (compound_statement "{\n        if (((valid_suffixes == (char *)0x0) || (iVar18 = (int)*s, iVar18 == 0)) ||\n           (iVar19 = (*(code *)PTR_strchr_00034344)(valid_suffixes,iVar18), iVar19 == 0))\n        goto LAB_0001d698;\n        uVar22 = 1;\n        sVar20 = LONGINT_OK;\nLAB_0001d6c8:\n        uVar4 = iVar18 - 0x45U & 0xff;\n        if (uVar4 < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d6e4 */\n                    /* WARNING: Treating indirect jump as call */\n          sVar20 = (*(code *)(&_gp + *(int *)(PTR_LAB_00034138 + uVar4 * 4 + 0x3230)))();\n          return sVar20;\n        }\n        uVar4 = iVar18 - 0x42U & 0xff;\n        if (uVar4 < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d7b8 */\n                    /* WARNING: Treating indirect jump as call */\n          sVar20 = (*(code *)(&_gp + *(int *)(PTR_LAB_00034138 + uVar4 * 4 + 0x33b0)))(1);\n          return sVar20;\n        }\n      }" { (if_statement "if (((valid_suffixes == (char *)0x0) || (iVar18 = (int)*s, iVar18 == 0)) ||\n           (iVar19 = (*(code *)PTR_strchr_00034344)(valid_suffixes,iVar18), iVar19 == 0))\n        goto LAB_0001d698;" if (parenthesized_expression "(((valid_suffixes == (char *)0x0) || (iVar18 = (int)*s, iVar18 == 0)) ||\n           (iVar19 = (*(code *)PTR_strchr_00034344)(valid_suffixes,iVar18), iVar19 == 0))" ( (binary_expression "((valid_suffixes == (char *)0x0) || (iVar18 = (int)*s, iVar18 == 0)) ||\n           (iVar19 = (*(code *)PTR_strchr_00034344)(valid_suffixes,iVar18), iVar19 == 0)" (parenthesized_expression "((valid_suffixes == (char *)0x0) || (iVar18 = (int)*s, iVar18 == 0))" ( (binary_expression "(valid_suffixes == (char *)0x0) || (iVar18 = (int)*s, iVar18 == 0)" (parenthesized_expression "(valid_suffixes == (char *)0x0)" ( (binary_expression "valid_suffixes == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iVar18 = (int)*s, iVar18 == 0)" ( (comma_expression "iVar18 = (int)*s, iVar18 == 0" (assignment_expression "iVar18 = (int)*s" identifier = (cast_expression "(int)*s" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*s" * identifier))) , (binary_expression "iVar18 == 0" identifier == number_literal)) ))) )) || (parenthesized_expression "(iVar19 = (*(code *)PTR_strchr_00034344)(valid_suffixes,iVar18), iVar19 == 0)" ( (comma_expression "iVar19 = (*(code *)PTR_strchr_00034344)(valid_suffixes,iVar18), iVar19 == 0" (assignment_expression "iVar19 = (*(code *)PTR_strchr_00034344)(valid_suffixes,iVar18)" identifier = (call_expression "(*(code *)PTR_strchr_00034344)(valid_suffixes,iVar18)" (parenthesized_expression "(*(code *)PTR_strchr_00034344)" ( (pointer_expression "*(code *)PTR_strchr_00034344" * (cast_expression "(code *)PTR_strchr_00034344" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(valid_suffixes,iVar18)" ( identifier , identifier )))) , (binary_expression "iVar19 == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_0001d698;" goto statement_identifier ;)) (expression_statement "uVar22 = 1;" (assignment_expression "uVar22 = 1" identifier = number_literal) ;) (expression_statement "sVar20 = LONGINT_OK;" (assignment_expression "sVar20 = LONGINT_OK" identifier = identifier) ;) (labeled_statement "LAB_0001d6c8:\n        uVar4 = iVar18 - 0x45U & 0xff;" statement_identifier : (expression_statement "uVar4 = iVar18 - 0x45U & 0xff;" (assignment_expression "uVar4 = iVar18 - 0x45U & 0xff" identifier = (binary_expression "iVar18 - 0x45U & 0xff" (binary_expression "iVar18 - 0x45U" identifier - number_literal) & number_literal)) ;)) (if_statement "if (uVar4 < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d6e4 */\n                    /* WARNING: Treating indirect jump as call */\n          sVar20 = (*(code *)(&_gp + *(int *)(PTR_LAB_00034138 + uVar4 * 4 + 0x3230)))();\n          return sVar20;\n        }" if (parenthesized_expression "(uVar4 < 0x30)" ( (binary_expression "uVar4 < 0x30" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not emulate address calculation at 0x0001d6e4 */\n                    /* WARNING: Treating indirect jump as call */\n          sVar20 = (*(code *)(&_gp + *(int *)(PTR_LAB_00034138 + uVar4 * 4 + 0x3230)))();\n          return sVar20;\n        }" { comment comment (expression_statement "sVar20 = (*(code *)(&_gp + *(int *)(PTR_LAB_00034138 + uVar4 * 4 + 0x3230)))();" (assignment_expression "sVar20 = (*(code *)(&_gp + *(int *)(PTR_LAB_00034138 + uVar4 * 4 + 0x3230)))()" identifier = (call_expression "(*(code *)(&_gp + *(int *)(PTR_LAB_00034138 + uVar4 * 4 + 0x3230)))()" (parenthesized_expression "(*(code *)(&_gp + *(int *)(PTR_LAB_00034138 + uVar4 * 4 + 0x3230)))" ( (pointer_expression "*(code *)(&_gp + *(int *)(PTR_LAB_00034138 + uVar4 * 4 + 0x3230))" * (cast_expression "(code *)(&_gp + *(int *)(PTR_LAB_00034138 + uVar4 * 4 + 0x3230))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp + *(int *)(PTR_LAB_00034138 + uVar4 * 4 + 0x3230))" ( (binary_expression "&_gp + *(int *)(PTR_LAB_00034138 + uVar4 * 4 + 0x3230)" (pointer_expression "&_gp" & identifier) + (pointer_expression "*(int *)(PTR_LAB_00034138 + uVar4 * 4 + 0x3230)" * (cast_expression "(int *)(PTR_LAB_00034138 + uVar4 * 4 + 0x3230)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00034138 + uVar4 * 4 + 0x3230)" ( (binary_expression "PTR_LAB_00034138 + uVar4 * 4 + 0x3230" (binary_expression "PTR_LAB_00034138 + uVar4 * 4" identifier + (binary_expression "uVar4 * 4" identifier * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return sVar20;" return identifier ;) })) (expression_statement "uVar4 = iVar18 - 0x42U & 0xff;" (assignment_expression "uVar4 = iVar18 - 0x42U & 0xff" identifier = (binary_expression "iVar18 - 0x42U & 0xff" (binary_expression "iVar18 - 0x42U" identifier - number_literal) & number_literal)) ;) (if_statement "if (uVar4 < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d7b8 */\n                    /* WARNING: Treating indirect jump as call */\n          sVar20 = (*(code *)(&_gp + *(int *)(PTR_LAB_00034138 + uVar4 * 4 + 0x33b0)))(1);\n          return sVar20;\n        }" if (parenthesized_expression "(uVar4 < 0x36)" ( (binary_expression "uVar4 < 0x36" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not emulate address calculation at 0x0001d7b8 */\n                    /* WARNING: Treating indirect jump as call */\n          sVar20 = (*(code *)(&_gp + *(int *)(PTR_LAB_00034138 + uVar4 * 4 + 0x33b0)))(1);\n          return sVar20;\n        }" { comment comment (expression_statement "sVar20 = (*(code *)(&_gp + *(int *)(PTR_LAB_00034138 + uVar4 * 4 + 0x33b0)))(1);" (assignment_expression "sVar20 = (*(code *)(&_gp + *(int *)(PTR_LAB_00034138 + uVar4 * 4 + 0x33b0)))(1)" identifier = (call_expression "(*(code *)(&_gp + *(int *)(PTR_LAB_00034138 + uVar4 * 4 + 0x33b0)))(1)" (parenthesized_expression "(*(code *)(&_gp + *(int *)(PTR_LAB_00034138 + uVar4 * 4 + 0x33b0)))" ( (pointer_expression "*(code *)(&_gp + *(int *)(PTR_LAB_00034138 + uVar4 * 4 + 0x33b0))" * (cast_expression "(code *)(&_gp + *(int *)(PTR_LAB_00034138 + uVar4 * 4 + 0x33b0))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp + *(int *)(PTR_LAB_00034138 + uVar4 * 4 + 0x33b0))" ( (binary_expression "&_gp + *(int *)(PTR_LAB_00034138 + uVar4 * 4 + 0x33b0)" (pointer_expression "&_gp" & identifier) + (pointer_expression "*(int *)(PTR_LAB_00034138 + uVar4 * 4 + 0x33b0)" * (cast_expression "(int *)(PTR_LAB_00034138 + uVar4 * 4 + 0x33b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00034138 + uVar4 * 4 + 0x33b0)" ( (binary_expression "PTR_LAB_00034138 + uVar4 * 4 + 0x33b0" (binary_expression "PTR_LAB_00034138 + uVar4 * 4" identifier + (binary_expression "uVar4 * 4" identifier * number_literal)) + number_literal) ))))) )))) )) (argument_list "(1)" ( number_literal )))) ;) (return_statement "return sVar20;" return identifier ;) })) }) (else_clause "else {\n        sVar20 = LONGINT_OK;\n        if (*piVar2 != 0) {\n          if (*piVar2 != 0x22) goto LAB_0001d698;\n          sVar20 = LONGINT_OVERFLOW;\n        }\n        if ((valid_suffixes == (char *)0x0) || (iVar18 = (int)**ptr, iVar18 == 0)) {\n          *val = uVar22;\n          goto LAB_0001d630;\n        }\n        iVar19 = (*(code *)PTR_strchr_00034344)(valid_suffixes,iVar18);\n        if (iVar19 != 0) goto LAB_0001d6c8;\n      }" else (compound_statement "{\n        sVar20 = LONGINT_OK;\n        if (*piVar2 != 0) {\n          if (*piVar2 != 0x22) goto LAB_0001d698;\n          sVar20 = LONGINT_OVERFLOW;\n        }\n        if ((valid_suffixes == (char *)0x0) || (iVar18 = (int)**ptr, iVar18 == 0)) {\n          *val = uVar22;\n          goto LAB_0001d630;\n        }\n        iVar19 = (*(code *)PTR_strchr_00034344)(valid_suffixes,iVar18);\n        if (iVar19 != 0) goto LAB_0001d6c8;\n      }" { (expression_statement "sVar20 = LONGINT_OK;" (assignment_expression "sVar20 = LONGINT_OK" identifier = identifier) ;) (if_statement "if (*piVar2 != 0) {\n          if (*piVar2 != 0x22) goto LAB_0001d698;\n          sVar20 = LONGINT_OVERFLOW;\n        }" if (parenthesized_expression "(*piVar2 != 0)" ( (binary_expression "*piVar2 != 0" (pointer_expression "*piVar2" * identifier) != number_literal) )) (compound_statement "{\n          if (*piVar2 != 0x22) goto LAB_0001d698;\n          sVar20 = LONGINT_OVERFLOW;\n        }" { (if_statement "if (*piVar2 != 0x22) goto LAB_0001d698;" if (parenthesized_expression "(*piVar2 != 0x22)" ( (binary_expression "*piVar2 != 0x22" (pointer_expression "*piVar2" * identifier) != number_literal) )) (goto_statement "goto LAB_0001d698;" goto statement_identifier ;)) (expression_statement "sVar20 = LONGINT_OVERFLOW;" (assignment_expression "sVar20 = LONGINT_OVERFLOW" identifier = identifier) ;) })) (if_statement "if ((valid_suffixes == (char *)0x0) || (iVar18 = (int)**ptr, iVar18 == 0)) {\n          *val = uVar22;\n          goto LAB_0001d630;\n        }" if (parenthesized_expression "((valid_suffixes == (char *)0x0) || (iVar18 = (int)**ptr, iVar18 == 0))" ( (binary_expression "(valid_suffixes == (char *)0x0) || (iVar18 = (int)**ptr, iVar18 == 0)" (parenthesized_expression "(valid_suffixes == (char *)0x0)" ( (binary_expression "valid_suffixes == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iVar18 = (int)**ptr, iVar18 == 0)" ( (comma_expression "iVar18 = (int)**ptr, iVar18 == 0" (assignment_expression "iVar18 = (int)**ptr" identifier = (cast_expression "(int)**ptr" ( (type_descriptor "int" primitive_type) ) (pointer_expression "**ptr" * (pointer_expression "*ptr" * identifier)))) , (binary_expression "iVar18 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n          *val = uVar22;\n          goto LAB_0001d630;\n        }" { (expression_statement "*val = uVar22;" (assignment_expression "*val = uVar22" (pointer_expression "*val" * identifier) = identifier) ;) (goto_statement "goto LAB_0001d630;" goto statement_identifier ;) })) (expression_statement "iVar19 = (*(code *)PTR_strchr_00034344)(valid_suffixes,iVar18);" (assignment_expression "iVar19 = (*(code *)PTR_strchr_00034344)(valid_suffixes,iVar18)" identifier = (call_expression "(*(code *)PTR_strchr_00034344)(valid_suffixes,iVar18)" (parenthesized_expression "(*(code *)PTR_strchr_00034344)" ( (pointer_expression "*(code *)PTR_strchr_00034344" * (cast_expression "(code *)PTR_strchr_00034344" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(valid_suffixes,iVar18)" ( identifier , identifier )))) ;) (if_statement "if (iVar19 != 0) goto LAB_0001d6c8;" if (parenthesized_expression "(iVar19 != 0)" ( (binary_expression "iVar19 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001d6c8;" goto statement_identifier ;)) }))) (expression_statement "sVar20 = sVar20 | LONGINT_INVALID_SUFFIX_CHAR;" (assignment_expression "sVar20 = sVar20 | LONGINT_INVALID_SUFFIX_CHAR" identifier = (binary_expression "sVar20 | LONGINT_INVALID_SUFFIX_CHAR" identifier | identifier)) ;) (expression_statement "*val = uVar22;" (assignment_expression "*val = uVar22" (pointer_expression "*val" * identifier) = identifier) ;) }))) (labeled_statement "LAB_0001d630:\n    if (local_2c == *(int *)puVar21) {\n      return sVar20;\n    }" statement_identifier : (if_statement "if (local_2c == *(int *)puVar21) {\n      return sVar20;\n    }" if (parenthesized_expression "(local_2c == *(int *)puVar21)" ( (binary_expression "local_2c == *(int *)puVar21" identifier == (pointer_expression "*(int *)puVar21" * (cast_expression "(int *)puVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n      return sVar20;\n    }" { (return_statement "return sVar20;" return identifier ;) }))) (expression_statement "(*(code *)PTR___stack_chk_fail_00034398)();" (call_expression "(*(code *)PTR___stack_chk_fail_00034398)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00034398)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00034398" * (cast_expression "(code *)PTR___stack_chk_fail_00034398" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "uVar13 = 0x60;" (assignment_expression "uVar13 = 0x60" identifier = number_literal) ;) (expression_statement "piVar2 = (int *)(PTR_LAB_00034138 + 0x31f4);" (assignment_expression "piVar2 = (int *)(PTR_LAB_00034138 + 0x31f4)" identifier = (cast_expression "(int *)(PTR_LAB_00034138 + 0x31f4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00034138 + 0x31f4)" ( (binary_expression "PTR_LAB_00034138 + 0x31f4" identifier + number_literal) )))) ;) (expression_statement "puVar12 = PTR_LAB_00034138 + 0x3204;" (assignment_expression "puVar12 = PTR_LAB_00034138 + 0x3204" identifier = (binary_expression "PTR_LAB_00034138 + 0x3204" identifier + number_literal)) ;) (expression_statement "puVar21 = PTR___assert_fail_000342ac;" (assignment_expression "puVar21 = PTR___assert_fail_000342ac" identifier = identifier) ;) (expression_statement "(*(code *)PTR___assert_fail_000342ac)();" (call_expression "(*(code *)PTR___assert_fail_000342ac)()" (parenthesized_expression "(*(code *)PTR___assert_fail_000342ac)" ( (pointer_expression "*(code *)PTR___assert_fail_000342ac" * (cast_expression "(code *)PTR___assert_fail_000342ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar3 = *(int **)(puVar21 + 0x16648);" (assignment_expression "piVar3 = *(int **)(puVar21 + 0x16648)" identifier = (pointer_expression "*(int **)(puVar21 + 0x16648)" * (cast_expression "(int **)(puVar21 + 0x16648)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x16648)" ( (binary_expression "puVar21 + 0x16648" identifier + number_literal) ))))) ;) (expression_statement "iVar18 = *piVar3;" (assignment_expression "iVar18 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (expression_statement "iVar19 = *(int *)(puVar21 + 0x163b8);" (assignment_expression "iVar19 = *(int *)(puVar21 + 0x163b8)" identifier = (pointer_expression "*(int *)(puVar21 + 0x163b8)" * (cast_expression "(int *)(puVar21 + 0x163b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 0x163b8)" ( (binary_expression "puVar21 + 0x163b8" identifier + number_literal) ))))) ;) (if_statement "if (piVar2 != (int *)0x406) {\n    sVar20 = (**(code **)(puVar21 + 0x16598))();\n    goto LAB_0001ddf8;\n  }" if (parenthesized_expression "(piVar2 != (int *)0x406)" ( (binary_expression "piVar2 != (int *)0x406" identifier != (cast_expression "(int *)0x406" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    sVar20 = (**(code **)(puVar21 + 0x16598))();\n    goto LAB_0001ddf8;\n  }" { (expression_statement "sVar20 = (**(code **)(puVar21 + 0x16598))();" (assignment_expression "sVar20 = (**(code **)(puVar21 + 0x16598))()" identifier = (call_expression "(**(code **)(puVar21 + 0x16598))()" (parenthesized_expression "(**(code **)(puVar21 + 0x16598))" ( (pointer_expression "**(code **)(puVar21 + 0x16598)" * (pointer_expression "*(code **)(puVar21 + 0x16598)" * (cast_expression "(code **)(puVar21 + 0x16598)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x16598)" ( (binary_expression "puVar21 + 0x16598" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (goto_statement "goto LAB_0001ddf8;" goto statement_identifier ;) })) (if_statement "if (*(int *)(iVar19 + 0x4580) < 0) {\n    piVar2 = (int *)0x0;\n    sVar20 = rpl_fcntl((int)puVar12,0);\n    if (((int)sVar20 < 0) || (sVar17 = sVar20, *(int *)(iVar19 + 0x4580) != -1)) goto LAB_0001ddf8;\n  }\n  else {\n    sVar20 = (**(code **)(puVar21 + 0x16598))();\n    if ((-1 < (int)sVar20) || (piVar6 = (int *)(**(code **)(puVar21 + 0x165b0))(), *piVar6 != 0x16))\n    {\n      *(undefined4 *)(iVar19 + 0x4580) = 1;\n      goto LAB_0001ddf8;\n    }\n    piVar2 = (int *)0x0;\n    sVar20 = rpl_fcntl((int)puVar12,0,uVar13);\n    if ((int)sVar20 < 0) goto LAB_0001ddf8;\n    *(undefined4 *)(iVar19 + 0x4580) = 0xffffffff;\n    sVar17 = sVar20;\n  }" if (parenthesized_expression "(*(int *)(iVar19 + 0x4580) < 0)" ( (binary_expression "*(int *)(iVar19 + 0x4580) < 0" (pointer_expression "*(int *)(iVar19 + 0x4580)" * (cast_expression "(int *)(iVar19 + 0x4580)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x4580)" ( (binary_expression "iVar19 + 0x4580" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n    piVar2 = (int *)0x0;\n    sVar20 = rpl_fcntl((int)puVar12,0);\n    if (((int)sVar20 < 0) || (sVar17 = sVar20, *(int *)(iVar19 + 0x4580) != -1)) goto LAB_0001ddf8;\n  }" { (expression_statement "piVar2 = (int *)0x0;" (assignment_expression "piVar2 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "sVar20 = rpl_fcntl((int)puVar12,0);" (assignment_expression "sVar20 = rpl_fcntl((int)puVar12,0)" identifier = (call_expression "rpl_fcntl((int)puVar12,0)" identifier (argument_list "((int)puVar12,0)" ( (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) , number_literal )))) ;) (if_statement "if (((int)sVar20 < 0) || (sVar17 = sVar20, *(int *)(iVar19 + 0x4580) != -1)) goto LAB_0001ddf8;" if (parenthesized_expression "(((int)sVar20 < 0) || (sVar17 = sVar20, *(int *)(iVar19 + 0x4580) != -1))" ( (binary_expression "((int)sVar20 < 0) || (sVar17 = sVar20, *(int *)(iVar19 + 0x4580) != -1)" (parenthesized_expression "((int)sVar20 < 0)" ( (binary_expression "(int)sVar20 < 0" (cast_expression "(int)sVar20" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) || (parenthesized_expression "(sVar17 = sVar20, *(int *)(iVar19 + 0x4580) != -1)" ( (comma_expression "sVar17 = sVar20, *(int *)(iVar19 + 0x4580) != -1" (assignment_expression "sVar17 = sVar20" identifier = identifier) , (binary_expression "*(int *)(iVar19 + 0x4580) != -1" (pointer_expression "*(int *)(iVar19 + 0x4580)" * (cast_expression "(int *)(iVar19 + 0x4580)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x4580)" ( (binary_expression "iVar19 + 0x4580" identifier + number_literal) )))) != number_literal)) ))) )) (goto_statement "goto LAB_0001ddf8;" goto statement_identifier ;)) }) (else_clause "else {\n    sVar20 = (**(code **)(puVar21 + 0x16598))();\n    if ((-1 < (int)sVar20) || (piVar6 = (int *)(**(code **)(puVar21 + 0x165b0))(), *piVar6 != 0x16))\n    {\n      *(undefined4 *)(iVar19 + 0x4580) = 1;\n      goto LAB_0001ddf8;\n    }\n    piVar2 = (int *)0x0;\n    sVar20 = rpl_fcntl((int)puVar12,0,uVar13);\n    if ((int)sVar20 < 0) goto LAB_0001ddf8;\n    *(undefined4 *)(iVar19 + 0x4580) = 0xffffffff;\n    sVar17 = sVar20;\n  }" else (compound_statement "{\n    sVar20 = (**(code **)(puVar21 + 0x16598))();\n    if ((-1 < (int)sVar20) || (piVar6 = (int *)(**(code **)(puVar21 + 0x165b0))(), *piVar6 != 0x16))\n    {\n      *(undefined4 *)(iVar19 + 0x4580) = 1;\n      goto LAB_0001ddf8;\n    }\n    piVar2 = (int *)0x0;\n    sVar20 = rpl_fcntl((int)puVar12,0,uVar13);\n    if ((int)sVar20 < 0) goto LAB_0001ddf8;\n    *(undefined4 *)(iVar19 + 0x4580) = 0xffffffff;\n    sVar17 = sVar20;\n  }" { (expression_statement "sVar20 = (**(code **)(puVar21 + 0x16598))();" (assignment_expression "sVar20 = (**(code **)(puVar21 + 0x16598))()" identifier = (call_expression "(**(code **)(puVar21 + 0x16598))()" (parenthesized_expression "(**(code **)(puVar21 + 0x16598))" ( (pointer_expression "**(code **)(puVar21 + 0x16598)" * (pointer_expression "*(code **)(puVar21 + 0x16598)" * (cast_expression "(code **)(puVar21 + 0x16598)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x16598)" ( (binary_expression "puVar21 + 0x16598" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if ((-1 < (int)sVar20) || (piVar6 = (int *)(**(code **)(puVar21 + 0x165b0))(), *piVar6 != 0x16))\n    {\n      *(undefined4 *)(iVar19 + 0x4580) = 1;\n      goto LAB_0001ddf8;\n    }" if (parenthesized_expression "((-1 < (int)sVar20) || (piVar6 = (int *)(**(code **)(puVar21 + 0x165b0))(), *piVar6 != 0x16))" ( (binary_expression "(-1 < (int)sVar20) || (piVar6 = (int *)(**(code **)(puVar21 + 0x165b0))(), *piVar6 != 0x16)" (parenthesized_expression "(-1 < (int)sVar20)" ( (binary_expression "-1 < (int)sVar20" number_literal < (cast_expression "(int)sVar20" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "(piVar6 = (int *)(**(code **)(puVar21 + 0x165b0))(), *piVar6 != 0x16)" ( (comma_expression "piVar6 = (int *)(**(code **)(puVar21 + 0x165b0))(), *piVar6 != 0x16" (assignment_expression "piVar6 = (int *)(**(code **)(puVar21 + 0x165b0))()" identifier = (cast_expression "(int *)(**(code **)(puVar21 + 0x165b0))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar21 + 0x165b0))()" (parenthesized_expression "(**(code **)(puVar21 + 0x165b0))" ( (pointer_expression "**(code **)(puVar21 + 0x165b0)" * (pointer_expression "*(code **)(puVar21 + 0x165b0)" * (cast_expression "(code **)(puVar21 + 0x165b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x165b0)" ( (binary_expression "puVar21 + 0x165b0" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) , (binary_expression "*piVar6 != 0x16" (pointer_expression "*piVar6" * identifier) != number_literal)) ))) )) (compound_statement "{\n      *(undefined4 *)(iVar19 + 0x4580) = 1;\n      goto LAB_0001ddf8;\n    }" { (expression_statement "*(undefined4 *)(iVar19 + 0x4580) = 1;" (assignment_expression "*(undefined4 *)(iVar19 + 0x4580) = 1" (pointer_expression "*(undefined4 *)(iVar19 + 0x4580)" * (cast_expression "(undefined4 *)(iVar19 + 0x4580)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x4580)" ( (binary_expression "iVar19 + 0x4580" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_0001ddf8;" goto statement_identifier ;) })) (expression_statement "piVar2 = (int *)0x0;" (assignment_expression "piVar2 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "sVar20 = rpl_fcntl((int)puVar12,0,uVar13);" (assignment_expression "sVar20 = rpl_fcntl((int)puVar12,0,uVar13)" identifier = (call_expression "rpl_fcntl((int)puVar12,0,uVar13)" identifier (argument_list "((int)puVar12,0,uVar13)" ( (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) , number_literal , identifier )))) ;) (if_statement "if ((int)sVar20 < 0) goto LAB_0001ddf8;" if (parenthesized_expression "((int)sVar20 < 0)" ( (binary_expression "(int)sVar20 < 0" (cast_expression "(int)sVar20" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0001ddf8;" goto statement_identifier ;)) (expression_statement "*(undefined4 *)(iVar19 + 0x4580) = 0xffffffff;" (assignment_expression "*(undefined4 *)(iVar19 + 0x4580) = 0xffffffff" (pointer_expression "*(undefined4 *)(iVar19 + 0x4580)" * (cast_expression "(undefined4 *)(iVar19 + 0x4580)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x4580)" ( (binary_expression "iVar19 + 0x4580" identifier + number_literal) )))) = number_literal) ;) (expression_statement "sVar17 = sVar20;" (assignment_expression "sVar17 = sVar20" identifier = identifier) ;) }))) (expression_statement "piVar2 = (int *)0x1;" (assignment_expression "piVar2 = (int *)0x1" identifier = (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar4 = (**(code **)(puVar21 + 0x16598))(sVar17);" (assignment_expression "uVar4 = (**(code **)(puVar21 + 0x16598))(sVar17)" identifier = (call_expression "(**(code **)(puVar21 + 0x16598))(sVar17)" (parenthesized_expression "(**(code **)(puVar21 + 0x16598))" ( (pointer_expression "**(code **)(puVar21 + 0x16598)" * (pointer_expression "*(code **)(puVar21 + 0x16598)" * (cast_expression "(code **)(puVar21 + 0x16598)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x16598)" ( (binary_expression "puVar21 + 0x16598" identifier + number_literal) ))))) )) (argument_list "(sVar17)" ( identifier )))) ;) (if_statement "if (-1 < (int)uVar4) {\n    piVar2 = (int *)0x2;\n    iVar19 = (**(code **)(puVar21 + 0x16598))(sVar17,2,uVar4 | 1);\n    sVar20 = sVar17;\n    if (iVar19 != -1) goto LAB_0001ddf8;\n  }" if (parenthesized_expression "(-1 < (int)uVar4)" ( (binary_expression "-1 < (int)uVar4" number_literal < (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    piVar2 = (int *)0x2;\n    iVar19 = (**(code **)(puVar21 + 0x16598))(sVar17,2,uVar4 | 1);\n    sVar20 = sVar17;\n    if (iVar19 != -1) goto LAB_0001ddf8;\n  }" { (expression_statement "piVar2 = (int *)0x2;" (assignment_expression "piVar2 = (int *)0x2" identifier = (cast_expression "(int *)0x2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar19 = (**(code **)(puVar21 + 0x16598))(sVar17,2,uVar4 | 1);" (assignment_expression "iVar19 = (**(code **)(puVar21 + 0x16598))(sVar17,2,uVar4 | 1)" identifier = (call_expression "(**(code **)(puVar21 + 0x16598))(sVar17,2,uVar4 | 1)" (parenthesized_expression "(**(code **)(puVar21 + 0x16598))" ( (pointer_expression "**(code **)(puVar21 + 0x16598)" * (pointer_expression "*(code **)(puVar21 + 0x16598)" * (cast_expression "(code **)(puVar21 + 0x16598)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x16598)" ( (binary_expression "puVar21 + 0x16598" identifier + number_literal) ))))) )) (argument_list "(sVar17,2,uVar4 | 1)" ( identifier , number_literal , (binary_expression "uVar4 | 1" identifier | number_literal) )))) ;) (expression_statement "sVar20 = sVar17;" (assignment_expression "sVar20 = sVar17" identifier = identifier) ;) (if_statement "if (iVar19 != -1) goto LAB_0001ddf8;" if (parenthesized_expression "(iVar19 != -1)" ( (binary_expression "iVar19 != -1" identifier != number_literal) )) (goto_statement "goto LAB_0001ddf8;" goto statement_identifier ;)) })) (expression_statement "puVar5 = (undefined4 *)(**(code **)(puVar21 + 0x165b0))();" (assignment_expression "puVar5 = (undefined4 *)(**(code **)(puVar21 + 0x165b0))()" identifier = (cast_expression "(undefined4 *)(**(code **)(puVar21 + 0x165b0))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar21 + 0x165b0))()" (parenthesized_expression "(**(code **)(puVar21 + 0x165b0))" ( (pointer_expression "**(code **)(puVar21 + 0x165b0)" * (pointer_expression "*(code **)(puVar21 + 0x165b0)" * (cast_expression "(code **)(puVar21 + 0x165b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x165b0)" ( (binary_expression "puVar21 + 0x165b0" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar13 = *puVar5;" (assignment_expression "uVar13 = *puVar5" identifier = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "sVar20 = ~LONGINT_OK;" (assignment_expression "sVar20 = ~LONGINT_OK" identifier = (unary_expression "~LONGINT_OK" ~ identifier)) ;) (expression_statement "(**(code **)(puVar21 + 0x16540))(sVar17);" (call_expression "(**(code **)(puVar21 + 0x16540))(sVar17)" (parenthesized_expression "(**(code **)(puVar21 + 0x16540))" ( (pointer_expression "**(code **)(puVar21 + 0x16540)" * (pointer_expression "*(code **)(puVar21 + 0x16540)" * (cast_expression "(code **)(puVar21 + 0x16540)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x16540)" ( (binary_expression "puVar21 + 0x16540" identifier + number_literal) ))))) )) (argument_list "(sVar17)" ( identifier ))) ;) (expression_statement "*puVar5 = uVar13;" (assignment_expression "*puVar5 = uVar13" (pointer_expression "*puVar5" * identifier) = identifier) ;) (labeled_statement "LAB_0001ddf8:\n  if (iVar18 != *piVar3) {\n    (**(code **)(puVar21 + 0x16628))();\n    iVar19 = piVar2[8];\n    iVar16 = *piVar2;\n    sVar20 = (strtol_error)(iVar19 < iVar16);\n    sVar17 = piVar2[7];\n    if ((sVar20 != LONGINT_OK) &&\n       (sVar20 = (strtol_error)((int)sVar17 < iVar19), sVar20 != LONGINT_OK)) {\n      iVar9 = iVar16 - iVar19;\n      sVar7 = sVar17;\n      iVar15 = iVar16;\n      do {\n        iVar14 = iVar19 - sVar7;\n        sVar20 = iVar9 + sVar7;\n        if (iVar14 < iVar9) {\n          iVar15 = iVar15 - iVar14;\n          puVar5 = (undefined4 *)(iVar18 + sVar7 * 4);\n          puVar11 = (undefined4 *)(iVar18 + iVar15 * 4);\n          do {\n            puVar10 = puVar5 + 1;\n            uVar13 = *puVar5;\n            *puVar5 = *puVar11;\n            *puVar11 = uVar13;\n            sVar20 = sVar7;\n            puVar5 = puVar10;\n            puVar11 = puVar11 + 1;\n          } while ((undefined4 *)(iVar18 + (iVar14 + sVar7) * 4) != puVar10);\n        }\n        else {\n          puVar5 = (undefined4 *)(iVar18 + sVar7 * 4);\n          puVar11 = (undefined4 *)(iVar18 + iVar19 * 4);\n          do {\n            puVar10 = puVar5 + 1;\n            uVar13 = *puVar5;\n            *puVar5 = *puVar11;\n            *puVar11 = uVar13;\n            puVar5 = puVar10;\n            puVar11 = puVar11 + 1;\n          } while (puVar10 != (undefined4 *)(iVar18 + sVar20 * 4));\n        }\n      } while ((iVar19 < iVar15) && (iVar9 = iVar15 - iVar19, sVar7 = sVar20, (int)sVar20 < iVar19))\n      ;\n    }\n    piVar2[8] = iVar16;\n    piVar2[7] = (iVar16 - iVar19) + sVar17;\n    return sVar20;\n  }" statement_identifier : (if_statement "if (iVar18 != *piVar3) {\n    (**(code **)(puVar21 + 0x16628))();\n    iVar19 = piVar2[8];\n    iVar16 = *piVar2;\n    sVar20 = (strtol_error)(iVar19 < iVar16);\n    sVar17 = piVar2[7];\n    if ((sVar20 != LONGINT_OK) &&\n       (sVar20 = (strtol_error)((int)sVar17 < iVar19), sVar20 != LONGINT_OK)) {\n      iVar9 = iVar16 - iVar19;\n      sVar7 = sVar17;\n      iVar15 = iVar16;\n      do {\n        iVar14 = iVar19 - sVar7;\n        sVar20 = iVar9 + sVar7;\n        if (iVar14 < iVar9) {\n          iVar15 = iVar15 - iVar14;\n          puVar5 = (undefined4 *)(iVar18 + sVar7 * 4);\n          puVar11 = (undefined4 *)(iVar18 + iVar15 * 4);\n          do {\n            puVar10 = puVar5 + 1;\n            uVar13 = *puVar5;\n            *puVar5 = *puVar11;\n            *puVar11 = uVar13;\n            sVar20 = sVar7;\n            puVar5 = puVar10;\n            puVar11 = puVar11 + 1;\n          } while ((undefined4 *)(iVar18 + (iVar14 + sVar7) * 4) != puVar10);\n        }\n        else {\n          puVar5 = (undefined4 *)(iVar18 + sVar7 * 4);\n          puVar11 = (undefined4 *)(iVar18 + iVar19 * 4);\n          do {\n            puVar10 = puVar5 + 1;\n            uVar13 = *puVar5;\n            *puVar5 = *puVar11;\n            *puVar11 = uVar13;\n            puVar5 = puVar10;\n            puVar11 = puVar11 + 1;\n          } while (puVar10 != (undefined4 *)(iVar18 + sVar20 * 4));\n        }\n      } while ((iVar19 < iVar15) && (iVar9 = iVar15 - iVar19, sVar7 = sVar20, (int)sVar20 < iVar19))\n      ;\n    }\n    piVar2[8] = iVar16;\n    piVar2[7] = (iVar16 - iVar19) + sVar17;\n    return sVar20;\n  }" if (parenthesized_expression "(iVar18 != *piVar3)" ( (binary_expression "iVar18 != *piVar3" identifier != (pointer_expression "*piVar3" * identifier)) )) (compound_statement "{\n    (**(code **)(puVar21 + 0x16628))();\n    iVar19 = piVar2[8];\n    iVar16 = *piVar2;\n    sVar20 = (strtol_error)(iVar19 < iVar16);\n    sVar17 = piVar2[7];\n    if ((sVar20 != LONGINT_OK) &&\n       (sVar20 = (strtol_error)((int)sVar17 < iVar19), sVar20 != LONGINT_OK)) {\n      iVar9 = iVar16 - iVar19;\n      sVar7 = sVar17;\n      iVar15 = iVar16;\n      do {\n        iVar14 = iVar19 - sVar7;\n        sVar20 = iVar9 + sVar7;\n        if (iVar14 < iVar9) {\n          iVar15 = iVar15 - iVar14;\n          puVar5 = (undefined4 *)(iVar18 + sVar7 * 4);\n          puVar11 = (undefined4 *)(iVar18 + iVar15 * 4);\n          do {\n            puVar10 = puVar5 + 1;\n            uVar13 = *puVar5;\n            *puVar5 = *puVar11;\n            *puVar11 = uVar13;\n            sVar20 = sVar7;\n            puVar5 = puVar10;\n            puVar11 = puVar11 + 1;\n          } while ((undefined4 *)(iVar18 + (iVar14 + sVar7) * 4) != puVar10);\n        }\n        else {\n          puVar5 = (undefined4 *)(iVar18 + sVar7 * 4);\n          puVar11 = (undefined4 *)(iVar18 + iVar19 * 4);\n          do {\n            puVar10 = puVar5 + 1;\n            uVar13 = *puVar5;\n            *puVar5 = *puVar11;\n            *puVar11 = uVar13;\n            puVar5 = puVar10;\n            puVar11 = puVar11 + 1;\n          } while (puVar10 != (undefined4 *)(iVar18 + sVar20 * 4));\n        }\n      } while ((iVar19 < iVar15) && (iVar9 = iVar15 - iVar19, sVar7 = sVar20, (int)sVar20 < iVar19))\n      ;\n    }\n    piVar2[8] = iVar16;\n    piVar2[7] = (iVar16 - iVar19) + sVar17;\n    return sVar20;\n  }" { (expression_statement "(**(code **)(puVar21 + 0x16628))();" (call_expression "(**(code **)(puVar21 + 0x16628))()" (parenthesized_expression "(**(code **)(puVar21 + 0x16628))" ( (pointer_expression "**(code **)(puVar21 + 0x16628)" * (pointer_expression "*(code **)(puVar21 + 0x16628)" * (cast_expression "(code **)(puVar21 + 0x16628)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x16628)" ( (binary_expression "puVar21 + 0x16628" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar19 = piVar2[8];" (assignment_expression "iVar19 = piVar2[8]" identifier = (subscript_expression "piVar2[8]" identifier [ number_literal ])) ;) (expression_statement "iVar16 = *piVar2;" (assignment_expression "iVar16 = *piVar2" identifier = (pointer_expression "*piVar2" * identifier)) ;) (expression_statement "sVar20 = (strtol_error)(iVar19 < iVar16);" (assignment_expression "sVar20 = (strtol_error)(iVar19 < iVar16)" identifier = (call_expression "(strtol_error)(iVar19 < iVar16)" (parenthesized_expression "(strtol_error)" ( identifier )) (argument_list "(iVar19 < iVar16)" ( (binary_expression "iVar19 < iVar16" identifier < identifier) )))) ;) (expression_statement "sVar17 = piVar2[7];" (assignment_expression "sVar17 = piVar2[7]" identifier = (subscript_expression "piVar2[7]" identifier [ number_literal ])) ;) (if_statement "if ((sVar20 != LONGINT_OK) &&\n       (sVar20 = (strtol_error)((int)sVar17 < iVar19), sVar20 != LONGINT_OK)) {\n      iVar9 = iVar16 - iVar19;\n      sVar7 = sVar17;\n      iVar15 = iVar16;\n      do {\n        iVar14 = iVar19 - sVar7;\n        sVar20 = iVar9 + sVar7;\n        if (iVar14 < iVar9) {\n          iVar15 = iVar15 - iVar14;\n          puVar5 = (undefined4 *)(iVar18 + sVar7 * 4);\n          puVar11 = (undefined4 *)(iVar18 + iVar15 * 4);\n          do {\n            puVar10 = puVar5 + 1;\n            uVar13 = *puVar5;\n            *puVar5 = *puVar11;\n            *puVar11 = uVar13;\n            sVar20 = sVar7;\n            puVar5 = puVar10;\n            puVar11 = puVar11 + 1;\n          } while ((undefined4 *)(iVar18 + (iVar14 + sVar7) * 4) != puVar10);\n        }\n        else {\n          puVar5 = (undefined4 *)(iVar18 + sVar7 * 4);\n          puVar11 = (undefined4 *)(iVar18 + iVar19 * 4);\n          do {\n            puVar10 = puVar5 + 1;\n            uVar13 = *puVar5;\n            *puVar5 = *puVar11;\n            *puVar11 = uVar13;\n            puVar5 = puVar10;\n            puVar11 = puVar11 + 1;\n          } while (puVar10 != (undefined4 *)(iVar18 + sVar20 * 4));\n        }\n      } while ((iVar19 < iVar15) && (iVar9 = iVar15 - iVar19, sVar7 = sVar20, (int)sVar20 < iVar19))\n      ;\n    }" if (parenthesized_expression "((sVar20 != LONGINT_OK) &&\n       (sVar20 = (strtol_error)((int)sVar17 < iVar19), sVar20 != LONGINT_OK))" ( (binary_expression "(sVar20 != LONGINT_OK) &&\n       (sVar20 = (strtol_error)((int)sVar17 < iVar19), sVar20 != LONGINT_OK)" (parenthesized_expression "(sVar20 != LONGINT_OK)" ( (binary_expression "sVar20 != LONGINT_OK" identifier != identifier) )) && (parenthesized_expression "(sVar20 = (strtol_error)((int)sVar17 < iVar19), sVar20 != LONGINT_OK)" ( (comma_expression "sVar20 = (strtol_error)((int)sVar17 < iVar19), sVar20 != LONGINT_OK" (assignment_expression "sVar20 = (strtol_error)((int)sVar17 < iVar19)" identifier = (call_expression "(strtol_error)((int)sVar17 < iVar19)" (parenthesized_expression "(strtol_error)" ( identifier )) (argument_list "((int)sVar17 < iVar19)" ( (binary_expression "(int)sVar17 < iVar19" (cast_expression "(int)sVar17" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )))) , (binary_expression "sVar20 != LONGINT_OK" identifier != identifier)) ))) )) (compound_statement "{\n      iVar9 = iVar16 - iVar19;\n      sVar7 = sVar17;\n      iVar15 = iVar16;\n      do {\n        iVar14 = iVar19 - sVar7;\n        sVar20 = iVar9 + sVar7;\n        if (iVar14 < iVar9) {\n          iVar15 = iVar15 - iVar14;\n          puVar5 = (undefined4 *)(iVar18 + sVar7 * 4);\n          puVar11 = (undefined4 *)(iVar18 + iVar15 * 4);\n          do {\n            puVar10 = puVar5 + 1;\n            uVar13 = *puVar5;\n            *puVar5 = *puVar11;\n            *puVar11 = uVar13;\n            sVar20 = sVar7;\n            puVar5 = puVar10;\n            puVar11 = puVar11 + 1;\n          } while ((undefined4 *)(iVar18 + (iVar14 + sVar7) * 4) != puVar10);\n        }\n        else {\n          puVar5 = (undefined4 *)(iVar18 + sVar7 * 4);\n          puVar11 = (undefined4 *)(iVar18 + iVar19 * 4);\n          do {\n            puVar10 = puVar5 + 1;\n            uVar13 = *puVar5;\n            *puVar5 = *puVar11;\n            *puVar11 = uVar13;\n            puVar5 = puVar10;\n            puVar11 = puVar11 + 1;\n          } while (puVar10 != (undefined4 *)(iVar18 + sVar20 * 4));\n        }\n      } while ((iVar19 < iVar15) && (iVar9 = iVar15 - iVar19, sVar7 = sVar20, (int)sVar20 < iVar19))\n      ;\n    }" { (expression_statement "iVar9 = iVar16 - iVar19;" (assignment_expression "iVar9 = iVar16 - iVar19" identifier = (binary_expression "iVar16 - iVar19" identifier - identifier)) ;) (expression_statement "sVar7 = sVar17;" (assignment_expression "sVar7 = sVar17" identifier = identifier) ;) (expression_statement "iVar15 = iVar16;" (assignment_expression "iVar15 = iVar16" identifier = identifier) ;) (do_statement "do {\n        iVar14 = iVar19 - sVar7;\n        sVar20 = iVar9 + sVar7;\n        if (iVar14 < iVar9) {\n          iVar15 = iVar15 - iVar14;\n          puVar5 = (undefined4 *)(iVar18 + sVar7 * 4);\n          puVar11 = (undefined4 *)(iVar18 + iVar15 * 4);\n          do {\n            puVar10 = puVar5 + 1;\n            uVar13 = *puVar5;\n            *puVar5 = *puVar11;\n            *puVar11 = uVar13;\n            sVar20 = sVar7;\n            puVar5 = puVar10;\n            puVar11 = puVar11 + 1;\n          } while ((undefined4 *)(iVar18 + (iVar14 + sVar7) * 4) != puVar10);\n        }\n        else {\n          puVar5 = (undefined4 *)(iVar18 + sVar7 * 4);\n          puVar11 = (undefined4 *)(iVar18 + iVar19 * 4);\n          do {\n            puVar10 = puVar5 + 1;\n            uVar13 = *puVar5;\n            *puVar5 = *puVar11;\n            *puVar11 = uVar13;\n            puVar5 = puVar10;\n            puVar11 = puVar11 + 1;\n          } while (puVar10 != (undefined4 *)(iVar18 + sVar20 * 4));\n        }\n      } while ((iVar19 < iVar15) && (iVar9 = iVar15 - iVar19, sVar7 = sVar20, (int)sVar20 < iVar19))\n      ;" do (compound_statement "{\n        iVar14 = iVar19 - sVar7;\n        sVar20 = iVar9 + sVar7;\n        if (iVar14 < iVar9) {\n          iVar15 = iVar15 - iVar14;\n          puVar5 = (undefined4 *)(iVar18 + sVar7 * 4);\n          puVar11 = (undefined4 *)(iVar18 + iVar15 * 4);\n          do {\n            puVar10 = puVar5 + 1;\n            uVar13 = *puVar5;\n            *puVar5 = *puVar11;\n            *puVar11 = uVar13;\n            sVar20 = sVar7;\n            puVar5 = puVar10;\n            puVar11 = puVar11 + 1;\n          } while ((undefined4 *)(iVar18 + (iVar14 + sVar7) * 4) != puVar10);\n        }\n        else {\n          puVar5 = (undefined4 *)(iVar18 + sVar7 * 4);\n          puVar11 = (undefined4 *)(iVar18 + iVar19 * 4);\n          do {\n            puVar10 = puVar5 + 1;\n            uVar13 = *puVar5;\n            *puVar5 = *puVar11;\n            *puVar11 = uVar13;\n            puVar5 = puVar10;\n            puVar11 = puVar11 + 1;\n          } while (puVar10 != (undefined4 *)(iVar18 + sVar20 * 4));\n        }\n      }" { (expression_statement "iVar14 = iVar19 - sVar7;" (assignment_expression "iVar14 = iVar19 - sVar7" identifier = (binary_expression "iVar19 - sVar7" identifier - identifier)) ;) (expression_statement "sVar20 = iVar9 + sVar7;" (assignment_expression "sVar20 = iVar9 + sVar7" identifier = (binary_expression "iVar9 + sVar7" identifier + identifier)) ;) (if_statement "if (iVar14 < iVar9) {\n          iVar15 = iVar15 - iVar14;\n          puVar5 = (undefined4 *)(iVar18 + sVar7 * 4);\n          puVar11 = (undefined4 *)(iVar18 + iVar15 * 4);\n          do {\n            puVar10 = puVar5 + 1;\n            uVar13 = *puVar5;\n            *puVar5 = *puVar11;\n            *puVar11 = uVar13;\n            sVar20 = sVar7;\n            puVar5 = puVar10;\n            puVar11 = puVar11 + 1;\n          } while ((undefined4 *)(iVar18 + (iVar14 + sVar7) * 4) != puVar10);\n        }\n        else {\n          puVar5 = (undefined4 *)(iVar18 + sVar7 * 4);\n          puVar11 = (undefined4 *)(iVar18 + iVar19 * 4);\n          do {\n            puVar10 = puVar5 + 1;\n            uVar13 = *puVar5;\n            *puVar5 = *puVar11;\n            *puVar11 = uVar13;\n            puVar5 = puVar10;\n            puVar11 = puVar11 + 1;\n          } while (puVar10 != (undefined4 *)(iVar18 + sVar20 * 4));\n        }" if (parenthesized_expression "(iVar14 < iVar9)" ( (binary_expression "iVar14 < iVar9" identifier < identifier) )) (compound_statement "{\n          iVar15 = iVar15 - iVar14;\n          puVar5 = (undefined4 *)(iVar18 + sVar7 * 4);\n          puVar11 = (undefined4 *)(iVar18 + iVar15 * 4);\n          do {\n            puVar10 = puVar5 + 1;\n            uVar13 = *puVar5;\n            *puVar5 = *puVar11;\n            *puVar11 = uVar13;\n            sVar20 = sVar7;\n            puVar5 = puVar10;\n            puVar11 = puVar11 + 1;\n          } while ((undefined4 *)(iVar18 + (iVar14 + sVar7) * 4) != puVar10);\n        }" { (expression_statement "iVar15 = iVar15 - iVar14;" (assignment_expression "iVar15 = iVar15 - iVar14" identifier = (binary_expression "iVar15 - iVar14" identifier - identifier)) ;) (expression_statement "puVar5 = (undefined4 *)(iVar18 + sVar7 * 4);" (assignment_expression "puVar5 = (undefined4 *)(iVar18 + sVar7 * 4)" identifier = (cast_expression "(undefined4 *)(iVar18 + sVar7 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + sVar7 * 4)" ( (binary_expression "iVar18 + sVar7 * 4" identifier + (binary_expression "sVar7 * 4" identifier * number_literal)) )))) ;) (expression_statement "puVar11 = (undefined4 *)(iVar18 + iVar15 * 4);" (assignment_expression "puVar11 = (undefined4 *)(iVar18 + iVar15 * 4)" identifier = (cast_expression "(undefined4 *)(iVar18 + iVar15 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + iVar15 * 4)" ( (binary_expression "iVar18 + iVar15 * 4" identifier + (binary_expression "iVar15 * 4" identifier * number_literal)) )))) ;) (do_statement "do {\n            puVar10 = puVar5 + 1;\n            uVar13 = *puVar5;\n            *puVar5 = *puVar11;\n            *puVar11 = uVar13;\n            sVar20 = sVar7;\n            puVar5 = puVar10;\n            puVar11 = puVar11 + 1;\n          } while ((undefined4 *)(iVar18 + (iVar14 + sVar7) * 4) != puVar10);" do (compound_statement "{\n            puVar10 = puVar5 + 1;\n            uVar13 = *puVar5;\n            *puVar5 = *puVar11;\n            *puVar11 = uVar13;\n            sVar20 = sVar7;\n            puVar5 = puVar10;\n            puVar11 = puVar11 + 1;\n          }" { (expression_statement "puVar10 = puVar5 + 1;" (assignment_expression "puVar10 = puVar5 + 1" identifier = (binary_expression "puVar5 + 1" identifier + number_literal)) ;) (expression_statement "uVar13 = *puVar5;" (assignment_expression "uVar13 = *puVar5" identifier = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "*puVar5 = *puVar11;" (assignment_expression "*puVar5 = *puVar11" (pointer_expression "*puVar5" * identifier) = (pointer_expression "*puVar11" * identifier)) ;) (expression_statement "*puVar11 = uVar13;" (assignment_expression "*puVar11 = uVar13" (pointer_expression "*puVar11" * identifier) = identifier) ;) (expression_statement "sVar20 = sVar7;" (assignment_expression "sVar20 = sVar7" identifier = identifier) ;) (expression_statement "puVar5 = puVar10;" (assignment_expression "puVar5 = puVar10" identifier = identifier) ;) (expression_statement "puVar11 = puVar11 + 1;" (assignment_expression "puVar11 = puVar11 + 1" identifier = (binary_expression "puVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((undefined4 *)(iVar18 + (iVar14 + sVar7) * 4) != puVar10)" ( (binary_expression "(undefined4 *)(iVar18 + (iVar14 + sVar7) * 4) != puVar10" (cast_expression "(undefined4 *)(iVar18 + (iVar14 + sVar7) * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + (iVar14 + sVar7) * 4)" ( (binary_expression "iVar18 + (iVar14 + sVar7) * 4" identifier + (binary_expression "(iVar14 + sVar7) * 4" (parenthesized_expression "(iVar14 + sVar7)" ( (binary_expression "iVar14 + sVar7" identifier + identifier) )) * number_literal)) ))) != identifier) )) ;) }) (else_clause "else {\n          puVar5 = (undefined4 *)(iVar18 + sVar7 * 4);\n          puVar11 = (undefined4 *)(iVar18 + iVar19 * 4);\n          do {\n            puVar10 = puVar5 + 1;\n            uVar13 = *puVar5;\n            *puVar5 = *puVar11;\n            *puVar11 = uVar13;\n            puVar5 = puVar10;\n            puVar11 = puVar11 + 1;\n          } while (puVar10 != (undefined4 *)(iVar18 + sVar20 * 4));\n        }" else (compound_statement "{\n          puVar5 = (undefined4 *)(iVar18 + sVar7 * 4);\n          puVar11 = (undefined4 *)(iVar18 + iVar19 * 4);\n          do {\n            puVar10 = puVar5 + 1;\n            uVar13 = *puVar5;\n            *puVar5 = *puVar11;\n            *puVar11 = uVar13;\n            puVar5 = puVar10;\n            puVar11 = puVar11 + 1;\n          } while (puVar10 != (undefined4 *)(iVar18 + sVar20 * 4));\n        }" { (expression_statement "puVar5 = (undefined4 *)(iVar18 + sVar7 * 4);" (assignment_expression "puVar5 = (undefined4 *)(iVar18 + sVar7 * 4)" identifier = (cast_expression "(undefined4 *)(iVar18 + sVar7 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + sVar7 * 4)" ( (binary_expression "iVar18 + sVar7 * 4" identifier + (binary_expression "sVar7 * 4" identifier * number_literal)) )))) ;) (expression_statement "puVar11 = (undefined4 *)(iVar18 + iVar19 * 4);" (assignment_expression "puVar11 = (undefined4 *)(iVar18 + iVar19 * 4)" identifier = (cast_expression "(undefined4 *)(iVar18 + iVar19 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + iVar19 * 4)" ( (binary_expression "iVar18 + iVar19 * 4" identifier + (binary_expression "iVar19 * 4" identifier * number_literal)) )))) ;) (do_statement "do {\n            puVar10 = puVar5 + 1;\n            uVar13 = *puVar5;\n            *puVar5 = *puVar11;\n            *puVar11 = uVar13;\n            puVar5 = puVar10;\n            puVar11 = puVar11 + 1;\n          } while (puVar10 != (undefined4 *)(iVar18 + sVar20 * 4));" do (compound_statement "{\n            puVar10 = puVar5 + 1;\n            uVar13 = *puVar5;\n            *puVar5 = *puVar11;\n            *puVar11 = uVar13;\n            puVar5 = puVar10;\n            puVar11 = puVar11 + 1;\n          }" { (expression_statement "puVar10 = puVar5 + 1;" (assignment_expression "puVar10 = puVar5 + 1" identifier = (binary_expression "puVar5 + 1" identifier + number_literal)) ;) (expression_statement "uVar13 = *puVar5;" (assignment_expression "uVar13 = *puVar5" identifier = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "*puVar5 = *puVar11;" (assignment_expression "*puVar5 = *puVar11" (pointer_expression "*puVar5" * identifier) = (pointer_expression "*puVar11" * identifier)) ;) (expression_statement "*puVar11 = uVar13;" (assignment_expression "*puVar11 = uVar13" (pointer_expression "*puVar11" * identifier) = identifier) ;) (expression_statement "puVar5 = puVar10;" (assignment_expression "puVar5 = puVar10" identifier = identifier) ;) (expression_statement "puVar11 = puVar11 + 1;" (assignment_expression "puVar11 = puVar11 + 1" identifier = (binary_expression "puVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar10 != (undefined4 *)(iVar18 + sVar20 * 4))" ( (binary_expression "puVar10 != (undefined4 *)(iVar18 + sVar20 * 4)" identifier != (cast_expression "(undefined4 *)(iVar18 + sVar20 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + sVar20 * 4)" ( (binary_expression "iVar18 + sVar20 * 4" identifier + (binary_expression "sVar20 * 4" identifier * number_literal)) )))) )) ;) }))) }) while (parenthesized_expression "((iVar19 < iVar15) && (iVar9 = iVar15 - iVar19, sVar7 = sVar20, (int)sVar20 < iVar19))" ( (binary_expression "(iVar19 < iVar15) && (iVar9 = iVar15 - iVar19, sVar7 = sVar20, (int)sVar20 < iVar19)" (parenthesized_expression "(iVar19 < iVar15)" ( (binary_expression "iVar19 < iVar15" identifier < identifier) )) && (parenthesized_expression "(iVar9 = iVar15 - iVar19, sVar7 = sVar20, (int)sVar20 < iVar19)" ( (comma_expression "iVar9 = iVar15 - iVar19, sVar7 = sVar20, (int)sVar20 < iVar19" (assignment_expression "iVar9 = iVar15 - iVar19" identifier = (binary_expression "iVar15 - iVar19" identifier - identifier)) , (comma_expression "sVar7 = sVar20, (int)sVar20 < iVar19" (assignment_expression "sVar7 = sVar20" identifier = identifier) , (binary_expression "(int)sVar20 < iVar19" (cast_expression "(int)sVar20" ( (type_descriptor "int" primitive_type) ) identifier) < identifier))) ))) )) ;) })) (expression_statement "piVar2[8] = iVar16;" (assignment_expression "piVar2[8] = iVar16" (subscript_expression "piVar2[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar2[7] = (iVar16 - iVar19) + sVar17;" (assignment_expression "piVar2[7] = (iVar16 - iVar19) + sVar17" (subscript_expression "piVar2[7]" identifier [ number_literal ]) = (binary_expression "(iVar16 - iVar19) + sVar17" (parenthesized_expression "(iVar16 - iVar19)" ( (binary_expression "iVar16 - iVar19" identifier - identifier) )) + identifier)) ;) (return_statement "return sVar20;" return identifier ;) }))) (return_statement "return sVar20;" return identifier ;) })))
(translation_unit "uint xstrtoumax(byte *param_1,undefined4 *param_2,uint param_3,undefined8 *param_4,int param_5)\n\n{\n  byte bVar1;\n  int *piVar2;\n  int *piVar3;\n  undefined4 *puVar4;\n  int *piVar5;\n  uint uVar6;\n  byte *pbVar7;\n  int iVar8;\n  undefined4 *puVar9;\n  undefined4 *puVar10;\n  undefined *puVar11;\n  undefined4 uVar12;\n  int iVar13;\n  int iVar14;\n  int iVar15;\n  uint uVar16;\n  int iVar17;\n  int iVar18;\n  uint uVar19;\n  undefined *puVar20;\n  undefined8 uVar21;\n  undefined4 uStack_30;\n  int local_2c;\n  \n  puVar20 = PTR___stack_chk_guard_000343b8;\n  local_2c = *(int *)PTR___stack_chk_guard_000343b8;\n  if (param_3 < 0x25) {\n    if (param_2 == (undefined4 *)0x0) {\n      param_2 = &uStack_30;\n    }\n    piVar2 = (int *)(*(code *)PTR___errno_location_00034320)();\n    puVar11 = PTR___ctype_b_loc_000342a8;\n    *piVar2 = 0;\n    piVar3 = (int *)(*(code *)puVar11)();\n    bVar1 = *param_1;\n    pbVar7 = param_1;\n    while( true ) {\n      pbVar7 = pbVar7 + 1;\n      if ((*(ushort *)(*piVar3 + (uint)bVar1 * 2) & 0x20) == 0) break;\n      bVar1 = *pbVar7;\n    }\n    if (bVar1 == 0x2d) {\nLAB_0001d698:\n      uVar19 = 4;\n    }\n    else {\n      uVar21 = (*(code *)PTR___strtoull_internal_000343b0)(param_1,param_2,param_3,0);\n      if ((byte *)*param_2 == param_1) {\n        if (((param_5 == 0) || (iVar17 = (int)(char)*param_1, iVar17 == 0)) ||\n           (iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17), iVar18 == 0))\n        goto LAB_0001d698;\n        uVar21 = 1;\n        uVar19 = 0;\nLAB_0001d6c8:\n        uVar16 = iVar17 - 0x45U & 0xff;\n        if (uVar16 < 0x30) {\n                    \n                    \n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)))();\n          return uVar19;\n        }\n        uVar16 = iVar17 - 0x42U & 0xff;\n        if (uVar16 < 0x36) {\n                    \n                    \n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)))(1);\n          return uVar19;\n        }\n      }\n      else {\n        uVar19 = 0;\n        if (*piVar2 != 0) {\n          if (*piVar2 != 0x22) goto LAB_0001d698;\n          uVar19 = 1;\n        }\n        if ((param_5 == 0) || (iVar17 = (int)(char)*(byte *)*param_2, iVar17 == 0)) {\n          *param_4 = uVar21;\n          goto LAB_0001d630;\n        }\n        iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17);\n        if (iVar18 != 0) goto LAB_0001d6c8;\n      }\n      uVar19 = uVar19 | 2;\n      *param_4 = uVar21;\n    }\nLAB_0001d630:\n    if (local_2c == *(int *)puVar20) {\n      return uVar19;\n    }\n    (*(code *)PTR___stack_chk_fail_00034398)();\n  }\n  uVar12 = 0x60;\n  piVar2 = (int *)(PTR_LAB_00034138 + 0x31f4);\n  puVar11 = PTR_LAB_00034138 + 0x3204;\n  puVar20 = PTR___assert_fail_000342ac;\n  (*(code *)PTR___assert_fail_000342ac)(puVar11);\n  piVar3 = *(int **)(puVar20 + 0x16648);\n  iVar17 = *piVar3;\n  iVar18 = *(int *)(puVar20 + 0x163b8);\n  if (piVar2 != (int *)0x406) {\n    uVar19 = (**(code **)(puVar20 + 0x16598))();\n    goto LAB_0001ddf8;\n  }\n  if (*(int *)(iVar18 + 0x4580) < 0) {\n    piVar2 = (int *)0x0;\n    uVar19 = rpl_fcntl();\n    if (((int)uVar19 < 0) || (uVar16 = uVar19, *(int *)(iVar18 + 0x4580) != -1)) goto LAB_0001ddf8;\n  }\n  else {\n    uVar19 = (**(code **)(puVar20 + 0x16598))();\n    if ((-1 < (int)uVar19) || (piVar5 = (int *)(**(code **)(puVar20 + 0x165b0))(), *piVar5 != 0x16))\n    {\n      *(undefined4 *)(iVar18 + 0x4580) = 1;\n      goto LAB_0001ddf8;\n    }\n    piVar2 = (int *)0x0;\n    uVar19 = rpl_fcntl(puVar11,0,uVar12);\n    if ((int)uVar19 < 0) goto LAB_0001ddf8;\n    *(undefined4 *)(iVar18 + 0x4580) = 0xffffffff;\n    uVar16 = uVar19;\n  }\n  piVar2 = (int *)0x1;\n  uVar19 = (**(code **)(puVar20 + 0x16598))(uVar16);\n  if (-1 < (int)uVar19) {\n    piVar2 = (int *)0x2;\n    iVar18 = (**(code **)(puVar20 + 0x16598))(uVar16,2,uVar19 | 1);\n    uVar19 = uVar16;\n    if (iVar18 != -1) goto LAB_0001ddf8;\n  }\n  puVar4 = (undefined4 *)(**(code **)(puVar20 + 0x165b0))();\n  uVar12 = *puVar4;\n  uVar19 = 0xffffffff;\n  (**(code **)(puVar20 + 0x16540))(uVar16);\n  *puVar4 = uVar12;\nLAB_0001ddf8:\n  if (iVar17 != *piVar3) {\n    (**(code **)(puVar20 + 0x16628))();\n    iVar18 = piVar2[8];\n    iVar15 = *piVar2;\n    uVar19 = (uint)(iVar18 < iVar15);\n    uVar16 = piVar2[7];\n    if ((uVar19 != 0) && (uVar19 = (uint)((int)uVar16 < iVar18), uVar19 != 0)) {\n      iVar8 = iVar15 - iVar18;\n      uVar6 = uVar16;\n      iVar14 = iVar15;\n      do {\n        iVar13 = iVar18 - uVar6;\n        uVar19 = iVar8 + uVar6;\n        if (iVar13 < iVar8) {\n          iVar14 = iVar14 - iVar13;\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar14 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            uVar19 = uVar6;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while ((undefined4 *)(iVar17 + (iVar13 + uVar6) * 4) != puVar9);\n        }\n        else {\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar18 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while (puVar9 != (undefined4 *)(iVar17 + uVar19 * 4));\n        }\n      } while ((iVar18 < iVar14) && (iVar8 = iVar14 - iVar18, uVar6 = uVar19, (int)uVar19 < iVar18))\n      ;\n    }\n    piVar2[8] = iVar15;\n    piVar2[7] = (iVar15 - iVar18) + uVar16;\n    return uVar19;\n  }\n  return uVar19;\n}\n\n" (function_definition "uint xstrtoumax(byte *param_1,undefined4 *param_2,uint param_3,undefined8 *param_4,int param_5)\n\n{\n  byte bVar1;\n  int *piVar2;\n  int *piVar3;\n  undefined4 *puVar4;\n  int *piVar5;\n  uint uVar6;\n  byte *pbVar7;\n  int iVar8;\n  undefined4 *puVar9;\n  undefined4 *puVar10;\n  undefined *puVar11;\n  undefined4 uVar12;\n  int iVar13;\n  int iVar14;\n  int iVar15;\n  uint uVar16;\n  int iVar17;\n  int iVar18;\n  uint uVar19;\n  undefined *puVar20;\n  undefined8 uVar21;\n  undefined4 uStack_30;\n  int local_2c;\n  \n  puVar20 = PTR___stack_chk_guard_000343b8;\n  local_2c = *(int *)PTR___stack_chk_guard_000343b8;\n  if (param_3 < 0x25) {\n    if (param_2 == (undefined4 *)0x0) {\n      param_2 = &uStack_30;\n    }\n    piVar2 = (int *)(*(code *)PTR___errno_location_00034320)();\n    puVar11 = PTR___ctype_b_loc_000342a8;\n    *piVar2 = 0;\n    piVar3 = (int *)(*(code *)puVar11)();\n    bVar1 = *param_1;\n    pbVar7 = param_1;\n    while( true ) {\n      pbVar7 = pbVar7 + 1;\n      if ((*(ushort *)(*piVar3 + (uint)bVar1 * 2) & 0x20) == 0) break;\n      bVar1 = *pbVar7;\n    }\n    if (bVar1 == 0x2d) {\nLAB_0001d698:\n      uVar19 = 4;\n    }\n    else {\n      uVar21 = (*(code *)PTR___strtoull_internal_000343b0)(param_1,param_2,param_3,0);\n      if ((byte *)*param_2 == param_1) {\n        if (((param_5 == 0) || (iVar17 = (int)(char)*param_1, iVar17 == 0)) ||\n           (iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17), iVar18 == 0))\n        goto LAB_0001d698;\n        uVar21 = 1;\n        uVar19 = 0;\nLAB_0001d6c8:\n        uVar16 = iVar17 - 0x45U & 0xff;\n        if (uVar16 < 0x30) {\n                    \n                    \n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)))();\n          return uVar19;\n        }\n        uVar16 = iVar17 - 0x42U & 0xff;\n        if (uVar16 < 0x36) {\n                    \n                    \n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)))(1);\n          return uVar19;\n        }\n      }\n      else {\n        uVar19 = 0;\n        if (*piVar2 != 0) {\n          if (*piVar2 != 0x22) goto LAB_0001d698;\n          uVar19 = 1;\n        }\n        if ((param_5 == 0) || (iVar17 = (int)(char)*(byte *)*param_2, iVar17 == 0)) {\n          *param_4 = uVar21;\n          goto LAB_0001d630;\n        }\n        iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17);\n        if (iVar18 != 0) goto LAB_0001d6c8;\n      }\n      uVar19 = uVar19 | 2;\n      *param_4 = uVar21;\n    }\nLAB_0001d630:\n    if (local_2c == *(int *)puVar20) {\n      return uVar19;\n    }\n    (*(code *)PTR___stack_chk_fail_00034398)();\n  }\n  uVar12 = 0x60;\n  piVar2 = (int *)(PTR_LAB_00034138 + 0x31f4);\n  puVar11 = PTR_LAB_00034138 + 0x3204;\n  puVar20 = PTR___assert_fail_000342ac;\n  (*(code *)PTR___assert_fail_000342ac)(puVar11);\n  piVar3 = *(int **)(puVar20 + 0x16648);\n  iVar17 = *piVar3;\n  iVar18 = *(int *)(puVar20 + 0x163b8);\n  if (piVar2 != (int *)0x406) {\n    uVar19 = (**(code **)(puVar20 + 0x16598))();\n    goto LAB_0001ddf8;\n  }\n  if (*(int *)(iVar18 + 0x4580) < 0) {\n    piVar2 = (int *)0x0;\n    uVar19 = rpl_fcntl();\n    if (((int)uVar19 < 0) || (uVar16 = uVar19, *(int *)(iVar18 + 0x4580) != -1)) goto LAB_0001ddf8;\n  }\n  else {\n    uVar19 = (**(code **)(puVar20 + 0x16598))();\n    if ((-1 < (int)uVar19) || (piVar5 = (int *)(**(code **)(puVar20 + 0x165b0))(), *piVar5 != 0x16))\n    {\n      *(undefined4 *)(iVar18 + 0x4580) = 1;\n      goto LAB_0001ddf8;\n    }\n    piVar2 = (int *)0x0;\n    uVar19 = rpl_fcntl(puVar11,0,uVar12);\n    if ((int)uVar19 < 0) goto LAB_0001ddf8;\n    *(undefined4 *)(iVar18 + 0x4580) = 0xffffffff;\n    uVar16 = uVar19;\n  }\n  piVar2 = (int *)0x1;\n  uVar19 = (**(code **)(puVar20 + 0x16598))(uVar16);\n  if (-1 < (int)uVar19) {\n    piVar2 = (int *)0x2;\n    iVar18 = (**(code **)(puVar20 + 0x16598))(uVar16,2,uVar19 | 1);\n    uVar19 = uVar16;\n    if (iVar18 != -1) goto LAB_0001ddf8;\n  }\n  puVar4 = (undefined4 *)(**(code **)(puVar20 + 0x165b0))();\n  uVar12 = *puVar4;\n  uVar19 = 0xffffffff;\n  (**(code **)(puVar20 + 0x16540))(uVar16);\n  *puVar4 = uVar12;\nLAB_0001ddf8:\n  if (iVar17 != *piVar3) {\n    (**(code **)(puVar20 + 0x16628))();\n    iVar18 = piVar2[8];\n    iVar15 = *piVar2;\n    uVar19 = (uint)(iVar18 < iVar15);\n    uVar16 = piVar2[7];\n    if ((uVar19 != 0) && (uVar19 = (uint)((int)uVar16 < iVar18), uVar19 != 0)) {\n      iVar8 = iVar15 - iVar18;\n      uVar6 = uVar16;\n      iVar14 = iVar15;\n      do {\n        iVar13 = iVar18 - uVar6;\n        uVar19 = iVar8 + uVar6;\n        if (iVar13 < iVar8) {\n          iVar14 = iVar14 - iVar13;\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar14 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            uVar19 = uVar6;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while ((undefined4 *)(iVar17 + (iVar13 + uVar6) * 4) != puVar9);\n        }\n        else {\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar18 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while (puVar9 != (undefined4 *)(iVar17 + uVar19 * 4));\n        }\n      } while ((iVar18 < iVar14) && (iVar8 = iVar14 - iVar18, uVar6 = uVar19, (int)uVar19 < iVar18))\n      ;\n    }\n    piVar2[8] = iVar15;\n    piVar2[7] = (iVar15 - iVar18) + uVar16;\n    return uVar19;\n  }\n  return uVar19;\n}" type_identifier (function_declarator "xstrtoumax(byte *param_1,undefined4 *param_2,uint param_3,undefined8 *param_4,int param_5)" identifier (parameter_list "(byte *param_1,undefined4 *param_2,uint param_3,undefined8 *param_4,int param_5)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "undefined8 *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "int param_5" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  int *piVar2;\n  int *piVar3;\n  undefined4 *puVar4;\n  int *piVar5;\n  uint uVar6;\n  byte *pbVar7;\n  int iVar8;\n  undefined4 *puVar9;\n  undefined4 *puVar10;\n  undefined *puVar11;\n  undefined4 uVar12;\n  int iVar13;\n  int iVar14;\n  int iVar15;\n  uint uVar16;\n  int iVar17;\n  int iVar18;\n  uint uVar19;\n  undefined *puVar20;\n  undefined8 uVar21;\n  undefined4 uStack_30;\n  int local_2c;\n  \n  puVar20 = PTR___stack_chk_guard_000343b8;\n  local_2c = *(int *)PTR___stack_chk_guard_000343b8;\n  if (param_3 < 0x25) {\n    if (param_2 == (undefined4 *)0x0) {\n      param_2 = &uStack_30;\n    }\n    piVar2 = (int *)(*(code *)PTR___errno_location_00034320)();\n    puVar11 = PTR___ctype_b_loc_000342a8;\n    *piVar2 = 0;\n    piVar3 = (int *)(*(code *)puVar11)();\n    bVar1 = *param_1;\n    pbVar7 = param_1;\n    while( true ) {\n      pbVar7 = pbVar7 + 1;\n      if ((*(ushort *)(*piVar3 + (uint)bVar1 * 2) & 0x20) == 0) break;\n      bVar1 = *pbVar7;\n    }\n    if (bVar1 == 0x2d) {\nLAB_0001d698:\n      uVar19 = 4;\n    }\n    else {\n      uVar21 = (*(code *)PTR___strtoull_internal_000343b0)(param_1,param_2,param_3,0);\n      if ((byte *)*param_2 == param_1) {\n        if (((param_5 == 0) || (iVar17 = (int)(char)*param_1, iVar17 == 0)) ||\n           (iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17), iVar18 == 0))\n        goto LAB_0001d698;\n        uVar21 = 1;\n        uVar19 = 0;\nLAB_0001d6c8:\n        uVar16 = iVar17 - 0x45U & 0xff;\n        if (uVar16 < 0x30) {\n                    \n                    \n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)))();\n          return uVar19;\n        }\n        uVar16 = iVar17 - 0x42U & 0xff;\n        if (uVar16 < 0x36) {\n                    \n                    \n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)))(1);\n          return uVar19;\n        }\n      }\n      else {\n        uVar19 = 0;\n        if (*piVar2 != 0) {\n          if (*piVar2 != 0x22) goto LAB_0001d698;\n          uVar19 = 1;\n        }\n        if ((param_5 == 0) || (iVar17 = (int)(char)*(byte *)*param_2, iVar17 == 0)) {\n          *param_4 = uVar21;\n          goto LAB_0001d630;\n        }\n        iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17);\n        if (iVar18 != 0) goto LAB_0001d6c8;\n      }\n      uVar19 = uVar19 | 2;\n      *param_4 = uVar21;\n    }\nLAB_0001d630:\n    if (local_2c == *(int *)puVar20) {\n      return uVar19;\n    }\n    (*(code *)PTR___stack_chk_fail_00034398)();\n  }\n  uVar12 = 0x60;\n  piVar2 = (int *)(PTR_LAB_00034138 + 0x31f4);\n  puVar11 = PTR_LAB_00034138 + 0x3204;\n  puVar20 = PTR___assert_fail_000342ac;\n  (*(code *)PTR___assert_fail_000342ac)(puVar11);\n  piVar3 = *(int **)(puVar20 + 0x16648);\n  iVar17 = *piVar3;\n  iVar18 = *(int *)(puVar20 + 0x163b8);\n  if (piVar2 != (int *)0x406) {\n    uVar19 = (**(code **)(puVar20 + 0x16598))();\n    goto LAB_0001ddf8;\n  }\n  if (*(int *)(iVar18 + 0x4580) < 0) {\n    piVar2 = (int *)0x0;\n    uVar19 = rpl_fcntl();\n    if (((int)uVar19 < 0) || (uVar16 = uVar19, *(int *)(iVar18 + 0x4580) != -1)) goto LAB_0001ddf8;\n  }\n  else {\n    uVar19 = (**(code **)(puVar20 + 0x16598))();\n    if ((-1 < (int)uVar19) || (piVar5 = (int *)(**(code **)(puVar20 + 0x165b0))(), *piVar5 != 0x16))\n    {\n      *(undefined4 *)(iVar18 + 0x4580) = 1;\n      goto LAB_0001ddf8;\n    }\n    piVar2 = (int *)0x0;\n    uVar19 = rpl_fcntl(puVar11,0,uVar12);\n    if ((int)uVar19 < 0) goto LAB_0001ddf8;\n    *(undefined4 *)(iVar18 + 0x4580) = 0xffffffff;\n    uVar16 = uVar19;\n  }\n  piVar2 = (int *)0x1;\n  uVar19 = (**(code **)(puVar20 + 0x16598))(uVar16);\n  if (-1 < (int)uVar19) {\n    piVar2 = (int *)0x2;\n    iVar18 = (**(code **)(puVar20 + 0x16598))(uVar16,2,uVar19 | 1);\n    uVar19 = uVar16;\n    if (iVar18 != -1) goto LAB_0001ddf8;\n  }\n  puVar4 = (undefined4 *)(**(code **)(puVar20 + 0x165b0))();\n  uVar12 = *puVar4;\n  uVar19 = 0xffffffff;\n  (**(code **)(puVar20 + 0x16540))(uVar16);\n  *puVar4 = uVar12;\nLAB_0001ddf8:\n  if (iVar17 != *piVar3) {\n    (**(code **)(puVar20 + 0x16628))();\n    iVar18 = piVar2[8];\n    iVar15 = *piVar2;\n    uVar19 = (uint)(iVar18 < iVar15);\n    uVar16 = piVar2[7];\n    if ((uVar19 != 0) && (uVar19 = (uint)((int)uVar16 < iVar18), uVar19 != 0)) {\n      iVar8 = iVar15 - iVar18;\n      uVar6 = uVar16;\n      iVar14 = iVar15;\n      do {\n        iVar13 = iVar18 - uVar6;\n        uVar19 = iVar8 + uVar6;\n        if (iVar13 < iVar8) {\n          iVar14 = iVar14 - iVar13;\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar14 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            uVar19 = uVar6;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while ((undefined4 *)(iVar17 + (iVar13 + uVar6) * 4) != puVar9);\n        }\n        else {\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar18 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while (puVar9 != (undefined4 *)(iVar17 + uVar19 * 4));\n        }\n      } while ((iVar18 < iVar14) && (iVar8 = iVar14 - iVar18, uVar6 = uVar19, (int)uVar19 < iVar18))\n      ;\n    }\n    piVar2[8] = iVar15;\n    piVar2[7] = (iVar15 - iVar18) + uVar16;\n    return uVar19;\n  }\n  return uVar19;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "undefined *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "undefined *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "undefined8 uVar21;" type_identifier identifier ;) (declaration "undefined4 uStack_30;" type_identifier identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar20 = PTR___stack_chk_guard_000343b8;" (assignment_expression "puVar20 = PTR___stack_chk_guard_000343b8" identifier = identifier) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_000343b8;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_000343b8" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000343b8" * (cast_expression "(int *)PTR___stack_chk_guard_000343b8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (param_3 < 0x25) {\n    if (param_2 == (undefined4 *)0x0) {\n      param_2 = &uStack_30;\n    }\n    piVar2 = (int *)(*(code *)PTR___errno_location_00034320)();\n    puVar11 = PTR___ctype_b_loc_000342a8;\n    *piVar2 = 0;\n    piVar3 = (int *)(*(code *)puVar11)();\n    bVar1 = *param_1;\n    pbVar7 = param_1;\n    while( true ) {\n      pbVar7 = pbVar7 + 1;\n      if ((*(ushort *)(*piVar3 + (uint)bVar1 * 2) & 0x20) == 0) break;\n      bVar1 = *pbVar7;\n    }\n    if (bVar1 == 0x2d) {\nLAB_0001d698:\n      uVar19 = 4;\n    }\n    else {\n      uVar21 = (*(code *)PTR___strtoull_internal_000343b0)(param_1,param_2,param_3,0);\n      if ((byte *)*param_2 == param_1) {\n        if (((param_5 == 0) || (iVar17 = (int)(char)*param_1, iVar17 == 0)) ||\n           (iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17), iVar18 == 0))\n        goto LAB_0001d698;\n        uVar21 = 1;\n        uVar19 = 0;\nLAB_0001d6c8:\n        uVar16 = iVar17 - 0x45U & 0xff;\n        if (uVar16 < 0x30) {\n                    \n                    \n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)))();\n          return uVar19;\n        }\n        uVar16 = iVar17 - 0x42U & 0xff;\n        if (uVar16 < 0x36) {\n                    \n                    \n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)))(1);\n          return uVar19;\n        }\n      }\n      else {\n        uVar19 = 0;\n        if (*piVar2 != 0) {\n          if (*piVar2 != 0x22) goto LAB_0001d698;\n          uVar19 = 1;\n        }\n        if ((param_5 == 0) || (iVar17 = (int)(char)*(byte *)*param_2, iVar17 == 0)) {\n          *param_4 = uVar21;\n          goto LAB_0001d630;\n        }\n        iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17);\n        if (iVar18 != 0) goto LAB_0001d6c8;\n      }\n      uVar19 = uVar19 | 2;\n      *param_4 = uVar21;\n    }\nLAB_0001d630:\n    if (local_2c == *(int *)puVar20) {\n      return uVar19;\n    }\n    (*(code *)PTR___stack_chk_fail_00034398)();\n  }" if (parenthesized_expression "(param_3 < 0x25)" ( (binary_expression "param_3 < 0x25" identifier < number_literal) )) (compound_statement "{\n    if (param_2 == (undefined4 *)0x0) {\n      param_2 = &uStack_30;\n    }\n    piVar2 = (int *)(*(code *)PTR___errno_location_00034320)();\n    puVar11 = PTR___ctype_b_loc_000342a8;\n    *piVar2 = 0;\n    piVar3 = (int *)(*(code *)puVar11)();\n    bVar1 = *param_1;\n    pbVar7 = param_1;\n    while( true ) {\n      pbVar7 = pbVar7 + 1;\n      if ((*(ushort *)(*piVar3 + (uint)bVar1 * 2) & 0x20) == 0) break;\n      bVar1 = *pbVar7;\n    }\n    if (bVar1 == 0x2d) {\nLAB_0001d698:\n      uVar19 = 4;\n    }\n    else {\n      uVar21 = (*(code *)PTR___strtoull_internal_000343b0)(param_1,param_2,param_3,0);\n      if ((byte *)*param_2 == param_1) {\n        if (((param_5 == 0) || (iVar17 = (int)(char)*param_1, iVar17 == 0)) ||\n           (iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17), iVar18 == 0))\n        goto LAB_0001d698;\n        uVar21 = 1;\n        uVar19 = 0;\nLAB_0001d6c8:\n        uVar16 = iVar17 - 0x45U & 0xff;\n        if (uVar16 < 0x30) {\n                    \n                    \n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)))();\n          return uVar19;\n        }\n        uVar16 = iVar17 - 0x42U & 0xff;\n        if (uVar16 < 0x36) {\n                    \n                    \n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)))(1);\n          return uVar19;\n        }\n      }\n      else {\n        uVar19 = 0;\n        if (*piVar2 != 0) {\n          if (*piVar2 != 0x22) goto LAB_0001d698;\n          uVar19 = 1;\n        }\n        if ((param_5 == 0) || (iVar17 = (int)(char)*(byte *)*param_2, iVar17 == 0)) {\n          *param_4 = uVar21;\n          goto LAB_0001d630;\n        }\n        iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17);\n        if (iVar18 != 0) goto LAB_0001d6c8;\n      }\n      uVar19 = uVar19 | 2;\n      *param_4 = uVar21;\n    }\nLAB_0001d630:\n    if (local_2c == *(int *)puVar20) {\n      return uVar19;\n    }\n    (*(code *)PTR___stack_chk_fail_00034398)();\n  }" { (if_statement "if (param_2 == (undefined4 *)0x0) {\n      param_2 = &uStack_30;\n    }" if (parenthesized_expression "(param_2 == (undefined4 *)0x0)" ( (binary_expression "param_2 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      param_2 = &uStack_30;\n    }" { (expression_statement "param_2 = &uStack_30;" (assignment_expression "param_2 = &uStack_30" identifier = (pointer_expression "&uStack_30" & identifier)) ;) })) (expression_statement "piVar2 = (int *)(*(code *)PTR___errno_location_00034320)();" (assignment_expression "piVar2 = (int *)(*(code *)PTR___errno_location_00034320)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_00034320)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00034320)()" (parenthesized_expression "(*(code *)PTR___errno_location_00034320)" ( (pointer_expression "*(code *)PTR___errno_location_00034320" * (cast_expression "(code *)PTR___errno_location_00034320" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar11 = PTR___ctype_b_loc_000342a8;" (assignment_expression "puVar11 = PTR___ctype_b_loc_000342a8" identifier = identifier) ;) (expression_statement "*piVar2 = 0;" (assignment_expression "*piVar2 = 0" (pointer_expression "*piVar2" * identifier) = number_literal) ;) (expression_statement "piVar3 = (int *)(*(code *)puVar11)();" (assignment_expression "piVar3 = (int *)(*(code *)puVar11)()" identifier = (cast_expression "(int *)(*(code *)puVar11)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar11)()" (parenthesized_expression "(*(code *)puVar11)" ( (pointer_expression "*(code *)puVar11" * (cast_expression "(code *)puVar11" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "bVar1 = *param_1;" (assignment_expression "bVar1 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "pbVar7 = param_1;" (assignment_expression "pbVar7 = param_1" identifier = identifier) ;) (while_statement "while( true ) {\n      pbVar7 = pbVar7 + 1;\n      if ((*(ushort *)(*piVar3 + (uint)bVar1 * 2) & 0x20) == 0) break;\n      bVar1 = *pbVar7;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      pbVar7 = pbVar7 + 1;\n      if ((*(ushort *)(*piVar3 + (uint)bVar1 * 2) & 0x20) == 0) break;\n      bVar1 = *pbVar7;\n    }" { (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) (if_statement "if ((*(ushort *)(*piVar3 + (uint)bVar1 * 2) & 0x20) == 0) break;" if (parenthesized_expression "((*(ushort *)(*piVar3 + (uint)bVar1 * 2) & 0x20) == 0)" ( (binary_expression "(*(ushort *)(*piVar3 + (uint)bVar1 * 2) & 0x20) == 0" (parenthesized_expression "(*(ushort *)(*piVar3 + (uint)bVar1 * 2) & 0x20)" ( (binary_expression "*(ushort *)(*piVar3 + (uint)bVar1 * 2) & 0x20" (pointer_expression "*(ushort *)(*piVar3 + (uint)bVar1 * 2)" * (cast_expression "(ushort *)(*piVar3 + (uint)bVar1 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar3 + (uint)bVar1 * 2)" ( (binary_expression "*piVar3 + (uint)bVar1 * 2" (pointer_expression "*piVar3" * identifier) + (binary_expression "(uint)bVar1 * 2" (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) )))) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "bVar1 = *pbVar7;" (assignment_expression "bVar1 = *pbVar7" identifier = (pointer_expression "*pbVar7" * identifier)) ;) })) (if_statement "if (bVar1 == 0x2d) {\nLAB_0001d698:\n      uVar19 = 4;\n    }\n    else {\n      uVar21 = (*(code *)PTR___strtoull_internal_000343b0)(param_1,param_2,param_3,0);\n      if ((byte *)*param_2 == param_1) {\n        if (((param_5 == 0) || (iVar17 = (int)(char)*param_1, iVar17 == 0)) ||\n           (iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17), iVar18 == 0))\n        goto LAB_0001d698;\n        uVar21 = 1;\n        uVar19 = 0;\nLAB_0001d6c8:\n        uVar16 = iVar17 - 0x45U & 0xff;\n        if (uVar16 < 0x30) {\n                    \n                    \n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)))();\n          return uVar19;\n        }\n        uVar16 = iVar17 - 0x42U & 0xff;\n        if (uVar16 < 0x36) {\n                    \n                    \n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)))(1);\n          return uVar19;\n        }\n      }\n      else {\n        uVar19 = 0;\n        if (*piVar2 != 0) {\n          if (*piVar2 != 0x22) goto LAB_0001d698;\n          uVar19 = 1;\n        }\n        if ((param_5 == 0) || (iVar17 = (int)(char)*(byte *)*param_2, iVar17 == 0)) {\n          *param_4 = uVar21;\n          goto LAB_0001d630;\n        }\n        iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17);\n        if (iVar18 != 0) goto LAB_0001d6c8;\n      }\n      uVar19 = uVar19 | 2;\n      *param_4 = uVar21;\n    }" if (parenthesized_expression "(bVar1 == 0x2d)" ( (binary_expression "bVar1 == 0x2d" identifier == number_literal) )) (compound_statement "{\nLAB_0001d698:\n      uVar19 = 4;\n    }" { (labeled_statement "LAB_0001d698:\n      uVar19 = 4;" statement_identifier : (expression_statement "uVar19 = 4;" (assignment_expression "uVar19 = 4" identifier = number_literal) ;)) }) (else_clause "else {\n      uVar21 = (*(code *)PTR___strtoull_internal_000343b0)(param_1,param_2,param_3,0);\n      if ((byte *)*param_2 == param_1) {\n        if (((param_5 == 0) || (iVar17 = (int)(char)*param_1, iVar17 == 0)) ||\n           (iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17), iVar18 == 0))\n        goto LAB_0001d698;\n        uVar21 = 1;\n        uVar19 = 0;\nLAB_0001d6c8:\n        uVar16 = iVar17 - 0x45U & 0xff;\n        if (uVar16 < 0x30) {\n                    \n                    \n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)))();\n          return uVar19;\n        }\n        uVar16 = iVar17 - 0x42U & 0xff;\n        if (uVar16 < 0x36) {\n                    \n                    \n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)))(1);\n          return uVar19;\n        }\n      }\n      else {\n        uVar19 = 0;\n        if (*piVar2 != 0) {\n          if (*piVar2 != 0x22) goto LAB_0001d698;\n          uVar19 = 1;\n        }\n        if ((param_5 == 0) || (iVar17 = (int)(char)*(byte *)*param_2, iVar17 == 0)) {\n          *param_4 = uVar21;\n          goto LAB_0001d630;\n        }\n        iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17);\n        if (iVar18 != 0) goto LAB_0001d6c8;\n      }\n      uVar19 = uVar19 | 2;\n      *param_4 = uVar21;\n    }" else (compound_statement "{\n      uVar21 = (*(code *)PTR___strtoull_internal_000343b0)(param_1,param_2,param_3,0);\n      if ((byte *)*param_2 == param_1) {\n        if (((param_5 == 0) || (iVar17 = (int)(char)*param_1, iVar17 == 0)) ||\n           (iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17), iVar18 == 0))\n        goto LAB_0001d698;\n        uVar21 = 1;\n        uVar19 = 0;\nLAB_0001d6c8:\n        uVar16 = iVar17 - 0x45U & 0xff;\n        if (uVar16 < 0x30) {\n                    \n                    \n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)))();\n          return uVar19;\n        }\n        uVar16 = iVar17 - 0x42U & 0xff;\n        if (uVar16 < 0x36) {\n                    \n                    \n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)))(1);\n          return uVar19;\n        }\n      }\n      else {\n        uVar19 = 0;\n        if (*piVar2 != 0) {\n          if (*piVar2 != 0x22) goto LAB_0001d698;\n          uVar19 = 1;\n        }\n        if ((param_5 == 0) || (iVar17 = (int)(char)*(byte *)*param_2, iVar17 == 0)) {\n          *param_4 = uVar21;\n          goto LAB_0001d630;\n        }\n        iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17);\n        if (iVar18 != 0) goto LAB_0001d6c8;\n      }\n      uVar19 = uVar19 | 2;\n      *param_4 = uVar21;\n    }" { (expression_statement "uVar21 = (*(code *)PTR___strtoull_internal_000343b0)(param_1,param_2,param_3,0);" (assignment_expression "uVar21 = (*(code *)PTR___strtoull_internal_000343b0)(param_1,param_2,param_3,0)" identifier = (call_expression "(*(code *)PTR___strtoull_internal_000343b0)(param_1,param_2,param_3,0)" (parenthesized_expression "(*(code *)PTR___strtoull_internal_000343b0)" ( (pointer_expression "*(code *)PTR___strtoull_internal_000343b0" * (cast_expression "(code *)PTR___strtoull_internal_000343b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_2,param_3,0)" ( identifier , identifier , identifier , number_literal )))) ;) (if_statement "if ((byte *)*param_2 == param_1) {\n        if (((param_5 == 0) || (iVar17 = (int)(char)*param_1, iVar17 == 0)) ||\n           (iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17), iVar18 == 0))\n        goto LAB_0001d698;\n        uVar21 = 1;\n        uVar19 = 0;\nLAB_0001d6c8:\n        uVar16 = iVar17 - 0x45U & 0xff;\n        if (uVar16 < 0x30) {\n                    \n                    \n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)))();\n          return uVar19;\n        }\n        uVar16 = iVar17 - 0x42U & 0xff;\n        if (uVar16 < 0x36) {\n                    \n                    \n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)))(1);\n          return uVar19;\n        }\n      }\n      else {\n        uVar19 = 0;\n        if (*piVar2 != 0) {\n          if (*piVar2 != 0x22) goto LAB_0001d698;\n          uVar19 = 1;\n        }\n        if ((param_5 == 0) || (iVar17 = (int)(char)*(byte *)*param_2, iVar17 == 0)) {\n          *param_4 = uVar21;\n          goto LAB_0001d630;\n        }\n        iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17);\n        if (iVar18 != 0) goto LAB_0001d6c8;\n      }" if (parenthesized_expression "((byte *)*param_2 == param_1)" ( (binary_expression "(byte *)*param_2 == param_1" (cast_expression "(byte *)*param_2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier)) == identifier) )) (compound_statement "{\n        if (((param_5 == 0) || (iVar17 = (int)(char)*param_1, iVar17 == 0)) ||\n           (iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17), iVar18 == 0))\n        goto LAB_0001d698;\n        uVar21 = 1;\n        uVar19 = 0;\nLAB_0001d6c8:\n        uVar16 = iVar17 - 0x45U & 0xff;\n        if (uVar16 < 0x30) {\n                    \n                    \n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)))();\n          return uVar19;\n        }\n        uVar16 = iVar17 - 0x42U & 0xff;\n        if (uVar16 < 0x36) {\n                    \n                    \n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)))(1);\n          return uVar19;\n        }\n      }" { (if_statement "if (((param_5 == 0) || (iVar17 = (int)(char)*param_1, iVar17 == 0)) ||\n           (iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17), iVar18 == 0))\n        goto LAB_0001d698;" if (parenthesized_expression "(((param_5 == 0) || (iVar17 = (int)(char)*param_1, iVar17 == 0)) ||\n           (iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17), iVar18 == 0))" ( (binary_expression "((param_5 == 0) || (iVar17 = (int)(char)*param_1, iVar17 == 0)) ||\n           (iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17), iVar18 == 0)" (parenthesized_expression "((param_5 == 0) || (iVar17 = (int)(char)*param_1, iVar17 == 0))" ( (binary_expression "(param_5 == 0) || (iVar17 = (int)(char)*param_1, iVar17 == 0)" (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar17 = (int)(char)*param_1, iVar17 == 0)" ( (comma_expression "iVar17 = (int)(char)*param_1, iVar17 == 0" (assignment_expression "iVar17 = (int)(char)*param_1" identifier = (cast_expression "(int)(char)*param_1" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*param_1" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*param_1" * identifier)))) , (binary_expression "iVar17 == 0" identifier == number_literal)) ))) )) || (parenthesized_expression "(iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17), iVar18 == 0)" ( (comma_expression "iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17), iVar18 == 0" (assignment_expression "iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17)" identifier = (call_expression "(*(code *)PTR_strchr_00034344)(param_5,iVar17)" (parenthesized_expression "(*(code *)PTR_strchr_00034344)" ( (pointer_expression "*(code *)PTR_strchr_00034344" * (cast_expression "(code *)PTR_strchr_00034344" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_5,iVar17)" ( identifier , identifier )))) , (binary_expression "iVar18 == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_0001d698;" goto statement_identifier ;)) (expression_statement "uVar21 = 1;" (assignment_expression "uVar21 = 1" identifier = number_literal) ;) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0001d6c8:\n        uVar16 = iVar17 - 0x45U & 0xff;" statement_identifier : (expression_statement "uVar16 = iVar17 - 0x45U & 0xff;" (assignment_expression "uVar16 = iVar17 - 0x45U & 0xff" identifier = (binary_expression "iVar17 - 0x45U & 0xff" (binary_expression "iVar17 - 0x45U" identifier - number_literal) & number_literal)) ;)) (if_statement "if (uVar16 < 0x30) {\n                    \n                    \n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)))();\n          return uVar19;\n        }" if (parenthesized_expression "(uVar16 < 0x30)" ( (binary_expression "uVar16 < 0x30" identifier < number_literal) )) (compound_statement "{\n                    \n                    \n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)))();\n          return uVar19;\n        }" { (expression_statement "uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)))();" (assignment_expression "uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)))()" identifier = (call_expression "(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)))" ( (pointer_expression "*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230))" * (cast_expression "(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230))" ( (binary_expression "&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)" * (cast_expression "(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)" ( (binary_expression "PTR_LAB_00034138 + uVar16 * 4 + 0x3230" (binary_expression "PTR_LAB_00034138 + uVar16 * 4" identifier + (binary_expression "uVar16 * 4" identifier * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return uVar19;" return identifier ;) })) (expression_statement "uVar16 = iVar17 - 0x42U & 0xff;" (assignment_expression "uVar16 = iVar17 - 0x42U & 0xff" identifier = (binary_expression "iVar17 - 0x42U & 0xff" (binary_expression "iVar17 - 0x42U" identifier - number_literal) & number_literal)) ;) (if_statement "if (uVar16 < 0x36) {\n                    \n                    \n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)))(1);\n          return uVar19;\n        }" if (parenthesized_expression "(uVar16 < 0x36)" ( (binary_expression "uVar16 < 0x36" identifier < number_literal) )) (compound_statement "{\n                    \n                    \n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)))(1);\n          return uVar19;\n        }" { (expression_statement "uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)))(1);" (assignment_expression "uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)))(1)" identifier = (call_expression "(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)))(1)" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)))" ( (pointer_expression "*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0))" * (cast_expression "(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0))" ( (binary_expression "&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)" * (cast_expression "(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)" ( (binary_expression "PTR_LAB_00034138 + uVar16 * 4 + 0x33b0" (binary_expression "PTR_LAB_00034138 + uVar16 * 4" identifier + (binary_expression "uVar16 * 4" identifier * number_literal)) + number_literal) ))))) )))) )) (argument_list "(1)" ( number_literal )))) ;) (return_statement "return uVar19;" return identifier ;) })) }) (else_clause "else {\n        uVar19 = 0;\n        if (*piVar2 != 0) {\n          if (*piVar2 != 0x22) goto LAB_0001d698;\n          uVar19 = 1;\n        }\n        if ((param_5 == 0) || (iVar17 = (int)(char)*(byte *)*param_2, iVar17 == 0)) {\n          *param_4 = uVar21;\n          goto LAB_0001d630;\n        }\n        iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17);\n        if (iVar18 != 0) goto LAB_0001d6c8;\n      }" else (compound_statement "{\n        uVar19 = 0;\n        if (*piVar2 != 0) {\n          if (*piVar2 != 0x22) goto LAB_0001d698;\n          uVar19 = 1;\n        }\n        if ((param_5 == 0) || (iVar17 = (int)(char)*(byte *)*param_2, iVar17 == 0)) {\n          *param_4 = uVar21;\n          goto LAB_0001d630;\n        }\n        iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17);\n        if (iVar18 != 0) goto LAB_0001d6c8;\n      }" { (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (if_statement "if (*piVar2 != 0) {\n          if (*piVar2 != 0x22) goto LAB_0001d698;\n          uVar19 = 1;\n        }" if (parenthesized_expression "(*piVar2 != 0)" ( (binary_expression "*piVar2 != 0" (pointer_expression "*piVar2" * identifier) != number_literal) )) (compound_statement "{\n          if (*piVar2 != 0x22) goto LAB_0001d698;\n          uVar19 = 1;\n        }" { (if_statement "if (*piVar2 != 0x22) goto LAB_0001d698;" if (parenthesized_expression "(*piVar2 != 0x22)" ( (binary_expression "*piVar2 != 0x22" (pointer_expression "*piVar2" * identifier) != number_literal) )) (goto_statement "goto LAB_0001d698;" goto statement_identifier ;)) (expression_statement "uVar19 = 1;" (assignment_expression "uVar19 = 1" identifier = number_literal) ;) })) (if_statement "if ((param_5 == 0) || (iVar17 = (int)(char)*(byte *)*param_2, iVar17 == 0)) {\n          *param_4 = uVar21;\n          goto LAB_0001d630;\n        }" if (parenthesized_expression "((param_5 == 0) || (iVar17 = (int)(char)*(byte *)*param_2, iVar17 == 0))" ( (binary_expression "(param_5 == 0) || (iVar17 = (int)(char)*(byte *)*param_2, iVar17 == 0)" (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar17 = (int)(char)*(byte *)*param_2, iVar17 == 0)" ( (comma_expression "iVar17 = (int)(char)*(byte *)*param_2, iVar17 == 0" (assignment_expression "iVar17 = (int)(char)*(byte *)*param_2" identifier = (cast_expression "(int)(char)*(byte *)*param_2" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*(byte *)*param_2" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)*param_2" * (cast_expression "(byte *)*param_2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier)))))) , (binary_expression "iVar17 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n          *param_4 = uVar21;\n          goto LAB_0001d630;\n        }" { (expression_statement "*param_4 = uVar21;" (assignment_expression "*param_4 = uVar21" (pointer_expression "*param_4" * identifier) = identifier) ;) (goto_statement "goto LAB_0001d630;" goto statement_identifier ;) })) (expression_statement "iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17);" (assignment_expression "iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17)" identifier = (call_expression "(*(code *)PTR_strchr_00034344)(param_5,iVar17)" (parenthesized_expression "(*(code *)PTR_strchr_00034344)" ( (pointer_expression "*(code *)PTR_strchr_00034344" * (cast_expression "(code *)PTR_strchr_00034344" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_5,iVar17)" ( identifier , identifier )))) ;) (if_statement "if (iVar18 != 0) goto LAB_0001d6c8;" if (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001d6c8;" goto statement_identifier ;)) }))) (expression_statement "uVar19 = uVar19 | 2;" (assignment_expression "uVar19 = uVar19 | 2" identifier = (binary_expression "uVar19 | 2" identifier | number_literal)) ;) (expression_statement "*param_4 = uVar21;" (assignment_expression "*param_4 = uVar21" (pointer_expression "*param_4" * identifier) = identifier) ;) }))) (labeled_statement "LAB_0001d630:\n    if (local_2c == *(int *)puVar20) {\n      return uVar19;\n    }" statement_identifier : (if_statement "if (local_2c == *(int *)puVar20) {\n      return uVar19;\n    }" if (parenthesized_expression "(local_2c == *(int *)puVar20)" ( (binary_expression "local_2c == *(int *)puVar20" identifier == (pointer_expression "*(int *)puVar20" * (cast_expression "(int *)puVar20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n      return uVar19;\n    }" { (return_statement "return uVar19;" return identifier ;) }))) (expression_statement "(*(code *)PTR___stack_chk_fail_00034398)();" (call_expression "(*(code *)PTR___stack_chk_fail_00034398)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00034398)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00034398" * (cast_expression "(code *)PTR___stack_chk_fail_00034398" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "uVar12 = 0x60;" (assignment_expression "uVar12 = 0x60" identifier = number_literal) ;) (expression_statement "piVar2 = (int *)(PTR_LAB_00034138 + 0x31f4);" (assignment_expression "piVar2 = (int *)(PTR_LAB_00034138 + 0x31f4)" identifier = (cast_expression "(int *)(PTR_LAB_00034138 + 0x31f4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00034138 + 0x31f4)" ( (binary_expression "PTR_LAB_00034138 + 0x31f4" identifier + number_literal) )))) ;) (expression_statement "puVar11 = PTR_LAB_00034138 + 0x3204;" (assignment_expression "puVar11 = PTR_LAB_00034138 + 0x3204" identifier = (binary_expression "PTR_LAB_00034138 + 0x3204" identifier + number_literal)) ;) (expression_statement "puVar20 = PTR___assert_fail_000342ac;" (assignment_expression "puVar20 = PTR___assert_fail_000342ac" identifier = identifier) ;) (expression_statement "(*(code *)PTR___assert_fail_000342ac)(puVar11);" (call_expression "(*(code *)PTR___assert_fail_000342ac)(puVar11)" (parenthesized_expression "(*(code *)PTR___assert_fail_000342ac)" ( (pointer_expression "*(code *)PTR___assert_fail_000342ac" * (cast_expression "(code *)PTR___assert_fail_000342ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar11)" ( identifier ))) ;) (expression_statement "piVar3 = *(int **)(puVar20 + 0x16648);" (assignment_expression "piVar3 = *(int **)(puVar20 + 0x16648)" identifier = (pointer_expression "*(int **)(puVar20 + 0x16648)" * (cast_expression "(int **)(puVar20 + 0x16648)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x16648)" ( (binary_expression "puVar20 + 0x16648" identifier + number_literal) ))))) ;) (expression_statement "iVar17 = *piVar3;" (assignment_expression "iVar17 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (expression_statement "iVar18 = *(int *)(puVar20 + 0x163b8);" (assignment_expression "iVar18 = *(int *)(puVar20 + 0x163b8)" identifier = (pointer_expression "*(int *)(puVar20 + 0x163b8)" * (cast_expression "(int *)(puVar20 + 0x163b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x163b8)" ( (binary_expression "puVar20 + 0x163b8" identifier + number_literal) ))))) ;) (if_statement "if (piVar2 != (int *)0x406) {\n    uVar19 = (**(code **)(puVar20 + 0x16598))();\n    goto LAB_0001ddf8;\n  }" if (parenthesized_expression "(piVar2 != (int *)0x406)" ( (binary_expression "piVar2 != (int *)0x406" identifier != (cast_expression "(int *)0x406" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar19 = (**(code **)(puVar20 + 0x16598))();\n    goto LAB_0001ddf8;\n  }" { (expression_statement "uVar19 = (**(code **)(puVar20 + 0x16598))();" (assignment_expression "uVar19 = (**(code **)(puVar20 + 0x16598))()" identifier = (call_expression "(**(code **)(puVar20 + 0x16598))()" (parenthesized_expression "(**(code **)(puVar20 + 0x16598))" ( (pointer_expression "**(code **)(puVar20 + 0x16598)" * (pointer_expression "*(code **)(puVar20 + 0x16598)" * (cast_expression "(code **)(puVar20 + 0x16598)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x16598)" ( (binary_expression "puVar20 + 0x16598" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (goto_statement "goto LAB_0001ddf8;" goto statement_identifier ;) })) (if_statement "if (*(int *)(iVar18 + 0x4580) < 0) {\n    piVar2 = (int *)0x0;\n    uVar19 = rpl_fcntl();\n    if (((int)uVar19 < 0) || (uVar16 = uVar19, *(int *)(iVar18 + 0x4580) != -1)) goto LAB_0001ddf8;\n  }\n  else {\n    uVar19 = (**(code **)(puVar20 + 0x16598))();\n    if ((-1 < (int)uVar19) || (piVar5 = (int *)(**(code **)(puVar20 + 0x165b0))(), *piVar5 != 0x16))\n    {\n      *(undefined4 *)(iVar18 + 0x4580) = 1;\n      goto LAB_0001ddf8;\n    }\n    piVar2 = (int *)0x0;\n    uVar19 = rpl_fcntl(puVar11,0,uVar12);\n    if ((int)uVar19 < 0) goto LAB_0001ddf8;\n    *(undefined4 *)(iVar18 + 0x4580) = 0xffffffff;\n    uVar16 = uVar19;\n  }" if (parenthesized_expression "(*(int *)(iVar18 + 0x4580) < 0)" ( (binary_expression "*(int *)(iVar18 + 0x4580) < 0" (pointer_expression "*(int *)(iVar18 + 0x4580)" * (cast_expression "(int *)(iVar18 + 0x4580)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4580)" ( (binary_expression "iVar18 + 0x4580" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n    piVar2 = (int *)0x0;\n    uVar19 = rpl_fcntl();\n    if (((int)uVar19 < 0) || (uVar16 = uVar19, *(int *)(iVar18 + 0x4580) != -1)) goto LAB_0001ddf8;\n  }" { (expression_statement "piVar2 = (int *)0x0;" (assignment_expression "piVar2 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar19 = rpl_fcntl();" (assignment_expression "uVar19 = rpl_fcntl()" identifier = (call_expression "rpl_fcntl()" identifier (argument_list "()" ( )))) ;) (if_statement "if (((int)uVar19 < 0) || (uVar16 = uVar19, *(int *)(iVar18 + 0x4580) != -1)) goto LAB_0001ddf8;" if (parenthesized_expression "(((int)uVar19 < 0) || (uVar16 = uVar19, *(int *)(iVar18 + 0x4580) != -1))" ( (binary_expression "((int)uVar19 < 0) || (uVar16 = uVar19, *(int *)(iVar18 + 0x4580) != -1)" (parenthesized_expression "((int)uVar19 < 0)" ( (binary_expression "(int)uVar19 < 0" (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) || (parenthesized_expression "(uVar16 = uVar19, *(int *)(iVar18 + 0x4580) != -1)" ( (comma_expression "uVar16 = uVar19, *(int *)(iVar18 + 0x4580) != -1" (assignment_expression "uVar16 = uVar19" identifier = identifier) , (binary_expression "*(int *)(iVar18 + 0x4580) != -1" (pointer_expression "*(int *)(iVar18 + 0x4580)" * (cast_expression "(int *)(iVar18 + 0x4580)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4580)" ( (binary_expression "iVar18 + 0x4580" identifier + number_literal) )))) != number_literal)) ))) )) (goto_statement "goto LAB_0001ddf8;" goto statement_identifier ;)) }) (else_clause "else {\n    uVar19 = (**(code **)(puVar20 + 0x16598))();\n    if ((-1 < (int)uVar19) || (piVar5 = (int *)(**(code **)(puVar20 + 0x165b0))(), *piVar5 != 0x16))\n    {\n      *(undefined4 *)(iVar18 + 0x4580) = 1;\n      goto LAB_0001ddf8;\n    }\n    piVar2 = (int *)0x0;\n    uVar19 = rpl_fcntl(puVar11,0,uVar12);\n    if ((int)uVar19 < 0) goto LAB_0001ddf8;\n    *(undefined4 *)(iVar18 + 0x4580) = 0xffffffff;\n    uVar16 = uVar19;\n  }" else (compound_statement "{\n    uVar19 = (**(code **)(puVar20 + 0x16598))();\n    if ((-1 < (int)uVar19) || (piVar5 = (int *)(**(code **)(puVar20 + 0x165b0))(), *piVar5 != 0x16))\n    {\n      *(undefined4 *)(iVar18 + 0x4580) = 1;\n      goto LAB_0001ddf8;\n    }\n    piVar2 = (int *)0x0;\n    uVar19 = rpl_fcntl(puVar11,0,uVar12);\n    if ((int)uVar19 < 0) goto LAB_0001ddf8;\n    *(undefined4 *)(iVar18 + 0x4580) = 0xffffffff;\n    uVar16 = uVar19;\n  }" { (expression_statement "uVar19 = (**(code **)(puVar20 + 0x16598))();" (assignment_expression "uVar19 = (**(code **)(puVar20 + 0x16598))()" identifier = (call_expression "(**(code **)(puVar20 + 0x16598))()" (parenthesized_expression "(**(code **)(puVar20 + 0x16598))" ( (pointer_expression "**(code **)(puVar20 + 0x16598)" * (pointer_expression "*(code **)(puVar20 + 0x16598)" * (cast_expression "(code **)(puVar20 + 0x16598)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x16598)" ( (binary_expression "puVar20 + 0x16598" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if ((-1 < (int)uVar19) || (piVar5 = (int *)(**(code **)(puVar20 + 0x165b0))(), *piVar5 != 0x16))\n    {\n      *(undefined4 *)(iVar18 + 0x4580) = 1;\n      goto LAB_0001ddf8;\n    }" if (parenthesized_expression "((-1 < (int)uVar19) || (piVar5 = (int *)(**(code **)(puVar20 + 0x165b0))(), *piVar5 != 0x16))" ( (binary_expression "(-1 < (int)uVar19) || (piVar5 = (int *)(**(code **)(puVar20 + 0x165b0))(), *piVar5 != 0x16)" (parenthesized_expression "(-1 < (int)uVar19)" ( (binary_expression "-1 < (int)uVar19" number_literal < (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "(piVar5 = (int *)(**(code **)(puVar20 + 0x165b0))(), *piVar5 != 0x16)" ( (comma_expression "piVar5 = (int *)(**(code **)(puVar20 + 0x165b0))(), *piVar5 != 0x16" (assignment_expression "piVar5 = (int *)(**(code **)(puVar20 + 0x165b0))()" identifier = (cast_expression "(int *)(**(code **)(puVar20 + 0x165b0))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar20 + 0x165b0))()" (parenthesized_expression "(**(code **)(puVar20 + 0x165b0))" ( (pointer_expression "**(code **)(puVar20 + 0x165b0)" * (pointer_expression "*(code **)(puVar20 + 0x165b0)" * (cast_expression "(code **)(puVar20 + 0x165b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x165b0)" ( (binary_expression "puVar20 + 0x165b0" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) , (binary_expression "*piVar5 != 0x16" (pointer_expression "*piVar5" * identifier) != number_literal)) ))) )) (compound_statement "{\n      *(undefined4 *)(iVar18 + 0x4580) = 1;\n      goto LAB_0001ddf8;\n    }" { (expression_statement "*(undefined4 *)(iVar18 + 0x4580) = 1;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4580) = 1" (pointer_expression "*(undefined4 *)(iVar18 + 0x4580)" * (cast_expression "(undefined4 *)(iVar18 + 0x4580)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4580)" ( (binary_expression "iVar18 + 0x4580" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_0001ddf8;" goto statement_identifier ;) })) (expression_statement "piVar2 = (int *)0x0;" (assignment_expression "piVar2 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar19 = rpl_fcntl(puVar11,0,uVar12);" (assignment_expression "uVar19 = rpl_fcntl(puVar11,0,uVar12)" identifier = (call_expression "rpl_fcntl(puVar11,0,uVar12)" identifier (argument_list "(puVar11,0,uVar12)" ( identifier , number_literal , identifier )))) ;) (if_statement "if ((int)uVar19 < 0) goto LAB_0001ddf8;" if (parenthesized_expression "((int)uVar19 < 0)" ( (binary_expression "(int)uVar19 < 0" (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0001ddf8;" goto statement_identifier ;)) (expression_statement "*(undefined4 *)(iVar18 + 0x4580) = 0xffffffff;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4580) = 0xffffffff" (pointer_expression "*(undefined4 *)(iVar18 + 0x4580)" * (cast_expression "(undefined4 *)(iVar18 + 0x4580)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4580)" ( (binary_expression "iVar18 + 0x4580" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar16 = uVar19;" (assignment_expression "uVar16 = uVar19" identifier = identifier) ;) }))) (expression_statement "piVar2 = (int *)0x1;" (assignment_expression "piVar2 = (int *)0x1" identifier = (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar19 = (**(code **)(puVar20 + 0x16598))(uVar16);" (assignment_expression "uVar19 = (**(code **)(puVar20 + 0x16598))(uVar16)" identifier = (call_expression "(**(code **)(puVar20 + 0x16598))(uVar16)" (parenthesized_expression "(**(code **)(puVar20 + 0x16598))" ( (pointer_expression "**(code **)(puVar20 + 0x16598)" * (pointer_expression "*(code **)(puVar20 + 0x16598)" * (cast_expression "(code **)(puVar20 + 0x16598)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x16598)" ( (binary_expression "puVar20 + 0x16598" identifier + number_literal) ))))) )) (argument_list "(uVar16)" ( identifier )))) ;) (if_statement "if (-1 < (int)uVar19) {\n    piVar2 = (int *)0x2;\n    iVar18 = (**(code **)(puVar20 + 0x16598))(uVar16,2,uVar19 | 1);\n    uVar19 = uVar16;\n    if (iVar18 != -1) goto LAB_0001ddf8;\n  }" if (parenthesized_expression "(-1 < (int)uVar19)" ( (binary_expression "-1 < (int)uVar19" number_literal < (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    piVar2 = (int *)0x2;\n    iVar18 = (**(code **)(puVar20 + 0x16598))(uVar16,2,uVar19 | 1);\n    uVar19 = uVar16;\n    if (iVar18 != -1) goto LAB_0001ddf8;\n  }" { (expression_statement "piVar2 = (int *)0x2;" (assignment_expression "piVar2 = (int *)0x2" identifier = (cast_expression "(int *)0x2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar18 = (**(code **)(puVar20 + 0x16598))(uVar16,2,uVar19 | 1);" (assignment_expression "iVar18 = (**(code **)(puVar20 + 0x16598))(uVar16,2,uVar19 | 1)" identifier = (call_expression "(**(code **)(puVar20 + 0x16598))(uVar16,2,uVar19 | 1)" (parenthesized_expression "(**(code **)(puVar20 + 0x16598))" ( (pointer_expression "**(code **)(puVar20 + 0x16598)" * (pointer_expression "*(code **)(puVar20 + 0x16598)" * (cast_expression "(code **)(puVar20 + 0x16598)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x16598)" ( (binary_expression "puVar20 + 0x16598" identifier + number_literal) ))))) )) (argument_list "(uVar16,2,uVar19 | 1)" ( identifier , number_literal , (binary_expression "uVar19 | 1" identifier | number_literal) )))) ;) (expression_statement "uVar19 = uVar16;" (assignment_expression "uVar19 = uVar16" identifier = identifier) ;) (if_statement "if (iVar18 != -1) goto LAB_0001ddf8;" if (parenthesized_expression "(iVar18 != -1)" ( (binary_expression "iVar18 != -1" identifier != number_literal) )) (goto_statement "goto LAB_0001ddf8;" goto statement_identifier ;)) })) (expression_statement "puVar4 = (undefined4 *)(**(code **)(puVar20 + 0x165b0))();" (assignment_expression "puVar4 = (undefined4 *)(**(code **)(puVar20 + 0x165b0))()" identifier = (cast_expression "(undefined4 *)(**(code **)(puVar20 + 0x165b0))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar20 + 0x165b0))()" (parenthesized_expression "(**(code **)(puVar20 + 0x165b0))" ( (pointer_expression "**(code **)(puVar20 + 0x165b0)" * (pointer_expression "*(code **)(puVar20 + 0x165b0)" * (cast_expression "(code **)(puVar20 + 0x165b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x165b0)" ( (binary_expression "puVar20 + 0x165b0" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar12 = *puVar4;" (assignment_expression "uVar12 = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "uVar19 = 0xffffffff;" (assignment_expression "uVar19 = 0xffffffff" identifier = number_literal) ;) (expression_statement "(**(code **)(puVar20 + 0x16540))(uVar16);" (call_expression "(**(code **)(puVar20 + 0x16540))(uVar16)" (parenthesized_expression "(**(code **)(puVar20 + 0x16540))" ( (pointer_expression "**(code **)(puVar20 + 0x16540)" * (pointer_expression "*(code **)(puVar20 + 0x16540)" * (cast_expression "(code **)(puVar20 + 0x16540)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x16540)" ( (binary_expression "puVar20 + 0x16540" identifier + number_literal) ))))) )) (argument_list "(uVar16)" ( identifier ))) ;) (expression_statement "*puVar4 = uVar12;" (assignment_expression "*puVar4 = uVar12" (pointer_expression "*puVar4" * identifier) = identifier) ;) (labeled_statement "LAB_0001ddf8:\n  if (iVar17 != *piVar3) {\n    (**(code **)(puVar20 + 0x16628))();\n    iVar18 = piVar2[8];\n    iVar15 = *piVar2;\n    uVar19 = (uint)(iVar18 < iVar15);\n    uVar16 = piVar2[7];\n    if ((uVar19 != 0) && (uVar19 = (uint)((int)uVar16 < iVar18), uVar19 != 0)) {\n      iVar8 = iVar15 - iVar18;\n      uVar6 = uVar16;\n      iVar14 = iVar15;\n      do {\n        iVar13 = iVar18 - uVar6;\n        uVar19 = iVar8 + uVar6;\n        if (iVar13 < iVar8) {\n          iVar14 = iVar14 - iVar13;\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar14 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            uVar19 = uVar6;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while ((undefined4 *)(iVar17 + (iVar13 + uVar6) * 4) != puVar9);\n        }\n        else {\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar18 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while (puVar9 != (undefined4 *)(iVar17 + uVar19 * 4));\n        }\n      } while ((iVar18 < iVar14) && (iVar8 = iVar14 - iVar18, uVar6 = uVar19, (int)uVar19 < iVar18))\n      ;\n    }\n    piVar2[8] = iVar15;\n    piVar2[7] = (iVar15 - iVar18) + uVar16;\n    return uVar19;\n  }" statement_identifier : (if_statement "if (iVar17 != *piVar3) {\n    (**(code **)(puVar20 + 0x16628))();\n    iVar18 = piVar2[8];\n    iVar15 = *piVar2;\n    uVar19 = (uint)(iVar18 < iVar15);\n    uVar16 = piVar2[7];\n    if ((uVar19 != 0) && (uVar19 = (uint)((int)uVar16 < iVar18), uVar19 != 0)) {\n      iVar8 = iVar15 - iVar18;\n      uVar6 = uVar16;\n      iVar14 = iVar15;\n      do {\n        iVar13 = iVar18 - uVar6;\n        uVar19 = iVar8 + uVar6;\n        if (iVar13 < iVar8) {\n          iVar14 = iVar14 - iVar13;\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar14 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            uVar19 = uVar6;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while ((undefined4 *)(iVar17 + (iVar13 + uVar6) * 4) != puVar9);\n        }\n        else {\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar18 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while (puVar9 != (undefined4 *)(iVar17 + uVar19 * 4));\n        }\n      } while ((iVar18 < iVar14) && (iVar8 = iVar14 - iVar18, uVar6 = uVar19, (int)uVar19 < iVar18))\n      ;\n    }\n    piVar2[8] = iVar15;\n    piVar2[7] = (iVar15 - iVar18) + uVar16;\n    return uVar19;\n  }" if (parenthesized_expression "(iVar17 != *piVar3)" ( (binary_expression "iVar17 != *piVar3" identifier != (pointer_expression "*piVar3" * identifier)) )) (compound_statement "{\n    (**(code **)(puVar20 + 0x16628))();\n    iVar18 = piVar2[8];\n    iVar15 = *piVar2;\n    uVar19 = (uint)(iVar18 < iVar15);\n    uVar16 = piVar2[7];\n    if ((uVar19 != 0) && (uVar19 = (uint)((int)uVar16 < iVar18), uVar19 != 0)) {\n      iVar8 = iVar15 - iVar18;\n      uVar6 = uVar16;\n      iVar14 = iVar15;\n      do {\n        iVar13 = iVar18 - uVar6;\n        uVar19 = iVar8 + uVar6;\n        if (iVar13 < iVar8) {\n          iVar14 = iVar14 - iVar13;\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar14 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            uVar19 = uVar6;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while ((undefined4 *)(iVar17 + (iVar13 + uVar6) * 4) != puVar9);\n        }\n        else {\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar18 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while (puVar9 != (undefined4 *)(iVar17 + uVar19 * 4));\n        }\n      } while ((iVar18 < iVar14) && (iVar8 = iVar14 - iVar18, uVar6 = uVar19, (int)uVar19 < iVar18))\n      ;\n    }\n    piVar2[8] = iVar15;\n    piVar2[7] = (iVar15 - iVar18) + uVar16;\n    return uVar19;\n  }" { (expression_statement "(**(code **)(puVar20 + 0x16628))();" (call_expression "(**(code **)(puVar20 + 0x16628))()" (parenthesized_expression "(**(code **)(puVar20 + 0x16628))" ( (pointer_expression "**(code **)(puVar20 + 0x16628)" * (pointer_expression "*(code **)(puVar20 + 0x16628)" * (cast_expression "(code **)(puVar20 + 0x16628)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x16628)" ( (binary_expression "puVar20 + 0x16628" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar18 = piVar2[8];" (assignment_expression "iVar18 = piVar2[8]" identifier = (subscript_expression "piVar2[8]" identifier [ number_literal ])) ;) (expression_statement "iVar15 = *piVar2;" (assignment_expression "iVar15 = *piVar2" identifier = (pointer_expression "*piVar2" * identifier)) ;) (expression_statement "uVar19 = (uint)(iVar18 < iVar15);" (assignment_expression "uVar19 = (uint)(iVar18 < iVar15)" identifier = (call_expression "(uint)(iVar18 < iVar15)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar18 < iVar15)" ( (binary_expression "iVar18 < iVar15" identifier < identifier) )))) ;) (expression_statement "uVar16 = piVar2[7];" (assignment_expression "uVar16 = piVar2[7]" identifier = (subscript_expression "piVar2[7]" identifier [ number_literal ])) ;) (if_statement "if ((uVar19 != 0) && (uVar19 = (uint)((int)uVar16 < iVar18), uVar19 != 0)) {\n      iVar8 = iVar15 - iVar18;\n      uVar6 = uVar16;\n      iVar14 = iVar15;\n      do {\n        iVar13 = iVar18 - uVar6;\n        uVar19 = iVar8 + uVar6;\n        if (iVar13 < iVar8) {\n          iVar14 = iVar14 - iVar13;\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar14 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            uVar19 = uVar6;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while ((undefined4 *)(iVar17 + (iVar13 + uVar6) * 4) != puVar9);\n        }\n        else {\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar18 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while (puVar9 != (undefined4 *)(iVar17 + uVar19 * 4));\n        }\n      } while ((iVar18 < iVar14) && (iVar8 = iVar14 - iVar18, uVar6 = uVar19, (int)uVar19 < iVar18))\n      ;\n    }" if (parenthesized_expression "((uVar19 != 0) && (uVar19 = (uint)((int)uVar16 < iVar18), uVar19 != 0))" ( (binary_expression "(uVar19 != 0) && (uVar19 = (uint)((int)uVar16 < iVar18), uVar19 != 0)" (parenthesized_expression "(uVar19 != 0)" ( (binary_expression "uVar19 != 0" identifier != number_literal) )) && (parenthesized_expression "(uVar19 = (uint)((int)uVar16 < iVar18), uVar19 != 0)" ( (comma_expression "uVar19 = (uint)((int)uVar16 < iVar18), uVar19 != 0" (assignment_expression "uVar19 = (uint)((int)uVar16 < iVar18)" identifier = (call_expression "(uint)((int)uVar16 < iVar18)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)uVar16 < iVar18)" ( (binary_expression "(int)uVar16 < iVar18" (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )))) , (binary_expression "uVar19 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      iVar8 = iVar15 - iVar18;\n      uVar6 = uVar16;\n      iVar14 = iVar15;\n      do {\n        iVar13 = iVar18 - uVar6;\n        uVar19 = iVar8 + uVar6;\n        if (iVar13 < iVar8) {\n          iVar14 = iVar14 - iVar13;\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar14 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            uVar19 = uVar6;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while ((undefined4 *)(iVar17 + (iVar13 + uVar6) * 4) != puVar9);\n        }\n        else {\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar18 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while (puVar9 != (undefined4 *)(iVar17 + uVar19 * 4));\n        }\n      } while ((iVar18 < iVar14) && (iVar8 = iVar14 - iVar18, uVar6 = uVar19, (int)uVar19 < iVar18))\n      ;\n    }" { (expression_statement "iVar8 = iVar15 - iVar18;" (assignment_expression "iVar8 = iVar15 - iVar18" identifier = (binary_expression "iVar15 - iVar18" identifier - identifier)) ;) (expression_statement "uVar6 = uVar16;" (assignment_expression "uVar6 = uVar16" identifier = identifier) ;) (expression_statement "iVar14 = iVar15;" (assignment_expression "iVar14 = iVar15" identifier = identifier) ;) (do_statement "do {\n        iVar13 = iVar18 - uVar6;\n        uVar19 = iVar8 + uVar6;\n        if (iVar13 < iVar8) {\n          iVar14 = iVar14 - iVar13;\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar14 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            uVar19 = uVar6;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while ((undefined4 *)(iVar17 + (iVar13 + uVar6) * 4) != puVar9);\n        }\n        else {\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar18 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while (puVar9 != (undefined4 *)(iVar17 + uVar19 * 4));\n        }\n      } while ((iVar18 < iVar14) && (iVar8 = iVar14 - iVar18, uVar6 = uVar19, (int)uVar19 < iVar18))\n      ;" do (compound_statement "{\n        iVar13 = iVar18 - uVar6;\n        uVar19 = iVar8 + uVar6;\n        if (iVar13 < iVar8) {\n          iVar14 = iVar14 - iVar13;\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar14 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            uVar19 = uVar6;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while ((undefined4 *)(iVar17 + (iVar13 + uVar6) * 4) != puVar9);\n        }\n        else {\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar18 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while (puVar9 != (undefined4 *)(iVar17 + uVar19 * 4));\n        }\n      }" { (expression_statement "iVar13 = iVar18 - uVar6;" (assignment_expression "iVar13 = iVar18 - uVar6" identifier = (binary_expression "iVar18 - uVar6" identifier - identifier)) ;) (expression_statement "uVar19 = iVar8 + uVar6;" (assignment_expression "uVar19 = iVar8 + uVar6" identifier = (binary_expression "iVar8 + uVar6" identifier + identifier)) ;) (if_statement "if (iVar13 < iVar8) {\n          iVar14 = iVar14 - iVar13;\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar14 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            uVar19 = uVar6;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while ((undefined4 *)(iVar17 + (iVar13 + uVar6) * 4) != puVar9);\n        }\n        else {\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar18 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while (puVar9 != (undefined4 *)(iVar17 + uVar19 * 4));\n        }" if (parenthesized_expression "(iVar13 < iVar8)" ( (binary_expression "iVar13 < iVar8" identifier < identifier) )) (compound_statement "{\n          iVar14 = iVar14 - iVar13;\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar14 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            uVar19 = uVar6;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while ((undefined4 *)(iVar17 + (iVar13 + uVar6) * 4) != puVar9);\n        }" { (expression_statement "iVar14 = iVar14 - iVar13;" (assignment_expression "iVar14 = iVar14 - iVar13" identifier = (binary_expression "iVar14 - iVar13" identifier - identifier)) ;) (expression_statement "puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);" (assignment_expression "puVar4 = (undefined4 *)(iVar17 + uVar6 * 4)" identifier = (cast_expression "(undefined4 *)(iVar17 + uVar6 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + uVar6 * 4)" ( (binary_expression "iVar17 + uVar6 * 4" identifier + (binary_expression "uVar6 * 4" identifier * number_literal)) )))) ;) (expression_statement "puVar10 = (undefined4 *)(iVar17 + iVar14 * 4);" (assignment_expression "puVar10 = (undefined4 *)(iVar17 + iVar14 * 4)" identifier = (cast_expression "(undefined4 *)(iVar17 + iVar14 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + iVar14 * 4)" ( (binary_expression "iVar17 + iVar14 * 4" identifier + (binary_expression "iVar14 * 4" identifier * number_literal)) )))) ;) (do_statement "do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            uVar19 = uVar6;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while ((undefined4 *)(iVar17 + (iVar13 + uVar6) * 4) != puVar9);" do (compound_statement "{\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            uVar19 = uVar6;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          }" { (expression_statement "puVar9 = puVar4 + 1;" (assignment_expression "puVar9 = puVar4 + 1" identifier = (binary_expression "puVar4 + 1" identifier + number_literal)) ;) (expression_statement "uVar12 = *puVar4;" (assignment_expression "uVar12 = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "*puVar4 = *puVar10;" (assignment_expression "*puVar4 = *puVar10" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "*puVar10 = uVar12;" (assignment_expression "*puVar10 = uVar12" (pointer_expression "*puVar10" * identifier) = identifier) ;) (expression_statement "uVar19 = uVar6;" (assignment_expression "uVar19 = uVar6" identifier = identifier) ;) (expression_statement "puVar4 = puVar9;" (assignment_expression "puVar4 = puVar9" identifier = identifier) ;) (expression_statement "puVar10 = puVar10 + 1;" (assignment_expression "puVar10 = puVar10 + 1" identifier = (binary_expression "puVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((undefined4 *)(iVar17 + (iVar13 + uVar6) * 4) != puVar9)" ( (binary_expression "(undefined4 *)(iVar17 + (iVar13 + uVar6) * 4) != puVar9" (cast_expression "(undefined4 *)(iVar17 + (iVar13 + uVar6) * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + (iVar13 + uVar6) * 4)" ( (binary_expression "iVar17 + (iVar13 + uVar6) * 4" identifier + (binary_expression "(iVar13 + uVar6) * 4" (parenthesized_expression "(iVar13 + uVar6)" ( (binary_expression "iVar13 + uVar6" identifier + identifier) )) * number_literal)) ))) != identifier) )) ;) }) (else_clause "else {\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar18 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while (puVar9 != (undefined4 *)(iVar17 + uVar19 * 4));\n        }" else (compound_statement "{\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar18 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while (puVar9 != (undefined4 *)(iVar17 + uVar19 * 4));\n        }" { (expression_statement "puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);" (assignment_expression "puVar4 = (undefined4 *)(iVar17 + uVar6 * 4)" identifier = (cast_expression "(undefined4 *)(iVar17 + uVar6 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + uVar6 * 4)" ( (binary_expression "iVar17 + uVar6 * 4" identifier + (binary_expression "uVar6 * 4" identifier * number_literal)) )))) ;) (expression_statement "puVar10 = (undefined4 *)(iVar17 + iVar18 * 4);" (assignment_expression "puVar10 = (undefined4 *)(iVar17 + iVar18 * 4)" identifier = (cast_expression "(undefined4 *)(iVar17 + iVar18 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + iVar18 * 4)" ( (binary_expression "iVar17 + iVar18 * 4" identifier + (binary_expression "iVar18 * 4" identifier * number_literal)) )))) ;) (do_statement "do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while (puVar9 != (undefined4 *)(iVar17 + uVar19 * 4));" do (compound_statement "{\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          }" { (expression_statement "puVar9 = puVar4 + 1;" (assignment_expression "puVar9 = puVar4 + 1" identifier = (binary_expression "puVar4 + 1" identifier + number_literal)) ;) (expression_statement "uVar12 = *puVar4;" (assignment_expression "uVar12 = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "*puVar4 = *puVar10;" (assignment_expression "*puVar4 = *puVar10" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "*puVar10 = uVar12;" (assignment_expression "*puVar10 = uVar12" (pointer_expression "*puVar10" * identifier) = identifier) ;) (expression_statement "puVar4 = puVar9;" (assignment_expression "puVar4 = puVar9" identifier = identifier) ;) (expression_statement "puVar10 = puVar10 + 1;" (assignment_expression "puVar10 = puVar10 + 1" identifier = (binary_expression "puVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar9 != (undefined4 *)(iVar17 + uVar19 * 4))" ( (binary_expression "puVar9 != (undefined4 *)(iVar17 + uVar19 * 4)" identifier != (cast_expression "(undefined4 *)(iVar17 + uVar19 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + uVar19 * 4)" ( (binary_expression "iVar17 + uVar19 * 4" identifier + (binary_expression "uVar19 * 4" identifier * number_literal)) )))) )) ;) }))) }) while (parenthesized_expression "((iVar18 < iVar14) && (iVar8 = iVar14 - iVar18, uVar6 = uVar19, (int)uVar19 < iVar18))" ( (binary_expression "(iVar18 < iVar14) && (iVar8 = iVar14 - iVar18, uVar6 = uVar19, (int)uVar19 < iVar18)" (parenthesized_expression "(iVar18 < iVar14)" ( (binary_expression "iVar18 < iVar14" identifier < identifier) )) && (parenthesized_expression "(iVar8 = iVar14 - iVar18, uVar6 = uVar19, (int)uVar19 < iVar18)" ( (comma_expression "iVar8 = iVar14 - iVar18, uVar6 = uVar19, (int)uVar19 < iVar18" (assignment_expression "iVar8 = iVar14 - iVar18" identifier = (binary_expression "iVar14 - iVar18" identifier - identifier)) , (comma_expression "uVar6 = uVar19, (int)uVar19 < iVar18" (assignment_expression "uVar6 = uVar19" identifier = identifier) , (binary_expression "(int)uVar19 < iVar18" (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier) < identifier))) ))) )) ;) })) (expression_statement "piVar2[8] = iVar15;" (assignment_expression "piVar2[8] = iVar15" (subscript_expression "piVar2[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar2[7] = (iVar15 - iVar18) + uVar16;" (assignment_expression "piVar2[7] = (iVar15 - iVar18) + uVar16" (subscript_expression "piVar2[7]" identifier [ number_literal ]) = (binary_expression "(iVar15 - iVar18) + uVar16" (parenthesized_expression "(iVar15 - iVar18)" ( (binary_expression "iVar15 - iVar18" identifier - identifier) )) + identifier)) ;) (return_statement "return uVar19;" return identifier ;) }))) (return_statement "return uVar19;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (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 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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (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 & 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 ( ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = 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 ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) & LIT) )) == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)))) , (binary_expression IDENT == LIT)) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT )))) , (binary_expression IDENT == LIT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT - LIT) & LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) ))))) )))) )) (argument_list ( )))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT - LIT) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) ))))) )))) )) (argument_list ( LIT )))) ;) (return_statement return IDENT ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }))) (labeled_statement statement_identifier : (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 ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( )))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT)) ))) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))))) , (binary_expression (pointer_expression * IDENT) != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , (binary_expression IDENT | LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * IDENT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < IDENT) )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT + IDENT) )) * LIT)) ))) != IDENT) )) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) )) ;) }))) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT - IDENT)) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < IDENT))) ))) )) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) + IDENT)) ;) (return_statement return IDENT ;) }))) (return_statement return IDENT ;) })))
(function_definition "uint xstrtoumax(byte *param_1,undefined4 *param_2,uint param_3,undefined8 *param_4,int param_5)\n\n{\n  byte bVar1;\n  int *piVar2;\n  int *piVar3;\n  undefined4 *puVar4;\n  int *piVar5;\n  uint uVar6;\n  byte *pbVar7;\n  int iVar8;\n  undefined4 *puVar9;\n  undefined4 *puVar10;\n  undefined *puVar11;\n  undefined4 uVar12;\n  int iVar13;\n  int iVar14;\n  int iVar15;\n  uint uVar16;\n  int iVar17;\n  int iVar18;\n  uint uVar19;\n  undefined *puVar20;\n  undefined8 uVar21;\n  undefined4 uStack_30;\n  int local_2c;\n  \n  puVar20 = PTR___stack_chk_guard_000343b8;\n  local_2c = *(int *)PTR___stack_chk_guard_000343b8;\n  if (param_3 < 0x25) {\n    if (param_2 == (undefined4 *)0x0) {\n      param_2 = &uStack_30;\n    }\n    piVar2 = (int *)(*(code *)PTR___errno_location_00034320)();\n    puVar11 = PTR___ctype_b_loc_000342a8;\n    *piVar2 = 0;\n    piVar3 = (int *)(*(code *)puVar11)();\n    bVar1 = *param_1;\n    pbVar7 = param_1;\n    while( true ) {\n      pbVar7 = pbVar7 + 1;\n      if ((*(ushort *)(*piVar3 + (uint)bVar1 * 2) & 0x20) == 0) break;\n      bVar1 = *pbVar7;\n    }\n    if (bVar1 == 0x2d) {\nLAB_0001d698:\n      uVar19 = 4;\n    }\n    else {\n      uVar21 = (*(code *)PTR___strtoull_internal_000343b0)(param_1,param_2,param_3,0);\n      if ((byte *)*param_2 == param_1) {\n        if (((param_5 == 0) || (iVar17 = (int)(char)*param_1, iVar17 == 0)) ||\n           (iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17), iVar18 == 0))\n        goto LAB_0001d698;\n        uVar21 = 1;\n        uVar19 = 0;\nLAB_0001d6c8:\n        uVar16 = iVar17 - 0x45U & 0xff;\n        if (uVar16 < 0x30) {\n                    \n                    \n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)))();\n          return uVar19;\n        }\n        uVar16 = iVar17 - 0x42U & 0xff;\n        if (uVar16 < 0x36) {\n                    \n                    \n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)))(1);\n          return uVar19;\n        }\n      }\n      else {\n        uVar19 = 0;\n        if (*piVar2 != 0) {\n          if (*piVar2 != 0x22) goto LAB_0001d698;\n          uVar19 = 1;\n        }\n        if ((param_5 == 0) || (iVar17 = (int)(char)*(byte *)*param_2, iVar17 == 0)) {\n          *param_4 = uVar21;\n          goto LAB_0001d630;\n        }\n        iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17);\n        if (iVar18 != 0) goto LAB_0001d6c8;\n      }\n      uVar19 = uVar19 | 2;\n      *param_4 = uVar21;\n    }\nLAB_0001d630:\n    if (local_2c == *(int *)puVar20) {\n      return uVar19;\n    }\n    (*(code *)PTR___stack_chk_fail_00034398)();\n  }\n  uVar12 = 0x60;\n  piVar2 = (int *)(PTR_LAB_00034138 + 0x31f4);\n  puVar11 = PTR_LAB_00034138 + 0x3204;\n  puVar20 = PTR___assert_fail_000342ac;\n  (*(code *)PTR___assert_fail_000342ac)(puVar11);\n  piVar3 = *(int **)(puVar20 + 0x16648);\n  iVar17 = *piVar3;\n  iVar18 = *(int *)(puVar20 + 0x163b8);\n  if (piVar2 != (int *)0x406) {\n    uVar19 = (**(code **)(puVar20 + 0x16598))();\n    goto LAB_0001ddf8;\n  }\n  if (*(int *)(iVar18 + 0x4580) < 0) {\n    piVar2 = (int *)0x0;\n    uVar19 = rpl_fcntl();\n    if (((int)uVar19 < 0) || (uVar16 = uVar19, *(int *)(iVar18 + 0x4580) != -1)) goto LAB_0001ddf8;\n  }\n  else {\n    uVar19 = (**(code **)(puVar20 + 0x16598))();\n    if ((-1 < (int)uVar19) || (piVar5 = (int *)(**(code **)(puVar20 + 0x165b0))(), *piVar5 != 0x16))\n    {\n      *(undefined4 *)(iVar18 + 0x4580) = 1;\n      goto LAB_0001ddf8;\n    }\n    piVar2 = (int *)0x0;\n    uVar19 = rpl_fcntl(puVar11,0,uVar12);\n    if ((int)uVar19 < 0) goto LAB_0001ddf8;\n    *(undefined4 *)(iVar18 + 0x4580) = 0xffffffff;\n    uVar16 = uVar19;\n  }\n  piVar2 = (int *)0x1;\n  uVar19 = (**(code **)(puVar20 + 0x16598))(uVar16);\n  if (-1 < (int)uVar19) {\n    piVar2 = (int *)0x2;\n    iVar18 = (**(code **)(puVar20 + 0x16598))(uVar16,2,uVar19 | 1);\n    uVar19 = uVar16;\n    if (iVar18 != -1) goto LAB_0001ddf8;\n  }\n  puVar4 = (undefined4 *)(**(code **)(puVar20 + 0x165b0))();\n  uVar12 = *puVar4;\n  uVar19 = 0xffffffff;\n  (**(code **)(puVar20 + 0x16540))(uVar16);\n  *puVar4 = uVar12;\nLAB_0001ddf8:\n  if (iVar17 != *piVar3) {\n    (**(code **)(puVar20 + 0x16628))();\n    iVar18 = piVar2[8];\n    iVar15 = *piVar2;\n    uVar19 = (uint)(iVar18 < iVar15);\n    uVar16 = piVar2[7];\n    if ((uVar19 != 0) && (uVar19 = (uint)((int)uVar16 < iVar18), uVar19 != 0)) {\n      iVar8 = iVar15 - iVar18;\n      uVar6 = uVar16;\n      iVar14 = iVar15;\n      do {\n        iVar13 = iVar18 - uVar6;\n        uVar19 = iVar8 + uVar6;\n        if (iVar13 < iVar8) {\n          iVar14 = iVar14 - iVar13;\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar14 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            uVar19 = uVar6;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while ((undefined4 *)(iVar17 + (iVar13 + uVar6) * 4) != puVar9);\n        }\n        else {\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar18 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while (puVar9 != (undefined4 *)(iVar17 + uVar19 * 4));\n        }\n      } while ((iVar18 < iVar14) && (iVar8 = iVar14 - iVar18, uVar6 = uVar19, (int)uVar19 < iVar18))\n      ;\n    }\n    piVar2[8] = iVar15;\n    piVar2[7] = (iVar15 - iVar18) + uVar16;\n    return uVar19;\n  }\n  return uVar19;\n}" (type_identifier "uint") (function_declarator "xstrtoumax(byte *param_1,undefined4 *param_2,uint param_3,undefined8 *param_4,int param_5)" (identifier "xstrtoumax") (parameter_list "(byte *param_1,undefined4 *param_2,uint param_3,undefined8 *param_4,int param_5)" (( "(") (parameter_declaration "byte *param_1" (type_identifier "byte") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 *param_2" (type_identifier "undefined4") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "uint param_3" (type_identifier "uint") (identifier "param_3")) (, ",") (parameter_declaration "undefined8 *param_4" (type_identifier "undefined8") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "int param_5" (primitive_type "int") (identifier "param_5")) () ")"))) (compound_statement "{\n  byte bVar1;\n  int *piVar2;\n  int *piVar3;\n  undefined4 *puVar4;\n  int *piVar5;\n  uint uVar6;\n  byte *pbVar7;\n  int iVar8;\n  undefined4 *puVar9;\n  undefined4 *puVar10;\n  undefined *puVar11;\n  undefined4 uVar12;\n  int iVar13;\n  int iVar14;\n  int iVar15;\n  uint uVar16;\n  int iVar17;\n  int iVar18;\n  uint uVar19;\n  undefined *puVar20;\n  undefined8 uVar21;\n  undefined4 uStack_30;\n  int local_2c;\n  \n  puVar20 = PTR___stack_chk_guard_000343b8;\n  local_2c = *(int *)PTR___stack_chk_guard_000343b8;\n  if (param_3 < 0x25) {\n    if (param_2 == (undefined4 *)0x0) {\n      param_2 = &uStack_30;\n    }\n    piVar2 = (int *)(*(code *)PTR___errno_location_00034320)();\n    puVar11 = PTR___ctype_b_loc_000342a8;\n    *piVar2 = 0;\n    piVar3 = (int *)(*(code *)puVar11)();\n    bVar1 = *param_1;\n    pbVar7 = param_1;\n    while( true ) {\n      pbVar7 = pbVar7 + 1;\n      if ((*(ushort *)(*piVar3 + (uint)bVar1 * 2) & 0x20) == 0) break;\n      bVar1 = *pbVar7;\n    }\n    if (bVar1 == 0x2d) {\nLAB_0001d698:\n      uVar19 = 4;\n    }\n    else {\n      uVar21 = (*(code *)PTR___strtoull_internal_000343b0)(param_1,param_2,param_3,0);\n      if ((byte *)*param_2 == param_1) {\n        if (((param_5 == 0) || (iVar17 = (int)(char)*param_1, iVar17 == 0)) ||\n           (iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17), iVar18 == 0))\n        goto LAB_0001d698;\n        uVar21 = 1;\n        uVar19 = 0;\nLAB_0001d6c8:\n        uVar16 = iVar17 - 0x45U & 0xff;\n        if (uVar16 < 0x30) {\n                    \n                    \n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)))();\n          return uVar19;\n        }\n        uVar16 = iVar17 - 0x42U & 0xff;\n        if (uVar16 < 0x36) {\n                    \n                    \n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)))(1);\n          return uVar19;\n        }\n      }\n      else {\n        uVar19 = 0;\n        if (*piVar2 != 0) {\n          if (*piVar2 != 0x22) goto LAB_0001d698;\n          uVar19 = 1;\n        }\n        if ((param_5 == 0) || (iVar17 = (int)(char)*(byte *)*param_2, iVar17 == 0)) {\n          *param_4 = uVar21;\n          goto LAB_0001d630;\n        }\n        iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17);\n        if (iVar18 != 0) goto LAB_0001d6c8;\n      }\n      uVar19 = uVar19 | 2;\n      *param_4 = uVar21;\n    }\nLAB_0001d630:\n    if (local_2c == *(int *)puVar20) {\n      return uVar19;\n    }\n    (*(code *)PTR___stack_chk_fail_00034398)();\n  }\n  uVar12 = 0x60;\n  piVar2 = (int *)(PTR_LAB_00034138 + 0x31f4);\n  puVar11 = PTR_LAB_00034138 + 0x3204;\n  puVar20 = PTR___assert_fail_000342ac;\n  (*(code *)PTR___assert_fail_000342ac)(puVar11);\n  piVar3 = *(int **)(puVar20 + 0x16648);\n  iVar17 = *piVar3;\n  iVar18 = *(int *)(puVar20 + 0x163b8);\n  if (piVar2 != (int *)0x406) {\n    uVar19 = (**(code **)(puVar20 + 0x16598))();\n    goto LAB_0001ddf8;\n  }\n  if (*(int *)(iVar18 + 0x4580) < 0) {\n    piVar2 = (int *)0x0;\n    uVar19 = rpl_fcntl();\n    if (((int)uVar19 < 0) || (uVar16 = uVar19, *(int *)(iVar18 + 0x4580) != -1)) goto LAB_0001ddf8;\n  }\n  else {\n    uVar19 = (**(code **)(puVar20 + 0x16598))();\n    if ((-1 < (int)uVar19) || (piVar5 = (int *)(**(code **)(puVar20 + 0x165b0))(), *piVar5 != 0x16))\n    {\n      *(undefined4 *)(iVar18 + 0x4580) = 1;\n      goto LAB_0001ddf8;\n    }\n    piVar2 = (int *)0x0;\n    uVar19 = rpl_fcntl(puVar11,0,uVar12);\n    if ((int)uVar19 < 0) goto LAB_0001ddf8;\n    *(undefined4 *)(iVar18 + 0x4580) = 0xffffffff;\n    uVar16 = uVar19;\n  }\n  piVar2 = (int *)0x1;\n  uVar19 = (**(code **)(puVar20 + 0x16598))(uVar16);\n  if (-1 < (int)uVar19) {\n    piVar2 = (int *)0x2;\n    iVar18 = (**(code **)(puVar20 + 0x16598))(uVar16,2,uVar19 | 1);\n    uVar19 = uVar16;\n    if (iVar18 != -1) goto LAB_0001ddf8;\n  }\n  puVar4 = (undefined4 *)(**(code **)(puVar20 + 0x165b0))();\n  uVar12 = *puVar4;\n  uVar19 = 0xffffffff;\n  (**(code **)(puVar20 + 0x16540))(uVar16);\n  *puVar4 = uVar12;\nLAB_0001ddf8:\n  if (iVar17 != *piVar3) {\n    (**(code **)(puVar20 + 0x16628))();\n    iVar18 = piVar2[8];\n    iVar15 = *piVar2;\n    uVar19 = (uint)(iVar18 < iVar15);\n    uVar16 = piVar2[7];\n    if ((uVar19 != 0) && (uVar19 = (uint)((int)uVar16 < iVar18), uVar19 != 0)) {\n      iVar8 = iVar15 - iVar18;\n      uVar6 = uVar16;\n      iVar14 = iVar15;\n      do {\n        iVar13 = iVar18 - uVar6;\n        uVar19 = iVar8 + uVar6;\n        if (iVar13 < iVar8) {\n          iVar14 = iVar14 - iVar13;\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar14 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            uVar19 = uVar6;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while ((undefined4 *)(iVar17 + (iVar13 + uVar6) * 4) != puVar9);\n        }\n        else {\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar18 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while (puVar9 != (undefined4 *)(iVar17 + uVar19 * 4));\n        }\n      } while ((iVar18 < iVar14) && (iVar8 = iVar14 - iVar18, uVar6 = uVar19, (int)uVar19 < iVar18))\n      ;\n    }\n    piVar2[8] = iVar15;\n    piVar2[7] = (iVar15 - iVar18) + uVar16;\n    return uVar19;\n  }\n  return uVar19;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "int *piVar2;" (primitive_type "int") (pointer_declarator "*piVar2" (* "*") (identifier "piVar2")) (; ";")) (declaration "int *piVar3;" (primitive_type "int") (pointer_declarator "*piVar3" (* "*") (identifier "piVar3")) (; ";")) (declaration "undefined4 *puVar4;" (type_identifier "undefined4") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "int *piVar5;" (primitive_type "int") (pointer_declarator "*piVar5" (* "*") (identifier "piVar5")) (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "byte *pbVar7;" (type_identifier "byte") (pointer_declarator "*pbVar7" (* "*") (identifier "pbVar7")) (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "undefined4 *puVar9;" (type_identifier "undefined4") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "undefined4 *puVar10;" (type_identifier "undefined4") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "undefined *puVar11;" (type_identifier "undefined") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "undefined4 uVar12;" (type_identifier "undefined4") (identifier "uVar12") (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "int iVar15;" (primitive_type "int") (identifier "iVar15") (; ";")) (declaration "uint uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "int iVar17;" (primitive_type "int") (identifier "iVar17") (; ";")) (declaration "int iVar18;" (primitive_type "int") (identifier "iVar18") (; ";")) (declaration "uint uVar19;" (type_identifier "uint") (identifier "uVar19") (; ";")) (declaration "undefined *puVar20;" (type_identifier "undefined") (pointer_declarator "*puVar20" (* "*") (identifier "puVar20")) (; ";")) (declaration "undefined8 uVar21;" (type_identifier "undefined8") (identifier "uVar21") (; ";")) (declaration "undefined4 uStack_30;" (type_identifier "undefined4") (identifier "uStack_30") (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "puVar20 = PTR___stack_chk_guard_000343b8;" (assignment_expression "puVar20 = PTR___stack_chk_guard_000343b8" (identifier "puVar20") (= "=") (identifier "PTR___stack_chk_guard_000343b8")) (; ";")) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_000343b8;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_000343b8" (identifier "local_2c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_000343b8" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_000343b8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_000343b8")))) (; ";")) (if_statement "if (param_3 < 0x25) {\n    if (param_2 == (undefined4 *)0x0) {\n      param_2 = &uStack_30;\n    }\n    piVar2 = (int *)(*(code *)PTR___errno_location_00034320)();\n    puVar11 = PTR___ctype_b_loc_000342a8;\n    *piVar2 = 0;\n    piVar3 = (int *)(*(code *)puVar11)();\n    bVar1 = *param_1;\n    pbVar7 = param_1;\n    while( true ) {\n      pbVar7 = pbVar7 + 1;\n      if ((*(ushort *)(*piVar3 + (uint)bVar1 * 2) & 0x20) == 0) break;\n      bVar1 = *pbVar7;\n    }\n    if (bVar1 == 0x2d) {\nLAB_0001d698:\n      uVar19 = 4;\n    }\n    else {\n      uVar21 = (*(code *)PTR___strtoull_internal_000343b0)(param_1,param_2,param_3,0);\n      if ((byte *)*param_2 == param_1) {\n        if (((param_5 == 0) || (iVar17 = (int)(char)*param_1, iVar17 == 0)) ||\n           (iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17), iVar18 == 0))\n        goto LAB_0001d698;\n        uVar21 = 1;\n        uVar19 = 0;\nLAB_0001d6c8:\n        uVar16 = iVar17 - 0x45U & 0xff;\n        if (uVar16 < 0x30) {\n                    \n                    \n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)))();\n          return uVar19;\n        }\n        uVar16 = iVar17 - 0x42U & 0xff;\n        if (uVar16 < 0x36) {\n                    \n                    \n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)))(1);\n          return uVar19;\n        }\n      }\n      else {\n        uVar19 = 0;\n        if (*piVar2 != 0) {\n          if (*piVar2 != 0x22) goto LAB_0001d698;\n          uVar19 = 1;\n        }\n        if ((param_5 == 0) || (iVar17 = (int)(char)*(byte *)*param_2, iVar17 == 0)) {\n          *param_4 = uVar21;\n          goto LAB_0001d630;\n        }\n        iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17);\n        if (iVar18 != 0) goto LAB_0001d6c8;\n      }\n      uVar19 = uVar19 | 2;\n      *param_4 = uVar21;\n    }\nLAB_0001d630:\n    if (local_2c == *(int *)puVar20) {\n      return uVar19;\n    }\n    (*(code *)PTR___stack_chk_fail_00034398)();\n  }" (if "if") (parenthesized_expression "(param_3 < 0x25)" (( "(") (binary_expression "param_3 < 0x25" (identifier "param_3") (< "<") (number_literal "0x25")) () ")")) (compound_statement "{\n    if (param_2 == (undefined4 *)0x0) {\n      param_2 = &uStack_30;\n    }\n    piVar2 = (int *)(*(code *)PTR___errno_location_00034320)();\n    puVar11 = PTR___ctype_b_loc_000342a8;\n    *piVar2 = 0;\n    piVar3 = (int *)(*(code *)puVar11)();\n    bVar1 = *param_1;\n    pbVar7 = param_1;\n    while( true ) {\n      pbVar7 = pbVar7 + 1;\n      if ((*(ushort *)(*piVar3 + (uint)bVar1 * 2) & 0x20) == 0) break;\n      bVar1 = *pbVar7;\n    }\n    if (bVar1 == 0x2d) {\nLAB_0001d698:\n      uVar19 = 4;\n    }\n    else {\n      uVar21 = (*(code *)PTR___strtoull_internal_000343b0)(param_1,param_2,param_3,0);\n      if ((byte *)*param_2 == param_1) {\n        if (((param_5 == 0) || (iVar17 = (int)(char)*param_1, iVar17 == 0)) ||\n           (iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17), iVar18 == 0))\n        goto LAB_0001d698;\n        uVar21 = 1;\n        uVar19 = 0;\nLAB_0001d6c8:\n        uVar16 = iVar17 - 0x45U & 0xff;\n        if (uVar16 < 0x30) {\n                    \n                    \n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)))();\n          return uVar19;\n        }\n        uVar16 = iVar17 - 0x42U & 0xff;\n        if (uVar16 < 0x36) {\n                    \n                    \n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)))(1);\n          return uVar19;\n        }\n      }\n      else {\n        uVar19 = 0;\n        if (*piVar2 != 0) {\n          if (*piVar2 != 0x22) goto LAB_0001d698;\n          uVar19 = 1;\n        }\n        if ((param_5 == 0) || (iVar17 = (int)(char)*(byte *)*param_2, iVar17 == 0)) {\n          *param_4 = uVar21;\n          goto LAB_0001d630;\n        }\n        iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17);\n        if (iVar18 != 0) goto LAB_0001d6c8;\n      }\n      uVar19 = uVar19 | 2;\n      *param_4 = uVar21;\n    }\nLAB_0001d630:\n    if (local_2c == *(int *)puVar20) {\n      return uVar19;\n    }\n    (*(code *)PTR___stack_chk_fail_00034398)();\n  }" ({ "{") (if_statement "if (param_2 == (undefined4 *)0x0) {\n      param_2 = &uStack_30;\n    }" (if "if") (parenthesized_expression "(param_2 == (undefined4 *)0x0)" (( "(") (binary_expression "param_2 == (undefined4 *)0x0" (identifier "param_2") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      param_2 = &uStack_30;\n    }" ({ "{") (expression_statement "param_2 = &uStack_30;" (assignment_expression "param_2 = &uStack_30" (identifier "param_2") (= "=") (pointer_expression "&uStack_30" (& "&") (identifier "uStack_30"))) (; ";")) (} "}"))) (expression_statement "piVar2 = (int *)(*(code *)PTR___errno_location_00034320)();" (assignment_expression "piVar2 = (int *)(*(code *)PTR___errno_location_00034320)()" (identifier "piVar2") (= "=") (cast_expression "(int *)(*(code *)PTR___errno_location_00034320)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_00034320)()" (parenthesized_expression "(*(code *)PTR___errno_location_00034320)" (( "(") (pointer_expression "*(code *)PTR___errno_location_00034320" (* "*") (cast_expression "(code *)PTR___errno_location_00034320" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_00034320"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "puVar11 = PTR___ctype_b_loc_000342a8;" (assignment_expression "puVar11 = PTR___ctype_b_loc_000342a8" (identifier "puVar11") (= "=") (identifier "PTR___ctype_b_loc_000342a8")) (; ";")) (expression_statement "*piVar2 = 0;" (assignment_expression "*piVar2 = 0" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar3 = (int *)(*(code *)puVar11)();" (assignment_expression "piVar3 = (int *)(*(code *)puVar11)()" (identifier "piVar3") (= "=") (cast_expression "(int *)(*(code *)puVar11)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)puVar11)()" (parenthesized_expression "(*(code *)puVar11)" (( "(") (pointer_expression "*(code *)puVar11" (* "*") (cast_expression "(code *)puVar11" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar11"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "bVar1 = *param_1;" (assignment_expression "bVar1 = *param_1" (identifier "bVar1") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "pbVar7 = param_1;" (assignment_expression "pbVar7 = param_1" (identifier "pbVar7") (= "=") (identifier "param_1")) (; ";")) (while_statement "while( true ) {\n      pbVar7 = pbVar7 + 1;\n      if ((*(ushort *)(*piVar3 + (uint)bVar1 * 2) & 0x20) == 0) break;\n      bVar1 = *pbVar7;\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      pbVar7 = pbVar7 + 1;\n      if ((*(ushort *)(*piVar3 + (uint)bVar1 * 2) & 0x20) == 0) break;\n      bVar1 = *pbVar7;\n    }" ({ "{") (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" (identifier "pbVar7") (= "=") (binary_expression "pbVar7 + 1" (identifier "pbVar7") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((*(ushort *)(*piVar3 + (uint)bVar1 * 2) & 0x20) == 0) break;" (if "if") (parenthesized_expression "((*(ushort *)(*piVar3 + (uint)bVar1 * 2) & 0x20) == 0)" (( "(") (binary_expression "(*(ushort *)(*piVar3 + (uint)bVar1 * 2) & 0x20) == 0" (parenthesized_expression "(*(ushort *)(*piVar3 + (uint)bVar1 * 2) & 0x20)" (( "(") (binary_expression "*(ushort *)(*piVar3 + (uint)bVar1 * 2) & 0x20" (pointer_expression "*(ushort *)(*piVar3 + (uint)bVar1 * 2)" (* "*") (cast_expression "(ushort *)(*piVar3 + (uint)bVar1 * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar3 + (uint)bVar1 * 2)" (( "(") (binary_expression "*piVar3 + (uint)bVar1 * 2" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (+ "+") (binary_expression "(uint)bVar1 * 2" (cast_expression "(uint)bVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar1")) (* "*") (number_literal "2"))) () ")")))) (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "bVar1 = *pbVar7;" (assignment_expression "bVar1 = *pbVar7" (identifier "bVar1") (= "=") (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7"))) (; ";")) (} "}"))) (if_statement "if (bVar1 == 0x2d) {\nLAB_0001d698:\n      uVar19 = 4;\n    }\n    else {\n      uVar21 = (*(code *)PTR___strtoull_internal_000343b0)(param_1,param_2,param_3,0);\n      if ((byte *)*param_2 == param_1) {\n        if (((param_5 == 0) || (iVar17 = (int)(char)*param_1, iVar17 == 0)) ||\n           (iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17), iVar18 == 0))\n        goto LAB_0001d698;\n        uVar21 = 1;\n        uVar19 = 0;\nLAB_0001d6c8:\n        uVar16 = iVar17 - 0x45U & 0xff;\n        if (uVar16 < 0x30) {\n                    \n                    \n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)))();\n          return uVar19;\n        }\n        uVar16 = iVar17 - 0x42U & 0xff;\n        if (uVar16 < 0x36) {\n                    \n                    \n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)))(1);\n          return uVar19;\n        }\n      }\n      else {\n        uVar19 = 0;\n        if (*piVar2 != 0) {\n          if (*piVar2 != 0x22) goto LAB_0001d698;\n          uVar19 = 1;\n        }\n        if ((param_5 == 0) || (iVar17 = (int)(char)*(byte *)*param_2, iVar17 == 0)) {\n          *param_4 = uVar21;\n          goto LAB_0001d630;\n        }\n        iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17);\n        if (iVar18 != 0) goto LAB_0001d6c8;\n      }\n      uVar19 = uVar19 | 2;\n      *param_4 = uVar21;\n    }" (if "if") (parenthesized_expression "(bVar1 == 0x2d)" (( "(") (binary_expression "bVar1 == 0x2d" (identifier "bVar1") (== "==") (number_literal "0x2d")) () ")")) (compound_statement "{\nLAB_0001d698:\n      uVar19 = 4;\n    }" ({ "{") (labeled_statement "LAB_0001d698:\n      uVar19 = 4;" (statement_identifier "LAB_0001d698") (: ":") (expression_statement "uVar19 = 4;" (assignment_expression "uVar19 = 4" (identifier "uVar19") (= "=") (number_literal "4")) (; ";"))) (} "}")) (else_clause "else {\n      uVar21 = (*(code *)PTR___strtoull_internal_000343b0)(param_1,param_2,param_3,0);\n      if ((byte *)*param_2 == param_1) {\n        if (((param_5 == 0) || (iVar17 = (int)(char)*param_1, iVar17 == 0)) ||\n           (iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17), iVar18 == 0))\n        goto LAB_0001d698;\n        uVar21 = 1;\n        uVar19 = 0;\nLAB_0001d6c8:\n        uVar16 = iVar17 - 0x45U & 0xff;\n        if (uVar16 < 0x30) {\n                    \n                    \n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)))();\n          return uVar19;\n        }\n        uVar16 = iVar17 - 0x42U & 0xff;\n        if (uVar16 < 0x36) {\n                    \n                    \n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)))(1);\n          return uVar19;\n        }\n      }\n      else {\n        uVar19 = 0;\n        if (*piVar2 != 0) {\n          if (*piVar2 != 0x22) goto LAB_0001d698;\n          uVar19 = 1;\n        }\n        if ((param_5 == 0) || (iVar17 = (int)(char)*(byte *)*param_2, iVar17 == 0)) {\n          *param_4 = uVar21;\n          goto LAB_0001d630;\n        }\n        iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17);\n        if (iVar18 != 0) goto LAB_0001d6c8;\n      }\n      uVar19 = uVar19 | 2;\n      *param_4 = uVar21;\n    }" (else "else") (compound_statement "{\n      uVar21 = (*(code *)PTR___strtoull_internal_000343b0)(param_1,param_2,param_3,0);\n      if ((byte *)*param_2 == param_1) {\n        if (((param_5 == 0) || (iVar17 = (int)(char)*param_1, iVar17 == 0)) ||\n           (iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17), iVar18 == 0))\n        goto LAB_0001d698;\n        uVar21 = 1;\n        uVar19 = 0;\nLAB_0001d6c8:\n        uVar16 = iVar17 - 0x45U & 0xff;\n        if (uVar16 < 0x30) {\n                    \n                    \n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)))();\n          return uVar19;\n        }\n        uVar16 = iVar17 - 0x42U & 0xff;\n        if (uVar16 < 0x36) {\n                    \n                    \n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)))(1);\n          return uVar19;\n        }\n      }\n      else {\n        uVar19 = 0;\n        if (*piVar2 != 0) {\n          if (*piVar2 != 0x22) goto LAB_0001d698;\n          uVar19 = 1;\n        }\n        if ((param_5 == 0) || (iVar17 = (int)(char)*(byte *)*param_2, iVar17 == 0)) {\n          *param_4 = uVar21;\n          goto LAB_0001d630;\n        }\n        iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17);\n        if (iVar18 != 0) goto LAB_0001d6c8;\n      }\n      uVar19 = uVar19 | 2;\n      *param_4 = uVar21;\n    }" ({ "{") (expression_statement "uVar21 = (*(code *)PTR___strtoull_internal_000343b0)(param_1,param_2,param_3,0);" (assignment_expression "uVar21 = (*(code *)PTR___strtoull_internal_000343b0)(param_1,param_2,param_3,0)" (identifier "uVar21") (= "=") (call_expression "(*(code *)PTR___strtoull_internal_000343b0)(param_1,param_2,param_3,0)" (parenthesized_expression "(*(code *)PTR___strtoull_internal_000343b0)" (( "(") (pointer_expression "*(code *)PTR___strtoull_internal_000343b0" (* "*") (cast_expression "(code *)PTR___strtoull_internal_000343b0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___strtoull_internal_000343b0"))) () ")")) (argument_list "(param_1,param_2,param_3,0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if ((byte *)*param_2 == param_1) {\n        if (((param_5 == 0) || (iVar17 = (int)(char)*param_1, iVar17 == 0)) ||\n           (iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17), iVar18 == 0))\n        goto LAB_0001d698;\n        uVar21 = 1;\n        uVar19 = 0;\nLAB_0001d6c8:\n        uVar16 = iVar17 - 0x45U & 0xff;\n        if (uVar16 < 0x30) {\n                    \n                    \n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)))();\n          return uVar19;\n        }\n        uVar16 = iVar17 - 0x42U & 0xff;\n        if (uVar16 < 0x36) {\n                    \n                    \n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)))(1);\n          return uVar19;\n        }\n      }\n      else {\n        uVar19 = 0;\n        if (*piVar2 != 0) {\n          if (*piVar2 != 0x22) goto LAB_0001d698;\n          uVar19 = 1;\n        }\n        if ((param_5 == 0) || (iVar17 = (int)(char)*(byte *)*param_2, iVar17 == 0)) {\n          *param_4 = uVar21;\n          goto LAB_0001d630;\n        }\n        iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17);\n        if (iVar18 != 0) goto LAB_0001d6c8;\n      }" (if "if") (parenthesized_expression "((byte *)*param_2 == param_1)" (( "(") (binary_expression "(byte *)*param_2 == param_1" (cast_expression "(byte *)*param_2" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (== "==") (identifier "param_1")) () ")")) (compound_statement "{\n        if (((param_5 == 0) || (iVar17 = (int)(char)*param_1, iVar17 == 0)) ||\n           (iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17), iVar18 == 0))\n        goto LAB_0001d698;\n        uVar21 = 1;\n        uVar19 = 0;\nLAB_0001d6c8:\n        uVar16 = iVar17 - 0x45U & 0xff;\n        if (uVar16 < 0x30) {\n                    \n                    \n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)))();\n          return uVar19;\n        }\n        uVar16 = iVar17 - 0x42U & 0xff;\n        if (uVar16 < 0x36) {\n                    \n                    \n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)))(1);\n          return uVar19;\n        }\n      }" ({ "{") (if_statement "if (((param_5 == 0) || (iVar17 = (int)(char)*param_1, iVar17 == 0)) ||\n           (iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17), iVar18 == 0))\n        goto LAB_0001d698;" (if "if") (parenthesized_expression "(((param_5 == 0) || (iVar17 = (int)(char)*param_1, iVar17 == 0)) ||\n           (iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17), iVar18 == 0))" (( "(") (binary_expression "((param_5 == 0) || (iVar17 = (int)(char)*param_1, iVar17 == 0)) ||\n           (iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17), iVar18 == 0)" (parenthesized_expression "((param_5 == 0) || (iVar17 = (int)(char)*param_1, iVar17 == 0))" (( "(") (binary_expression "(param_5 == 0) || (iVar17 = (int)(char)*param_1, iVar17 == 0)" (parenthesized_expression "(param_5 == 0)" (( "(") (binary_expression "param_5 == 0" (identifier "param_5") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar17 = (int)(char)*param_1, iVar17 == 0)" (( "(") (comma_expression "iVar17 = (int)(char)*param_1, iVar17 == 0" (assignment_expression "iVar17 = (int)(char)*param_1" (identifier "iVar17") (= "=") (cast_expression "(int)(char)*param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)*param_1" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1"))))) (, ",") (binary_expression "iVar17 == 0" (identifier "iVar17") (== "==") (number_literal "0"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17), iVar18 == 0)" (( "(") (comma_expression "iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17), iVar18 == 0" (assignment_expression "iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17)" (identifier "iVar18") (= "=") (call_expression "(*(code *)PTR_strchr_00034344)(param_5,iVar17)" (parenthesized_expression "(*(code *)PTR_strchr_00034344)" (( "(") (pointer_expression "*(code *)PTR_strchr_00034344" (* "*") (cast_expression "(code *)PTR_strchr_00034344" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strchr_00034344"))) () ")")) (argument_list "(param_5,iVar17)" (( "(") (identifier "param_5") (, ",") (identifier "iVar17") () ")")))) (, ",") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_0001d698;" (goto "goto") (statement_identifier "LAB_0001d698") (; ";"))) (expression_statement "uVar21 = 1;" (assignment_expression "uVar21 = 1" (identifier "uVar21") (= "=") (number_literal "1")) (; ";")) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" (identifier "uVar19") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0001d6c8:\n        uVar16 = iVar17 - 0x45U & 0xff;" (statement_identifier "LAB_0001d6c8") (: ":") (expression_statement "uVar16 = iVar17 - 0x45U & 0xff;" (assignment_expression "uVar16 = iVar17 - 0x45U & 0xff" (identifier "uVar16") (= "=") (binary_expression "iVar17 - 0x45U & 0xff" (binary_expression "iVar17 - 0x45U" (identifier "iVar17") (- "-") (number_literal "0x45U")) (& "&") (number_literal "0xff"))) (; ";"))) (if_statement "if (uVar16 < 0x30) {\n                    \n                    \n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)))();\n          return uVar19;\n        }" (if "if") (parenthesized_expression "(uVar16 < 0x30)" (( "(") (binary_expression "uVar16 < 0x30" (identifier "uVar16") (< "<") (number_literal "0x30")) () ")")) (compound_statement "{\n                    \n                    \n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)))();\n          return uVar19;\n        }" ({ "{") (expression_statement "uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)))();" (assignment_expression "uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)))()" (identifier "uVar19") (= "=") (call_expression "(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)))" (( "(") (pointer_expression "*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230))" (* "*") (cast_expression "(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230))" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230))" (( "(") (binary_expression "&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)" (pointer_expression "&_gp_1" (& "&") (identifier "_gp_1")) (+ "+") (pointer_expression "*(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)" (* "*") (cast_expression "(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)" (( "(") (binary_expression "PTR_LAB_00034138 + uVar16 * 4 + 0x3230" (binary_expression "PTR_LAB_00034138 + uVar16 * 4" (identifier "PTR_LAB_00034138") (+ "+") (binary_expression "uVar16 * 4" (identifier "uVar16") (* "*") (number_literal "4"))) (+ "+") (number_literal "0x3230")) () ")"))))) () ")")))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return uVar19;" (return "return") (identifier "uVar19") (; ";")) (} "}"))) (expression_statement "uVar16 = iVar17 - 0x42U & 0xff;" (assignment_expression "uVar16 = iVar17 - 0x42U & 0xff" (identifier "uVar16") (= "=") (binary_expression "iVar17 - 0x42U & 0xff" (binary_expression "iVar17 - 0x42U" (identifier "iVar17") (- "-") (number_literal "0x42U")) (& "&") (number_literal "0xff"))) (; ";")) (if_statement "if (uVar16 < 0x36) {\n                    \n                    \n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)))(1);\n          return uVar19;\n        }" (if "if") (parenthesized_expression "(uVar16 < 0x36)" (( "(") (binary_expression "uVar16 < 0x36" (identifier "uVar16") (< "<") (number_literal "0x36")) () ")")) (compound_statement "{\n                    \n                    \n          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)))(1);\n          return uVar19;\n        }" ({ "{") (expression_statement "uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)))(1);" (assignment_expression "uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)))(1)" (identifier "uVar19") (= "=") (call_expression "(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)))(1)" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)))" (( "(") (pointer_expression "*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0))" (* "*") (cast_expression "(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0))" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0))" (( "(") (binary_expression "&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)" (pointer_expression "&_gp_1" (& "&") (identifier "_gp_1")) (+ "+") (pointer_expression "*(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)" (* "*") (cast_expression "(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)" (( "(") (binary_expression "PTR_LAB_00034138 + uVar16 * 4 + 0x33b0" (binary_expression "PTR_LAB_00034138 + uVar16 * 4" (identifier "PTR_LAB_00034138") (+ "+") (binary_expression "uVar16 * 4" (identifier "uVar16") (* "*") (number_literal "4"))) (+ "+") (number_literal "0x33b0")) () ")"))))) () ")")))) () ")")) (argument_list "(1)" (( "(") (number_literal "1") () ")")))) (; ";")) (return_statement "return uVar19;" (return "return") (identifier "uVar19") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        uVar19 = 0;\n        if (*piVar2 != 0) {\n          if (*piVar2 != 0x22) goto LAB_0001d698;\n          uVar19 = 1;\n        }\n        if ((param_5 == 0) || (iVar17 = (int)(char)*(byte *)*param_2, iVar17 == 0)) {\n          *param_4 = uVar21;\n          goto LAB_0001d630;\n        }\n        iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17);\n        if (iVar18 != 0) goto LAB_0001d6c8;\n      }" (else "else") (compound_statement "{\n        uVar19 = 0;\n        if (*piVar2 != 0) {\n          if (*piVar2 != 0x22) goto LAB_0001d698;\n          uVar19 = 1;\n        }\n        if ((param_5 == 0) || (iVar17 = (int)(char)*(byte *)*param_2, iVar17 == 0)) {\n          *param_4 = uVar21;\n          goto LAB_0001d630;\n        }\n        iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17);\n        if (iVar18 != 0) goto LAB_0001d6c8;\n      }" ({ "{") (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" (identifier "uVar19") (= "=") (number_literal "0")) (; ";")) (if_statement "if (*piVar2 != 0) {\n          if (*piVar2 != 0x22) goto LAB_0001d698;\n          uVar19 = 1;\n        }" (if "if") (parenthesized_expression "(*piVar2 != 0)" (( "(") (binary_expression "*piVar2 != 0" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          if (*piVar2 != 0x22) goto LAB_0001d698;\n          uVar19 = 1;\n        }" ({ "{") (if_statement "if (*piVar2 != 0x22) goto LAB_0001d698;" (if "if") (parenthesized_expression "(*piVar2 != 0x22)" (( "(") (binary_expression "*piVar2 != 0x22" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (!= "!=") (number_literal "0x22")) () ")")) (goto_statement "goto LAB_0001d698;" (goto "goto") (statement_identifier "LAB_0001d698") (; ";"))) (expression_statement "uVar19 = 1;" (assignment_expression "uVar19 = 1" (identifier "uVar19") (= "=") (number_literal "1")) (; ";")) (} "}"))) (if_statement "if ((param_5 == 0) || (iVar17 = (int)(char)*(byte *)*param_2, iVar17 == 0)) {\n          *param_4 = uVar21;\n          goto LAB_0001d630;\n        }" (if "if") (parenthesized_expression "((param_5 == 0) || (iVar17 = (int)(char)*(byte *)*param_2, iVar17 == 0))" (( "(") (binary_expression "(param_5 == 0) || (iVar17 = (int)(char)*(byte *)*param_2, iVar17 == 0)" (parenthesized_expression "(param_5 == 0)" (( "(") (binary_expression "param_5 == 0" (identifier "param_5") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar17 = (int)(char)*(byte *)*param_2, iVar17 == 0)" (( "(") (comma_expression "iVar17 = (int)(char)*(byte *)*param_2, iVar17 == 0" (assignment_expression "iVar17 = (int)(char)*(byte *)*param_2" (identifier "iVar17") (= "=") (cast_expression "(int)(char)*(byte *)*param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)*(byte *)*param_2" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(byte *)*param_2" (* "*") (cast_expression "(byte *)*param_2" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2"))))))) (, ",") (binary_expression "iVar17 == 0" (identifier "iVar17") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n          *param_4 = uVar21;\n          goto LAB_0001d630;\n        }" ({ "{") (expression_statement "*param_4 = uVar21;" (assignment_expression "*param_4 = uVar21" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (identifier "uVar21")) (; ";")) (goto_statement "goto LAB_0001d630;" (goto "goto") (statement_identifier "LAB_0001d630") (; ";")) (} "}"))) (expression_statement "iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17);" (assignment_expression "iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17)" (identifier "iVar18") (= "=") (call_expression "(*(code *)PTR_strchr_00034344)(param_5,iVar17)" (parenthesized_expression "(*(code *)PTR_strchr_00034344)" (( "(") (pointer_expression "*(code *)PTR_strchr_00034344" (* "*") (cast_expression "(code *)PTR_strchr_00034344" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strchr_00034344"))) () ")")) (argument_list "(param_5,iVar17)" (( "(") (identifier "param_5") (, ",") (identifier "iVar17") () ")")))) (; ";")) (if_statement "if (iVar18 != 0) goto LAB_0001d6c8;" (if "if") (parenthesized_expression "(iVar18 != 0)" (( "(") (binary_expression "iVar18 != 0" (identifier "iVar18") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001d6c8;" (goto "goto") (statement_identifier "LAB_0001d6c8") (; ";"))) (} "}")))) (expression_statement "uVar19 = uVar19 | 2;" (assignment_expression "uVar19 = uVar19 | 2" (identifier "uVar19") (= "=") (binary_expression "uVar19 | 2" (identifier "uVar19") (| "|") (number_literal "2"))) (; ";")) (expression_statement "*param_4 = uVar21;" (assignment_expression "*param_4 = uVar21" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (identifier "uVar21")) (; ";")) (} "}")))) (labeled_statement "LAB_0001d630:\n    if (local_2c == *(int *)puVar20) {\n      return uVar19;\n    }" (statement_identifier "LAB_0001d630") (: ":") (if_statement "if (local_2c == *(int *)puVar20) {\n      return uVar19;\n    }" (if "if") (parenthesized_expression "(local_2c == *(int *)puVar20)" (( "(") (binary_expression "local_2c == *(int *)puVar20" (identifier "local_2c") (== "==") (pointer_expression "*(int *)puVar20" (* "*") (cast_expression "(int *)puVar20" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar20")))) () ")")) (compound_statement "{\n      return uVar19;\n    }" ({ "{") (return_statement "return uVar19;" (return "return") (identifier "uVar19") (; ";")) (} "}")))) (expression_statement "(*(code *)PTR___stack_chk_fail_00034398)();" (call_expression "(*(code *)PTR___stack_chk_fail_00034398)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00034398)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_00034398" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_00034398" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_00034398"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar12 = 0x60;" (assignment_expression "uVar12 = 0x60" (identifier "uVar12") (= "=") (number_literal "0x60")) (; ";")) (expression_statement "piVar2 = (int *)(PTR_LAB_00034138 + 0x31f4);" (assignment_expression "piVar2 = (int *)(PTR_LAB_00034138 + 0x31f4)" (identifier "piVar2") (= "=") (cast_expression "(int *)(PTR_LAB_00034138 + 0x31f4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00034138 + 0x31f4)" (( "(") (binary_expression "PTR_LAB_00034138 + 0x31f4" (identifier "PTR_LAB_00034138") (+ "+") (number_literal "0x31f4")) () ")")))) (; ";")) (expression_statement "puVar11 = PTR_LAB_00034138 + 0x3204;" (assignment_expression "puVar11 = PTR_LAB_00034138 + 0x3204" (identifier "puVar11") (= "=") (binary_expression "PTR_LAB_00034138 + 0x3204" (identifier "PTR_LAB_00034138") (+ "+") (number_literal "0x3204"))) (; ";")) (expression_statement "puVar20 = PTR___assert_fail_000342ac;" (assignment_expression "puVar20 = PTR___assert_fail_000342ac" (identifier "puVar20") (= "=") (identifier "PTR___assert_fail_000342ac")) (; ";")) (expression_statement "(*(code *)PTR___assert_fail_000342ac)(puVar11);" (call_expression "(*(code *)PTR___assert_fail_000342ac)(puVar11)" (parenthesized_expression "(*(code *)PTR___assert_fail_000342ac)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_000342ac" (* "*") (cast_expression "(code *)PTR___assert_fail_000342ac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_000342ac"))) () ")")) (argument_list "(puVar11)" (( "(") (identifier "puVar11") () ")"))) (; ";")) (expression_statement "piVar3 = *(int **)(puVar20 + 0x16648);" (assignment_expression "piVar3 = *(int **)(puVar20 + 0x16648)" (identifier "piVar3") (= "=") (pointer_expression "*(int **)(puVar20 + 0x16648)" (* "*") (cast_expression "(int **)(puVar20 + 0x16648)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + 0x16648)" (( "(") (binary_expression "puVar20 + 0x16648" (identifier "puVar20") (+ "+") (number_literal "0x16648")) () ")"))))) (; ";")) (expression_statement "iVar17 = *piVar3;" (assignment_expression "iVar17 = *piVar3" (identifier "iVar17") (= "=") (pointer_expression "*piVar3" (* "*") (identifier "piVar3"))) (; ";")) (expression_statement "iVar18 = *(int *)(puVar20 + 0x163b8);" (assignment_expression "iVar18 = *(int *)(puVar20 + 0x163b8)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(puVar20 + 0x163b8)" (* "*") (cast_expression "(int *)(puVar20 + 0x163b8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + 0x163b8)" (( "(") (binary_expression "puVar20 + 0x163b8" (identifier "puVar20") (+ "+") (number_literal "0x163b8")) () ")"))))) (; ";")) (if_statement "if (piVar2 != (int *)0x406) {\n    uVar19 = (**(code **)(puVar20 + 0x16598))();\n    goto LAB_0001ddf8;\n  }" (if "if") (parenthesized_expression "(piVar2 != (int *)0x406)" (( "(") (binary_expression "piVar2 != (int *)0x406" (identifier "piVar2") (!= "!=") (cast_expression "(int *)0x406" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x406"))) () ")")) (compound_statement "{\n    uVar19 = (**(code **)(puVar20 + 0x16598))();\n    goto LAB_0001ddf8;\n  }" ({ "{") (expression_statement "uVar19 = (**(code **)(puVar20 + 0x16598))();" (assignment_expression "uVar19 = (**(code **)(puVar20 + 0x16598))()" (identifier "uVar19") (= "=") (call_expression "(**(code **)(puVar20 + 0x16598))()" (parenthesized_expression "(**(code **)(puVar20 + 0x16598))" (( "(") (pointer_expression "**(code **)(puVar20 + 0x16598)" (* "*") (pointer_expression "*(code **)(puVar20 + 0x16598)" (* "*") (cast_expression "(code **)(puVar20 + 0x16598)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + 0x16598)" (( "(") (binary_expression "puVar20 + 0x16598" (identifier "puVar20") (+ "+") (number_literal "0x16598")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (goto_statement "goto LAB_0001ddf8;" (goto "goto") (statement_identifier "LAB_0001ddf8") (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar18 + 0x4580) < 0) {\n    piVar2 = (int *)0x0;\n    uVar19 = rpl_fcntl();\n    if (((int)uVar19 < 0) || (uVar16 = uVar19, *(int *)(iVar18 + 0x4580) != -1)) goto LAB_0001ddf8;\n  }\n  else {\n    uVar19 = (**(code **)(puVar20 + 0x16598))();\n    if ((-1 < (int)uVar19) || (piVar5 = (int *)(**(code **)(puVar20 + 0x165b0))(), *piVar5 != 0x16))\n    {\n      *(undefined4 *)(iVar18 + 0x4580) = 1;\n      goto LAB_0001ddf8;\n    }\n    piVar2 = (int *)0x0;\n    uVar19 = rpl_fcntl(puVar11,0,uVar12);\n    if ((int)uVar19 < 0) goto LAB_0001ddf8;\n    *(undefined4 *)(iVar18 + 0x4580) = 0xffffffff;\n    uVar16 = uVar19;\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar18 + 0x4580) < 0)" (( "(") (binary_expression "*(int *)(iVar18 + 0x4580) < 0" (pointer_expression "*(int *)(iVar18 + 0x4580)" (* "*") (cast_expression "(int *)(iVar18 + 0x4580)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x4580)" (( "(") (binary_expression "iVar18 + 0x4580" (identifier "iVar18") (+ "+") (number_literal "0x4580")) () ")")))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    piVar2 = (int *)0x0;\n    uVar19 = rpl_fcntl();\n    if (((int)uVar19 < 0) || (uVar16 = uVar19, *(int *)(iVar18 + 0x4580) != -1)) goto LAB_0001ddf8;\n  }" ({ "{") (expression_statement "piVar2 = (int *)0x0;" (assignment_expression "piVar2 = (int *)0x0" (identifier "piVar2") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "uVar19 = rpl_fcntl();" (assignment_expression "uVar19 = rpl_fcntl()" (identifier "uVar19") (= "=") (call_expression "rpl_fcntl()" (identifier "rpl_fcntl") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (((int)uVar19 < 0) || (uVar16 = uVar19, *(int *)(iVar18 + 0x4580) != -1)) goto LAB_0001ddf8;" (if "if") (parenthesized_expression "(((int)uVar19 < 0) || (uVar16 = uVar19, *(int *)(iVar18 + 0x4580) != -1))" (( "(") (binary_expression "((int)uVar19 < 0) || (uVar16 = uVar19, *(int *)(iVar18 + 0x4580) != -1)" (parenthesized_expression "((int)uVar19 < 0)" (( "(") (binary_expression "(int)uVar19 < 0" (cast_expression "(int)uVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar19")) (< "<") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(uVar16 = uVar19, *(int *)(iVar18 + 0x4580) != -1)" (( "(") (comma_expression "uVar16 = uVar19, *(int *)(iVar18 + 0x4580) != -1" (assignment_expression "uVar16 = uVar19" (identifier "uVar16") (= "=") (identifier "uVar19")) (, ",") (binary_expression "*(int *)(iVar18 + 0x4580) != -1" (pointer_expression "*(int *)(iVar18 + 0x4580)" (* "*") (cast_expression "(int *)(iVar18 + 0x4580)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x4580)" (( "(") (binary_expression "iVar18 + 0x4580" (identifier "iVar18") (+ "+") (number_literal "0x4580")) () ")")))) (!= "!=") (number_literal "-1"))) () ")"))) () ")")) (goto_statement "goto LAB_0001ddf8;" (goto "goto") (statement_identifier "LAB_0001ddf8") (; ";"))) (} "}")) (else_clause "else {\n    uVar19 = (**(code **)(puVar20 + 0x16598))();\n    if ((-1 < (int)uVar19) || (piVar5 = (int *)(**(code **)(puVar20 + 0x165b0))(), *piVar5 != 0x16))\n    {\n      *(undefined4 *)(iVar18 + 0x4580) = 1;\n      goto LAB_0001ddf8;\n    }\n    piVar2 = (int *)0x0;\n    uVar19 = rpl_fcntl(puVar11,0,uVar12);\n    if ((int)uVar19 < 0) goto LAB_0001ddf8;\n    *(undefined4 *)(iVar18 + 0x4580) = 0xffffffff;\n    uVar16 = uVar19;\n  }" (else "else") (compound_statement "{\n    uVar19 = (**(code **)(puVar20 + 0x16598))();\n    if ((-1 < (int)uVar19) || (piVar5 = (int *)(**(code **)(puVar20 + 0x165b0))(), *piVar5 != 0x16))\n    {\n      *(undefined4 *)(iVar18 + 0x4580) = 1;\n      goto LAB_0001ddf8;\n    }\n    piVar2 = (int *)0x0;\n    uVar19 = rpl_fcntl(puVar11,0,uVar12);\n    if ((int)uVar19 < 0) goto LAB_0001ddf8;\n    *(undefined4 *)(iVar18 + 0x4580) = 0xffffffff;\n    uVar16 = uVar19;\n  }" ({ "{") (expression_statement "uVar19 = (**(code **)(puVar20 + 0x16598))();" (assignment_expression "uVar19 = (**(code **)(puVar20 + 0x16598))()" (identifier "uVar19") (= "=") (call_expression "(**(code **)(puVar20 + 0x16598))()" (parenthesized_expression "(**(code **)(puVar20 + 0x16598))" (( "(") (pointer_expression "**(code **)(puVar20 + 0x16598)" (* "*") (pointer_expression "*(code **)(puVar20 + 0x16598)" (* "*") (cast_expression "(code **)(puVar20 + 0x16598)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + 0x16598)" (( "(") (binary_expression "puVar20 + 0x16598" (identifier "puVar20") (+ "+") (number_literal "0x16598")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if ((-1 < (int)uVar19) || (piVar5 = (int *)(**(code **)(puVar20 + 0x165b0))(), *piVar5 != 0x16))\n    {\n      *(undefined4 *)(iVar18 + 0x4580) = 1;\n      goto LAB_0001ddf8;\n    }" (if "if") (parenthesized_expression "((-1 < (int)uVar19) || (piVar5 = (int *)(**(code **)(puVar20 + 0x165b0))(), *piVar5 != 0x16))" (( "(") (binary_expression "(-1 < (int)uVar19) || (piVar5 = (int *)(**(code **)(puVar20 + 0x165b0))(), *piVar5 != 0x16)" (parenthesized_expression "(-1 < (int)uVar19)" (( "(") (binary_expression "-1 < (int)uVar19" (number_literal "-1") (< "<") (cast_expression "(int)uVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar19"))) () ")")) (|| "||") (parenthesized_expression "(piVar5 = (int *)(**(code **)(puVar20 + 0x165b0))(), *piVar5 != 0x16)" (( "(") (comma_expression "piVar5 = (int *)(**(code **)(puVar20 + 0x165b0))(), *piVar5 != 0x16" (assignment_expression "piVar5 = (int *)(**(code **)(puVar20 + 0x165b0))()" (identifier "piVar5") (= "=") (cast_expression "(int *)(**(code **)(puVar20 + 0x165b0))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar20 + 0x165b0))()" (parenthesized_expression "(**(code **)(puVar20 + 0x165b0))" (( "(") (pointer_expression "**(code **)(puVar20 + 0x165b0)" (* "*") (pointer_expression "*(code **)(puVar20 + 0x165b0)" (* "*") (cast_expression "(code **)(puVar20 + 0x165b0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + 0x165b0)" (( "(") (binary_expression "puVar20 + 0x165b0" (identifier "puVar20") (+ "+") (number_literal "0x165b0")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (, ",") (binary_expression "*piVar5 != 0x16" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (!= "!=") (number_literal "0x16"))) () ")"))) () ")")) (compound_statement "{\n      *(undefined4 *)(iVar18 + 0x4580) = 1;\n      goto LAB_0001ddf8;\n    }" ({ "{") (expression_statement "*(undefined4 *)(iVar18 + 0x4580) = 1;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4580) = 1" (pointer_expression "*(undefined4 *)(iVar18 + 0x4580)" (* "*") (cast_expression "(undefined4 *)(iVar18 + 0x4580)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x4580)" (( "(") (binary_expression "iVar18 + 0x4580" (identifier "iVar18") (+ "+") (number_literal "0x4580")) () ")")))) (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_0001ddf8;" (goto "goto") (statement_identifier "LAB_0001ddf8") (; ";")) (} "}"))) (expression_statement "piVar2 = (int *)0x0;" (assignment_expression "piVar2 = (int *)0x0" (identifier "piVar2") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "uVar19 = rpl_fcntl(puVar11,0,uVar12);" (assignment_expression "uVar19 = rpl_fcntl(puVar11,0,uVar12)" (identifier "uVar19") (= "=") (call_expression "rpl_fcntl(puVar11,0,uVar12)" (identifier "rpl_fcntl") (argument_list "(puVar11,0,uVar12)" (( "(") (identifier "puVar11") (, ",") (number_literal "0") (, ",") (identifier "uVar12") () ")")))) (; ";")) (if_statement "if ((int)uVar19 < 0) goto LAB_0001ddf8;" (if "if") (parenthesized_expression "((int)uVar19 < 0)" (( "(") (binary_expression "(int)uVar19 < 0" (cast_expression "(int)uVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar19")) (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001ddf8;" (goto "goto") (statement_identifier "LAB_0001ddf8") (; ";"))) (expression_statement "*(undefined4 *)(iVar18 + 0x4580) = 0xffffffff;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4580) = 0xffffffff" (pointer_expression "*(undefined4 *)(iVar18 + 0x4580)" (* "*") (cast_expression "(undefined4 *)(iVar18 + 0x4580)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x4580)" (( "(") (binary_expression "iVar18 + 0x4580" (identifier "iVar18") (+ "+") (number_literal "0x4580")) () ")")))) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "uVar16 = uVar19;" (assignment_expression "uVar16 = uVar19" (identifier "uVar16") (= "=") (identifier "uVar19")) (; ";")) (} "}")))) (expression_statement "piVar2 = (int *)0x1;" (assignment_expression "piVar2 = (int *)0x1" (identifier "piVar2") (= "=") (cast_expression "(int *)0x1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "uVar19 = (**(code **)(puVar20 + 0x16598))(uVar16);" (assignment_expression "uVar19 = (**(code **)(puVar20 + 0x16598))(uVar16)" (identifier "uVar19") (= "=") (call_expression "(**(code **)(puVar20 + 0x16598))(uVar16)" (parenthesized_expression "(**(code **)(puVar20 + 0x16598))" (( "(") (pointer_expression "**(code **)(puVar20 + 0x16598)" (* "*") (pointer_expression "*(code **)(puVar20 + 0x16598)" (* "*") (cast_expression "(code **)(puVar20 + 0x16598)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + 0x16598)" (( "(") (binary_expression "puVar20 + 0x16598" (identifier "puVar20") (+ "+") (number_literal "0x16598")) () ")"))))) () ")")) (argument_list "(uVar16)" (( "(") (identifier "uVar16") () ")")))) (; ";")) (if_statement "if (-1 < (int)uVar19) {\n    piVar2 = (int *)0x2;\n    iVar18 = (**(code **)(puVar20 + 0x16598))(uVar16,2,uVar19 | 1);\n    uVar19 = uVar16;\n    if (iVar18 != -1) goto LAB_0001ddf8;\n  }" (if "if") (parenthesized_expression "(-1 < (int)uVar19)" (( "(") (binary_expression "-1 < (int)uVar19" (number_literal "-1") (< "<") (cast_expression "(int)uVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar19"))) () ")")) (compound_statement "{\n    piVar2 = (int *)0x2;\n    iVar18 = (**(code **)(puVar20 + 0x16598))(uVar16,2,uVar19 | 1);\n    uVar19 = uVar16;\n    if (iVar18 != -1) goto LAB_0001ddf8;\n  }" ({ "{") (expression_statement "piVar2 = (int *)0x2;" (assignment_expression "piVar2 = (int *)0x2" (identifier "piVar2") (= "=") (cast_expression "(int *)0x2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) (; ";")) (expression_statement "iVar18 = (**(code **)(puVar20 + 0x16598))(uVar16,2,uVar19 | 1);" (assignment_expression "iVar18 = (**(code **)(puVar20 + 0x16598))(uVar16,2,uVar19 | 1)" (identifier "iVar18") (= "=") (call_expression "(**(code **)(puVar20 + 0x16598))(uVar16,2,uVar19 | 1)" (parenthesized_expression "(**(code **)(puVar20 + 0x16598))" (( "(") (pointer_expression "**(code **)(puVar20 + 0x16598)" (* "*") (pointer_expression "*(code **)(puVar20 + 0x16598)" (* "*") (cast_expression "(code **)(puVar20 + 0x16598)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + 0x16598)" (( "(") (binary_expression "puVar20 + 0x16598" (identifier "puVar20") (+ "+") (number_literal "0x16598")) () ")"))))) () ")")) (argument_list "(uVar16,2,uVar19 | 1)" (( "(") (identifier "uVar16") (, ",") (number_literal "2") (, ",") (binary_expression "uVar19 | 1" (identifier "uVar19") (| "|") (number_literal "1")) () ")")))) (; ";")) (expression_statement "uVar19 = uVar16;" (assignment_expression "uVar19 = uVar16" (identifier "uVar19") (= "=") (identifier "uVar16")) (; ";")) (if_statement "if (iVar18 != -1) goto LAB_0001ddf8;" (if "if") (parenthesized_expression "(iVar18 != -1)" (( "(") (binary_expression "iVar18 != -1" (identifier "iVar18") (!= "!=") (number_literal "-1")) () ")")) (goto_statement "goto LAB_0001ddf8;" (goto "goto") (statement_identifier "LAB_0001ddf8") (; ";"))) (} "}"))) (expression_statement "puVar4 = (undefined4 *)(**(code **)(puVar20 + 0x165b0))();" (assignment_expression "puVar4 = (undefined4 *)(**(code **)(puVar20 + 0x165b0))()" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)(**(code **)(puVar20 + 0x165b0))()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar20 + 0x165b0))()" (parenthesized_expression "(**(code **)(puVar20 + 0x165b0))" (( "(") (pointer_expression "**(code **)(puVar20 + 0x165b0)" (* "*") (pointer_expression "*(code **)(puVar20 + 0x165b0)" (* "*") (cast_expression "(code **)(puVar20 + 0x165b0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + 0x165b0)" (( "(") (binary_expression "puVar20 + 0x165b0" (identifier "puVar20") (+ "+") (number_literal "0x165b0")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "uVar12 = *puVar4;" (assignment_expression "uVar12 = *puVar4" (identifier "uVar12") (= "=") (pointer_expression "*puVar4" (* "*") (identifier "puVar4"))) (; ";")) (expression_statement "uVar19 = 0xffffffff;" (assignment_expression "uVar19 = 0xffffffff" (identifier "uVar19") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "(**(code **)(puVar20 + 0x16540))(uVar16);" (call_expression "(**(code **)(puVar20 + 0x16540))(uVar16)" (parenthesized_expression "(**(code **)(puVar20 + 0x16540))" (( "(") (pointer_expression "**(code **)(puVar20 + 0x16540)" (* "*") (pointer_expression "*(code **)(puVar20 + 0x16540)" (* "*") (cast_expression "(code **)(puVar20 + 0x16540)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + 0x16540)" (( "(") (binary_expression "puVar20 + 0x16540" (identifier "puVar20") (+ "+") (number_literal "0x16540")) () ")"))))) () ")")) (argument_list "(uVar16)" (( "(") (identifier "uVar16") () ")"))) (; ";")) (expression_statement "*puVar4 = uVar12;" (assignment_expression "*puVar4 = uVar12" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (identifier "uVar12")) (; ";")) (labeled_statement "LAB_0001ddf8:\n  if (iVar17 != *piVar3) {\n    (**(code **)(puVar20 + 0x16628))();\n    iVar18 = piVar2[8];\n    iVar15 = *piVar2;\n    uVar19 = (uint)(iVar18 < iVar15);\n    uVar16 = piVar2[7];\n    if ((uVar19 != 0) && (uVar19 = (uint)((int)uVar16 < iVar18), uVar19 != 0)) {\n      iVar8 = iVar15 - iVar18;\n      uVar6 = uVar16;\n      iVar14 = iVar15;\n      do {\n        iVar13 = iVar18 - uVar6;\n        uVar19 = iVar8 + uVar6;\n        if (iVar13 < iVar8) {\n          iVar14 = iVar14 - iVar13;\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar14 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            uVar19 = uVar6;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while ((undefined4 *)(iVar17 + (iVar13 + uVar6) * 4) != puVar9);\n        }\n        else {\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar18 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while (puVar9 != (undefined4 *)(iVar17 + uVar19 * 4));\n        }\n      } while ((iVar18 < iVar14) && (iVar8 = iVar14 - iVar18, uVar6 = uVar19, (int)uVar19 < iVar18))\n      ;\n    }\n    piVar2[8] = iVar15;\n    piVar2[7] = (iVar15 - iVar18) + uVar16;\n    return uVar19;\n  }" (statement_identifier "LAB_0001ddf8") (: ":") (if_statement "if (iVar17 != *piVar3) {\n    (**(code **)(puVar20 + 0x16628))();\n    iVar18 = piVar2[8];\n    iVar15 = *piVar2;\n    uVar19 = (uint)(iVar18 < iVar15);\n    uVar16 = piVar2[7];\n    if ((uVar19 != 0) && (uVar19 = (uint)((int)uVar16 < iVar18), uVar19 != 0)) {\n      iVar8 = iVar15 - iVar18;\n      uVar6 = uVar16;\n      iVar14 = iVar15;\n      do {\n        iVar13 = iVar18 - uVar6;\n        uVar19 = iVar8 + uVar6;\n        if (iVar13 < iVar8) {\n          iVar14 = iVar14 - iVar13;\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar14 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            uVar19 = uVar6;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while ((undefined4 *)(iVar17 + (iVar13 + uVar6) * 4) != puVar9);\n        }\n        else {\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar18 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while (puVar9 != (undefined4 *)(iVar17 + uVar19 * 4));\n        }\n      } while ((iVar18 < iVar14) && (iVar8 = iVar14 - iVar18, uVar6 = uVar19, (int)uVar19 < iVar18))\n      ;\n    }\n    piVar2[8] = iVar15;\n    piVar2[7] = (iVar15 - iVar18) + uVar16;\n    return uVar19;\n  }" (if "if") (parenthesized_expression "(iVar17 != *piVar3)" (( "(") (binary_expression "iVar17 != *piVar3" (identifier "iVar17") (!= "!=") (pointer_expression "*piVar3" (* "*") (identifier "piVar3"))) () ")")) (compound_statement "{\n    (**(code **)(puVar20 + 0x16628))();\n    iVar18 = piVar2[8];\n    iVar15 = *piVar2;\n    uVar19 = (uint)(iVar18 < iVar15);\n    uVar16 = piVar2[7];\n    if ((uVar19 != 0) && (uVar19 = (uint)((int)uVar16 < iVar18), uVar19 != 0)) {\n      iVar8 = iVar15 - iVar18;\n      uVar6 = uVar16;\n      iVar14 = iVar15;\n      do {\n        iVar13 = iVar18 - uVar6;\n        uVar19 = iVar8 + uVar6;\n        if (iVar13 < iVar8) {\n          iVar14 = iVar14 - iVar13;\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar14 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            uVar19 = uVar6;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while ((undefined4 *)(iVar17 + (iVar13 + uVar6) * 4) != puVar9);\n        }\n        else {\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar18 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while (puVar9 != (undefined4 *)(iVar17 + uVar19 * 4));\n        }\n      } while ((iVar18 < iVar14) && (iVar8 = iVar14 - iVar18, uVar6 = uVar19, (int)uVar19 < iVar18))\n      ;\n    }\n    piVar2[8] = iVar15;\n    piVar2[7] = (iVar15 - iVar18) + uVar16;\n    return uVar19;\n  }" ({ "{") (expression_statement "(**(code **)(puVar20 + 0x16628))();" (call_expression "(**(code **)(puVar20 + 0x16628))()" (parenthesized_expression "(**(code **)(puVar20 + 0x16628))" (( "(") (pointer_expression "**(code **)(puVar20 + 0x16628)" (* "*") (pointer_expression "*(code **)(puVar20 + 0x16628)" (* "*") (cast_expression "(code **)(puVar20 + 0x16628)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + 0x16628)" (( "(") (binary_expression "puVar20 + 0x16628" (identifier "puVar20") (+ "+") (number_literal "0x16628")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar18 = piVar2[8];" (assignment_expression "iVar18 = piVar2[8]" (identifier "iVar18") (= "=") (subscript_expression "piVar2[8]" (identifier "piVar2") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "iVar15 = *piVar2;" (assignment_expression "iVar15 = *piVar2" (identifier "iVar15") (= "=") (pointer_expression "*piVar2" (* "*") (identifier "piVar2"))) (; ";")) (expression_statement "uVar19 = (uint)(iVar18 < iVar15);" (assignment_expression "uVar19 = (uint)(iVar18 < iVar15)" (identifier "uVar19") (= "=") (call_expression "(uint)(iVar18 < iVar15)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar18 < iVar15)" (( "(") (binary_expression "iVar18 < iVar15" (identifier "iVar18") (< "<") (identifier "iVar15")) () ")")))) (; ";")) (expression_statement "uVar16 = piVar2[7];" (assignment_expression "uVar16 = piVar2[7]" (identifier "uVar16") (= "=") (subscript_expression "piVar2[7]" (identifier "piVar2") ([ "[") (number_literal "7") (] "]"))) (; ";")) (if_statement "if ((uVar19 != 0) && (uVar19 = (uint)((int)uVar16 < iVar18), uVar19 != 0)) {\n      iVar8 = iVar15 - iVar18;\n      uVar6 = uVar16;\n      iVar14 = iVar15;\n      do {\n        iVar13 = iVar18 - uVar6;\n        uVar19 = iVar8 + uVar6;\n        if (iVar13 < iVar8) {\n          iVar14 = iVar14 - iVar13;\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar14 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            uVar19 = uVar6;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while ((undefined4 *)(iVar17 + (iVar13 + uVar6) * 4) != puVar9);\n        }\n        else {\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar18 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while (puVar9 != (undefined4 *)(iVar17 + uVar19 * 4));\n        }\n      } while ((iVar18 < iVar14) && (iVar8 = iVar14 - iVar18, uVar6 = uVar19, (int)uVar19 < iVar18))\n      ;\n    }" (if "if") (parenthesized_expression "((uVar19 != 0) && (uVar19 = (uint)((int)uVar16 < iVar18), uVar19 != 0))" (( "(") (binary_expression "(uVar19 != 0) && (uVar19 = (uint)((int)uVar16 < iVar18), uVar19 != 0)" (parenthesized_expression "(uVar19 != 0)" (( "(") (binary_expression "uVar19 != 0" (identifier "uVar19") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(uVar19 = (uint)((int)uVar16 < iVar18), uVar19 != 0)" (( "(") (comma_expression "uVar19 = (uint)((int)uVar16 < iVar18), uVar19 != 0" (assignment_expression "uVar19 = (uint)((int)uVar16 < iVar18)" (identifier "uVar19") (= "=") (call_expression "(uint)((int)uVar16 < iVar18)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)uVar16 < iVar18)" (( "(") (binary_expression "(int)uVar16 < iVar18" (cast_expression "(int)uVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar16")) (< "<") (identifier "iVar18")) () ")")))) (, ",") (binary_expression "uVar19 != 0" (identifier "uVar19") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n      iVar8 = iVar15 - iVar18;\n      uVar6 = uVar16;\n      iVar14 = iVar15;\n      do {\n        iVar13 = iVar18 - uVar6;\n        uVar19 = iVar8 + uVar6;\n        if (iVar13 < iVar8) {\n          iVar14 = iVar14 - iVar13;\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar14 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            uVar19 = uVar6;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while ((undefined4 *)(iVar17 + (iVar13 + uVar6) * 4) != puVar9);\n        }\n        else {\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar18 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while (puVar9 != (undefined4 *)(iVar17 + uVar19 * 4));\n        }\n      } while ((iVar18 < iVar14) && (iVar8 = iVar14 - iVar18, uVar6 = uVar19, (int)uVar19 < iVar18))\n      ;\n    }" ({ "{") (expression_statement "iVar8 = iVar15 - iVar18;" (assignment_expression "iVar8 = iVar15 - iVar18" (identifier "iVar8") (= "=") (binary_expression "iVar15 - iVar18" (identifier "iVar15") (- "-") (identifier "iVar18"))) (; ";")) (expression_statement "uVar6 = uVar16;" (assignment_expression "uVar6 = uVar16" (identifier "uVar6") (= "=") (identifier "uVar16")) (; ";")) (expression_statement "iVar14 = iVar15;" (assignment_expression "iVar14 = iVar15" (identifier "iVar14") (= "=") (identifier "iVar15")) (; ";")) (do_statement "do {\n        iVar13 = iVar18 - uVar6;\n        uVar19 = iVar8 + uVar6;\n        if (iVar13 < iVar8) {\n          iVar14 = iVar14 - iVar13;\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar14 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            uVar19 = uVar6;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while ((undefined4 *)(iVar17 + (iVar13 + uVar6) * 4) != puVar9);\n        }\n        else {\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar18 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while (puVar9 != (undefined4 *)(iVar17 + uVar19 * 4));\n        }\n      } while ((iVar18 < iVar14) && (iVar8 = iVar14 - iVar18, uVar6 = uVar19, (int)uVar19 < iVar18))\n      ;" (do "do") (compound_statement "{\n        iVar13 = iVar18 - uVar6;\n        uVar19 = iVar8 + uVar6;\n        if (iVar13 < iVar8) {\n          iVar14 = iVar14 - iVar13;\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar14 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            uVar19 = uVar6;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while ((undefined4 *)(iVar17 + (iVar13 + uVar6) * 4) != puVar9);\n        }\n        else {\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar18 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while (puVar9 != (undefined4 *)(iVar17 + uVar19 * 4));\n        }\n      }" ({ "{") (expression_statement "iVar13 = iVar18 - uVar6;" (assignment_expression "iVar13 = iVar18 - uVar6" (identifier "iVar13") (= "=") (binary_expression "iVar18 - uVar6" (identifier "iVar18") (- "-") (identifier "uVar6"))) (; ";")) (expression_statement "uVar19 = iVar8 + uVar6;" (assignment_expression "uVar19 = iVar8 + uVar6" (identifier "uVar19") (= "=") (binary_expression "iVar8 + uVar6" (identifier "iVar8") (+ "+") (identifier "uVar6"))) (; ";")) (if_statement "if (iVar13 < iVar8) {\n          iVar14 = iVar14 - iVar13;\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar14 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            uVar19 = uVar6;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while ((undefined4 *)(iVar17 + (iVar13 + uVar6) * 4) != puVar9);\n        }\n        else {\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar18 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while (puVar9 != (undefined4 *)(iVar17 + uVar19 * 4));\n        }" (if "if") (parenthesized_expression "(iVar13 < iVar8)" (( "(") (binary_expression "iVar13 < iVar8" (identifier "iVar13") (< "<") (identifier "iVar8")) () ")")) (compound_statement "{\n          iVar14 = iVar14 - iVar13;\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar14 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            uVar19 = uVar6;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while ((undefined4 *)(iVar17 + (iVar13 + uVar6) * 4) != puVar9);\n        }" ({ "{") (expression_statement "iVar14 = iVar14 - iVar13;" (assignment_expression "iVar14 = iVar14 - iVar13" (identifier "iVar14") (= "=") (binary_expression "iVar14 - iVar13" (identifier "iVar14") (- "-") (identifier "iVar13"))) (; ";")) (expression_statement "puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);" (assignment_expression "puVar4 = (undefined4 *)(iVar17 + uVar6 * 4)" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)(iVar17 + uVar6 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + uVar6 * 4)" (( "(") (binary_expression "iVar17 + uVar6 * 4" (identifier "iVar17") (+ "+") (binary_expression "uVar6 * 4" (identifier "uVar6") (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "puVar10 = (undefined4 *)(iVar17 + iVar14 * 4);" (assignment_expression "puVar10 = (undefined4 *)(iVar17 + iVar14 * 4)" (identifier "puVar10") (= "=") (cast_expression "(undefined4 *)(iVar17 + iVar14 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + iVar14 * 4)" (( "(") (binary_expression "iVar17 + iVar14 * 4" (identifier "iVar17") (+ "+") (binary_expression "iVar14 * 4" (identifier "iVar14") (* "*") (number_literal "4"))) () ")")))) (; ";")) (do_statement "do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            uVar19 = uVar6;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while ((undefined4 *)(iVar17 + (iVar13 + uVar6) * 4) != puVar9);" (do "do") (compound_statement "{\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            uVar19 = uVar6;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          }" ({ "{") (expression_statement "puVar9 = puVar4 + 1;" (assignment_expression "puVar9 = puVar4 + 1" (identifier "puVar9") (= "=") (binary_expression "puVar4 + 1" (identifier "puVar4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar12 = *puVar4;" (assignment_expression "uVar12 = *puVar4" (identifier "uVar12") (= "=") (pointer_expression "*puVar4" (* "*") (identifier "puVar4"))) (; ";")) (expression_statement "*puVar4 = *puVar10;" (assignment_expression "*puVar4 = *puVar10" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (pointer_expression "*puVar10" (* "*") (identifier "puVar10"))) (; ";")) (expression_statement "*puVar10 = uVar12;" (assignment_expression "*puVar10 = uVar12" (pointer_expression "*puVar10" (* "*") (identifier "puVar10")) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "uVar19 = uVar6;" (assignment_expression "uVar19 = uVar6" (identifier "uVar19") (= "=") (identifier "uVar6")) (; ";")) (expression_statement "puVar4 = puVar9;" (assignment_expression "puVar4 = puVar9" (identifier "puVar4") (= "=") (identifier "puVar9")) (; ";")) (expression_statement "puVar10 = puVar10 + 1;" (assignment_expression "puVar10 = puVar10 + 1" (identifier "puVar10") (= "=") (binary_expression "puVar10 + 1" (identifier "puVar10") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((undefined4 *)(iVar17 + (iVar13 + uVar6) * 4) != puVar9)" (( "(") (binary_expression "(undefined4 *)(iVar17 + (iVar13 + uVar6) * 4) != puVar9" (cast_expression "(undefined4 *)(iVar17 + (iVar13 + uVar6) * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + (iVar13 + uVar6) * 4)" (( "(") (binary_expression "iVar17 + (iVar13 + uVar6) * 4" (identifier "iVar17") (+ "+") (binary_expression "(iVar13 + uVar6) * 4" (parenthesized_expression "(iVar13 + uVar6)" (( "(") (binary_expression "iVar13 + uVar6" (identifier "iVar13") (+ "+") (identifier "uVar6")) () ")")) (* "*") (number_literal "4"))) () ")"))) (!= "!=") (identifier "puVar9")) () ")")) (; ";")) (} "}")) (else_clause "else {\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar18 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while (puVar9 != (undefined4 *)(iVar17 + uVar19 * 4));\n        }" (else "else") (compound_statement "{\n          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);\n          puVar10 = (undefined4 *)(iVar17 + iVar18 * 4);\n          do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while (puVar9 != (undefined4 *)(iVar17 + uVar19 * 4));\n        }" ({ "{") (expression_statement "puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);" (assignment_expression "puVar4 = (undefined4 *)(iVar17 + uVar6 * 4)" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)(iVar17 + uVar6 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + uVar6 * 4)" (( "(") (binary_expression "iVar17 + uVar6 * 4" (identifier "iVar17") (+ "+") (binary_expression "uVar6 * 4" (identifier "uVar6") (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "puVar10 = (undefined4 *)(iVar17 + iVar18 * 4);" (assignment_expression "puVar10 = (undefined4 *)(iVar17 + iVar18 * 4)" (identifier "puVar10") (= "=") (cast_expression "(undefined4 *)(iVar17 + iVar18 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + iVar18 * 4)" (( "(") (binary_expression "iVar17 + iVar18 * 4" (identifier "iVar17") (+ "+") (binary_expression "iVar18 * 4" (identifier "iVar18") (* "*") (number_literal "4"))) () ")")))) (; ";")) (do_statement "do {\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          } while (puVar9 != (undefined4 *)(iVar17 + uVar19 * 4));" (do "do") (compound_statement "{\n            puVar9 = puVar4 + 1;\n            uVar12 = *puVar4;\n            *puVar4 = *puVar10;\n            *puVar10 = uVar12;\n            puVar4 = puVar9;\n            puVar10 = puVar10 + 1;\n          }" ({ "{") (expression_statement "puVar9 = puVar4 + 1;" (assignment_expression "puVar9 = puVar4 + 1" (identifier "puVar9") (= "=") (binary_expression "puVar4 + 1" (identifier "puVar4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar12 = *puVar4;" (assignment_expression "uVar12 = *puVar4" (identifier "uVar12") (= "=") (pointer_expression "*puVar4" (* "*") (identifier "puVar4"))) (; ";")) (expression_statement "*puVar4 = *puVar10;" (assignment_expression "*puVar4 = *puVar10" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (pointer_expression "*puVar10" (* "*") (identifier "puVar10"))) (; ";")) (expression_statement "*puVar10 = uVar12;" (assignment_expression "*puVar10 = uVar12" (pointer_expression "*puVar10" (* "*") (identifier "puVar10")) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "puVar4 = puVar9;" (assignment_expression "puVar4 = puVar9" (identifier "puVar4") (= "=") (identifier "puVar9")) (; ";")) (expression_statement "puVar10 = puVar10 + 1;" (assignment_expression "puVar10 = puVar10 + 1" (identifier "puVar10") (= "=") (binary_expression "puVar10 + 1" (identifier "puVar10") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar9 != (undefined4 *)(iVar17 + uVar19 * 4))" (( "(") (binary_expression "puVar9 != (undefined4 *)(iVar17 + uVar19 * 4)" (identifier "puVar9") (!= "!=") (cast_expression "(undefined4 *)(iVar17 + uVar19 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + uVar19 * 4)" (( "(") (binary_expression "iVar17 + uVar19 * 4" (identifier "iVar17") (+ "+") (binary_expression "uVar19 * 4" (identifier "uVar19") (* "*") (number_literal "4"))) () ")")))) () ")")) (; ";")) (} "}")))) (} "}")) (while "while") (parenthesized_expression "((iVar18 < iVar14) && (iVar8 = iVar14 - iVar18, uVar6 = uVar19, (int)uVar19 < iVar18))" (( "(") (binary_expression "(iVar18 < iVar14) && (iVar8 = iVar14 - iVar18, uVar6 = uVar19, (int)uVar19 < iVar18)" (parenthesized_expression "(iVar18 < iVar14)" (( "(") (binary_expression "iVar18 < iVar14" (identifier "iVar18") (< "<") (identifier "iVar14")) () ")")) (&& "&&") (parenthesized_expression "(iVar8 = iVar14 - iVar18, uVar6 = uVar19, (int)uVar19 < iVar18)" (( "(") (comma_expression "iVar8 = iVar14 - iVar18, uVar6 = uVar19, (int)uVar19 < iVar18" (assignment_expression "iVar8 = iVar14 - iVar18" (identifier "iVar8") (= "=") (binary_expression "iVar14 - iVar18" (identifier "iVar14") (- "-") (identifier "iVar18"))) (, ",") (comma_expression "uVar6 = uVar19, (int)uVar19 < iVar18" (assignment_expression "uVar6 = uVar19" (identifier "uVar6") (= "=") (identifier "uVar19")) (, ",") (binary_expression "(int)uVar19 < iVar18" (cast_expression "(int)uVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar19")) (< "<") (identifier "iVar18")))) () ")"))) () ")")) (; ";")) (} "}"))) (expression_statement "piVar2[8] = iVar15;" (assignment_expression "piVar2[8] = iVar15" (subscript_expression "piVar2[8]" (identifier "piVar2") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "iVar15")) (; ";")) (expression_statement "piVar2[7] = (iVar15 - iVar18) + uVar16;" (assignment_expression "piVar2[7] = (iVar15 - iVar18) + uVar16" (subscript_expression "piVar2[7]" (identifier "piVar2") ([ "[") (number_literal "7") (] "]")) (= "=") (binary_expression "(iVar15 - iVar18) + uVar16" (parenthesized_expression "(iVar15 - iVar18)" (( "(") (binary_expression "iVar15 - iVar18" (identifier "iVar15") (- "-") (identifier "iVar18")) () ")")) (+ "+") (identifier "uVar16"))) (; ";")) (return_statement "return uVar19;" (return "return") (identifier "uVar19") (; ";")) (} "}")))) (return_statement "return uVar19;" (return "return") (identifier "uVar19") (; ";")) (} "}")))

type_1 function_1(char *var_4,char **var_1,int strtol_base,type_2 *val,char *var_5)

{
  type_3 var_3;
  int *var_14;
  int *piVar3;
  type_4 var_8;
  type_5 *var_22;
  int *piVar6;
  type_1 var_18;
  type_3 *var_2;
  int var_19;
  type_5 *var_24;
  type_5 *var_23;
  type_6 *puVar12;
  type_5 uVar13;
  int var_20;
  int var_21;
  int var_16;
  type_1 var_25;
  int var_6;
  int var_7;
  type_1 var_10;
  type_6 *var_13;
  type_2 uVar22;
  char *t_ptr;
  int var_12;
  
  var_13 = PTR___stack_chk_guard_000343b8;
  var_12 = *(int *)PTR___stack_chk_guard_000343b8;
  if ((type_4)strtol_base < 0x25) {
    if (var_1 == (char **)0x0) {
      var_1 = &t_ptr;
    }
    var_14 = (int *)(*(type_7 *)PTR___errno_location_00034320)();
    puVar12 = PTR___ctype_b_loc_000342a8;
    *var_14 = 0;
    piVar3 = (int *)(*(type_7 *)puVar12)();
    var_3 = *var_4;
    var_2 = (type_3 *)var_4;
    while( true ) {
      var_2 = var_2 + 1;
      if ((*(type_8 *)(*piVar3 + (type_4)var_3 * 2) & 0x20) == 0) break;
      var_3 = *var_2;
    }
    if (var_3 == 0x2d) {
LAB_0001d698:
      var_10 = LONGINT_INVALID;
    }
    else {
      uVar22 = (*(type_7 *)PTR___strtoull_internal_000343b0)(var_4,var_1,strtol_base,0);
      if (*var_1 == var_4) {
        if (((var_5 == (char *)0x0) || (var_6 = (int)*var_4, var_6 == 0)) ||
           (var_7 = (*(type_7 *)PTR_strchr_00034344)(var_5,var_6), var_7 == 0))
        goto LAB_0001d698;
        uVar22 = 1;
        var_10 = var_17;
LAB_0001d6c8:
        var_8 = var_6 - 0x45U & 0xff;
        if (var_8 < 0x30) {
                    /* WARNING: Could not emulate address calculation at 0x0001d6e4 */
                    /* WARNING: Treating indirect jump as call */
          var_10 = (*(type_7 *)(&_gp + *(int *)(var_9 + var_8 * 4 + 0x3230)))();
          return var_10;
        }
        var_8 = var_6 - 0x42U & 0xff;
        if (var_8 < 0x36) {
                    /* WARNING: Could not emulate address calculation at 0x0001d7b8 */
                    /* WARNING: Treating indirect jump as call */
          var_10 = (*(type_7 *)(&_gp + *(int *)(var_9 + var_8 * 4 + 0x33b0)))(1);
          return var_10;
        }
      }
      else {
        var_10 = var_17;
        if (*var_14 != 0) {
          if (*var_14 != 0x22) goto LAB_0001d698;
          var_10 = LONGINT_OVERFLOW;
        }
        if ((var_5 == (char *)0x0) || (var_6 = (int)**var_1, var_6 == 0)) {
          *val = uVar22;
          goto LAB_0001d630;
        }
        var_7 = (*(type_7 *)PTR_strchr_00034344)(var_5,var_6);
        if (var_7 != 0) goto LAB_0001d6c8;
      }
      var_10 = var_10 | var_11;
      *val = uVar22;
    }
LAB_0001d630:
    if (var_12 == *(int *)var_13) {
      return var_10;
    }
    (*(type_7 *)PTR___stack_chk_fail_00034398)();
  }
  uVar13 = 0x60;
  var_14 = (int *)(var_9 + 0x31f4);
  puVar12 = var_9 + 0x3204;
  var_13 = PTR___assert_fail_000342ac;
  (*(type_7 *)PTR___assert_fail_000342ac)();
  piVar3 = *(int **)(var_13 + 0x16648);
  var_6 = *piVar3;
  var_7 = *(int *)(var_13 + 0x163b8);
  if (var_14 != (int *)0x406) {
    var_10 = (**(type_7 **)(var_13 + 0x16598))();
    goto LAB_0001ddf8;
  }
  if (*(int *)(var_7 + 0x4580) < 0) {
    var_14 = (int *)0x0;
    var_10 = var_15((int)puVar12,0);
    if (((int)var_10 < 0) || (var_25 = var_10, *(int *)(var_7 + 0x4580) != -1)) goto LAB_0001ddf8;
  }
  else {
    var_10 = (**(type_7 **)(var_13 + 0x16598))();
    if ((-1 < (int)var_10) || (piVar6 = (int *)(**(type_7 **)(var_13 + 0x165b0))(), *piVar6 != 0x16))
    {
      *(type_5 *)(var_7 + 0x4580) = 1;
      goto LAB_0001ddf8;
    }
    var_14 = (int *)0x0;
    var_10 = var_15((int)puVar12,0,uVar13);
    if ((int)var_10 < 0) goto LAB_0001ddf8;
    *(type_5 *)(var_7 + 0x4580) = 0xffffffff;
    var_25 = var_10;
  }
  var_14 = (int *)0x1;
  var_8 = (**(type_7 **)(var_13 + 0x16598))(var_25);
  if (-1 < (int)var_8) {
    var_14 = (int *)0x2;
    var_7 = (**(type_7 **)(var_13 + 0x16598))(var_25,2,var_8 | 1);
    var_10 = var_25;
    if (var_7 != -1) goto LAB_0001ddf8;
  }
  var_22 = (type_5 *)(**(type_7 **)(var_13 + 0x165b0))();
  uVar13 = *var_22;
  var_10 = ~var_17;
  (**(type_7 **)(var_13 + 0x16540))(var_25);
  *var_22 = uVar13;
LAB_0001ddf8:
  if (var_6 != *piVar3) {
    (**(type_7 **)(var_13 + 0x16628))();
    var_7 = var_14[8];
    var_16 = *var_14;
    var_10 = (type_1)(var_7 < var_16);
    var_25 = var_14[7];
    if ((var_10 != var_17) &&
       (var_10 = (type_1)((int)var_25 < var_7), var_10 != var_17)) {
      var_19 = var_16 - var_7;
      var_18 = var_25;
      var_21 = var_16;
      do {
        var_20 = var_7 - var_18;
        var_10 = var_19 + var_18;
        if (var_20 < var_19) {
          var_21 = var_21 - var_20;
          var_22 = (type_5 *)(var_6 + var_18 * 4);
          var_23 = (type_5 *)(var_6 + var_21 * 4);
          do {
            var_24 = var_22 + 1;
            uVar13 = *var_22;
            *var_22 = *var_23;
            *var_23 = uVar13;
            var_10 = var_18;
            var_22 = var_24;
            var_23 = var_23 + 1;
          } while ((type_5 *)(var_6 + (var_20 + var_18) * 4) != var_24);
        }
        else {
          var_22 = (type_5 *)(var_6 + var_18 * 4);
          var_23 = (type_5 *)(var_6 + var_7 * 4);
          do {
            var_24 = var_22 + 1;
            uVar13 = *var_22;
            *var_22 = *var_23;
            *var_23 = uVar13;
            var_22 = var_24;
            var_23 = var_23 + 1;
          } while (var_24 != (type_5 *)(var_6 + var_10 * 4));
        }
      } while ((var_7 < var_21) && (var_19 = var_21 - var_7, var_18 = var_10, (int)var_10 < var_7))
      ;
    }
    var_14[8] = var_16;
    var_14[7] = (var_16 - var_7) + var_25;
    return var_10;
  }
  return var_10;
}


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

uint MASKED(byte *param_1,undefined4 *param_2,uint param_3,undefined8 *param_4,int param_5)

{
  byte bVar1;
  int *piVar2;
  int *piVar3;
  undefined4 *puVar4;
  int *piVar5;
  uint uVar6;
  byte *pbVar7;
  int iVar8;
  undefined4 *puVar9;
  undefined4 *puVar10;
  undefined *puVar11;
  undefined4 uVar12;
  int iVar13;
  int iVar14;
  int iVar15;
  uint uVar16;
  int iVar17;
  int iVar18;
  uint uVar19;
  undefined *puVar20;
  undefined8 uVar21;
  undefined4 uStack_30;
  int local_2c;
  
  puVar20 = PTR___stack_chk_guard_000343b8;
  local_2c = *(int *)PTR___stack_chk_guard_000343b8;
  if (param_3 < 0x25) {
    if (param_2 == (undefined4 *)0x0) {
      param_2 = &uStack_30;
    }
    piVar2 = (int *)(*(code *)PTR___errno_location_00034320)();
    puVar11 = PTR___ctype_b_loc_000342a8;
    *piVar2 = 0;
    piVar3 = (int *)(*(code *)puVar11)();
    bVar1 = *param_1;
    pbVar7 = param_1;
    while( true ) {
      pbVar7 = pbVar7 + 1;
      if ((*(ushort *)(*piVar3 + (uint)bVar1 * 2) & 0x20) == 0) break;
      bVar1 = *pbVar7;
    }
    if (bVar1 == 0x2d) {
LAB_0001d698:
      uVar19 = 4;
    }
    else {
      uVar21 = (*(code *)PTR___strtoull_internal_000343b0)(param_1,param_2,param_3,0);
      if ((byte *)*param_2 == param_1) {
        if (((param_5 == 0) || (iVar17 = (int)(char)*param_1, iVar17 == 0)) ||
           (iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17), iVar18 == 0))
        goto LAB_0001d698;
        uVar21 = 1;
        uVar19 = 0;
LAB_0001d6c8:
        uVar16 = iVar17 - 0x45U & 0xff;
        if (uVar16 < 0x30) {
                    /* WARNING: Could not emulate address calculation at 0x0001d6e4 */
                    /* WARNING: Treating indirect jump as call */
          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x3230)))();
          return uVar19;
        }
        uVar16 = iVar17 - 0x42U & 0xff;
        if (uVar16 < 0x36) {
                    /* WARNING: Could not emulate address calculation at 0x0001d7b8 */
                    /* WARNING: Treating indirect jump as call */
          uVar19 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00034138 + uVar16 * 4 + 0x33b0)))(1);
          return uVar19;
        }
      }
      else {
        uVar19 = 0;
        if (*piVar2 != 0) {
          if (*piVar2 != 0x22) goto LAB_0001d698;
          uVar19 = 1;
        }
        if ((param_5 == 0) || (iVar17 = (int)(char)*(byte *)*param_2, iVar17 == 0)) {
          *param_4 = uVar21;
          goto LAB_0001d630;
        }
        iVar18 = (*(code *)PTR_strchr_00034344)(param_5,iVar17);
        if (iVar18 != 0) goto LAB_0001d6c8;
      }
      uVar19 = uVar19 | 2;
      *param_4 = uVar21;
    }
LAB_0001d630:
    if (local_2c == *(int *)puVar20) {
      return uVar19;
    }
    (*(code *)PTR___stack_chk_fail_00034398)();
  }
  uVar12 = 0x60;
  piVar2 = (int *)(PTR_LAB_00034138 + 0x31f4);
  puVar11 = PTR_LAB_00034138 + 0x3204;
  puVar20 = PTR___assert_fail_000342ac;
  (*(code *)PTR___assert_fail_000342ac)(puVar11);
  piVar3 = *(int **)(puVar20 + 0x16648);
  iVar17 = *piVar3;
  iVar18 = *(int *)(puVar20 + 0x163b8);
  if (piVar2 != (int *)0x406) {
    uVar19 = (**(code **)(puVar20 + 0x16598))();
    goto LAB_0001ddf8;
  }
  if (*(int *)(iVar18 + 0x4580) < 0) {
    piVar2 = (int *)0x0;
    uVar19 = rpl_fcntl();
    if (((int)uVar19 < 0) || (uVar16 = uVar19, *(int *)(iVar18 + 0x4580) != -1)) goto LAB_0001ddf8;
  }
  else {
    uVar19 = (**(code **)(puVar20 + 0x16598))();
    if ((-1 < (int)uVar19) || (piVar5 = (int *)(**(code **)(puVar20 + 0x165b0))(), *piVar5 != 0x16))
    {
      *(undefined4 *)(iVar18 + 0x4580) = 1;
      goto LAB_0001ddf8;
    }
    piVar2 = (int *)0x0;
    uVar19 = rpl_fcntl(puVar11,0,uVar12);
    if ((int)uVar19 < 0) goto LAB_0001ddf8;
    *(undefined4 *)(iVar18 + 0x4580) = 0xffffffff;
    uVar16 = uVar19;
  }
  piVar2 = (int *)0x1;
  uVar19 = (**(code **)(puVar20 + 0x16598))(uVar16);
  if (-1 < (int)uVar19) {
    piVar2 = (int *)0x2;
    iVar18 = (**(code **)(puVar20 + 0x16598))(uVar16,2,uVar19 | 1);
    uVar19 = uVar16;
    if (iVar18 != -1) goto LAB_0001ddf8;
  }
  puVar4 = (undefined4 *)(**(code **)(puVar20 + 0x165b0))();
  uVar12 = *puVar4;
  uVar19 = 0xffffffff;
  (**(code **)(puVar20 + 0x16540))(uVar16);
  *puVar4 = uVar12;
LAB_0001ddf8:
  if (iVar17 != *piVar3) {
    (**(code **)(puVar20 + 0x16628))();
    iVar18 = piVar2[8];
    iVar15 = *piVar2;
    uVar19 = (uint)(iVar18 < iVar15);
    uVar16 = piVar2[7];
    if ((uVar19 != 0) && (uVar19 = (uint)((int)uVar16 < iVar18), uVar19 != 0)) {
      iVar8 = iVar15 - iVar18;
      uVar6 = uVar16;
      iVar14 = iVar15;
      do {
        iVar13 = iVar18 - uVar6;
        uVar19 = iVar8 + uVar6;
        if (iVar13 < iVar8) {
          iVar14 = iVar14 - iVar13;
          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);
          puVar10 = (undefined4 *)(iVar17 + iVar14 * 4);
          do {
            puVar9 = puVar4 + 1;
            uVar12 = *puVar4;
            *puVar4 = *puVar10;
            *puVar10 = uVar12;
            uVar19 = uVar6;
            puVar4 = puVar9;
            puVar10 = puVar10 + 1;
          } while ((undefined4 *)(iVar17 + (iVar13 + uVar6) * 4) != puVar9);
        }
        else {
          puVar4 = (undefined4 *)(iVar17 + uVar6 * 4);
          puVar10 = (undefined4 *)(iVar17 + iVar18 * 4);
          do {
            puVar9 = puVar4 + 1;
            uVar12 = *puVar4;
            *puVar4 = *puVar10;
            *puVar10 = uVar12;
            puVar4 = puVar9;
            puVar10 = puVar10 + 1;
          } while (puVar9 != (undefined4 *)(iVar17 + uVar19 * 4));
        }
      } while ((iVar18 < iVar14) && (iVar8 = iVar14 - iVar18, uVar6 = uVar19, (int)uVar19 < iVar18))
      ;
    }
    piVar2[8] = iVar15;
    piVar2[7] = (iVar15 - iVar18) + uVar16;
    return uVar19;
  }
  return uVar19;
}

