
strtol_error human_options(char *spec,int *opts,uintmax_t *block_size)

{
  char cVar1;
  undefined *puVar2;
  ptrdiff_t pVar3;
  strtol_error sVar4;
  int iVar5;
  char extraout_v1;
  int iVar6;
  char **ptr_00;
  uintmax_t *vallist;
  char *pcVar7;
  uint uVar8;
  uint uVar9;
  undefined *puVar10;
  undefined8 uVar11;
  char *ptr;
  int local_24;
  
  puVar10 = PTR___stack_chk_guard_0003658c;
  local_24 = *(int *)PTR___stack_chk_guard_0003658c;
  if (((spec == (char *)0x0) &&
      (vallist = block_size,
      spec = (char *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938),
      (byte *)spec == (byte *)0x0)) &&
     (spec = (char *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4944),
     (byte *)spec == (byte *)0x0)) {
    iVar5 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);
    if (iVar5 == 0) {
      ptr_00 = (char **)0x400;
      *(undefined4 *)((int)block_size + 4) = 0x400;
      *(undefined4 *)block_size = 0;
      *opts = 0;
      sVar4 = LONGINT_OK;
    }
    else {
      ptr_00 = (char **)0x200;
      *(undefined4 *)((int)block_size + 4) = 0x200;
      sVar4 = LONGINT_OK;
      *(undefined4 *)block_size = 0;
      *opts = 0;
    }
  }
  else {
    puVar2 = PTR_LAB_00036278;
    if (*spec == 0x27) {
      spec = (char *)((byte *)spec + 1);
      uVar8 = 4;
    }
    else {
      uVar8 = 0;
    }
    vallist = (uintmax_t *)(PTR_LAB_00036278 + 0x4970);
    pVar3 = argmatch(spec,(char **)(PTR_DAT_00036268 + 0x5fc8),(char *)vallist,4);
    if (pVar3 < 0) {
      vallist = (uintmax_t *)0x0;
      ptr_00 = &ptr;
      sVar4 = xstrtoumax(spec,ptr_00,0,block_size,PTR_LAB_00036278 + 0x4950);
      if (sVar4 == LONGINT_OK) {
        uVar9 = uVar8;
        if (9 < (byte)*spec - 0x30) {
          if (spec == ptr) {
            cVar1 = ptr[-1];
          }
          else {
            do {
              spec = (char *)((byte *)spec + 1);
              if ((byte)*spec - 0x30 < 10) goto LAB_00019a3c;
            } while (spec != ptr);
            cVar1 = ptr[-1];
          }
          ptr_00 = (char **)(int)cVar1;
          if (ptr_00 == (char **)0x42) {
            uVar9 = uVar8 | 0x180;
            if (ptr[-2] == 'i') {
              uVar9 = uVar8 | 0x1a0;
            }
          }
          else {
            uVar9 = uVar8 | 0xa0;
          }
        }
LAB_00019a3c:
        iVar5 = *(int *)block_size;
        iVar6 = (int)*block_size;
        *opts = uVar9;
      }
      else {
        iVar5 = *(int *)block_size;
        iVar6 = (int)*block_size;
        *opts = 0;
      }
      if (iVar5 == 0 && iVar6 == 0) {
        iVar5 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);
        if (iVar5 == 0) {
          ptr_00 = (char **)0x400;
        }
        else {
          ptr_00 = (char **)0x200;
        }
        sVar4 = LONGINT_INVALID;
        *(char ***)((int)block_size + 4) = ptr_00;
        *(undefined4 *)block_size = 0;
      }
    }
    else {
      ptr_00 = (char **)0x1;
      *(undefined4 *)((int)block_size + 4) = 1;
      sVar4 = LONGINT_OK;
      *(undefined4 *)block_size = 0;
      *opts = uVar8 | *(uint *)(puVar2 + pVar3 * 4 + 0x4970);
    }
  }
  if (local_24 != *(int *)puVar10) {
    iVar5 = local_24;
    puVar10 = PTR___stack_chk_fail_0003656c;
    (*(code *)PTR___stack_chk_fail_0003656c)();
    uVar11 = CONCAT44(iVar5,ptr_00);
    puVar10 = puVar10 + 0x246e0;
    pcVar7 = (char *)((int)vallist + 0x14);
    *(undefined1 *)((int)vallist + 0x14) = 0;
    do {
      do {
        iVar5 = (int)((ulonglong)uVar11 >> 0x20);
        uVar8 = (uint)uVar11;
        __umoddi3(iVar5,uVar8,0,10,puVar10);
        pcVar7 = pcVar7 + -1;
        *pcVar7 = extraout_v1 + '0';
        uVar11 = __udivdi3(iVar5,uVar8,0,10);
      } while (iVar5 != 0);
    } while (9 < uVar8);
    return (strtol_error)pcVar7;
  }
  return sVar4;
}



int * human_options(byte *param_1,uint *param_2,int *param_3)

{
  byte bVar1;
  undefined *puVar2;
  int iVar3;
  int *piVar4;
  char extraout_v1;
  int iVar5;
  byte **ppbVar6;
  int *piVar7;
  uint uVar8;
  uint uVar9;
  undefined *puVar10;
  undefined8 uVar11;
  byte *local_28;
  int local_24;
  
  puVar10 = PTR___stack_chk_guard_0003658c;
  local_24 = *(int *)PTR___stack_chk_guard_0003658c;
  if (((param_1 == (byte *)0x0) &&
      (piVar7 = param_3, param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938)
      , param_1 == (byte *)0x0)) &&
     (param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4944),
     param_1 == (byte *)0x0)) {
    iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);
    if (iVar3 == 0) {
      ppbVar6 = (byte **)0x400;
      param_3[1] = 0x400;
      *param_3 = 0;
      *param_2 = 0;
      piVar4 = (int *)0x0;
    }
    else {
      ppbVar6 = (byte **)0x200;
      param_3[1] = 0x200;
      piVar4 = (int *)0x0;
      *param_3 = 0;
      *param_2 = 0;
    }
  }
  else {
    puVar2 = PTR_LAB_00036278;
    if (*param_1 == 0x27) {
      param_1 = param_1 + 1;
      uVar8 = 4;
    }
    else {
      uVar8 = 0;
    }
    piVar7 = (int *)(PTR_LAB_00036278 + 0x4970);
    iVar3 = argmatch(param_1,PTR_DAT_00036268 + 0x5fc8,piVar7,4);
    if (iVar3 < 0) {
      piVar7 = (int *)0x0;
      ppbVar6 = &local_28;
      piVar4 = (int *)xstrtoumax(param_1,ppbVar6,0,param_3,PTR_LAB_00036278 + 0x4950);
      if (piVar4 == (int *)0x0) {
        uVar9 = uVar8;
        if (9 < *param_1 - 0x30) {
          if (param_1 == local_28) {
            bVar1 = local_28[-1];
          }
          else {
            do {
              param_1 = param_1 + 1;
              if (*param_1 - 0x30 < 10) goto LAB_00019a3c;
            } while (param_1 != local_28);
            bVar1 = local_28[-1];
          }
          ppbVar6 = (byte **)(int)(char)bVar1;
          if (ppbVar6 == (byte **)0x42) {
            uVar9 = uVar8 | 0x180;
            if (local_28[-2] == 0x69) {
              uVar9 = uVar8 | 0x1a0;
            }
          }
          else {
            uVar9 = uVar8 | 0xa0;
          }
        }
LAB_00019a3c:
        iVar3 = *param_3;
        iVar5 = param_3[1];
        *param_2 = uVar9;
      }
      else {
        iVar3 = *param_3;
        iVar5 = param_3[1];
        *param_2 = 0;
      }
      if (iVar3 == 0 && iVar5 == 0) {
        iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);
        if (iVar3 == 0) {
          ppbVar6 = (byte **)0x400;
        }
        else {
          ppbVar6 = (byte **)0x200;
        }
        piVar4 = (int *)&DAT_00000004;
        param_3[1] = (int)ppbVar6;
        *param_3 = 0;
      }
    }
    else {
      ppbVar6 = (byte **)0x1;
      param_3[1] = 1;
      piVar4 = (int *)0x0;
      *param_3 = 0;
      *param_2 = uVar8 | *(uint *)(puVar2 + iVar3 * 4 + 0x4970);
    }
  }
  if (local_24 != *(int *)puVar10) {
    iVar3 = local_24;
    puVar10 = PTR___stack_chk_fail_0003656c;
    (*(code *)PTR___stack_chk_fail_0003656c)();
    uVar11 = CONCAT44(iVar3,ppbVar6);
    puVar10 = puVar10 + 0x246e0;
    piVar4 = piVar7 + 5;
    *(undefined1 *)(piVar7 + 5) = 0;
    do {
      do {
        iVar3 = (int)((ulonglong)uVar11 >> 0x20);
        uVar8 = (uint)uVar11;
        FUN_00022d50(iVar3,uVar8,0,10,puVar10);
        piVar4 = (int *)((int)piVar4 + -1);
        *(char *)piVar4 = extraout_v1 + '0';
        uVar11 = FUN_000228e0(iVar3,uVar8,0,10);
      } while (iVar3 != 0);
    } while (9 < uVar8);
    return piVar4;
  }
  return piVar4;
}


