
strtol_error xstrtol(char *s,char **ptr,int strtol_base,long *val,char *valid_suffixes)

{
  int *piVar1;
  int iVar2;
  uint uVar3;
  undefined1 uVar4;
  long *plVar5;
  int iVar6;
  char **ppcVar7;
  undefined4 uVar8;
  strtol_error sVar9;
  undefined1 *puVar10;
  char *pcVar11;
  undefined *puVar12;
  code *pcVar13;
  undefined4 uVar14;
  undefined1 uStack_68;
  undefined1 uStack_67;
  undefined4 uStack_64;
  char **ppcStack_5c;
  char **ppcStack_58;
  strtol_error sStack_54;
  long *plStack_50;
  undefined4 uStack_4c;
  char *t_ptr;
  long tmp;
  uint local_24;
  
  local_24 = *(uint *)PTR___stack_chk_guard_000353a0;
  if (0x24 < (uint)strtol_base) {
    sVar9 = (*(code *)PTR___assert_fail_000352a0)
                      (PTR_LAB_00035158 + 0x4494,PTR_LAB_00035158 + 0x4484,0x60,
                       PTR_LAB_00035158 + 0x4808);
    return sVar9;
  }
  if (ptr == (char **)0x0) {
    ptr = &t_ptr;
  }
  plVar5 = val;
  piVar1 = (int *)(*(code *)PTR___errno_location_00035310)();
  *piVar1 = 0;
  ppcVar7 = ptr;
  tmp = (*(code *)PTR_strtol_000352ac)(s);
  uVar4 = (undefined1)strtol_base;
  pcVar11 = *ptr;
  if (pcVar11 == s) {
    sVar9 = LONGINT_INVALID;
    if (valid_suffixes != (char *)0x0) {
      ppcVar7 = (char **)(int)*s;
      if (ppcVar7 == (char **)0x0) {
        sVar9 = LONGINT_INVALID;
      }
      else {
        iVar2 = (*(code *)PTR_strchr_00035334)(valid_suffixes);
        if (iVar2 != 0) {
          tmp = 1;
          s = (char *)(int)*pcVar11;
          sVar9 = LONGINT_OK;
          goto LAB_0001d2fc;
        }
        sVar9 = LONGINT_INVALID;
      }
    }
  }
  else {
    if (*piVar1 == 0) {
      sVar9 = LONGINT_OK;
    }
    else {
      if (*piVar1 != 0x22) {
        sVar9 = LONGINT_INVALID;
        goto LAB_0001d368;
      }
      sVar9 = LONGINT_OVERFLOW;
    }
    if (valid_suffixes == (char *)0x0) {
      *val = tmp;
    }
    else {
      ppcVar7 = (char **)(int)*pcVar11;
      s = (char *)ppcVar7;
      if (ppcVar7 == (char **)0x0) {
        *val = tmp;
      }
      else {
LAB_0001d2fc:
        ppcVar7 = (char **)s;
        iVar2 = (*(code *)PTR_strchr_00035334)(valid_suffixes);
        if (iVar2 == 0) {
          *val = tmp;
          sVar9 = sVar9 | LONGINT_INVALID_SUFFIX_CHAR;
        }
        else {
          if (((int)s - 0x45U & 0xff) < 0x30) {
                    /* WARNING: Could not emulate address calculation at 0x0001d334 */
                    /* WARNING: Treating indirect jump as call */
            sVar9 = (*(code *)(&_gp + *(int *)(PTR_LAB_00035158 +
                                              ((uint)((int)s - 0x45U) & 0xff) * 4 + 0x4670)))();
            return sVar9;
          }
          ppcVar7 = (char **)0x400;
          s = (char *)((int)s + -0x42);
          if (((uint)s & 0xff) < 0x36) {
                    /* WARNING: Could not emulate address calculation at 0x0001d438 */
                    /* WARNING: Treating indirect jump as call */
            sVar9 = (*(code *)(&_gp + *(int *)(PTR_LAB_00035158 + ((uint)s & 0xff) * 4 + 0x4730)))()
            ;
            return sVar9;
          }
          *val = tmp;
          sVar9 = sVar9 | LONGINT_INVALID_SUFFIX_CHAR;
        }
      }
    }
  }
LAB_0001d368:
  if (local_24 == *(uint *)PTR___stack_chk_guard_000353a0) {
    return sVar9;
  }
  uVar14 = 0x1d6fc;
  uVar3 = local_24;
  puVar12 = PTR___stack_chk_fail_00035384;
  (*(code *)PTR___stack_chk_fail_00035384)();
  uStack_64 = **(undefined4 **)(puVar12 + 0x17ca0);
  uVar8 = **(undefined4 **)(puVar12 + 0x17ad8);
  ppcStack_5c = ptr;
  ppcStack_58 = (char **)s;
  sStack_54 = sVar9;
  plStack_50 = val;
  uStack_4c = uVar14;
  if (uVar3 < 4) {
    if (uVar3 < 2) {
      pcVar13 = *(code **)(puVar12 + 0x17bb0);
      if (uVar3 != 1) goto LAB_0001d7e8;
      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4810;
    }
    else {
      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x484c;
    }
  }
  else {
    pcVar13 = *(code **)(puVar12 + 0x17bb0);
    if (uVar3 != 4) {
LAB_0001d7e8:
      sVar9 = (*pcVar13)();
      return sVar9;
    }
    iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4830;
  }
  if ((int)ppcVar7 < 0) {
    iVar6 = (*(int *)(puVar12 + 0x17a58) + 0x4874) - (int)ppcVar7;
    uStack_67 = 0;
    puVar10 = &uStack_68;
    uStack_68 = uVar4;
  }
  else {
    puVar10 = (undefined1 *)plVar5[(int)ppcVar7 * 4];
    iVar6 = *(int *)(puVar12 + 0x17a58) + 0x4874;
  }
  uVar14 = (**(code **)(puVar12 + 0x17c88))(0,iVar2,5);
  (**(code **)(puVar12 + 0x17c54))(uVar8,0,uVar14,iVar6,puVar10,&_gp);
  sVar9 = (**(code **)(puVar12 + 0x17bb0))();
  return sVar9;
}



uint xstrtol(char *param_1,char *param_2,uint param_3,undefined4 *param_4,int param_5)

{
  int *piVar1;
  int iVar2;
  uint uVar3;
  undefined1 uVar4;
  undefined4 *puVar5;
  int iVar6;
  char *pcVar7;
  undefined4 uVar8;
  uint uVar9;
  undefined1 *puVar10;
  char *pcVar11;
  undefined *puVar12;
  code *pcVar13;
  undefined4 uVar14;
  undefined1 uStack_68;
  undefined1 uStack_67;
  undefined4 uStack_64;
  char *pcStack_5c;
  char *pcStack_58;
  uint uStack_54;
  undefined4 *puStack_50;
  undefined4 uStack_4c;
  char acStack_2c [4];
  undefined4 local_28;
  uint local_24;
  
  local_24 = *(uint *)PTR___stack_chk_guard_000353a0;
  if (0x24 < param_3) {
    uVar9 = (*(code *)PTR___assert_fail_000352a0)
                      (PTR_LAB_00035158 + 0x4494,PTR_LAB_00035158 + 0x4484,0x60,
                       PTR_LAB_00035158 + 0x4808);
    return uVar9;
  }
  if (param_2 == (char *)0x0) {
    param_2 = acStack_2c;
  }
  puVar5 = param_4;
  piVar1 = (int *)(*(code *)PTR___errno_location_00035310)();
  *piVar1 = 0;
  pcVar7 = param_2;
  local_28 = (*(code *)PTR_strtol_000352ac)(param_1);
  uVar4 = (undefined1)param_3;
  pcVar11 = *(char **)param_2;
  if (pcVar11 == param_1) {
    uVar9 = 4;
    if (param_5 != 0) {
      pcVar7 = (char *)(int)*param_1;
      if (pcVar7 == (char *)0x0) {
        uVar9 = 4;
      }
      else {
        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);
        if (iVar2 != 0) {
          local_28 = 1;
          param_1 = (char *)(int)*pcVar11;
          uVar9 = 0;
          goto LAB_0001d2fc;
        }
        uVar9 = 4;
      }
    }
  }
  else {
    if (*piVar1 == 0) {
      uVar9 = 0;
    }
    else {
      if (*piVar1 != 0x22) {
        uVar9 = 4;
        goto LAB_0001d368;
      }
      uVar9 = 1;
    }
    if (param_5 == 0) {
      *param_4 = local_28;
    }
    else {
      pcVar7 = (char *)(int)*pcVar11;
      param_1 = pcVar7;
      if (pcVar7 == (char *)0x0) {
        *param_4 = local_28;
      }
      else {
LAB_0001d2fc:
        pcVar7 = param_1;
        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);
        if (iVar2 == 0) {
          *param_4 = local_28;
          uVar9 = uVar9 | 2;
        }
        else {
          if (((uint)(param_1 + -0x45) & 0xff) < 0x30) {
                    /* WARNING: Could not emulate address calculation at 0x0001d334 */
                    /* WARNING: Treating indirect jump as call */
            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +
                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();
            return uVar9;
          }
          pcVar7 = (char *)0x400;
          param_1 = param_1 + -0x42;
          if (((uint)param_1 & 0xff) < 0x36) {
                    /* WARNING: Could not emulate address calculation at 0x0001d438 */
                    /* WARNING: Treating indirect jump as call */
            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +
                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();
            return uVar9;
          }
          *param_4 = local_28;
          uVar9 = uVar9 | 2;
        }
      }
    }
  }
LAB_0001d368:
  if (local_24 == *(uint *)PTR___stack_chk_guard_000353a0) {
    return uVar9;
  }
  uVar14 = 0x1d6fc;
  uVar3 = local_24;
  puVar12 = PTR___stack_chk_fail_00035384;
  (*(code *)PTR___stack_chk_fail_00035384)();
  uStack_64 = **(undefined4 **)(puVar12 + 0x17ca0);
  uVar8 = **(undefined4 **)(puVar12 + 0x17ad8);
  pcStack_5c = param_2;
  pcStack_58 = param_1;
  uStack_54 = uVar9;
  puStack_50 = param_4;
  uStack_4c = uVar14;
  if (uVar3 < 4) {
    if (uVar3 < 2) {
      pcVar13 = *(code **)(puVar12 + 0x17bb0);
      if (uVar3 != 1) goto LAB_0001d7e8;
      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4810;
    }
    else {
      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x484c;
    }
  }
  else {
    pcVar13 = *(code **)(puVar12 + 0x17bb0);
    if (uVar3 != 4) {
LAB_0001d7e8:
      uVar9 = (*pcVar13)();
      return uVar9;
    }
    iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4830;
  }
  if ((int)pcVar7 < 0) {
    iVar6 = (*(int *)(puVar12 + 0x17a58) + 0x4874) - (int)pcVar7;
    uStack_67 = 0;
    puVar10 = &uStack_68;
    uStack_68 = uVar4;
  }
  else {
    puVar10 = (undefined1 *)puVar5[(int)pcVar7 * 4];
    iVar6 = *(int *)(puVar12 + 0x17a58) + 0x4874;
  }
  uVar14 = (**(code **)(puVar12 + 0x17c88))(0,iVar2,5);
  (**(code **)(puVar12 + 0x17c54))(uVar8,0,uVar14,iVar6,puVar10,&_gp_1);
  uVar9 = (**(code **)(puVar12 + 0x17bb0))();
  return uVar9;
}