lui gp,0x2
addiu gp,gp,0x496c
addu gp,gp,t9
addiu sp,sp,-0x48
sw s1,0x30(sp)
lw s1,-0x7cb4(gp)
sw gp,0x18(sp)
sw s4,0x3c(sp)
or s4,a2,zero
sw s3,0x38(sp)
or s3,a1,zero
sw s0,0x2c(sp)
or s0,a0,zero
sw ra,0x44(sp)
sw s5,0x40(sp)
sw s2,0x34(sp)
lw v0,0x0(s1)
sw v0,0x24(sp)
beq a0,zero,0x00019a90
_lw a0,-0x7fc8(gp)
lb v1,0x0(s0)
li v0,0x27
beq v1,v0,0x000199bc
_nop
or s2,zero,zero
lw s5,-0x7fc8(gp)
li a3,0x4
lw a1,-0x7fd8(gp)
or a0,s0,zero
lw t9,-0x7ed0(gp)
addiu a2,s5,0x4970
bal 0x00021a68
_addiu a1,a1,0x5fc8
bltz v0,0x000199c8
_lw gp,0x18(sp)
sll v1,v0,0x2
addiu s5,s5,0x4970
li a1,0x1
addu v1,v1,s5
or a0,zero,zero
sw a1,0x4(s4)
or v0,zero,zero
sw a0,0x0(s4)
lw v1,0x0(v1)
or s2,s2,v1
sw s2,0x0(s3)
lw a0,0x24(sp)
lw v1,0x0(s1)
bne a0,v1,0x00019b50
_lw ra,0x44(sp)
lw s5,0x40(sp)
lw s4,0x3c(sp)
lw s3,0x38(sp)
lw s2,0x34(sp)
lw s1,0x30(sp)
lw s0,0x2c(sp)
jr ra
_addiu sp,sp,0x48
addiu s0,s0,0x1
b 0x00019938
_li s2,0x4
lw v0,-0x7fc8(gp)
or a2,zero,zero
lw t9,-0x7ecc(gp)
addiu a1,sp,0x20
or a3,s4,zero
addiu v0,v0,0x4950
or a0,s0,zero
bal 0x0001db40
_sw v0,0x10(sp)
bne v0,zero,0x00019a4c
_lw gp,0x18(sp)
lbu v1,0x0(s0)
addiu v1,v1,-0x30
sltiu v1,v1,0xa
bne v1,zero,0x00019a3c
_nop
lw a0,0x20(sp)
bne s0,a0,0x00019a28
_addiu s0,s0,0x1
addiu s0,s0,-0x1
b 0x00019afc
_lb a1,-0x1(a0)
beq s0,a0,0x00019af8
_addiu s0,s0,0x1
lbu v1,0x0(s0)
addiu v1,v1,-0x30
sltiu v1,v1,0xa
beq v1,zero,0x00019a20
_nop
lw v1,0x0(s4)
lw a0,0x4(s4)
b 0x00019a58
_sw s2,0x0(s3)
lw v1,0x0(s4)
lw a0,0x4(s4)
sw zero,0x0(s3)
or v1,v1,a0
bne v1,zero,0x0001998c
_lw a0,-0x7fc8(gp)
lw t9,-0x7d1c(gp)
jalr t9
_addiu a0,a0,0x4474
beq v0,zero,0x00019b14
_lw gp,0x18(sp)
li a1,0x200
or a0,zero,zero
li v0,0x4
sw a1,0x4(s4)
b 0x0001998c
_sw a0,0x0(s4)
lw t9,-0x7d1c(gp)
jalr t9
_addiu a0,a0,0x4938
lw gp,0x18(sp)
bne v0,zero,0x00019924
_or s0,v0,zero
lw a0,-0x7fc8(gp)
lw t9,-0x7d1c(gp)
jalr t9
_addiu a0,a0,0x4944
lw gp,0x18(sp)
bne v0,zero,0x00019924
_or s0,v0,zero
lw a0,-0x7fc8(gp)
lw t9,-0x7d1c(gp)
jalr t9
_addiu a0,a0,0x4474
beq v0,zero,0x00019b38
_lw gp,0x18(sp)
li a1,0x200
or a0,zero,zero
sw a1,0x4(s4)
or v0,zero,zero
sw a0,0x0(s4)
b 0x0001998c
_sw zero,0x0(s3)
lb a1,-0x1(a0)
li v1,0x42
beq a1,v1,0x00019b20
_nop
ori s2,s2,0x80
b 0x00019a3c
_ori s2,s2,0x20
li a1,0x400
b 0x00019a80
_or a0,zero,zero
lb a0,-0x2(a0)
li v1,0x69
bne a0,v1,0x00019a3c
_ori s2,s2,0x180
b 0x00019a3c
_ori s2,s2,0x20
li a1,0x400
or a0,zero,zero
sw a1,0x4(s4)
sw a0,0x0(s4)
b 0x0001998c
_sw zero,0x0(s3)
lw t9,-0x7cd4(gp)
jalr t9
_nop
nop
(translation_unit "int * human_options(byte *param_1,uint *param_2,int *param_3)\n\n{\n  byte bVar1;\n  undefined *puVar2;\n  int iVar3;\n  int *piVar4;\n  char extraout_v1;\n  int iVar5;\n  byte **ppbVar6;\n  int *piVar7;\n  uint uVar8;\n  uint uVar9;\n  undefined *puVar10;\n  undefined8 uVar11;\n  byte *local_28;\n  int local_24;\n  \n  puVar10 = PTR___stack_chk_guard_0003658c;\n  local_24 = *(int *)PTR___stack_chk_guard_0003658c;\n  if (((param_1 == (byte *)0x0) &&\n      (piVar7 = param_3, param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938)\n      , param_1 == (byte *)0x0)) &&\n     (param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4944),\n     param_1 == (byte *)0x0)) {\n    iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n    if (iVar3 == 0) {\n      ppbVar6 = (byte **)0x400;\n      param_3[1] = 0x400;\n      *param_3 = 0;\n      *param_2 = 0;\n      piVar4 = (int *)0x0;\n    }\n    else {\n      ppbVar6 = (byte **)0x200;\n      param_3[1] = 0x200;\n      piVar4 = (int *)0x0;\n      *param_3 = 0;\n      *param_2 = 0;\n    }\n  }\n  else {\n    puVar2 = PTR_LAB_00036278;\n    if (*param_1 == 0x27) {\n      param_1 = param_1 + 1;\n      uVar8 = 4;\n    }\n    else {\n      uVar8 = 0;\n    }\n    piVar7 = (int *)(PTR_LAB_00036278 + 0x4970);\n    iVar3 = argmatch(param_1,PTR_DAT_00036268 + 0x5fc8,piVar7,4);\n    if (iVar3 < 0) {\n      piVar7 = (int *)0x0;\n      ppbVar6 = &local_28;\n      piVar4 = (int *)xstrtoumax(param_1,ppbVar6,0,param_3,PTR_LAB_00036278 + 0x4950);\n      if (piVar4 == (int *)0x0) {\n        uVar9 = uVar8;\n        if (9 < *param_1 - 0x30) {\n          if (param_1 == local_28) {\n            bVar1 = local_28[-1];\n          }\n          else {\n            do {\n              param_1 = param_1 + 1;\n              if (*param_1 - 0x30 < 10) goto LAB_00019a3c;\n            } while (param_1 != local_28);\n            bVar1 = local_28[-1];\n          }\n          ppbVar6 = (byte **)(int)(char)bVar1;\n          if (ppbVar6 == (byte **)0x42) {\n            uVar9 = uVar8 | 0x180;\n            if (local_28[-2] == 0x69) {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }\n          else {\n            uVar9 = uVar8 | 0xa0;\n          }\n        }\nLAB_00019a3c:\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = uVar9;\n      }\n      else {\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = 0;\n      }\n      if (iVar3 == 0 && iVar5 == 0) {\n        iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n        if (iVar3 == 0) {\n          ppbVar6 = (byte **)0x400;\n        }\n        else {\n          ppbVar6 = (byte **)0x200;\n        }\n        piVar4 = (int *)&DAT_00000004;\n        param_3[1] = (int)ppbVar6;\n        *param_3 = 0;\n      }\n    }\n    else {\n      ppbVar6 = (byte **)0x1;\n      param_3[1] = 1;\n      piVar4 = (int *)0x0;\n      *param_3 = 0;\n      *param_2 = uVar8 | *(uint *)(puVar2 + iVar3 * 4 + 0x4970);\n    }\n  }\n  if (local_24 != *(int *)puVar10) {\n    iVar3 = local_24;\n    puVar10 = PTR___stack_chk_fail_0003656c;\n    (*(code *)PTR___stack_chk_fail_0003656c)();\n    uVar11 = CONCAT44(iVar3,ppbVar6);\n    puVar10 = puVar10 + 0x246e0;\n    piVar4 = piVar7 + 5;\n    *(undefined1 *)(piVar7 + 5) = 0;\n    do {\n      do {\n        iVar3 = (int)((ulonglong)uVar11 >> 0x20);\n        uVar8 = (uint)uVar11;\n        FUN_00022d50(iVar3,uVar8,0,10,puVar10);\n        piVar4 = (int *)((int)piVar4 + -1);\n        *(char *)piVar4 = extraout_v1 + '0';\n        uVar11 = FUN_000228e0(iVar3,uVar8,0,10);\n      } while (iVar3 != 0);\n    } while (9 < uVar8);\n    return piVar4;\n  }\n  return piVar4;\n}\n\n" (function_definition "int * human_options(byte *param_1,uint *param_2,int *param_3)\n\n{\n  byte bVar1;\n  undefined *puVar2;\n  int iVar3;\n  int *piVar4;\n  char extraout_v1;\n  int iVar5;\n  byte **ppbVar6;\n  int *piVar7;\n  uint uVar8;\n  uint uVar9;\n  undefined *puVar10;\n  undefined8 uVar11;\n  byte *local_28;\n  int local_24;\n  \n  puVar10 = PTR___stack_chk_guard_0003658c;\n  local_24 = *(int *)PTR___stack_chk_guard_0003658c;\n  if (((param_1 == (byte *)0x0) &&\n      (piVar7 = param_3, param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938)\n      , param_1 == (byte *)0x0)) &&\n     (param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4944),\n     param_1 == (byte *)0x0)) {\n    iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n    if (iVar3 == 0) {\n      ppbVar6 = (byte **)0x400;\n      param_3[1] = 0x400;\n      *param_3 = 0;\n      *param_2 = 0;\n      piVar4 = (int *)0x0;\n    }\n    else {\n      ppbVar6 = (byte **)0x200;\n      param_3[1] = 0x200;\n      piVar4 = (int *)0x0;\n      *param_3 = 0;\n      *param_2 = 0;\n    }\n  }\n  else {\n    puVar2 = PTR_LAB_00036278;\n    if (*param_1 == 0x27) {\n      param_1 = param_1 + 1;\n      uVar8 = 4;\n    }\n    else {\n      uVar8 = 0;\n    }\n    piVar7 = (int *)(PTR_LAB_00036278 + 0x4970);\n    iVar3 = argmatch(param_1,PTR_DAT_00036268 + 0x5fc8,piVar7,4);\n    if (iVar3 < 0) {\n      piVar7 = (int *)0x0;\n      ppbVar6 = &local_28;\n      piVar4 = (int *)xstrtoumax(param_1,ppbVar6,0,param_3,PTR_LAB_00036278 + 0x4950);\n      if (piVar4 == (int *)0x0) {\n        uVar9 = uVar8;\n        if (9 < *param_1 - 0x30) {\n          if (param_1 == local_28) {\n            bVar1 = local_28[-1];\n          }\n          else {\n            do {\n              param_1 = param_1 + 1;\n              if (*param_1 - 0x30 < 10) goto LAB_00019a3c;\n            } while (param_1 != local_28);\n            bVar1 = local_28[-1];\n          }\n          ppbVar6 = (byte **)(int)(char)bVar1;\n          if (ppbVar6 == (byte **)0x42) {\n            uVar9 = uVar8 | 0x180;\n            if (local_28[-2] == 0x69) {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }\n          else {\n            uVar9 = uVar8 | 0xa0;\n          }\n        }\nLAB_00019a3c:\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = uVar9;\n      }\n      else {\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = 0;\n      }\n      if (iVar3 == 0 && iVar5 == 0) {\n        iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n        if (iVar3 == 0) {\n          ppbVar6 = (byte **)0x400;\n        }\n        else {\n          ppbVar6 = (byte **)0x200;\n        }\n        piVar4 = (int *)&DAT_00000004;\n        param_3[1] = (int)ppbVar6;\n        *param_3 = 0;\n      }\n    }\n    else {\n      ppbVar6 = (byte **)0x1;\n      param_3[1] = 1;\n      piVar4 = (int *)0x0;\n      *param_3 = 0;\n      *param_2 = uVar8 | *(uint *)(puVar2 + iVar3 * 4 + 0x4970);\n    }\n  }\n  if (local_24 != *(int *)puVar10) {\n    iVar3 = local_24;\n    puVar10 = PTR___stack_chk_fail_0003656c;\n    (*(code *)PTR___stack_chk_fail_0003656c)();\n    uVar11 = CONCAT44(iVar3,ppbVar6);\n    puVar10 = puVar10 + 0x246e0;\n    piVar4 = piVar7 + 5;\n    *(undefined1 *)(piVar7 + 5) = 0;\n    do {\n      do {\n        iVar3 = (int)((ulonglong)uVar11 >> 0x20);\n        uVar8 = (uint)uVar11;\n        FUN_00022d50(iVar3,uVar8,0,10,puVar10);\n        piVar4 = (int *)((int)piVar4 + -1);\n        *(char *)piVar4 = extraout_v1 + '0';\n        uVar11 = FUN_000228e0(iVar3,uVar8,0,10);\n      } while (iVar3 != 0);\n    } while (9 < uVar8);\n    return piVar4;\n  }\n  return piVar4;\n}" primitive_type (pointer_declarator "* human_options(byte *param_1,uint *param_2,int *param_3)" * (function_declarator "human_options(byte *param_1,uint *param_2,int *param_3)" identifier (parameter_list "(byte *param_1,uint *param_2,int *param_3)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) )))) (compound_statement "{\n  byte bVar1;\n  undefined *puVar2;\n  int iVar3;\n  int *piVar4;\n  char extraout_v1;\n  int iVar5;\n  byte **ppbVar6;\n  int *piVar7;\n  uint uVar8;\n  uint uVar9;\n  undefined *puVar10;\n  undefined8 uVar11;\n  byte *local_28;\n  int local_24;\n  \n  puVar10 = PTR___stack_chk_guard_0003658c;\n  local_24 = *(int *)PTR___stack_chk_guard_0003658c;\n  if (((param_1 == (byte *)0x0) &&\n      (piVar7 = param_3, param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938)\n      , param_1 == (byte *)0x0)) &&\n     (param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4944),\n     param_1 == (byte *)0x0)) {\n    iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n    if (iVar3 == 0) {\n      ppbVar6 = (byte **)0x400;\n      param_3[1] = 0x400;\n      *param_3 = 0;\n      *param_2 = 0;\n      piVar4 = (int *)0x0;\n    }\n    else {\n      ppbVar6 = (byte **)0x200;\n      param_3[1] = 0x200;\n      piVar4 = (int *)0x0;\n      *param_3 = 0;\n      *param_2 = 0;\n    }\n  }\n  else {\n    puVar2 = PTR_LAB_00036278;\n    if (*param_1 == 0x27) {\n      param_1 = param_1 + 1;\n      uVar8 = 4;\n    }\n    else {\n      uVar8 = 0;\n    }\n    piVar7 = (int *)(PTR_LAB_00036278 + 0x4970);\n    iVar3 = argmatch(param_1,PTR_DAT_00036268 + 0x5fc8,piVar7,4);\n    if (iVar3 < 0) {\n      piVar7 = (int *)0x0;\n      ppbVar6 = &local_28;\n      piVar4 = (int *)xstrtoumax(param_1,ppbVar6,0,param_3,PTR_LAB_00036278 + 0x4950);\n      if (piVar4 == (int *)0x0) {\n        uVar9 = uVar8;\n        if (9 < *param_1 - 0x30) {\n          if (param_1 == local_28) {\n            bVar1 = local_28[-1];\n          }\n          else {\n            do {\n              param_1 = param_1 + 1;\n              if (*param_1 - 0x30 < 10) goto LAB_00019a3c;\n            } while (param_1 != local_28);\n            bVar1 = local_28[-1];\n          }\n          ppbVar6 = (byte **)(int)(char)bVar1;\n          if (ppbVar6 == (byte **)0x42) {\n            uVar9 = uVar8 | 0x180;\n            if (local_28[-2] == 0x69) {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }\n          else {\n            uVar9 = uVar8 | 0xa0;\n          }\n        }\nLAB_00019a3c:\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = uVar9;\n      }\n      else {\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = 0;\n      }\n      if (iVar3 == 0 && iVar5 == 0) {\n        iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n        if (iVar3 == 0) {\n          ppbVar6 = (byte **)0x400;\n        }\n        else {\n          ppbVar6 = (byte **)0x200;\n        }\n        piVar4 = (int *)&DAT_00000004;\n        param_3[1] = (int)ppbVar6;\n        *param_3 = 0;\n      }\n    }\n    else {\n      ppbVar6 = (byte **)0x1;\n      param_3[1] = 1;\n      piVar4 = (int *)0x0;\n      *param_3 = 0;\n      *param_2 = uVar8 | *(uint *)(puVar2 + iVar3 * 4 + 0x4970);\n    }\n  }\n  if (local_24 != *(int *)puVar10) {\n    iVar3 = local_24;\n    puVar10 = PTR___stack_chk_fail_0003656c;\n    (*(code *)PTR___stack_chk_fail_0003656c)();\n    uVar11 = CONCAT44(iVar3,ppbVar6);\n    puVar10 = puVar10 + 0x246e0;\n    piVar4 = piVar7 + 5;\n    *(undefined1 *)(piVar7 + 5) = 0;\n    do {\n      do {\n        iVar3 = (int)((ulonglong)uVar11 >> 0x20);\n        uVar8 = (uint)uVar11;\n        FUN_00022d50(iVar3,uVar8,0,10,puVar10);\n        piVar4 = (int *)((int)piVar4 + -1);\n        *(char *)piVar4 = extraout_v1 + '0';\n        uVar11 = FUN_000228e0(iVar3,uVar8,0,10);\n      } while (iVar3 != 0);\n    } while (9 < uVar8);\n    return piVar4;\n  }\n  return piVar4;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "char extraout_v1;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "byte **ppbVar6;" type_identifier (pointer_declarator "**ppbVar6" * (pointer_declarator "*ppbVar6" * identifier)) ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "undefined8 uVar11;" type_identifier identifier ;) (declaration "byte *local_28;" type_identifier (pointer_declarator "*local_28" * identifier) ;) (declaration "int local_24;" primitive_type identifier ;) (expression_statement "puVar10 = PTR___stack_chk_guard_0003658c;" (assignment_expression "puVar10 = PTR___stack_chk_guard_0003658c" identifier = identifier) ;) (expression_statement "local_24 = *(int *)PTR___stack_chk_guard_0003658c;" (assignment_expression "local_24 = *(int *)PTR___stack_chk_guard_0003658c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0003658c" * (cast_expression "(int *)PTR___stack_chk_guard_0003658c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (((param_1 == (byte *)0x0) &&\n      (piVar7 = param_3, param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938)\n      , param_1 == (byte *)0x0)) &&\n     (param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4944),\n     param_1 == (byte *)0x0)) {\n    iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n    if (iVar3 == 0) {\n      ppbVar6 = (byte **)0x400;\n      param_3[1] = 0x400;\n      *param_3 = 0;\n      *param_2 = 0;\n      piVar4 = (int *)0x0;\n    }\n    else {\n      ppbVar6 = (byte **)0x200;\n      param_3[1] = 0x200;\n      piVar4 = (int *)0x0;\n      *param_3 = 0;\n      *param_2 = 0;\n    }\n  }\n  else {\n    puVar2 = PTR_LAB_00036278;\n    if (*param_1 == 0x27) {\n      param_1 = param_1 + 1;\n      uVar8 = 4;\n    }\n    else {\n      uVar8 = 0;\n    }\n    piVar7 = (int *)(PTR_LAB_00036278 + 0x4970);\n    iVar3 = argmatch(param_1,PTR_DAT_00036268 + 0x5fc8,piVar7,4);\n    if (iVar3 < 0) {\n      piVar7 = (int *)0x0;\n      ppbVar6 = &local_28;\n      piVar4 = (int *)xstrtoumax(param_1,ppbVar6,0,param_3,PTR_LAB_00036278 + 0x4950);\n      if (piVar4 == (int *)0x0) {\n        uVar9 = uVar8;\n        if (9 < *param_1 - 0x30) {\n          if (param_1 == local_28) {\n            bVar1 = local_28[-1];\n          }\n          else {\n            do {\n              param_1 = param_1 + 1;\n              if (*param_1 - 0x30 < 10) goto LAB_00019a3c;\n            } while (param_1 != local_28);\n            bVar1 = local_28[-1];\n          }\n          ppbVar6 = (byte **)(int)(char)bVar1;\n          if (ppbVar6 == (byte **)0x42) {\n            uVar9 = uVar8 | 0x180;\n            if (local_28[-2] == 0x69) {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }\n          else {\n            uVar9 = uVar8 | 0xa0;\n          }\n        }\nLAB_00019a3c:\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = uVar9;\n      }\n      else {\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = 0;\n      }\n      if (iVar3 == 0 && iVar5 == 0) {\n        iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n        if (iVar3 == 0) {\n          ppbVar6 = (byte **)0x400;\n        }\n        else {\n          ppbVar6 = (byte **)0x200;\n        }\n        piVar4 = (int *)&DAT_00000004;\n        param_3[1] = (int)ppbVar6;\n        *param_3 = 0;\n      }\n    }\n    else {\n      ppbVar6 = (byte **)0x1;\n      param_3[1] = 1;\n      piVar4 = (int *)0x0;\n      *param_3 = 0;\n      *param_2 = uVar8 | *(uint *)(puVar2 + iVar3 * 4 + 0x4970);\n    }\n  }" if (parenthesized_expression "(((param_1 == (byte *)0x0) &&\n      (piVar7 = param_3, param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938)\n      , param_1 == (byte *)0x0)) &&\n     (param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4944),\n     param_1 == (byte *)0x0))" ( (binary_expression "((param_1 == (byte *)0x0) &&\n      (piVar7 = param_3, param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938)\n      , param_1 == (byte *)0x0)) &&\n     (param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4944),\n     param_1 == (byte *)0x0)" (parenthesized_expression "((param_1 == (byte *)0x0) &&\n      (piVar7 = param_3, param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938)\n      , param_1 == (byte *)0x0))" ( (binary_expression "(param_1 == (byte *)0x0) &&\n      (piVar7 = param_3, param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938)\n      , param_1 == (byte *)0x0)" (parenthesized_expression "(param_1 == (byte *)0x0)" ( (binary_expression "param_1 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(piVar7 = param_3, param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938)\n      , param_1 == (byte *)0x0)" ( (comma_expression "piVar7 = param_3, param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938)\n      , param_1 == (byte *)0x0" (assignment_expression "piVar7 = param_3" identifier = identifier) , (comma_expression "param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938)\n      , param_1 == (byte *)0x0" (assignment_expression "param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938)" identifier = (cast_expression "(byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938)" (parenthesized_expression "(*(code *)PTR_getenv_00036524)" ( (pointer_expression "*(code *)PTR_getenv_00036524" * (cast_expression "(code *)PTR_getenv_00036524" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_00036278 + 0x4938)" ( (binary_expression "PTR_LAB_00036278 + 0x4938" identifier + number_literal) ))))) , (binary_expression "param_1 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)))) ))) )) && (parenthesized_expression "(param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4944),\n     param_1 == (byte *)0x0)" ( (comma_expression "param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4944),\n     param_1 == (byte *)0x0" (assignment_expression "param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4944)" identifier = (cast_expression "(byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4944)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4944)" (parenthesized_expression "(*(code *)PTR_getenv_00036524)" ( (pointer_expression "*(code *)PTR_getenv_00036524" * (cast_expression "(code *)PTR_getenv_00036524" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_00036278 + 0x4944)" ( (binary_expression "PTR_LAB_00036278 + 0x4944" identifier + number_literal) ))))) , (binary_expression "param_1 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n    if (iVar3 == 0) {\n      ppbVar6 = (byte **)0x400;\n      param_3[1] = 0x400;\n      *param_3 = 0;\n      *param_2 = 0;\n      piVar4 = (int *)0x0;\n    }\n    else {\n      ppbVar6 = (byte **)0x200;\n      param_3[1] = 0x200;\n      piVar4 = (int *)0x0;\n      *param_3 = 0;\n      *param_2 = 0;\n    }\n  }" { (expression_statement "iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);" (assignment_expression "iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474)" identifier = (call_expression "(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474)" (parenthesized_expression "(*(code *)PTR_getenv_00036524)" ( (pointer_expression "*(code *)PTR_getenv_00036524" * (cast_expression "(code *)PTR_getenv_00036524" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_00036278 + 0x4474)" ( (binary_expression "PTR_LAB_00036278 + 0x4474" identifier + number_literal) )))) ;) (if_statement "if (iVar3 == 0) {\n      ppbVar6 = (byte **)0x400;\n      param_3[1] = 0x400;\n      *param_3 = 0;\n      *param_2 = 0;\n      piVar4 = (int *)0x0;\n    }\n    else {\n      ppbVar6 = (byte **)0x200;\n      param_3[1] = 0x200;\n      piVar4 = (int *)0x0;\n      *param_3 = 0;\n      *param_2 = 0;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      ppbVar6 = (byte **)0x400;\n      param_3[1] = 0x400;\n      *param_3 = 0;\n      *param_2 = 0;\n      piVar4 = (int *)0x0;\n    }" { (expression_statement "ppbVar6 = (byte **)0x400;" (assignment_expression "ppbVar6 = (byte **)0x400" identifier = (cast_expression "(byte **)0x400" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "param_3[1] = 0x400;" (assignment_expression "param_3[1] = 0x400" (subscript_expression "param_3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*param_3 = 0;" (assignment_expression "*param_3 = 0" (pointer_expression "*param_3" * identifier) = number_literal) ;) (expression_statement "*param_2 = 0;" (assignment_expression "*param_2 = 0" (pointer_expression "*param_2" * identifier) = number_literal) ;) (expression_statement "piVar4 = (int *)0x0;" (assignment_expression "piVar4 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      ppbVar6 = (byte **)0x200;\n      param_3[1] = 0x200;\n      piVar4 = (int *)0x0;\n      *param_3 = 0;\n      *param_2 = 0;\n    }" else (compound_statement "{\n      ppbVar6 = (byte **)0x200;\n      param_3[1] = 0x200;\n      piVar4 = (int *)0x0;\n      *param_3 = 0;\n      *param_2 = 0;\n    }" { (expression_statement "ppbVar6 = (byte **)0x200;" (assignment_expression "ppbVar6 = (byte **)0x200" identifier = (cast_expression "(byte **)0x200" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "param_3[1] = 0x200;" (assignment_expression "param_3[1] = 0x200" (subscript_expression "param_3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar4 = (int *)0x0;" (assignment_expression "piVar4 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*param_3 = 0;" (assignment_expression "*param_3 = 0" (pointer_expression "*param_3" * identifier) = number_literal) ;) (expression_statement "*param_2 = 0;" (assignment_expression "*param_2 = 0" (pointer_expression "*param_2" * identifier) = number_literal) ;) }))) }) (else_clause "else {\n    puVar2 = PTR_LAB_00036278;\n    if (*param_1 == 0x27) {\n      param_1 = param_1 + 1;\n      uVar8 = 4;\n    }\n    else {\n      uVar8 = 0;\n    }\n    piVar7 = (int *)(PTR_LAB_00036278 + 0x4970);\n    iVar3 = argmatch(param_1,PTR_DAT_00036268 + 0x5fc8,piVar7,4);\n    if (iVar3 < 0) {\n      piVar7 = (int *)0x0;\n      ppbVar6 = &local_28;\n      piVar4 = (int *)xstrtoumax(param_1,ppbVar6,0,param_3,PTR_LAB_00036278 + 0x4950);\n      if (piVar4 == (int *)0x0) {\n        uVar9 = uVar8;\n        if (9 < *param_1 - 0x30) {\n          if (param_1 == local_28) {\n            bVar1 = local_28[-1];\n          }\n          else {\n            do {\n              param_1 = param_1 + 1;\n              if (*param_1 - 0x30 < 10) goto LAB_00019a3c;\n            } while (param_1 != local_28);\n            bVar1 = local_28[-1];\n          }\n          ppbVar6 = (byte **)(int)(char)bVar1;\n          if (ppbVar6 == (byte **)0x42) {\n            uVar9 = uVar8 | 0x180;\n            if (local_28[-2] == 0x69) {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }\n          else {\n            uVar9 = uVar8 | 0xa0;\n          }\n        }\nLAB_00019a3c:\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = uVar9;\n      }\n      else {\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = 0;\n      }\n      if (iVar3 == 0 && iVar5 == 0) {\n        iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n        if (iVar3 == 0) {\n          ppbVar6 = (byte **)0x400;\n        }\n        else {\n          ppbVar6 = (byte **)0x200;\n        }\n        piVar4 = (int *)&DAT_00000004;\n        param_3[1] = (int)ppbVar6;\n        *param_3 = 0;\n      }\n    }\n    else {\n      ppbVar6 = (byte **)0x1;\n      param_3[1] = 1;\n      piVar4 = (int *)0x0;\n      *param_3 = 0;\n      *param_2 = uVar8 | *(uint *)(puVar2 + iVar3 * 4 + 0x4970);\n    }\n  }" else (compound_statement "{\n    puVar2 = PTR_LAB_00036278;\n    if (*param_1 == 0x27) {\n      param_1 = param_1 + 1;\n      uVar8 = 4;\n    }\n    else {\n      uVar8 = 0;\n    }\n    piVar7 = (int *)(PTR_LAB_00036278 + 0x4970);\n    iVar3 = argmatch(param_1,PTR_DAT_00036268 + 0x5fc8,piVar7,4);\n    if (iVar3 < 0) {\n      piVar7 = (int *)0x0;\n      ppbVar6 = &local_28;\n      piVar4 = (int *)xstrtoumax(param_1,ppbVar6,0,param_3,PTR_LAB_00036278 + 0x4950);\n      if (piVar4 == (int *)0x0) {\n        uVar9 = uVar8;\n        if (9 < *param_1 - 0x30) {\n          if (param_1 == local_28) {\n            bVar1 = local_28[-1];\n          }\n          else {\n            do {\n              param_1 = param_1 + 1;\n              if (*param_1 - 0x30 < 10) goto LAB_00019a3c;\n            } while (param_1 != local_28);\n            bVar1 = local_28[-1];\n          }\n          ppbVar6 = (byte **)(int)(char)bVar1;\n          if (ppbVar6 == (byte **)0x42) {\n            uVar9 = uVar8 | 0x180;\n            if (local_28[-2] == 0x69) {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }\n          else {\n            uVar9 = uVar8 | 0xa0;\n          }\n        }\nLAB_00019a3c:\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = uVar9;\n      }\n      else {\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = 0;\n      }\n      if (iVar3 == 0 && iVar5 == 0) {\n        iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n        if (iVar3 == 0) {\n          ppbVar6 = (byte **)0x400;\n        }\n        else {\n          ppbVar6 = (byte **)0x200;\n        }\n        piVar4 = (int *)&DAT_00000004;\n        param_3[1] = (int)ppbVar6;\n        *param_3 = 0;\n      }\n    }\n    else {\n      ppbVar6 = (byte **)0x1;\n      param_3[1] = 1;\n      piVar4 = (int *)0x0;\n      *param_3 = 0;\n      *param_2 = uVar8 | *(uint *)(puVar2 + iVar3 * 4 + 0x4970);\n    }\n  }" { (expression_statement "puVar2 = PTR_LAB_00036278;" (assignment_expression "puVar2 = PTR_LAB_00036278" identifier = identifier) ;) (if_statement "if (*param_1 == 0x27) {\n      param_1 = param_1 + 1;\n      uVar8 = 4;\n    }\n    else {\n      uVar8 = 0;\n    }" if (parenthesized_expression "(*param_1 == 0x27)" ( (binary_expression "*param_1 == 0x27" (pointer_expression "*param_1" * identifier) == number_literal) )) (compound_statement "{\n      param_1 = param_1 + 1;\n      uVar8 = 4;\n    }" { (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (expression_statement "uVar8 = 4;" (assignment_expression "uVar8 = 4" identifier = number_literal) ;) }) (else_clause "else {\n      uVar8 = 0;\n    }" else (compound_statement "{\n      uVar8 = 0;\n    }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }))) (expression_statement "piVar7 = (int *)(PTR_LAB_00036278 + 0x4970);" (assignment_expression "piVar7 = (int *)(PTR_LAB_00036278 + 0x4970)" identifier = (cast_expression "(int *)(PTR_LAB_00036278 + 0x4970)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00036278 + 0x4970)" ( (binary_expression "PTR_LAB_00036278 + 0x4970" identifier + number_literal) )))) ;) (expression_statement "iVar3 = argmatch(param_1,PTR_DAT_00036268 + 0x5fc8,piVar7,4);" (assignment_expression "iVar3 = argmatch(param_1,PTR_DAT_00036268 + 0x5fc8,piVar7,4)" identifier = (call_expression "argmatch(param_1,PTR_DAT_00036268 + 0x5fc8,piVar7,4)" identifier (argument_list "(param_1,PTR_DAT_00036268 + 0x5fc8,piVar7,4)" ( identifier , (binary_expression "PTR_DAT_00036268 + 0x5fc8" identifier + number_literal) , identifier , number_literal )))) ;) (if_statement "if (iVar3 < 0) {\n      piVar7 = (int *)0x0;\n      ppbVar6 = &local_28;\n      piVar4 = (int *)xstrtoumax(param_1,ppbVar6,0,param_3,PTR_LAB_00036278 + 0x4950);\n      if (piVar4 == (int *)0x0) {\n        uVar9 = uVar8;\n        if (9 < *param_1 - 0x30) {\n          if (param_1 == local_28) {\n            bVar1 = local_28[-1];\n          }\n          else {\n            do {\n              param_1 = param_1 + 1;\n              if (*param_1 - 0x30 < 10) goto LAB_00019a3c;\n            } while (param_1 != local_28);\n            bVar1 = local_28[-1];\n          }\n          ppbVar6 = (byte **)(int)(char)bVar1;\n          if (ppbVar6 == (byte **)0x42) {\n            uVar9 = uVar8 | 0x180;\n            if (local_28[-2] == 0x69) {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }\n          else {\n            uVar9 = uVar8 | 0xa0;\n          }\n        }\nLAB_00019a3c:\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = uVar9;\n      }\n      else {\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = 0;\n      }\n      if (iVar3 == 0 && iVar5 == 0) {\n        iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n        if (iVar3 == 0) {\n          ppbVar6 = (byte **)0x400;\n        }\n        else {\n          ppbVar6 = (byte **)0x200;\n        }\n        piVar4 = (int *)&DAT_00000004;\n        param_3[1] = (int)ppbVar6;\n        *param_3 = 0;\n      }\n    }\n    else {\n      ppbVar6 = (byte **)0x1;\n      param_3[1] = 1;\n      piVar4 = (int *)0x0;\n      *param_3 = 0;\n      *param_2 = uVar8 | *(uint *)(puVar2 + iVar3 * 4 + 0x4970);\n    }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n      piVar7 = (int *)0x0;\n      ppbVar6 = &local_28;\n      piVar4 = (int *)xstrtoumax(param_1,ppbVar6,0,param_3,PTR_LAB_00036278 + 0x4950);\n      if (piVar4 == (int *)0x0) {\n        uVar9 = uVar8;\n        if (9 < *param_1 - 0x30) {\n          if (param_1 == local_28) {\n            bVar1 = local_28[-1];\n          }\n          else {\n            do {\n              param_1 = param_1 + 1;\n              if (*param_1 - 0x30 < 10) goto LAB_00019a3c;\n            } while (param_1 != local_28);\n            bVar1 = local_28[-1];\n          }\n          ppbVar6 = (byte **)(int)(char)bVar1;\n          if (ppbVar6 == (byte **)0x42) {\n            uVar9 = uVar8 | 0x180;\n            if (local_28[-2] == 0x69) {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }\n          else {\n            uVar9 = uVar8 | 0xa0;\n          }\n        }\nLAB_00019a3c:\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = uVar9;\n      }\n      else {\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = 0;\n      }\n      if (iVar3 == 0 && iVar5 == 0) {\n        iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n        if (iVar3 == 0) {\n          ppbVar6 = (byte **)0x400;\n        }\n        else {\n          ppbVar6 = (byte **)0x200;\n        }\n        piVar4 = (int *)&DAT_00000004;\n        param_3[1] = (int)ppbVar6;\n        *param_3 = 0;\n      }\n    }" { (expression_statement "piVar7 = (int *)0x0;" (assignment_expression "piVar7 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppbVar6 = &local_28;" (assignment_expression "ppbVar6 = &local_28" identifier = (pointer_expression "&local_28" & identifier)) ;) (expression_statement "piVar4 = (int *)xstrtoumax(param_1,ppbVar6,0,param_3,PTR_LAB_00036278 + 0x4950);" (assignment_expression "piVar4 = (int *)xstrtoumax(param_1,ppbVar6,0,param_3,PTR_LAB_00036278 + 0x4950)" identifier = (cast_expression "(int *)xstrtoumax(param_1,ppbVar6,0,param_3,PTR_LAB_00036278 + 0x4950)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xstrtoumax(param_1,ppbVar6,0,param_3,PTR_LAB_00036278 + 0x4950)" identifier (argument_list "(param_1,ppbVar6,0,param_3,PTR_LAB_00036278 + 0x4950)" ( identifier , identifier , number_literal , identifier , (binary_expression "PTR_LAB_00036278 + 0x4950" identifier + number_literal) ))))) ;) (if_statement "if (piVar4 == (int *)0x0) {\n        uVar9 = uVar8;\n        if (9 < *param_1 - 0x30) {\n          if (param_1 == local_28) {\n            bVar1 = local_28[-1];\n          }\n          else {\n            do {\n              param_1 = param_1 + 1;\n              if (*param_1 - 0x30 < 10) goto LAB_00019a3c;\n            } while (param_1 != local_28);\n            bVar1 = local_28[-1];\n          }\n          ppbVar6 = (byte **)(int)(char)bVar1;\n          if (ppbVar6 == (byte **)0x42) {\n            uVar9 = uVar8 | 0x180;\n            if (local_28[-2] == 0x69) {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }\n          else {\n            uVar9 = uVar8 | 0xa0;\n          }\n        }\nLAB_00019a3c:\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = uVar9;\n      }\n      else {\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = 0;\n      }" if (parenthesized_expression "(piVar4 == (int *)0x0)" ( (binary_expression "piVar4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar9 = uVar8;\n        if (9 < *param_1 - 0x30) {\n          if (param_1 == local_28) {\n            bVar1 = local_28[-1];\n          }\n          else {\n            do {\n              param_1 = param_1 + 1;\n              if (*param_1 - 0x30 < 10) goto LAB_00019a3c;\n            } while (param_1 != local_28);\n            bVar1 = local_28[-1];\n          }\n          ppbVar6 = (byte **)(int)(char)bVar1;\n          if (ppbVar6 == (byte **)0x42) {\n            uVar9 = uVar8 | 0x180;\n            if (local_28[-2] == 0x69) {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }\n          else {\n            uVar9 = uVar8 | 0xa0;\n          }\n        }\nLAB_00019a3c:\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = uVar9;\n      }" { (expression_statement "uVar9 = uVar8;" (assignment_expression "uVar9 = uVar8" identifier = identifier) ;) (if_statement "if (9 < *param_1 - 0x30) {\n          if (param_1 == local_28) {\n            bVar1 = local_28[-1];\n          }\n          else {\n            do {\n              param_1 = param_1 + 1;\n              if (*param_1 - 0x30 < 10) goto LAB_00019a3c;\n            } while (param_1 != local_28);\n            bVar1 = local_28[-1];\n          }\n          ppbVar6 = (byte **)(int)(char)bVar1;\n          if (ppbVar6 == (byte **)0x42) {\n            uVar9 = uVar8 | 0x180;\n            if (local_28[-2] == 0x69) {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }\n          else {\n            uVar9 = uVar8 | 0xa0;\n          }\n        }" if (parenthesized_expression "(9 < *param_1 - 0x30)" ( (binary_expression "9 < *param_1 - 0x30" number_literal < (binary_expression "*param_1 - 0x30" (pointer_expression "*param_1" * identifier) - number_literal)) )) (compound_statement "{\n          if (param_1 == local_28) {\n            bVar1 = local_28[-1];\n          }\n          else {\n            do {\n              param_1 = param_1 + 1;\n              if (*param_1 - 0x30 < 10) goto LAB_00019a3c;\n            } while (param_1 != local_28);\n            bVar1 = local_28[-1];\n          }\n          ppbVar6 = (byte **)(int)(char)bVar1;\n          if (ppbVar6 == (byte **)0x42) {\n            uVar9 = uVar8 | 0x180;\n            if (local_28[-2] == 0x69) {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }\n          else {\n            uVar9 = uVar8 | 0xa0;\n          }\n        }" { (if_statement "if (param_1 == local_28) {\n            bVar1 = local_28[-1];\n          }\n          else {\n            do {\n              param_1 = param_1 + 1;\n              if (*param_1 - 0x30 < 10) goto LAB_00019a3c;\n            } while (param_1 != local_28);\n            bVar1 = local_28[-1];\n          }" if (parenthesized_expression "(param_1 == local_28)" ( (binary_expression "param_1 == local_28" identifier == identifier) )) (compound_statement "{\n            bVar1 = local_28[-1];\n          }" { (expression_statement "bVar1 = local_28[-1];" (assignment_expression "bVar1 = local_28[-1]" identifier = (subscript_expression "local_28[-1]" identifier [ number_literal ])) ;) }) (else_clause "else {\n            do {\n              param_1 = param_1 + 1;\n              if (*param_1 - 0x30 < 10) goto LAB_00019a3c;\n            } while (param_1 != local_28);\n            bVar1 = local_28[-1];\n          }" else (compound_statement "{\n            do {\n              param_1 = param_1 + 1;\n              if (*param_1 - 0x30 < 10) goto LAB_00019a3c;\n            } while (param_1 != local_28);\n            bVar1 = local_28[-1];\n          }" { (do_statement "do {\n              param_1 = param_1 + 1;\n              if (*param_1 - 0x30 < 10) goto LAB_00019a3c;\n            } while (param_1 != local_28);" do (compound_statement "{\n              param_1 = param_1 + 1;\n              if (*param_1 - 0x30 < 10) goto LAB_00019a3c;\n            }" { (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (if_statement "if (*param_1 - 0x30 < 10) goto LAB_00019a3c;" if (parenthesized_expression "(*param_1 - 0x30 < 10)" ( (binary_expression "*param_1 - 0x30 < 10" (binary_expression "*param_1 - 0x30" (pointer_expression "*param_1" * identifier) - number_literal) < number_literal) )) (goto_statement "goto LAB_00019a3c;" goto statement_identifier ;)) }) while (parenthesized_expression "(param_1 != local_28)" ( (binary_expression "param_1 != local_28" identifier != identifier) )) ;) (expression_statement "bVar1 = local_28[-1];" (assignment_expression "bVar1 = local_28[-1]" identifier = (subscript_expression "local_28[-1]" identifier [ number_literal ])) ;) }))) (expression_statement "ppbVar6 = (byte **)(int)(char)bVar1;" (assignment_expression "ppbVar6 = (byte **)(int)(char)bVar1" identifier = (cast_expression "(byte **)(int)(char)bVar1" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (cast_expression "(int)(char)bVar1" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier)))) ;) (if_statement "if (ppbVar6 == (byte **)0x42) {\n            uVar9 = uVar8 | 0x180;\n            if (local_28[-2] == 0x69) {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }\n          else {\n            uVar9 = uVar8 | 0xa0;\n          }" if (parenthesized_expression "(ppbVar6 == (byte **)0x42)" ( (binary_expression "ppbVar6 == (byte **)0x42" identifier == (cast_expression "(byte **)0x42" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n            uVar9 = uVar8 | 0x180;\n            if (local_28[-2] == 0x69) {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }" { (expression_statement "uVar9 = uVar8 | 0x180;" (assignment_expression "uVar9 = uVar8 | 0x180" identifier = (binary_expression "uVar8 | 0x180" identifier | number_literal)) ;) (if_statement "if (local_28[-2] == 0x69) {\n              uVar9 = uVar8 | 0x1a0;\n            }" if (parenthesized_expression "(local_28[-2] == 0x69)" ( (binary_expression "local_28[-2] == 0x69" (subscript_expression "local_28[-2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n              uVar9 = uVar8 | 0x1a0;\n            }" { (expression_statement "uVar9 = uVar8 | 0x1a0;" (assignment_expression "uVar9 = uVar8 | 0x1a0" identifier = (binary_expression "uVar8 | 0x1a0" identifier | number_literal)) ;) })) }) (else_clause "else {\n            uVar9 = uVar8 | 0xa0;\n          }" else (compound_statement "{\n            uVar9 = uVar8 | 0xa0;\n          }" { (expression_statement "uVar9 = uVar8 | 0xa0;" (assignment_expression "uVar9 = uVar8 | 0xa0" identifier = (binary_expression "uVar8 | 0xa0" identifier | number_literal)) ;) }))) })) (labeled_statement "LAB_00019a3c:\n        iVar3 = *param_3;" statement_identifier : (expression_statement "iVar3 = *param_3;" (assignment_expression "iVar3 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;)) (expression_statement "iVar5 = param_3[1];" (assignment_expression "iVar5 = param_3[1]" identifier = (subscript_expression "param_3[1]" identifier [ number_literal ])) ;) (expression_statement "*param_2 = uVar9;" (assignment_expression "*param_2 = uVar9" (pointer_expression "*param_2" * identifier) = identifier) ;) }) (else_clause "else {\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = 0;\n      }" else (compound_statement "{\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = 0;\n      }" { (expression_statement "iVar3 = *param_3;" (assignment_expression "iVar3 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "iVar5 = param_3[1];" (assignment_expression "iVar5 = param_3[1]" identifier = (subscript_expression "param_3[1]" identifier [ number_literal ])) ;) (expression_statement "*param_2 = 0;" (assignment_expression "*param_2 = 0" (pointer_expression "*param_2" * identifier) = number_literal) ;) }))) (if_statement "if (iVar3 == 0 && iVar5 == 0) {\n        iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n        if (iVar3 == 0) {\n          ppbVar6 = (byte **)0x400;\n        }\n        else {\n          ppbVar6 = (byte **)0x200;\n        }\n        piVar4 = (int *)&DAT_00000004;\n        param_3[1] = (int)ppbVar6;\n        *param_3 = 0;\n      }" if (parenthesized_expression "(iVar3 == 0 && iVar5 == 0)" ( (binary_expression "iVar3 == 0 && iVar5 == 0" (binary_expression "iVar3 == 0" identifier == number_literal) && (binary_expression "iVar5 == 0" identifier == number_literal)) )) (compound_statement "{\n        iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n        if (iVar3 == 0) {\n          ppbVar6 = (byte **)0x400;\n        }\n        else {\n          ppbVar6 = (byte **)0x200;\n        }\n        piVar4 = (int *)&DAT_00000004;\n        param_3[1] = (int)ppbVar6;\n        *param_3 = 0;\n      }" { (expression_statement "iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);" (assignment_expression "iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474)" identifier = (call_expression "(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474)" (parenthesized_expression "(*(code *)PTR_getenv_00036524)" ( (pointer_expression "*(code *)PTR_getenv_00036524" * (cast_expression "(code *)PTR_getenv_00036524" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_00036278 + 0x4474)" ( (binary_expression "PTR_LAB_00036278 + 0x4474" identifier + number_literal) )))) ;) (if_statement "if (iVar3 == 0) {\n          ppbVar6 = (byte **)0x400;\n        }\n        else {\n          ppbVar6 = (byte **)0x200;\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          ppbVar6 = (byte **)0x400;\n        }" { (expression_statement "ppbVar6 = (byte **)0x400;" (assignment_expression "ppbVar6 = (byte **)0x400" identifier = (cast_expression "(byte **)0x400" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) }) (else_clause "else {\n          ppbVar6 = (byte **)0x200;\n        }" else (compound_statement "{\n          ppbVar6 = (byte **)0x200;\n        }" { (expression_statement "ppbVar6 = (byte **)0x200;" (assignment_expression "ppbVar6 = (byte **)0x200" identifier = (cast_expression "(byte **)0x200" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) }))) (expression_statement "piVar4 = (int *)&DAT_00000004;" (assignment_expression "piVar4 = (int *)&DAT_00000004" identifier = (cast_expression "(int *)&DAT_00000004" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000004" & identifier))) ;) (expression_statement "param_3[1] = (int)ppbVar6;" (assignment_expression "param_3[1] = (int)ppbVar6" (subscript_expression "param_3[1]" identifier [ number_literal ]) = (cast_expression "(int)ppbVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*param_3 = 0;" (assignment_expression "*param_3 = 0" (pointer_expression "*param_3" * identifier) = number_literal) ;) })) }) (else_clause "else {\n      ppbVar6 = (byte **)0x1;\n      param_3[1] = 1;\n      piVar4 = (int *)0x0;\n      *param_3 = 0;\n      *param_2 = uVar8 | *(uint *)(puVar2 + iVar3 * 4 + 0x4970);\n    }" else (compound_statement "{\n      ppbVar6 = (byte **)0x1;\n      param_3[1] = 1;\n      piVar4 = (int *)0x0;\n      *param_3 = 0;\n      *param_2 = uVar8 | *(uint *)(puVar2 + iVar3 * 4 + 0x4970);\n    }" { (expression_statement "ppbVar6 = (byte **)0x1;" (assignment_expression "ppbVar6 = (byte **)0x1" identifier = (cast_expression "(byte **)0x1" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "param_3[1] = 1;" (assignment_expression "param_3[1] = 1" (subscript_expression "param_3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar4 = (int *)0x0;" (assignment_expression "piVar4 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*param_3 = 0;" (assignment_expression "*param_3 = 0" (pointer_expression "*param_3" * identifier) = number_literal) ;) (expression_statement "*param_2 = uVar8 | *(uint *)(puVar2 + iVar3 * 4 + 0x4970);" (assignment_expression "*param_2 = uVar8 | *(uint *)(puVar2 + iVar3 * 4 + 0x4970)" (pointer_expression "*param_2" * identifier) = (binary_expression "uVar8 | *(uint *)(puVar2 + iVar3 * 4 + 0x4970)" identifier | (pointer_expression "*(uint *)(puVar2 + iVar3 * 4 + 0x4970)" * (cast_expression "(uint *)(puVar2 + iVar3 * 4 + 0x4970)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + iVar3 * 4 + 0x4970)" ( (binary_expression "puVar2 + iVar3 * 4 + 0x4970" (binary_expression "puVar2 + iVar3 * 4" identifier + (binary_expression "iVar3 * 4" identifier * number_literal)) + number_literal) )))))) ;) }))) }))) (if_statement "if (local_24 != *(int *)puVar10) {\n    iVar3 = local_24;\n    puVar10 = PTR___stack_chk_fail_0003656c;\n    (*(code *)PTR___stack_chk_fail_0003656c)();\n    uVar11 = CONCAT44(iVar3,ppbVar6);\n    puVar10 = puVar10 + 0x246e0;\n    piVar4 = piVar7 + 5;\n    *(undefined1 *)(piVar7 + 5) = 0;\n    do {\n      do {\n        iVar3 = (int)((ulonglong)uVar11 >> 0x20);\n        uVar8 = (uint)uVar11;\n        FUN_00022d50(iVar3,uVar8,0,10,puVar10);\n        piVar4 = (int *)((int)piVar4 + -1);\n        *(char *)piVar4 = extraout_v1 + '0';\n        uVar11 = FUN_000228e0(iVar3,uVar8,0,10);\n      } while (iVar3 != 0);\n    } while (9 < uVar8);\n    return piVar4;\n  }" if (parenthesized_expression "(local_24 != *(int *)puVar10)" ( (binary_expression "local_24 != *(int *)puVar10" identifier != (pointer_expression "*(int *)puVar10" * (cast_expression "(int *)puVar10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    iVar3 = local_24;\n    puVar10 = PTR___stack_chk_fail_0003656c;\n    (*(code *)PTR___stack_chk_fail_0003656c)();\n    uVar11 = CONCAT44(iVar3,ppbVar6);\n    puVar10 = puVar10 + 0x246e0;\n    piVar4 = piVar7 + 5;\n    *(undefined1 *)(piVar7 + 5) = 0;\n    do {\n      do {\n        iVar3 = (int)((ulonglong)uVar11 >> 0x20);\n        uVar8 = (uint)uVar11;\n        FUN_00022d50(iVar3,uVar8,0,10,puVar10);\n        piVar4 = (int *)((int)piVar4 + -1);\n        *(char *)piVar4 = extraout_v1 + '0';\n        uVar11 = FUN_000228e0(iVar3,uVar8,0,10);\n      } while (iVar3 != 0);\n    } while (9 < uVar8);\n    return piVar4;\n  }" { (expression_statement "iVar3 = local_24;" (assignment_expression "iVar3 = local_24" identifier = identifier) ;) (expression_statement "puVar10 = PTR___stack_chk_fail_0003656c;" (assignment_expression "puVar10 = PTR___stack_chk_fail_0003656c" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0003656c)();" (call_expression "(*(code *)PTR___stack_chk_fail_0003656c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0003656c)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0003656c" * (cast_expression "(code *)PTR___stack_chk_fail_0003656c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar11 = CONCAT44(iVar3,ppbVar6);" (assignment_expression "uVar11 = CONCAT44(iVar3,ppbVar6)" identifier = (call_expression "CONCAT44(iVar3,ppbVar6)" identifier (argument_list "(iVar3,ppbVar6)" ( identifier , identifier )))) ;) (expression_statement "puVar10 = puVar10 + 0x246e0;" (assignment_expression "puVar10 = puVar10 + 0x246e0" identifier = (binary_expression "puVar10 + 0x246e0" identifier + number_literal)) ;) (expression_statement "piVar4 = piVar7 + 5;" (assignment_expression "piVar4 = piVar7 + 5" identifier = (binary_expression "piVar7 + 5" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)(piVar7 + 5) = 0;" (assignment_expression "*(undefined1 *)(piVar7 + 5) = 0" (pointer_expression "*(undefined1 *)(piVar7 + 5)" * (cast_expression "(undefined1 *)(piVar7 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar7 + 5)" ( (binary_expression "piVar7 + 5" identifier + number_literal) )))) = number_literal) ;) (do_statement "do {\n      do {\n        iVar3 = (int)((ulonglong)uVar11 >> 0x20);\n        uVar8 = (uint)uVar11;\n        FUN_00022d50(iVar3,uVar8,0,10,puVar10);\n        piVar4 = (int *)((int)piVar4 + -1);\n        *(char *)piVar4 = extraout_v1 + '0';\n        uVar11 = FUN_000228e0(iVar3,uVar8,0,10);\n      } while (iVar3 != 0);\n    } while (9 < uVar8);" do (compound_statement "{\n      do {\n        iVar3 = (int)((ulonglong)uVar11 >> 0x20);\n        uVar8 = (uint)uVar11;\n        FUN_00022d50(iVar3,uVar8,0,10,puVar10);\n        piVar4 = (int *)((int)piVar4 + -1);\n        *(char *)piVar4 = extraout_v1 + '0';\n        uVar11 = FUN_000228e0(iVar3,uVar8,0,10);\n      } while (iVar3 != 0);\n    }" { (do_statement "do {\n        iVar3 = (int)((ulonglong)uVar11 >> 0x20);\n        uVar8 = (uint)uVar11;\n        FUN_00022d50(iVar3,uVar8,0,10,puVar10);\n        piVar4 = (int *)((int)piVar4 + -1);\n        *(char *)piVar4 = extraout_v1 + '0';\n        uVar11 = FUN_000228e0(iVar3,uVar8,0,10);\n      } while (iVar3 != 0);" do (compound_statement "{\n        iVar3 = (int)((ulonglong)uVar11 >> 0x20);\n        uVar8 = (uint)uVar11;\n        FUN_00022d50(iVar3,uVar8,0,10,puVar10);\n        piVar4 = (int *)((int)piVar4 + -1);\n        *(char *)piVar4 = extraout_v1 + '0';\n        uVar11 = FUN_000228e0(iVar3,uVar8,0,10);\n      }" { (expression_statement "iVar3 = (int)((ulonglong)uVar11 >> 0x20);" (assignment_expression "iVar3 = (int)((ulonglong)uVar11 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)uVar11 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar11 >> 0x20)" ( (binary_expression "(ulonglong)uVar11 >> 0x20" (cast_expression "(ulonglong)uVar11" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar8 = (uint)uVar11;" (assignment_expression "uVar8 = (uint)uVar11" identifier = (cast_expression "(uint)uVar11" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "FUN_00022d50(iVar3,uVar8,0,10,puVar10);" (call_expression "FUN_00022d50(iVar3,uVar8,0,10,puVar10)" identifier (argument_list "(iVar3,uVar8,0,10,puVar10)" ( identifier , identifier , number_literal , number_literal , identifier ))) ;) (expression_statement "piVar4 = (int *)((int)piVar4 + -1);" (assignment_expression "piVar4 = (int *)((int)piVar4 + -1)" identifier = (cast_expression "(int *)((int)piVar4 + -1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar4 + -1)" ( (binary_expression "(int)piVar4 + -1" (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*(char *)piVar4 = extraout_v1 + '0';" (assignment_expression "*(char *)piVar4 = extraout_v1 + '0'" (pointer_expression "*(char *)piVar4" * (cast_expression "(char *)piVar4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "extraout_v1 + '0'" identifier + (char_literal "'0'" ' character '))) ;) (expression_statement "uVar11 = FUN_000228e0(iVar3,uVar8,0,10);" (assignment_expression "uVar11 = FUN_000228e0(iVar3,uVar8,0,10)" identifier = (call_expression "FUN_000228e0(iVar3,uVar8,0,10)" identifier (argument_list "(iVar3,uVar8,0,10)" ( identifier , identifier , number_literal , number_literal )))) ;) }) while (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) ;) }) while (parenthesized_expression "(9 < uVar8)" ( (binary_expression "9 < uVar8" number_literal < identifier) )) ;) (return_statement "return piVar4;" return identifier ;) })) (return_statement "return piVar4;" return identifier ;) })))
(translation_unit "strtol_error human_options(char *spec,int *opts,uintmax_t *block_size)\n\n{\n  char cVar1;\n  undefined *puVar2;\n  ptrdiff_t pVar3;\n  strtol_error sVar4;\n  int iVar5;\n  char extraout_v1;\n  int iVar6;\n  char **ptr_00;\n  uintmax_t *vallist;\n  char *pcVar7;\n  uint uVar8;\n  uint uVar9;\n  undefined *puVar10;\n  undefined8 uVar11;\n  char *ptr;\n  int local_24;\n  \n  puVar10 = PTR___stack_chk_guard_0003658c;\n  local_24 = *(int *)PTR___stack_chk_guard_0003658c;\n  if (((spec == (char *)0x0) &&\n      (vallist = block_size,\n      spec = (char *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938),\n      (byte *)spec == (byte *)0x0)) &&\n     (spec = (char *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4944),\n     (byte *)spec == (byte *)0x0)) {\n    iVar5 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n    if (iVar5 == 0) {\n      ptr_00 = (char **)0x400;\n      *(undefined4 *)((int)block_size + 4) = 0x400;\n      *(undefined4 *)block_size = 0;\n      *opts = 0;\n      sVar4 = LONGINT_OK;\n    }\n    else {\n      ptr_00 = (char **)0x200;\n      *(undefined4 *)((int)block_size + 4) = 0x200;\n      sVar4 = LONGINT_OK;\n      *(undefined4 *)block_size = 0;\n      *opts = 0;\n    }\n  }\n  else {\n    puVar2 = PTR_LAB_00036278;\n    if (*spec == 0x27) {\n      spec = (char *)((byte *)spec + 1);\n      uVar8 = 4;\n    }\n    else {\n      uVar8 = 0;\n    }\n    vallist = (uintmax_t *)(PTR_LAB_00036278 + 0x4970);\n    pVar3 = argmatch(spec,(char **)(PTR_DAT_00036268 + 0x5fc8),(char *)vallist,4);\n    if (pVar3 < 0) {\n      vallist = (uintmax_t *)0x0;\n      ptr_00 = &ptr;\n      sVar4 = xstrtoumax(spec,ptr_00,0,block_size,PTR_LAB_00036278 + 0x4950);\n      if (sVar4 == LONGINT_OK) {\n        uVar9 = uVar8;\n        if (9 < (byte)*spec - 0x30) {\n          if (spec == ptr) {\n            cVar1 = ptr[-1];\n          }\n          else {\n            do {\n              spec = (char *)((byte *)spec + 1);\n              if ((byte)*spec - 0x30 < 10) goto LAB_00019a3c;\n            } while (spec != ptr);\n            cVar1 = ptr[-1];\n          }\n          ptr_00 = (char **)(int)cVar1;\n          if (ptr_00 == (char **)0x42) {\n            uVar9 = uVar8 | 0x180;\n            if (ptr[-2] == 'i') {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }\n          else {\n            uVar9 = uVar8 | 0xa0;\n          }\n        }\nLAB_00019a3c:\n        iVar5 = *(int *)block_size;\n        iVar6 = (int)*block_size;\n        *opts = uVar9;\n      }\n      else {\n        iVar5 = *(int *)block_size;\n        iVar6 = (int)*block_size;\n        *opts = 0;\n      }\n      if (iVar5 == 0 && iVar6 == 0) {\n        iVar5 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n        if (iVar5 == 0) {\n          ptr_00 = (char **)0x400;\n        }\n        else {\n          ptr_00 = (char **)0x200;\n        }\n        sVar4 = LONGINT_INVALID;\n        *(char ***)((int)block_size + 4) = ptr_00;\n        *(undefined4 *)block_size = 0;\n      }\n    }\n    else {\n      ptr_00 = (char **)0x1;\n      *(undefined4 *)((int)block_size + 4) = 1;\n      sVar4 = LONGINT_OK;\n      *(undefined4 *)block_size = 0;\n      *opts = uVar8 | *(uint *)(puVar2 + pVar3 * 4 + 0x4970);\n    }\n  }\n  if (local_24 != *(int *)puVar10) {\n    iVar5 = local_24;\n    puVar10 = PTR___stack_chk_fail_0003656c;\n    (*(code *)PTR___stack_chk_fail_0003656c)();\n    uVar11 = CONCAT44(iVar5,ptr_00);\n    puVar10 = puVar10 + 0x246e0;\n    pcVar7 = (char *)((int)vallist + 0x14);\n    *(undefined1 *)((int)vallist + 0x14) = 0;\n    do {\n      do {\n        iVar5 = (int)((ulonglong)uVar11 >> 0x20);\n        uVar8 = (uint)uVar11;\n        __umoddi3(iVar5,uVar8,0,10,puVar10);\n        pcVar7 = pcVar7 + -1;\n        *pcVar7 = extraout_v1 + '0';\n        uVar11 = __udivdi3(iVar5,uVar8,0,10);\n      } while (iVar5 != 0);\n    } while (9 < uVar8);\n    return (strtol_error)pcVar7;\n  }\n  return sVar4;\n}\n\n" (function_definition "strtol_error human_options(char *spec,int *opts,uintmax_t *block_size)\n\n{\n  char cVar1;\n  undefined *puVar2;\n  ptrdiff_t pVar3;\n  strtol_error sVar4;\n  int iVar5;\n  char extraout_v1;\n  int iVar6;\n  char **ptr_00;\n  uintmax_t *vallist;\n  char *pcVar7;\n  uint uVar8;\n  uint uVar9;\n  undefined *puVar10;\n  undefined8 uVar11;\n  char *ptr;\n  int local_24;\n  \n  puVar10 = PTR___stack_chk_guard_0003658c;\n  local_24 = *(int *)PTR___stack_chk_guard_0003658c;\n  if (((spec == (char *)0x0) &&\n      (vallist = block_size,\n      spec = (char *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938),\n      (byte *)spec == (byte *)0x0)) &&\n     (spec = (char *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4944),\n     (byte *)spec == (byte *)0x0)) {\n    iVar5 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n    if (iVar5 == 0) {\n      ptr_00 = (char **)0x400;\n      *(undefined4 *)((int)block_size + 4) = 0x400;\n      *(undefined4 *)block_size = 0;\n      *opts = 0;\n      sVar4 = LONGINT_OK;\n    }\n    else {\n      ptr_00 = (char **)0x200;\n      *(undefined4 *)((int)block_size + 4) = 0x200;\n      sVar4 = LONGINT_OK;\n      *(undefined4 *)block_size = 0;\n      *opts = 0;\n    }\n  }\n  else {\n    puVar2 = PTR_LAB_00036278;\n    if (*spec == 0x27) {\n      spec = (char *)((byte *)spec + 1);\n      uVar8 = 4;\n    }\n    else {\n      uVar8 = 0;\n    }\n    vallist = (uintmax_t *)(PTR_LAB_00036278 + 0x4970);\n    pVar3 = argmatch(spec,(char **)(PTR_DAT_00036268 + 0x5fc8),(char *)vallist,4);\n    if (pVar3 < 0) {\n      vallist = (uintmax_t *)0x0;\n      ptr_00 = &ptr;\n      sVar4 = xstrtoumax(spec,ptr_00,0,block_size,PTR_LAB_00036278 + 0x4950);\n      if (sVar4 == LONGINT_OK) {\n        uVar9 = uVar8;\n        if (9 < (byte)*spec - 0x30) {\n          if (spec == ptr) {\n            cVar1 = ptr[-1];\n          }\n          else {\n            do {\n              spec = (char *)((byte *)spec + 1);\n              if ((byte)*spec - 0x30 < 10) goto LAB_00019a3c;\n            } while (spec != ptr);\n            cVar1 = ptr[-1];\n          }\n          ptr_00 = (char **)(int)cVar1;\n          if (ptr_00 == (char **)0x42) {\n            uVar9 = uVar8 | 0x180;\n            if (ptr[-2] == 'i') {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }\n          else {\n            uVar9 = uVar8 | 0xa0;\n          }\n        }\nLAB_00019a3c:\n        iVar5 = *(int *)block_size;\n        iVar6 = (int)*block_size;\n        *opts = uVar9;\n      }\n      else {\n        iVar5 = *(int *)block_size;\n        iVar6 = (int)*block_size;\n        *opts = 0;\n      }\n      if (iVar5 == 0 && iVar6 == 0) {\n        iVar5 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n        if (iVar5 == 0) {\n          ptr_00 = (char **)0x400;\n        }\n        else {\n          ptr_00 = (char **)0x200;\n        }\n        sVar4 = LONGINT_INVALID;\n        *(char ***)((int)block_size + 4) = ptr_00;\n        *(undefined4 *)block_size = 0;\n      }\n    }\n    else {\n      ptr_00 = (char **)0x1;\n      *(undefined4 *)((int)block_size + 4) = 1;\n      sVar4 = LONGINT_OK;\n      *(undefined4 *)block_size = 0;\n      *opts = uVar8 | *(uint *)(puVar2 + pVar3 * 4 + 0x4970);\n    }\n  }\n  if (local_24 != *(int *)puVar10) {\n    iVar5 = local_24;\n    puVar10 = PTR___stack_chk_fail_0003656c;\n    (*(code *)PTR___stack_chk_fail_0003656c)();\n    uVar11 = CONCAT44(iVar5,ptr_00);\n    puVar10 = puVar10 + 0x246e0;\n    pcVar7 = (char *)((int)vallist + 0x14);\n    *(undefined1 *)((int)vallist + 0x14) = 0;\n    do {\n      do {\n        iVar5 = (int)((ulonglong)uVar11 >> 0x20);\n        uVar8 = (uint)uVar11;\n        __umoddi3(iVar5,uVar8,0,10,puVar10);\n        pcVar7 = pcVar7 + -1;\n        *pcVar7 = extraout_v1 + '0';\n        uVar11 = __udivdi3(iVar5,uVar8,0,10);\n      } while (iVar5 != 0);\n    } while (9 < uVar8);\n    return (strtol_error)pcVar7;\n  }\n  return sVar4;\n}" type_identifier (function_declarator "human_options(char *spec,int *opts,uintmax_t *block_size)" identifier (parameter_list "(char *spec,int *opts,uintmax_t *block_size)" ( (parameter_declaration "char *spec" primitive_type (pointer_declarator "*spec" * identifier)) , (parameter_declaration "int *opts" primitive_type (pointer_declarator "*opts" * identifier)) , (parameter_declaration "uintmax_t *block_size" type_identifier (pointer_declarator "*block_size" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  undefined *puVar2;\n  ptrdiff_t pVar3;\n  strtol_error sVar4;\n  int iVar5;\n  char extraout_v1;\n  int iVar6;\n  char **ptr_00;\n  uintmax_t *vallist;\n  char *pcVar7;\n  uint uVar8;\n  uint uVar9;\n  undefined *puVar10;\n  undefined8 uVar11;\n  char *ptr;\n  int local_24;\n  \n  puVar10 = PTR___stack_chk_guard_0003658c;\n  local_24 = *(int *)PTR___stack_chk_guard_0003658c;\n  if (((spec == (char *)0x0) &&\n      (vallist = block_size,\n      spec = (char *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938),\n      (byte *)spec == (byte *)0x0)) &&\n     (spec = (char *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4944),\n     (byte *)spec == (byte *)0x0)) {\n    iVar5 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n    if (iVar5 == 0) {\n      ptr_00 = (char **)0x400;\n      *(undefined4 *)((int)block_size + 4) = 0x400;\n      *(undefined4 *)block_size = 0;\n      *opts = 0;\n      sVar4 = LONGINT_OK;\n    }\n    else {\n      ptr_00 = (char **)0x200;\n      *(undefined4 *)((int)block_size + 4) = 0x200;\n      sVar4 = LONGINT_OK;\n      *(undefined4 *)block_size = 0;\n      *opts = 0;\n    }\n  }\n  else {\n    puVar2 = PTR_LAB_00036278;\n    if (*spec == 0x27) {\n      spec = (char *)((byte *)spec + 1);\n      uVar8 = 4;\n    }\n    else {\n      uVar8 = 0;\n    }\n    vallist = (uintmax_t *)(PTR_LAB_00036278 + 0x4970);\n    pVar3 = argmatch(spec,(char **)(PTR_DAT_00036268 + 0x5fc8),(char *)vallist,4);\n    if (pVar3 < 0) {\n      vallist = (uintmax_t *)0x0;\n      ptr_00 = &ptr;\n      sVar4 = xstrtoumax(spec,ptr_00,0,block_size,PTR_LAB_00036278 + 0x4950);\n      if (sVar4 == LONGINT_OK) {\n        uVar9 = uVar8;\n        if (9 < (byte)*spec - 0x30) {\n          if (spec == ptr) {\n            cVar1 = ptr[-1];\n          }\n          else {\n            do {\n              spec = (char *)((byte *)spec + 1);\n              if ((byte)*spec - 0x30 < 10) goto LAB_00019a3c;\n            } while (spec != ptr);\n            cVar1 = ptr[-1];\n          }\n          ptr_00 = (char **)(int)cVar1;\n          if (ptr_00 == (char **)0x42) {\n            uVar9 = uVar8 | 0x180;\n            if (ptr[-2] == 'i') {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }\n          else {\n            uVar9 = uVar8 | 0xa0;\n          }\n        }\nLAB_00019a3c:\n        iVar5 = *(int *)block_size;\n        iVar6 = (int)*block_size;\n        *opts = uVar9;\n      }\n      else {\n        iVar5 = *(int *)block_size;\n        iVar6 = (int)*block_size;\n        *opts = 0;\n      }\n      if (iVar5 == 0 && iVar6 == 0) {\n        iVar5 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n        if (iVar5 == 0) {\n          ptr_00 = (char **)0x400;\n        }\n        else {\n          ptr_00 = (char **)0x200;\n        }\n        sVar4 = LONGINT_INVALID;\n        *(char ***)((int)block_size + 4) = ptr_00;\n        *(undefined4 *)block_size = 0;\n      }\n    }\n    else {\n      ptr_00 = (char **)0x1;\n      *(undefined4 *)((int)block_size + 4) = 1;\n      sVar4 = LONGINT_OK;\n      *(undefined4 *)block_size = 0;\n      *opts = uVar8 | *(uint *)(puVar2 + pVar3 * 4 + 0x4970);\n    }\n  }\n  if (local_24 != *(int *)puVar10) {\n    iVar5 = local_24;\n    puVar10 = PTR___stack_chk_fail_0003656c;\n    (*(code *)PTR___stack_chk_fail_0003656c)();\n    uVar11 = CONCAT44(iVar5,ptr_00);\n    puVar10 = puVar10 + 0x246e0;\n    pcVar7 = (char *)((int)vallist + 0x14);\n    *(undefined1 *)((int)vallist + 0x14) = 0;\n    do {\n      do {\n        iVar5 = (int)((ulonglong)uVar11 >> 0x20);\n        uVar8 = (uint)uVar11;\n        __umoddi3(iVar5,uVar8,0,10,puVar10);\n        pcVar7 = pcVar7 + -1;\n        *pcVar7 = extraout_v1 + '0';\n        uVar11 = __udivdi3(iVar5,uVar8,0,10);\n      } while (iVar5 != 0);\n    } while (9 < uVar8);\n    return (strtol_error)pcVar7;\n  }\n  return sVar4;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "ptrdiff_t pVar3;" primitive_type identifier ;) (declaration "strtol_error sVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "char extraout_v1;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "char **ptr_00;" primitive_type (pointer_declarator "**ptr_00" * (pointer_declarator "*ptr_00" * identifier)) ;) (declaration "uintmax_t *vallist;" type_identifier (pointer_declarator "*vallist" * identifier) ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "undefined8 uVar11;" type_identifier identifier ;) (declaration "char *ptr;" primitive_type (pointer_declarator "*ptr" * identifier) ;) (declaration "int local_24;" primitive_type identifier ;) (expression_statement "puVar10 = PTR___stack_chk_guard_0003658c;" (assignment_expression "puVar10 = PTR___stack_chk_guard_0003658c" identifier = identifier) ;) (expression_statement "local_24 = *(int *)PTR___stack_chk_guard_0003658c;" (assignment_expression "local_24 = *(int *)PTR___stack_chk_guard_0003658c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0003658c" * (cast_expression "(int *)PTR___stack_chk_guard_0003658c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (((spec == (char *)0x0) &&\n      (vallist = block_size,\n      spec = (char *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938),\n      (byte *)spec == (byte *)0x0)) &&\n     (spec = (char *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4944),\n     (byte *)spec == (byte *)0x0)) {\n    iVar5 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n    if (iVar5 == 0) {\n      ptr_00 = (char **)0x400;\n      *(undefined4 *)((int)block_size + 4) = 0x400;\n      *(undefined4 *)block_size = 0;\n      *opts = 0;\n      sVar4 = LONGINT_OK;\n    }\n    else {\n      ptr_00 = (char **)0x200;\n      *(undefined4 *)((int)block_size + 4) = 0x200;\n      sVar4 = LONGINT_OK;\n      *(undefined4 *)block_size = 0;\n      *opts = 0;\n    }\n  }\n  else {\n    puVar2 = PTR_LAB_00036278;\n    if (*spec == 0x27) {\n      spec = (char *)((byte *)spec + 1);\n      uVar8 = 4;\n    }\n    else {\n      uVar8 = 0;\n    }\n    vallist = (uintmax_t *)(PTR_LAB_00036278 + 0x4970);\n    pVar3 = argmatch(spec,(char **)(PTR_DAT_00036268 + 0x5fc8),(char *)vallist,4);\n    if (pVar3 < 0) {\n      vallist = (uintmax_t *)0x0;\n      ptr_00 = &ptr;\n      sVar4 = xstrtoumax(spec,ptr_00,0,block_size,PTR_LAB_00036278 + 0x4950);\n      if (sVar4 == LONGINT_OK) {\n        uVar9 = uVar8;\n        if (9 < (byte)*spec - 0x30) {\n          if (spec == ptr) {\n            cVar1 = ptr[-1];\n          }\n          else {\n            do {\n              spec = (char *)((byte *)spec + 1);\n              if ((byte)*spec - 0x30 < 10) goto LAB_00019a3c;\n            } while (spec != ptr);\n            cVar1 = ptr[-1];\n          }\n          ptr_00 = (char **)(int)cVar1;\n          if (ptr_00 == (char **)0x42) {\n            uVar9 = uVar8 | 0x180;\n            if (ptr[-2] == 'i') {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }\n          else {\n            uVar9 = uVar8 | 0xa0;\n          }\n        }\nLAB_00019a3c:\n        iVar5 = *(int *)block_size;\n        iVar6 = (int)*block_size;\n        *opts = uVar9;\n      }\n      else {\n        iVar5 = *(int *)block_size;\n        iVar6 = (int)*block_size;\n        *opts = 0;\n      }\n      if (iVar5 == 0 && iVar6 == 0) {\n        iVar5 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n        if (iVar5 == 0) {\n          ptr_00 = (char **)0x400;\n        }\n        else {\n          ptr_00 = (char **)0x200;\n        }\n        sVar4 = LONGINT_INVALID;\n        *(char ***)((int)block_size + 4) = ptr_00;\n        *(undefined4 *)block_size = 0;\n      }\n    }\n    else {\n      ptr_00 = (char **)0x1;\n      *(undefined4 *)((int)block_size + 4) = 1;\n      sVar4 = LONGINT_OK;\n      *(undefined4 *)block_size = 0;\n      *opts = uVar8 | *(uint *)(puVar2 + pVar3 * 4 + 0x4970);\n    }\n  }" if (parenthesized_expression "(((spec == (char *)0x0) &&\n      (vallist = block_size,\n      spec = (char *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938),\n      (byte *)spec == (byte *)0x0)) &&\n     (spec = (char *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4944),\n     (byte *)spec == (byte *)0x0))" ( (binary_expression "((spec == (char *)0x0) &&\n      (vallist = block_size,\n      spec = (char *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938),\n      (byte *)spec == (byte *)0x0)) &&\n     (spec = (char *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4944),\n     (byte *)spec == (byte *)0x0)" (parenthesized_expression "((spec == (char *)0x0) &&\n      (vallist = block_size,\n      spec = (char *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938),\n      (byte *)spec == (byte *)0x0))" ( (binary_expression "(spec == (char *)0x0) &&\n      (vallist = block_size,\n      spec = (char *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938),\n      (byte *)spec == (byte *)0x0)" (parenthesized_expression "(spec == (char *)0x0)" ( (binary_expression "spec == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(vallist = block_size,\n      spec = (char *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938),\n      (byte *)spec == (byte *)0x0)" ( (comma_expression "vallist = block_size,\n      spec = (char *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938),\n      (byte *)spec == (byte *)0x0" (assignment_expression "vallist = block_size" identifier = identifier) , (comma_expression "spec = (char *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938),\n      (byte *)spec == (byte *)0x0" (assignment_expression "spec = (char *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938)" identifier = (cast_expression "(char *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938)" (parenthesized_expression "(*(code *)PTR_getenv_00036524)" ( (pointer_expression "*(code *)PTR_getenv_00036524" * (cast_expression "(code *)PTR_getenv_00036524" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_00036278 + 0x4938)" ( (binary_expression "PTR_LAB_00036278 + 0x4938" identifier + number_literal) ))))) , (binary_expression "(byte *)spec == (byte *)0x0" (cast_expression "(byte *)spec" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)))) ))) )) && (parenthesized_expression "(spec = (char *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4944),\n     (byte *)spec == (byte *)0x0)" ( (comma_expression "spec = (char *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4944),\n     (byte *)spec == (byte *)0x0" (assignment_expression "spec = (char *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4944)" identifier = (cast_expression "(char *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4944)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4944)" (parenthesized_expression "(*(code *)PTR_getenv_00036524)" ( (pointer_expression "*(code *)PTR_getenv_00036524" * (cast_expression "(code *)PTR_getenv_00036524" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_00036278 + 0x4944)" ( (binary_expression "PTR_LAB_00036278 + 0x4944" identifier + number_literal) ))))) , (binary_expression "(byte *)spec == (byte *)0x0" (cast_expression "(byte *)spec" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    iVar5 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n    if (iVar5 == 0) {\n      ptr_00 = (char **)0x400;\n      *(undefined4 *)((int)block_size + 4) = 0x400;\n      *(undefined4 *)block_size = 0;\n      *opts = 0;\n      sVar4 = LONGINT_OK;\n    }\n    else {\n      ptr_00 = (char **)0x200;\n      *(undefined4 *)((int)block_size + 4) = 0x200;\n      sVar4 = LONGINT_OK;\n      *(undefined4 *)block_size = 0;\n      *opts = 0;\n    }\n  }" { (expression_statement "iVar5 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);" (assignment_expression "iVar5 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474)" identifier = (call_expression "(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474)" (parenthesized_expression "(*(code *)PTR_getenv_00036524)" ( (pointer_expression "*(code *)PTR_getenv_00036524" * (cast_expression "(code *)PTR_getenv_00036524" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_00036278 + 0x4474)" ( (binary_expression "PTR_LAB_00036278 + 0x4474" identifier + number_literal) )))) ;) (if_statement "if (iVar5 == 0) {\n      ptr_00 = (char **)0x400;\n      *(undefined4 *)((int)block_size + 4) = 0x400;\n      *(undefined4 *)block_size = 0;\n      *opts = 0;\n      sVar4 = LONGINT_OK;\n    }\n    else {\n      ptr_00 = (char **)0x200;\n      *(undefined4 *)((int)block_size + 4) = 0x200;\n      sVar4 = LONGINT_OK;\n      *(undefined4 *)block_size = 0;\n      *opts = 0;\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      ptr_00 = (char **)0x400;\n      *(undefined4 *)((int)block_size + 4) = 0x400;\n      *(undefined4 *)block_size = 0;\n      *opts = 0;\n      sVar4 = LONGINT_OK;\n    }" { (expression_statement "ptr_00 = (char **)0x400;" (assignment_expression "ptr_00 = (char **)0x400" identifier = (cast_expression "(char **)0x400" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "*(undefined4 *)((int)block_size + 4) = 0x400;" (assignment_expression "*(undefined4 *)((int)block_size + 4) = 0x400" (pointer_expression "*(undefined4 *)((int)block_size + 4)" * (cast_expression "(undefined4 *)((int)block_size + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)block_size + 4)" ( (binary_expression "(int)block_size + 4" (cast_expression "(int)block_size" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)block_size = 0;" (assignment_expression "*(undefined4 *)block_size = 0" (pointer_expression "*(undefined4 *)block_size" * (cast_expression "(undefined4 *)block_size" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "*opts = 0;" (assignment_expression "*opts = 0" (pointer_expression "*opts" * identifier) = number_literal) ;) (expression_statement "sVar4 = LONGINT_OK;" (assignment_expression "sVar4 = LONGINT_OK" identifier = identifier) ;) }) (else_clause "else {\n      ptr_00 = (char **)0x200;\n      *(undefined4 *)((int)block_size + 4) = 0x200;\n      sVar4 = LONGINT_OK;\n      *(undefined4 *)block_size = 0;\n      *opts = 0;\n    }" else (compound_statement "{\n      ptr_00 = (char **)0x200;\n      *(undefined4 *)((int)block_size + 4) = 0x200;\n      sVar4 = LONGINT_OK;\n      *(undefined4 *)block_size = 0;\n      *opts = 0;\n    }" { (expression_statement "ptr_00 = (char **)0x200;" (assignment_expression "ptr_00 = (char **)0x200" identifier = (cast_expression "(char **)0x200" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "*(undefined4 *)((int)block_size + 4) = 0x200;" (assignment_expression "*(undefined4 *)((int)block_size + 4) = 0x200" (pointer_expression "*(undefined4 *)((int)block_size + 4)" * (cast_expression "(undefined4 *)((int)block_size + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)block_size + 4)" ( (binary_expression "(int)block_size + 4" (cast_expression "(int)block_size" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "sVar4 = LONGINT_OK;" (assignment_expression "sVar4 = LONGINT_OK" identifier = identifier) ;) (expression_statement "*(undefined4 *)block_size = 0;" (assignment_expression "*(undefined4 *)block_size = 0" (pointer_expression "*(undefined4 *)block_size" * (cast_expression "(undefined4 *)block_size" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "*opts = 0;" (assignment_expression "*opts = 0" (pointer_expression "*opts" * identifier) = number_literal) ;) }))) }) (else_clause "else {\n    puVar2 = PTR_LAB_00036278;\n    if (*spec == 0x27) {\n      spec = (char *)((byte *)spec + 1);\n      uVar8 = 4;\n    }\n    else {\n      uVar8 = 0;\n    }\n    vallist = (uintmax_t *)(PTR_LAB_00036278 + 0x4970);\n    pVar3 = argmatch(spec,(char **)(PTR_DAT_00036268 + 0x5fc8),(char *)vallist,4);\n    if (pVar3 < 0) {\n      vallist = (uintmax_t *)0x0;\n      ptr_00 = &ptr;\n      sVar4 = xstrtoumax(spec,ptr_00,0,block_size,PTR_LAB_00036278 + 0x4950);\n      if (sVar4 == LONGINT_OK) {\n        uVar9 = uVar8;\n        if (9 < (byte)*spec - 0x30) {\n          if (spec == ptr) {\n            cVar1 = ptr[-1];\n          }\n          else {\n            do {\n              spec = (char *)((byte *)spec + 1);\n              if ((byte)*spec - 0x30 < 10) goto LAB_00019a3c;\n            } while (spec != ptr);\n            cVar1 = ptr[-1];\n          }\n          ptr_00 = (char **)(int)cVar1;\n          if (ptr_00 == (char **)0x42) {\n            uVar9 = uVar8 | 0x180;\n            if (ptr[-2] == 'i') {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }\n          else {\n            uVar9 = uVar8 | 0xa0;\n          }\n        }\nLAB_00019a3c:\n        iVar5 = *(int *)block_size;\n        iVar6 = (int)*block_size;\n        *opts = uVar9;\n      }\n      else {\n        iVar5 = *(int *)block_size;\n        iVar6 = (int)*block_size;\n        *opts = 0;\n      }\n      if (iVar5 == 0 && iVar6 == 0) {\n        iVar5 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n        if (iVar5 == 0) {\n          ptr_00 = (char **)0x400;\n        }\n        else {\n          ptr_00 = (char **)0x200;\n        }\n        sVar4 = LONGINT_INVALID;\n        *(char ***)((int)block_size + 4) = ptr_00;\n        *(undefined4 *)block_size = 0;\n      }\n    }\n    else {\n      ptr_00 = (char **)0x1;\n      *(undefined4 *)((int)block_size + 4) = 1;\n      sVar4 = LONGINT_OK;\n      *(undefined4 *)block_size = 0;\n      *opts = uVar8 | *(uint *)(puVar2 + pVar3 * 4 + 0x4970);\n    }\n  }" else (compound_statement "{\n    puVar2 = PTR_LAB_00036278;\n    if (*spec == 0x27) {\n      spec = (char *)((byte *)spec + 1);\n      uVar8 = 4;\n    }\n    else {\n      uVar8 = 0;\n    }\n    vallist = (uintmax_t *)(PTR_LAB_00036278 + 0x4970);\n    pVar3 = argmatch(spec,(char **)(PTR_DAT_00036268 + 0x5fc8),(char *)vallist,4);\n    if (pVar3 < 0) {\n      vallist = (uintmax_t *)0x0;\n      ptr_00 = &ptr;\n      sVar4 = xstrtoumax(spec,ptr_00,0,block_size,PTR_LAB_00036278 + 0x4950);\n      if (sVar4 == LONGINT_OK) {\n        uVar9 = uVar8;\n        if (9 < (byte)*spec - 0x30) {\n          if (spec == ptr) {\n            cVar1 = ptr[-1];\n          }\n          else {\n            do {\n              spec = (char *)((byte *)spec + 1);\n              if ((byte)*spec - 0x30 < 10) goto LAB_00019a3c;\n            } while (spec != ptr);\n            cVar1 = ptr[-1];\n          }\n          ptr_00 = (char **)(int)cVar1;\n          if (ptr_00 == (char **)0x42) {\n            uVar9 = uVar8 | 0x180;\n            if (ptr[-2] == 'i') {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }\n          else {\n            uVar9 = uVar8 | 0xa0;\n          }\n        }\nLAB_00019a3c:\n        iVar5 = *(int *)block_size;\n        iVar6 = (int)*block_size;\n        *opts = uVar9;\n      }\n      else {\n        iVar5 = *(int *)block_size;\n        iVar6 = (int)*block_size;\n        *opts = 0;\n      }\n      if (iVar5 == 0 && iVar6 == 0) {\n        iVar5 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n        if (iVar5 == 0) {\n          ptr_00 = (char **)0x400;\n        }\n        else {\n          ptr_00 = (char **)0x200;\n        }\n        sVar4 = LONGINT_INVALID;\n        *(char ***)((int)block_size + 4) = ptr_00;\n        *(undefined4 *)block_size = 0;\n      }\n    }\n    else {\n      ptr_00 = (char **)0x1;\n      *(undefined4 *)((int)block_size + 4) = 1;\n      sVar4 = LONGINT_OK;\n      *(undefined4 *)block_size = 0;\n      *opts = uVar8 | *(uint *)(puVar2 + pVar3 * 4 + 0x4970);\n    }\n  }" { (expression_statement "puVar2 = PTR_LAB_00036278;" (assignment_expression "puVar2 = PTR_LAB_00036278" identifier = identifier) ;) (if_statement "if (*spec == 0x27) {\n      spec = (char *)((byte *)spec + 1);\n      uVar8 = 4;\n    }\n    else {\n      uVar8 = 0;\n    }" if (parenthesized_expression "(*spec == 0x27)" ( (binary_expression "*spec == 0x27" (pointer_expression "*spec" * identifier) == number_literal) )) (compound_statement "{\n      spec = (char *)((byte *)spec + 1);\n      uVar8 = 4;\n    }" { (expression_statement "spec = (char *)((byte *)spec + 1);" (assignment_expression "spec = (char *)((byte *)spec + 1)" identifier = (cast_expression "(char *)((byte *)spec + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((byte *)spec + 1)" ( (binary_expression "(byte *)spec + 1" (cast_expression "(byte *)spec" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) + number_literal) )))) ;) (expression_statement "uVar8 = 4;" (assignment_expression "uVar8 = 4" identifier = number_literal) ;) }) (else_clause "else {\n      uVar8 = 0;\n    }" else (compound_statement "{\n      uVar8 = 0;\n    }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }))) (expression_statement "vallist = (uintmax_t *)(PTR_LAB_00036278 + 0x4970);" (assignment_expression "vallist = (uintmax_t *)(PTR_LAB_00036278 + 0x4970)" identifier = (cast_expression "(uintmax_t *)(PTR_LAB_00036278 + 0x4970)" ( (type_descriptor "uintmax_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00036278 + 0x4970)" ( (binary_expression "PTR_LAB_00036278 + 0x4970" identifier + number_literal) )))) ;) (expression_statement "pVar3 = argmatch(spec,(char **)(PTR_DAT_00036268 + 0x5fc8),(char *)vallist,4);" (assignment_expression "pVar3 = argmatch(spec,(char **)(PTR_DAT_00036268 + 0x5fc8),(char *)vallist,4)" identifier = (call_expression "argmatch(spec,(char **)(PTR_DAT_00036268 + 0x5fc8),(char *)vallist,4)" identifier (argument_list "(spec,(char **)(PTR_DAT_00036268 + 0x5fc8),(char *)vallist,4)" ( identifier , (cast_expression "(char **)(PTR_DAT_00036268 + 0x5fc8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_00036268 + 0x5fc8)" ( (binary_expression "PTR_DAT_00036268 + 0x5fc8" identifier + number_literal) ))) , (cast_expression "(char *)vallist" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (if_statement "if (pVar3 < 0) {\n      vallist = (uintmax_t *)0x0;\n      ptr_00 = &ptr;\n      sVar4 = xstrtoumax(spec,ptr_00,0,block_size,PTR_LAB_00036278 + 0x4950);\n      if (sVar4 == LONGINT_OK) {\n        uVar9 = uVar8;\n        if (9 < (byte)*spec - 0x30) {\n          if (spec == ptr) {\n            cVar1 = ptr[-1];\n          }\n          else {\n            do {\n              spec = (char *)((byte *)spec + 1);\n              if ((byte)*spec - 0x30 < 10) goto LAB_00019a3c;\n            } while (spec != ptr);\n            cVar1 = ptr[-1];\n          }\n          ptr_00 = (char **)(int)cVar1;\n          if (ptr_00 == (char **)0x42) {\n            uVar9 = uVar8 | 0x180;\n            if (ptr[-2] == 'i') {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }\n          else {\n            uVar9 = uVar8 | 0xa0;\n          }\n        }\nLAB_00019a3c:\n        iVar5 = *(int *)block_size;\n        iVar6 = (int)*block_size;\n        *opts = uVar9;\n      }\n      else {\n        iVar5 = *(int *)block_size;\n        iVar6 = (int)*block_size;\n        *opts = 0;\n      }\n      if (iVar5 == 0 && iVar6 == 0) {\n        iVar5 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n        if (iVar5 == 0) {\n          ptr_00 = (char **)0x400;\n        }\n        else {\n          ptr_00 = (char **)0x200;\n        }\n        sVar4 = LONGINT_INVALID;\n        *(char ***)((int)block_size + 4) = ptr_00;\n        *(undefined4 *)block_size = 0;\n      }\n    }\n    else {\n      ptr_00 = (char **)0x1;\n      *(undefined4 *)((int)block_size + 4) = 1;\n      sVar4 = LONGINT_OK;\n      *(undefined4 *)block_size = 0;\n      *opts = uVar8 | *(uint *)(puVar2 + pVar3 * 4 + 0x4970);\n    }" if (parenthesized_expression "(pVar3 < 0)" ( (binary_expression "pVar3 < 0" identifier < number_literal) )) (compound_statement "{\n      vallist = (uintmax_t *)0x0;\n      ptr_00 = &ptr;\n      sVar4 = xstrtoumax(spec,ptr_00,0,block_size,PTR_LAB_00036278 + 0x4950);\n      if (sVar4 == LONGINT_OK) {\n        uVar9 = uVar8;\n        if (9 < (byte)*spec - 0x30) {\n          if (spec == ptr) {\n            cVar1 = ptr[-1];\n          }\n          else {\n            do {\n              spec = (char *)((byte *)spec + 1);\n              if ((byte)*spec - 0x30 < 10) goto LAB_00019a3c;\n            } while (spec != ptr);\n            cVar1 = ptr[-1];\n          }\n          ptr_00 = (char **)(int)cVar1;\n          if (ptr_00 == (char **)0x42) {\n            uVar9 = uVar8 | 0x180;\n            if (ptr[-2] == 'i') {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }\n          else {\n            uVar9 = uVar8 | 0xa0;\n          }\n        }\nLAB_00019a3c:\n        iVar5 = *(int *)block_size;\n        iVar6 = (int)*block_size;\n        *opts = uVar9;\n      }\n      else {\n        iVar5 = *(int *)block_size;\n        iVar6 = (int)*block_size;\n        *opts = 0;\n      }\n      if (iVar5 == 0 && iVar6 == 0) {\n        iVar5 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n        if (iVar5 == 0) {\n          ptr_00 = (char **)0x400;\n        }\n        else {\n          ptr_00 = (char **)0x200;\n        }\n        sVar4 = LONGINT_INVALID;\n        *(char ***)((int)block_size + 4) = ptr_00;\n        *(undefined4 *)block_size = 0;\n      }\n    }" { (expression_statement "vallist = (uintmax_t *)0x0;" (assignment_expression "vallist = (uintmax_t *)0x0" identifier = (cast_expression "(uintmax_t *)0x0" ( (type_descriptor "uintmax_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ptr_00 = &ptr;" (assignment_expression "ptr_00 = &ptr" identifier = (pointer_expression "&ptr" & identifier)) ;) (expression_statement "sVar4 = xstrtoumax(spec,ptr_00,0,block_size,PTR_LAB_00036278 + 0x4950);" (assignment_expression "sVar4 = xstrtoumax(spec,ptr_00,0,block_size,PTR_LAB_00036278 + 0x4950)" identifier = (call_expression "xstrtoumax(spec,ptr_00,0,block_size,PTR_LAB_00036278 + 0x4950)" identifier (argument_list "(spec,ptr_00,0,block_size,PTR_LAB_00036278 + 0x4950)" ( identifier , identifier , number_literal , identifier , (binary_expression "PTR_LAB_00036278 + 0x4950" identifier + number_literal) )))) ;) (if_statement "if (sVar4 == LONGINT_OK) {\n        uVar9 = uVar8;\n        if (9 < (byte)*spec - 0x30) {\n          if (spec == ptr) {\n            cVar1 = ptr[-1];\n          }\n          else {\n            do {\n              spec = (char *)((byte *)spec + 1);\n              if ((byte)*spec - 0x30 < 10) goto LAB_00019a3c;\n            } while (spec != ptr);\n            cVar1 = ptr[-1];\n          }\n          ptr_00 = (char **)(int)cVar1;\n          if (ptr_00 == (char **)0x42) {\n            uVar9 = uVar8 | 0x180;\n            if (ptr[-2] == 'i') {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }\n          else {\n            uVar9 = uVar8 | 0xa0;\n          }\n        }\nLAB_00019a3c:\n        iVar5 = *(int *)block_size;\n        iVar6 = (int)*block_size;\n        *opts = uVar9;\n      }\n      else {\n        iVar5 = *(int *)block_size;\n        iVar6 = (int)*block_size;\n        *opts = 0;\n      }" if (parenthesized_expression "(sVar4 == LONGINT_OK)" ( (binary_expression "sVar4 == LONGINT_OK" identifier == identifier) )) (compound_statement "{\n        uVar9 = uVar8;\n        if (9 < (byte)*spec - 0x30) {\n          if (spec == ptr) {\n            cVar1 = ptr[-1];\n          }\n          else {\n            do {\n              spec = (char *)((byte *)spec + 1);\n              if ((byte)*spec - 0x30 < 10) goto LAB_00019a3c;\n            } while (spec != ptr);\n            cVar1 = ptr[-1];\n          }\n          ptr_00 = (char **)(int)cVar1;\n          if (ptr_00 == (char **)0x42) {\n            uVar9 = uVar8 | 0x180;\n            if (ptr[-2] == 'i') {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }\n          else {\n            uVar9 = uVar8 | 0xa0;\n          }\n        }\nLAB_00019a3c:\n        iVar5 = *(int *)block_size;\n        iVar6 = (int)*block_size;\n        *opts = uVar9;\n      }" { (expression_statement "uVar9 = uVar8;" (assignment_expression "uVar9 = uVar8" identifier = identifier) ;) (if_statement "if (9 < (byte)*spec - 0x30) {\n          if (spec == ptr) {\n            cVar1 = ptr[-1];\n          }\n          else {\n            do {\n              spec = (char *)((byte *)spec + 1);\n              if ((byte)*spec - 0x30 < 10) goto LAB_00019a3c;\n            } while (spec != ptr);\n            cVar1 = ptr[-1];\n          }\n          ptr_00 = (char **)(int)cVar1;\n          if (ptr_00 == (char **)0x42) {\n            uVar9 = uVar8 | 0x180;\n            if (ptr[-2] == 'i') {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }\n          else {\n            uVar9 = uVar8 | 0xa0;\n          }\n        }" if (parenthesized_expression "(9 < (byte)*spec - 0x30)" ( (binary_expression "9 < (byte)*spec - 0x30" number_literal < (binary_expression "(byte)*spec - 0x30" (binary_expression "(byte)*spec" (parenthesized_expression "(byte)" ( identifier )) * identifier) - number_literal)) )) (compound_statement "{\n          if (spec == ptr) {\n            cVar1 = ptr[-1];\n          }\n          else {\n            do {\n              spec = (char *)((byte *)spec + 1);\n              if ((byte)*spec - 0x30 < 10) goto LAB_00019a3c;\n            } while (spec != ptr);\n            cVar1 = ptr[-1];\n          }\n          ptr_00 = (char **)(int)cVar1;\n          if (ptr_00 == (char **)0x42) {\n            uVar9 = uVar8 | 0x180;\n            if (ptr[-2] == 'i') {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }\n          else {\n            uVar9 = uVar8 | 0xa0;\n          }\n        }" { (if_statement "if (spec == ptr) {\n            cVar1 = ptr[-1];\n          }\n          else {\n            do {\n              spec = (char *)((byte *)spec + 1);\n              if ((byte)*spec - 0x30 < 10) goto LAB_00019a3c;\n            } while (spec != ptr);\n            cVar1 = ptr[-1];\n          }" if (parenthesized_expression "(spec == ptr)" ( (binary_expression "spec == ptr" identifier == identifier) )) (compound_statement "{\n            cVar1 = ptr[-1];\n          }" { (expression_statement "cVar1 = ptr[-1];" (assignment_expression "cVar1 = ptr[-1]" identifier = (subscript_expression "ptr[-1]" identifier [ number_literal ])) ;) }) (else_clause "else {\n            do {\n              spec = (char *)((byte *)spec + 1);\n              if ((byte)*spec - 0x30 < 10) goto LAB_00019a3c;\n            } while (spec != ptr);\n            cVar1 = ptr[-1];\n          }" else (compound_statement "{\n            do {\n              spec = (char *)((byte *)spec + 1);\n              if ((byte)*spec - 0x30 < 10) goto LAB_00019a3c;\n            } while (spec != ptr);\n            cVar1 = ptr[-1];\n          }" { (do_statement "do {\n              spec = (char *)((byte *)spec + 1);\n              if ((byte)*spec - 0x30 < 10) goto LAB_00019a3c;\n            } while (spec != ptr);" do (compound_statement "{\n              spec = (char *)((byte *)spec + 1);\n              if ((byte)*spec - 0x30 < 10) goto LAB_00019a3c;\n            }" { (expression_statement "spec = (char *)((byte *)spec + 1);" (assignment_expression "spec = (char *)((byte *)spec + 1)" identifier = (cast_expression "(char *)((byte *)spec + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((byte *)spec + 1)" ( (binary_expression "(byte *)spec + 1" (cast_expression "(byte *)spec" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) + number_literal) )))) ;) (if_statement "if ((byte)*spec - 0x30 < 10) goto LAB_00019a3c;" if (parenthesized_expression "((byte)*spec - 0x30 < 10)" ( (binary_expression "(byte)*spec - 0x30 < 10" (binary_expression "(byte)*spec - 0x30" (binary_expression "(byte)*spec" (parenthesized_expression "(byte)" ( identifier )) * identifier) - number_literal) < number_literal) )) (goto_statement "goto LAB_00019a3c;" goto statement_identifier ;)) }) while (parenthesized_expression "(spec != ptr)" ( (binary_expression "spec != ptr" identifier != identifier) )) ;) (expression_statement "cVar1 = ptr[-1];" (assignment_expression "cVar1 = ptr[-1]" identifier = (subscript_expression "ptr[-1]" identifier [ number_literal ])) ;) }))) (expression_statement "ptr_00 = (char **)(int)cVar1;" (assignment_expression "ptr_00 = (char **)(int)cVar1" identifier = (cast_expression "(char **)(int)cVar1" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (cast_expression "(int)cVar1" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (ptr_00 == (char **)0x42) {\n            uVar9 = uVar8 | 0x180;\n            if (ptr[-2] == 'i') {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }\n          else {\n            uVar9 = uVar8 | 0xa0;\n          }" if (parenthesized_expression "(ptr_00 == (char **)0x42)" ( (binary_expression "ptr_00 == (char **)0x42" identifier == (cast_expression "(char **)0x42" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n            uVar9 = uVar8 | 0x180;\n            if (ptr[-2] == 'i') {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }" { (expression_statement "uVar9 = uVar8 | 0x180;" (assignment_expression "uVar9 = uVar8 | 0x180" identifier = (binary_expression "uVar8 | 0x180" identifier | number_literal)) ;) (if_statement "if (ptr[-2] == 'i') {\n              uVar9 = uVar8 | 0x1a0;\n            }" if (parenthesized_expression "(ptr[-2] == 'i')" ( (binary_expression "ptr[-2] == 'i'" (subscript_expression "ptr[-2]" identifier [ number_literal ]) == (char_literal "'i'" ' character ')) )) (compound_statement "{\n              uVar9 = uVar8 | 0x1a0;\n            }" { (expression_statement "uVar9 = uVar8 | 0x1a0;" (assignment_expression "uVar9 = uVar8 | 0x1a0" identifier = (binary_expression "uVar8 | 0x1a0" identifier | number_literal)) ;) })) }) (else_clause "else {\n            uVar9 = uVar8 | 0xa0;\n          }" else (compound_statement "{\n            uVar9 = uVar8 | 0xa0;\n          }" { (expression_statement "uVar9 = uVar8 | 0xa0;" (assignment_expression "uVar9 = uVar8 | 0xa0" identifier = (binary_expression "uVar8 | 0xa0" identifier | number_literal)) ;) }))) })) (labeled_statement "LAB_00019a3c:\n        iVar5 = *(int *)block_size;" statement_identifier : (expression_statement "iVar5 = *(int *)block_size;" (assignment_expression "iVar5 = *(int *)block_size" identifier = (pointer_expression "*(int *)block_size" * (cast_expression "(int *)block_size" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;)) (expression_statement "iVar6 = (int)*block_size;" (assignment_expression "iVar6 = (int)*block_size" identifier = (cast_expression "(int)*block_size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*block_size" * identifier))) ;) (expression_statement "*opts = uVar9;" (assignment_expression "*opts = uVar9" (pointer_expression "*opts" * identifier) = identifier) ;) }) (else_clause "else {\n        iVar5 = *(int *)block_size;\n        iVar6 = (int)*block_size;\n        *opts = 0;\n      }" else (compound_statement "{\n        iVar5 = *(int *)block_size;\n        iVar6 = (int)*block_size;\n        *opts = 0;\n      }" { (expression_statement "iVar5 = *(int *)block_size;" (assignment_expression "iVar5 = *(int *)block_size" identifier = (pointer_expression "*(int *)block_size" * (cast_expression "(int *)block_size" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar6 = (int)*block_size;" (assignment_expression "iVar6 = (int)*block_size" identifier = (cast_expression "(int)*block_size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*block_size" * identifier))) ;) (expression_statement "*opts = 0;" (assignment_expression "*opts = 0" (pointer_expression "*opts" * identifier) = number_literal) ;) }))) (if_statement "if (iVar5 == 0 && iVar6 == 0) {\n        iVar5 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n        if (iVar5 == 0) {\n          ptr_00 = (char **)0x400;\n        }\n        else {\n          ptr_00 = (char **)0x200;\n        }\n        sVar4 = LONGINT_INVALID;\n        *(char ***)((int)block_size + 4) = ptr_00;\n        *(undefined4 *)block_size = 0;\n      }" if (parenthesized_expression "(iVar5 == 0 && iVar6 == 0)" ( (binary_expression "iVar5 == 0 && iVar6 == 0" (binary_expression "iVar5 == 0" identifier == number_literal) && (binary_expression "iVar6 == 0" identifier == number_literal)) )) (compound_statement "{\n        iVar5 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n        if (iVar5 == 0) {\n          ptr_00 = (char **)0x400;\n        }\n        else {\n          ptr_00 = (char **)0x200;\n        }\n        sVar4 = LONGINT_INVALID;\n        *(char ***)((int)block_size + 4) = ptr_00;\n        *(undefined4 *)block_size = 0;\n      }" { (expression_statement "iVar5 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);" (assignment_expression "iVar5 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474)" identifier = (call_expression "(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474)" (parenthesized_expression "(*(code *)PTR_getenv_00036524)" ( (pointer_expression "*(code *)PTR_getenv_00036524" * (cast_expression "(code *)PTR_getenv_00036524" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_00036278 + 0x4474)" ( (binary_expression "PTR_LAB_00036278 + 0x4474" identifier + number_literal) )))) ;) (if_statement "if (iVar5 == 0) {\n          ptr_00 = (char **)0x400;\n        }\n        else {\n          ptr_00 = (char **)0x200;\n        }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n          ptr_00 = (char **)0x400;\n        }" { (expression_statement "ptr_00 = (char **)0x400;" (assignment_expression "ptr_00 = (char **)0x400" identifier = (cast_expression "(char **)0x400" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) }) (else_clause "else {\n          ptr_00 = (char **)0x200;\n        }" else (compound_statement "{\n          ptr_00 = (char **)0x200;\n        }" { (expression_statement "ptr_00 = (char **)0x200;" (assignment_expression "ptr_00 = (char **)0x200" identifier = (cast_expression "(char **)0x200" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) }))) (expression_statement "sVar4 = LONGINT_INVALID;" (assignment_expression "sVar4 = LONGINT_INVALID" identifier = identifier) ;) (expression_statement "*(char ***)((int)block_size + 4) = ptr_00;" (assignment_expression "*(char ***)((int)block_size + 4) = ptr_00" (pointer_expression "*(char ***)((int)block_size + 4)" * (cast_expression "(char ***)((int)block_size + 4)" ( (type_descriptor "char ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)block_size + 4)" ( (binary_expression "(int)block_size + 4" (cast_expression "(int)block_size" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)block_size = 0;" (assignment_expression "*(undefined4 *)block_size = 0" (pointer_expression "*(undefined4 *)block_size" * (cast_expression "(undefined4 *)block_size" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) })) }) (else_clause "else {\n      ptr_00 = (char **)0x1;\n      *(undefined4 *)((int)block_size + 4) = 1;\n      sVar4 = LONGINT_OK;\n      *(undefined4 *)block_size = 0;\n      *opts = uVar8 | *(uint *)(puVar2 + pVar3 * 4 + 0x4970);\n    }" else (compound_statement "{\n      ptr_00 = (char **)0x1;\n      *(undefined4 *)((int)block_size + 4) = 1;\n      sVar4 = LONGINT_OK;\n      *(undefined4 *)block_size = 0;\n      *opts = uVar8 | *(uint *)(puVar2 + pVar3 * 4 + 0x4970);\n    }" { (expression_statement "ptr_00 = (char **)0x1;" (assignment_expression "ptr_00 = (char **)0x1" identifier = (cast_expression "(char **)0x1" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "*(undefined4 *)((int)block_size + 4) = 1;" (assignment_expression "*(undefined4 *)((int)block_size + 4) = 1" (pointer_expression "*(undefined4 *)((int)block_size + 4)" * (cast_expression "(undefined4 *)((int)block_size + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)block_size + 4)" ( (binary_expression "(int)block_size + 4" (cast_expression "(int)block_size" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "sVar4 = LONGINT_OK;" (assignment_expression "sVar4 = LONGINT_OK" identifier = identifier) ;) (expression_statement "*(undefined4 *)block_size = 0;" (assignment_expression "*(undefined4 *)block_size = 0" (pointer_expression "*(undefined4 *)block_size" * (cast_expression "(undefined4 *)block_size" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "*opts = uVar8 | *(uint *)(puVar2 + pVar3 * 4 + 0x4970);" (assignment_expression "*opts = uVar8 | *(uint *)(puVar2 + pVar3 * 4 + 0x4970)" (pointer_expression "*opts" * identifier) = (binary_expression "uVar8 | *(uint *)(puVar2 + pVar3 * 4 + 0x4970)" identifier | (pointer_expression "*(uint *)(puVar2 + pVar3 * 4 + 0x4970)" * (cast_expression "(uint *)(puVar2 + pVar3 * 4 + 0x4970)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + pVar3 * 4 + 0x4970)" ( (binary_expression "puVar2 + pVar3 * 4 + 0x4970" (binary_expression "puVar2 + pVar3 * 4" identifier + (binary_expression "pVar3 * 4" identifier * number_literal)) + number_literal) )))))) ;) }))) }))) (if_statement "if (local_24 != *(int *)puVar10) {\n    iVar5 = local_24;\n    puVar10 = PTR___stack_chk_fail_0003656c;\n    (*(code *)PTR___stack_chk_fail_0003656c)();\n    uVar11 = CONCAT44(iVar5,ptr_00);\n    puVar10 = puVar10 + 0x246e0;\n    pcVar7 = (char *)((int)vallist + 0x14);\n    *(undefined1 *)((int)vallist + 0x14) = 0;\n    do {\n      do {\n        iVar5 = (int)((ulonglong)uVar11 >> 0x20);\n        uVar8 = (uint)uVar11;\n        __umoddi3(iVar5,uVar8,0,10,puVar10);\n        pcVar7 = pcVar7 + -1;\n        *pcVar7 = extraout_v1 + '0';\n        uVar11 = __udivdi3(iVar5,uVar8,0,10);\n      } while (iVar5 != 0);\n    } while (9 < uVar8);\n    return (strtol_error)pcVar7;\n  }" if (parenthesized_expression "(local_24 != *(int *)puVar10)" ( (binary_expression "local_24 != *(int *)puVar10" identifier != (pointer_expression "*(int *)puVar10" * (cast_expression "(int *)puVar10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    iVar5 = local_24;\n    puVar10 = PTR___stack_chk_fail_0003656c;\n    (*(code *)PTR___stack_chk_fail_0003656c)();\n    uVar11 = CONCAT44(iVar5,ptr_00);\n    puVar10 = puVar10 + 0x246e0;\n    pcVar7 = (char *)((int)vallist + 0x14);\n    *(undefined1 *)((int)vallist + 0x14) = 0;\n    do {\n      do {\n        iVar5 = (int)((ulonglong)uVar11 >> 0x20);\n        uVar8 = (uint)uVar11;\n        __umoddi3(iVar5,uVar8,0,10,puVar10);\n        pcVar7 = pcVar7 + -1;\n        *pcVar7 = extraout_v1 + '0';\n        uVar11 = __udivdi3(iVar5,uVar8,0,10);\n      } while (iVar5 != 0);\n    } while (9 < uVar8);\n    return (strtol_error)pcVar7;\n  }" { (expression_statement "iVar5 = local_24;" (assignment_expression "iVar5 = local_24" identifier = identifier) ;) (expression_statement "puVar10 = PTR___stack_chk_fail_0003656c;" (assignment_expression "puVar10 = PTR___stack_chk_fail_0003656c" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0003656c)();" (call_expression "(*(code *)PTR___stack_chk_fail_0003656c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0003656c)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0003656c" * (cast_expression "(code *)PTR___stack_chk_fail_0003656c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar11 = CONCAT44(iVar5,ptr_00);" (assignment_expression "uVar11 = CONCAT44(iVar5,ptr_00)" identifier = (call_expression "CONCAT44(iVar5,ptr_00)" identifier (argument_list "(iVar5,ptr_00)" ( identifier , identifier )))) ;) (expression_statement "puVar10 = puVar10 + 0x246e0;" (assignment_expression "puVar10 = puVar10 + 0x246e0" identifier = (binary_expression "puVar10 + 0x246e0" identifier + number_literal)) ;) (expression_statement "pcVar7 = (char *)((int)vallist + 0x14);" (assignment_expression "pcVar7 = (char *)((int)vallist + 0x14)" identifier = (cast_expression "(char *)((int)vallist + 0x14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)vallist + 0x14)" ( (binary_expression "(int)vallist + 0x14" (cast_expression "(int)vallist" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*(undefined1 *)((int)vallist + 0x14) = 0;" (assignment_expression "*(undefined1 *)((int)vallist + 0x14) = 0" (pointer_expression "*(undefined1 *)((int)vallist + 0x14)" * (cast_expression "(undefined1 *)((int)vallist + 0x14)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)vallist + 0x14)" ( (binary_expression "(int)vallist + 0x14" (cast_expression "(int)vallist" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (do_statement "do {\n      do {\n        iVar5 = (int)((ulonglong)uVar11 >> 0x20);\n        uVar8 = (uint)uVar11;\n        __umoddi3(iVar5,uVar8,0,10,puVar10);\n        pcVar7 = pcVar7 + -1;\n        *pcVar7 = extraout_v1 + '0';\n        uVar11 = __udivdi3(iVar5,uVar8,0,10);\n      } while (iVar5 != 0);\n    } while (9 < uVar8);" do (compound_statement "{\n      do {\n        iVar5 = (int)((ulonglong)uVar11 >> 0x20);\n        uVar8 = (uint)uVar11;\n        __umoddi3(iVar5,uVar8,0,10,puVar10);\n        pcVar7 = pcVar7 + -1;\n        *pcVar7 = extraout_v1 + '0';\n        uVar11 = __udivdi3(iVar5,uVar8,0,10);\n      } while (iVar5 != 0);\n    }" { (do_statement "do {\n        iVar5 = (int)((ulonglong)uVar11 >> 0x20);\n        uVar8 = (uint)uVar11;\n        __umoddi3(iVar5,uVar8,0,10,puVar10);\n        pcVar7 = pcVar7 + -1;\n        *pcVar7 = extraout_v1 + '0';\n        uVar11 = __udivdi3(iVar5,uVar8,0,10);\n      } while (iVar5 != 0);" do (compound_statement "{\n        iVar5 = (int)((ulonglong)uVar11 >> 0x20);\n        uVar8 = (uint)uVar11;\n        __umoddi3(iVar5,uVar8,0,10,puVar10);\n        pcVar7 = pcVar7 + -1;\n        *pcVar7 = extraout_v1 + '0';\n        uVar11 = __udivdi3(iVar5,uVar8,0,10);\n      }" { (expression_statement "iVar5 = (int)((ulonglong)uVar11 >> 0x20);" (assignment_expression "iVar5 = (int)((ulonglong)uVar11 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)uVar11 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar11 >> 0x20)" ( (binary_expression "(ulonglong)uVar11 >> 0x20" (cast_expression "(ulonglong)uVar11" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar8 = (uint)uVar11;" (assignment_expression "uVar8 = (uint)uVar11" identifier = (cast_expression "(uint)uVar11" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "__umoddi3(iVar5,uVar8,0,10,puVar10);" (call_expression "__umoddi3(iVar5,uVar8,0,10,puVar10)" identifier (argument_list "(iVar5,uVar8,0,10,puVar10)" ( identifier , identifier , number_literal , number_literal , identifier ))) ;) (expression_statement "pcVar7 = pcVar7 + -1;" (assignment_expression "pcVar7 = pcVar7 + -1" identifier = (binary_expression "pcVar7 + -1" identifier + number_literal)) ;) (expression_statement "*pcVar7 = extraout_v1 + '0';" (assignment_expression "*pcVar7 = extraout_v1 + '0'" (pointer_expression "*pcVar7" * identifier) = (binary_expression "extraout_v1 + '0'" identifier + (char_literal "'0'" ' character '))) ;) (expression_statement "uVar11 = __udivdi3(iVar5,uVar8,0,10);" (assignment_expression "uVar11 = __udivdi3(iVar5,uVar8,0,10)" identifier = (call_expression "__udivdi3(iVar5,uVar8,0,10)" identifier (argument_list "(iVar5,uVar8,0,10)" ( identifier , identifier , number_literal , number_literal )))) ;) }) while (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) ;) }) while (parenthesized_expression "(9 < uVar8)" ( (binary_expression "9 < uVar8" number_literal < identifier) )) ;) (return_statement "return (strtol_error)pcVar7;" return (cast_expression "(strtol_error)pcVar7" ( (type_descriptor "strtol_error" type_identifier) ) identifier) ;) })) (return_statement "return sVar4;" return identifier ;) })))
(translation_unit "int * human_options(byte *param_1,uint *param_2,int *param_3)\n\n{\n  byte bVar1;\n  undefined *puVar2;\n  int iVar3;\n  int *piVar4;\n  char extraout_v1;\n  int iVar5;\n  byte **ppbVar6;\n  int *piVar7;\n  uint uVar8;\n  uint uVar9;\n  undefined *puVar10;\n  undefined8 uVar11;\n  byte *local_28;\n  int local_24;\n  \n  puVar10 = PTR___stack_chk_guard_0003658c;\n  local_24 = *(int *)PTR___stack_chk_guard_0003658c;\n  if (((param_1 == (byte *)0x0) &&\n      (piVar7 = param_3, param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938)\n      , param_1 == (byte *)0x0)) &&\n     (param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4944),\n     param_1 == (byte *)0x0)) {\n    iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n    if (iVar3 == 0) {\n      ppbVar6 = (byte **)0x400;\n      param_3[1] = 0x400;\n      *param_3 = 0;\n      *param_2 = 0;\n      piVar4 = (int *)0x0;\n    }\n    else {\n      ppbVar6 = (byte **)0x200;\n      param_3[1] = 0x200;\n      piVar4 = (int *)0x0;\n      *param_3 = 0;\n      *param_2 = 0;\n    }\n  }\n  else {\n    puVar2 = PTR_LAB_00036278;\n    if (*param_1 == 0x27) {\n      param_1 = param_1 + 1;\n      uVar8 = 4;\n    }\n    else {\n      uVar8 = 0;\n    }\n    piVar7 = (int *)(PTR_LAB_00036278 + 0x4970);\n    iVar3 = argmatch(param_1,PTR_DAT_00036268 + 0x5fc8,piVar7,4);\n    if (iVar3 < 0) {\n      piVar7 = (int *)0x0;\n      ppbVar6 = &local_28;\n      piVar4 = (int *)xstrtoumax(param_1,ppbVar6,0,param_3,PTR_LAB_00036278 + 0x4950);\n      if (piVar4 == (int *)0x0) {\n        uVar9 = uVar8;\n        if (9 < *param_1 - 0x30) {\n          if (param_1 == local_28) {\n            bVar1 = local_28[-1];\n          }\n          else {\n            do {\n              param_1 = param_1 + 1;\n              if (*param_1 - 0x30 < 10) goto LAB_00019a3c;\n            } while (param_1 != local_28);\n            bVar1 = local_28[-1];\n          }\n          ppbVar6 = (byte **)(int)(char)bVar1;\n          if (ppbVar6 == (byte **)0x42) {\n            uVar9 = uVar8 | 0x180;\n            if (local_28[-2] == 0x69) {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }\n          else {\n            uVar9 = uVar8 | 0xa0;\n          }\n        }\nLAB_00019a3c:\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = uVar9;\n      }\n      else {\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = 0;\n      }\n      if (iVar3 == 0 && iVar5 == 0) {\n        iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n        if (iVar3 == 0) {\n          ppbVar6 = (byte **)0x400;\n        }\n        else {\n          ppbVar6 = (byte **)0x200;\n        }\n        piVar4 = (int *)&DAT_00000004;\n        param_3[1] = (int)ppbVar6;\n        *param_3 = 0;\n      }\n    }\n    else {\n      ppbVar6 = (byte **)0x1;\n      param_3[1] = 1;\n      piVar4 = (int *)0x0;\n      *param_3 = 0;\n      *param_2 = uVar8 | *(uint *)(puVar2 + iVar3 * 4 + 0x4970);\n    }\n  }\n  if (local_24 != *(int *)puVar10) {\n    iVar3 = local_24;\n    puVar10 = PTR___stack_chk_fail_0003656c;\n    (*(code *)PTR___stack_chk_fail_0003656c)();\n    uVar11 = CONCAT44(iVar3,ppbVar6);\n    puVar10 = puVar10 + 0x246e0;\n    piVar4 = piVar7 + 5;\n    *(undefined1 *)(piVar7 + 5) = 0;\n    do {\n      do {\n        iVar3 = (int)((ulonglong)uVar11 >> 0x20);\n        uVar8 = (uint)uVar11;\n        FUN_00022d50(iVar3,uVar8,0,10,puVar10);\n        piVar4 = (int *)((int)piVar4 + -1);\n        *(char *)piVar4 = extraout_v1 + '0';\n        uVar11 = FUN_000228e0(iVar3,uVar8,0,10);\n      } while (iVar3 != 0);\n    } while (9 < uVar8);\n    return piVar4;\n  }\n  return piVar4;\n}\n\n" (function_definition "int * human_options(byte *param_1,uint *param_2,int *param_3)\n\n{\n  byte bVar1;\n  undefined *puVar2;\n  int iVar3;\n  int *piVar4;\n  char extraout_v1;\n  int iVar5;\n  byte **ppbVar6;\n  int *piVar7;\n  uint uVar8;\n  uint uVar9;\n  undefined *puVar10;\n  undefined8 uVar11;\n  byte *local_28;\n  int local_24;\n  \n  puVar10 = PTR___stack_chk_guard_0003658c;\n  local_24 = *(int *)PTR___stack_chk_guard_0003658c;\n  if (((param_1 == (byte *)0x0) &&\n      (piVar7 = param_3, param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938)\n      , param_1 == (byte *)0x0)) &&\n     (param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4944),\n     param_1 == (byte *)0x0)) {\n    iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n    if (iVar3 == 0) {\n      ppbVar6 = (byte **)0x400;\n      param_3[1] = 0x400;\n      *param_3 = 0;\n      *param_2 = 0;\n      piVar4 = (int *)0x0;\n    }\n    else {\n      ppbVar6 = (byte **)0x200;\n      param_3[1] = 0x200;\n      piVar4 = (int *)0x0;\n      *param_3 = 0;\n      *param_2 = 0;\n    }\n  }\n  else {\n    puVar2 = PTR_LAB_00036278;\n    if (*param_1 == 0x27) {\n      param_1 = param_1 + 1;\n      uVar8 = 4;\n    }\n    else {\n      uVar8 = 0;\n    }\n    piVar7 = (int *)(PTR_LAB_00036278 + 0x4970);\n    iVar3 = argmatch(param_1,PTR_DAT_00036268 + 0x5fc8,piVar7,4);\n    if (iVar3 < 0) {\n      piVar7 = (int *)0x0;\n      ppbVar6 = &local_28;\n      piVar4 = (int *)xstrtoumax(param_1,ppbVar6,0,param_3,PTR_LAB_00036278 + 0x4950);\n      if (piVar4 == (int *)0x0) {\n        uVar9 = uVar8;\n        if (9 < *param_1 - 0x30) {\n          if (param_1 == local_28) {\n            bVar1 = local_28[-1];\n          }\n          else {\n            do {\n              param_1 = param_1 + 1;\n              if (*param_1 - 0x30 < 10) goto LAB_00019a3c;\n            } while (param_1 != local_28);\n            bVar1 = local_28[-1];\n          }\n          ppbVar6 = (byte **)(int)(char)bVar1;\n          if (ppbVar6 == (byte **)0x42) {\n            uVar9 = uVar8 | 0x180;\n            if (local_28[-2] == 0x69) {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }\n          else {\n            uVar9 = uVar8 | 0xa0;\n          }\n        }\nLAB_00019a3c:\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = uVar9;\n      }\n      else {\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = 0;\n      }\n      if (iVar3 == 0 && iVar5 == 0) {\n        iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n        if (iVar3 == 0) {\n          ppbVar6 = (byte **)0x400;\n        }\n        else {\n          ppbVar6 = (byte **)0x200;\n        }\n        piVar4 = (int *)&DAT_00000004;\n        param_3[1] = (int)ppbVar6;\n        *param_3 = 0;\n      }\n    }\n    else {\n      ppbVar6 = (byte **)0x1;\n      param_3[1] = 1;\n      piVar4 = (int *)0x0;\n      *param_3 = 0;\n      *param_2 = uVar8 | *(uint *)(puVar2 + iVar3 * 4 + 0x4970);\n    }\n  }\n  if (local_24 != *(int *)puVar10) {\n    iVar3 = local_24;\n    puVar10 = PTR___stack_chk_fail_0003656c;\n    (*(code *)PTR___stack_chk_fail_0003656c)();\n    uVar11 = CONCAT44(iVar3,ppbVar6);\n    puVar10 = puVar10 + 0x246e0;\n    piVar4 = piVar7 + 5;\n    *(undefined1 *)(piVar7 + 5) = 0;\n    do {\n      do {\n        iVar3 = (int)((ulonglong)uVar11 >> 0x20);\n        uVar8 = (uint)uVar11;\n        FUN_00022d50(iVar3,uVar8,0,10,puVar10);\n        piVar4 = (int *)((int)piVar4 + -1);\n        *(char *)piVar4 = extraout_v1 + '0';\n        uVar11 = FUN_000228e0(iVar3,uVar8,0,10);\n      } while (iVar3 != 0);\n    } while (9 < uVar8);\n    return piVar4;\n  }\n  return piVar4;\n}" primitive_type (pointer_declarator "* human_options(byte *param_1,uint *param_2,int *param_3)" * (function_declarator "human_options(byte *param_1,uint *param_2,int *param_3)" identifier (parameter_list "(byte *param_1,uint *param_2,int *param_3)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) )))) (compound_statement "{\n  byte bVar1;\n  undefined *puVar2;\n  int iVar3;\n  int *piVar4;\n  char extraout_v1;\n  int iVar5;\n  byte **ppbVar6;\n  int *piVar7;\n  uint uVar8;\n  uint uVar9;\n  undefined *puVar10;\n  undefined8 uVar11;\n  byte *local_28;\n  int local_24;\n  \n  puVar10 = PTR___stack_chk_guard_0003658c;\n  local_24 = *(int *)PTR___stack_chk_guard_0003658c;\n  if (((param_1 == (byte *)0x0) &&\n      (piVar7 = param_3, param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938)\n      , param_1 == (byte *)0x0)) &&\n     (param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4944),\n     param_1 == (byte *)0x0)) {\n    iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n    if (iVar3 == 0) {\n      ppbVar6 = (byte **)0x400;\n      param_3[1] = 0x400;\n      *param_3 = 0;\n      *param_2 = 0;\n      piVar4 = (int *)0x0;\n    }\n    else {\n      ppbVar6 = (byte **)0x200;\n      param_3[1] = 0x200;\n      piVar4 = (int *)0x0;\n      *param_3 = 0;\n      *param_2 = 0;\n    }\n  }\n  else {\n    puVar2 = PTR_LAB_00036278;\n    if (*param_1 == 0x27) {\n      param_1 = param_1 + 1;\n      uVar8 = 4;\n    }\n    else {\n      uVar8 = 0;\n    }\n    piVar7 = (int *)(PTR_LAB_00036278 + 0x4970);\n    iVar3 = argmatch(param_1,PTR_DAT_00036268 + 0x5fc8,piVar7,4);\n    if (iVar3 < 0) {\n      piVar7 = (int *)0x0;\n      ppbVar6 = &local_28;\n      piVar4 = (int *)xstrtoumax(param_1,ppbVar6,0,param_3,PTR_LAB_00036278 + 0x4950);\n      if (piVar4 == (int *)0x0) {\n        uVar9 = uVar8;\n        if (9 < *param_1 - 0x30) {\n          if (param_1 == local_28) {\n            bVar1 = local_28[-1];\n          }\n          else {\n            do {\n              param_1 = param_1 + 1;\n              if (*param_1 - 0x30 < 10) goto LAB_00019a3c;\n            } while (param_1 != local_28);\n            bVar1 = local_28[-1];\n          }\n          ppbVar6 = (byte **)(int)(char)bVar1;\n          if (ppbVar6 == (byte **)0x42) {\n            uVar9 = uVar8 | 0x180;\n            if (local_28[-2] == 0x69) {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }\n          else {\n            uVar9 = uVar8 | 0xa0;\n          }\n        }\nLAB_00019a3c:\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = uVar9;\n      }\n      else {\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = 0;\n      }\n      if (iVar3 == 0 && iVar5 == 0) {\n        iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n        if (iVar3 == 0) {\n          ppbVar6 = (byte **)0x400;\n        }\n        else {\n          ppbVar6 = (byte **)0x200;\n        }\n        piVar4 = (int *)&DAT_00000004;\n        param_3[1] = (int)ppbVar6;\n        *param_3 = 0;\n      }\n    }\n    else {\n      ppbVar6 = (byte **)0x1;\n      param_3[1] = 1;\n      piVar4 = (int *)0x0;\n      *param_3 = 0;\n      *param_2 = uVar8 | *(uint *)(puVar2 + iVar3 * 4 + 0x4970);\n    }\n  }\n  if (local_24 != *(int *)puVar10) {\n    iVar3 = local_24;\n    puVar10 = PTR___stack_chk_fail_0003656c;\n    (*(code *)PTR___stack_chk_fail_0003656c)();\n    uVar11 = CONCAT44(iVar3,ppbVar6);\n    puVar10 = puVar10 + 0x246e0;\n    piVar4 = piVar7 + 5;\n    *(undefined1 *)(piVar7 + 5) = 0;\n    do {\n      do {\n        iVar3 = (int)((ulonglong)uVar11 >> 0x20);\n        uVar8 = (uint)uVar11;\n        FUN_00022d50(iVar3,uVar8,0,10,puVar10);\n        piVar4 = (int *)((int)piVar4 + -1);\n        *(char *)piVar4 = extraout_v1 + '0';\n        uVar11 = FUN_000228e0(iVar3,uVar8,0,10);\n      } while (iVar3 != 0);\n    } while (9 < uVar8);\n    return piVar4;\n  }\n  return piVar4;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "char extraout_v1;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "byte **ppbVar6;" type_identifier (pointer_declarator "**ppbVar6" * (pointer_declarator "*ppbVar6" * identifier)) ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "undefined8 uVar11;" type_identifier identifier ;) (declaration "byte *local_28;" type_identifier (pointer_declarator "*local_28" * identifier) ;) (declaration "int local_24;" primitive_type identifier ;) (expression_statement "puVar10 = PTR___stack_chk_guard_0003658c;" (assignment_expression "puVar10 = PTR___stack_chk_guard_0003658c" identifier = identifier) ;) (expression_statement "local_24 = *(int *)PTR___stack_chk_guard_0003658c;" (assignment_expression "local_24 = *(int *)PTR___stack_chk_guard_0003658c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0003658c" * (cast_expression "(int *)PTR___stack_chk_guard_0003658c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (((param_1 == (byte *)0x0) &&\n      (piVar7 = param_3, param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938)\n      , param_1 == (byte *)0x0)) &&\n     (param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4944),\n     param_1 == (byte *)0x0)) {\n    iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n    if (iVar3 == 0) {\n      ppbVar6 = (byte **)0x400;\n      param_3[1] = 0x400;\n      *param_3 = 0;\n      *param_2 = 0;\n      piVar4 = (int *)0x0;\n    }\n    else {\n      ppbVar6 = (byte **)0x200;\n      param_3[1] = 0x200;\n      piVar4 = (int *)0x0;\n      *param_3 = 0;\n      *param_2 = 0;\n    }\n  }\n  else {\n    puVar2 = PTR_LAB_00036278;\n    if (*param_1 == 0x27) {\n      param_1 = param_1 + 1;\n      uVar8 = 4;\n    }\n    else {\n      uVar8 = 0;\n    }\n    piVar7 = (int *)(PTR_LAB_00036278 + 0x4970);\n    iVar3 = argmatch(param_1,PTR_DAT_00036268 + 0x5fc8,piVar7,4);\n    if (iVar3 < 0) {\n      piVar7 = (int *)0x0;\n      ppbVar6 = &local_28;\n      piVar4 = (int *)xstrtoumax(param_1,ppbVar6,0,param_3,PTR_LAB_00036278 + 0x4950);\n      if (piVar4 == (int *)0x0) {\n        uVar9 = uVar8;\n        if (9 < *param_1 - 0x30) {\n          if (param_1 == local_28) {\n            bVar1 = local_28[-1];\n          }\n          else {\n            do {\n              param_1 = param_1 + 1;\n              if (*param_1 - 0x30 < 10) goto LAB_00019a3c;\n            } while (param_1 != local_28);\n            bVar1 = local_28[-1];\n          }\n          ppbVar6 = (byte **)(int)(char)bVar1;\n          if (ppbVar6 == (byte **)0x42) {\n            uVar9 = uVar8 | 0x180;\n            if (local_28[-2] == 0x69) {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }\n          else {\n            uVar9 = uVar8 | 0xa0;\n          }\n        }\nLAB_00019a3c:\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = uVar9;\n      }\n      else {\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = 0;\n      }\n      if (iVar3 == 0 && iVar5 == 0) {\n        iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n        if (iVar3 == 0) {\n          ppbVar6 = (byte **)0x400;\n        }\n        else {\n          ppbVar6 = (byte **)0x200;\n        }\n        piVar4 = (int *)&DAT_00000004;\n        param_3[1] = (int)ppbVar6;\n        *param_3 = 0;\n      }\n    }\n    else {\n      ppbVar6 = (byte **)0x1;\n      param_3[1] = 1;\n      piVar4 = (int *)0x0;\n      *param_3 = 0;\n      *param_2 = uVar8 | *(uint *)(puVar2 + iVar3 * 4 + 0x4970);\n    }\n  }" if (parenthesized_expression "(((param_1 == (byte *)0x0) &&\n      (piVar7 = param_3, param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938)\n      , param_1 == (byte *)0x0)) &&\n     (param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4944),\n     param_1 == (byte *)0x0))" ( (binary_expression "((param_1 == (byte *)0x0) &&\n      (piVar7 = param_3, param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938)\n      , param_1 == (byte *)0x0)) &&\n     (param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4944),\n     param_1 == (byte *)0x0)" (parenthesized_expression "((param_1 == (byte *)0x0) &&\n      (piVar7 = param_3, param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938)\n      , param_1 == (byte *)0x0))" ( (binary_expression "(param_1 == (byte *)0x0) &&\n      (piVar7 = param_3, param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938)\n      , param_1 == (byte *)0x0)" (parenthesized_expression "(param_1 == (byte *)0x0)" ( (binary_expression "param_1 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(piVar7 = param_3, param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938)\n      , param_1 == (byte *)0x0)" ( (comma_expression "piVar7 = param_3, param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938)\n      , param_1 == (byte *)0x0" (assignment_expression "piVar7 = param_3" identifier = identifier) , (comma_expression "param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938)\n      , param_1 == (byte *)0x0" (assignment_expression "param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938)" identifier = (cast_expression "(byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938)" (parenthesized_expression "(*(code *)PTR_getenv_00036524)" ( (pointer_expression "*(code *)PTR_getenv_00036524" * (cast_expression "(code *)PTR_getenv_00036524" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_00036278 + 0x4938)" ( (binary_expression "PTR_LAB_00036278 + 0x4938" identifier + number_literal) ))))) , (binary_expression "param_1 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)))) ))) )) && (parenthesized_expression "(param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4944),\n     param_1 == (byte *)0x0)" ( (comma_expression "param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4944),\n     param_1 == (byte *)0x0" (assignment_expression "param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4944)" identifier = (cast_expression "(byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4944)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4944)" (parenthesized_expression "(*(code *)PTR_getenv_00036524)" ( (pointer_expression "*(code *)PTR_getenv_00036524" * (cast_expression "(code *)PTR_getenv_00036524" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_00036278 + 0x4944)" ( (binary_expression "PTR_LAB_00036278 + 0x4944" identifier + number_literal) ))))) , (binary_expression "param_1 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n    if (iVar3 == 0) {\n      ppbVar6 = (byte **)0x400;\n      param_3[1] = 0x400;\n      *param_3 = 0;\n      *param_2 = 0;\n      piVar4 = (int *)0x0;\n    }\n    else {\n      ppbVar6 = (byte **)0x200;\n      param_3[1] = 0x200;\n      piVar4 = (int *)0x0;\n      *param_3 = 0;\n      *param_2 = 0;\n    }\n  }" { (expression_statement "iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);" (assignment_expression "iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474)" identifier = (call_expression "(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474)" (parenthesized_expression "(*(code *)PTR_getenv_00036524)" ( (pointer_expression "*(code *)PTR_getenv_00036524" * (cast_expression "(code *)PTR_getenv_00036524" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_00036278 + 0x4474)" ( (binary_expression "PTR_LAB_00036278 + 0x4474" identifier + number_literal) )))) ;) (if_statement "if (iVar3 == 0) {\n      ppbVar6 = (byte **)0x400;\n      param_3[1] = 0x400;\n      *param_3 = 0;\n      *param_2 = 0;\n      piVar4 = (int *)0x0;\n    }\n    else {\n      ppbVar6 = (byte **)0x200;\n      param_3[1] = 0x200;\n      piVar4 = (int *)0x0;\n      *param_3 = 0;\n      *param_2 = 0;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      ppbVar6 = (byte **)0x400;\n      param_3[1] = 0x400;\n      *param_3 = 0;\n      *param_2 = 0;\n      piVar4 = (int *)0x0;\n    }" { (expression_statement "ppbVar6 = (byte **)0x400;" (assignment_expression "ppbVar6 = (byte **)0x400" identifier = (cast_expression "(byte **)0x400" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "param_3[1] = 0x400;" (assignment_expression "param_3[1] = 0x400" (subscript_expression "param_3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*param_3 = 0;" (assignment_expression "*param_3 = 0" (pointer_expression "*param_3" * identifier) = number_literal) ;) (expression_statement "*param_2 = 0;" (assignment_expression "*param_2 = 0" (pointer_expression "*param_2" * identifier) = number_literal) ;) (expression_statement "piVar4 = (int *)0x0;" (assignment_expression "piVar4 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      ppbVar6 = (byte **)0x200;\n      param_3[1] = 0x200;\n      piVar4 = (int *)0x0;\n      *param_3 = 0;\n      *param_2 = 0;\n    }" else (compound_statement "{\n      ppbVar6 = (byte **)0x200;\n      param_3[1] = 0x200;\n      piVar4 = (int *)0x0;\n      *param_3 = 0;\n      *param_2 = 0;\n    }" { (expression_statement "ppbVar6 = (byte **)0x200;" (assignment_expression "ppbVar6 = (byte **)0x200" identifier = (cast_expression "(byte **)0x200" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "param_3[1] = 0x200;" (assignment_expression "param_3[1] = 0x200" (subscript_expression "param_3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar4 = (int *)0x0;" (assignment_expression "piVar4 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*param_3 = 0;" (assignment_expression "*param_3 = 0" (pointer_expression "*param_3" * identifier) = number_literal) ;) (expression_statement "*param_2 = 0;" (assignment_expression "*param_2 = 0" (pointer_expression "*param_2" * identifier) = number_literal) ;) }))) }) (else_clause "else {\n    puVar2 = PTR_LAB_00036278;\n    if (*param_1 == 0x27) {\n      param_1 = param_1 + 1;\n      uVar8 = 4;\n    }\n    else {\n      uVar8 = 0;\n    }\n    piVar7 = (int *)(PTR_LAB_00036278 + 0x4970);\n    iVar3 = argmatch(param_1,PTR_DAT_00036268 + 0x5fc8,piVar7,4);\n    if (iVar3 < 0) {\n      piVar7 = (int *)0x0;\n      ppbVar6 = &local_28;\n      piVar4 = (int *)xstrtoumax(param_1,ppbVar6,0,param_3,PTR_LAB_00036278 + 0x4950);\n      if (piVar4 == (int *)0x0) {\n        uVar9 = uVar8;\n        if (9 < *param_1 - 0x30) {\n          if (param_1 == local_28) {\n            bVar1 = local_28[-1];\n          }\n          else {\n            do {\n              param_1 = param_1 + 1;\n              if (*param_1 - 0x30 < 10) goto LAB_00019a3c;\n            } while (param_1 != local_28);\n            bVar1 = local_28[-1];\n          }\n          ppbVar6 = (byte **)(int)(char)bVar1;\n          if (ppbVar6 == (byte **)0x42) {\n            uVar9 = uVar8 | 0x180;\n            if (local_28[-2] == 0x69) {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }\n          else {\n            uVar9 = uVar8 | 0xa0;\n          }\n        }\nLAB_00019a3c:\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = uVar9;\n      }\n      else {\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = 0;\n      }\n      if (iVar3 == 0 && iVar5 == 0) {\n        iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n        if (iVar3 == 0) {\n          ppbVar6 = (byte **)0x400;\n        }\n        else {\n          ppbVar6 = (byte **)0x200;\n        }\n        piVar4 = (int *)&DAT_00000004;\n        param_3[1] = (int)ppbVar6;\n        *param_3 = 0;\n      }\n    }\n    else {\n      ppbVar6 = (byte **)0x1;\n      param_3[1] = 1;\n      piVar4 = (int *)0x0;\n      *param_3 = 0;\n      *param_2 = uVar8 | *(uint *)(puVar2 + iVar3 * 4 + 0x4970);\n    }\n  }" else (compound_statement "{\n    puVar2 = PTR_LAB_00036278;\n    if (*param_1 == 0x27) {\n      param_1 = param_1 + 1;\n      uVar8 = 4;\n    }\n    else {\n      uVar8 = 0;\n    }\n    piVar7 = (int *)(PTR_LAB_00036278 + 0x4970);\n    iVar3 = argmatch(param_1,PTR_DAT_00036268 + 0x5fc8,piVar7,4);\n    if (iVar3 < 0) {\n      piVar7 = (int *)0x0;\n      ppbVar6 = &local_28;\n      piVar4 = (int *)xstrtoumax(param_1,ppbVar6,0,param_3,PTR_LAB_00036278 + 0x4950);\n      if (piVar4 == (int *)0x0) {\n        uVar9 = uVar8;\n        if (9 < *param_1 - 0x30) {\n          if (param_1 == local_28) {\n            bVar1 = local_28[-1];\n          }\n          else {\n            do {\n              param_1 = param_1 + 1;\n              if (*param_1 - 0x30 < 10) goto LAB_00019a3c;\n            } while (param_1 != local_28);\n            bVar1 = local_28[-1];\n          }\n          ppbVar6 = (byte **)(int)(char)bVar1;\n          if (ppbVar6 == (byte **)0x42) {\n            uVar9 = uVar8 | 0x180;\n            if (local_28[-2] == 0x69) {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }\n          else {\n            uVar9 = uVar8 | 0xa0;\n          }\n        }\nLAB_00019a3c:\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = uVar9;\n      }\n      else {\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = 0;\n      }\n      if (iVar3 == 0 && iVar5 == 0) {\n        iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n        if (iVar3 == 0) {\n          ppbVar6 = (byte **)0x400;\n        }\n        else {\n          ppbVar6 = (byte **)0x200;\n        }\n        piVar4 = (int *)&DAT_00000004;\n        param_3[1] = (int)ppbVar6;\n        *param_3 = 0;\n      }\n    }\n    else {\n      ppbVar6 = (byte **)0x1;\n      param_3[1] = 1;\n      piVar4 = (int *)0x0;\n      *param_3 = 0;\n      *param_2 = uVar8 | *(uint *)(puVar2 + iVar3 * 4 + 0x4970);\n    }\n  }" { (expression_statement "puVar2 = PTR_LAB_00036278;" (assignment_expression "puVar2 = PTR_LAB_00036278" identifier = identifier) ;) (if_statement "if (*param_1 == 0x27) {\n      param_1 = param_1 + 1;\n      uVar8 = 4;\n    }\n    else {\n      uVar8 = 0;\n    }" if (parenthesized_expression "(*param_1 == 0x27)" ( (binary_expression "*param_1 == 0x27" (pointer_expression "*param_1" * identifier) == number_literal) )) (compound_statement "{\n      param_1 = param_1 + 1;\n      uVar8 = 4;\n    }" { (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (expression_statement "uVar8 = 4;" (assignment_expression "uVar8 = 4" identifier = number_literal) ;) }) (else_clause "else {\n      uVar8 = 0;\n    }" else (compound_statement "{\n      uVar8 = 0;\n    }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }))) (expression_statement "piVar7 = (int *)(PTR_LAB_00036278 + 0x4970);" (assignment_expression "piVar7 = (int *)(PTR_LAB_00036278 + 0x4970)" identifier = (cast_expression "(int *)(PTR_LAB_00036278 + 0x4970)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00036278 + 0x4970)" ( (binary_expression "PTR_LAB_00036278 + 0x4970" identifier + number_literal) )))) ;) (expression_statement "iVar3 = argmatch(param_1,PTR_DAT_00036268 + 0x5fc8,piVar7,4);" (assignment_expression "iVar3 = argmatch(param_1,PTR_DAT_00036268 + 0x5fc8,piVar7,4)" identifier = (call_expression "argmatch(param_1,PTR_DAT_00036268 + 0x5fc8,piVar7,4)" identifier (argument_list "(param_1,PTR_DAT_00036268 + 0x5fc8,piVar7,4)" ( identifier , (binary_expression "PTR_DAT_00036268 + 0x5fc8" identifier + number_literal) , identifier , number_literal )))) ;) (if_statement "if (iVar3 < 0) {\n      piVar7 = (int *)0x0;\n      ppbVar6 = &local_28;\n      piVar4 = (int *)xstrtoumax(param_1,ppbVar6,0,param_3,PTR_LAB_00036278 + 0x4950);\n      if (piVar4 == (int *)0x0) {\n        uVar9 = uVar8;\n        if (9 < *param_1 - 0x30) {\n          if (param_1 == local_28) {\n            bVar1 = local_28[-1];\n          }\n          else {\n            do {\n              param_1 = param_1 + 1;\n              if (*param_1 - 0x30 < 10) goto LAB_00019a3c;\n            } while (param_1 != local_28);\n            bVar1 = local_28[-1];\n          }\n          ppbVar6 = (byte **)(int)(char)bVar1;\n          if (ppbVar6 == (byte **)0x42) {\n            uVar9 = uVar8 | 0x180;\n            if (local_28[-2] == 0x69) {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }\n          else {\n            uVar9 = uVar8 | 0xa0;\n          }\n        }\nLAB_00019a3c:\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = uVar9;\n      }\n      else {\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = 0;\n      }\n      if (iVar3 == 0 && iVar5 == 0) {\n        iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n        if (iVar3 == 0) {\n          ppbVar6 = (byte **)0x400;\n        }\n        else {\n          ppbVar6 = (byte **)0x200;\n        }\n        piVar4 = (int *)&DAT_00000004;\n        param_3[1] = (int)ppbVar6;\n        *param_3 = 0;\n      }\n    }\n    else {\n      ppbVar6 = (byte **)0x1;\n      param_3[1] = 1;\n      piVar4 = (int *)0x0;\n      *param_3 = 0;\n      *param_2 = uVar8 | *(uint *)(puVar2 + iVar3 * 4 + 0x4970);\n    }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n      piVar7 = (int *)0x0;\n      ppbVar6 = &local_28;\n      piVar4 = (int *)xstrtoumax(param_1,ppbVar6,0,param_3,PTR_LAB_00036278 + 0x4950);\n      if (piVar4 == (int *)0x0) {\n        uVar9 = uVar8;\n        if (9 < *param_1 - 0x30) {\n          if (param_1 == local_28) {\n            bVar1 = local_28[-1];\n          }\n          else {\n            do {\n              param_1 = param_1 + 1;\n              if (*param_1 - 0x30 < 10) goto LAB_00019a3c;\n            } while (param_1 != local_28);\n            bVar1 = local_28[-1];\n          }\n          ppbVar6 = (byte **)(int)(char)bVar1;\n          if (ppbVar6 == (byte **)0x42) {\n            uVar9 = uVar8 | 0x180;\n            if (local_28[-2] == 0x69) {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }\n          else {\n            uVar9 = uVar8 | 0xa0;\n          }\n        }\nLAB_00019a3c:\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = uVar9;\n      }\n      else {\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = 0;\n      }\n      if (iVar3 == 0 && iVar5 == 0) {\n        iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n        if (iVar3 == 0) {\n          ppbVar6 = (byte **)0x400;\n        }\n        else {\n          ppbVar6 = (byte **)0x200;\n        }\n        piVar4 = (int *)&DAT_00000004;\n        param_3[1] = (int)ppbVar6;\n        *param_3 = 0;\n      }\n    }" { (expression_statement "piVar7 = (int *)0x0;" (assignment_expression "piVar7 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppbVar6 = &local_28;" (assignment_expression "ppbVar6 = &local_28" identifier = (pointer_expression "&local_28" & identifier)) ;) (expression_statement "piVar4 = (int *)xstrtoumax(param_1,ppbVar6,0,param_3,PTR_LAB_00036278 + 0x4950);" (assignment_expression "piVar4 = (int *)xstrtoumax(param_1,ppbVar6,0,param_3,PTR_LAB_00036278 + 0x4950)" identifier = (cast_expression "(int *)xstrtoumax(param_1,ppbVar6,0,param_3,PTR_LAB_00036278 + 0x4950)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xstrtoumax(param_1,ppbVar6,0,param_3,PTR_LAB_00036278 + 0x4950)" identifier (argument_list "(param_1,ppbVar6,0,param_3,PTR_LAB_00036278 + 0x4950)" ( identifier , identifier , number_literal , identifier , (binary_expression "PTR_LAB_00036278 + 0x4950" identifier + number_literal) ))))) ;) (if_statement "if (piVar4 == (int *)0x0) {\n        uVar9 = uVar8;\n        if (9 < *param_1 - 0x30) {\n          if (param_1 == local_28) {\n            bVar1 = local_28[-1];\n          }\n          else {\n            do {\n              param_1 = param_1 + 1;\n              if (*param_1 - 0x30 < 10) goto LAB_00019a3c;\n            } while (param_1 != local_28);\n            bVar1 = local_28[-1];\n          }\n          ppbVar6 = (byte **)(int)(char)bVar1;\n          if (ppbVar6 == (byte **)0x42) {\n            uVar9 = uVar8 | 0x180;\n            if (local_28[-2] == 0x69) {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }\n          else {\n            uVar9 = uVar8 | 0xa0;\n          }\n        }\nLAB_00019a3c:\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = uVar9;\n      }\n      else {\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = 0;\n      }" if (parenthesized_expression "(piVar4 == (int *)0x0)" ( (binary_expression "piVar4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar9 = uVar8;\n        if (9 < *param_1 - 0x30) {\n          if (param_1 == local_28) {\n            bVar1 = local_28[-1];\n          }\n          else {\n            do {\n              param_1 = param_1 + 1;\n              if (*param_1 - 0x30 < 10) goto LAB_00019a3c;\n            } while (param_1 != local_28);\n            bVar1 = local_28[-1];\n          }\n          ppbVar6 = (byte **)(int)(char)bVar1;\n          if (ppbVar6 == (byte **)0x42) {\n            uVar9 = uVar8 | 0x180;\n            if (local_28[-2] == 0x69) {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }\n          else {\n            uVar9 = uVar8 | 0xa0;\n          }\n        }\nLAB_00019a3c:\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = uVar9;\n      }" { (expression_statement "uVar9 = uVar8;" (assignment_expression "uVar9 = uVar8" identifier = identifier) ;) (if_statement "if (9 < *param_1 - 0x30) {\n          if (param_1 == local_28) {\n            bVar1 = local_28[-1];\n          }\n          else {\n            do {\n              param_1 = param_1 + 1;\n              if (*param_1 - 0x30 < 10) goto LAB_00019a3c;\n            } while (param_1 != local_28);\n            bVar1 = local_28[-1];\n          }\n          ppbVar6 = (byte **)(int)(char)bVar1;\n          if (ppbVar6 == (byte **)0x42) {\n            uVar9 = uVar8 | 0x180;\n            if (local_28[-2] == 0x69) {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }\n          else {\n            uVar9 = uVar8 | 0xa0;\n          }\n        }" if (parenthesized_expression "(9 < *param_1 - 0x30)" ( (binary_expression "9 < *param_1 - 0x30" number_literal < (binary_expression "*param_1 - 0x30" (pointer_expression "*param_1" * identifier) - number_literal)) )) (compound_statement "{\n          if (param_1 == local_28) {\n            bVar1 = local_28[-1];\n          }\n          else {\n            do {\n              param_1 = param_1 + 1;\n              if (*param_1 - 0x30 < 10) goto LAB_00019a3c;\n            } while (param_1 != local_28);\n            bVar1 = local_28[-1];\n          }\n          ppbVar6 = (byte **)(int)(char)bVar1;\n          if (ppbVar6 == (byte **)0x42) {\n            uVar9 = uVar8 | 0x180;\n            if (local_28[-2] == 0x69) {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }\n          else {\n            uVar9 = uVar8 | 0xa0;\n          }\n        }" { (if_statement "if (param_1 == local_28) {\n            bVar1 = local_28[-1];\n          }\n          else {\n            do {\n              param_1 = param_1 + 1;\n              if (*param_1 - 0x30 < 10) goto LAB_00019a3c;\n            } while (param_1 != local_28);\n            bVar1 = local_28[-1];\n          }" if (parenthesized_expression "(param_1 == local_28)" ( (binary_expression "param_1 == local_28" identifier == identifier) )) (compound_statement "{\n            bVar1 = local_28[-1];\n          }" { (expression_statement "bVar1 = local_28[-1];" (assignment_expression "bVar1 = local_28[-1]" identifier = (subscript_expression "local_28[-1]" identifier [ number_literal ])) ;) }) (else_clause "else {\n            do {\n              param_1 = param_1 + 1;\n              if (*param_1 - 0x30 < 10) goto LAB_00019a3c;\n            } while (param_1 != local_28);\n            bVar1 = local_28[-1];\n          }" else (compound_statement "{\n            do {\n              param_1 = param_1 + 1;\n              if (*param_1 - 0x30 < 10) goto LAB_00019a3c;\n            } while (param_1 != local_28);\n            bVar1 = local_28[-1];\n          }" { (do_statement "do {\n              param_1 = param_1 + 1;\n              if (*param_1 - 0x30 < 10) goto LAB_00019a3c;\n            } while (param_1 != local_28);" do (compound_statement "{\n              param_1 = param_1 + 1;\n              if (*param_1 - 0x30 < 10) goto LAB_00019a3c;\n            }" { (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (if_statement "if (*param_1 - 0x30 < 10) goto LAB_00019a3c;" if (parenthesized_expression "(*param_1 - 0x30 < 10)" ( (binary_expression "*param_1 - 0x30 < 10" (binary_expression "*param_1 - 0x30" (pointer_expression "*param_1" * identifier) - number_literal) < number_literal) )) (goto_statement "goto LAB_00019a3c;" goto statement_identifier ;)) }) while (parenthesized_expression "(param_1 != local_28)" ( (binary_expression "param_1 != local_28" identifier != identifier) )) ;) (expression_statement "bVar1 = local_28[-1];" (assignment_expression "bVar1 = local_28[-1]" identifier = (subscript_expression "local_28[-1]" identifier [ number_literal ])) ;) }))) (expression_statement "ppbVar6 = (byte **)(int)(char)bVar1;" (assignment_expression "ppbVar6 = (byte **)(int)(char)bVar1" identifier = (cast_expression "(byte **)(int)(char)bVar1" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (cast_expression "(int)(char)bVar1" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier)))) ;) (if_statement "if (ppbVar6 == (byte **)0x42) {\n            uVar9 = uVar8 | 0x180;\n            if (local_28[-2] == 0x69) {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }\n          else {\n            uVar9 = uVar8 | 0xa0;\n          }" if (parenthesized_expression "(ppbVar6 == (byte **)0x42)" ( (binary_expression "ppbVar6 == (byte **)0x42" identifier == (cast_expression "(byte **)0x42" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n            uVar9 = uVar8 | 0x180;\n            if (local_28[-2] == 0x69) {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }" { (expression_statement "uVar9 = uVar8 | 0x180;" (assignment_expression "uVar9 = uVar8 | 0x180" identifier = (binary_expression "uVar8 | 0x180" identifier | number_literal)) ;) (if_statement "if (local_28[-2] == 0x69) {\n              uVar9 = uVar8 | 0x1a0;\n            }" if (parenthesized_expression "(local_28[-2] == 0x69)" ( (binary_expression "local_28[-2] == 0x69" (subscript_expression "local_28[-2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n              uVar9 = uVar8 | 0x1a0;\n            }" { (expression_statement "uVar9 = uVar8 | 0x1a0;" (assignment_expression "uVar9 = uVar8 | 0x1a0" identifier = (binary_expression "uVar8 | 0x1a0" identifier | number_literal)) ;) })) }) (else_clause "else {\n            uVar9 = uVar8 | 0xa0;\n          }" else (compound_statement "{\n            uVar9 = uVar8 | 0xa0;\n          }" { (expression_statement "uVar9 = uVar8 | 0xa0;" (assignment_expression "uVar9 = uVar8 | 0xa0" identifier = (binary_expression "uVar8 | 0xa0" identifier | number_literal)) ;) }))) })) (labeled_statement "LAB_00019a3c:\n        iVar3 = *param_3;" statement_identifier : (expression_statement "iVar3 = *param_3;" (assignment_expression "iVar3 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;)) (expression_statement "iVar5 = param_3[1];" (assignment_expression "iVar5 = param_3[1]" identifier = (subscript_expression "param_3[1]" identifier [ number_literal ])) ;) (expression_statement "*param_2 = uVar9;" (assignment_expression "*param_2 = uVar9" (pointer_expression "*param_2" * identifier) = identifier) ;) }) (else_clause "else {\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = 0;\n      }" else (compound_statement "{\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = 0;\n      }" { (expression_statement "iVar3 = *param_3;" (assignment_expression "iVar3 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "iVar5 = param_3[1];" (assignment_expression "iVar5 = param_3[1]" identifier = (subscript_expression "param_3[1]" identifier [ number_literal ])) ;) (expression_statement "*param_2 = 0;" (assignment_expression "*param_2 = 0" (pointer_expression "*param_2" * identifier) = number_literal) ;) }))) (if_statement "if (iVar3 == 0 && iVar5 == 0) {\n        iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n        if (iVar3 == 0) {\n          ppbVar6 = (byte **)0x400;\n        }\n        else {\n          ppbVar6 = (byte **)0x200;\n        }\n        piVar4 = (int *)&DAT_00000004;\n        param_3[1] = (int)ppbVar6;\n        *param_3 = 0;\n      }" if (parenthesized_expression "(iVar3 == 0 && iVar5 == 0)" ( (binary_expression "iVar3 == 0 && iVar5 == 0" (binary_expression "iVar3 == 0" identifier == number_literal) && (binary_expression "iVar5 == 0" identifier == number_literal)) )) (compound_statement "{\n        iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n        if (iVar3 == 0) {\n          ppbVar6 = (byte **)0x400;\n        }\n        else {\n          ppbVar6 = (byte **)0x200;\n        }\n        piVar4 = (int *)&DAT_00000004;\n        param_3[1] = (int)ppbVar6;\n        *param_3 = 0;\n      }" { (expression_statement "iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);" (assignment_expression "iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474)" identifier = (call_expression "(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474)" (parenthesized_expression "(*(code *)PTR_getenv_00036524)" ( (pointer_expression "*(code *)PTR_getenv_00036524" * (cast_expression "(code *)PTR_getenv_00036524" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_00036278 + 0x4474)" ( (binary_expression "PTR_LAB_00036278 + 0x4474" identifier + number_literal) )))) ;) (if_statement "if (iVar3 == 0) {\n          ppbVar6 = (byte **)0x400;\n        }\n        else {\n          ppbVar6 = (byte **)0x200;\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          ppbVar6 = (byte **)0x400;\n        }" { (expression_statement "ppbVar6 = (byte **)0x400;" (assignment_expression "ppbVar6 = (byte **)0x400" identifier = (cast_expression "(byte **)0x400" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) }) (else_clause "else {\n          ppbVar6 = (byte **)0x200;\n        }" else (compound_statement "{\n          ppbVar6 = (byte **)0x200;\n        }" { (expression_statement "ppbVar6 = (byte **)0x200;" (assignment_expression "ppbVar6 = (byte **)0x200" identifier = (cast_expression "(byte **)0x200" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) }))) (expression_statement "piVar4 = (int *)&DAT_00000004;" (assignment_expression "piVar4 = (int *)&DAT_00000004" identifier = (cast_expression "(int *)&DAT_00000004" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000004" & identifier))) ;) (expression_statement "param_3[1] = (int)ppbVar6;" (assignment_expression "param_3[1] = (int)ppbVar6" (subscript_expression "param_3[1]" identifier [ number_literal ]) = (cast_expression "(int)ppbVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*param_3 = 0;" (assignment_expression "*param_3 = 0" (pointer_expression "*param_3" * identifier) = number_literal) ;) })) }) (else_clause "else {\n      ppbVar6 = (byte **)0x1;\n      param_3[1] = 1;\n      piVar4 = (int *)0x0;\n      *param_3 = 0;\n      *param_2 = uVar8 | *(uint *)(puVar2 + iVar3 * 4 + 0x4970);\n    }" else (compound_statement "{\n      ppbVar6 = (byte **)0x1;\n      param_3[1] = 1;\n      piVar4 = (int *)0x0;\n      *param_3 = 0;\n      *param_2 = uVar8 | *(uint *)(puVar2 + iVar3 * 4 + 0x4970);\n    }" { (expression_statement "ppbVar6 = (byte **)0x1;" (assignment_expression "ppbVar6 = (byte **)0x1" identifier = (cast_expression "(byte **)0x1" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "param_3[1] = 1;" (assignment_expression "param_3[1] = 1" (subscript_expression "param_3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar4 = (int *)0x0;" (assignment_expression "piVar4 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*param_3 = 0;" (assignment_expression "*param_3 = 0" (pointer_expression "*param_3" * identifier) = number_literal) ;) (expression_statement "*param_2 = uVar8 | *(uint *)(puVar2 + iVar3 * 4 + 0x4970);" (assignment_expression "*param_2 = uVar8 | *(uint *)(puVar2 + iVar3 * 4 + 0x4970)" (pointer_expression "*param_2" * identifier) = (binary_expression "uVar8 | *(uint *)(puVar2 + iVar3 * 4 + 0x4970)" identifier | (pointer_expression "*(uint *)(puVar2 + iVar3 * 4 + 0x4970)" * (cast_expression "(uint *)(puVar2 + iVar3 * 4 + 0x4970)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + iVar3 * 4 + 0x4970)" ( (binary_expression "puVar2 + iVar3 * 4 + 0x4970" (binary_expression "puVar2 + iVar3 * 4" identifier + (binary_expression "iVar3 * 4" identifier * number_literal)) + number_literal) )))))) ;) }))) }))) (if_statement "if (local_24 != *(int *)puVar10) {\n    iVar3 = local_24;\n    puVar10 = PTR___stack_chk_fail_0003656c;\n    (*(code *)PTR___stack_chk_fail_0003656c)();\n    uVar11 = CONCAT44(iVar3,ppbVar6);\n    puVar10 = puVar10 + 0x246e0;\n    piVar4 = piVar7 + 5;\n    *(undefined1 *)(piVar7 + 5) = 0;\n    do {\n      do {\n        iVar3 = (int)((ulonglong)uVar11 >> 0x20);\n        uVar8 = (uint)uVar11;\n        FUN_00022d50(iVar3,uVar8,0,10,puVar10);\n        piVar4 = (int *)((int)piVar4 + -1);\n        *(char *)piVar4 = extraout_v1 + '0';\n        uVar11 = FUN_000228e0(iVar3,uVar8,0,10);\n      } while (iVar3 != 0);\n    } while (9 < uVar8);\n    return piVar4;\n  }" if (parenthesized_expression "(local_24 != *(int *)puVar10)" ( (binary_expression "local_24 != *(int *)puVar10" identifier != (pointer_expression "*(int *)puVar10" * (cast_expression "(int *)puVar10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    iVar3 = local_24;\n    puVar10 = PTR___stack_chk_fail_0003656c;\n    (*(code *)PTR___stack_chk_fail_0003656c)();\n    uVar11 = CONCAT44(iVar3,ppbVar6);\n    puVar10 = puVar10 + 0x246e0;\n    piVar4 = piVar7 + 5;\n    *(undefined1 *)(piVar7 + 5) = 0;\n    do {\n      do {\n        iVar3 = (int)((ulonglong)uVar11 >> 0x20);\n        uVar8 = (uint)uVar11;\n        FUN_00022d50(iVar3,uVar8,0,10,puVar10);\n        piVar4 = (int *)((int)piVar4 + -1);\n        *(char *)piVar4 = extraout_v1 + '0';\n        uVar11 = FUN_000228e0(iVar3,uVar8,0,10);\n      } while (iVar3 != 0);\n    } while (9 < uVar8);\n    return piVar4;\n  }" { (expression_statement "iVar3 = local_24;" (assignment_expression "iVar3 = local_24" identifier = identifier) ;) (expression_statement "puVar10 = PTR___stack_chk_fail_0003656c;" (assignment_expression "puVar10 = PTR___stack_chk_fail_0003656c" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0003656c)();" (call_expression "(*(code *)PTR___stack_chk_fail_0003656c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0003656c)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0003656c" * (cast_expression "(code *)PTR___stack_chk_fail_0003656c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar11 = CONCAT44(iVar3,ppbVar6);" (assignment_expression "uVar11 = CONCAT44(iVar3,ppbVar6)" identifier = (call_expression "CONCAT44(iVar3,ppbVar6)" identifier (argument_list "(iVar3,ppbVar6)" ( identifier , identifier )))) ;) (expression_statement "puVar10 = puVar10 + 0x246e0;" (assignment_expression "puVar10 = puVar10 + 0x246e0" identifier = (binary_expression "puVar10 + 0x246e0" identifier + number_literal)) ;) (expression_statement "piVar4 = piVar7 + 5;" (assignment_expression "piVar4 = piVar7 + 5" identifier = (binary_expression "piVar7 + 5" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)(piVar7 + 5) = 0;" (assignment_expression "*(undefined1 *)(piVar7 + 5) = 0" (pointer_expression "*(undefined1 *)(piVar7 + 5)" * (cast_expression "(undefined1 *)(piVar7 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar7 + 5)" ( (binary_expression "piVar7 + 5" identifier + number_literal) )))) = number_literal) ;) (do_statement "do {\n      do {\n        iVar3 = (int)((ulonglong)uVar11 >> 0x20);\n        uVar8 = (uint)uVar11;\n        FUN_00022d50(iVar3,uVar8,0,10,puVar10);\n        piVar4 = (int *)((int)piVar4 + -1);\n        *(char *)piVar4 = extraout_v1 + '0';\n        uVar11 = FUN_000228e0(iVar3,uVar8,0,10);\n      } while (iVar3 != 0);\n    } while (9 < uVar8);" do (compound_statement "{\n      do {\n        iVar3 = (int)((ulonglong)uVar11 >> 0x20);\n        uVar8 = (uint)uVar11;\n        FUN_00022d50(iVar3,uVar8,0,10,puVar10);\n        piVar4 = (int *)((int)piVar4 + -1);\n        *(char *)piVar4 = extraout_v1 + '0';\n        uVar11 = FUN_000228e0(iVar3,uVar8,0,10);\n      } while (iVar3 != 0);\n    }" { (do_statement "do {\n        iVar3 = (int)((ulonglong)uVar11 >> 0x20);\n        uVar8 = (uint)uVar11;\n        FUN_00022d50(iVar3,uVar8,0,10,puVar10);\n        piVar4 = (int *)((int)piVar4 + -1);\n        *(char *)piVar4 = extraout_v1 + '0';\n        uVar11 = FUN_000228e0(iVar3,uVar8,0,10);\n      } while (iVar3 != 0);" do (compound_statement "{\n        iVar3 = (int)((ulonglong)uVar11 >> 0x20);\n        uVar8 = (uint)uVar11;\n        FUN_00022d50(iVar3,uVar8,0,10,puVar10);\n        piVar4 = (int *)((int)piVar4 + -1);\n        *(char *)piVar4 = extraout_v1 + '0';\n        uVar11 = FUN_000228e0(iVar3,uVar8,0,10);\n      }" { (expression_statement "iVar3 = (int)((ulonglong)uVar11 >> 0x20);" (assignment_expression "iVar3 = (int)((ulonglong)uVar11 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)uVar11 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar11 >> 0x20)" ( (binary_expression "(ulonglong)uVar11 >> 0x20" (cast_expression "(ulonglong)uVar11" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar8 = (uint)uVar11;" (assignment_expression "uVar8 = (uint)uVar11" identifier = (cast_expression "(uint)uVar11" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "FUN_00022d50(iVar3,uVar8,0,10,puVar10);" (call_expression "FUN_00022d50(iVar3,uVar8,0,10,puVar10)" identifier (argument_list "(iVar3,uVar8,0,10,puVar10)" ( identifier , identifier , number_literal , number_literal , identifier ))) ;) (expression_statement "piVar4 = (int *)((int)piVar4 + -1);" (assignment_expression "piVar4 = (int *)((int)piVar4 + -1)" identifier = (cast_expression "(int *)((int)piVar4 + -1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar4 + -1)" ( (binary_expression "(int)piVar4 + -1" (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*(char *)piVar4 = extraout_v1 + '0';" (assignment_expression "*(char *)piVar4 = extraout_v1 + '0'" (pointer_expression "*(char *)piVar4" * (cast_expression "(char *)piVar4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "extraout_v1 + '0'" identifier + (char_literal "'0'" ' character '))) ;) (expression_statement "uVar11 = FUN_000228e0(iVar3,uVar8,0,10);" (assignment_expression "uVar11 = FUN_000228e0(iVar3,uVar8,0,10)" identifier = (call_expression "FUN_000228e0(iVar3,uVar8,0,10)" identifier (argument_list "(iVar3,uVar8,0,10)" ( identifier , identifier , number_literal , number_literal )))) ;) }) while (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) ;) }) while (parenthesized_expression "(9 < uVar8)" ( (binary_expression "9 < uVar8" number_literal < identifier) )) ;) (return_statement "return piVar4;" return identifier ;) })) (return_statement "return piVar4;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) )))) (compound_statement { (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 * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = (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 ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)))) ))) )) && (parenthesized_expression ( (comma_expression (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 ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_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 * (abstract_pointer_declarator *))) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , 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 *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT , (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression (pointer_expression * IDENT) - LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * IDENT) - LIT) < LIT) )) (goto_statement goto statement_identifier ;)) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) }))) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression IDENT == LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_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 * (abstract_pointer_declarator *))) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT | (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) )))))) ;) }))) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (do_statement do (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (binary_expression IDENT + (char_literal ' character '))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , LIT )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) }) while (parenthesized_expression ( (binary_expression LIT < IDENT) )) ;) (return_statement return IDENT ;) })) (return_statement return IDENT ;) })))
(function_definition "int * human_options(byte *param_1,uint *param_2,int *param_3)\n\n{\n  byte bVar1;\n  undefined *puVar2;\n  int iVar3;\n  int *piVar4;\n  char extraout_v1;\n  int iVar5;\n  byte **ppbVar6;\n  int *piVar7;\n  uint uVar8;\n  uint uVar9;\n  undefined *puVar10;\n  undefined8 uVar11;\n  byte *local_28;\n  int local_24;\n  \n  puVar10 = PTR___stack_chk_guard_0003658c;\n  local_24 = *(int *)PTR___stack_chk_guard_0003658c;\n  if (((param_1 == (byte *)0x0) &&\n      (piVar7 = param_3, param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938)\n      , param_1 == (byte *)0x0)) &&\n     (param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4944),\n     param_1 == (byte *)0x0)) {\n    iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n    if (iVar3 == 0) {\n      ppbVar6 = (byte **)0x400;\n      param_3[1] = 0x400;\n      *param_3 = 0;\n      *param_2 = 0;\n      piVar4 = (int *)0x0;\n    }\n    else {\n      ppbVar6 = (byte **)0x200;\n      param_3[1] = 0x200;\n      piVar4 = (int *)0x0;\n      *param_3 = 0;\n      *param_2 = 0;\n    }\n  }\n  else {\n    puVar2 = PTR_LAB_00036278;\n    if (*param_1 == 0x27) {\n      param_1 = param_1 + 1;\n      uVar8 = 4;\n    }\n    else {\n      uVar8 = 0;\n    }\n    piVar7 = (int *)(PTR_LAB_00036278 + 0x4970);\n    iVar3 = argmatch(param_1,PTR_DAT_00036268 + 0x5fc8,piVar7,4);\n    if (iVar3 < 0) {\n      piVar7 = (int *)0x0;\n      ppbVar6 = &local_28;\n      piVar4 = (int *)xstrtoumax(param_1,ppbVar6,0,param_3,PTR_LAB_00036278 + 0x4950);\n      if (piVar4 == (int *)0x0) {\n        uVar9 = uVar8;\n        if (9 < *param_1 - 0x30) {\n          if (param_1 == local_28) {\n            bVar1 = local_28[-1];\n          }\n          else {\n            do {\n              param_1 = param_1 + 1;\n              if (*param_1 - 0x30 < 10) goto LAB_00019a3c;\n            } while (param_1 != local_28);\n            bVar1 = local_28[-1];\n          }\n          ppbVar6 = (byte **)(int)(char)bVar1;\n          if (ppbVar6 == (byte **)0x42) {\n            uVar9 = uVar8 | 0x180;\n            if (local_28[-2] == 0x69) {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }\n          else {\n            uVar9 = uVar8 | 0xa0;\n          }\n        }\nLAB_00019a3c:\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = uVar9;\n      }\n      else {\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = 0;\n      }\n      if (iVar3 == 0 && iVar5 == 0) {\n        iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n        if (iVar3 == 0) {\n          ppbVar6 = (byte **)0x400;\n        }\n        else {\n          ppbVar6 = (byte **)0x200;\n        }\n        piVar4 = (int *)&DAT_00000004;\n        param_3[1] = (int)ppbVar6;\n        *param_3 = 0;\n      }\n    }\n    else {\n      ppbVar6 = (byte **)0x1;\n      param_3[1] = 1;\n      piVar4 = (int *)0x0;\n      *param_3 = 0;\n      *param_2 = uVar8 | *(uint *)(puVar2 + iVar3 * 4 + 0x4970);\n    }\n  }\n  if (local_24 != *(int *)puVar10) {\n    iVar3 = local_24;\n    puVar10 = PTR___stack_chk_fail_0003656c;\n    (*(code *)PTR___stack_chk_fail_0003656c)();\n    uVar11 = CONCAT44(iVar3,ppbVar6);\n    puVar10 = puVar10 + 0x246e0;\n    piVar4 = piVar7 + 5;\n    *(undefined1 *)(piVar7 + 5) = 0;\n    do {\n      do {\n        iVar3 = (int)((ulonglong)uVar11 >> 0x20);\n        uVar8 = (uint)uVar11;\n        FUN_00022d50(iVar3,uVar8,0,10,puVar10);\n        piVar4 = (int *)((int)piVar4 + -1);\n        *(char *)piVar4 = extraout_v1 + '0';\n        uVar11 = FUN_000228e0(iVar3,uVar8,0,10);\n      } while (iVar3 != 0);\n    } while (9 < uVar8);\n    return piVar4;\n  }\n  return piVar4;\n}" (primitive_type "int") (pointer_declarator "* human_options(byte *param_1,uint *param_2,int *param_3)" (* "*") (function_declarator "human_options(byte *param_1,uint *param_2,int *param_3)" (identifier "human_options") (parameter_list "(byte *param_1,uint *param_2,int *param_3)" (( "(") (parameter_declaration "byte *param_1" (type_identifier "byte") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "uint *param_2" (type_identifier "uint") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "int *param_3" (primitive_type "int") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")")))) (compound_statement "{\n  byte bVar1;\n  undefined *puVar2;\n  int iVar3;\n  int *piVar4;\n  char extraout_v1;\n  int iVar5;\n  byte **ppbVar6;\n  int *piVar7;\n  uint uVar8;\n  uint uVar9;\n  undefined *puVar10;\n  undefined8 uVar11;\n  byte *local_28;\n  int local_24;\n  \n  puVar10 = PTR___stack_chk_guard_0003658c;\n  local_24 = *(int *)PTR___stack_chk_guard_0003658c;\n  if (((param_1 == (byte *)0x0) &&\n      (piVar7 = param_3, param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938)\n      , param_1 == (byte *)0x0)) &&\n     (param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4944),\n     param_1 == (byte *)0x0)) {\n    iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n    if (iVar3 == 0) {\n      ppbVar6 = (byte **)0x400;\n      param_3[1] = 0x400;\n      *param_3 = 0;\n      *param_2 = 0;\n      piVar4 = (int *)0x0;\n    }\n    else {\n      ppbVar6 = (byte **)0x200;\n      param_3[1] = 0x200;\n      piVar4 = (int *)0x0;\n      *param_3 = 0;\n      *param_2 = 0;\n    }\n  }\n  else {\n    puVar2 = PTR_LAB_00036278;\n    if (*param_1 == 0x27) {\n      param_1 = param_1 + 1;\n      uVar8 = 4;\n    }\n    else {\n      uVar8 = 0;\n    }\n    piVar7 = (int *)(PTR_LAB_00036278 + 0x4970);\n    iVar3 = argmatch(param_1,PTR_DAT_00036268 + 0x5fc8,piVar7,4);\n    if (iVar3 < 0) {\n      piVar7 = (int *)0x0;\n      ppbVar6 = &local_28;\n      piVar4 = (int *)xstrtoumax(param_1,ppbVar6,0,param_3,PTR_LAB_00036278 + 0x4950);\n      if (piVar4 == (int *)0x0) {\n        uVar9 = uVar8;\n        if (9 < *param_1 - 0x30) {\n          if (param_1 == local_28) {\n            bVar1 = local_28[-1];\n          }\n          else {\n            do {\n              param_1 = param_1 + 1;\n              if (*param_1 - 0x30 < 10) goto LAB_00019a3c;\n            } while (param_1 != local_28);\n            bVar1 = local_28[-1];\n          }\n          ppbVar6 = (byte **)(int)(char)bVar1;\n          if (ppbVar6 == (byte **)0x42) {\n            uVar9 = uVar8 | 0x180;\n            if (local_28[-2] == 0x69) {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }\n          else {\n            uVar9 = uVar8 | 0xa0;\n          }\n        }\nLAB_00019a3c:\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = uVar9;\n      }\n      else {\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = 0;\n      }\n      if (iVar3 == 0 && iVar5 == 0) {\n        iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n        if (iVar3 == 0) {\n          ppbVar6 = (byte **)0x400;\n        }\n        else {\n          ppbVar6 = (byte **)0x200;\n        }\n        piVar4 = (int *)&DAT_00000004;\n        param_3[1] = (int)ppbVar6;\n        *param_3 = 0;\n      }\n    }\n    else {\n      ppbVar6 = (byte **)0x1;\n      param_3[1] = 1;\n      piVar4 = (int *)0x0;\n      *param_3 = 0;\n      *param_2 = uVar8 | *(uint *)(puVar2 + iVar3 * 4 + 0x4970);\n    }\n  }\n  if (local_24 != *(int *)puVar10) {\n    iVar3 = local_24;\n    puVar10 = PTR___stack_chk_fail_0003656c;\n    (*(code *)PTR___stack_chk_fail_0003656c)();\n    uVar11 = CONCAT44(iVar3,ppbVar6);\n    puVar10 = puVar10 + 0x246e0;\n    piVar4 = piVar7 + 5;\n    *(undefined1 *)(piVar7 + 5) = 0;\n    do {\n      do {\n        iVar3 = (int)((ulonglong)uVar11 >> 0x20);\n        uVar8 = (uint)uVar11;\n        FUN_00022d50(iVar3,uVar8,0,10,puVar10);\n        piVar4 = (int *)((int)piVar4 + -1);\n        *(char *)piVar4 = extraout_v1 + '0';\n        uVar11 = FUN_000228e0(iVar3,uVar8,0,10);\n      } while (iVar3 != 0);\n    } while (9 < uVar8);\n    return piVar4;\n  }\n  return piVar4;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (declaration "char extraout_v1;" (primitive_type "char") (identifier "extraout_v1") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "byte **ppbVar6;" (type_identifier "byte") (pointer_declarator "**ppbVar6" (* "*") (pointer_declarator "*ppbVar6" (* "*") (identifier "ppbVar6"))) (; ";")) (declaration "int *piVar7;" (primitive_type "int") (pointer_declarator "*piVar7" (* "*") (identifier "piVar7")) (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "undefined *puVar10;" (type_identifier "undefined") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "undefined8 uVar11;" (type_identifier "undefined8") (identifier "uVar11") (; ";")) (declaration "byte *local_28;" (type_identifier "byte") (pointer_declarator "*local_28" (* "*") (identifier "local_28")) (; ";")) (declaration "int local_24;" (primitive_type "int") (identifier "local_24") (; ";")) (expression_statement "puVar10 = PTR___stack_chk_guard_0003658c;" (assignment_expression "puVar10 = PTR___stack_chk_guard_0003658c" (identifier "puVar10") (= "=") (identifier "PTR___stack_chk_guard_0003658c")) (; ";")) (expression_statement "local_24 = *(int *)PTR___stack_chk_guard_0003658c;" (assignment_expression "local_24 = *(int *)PTR___stack_chk_guard_0003658c" (identifier "local_24") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_0003658c" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_0003658c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_0003658c")))) (; ";")) (if_statement "if (((param_1 == (byte *)0x0) &&\n      (piVar7 = param_3, param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938)\n      , param_1 == (byte *)0x0)) &&\n     (param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4944),\n     param_1 == (byte *)0x0)) {\n    iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n    if (iVar3 == 0) {\n      ppbVar6 = (byte **)0x400;\n      param_3[1] = 0x400;\n      *param_3 = 0;\n      *param_2 = 0;\n      piVar4 = (int *)0x0;\n    }\n    else {\n      ppbVar6 = (byte **)0x200;\n      param_3[1] = 0x200;\n      piVar4 = (int *)0x0;\n      *param_3 = 0;\n      *param_2 = 0;\n    }\n  }\n  else {\n    puVar2 = PTR_LAB_00036278;\n    if (*param_1 == 0x27) {\n      param_1 = param_1 + 1;\n      uVar8 = 4;\n    }\n    else {\n      uVar8 = 0;\n    }\n    piVar7 = (int *)(PTR_LAB_00036278 + 0x4970);\n    iVar3 = argmatch(param_1,PTR_DAT_00036268 + 0x5fc8,piVar7,4);\n    if (iVar3 < 0) {\n      piVar7 = (int *)0x0;\n      ppbVar6 = &local_28;\n      piVar4 = (int *)xstrtoumax(param_1,ppbVar6,0,param_3,PTR_LAB_00036278 + 0x4950);\n      if (piVar4 == (int *)0x0) {\n        uVar9 = uVar8;\n        if (9 < *param_1 - 0x30) {\n          if (param_1 == local_28) {\n            bVar1 = local_28[-1];\n          }\n          else {\n            do {\n              param_1 = param_1 + 1;\n              if (*param_1 - 0x30 < 10) goto LAB_00019a3c;\n            } while (param_1 != local_28);\n            bVar1 = local_28[-1];\n          }\n          ppbVar6 = (byte **)(int)(char)bVar1;\n          if (ppbVar6 == (byte **)0x42) {\n            uVar9 = uVar8 | 0x180;\n            if (local_28[-2] == 0x69) {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }\n          else {\n            uVar9 = uVar8 | 0xa0;\n          }\n        }\nLAB_00019a3c:\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = uVar9;\n      }\n      else {\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = 0;\n      }\n      if (iVar3 == 0 && iVar5 == 0) {\n        iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n        if (iVar3 == 0) {\n          ppbVar6 = (byte **)0x400;\n        }\n        else {\n          ppbVar6 = (byte **)0x200;\n        }\n        piVar4 = (int *)&DAT_00000004;\n        param_3[1] = (int)ppbVar6;\n        *param_3 = 0;\n      }\n    }\n    else {\n      ppbVar6 = (byte **)0x1;\n      param_3[1] = 1;\n      piVar4 = (int *)0x0;\n      *param_3 = 0;\n      *param_2 = uVar8 | *(uint *)(puVar2 + iVar3 * 4 + 0x4970);\n    }\n  }" (if "if") (parenthesized_expression "(((param_1 == (byte *)0x0) &&\n      (piVar7 = param_3, param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938)\n      , param_1 == (byte *)0x0)) &&\n     (param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4944),\n     param_1 == (byte *)0x0))" (( "(") (binary_expression "((param_1 == (byte *)0x0) &&\n      (piVar7 = param_3, param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938)\n      , param_1 == (byte *)0x0)) &&\n     (param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4944),\n     param_1 == (byte *)0x0)" (parenthesized_expression "((param_1 == (byte *)0x0) &&\n      (piVar7 = param_3, param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938)\n      , param_1 == (byte *)0x0))" (( "(") (binary_expression "(param_1 == (byte *)0x0) &&\n      (piVar7 = param_3, param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938)\n      , param_1 == (byte *)0x0)" (parenthesized_expression "(param_1 == (byte *)0x0)" (( "(") (binary_expression "param_1 == (byte *)0x0" (identifier "param_1") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(piVar7 = param_3, param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938)\n      , param_1 == (byte *)0x0)" (( "(") (comma_expression "piVar7 = param_3, param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938)\n      , param_1 == (byte *)0x0" (assignment_expression "piVar7 = param_3" (identifier "piVar7") (= "=") (identifier "param_3")) (, ",") (comma_expression "param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938)\n      , param_1 == (byte *)0x0" (assignment_expression "param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938)" (identifier "param_1") (= "=") (cast_expression "(byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938)" (parenthesized_expression "(*(code *)PTR_getenv_00036524)" (( "(") (pointer_expression "*(code *)PTR_getenv_00036524" (* "*") (cast_expression "(code *)PTR_getenv_00036524" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_getenv_00036524"))) () ")")) (argument_list "(PTR_LAB_00036278 + 0x4938)" (( "(") (binary_expression "PTR_LAB_00036278 + 0x4938" (identifier "PTR_LAB_00036278") (+ "+") (number_literal "0x4938")) () ")"))))) (, ",") (binary_expression "param_1 == (byte *)0x0" (identifier "param_1") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4944),\n     param_1 == (byte *)0x0)" (( "(") (comma_expression "param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4944),\n     param_1 == (byte *)0x0" (assignment_expression "param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4944)" (identifier "param_1") (= "=") (cast_expression "(byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4944)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4944)" (parenthesized_expression "(*(code *)PTR_getenv_00036524)" (( "(") (pointer_expression "*(code *)PTR_getenv_00036524" (* "*") (cast_expression "(code *)PTR_getenv_00036524" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_getenv_00036524"))) () ")")) (argument_list "(PTR_LAB_00036278 + 0x4944)" (( "(") (binary_expression "PTR_LAB_00036278 + 0x4944" (identifier "PTR_LAB_00036278") (+ "+") (number_literal "0x4944")) () ")"))))) (, ",") (binary_expression "param_1 == (byte *)0x0" (identifier "param_1") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n    iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n    if (iVar3 == 0) {\n      ppbVar6 = (byte **)0x400;\n      param_3[1] = 0x400;\n      *param_3 = 0;\n      *param_2 = 0;\n      piVar4 = (int *)0x0;\n    }\n    else {\n      ppbVar6 = (byte **)0x200;\n      param_3[1] = 0x200;\n      piVar4 = (int *)0x0;\n      *param_3 = 0;\n      *param_2 = 0;\n    }\n  }" ({ "{") (expression_statement "iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);" (assignment_expression "iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474)" (parenthesized_expression "(*(code *)PTR_getenv_00036524)" (( "(") (pointer_expression "*(code *)PTR_getenv_00036524" (* "*") (cast_expression "(code *)PTR_getenv_00036524" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_getenv_00036524"))) () ")")) (argument_list "(PTR_LAB_00036278 + 0x4474)" (( "(") (binary_expression "PTR_LAB_00036278 + 0x4474" (identifier "PTR_LAB_00036278") (+ "+") (number_literal "0x4474")) () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n      ppbVar6 = (byte **)0x400;\n      param_3[1] = 0x400;\n      *param_3 = 0;\n      *param_2 = 0;\n      piVar4 = (int *)0x0;\n    }\n    else {\n      ppbVar6 = (byte **)0x200;\n      param_3[1] = 0x200;\n      piVar4 = (int *)0x0;\n      *param_3 = 0;\n      *param_2 = 0;\n    }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      ppbVar6 = (byte **)0x400;\n      param_3[1] = 0x400;\n      *param_3 = 0;\n      *param_2 = 0;\n      piVar4 = (int *)0x0;\n    }" ({ "{") (expression_statement "ppbVar6 = (byte **)0x400;" (assignment_expression "ppbVar6 = (byte **)0x400" (identifier "ppbVar6") (= "=") (cast_expression "(byte **)0x400" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x400"))) (; ";")) (expression_statement "param_3[1] = 0x400;" (assignment_expression "param_3[1] = 0x400" (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0x400")) (; ";")) (expression_statement "*param_3 = 0;" (assignment_expression "*param_3 = 0" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*param_2 = 0;" (assignment_expression "*param_2 = 0" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar4 = (int *)0x0;" (assignment_expression "piVar4 = (int *)0x0" (identifier "piVar4") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n      ppbVar6 = (byte **)0x200;\n      param_3[1] = 0x200;\n      piVar4 = (int *)0x0;\n      *param_3 = 0;\n      *param_2 = 0;\n    }" (else "else") (compound_statement "{\n      ppbVar6 = (byte **)0x200;\n      param_3[1] = 0x200;\n      piVar4 = (int *)0x0;\n      *param_3 = 0;\n      *param_2 = 0;\n    }" ({ "{") (expression_statement "ppbVar6 = (byte **)0x200;" (assignment_expression "ppbVar6 = (byte **)0x200" (identifier "ppbVar6") (= "=") (cast_expression "(byte **)0x200" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x200"))) (; ";")) (expression_statement "param_3[1] = 0x200;" (assignment_expression "param_3[1] = 0x200" (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0x200")) (; ";")) (expression_statement "piVar4 = (int *)0x0;" (assignment_expression "piVar4 = (int *)0x0" (identifier "piVar4") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*param_3 = 0;" (assignment_expression "*param_3 = 0" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*param_2 = 0;" (assignment_expression "*param_2 = 0" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n    puVar2 = PTR_LAB_00036278;\n    if (*param_1 == 0x27) {\n      param_1 = param_1 + 1;\n      uVar8 = 4;\n    }\n    else {\n      uVar8 = 0;\n    }\n    piVar7 = (int *)(PTR_LAB_00036278 + 0x4970);\n    iVar3 = argmatch(param_1,PTR_DAT_00036268 + 0x5fc8,piVar7,4);\n    if (iVar3 < 0) {\n      piVar7 = (int *)0x0;\n      ppbVar6 = &local_28;\n      piVar4 = (int *)xstrtoumax(param_1,ppbVar6,0,param_3,PTR_LAB_00036278 + 0x4950);\n      if (piVar4 == (int *)0x0) {\n        uVar9 = uVar8;\n        if (9 < *param_1 - 0x30) {\n          if (param_1 == local_28) {\n            bVar1 = local_28[-1];\n          }\n          else {\n            do {\n              param_1 = param_1 + 1;\n              if (*param_1 - 0x30 < 10) goto LAB_00019a3c;\n            } while (param_1 != local_28);\n            bVar1 = local_28[-1];\n          }\n          ppbVar6 = (byte **)(int)(char)bVar1;\n          if (ppbVar6 == (byte **)0x42) {\n            uVar9 = uVar8 | 0x180;\n            if (local_28[-2] == 0x69) {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }\n          else {\n            uVar9 = uVar8 | 0xa0;\n          }\n        }\nLAB_00019a3c:\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = uVar9;\n      }\n      else {\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = 0;\n      }\n      if (iVar3 == 0 && iVar5 == 0) {\n        iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n        if (iVar3 == 0) {\n          ppbVar6 = (byte **)0x400;\n        }\n        else {\n          ppbVar6 = (byte **)0x200;\n        }\n        piVar4 = (int *)&DAT_00000004;\n        param_3[1] = (int)ppbVar6;\n        *param_3 = 0;\n      }\n    }\n    else {\n      ppbVar6 = (byte **)0x1;\n      param_3[1] = 1;\n      piVar4 = (int *)0x0;\n      *param_3 = 0;\n      *param_2 = uVar8 | *(uint *)(puVar2 + iVar3 * 4 + 0x4970);\n    }\n  }" (else "else") (compound_statement "{\n    puVar2 = PTR_LAB_00036278;\n    if (*param_1 == 0x27) {\n      param_1 = param_1 + 1;\n      uVar8 = 4;\n    }\n    else {\n      uVar8 = 0;\n    }\n    piVar7 = (int *)(PTR_LAB_00036278 + 0x4970);\n    iVar3 = argmatch(param_1,PTR_DAT_00036268 + 0x5fc8,piVar7,4);\n    if (iVar3 < 0) {\n      piVar7 = (int *)0x0;\n      ppbVar6 = &local_28;\n      piVar4 = (int *)xstrtoumax(param_1,ppbVar6,0,param_3,PTR_LAB_00036278 + 0x4950);\n      if (piVar4 == (int *)0x0) {\n        uVar9 = uVar8;\n        if (9 < *param_1 - 0x30) {\n          if (param_1 == local_28) {\n            bVar1 = local_28[-1];\n          }\n          else {\n            do {\n              param_1 = param_1 + 1;\n              if (*param_1 - 0x30 < 10) goto LAB_00019a3c;\n            } while (param_1 != local_28);\n            bVar1 = local_28[-1];\n          }\n          ppbVar6 = (byte **)(int)(char)bVar1;\n          if (ppbVar6 == (byte **)0x42) {\n            uVar9 = uVar8 | 0x180;\n            if (local_28[-2] == 0x69) {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }\n          else {\n            uVar9 = uVar8 | 0xa0;\n          }\n        }\nLAB_00019a3c:\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = uVar9;\n      }\n      else {\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = 0;\n      }\n      if (iVar3 == 0 && iVar5 == 0) {\n        iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n        if (iVar3 == 0) {\n          ppbVar6 = (byte **)0x400;\n        }\n        else {\n          ppbVar6 = (byte **)0x200;\n        }\n        piVar4 = (int *)&DAT_00000004;\n        param_3[1] = (int)ppbVar6;\n        *param_3 = 0;\n      }\n    }\n    else {\n      ppbVar6 = (byte **)0x1;\n      param_3[1] = 1;\n      piVar4 = (int *)0x0;\n      *param_3 = 0;\n      *param_2 = uVar8 | *(uint *)(puVar2 + iVar3 * 4 + 0x4970);\n    }\n  }" ({ "{") (expression_statement "puVar2 = PTR_LAB_00036278;" (assignment_expression "puVar2 = PTR_LAB_00036278" (identifier "puVar2") (= "=") (identifier "PTR_LAB_00036278")) (; ";")) (if_statement "if (*param_1 == 0x27) {\n      param_1 = param_1 + 1;\n      uVar8 = 4;\n    }\n    else {\n      uVar8 = 0;\n    }" (if "if") (parenthesized_expression "(*param_1 == 0x27)" (( "(") (binary_expression "*param_1 == 0x27" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (== "==") (number_literal "0x27")) () ")")) (compound_statement "{\n      param_1 = param_1 + 1;\n      uVar8 = 4;\n    }" ({ "{") (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" (identifier "param_1") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar8 = 4;" (assignment_expression "uVar8 = 4" (identifier "uVar8") (= "=") (number_literal "4")) (; ";")) (} "}")) (else_clause "else {\n      uVar8 = 0;\n    }" (else "else") (compound_statement "{\n      uVar8 = 0;\n    }" ({ "{") (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "piVar7 = (int *)(PTR_LAB_00036278 + 0x4970);" (assignment_expression "piVar7 = (int *)(PTR_LAB_00036278 + 0x4970)" (identifier "piVar7") (= "=") (cast_expression "(int *)(PTR_LAB_00036278 + 0x4970)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00036278 + 0x4970)" (( "(") (binary_expression "PTR_LAB_00036278 + 0x4970" (identifier "PTR_LAB_00036278") (+ "+") (number_literal "0x4970")) () ")")))) (; ";")) (expression_statement "iVar3 = argmatch(param_1,PTR_DAT_00036268 + 0x5fc8,piVar7,4);" (assignment_expression "iVar3 = argmatch(param_1,PTR_DAT_00036268 + 0x5fc8,piVar7,4)" (identifier "iVar3") (= "=") (call_expression "argmatch(param_1,PTR_DAT_00036268 + 0x5fc8,piVar7,4)" (identifier "argmatch") (argument_list "(param_1,PTR_DAT_00036268 + 0x5fc8,piVar7,4)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_DAT_00036268 + 0x5fc8" (identifier "PTR_DAT_00036268") (+ "+") (number_literal "0x5fc8")) (, ",") (identifier "piVar7") (, ",") (number_literal "4") () ")")))) (; ";")) (if_statement "if (iVar3 < 0) {\n      piVar7 = (int *)0x0;\n      ppbVar6 = &local_28;\n      piVar4 = (int *)xstrtoumax(param_1,ppbVar6,0,param_3,PTR_LAB_00036278 + 0x4950);\n      if (piVar4 == (int *)0x0) {\n        uVar9 = uVar8;\n        if (9 < *param_1 - 0x30) {\n          if (param_1 == local_28) {\n            bVar1 = local_28[-1];\n          }\n          else {\n            do {\n              param_1 = param_1 + 1;\n              if (*param_1 - 0x30 < 10) goto LAB_00019a3c;\n            } while (param_1 != local_28);\n            bVar1 = local_28[-1];\n          }\n          ppbVar6 = (byte **)(int)(char)bVar1;\n          if (ppbVar6 == (byte **)0x42) {\n            uVar9 = uVar8 | 0x180;\n            if (local_28[-2] == 0x69) {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }\n          else {\n            uVar9 = uVar8 | 0xa0;\n          }\n        }\nLAB_00019a3c:\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = uVar9;\n      }\n      else {\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = 0;\n      }\n      if (iVar3 == 0 && iVar5 == 0) {\n        iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n        if (iVar3 == 0) {\n          ppbVar6 = (byte **)0x400;\n        }\n        else {\n          ppbVar6 = (byte **)0x200;\n        }\n        piVar4 = (int *)&DAT_00000004;\n        param_3[1] = (int)ppbVar6;\n        *param_3 = 0;\n      }\n    }\n    else {\n      ppbVar6 = (byte **)0x1;\n      param_3[1] = 1;\n      piVar4 = (int *)0x0;\n      *param_3 = 0;\n      *param_2 = uVar8 | *(uint *)(puVar2 + iVar3 * 4 + 0x4970);\n    }" (if "if") (parenthesized_expression "(iVar3 < 0)" (( "(") (binary_expression "iVar3 < 0" (identifier "iVar3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      piVar7 = (int *)0x0;\n      ppbVar6 = &local_28;\n      piVar4 = (int *)xstrtoumax(param_1,ppbVar6,0,param_3,PTR_LAB_00036278 + 0x4950);\n      if (piVar4 == (int *)0x0) {\n        uVar9 = uVar8;\n        if (9 < *param_1 - 0x30) {\n          if (param_1 == local_28) {\n            bVar1 = local_28[-1];\n          }\n          else {\n            do {\n              param_1 = param_1 + 1;\n              if (*param_1 - 0x30 < 10) goto LAB_00019a3c;\n            } while (param_1 != local_28);\n            bVar1 = local_28[-1];\n          }\n          ppbVar6 = (byte **)(int)(char)bVar1;\n          if (ppbVar6 == (byte **)0x42) {\n            uVar9 = uVar8 | 0x180;\n            if (local_28[-2] == 0x69) {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }\n          else {\n            uVar9 = uVar8 | 0xa0;\n          }\n        }\nLAB_00019a3c:\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = uVar9;\n      }\n      else {\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = 0;\n      }\n      if (iVar3 == 0 && iVar5 == 0) {\n        iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n        if (iVar3 == 0) {\n          ppbVar6 = (byte **)0x400;\n        }\n        else {\n          ppbVar6 = (byte **)0x200;\n        }\n        piVar4 = (int *)&DAT_00000004;\n        param_3[1] = (int)ppbVar6;\n        *param_3 = 0;\n      }\n    }" ({ "{") (expression_statement "piVar7 = (int *)0x0;" (assignment_expression "piVar7 = (int *)0x0" (identifier "piVar7") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppbVar6 = &local_28;" (assignment_expression "ppbVar6 = &local_28" (identifier "ppbVar6") (= "=") (pointer_expression "&local_28" (& "&") (identifier "local_28"))) (; ";")) (expression_statement "piVar4 = (int *)xstrtoumax(param_1,ppbVar6,0,param_3,PTR_LAB_00036278 + 0x4950);" (assignment_expression "piVar4 = (int *)xstrtoumax(param_1,ppbVar6,0,param_3,PTR_LAB_00036278 + 0x4950)" (identifier "piVar4") (= "=") (cast_expression "(int *)xstrtoumax(param_1,ppbVar6,0,param_3,PTR_LAB_00036278 + 0x4950)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xstrtoumax(param_1,ppbVar6,0,param_3,PTR_LAB_00036278 + 0x4950)" (identifier "xstrtoumax") (argument_list "(param_1,ppbVar6,0,param_3,PTR_LAB_00036278 + 0x4950)" (( "(") (identifier "param_1") (, ",") (identifier "ppbVar6") (, ",") (number_literal "0") (, ",") (identifier "param_3") (, ",") (binary_expression "PTR_LAB_00036278 + 0x4950" (identifier "PTR_LAB_00036278") (+ "+") (number_literal "0x4950")) () ")"))))) (; ";")) (if_statement "if (piVar4 == (int *)0x0) {\n        uVar9 = uVar8;\n        if (9 < *param_1 - 0x30) {\n          if (param_1 == local_28) {\n            bVar1 = local_28[-1];\n          }\n          else {\n            do {\n              param_1 = param_1 + 1;\n              if (*param_1 - 0x30 < 10) goto LAB_00019a3c;\n            } while (param_1 != local_28);\n            bVar1 = local_28[-1];\n          }\n          ppbVar6 = (byte **)(int)(char)bVar1;\n          if (ppbVar6 == (byte **)0x42) {\n            uVar9 = uVar8 | 0x180;\n            if (local_28[-2] == 0x69) {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }\n          else {\n            uVar9 = uVar8 | 0xa0;\n          }\n        }\nLAB_00019a3c:\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = uVar9;\n      }\n      else {\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = 0;\n      }" (if "if") (parenthesized_expression "(piVar4 == (int *)0x0)" (( "(") (binary_expression "piVar4 == (int *)0x0" (identifier "piVar4") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        uVar9 = uVar8;\n        if (9 < *param_1 - 0x30) {\n          if (param_1 == local_28) {\n            bVar1 = local_28[-1];\n          }\n          else {\n            do {\n              param_1 = param_1 + 1;\n              if (*param_1 - 0x30 < 10) goto LAB_00019a3c;\n            } while (param_1 != local_28);\n            bVar1 = local_28[-1];\n          }\n          ppbVar6 = (byte **)(int)(char)bVar1;\n          if (ppbVar6 == (byte **)0x42) {\n            uVar9 = uVar8 | 0x180;\n            if (local_28[-2] == 0x69) {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }\n          else {\n            uVar9 = uVar8 | 0xa0;\n          }\n        }\nLAB_00019a3c:\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = uVar9;\n      }" ({ "{") (expression_statement "uVar9 = uVar8;" (assignment_expression "uVar9 = uVar8" (identifier "uVar9") (= "=") (identifier "uVar8")) (; ";")) (if_statement "if (9 < *param_1 - 0x30) {\n          if (param_1 == local_28) {\n            bVar1 = local_28[-1];\n          }\n          else {\n            do {\n              param_1 = param_1 + 1;\n              if (*param_1 - 0x30 < 10) goto LAB_00019a3c;\n            } while (param_1 != local_28);\n            bVar1 = local_28[-1];\n          }\n          ppbVar6 = (byte **)(int)(char)bVar1;\n          if (ppbVar6 == (byte **)0x42) {\n            uVar9 = uVar8 | 0x180;\n            if (local_28[-2] == 0x69) {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }\n          else {\n            uVar9 = uVar8 | 0xa0;\n          }\n        }" (if "if") (parenthesized_expression "(9 < *param_1 - 0x30)" (( "(") (binary_expression "9 < *param_1 - 0x30" (number_literal "9") (< "<") (binary_expression "*param_1 - 0x30" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (- "-") (number_literal "0x30"))) () ")")) (compound_statement "{\n          if (param_1 == local_28) {\n            bVar1 = local_28[-1];\n          }\n          else {\n            do {\n              param_1 = param_1 + 1;\n              if (*param_1 - 0x30 < 10) goto LAB_00019a3c;\n            } while (param_1 != local_28);\n            bVar1 = local_28[-1];\n          }\n          ppbVar6 = (byte **)(int)(char)bVar1;\n          if (ppbVar6 == (byte **)0x42) {\n            uVar9 = uVar8 | 0x180;\n            if (local_28[-2] == 0x69) {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }\n          else {\n            uVar9 = uVar8 | 0xa0;\n          }\n        }" ({ "{") (if_statement "if (param_1 == local_28) {\n            bVar1 = local_28[-1];\n          }\n          else {\n            do {\n              param_1 = param_1 + 1;\n              if (*param_1 - 0x30 < 10) goto LAB_00019a3c;\n            } while (param_1 != local_28);\n            bVar1 = local_28[-1];\n          }" (if "if") (parenthesized_expression "(param_1 == local_28)" (( "(") (binary_expression "param_1 == local_28" (identifier "param_1") (== "==") (identifier "local_28")) () ")")) (compound_statement "{\n            bVar1 = local_28[-1];\n          }" ({ "{") (expression_statement "bVar1 = local_28[-1];" (assignment_expression "bVar1 = local_28[-1]" (identifier "bVar1") (= "=") (subscript_expression "local_28[-1]" (identifier "local_28") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n            do {\n              param_1 = param_1 + 1;\n              if (*param_1 - 0x30 < 10) goto LAB_00019a3c;\n            } while (param_1 != local_28);\n            bVar1 = local_28[-1];\n          }" (else "else") (compound_statement "{\n            do {\n              param_1 = param_1 + 1;\n              if (*param_1 - 0x30 < 10) goto LAB_00019a3c;\n            } while (param_1 != local_28);\n            bVar1 = local_28[-1];\n          }" ({ "{") (do_statement "do {\n              param_1 = param_1 + 1;\n              if (*param_1 - 0x30 < 10) goto LAB_00019a3c;\n            } while (param_1 != local_28);" (do "do") (compound_statement "{\n              param_1 = param_1 + 1;\n              if (*param_1 - 0x30 < 10) goto LAB_00019a3c;\n            }" ({ "{") (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" (identifier "param_1") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (*param_1 - 0x30 < 10) goto LAB_00019a3c;" (if "if") (parenthesized_expression "(*param_1 - 0x30 < 10)" (( "(") (binary_expression "*param_1 - 0x30 < 10" (binary_expression "*param_1 - 0x30" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (- "-") (number_literal "0x30")) (< "<") (number_literal "10")) () ")")) (goto_statement "goto LAB_00019a3c;" (goto "goto") (statement_identifier "LAB_00019a3c") (; ";"))) (} "}")) (while "while") (parenthesized_expression "(param_1 != local_28)" (( "(") (binary_expression "param_1 != local_28" (identifier "param_1") (!= "!=") (identifier "local_28")) () ")")) (; ";")) (expression_statement "bVar1 = local_28[-1];" (assignment_expression "bVar1 = local_28[-1]" (identifier "bVar1") (= "=") (subscript_expression "local_28[-1]" (identifier "local_28") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (} "}")))) (expression_statement "ppbVar6 = (byte **)(int)(char)bVar1;" (assignment_expression "ppbVar6 = (byte **)(int)(char)bVar1" (identifier "ppbVar6") (= "=") (cast_expression "(byte **)(int)(char)bVar1" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (cast_expression "(int)(char)bVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)bVar1" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar1"))))) (; ";")) (if_statement "if (ppbVar6 == (byte **)0x42) {\n            uVar9 = uVar8 | 0x180;\n            if (local_28[-2] == 0x69) {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }\n          else {\n            uVar9 = uVar8 | 0xa0;\n          }" (if "if") (parenthesized_expression "(ppbVar6 == (byte **)0x42)" (( "(") (binary_expression "ppbVar6 == (byte **)0x42" (identifier "ppbVar6") (== "==") (cast_expression "(byte **)0x42" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x42"))) () ")")) (compound_statement "{\n            uVar9 = uVar8 | 0x180;\n            if (local_28[-2] == 0x69) {\n              uVar9 = uVar8 | 0x1a0;\n            }\n          }" ({ "{") (expression_statement "uVar9 = uVar8 | 0x180;" (assignment_expression "uVar9 = uVar8 | 0x180" (identifier "uVar9") (= "=") (binary_expression "uVar8 | 0x180" (identifier "uVar8") (| "|") (number_literal "0x180"))) (; ";")) (if_statement "if (local_28[-2] == 0x69) {\n              uVar9 = uVar8 | 0x1a0;\n            }" (if "if") (parenthesized_expression "(local_28[-2] == 0x69)" (( "(") (binary_expression "local_28[-2] == 0x69" (subscript_expression "local_28[-2]" (identifier "local_28") ([ "[") (number_literal "-2") (] "]")) (== "==") (number_literal "0x69")) () ")")) (compound_statement "{\n              uVar9 = uVar8 | 0x1a0;\n            }" ({ "{") (expression_statement "uVar9 = uVar8 | 0x1a0;" (assignment_expression "uVar9 = uVar8 | 0x1a0" (identifier "uVar9") (= "=") (binary_expression "uVar8 | 0x1a0" (identifier "uVar8") (| "|") (number_literal "0x1a0"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n            uVar9 = uVar8 | 0xa0;\n          }" (else "else") (compound_statement "{\n            uVar9 = uVar8 | 0xa0;\n          }" ({ "{") (expression_statement "uVar9 = uVar8 | 0xa0;" (assignment_expression "uVar9 = uVar8 | 0xa0" (identifier "uVar9") (= "=") (binary_expression "uVar8 | 0xa0" (identifier "uVar8") (| "|") (number_literal "0xa0"))) (; ";")) (} "}")))) (} "}"))) (labeled_statement "LAB_00019a3c:\n        iVar3 = *param_3;" (statement_identifier "LAB_00019a3c") (: ":") (expression_statement "iVar3 = *param_3;" (assignment_expression "iVar3 = *param_3" (identifier "iVar3") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";"))) (expression_statement "iVar5 = param_3[1];" (assignment_expression "iVar5 = param_3[1]" (identifier "iVar5") (= "=") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*param_2 = uVar9;" (assignment_expression "*param_2 = uVar9" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (identifier "uVar9")) (; ";")) (} "}")) (else_clause "else {\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = 0;\n      }" (else "else") (compound_statement "{\n        iVar3 = *param_3;\n        iVar5 = param_3[1];\n        *param_2 = 0;\n      }" ({ "{") (expression_statement "iVar3 = *param_3;" (assignment_expression "iVar3 = *param_3" (identifier "iVar3") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (expression_statement "iVar5 = param_3[1];" (assignment_expression "iVar5 = param_3[1]" (identifier "iVar5") (= "=") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*param_2 = 0;" (assignment_expression "*param_2 = 0" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (number_literal "0")) (; ";")) (} "}")))) (if_statement "if (iVar3 == 0 && iVar5 == 0) {\n        iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n        if (iVar3 == 0) {\n          ppbVar6 = (byte **)0x400;\n        }\n        else {\n          ppbVar6 = (byte **)0x200;\n        }\n        piVar4 = (int *)&DAT_00000004;\n        param_3[1] = (int)ppbVar6;\n        *param_3 = 0;\n      }" (if "if") (parenthesized_expression "(iVar3 == 0 && iVar5 == 0)" (( "(") (binary_expression "iVar3 == 0 && iVar5 == 0" (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) (&& "&&") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n        iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);\n        if (iVar3 == 0) {\n          ppbVar6 = (byte **)0x400;\n        }\n        else {\n          ppbVar6 = (byte **)0x200;\n        }\n        piVar4 = (int *)&DAT_00000004;\n        param_3[1] = (int)ppbVar6;\n        *param_3 = 0;\n      }" ({ "{") (expression_statement "iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);" (assignment_expression "iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474)" (parenthesized_expression "(*(code *)PTR_getenv_00036524)" (( "(") (pointer_expression "*(code *)PTR_getenv_00036524" (* "*") (cast_expression "(code *)PTR_getenv_00036524" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_getenv_00036524"))) () ")")) (argument_list "(PTR_LAB_00036278 + 0x4474)" (( "(") (binary_expression "PTR_LAB_00036278 + 0x4474" (identifier "PTR_LAB_00036278") (+ "+") (number_literal "0x4474")) () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n          ppbVar6 = (byte **)0x400;\n        }\n        else {\n          ppbVar6 = (byte **)0x200;\n        }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          ppbVar6 = (byte **)0x400;\n        }" ({ "{") (expression_statement "ppbVar6 = (byte **)0x400;" (assignment_expression "ppbVar6 = (byte **)0x400" (identifier "ppbVar6") (= "=") (cast_expression "(byte **)0x400" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x400"))) (; ";")) (} "}")) (else_clause "else {\n          ppbVar6 = (byte **)0x200;\n        }" (else "else") (compound_statement "{\n          ppbVar6 = (byte **)0x200;\n        }" ({ "{") (expression_statement "ppbVar6 = (byte **)0x200;" (assignment_expression "ppbVar6 = (byte **)0x200" (identifier "ppbVar6") (= "=") (cast_expression "(byte **)0x200" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x200"))) (; ";")) (} "}")))) (expression_statement "piVar4 = (int *)&DAT_00000004;" (assignment_expression "piVar4 = (int *)&DAT_00000004" (identifier "piVar4") (= "=") (cast_expression "(int *)&DAT_00000004" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_00000004" (& "&") (identifier "DAT_00000004")))) (; ";")) (expression_statement "param_3[1] = (int)ppbVar6;" (assignment_expression "param_3[1] = (int)ppbVar6" (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(int)ppbVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar6"))) (; ";")) (expression_statement "*param_3 = 0;" (assignment_expression "*param_3 = 0" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      ppbVar6 = (byte **)0x1;\n      param_3[1] = 1;\n      piVar4 = (int *)0x0;\n      *param_3 = 0;\n      *param_2 = uVar8 | *(uint *)(puVar2 + iVar3 * 4 + 0x4970);\n    }" (else "else") (compound_statement "{\n      ppbVar6 = (byte **)0x1;\n      param_3[1] = 1;\n      piVar4 = (int *)0x0;\n      *param_3 = 0;\n      *param_2 = uVar8 | *(uint *)(puVar2 + iVar3 * 4 + 0x4970);\n    }" ({ "{") (expression_statement "ppbVar6 = (byte **)0x1;" (assignment_expression "ppbVar6 = (byte **)0x1" (identifier "ppbVar6") (= "=") (cast_expression "(byte **)0x1" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "param_3[1] = 1;" (assignment_expression "param_3[1] = 1" (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "piVar4 = (int *)0x0;" (assignment_expression "piVar4 = (int *)0x0" (identifier "piVar4") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*param_3 = 0;" (assignment_expression "*param_3 = 0" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*param_2 = uVar8 | *(uint *)(puVar2 + iVar3 * 4 + 0x4970);" (assignment_expression "*param_2 = uVar8 | *(uint *)(puVar2 + iVar3 * 4 + 0x4970)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (binary_expression "uVar8 | *(uint *)(puVar2 + iVar3 * 4 + 0x4970)" (identifier "uVar8") (| "|") (pointer_expression "*(uint *)(puVar2 + iVar3 * 4 + 0x4970)" (* "*") (cast_expression "(uint *)(puVar2 + iVar3 * 4 + 0x4970)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + iVar3 * 4 + 0x4970)" (( "(") (binary_expression "puVar2 + iVar3 * 4 + 0x4970" (binary_expression "puVar2 + iVar3 * 4" (identifier "puVar2") (+ "+") (binary_expression "iVar3 * 4" (identifier "iVar3") (* "*") (number_literal "4"))) (+ "+") (number_literal "0x4970")) () ")")))))) (; ";")) (} "}")))) (} "}")))) (if_statement "if (local_24 != *(int *)puVar10) {\n    iVar3 = local_24;\n    puVar10 = PTR___stack_chk_fail_0003656c;\n    (*(code *)PTR___stack_chk_fail_0003656c)();\n    uVar11 = CONCAT44(iVar3,ppbVar6);\n    puVar10 = puVar10 + 0x246e0;\n    piVar4 = piVar7 + 5;\n    *(undefined1 *)(piVar7 + 5) = 0;\n    do {\n      do {\n        iVar3 = (int)((ulonglong)uVar11 >> 0x20);\n        uVar8 = (uint)uVar11;\n        FUN_00022d50(iVar3,uVar8,0,10,puVar10);\n        piVar4 = (int *)((int)piVar4 + -1);\n        *(char *)piVar4 = extraout_v1 + '0';\n        uVar11 = FUN_000228e0(iVar3,uVar8,0,10);\n      } while (iVar3 != 0);\n    } while (9 < uVar8);\n    return piVar4;\n  }" (if "if") (parenthesized_expression "(local_24 != *(int *)puVar10)" (( "(") (binary_expression "local_24 != *(int *)puVar10" (identifier "local_24") (!= "!=") (pointer_expression "*(int *)puVar10" (* "*") (cast_expression "(int *)puVar10" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar10")))) () ")")) (compound_statement "{\n    iVar3 = local_24;\n    puVar10 = PTR___stack_chk_fail_0003656c;\n    (*(code *)PTR___stack_chk_fail_0003656c)();\n    uVar11 = CONCAT44(iVar3,ppbVar6);\n    puVar10 = puVar10 + 0x246e0;\n    piVar4 = piVar7 + 5;\n    *(undefined1 *)(piVar7 + 5) = 0;\n    do {\n      do {\n        iVar3 = (int)((ulonglong)uVar11 >> 0x20);\n        uVar8 = (uint)uVar11;\n        FUN_00022d50(iVar3,uVar8,0,10,puVar10);\n        piVar4 = (int *)((int)piVar4 + -1);\n        *(char *)piVar4 = extraout_v1 + '0';\n        uVar11 = FUN_000228e0(iVar3,uVar8,0,10);\n      } while (iVar3 != 0);\n    } while (9 < uVar8);\n    return piVar4;\n  }" ({ "{") (expression_statement "iVar3 = local_24;" (assignment_expression "iVar3 = local_24" (identifier "iVar3") (= "=") (identifier "local_24")) (; ";")) (expression_statement "puVar10 = PTR___stack_chk_fail_0003656c;" (assignment_expression "puVar10 = PTR___stack_chk_fail_0003656c" (identifier "puVar10") (= "=") (identifier "PTR___stack_chk_fail_0003656c")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_0003656c)();" (call_expression "(*(code *)PTR___stack_chk_fail_0003656c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0003656c)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_0003656c" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_0003656c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_0003656c"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar11 = CONCAT44(iVar3,ppbVar6);" (assignment_expression "uVar11 = CONCAT44(iVar3,ppbVar6)" (identifier "uVar11") (= "=") (call_expression "CONCAT44(iVar3,ppbVar6)" (identifier "CONCAT44") (argument_list "(iVar3,ppbVar6)" (( "(") (identifier "iVar3") (, ",") (identifier "ppbVar6") () ")")))) (; ";")) (expression_statement "puVar10 = puVar10 + 0x246e0;" (assignment_expression "puVar10 = puVar10 + 0x246e0" (identifier "puVar10") (= "=") (binary_expression "puVar10 + 0x246e0" (identifier "puVar10") (+ "+") (number_literal "0x246e0"))) (; ";")) (expression_statement "piVar4 = piVar7 + 5;" (assignment_expression "piVar4 = piVar7 + 5" (identifier "piVar4") (= "=") (binary_expression "piVar7 + 5" (identifier "piVar7") (+ "+") (number_literal "5"))) (; ";")) (expression_statement "*(undefined1 *)(piVar7 + 5) = 0;" (assignment_expression "*(undefined1 *)(piVar7 + 5) = 0" (pointer_expression "*(undefined1 *)(piVar7 + 5)" (* "*") (cast_expression "(undefined1 *)(piVar7 + 5)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar7 + 5)" (( "(") (binary_expression "piVar7 + 5" (identifier "piVar7") (+ "+") (number_literal "5")) () ")")))) (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      do {\n        iVar3 = (int)((ulonglong)uVar11 >> 0x20);\n        uVar8 = (uint)uVar11;\n        FUN_00022d50(iVar3,uVar8,0,10,puVar10);\n        piVar4 = (int *)((int)piVar4 + -1);\n        *(char *)piVar4 = extraout_v1 + '0';\n        uVar11 = FUN_000228e0(iVar3,uVar8,0,10);\n      } while (iVar3 != 0);\n    } while (9 < uVar8);" (do "do") (compound_statement "{\n      do {\n        iVar3 = (int)((ulonglong)uVar11 >> 0x20);\n        uVar8 = (uint)uVar11;\n        FUN_00022d50(iVar3,uVar8,0,10,puVar10);\n        piVar4 = (int *)((int)piVar4 + -1);\n        *(char *)piVar4 = extraout_v1 + '0';\n        uVar11 = FUN_000228e0(iVar3,uVar8,0,10);\n      } while (iVar3 != 0);\n    }" ({ "{") (do_statement "do {\n        iVar3 = (int)((ulonglong)uVar11 >> 0x20);\n        uVar8 = (uint)uVar11;\n        FUN_00022d50(iVar3,uVar8,0,10,puVar10);\n        piVar4 = (int *)((int)piVar4 + -1);\n        *(char *)piVar4 = extraout_v1 + '0';\n        uVar11 = FUN_000228e0(iVar3,uVar8,0,10);\n      } while (iVar3 != 0);" (do "do") (compound_statement "{\n        iVar3 = (int)((ulonglong)uVar11 >> 0x20);\n        uVar8 = (uint)uVar11;\n        FUN_00022d50(iVar3,uVar8,0,10,puVar10);\n        piVar4 = (int *)((int)piVar4 + -1);\n        *(char *)piVar4 = extraout_v1 + '0';\n        uVar11 = FUN_000228e0(iVar3,uVar8,0,10);\n      }" ({ "{") (expression_statement "iVar3 = (int)((ulonglong)uVar11 >> 0x20);" (assignment_expression "iVar3 = (int)((ulonglong)uVar11 >> 0x20)" (identifier "iVar3") (= "=") (cast_expression "(int)((ulonglong)uVar11 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar11 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar11 >> 0x20" (cast_expression "(ulonglong)uVar11" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar11")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uVar8 = (uint)uVar11;" (assignment_expression "uVar8 = (uint)uVar11" (identifier "uVar8") (= "=") (cast_expression "(uint)uVar11" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar11"))) (; ";")) (expression_statement "FUN_00022d50(iVar3,uVar8,0,10,puVar10);" (call_expression "FUN_00022d50(iVar3,uVar8,0,10,puVar10)" (identifier "FUN_00022d50") (argument_list "(iVar3,uVar8,0,10,puVar10)" (( "(") (identifier "iVar3") (, ",") (identifier "uVar8") (, ",") (number_literal "0") (, ",") (number_literal "10") (, ",") (identifier "puVar10") () ")"))) (; ";")) (expression_statement "piVar4 = (int *)((int)piVar4 + -1);" (assignment_expression "piVar4 = (int *)((int)piVar4 + -1)" (identifier "piVar4") (= "=") (cast_expression "(int *)((int)piVar4 + -1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar4 + -1)" (( "(") (binary_expression "(int)piVar4 + -1" (cast_expression "(int)piVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar4")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "*(char *)piVar4 = extraout_v1 + '0';" (assignment_expression "*(char *)piVar4 = extraout_v1 + '0'" (pointer_expression "*(char *)piVar4" (* "*") (cast_expression "(char *)piVar4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "piVar4"))) (= "=") (binary_expression "extraout_v1 + '0'" (identifier "extraout_v1") (+ "+") (char_literal "'0'" (' "'") (character "0") (' "'")))) (; ";")) (expression_statement "uVar11 = FUN_000228e0(iVar3,uVar8,0,10);" (assignment_expression "uVar11 = FUN_000228e0(iVar3,uVar8,0,10)" (identifier "uVar11") (= "=") (call_expression "FUN_000228e0(iVar3,uVar8,0,10)" (identifier "FUN_000228e0") (argument_list "(iVar3,uVar8,0,10)" (( "(") (identifier "iVar3") (, ",") (identifier "uVar8") (, ",") (number_literal "0") (, ",") (number_literal "10") () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(9 < uVar8)" (( "(") (binary_expression "9 < uVar8" (number_literal "9") (< "<") (identifier "uVar8")) () ")")) (; ";")) (return_statement "return piVar4;" (return "return") (identifier "piVar4") (; ";")) (} "}"))) (return_statement "return piVar4;" (return "return") (identifier "piVar4") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (pointer_declarator declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier)))))) body: (compound_statement (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: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator 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: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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)))))) (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: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (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: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier) (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: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal) (identifier) (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) alternative: (else_clause (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (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: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) consequence: (compound_statement (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: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (do_statement body: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal) (number_literal) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (binary_expression left: (identifier) right: (char_literal (character))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal) (number_literal)))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier)))) (return_statement (identifier)))) (return_statement (identifier)))))

int * MASKED(byte *param_1,uint *param_2,int *param_3)

{
  byte bVar1;
  undefined *puVar2;
  int iVar3;
  int *piVar4;
  char extraout_v1;
  int iVar5;
  byte **ppbVar6;
  int *piVar7;
  uint uVar8;
  uint uVar9;
  undefined *puVar10;
  undefined8 uVar11;
  byte *local_28;
  int local_24;
  
  puVar10 = PTR___stack_chk_guard_0003658c;
  local_24 = *(int *)PTR___stack_chk_guard_0003658c;
  if (((param_1 == (byte *)0x0) &&
      (piVar7 = param_3, param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4938)
      , param_1 == (byte *)0x0)) &&
     (param_1 = (byte *)(*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4944),
     param_1 == (byte *)0x0)) {
    iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);
    if (iVar3 == 0) {
      ppbVar6 = (byte **)0x400;
      param_3[1] = 0x400;
      *param_3 = 0;
      *param_2 = 0;
      piVar4 = (int *)0x0;
    }
    else {
      ppbVar6 = (byte **)0x200;
      param_3[1] = 0x200;
      piVar4 = (int *)0x0;
      *param_3 = 0;
      *param_2 = 0;
    }
  }
  else {
    puVar2 = PTR_LAB_00036278;
    if (*param_1 == 0x27) {
      param_1 = param_1 + 1;
      uVar8 = 4;
    }
    else {
      uVar8 = 0;
    }
    piVar7 = (int *)(PTR_LAB_00036278 + 0x4970);
    iVar3 = argmatch(param_1,PTR_DAT_00036268 + 0x5fc8,piVar7,4);
    if (iVar3 < 0) {
      piVar7 = (int *)0x0;
      ppbVar6 = &local_28;
      piVar4 = (int *)xstrtoumax(param_1,ppbVar6,0,param_3,PTR_LAB_00036278 + 0x4950);
      if (piVar4 == (int *)0x0) {
        uVar9 = uVar8;
        if (9 < *param_1 - 0x30) {
          if (param_1 == local_28) {
            bVar1 = local_28[-1];
          }
          else {
            do {
              param_1 = param_1 + 1;
              if (*param_1 - 0x30 < 10) goto LAB_00019a3c;
            } while (param_1 != local_28);
            bVar1 = local_28[-1];
          }
          ppbVar6 = (byte **)(int)(char)bVar1;
          if (ppbVar6 == (byte **)0x42) {
            uVar9 = uVar8 | 0x180;
            if (local_28[-2] == 0x69) {
              uVar9 = uVar8 | 0x1a0;
            }
          }
          else {
            uVar9 = uVar8 | 0xa0;
          }
        }
LAB_00019a3c:
        iVar3 = *param_3;
        iVar5 = param_3[1];
        *param_2 = uVar9;
      }
      else {
        iVar3 = *param_3;
        iVar5 = param_3[1];
        *param_2 = 0;
      }
      if (iVar3 == 0 && iVar5 == 0) {
        iVar3 = (*(code *)PTR_getenv_00036524)(PTR_LAB_00036278 + 0x4474);
        if (iVar3 == 0) {
          ppbVar6 = (byte **)0x400;
        }
        else {
          ppbVar6 = (byte **)0x200;
        }
        piVar4 = (int *)&DAT_00000004;
        param_3[1] = (int)ppbVar6;
        *param_3 = 0;
      }
    }
    else {
      ppbVar6 = (byte **)0x1;
      param_3[1] = 1;
      piVar4 = (int *)0x0;
      *param_3 = 0;
      *param_2 = uVar8 | *(uint *)(puVar2 + iVar3 * 4 + 0x4970);
    }
  }
  if (local_24 != *(int *)puVar10) {
    iVar3 = local_24;
    puVar10 = PTR___stack_chk_fail_0003656c;
    (*(code *)PTR___stack_chk_fail_0003656c)();
    uVar11 = CONCAT44(iVar3,ppbVar6);
    puVar10 = puVar10 + 0x246e0;
    piVar4 = piVar7 + 5;
    *(undefined1 *)(piVar7 + 5) = 0;
    do {
      do {
        iVar3 = (int)((ulonglong)uVar11 >> 0x20);
        uVar8 = (uint)uVar11;
        FUN_00022d50(iVar3,uVar8,0,10,puVar10);
        piVar4 = (int *)((int)piVar4 + -1);
        *(char *)piVar4 = extraout_v1 + '0';
        uVar11 = FUN_000228e0(iVar3,uVar8,0,10);
      } while (iVar3 != 0);
    } while (9 < uVar8);
    return piVar4;
  }
  return piVar4;
}