lui gp,0x2
addiu gp,gp,-0xb0
addu gp,gp,t9
addiu sp,sp,-0x48
sw ra,0x44(sp)
sw s6,0x40(sp)
sw s5,0x3c(sp)
sw s4,0x38(sp)
sw s3,0x34(sp)
sw s2,0x30(sp)
sw s1,0x2c(sp)
sw s0,0x28(sp)
sw gp,0x10(sp)
lw s6,0x58(sp)
lw v0,-0x7d80(gp)
lw v0,0x0(v0)
sw v0,0x24(sp)
sltiu v0,a2,0x25
beq v0,zero,0x0001d294
_lw t9,-0x7e80(gp)
or s1,a0,zero
or s0,a1,zero
or s2,a2,zero
beq a1,zero,0x0001d2b8
_or s3,a3,zero
lw t9,-0x7e10(gp)
jalr t9
_nop
lw gp,0x10(sp)
or s5,v0,zero
sw zero,0x0(v0)
or a2,s2,zero
or a1,s0,zero
or a0,s1,zero
lw t9,-0x7e74(gp)
jalr t9
_nop
lw gp,0x10(sp)
sw v0,0x20(sp)
lw s4,0x0(s0)
beq s4,s1,0x0001d2c0
_nop
lw v1,0x0(s5)
beq v1,zero,0x0001d348
_li a0,0x22
bne v1,a0,0x0001d6e8
_nop
b 0x0001d34c
_li s2,0x1
lw a3,-0x7fc8(gp)
addiu a3,a3,0x4808
li a2,0x60
lw a1,-0x7fc8(gp)
addiu a1,a1,0x4484
lw a0,-0x7fc8(gp)
addiu a0,a0,0x4494
jalr t9
_nop
b 0x0001d234
_addiu s0,sp,0x1c
beq s6,zero,0x0001d368
_li s2,0x4
lb a1,0x0(s1)
beq a1,zero,0x0001d6d8
_or a0,s6,zero
lw t9,-0x7dec(gp)
jalr t9
_nop
lw gp,0x10(sp)
beq v0,zero,0x0001d6e0
_li v0,0x1
sw v0,0x20(sp)
lb s1,0x0(s4)
or s2,zero,zero
or a1,s1,zero
or a0,s6,zero
lw t9,-0x7dec(gp)
jalr t9
_nop
lw gp,0x10(sp)
beq v0,zero,0x0001d3ac
_addiu v0,s1,-0x45
andi v1,v0,0xff
sltiu v1,v1,0x30
beq v1,zero,0x0001d46c
_andi v0,v0,0xff
sll v0,v0,0x2
lw v1,-0x7fc8(gp)
addiu v1,v1,0x4670
addu v0,v1,v0
lw v0,0x0(v0)
addu v0,v0,gp
jr v0
_nop
or s2,zero,zero
beq s6,zero,0x0001d3a4
_nop
lb s1,0x0(s4)
bne s1,zero,0x0001d2fc
_or a1,s1,zero
lw v0,0x20(sp)
sw v0,0x0(s3)
or v0,s2,zero
lw a0,0x24(sp)
lw v1,-0x7d80(gp)
lw v1,0x0(v1)
bne a0,v1,0x0001d6f0
_lw ra,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,0x48
b 0x0001d368
_sw v0,0x0(s3)
lw v0,0x20(sp)
sw v0,0x0(s3)
b 0x0001d368
_ori s2,s2,0x2
li a1,0x30
or a0,s6,zero
lw t9,-0x7dec(gp)
jalr t9
_nop
lw gp,0x10(sp)
beq v0,zero,0x0001d478
_li v0,0x44
lb a1,0x1(s4)
beq a1,v0,0x0001d484
_li v0,0x69
beq a1,v0,0x0001d44c
_li v0,0x42
xor s4,a1,v0
li a0,0x2
li v1,0x1
movz v1,a0,s4
or s4,v1,zero
xor a1,a1,v0
li v1,0x3e8
li v0,0x400
movz v0,v1,a1
or a1,v0,zero
addiu s1,s1,-0x42
andi v0,s1,0xff
sltiu v0,v0,0x36
beq v0,zero,0x0001d6a0
_lw v0,-0x7fc8(gp)
andi s1,s1,0xff
sll s1,s1,0x2
addiu v0,v0,0x4730
addu s1,v0,s1
lw v0,0x0(s1)
addu v0,v0,gp
jr v0
_nop
lb s4,0x2(s4)
xori s4,s4,0x42
li v1,0x1
li v0,0x3
movn v0,v1,s4
or s4,v0,zero
b 0x0001d418
_li a1,0x400
li s4,0x1
b 0x0001d418
_li a1,0x400
li s4,0x1
b 0x0001d418
_li a1,0x400
li s4,0x2
b 0x0001d418
_li a1,0x3e8
lw v1,0x20(sp)
lui v0,0xffc0
slt v0,v1,v0
bne v0,zero,0x0001d4c0
_lui v0,0x8000
lui v0,0x40
slt v0,v1,v0
beq v0,zero,0x0001d4cc
_sll v1,v1,0x9
sw v1,0x20(sp)
b 0x0001d6b4
_or v0,zero,zero
sw v0,0x20(sp)
b 0x0001d6b4
_li v0,0x1
lui v0,0x7fff
ori v0,v0,0xffff
sw v0,0x20(sp)
b 0x0001d6b4
_li v0,0x1
lw v1,0x20(sp)
lui v0,0xffe0
slt v0,v1,v0
bne v0,zero,0x0001d510
_lui v0,0x8000
lui v0,0x20
slt v0,v1,v0
beq v0,zero,0x0001d51c
_sll v1,v1,0xa
sw v1,0x20(sp)
b 0x0001d6b4
_or v0,zero,zero
sw v0,0x20(sp)
b 0x0001d6b4
_li v0,0x1
lui v0,0x7fff
ori v0,v0,0xffff
sw v0,0x20(sp)
b 0x0001d6b4
_li v0,0x1
li a2,0x6
addiu a0,sp,0x20
lw t9,-0x7fc8(gp)
addiu t9,t9,-0x2ed0
bal 0x0001d130
_nop
lw gp,0x10(sp)
b 0x0001d6b8
_or s2,s2,v0
li a2,0x3
addiu a0,sp,0x20
lw t9,-0x7fc8(gp)
addiu t9,t9,-0x2ed0
bal 0x0001d130
_nop
lw gp,0x10(sp)
b 0x0001d6b8
_or s2,s2,v0
li a2,0x1
addiu a0,sp,0x20
lw t9,-0x7fc8(gp)
addiu t9,t9,-0x2ed0
bal 0x0001d130
_nop
lw gp,0x10(sp)
b 0x0001d6b8
_or s2,s2,v0
li a2,0x2
addiu a0,sp,0x20
lw t9,-0x7fc8(gp)
addiu t9,t9,-0x2ed0
bal 0x0001d130
_nop
lw gp,0x10(sp)
b 0x0001d6b8
_or s2,s2,v0
li a2,0x5
addiu a0,sp,0x20
lw t9,-0x7fc8(gp)
addiu t9,t9,-0x2ed0
bal 0x0001d130
_nop
lw gp,0x10(sp)
b 0x0001d6b8
_or s2,s2,v0
li a2,0x4
addiu a0,sp,0x20
lw t9,-0x7fc8(gp)
addiu t9,t9,-0x2ed0
bal 0x0001d130
_nop
lw gp,0x10(sp)
b 0x0001d6b8
_or s2,s2,v0
lw v1,0x20(sp)
lui v0,0xc000
slt v0,v1,v0
bne v0,zero,0x0001d638
_lui v0,0x8000
lui v0,0x4000
slt v0,v1,v0
beq v0,zero,0x0001d644
_sll v1,v1,0x1
sw v1,0x20(sp)
b 0x0001d6b4
_or v0,zero,zero
sw v0,0x20(sp)
b 0x0001d6b4
_li v0,0x1
lui v0,0x7fff
ori v0,v0,0xffff
sw v0,0x20(sp)
b 0x0001d6b4
_li v0,0x1
li a2,0x8
addiu a0,sp,0x20
lw t9,-0x7fc8(gp)
addiu t9,t9,-0x2ed0
bal 0x0001d130
_nop
lw gp,0x10(sp)
b 0x0001d6b8
_or s2,s2,v0
li a2,0x7
addiu a0,sp,0x20
lw t9,-0x7fc8(gp)
addiu t9,t9,-0x2ed0
bal 0x0001d130
_nop
lw gp,0x10(sp)
b 0x0001d6b8
_or s2,s2,v0
lw v0,0x20(sp)
sw v0,0x0(s3)
b 0x0001d368
_ori s2,s2,0x2
or v0,zero,zero
or s2,s2,v0
lw v0,0x0(s0)
addu s4,v0,s4
sw s4,0x0(s0)
lb v0,0x0(s4)
beq v0,zero,0x0001d364
_lw v0,0x20(sp)
b 0x0001d364
_ori s2,s2,0x2
b 0x0001d368
_li s2,0x4
b 0x0001d368
_li s2,0x4
b 0x0001d368
_li s2,0x4
lw t9,-0x7d9c(gp)
jalr t9
_nop
nop
(translation_unit "uint xstrtol(char *param_1,char *param_2,uint param_3,undefined4 *param_4,int param_5)\n\n{\n  int *piVar1;\n  int iVar2;\n  uint uVar3;\n  undefined1 uVar4;\n  undefined4 *puVar5;\n  int iVar6;\n  char *pcVar7;\n  undefined4 uVar8;\n  uint uVar9;\n  undefined1 *puVar10;\n  char *pcVar11;\n  undefined *puVar12;\n  code *pcVar13;\n  undefined4 uVar14;\n  undefined1 uStack_68;\n  undefined1 uStack_67;\n  undefined4 uStack_64;\n  char *pcStack_5c;\n  char *pcStack_58;\n  uint uStack_54;\n  undefined4 *puStack_50;\n  undefined4 uStack_4c;\n  char acStack_2c [4];\n  undefined4 local_28;\n  uint local_24;\n  \n  local_24 = *(uint *)PTR___stack_chk_guard_000353a0;\n  if (0x24 < param_3) {\n    uVar9 = (*(code *)PTR___assert_fail_000352a0)\n                      (PTR_LAB_00035158 + 0x4494,PTR_LAB_00035158 + 0x4484,0x60,\n                       PTR_LAB_00035158 + 0x4808);\n    return uVar9;\n  }\n  if (param_2 == (char *)0x0) {\n    param_2 = acStack_2c;\n  }\n  puVar5 = param_4;\n  piVar1 = (int *)(*(code *)PTR___errno_location_00035310)();\n  *piVar1 = 0;\n  pcVar7 = param_2;\n  local_28 = (*(code *)PTR_strtol_000352ac)(param_1);\n  uVar4 = (undefined1)param_3;\n  pcVar11 = *(char **)param_2;\n  if (pcVar11 == param_1) {\n    uVar9 = 4;\n    if (param_5 != 0) {\n      pcVar7 = (char *)(int)*param_1;\n      if (pcVar7 == (char *)0x0) {\n        uVar9 = 4;\n      }\n      else {\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 != 0) {\n          local_28 = 1;\n          param_1 = (char *)(int)*pcVar11;\n          uVar9 = 0;\n          goto LAB_0001d2fc;\n        }\n        uVar9 = 4;\n      }\n    }\n  }\n  else {\n    if (*piVar1 == 0) {\n      uVar9 = 0;\n    }\n    else {\n      if (*piVar1 != 0x22) {\n        uVar9 = 4;\n        goto LAB_0001d368;\n      }\n      uVar9 = 1;\n    }\n    if (param_5 == 0) {\n      *param_4 = local_28;\n    }\n    else {\n      pcVar7 = (char *)(int)*pcVar11;\n      param_1 = pcVar7;\n      if (pcVar7 == (char *)0x0) {\n        *param_4 = local_28;\n      }\n      else {\nLAB_0001d2fc:\n        pcVar7 = param_1;\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 == 0) {\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n        else {\n          if (((uint)(param_1 + -0x45) & 0xff) < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d334 */\n                    /* WARNING: Treating indirect jump as call */\n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();\n            return uVar9;\n          }\n          pcVar7 = (char *)0x400;\n          param_1 = param_1 + -0x42;\n          if (((uint)param_1 & 0xff) < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d438 */\n                    /* WARNING: Treating indirect jump as call */\n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();\n            return uVar9;\n          }\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n      }\n    }\n  }\nLAB_0001d368:\n  if (local_24 == *(uint *)PTR___stack_chk_guard_000353a0) {\n    return uVar9;\n  }\n  uVar14 = 0x1d6fc;\n  uVar3 = local_24;\n  puVar12 = PTR___stack_chk_fail_00035384;\n  (*(code *)PTR___stack_chk_fail_00035384)();\n  uStack_64 = **(undefined4 **)(puVar12 + 0x17ca0);\n  uVar8 = **(undefined4 **)(puVar12 + 0x17ad8);\n  pcStack_5c = param_2;\n  pcStack_58 = param_1;\n  uStack_54 = uVar9;\n  puStack_50 = param_4;\n  uStack_4c = uVar14;\n  if (uVar3 < 4) {\n    if (uVar3 < 2) {\n      pcVar13 = *(code **)(puVar12 + 0x17bb0);\n      if (uVar3 != 1) goto LAB_0001d7e8;\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4810;\n    }\n    else {\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x484c;\n    }\n  }\n  else {\n    pcVar13 = *(code **)(puVar12 + 0x17bb0);\n    if (uVar3 != 4) {\nLAB_0001d7e8:\n      uVar9 = (*pcVar13)();\n      return uVar9;\n    }\n    iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4830;\n  }\n  if ((int)pcVar7 < 0) {\n    iVar6 = (*(int *)(puVar12 + 0x17a58) + 0x4874) - (int)pcVar7;\n    uStack_67 = 0;\n    puVar10 = &uStack_68;\n    uStack_68 = uVar4;\n  }\n  else {\n    puVar10 = (undefined1 *)puVar5[(int)pcVar7 * 4];\n    iVar6 = *(int *)(puVar12 + 0x17a58) + 0x4874;\n  }\n  uVar14 = (**(code **)(puVar12 + 0x17c88))(0,iVar2,5);\n  (**(code **)(puVar12 + 0x17c54))(uVar8,0,uVar14,iVar6,puVar10,&_gp_1);\n  uVar9 = (**(code **)(puVar12 + 0x17bb0))();\n  return uVar9;\n}\n\n" (function_definition "uint xstrtol(char *param_1,char *param_2,uint param_3,undefined4 *param_4,int param_5)\n\n{\n  int *piVar1;\n  int iVar2;\n  uint uVar3;\n  undefined1 uVar4;\n  undefined4 *puVar5;\n  int iVar6;\n  char *pcVar7;\n  undefined4 uVar8;\n  uint uVar9;\n  undefined1 *puVar10;\n  char *pcVar11;\n  undefined *puVar12;\n  code *pcVar13;\n  undefined4 uVar14;\n  undefined1 uStack_68;\n  undefined1 uStack_67;\n  undefined4 uStack_64;\n  char *pcStack_5c;\n  char *pcStack_58;\n  uint uStack_54;\n  undefined4 *puStack_50;\n  undefined4 uStack_4c;\n  char acStack_2c [4];\n  undefined4 local_28;\n  uint local_24;\n  \n  local_24 = *(uint *)PTR___stack_chk_guard_000353a0;\n  if (0x24 < param_3) {\n    uVar9 = (*(code *)PTR___assert_fail_000352a0)\n                      (PTR_LAB_00035158 + 0x4494,PTR_LAB_00035158 + 0x4484,0x60,\n                       PTR_LAB_00035158 + 0x4808);\n    return uVar9;\n  }\n  if (param_2 == (char *)0x0) {\n    param_2 = acStack_2c;\n  }\n  puVar5 = param_4;\n  piVar1 = (int *)(*(code *)PTR___errno_location_00035310)();\n  *piVar1 = 0;\n  pcVar7 = param_2;\n  local_28 = (*(code *)PTR_strtol_000352ac)(param_1);\n  uVar4 = (undefined1)param_3;\n  pcVar11 = *(char **)param_2;\n  if (pcVar11 == param_1) {\n    uVar9 = 4;\n    if (param_5 != 0) {\n      pcVar7 = (char *)(int)*param_1;\n      if (pcVar7 == (char *)0x0) {\n        uVar9 = 4;\n      }\n      else {\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 != 0) {\n          local_28 = 1;\n          param_1 = (char *)(int)*pcVar11;\n          uVar9 = 0;\n          goto LAB_0001d2fc;\n        }\n        uVar9 = 4;\n      }\n    }\n  }\n  else {\n    if (*piVar1 == 0) {\n      uVar9 = 0;\n    }\n    else {\n      if (*piVar1 != 0x22) {\n        uVar9 = 4;\n        goto LAB_0001d368;\n      }\n      uVar9 = 1;\n    }\n    if (param_5 == 0) {\n      *param_4 = local_28;\n    }\n    else {\n      pcVar7 = (char *)(int)*pcVar11;\n      param_1 = pcVar7;\n      if (pcVar7 == (char *)0x0) {\n        *param_4 = local_28;\n      }\n      else {\nLAB_0001d2fc:\n        pcVar7 = param_1;\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 == 0) {\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n        else {\n          if (((uint)(param_1 + -0x45) & 0xff) < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d334 */\n                    /* WARNING: Treating indirect jump as call */\n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();\n            return uVar9;\n          }\n          pcVar7 = (char *)0x400;\n          param_1 = param_1 + -0x42;\n          if (((uint)param_1 & 0xff) < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d438 */\n                    /* WARNING: Treating indirect jump as call */\n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();\n            return uVar9;\n          }\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n      }\n    }\n  }\nLAB_0001d368:\n  if (local_24 == *(uint *)PTR___stack_chk_guard_000353a0) {\n    return uVar9;\n  }\n  uVar14 = 0x1d6fc;\n  uVar3 = local_24;\n  puVar12 = PTR___stack_chk_fail_00035384;\n  (*(code *)PTR___stack_chk_fail_00035384)();\n  uStack_64 = **(undefined4 **)(puVar12 + 0x17ca0);\n  uVar8 = **(undefined4 **)(puVar12 + 0x17ad8);\n  pcStack_5c = param_2;\n  pcStack_58 = param_1;\n  uStack_54 = uVar9;\n  puStack_50 = param_4;\n  uStack_4c = uVar14;\n  if (uVar3 < 4) {\n    if (uVar3 < 2) {\n      pcVar13 = *(code **)(puVar12 + 0x17bb0);\n      if (uVar3 != 1) goto LAB_0001d7e8;\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4810;\n    }\n    else {\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x484c;\n    }\n  }\n  else {\n    pcVar13 = *(code **)(puVar12 + 0x17bb0);\n    if (uVar3 != 4) {\nLAB_0001d7e8:\n      uVar9 = (*pcVar13)();\n      return uVar9;\n    }\n    iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4830;\n  }\n  if ((int)pcVar7 < 0) {\n    iVar6 = (*(int *)(puVar12 + 0x17a58) + 0x4874) - (int)pcVar7;\n    uStack_67 = 0;\n    puVar10 = &uStack_68;\n    uStack_68 = uVar4;\n  }\n  else {\n    puVar10 = (undefined1 *)puVar5[(int)pcVar7 * 4];\n    iVar6 = *(int *)(puVar12 + 0x17a58) + 0x4874;\n  }\n  uVar14 = (**(code **)(puVar12 + 0x17c88))(0,iVar2,5);\n  (**(code **)(puVar12 + 0x17c54))(uVar8,0,uVar14,iVar6,puVar10,&_gp_1);\n  uVar9 = (**(code **)(puVar12 + 0x17bb0))();\n  return uVar9;\n}" type_identifier (function_declarator "xstrtol(char *param_1,char *param_2,uint param_3,undefined4 *param_4,int param_5)" identifier (parameter_list "(char *param_1,char *param_2,uint param_3,undefined4 *param_4,int param_5)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "undefined4 *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "int param_5" primitive_type identifier) ))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  uint uVar3;\n  undefined1 uVar4;\n  undefined4 *puVar5;\n  int iVar6;\n  char *pcVar7;\n  undefined4 uVar8;\n  uint uVar9;\n  undefined1 *puVar10;\n  char *pcVar11;\n  undefined *puVar12;\n  code *pcVar13;\n  undefined4 uVar14;\n  undefined1 uStack_68;\n  undefined1 uStack_67;\n  undefined4 uStack_64;\n  char *pcStack_5c;\n  char *pcStack_58;\n  uint uStack_54;\n  undefined4 *puStack_50;\n  undefined4 uStack_4c;\n  char acStack_2c [4];\n  undefined4 local_28;\n  uint local_24;\n  \n  local_24 = *(uint *)PTR___stack_chk_guard_000353a0;\n  if (0x24 < param_3) {\n    uVar9 = (*(code *)PTR___assert_fail_000352a0)\n                      (PTR_LAB_00035158 + 0x4494,PTR_LAB_00035158 + 0x4484,0x60,\n                       PTR_LAB_00035158 + 0x4808);\n    return uVar9;\n  }\n  if (param_2 == (char *)0x0) {\n    param_2 = acStack_2c;\n  }\n  puVar5 = param_4;\n  piVar1 = (int *)(*(code *)PTR___errno_location_00035310)();\n  *piVar1 = 0;\n  pcVar7 = param_2;\n  local_28 = (*(code *)PTR_strtol_000352ac)(param_1);\n  uVar4 = (undefined1)param_3;\n  pcVar11 = *(char **)param_2;\n  if (pcVar11 == param_1) {\n    uVar9 = 4;\n    if (param_5 != 0) {\n      pcVar7 = (char *)(int)*param_1;\n      if (pcVar7 == (char *)0x0) {\n        uVar9 = 4;\n      }\n      else {\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 != 0) {\n          local_28 = 1;\n          param_1 = (char *)(int)*pcVar11;\n          uVar9 = 0;\n          goto LAB_0001d2fc;\n        }\n        uVar9 = 4;\n      }\n    }\n  }\n  else {\n    if (*piVar1 == 0) {\n      uVar9 = 0;\n    }\n    else {\n      if (*piVar1 != 0x22) {\n        uVar9 = 4;\n        goto LAB_0001d368;\n      }\n      uVar9 = 1;\n    }\n    if (param_5 == 0) {\n      *param_4 = local_28;\n    }\n    else {\n      pcVar7 = (char *)(int)*pcVar11;\n      param_1 = pcVar7;\n      if (pcVar7 == (char *)0x0) {\n        *param_4 = local_28;\n      }\n      else {\nLAB_0001d2fc:\n        pcVar7 = param_1;\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 == 0) {\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n        else {\n          if (((uint)(param_1 + -0x45) & 0xff) < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d334 */\n                    /* WARNING: Treating indirect jump as call */\n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();\n            return uVar9;\n          }\n          pcVar7 = (char *)0x400;\n          param_1 = param_1 + -0x42;\n          if (((uint)param_1 & 0xff) < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d438 */\n                    /* WARNING: Treating indirect jump as call */\n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();\n            return uVar9;\n          }\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n      }\n    }\n  }\nLAB_0001d368:\n  if (local_24 == *(uint *)PTR___stack_chk_guard_000353a0) {\n    return uVar9;\n  }\n  uVar14 = 0x1d6fc;\n  uVar3 = local_24;\n  puVar12 = PTR___stack_chk_fail_00035384;\n  (*(code *)PTR___stack_chk_fail_00035384)();\n  uStack_64 = **(undefined4 **)(puVar12 + 0x17ca0);\n  uVar8 = **(undefined4 **)(puVar12 + 0x17ad8);\n  pcStack_5c = param_2;\n  pcStack_58 = param_1;\n  uStack_54 = uVar9;\n  puStack_50 = param_4;\n  uStack_4c = uVar14;\n  if (uVar3 < 4) {\n    if (uVar3 < 2) {\n      pcVar13 = *(code **)(puVar12 + 0x17bb0);\n      if (uVar3 != 1) goto LAB_0001d7e8;\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4810;\n    }\n    else {\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x484c;\n    }\n  }\n  else {\n    pcVar13 = *(code **)(puVar12 + 0x17bb0);\n    if (uVar3 != 4) {\nLAB_0001d7e8:\n      uVar9 = (*pcVar13)();\n      return uVar9;\n    }\n    iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4830;\n  }\n  if ((int)pcVar7 < 0) {\n    iVar6 = (*(int *)(puVar12 + 0x17a58) + 0x4874) - (int)pcVar7;\n    uStack_67 = 0;\n    puVar10 = &uStack_68;\n    uStack_68 = uVar4;\n  }\n  else {\n    puVar10 = (undefined1 *)puVar5[(int)pcVar7 * 4];\n    iVar6 = *(int *)(puVar12 + 0x17a58) + 0x4874;\n  }\n  uVar14 = (**(code **)(puVar12 + 0x17c88))(0,iVar2,5);\n  (**(code **)(puVar12 + 0x17c54))(uVar8,0,uVar14,iVar6,puVar10,&_gp_1);\n  uVar9 = (**(code **)(puVar12 + 0x17bb0))();\n  return uVar9;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "undefined1 uVar4;" type_identifier identifier ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "undefined1 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "undefined *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "code *pcVar13;" type_identifier (pointer_declarator "*pcVar13" * identifier) ;) (declaration "undefined4 uVar14;" type_identifier identifier ;) (declaration "undefined1 uStack_68;" type_identifier identifier ;) (declaration "undefined1 uStack_67;" type_identifier identifier ;) (declaration "undefined4 uStack_64;" type_identifier identifier ;) (declaration "char *pcStack_5c;" primitive_type (pointer_declarator "*pcStack_5c" * identifier) ;) (declaration "char *pcStack_58;" primitive_type (pointer_declarator "*pcStack_58" * identifier) ;) (declaration "uint uStack_54;" type_identifier identifier ;) (declaration "undefined4 *puStack_50;" type_identifier (pointer_declarator "*puStack_50" * identifier) ;) (declaration "undefined4 uStack_4c;" type_identifier identifier ;) (declaration "char acStack_2c [4];" primitive_type (array_declarator "acStack_2c [4]" identifier [ number_literal ]) ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (declaration "uint local_24;" type_identifier identifier ;) (expression_statement "local_24 = *(uint *)PTR___stack_chk_guard_000353a0;" (assignment_expression "local_24 = *(uint *)PTR___stack_chk_guard_000353a0" identifier = (pointer_expression "*(uint *)PTR___stack_chk_guard_000353a0" * (cast_expression "(uint *)PTR___stack_chk_guard_000353a0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (0x24 < param_3) {\n    uVar9 = (*(code *)PTR___assert_fail_000352a0)\n                      (PTR_LAB_00035158 + 0x4494,PTR_LAB_00035158 + 0x4484,0x60,\n                       PTR_LAB_00035158 + 0x4808);\n    return uVar9;\n  }" if (parenthesized_expression "(0x24 < param_3)" ( (binary_expression "0x24 < param_3" number_literal < identifier) )) (compound_statement "{\n    uVar9 = (*(code *)PTR___assert_fail_000352a0)\n                      (PTR_LAB_00035158 + 0x4494,PTR_LAB_00035158 + 0x4484,0x60,\n                       PTR_LAB_00035158 + 0x4808);\n    return uVar9;\n  }" { (expression_statement "uVar9 = (*(code *)PTR___assert_fail_000352a0)\n                      (PTR_LAB_00035158 + 0x4494,PTR_LAB_00035158 + 0x4484,0x60,\n                       PTR_LAB_00035158 + 0x4808);" (assignment_expression "uVar9 = (*(code *)PTR___assert_fail_000352a0)\n                      (PTR_LAB_00035158 + 0x4494,PTR_LAB_00035158 + 0x4484,0x60,\n                       PTR_LAB_00035158 + 0x4808)" identifier = (call_expression "(*(code *)PTR___assert_fail_000352a0)\n                      (PTR_LAB_00035158 + 0x4494,PTR_LAB_00035158 + 0x4484,0x60,\n                       PTR_LAB_00035158 + 0x4808)" (parenthesized_expression "(*(code *)PTR___assert_fail_000352a0)" ( (pointer_expression "*(code *)PTR___assert_fail_000352a0" * (cast_expression "(code *)PTR___assert_fail_000352a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_00035158 + 0x4494,PTR_LAB_00035158 + 0x4484,0x60,\n                       PTR_LAB_00035158 + 0x4808)" ( (binary_expression "PTR_LAB_00035158 + 0x4494" identifier + number_literal) , (binary_expression "PTR_LAB_00035158 + 0x4484" identifier + number_literal) , number_literal , (binary_expression "PTR_LAB_00035158 + 0x4808" identifier + number_literal) )))) ;) (return_statement "return uVar9;" return identifier ;) })) (if_statement "if (param_2 == (char *)0x0) {\n    param_2 = acStack_2c;\n  }" if (parenthesized_expression "(param_2 == (char *)0x0)" ( (binary_expression "param_2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    param_2 = acStack_2c;\n  }" { (expression_statement "param_2 = acStack_2c;" (assignment_expression "param_2 = acStack_2c" identifier = identifier) ;) })) (expression_statement "puVar5 = param_4;" (assignment_expression "puVar5 = param_4" identifier = identifier) ;) (expression_statement "piVar1 = (int *)(*(code *)PTR___errno_location_00035310)();" (assignment_expression "piVar1 = (int *)(*(code *)PTR___errno_location_00035310)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_00035310)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00035310)()" (parenthesized_expression "(*(code *)PTR___errno_location_00035310)" ( (pointer_expression "*(code *)PTR___errno_location_00035310" * (cast_expression "(code *)PTR___errno_location_00035310" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "*piVar1 = 0;" (assignment_expression "*piVar1 = 0" (pointer_expression "*piVar1" * identifier) = number_literal) ;) (expression_statement "pcVar7 = param_2;" (assignment_expression "pcVar7 = param_2" identifier = identifier) ;) (expression_statement "local_28 = (*(code *)PTR_strtol_000352ac)(param_1);" (assignment_expression "local_28 = (*(code *)PTR_strtol_000352ac)(param_1)" identifier = (call_expression "(*(code *)PTR_strtol_000352ac)(param_1)" (parenthesized_expression "(*(code *)PTR_strtol_000352ac)" ( (pointer_expression "*(code *)PTR_strtol_000352ac" * (cast_expression "(code *)PTR_strtol_000352ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "uVar4 = (undefined1)param_3;" (assignment_expression "uVar4 = (undefined1)param_3" identifier = (cast_expression "(undefined1)param_3" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "pcVar11 = *(char **)param_2;" (assignment_expression "pcVar11 = *(char **)param_2" identifier = (pointer_expression "*(char **)param_2" * (cast_expression "(char **)param_2" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (pcVar11 == param_1) {\n    uVar9 = 4;\n    if (param_5 != 0) {\n      pcVar7 = (char *)(int)*param_1;\n      if (pcVar7 == (char *)0x0) {\n        uVar9 = 4;\n      }\n      else {\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 != 0) {\n          local_28 = 1;\n          param_1 = (char *)(int)*pcVar11;\n          uVar9 = 0;\n          goto LAB_0001d2fc;\n        }\n        uVar9 = 4;\n      }\n    }\n  }\n  else {\n    if (*piVar1 == 0) {\n      uVar9 = 0;\n    }\n    else {\n      if (*piVar1 != 0x22) {\n        uVar9 = 4;\n        goto LAB_0001d368;\n      }\n      uVar9 = 1;\n    }\n    if (param_5 == 0) {\n      *param_4 = local_28;\n    }\n    else {\n      pcVar7 = (char *)(int)*pcVar11;\n      param_1 = pcVar7;\n      if (pcVar7 == (char *)0x0) {\n        *param_4 = local_28;\n      }\n      else {\nLAB_0001d2fc:\n        pcVar7 = param_1;\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 == 0) {\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n        else {\n          if (((uint)(param_1 + -0x45) & 0xff) < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d334 */\n                    /* WARNING: Treating indirect jump as call */\n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();\n            return uVar9;\n          }\n          pcVar7 = (char *)0x400;\n          param_1 = param_1 + -0x42;\n          if (((uint)param_1 & 0xff) < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d438 */\n                    /* WARNING: Treating indirect jump as call */\n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();\n            return uVar9;\n          }\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n      }\n    }\n  }" if (parenthesized_expression "(pcVar11 == param_1)" ( (binary_expression "pcVar11 == param_1" identifier == identifier) )) (compound_statement "{\n    uVar9 = 4;\n    if (param_5 != 0) {\n      pcVar7 = (char *)(int)*param_1;\n      if (pcVar7 == (char *)0x0) {\n        uVar9 = 4;\n      }\n      else {\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 != 0) {\n          local_28 = 1;\n          param_1 = (char *)(int)*pcVar11;\n          uVar9 = 0;\n          goto LAB_0001d2fc;\n        }\n        uVar9 = 4;\n      }\n    }\n  }" { (expression_statement "uVar9 = 4;" (assignment_expression "uVar9 = 4" identifier = number_literal) ;) (if_statement "if (param_5 != 0) {\n      pcVar7 = (char *)(int)*param_1;\n      if (pcVar7 == (char *)0x0) {\n        uVar9 = 4;\n      }\n      else {\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 != 0) {\n          local_28 = 1;\n          param_1 = (char *)(int)*pcVar11;\n          uVar9 = 0;\n          goto LAB_0001d2fc;\n        }\n        uVar9 = 4;\n      }\n    }" if (parenthesized_expression "(param_5 != 0)" ( (binary_expression "param_5 != 0" identifier != number_literal) )) (compound_statement "{\n      pcVar7 = (char *)(int)*param_1;\n      if (pcVar7 == (char *)0x0) {\n        uVar9 = 4;\n      }\n      else {\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 != 0) {\n          local_28 = 1;\n          param_1 = (char *)(int)*pcVar11;\n          uVar9 = 0;\n          goto LAB_0001d2fc;\n        }\n        uVar9 = 4;\n      }\n    }" { (expression_statement "pcVar7 = (char *)(int)*param_1;" (assignment_expression "pcVar7 = (char *)(int)*param_1" identifier = (cast_expression "(char *)(int)*param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)*param_1" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*param_1" * identifier)))) ;) (if_statement "if (pcVar7 == (char *)0x0) {\n        uVar9 = 4;\n      }\n      else {\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 != 0) {\n          local_28 = 1;\n          param_1 = (char *)(int)*pcVar11;\n          uVar9 = 0;\n          goto LAB_0001d2fc;\n        }\n        uVar9 = 4;\n      }" if (parenthesized_expression "(pcVar7 == (char *)0x0)" ( (binary_expression "pcVar7 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar9 = 4;\n      }" { (expression_statement "uVar9 = 4;" (assignment_expression "uVar9 = 4" identifier = number_literal) ;) }) (else_clause "else {\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 != 0) {\n          local_28 = 1;\n          param_1 = (char *)(int)*pcVar11;\n          uVar9 = 0;\n          goto LAB_0001d2fc;\n        }\n        uVar9 = 4;\n      }" else (compound_statement "{\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 != 0) {\n          local_28 = 1;\n          param_1 = (char *)(int)*pcVar11;\n          uVar9 = 0;\n          goto LAB_0001d2fc;\n        }\n        uVar9 = 4;\n      }" { (expression_statement "iVar2 = (*(code *)PTR_strchr_00035334)(param_5);" (assignment_expression "iVar2 = (*(code *)PTR_strchr_00035334)(param_5)" identifier = (call_expression "(*(code *)PTR_strchr_00035334)(param_5)" (parenthesized_expression "(*(code *)PTR_strchr_00035334)" ( (pointer_expression "*(code *)PTR_strchr_00035334" * (cast_expression "(code *)PTR_strchr_00035334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_5)" ( identifier )))) ;) (if_statement "if (iVar2 != 0) {\n          local_28 = 1;\n          param_1 = (char *)(int)*pcVar11;\n          uVar9 = 0;\n          goto LAB_0001d2fc;\n        }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n          local_28 = 1;\n          param_1 = (char *)(int)*pcVar11;\n          uVar9 = 0;\n          goto LAB_0001d2fc;\n        }" { (expression_statement "local_28 = 1;" (assignment_expression "local_28 = 1" identifier = number_literal) ;) (expression_statement "param_1 = (char *)(int)*pcVar11;" (assignment_expression "param_1 = (char *)(int)*pcVar11" identifier = (cast_expression "(char *)(int)*pcVar11" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)*pcVar11" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pcVar11" * identifier)))) ;) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0001d2fc;" goto statement_identifier ;) })) (expression_statement "uVar9 = 4;" (assignment_expression "uVar9 = 4" identifier = number_literal) ;) }))) })) }) (else_clause "else {\n    if (*piVar1 == 0) {\n      uVar9 = 0;\n    }\n    else {\n      if (*piVar1 != 0x22) {\n        uVar9 = 4;\n        goto LAB_0001d368;\n      }\n      uVar9 = 1;\n    }\n    if (param_5 == 0) {\n      *param_4 = local_28;\n    }\n    else {\n      pcVar7 = (char *)(int)*pcVar11;\n      param_1 = pcVar7;\n      if (pcVar7 == (char *)0x0) {\n        *param_4 = local_28;\n      }\n      else {\nLAB_0001d2fc:\n        pcVar7 = param_1;\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 == 0) {\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n        else {\n          if (((uint)(param_1 + -0x45) & 0xff) < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d334 */\n                    /* WARNING: Treating indirect jump as call */\n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();\n            return uVar9;\n          }\n          pcVar7 = (char *)0x400;\n          param_1 = param_1 + -0x42;\n          if (((uint)param_1 & 0xff) < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d438 */\n                    /* WARNING: Treating indirect jump as call */\n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();\n            return uVar9;\n          }\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n      }\n    }\n  }" else (compound_statement "{\n    if (*piVar1 == 0) {\n      uVar9 = 0;\n    }\n    else {\n      if (*piVar1 != 0x22) {\n        uVar9 = 4;\n        goto LAB_0001d368;\n      }\n      uVar9 = 1;\n    }\n    if (param_5 == 0) {\n      *param_4 = local_28;\n    }\n    else {\n      pcVar7 = (char *)(int)*pcVar11;\n      param_1 = pcVar7;\n      if (pcVar7 == (char *)0x0) {\n        *param_4 = local_28;\n      }\n      else {\nLAB_0001d2fc:\n        pcVar7 = param_1;\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 == 0) {\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n        else {\n          if (((uint)(param_1 + -0x45) & 0xff) < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d334 */\n                    /* WARNING: Treating indirect jump as call */\n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();\n            return uVar9;\n          }\n          pcVar7 = (char *)0x400;\n          param_1 = param_1 + -0x42;\n          if (((uint)param_1 & 0xff) < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d438 */\n                    /* WARNING: Treating indirect jump as call */\n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();\n            return uVar9;\n          }\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n      }\n    }\n  }" { (if_statement "if (*piVar1 == 0) {\n      uVar9 = 0;\n    }\n    else {\n      if (*piVar1 != 0x22) {\n        uVar9 = 4;\n        goto LAB_0001d368;\n      }\n      uVar9 = 1;\n    }" if (parenthesized_expression "(*piVar1 == 0)" ( (binary_expression "*piVar1 == 0" (pointer_expression "*piVar1" * identifier) == number_literal) )) (compound_statement "{\n      uVar9 = 0;\n    }" { (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      if (*piVar1 != 0x22) {\n        uVar9 = 4;\n        goto LAB_0001d368;\n      }\n      uVar9 = 1;\n    }" else (compound_statement "{\n      if (*piVar1 != 0x22) {\n        uVar9 = 4;\n        goto LAB_0001d368;\n      }\n      uVar9 = 1;\n    }" { (if_statement "if (*piVar1 != 0x22) {\n        uVar9 = 4;\n        goto LAB_0001d368;\n      }" if (parenthesized_expression "(*piVar1 != 0x22)" ( (binary_expression "*piVar1 != 0x22" (pointer_expression "*piVar1" * identifier) != number_literal) )) (compound_statement "{\n        uVar9 = 4;\n        goto LAB_0001d368;\n      }" { (expression_statement "uVar9 = 4;" (assignment_expression "uVar9 = 4" identifier = number_literal) ;) (goto_statement "goto LAB_0001d368;" goto statement_identifier ;) })) (expression_statement "uVar9 = 1;" (assignment_expression "uVar9 = 1" identifier = number_literal) ;) }))) (if_statement "if (param_5 == 0) {\n      *param_4 = local_28;\n    }\n    else {\n      pcVar7 = (char *)(int)*pcVar11;\n      param_1 = pcVar7;\n      if (pcVar7 == (char *)0x0) {\n        *param_4 = local_28;\n      }\n      else {\nLAB_0001d2fc:\n        pcVar7 = param_1;\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 == 0) {\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n        else {\n          if (((uint)(param_1 + -0x45) & 0xff) < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d334 */\n                    /* WARNING: Treating indirect jump as call */\n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();\n            return uVar9;\n          }\n          pcVar7 = (char *)0x400;\n          param_1 = param_1 + -0x42;\n          if (((uint)param_1 & 0xff) < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d438 */\n                    /* WARNING: Treating indirect jump as call */\n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();\n            return uVar9;\n          }\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n      }\n    }" if (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) (compound_statement "{\n      *param_4 = local_28;\n    }" { (expression_statement "*param_4 = local_28;" (assignment_expression "*param_4 = local_28" (pointer_expression "*param_4" * identifier) = identifier) ;) }) (else_clause "else {\n      pcVar7 = (char *)(int)*pcVar11;\n      param_1 = pcVar7;\n      if (pcVar7 == (char *)0x0) {\n        *param_4 = local_28;\n      }\n      else {\nLAB_0001d2fc:\n        pcVar7 = param_1;\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 == 0) {\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n        else {\n          if (((uint)(param_1 + -0x45) & 0xff) < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d334 */\n                    /* WARNING: Treating indirect jump as call */\n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();\n            return uVar9;\n          }\n          pcVar7 = (char *)0x400;\n          param_1 = param_1 + -0x42;\n          if (((uint)param_1 & 0xff) < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d438 */\n                    /* WARNING: Treating indirect jump as call */\n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();\n            return uVar9;\n          }\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n      }\n    }" else (compound_statement "{\n      pcVar7 = (char *)(int)*pcVar11;\n      param_1 = pcVar7;\n      if (pcVar7 == (char *)0x0) {\n        *param_4 = local_28;\n      }\n      else {\nLAB_0001d2fc:\n        pcVar7 = param_1;\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 == 0) {\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n        else {\n          if (((uint)(param_1 + -0x45) & 0xff) < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d334 */\n                    /* WARNING: Treating indirect jump as call */\n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();\n            return uVar9;\n          }\n          pcVar7 = (char *)0x400;\n          param_1 = param_1 + -0x42;\n          if (((uint)param_1 & 0xff) < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d438 */\n                    /* WARNING: Treating indirect jump as call */\n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();\n            return uVar9;\n          }\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n      }\n    }" { (expression_statement "pcVar7 = (char *)(int)*pcVar11;" (assignment_expression "pcVar7 = (char *)(int)*pcVar11" identifier = (cast_expression "(char *)(int)*pcVar11" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)*pcVar11" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pcVar11" * identifier)))) ;) (expression_statement "param_1 = pcVar7;" (assignment_expression "param_1 = pcVar7" identifier = identifier) ;) (if_statement "if (pcVar7 == (char *)0x0) {\n        *param_4 = local_28;\n      }\n      else {\nLAB_0001d2fc:\n        pcVar7 = param_1;\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 == 0) {\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n        else {\n          if (((uint)(param_1 + -0x45) & 0xff) < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d334 */\n                    /* WARNING: Treating indirect jump as call */\n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();\n            return uVar9;\n          }\n          pcVar7 = (char *)0x400;\n          param_1 = param_1 + -0x42;\n          if (((uint)param_1 & 0xff) < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d438 */\n                    /* WARNING: Treating indirect jump as call */\n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();\n            return uVar9;\n          }\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n      }" if (parenthesized_expression "(pcVar7 == (char *)0x0)" ( (binary_expression "pcVar7 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *param_4 = local_28;\n      }" { (expression_statement "*param_4 = local_28;" (assignment_expression "*param_4 = local_28" (pointer_expression "*param_4" * identifier) = identifier) ;) }) (else_clause "else {\nLAB_0001d2fc:\n        pcVar7 = param_1;\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 == 0) {\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n        else {\n          if (((uint)(param_1 + -0x45) & 0xff) < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d334 */\n                    /* WARNING: Treating indirect jump as call */\n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();\n            return uVar9;\n          }\n          pcVar7 = (char *)0x400;\n          param_1 = param_1 + -0x42;\n          if (((uint)param_1 & 0xff) < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d438 */\n                    /* WARNING: Treating indirect jump as call */\n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();\n            return uVar9;\n          }\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n      }" else (compound_statement "{\nLAB_0001d2fc:\n        pcVar7 = param_1;\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 == 0) {\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n        else {\n          if (((uint)(param_1 + -0x45) & 0xff) < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d334 */\n                    /* WARNING: Treating indirect jump as call */\n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();\n            return uVar9;\n          }\n          pcVar7 = (char *)0x400;\n          param_1 = param_1 + -0x42;\n          if (((uint)param_1 & 0xff) < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d438 */\n                    /* WARNING: Treating indirect jump as call */\n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();\n            return uVar9;\n          }\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n      }" { (labeled_statement "LAB_0001d2fc:\n        pcVar7 = param_1;" statement_identifier : (expression_statement "pcVar7 = param_1;" (assignment_expression "pcVar7 = param_1" identifier = identifier) ;)) (expression_statement "iVar2 = (*(code *)PTR_strchr_00035334)(param_5);" (assignment_expression "iVar2 = (*(code *)PTR_strchr_00035334)(param_5)" identifier = (call_expression "(*(code *)PTR_strchr_00035334)(param_5)" (parenthesized_expression "(*(code *)PTR_strchr_00035334)" ( (pointer_expression "*(code *)PTR_strchr_00035334" * (cast_expression "(code *)PTR_strchr_00035334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_5)" ( identifier )))) ;) (if_statement "if (iVar2 == 0) {\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n        else {\n          if (((uint)(param_1 + -0x45) & 0xff) < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d334 */\n                    /* WARNING: Treating indirect jump as call */\n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();\n            return uVar9;\n          }\n          pcVar7 = (char *)0x400;\n          param_1 = param_1 + -0x42;\n          if (((uint)param_1 & 0xff) < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d438 */\n                    /* WARNING: Treating indirect jump as call */\n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();\n            return uVar9;\n          }\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }" { (expression_statement "*param_4 = local_28;" (assignment_expression "*param_4 = local_28" (pointer_expression "*param_4" * identifier) = identifier) ;) (expression_statement "uVar9 = uVar9 | 2;" (assignment_expression "uVar9 = uVar9 | 2" identifier = (binary_expression "uVar9 | 2" identifier | number_literal)) ;) }) (else_clause "else {\n          if (((uint)(param_1 + -0x45) & 0xff) < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d334 */\n                    /* WARNING: Treating indirect jump as call */\n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();\n            return uVar9;\n          }\n          pcVar7 = (char *)0x400;\n          param_1 = param_1 + -0x42;\n          if (((uint)param_1 & 0xff) < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d438 */\n                    /* WARNING: Treating indirect jump as call */\n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();\n            return uVar9;\n          }\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }" else (compound_statement "{\n          if (((uint)(param_1 + -0x45) & 0xff) < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d334 */\n                    /* WARNING: Treating indirect jump as call */\n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();\n            return uVar9;\n          }\n          pcVar7 = (char *)0x400;\n          param_1 = param_1 + -0x42;\n          if (((uint)param_1 & 0xff) < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d438 */\n                    /* WARNING: Treating indirect jump as call */\n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();\n            return uVar9;\n          }\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }" { (if_statement "if (((uint)(param_1 + -0x45) & 0xff) < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d334 */\n                    /* WARNING: Treating indirect jump as call */\n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();\n            return uVar9;\n          }" if (parenthesized_expression "(((uint)(param_1 + -0x45) & 0xff) < 0x30)" ( (binary_expression "((uint)(param_1 + -0x45) & 0xff) < 0x30" (parenthesized_expression "((uint)(param_1 + -0x45) & 0xff)" ( (binary_expression "(uint)(param_1 + -0x45) & 0xff" (call_expression "(uint)(param_1 + -0x45)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_1 + -0x45)" ( (binary_expression "param_1 + -0x45" identifier + number_literal) ))) & number_literal) )) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not emulate address calculation at 0x0001d334 */\n                    /* WARNING: Treating indirect jump as call */\n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();\n            return uVar9;\n          }" { comment comment (expression_statement "uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();" (assignment_expression "uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))()" identifier = (call_expression "(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))" ( (pointer_expression "*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670))" * (cast_expression "(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670))" ( (binary_expression "&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)" * (cast_expression "(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)" ( (binary_expression "PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670" (binary_expression "PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4" identifier + (binary_expression "((uint)(param_1 + -0x45) & 0xff) * 4" (parenthesized_expression "((uint)(param_1 + -0x45) & 0xff)" ( (binary_expression "(uint)(param_1 + -0x45) & 0xff" (call_expression "(uint)(param_1 + -0x45)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_1 + -0x45)" ( (binary_expression "param_1 + -0x45" identifier + number_literal) ))) & number_literal) )) * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return uVar9;" return identifier ;) })) (expression_statement "pcVar7 = (char *)0x400;" (assignment_expression "pcVar7 = (char *)0x400" identifier = (cast_expression "(char *)0x400" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_1 = param_1 + -0x42;" (assignment_expression "param_1 = param_1 + -0x42" identifier = (binary_expression "param_1 + -0x42" identifier + number_literal)) ;) (if_statement "if (((uint)param_1 & 0xff) < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d438 */\n                    /* WARNING: Treating indirect jump as call */\n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();\n            return uVar9;\n          }" if (parenthesized_expression "(((uint)param_1 & 0xff) < 0x36)" ( (binary_expression "((uint)param_1 & 0xff) < 0x36" (parenthesized_expression "((uint)param_1 & 0xff)" ( (binary_expression "(uint)param_1 & 0xff" (cast_expression "(uint)param_1" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not emulate address calculation at 0x0001d438 */\n                    /* WARNING: Treating indirect jump as call */\n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();\n            return uVar9;\n          }" { comment comment (expression_statement "uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();" (assignment_expression "uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))()" identifier = (call_expression "(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))" ( (pointer_expression "*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730))" * (cast_expression "(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730))" ( (binary_expression "&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)" * (cast_expression "(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)" ( (binary_expression "PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730" (binary_expression "PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4" identifier + (binary_expression "((uint)param_1 & 0xff) * 4" (parenthesized_expression "((uint)param_1 & 0xff)" ( (binary_expression "(uint)param_1 & 0xff" (cast_expression "(uint)param_1" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return uVar9;" return identifier ;) })) (expression_statement "*param_4 = local_28;" (assignment_expression "*param_4 = local_28" (pointer_expression "*param_4" * identifier) = identifier) ;) (expression_statement "uVar9 = uVar9 | 2;" (assignment_expression "uVar9 = uVar9 | 2" identifier = (binary_expression "uVar9 | 2" identifier | number_literal)) ;) }))) }))) }))) }))) (labeled_statement "LAB_0001d368:\n  if (local_24 == *(uint *)PTR___stack_chk_guard_000353a0) {\n    return uVar9;\n  }" statement_identifier : (if_statement "if (local_24 == *(uint *)PTR___stack_chk_guard_000353a0) {\n    return uVar9;\n  }" if (parenthesized_expression "(local_24 == *(uint *)PTR___stack_chk_guard_000353a0)" ( (binary_expression "local_24 == *(uint *)PTR___stack_chk_guard_000353a0" identifier == (pointer_expression "*(uint *)PTR___stack_chk_guard_000353a0" * (cast_expression "(uint *)PTR___stack_chk_guard_000353a0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return uVar9;\n  }" { (return_statement "return uVar9;" return identifier ;) }))) (expression_statement "uVar14 = 0x1d6fc;" (assignment_expression "uVar14 = 0x1d6fc" identifier = number_literal) ;) (expression_statement "uVar3 = local_24;" (assignment_expression "uVar3 = local_24" identifier = identifier) ;) (expression_statement "puVar12 = PTR___stack_chk_fail_00035384;" (assignment_expression "puVar12 = PTR___stack_chk_fail_00035384" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00035384)();" (call_expression "(*(code *)PTR___stack_chk_fail_00035384)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00035384)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00035384" * (cast_expression "(code *)PTR___stack_chk_fail_00035384" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uStack_64 = **(undefined4 **)(puVar12 + 0x17ca0);" (assignment_expression "uStack_64 = **(undefined4 **)(puVar12 + 0x17ca0)" identifier = (pointer_expression "**(undefined4 **)(puVar12 + 0x17ca0)" * (pointer_expression "*(undefined4 **)(puVar12 + 0x17ca0)" * (cast_expression "(undefined4 **)(puVar12 + 0x17ca0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x17ca0)" ( (binary_expression "puVar12 + 0x17ca0" identifier + number_literal) )))))) ;) (expression_statement "uVar8 = **(undefined4 **)(puVar12 + 0x17ad8);" (assignment_expression "uVar8 = **(undefined4 **)(puVar12 + 0x17ad8)" identifier = (pointer_expression "**(undefined4 **)(puVar12 + 0x17ad8)" * (pointer_expression "*(undefined4 **)(puVar12 + 0x17ad8)" * (cast_expression "(undefined4 **)(puVar12 + 0x17ad8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x17ad8)" ( (binary_expression "puVar12 + 0x17ad8" identifier + number_literal) )))))) ;) (expression_statement "pcStack_5c = param_2;" (assignment_expression "pcStack_5c = param_2" identifier = identifier) ;) (expression_statement "pcStack_58 = param_1;" (assignment_expression "pcStack_58 = param_1" identifier = identifier) ;) (expression_statement "uStack_54 = uVar9;" (assignment_expression "uStack_54 = uVar9" identifier = identifier) ;) (expression_statement "puStack_50 = param_4;" (assignment_expression "puStack_50 = param_4" identifier = identifier) ;) (expression_statement "uStack_4c = uVar14;" (assignment_expression "uStack_4c = uVar14" identifier = identifier) ;) (if_statement "if (uVar3 < 4) {\n    if (uVar3 < 2) {\n      pcVar13 = *(code **)(puVar12 + 0x17bb0);\n      if (uVar3 != 1) goto LAB_0001d7e8;\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4810;\n    }\n    else {\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x484c;\n    }\n  }\n  else {\n    pcVar13 = *(code **)(puVar12 + 0x17bb0);\n    if (uVar3 != 4) {\nLAB_0001d7e8:\n      uVar9 = (*pcVar13)();\n      return uVar9;\n    }\n    iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4830;\n  }" if (parenthesized_expression "(uVar3 < 4)" ( (binary_expression "uVar3 < 4" identifier < number_literal) )) (compound_statement "{\n    if (uVar3 < 2) {\n      pcVar13 = *(code **)(puVar12 + 0x17bb0);\n      if (uVar3 != 1) goto LAB_0001d7e8;\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4810;\n    }\n    else {\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x484c;\n    }\n  }" { (if_statement "if (uVar3 < 2) {\n      pcVar13 = *(code **)(puVar12 + 0x17bb0);\n      if (uVar3 != 1) goto LAB_0001d7e8;\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4810;\n    }\n    else {\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x484c;\n    }" if (parenthesized_expression "(uVar3 < 2)" ( (binary_expression "uVar3 < 2" identifier < number_literal) )) (compound_statement "{\n      pcVar13 = *(code **)(puVar12 + 0x17bb0);\n      if (uVar3 != 1) goto LAB_0001d7e8;\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4810;\n    }" { (expression_statement "pcVar13 = *(code **)(puVar12 + 0x17bb0);" (assignment_expression "pcVar13 = *(code **)(puVar12 + 0x17bb0)" identifier = (pointer_expression "*(code **)(puVar12 + 0x17bb0)" * (cast_expression "(code **)(puVar12 + 0x17bb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x17bb0)" ( (binary_expression "puVar12 + 0x17bb0" identifier + number_literal) ))))) ;) (if_statement "if (uVar3 != 1) goto LAB_0001d7e8;" if (parenthesized_expression "(uVar3 != 1)" ( (binary_expression "uVar3 != 1" identifier != number_literal) )) (goto_statement "goto LAB_0001d7e8;" goto statement_identifier ;)) (expression_statement "iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4810;" (assignment_expression "iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4810" identifier = (binary_expression "*(int *)(puVar12 + 0x17a58) + 0x4810" (pointer_expression "*(int *)(puVar12 + 0x17a58)" * (cast_expression "(int *)(puVar12 + 0x17a58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x17a58)" ( (binary_expression "puVar12 + 0x17a58" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x484c;\n    }" else (compound_statement "{\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x484c;\n    }" { (expression_statement "iVar2 = *(int *)(puVar12 + 0x17a58) + 0x484c;" (assignment_expression "iVar2 = *(int *)(puVar12 + 0x17a58) + 0x484c" identifier = (binary_expression "*(int *)(puVar12 + 0x17a58) + 0x484c" (pointer_expression "*(int *)(puVar12 + 0x17a58)" * (cast_expression "(int *)(puVar12 + 0x17a58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x17a58)" ( (binary_expression "puVar12 + 0x17a58" identifier + number_literal) )))) + number_literal)) ;) }))) }) (else_clause "else {\n    pcVar13 = *(code **)(puVar12 + 0x17bb0);\n    if (uVar3 != 4) {\nLAB_0001d7e8:\n      uVar9 = (*pcVar13)();\n      return uVar9;\n    }\n    iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4830;\n  }" else (compound_statement "{\n    pcVar13 = *(code **)(puVar12 + 0x17bb0);\n    if (uVar3 != 4) {\nLAB_0001d7e8:\n      uVar9 = (*pcVar13)();\n      return uVar9;\n    }\n    iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4830;\n  }" { (expression_statement "pcVar13 = *(code **)(puVar12 + 0x17bb0);" (assignment_expression "pcVar13 = *(code **)(puVar12 + 0x17bb0)" identifier = (pointer_expression "*(code **)(puVar12 + 0x17bb0)" * (cast_expression "(code **)(puVar12 + 0x17bb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x17bb0)" ( (binary_expression "puVar12 + 0x17bb0" identifier + number_literal) ))))) ;) (if_statement "if (uVar3 != 4) {\nLAB_0001d7e8:\n      uVar9 = (*pcVar13)();\n      return uVar9;\n    }" if (parenthesized_expression "(uVar3 != 4)" ( (binary_expression "uVar3 != 4" identifier != number_literal) )) (compound_statement "{\nLAB_0001d7e8:\n      uVar9 = (*pcVar13)();\n      return uVar9;\n    }" { (labeled_statement "LAB_0001d7e8:\n      uVar9 = (*pcVar13)();" statement_identifier : (expression_statement "uVar9 = (*pcVar13)();" (assignment_expression "uVar9 = (*pcVar13)()" identifier = (call_expression "(*pcVar13)()" (parenthesized_expression "(*pcVar13)" ( (pointer_expression "*pcVar13" * identifier) )) (argument_list "()" ( )))) ;)) (return_statement "return uVar9;" return identifier ;) })) (expression_statement "iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4830;" (assignment_expression "iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4830" identifier = (binary_expression "*(int *)(puVar12 + 0x17a58) + 0x4830" (pointer_expression "*(int *)(puVar12 + 0x17a58)" * (cast_expression "(int *)(puVar12 + 0x17a58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x17a58)" ( (binary_expression "puVar12 + 0x17a58" identifier + number_literal) )))) + number_literal)) ;) }))) (if_statement "if ((int)pcVar7 < 0) {\n    iVar6 = (*(int *)(puVar12 + 0x17a58) + 0x4874) - (int)pcVar7;\n    uStack_67 = 0;\n    puVar10 = &uStack_68;\n    uStack_68 = uVar4;\n  }\n  else {\n    puVar10 = (undefined1 *)puVar5[(int)pcVar7 * 4];\n    iVar6 = *(int *)(puVar12 + 0x17a58) + 0x4874;\n  }" if (parenthesized_expression "((int)pcVar7 < 0)" ( (binary_expression "(int)pcVar7 < 0" (cast_expression "(int)pcVar7" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    iVar6 = (*(int *)(puVar12 + 0x17a58) + 0x4874) - (int)pcVar7;\n    uStack_67 = 0;\n    puVar10 = &uStack_68;\n    uStack_68 = uVar4;\n  }" { (expression_statement "iVar6 = (*(int *)(puVar12 + 0x17a58) + 0x4874) - (int)pcVar7;" (assignment_expression "iVar6 = (*(int *)(puVar12 + 0x17a58) + 0x4874) - (int)pcVar7" identifier = (binary_expression "(*(int *)(puVar12 + 0x17a58) + 0x4874) - (int)pcVar7" (parenthesized_expression "(*(int *)(puVar12 + 0x17a58) + 0x4874)" ( (binary_expression "*(int *)(puVar12 + 0x17a58) + 0x4874" (pointer_expression "*(int *)(puVar12 + 0x17a58)" * (cast_expression "(int *)(puVar12 + 0x17a58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x17a58)" ( (binary_expression "puVar12 + 0x17a58" identifier + number_literal) )))) + number_literal) )) - (cast_expression "(int)pcVar7" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uStack_67 = 0;" (assignment_expression "uStack_67 = 0" identifier = number_literal) ;) (expression_statement "puVar10 = &uStack_68;" (assignment_expression "puVar10 = &uStack_68" identifier = (pointer_expression "&uStack_68" & identifier)) ;) (expression_statement "uStack_68 = uVar4;" (assignment_expression "uStack_68 = uVar4" identifier = identifier) ;) }) (else_clause "else {\n    puVar10 = (undefined1 *)puVar5[(int)pcVar7 * 4];\n    iVar6 = *(int *)(puVar12 + 0x17a58) + 0x4874;\n  }" else (compound_statement "{\n    puVar10 = (undefined1 *)puVar5[(int)pcVar7 * 4];\n    iVar6 = *(int *)(puVar12 + 0x17a58) + 0x4874;\n  }" { (expression_statement "puVar10 = (undefined1 *)puVar5[(int)pcVar7 * 4];" (assignment_expression "puVar10 = (undefined1 *)puVar5[(int)pcVar7 * 4]" identifier = (cast_expression "(undefined1 *)puVar5[(int)pcVar7 * 4]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[(int)pcVar7 * 4]" identifier [ (binary_expression "(int)pcVar7 * 4" (cast_expression "(int)pcVar7" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ]))) ;) (expression_statement "iVar6 = *(int *)(puVar12 + 0x17a58) + 0x4874;" (assignment_expression "iVar6 = *(int *)(puVar12 + 0x17a58) + 0x4874" identifier = (binary_expression "*(int *)(puVar12 + 0x17a58) + 0x4874" (pointer_expression "*(int *)(puVar12 + 0x17a58)" * (cast_expression "(int *)(puVar12 + 0x17a58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x17a58)" ( (binary_expression "puVar12 + 0x17a58" identifier + number_literal) )))) + number_literal)) ;) }))) (expression_statement "uVar14 = (**(code **)(puVar12 + 0x17c88))(0,iVar2,5);" (assignment_expression "uVar14 = (**(code **)(puVar12 + 0x17c88))(0,iVar2,5)" identifier = (call_expression "(**(code **)(puVar12 + 0x17c88))(0,iVar2,5)" (parenthesized_expression "(**(code **)(puVar12 + 0x17c88))" ( (pointer_expression "**(code **)(puVar12 + 0x17c88)" * (pointer_expression "*(code **)(puVar12 + 0x17c88)" * (cast_expression "(code **)(puVar12 + 0x17c88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x17c88)" ( (binary_expression "puVar12 + 0x17c88" identifier + number_literal) ))))) )) (argument_list "(0,iVar2,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "(**(code **)(puVar12 + 0x17c54))(uVar8,0,uVar14,iVar6,puVar10,&_gp_1);" (call_expression "(**(code **)(puVar12 + 0x17c54))(uVar8,0,uVar14,iVar6,puVar10,&_gp_1)" (parenthesized_expression "(**(code **)(puVar12 + 0x17c54))" ( (pointer_expression "**(code **)(puVar12 + 0x17c54)" * (pointer_expression "*(code **)(puVar12 + 0x17c54)" * (cast_expression "(code **)(puVar12 + 0x17c54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x17c54)" ( (binary_expression "puVar12 + 0x17c54" identifier + number_literal) ))))) )) (argument_list "(uVar8,0,uVar14,iVar6,puVar10,&_gp_1)" ( identifier , number_literal , identifier , identifier , identifier , (pointer_expression "&_gp_1" & identifier) ))) ;) (expression_statement "uVar9 = (**(code **)(puVar12 + 0x17bb0))();" (assignment_expression "uVar9 = (**(code **)(puVar12 + 0x17bb0))()" identifier = (call_expression "(**(code **)(puVar12 + 0x17bb0))()" (parenthesized_expression "(**(code **)(puVar12 + 0x17bb0))" ( (pointer_expression "**(code **)(puVar12 + 0x17bb0)" * (pointer_expression "*(code **)(puVar12 + 0x17bb0)" * (cast_expression "(code **)(puVar12 + 0x17bb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x17bb0)" ( (binary_expression "puVar12 + 0x17bb0" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (return_statement "return uVar9;" return identifier ;) })))
(translation_unit "strtol_error xstrtol(char *s,char **ptr,int strtol_base,long *val,char *valid_suffixes)\n\n{\n  int *piVar1;\n  int iVar2;\n  uint uVar3;\n  undefined1 uVar4;\n  long *plVar5;\n  int iVar6;\n  char **ppcVar7;\n  undefined4 uVar8;\n  strtol_error sVar9;\n  undefined1 *puVar10;\n  char *pcVar11;\n  undefined *puVar12;\n  code *pcVar13;\n  undefined4 uVar14;\n  undefined1 uStack_68;\n  undefined1 uStack_67;\n  undefined4 uStack_64;\n  char **ppcStack_5c;\n  char **ppcStack_58;\n  strtol_error sStack_54;\n  long *plStack_50;\n  undefined4 uStack_4c;\n  char *t_ptr;\n  long tmp;\n  uint local_24;\n  \n  local_24 = *(uint *)PTR___stack_chk_guard_000353a0;\n  if (0x24 < (uint)strtol_base) {\n    sVar9 = (*(code *)PTR___assert_fail_000352a0)\n                      (PTR_LAB_00035158 + 0x4494,PTR_LAB_00035158 + 0x4484,0x60,\n                       PTR_LAB_00035158 + 0x4808);\n    return sVar9;\n  }\n  if (ptr == (char **)0x0) {\n    ptr = &t_ptr;\n  }\n  plVar5 = val;\n  piVar1 = (int *)(*(code *)PTR___errno_location_00035310)();\n  *piVar1 = 0;\n  ppcVar7 = ptr;\n  tmp = (*(code *)PTR_strtol_000352ac)(s);\n  uVar4 = (undefined1)strtol_base;\n  pcVar11 = *ptr;\n  if (pcVar11 == s) {\n    sVar9 = LONGINT_INVALID;\n    if (valid_suffixes != (char *)0x0) {\n      ppcVar7 = (char **)(int)*s;\n      if (ppcVar7 == (char **)0x0) {\n        sVar9 = LONGINT_INVALID;\n      }\n      else {\n        iVar2 = (*(code *)PTR_strchr_00035334)(valid_suffixes);\n        if (iVar2 != 0) {\n          tmp = 1;\n          s = (char *)(int)*pcVar11;\n          sVar9 = LONGINT_OK;\n          goto LAB_0001d2fc;\n        }\n        sVar9 = LONGINT_INVALID;\n      }\n    }\n  }\n  else {\n    if (*piVar1 == 0) {\n      sVar9 = LONGINT_OK;\n    }\n    else {\n      if (*piVar1 != 0x22) {\n        sVar9 = LONGINT_INVALID;\n        goto LAB_0001d368;\n      }\n      sVar9 = LONGINT_OVERFLOW;\n    }\n    if (valid_suffixes == (char *)0x0) {\n      *val = tmp;\n    }\n    else {\n      ppcVar7 = (char **)(int)*pcVar11;\n      s = (char *)ppcVar7;\n      if (ppcVar7 == (char **)0x0) {\n        *val = tmp;\n      }\n      else {\nLAB_0001d2fc:\n        ppcVar7 = (char **)s;\n        iVar2 = (*(code *)PTR_strchr_00035334)(valid_suffixes);\n        if (iVar2 == 0) {\n          *val = tmp;\n          sVar9 = sVar9 | LONGINT_INVALID_SUFFIX_CHAR;\n        }\n        else {\n          if (((int)s - 0x45U & 0xff) < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d334 */\n                    /* WARNING: Treating indirect jump as call */\n            sVar9 = (*(code *)(&_gp + *(int *)(PTR_LAB_00035158 +\n                                              ((uint)((int)s - 0x45U) & 0xff) * 4 + 0x4670)))();\n            return sVar9;\n          }\n          ppcVar7 = (char **)0x400;\n          s = (char *)((int)s + -0x42);\n          if (((uint)s & 0xff) < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d438 */\n                    /* WARNING: Treating indirect jump as call */\n            sVar9 = (*(code *)(&_gp + *(int *)(PTR_LAB_00035158 + ((uint)s & 0xff) * 4 + 0x4730)))()\n            ;\n            return sVar9;\n          }\n          *val = tmp;\n          sVar9 = sVar9 | LONGINT_INVALID_SUFFIX_CHAR;\n        }\n      }\n    }\n  }\nLAB_0001d368:\n  if (local_24 == *(uint *)PTR___stack_chk_guard_000353a0) {\n    return sVar9;\n  }\n  uVar14 = 0x1d6fc;\n  uVar3 = local_24;\n  puVar12 = PTR___stack_chk_fail_00035384;\n  (*(code *)PTR___stack_chk_fail_00035384)();\n  uStack_64 = **(undefined4 **)(puVar12 + 0x17ca0);\n  uVar8 = **(undefined4 **)(puVar12 + 0x17ad8);\n  ppcStack_5c = ptr;\n  ppcStack_58 = (char **)s;\n  sStack_54 = sVar9;\n  plStack_50 = val;\n  uStack_4c = uVar14;\n  if (uVar3 < 4) {\n    if (uVar3 < 2) {\n      pcVar13 = *(code **)(puVar12 + 0x17bb0);\n      if (uVar3 != 1) goto LAB_0001d7e8;\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4810;\n    }\n    else {\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x484c;\n    }\n  }\n  else {\n    pcVar13 = *(code **)(puVar12 + 0x17bb0);\n    if (uVar3 != 4) {\nLAB_0001d7e8:\n      sVar9 = (*pcVar13)();\n      return sVar9;\n    }\n    iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4830;\n  }\n  if ((int)ppcVar7 < 0) {\n    iVar6 = (*(int *)(puVar12 + 0x17a58) + 0x4874) - (int)ppcVar7;\n    uStack_67 = 0;\n    puVar10 = &uStack_68;\n    uStack_68 = uVar4;\n  }\n  else {\n    puVar10 = (undefined1 *)plVar5[(int)ppcVar7 * 4];\n    iVar6 = *(int *)(puVar12 + 0x17a58) + 0x4874;\n  }\n  uVar14 = (**(code **)(puVar12 + 0x17c88))(0,iVar2,5);\n  (**(code **)(puVar12 + 0x17c54))(uVar8,0,uVar14,iVar6,puVar10,&_gp);\n  sVar9 = (**(code **)(puVar12 + 0x17bb0))();\n  return sVar9;\n}\n\n" (function_definition "strtol_error xstrtol(char *s,char **ptr,int strtol_base,long *val,char *valid_suffixes)\n\n{\n  int *piVar1;\n  int iVar2;\n  uint uVar3;\n  undefined1 uVar4;\n  long *plVar5;\n  int iVar6;\n  char **ppcVar7;\n  undefined4 uVar8;\n  strtol_error sVar9;\n  undefined1 *puVar10;\n  char *pcVar11;\n  undefined *puVar12;\n  code *pcVar13;\n  undefined4 uVar14;\n  undefined1 uStack_68;\n  undefined1 uStack_67;\n  undefined4 uStack_64;\n  char **ppcStack_5c;\n  char **ppcStack_58;\n  strtol_error sStack_54;\n  long *plStack_50;\n  undefined4 uStack_4c;\n  char *t_ptr;\n  long tmp;\n  uint local_24;\n  \n  local_24 = *(uint *)PTR___stack_chk_guard_000353a0;\n  if (0x24 < (uint)strtol_base) {\n    sVar9 = (*(code *)PTR___assert_fail_000352a0)\n                      (PTR_LAB_00035158 + 0x4494,PTR_LAB_00035158 + 0x4484,0x60,\n                       PTR_LAB_00035158 + 0x4808);\n    return sVar9;\n  }\n  if (ptr == (char **)0x0) {\n    ptr = &t_ptr;\n  }\n  plVar5 = val;\n  piVar1 = (int *)(*(code *)PTR___errno_location_00035310)();\n  *piVar1 = 0;\n  ppcVar7 = ptr;\n  tmp = (*(code *)PTR_strtol_000352ac)(s);\n  uVar4 = (undefined1)strtol_base;\n  pcVar11 = *ptr;\n  if (pcVar11 == s) {\n    sVar9 = LONGINT_INVALID;\n    if (valid_suffixes != (char *)0x0) {\n      ppcVar7 = (char **)(int)*s;\n      if (ppcVar7 == (char **)0x0) {\n        sVar9 = LONGINT_INVALID;\n      }\n      else {\n        iVar2 = (*(code *)PTR_strchr_00035334)(valid_suffixes);\n        if (iVar2 != 0) {\n          tmp = 1;\n          s = (char *)(int)*pcVar11;\n          sVar9 = LONGINT_OK;\n          goto LAB_0001d2fc;\n        }\n        sVar9 = LONGINT_INVALID;\n      }\n    }\n  }\n  else {\n    if (*piVar1 == 0) {\n      sVar9 = LONGINT_OK;\n    }\n    else {\n      if (*piVar1 != 0x22) {\n        sVar9 = LONGINT_INVALID;\n        goto LAB_0001d368;\n      }\n      sVar9 = LONGINT_OVERFLOW;\n    }\n    if (valid_suffixes == (char *)0x0) {\n      *val = tmp;\n    }\n    else {\n      ppcVar7 = (char **)(int)*pcVar11;\n      s = (char *)ppcVar7;\n      if (ppcVar7 == (char **)0x0) {\n        *val = tmp;\n      }\n      else {\nLAB_0001d2fc:\n        ppcVar7 = (char **)s;\n        iVar2 = (*(code *)PTR_strchr_00035334)(valid_suffixes);\n        if (iVar2 == 0) {\n          *val = tmp;\n          sVar9 = sVar9 | LONGINT_INVALID_SUFFIX_CHAR;\n        }\n        else {\n          if (((int)s - 0x45U & 0xff) < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d334 */\n                    /* WARNING: Treating indirect jump as call */\n            sVar9 = (*(code *)(&_gp + *(int *)(PTR_LAB_00035158 +\n                                              ((uint)((int)s - 0x45U) & 0xff) * 4 + 0x4670)))();\n            return sVar9;\n          }\n          ppcVar7 = (char **)0x400;\n          s = (char *)((int)s + -0x42);\n          if (((uint)s & 0xff) < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d438 */\n                    /* WARNING: Treating indirect jump as call */\n            sVar9 = (*(code *)(&_gp + *(int *)(PTR_LAB_00035158 + ((uint)s & 0xff) * 4 + 0x4730)))()\n            ;\n            return sVar9;\n          }\n          *val = tmp;\n          sVar9 = sVar9 | LONGINT_INVALID_SUFFIX_CHAR;\n        }\n      }\n    }\n  }\nLAB_0001d368:\n  if (local_24 == *(uint *)PTR___stack_chk_guard_000353a0) {\n    return sVar9;\n  }\n  uVar14 = 0x1d6fc;\n  uVar3 = local_24;\n  puVar12 = PTR___stack_chk_fail_00035384;\n  (*(code *)PTR___stack_chk_fail_00035384)();\n  uStack_64 = **(undefined4 **)(puVar12 + 0x17ca0);\n  uVar8 = **(undefined4 **)(puVar12 + 0x17ad8);\n  ppcStack_5c = ptr;\n  ppcStack_58 = (char **)s;\n  sStack_54 = sVar9;\n  plStack_50 = val;\n  uStack_4c = uVar14;\n  if (uVar3 < 4) {\n    if (uVar3 < 2) {\n      pcVar13 = *(code **)(puVar12 + 0x17bb0);\n      if (uVar3 != 1) goto LAB_0001d7e8;\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4810;\n    }\n    else {\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x484c;\n    }\n  }\n  else {\n    pcVar13 = *(code **)(puVar12 + 0x17bb0);\n    if (uVar3 != 4) {\nLAB_0001d7e8:\n      sVar9 = (*pcVar13)();\n      return sVar9;\n    }\n    iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4830;\n  }\n  if ((int)ppcVar7 < 0) {\n    iVar6 = (*(int *)(puVar12 + 0x17a58) + 0x4874) - (int)ppcVar7;\n    uStack_67 = 0;\n    puVar10 = &uStack_68;\n    uStack_68 = uVar4;\n  }\n  else {\n    puVar10 = (undefined1 *)plVar5[(int)ppcVar7 * 4];\n    iVar6 = *(int *)(puVar12 + 0x17a58) + 0x4874;\n  }\n  uVar14 = (**(code **)(puVar12 + 0x17c88))(0,iVar2,5);\n  (**(code **)(puVar12 + 0x17c54))(uVar8,0,uVar14,iVar6,puVar10,&_gp);\n  sVar9 = (**(code **)(puVar12 + 0x17bb0))();\n  return sVar9;\n}" type_identifier (function_declarator "xstrtol(char *s,char **ptr,int strtol_base,long *val,char *valid_suffixes)" identifier (parameter_list "(char *s,char **ptr,int strtol_base,long *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 "long *val" (sized_type_specifier "long" long) (pointer_declarator "*val" * identifier)) , (parameter_declaration "char *valid_suffixes" primitive_type (pointer_declarator "*valid_suffixes" * identifier)) ))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  uint uVar3;\n  undefined1 uVar4;\n  long *plVar5;\n  int iVar6;\n  char **ppcVar7;\n  undefined4 uVar8;\n  strtol_error sVar9;\n  undefined1 *puVar10;\n  char *pcVar11;\n  undefined *puVar12;\n  code *pcVar13;\n  undefined4 uVar14;\n  undefined1 uStack_68;\n  undefined1 uStack_67;\n  undefined4 uStack_64;\n  char **ppcStack_5c;\n  char **ppcStack_58;\n  strtol_error sStack_54;\n  long *plStack_50;\n  undefined4 uStack_4c;\n  char *t_ptr;\n  long tmp;\n  uint local_24;\n  \n  local_24 = *(uint *)PTR___stack_chk_guard_000353a0;\n  if (0x24 < (uint)strtol_base) {\n    sVar9 = (*(code *)PTR___assert_fail_000352a0)\n                      (PTR_LAB_00035158 + 0x4494,PTR_LAB_00035158 + 0x4484,0x60,\n                       PTR_LAB_00035158 + 0x4808);\n    return sVar9;\n  }\n  if (ptr == (char **)0x0) {\n    ptr = &t_ptr;\n  }\n  plVar5 = val;\n  piVar1 = (int *)(*(code *)PTR___errno_location_00035310)();\n  *piVar1 = 0;\n  ppcVar7 = ptr;\n  tmp = (*(code *)PTR_strtol_000352ac)(s);\n  uVar4 = (undefined1)strtol_base;\n  pcVar11 = *ptr;\n  if (pcVar11 == s) {\n    sVar9 = LONGINT_INVALID;\n    if (valid_suffixes != (char *)0x0) {\n      ppcVar7 = (char **)(int)*s;\n      if (ppcVar7 == (char **)0x0) {\n        sVar9 = LONGINT_INVALID;\n      }\n      else {\n        iVar2 = (*(code *)PTR_strchr_00035334)(valid_suffixes);\n        if (iVar2 != 0) {\n          tmp = 1;\n          s = (char *)(int)*pcVar11;\n          sVar9 = LONGINT_OK;\n          goto LAB_0001d2fc;\n        }\n        sVar9 = LONGINT_INVALID;\n      }\n    }\n  }\n  else {\n    if (*piVar1 == 0) {\n      sVar9 = LONGINT_OK;\n    }\n    else {\n      if (*piVar1 != 0x22) {\n        sVar9 = LONGINT_INVALID;\n        goto LAB_0001d368;\n      }\n      sVar9 = LONGINT_OVERFLOW;\n    }\n    if (valid_suffixes == (char *)0x0) {\n      *val = tmp;\n    }\n    else {\n      ppcVar7 = (char **)(int)*pcVar11;\n      s = (char *)ppcVar7;\n      if (ppcVar7 == (char **)0x0) {\n        *val = tmp;\n      }\n      else {\nLAB_0001d2fc:\n        ppcVar7 = (char **)s;\n        iVar2 = (*(code *)PTR_strchr_00035334)(valid_suffixes);\n        if (iVar2 == 0) {\n          *val = tmp;\n          sVar9 = sVar9 | LONGINT_INVALID_SUFFIX_CHAR;\n        }\n        else {\n          if (((int)s - 0x45U & 0xff) < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d334 */\n                    /* WARNING: Treating indirect jump as call */\n            sVar9 = (*(code *)(&_gp + *(int *)(PTR_LAB_00035158 +\n                                              ((uint)((int)s - 0x45U) & 0xff) * 4 + 0x4670)))();\n            return sVar9;\n          }\n          ppcVar7 = (char **)0x400;\n          s = (char *)((int)s + -0x42);\n          if (((uint)s & 0xff) < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d438 */\n                    /* WARNING: Treating indirect jump as call */\n            sVar9 = (*(code *)(&_gp + *(int *)(PTR_LAB_00035158 + ((uint)s & 0xff) * 4 + 0x4730)))()\n            ;\n            return sVar9;\n          }\n          *val = tmp;\n          sVar9 = sVar9 | LONGINT_INVALID_SUFFIX_CHAR;\n        }\n      }\n    }\n  }\nLAB_0001d368:\n  if (local_24 == *(uint *)PTR___stack_chk_guard_000353a0) {\n    return sVar9;\n  }\n  uVar14 = 0x1d6fc;\n  uVar3 = local_24;\n  puVar12 = PTR___stack_chk_fail_00035384;\n  (*(code *)PTR___stack_chk_fail_00035384)();\n  uStack_64 = **(undefined4 **)(puVar12 + 0x17ca0);\n  uVar8 = **(undefined4 **)(puVar12 + 0x17ad8);\n  ppcStack_5c = ptr;\n  ppcStack_58 = (char **)s;\n  sStack_54 = sVar9;\n  plStack_50 = val;\n  uStack_4c = uVar14;\n  if (uVar3 < 4) {\n    if (uVar3 < 2) {\n      pcVar13 = *(code **)(puVar12 + 0x17bb0);\n      if (uVar3 != 1) goto LAB_0001d7e8;\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4810;\n    }\n    else {\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x484c;\n    }\n  }\n  else {\n    pcVar13 = *(code **)(puVar12 + 0x17bb0);\n    if (uVar3 != 4) {\nLAB_0001d7e8:\n      sVar9 = (*pcVar13)();\n      return sVar9;\n    }\n    iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4830;\n  }\n  if ((int)ppcVar7 < 0) {\n    iVar6 = (*(int *)(puVar12 + 0x17a58) + 0x4874) - (int)ppcVar7;\n    uStack_67 = 0;\n    puVar10 = &uStack_68;\n    uStack_68 = uVar4;\n  }\n  else {\n    puVar10 = (undefined1 *)plVar5[(int)ppcVar7 * 4];\n    iVar6 = *(int *)(puVar12 + 0x17a58) + 0x4874;\n  }\n  uVar14 = (**(code **)(puVar12 + 0x17c88))(0,iVar2,5);\n  (**(code **)(puVar12 + 0x17c54))(uVar8,0,uVar14,iVar6,puVar10,&_gp);\n  sVar9 = (**(code **)(puVar12 + 0x17bb0))();\n  return sVar9;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "undefined1 uVar4;" type_identifier identifier ;) (declaration "long *plVar5;" (sized_type_specifier "long" long) (pointer_declarator "*plVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "char **ppcVar7;" primitive_type (pointer_declarator "**ppcVar7" * (pointer_declarator "*ppcVar7" * identifier)) ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "strtol_error sVar9;" type_identifier identifier ;) (declaration "undefined1 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "undefined *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "code *pcVar13;" type_identifier (pointer_declarator "*pcVar13" * identifier) ;) (declaration "undefined4 uVar14;" type_identifier identifier ;) (declaration "undefined1 uStack_68;" type_identifier identifier ;) (declaration "undefined1 uStack_67;" type_identifier identifier ;) (declaration "undefined4 uStack_64;" type_identifier identifier ;) (declaration "char **ppcStack_5c;" primitive_type (pointer_declarator "**ppcStack_5c" * (pointer_declarator "*ppcStack_5c" * identifier)) ;) (declaration "char **ppcStack_58;" primitive_type (pointer_declarator "**ppcStack_58" * (pointer_declarator "*ppcStack_58" * identifier)) ;) (declaration "strtol_error sStack_54;" type_identifier identifier ;) (declaration "long *plStack_50;" (sized_type_specifier "long" long) (pointer_declarator "*plStack_50" * identifier) ;) (declaration "undefined4 uStack_4c;" type_identifier identifier ;) (declaration "char *t_ptr;" primitive_type (pointer_declarator "*t_ptr" * identifier) ;) (declaration "long tmp;" (sized_type_specifier "long" long) identifier ;) (declaration "uint local_24;" type_identifier identifier ;) (expression_statement "local_24 = *(uint *)PTR___stack_chk_guard_000353a0;" (assignment_expression "local_24 = *(uint *)PTR___stack_chk_guard_000353a0" identifier = (pointer_expression "*(uint *)PTR___stack_chk_guard_000353a0" * (cast_expression "(uint *)PTR___stack_chk_guard_000353a0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (0x24 < (uint)strtol_base) {\n    sVar9 = (*(code *)PTR___assert_fail_000352a0)\n                      (PTR_LAB_00035158 + 0x4494,PTR_LAB_00035158 + 0x4484,0x60,\n                       PTR_LAB_00035158 + 0x4808);\n    return sVar9;\n  }" if (parenthesized_expression "(0x24 < (uint)strtol_base)" ( (binary_expression "0x24 < (uint)strtol_base" number_literal < (cast_expression "(uint)strtol_base" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (compound_statement "{\n    sVar9 = (*(code *)PTR___assert_fail_000352a0)\n                      (PTR_LAB_00035158 + 0x4494,PTR_LAB_00035158 + 0x4484,0x60,\n                       PTR_LAB_00035158 + 0x4808);\n    return sVar9;\n  }" { (expression_statement "sVar9 = (*(code *)PTR___assert_fail_000352a0)\n                      (PTR_LAB_00035158 + 0x4494,PTR_LAB_00035158 + 0x4484,0x60,\n                       PTR_LAB_00035158 + 0x4808);" (assignment_expression "sVar9 = (*(code *)PTR___assert_fail_000352a0)\n                      (PTR_LAB_00035158 + 0x4494,PTR_LAB_00035158 + 0x4484,0x60,\n                       PTR_LAB_00035158 + 0x4808)" identifier = (call_expression "(*(code *)PTR___assert_fail_000352a0)\n                      (PTR_LAB_00035158 + 0x4494,PTR_LAB_00035158 + 0x4484,0x60,\n                       PTR_LAB_00035158 + 0x4808)" (parenthesized_expression "(*(code *)PTR___assert_fail_000352a0)" ( (pointer_expression "*(code *)PTR___assert_fail_000352a0" * (cast_expression "(code *)PTR___assert_fail_000352a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_00035158 + 0x4494,PTR_LAB_00035158 + 0x4484,0x60,\n                       PTR_LAB_00035158 + 0x4808)" ( (binary_expression "PTR_LAB_00035158 + 0x4494" identifier + number_literal) , (binary_expression "PTR_LAB_00035158 + 0x4484" identifier + number_literal) , number_literal , (binary_expression "PTR_LAB_00035158 + 0x4808" identifier + number_literal) )))) ;) (return_statement "return sVar9;" return identifier ;) })) (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 "plVar5 = val;" (assignment_expression "plVar5 = val" identifier = identifier) ;) (expression_statement "piVar1 = (int *)(*(code *)PTR___errno_location_00035310)();" (assignment_expression "piVar1 = (int *)(*(code *)PTR___errno_location_00035310)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_00035310)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00035310)()" (parenthesized_expression "(*(code *)PTR___errno_location_00035310)" ( (pointer_expression "*(code *)PTR___errno_location_00035310" * (cast_expression "(code *)PTR___errno_location_00035310" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "*piVar1 = 0;" (assignment_expression "*piVar1 = 0" (pointer_expression "*piVar1" * identifier) = number_literal) ;) (expression_statement "ppcVar7 = ptr;" (assignment_expression "ppcVar7 = ptr" identifier = identifier) ;) (expression_statement "tmp = (*(code *)PTR_strtol_000352ac)(s);" (assignment_expression "tmp = (*(code *)PTR_strtol_000352ac)(s)" identifier = (call_expression "(*(code *)PTR_strtol_000352ac)(s)" (parenthesized_expression "(*(code *)PTR_strtol_000352ac)" ( (pointer_expression "*(code *)PTR_strtol_000352ac" * (cast_expression "(code *)PTR_strtol_000352ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(s)" ( identifier )))) ;) (expression_statement "uVar4 = (undefined1)strtol_base;" (assignment_expression "uVar4 = (undefined1)strtol_base" identifier = (cast_expression "(undefined1)strtol_base" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "pcVar11 = *ptr;" (assignment_expression "pcVar11 = *ptr" identifier = (pointer_expression "*ptr" * identifier)) ;) (if_statement "if (pcVar11 == s) {\n    sVar9 = LONGINT_INVALID;\n    if (valid_suffixes != (char *)0x0) {\n      ppcVar7 = (char **)(int)*s;\n      if (ppcVar7 == (char **)0x0) {\n        sVar9 = LONGINT_INVALID;\n      }\n      else {\n        iVar2 = (*(code *)PTR_strchr_00035334)(valid_suffixes);\n        if (iVar2 != 0) {\n          tmp = 1;\n          s = (char *)(int)*pcVar11;\n          sVar9 = LONGINT_OK;\n          goto LAB_0001d2fc;\n        }\n        sVar9 = LONGINT_INVALID;\n      }\n    }\n  }\n  else {\n    if (*piVar1 == 0) {\n      sVar9 = LONGINT_OK;\n    }\n    else {\n      if (*piVar1 != 0x22) {\n        sVar9 = LONGINT_INVALID;\n        goto LAB_0001d368;\n      }\n      sVar9 = LONGINT_OVERFLOW;\n    }\n    if (valid_suffixes == (char *)0x0) {\n      *val = tmp;\n    }\n    else {\n      ppcVar7 = (char **)(int)*pcVar11;\n      s = (char *)ppcVar7;\n      if (ppcVar7 == (char **)0x0) {\n        *val = tmp;\n      }\n      else {\nLAB_0001d2fc:\n        ppcVar7 = (char **)s;\n        iVar2 = (*(code *)PTR_strchr_00035334)(valid_suffixes);\n        if (iVar2 == 0) {\n          *val = tmp;\n          sVar9 = sVar9 | LONGINT_INVALID_SUFFIX_CHAR;\n        }\n        else {\n          if (((int)s - 0x45U & 0xff) < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d334 */\n                    /* WARNING: Treating indirect jump as call */\n            sVar9 = (*(code *)(&_gp + *(int *)(PTR_LAB_00035158 +\n                                              ((uint)((int)s - 0x45U) & 0xff) * 4 + 0x4670)))();\n            return sVar9;\n          }\n          ppcVar7 = (char **)0x400;\n          s = (char *)((int)s + -0x42);\n          if (((uint)s & 0xff) < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d438 */\n                    /* WARNING: Treating indirect jump as call */\n            sVar9 = (*(code *)(&_gp + *(int *)(PTR_LAB_00035158 + ((uint)s & 0xff) * 4 + 0x4730)))()\n            ;\n            return sVar9;\n          }\n          *val = tmp;\n          sVar9 = sVar9 | LONGINT_INVALID_SUFFIX_CHAR;\n        }\n      }\n    }\n  }" if (parenthesized_expression "(pcVar11 == s)" ( (binary_expression "pcVar11 == s" identifier == identifier) )) (compound_statement "{\n    sVar9 = LONGINT_INVALID;\n    if (valid_suffixes != (char *)0x0) {\n      ppcVar7 = (char **)(int)*s;\n      if (ppcVar7 == (char **)0x0) {\n        sVar9 = LONGINT_INVALID;\n      }\n      else {\n        iVar2 = (*(code *)PTR_strchr_00035334)(valid_suffixes);\n        if (iVar2 != 0) {\n          tmp = 1;\n          s = (char *)(int)*pcVar11;\n          sVar9 = LONGINT_OK;\n          goto LAB_0001d2fc;\n        }\n        sVar9 = LONGINT_INVALID;\n      }\n    }\n  }" { (expression_statement "sVar9 = LONGINT_INVALID;" (assignment_expression "sVar9 = LONGINT_INVALID" identifier = identifier) ;) (if_statement "if (valid_suffixes != (char *)0x0) {\n      ppcVar7 = (char **)(int)*s;\n      if (ppcVar7 == (char **)0x0) {\n        sVar9 = LONGINT_INVALID;\n      }\n      else {\n        iVar2 = (*(code *)PTR_strchr_00035334)(valid_suffixes);\n        if (iVar2 != 0) {\n          tmp = 1;\n          s = (char *)(int)*pcVar11;\n          sVar9 = LONGINT_OK;\n          goto LAB_0001d2fc;\n        }\n        sVar9 = LONGINT_INVALID;\n      }\n    }" if (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)) )) (compound_statement "{\n      ppcVar7 = (char **)(int)*s;\n      if (ppcVar7 == (char **)0x0) {\n        sVar9 = LONGINT_INVALID;\n      }\n      else {\n        iVar2 = (*(code *)PTR_strchr_00035334)(valid_suffixes);\n        if (iVar2 != 0) {\n          tmp = 1;\n          s = (char *)(int)*pcVar11;\n          sVar9 = LONGINT_OK;\n          goto LAB_0001d2fc;\n        }\n        sVar9 = LONGINT_INVALID;\n      }\n    }" { (expression_statement "ppcVar7 = (char **)(int)*s;" (assignment_expression "ppcVar7 = (char **)(int)*s" identifier = (cast_expression "(char **)(int)*s" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (cast_expression "(int)*s" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*s" * identifier)))) ;) (if_statement "if (ppcVar7 == (char **)0x0) {\n        sVar9 = LONGINT_INVALID;\n      }\n      else {\n        iVar2 = (*(code *)PTR_strchr_00035334)(valid_suffixes);\n        if (iVar2 != 0) {\n          tmp = 1;\n          s = (char *)(int)*pcVar11;\n          sVar9 = LONGINT_OK;\n          goto LAB_0001d2fc;\n        }\n        sVar9 = LONGINT_INVALID;\n      }" if (parenthesized_expression "(ppcVar7 == (char **)0x0)" ( (binary_expression "ppcVar7 == (char **)0x0" identifier == (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n        sVar9 = LONGINT_INVALID;\n      }" { (expression_statement "sVar9 = LONGINT_INVALID;" (assignment_expression "sVar9 = LONGINT_INVALID" identifier = identifier) ;) }) (else_clause "else {\n        iVar2 = (*(code *)PTR_strchr_00035334)(valid_suffixes);\n        if (iVar2 != 0) {\n          tmp = 1;\n          s = (char *)(int)*pcVar11;\n          sVar9 = LONGINT_OK;\n          goto LAB_0001d2fc;\n        }\n        sVar9 = LONGINT_INVALID;\n      }" else (compound_statement "{\n        iVar2 = (*(code *)PTR_strchr_00035334)(valid_suffixes);\n        if (iVar2 != 0) {\n          tmp = 1;\n          s = (char *)(int)*pcVar11;\n          sVar9 = LONGINT_OK;\n          goto LAB_0001d2fc;\n        }\n        sVar9 = LONGINT_INVALID;\n      }" { (expression_statement "iVar2 = (*(code *)PTR_strchr_00035334)(valid_suffixes);" (assignment_expression "iVar2 = (*(code *)PTR_strchr_00035334)(valid_suffixes)" identifier = (call_expression "(*(code *)PTR_strchr_00035334)(valid_suffixes)" (parenthesized_expression "(*(code *)PTR_strchr_00035334)" ( (pointer_expression "*(code *)PTR_strchr_00035334" * (cast_expression "(code *)PTR_strchr_00035334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(valid_suffixes)" ( identifier )))) ;) (if_statement "if (iVar2 != 0) {\n          tmp = 1;\n          s = (char *)(int)*pcVar11;\n          sVar9 = LONGINT_OK;\n          goto LAB_0001d2fc;\n        }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n          tmp = 1;\n          s = (char *)(int)*pcVar11;\n          sVar9 = LONGINT_OK;\n          goto LAB_0001d2fc;\n        }" { (expression_statement "tmp = 1;" (assignment_expression "tmp = 1" identifier = number_literal) ;) (expression_statement "s = (char *)(int)*pcVar11;" (assignment_expression "s = (char *)(int)*pcVar11" identifier = (cast_expression "(char *)(int)*pcVar11" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)*pcVar11" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pcVar11" * identifier)))) ;) (expression_statement "sVar9 = LONGINT_OK;" (assignment_expression "sVar9 = LONGINT_OK" identifier = identifier) ;) (goto_statement "goto LAB_0001d2fc;" goto statement_identifier ;) })) (expression_statement "sVar9 = LONGINT_INVALID;" (assignment_expression "sVar9 = LONGINT_INVALID" identifier = identifier) ;) }))) })) }) (else_clause "else {\n    if (*piVar1 == 0) {\n      sVar9 = LONGINT_OK;\n    }\n    else {\n      if (*piVar1 != 0x22) {\n        sVar9 = LONGINT_INVALID;\n        goto LAB_0001d368;\n      }\n      sVar9 = LONGINT_OVERFLOW;\n    }\n    if (valid_suffixes == (char *)0x0) {\n      *val = tmp;\n    }\n    else {\n      ppcVar7 = (char **)(int)*pcVar11;\n      s = (char *)ppcVar7;\n      if (ppcVar7 == (char **)0x0) {\n        *val = tmp;\n      }\n      else {\nLAB_0001d2fc:\n        ppcVar7 = (char **)s;\n        iVar2 = (*(code *)PTR_strchr_00035334)(valid_suffixes);\n        if (iVar2 == 0) {\n          *val = tmp;\n          sVar9 = sVar9 | LONGINT_INVALID_SUFFIX_CHAR;\n        }\n        else {\n          if (((int)s - 0x45U & 0xff) < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d334 */\n                    /* WARNING: Treating indirect jump as call */\n            sVar9 = (*(code *)(&_gp + *(int *)(PTR_LAB_00035158 +\n                                              ((uint)((int)s - 0x45U) & 0xff) * 4 + 0x4670)))();\n            return sVar9;\n          }\n          ppcVar7 = (char **)0x400;\n          s = (char *)((int)s + -0x42);\n          if (((uint)s & 0xff) < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d438 */\n                    /* WARNING: Treating indirect jump as call */\n            sVar9 = (*(code *)(&_gp + *(int *)(PTR_LAB_00035158 + ((uint)s & 0xff) * 4 + 0x4730)))()\n            ;\n            return sVar9;\n          }\n          *val = tmp;\n          sVar9 = sVar9 | LONGINT_INVALID_SUFFIX_CHAR;\n        }\n      }\n    }\n  }" else (compound_statement "{\n    if (*piVar1 == 0) {\n      sVar9 = LONGINT_OK;\n    }\n    else {\n      if (*piVar1 != 0x22) {\n        sVar9 = LONGINT_INVALID;\n        goto LAB_0001d368;\n      }\n      sVar9 = LONGINT_OVERFLOW;\n    }\n    if (valid_suffixes == (char *)0x0) {\n      *val = tmp;\n    }\n    else {\n      ppcVar7 = (char **)(int)*pcVar11;\n      s = (char *)ppcVar7;\n      if (ppcVar7 == (char **)0x0) {\n        *val = tmp;\n      }\n      else {\nLAB_0001d2fc:\n        ppcVar7 = (char **)s;\n        iVar2 = (*(code *)PTR_strchr_00035334)(valid_suffixes);\n        if (iVar2 == 0) {\n          *val = tmp;\n          sVar9 = sVar9 | LONGINT_INVALID_SUFFIX_CHAR;\n        }\n        else {\n          if (((int)s - 0x45U & 0xff) < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d334 */\n                    /* WARNING: Treating indirect jump as call */\n            sVar9 = (*(code *)(&_gp + *(int *)(PTR_LAB_00035158 +\n                                              ((uint)((int)s - 0x45U) & 0xff) * 4 + 0x4670)))();\n            return sVar9;\n          }\n          ppcVar7 = (char **)0x400;\n          s = (char *)((int)s + -0x42);\n          if (((uint)s & 0xff) < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d438 */\n                    /* WARNING: Treating indirect jump as call */\n            sVar9 = (*(code *)(&_gp + *(int *)(PTR_LAB_00035158 + ((uint)s & 0xff) * 4 + 0x4730)))()\n            ;\n            return sVar9;\n          }\n          *val = tmp;\n          sVar9 = sVar9 | LONGINT_INVALID_SUFFIX_CHAR;\n        }\n      }\n    }\n  }" { (if_statement "if (*piVar1 == 0) {\n      sVar9 = LONGINT_OK;\n    }\n    else {\n      if (*piVar1 != 0x22) {\n        sVar9 = LONGINT_INVALID;\n        goto LAB_0001d368;\n      }\n      sVar9 = LONGINT_OVERFLOW;\n    }" if (parenthesized_expression "(*piVar1 == 0)" ( (binary_expression "*piVar1 == 0" (pointer_expression "*piVar1" * identifier) == number_literal) )) (compound_statement "{\n      sVar9 = LONGINT_OK;\n    }" { (expression_statement "sVar9 = LONGINT_OK;" (assignment_expression "sVar9 = LONGINT_OK" identifier = identifier) ;) }) (else_clause "else {\n      if (*piVar1 != 0x22) {\n        sVar9 = LONGINT_INVALID;\n        goto LAB_0001d368;\n      }\n      sVar9 = LONGINT_OVERFLOW;\n    }" else (compound_statement "{\n      if (*piVar1 != 0x22) {\n        sVar9 = LONGINT_INVALID;\n        goto LAB_0001d368;\n      }\n      sVar9 = LONGINT_OVERFLOW;\n    }" { (if_statement "if (*piVar1 != 0x22) {\n        sVar9 = LONGINT_INVALID;\n        goto LAB_0001d368;\n      }" if (parenthesized_expression "(*piVar1 != 0x22)" ( (binary_expression "*piVar1 != 0x22" (pointer_expression "*piVar1" * identifier) != number_literal) )) (compound_statement "{\n        sVar9 = LONGINT_INVALID;\n        goto LAB_0001d368;\n      }" { (expression_statement "sVar9 = LONGINT_INVALID;" (assignment_expression "sVar9 = LONGINT_INVALID" identifier = identifier) ;) (goto_statement "goto LAB_0001d368;" goto statement_identifier ;) })) (expression_statement "sVar9 = LONGINT_OVERFLOW;" (assignment_expression "sVar9 = LONGINT_OVERFLOW" identifier = identifier) ;) }))) (if_statement "if (valid_suffixes == (char *)0x0) {\n      *val = tmp;\n    }\n    else {\n      ppcVar7 = (char **)(int)*pcVar11;\n      s = (char *)ppcVar7;\n      if (ppcVar7 == (char **)0x0) {\n        *val = tmp;\n      }\n      else {\nLAB_0001d2fc:\n        ppcVar7 = (char **)s;\n        iVar2 = (*(code *)PTR_strchr_00035334)(valid_suffixes);\n        if (iVar2 == 0) {\n          *val = tmp;\n          sVar9 = sVar9 | LONGINT_INVALID_SUFFIX_CHAR;\n        }\n        else {\n          if (((int)s - 0x45U & 0xff) < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d334 */\n                    /* WARNING: Treating indirect jump as call */\n            sVar9 = (*(code *)(&_gp + *(int *)(PTR_LAB_00035158 +\n                                              ((uint)((int)s - 0x45U) & 0xff) * 4 + 0x4670)))();\n            return sVar9;\n          }\n          ppcVar7 = (char **)0x400;\n          s = (char *)((int)s + -0x42);\n          if (((uint)s & 0xff) < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d438 */\n                    /* WARNING: Treating indirect jump as call */\n            sVar9 = (*(code *)(&_gp + *(int *)(PTR_LAB_00035158 + ((uint)s & 0xff) * 4 + 0x4730)))()\n            ;\n            return sVar9;\n          }\n          *val = tmp;\n          sVar9 = sVar9 | LONGINT_INVALID_SUFFIX_CHAR;\n        }\n      }\n    }" if (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)) )) (compound_statement "{\n      *val = tmp;\n    }" { (expression_statement "*val = tmp;" (assignment_expression "*val = tmp" (pointer_expression "*val" * identifier) = identifier) ;) }) (else_clause "else {\n      ppcVar7 = (char **)(int)*pcVar11;\n      s = (char *)ppcVar7;\n      if (ppcVar7 == (char **)0x0) {\n        *val = tmp;\n      }\n      else {\nLAB_0001d2fc:\n        ppcVar7 = (char **)s;\n        iVar2 = (*(code *)PTR_strchr_00035334)(valid_suffixes);\n        if (iVar2 == 0) {\n          *val = tmp;\n          sVar9 = sVar9 | LONGINT_INVALID_SUFFIX_CHAR;\n        }\n        else {\n          if (((int)s - 0x45U & 0xff) < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d334 */\n                    /* WARNING: Treating indirect jump as call */\n            sVar9 = (*(code *)(&_gp + *(int *)(PTR_LAB_00035158 +\n                                              ((uint)((int)s - 0x45U) & 0xff) * 4 + 0x4670)))();\n            return sVar9;\n          }\n          ppcVar7 = (char **)0x400;\n          s = (char *)((int)s + -0x42);\n          if (((uint)s & 0xff) < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d438 */\n                    /* WARNING: Treating indirect jump as call */\n            sVar9 = (*(code *)(&_gp + *(int *)(PTR_LAB_00035158 + ((uint)s & 0xff) * 4 + 0x4730)))()\n            ;\n            return sVar9;\n          }\n          *val = tmp;\n          sVar9 = sVar9 | LONGINT_INVALID_SUFFIX_CHAR;\n        }\n      }\n    }" else (compound_statement "{\n      ppcVar7 = (char **)(int)*pcVar11;\n      s = (char *)ppcVar7;\n      if (ppcVar7 == (char **)0x0) {\n        *val = tmp;\n      }\n      else {\nLAB_0001d2fc:\n        ppcVar7 = (char **)s;\n        iVar2 = (*(code *)PTR_strchr_00035334)(valid_suffixes);\n        if (iVar2 == 0) {\n          *val = tmp;\n          sVar9 = sVar9 | LONGINT_INVALID_SUFFIX_CHAR;\n        }\n        else {\n          if (((int)s - 0x45U & 0xff) < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d334 */\n                    /* WARNING: Treating indirect jump as call */\n            sVar9 = (*(code *)(&_gp + *(int *)(PTR_LAB_00035158 +\n                                              ((uint)((int)s - 0x45U) & 0xff) * 4 + 0x4670)))();\n            return sVar9;\n          }\n          ppcVar7 = (char **)0x400;\n          s = (char *)((int)s + -0x42);\n          if (((uint)s & 0xff) < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d438 */\n                    /* WARNING: Treating indirect jump as call */\n            sVar9 = (*(code *)(&_gp + *(int *)(PTR_LAB_00035158 + ((uint)s & 0xff) * 4 + 0x4730)))()\n            ;\n            return sVar9;\n          }\n          *val = tmp;\n          sVar9 = sVar9 | LONGINT_INVALID_SUFFIX_CHAR;\n        }\n      }\n    }" { (expression_statement "ppcVar7 = (char **)(int)*pcVar11;" (assignment_expression "ppcVar7 = (char **)(int)*pcVar11" identifier = (cast_expression "(char **)(int)*pcVar11" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (cast_expression "(int)*pcVar11" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pcVar11" * identifier)))) ;) (expression_statement "s = (char *)ppcVar7;" (assignment_expression "s = (char *)ppcVar7" identifier = (cast_expression "(char *)ppcVar7" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (ppcVar7 == (char **)0x0) {\n        *val = tmp;\n      }\n      else {\nLAB_0001d2fc:\n        ppcVar7 = (char **)s;\n        iVar2 = (*(code *)PTR_strchr_00035334)(valid_suffixes);\n        if (iVar2 == 0) {\n          *val = tmp;\n          sVar9 = sVar9 | LONGINT_INVALID_SUFFIX_CHAR;\n        }\n        else {\n          if (((int)s - 0x45U & 0xff) < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d334 */\n                    /* WARNING: Treating indirect jump as call */\n            sVar9 = (*(code *)(&_gp + *(int *)(PTR_LAB_00035158 +\n                                              ((uint)((int)s - 0x45U) & 0xff) * 4 + 0x4670)))();\n            return sVar9;\n          }\n          ppcVar7 = (char **)0x400;\n          s = (char *)((int)s + -0x42);\n          if (((uint)s & 0xff) < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d438 */\n                    /* WARNING: Treating indirect jump as call */\n            sVar9 = (*(code *)(&_gp + *(int *)(PTR_LAB_00035158 + ((uint)s & 0xff) * 4 + 0x4730)))()\n            ;\n            return sVar9;\n          }\n          *val = tmp;\n          sVar9 = sVar9 | LONGINT_INVALID_SUFFIX_CHAR;\n        }\n      }" if (parenthesized_expression "(ppcVar7 == (char **)0x0)" ( (binary_expression "ppcVar7 == (char **)0x0" identifier == (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n        *val = tmp;\n      }" { (expression_statement "*val = tmp;" (assignment_expression "*val = tmp" (pointer_expression "*val" * identifier) = identifier) ;) }) (else_clause "else {\nLAB_0001d2fc:\n        ppcVar7 = (char **)s;\n        iVar2 = (*(code *)PTR_strchr_00035334)(valid_suffixes);\n        if (iVar2 == 0) {\n          *val = tmp;\n          sVar9 = sVar9 | LONGINT_INVALID_SUFFIX_CHAR;\n        }\n        else {\n          if (((int)s - 0x45U & 0xff) < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d334 */\n                    /* WARNING: Treating indirect jump as call */\n            sVar9 = (*(code *)(&_gp + *(int *)(PTR_LAB_00035158 +\n                                              ((uint)((int)s - 0x45U) & 0xff) * 4 + 0x4670)))();\n            return sVar9;\n          }\n          ppcVar7 = (char **)0x400;\n          s = (char *)((int)s + -0x42);\n          if (((uint)s & 0xff) < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d438 */\n                    /* WARNING: Treating indirect jump as call */\n            sVar9 = (*(code *)(&_gp + *(int *)(PTR_LAB_00035158 + ((uint)s & 0xff) * 4 + 0x4730)))()\n            ;\n            return sVar9;\n          }\n          *val = tmp;\n          sVar9 = sVar9 | LONGINT_INVALID_SUFFIX_CHAR;\n        }\n      }" else (compound_statement "{\nLAB_0001d2fc:\n        ppcVar7 = (char **)s;\n        iVar2 = (*(code *)PTR_strchr_00035334)(valid_suffixes);\n        if (iVar2 == 0) {\n          *val = tmp;\n          sVar9 = sVar9 | LONGINT_INVALID_SUFFIX_CHAR;\n        }\n        else {\n          if (((int)s - 0x45U & 0xff) < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d334 */\n                    /* WARNING: Treating indirect jump as call */\n            sVar9 = (*(code *)(&_gp + *(int *)(PTR_LAB_00035158 +\n                                              ((uint)((int)s - 0x45U) & 0xff) * 4 + 0x4670)))();\n            return sVar9;\n          }\n          ppcVar7 = (char **)0x400;\n          s = (char *)((int)s + -0x42);\n          if (((uint)s & 0xff) < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d438 */\n                    /* WARNING: Treating indirect jump as call */\n            sVar9 = (*(code *)(&_gp + *(int *)(PTR_LAB_00035158 + ((uint)s & 0xff) * 4 + 0x4730)))()\n            ;\n            return sVar9;\n          }\n          *val = tmp;\n          sVar9 = sVar9 | LONGINT_INVALID_SUFFIX_CHAR;\n        }\n      }" { (labeled_statement "LAB_0001d2fc:\n        ppcVar7 = (char **)s;" statement_identifier : (expression_statement "ppcVar7 = (char **)s;" (assignment_expression "ppcVar7 = (char **)s" identifier = (cast_expression "(char **)s" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;)) (expression_statement "iVar2 = (*(code *)PTR_strchr_00035334)(valid_suffixes);" (assignment_expression "iVar2 = (*(code *)PTR_strchr_00035334)(valid_suffixes)" identifier = (call_expression "(*(code *)PTR_strchr_00035334)(valid_suffixes)" (parenthesized_expression "(*(code *)PTR_strchr_00035334)" ( (pointer_expression "*(code *)PTR_strchr_00035334" * (cast_expression "(code *)PTR_strchr_00035334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(valid_suffixes)" ( identifier )))) ;) (if_statement "if (iVar2 == 0) {\n          *val = tmp;\n          sVar9 = sVar9 | LONGINT_INVALID_SUFFIX_CHAR;\n        }\n        else {\n          if (((int)s - 0x45U & 0xff) < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d334 */\n                    /* WARNING: Treating indirect jump as call */\n            sVar9 = (*(code *)(&_gp + *(int *)(PTR_LAB_00035158 +\n                                              ((uint)((int)s - 0x45U) & 0xff) * 4 + 0x4670)))();\n            return sVar9;\n          }\n          ppcVar7 = (char **)0x400;\n          s = (char *)((int)s + -0x42);\n          if (((uint)s & 0xff) < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d438 */\n                    /* WARNING: Treating indirect jump as call */\n            sVar9 = (*(code *)(&_gp + *(int *)(PTR_LAB_00035158 + ((uint)s & 0xff) * 4 + 0x4730)))()\n            ;\n            return sVar9;\n          }\n          *val = tmp;\n          sVar9 = sVar9 | LONGINT_INVALID_SUFFIX_CHAR;\n        }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n          *val = tmp;\n          sVar9 = sVar9 | LONGINT_INVALID_SUFFIX_CHAR;\n        }" { (expression_statement "*val = tmp;" (assignment_expression "*val = tmp" (pointer_expression "*val" * identifier) = identifier) ;) (expression_statement "sVar9 = sVar9 | LONGINT_INVALID_SUFFIX_CHAR;" (assignment_expression "sVar9 = sVar9 | LONGINT_INVALID_SUFFIX_CHAR" identifier = (binary_expression "sVar9 | LONGINT_INVALID_SUFFIX_CHAR" identifier | identifier)) ;) }) (else_clause "else {\n          if (((int)s - 0x45U & 0xff) < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d334 */\n                    /* WARNING: Treating indirect jump as call */\n            sVar9 = (*(code *)(&_gp + *(int *)(PTR_LAB_00035158 +\n                                              ((uint)((int)s - 0x45U) & 0xff) * 4 + 0x4670)))();\n            return sVar9;\n          }\n          ppcVar7 = (char **)0x400;\n          s = (char *)((int)s + -0x42);\n          if (((uint)s & 0xff) < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d438 */\n                    /* WARNING: Treating indirect jump as call */\n            sVar9 = (*(code *)(&_gp + *(int *)(PTR_LAB_00035158 + ((uint)s & 0xff) * 4 + 0x4730)))()\n            ;\n            return sVar9;\n          }\n          *val = tmp;\n          sVar9 = sVar9 | LONGINT_INVALID_SUFFIX_CHAR;\n        }" else (compound_statement "{\n          if (((int)s - 0x45U & 0xff) < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d334 */\n                    /* WARNING: Treating indirect jump as call */\n            sVar9 = (*(code *)(&_gp + *(int *)(PTR_LAB_00035158 +\n                                              ((uint)((int)s - 0x45U) & 0xff) * 4 + 0x4670)))();\n            return sVar9;\n          }\n          ppcVar7 = (char **)0x400;\n          s = (char *)((int)s + -0x42);\n          if (((uint)s & 0xff) < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d438 */\n                    /* WARNING: Treating indirect jump as call */\n            sVar9 = (*(code *)(&_gp + *(int *)(PTR_LAB_00035158 + ((uint)s & 0xff) * 4 + 0x4730)))()\n            ;\n            return sVar9;\n          }\n          *val = tmp;\n          sVar9 = sVar9 | LONGINT_INVALID_SUFFIX_CHAR;\n        }" { (if_statement "if (((int)s - 0x45U & 0xff) < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d334 */\n                    /* WARNING: Treating indirect jump as call */\n            sVar9 = (*(code *)(&_gp + *(int *)(PTR_LAB_00035158 +\n                                              ((uint)((int)s - 0x45U) & 0xff) * 4 + 0x4670)))();\n            return sVar9;\n          }" if (parenthesized_expression "(((int)s - 0x45U & 0xff) < 0x30)" ( (binary_expression "((int)s - 0x45U & 0xff) < 0x30" (parenthesized_expression "((int)s - 0x45U & 0xff)" ( (binary_expression "(int)s - 0x45U & 0xff" (binary_expression "(int)s - 0x45U" (cast_expression "(int)s" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal) & number_literal) )) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not emulate address calculation at 0x0001d334 */\n                    /* WARNING: Treating indirect jump as call */\n            sVar9 = (*(code *)(&_gp + *(int *)(PTR_LAB_00035158 +\n                                              ((uint)((int)s - 0x45U) & 0xff) * 4 + 0x4670)))();\n            return sVar9;\n          }" { comment comment (expression_statement "sVar9 = (*(code *)(&_gp + *(int *)(PTR_LAB_00035158 +\n                                              ((uint)((int)s - 0x45U) & 0xff) * 4 + 0x4670)))();" (assignment_expression "sVar9 = (*(code *)(&_gp + *(int *)(PTR_LAB_00035158 +\n                                              ((uint)((int)s - 0x45U) & 0xff) * 4 + 0x4670)))()" identifier = (call_expression "(*(code *)(&_gp + *(int *)(PTR_LAB_00035158 +\n                                              ((uint)((int)s - 0x45U) & 0xff) * 4 + 0x4670)))()" (parenthesized_expression "(*(code *)(&_gp + *(int *)(PTR_LAB_00035158 +\n                                              ((uint)((int)s - 0x45U) & 0xff) * 4 + 0x4670)))" ( (pointer_expression "*(code *)(&_gp + *(int *)(PTR_LAB_00035158 +\n                                              ((uint)((int)s - 0x45U) & 0xff) * 4 + 0x4670))" * (cast_expression "(code *)(&_gp + *(int *)(PTR_LAB_00035158 +\n                                              ((uint)((int)s - 0x45U) & 0xff) * 4 + 0x4670))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp + *(int *)(PTR_LAB_00035158 +\n                                              ((uint)((int)s - 0x45U) & 0xff) * 4 + 0x4670))" ( (binary_expression "&_gp + *(int *)(PTR_LAB_00035158 +\n                                              ((uint)((int)s - 0x45U) & 0xff) * 4 + 0x4670)" (pointer_expression "&_gp" & identifier) + (pointer_expression "*(int *)(PTR_LAB_00035158 +\n                                              ((uint)((int)s - 0x45U) & 0xff) * 4 + 0x4670)" * (cast_expression "(int *)(PTR_LAB_00035158 +\n                                              ((uint)((int)s - 0x45U) & 0xff) * 4 + 0x4670)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00035158 +\n                                              ((uint)((int)s - 0x45U) & 0xff) * 4 + 0x4670)" ( (binary_expression "PTR_LAB_00035158 +\n                                              ((uint)((int)s - 0x45U) & 0xff) * 4 + 0x4670" (binary_expression "PTR_LAB_00035158 +\n                                              ((uint)((int)s - 0x45U) & 0xff) * 4" identifier + (binary_expression "((uint)((int)s - 0x45U) & 0xff) * 4" (parenthesized_expression "((uint)((int)s - 0x45U) & 0xff)" ( (binary_expression "(uint)((int)s - 0x45U) & 0xff" (call_expression "(uint)((int)s - 0x45U)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)s - 0x45U)" ( (binary_expression "(int)s - 0x45U" (cast_expression "(int)s" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal) ))) & number_literal) )) * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return sVar9;" return identifier ;) })) (expression_statement "ppcVar7 = (char **)0x400;" (assignment_expression "ppcVar7 = (char **)0x400" identifier = (cast_expression "(char **)0x400" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "s = (char *)((int)s + -0x42);" (assignment_expression "s = (char *)((int)s + -0x42)" identifier = (cast_expression "(char *)((int)s + -0x42)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)s + -0x42)" ( (binary_expression "(int)s + -0x42" (cast_expression "(int)s" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (((uint)s & 0xff) < 0x36) {\n                    /* WARNING: Could not emulate address calculation at 0x0001d438 */\n                    /* WARNING: Treating indirect jump as call */\n            sVar9 = (*(code *)(&_gp + *(int *)(PTR_LAB_00035158 + ((uint)s & 0xff) * 4 + 0x4730)))()\n            ;\n            return sVar9;\n          }" if (parenthesized_expression "(((uint)s & 0xff) < 0x36)" ( (binary_expression "((uint)s & 0xff) < 0x36" (parenthesized_expression "((uint)s & 0xff)" ( (binary_expression "(uint)s & 0xff" (cast_expression "(uint)s" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not emulate address calculation at 0x0001d438 */\n                    /* WARNING: Treating indirect jump as call */\n            sVar9 = (*(code *)(&_gp + *(int *)(PTR_LAB_00035158 + ((uint)s & 0xff) * 4 + 0x4730)))()\n            ;\n            return sVar9;\n          }" { comment comment (expression_statement "sVar9 = (*(code *)(&_gp + *(int *)(PTR_LAB_00035158 + ((uint)s & 0xff) * 4 + 0x4730)))()\n            ;" (assignment_expression "sVar9 = (*(code *)(&_gp + *(int *)(PTR_LAB_00035158 + ((uint)s & 0xff) * 4 + 0x4730)))()" identifier = (call_expression "(*(code *)(&_gp + *(int *)(PTR_LAB_00035158 + ((uint)s & 0xff) * 4 + 0x4730)))()" (parenthesized_expression "(*(code *)(&_gp + *(int *)(PTR_LAB_00035158 + ((uint)s & 0xff) * 4 + 0x4730)))" ( (pointer_expression "*(code *)(&_gp + *(int *)(PTR_LAB_00035158 + ((uint)s & 0xff) * 4 + 0x4730))" * (cast_expression "(code *)(&_gp + *(int *)(PTR_LAB_00035158 + ((uint)s & 0xff) * 4 + 0x4730))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp + *(int *)(PTR_LAB_00035158 + ((uint)s & 0xff) * 4 + 0x4730))" ( (binary_expression "&_gp + *(int *)(PTR_LAB_00035158 + ((uint)s & 0xff) * 4 + 0x4730)" (pointer_expression "&_gp" & identifier) + (pointer_expression "*(int *)(PTR_LAB_00035158 + ((uint)s & 0xff) * 4 + 0x4730)" * (cast_expression "(int *)(PTR_LAB_00035158 + ((uint)s & 0xff) * 4 + 0x4730)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00035158 + ((uint)s & 0xff) * 4 + 0x4730)" ( (binary_expression "PTR_LAB_00035158 + ((uint)s & 0xff) * 4 + 0x4730" (binary_expression "PTR_LAB_00035158 + ((uint)s & 0xff) * 4" identifier + (binary_expression "((uint)s & 0xff) * 4" (parenthesized_expression "((uint)s & 0xff)" ( (binary_expression "(uint)s & 0xff" (cast_expression "(uint)s" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return sVar9;" return identifier ;) })) (expression_statement "*val = tmp;" (assignment_expression "*val = tmp" (pointer_expression "*val" * identifier) = identifier) ;) (expression_statement "sVar9 = sVar9 | LONGINT_INVALID_SUFFIX_CHAR;" (assignment_expression "sVar9 = sVar9 | LONGINT_INVALID_SUFFIX_CHAR" identifier = (binary_expression "sVar9 | LONGINT_INVALID_SUFFIX_CHAR" identifier | identifier)) ;) }))) }))) }))) }))) (labeled_statement "LAB_0001d368:\n  if (local_24 == *(uint *)PTR___stack_chk_guard_000353a0) {\n    return sVar9;\n  }" statement_identifier : (if_statement "if (local_24 == *(uint *)PTR___stack_chk_guard_000353a0) {\n    return sVar9;\n  }" if (parenthesized_expression "(local_24 == *(uint *)PTR___stack_chk_guard_000353a0)" ( (binary_expression "local_24 == *(uint *)PTR___stack_chk_guard_000353a0" identifier == (pointer_expression "*(uint *)PTR___stack_chk_guard_000353a0" * (cast_expression "(uint *)PTR___stack_chk_guard_000353a0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return sVar9;\n  }" { (return_statement "return sVar9;" return identifier ;) }))) (expression_statement "uVar14 = 0x1d6fc;" (assignment_expression "uVar14 = 0x1d6fc" identifier = number_literal) ;) (expression_statement "uVar3 = local_24;" (assignment_expression "uVar3 = local_24" identifier = identifier) ;) (expression_statement "puVar12 = PTR___stack_chk_fail_00035384;" (assignment_expression "puVar12 = PTR___stack_chk_fail_00035384" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00035384)();" (call_expression "(*(code *)PTR___stack_chk_fail_00035384)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00035384)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00035384" * (cast_expression "(code *)PTR___stack_chk_fail_00035384" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uStack_64 = **(undefined4 **)(puVar12 + 0x17ca0);" (assignment_expression "uStack_64 = **(undefined4 **)(puVar12 + 0x17ca0)" identifier = (pointer_expression "**(undefined4 **)(puVar12 + 0x17ca0)" * (pointer_expression "*(undefined4 **)(puVar12 + 0x17ca0)" * (cast_expression "(undefined4 **)(puVar12 + 0x17ca0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x17ca0)" ( (binary_expression "puVar12 + 0x17ca0" identifier + number_literal) )))))) ;) (expression_statement "uVar8 = **(undefined4 **)(puVar12 + 0x17ad8);" (assignment_expression "uVar8 = **(undefined4 **)(puVar12 + 0x17ad8)" identifier = (pointer_expression "**(undefined4 **)(puVar12 + 0x17ad8)" * (pointer_expression "*(undefined4 **)(puVar12 + 0x17ad8)" * (cast_expression "(undefined4 **)(puVar12 + 0x17ad8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x17ad8)" ( (binary_expression "puVar12 + 0x17ad8" identifier + number_literal) )))))) ;) (expression_statement "ppcStack_5c = ptr;" (assignment_expression "ppcStack_5c = ptr" identifier = identifier) ;) (expression_statement "ppcStack_58 = (char **)s;" (assignment_expression "ppcStack_58 = (char **)s" identifier = (cast_expression "(char **)s" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "sStack_54 = sVar9;" (assignment_expression "sStack_54 = sVar9" identifier = identifier) ;) (expression_statement "plStack_50 = val;" (assignment_expression "plStack_50 = val" identifier = identifier) ;) (expression_statement "uStack_4c = uVar14;" (assignment_expression "uStack_4c = uVar14" identifier = identifier) ;) (if_statement "if (uVar3 < 4) {\n    if (uVar3 < 2) {\n      pcVar13 = *(code **)(puVar12 + 0x17bb0);\n      if (uVar3 != 1) goto LAB_0001d7e8;\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4810;\n    }\n    else {\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x484c;\n    }\n  }\n  else {\n    pcVar13 = *(code **)(puVar12 + 0x17bb0);\n    if (uVar3 != 4) {\nLAB_0001d7e8:\n      sVar9 = (*pcVar13)();\n      return sVar9;\n    }\n    iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4830;\n  }" if (parenthesized_expression "(uVar3 < 4)" ( (binary_expression "uVar3 < 4" identifier < number_literal) )) (compound_statement "{\n    if (uVar3 < 2) {\n      pcVar13 = *(code **)(puVar12 + 0x17bb0);\n      if (uVar3 != 1) goto LAB_0001d7e8;\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4810;\n    }\n    else {\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x484c;\n    }\n  }" { (if_statement "if (uVar3 < 2) {\n      pcVar13 = *(code **)(puVar12 + 0x17bb0);\n      if (uVar3 != 1) goto LAB_0001d7e8;\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4810;\n    }\n    else {\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x484c;\n    }" if (parenthesized_expression "(uVar3 < 2)" ( (binary_expression "uVar3 < 2" identifier < number_literal) )) (compound_statement "{\n      pcVar13 = *(code **)(puVar12 + 0x17bb0);\n      if (uVar3 != 1) goto LAB_0001d7e8;\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4810;\n    }" { (expression_statement "pcVar13 = *(code **)(puVar12 + 0x17bb0);" (assignment_expression "pcVar13 = *(code **)(puVar12 + 0x17bb0)" identifier = (pointer_expression "*(code **)(puVar12 + 0x17bb0)" * (cast_expression "(code **)(puVar12 + 0x17bb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x17bb0)" ( (binary_expression "puVar12 + 0x17bb0" identifier + number_literal) ))))) ;) (if_statement "if (uVar3 != 1) goto LAB_0001d7e8;" if (parenthesized_expression "(uVar3 != 1)" ( (binary_expression "uVar3 != 1" identifier != number_literal) )) (goto_statement "goto LAB_0001d7e8;" goto statement_identifier ;)) (expression_statement "iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4810;" (assignment_expression "iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4810" identifier = (binary_expression "*(int *)(puVar12 + 0x17a58) + 0x4810" (pointer_expression "*(int *)(puVar12 + 0x17a58)" * (cast_expression "(int *)(puVar12 + 0x17a58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x17a58)" ( (binary_expression "puVar12 + 0x17a58" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x484c;\n    }" else (compound_statement "{\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x484c;\n    }" { (expression_statement "iVar2 = *(int *)(puVar12 + 0x17a58) + 0x484c;" (assignment_expression "iVar2 = *(int *)(puVar12 + 0x17a58) + 0x484c" identifier = (binary_expression "*(int *)(puVar12 + 0x17a58) + 0x484c" (pointer_expression "*(int *)(puVar12 + 0x17a58)" * (cast_expression "(int *)(puVar12 + 0x17a58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x17a58)" ( (binary_expression "puVar12 + 0x17a58" identifier + number_literal) )))) + number_literal)) ;) }))) }) (else_clause "else {\n    pcVar13 = *(code **)(puVar12 + 0x17bb0);\n    if (uVar3 != 4) {\nLAB_0001d7e8:\n      sVar9 = (*pcVar13)();\n      return sVar9;\n    }\n    iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4830;\n  }" else (compound_statement "{\n    pcVar13 = *(code **)(puVar12 + 0x17bb0);\n    if (uVar3 != 4) {\nLAB_0001d7e8:\n      sVar9 = (*pcVar13)();\n      return sVar9;\n    }\n    iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4830;\n  }" { (expression_statement "pcVar13 = *(code **)(puVar12 + 0x17bb0);" (assignment_expression "pcVar13 = *(code **)(puVar12 + 0x17bb0)" identifier = (pointer_expression "*(code **)(puVar12 + 0x17bb0)" * (cast_expression "(code **)(puVar12 + 0x17bb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x17bb0)" ( (binary_expression "puVar12 + 0x17bb0" identifier + number_literal) ))))) ;) (if_statement "if (uVar3 != 4) {\nLAB_0001d7e8:\n      sVar9 = (*pcVar13)();\n      return sVar9;\n    }" if (parenthesized_expression "(uVar3 != 4)" ( (binary_expression "uVar3 != 4" identifier != number_literal) )) (compound_statement "{\nLAB_0001d7e8:\n      sVar9 = (*pcVar13)();\n      return sVar9;\n    }" { (labeled_statement "LAB_0001d7e8:\n      sVar9 = (*pcVar13)();" statement_identifier : (expression_statement "sVar9 = (*pcVar13)();" (assignment_expression "sVar9 = (*pcVar13)()" identifier = (call_expression "(*pcVar13)()" (parenthesized_expression "(*pcVar13)" ( (pointer_expression "*pcVar13" * identifier) )) (argument_list "()" ( )))) ;)) (return_statement "return sVar9;" return identifier ;) })) (expression_statement "iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4830;" (assignment_expression "iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4830" identifier = (binary_expression "*(int *)(puVar12 + 0x17a58) + 0x4830" (pointer_expression "*(int *)(puVar12 + 0x17a58)" * (cast_expression "(int *)(puVar12 + 0x17a58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x17a58)" ( (binary_expression "puVar12 + 0x17a58" identifier + number_literal) )))) + number_literal)) ;) }))) (if_statement "if ((int)ppcVar7 < 0) {\n    iVar6 = (*(int *)(puVar12 + 0x17a58) + 0x4874) - (int)ppcVar7;\n    uStack_67 = 0;\n    puVar10 = &uStack_68;\n    uStack_68 = uVar4;\n  }\n  else {\n    puVar10 = (undefined1 *)plVar5[(int)ppcVar7 * 4];\n    iVar6 = *(int *)(puVar12 + 0x17a58) + 0x4874;\n  }" if (parenthesized_expression "((int)ppcVar7 < 0)" ( (binary_expression "(int)ppcVar7 < 0" (cast_expression "(int)ppcVar7" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    iVar6 = (*(int *)(puVar12 + 0x17a58) + 0x4874) - (int)ppcVar7;\n    uStack_67 = 0;\n    puVar10 = &uStack_68;\n    uStack_68 = uVar4;\n  }" { (expression_statement "iVar6 = (*(int *)(puVar12 + 0x17a58) + 0x4874) - (int)ppcVar7;" (assignment_expression "iVar6 = (*(int *)(puVar12 + 0x17a58) + 0x4874) - (int)ppcVar7" identifier = (binary_expression "(*(int *)(puVar12 + 0x17a58) + 0x4874) - (int)ppcVar7" (parenthesized_expression "(*(int *)(puVar12 + 0x17a58) + 0x4874)" ( (binary_expression "*(int *)(puVar12 + 0x17a58) + 0x4874" (pointer_expression "*(int *)(puVar12 + 0x17a58)" * (cast_expression "(int *)(puVar12 + 0x17a58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x17a58)" ( (binary_expression "puVar12 + 0x17a58" identifier + number_literal) )))) + number_literal) )) - (cast_expression "(int)ppcVar7" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uStack_67 = 0;" (assignment_expression "uStack_67 = 0" identifier = number_literal) ;) (expression_statement "puVar10 = &uStack_68;" (assignment_expression "puVar10 = &uStack_68" identifier = (pointer_expression "&uStack_68" & identifier)) ;) (expression_statement "uStack_68 = uVar4;" (assignment_expression "uStack_68 = uVar4" identifier = identifier) ;) }) (else_clause "else {\n    puVar10 = (undefined1 *)plVar5[(int)ppcVar7 * 4];\n    iVar6 = *(int *)(puVar12 + 0x17a58) + 0x4874;\n  }" else (compound_statement "{\n    puVar10 = (undefined1 *)plVar5[(int)ppcVar7 * 4];\n    iVar6 = *(int *)(puVar12 + 0x17a58) + 0x4874;\n  }" { (expression_statement "puVar10 = (undefined1 *)plVar5[(int)ppcVar7 * 4];" (assignment_expression "puVar10 = (undefined1 *)plVar5[(int)ppcVar7 * 4]" identifier = (cast_expression "(undefined1 *)plVar5[(int)ppcVar7 * 4]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar5[(int)ppcVar7 * 4]" identifier [ (binary_expression "(int)ppcVar7 * 4" (cast_expression "(int)ppcVar7" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ]))) ;) (expression_statement "iVar6 = *(int *)(puVar12 + 0x17a58) + 0x4874;" (assignment_expression "iVar6 = *(int *)(puVar12 + 0x17a58) + 0x4874" identifier = (binary_expression "*(int *)(puVar12 + 0x17a58) + 0x4874" (pointer_expression "*(int *)(puVar12 + 0x17a58)" * (cast_expression "(int *)(puVar12 + 0x17a58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x17a58)" ( (binary_expression "puVar12 + 0x17a58" identifier + number_literal) )))) + number_literal)) ;) }))) (expression_statement "uVar14 = (**(code **)(puVar12 + 0x17c88))(0,iVar2,5);" (assignment_expression "uVar14 = (**(code **)(puVar12 + 0x17c88))(0,iVar2,5)" identifier = (call_expression "(**(code **)(puVar12 + 0x17c88))(0,iVar2,5)" (parenthesized_expression "(**(code **)(puVar12 + 0x17c88))" ( (pointer_expression "**(code **)(puVar12 + 0x17c88)" * (pointer_expression "*(code **)(puVar12 + 0x17c88)" * (cast_expression "(code **)(puVar12 + 0x17c88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x17c88)" ( (binary_expression "puVar12 + 0x17c88" identifier + number_literal) ))))) )) (argument_list "(0,iVar2,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "(**(code **)(puVar12 + 0x17c54))(uVar8,0,uVar14,iVar6,puVar10,&_gp);" (call_expression "(**(code **)(puVar12 + 0x17c54))(uVar8,0,uVar14,iVar6,puVar10,&_gp)" (parenthesized_expression "(**(code **)(puVar12 + 0x17c54))" ( (pointer_expression "**(code **)(puVar12 + 0x17c54)" * (pointer_expression "*(code **)(puVar12 + 0x17c54)" * (cast_expression "(code **)(puVar12 + 0x17c54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x17c54)" ( (binary_expression "puVar12 + 0x17c54" identifier + number_literal) ))))) )) (argument_list "(uVar8,0,uVar14,iVar6,puVar10,&_gp)" ( identifier , number_literal , identifier , identifier , identifier , (pointer_expression "&_gp" & identifier) ))) ;) (expression_statement "sVar9 = (**(code **)(puVar12 + 0x17bb0))();" (assignment_expression "sVar9 = (**(code **)(puVar12 + 0x17bb0))()" identifier = (call_expression "(**(code **)(puVar12 + 0x17bb0))()" (parenthesized_expression "(**(code **)(puVar12 + 0x17bb0))" ( (pointer_expression "**(code **)(puVar12 + 0x17bb0)" * (pointer_expression "*(code **)(puVar12 + 0x17bb0)" * (cast_expression "(code **)(puVar12 + 0x17bb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x17bb0)" ( (binary_expression "puVar12 + 0x17bb0" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (return_statement "return sVar9;" return identifier ;) })))
(translation_unit "uint xstrtol(char *param_1,char *param_2,uint param_3,undefined4 *param_4,int param_5)\n\n{\n  int *piVar1;\n  int iVar2;\n  uint uVar3;\n  undefined1 uVar4;\n  undefined4 *puVar5;\n  int iVar6;\n  char *pcVar7;\n  undefined4 uVar8;\n  uint uVar9;\n  undefined1 *puVar10;\n  char *pcVar11;\n  undefined *puVar12;\n  code *pcVar13;\n  undefined4 uVar14;\n  undefined1 uStack_68;\n  undefined1 uStack_67;\n  undefined4 uStack_64;\n  char *pcStack_5c;\n  char *pcStack_58;\n  uint uStack_54;\n  undefined4 *puStack_50;\n  undefined4 uStack_4c;\n  char acStack_2c [4];\n  undefined4 local_28;\n  uint local_24;\n  \n  local_24 = *(uint *)PTR___stack_chk_guard_000353a0;\n  if (0x24 < param_3) {\n    uVar9 = (*(code *)PTR___assert_fail_000352a0)\n                      (PTR_LAB_00035158 + 0x4494,PTR_LAB_00035158 + 0x4484,0x60,\n                       PTR_LAB_00035158 + 0x4808);\n    return uVar9;\n  }\n  if (param_2 == (char *)0x0) {\n    param_2 = acStack_2c;\n  }\n  puVar5 = param_4;\n  piVar1 = (int *)(*(code *)PTR___errno_location_00035310)();\n  *piVar1 = 0;\n  pcVar7 = param_2;\n  local_28 = (*(code *)PTR_strtol_000352ac)(param_1);\n  uVar4 = (undefined1)param_3;\n  pcVar11 = *(char **)param_2;\n  if (pcVar11 == param_1) {\n    uVar9 = 4;\n    if (param_5 != 0) {\n      pcVar7 = (char *)(int)*param_1;\n      if (pcVar7 == (char *)0x0) {\n        uVar9 = 4;\n      }\n      else {\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 != 0) {\n          local_28 = 1;\n          param_1 = (char *)(int)*pcVar11;\n          uVar9 = 0;\n          goto LAB_0001d2fc;\n        }\n        uVar9 = 4;\n      }\n    }\n  }\n  else {\n    if (*piVar1 == 0) {\n      uVar9 = 0;\n    }\n    else {\n      if (*piVar1 != 0x22) {\n        uVar9 = 4;\n        goto LAB_0001d368;\n      }\n      uVar9 = 1;\n    }\n    if (param_5 == 0) {\n      *param_4 = local_28;\n    }\n    else {\n      pcVar7 = (char *)(int)*pcVar11;\n      param_1 = pcVar7;\n      if (pcVar7 == (char *)0x0) {\n        *param_4 = local_28;\n      }\n      else {\nLAB_0001d2fc:\n        pcVar7 = param_1;\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 == 0) {\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n        else {\n          if (((uint)(param_1 + -0x45) & 0xff) < 0x30) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();\n            return uVar9;\n          }\n          pcVar7 = (char *)0x400;\n          param_1 = param_1 + -0x42;\n          if (((uint)param_1 & 0xff) < 0x36) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();\n            return uVar9;\n          }\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n      }\n    }\n  }\nLAB_0001d368:\n  if (local_24 == *(uint *)PTR___stack_chk_guard_000353a0) {\n    return uVar9;\n  }\n  uVar14 = 0x1d6fc;\n  uVar3 = local_24;\n  puVar12 = PTR___stack_chk_fail_00035384;\n  (*(code *)PTR___stack_chk_fail_00035384)();\n  uStack_64 = **(undefined4 **)(puVar12 + 0x17ca0);\n  uVar8 = **(undefined4 **)(puVar12 + 0x17ad8);\n  pcStack_5c = param_2;\n  pcStack_58 = param_1;\n  uStack_54 = uVar9;\n  puStack_50 = param_4;\n  uStack_4c = uVar14;\n  if (uVar3 < 4) {\n    if (uVar3 < 2) {\n      pcVar13 = *(code **)(puVar12 + 0x17bb0);\n      if (uVar3 != 1) goto LAB_0001d7e8;\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4810;\n    }\n    else {\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x484c;\n    }\n  }\n  else {\n    pcVar13 = *(code **)(puVar12 + 0x17bb0);\n    if (uVar3 != 4) {\nLAB_0001d7e8:\n      uVar9 = (*pcVar13)();\n      return uVar9;\n    }\n    iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4830;\n  }\n  if ((int)pcVar7 < 0) {\n    iVar6 = (*(int *)(puVar12 + 0x17a58) + 0x4874) - (int)pcVar7;\n    uStack_67 = 0;\n    puVar10 = &uStack_68;\n    uStack_68 = uVar4;\n  }\n  else {\n    puVar10 = (undefined1 *)puVar5[(int)pcVar7 * 4];\n    iVar6 = *(int *)(puVar12 + 0x17a58) + 0x4874;\n  }\n  uVar14 = (**(code **)(puVar12 + 0x17c88))(0,iVar2,5);\n  (**(code **)(puVar12 + 0x17c54))(uVar8,0,uVar14,iVar6,puVar10,&_gp_1);\n  uVar9 = (**(code **)(puVar12 + 0x17bb0))();\n  return uVar9;\n}\n\n" (function_definition "uint xstrtol(char *param_1,char *param_2,uint param_3,undefined4 *param_4,int param_5)\n\n{\n  int *piVar1;\n  int iVar2;\n  uint uVar3;\n  undefined1 uVar4;\n  undefined4 *puVar5;\n  int iVar6;\n  char *pcVar7;\n  undefined4 uVar8;\n  uint uVar9;\n  undefined1 *puVar10;\n  char *pcVar11;\n  undefined *puVar12;\n  code *pcVar13;\n  undefined4 uVar14;\n  undefined1 uStack_68;\n  undefined1 uStack_67;\n  undefined4 uStack_64;\n  char *pcStack_5c;\n  char *pcStack_58;\n  uint uStack_54;\n  undefined4 *puStack_50;\n  undefined4 uStack_4c;\n  char acStack_2c [4];\n  undefined4 local_28;\n  uint local_24;\n  \n  local_24 = *(uint *)PTR___stack_chk_guard_000353a0;\n  if (0x24 < param_3) {\n    uVar9 = (*(code *)PTR___assert_fail_000352a0)\n                      (PTR_LAB_00035158 + 0x4494,PTR_LAB_00035158 + 0x4484,0x60,\n                       PTR_LAB_00035158 + 0x4808);\n    return uVar9;\n  }\n  if (param_2 == (char *)0x0) {\n    param_2 = acStack_2c;\n  }\n  puVar5 = param_4;\n  piVar1 = (int *)(*(code *)PTR___errno_location_00035310)();\n  *piVar1 = 0;\n  pcVar7 = param_2;\n  local_28 = (*(code *)PTR_strtol_000352ac)(param_1);\n  uVar4 = (undefined1)param_3;\n  pcVar11 = *(char **)param_2;\n  if (pcVar11 == param_1) {\n    uVar9 = 4;\n    if (param_5 != 0) {\n      pcVar7 = (char *)(int)*param_1;\n      if (pcVar7 == (char *)0x0) {\n        uVar9 = 4;\n      }\n      else {\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 != 0) {\n          local_28 = 1;\n          param_1 = (char *)(int)*pcVar11;\n          uVar9 = 0;\n          goto LAB_0001d2fc;\n        }\n        uVar9 = 4;\n      }\n    }\n  }\n  else {\n    if (*piVar1 == 0) {\n      uVar9 = 0;\n    }\n    else {\n      if (*piVar1 != 0x22) {\n        uVar9 = 4;\n        goto LAB_0001d368;\n      }\n      uVar9 = 1;\n    }\n    if (param_5 == 0) {\n      *param_4 = local_28;\n    }\n    else {\n      pcVar7 = (char *)(int)*pcVar11;\n      param_1 = pcVar7;\n      if (pcVar7 == (char *)0x0) {\n        *param_4 = local_28;\n      }\n      else {\nLAB_0001d2fc:\n        pcVar7 = param_1;\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 == 0) {\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n        else {\n          if (((uint)(param_1 + -0x45) & 0xff) < 0x30) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();\n            return uVar9;\n          }\n          pcVar7 = (char *)0x400;\n          param_1 = param_1 + -0x42;\n          if (((uint)param_1 & 0xff) < 0x36) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();\n            return uVar9;\n          }\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n      }\n    }\n  }\nLAB_0001d368:\n  if (local_24 == *(uint *)PTR___stack_chk_guard_000353a0) {\n    return uVar9;\n  }\n  uVar14 = 0x1d6fc;\n  uVar3 = local_24;\n  puVar12 = PTR___stack_chk_fail_00035384;\n  (*(code *)PTR___stack_chk_fail_00035384)();\n  uStack_64 = **(undefined4 **)(puVar12 + 0x17ca0);\n  uVar8 = **(undefined4 **)(puVar12 + 0x17ad8);\n  pcStack_5c = param_2;\n  pcStack_58 = param_1;\n  uStack_54 = uVar9;\n  puStack_50 = param_4;\n  uStack_4c = uVar14;\n  if (uVar3 < 4) {\n    if (uVar3 < 2) {\n      pcVar13 = *(code **)(puVar12 + 0x17bb0);\n      if (uVar3 != 1) goto LAB_0001d7e8;\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4810;\n    }\n    else {\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x484c;\n    }\n  }\n  else {\n    pcVar13 = *(code **)(puVar12 + 0x17bb0);\n    if (uVar3 != 4) {\nLAB_0001d7e8:\n      uVar9 = (*pcVar13)();\n      return uVar9;\n    }\n    iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4830;\n  }\n  if ((int)pcVar7 < 0) {\n    iVar6 = (*(int *)(puVar12 + 0x17a58) + 0x4874) - (int)pcVar7;\n    uStack_67 = 0;\n    puVar10 = &uStack_68;\n    uStack_68 = uVar4;\n  }\n  else {\n    puVar10 = (undefined1 *)puVar5[(int)pcVar7 * 4];\n    iVar6 = *(int *)(puVar12 + 0x17a58) + 0x4874;\n  }\n  uVar14 = (**(code **)(puVar12 + 0x17c88))(0,iVar2,5);\n  (**(code **)(puVar12 + 0x17c54))(uVar8,0,uVar14,iVar6,puVar10,&_gp_1);\n  uVar9 = (**(code **)(puVar12 + 0x17bb0))();\n  return uVar9;\n}" type_identifier (function_declarator "xstrtol(char *param_1,char *param_2,uint param_3,undefined4 *param_4,int param_5)" identifier (parameter_list "(char *param_1,char *param_2,uint param_3,undefined4 *param_4,int param_5)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "undefined4 *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "int param_5" primitive_type identifier) ))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  uint uVar3;\n  undefined1 uVar4;\n  undefined4 *puVar5;\n  int iVar6;\n  char *pcVar7;\n  undefined4 uVar8;\n  uint uVar9;\n  undefined1 *puVar10;\n  char *pcVar11;\n  undefined *puVar12;\n  code *pcVar13;\n  undefined4 uVar14;\n  undefined1 uStack_68;\n  undefined1 uStack_67;\n  undefined4 uStack_64;\n  char *pcStack_5c;\n  char *pcStack_58;\n  uint uStack_54;\n  undefined4 *puStack_50;\n  undefined4 uStack_4c;\n  char acStack_2c [4];\n  undefined4 local_28;\n  uint local_24;\n  \n  local_24 = *(uint *)PTR___stack_chk_guard_000353a0;\n  if (0x24 < param_3) {\n    uVar9 = (*(code *)PTR___assert_fail_000352a0)\n                      (PTR_LAB_00035158 + 0x4494,PTR_LAB_00035158 + 0x4484,0x60,\n                       PTR_LAB_00035158 + 0x4808);\n    return uVar9;\n  }\n  if (param_2 == (char *)0x0) {\n    param_2 = acStack_2c;\n  }\n  puVar5 = param_4;\n  piVar1 = (int *)(*(code *)PTR___errno_location_00035310)();\n  *piVar1 = 0;\n  pcVar7 = param_2;\n  local_28 = (*(code *)PTR_strtol_000352ac)(param_1);\n  uVar4 = (undefined1)param_3;\n  pcVar11 = *(char **)param_2;\n  if (pcVar11 == param_1) {\n    uVar9 = 4;\n    if (param_5 != 0) {\n      pcVar7 = (char *)(int)*param_1;\n      if (pcVar7 == (char *)0x0) {\n        uVar9 = 4;\n      }\n      else {\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 != 0) {\n          local_28 = 1;\n          param_1 = (char *)(int)*pcVar11;\n          uVar9 = 0;\n          goto LAB_0001d2fc;\n        }\n        uVar9 = 4;\n      }\n    }\n  }\n  else {\n    if (*piVar1 == 0) {\n      uVar9 = 0;\n    }\n    else {\n      if (*piVar1 != 0x22) {\n        uVar9 = 4;\n        goto LAB_0001d368;\n      }\n      uVar9 = 1;\n    }\n    if (param_5 == 0) {\n      *param_4 = local_28;\n    }\n    else {\n      pcVar7 = (char *)(int)*pcVar11;\n      param_1 = pcVar7;\n      if (pcVar7 == (char *)0x0) {\n        *param_4 = local_28;\n      }\n      else {\nLAB_0001d2fc:\n        pcVar7 = param_1;\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 == 0) {\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n        else {\n          if (((uint)(param_1 + -0x45) & 0xff) < 0x30) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();\n            return uVar9;\n          }\n          pcVar7 = (char *)0x400;\n          param_1 = param_1 + -0x42;\n          if (((uint)param_1 & 0xff) < 0x36) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();\n            return uVar9;\n          }\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n      }\n    }\n  }\nLAB_0001d368:\n  if (local_24 == *(uint *)PTR___stack_chk_guard_000353a0) {\n    return uVar9;\n  }\n  uVar14 = 0x1d6fc;\n  uVar3 = local_24;\n  puVar12 = PTR___stack_chk_fail_00035384;\n  (*(code *)PTR___stack_chk_fail_00035384)();\n  uStack_64 = **(undefined4 **)(puVar12 + 0x17ca0);\n  uVar8 = **(undefined4 **)(puVar12 + 0x17ad8);\n  pcStack_5c = param_2;\n  pcStack_58 = param_1;\n  uStack_54 = uVar9;\n  puStack_50 = param_4;\n  uStack_4c = uVar14;\n  if (uVar3 < 4) {\n    if (uVar3 < 2) {\n      pcVar13 = *(code **)(puVar12 + 0x17bb0);\n      if (uVar3 != 1) goto LAB_0001d7e8;\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4810;\n    }\n    else {\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x484c;\n    }\n  }\n  else {\n    pcVar13 = *(code **)(puVar12 + 0x17bb0);\n    if (uVar3 != 4) {\nLAB_0001d7e8:\n      uVar9 = (*pcVar13)();\n      return uVar9;\n    }\n    iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4830;\n  }\n  if ((int)pcVar7 < 0) {\n    iVar6 = (*(int *)(puVar12 + 0x17a58) + 0x4874) - (int)pcVar7;\n    uStack_67 = 0;\n    puVar10 = &uStack_68;\n    uStack_68 = uVar4;\n  }\n  else {\n    puVar10 = (undefined1 *)puVar5[(int)pcVar7 * 4];\n    iVar6 = *(int *)(puVar12 + 0x17a58) + 0x4874;\n  }\n  uVar14 = (**(code **)(puVar12 + 0x17c88))(0,iVar2,5);\n  (**(code **)(puVar12 + 0x17c54))(uVar8,0,uVar14,iVar6,puVar10,&_gp_1);\n  uVar9 = (**(code **)(puVar12 + 0x17bb0))();\n  return uVar9;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "undefined1 uVar4;" type_identifier identifier ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "undefined1 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "undefined *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "code *pcVar13;" type_identifier (pointer_declarator "*pcVar13" * identifier) ;) (declaration "undefined4 uVar14;" type_identifier identifier ;) (declaration "undefined1 uStack_68;" type_identifier identifier ;) (declaration "undefined1 uStack_67;" type_identifier identifier ;) (declaration "undefined4 uStack_64;" type_identifier identifier ;) (declaration "char *pcStack_5c;" primitive_type (pointer_declarator "*pcStack_5c" * identifier) ;) (declaration "char *pcStack_58;" primitive_type (pointer_declarator "*pcStack_58" * identifier) ;) (declaration "uint uStack_54;" type_identifier identifier ;) (declaration "undefined4 *puStack_50;" type_identifier (pointer_declarator "*puStack_50" * identifier) ;) (declaration "undefined4 uStack_4c;" type_identifier identifier ;) (declaration "char acStack_2c [4];" primitive_type (array_declarator "acStack_2c [4]" identifier [ number_literal ]) ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (declaration "uint local_24;" type_identifier identifier ;) (expression_statement "local_24 = *(uint *)PTR___stack_chk_guard_000353a0;" (assignment_expression "local_24 = *(uint *)PTR___stack_chk_guard_000353a0" identifier = (pointer_expression "*(uint *)PTR___stack_chk_guard_000353a0" * (cast_expression "(uint *)PTR___stack_chk_guard_000353a0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (0x24 < param_3) {\n    uVar9 = (*(code *)PTR___assert_fail_000352a0)\n                      (PTR_LAB_00035158 + 0x4494,PTR_LAB_00035158 + 0x4484,0x60,\n                       PTR_LAB_00035158 + 0x4808);\n    return uVar9;\n  }" if (parenthesized_expression "(0x24 < param_3)" ( (binary_expression "0x24 < param_3" number_literal < identifier) )) (compound_statement "{\n    uVar9 = (*(code *)PTR___assert_fail_000352a0)\n                      (PTR_LAB_00035158 + 0x4494,PTR_LAB_00035158 + 0x4484,0x60,\n                       PTR_LAB_00035158 + 0x4808);\n    return uVar9;\n  }" { (expression_statement "uVar9 = (*(code *)PTR___assert_fail_000352a0)\n                      (PTR_LAB_00035158 + 0x4494,PTR_LAB_00035158 + 0x4484,0x60,\n                       PTR_LAB_00035158 + 0x4808);" (assignment_expression "uVar9 = (*(code *)PTR___assert_fail_000352a0)\n                      (PTR_LAB_00035158 + 0x4494,PTR_LAB_00035158 + 0x4484,0x60,\n                       PTR_LAB_00035158 + 0x4808)" identifier = (call_expression "(*(code *)PTR___assert_fail_000352a0)\n                      (PTR_LAB_00035158 + 0x4494,PTR_LAB_00035158 + 0x4484,0x60,\n                       PTR_LAB_00035158 + 0x4808)" (parenthesized_expression "(*(code *)PTR___assert_fail_000352a0)" ( (pointer_expression "*(code *)PTR___assert_fail_000352a0" * (cast_expression "(code *)PTR___assert_fail_000352a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_00035158 + 0x4494,PTR_LAB_00035158 + 0x4484,0x60,\n                       PTR_LAB_00035158 + 0x4808)" ( (binary_expression "PTR_LAB_00035158 + 0x4494" identifier + number_literal) , (binary_expression "PTR_LAB_00035158 + 0x4484" identifier + number_literal) , number_literal , (binary_expression "PTR_LAB_00035158 + 0x4808" identifier + number_literal) )))) ;) (return_statement "return uVar9;" return identifier ;) })) (if_statement "if (param_2 == (char *)0x0) {\n    param_2 = acStack_2c;\n  }" if (parenthesized_expression "(param_2 == (char *)0x0)" ( (binary_expression "param_2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    param_2 = acStack_2c;\n  }" { (expression_statement "param_2 = acStack_2c;" (assignment_expression "param_2 = acStack_2c" identifier = identifier) ;) })) (expression_statement "puVar5 = param_4;" (assignment_expression "puVar5 = param_4" identifier = identifier) ;) (expression_statement "piVar1 = (int *)(*(code *)PTR___errno_location_00035310)();" (assignment_expression "piVar1 = (int *)(*(code *)PTR___errno_location_00035310)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_00035310)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00035310)()" (parenthesized_expression "(*(code *)PTR___errno_location_00035310)" ( (pointer_expression "*(code *)PTR___errno_location_00035310" * (cast_expression "(code *)PTR___errno_location_00035310" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "*piVar1 = 0;" (assignment_expression "*piVar1 = 0" (pointer_expression "*piVar1" * identifier) = number_literal) ;) (expression_statement "pcVar7 = param_2;" (assignment_expression "pcVar7 = param_2" identifier = identifier) ;) (expression_statement "local_28 = (*(code *)PTR_strtol_000352ac)(param_1);" (assignment_expression "local_28 = (*(code *)PTR_strtol_000352ac)(param_1)" identifier = (call_expression "(*(code *)PTR_strtol_000352ac)(param_1)" (parenthesized_expression "(*(code *)PTR_strtol_000352ac)" ( (pointer_expression "*(code *)PTR_strtol_000352ac" * (cast_expression "(code *)PTR_strtol_000352ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "uVar4 = (undefined1)param_3;" (assignment_expression "uVar4 = (undefined1)param_3" identifier = (cast_expression "(undefined1)param_3" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "pcVar11 = *(char **)param_2;" (assignment_expression "pcVar11 = *(char **)param_2" identifier = (pointer_expression "*(char **)param_2" * (cast_expression "(char **)param_2" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (pcVar11 == param_1) {\n    uVar9 = 4;\n    if (param_5 != 0) {\n      pcVar7 = (char *)(int)*param_1;\n      if (pcVar7 == (char *)0x0) {\n        uVar9 = 4;\n      }\n      else {\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 != 0) {\n          local_28 = 1;\n          param_1 = (char *)(int)*pcVar11;\n          uVar9 = 0;\n          goto LAB_0001d2fc;\n        }\n        uVar9 = 4;\n      }\n    }\n  }\n  else {\n    if (*piVar1 == 0) {\n      uVar9 = 0;\n    }\n    else {\n      if (*piVar1 != 0x22) {\n        uVar9 = 4;\n        goto LAB_0001d368;\n      }\n      uVar9 = 1;\n    }\n    if (param_5 == 0) {\n      *param_4 = local_28;\n    }\n    else {\n      pcVar7 = (char *)(int)*pcVar11;\n      param_1 = pcVar7;\n      if (pcVar7 == (char *)0x0) {\n        *param_4 = local_28;\n      }\n      else {\nLAB_0001d2fc:\n        pcVar7 = param_1;\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 == 0) {\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n        else {\n          if (((uint)(param_1 + -0x45) & 0xff) < 0x30) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();\n            return uVar9;\n          }\n          pcVar7 = (char *)0x400;\n          param_1 = param_1 + -0x42;\n          if (((uint)param_1 & 0xff) < 0x36) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();\n            return uVar9;\n          }\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n      }\n    }\n  }" if (parenthesized_expression "(pcVar11 == param_1)" ( (binary_expression "pcVar11 == param_1" identifier == identifier) )) (compound_statement "{\n    uVar9 = 4;\n    if (param_5 != 0) {\n      pcVar7 = (char *)(int)*param_1;\n      if (pcVar7 == (char *)0x0) {\n        uVar9 = 4;\n      }\n      else {\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 != 0) {\n          local_28 = 1;\n          param_1 = (char *)(int)*pcVar11;\n          uVar9 = 0;\n          goto LAB_0001d2fc;\n        }\n        uVar9 = 4;\n      }\n    }\n  }" { (expression_statement "uVar9 = 4;" (assignment_expression "uVar9 = 4" identifier = number_literal) ;) (if_statement "if (param_5 != 0) {\n      pcVar7 = (char *)(int)*param_1;\n      if (pcVar7 == (char *)0x0) {\n        uVar9 = 4;\n      }\n      else {\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 != 0) {\n          local_28 = 1;\n          param_1 = (char *)(int)*pcVar11;\n          uVar9 = 0;\n          goto LAB_0001d2fc;\n        }\n        uVar9 = 4;\n      }\n    }" if (parenthesized_expression "(param_5 != 0)" ( (binary_expression "param_5 != 0" identifier != number_literal) )) (compound_statement "{\n      pcVar7 = (char *)(int)*param_1;\n      if (pcVar7 == (char *)0x0) {\n        uVar9 = 4;\n      }\n      else {\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 != 0) {\n          local_28 = 1;\n          param_1 = (char *)(int)*pcVar11;\n          uVar9 = 0;\n          goto LAB_0001d2fc;\n        }\n        uVar9 = 4;\n      }\n    }" { (expression_statement "pcVar7 = (char *)(int)*param_1;" (assignment_expression "pcVar7 = (char *)(int)*param_1" identifier = (cast_expression "(char *)(int)*param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)*param_1" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*param_1" * identifier)))) ;) (if_statement "if (pcVar7 == (char *)0x0) {\n        uVar9 = 4;\n      }\n      else {\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 != 0) {\n          local_28 = 1;\n          param_1 = (char *)(int)*pcVar11;\n          uVar9 = 0;\n          goto LAB_0001d2fc;\n        }\n        uVar9 = 4;\n      }" if (parenthesized_expression "(pcVar7 == (char *)0x0)" ( (binary_expression "pcVar7 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar9 = 4;\n      }" { (expression_statement "uVar9 = 4;" (assignment_expression "uVar9 = 4" identifier = number_literal) ;) }) (else_clause "else {\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 != 0) {\n          local_28 = 1;\n          param_1 = (char *)(int)*pcVar11;\n          uVar9 = 0;\n          goto LAB_0001d2fc;\n        }\n        uVar9 = 4;\n      }" else (compound_statement "{\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 != 0) {\n          local_28 = 1;\n          param_1 = (char *)(int)*pcVar11;\n          uVar9 = 0;\n          goto LAB_0001d2fc;\n        }\n        uVar9 = 4;\n      }" { (expression_statement "iVar2 = (*(code *)PTR_strchr_00035334)(param_5);" (assignment_expression "iVar2 = (*(code *)PTR_strchr_00035334)(param_5)" identifier = (call_expression "(*(code *)PTR_strchr_00035334)(param_5)" (parenthesized_expression "(*(code *)PTR_strchr_00035334)" ( (pointer_expression "*(code *)PTR_strchr_00035334" * (cast_expression "(code *)PTR_strchr_00035334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_5)" ( identifier )))) ;) (if_statement "if (iVar2 != 0) {\n          local_28 = 1;\n          param_1 = (char *)(int)*pcVar11;\n          uVar9 = 0;\n          goto LAB_0001d2fc;\n        }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n          local_28 = 1;\n          param_1 = (char *)(int)*pcVar11;\n          uVar9 = 0;\n          goto LAB_0001d2fc;\n        }" { (expression_statement "local_28 = 1;" (assignment_expression "local_28 = 1" identifier = number_literal) ;) (expression_statement "param_1 = (char *)(int)*pcVar11;" (assignment_expression "param_1 = (char *)(int)*pcVar11" identifier = (cast_expression "(char *)(int)*pcVar11" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)*pcVar11" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pcVar11" * identifier)))) ;) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0001d2fc;" goto statement_identifier ;) })) (expression_statement "uVar9 = 4;" (assignment_expression "uVar9 = 4" identifier = number_literal) ;) }))) })) }) (else_clause "else {\n    if (*piVar1 == 0) {\n      uVar9 = 0;\n    }\n    else {\n      if (*piVar1 != 0x22) {\n        uVar9 = 4;\n        goto LAB_0001d368;\n      }\n      uVar9 = 1;\n    }\n    if (param_5 == 0) {\n      *param_4 = local_28;\n    }\n    else {\n      pcVar7 = (char *)(int)*pcVar11;\n      param_1 = pcVar7;\n      if (pcVar7 == (char *)0x0) {\n        *param_4 = local_28;\n      }\n      else {\nLAB_0001d2fc:\n        pcVar7 = param_1;\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 == 0) {\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n        else {\n          if (((uint)(param_1 + -0x45) & 0xff) < 0x30) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();\n            return uVar9;\n          }\n          pcVar7 = (char *)0x400;\n          param_1 = param_1 + -0x42;\n          if (((uint)param_1 & 0xff) < 0x36) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();\n            return uVar9;\n          }\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n      }\n    }\n  }" else (compound_statement "{\n    if (*piVar1 == 0) {\n      uVar9 = 0;\n    }\n    else {\n      if (*piVar1 != 0x22) {\n        uVar9 = 4;\n        goto LAB_0001d368;\n      }\n      uVar9 = 1;\n    }\n    if (param_5 == 0) {\n      *param_4 = local_28;\n    }\n    else {\n      pcVar7 = (char *)(int)*pcVar11;\n      param_1 = pcVar7;\n      if (pcVar7 == (char *)0x0) {\n        *param_4 = local_28;\n      }\n      else {\nLAB_0001d2fc:\n        pcVar7 = param_1;\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 == 0) {\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n        else {\n          if (((uint)(param_1 + -0x45) & 0xff) < 0x30) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();\n            return uVar9;\n          }\n          pcVar7 = (char *)0x400;\n          param_1 = param_1 + -0x42;\n          if (((uint)param_1 & 0xff) < 0x36) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();\n            return uVar9;\n          }\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n      }\n    }\n  }" { (if_statement "if (*piVar1 == 0) {\n      uVar9 = 0;\n    }\n    else {\n      if (*piVar1 != 0x22) {\n        uVar9 = 4;\n        goto LAB_0001d368;\n      }\n      uVar9 = 1;\n    }" if (parenthesized_expression "(*piVar1 == 0)" ( (binary_expression "*piVar1 == 0" (pointer_expression "*piVar1" * identifier) == number_literal) )) (compound_statement "{\n      uVar9 = 0;\n    }" { (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      if (*piVar1 != 0x22) {\n        uVar9 = 4;\n        goto LAB_0001d368;\n      }\n      uVar9 = 1;\n    }" else (compound_statement "{\n      if (*piVar1 != 0x22) {\n        uVar9 = 4;\n        goto LAB_0001d368;\n      }\n      uVar9 = 1;\n    }" { (if_statement "if (*piVar1 != 0x22) {\n        uVar9 = 4;\n        goto LAB_0001d368;\n      }" if (parenthesized_expression "(*piVar1 != 0x22)" ( (binary_expression "*piVar1 != 0x22" (pointer_expression "*piVar1" * identifier) != number_literal) )) (compound_statement "{\n        uVar9 = 4;\n        goto LAB_0001d368;\n      }" { (expression_statement "uVar9 = 4;" (assignment_expression "uVar9 = 4" identifier = number_literal) ;) (goto_statement "goto LAB_0001d368;" goto statement_identifier ;) })) (expression_statement "uVar9 = 1;" (assignment_expression "uVar9 = 1" identifier = number_literal) ;) }))) (if_statement "if (param_5 == 0) {\n      *param_4 = local_28;\n    }\n    else {\n      pcVar7 = (char *)(int)*pcVar11;\n      param_1 = pcVar7;\n      if (pcVar7 == (char *)0x0) {\n        *param_4 = local_28;\n      }\n      else {\nLAB_0001d2fc:\n        pcVar7 = param_1;\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 == 0) {\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n        else {\n          if (((uint)(param_1 + -0x45) & 0xff) < 0x30) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();\n            return uVar9;\n          }\n          pcVar7 = (char *)0x400;\n          param_1 = param_1 + -0x42;\n          if (((uint)param_1 & 0xff) < 0x36) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();\n            return uVar9;\n          }\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n      }\n    }" if (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) (compound_statement "{\n      *param_4 = local_28;\n    }" { (expression_statement "*param_4 = local_28;" (assignment_expression "*param_4 = local_28" (pointer_expression "*param_4" * identifier) = identifier) ;) }) (else_clause "else {\n      pcVar7 = (char *)(int)*pcVar11;\n      param_1 = pcVar7;\n      if (pcVar7 == (char *)0x0) {\n        *param_4 = local_28;\n      }\n      else {\nLAB_0001d2fc:\n        pcVar7 = param_1;\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 == 0) {\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n        else {\n          if (((uint)(param_1 + -0x45) & 0xff) < 0x30) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();\n            return uVar9;\n          }\n          pcVar7 = (char *)0x400;\n          param_1 = param_1 + -0x42;\n          if (((uint)param_1 & 0xff) < 0x36) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();\n            return uVar9;\n          }\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n      }\n    }" else (compound_statement "{\n      pcVar7 = (char *)(int)*pcVar11;\n      param_1 = pcVar7;\n      if (pcVar7 == (char *)0x0) {\n        *param_4 = local_28;\n      }\n      else {\nLAB_0001d2fc:\n        pcVar7 = param_1;\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 == 0) {\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n        else {\n          if (((uint)(param_1 + -0x45) & 0xff) < 0x30) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();\n            return uVar9;\n          }\n          pcVar7 = (char *)0x400;\n          param_1 = param_1 + -0x42;\n          if (((uint)param_1 & 0xff) < 0x36) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();\n            return uVar9;\n          }\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n      }\n    }" { (expression_statement "pcVar7 = (char *)(int)*pcVar11;" (assignment_expression "pcVar7 = (char *)(int)*pcVar11" identifier = (cast_expression "(char *)(int)*pcVar11" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)*pcVar11" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pcVar11" * identifier)))) ;) (expression_statement "param_1 = pcVar7;" (assignment_expression "param_1 = pcVar7" identifier = identifier) ;) (if_statement "if (pcVar7 == (char *)0x0) {\n        *param_4 = local_28;\n      }\n      else {\nLAB_0001d2fc:\n        pcVar7 = param_1;\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 == 0) {\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n        else {\n          if (((uint)(param_1 + -0x45) & 0xff) < 0x30) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();\n            return uVar9;\n          }\n          pcVar7 = (char *)0x400;\n          param_1 = param_1 + -0x42;\n          if (((uint)param_1 & 0xff) < 0x36) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();\n            return uVar9;\n          }\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n      }" if (parenthesized_expression "(pcVar7 == (char *)0x0)" ( (binary_expression "pcVar7 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *param_4 = local_28;\n      }" { (expression_statement "*param_4 = local_28;" (assignment_expression "*param_4 = local_28" (pointer_expression "*param_4" * identifier) = identifier) ;) }) (else_clause "else {\nLAB_0001d2fc:\n        pcVar7 = param_1;\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 == 0) {\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n        else {\n          if (((uint)(param_1 + -0x45) & 0xff) < 0x30) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();\n            return uVar9;\n          }\n          pcVar7 = (char *)0x400;\n          param_1 = param_1 + -0x42;\n          if (((uint)param_1 & 0xff) < 0x36) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();\n            return uVar9;\n          }\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n      }" else (compound_statement "{\nLAB_0001d2fc:\n        pcVar7 = param_1;\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 == 0) {\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n        else {\n          if (((uint)(param_1 + -0x45) & 0xff) < 0x30) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();\n            return uVar9;\n          }\n          pcVar7 = (char *)0x400;\n          param_1 = param_1 + -0x42;\n          if (((uint)param_1 & 0xff) < 0x36) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();\n            return uVar9;\n          }\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n      }" { (labeled_statement "LAB_0001d2fc:\n        pcVar7 = param_1;" statement_identifier : (expression_statement "pcVar7 = param_1;" (assignment_expression "pcVar7 = param_1" identifier = identifier) ;)) (expression_statement "iVar2 = (*(code *)PTR_strchr_00035334)(param_5);" (assignment_expression "iVar2 = (*(code *)PTR_strchr_00035334)(param_5)" identifier = (call_expression "(*(code *)PTR_strchr_00035334)(param_5)" (parenthesized_expression "(*(code *)PTR_strchr_00035334)" ( (pointer_expression "*(code *)PTR_strchr_00035334" * (cast_expression "(code *)PTR_strchr_00035334" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_5)" ( identifier )))) ;) (if_statement "if (iVar2 == 0) {\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n        else {\n          if (((uint)(param_1 + -0x45) & 0xff) < 0x30) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();\n            return uVar9;\n          }\n          pcVar7 = (char *)0x400;\n          param_1 = param_1 + -0x42;\n          if (((uint)param_1 & 0xff) < 0x36) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();\n            return uVar9;\n          }\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }" { (expression_statement "*param_4 = local_28;" (assignment_expression "*param_4 = local_28" (pointer_expression "*param_4" * identifier) = identifier) ;) (expression_statement "uVar9 = uVar9 | 2;" (assignment_expression "uVar9 = uVar9 | 2" identifier = (binary_expression "uVar9 | 2" identifier | number_literal)) ;) }) (else_clause "else {\n          if (((uint)(param_1 + -0x45) & 0xff) < 0x30) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();\n            return uVar9;\n          }\n          pcVar7 = (char *)0x400;\n          param_1 = param_1 + -0x42;\n          if (((uint)param_1 & 0xff) < 0x36) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();\n            return uVar9;\n          }\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }" else (compound_statement "{\n          if (((uint)(param_1 + -0x45) & 0xff) < 0x30) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();\n            return uVar9;\n          }\n          pcVar7 = (char *)0x400;\n          param_1 = param_1 + -0x42;\n          if (((uint)param_1 & 0xff) < 0x36) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();\n            return uVar9;\n          }\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }" { (if_statement "if (((uint)(param_1 + -0x45) & 0xff) < 0x30) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();\n            return uVar9;\n          }" if (parenthesized_expression "(((uint)(param_1 + -0x45) & 0xff) < 0x30)" ( (binary_expression "((uint)(param_1 + -0x45) & 0xff) < 0x30" (parenthesized_expression "((uint)(param_1 + -0x45) & 0xff)" ( (binary_expression "(uint)(param_1 + -0x45) & 0xff" (call_expression "(uint)(param_1 + -0x45)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_1 + -0x45)" ( (binary_expression "param_1 + -0x45" identifier + number_literal) ))) & number_literal) )) < number_literal) )) (compound_statement "{\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();\n            return uVar9;\n          }" { (expression_statement "uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();" (assignment_expression "uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))()" identifier = (call_expression "(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))" ( (pointer_expression "*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670))" * (cast_expression "(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670))" ( (binary_expression "&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)" * (cast_expression "(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)" ( (binary_expression "PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670" (binary_expression "PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4" identifier + (binary_expression "((uint)(param_1 + -0x45) & 0xff) * 4" (parenthesized_expression "((uint)(param_1 + -0x45) & 0xff)" ( (binary_expression "(uint)(param_1 + -0x45) & 0xff" (call_expression "(uint)(param_1 + -0x45)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_1 + -0x45)" ( (binary_expression "param_1 + -0x45" identifier + number_literal) ))) & number_literal) )) * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return uVar9;" return identifier ;) })) (expression_statement "pcVar7 = (char *)0x400;" (assignment_expression "pcVar7 = (char *)0x400" identifier = (cast_expression "(char *)0x400" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_1 = param_1 + -0x42;" (assignment_expression "param_1 = param_1 + -0x42" identifier = (binary_expression "param_1 + -0x42" identifier + number_literal)) ;) (if_statement "if (((uint)param_1 & 0xff) < 0x36) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();\n            return uVar9;\n          }" if (parenthesized_expression "(((uint)param_1 & 0xff) < 0x36)" ( (binary_expression "((uint)param_1 & 0xff) < 0x36" (parenthesized_expression "((uint)param_1 & 0xff)" ( (binary_expression "(uint)param_1 & 0xff" (cast_expression "(uint)param_1" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) < number_literal) )) (compound_statement "{\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();\n            return uVar9;\n          }" { (expression_statement "uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();" (assignment_expression "uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))()" identifier = (call_expression "(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))" ( (pointer_expression "*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730))" * (cast_expression "(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730))" ( (binary_expression "&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)" * (cast_expression "(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)" ( (binary_expression "PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730" (binary_expression "PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4" identifier + (binary_expression "((uint)param_1 & 0xff) * 4" (parenthesized_expression "((uint)param_1 & 0xff)" ( (binary_expression "(uint)param_1 & 0xff" (cast_expression "(uint)param_1" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return uVar9;" return identifier ;) })) (expression_statement "*param_4 = local_28;" (assignment_expression "*param_4 = local_28" (pointer_expression "*param_4" * identifier) = identifier) ;) (expression_statement "uVar9 = uVar9 | 2;" (assignment_expression "uVar9 = uVar9 | 2" identifier = (binary_expression "uVar9 | 2" identifier | number_literal)) ;) }))) }))) }))) }))) (labeled_statement "LAB_0001d368:\n  if (local_24 == *(uint *)PTR___stack_chk_guard_000353a0) {\n    return uVar9;\n  }" statement_identifier : (if_statement "if (local_24 == *(uint *)PTR___stack_chk_guard_000353a0) {\n    return uVar9;\n  }" if (parenthesized_expression "(local_24 == *(uint *)PTR___stack_chk_guard_000353a0)" ( (binary_expression "local_24 == *(uint *)PTR___stack_chk_guard_000353a0" identifier == (pointer_expression "*(uint *)PTR___stack_chk_guard_000353a0" * (cast_expression "(uint *)PTR___stack_chk_guard_000353a0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return uVar9;\n  }" { (return_statement "return uVar9;" return identifier ;) }))) (expression_statement "uVar14 = 0x1d6fc;" (assignment_expression "uVar14 = 0x1d6fc" identifier = number_literal) ;) (expression_statement "uVar3 = local_24;" (assignment_expression "uVar3 = local_24" identifier = identifier) ;) (expression_statement "puVar12 = PTR___stack_chk_fail_00035384;" (assignment_expression "puVar12 = PTR___stack_chk_fail_00035384" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00035384)();" (call_expression "(*(code *)PTR___stack_chk_fail_00035384)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00035384)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00035384" * (cast_expression "(code *)PTR___stack_chk_fail_00035384" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uStack_64 = **(undefined4 **)(puVar12 + 0x17ca0);" (assignment_expression "uStack_64 = **(undefined4 **)(puVar12 + 0x17ca0)" identifier = (pointer_expression "**(undefined4 **)(puVar12 + 0x17ca0)" * (pointer_expression "*(undefined4 **)(puVar12 + 0x17ca0)" * (cast_expression "(undefined4 **)(puVar12 + 0x17ca0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x17ca0)" ( (binary_expression "puVar12 + 0x17ca0" identifier + number_literal) )))))) ;) (expression_statement "uVar8 = **(undefined4 **)(puVar12 + 0x17ad8);" (assignment_expression "uVar8 = **(undefined4 **)(puVar12 + 0x17ad8)" identifier = (pointer_expression "**(undefined4 **)(puVar12 + 0x17ad8)" * (pointer_expression "*(undefined4 **)(puVar12 + 0x17ad8)" * (cast_expression "(undefined4 **)(puVar12 + 0x17ad8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x17ad8)" ( (binary_expression "puVar12 + 0x17ad8" identifier + number_literal) )))))) ;) (expression_statement "pcStack_5c = param_2;" (assignment_expression "pcStack_5c = param_2" identifier = identifier) ;) (expression_statement "pcStack_58 = param_1;" (assignment_expression "pcStack_58 = param_1" identifier = identifier) ;) (expression_statement "uStack_54 = uVar9;" (assignment_expression "uStack_54 = uVar9" identifier = identifier) ;) (expression_statement "puStack_50 = param_4;" (assignment_expression "puStack_50 = param_4" identifier = identifier) ;) (expression_statement "uStack_4c = uVar14;" (assignment_expression "uStack_4c = uVar14" identifier = identifier) ;) (if_statement "if (uVar3 < 4) {\n    if (uVar3 < 2) {\n      pcVar13 = *(code **)(puVar12 + 0x17bb0);\n      if (uVar3 != 1) goto LAB_0001d7e8;\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4810;\n    }\n    else {\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x484c;\n    }\n  }\n  else {\n    pcVar13 = *(code **)(puVar12 + 0x17bb0);\n    if (uVar3 != 4) {\nLAB_0001d7e8:\n      uVar9 = (*pcVar13)();\n      return uVar9;\n    }\n    iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4830;\n  }" if (parenthesized_expression "(uVar3 < 4)" ( (binary_expression "uVar3 < 4" identifier < number_literal) )) (compound_statement "{\n    if (uVar3 < 2) {\n      pcVar13 = *(code **)(puVar12 + 0x17bb0);\n      if (uVar3 != 1) goto LAB_0001d7e8;\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4810;\n    }\n    else {\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x484c;\n    }\n  }" { (if_statement "if (uVar3 < 2) {\n      pcVar13 = *(code **)(puVar12 + 0x17bb0);\n      if (uVar3 != 1) goto LAB_0001d7e8;\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4810;\n    }\n    else {\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x484c;\n    }" if (parenthesized_expression "(uVar3 < 2)" ( (binary_expression "uVar3 < 2" identifier < number_literal) )) (compound_statement "{\n      pcVar13 = *(code **)(puVar12 + 0x17bb0);\n      if (uVar3 != 1) goto LAB_0001d7e8;\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4810;\n    }" { (expression_statement "pcVar13 = *(code **)(puVar12 + 0x17bb0);" (assignment_expression "pcVar13 = *(code **)(puVar12 + 0x17bb0)" identifier = (pointer_expression "*(code **)(puVar12 + 0x17bb0)" * (cast_expression "(code **)(puVar12 + 0x17bb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x17bb0)" ( (binary_expression "puVar12 + 0x17bb0" identifier + number_literal) ))))) ;) (if_statement "if (uVar3 != 1) goto LAB_0001d7e8;" if (parenthesized_expression "(uVar3 != 1)" ( (binary_expression "uVar3 != 1" identifier != number_literal) )) (goto_statement "goto LAB_0001d7e8;" goto statement_identifier ;)) (expression_statement "iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4810;" (assignment_expression "iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4810" identifier = (binary_expression "*(int *)(puVar12 + 0x17a58) + 0x4810" (pointer_expression "*(int *)(puVar12 + 0x17a58)" * (cast_expression "(int *)(puVar12 + 0x17a58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x17a58)" ( (binary_expression "puVar12 + 0x17a58" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x484c;\n    }" else (compound_statement "{\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x484c;\n    }" { (expression_statement "iVar2 = *(int *)(puVar12 + 0x17a58) + 0x484c;" (assignment_expression "iVar2 = *(int *)(puVar12 + 0x17a58) + 0x484c" identifier = (binary_expression "*(int *)(puVar12 + 0x17a58) + 0x484c" (pointer_expression "*(int *)(puVar12 + 0x17a58)" * (cast_expression "(int *)(puVar12 + 0x17a58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x17a58)" ( (binary_expression "puVar12 + 0x17a58" identifier + number_literal) )))) + number_literal)) ;) }))) }) (else_clause "else {\n    pcVar13 = *(code **)(puVar12 + 0x17bb0);\n    if (uVar3 != 4) {\nLAB_0001d7e8:\n      uVar9 = (*pcVar13)();\n      return uVar9;\n    }\n    iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4830;\n  }" else (compound_statement "{\n    pcVar13 = *(code **)(puVar12 + 0x17bb0);\n    if (uVar3 != 4) {\nLAB_0001d7e8:\n      uVar9 = (*pcVar13)();\n      return uVar9;\n    }\n    iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4830;\n  }" { (expression_statement "pcVar13 = *(code **)(puVar12 + 0x17bb0);" (assignment_expression "pcVar13 = *(code **)(puVar12 + 0x17bb0)" identifier = (pointer_expression "*(code **)(puVar12 + 0x17bb0)" * (cast_expression "(code **)(puVar12 + 0x17bb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x17bb0)" ( (binary_expression "puVar12 + 0x17bb0" identifier + number_literal) ))))) ;) (if_statement "if (uVar3 != 4) {\nLAB_0001d7e8:\n      uVar9 = (*pcVar13)();\n      return uVar9;\n    }" if (parenthesized_expression "(uVar3 != 4)" ( (binary_expression "uVar3 != 4" identifier != number_literal) )) (compound_statement "{\nLAB_0001d7e8:\n      uVar9 = (*pcVar13)();\n      return uVar9;\n    }" { (labeled_statement "LAB_0001d7e8:\n      uVar9 = (*pcVar13)();" statement_identifier : (expression_statement "uVar9 = (*pcVar13)();" (assignment_expression "uVar9 = (*pcVar13)()" identifier = (call_expression "(*pcVar13)()" (parenthesized_expression "(*pcVar13)" ( (pointer_expression "*pcVar13" * identifier) )) (argument_list "()" ( )))) ;)) (return_statement "return uVar9;" return identifier ;) })) (expression_statement "iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4830;" (assignment_expression "iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4830" identifier = (binary_expression "*(int *)(puVar12 + 0x17a58) + 0x4830" (pointer_expression "*(int *)(puVar12 + 0x17a58)" * (cast_expression "(int *)(puVar12 + 0x17a58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x17a58)" ( (binary_expression "puVar12 + 0x17a58" identifier + number_literal) )))) + number_literal)) ;) }))) (if_statement "if ((int)pcVar7 < 0) {\n    iVar6 = (*(int *)(puVar12 + 0x17a58) + 0x4874) - (int)pcVar7;\n    uStack_67 = 0;\n    puVar10 = &uStack_68;\n    uStack_68 = uVar4;\n  }\n  else {\n    puVar10 = (undefined1 *)puVar5[(int)pcVar7 * 4];\n    iVar6 = *(int *)(puVar12 + 0x17a58) + 0x4874;\n  }" if (parenthesized_expression "((int)pcVar7 < 0)" ( (binary_expression "(int)pcVar7 < 0" (cast_expression "(int)pcVar7" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    iVar6 = (*(int *)(puVar12 + 0x17a58) + 0x4874) - (int)pcVar7;\n    uStack_67 = 0;\n    puVar10 = &uStack_68;\n    uStack_68 = uVar4;\n  }" { (expression_statement "iVar6 = (*(int *)(puVar12 + 0x17a58) + 0x4874) - (int)pcVar7;" (assignment_expression "iVar6 = (*(int *)(puVar12 + 0x17a58) + 0x4874) - (int)pcVar7" identifier = (binary_expression "(*(int *)(puVar12 + 0x17a58) + 0x4874) - (int)pcVar7" (parenthesized_expression "(*(int *)(puVar12 + 0x17a58) + 0x4874)" ( (binary_expression "*(int *)(puVar12 + 0x17a58) + 0x4874" (pointer_expression "*(int *)(puVar12 + 0x17a58)" * (cast_expression "(int *)(puVar12 + 0x17a58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x17a58)" ( (binary_expression "puVar12 + 0x17a58" identifier + number_literal) )))) + number_literal) )) - (cast_expression "(int)pcVar7" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uStack_67 = 0;" (assignment_expression "uStack_67 = 0" identifier = number_literal) ;) (expression_statement "puVar10 = &uStack_68;" (assignment_expression "puVar10 = &uStack_68" identifier = (pointer_expression "&uStack_68" & identifier)) ;) (expression_statement "uStack_68 = uVar4;" (assignment_expression "uStack_68 = uVar4" identifier = identifier) ;) }) (else_clause "else {\n    puVar10 = (undefined1 *)puVar5[(int)pcVar7 * 4];\n    iVar6 = *(int *)(puVar12 + 0x17a58) + 0x4874;\n  }" else (compound_statement "{\n    puVar10 = (undefined1 *)puVar5[(int)pcVar7 * 4];\n    iVar6 = *(int *)(puVar12 + 0x17a58) + 0x4874;\n  }" { (expression_statement "puVar10 = (undefined1 *)puVar5[(int)pcVar7 * 4];" (assignment_expression "puVar10 = (undefined1 *)puVar5[(int)pcVar7 * 4]" identifier = (cast_expression "(undefined1 *)puVar5[(int)pcVar7 * 4]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[(int)pcVar7 * 4]" identifier [ (binary_expression "(int)pcVar7 * 4" (cast_expression "(int)pcVar7" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ]))) ;) (expression_statement "iVar6 = *(int *)(puVar12 + 0x17a58) + 0x4874;" (assignment_expression "iVar6 = *(int *)(puVar12 + 0x17a58) + 0x4874" identifier = (binary_expression "*(int *)(puVar12 + 0x17a58) + 0x4874" (pointer_expression "*(int *)(puVar12 + 0x17a58)" * (cast_expression "(int *)(puVar12 + 0x17a58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x17a58)" ( (binary_expression "puVar12 + 0x17a58" identifier + number_literal) )))) + number_literal)) ;) }))) (expression_statement "uVar14 = (**(code **)(puVar12 + 0x17c88))(0,iVar2,5);" (assignment_expression "uVar14 = (**(code **)(puVar12 + 0x17c88))(0,iVar2,5)" identifier = (call_expression "(**(code **)(puVar12 + 0x17c88))(0,iVar2,5)" (parenthesized_expression "(**(code **)(puVar12 + 0x17c88))" ( (pointer_expression "**(code **)(puVar12 + 0x17c88)" * (pointer_expression "*(code **)(puVar12 + 0x17c88)" * (cast_expression "(code **)(puVar12 + 0x17c88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x17c88)" ( (binary_expression "puVar12 + 0x17c88" identifier + number_literal) ))))) )) (argument_list "(0,iVar2,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "(**(code **)(puVar12 + 0x17c54))(uVar8,0,uVar14,iVar6,puVar10,&_gp_1);" (call_expression "(**(code **)(puVar12 + 0x17c54))(uVar8,0,uVar14,iVar6,puVar10,&_gp_1)" (parenthesized_expression "(**(code **)(puVar12 + 0x17c54))" ( (pointer_expression "**(code **)(puVar12 + 0x17c54)" * (pointer_expression "*(code **)(puVar12 + 0x17c54)" * (cast_expression "(code **)(puVar12 + 0x17c54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x17c54)" ( (binary_expression "puVar12 + 0x17c54" identifier + number_literal) ))))) )) (argument_list "(uVar8,0,uVar14,iVar6,puVar10,&_gp_1)" ( identifier , number_literal , identifier , identifier , identifier , (pointer_expression "&_gp_1" & identifier) ))) ;) (expression_statement "uVar9 = (**(code **)(puVar12 + 0x17bb0))();" (assignment_expression "uVar9 = (**(code **)(puVar12 + 0x17bb0))()" identifier = (call_expression "(**(code **)(puVar12 + 0x17bb0))()" (parenthesized_expression "(**(code **)(puVar12 + 0x17bb0))" ( (pointer_expression "**(code **)(puVar12 + 0x17bb0)" * (pointer_expression "*(code **)(puVar12 + 0x17bb0)" * (cast_expression "(code **)(puVar12 + 0x17bb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x17bb0)" ( (binary_expression "puVar12 + 0x17bb0" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (return_statement "return uVar9;" 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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) )))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = 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 )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) }))) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) & LIT) )) < 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 (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) & LIT) )) * LIT)) + LIT) ))))) )))) )) (argument_list ( )))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) < 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 (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) * LIT)) + LIT) ))))) )))) )) (argument_list ( )))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) }))) }))) }))) }))) (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 (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (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 * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;)) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + 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 ( LIT , 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 , LIT , IDENT , IDENT , IDENT , (pointer_expression & IDENT) ))) ;) (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 ( )))) ;) (return_statement return IDENT ;) })))
(function_definition "uint xstrtol(char *param_1,char *param_2,uint param_3,undefined4 *param_4,int param_5)\n\n{\n  int *piVar1;\n  int iVar2;\n  uint uVar3;\n  undefined1 uVar4;\n  undefined4 *puVar5;\n  int iVar6;\n  char *pcVar7;\n  undefined4 uVar8;\n  uint uVar9;\n  undefined1 *puVar10;\n  char *pcVar11;\n  undefined *puVar12;\n  code *pcVar13;\n  undefined4 uVar14;\n  undefined1 uStack_68;\n  undefined1 uStack_67;\n  undefined4 uStack_64;\n  char *pcStack_5c;\n  char *pcStack_58;\n  uint uStack_54;\n  undefined4 *puStack_50;\n  undefined4 uStack_4c;\n  char acStack_2c [4];\n  undefined4 local_28;\n  uint local_24;\n  \n  local_24 = *(uint *)PTR___stack_chk_guard_000353a0;\n  if (0x24 < param_3) {\n    uVar9 = (*(code *)PTR___assert_fail_000352a0)\n                      (PTR_LAB_00035158 + 0x4494,PTR_LAB_00035158 + 0x4484,0x60,\n                       PTR_LAB_00035158 + 0x4808);\n    return uVar9;\n  }\n  if (param_2 == (char *)0x0) {\n    param_2 = acStack_2c;\n  }\n  puVar5 = param_4;\n  piVar1 = (int *)(*(code *)PTR___errno_location_00035310)();\n  *piVar1 = 0;\n  pcVar7 = param_2;\n  local_28 = (*(code *)PTR_strtol_000352ac)(param_1);\n  uVar4 = (undefined1)param_3;\n  pcVar11 = *(char **)param_2;\n  if (pcVar11 == param_1) {\n    uVar9 = 4;\n    if (param_5 != 0) {\n      pcVar7 = (char *)(int)*param_1;\n      if (pcVar7 == (char *)0x0) {\n        uVar9 = 4;\n      }\n      else {\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 != 0) {\n          local_28 = 1;\n          param_1 = (char *)(int)*pcVar11;\n          uVar9 = 0;\n          goto LAB_0001d2fc;\n        }\n        uVar9 = 4;\n      }\n    }\n  }\n  else {\n    if (*piVar1 == 0) {\n      uVar9 = 0;\n    }\n    else {\n      if (*piVar1 != 0x22) {\n        uVar9 = 4;\n        goto LAB_0001d368;\n      }\n      uVar9 = 1;\n    }\n    if (param_5 == 0) {\n      *param_4 = local_28;\n    }\n    else {\n      pcVar7 = (char *)(int)*pcVar11;\n      param_1 = pcVar7;\n      if (pcVar7 == (char *)0x0) {\n        *param_4 = local_28;\n      }\n      else {\nLAB_0001d2fc:\n        pcVar7 = param_1;\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 == 0) {\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n        else {\n          if (((uint)(param_1 + -0x45) & 0xff) < 0x30) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();\n            return uVar9;\n          }\n          pcVar7 = (char *)0x400;\n          param_1 = param_1 + -0x42;\n          if (((uint)param_1 & 0xff) < 0x36) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();\n            return uVar9;\n          }\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n      }\n    }\n  }\nLAB_0001d368:\n  if (local_24 == *(uint *)PTR___stack_chk_guard_000353a0) {\n    return uVar9;\n  }\n  uVar14 = 0x1d6fc;\n  uVar3 = local_24;\n  puVar12 = PTR___stack_chk_fail_00035384;\n  (*(code *)PTR___stack_chk_fail_00035384)();\n  uStack_64 = **(undefined4 **)(puVar12 + 0x17ca0);\n  uVar8 = **(undefined4 **)(puVar12 + 0x17ad8);\n  pcStack_5c = param_2;\n  pcStack_58 = param_1;\n  uStack_54 = uVar9;\n  puStack_50 = param_4;\n  uStack_4c = uVar14;\n  if (uVar3 < 4) {\n    if (uVar3 < 2) {\n      pcVar13 = *(code **)(puVar12 + 0x17bb0);\n      if (uVar3 != 1) goto LAB_0001d7e8;\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4810;\n    }\n    else {\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x484c;\n    }\n  }\n  else {\n    pcVar13 = *(code **)(puVar12 + 0x17bb0);\n    if (uVar3 != 4) {\nLAB_0001d7e8:\n      uVar9 = (*pcVar13)();\n      return uVar9;\n    }\n    iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4830;\n  }\n  if ((int)pcVar7 < 0) {\n    iVar6 = (*(int *)(puVar12 + 0x17a58) + 0x4874) - (int)pcVar7;\n    uStack_67 = 0;\n    puVar10 = &uStack_68;\n    uStack_68 = uVar4;\n  }\n  else {\n    puVar10 = (undefined1 *)puVar5[(int)pcVar7 * 4];\n    iVar6 = *(int *)(puVar12 + 0x17a58) + 0x4874;\n  }\n  uVar14 = (**(code **)(puVar12 + 0x17c88))(0,iVar2,5);\n  (**(code **)(puVar12 + 0x17c54))(uVar8,0,uVar14,iVar6,puVar10,&_gp_1);\n  uVar9 = (**(code **)(puVar12 + 0x17bb0))();\n  return uVar9;\n}" (type_identifier "uint") (function_declarator "xstrtol(char *param_1,char *param_2,uint param_3,undefined4 *param_4,int param_5)" (identifier "xstrtol") (parameter_list "(char *param_1,char *param_2,uint param_3,undefined4 *param_4,int param_5)" (( "(") (parameter_declaration "char *param_1" (primitive_type "char") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "char *param_2" (primitive_type "char") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "uint param_3" (type_identifier "uint") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 *param_4" (type_identifier "undefined4") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "int param_5" (primitive_type "int") (identifier "param_5")) () ")"))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  uint uVar3;\n  undefined1 uVar4;\n  undefined4 *puVar5;\n  int iVar6;\n  char *pcVar7;\n  undefined4 uVar8;\n  uint uVar9;\n  undefined1 *puVar10;\n  char *pcVar11;\n  undefined *puVar12;\n  code *pcVar13;\n  undefined4 uVar14;\n  undefined1 uStack_68;\n  undefined1 uStack_67;\n  undefined4 uStack_64;\n  char *pcStack_5c;\n  char *pcStack_58;\n  uint uStack_54;\n  undefined4 *puStack_50;\n  undefined4 uStack_4c;\n  char acStack_2c [4];\n  undefined4 local_28;\n  uint local_24;\n  \n  local_24 = *(uint *)PTR___stack_chk_guard_000353a0;\n  if (0x24 < param_3) {\n    uVar9 = (*(code *)PTR___assert_fail_000352a0)\n                      (PTR_LAB_00035158 + 0x4494,PTR_LAB_00035158 + 0x4484,0x60,\n                       PTR_LAB_00035158 + 0x4808);\n    return uVar9;\n  }\n  if (param_2 == (char *)0x0) {\n    param_2 = acStack_2c;\n  }\n  puVar5 = param_4;\n  piVar1 = (int *)(*(code *)PTR___errno_location_00035310)();\n  *piVar1 = 0;\n  pcVar7 = param_2;\n  local_28 = (*(code *)PTR_strtol_000352ac)(param_1);\n  uVar4 = (undefined1)param_3;\n  pcVar11 = *(char **)param_2;\n  if (pcVar11 == param_1) {\n    uVar9 = 4;\n    if (param_5 != 0) {\n      pcVar7 = (char *)(int)*param_1;\n      if (pcVar7 == (char *)0x0) {\n        uVar9 = 4;\n      }\n      else {\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 != 0) {\n          local_28 = 1;\n          param_1 = (char *)(int)*pcVar11;\n          uVar9 = 0;\n          goto LAB_0001d2fc;\n        }\n        uVar9 = 4;\n      }\n    }\n  }\n  else {\n    if (*piVar1 == 0) {\n      uVar9 = 0;\n    }\n    else {\n      if (*piVar1 != 0x22) {\n        uVar9 = 4;\n        goto LAB_0001d368;\n      }\n      uVar9 = 1;\n    }\n    if (param_5 == 0) {\n      *param_4 = local_28;\n    }\n    else {\n      pcVar7 = (char *)(int)*pcVar11;\n      param_1 = pcVar7;\n      if (pcVar7 == (char *)0x0) {\n        *param_4 = local_28;\n      }\n      else {\nLAB_0001d2fc:\n        pcVar7 = param_1;\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 == 0) {\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n        else {\n          if (((uint)(param_1 + -0x45) & 0xff) < 0x30) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();\n            return uVar9;\n          }\n          pcVar7 = (char *)0x400;\n          param_1 = param_1 + -0x42;\n          if (((uint)param_1 & 0xff) < 0x36) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();\n            return uVar9;\n          }\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n      }\n    }\n  }\nLAB_0001d368:\n  if (local_24 == *(uint *)PTR___stack_chk_guard_000353a0) {\n    return uVar9;\n  }\n  uVar14 = 0x1d6fc;\n  uVar3 = local_24;\n  puVar12 = PTR___stack_chk_fail_00035384;\n  (*(code *)PTR___stack_chk_fail_00035384)();\n  uStack_64 = **(undefined4 **)(puVar12 + 0x17ca0);\n  uVar8 = **(undefined4 **)(puVar12 + 0x17ad8);\n  pcStack_5c = param_2;\n  pcStack_58 = param_1;\n  uStack_54 = uVar9;\n  puStack_50 = param_4;\n  uStack_4c = uVar14;\n  if (uVar3 < 4) {\n    if (uVar3 < 2) {\n      pcVar13 = *(code **)(puVar12 + 0x17bb0);\n      if (uVar3 != 1) goto LAB_0001d7e8;\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4810;\n    }\n    else {\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x484c;\n    }\n  }\n  else {\n    pcVar13 = *(code **)(puVar12 + 0x17bb0);\n    if (uVar3 != 4) {\nLAB_0001d7e8:\n      uVar9 = (*pcVar13)();\n      return uVar9;\n    }\n    iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4830;\n  }\n  if ((int)pcVar7 < 0) {\n    iVar6 = (*(int *)(puVar12 + 0x17a58) + 0x4874) - (int)pcVar7;\n    uStack_67 = 0;\n    puVar10 = &uStack_68;\n    uStack_68 = uVar4;\n  }\n  else {\n    puVar10 = (undefined1 *)puVar5[(int)pcVar7 * 4];\n    iVar6 = *(int *)(puVar12 + 0x17a58) + 0x4874;\n  }\n  uVar14 = (**(code **)(puVar12 + 0x17c88))(0,iVar2,5);\n  (**(code **)(puVar12 + 0x17c54))(uVar8,0,uVar14,iVar6,puVar10,&_gp_1);\n  uVar9 = (**(code **)(puVar12 + 0x17bb0))();\n  return uVar9;\n}" ({ "{") (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "undefined1 uVar4;" (type_identifier "undefined1") (identifier "uVar4") (; ";")) (declaration "undefined4 *puVar5;" (type_identifier "undefined4") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "char *pcVar7;" (primitive_type "char") (pointer_declarator "*pcVar7" (* "*") (identifier "pcVar7")) (; ";")) (declaration "undefined4 uVar8;" (type_identifier "undefined4") (identifier "uVar8") (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "undefined1 *puVar10;" (type_identifier "undefined1") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "char *pcVar11;" (primitive_type "char") (pointer_declarator "*pcVar11" (* "*") (identifier "pcVar11")) (; ";")) (declaration "undefined *puVar12;" (type_identifier "undefined") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "code *pcVar13;" (type_identifier "code") (pointer_declarator "*pcVar13" (* "*") (identifier "pcVar13")) (; ";")) (declaration "undefined4 uVar14;" (type_identifier "undefined4") (identifier "uVar14") (; ";")) (declaration "undefined1 uStack_68;" (type_identifier "undefined1") (identifier "uStack_68") (; ";")) (declaration "undefined1 uStack_67;" (type_identifier "undefined1") (identifier "uStack_67") (; ";")) (declaration "undefined4 uStack_64;" (type_identifier "undefined4") (identifier "uStack_64") (; ";")) (declaration "char *pcStack_5c;" (primitive_type "char") (pointer_declarator "*pcStack_5c" (* "*") (identifier "pcStack_5c")) (; ";")) (declaration "char *pcStack_58;" (primitive_type "char") (pointer_declarator "*pcStack_58" (* "*") (identifier "pcStack_58")) (; ";")) (declaration "uint uStack_54;" (type_identifier "uint") (identifier "uStack_54") (; ";")) (declaration "undefined4 *puStack_50;" (type_identifier "undefined4") (pointer_declarator "*puStack_50" (* "*") (identifier "puStack_50")) (; ";")) (declaration "undefined4 uStack_4c;" (type_identifier "undefined4") (identifier "uStack_4c") (; ";")) (declaration "char acStack_2c [4];" (primitive_type "char") (array_declarator "acStack_2c [4]" (identifier "acStack_2c") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined4 local_28;" (type_identifier "undefined4") (identifier "local_28") (; ";")) (declaration "uint local_24;" (type_identifier "uint") (identifier "local_24") (; ";")) (expression_statement "local_24 = *(uint *)PTR___stack_chk_guard_000353a0;" (assignment_expression "local_24 = *(uint *)PTR___stack_chk_guard_000353a0" (identifier "local_24") (= "=") (pointer_expression "*(uint *)PTR___stack_chk_guard_000353a0" (* "*") (cast_expression "(uint *)PTR___stack_chk_guard_000353a0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_000353a0")))) (; ";")) (if_statement "if (0x24 < param_3) {\n    uVar9 = (*(code *)PTR___assert_fail_000352a0)\n                      (PTR_LAB_00035158 + 0x4494,PTR_LAB_00035158 + 0x4484,0x60,\n                       PTR_LAB_00035158 + 0x4808);\n    return uVar9;\n  }" (if "if") (parenthesized_expression "(0x24 < param_3)" (( "(") (binary_expression "0x24 < param_3" (number_literal "0x24") (< "<") (identifier "param_3")) () ")")) (compound_statement "{\n    uVar9 = (*(code *)PTR___assert_fail_000352a0)\n                      (PTR_LAB_00035158 + 0x4494,PTR_LAB_00035158 + 0x4484,0x60,\n                       PTR_LAB_00035158 + 0x4808);\n    return uVar9;\n  }" ({ "{") (expression_statement "uVar9 = (*(code *)PTR___assert_fail_000352a0)\n                      (PTR_LAB_00035158 + 0x4494,PTR_LAB_00035158 + 0x4484,0x60,\n                       PTR_LAB_00035158 + 0x4808);" (assignment_expression "uVar9 = (*(code *)PTR___assert_fail_000352a0)\n                      (PTR_LAB_00035158 + 0x4494,PTR_LAB_00035158 + 0x4484,0x60,\n                       PTR_LAB_00035158 + 0x4808)" (identifier "uVar9") (= "=") (call_expression "(*(code *)PTR___assert_fail_000352a0)\n                      (PTR_LAB_00035158 + 0x4494,PTR_LAB_00035158 + 0x4484,0x60,\n                       PTR_LAB_00035158 + 0x4808)" (parenthesized_expression "(*(code *)PTR___assert_fail_000352a0)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_000352a0" (* "*") (cast_expression "(code *)PTR___assert_fail_000352a0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_000352a0"))) () ")")) (argument_list "(PTR_LAB_00035158 + 0x4494,PTR_LAB_00035158 + 0x4484,0x60,\n                       PTR_LAB_00035158 + 0x4808)" (( "(") (binary_expression "PTR_LAB_00035158 + 0x4494" (identifier "PTR_LAB_00035158") (+ "+") (number_literal "0x4494")) (, ",") (binary_expression "PTR_LAB_00035158 + 0x4484" (identifier "PTR_LAB_00035158") (+ "+") (number_literal "0x4484")) (, ",") (number_literal "0x60") (, ",") (binary_expression "PTR_LAB_00035158 + 0x4808" (identifier "PTR_LAB_00035158") (+ "+") (number_literal "0x4808")) () ")")))) (; ";")) (return_statement "return uVar9;" (return "return") (identifier "uVar9") (; ";")) (} "}"))) (if_statement "if (param_2 == (char *)0x0) {\n    param_2 = acStack_2c;\n  }" (if "if") (parenthesized_expression "(param_2 == (char *)0x0)" (( "(") (binary_expression "param_2 == (char *)0x0" (identifier "param_2") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    param_2 = acStack_2c;\n  }" ({ "{") (expression_statement "param_2 = acStack_2c;" (assignment_expression "param_2 = acStack_2c" (identifier "param_2") (= "=") (identifier "acStack_2c")) (; ";")) (} "}"))) (expression_statement "puVar5 = param_4;" (assignment_expression "puVar5 = param_4" (identifier "puVar5") (= "=") (identifier "param_4")) (; ";")) (expression_statement "piVar1 = (int *)(*(code *)PTR___errno_location_00035310)();" (assignment_expression "piVar1 = (int *)(*(code *)PTR___errno_location_00035310)()" (identifier "piVar1") (= "=") (cast_expression "(int *)(*(code *)PTR___errno_location_00035310)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_00035310)()" (parenthesized_expression "(*(code *)PTR___errno_location_00035310)" (( "(") (pointer_expression "*(code *)PTR___errno_location_00035310" (* "*") (cast_expression "(code *)PTR___errno_location_00035310" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_00035310"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "*piVar1 = 0;" (assignment_expression "*piVar1 = 0" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar7 = param_2;" (assignment_expression "pcVar7 = param_2" (identifier "pcVar7") (= "=") (identifier "param_2")) (; ";")) (expression_statement "local_28 = (*(code *)PTR_strtol_000352ac)(param_1);" (assignment_expression "local_28 = (*(code *)PTR_strtol_000352ac)(param_1)" (identifier "local_28") (= "=") (call_expression "(*(code *)PTR_strtol_000352ac)(param_1)" (parenthesized_expression "(*(code *)PTR_strtol_000352ac)" (( "(") (pointer_expression "*(code *)PTR_strtol_000352ac" (* "*") (cast_expression "(code *)PTR_strtol_000352ac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strtol_000352ac"))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "uVar4 = (undefined1)param_3;" (assignment_expression "uVar4 = (undefined1)param_3" (identifier "uVar4") (= "=") (cast_expression "(undefined1)param_3" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "param_3"))) (; ";")) (expression_statement "pcVar11 = *(char **)param_2;" (assignment_expression "pcVar11 = *(char **)param_2" (identifier "pcVar11") (= "=") (pointer_expression "*(char **)param_2" (* "*") (cast_expression "(char **)param_2" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "param_2")))) (; ";")) (if_statement "if (pcVar11 == param_1) {\n    uVar9 = 4;\n    if (param_5 != 0) {\n      pcVar7 = (char *)(int)*param_1;\n      if (pcVar7 == (char *)0x0) {\n        uVar9 = 4;\n      }\n      else {\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 != 0) {\n          local_28 = 1;\n          param_1 = (char *)(int)*pcVar11;\n          uVar9 = 0;\n          goto LAB_0001d2fc;\n        }\n        uVar9 = 4;\n      }\n    }\n  }\n  else {\n    if (*piVar1 == 0) {\n      uVar9 = 0;\n    }\n    else {\n      if (*piVar1 != 0x22) {\n        uVar9 = 4;\n        goto LAB_0001d368;\n      }\n      uVar9 = 1;\n    }\n    if (param_5 == 0) {\n      *param_4 = local_28;\n    }\n    else {\n      pcVar7 = (char *)(int)*pcVar11;\n      param_1 = pcVar7;\n      if (pcVar7 == (char *)0x0) {\n        *param_4 = local_28;\n      }\n      else {\nLAB_0001d2fc:\n        pcVar7 = param_1;\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 == 0) {\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n        else {\n          if (((uint)(param_1 + -0x45) & 0xff) < 0x30) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();\n            return uVar9;\n          }\n          pcVar7 = (char *)0x400;\n          param_1 = param_1 + -0x42;\n          if (((uint)param_1 & 0xff) < 0x36) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();\n            return uVar9;\n          }\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n      }\n    }\n  }" (if "if") (parenthesized_expression "(pcVar11 == param_1)" (( "(") (binary_expression "pcVar11 == param_1" (identifier "pcVar11") (== "==") (identifier "param_1")) () ")")) (compound_statement "{\n    uVar9 = 4;\n    if (param_5 != 0) {\n      pcVar7 = (char *)(int)*param_1;\n      if (pcVar7 == (char *)0x0) {\n        uVar9 = 4;\n      }\n      else {\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 != 0) {\n          local_28 = 1;\n          param_1 = (char *)(int)*pcVar11;\n          uVar9 = 0;\n          goto LAB_0001d2fc;\n        }\n        uVar9 = 4;\n      }\n    }\n  }" ({ "{") (expression_statement "uVar9 = 4;" (assignment_expression "uVar9 = 4" (identifier "uVar9") (= "=") (number_literal "4")) (; ";")) (if_statement "if (param_5 != 0) {\n      pcVar7 = (char *)(int)*param_1;\n      if (pcVar7 == (char *)0x0) {\n        uVar9 = 4;\n      }\n      else {\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 != 0) {\n          local_28 = 1;\n          param_1 = (char *)(int)*pcVar11;\n          uVar9 = 0;\n          goto LAB_0001d2fc;\n        }\n        uVar9 = 4;\n      }\n    }" (if "if") (parenthesized_expression "(param_5 != 0)" (( "(") (binary_expression "param_5 != 0" (identifier "param_5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar7 = (char *)(int)*param_1;\n      if (pcVar7 == (char *)0x0) {\n        uVar9 = 4;\n      }\n      else {\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 != 0) {\n          local_28 = 1;\n          param_1 = (char *)(int)*pcVar11;\n          uVar9 = 0;\n          goto LAB_0001d2fc;\n        }\n        uVar9 = 4;\n      }\n    }" ({ "{") (expression_statement "pcVar7 = (char *)(int)*param_1;" (assignment_expression "pcVar7 = (char *)(int)*param_1" (identifier "pcVar7") (= "=") (cast_expression "(char *)(int)*param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(int)*param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1"))))) (; ";")) (if_statement "if (pcVar7 == (char *)0x0) {\n        uVar9 = 4;\n      }\n      else {\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 != 0) {\n          local_28 = 1;\n          param_1 = (char *)(int)*pcVar11;\n          uVar9 = 0;\n          goto LAB_0001d2fc;\n        }\n        uVar9 = 4;\n      }" (if "if") (parenthesized_expression "(pcVar7 == (char *)0x0)" (( "(") (binary_expression "pcVar7 == (char *)0x0" (identifier "pcVar7") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        uVar9 = 4;\n      }" ({ "{") (expression_statement "uVar9 = 4;" (assignment_expression "uVar9 = 4" (identifier "uVar9") (= "=") (number_literal "4")) (; ";")) (} "}")) (else_clause "else {\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 != 0) {\n          local_28 = 1;\n          param_1 = (char *)(int)*pcVar11;\n          uVar9 = 0;\n          goto LAB_0001d2fc;\n        }\n        uVar9 = 4;\n      }" (else "else") (compound_statement "{\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 != 0) {\n          local_28 = 1;\n          param_1 = (char *)(int)*pcVar11;\n          uVar9 = 0;\n          goto LAB_0001d2fc;\n        }\n        uVar9 = 4;\n      }" ({ "{") (expression_statement "iVar2 = (*(code *)PTR_strchr_00035334)(param_5);" (assignment_expression "iVar2 = (*(code *)PTR_strchr_00035334)(param_5)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_strchr_00035334)(param_5)" (parenthesized_expression "(*(code *)PTR_strchr_00035334)" (( "(") (pointer_expression "*(code *)PTR_strchr_00035334" (* "*") (cast_expression "(code *)PTR_strchr_00035334" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strchr_00035334"))) () ")")) (argument_list "(param_5)" (( "(") (identifier "param_5") () ")")))) (; ";")) (if_statement "if (iVar2 != 0) {\n          local_28 = 1;\n          param_1 = (char *)(int)*pcVar11;\n          uVar9 = 0;\n          goto LAB_0001d2fc;\n        }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          local_28 = 1;\n          param_1 = (char *)(int)*pcVar11;\n          uVar9 = 0;\n          goto LAB_0001d2fc;\n        }" ({ "{") (expression_statement "local_28 = 1;" (assignment_expression "local_28 = 1" (identifier "local_28") (= "=") (number_literal "1")) (; ";")) (expression_statement "param_1 = (char *)(int)*pcVar11;" (assignment_expression "param_1 = (char *)(int)*pcVar11" (identifier "param_1") (= "=") (cast_expression "(char *)(int)*pcVar11" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(int)*pcVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11"))))) (; ";")) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0001d2fc;" (goto "goto") (statement_identifier "LAB_0001d2fc") (; ";")) (} "}"))) (expression_statement "uVar9 = 4;" (assignment_expression "uVar9 = 4" (identifier "uVar9") (= "=") (number_literal "4")) (; ";")) (} "}")))) (} "}"))) (} "}")) (else_clause "else {\n    if (*piVar1 == 0) {\n      uVar9 = 0;\n    }\n    else {\n      if (*piVar1 != 0x22) {\n        uVar9 = 4;\n        goto LAB_0001d368;\n      }\n      uVar9 = 1;\n    }\n    if (param_5 == 0) {\n      *param_4 = local_28;\n    }\n    else {\n      pcVar7 = (char *)(int)*pcVar11;\n      param_1 = pcVar7;\n      if (pcVar7 == (char *)0x0) {\n        *param_4 = local_28;\n      }\n      else {\nLAB_0001d2fc:\n        pcVar7 = param_1;\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 == 0) {\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n        else {\n          if (((uint)(param_1 + -0x45) & 0xff) < 0x30) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();\n            return uVar9;\n          }\n          pcVar7 = (char *)0x400;\n          param_1 = param_1 + -0x42;\n          if (((uint)param_1 & 0xff) < 0x36) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();\n            return uVar9;\n          }\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n      }\n    }\n  }" (else "else") (compound_statement "{\n    if (*piVar1 == 0) {\n      uVar9 = 0;\n    }\n    else {\n      if (*piVar1 != 0x22) {\n        uVar9 = 4;\n        goto LAB_0001d368;\n      }\n      uVar9 = 1;\n    }\n    if (param_5 == 0) {\n      *param_4 = local_28;\n    }\n    else {\n      pcVar7 = (char *)(int)*pcVar11;\n      param_1 = pcVar7;\n      if (pcVar7 == (char *)0x0) {\n        *param_4 = local_28;\n      }\n      else {\nLAB_0001d2fc:\n        pcVar7 = param_1;\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 == 0) {\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n        else {\n          if (((uint)(param_1 + -0x45) & 0xff) < 0x30) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();\n            return uVar9;\n          }\n          pcVar7 = (char *)0x400;\n          param_1 = param_1 + -0x42;\n          if (((uint)param_1 & 0xff) < 0x36) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();\n            return uVar9;\n          }\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n      }\n    }\n  }" ({ "{") (if_statement "if (*piVar1 == 0) {\n      uVar9 = 0;\n    }\n    else {\n      if (*piVar1 != 0x22) {\n        uVar9 = 4;\n        goto LAB_0001d368;\n      }\n      uVar9 = 1;\n    }" (if "if") (parenthesized_expression "(*piVar1 == 0)" (( "(") (binary_expression "*piVar1 == 0" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar9 = 0;\n    }" ({ "{") (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      if (*piVar1 != 0x22) {\n        uVar9 = 4;\n        goto LAB_0001d368;\n      }\n      uVar9 = 1;\n    }" (else "else") (compound_statement "{\n      if (*piVar1 != 0x22) {\n        uVar9 = 4;\n        goto LAB_0001d368;\n      }\n      uVar9 = 1;\n    }" ({ "{") (if_statement "if (*piVar1 != 0x22) {\n        uVar9 = 4;\n        goto LAB_0001d368;\n      }" (if "if") (parenthesized_expression "(*piVar1 != 0x22)" (( "(") (binary_expression "*piVar1 != 0x22" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (!= "!=") (number_literal "0x22")) () ")")) (compound_statement "{\n        uVar9 = 4;\n        goto LAB_0001d368;\n      }" ({ "{") (expression_statement "uVar9 = 4;" (assignment_expression "uVar9 = 4" (identifier "uVar9") (= "=") (number_literal "4")) (; ";")) (goto_statement "goto LAB_0001d368;" (goto "goto") (statement_identifier "LAB_0001d368") (; ";")) (} "}"))) (expression_statement "uVar9 = 1;" (assignment_expression "uVar9 = 1" (identifier "uVar9") (= "=") (number_literal "1")) (; ";")) (} "}")))) (if_statement "if (param_5 == 0) {\n      *param_4 = local_28;\n    }\n    else {\n      pcVar7 = (char *)(int)*pcVar11;\n      param_1 = pcVar7;\n      if (pcVar7 == (char *)0x0) {\n        *param_4 = local_28;\n      }\n      else {\nLAB_0001d2fc:\n        pcVar7 = param_1;\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 == 0) {\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n        else {\n          if (((uint)(param_1 + -0x45) & 0xff) < 0x30) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();\n            return uVar9;\n          }\n          pcVar7 = (char *)0x400;\n          param_1 = param_1 + -0x42;\n          if (((uint)param_1 & 0xff) < 0x36) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();\n            return uVar9;\n          }\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n      }\n    }" (if "if") (parenthesized_expression "(param_5 == 0)" (( "(") (binary_expression "param_5 == 0" (identifier "param_5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      *param_4 = local_28;\n    }" ({ "{") (expression_statement "*param_4 = local_28;" (assignment_expression "*param_4 = local_28" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (identifier "local_28")) (; ";")) (} "}")) (else_clause "else {\n      pcVar7 = (char *)(int)*pcVar11;\n      param_1 = pcVar7;\n      if (pcVar7 == (char *)0x0) {\n        *param_4 = local_28;\n      }\n      else {\nLAB_0001d2fc:\n        pcVar7 = param_1;\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 == 0) {\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n        else {\n          if (((uint)(param_1 + -0x45) & 0xff) < 0x30) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();\n            return uVar9;\n          }\n          pcVar7 = (char *)0x400;\n          param_1 = param_1 + -0x42;\n          if (((uint)param_1 & 0xff) < 0x36) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();\n            return uVar9;\n          }\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n      }\n    }" (else "else") (compound_statement "{\n      pcVar7 = (char *)(int)*pcVar11;\n      param_1 = pcVar7;\n      if (pcVar7 == (char *)0x0) {\n        *param_4 = local_28;\n      }\n      else {\nLAB_0001d2fc:\n        pcVar7 = param_1;\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 == 0) {\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n        else {\n          if (((uint)(param_1 + -0x45) & 0xff) < 0x30) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();\n            return uVar9;\n          }\n          pcVar7 = (char *)0x400;\n          param_1 = param_1 + -0x42;\n          if (((uint)param_1 & 0xff) < 0x36) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();\n            return uVar9;\n          }\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n      }\n    }" ({ "{") (expression_statement "pcVar7 = (char *)(int)*pcVar11;" (assignment_expression "pcVar7 = (char *)(int)*pcVar11" (identifier "pcVar7") (= "=") (cast_expression "(char *)(int)*pcVar11" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(int)*pcVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11"))))) (; ";")) (expression_statement "param_1 = pcVar7;" (assignment_expression "param_1 = pcVar7" (identifier "param_1") (= "=") (identifier "pcVar7")) (; ";")) (if_statement "if (pcVar7 == (char *)0x0) {\n        *param_4 = local_28;\n      }\n      else {\nLAB_0001d2fc:\n        pcVar7 = param_1;\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 == 0) {\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n        else {\n          if (((uint)(param_1 + -0x45) & 0xff) < 0x30) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();\n            return uVar9;\n          }\n          pcVar7 = (char *)0x400;\n          param_1 = param_1 + -0x42;\n          if (((uint)param_1 & 0xff) < 0x36) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();\n            return uVar9;\n          }\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n      }" (if "if") (parenthesized_expression "(pcVar7 == (char *)0x0)" (( "(") (binary_expression "pcVar7 == (char *)0x0" (identifier "pcVar7") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        *param_4 = local_28;\n      }" ({ "{") (expression_statement "*param_4 = local_28;" (assignment_expression "*param_4 = local_28" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (identifier "local_28")) (; ";")) (} "}")) (else_clause "else {\nLAB_0001d2fc:\n        pcVar7 = param_1;\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 == 0) {\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n        else {\n          if (((uint)(param_1 + -0x45) & 0xff) < 0x30) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();\n            return uVar9;\n          }\n          pcVar7 = (char *)0x400;\n          param_1 = param_1 + -0x42;\n          if (((uint)param_1 & 0xff) < 0x36) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();\n            return uVar9;\n          }\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n      }" (else "else") (compound_statement "{\nLAB_0001d2fc:\n        pcVar7 = param_1;\n        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);\n        if (iVar2 == 0) {\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n        else {\n          if (((uint)(param_1 + -0x45) & 0xff) < 0x30) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();\n            return uVar9;\n          }\n          pcVar7 = (char *)0x400;\n          param_1 = param_1 + -0x42;\n          if (((uint)param_1 & 0xff) < 0x36) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();\n            return uVar9;\n          }\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n      }" ({ "{") (labeled_statement "LAB_0001d2fc:\n        pcVar7 = param_1;" (statement_identifier "LAB_0001d2fc") (: ":") (expression_statement "pcVar7 = param_1;" (assignment_expression "pcVar7 = param_1" (identifier "pcVar7") (= "=") (identifier "param_1")) (; ";"))) (expression_statement "iVar2 = (*(code *)PTR_strchr_00035334)(param_5);" (assignment_expression "iVar2 = (*(code *)PTR_strchr_00035334)(param_5)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_strchr_00035334)(param_5)" (parenthesized_expression "(*(code *)PTR_strchr_00035334)" (( "(") (pointer_expression "*(code *)PTR_strchr_00035334" (* "*") (cast_expression "(code *)PTR_strchr_00035334" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strchr_00035334"))) () ")")) (argument_list "(param_5)" (( "(") (identifier "param_5") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }\n        else {\n          if (((uint)(param_1 + -0x45) & 0xff) < 0x30) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();\n            return uVar9;\n          }\n          pcVar7 = (char *)0x400;\n          param_1 = param_1 + -0x42;\n          if (((uint)param_1 & 0xff) < 0x36) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();\n            return uVar9;\n          }\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }" ({ "{") (expression_statement "*param_4 = local_28;" (assignment_expression "*param_4 = local_28" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (identifier "local_28")) (; ";")) (expression_statement "uVar9 = uVar9 | 2;" (assignment_expression "uVar9 = uVar9 | 2" (identifier "uVar9") (= "=") (binary_expression "uVar9 | 2" (identifier "uVar9") (| "|") (number_literal "2"))) (; ";")) (} "}")) (else_clause "else {\n          if (((uint)(param_1 + -0x45) & 0xff) < 0x30) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();\n            return uVar9;\n          }\n          pcVar7 = (char *)0x400;\n          param_1 = param_1 + -0x42;\n          if (((uint)param_1 & 0xff) < 0x36) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();\n            return uVar9;\n          }\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }" (else "else") (compound_statement "{\n          if (((uint)(param_1 + -0x45) & 0xff) < 0x30) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();\n            return uVar9;\n          }\n          pcVar7 = (char *)0x400;\n          param_1 = param_1 + -0x42;\n          if (((uint)param_1 & 0xff) < 0x36) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();\n            return uVar9;\n          }\n          *param_4 = local_28;\n          uVar9 = uVar9 | 2;\n        }" ({ "{") (if_statement "if (((uint)(param_1 + -0x45) & 0xff) < 0x30) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();\n            return uVar9;\n          }" (if "if") (parenthesized_expression "(((uint)(param_1 + -0x45) & 0xff) < 0x30)" (( "(") (binary_expression "((uint)(param_1 + -0x45) & 0xff) < 0x30" (parenthesized_expression "((uint)(param_1 + -0x45) & 0xff)" (( "(") (binary_expression "(uint)(param_1 + -0x45) & 0xff" (call_expression "(uint)(param_1 + -0x45)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_1 + -0x45)" (( "(") (binary_expression "param_1 + -0x45" (identifier "param_1") (+ "+") (number_literal "-0x45")) () ")"))) (& "&") (number_literal "0xff")) () ")")) (< "<") (number_literal "0x30")) () ")")) (compound_statement "{\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();\n            return uVar9;\n          }" ({ "{") (expression_statement "uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();" (assignment_expression "uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))()" (identifier "uVar9") (= "=") (call_expression "(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))" (( "(") (pointer_expression "*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670))" (* "*") (cast_expression "(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670))" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670))" (( "(") (binary_expression "&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)" (pointer_expression "&_gp_1" (& "&") (identifier "_gp_1")) (+ "+") (pointer_expression "*(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)" (* "*") (cast_expression "(int *)(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)" (( "(") (binary_expression "PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670" (binary_expression "PTR_LAB_00035158 +\n                                                ((uint)(param_1 + -0x45) & 0xff) * 4" (identifier "PTR_LAB_00035158") (+ "+") (binary_expression "((uint)(param_1 + -0x45) & 0xff) * 4" (parenthesized_expression "((uint)(param_1 + -0x45) & 0xff)" (( "(") (binary_expression "(uint)(param_1 + -0x45) & 0xff" (call_expression "(uint)(param_1 + -0x45)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_1 + -0x45)" (( "(") (binary_expression "param_1 + -0x45" (identifier "param_1") (+ "+") (number_literal "-0x45")) () ")"))) (& "&") (number_literal "0xff")) () ")")) (* "*") (number_literal "4"))) (+ "+") (number_literal "0x4670")) () ")"))))) () ")")))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return uVar9;" (return "return") (identifier "uVar9") (; ";")) (} "}"))) (expression_statement "pcVar7 = (char *)0x400;" (assignment_expression "pcVar7 = (char *)0x400" (identifier "pcVar7") (= "=") (cast_expression "(char *)0x400" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x400"))) (; ";")) (expression_statement "param_1 = param_1 + -0x42;" (assignment_expression "param_1 = param_1 + -0x42" (identifier "param_1") (= "=") (binary_expression "param_1 + -0x42" (identifier "param_1") (+ "+") (number_literal "-0x42"))) (; ";")) (if_statement "if (((uint)param_1 & 0xff) < 0x36) {\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();\n            return uVar9;\n          }" (if "if") (parenthesized_expression "(((uint)param_1 & 0xff) < 0x36)" (( "(") (binary_expression "((uint)param_1 & 0xff) < 0x36" (parenthesized_expression "((uint)param_1 & 0xff)" (( "(") (binary_expression "(uint)param_1 & 0xff" (cast_expression "(uint)param_1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_1")) (& "&") (number_literal "0xff")) () ")")) (< "<") (number_literal "0x36")) () ")")) (compound_statement "{\n                    \n                    \n            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();\n            return uVar9;\n          }" ({ "{") (expression_statement "uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();" (assignment_expression "uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))()" (identifier "uVar9") (= "=") (call_expression "(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))" (( "(") (pointer_expression "*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730))" (* "*") (cast_expression "(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730))" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730))" (( "(") (binary_expression "&_gp_1 + *(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)" (pointer_expression "&_gp_1" (& "&") (identifier "_gp_1")) (+ "+") (pointer_expression "*(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)" (* "*") (cast_expression "(int *)(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730)" (( "(") (binary_expression "PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4 + 0x4730" (binary_expression "PTR_LAB_00035158 +\n                                                ((uint)param_1 & 0xff) * 4" (identifier "PTR_LAB_00035158") (+ "+") (binary_expression "((uint)param_1 & 0xff) * 4" (parenthesized_expression "((uint)param_1 & 0xff)" (( "(") (binary_expression "(uint)param_1 & 0xff" (cast_expression "(uint)param_1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_1")) (& "&") (number_literal "0xff")) () ")")) (* "*") (number_literal "4"))) (+ "+") (number_literal "0x4730")) () ")"))))) () ")")))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return uVar9;" (return "return") (identifier "uVar9") (; ";")) (} "}"))) (expression_statement "*param_4 = local_28;" (assignment_expression "*param_4 = local_28" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (identifier "local_28")) (; ";")) (expression_statement "uVar9 = uVar9 | 2;" (assignment_expression "uVar9 = uVar9 | 2" (identifier "uVar9") (= "=") (binary_expression "uVar9 | 2" (identifier "uVar9") (| "|") (number_literal "2"))) (; ";")) (} "}")))) (} "}")))) (} "}")))) (} "}")))) (labeled_statement "LAB_0001d368:\n  if (local_24 == *(uint *)PTR___stack_chk_guard_000353a0) {\n    return uVar9;\n  }" (statement_identifier "LAB_0001d368") (: ":") (if_statement "if (local_24 == *(uint *)PTR___stack_chk_guard_000353a0) {\n    return uVar9;\n  }" (if "if") (parenthesized_expression "(local_24 == *(uint *)PTR___stack_chk_guard_000353a0)" (( "(") (binary_expression "local_24 == *(uint *)PTR___stack_chk_guard_000353a0" (identifier "local_24") (== "==") (pointer_expression "*(uint *)PTR___stack_chk_guard_000353a0" (* "*") (cast_expression "(uint *)PTR___stack_chk_guard_000353a0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_000353a0")))) () ")")) (compound_statement "{\n    return uVar9;\n  }" ({ "{") (return_statement "return uVar9;" (return "return") (identifier "uVar9") (; ";")) (} "}")))) (expression_statement "uVar14 = 0x1d6fc;" (assignment_expression "uVar14 = 0x1d6fc" (identifier "uVar14") (= "=") (number_literal "0x1d6fc")) (; ";")) (expression_statement "uVar3 = local_24;" (assignment_expression "uVar3 = local_24" (identifier "uVar3") (= "=") (identifier "local_24")) (; ";")) (expression_statement "puVar12 = PTR___stack_chk_fail_00035384;" (assignment_expression "puVar12 = PTR___stack_chk_fail_00035384" (identifier "puVar12") (= "=") (identifier "PTR___stack_chk_fail_00035384")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_00035384)();" (call_expression "(*(code *)PTR___stack_chk_fail_00035384)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00035384)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_00035384" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_00035384" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_00035384"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uStack_64 = **(undefined4 **)(puVar12 + 0x17ca0);" (assignment_expression "uStack_64 = **(undefined4 **)(puVar12 + 0x17ca0)" (identifier "uStack_64") (= "=") (pointer_expression "**(undefined4 **)(puVar12 + 0x17ca0)" (* "*") (pointer_expression "*(undefined4 **)(puVar12 + 0x17ca0)" (* "*") (cast_expression "(undefined4 **)(puVar12 + 0x17ca0)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar12 + 0x17ca0)" (( "(") (binary_expression "puVar12 + 0x17ca0" (identifier "puVar12") (+ "+") (number_literal "0x17ca0")) () ")")))))) (; ";")) (expression_statement "uVar8 = **(undefined4 **)(puVar12 + 0x17ad8);" (assignment_expression "uVar8 = **(undefined4 **)(puVar12 + 0x17ad8)" (identifier "uVar8") (= "=") (pointer_expression "**(undefined4 **)(puVar12 + 0x17ad8)" (* "*") (pointer_expression "*(undefined4 **)(puVar12 + 0x17ad8)" (* "*") (cast_expression "(undefined4 **)(puVar12 + 0x17ad8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar12 + 0x17ad8)" (( "(") (binary_expression "puVar12 + 0x17ad8" (identifier "puVar12") (+ "+") (number_literal "0x17ad8")) () ")")))))) (; ";")) (expression_statement "pcStack_5c = param_2;" (assignment_expression "pcStack_5c = param_2" (identifier "pcStack_5c") (= "=") (identifier "param_2")) (; ";")) (expression_statement "pcStack_58 = param_1;" (assignment_expression "pcStack_58 = param_1" (identifier "pcStack_58") (= "=") (identifier "param_1")) (; ";")) (expression_statement "uStack_54 = uVar9;" (assignment_expression "uStack_54 = uVar9" (identifier "uStack_54") (= "=") (identifier "uVar9")) (; ";")) (expression_statement "puStack_50 = param_4;" (assignment_expression "puStack_50 = param_4" (identifier "puStack_50") (= "=") (identifier "param_4")) (; ";")) (expression_statement "uStack_4c = uVar14;" (assignment_expression "uStack_4c = uVar14" (identifier "uStack_4c") (= "=") (identifier "uVar14")) (; ";")) (if_statement "if (uVar3 < 4) {\n    if (uVar3 < 2) {\n      pcVar13 = *(code **)(puVar12 + 0x17bb0);\n      if (uVar3 != 1) goto LAB_0001d7e8;\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4810;\n    }\n    else {\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x484c;\n    }\n  }\n  else {\n    pcVar13 = *(code **)(puVar12 + 0x17bb0);\n    if (uVar3 != 4) {\nLAB_0001d7e8:\n      uVar9 = (*pcVar13)();\n      return uVar9;\n    }\n    iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4830;\n  }" (if "if") (parenthesized_expression "(uVar3 < 4)" (( "(") (binary_expression "uVar3 < 4" (identifier "uVar3") (< "<") (number_literal "4")) () ")")) (compound_statement "{\n    if (uVar3 < 2) {\n      pcVar13 = *(code **)(puVar12 + 0x17bb0);\n      if (uVar3 != 1) goto LAB_0001d7e8;\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4810;\n    }\n    else {\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x484c;\n    }\n  }" ({ "{") (if_statement "if (uVar3 < 2) {\n      pcVar13 = *(code **)(puVar12 + 0x17bb0);\n      if (uVar3 != 1) goto LAB_0001d7e8;\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4810;\n    }\n    else {\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x484c;\n    }" (if "if") (parenthesized_expression "(uVar3 < 2)" (( "(") (binary_expression "uVar3 < 2" (identifier "uVar3") (< "<") (number_literal "2")) () ")")) (compound_statement "{\n      pcVar13 = *(code **)(puVar12 + 0x17bb0);\n      if (uVar3 != 1) goto LAB_0001d7e8;\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4810;\n    }" ({ "{") (expression_statement "pcVar13 = *(code **)(puVar12 + 0x17bb0);" (assignment_expression "pcVar13 = *(code **)(puVar12 + 0x17bb0)" (identifier "pcVar13") (= "=") (pointer_expression "*(code **)(puVar12 + 0x17bb0)" (* "*") (cast_expression "(code **)(puVar12 + 0x17bb0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar12 + 0x17bb0)" (( "(") (binary_expression "puVar12 + 0x17bb0" (identifier "puVar12") (+ "+") (number_literal "0x17bb0")) () ")"))))) (; ";")) (if_statement "if (uVar3 != 1) goto LAB_0001d7e8;" (if "if") (parenthesized_expression "(uVar3 != 1)" (( "(") (binary_expression "uVar3 != 1" (identifier "uVar3") (!= "!=") (number_literal "1")) () ")")) (goto_statement "goto LAB_0001d7e8;" (goto "goto") (statement_identifier "LAB_0001d7e8") (; ";"))) (expression_statement "iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4810;" (assignment_expression "iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4810" (identifier "iVar2") (= "=") (binary_expression "*(int *)(puVar12 + 0x17a58) + 0x4810" (pointer_expression "*(int *)(puVar12 + 0x17a58)" (* "*") (cast_expression "(int *)(puVar12 + 0x17a58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 0x17a58)" (( "(") (binary_expression "puVar12 + 0x17a58" (identifier "puVar12") (+ "+") (number_literal "0x17a58")) () ")")))) (+ "+") (number_literal "0x4810"))) (; ";")) (} "}")) (else_clause "else {\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x484c;\n    }" (else "else") (compound_statement "{\n      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x484c;\n    }" ({ "{") (expression_statement "iVar2 = *(int *)(puVar12 + 0x17a58) + 0x484c;" (assignment_expression "iVar2 = *(int *)(puVar12 + 0x17a58) + 0x484c" (identifier "iVar2") (= "=") (binary_expression "*(int *)(puVar12 + 0x17a58) + 0x484c" (pointer_expression "*(int *)(puVar12 + 0x17a58)" (* "*") (cast_expression "(int *)(puVar12 + 0x17a58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 0x17a58)" (( "(") (binary_expression "puVar12 + 0x17a58" (identifier "puVar12") (+ "+") (number_literal "0x17a58")) () ")")))) (+ "+") (number_literal "0x484c"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n    pcVar13 = *(code **)(puVar12 + 0x17bb0);\n    if (uVar3 != 4) {\nLAB_0001d7e8:\n      uVar9 = (*pcVar13)();\n      return uVar9;\n    }\n    iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4830;\n  }" (else "else") (compound_statement "{\n    pcVar13 = *(code **)(puVar12 + 0x17bb0);\n    if (uVar3 != 4) {\nLAB_0001d7e8:\n      uVar9 = (*pcVar13)();\n      return uVar9;\n    }\n    iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4830;\n  }" ({ "{") (expression_statement "pcVar13 = *(code **)(puVar12 + 0x17bb0);" (assignment_expression "pcVar13 = *(code **)(puVar12 + 0x17bb0)" (identifier "pcVar13") (= "=") (pointer_expression "*(code **)(puVar12 + 0x17bb0)" (* "*") (cast_expression "(code **)(puVar12 + 0x17bb0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar12 + 0x17bb0)" (( "(") (binary_expression "puVar12 + 0x17bb0" (identifier "puVar12") (+ "+") (number_literal "0x17bb0")) () ")"))))) (; ";")) (if_statement "if (uVar3 != 4) {\nLAB_0001d7e8:\n      uVar9 = (*pcVar13)();\n      return uVar9;\n    }" (if "if") (parenthesized_expression "(uVar3 != 4)" (( "(") (binary_expression "uVar3 != 4" (identifier "uVar3") (!= "!=") (number_literal "4")) () ")")) (compound_statement "{\nLAB_0001d7e8:\n      uVar9 = (*pcVar13)();\n      return uVar9;\n    }" ({ "{") (labeled_statement "LAB_0001d7e8:\n      uVar9 = (*pcVar13)();" (statement_identifier "LAB_0001d7e8") (: ":") (expression_statement "uVar9 = (*pcVar13)();" (assignment_expression "uVar9 = (*pcVar13)()" (identifier "uVar9") (= "=") (call_expression "(*pcVar13)()" (parenthesized_expression "(*pcVar13)" (( "(") (pointer_expression "*pcVar13" (* "*") (identifier "pcVar13")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";"))) (return_statement "return uVar9;" (return "return") (identifier "uVar9") (; ";")) (} "}"))) (expression_statement "iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4830;" (assignment_expression "iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4830" (identifier "iVar2") (= "=") (binary_expression "*(int *)(puVar12 + 0x17a58) + 0x4830" (pointer_expression "*(int *)(puVar12 + 0x17a58)" (* "*") (cast_expression "(int *)(puVar12 + 0x17a58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 0x17a58)" (( "(") (binary_expression "puVar12 + 0x17a58" (identifier "puVar12") (+ "+") (number_literal "0x17a58")) () ")")))) (+ "+") (number_literal "0x4830"))) (; ";")) (} "}")))) (if_statement "if ((int)pcVar7 < 0) {\n    iVar6 = (*(int *)(puVar12 + 0x17a58) + 0x4874) - (int)pcVar7;\n    uStack_67 = 0;\n    puVar10 = &uStack_68;\n    uStack_68 = uVar4;\n  }\n  else {\n    puVar10 = (undefined1 *)puVar5[(int)pcVar7 * 4];\n    iVar6 = *(int *)(puVar12 + 0x17a58) + 0x4874;\n  }" (if "if") (parenthesized_expression "((int)pcVar7 < 0)" (( "(") (binary_expression "(int)pcVar7 < 0" (cast_expression "(int)pcVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar7")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    iVar6 = (*(int *)(puVar12 + 0x17a58) + 0x4874) - (int)pcVar7;\n    uStack_67 = 0;\n    puVar10 = &uStack_68;\n    uStack_68 = uVar4;\n  }" ({ "{") (expression_statement "iVar6 = (*(int *)(puVar12 + 0x17a58) + 0x4874) - (int)pcVar7;" (assignment_expression "iVar6 = (*(int *)(puVar12 + 0x17a58) + 0x4874) - (int)pcVar7" (identifier "iVar6") (= "=") (binary_expression "(*(int *)(puVar12 + 0x17a58) + 0x4874) - (int)pcVar7" (parenthesized_expression "(*(int *)(puVar12 + 0x17a58) + 0x4874)" (( "(") (binary_expression "*(int *)(puVar12 + 0x17a58) + 0x4874" (pointer_expression "*(int *)(puVar12 + 0x17a58)" (* "*") (cast_expression "(int *)(puVar12 + 0x17a58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 0x17a58)" (( "(") (binary_expression "puVar12 + 0x17a58" (identifier "puVar12") (+ "+") (number_literal "0x17a58")) () ")")))) (+ "+") (number_literal "0x4874")) () ")")) (- "-") (cast_expression "(int)pcVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar7")))) (; ";")) (expression_statement "uStack_67 = 0;" (assignment_expression "uStack_67 = 0" (identifier "uStack_67") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar10 = &uStack_68;" (assignment_expression "puVar10 = &uStack_68" (identifier "puVar10") (= "=") (pointer_expression "&uStack_68" (& "&") (identifier "uStack_68"))) (; ";")) (expression_statement "uStack_68 = uVar4;" (assignment_expression "uStack_68 = uVar4" (identifier "uStack_68") (= "=") (identifier "uVar4")) (; ";")) (} "}")) (else_clause "else {\n    puVar10 = (undefined1 *)puVar5[(int)pcVar7 * 4];\n    iVar6 = *(int *)(puVar12 + 0x17a58) + 0x4874;\n  }" (else "else") (compound_statement "{\n    puVar10 = (undefined1 *)puVar5[(int)pcVar7 * 4];\n    iVar6 = *(int *)(puVar12 + 0x17a58) + 0x4874;\n  }" ({ "{") (expression_statement "puVar10 = (undefined1 *)puVar5[(int)pcVar7 * 4];" (assignment_expression "puVar10 = (undefined1 *)puVar5[(int)pcVar7 * 4]" (identifier "puVar10") (= "=") (cast_expression "(undefined1 *)puVar5[(int)pcVar7 * 4]" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar5[(int)pcVar7 * 4]" (identifier "puVar5") ([ "[") (binary_expression "(int)pcVar7 * 4" (cast_expression "(int)pcVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar7")) (* "*") (number_literal "4")) (] "]")))) (; ";")) (expression_statement "iVar6 = *(int *)(puVar12 + 0x17a58) + 0x4874;" (assignment_expression "iVar6 = *(int *)(puVar12 + 0x17a58) + 0x4874" (identifier "iVar6") (= "=") (binary_expression "*(int *)(puVar12 + 0x17a58) + 0x4874" (pointer_expression "*(int *)(puVar12 + 0x17a58)" (* "*") (cast_expression "(int *)(puVar12 + 0x17a58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 0x17a58)" (( "(") (binary_expression "puVar12 + 0x17a58" (identifier "puVar12") (+ "+") (number_literal "0x17a58")) () ")")))) (+ "+") (number_literal "0x4874"))) (; ";")) (} "}")))) (expression_statement "uVar14 = (**(code **)(puVar12 + 0x17c88))(0,iVar2,5);" (assignment_expression "uVar14 = (**(code **)(puVar12 + 0x17c88))(0,iVar2,5)" (identifier "uVar14") (= "=") (call_expression "(**(code **)(puVar12 + 0x17c88))(0,iVar2,5)" (parenthesized_expression "(**(code **)(puVar12 + 0x17c88))" (( "(") (pointer_expression "**(code **)(puVar12 + 0x17c88)" (* "*") (pointer_expression "*(code **)(puVar12 + 0x17c88)" (* "*") (cast_expression "(code **)(puVar12 + 0x17c88)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar12 + 0x17c88)" (( "(") (binary_expression "puVar12 + 0x17c88" (identifier "puVar12") (+ "+") (number_literal "0x17c88")) () ")"))))) () ")")) (argument_list "(0,iVar2,5)" (( "(") (number_literal "0") (, ",") (identifier "iVar2") (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar12 + 0x17c54))(uVar8,0,uVar14,iVar6,puVar10,&_gp_1);" (call_expression "(**(code **)(puVar12 + 0x17c54))(uVar8,0,uVar14,iVar6,puVar10,&_gp_1)" (parenthesized_expression "(**(code **)(puVar12 + 0x17c54))" (( "(") (pointer_expression "**(code **)(puVar12 + 0x17c54)" (* "*") (pointer_expression "*(code **)(puVar12 + 0x17c54)" (* "*") (cast_expression "(code **)(puVar12 + 0x17c54)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar12 + 0x17c54)" (( "(") (binary_expression "puVar12 + 0x17c54" (identifier "puVar12") (+ "+") (number_literal "0x17c54")) () ")"))))) () ")")) (argument_list "(uVar8,0,uVar14,iVar6,puVar10,&_gp_1)" (( "(") (identifier "uVar8") (, ",") (number_literal "0") (, ",") (identifier "uVar14") (, ",") (identifier "iVar6") (, ",") (identifier "puVar10") (, ",") (pointer_expression "&_gp_1" (& "&") (identifier "_gp_1")) () ")"))) (; ";")) (expression_statement "uVar9 = (**(code **)(puVar12 + 0x17bb0))();" (assignment_expression "uVar9 = (**(code **)(puVar12 + 0x17bb0))()" (identifier "uVar9") (= "=") (call_expression "(**(code **)(puVar12 + 0x17bb0))()" (parenthesized_expression "(**(code **)(puVar12 + 0x17bb0))" (( "(") (pointer_expression "**(code **)(puVar12 + 0x17bb0)" (* "*") (pointer_expression "*(code **)(puVar12 + 0x17bb0)" (* "*") (cast_expression "(code **)(puVar12 + 0x17bb0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar12 + 0x17bb0)" (( "(") (binary_expression "puVar12 + 0x17bb0" (identifier "puVar12") (+ "+") (number_literal "0x17bb0")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return uVar9;" (return "return") (identifier "uVar9") (; ";")) (} "}")))

type_1 function_1(char *var_4,char **var_2,int strtol_base,long *val,char *var_5)

{
  int *piVar1;
  int var_7;
  type_2 var_12;
  type_3 uVar4;
  long *plVar5;
  int iVar6;
  char **var_6;
  type_4 uVar8;
  type_1 var_8;
  type_3 *puVar10;
  char *var_3;
  type_5 *var_11;
  type_6 *pcVar13;
  type_4 uVar14;
  type_3 uStack_68;
  type_3 uStack_67;
  type_4 uStack_64;
  char **ppcStack_5c;
  char **ppcStack_58;
  type_1 sStack_54;
  long *plStack_50;
  type_4 uStack_4c;
  char *t_ptr;
  long tmp;
  type_2 var_10;
  
  var_10 = *(type_2 *)PTR___stack_chk_guard_000353a0;
  if (0x24 < (type_2)strtol_base) {
    var_8 = (*(type_6 *)PTR___assert_fail_000352a0)
                      (var_1 + 0x4494,var_1 + 0x4484,0x60,
                       var_1 + 0x4808);
    return var_8;
  }
  if (var_2 == (char **)0x0) {
    var_2 = &t_ptr;
  }
  plVar5 = val;
  piVar1 = (int *)(*(type_6 *)PTR___errno_location_00035310)();
  *piVar1 = 0;
  var_6 = var_2;
  tmp = (*(type_6 *)PTR_strtol_000352ac)(var_4);
  uVar4 = (type_3)strtol_base;
  var_3 = *var_2;
  if (var_3 == var_4) {
    var_8 = LONGINT_INVALID;
    if (var_5 != (char *)0x0) {
      var_6 = (char **)(int)*var_4;
      if (var_6 == (char **)0x0) {
        var_8 = LONGINT_INVALID;
      }
      else {
        var_7 = (*(type_6 *)PTR_strchr_00035334)(var_5);
        if (var_7 != 0) {
          tmp = 1;
          var_4 = (char *)(int)*var_3;
          var_8 = LONGINT_OK;
          goto LAB_0001d2fc;
        }
        var_8 = LONGINT_INVALID;
      }
    }
  }
  else {
    if (*piVar1 == 0) {
      var_8 = LONGINT_OK;
    }
    else {
      if (*piVar1 != 0x22) {
        var_8 = LONGINT_INVALID;
        goto LAB_0001d368;
      }
      var_8 = LONGINT_OVERFLOW;
    }
    if (var_5 == (char *)0x0) {
      *val = tmp;
    }
    else {
      var_6 = (char **)(int)*var_3;
      var_4 = (char *)var_6;
      if (var_6 == (char **)0x0) {
        *val = tmp;
      }
      else {
LAB_0001d2fc:
        var_6 = (char **)var_4;
        var_7 = (*(type_6 *)PTR_strchr_00035334)(var_5);
        if (var_7 == 0) {
          *val = tmp;
          var_8 = var_8 | var_9;
        }
        else {
          if (((int)var_4 - 0x45U & 0xff) < 0x30) {
                    /* WARNING: Could not emulate address calculation at 0x0001d334 */
                    /* WARNING: Treating indirect jump as call */
            var_8 = (*(type_6 *)(&_gp + *(int *)(var_1 +
                                              ((type_2)((int)var_4 - 0x45U) & 0xff) * 4 + 0x4670)))();
            return var_8;
          }
          var_6 = (char **)0x400;
          var_4 = (char *)((int)var_4 + -0x42);
          if (((type_2)var_4 & 0xff) < 0x36) {
                    /* WARNING: Could not emulate address calculation at 0x0001d438 */
                    /* WARNING: Treating indirect jump as call */
            var_8 = (*(type_6 *)(&_gp + *(int *)(var_1 + ((type_2)var_4 & 0xff) * 4 + 0x4730)))()
            ;
            return var_8;
          }
          *val = tmp;
          var_8 = var_8 | var_9;
        }
      }
    }
  }
LAB_0001d368:
  if (var_10 == *(type_2 *)PTR___stack_chk_guard_000353a0) {
    return var_8;
  }
  uVar14 = 0x1d6fc;
  var_12 = var_10;
  var_11 = PTR___stack_chk_fail_00035384;
  (*(type_6 *)PTR___stack_chk_fail_00035384)();
  uStack_64 = **(type_4 **)(var_11 + 0x17ca0);
  uVar8 = **(type_4 **)(var_11 + 0x17ad8);
  ppcStack_5c = var_2;
  ppcStack_58 = (char **)var_4;
  sStack_54 = var_8;
  plStack_50 = val;
  uStack_4c = uVar14;
  if (var_12 < 4) {
    if (var_12 < 2) {
      pcVar13 = *(type_6 **)(var_11 + 0x17bb0);
      if (var_12 != 1) goto LAB_0001d7e8;
      var_7 = *(int *)(var_11 + 0x17a58) + 0x4810;
    }
    else {
      var_7 = *(int *)(var_11 + 0x17a58) + 0x484c;
    }
  }
  else {
    pcVar13 = *(type_6 **)(var_11 + 0x17bb0);
    if (var_12 != 4) {
LAB_0001d7e8:
      var_8 = (*pcVar13)();
      return var_8;
    }
    var_7 = *(int *)(var_11 + 0x17a58) + 0x4830;
  }
  if ((int)var_6 < 0) {
    iVar6 = (*(int *)(var_11 + 0x17a58) + 0x4874) - (int)var_6;
    uStack_67 = 0;
    puVar10 = &uStack_68;
    uStack_68 = uVar4;
  }
  else {
    puVar10 = (type_3 *)plVar5[(int)var_6 * 4];
    iVar6 = *(int *)(var_11 + 0x17a58) + 0x4874;
  }
  uVar14 = (**(type_6 **)(var_11 + 0x17c88))(0,var_7,5);
  (**(type_6 **)(var_11 + 0x17c54))(uVar8,0,uVar14,iVar6,puVar10,&_gp);
  var_8 = (**(type_6 **)(var_11 + 0x17bb0))();
  return var_8;
}


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

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

{
  int *piVar1;
  int iVar2;
  uint uVar3;
  undefined1 uVar4;
  undefined4 *puVar5;
  int iVar6;
  char *pcVar7;
  undefined4 uVar8;
  uint uVar9;
  undefined1 *puVar10;
  char *pcVar11;
  undefined *puVar12;
  code *pcVar13;
  undefined4 uVar14;
  undefined1 uStack_68;
  undefined1 uStack_67;
  undefined4 uStack_64;
  char *pcStack_5c;
  char *pcStack_58;
  uint uStack_54;
  undefined4 *puStack_50;
  undefined4 uStack_4c;
  char acStack_2c [4];
  undefined4 local_28;
  uint local_24;
  
  local_24 = *(uint *)PTR___stack_chk_guard_000353a0;
  if (0x24 < param_3) {
    uVar9 = (*(code *)PTR___assert_fail_000352a0)
                      (PTR_LAB_00035158 + 0x4494,PTR_LAB_00035158 + 0x4484,0x60,
                       PTR_LAB_00035158 + 0x4808);
    return uVar9;
  }
  if (param_2 == (char *)0x0) {
    param_2 = acStack_2c;
  }
  puVar5 = param_4;
  piVar1 = (int *)(*(code *)PTR___errno_location_00035310)();
  *piVar1 = 0;
  pcVar7 = param_2;
  local_28 = (*(code *)PTR_strtol_000352ac)(param_1);
  uVar4 = (undefined1)param_3;
  pcVar11 = *(char **)param_2;
  if (pcVar11 == param_1) {
    uVar9 = 4;
    if (param_5 != 0) {
      pcVar7 = (char *)(int)*param_1;
      if (pcVar7 == (char *)0x0) {
        uVar9 = 4;
      }
      else {
        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);
        if (iVar2 != 0) {
          local_28 = 1;
          param_1 = (char *)(int)*pcVar11;
          uVar9 = 0;
          goto LAB_0001d2fc;
        }
        uVar9 = 4;
      }
    }
  }
  else {
    if (*piVar1 == 0) {
      uVar9 = 0;
    }
    else {
      if (*piVar1 != 0x22) {
        uVar9 = 4;
        goto LAB_0001d368;
      }
      uVar9 = 1;
    }
    if (param_5 == 0) {
      *param_4 = local_28;
    }
    else {
      pcVar7 = (char *)(int)*pcVar11;
      param_1 = pcVar7;
      if (pcVar7 == (char *)0x0) {
        *param_4 = local_28;
      }
      else {
LAB_0001d2fc:
        pcVar7 = param_1;
        iVar2 = (*(code *)PTR_strchr_00035334)(param_5);
        if (iVar2 == 0) {
          *param_4 = local_28;
          uVar9 = uVar9 | 2;
        }
        else {
          if (((uint)(param_1 + -0x45) & 0xff) < 0x30) {
                    /* WARNING: Could not emulate address calculation at 0x0001d334 */
                    /* WARNING: Treating indirect jump as call */
            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +
                                                ((uint)(param_1 + -0x45) & 0xff) * 4 + 0x4670)))();
            return uVar9;
          }
          pcVar7 = (char *)0x400;
          param_1 = param_1 + -0x42;
          if (((uint)param_1 & 0xff) < 0x36) {
                    /* WARNING: Could not emulate address calculation at 0x0001d438 */
                    /* WARNING: Treating indirect jump as call */
            uVar9 = (*(code *)(&_gp_1 + *(int *)(PTR_LAB_00035158 +
                                                ((uint)param_1 & 0xff) * 4 + 0x4730)))();
            return uVar9;
          }
          *param_4 = local_28;
          uVar9 = uVar9 | 2;
        }
      }
    }
  }
LAB_0001d368:
  if (local_24 == *(uint *)PTR___stack_chk_guard_000353a0) {
    return uVar9;
  }
  uVar14 = 0x1d6fc;
  uVar3 = local_24;
  puVar12 = PTR___stack_chk_fail_00035384;
  (*(code *)PTR___stack_chk_fail_00035384)();
  uStack_64 = **(undefined4 **)(puVar12 + 0x17ca0);
  uVar8 = **(undefined4 **)(puVar12 + 0x17ad8);
  pcStack_5c = param_2;
  pcStack_58 = param_1;
  uStack_54 = uVar9;
  puStack_50 = param_4;
  uStack_4c = uVar14;
  if (uVar3 < 4) {
    if (uVar3 < 2) {
      pcVar13 = *(code **)(puVar12 + 0x17bb0);
      if (uVar3 != 1) goto LAB_0001d7e8;
      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4810;
    }
    else {
      iVar2 = *(int *)(puVar12 + 0x17a58) + 0x484c;
    }
  }
  else {
    pcVar13 = *(code **)(puVar12 + 0x17bb0);
    if (uVar3 != 4) {
LAB_0001d7e8:
      uVar9 = (*pcVar13)();
      return uVar9;
    }
    iVar2 = *(int *)(puVar12 + 0x17a58) + 0x4830;
  }
  if ((int)pcVar7 < 0) {
    iVar6 = (*(int *)(puVar12 + 0x17a58) + 0x4874) - (int)pcVar7;
    uStack_67 = 0;
    puVar10 = &uStack_68;
    uStack_68 = uVar4;
  }
  else {
    puVar10 = (undefined1 *)puVar5[(int)pcVar7 * 4];
    iVar6 = *(int *)(puVar12 + 0x17a58) + 0x4874;
  }
  uVar14 = (**(code **)(puVar12 + 0x17c88))(0,iVar2,5);
  (**(code **)(puVar12 + 0x17c54))(uVar8,0,uVar14,iVar6,puVar10,&_gp_1);
  uVar9 = (**(code **)(puVar12 + 0x17bb0))();
  return uVar9;
}

