
size_t __strftime_internal(char *s,size_t maxsize,char *format,tm *tp,_Bool upcase,
                          _Bool *tzset_called,timezone_t tz,int ns)

{
  char cVar1;
  undefined *puVar2;
  char *s_00;
  char cVar9;
  uint uVar3;
  char *pcVar4;
  size_t sVar5;
  int iVar6;
  int iVar7;
  int iVar8;
  code *pcVar10;
  uint uVar11;
  tm *ptVar12;
  char *pcVar13;
  tm *ptVar14;
  tm *ptVar15;
  char *pcVar16;
  int *piVar17;
  char *pcVar18;
  int iVar19;
  undefined *puVar20;
  _Bool _Stack_4dd;
  int iStack_4dc;
  char *pcStack_4d8;
  code *pcStack_4d4;
  timezone_t local_4c0;
  int local_4bc;
  tm ltm;
  char ufmt [5];
  char buf [14];
  
  puVar2 = PTR___stack_chk_guard_000495fc;
  puVar20 = PTR_LAB_00049218;
  s_00 = *(char **)PTR___stack_chk_guard_000495fc;
  cVar9 = *format;
  pcVar18 = (char *)0x0;
  pcVar13 = (char *)maxsize;
  pcVar16 = format;
  if (cVar9 == '\0') {
LAB_00023fcc:
    if ((s != (char *)0x0) && (maxsize != 0)) {
      *s = '\0';
    }
LAB_00023ffc:
    if (s_00 == *(char **)puVar2) {
      return (size_t)pcVar18;
    }
    pcVar10 = nstrftime;
    puVar20 = PTR___stack_chk_fail_000495d0;
    (*(code *)PTR___stack_chk_fail_000495d0)();
    piVar17 = *(int **)(puVar20 + 0x23cfc);
    _Stack_4dd = false;
    iStack_4dc = *piVar17;
    pcStack_4d8 = pcVar16;
    pcStack_4d4 = pcVar10;
    sVar5 = __strftime_internal(s_00,(size_t)pcVar13,format,tp,false,&_Stack_4dd,local_4c0,local_4bc
                               );
    if (iStack_4dc != *piVar17) {
      pcVar10 = *(code **)(puVar20 + 0x23cd0);
      iVar8 = iStack_4dc;
      (*pcVar10)();
      if (iVar8 == 0) {
        iVar8 = 1;
        piVar17 = (int *)(*(int *)(pcVar10 + 0x23898) + 0x6990);
        (**(code **)(pcVar10 + 0x23c24))(piVar17,1,0x37,**(undefined4 **)(pcVar10 + 0x23ca4));
        pcVar10 = *(code **)(pcVar10 + 0x23b08);
        (*pcVar10)();
        *piVar17 = 0;
        piVar17[1] = 0;
        piVar17[2] = 0;
        piVar17[3] = 0;
        piVar17[4] = 0;
        piVar17[5] = 0;
        piVar17[6] = 0;
        piVar17[7] = 0;
        piVar17[8] = 0;
        piVar17[9] = 0;
        piVar17[10] = 0;
        piVar17[0xb] = 0;
        if (iVar8 == 10) {
          sVar5 = (**(code **)(pcVar10 + 0x239d8))();
          return sVar5;
        }
        *piVar17 = iVar8;
        return (size_t)piVar17;
      }
      iVar6 = (**(code **)(pcVar10 + 0x23b58))();
      if (((iVar6 != 0) && (iVar19 = iVar6 + 1, 6 < iVar19 - iVar8)) &&
         (iVar7 = (**(code **)(pcVar10 + 0x23b10))
                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7), iVar7 == 0)) {
        iVar8 = (**(code **)(pcVar10 + 0x23b10))(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3);
        if (iVar8 != 0) {
          **(int **)(pcVar10 + 0x23934) = iVar19;
          piVar17 = *(int **)(pcVar10 + 0x23b68);
          *piVar17 = iVar19;
          return (size_t)piVar17;
        }
        iVar8 = iVar6 + 4;
        **(int **)(pcVar10 + 0x23b24) = iVar8;
      }
      **(int **)(pcVar10 + 0x23934) = iVar8;
      piVar17 = *(int **)(pcVar10 + 0x23b68);
      *piVar17 = iVar8;
      return (size_t)piVar17;
    }
    return sVar5;
  }
  pcVar10 = (code *)(PTR_LAB_00049280 + 0x3e34);
LAB_00023f94:
  if (cVar9 == '%') {
    iVar8 = 0;
    cVar9 = upcase;
LAB_0002406c:
    do {
      pcVar16 = pcVar16 + 1;
      cVar1 = *pcVar16;
      while (uVar11 = (uint)cVar1, uVar11 != 0x30) {
        if (0x30 < (int)uVar11) {
          if (uVar11 == 0x5e) {
            cVar9 = '\x01';
            goto LAB_0002406c;
          }
          if (uVar11 == 0x5f) {
            iVar8 = 0x5f;
            goto LAB_0002406c;
          }
LAB_000240c4:
          ptVar14 = (tm *)0xffffffff;
          if (9 < uVar11 - 0x30) goto LAB_000240d4;
          ptVar14 = (tm *)0x0;
          pcVar13 = pcVar16;
          goto LAB_00024154;
        }
        if (uVar11 != 0x23) {
          if (uVar11 != 0x2d) goto LAB_000240c4;
          iVar8 = 0x2d;
          goto LAB_0002406c;
        }
        pcVar16 = pcVar16 + 1;
        cVar1 = *pcVar16;
      }
      iVar8 = 0x30;
    } while( true );
  }
  if (maxsize - (int)pcVar18 < 2) goto LAB_00023ff8;
  if (s != (char *)0x0) {
    *s = cVar9;
    s = s + 1;
  }
  pcVar18 = pcVar18 + 1;
  goto LAB_00023fc0;
LAB_00024154:
  do {
    uVar11 = (uint)pcVar13[1];
    pcVar16 = pcVar13 + 1;
    uVar3 = uVar11 - 0x30;
    if (((int)ptVar14 < 0xccccccd) && ((ptVar14 != (tm *)0xccccccc || (*pcVar13 < 0x38)))) {
      ptVar14 = (tm *)(*pcVar13 + -0x30 + (int)ptVar14 * 10);
    }
    else {
      if (9 < uVar3) {
        ptVar14 = (tm *)0x7fffffff;
        break;
      }
      uVar11 = (uint)pcVar13[2];
      ptVar14 = (tm *)0x7fffffff;
      pcVar16 = pcVar13 + 2;
      uVar3 = uVar11 - 0x30;
    }
    pcVar13 = pcVar16;
  } while (uVar3 < 10);
LAB_000240d4:
  if ((uVar11 == 0x45) || (uVar11 == 0x4f)) {
    uVar11 = (uint)pcVar16[1];
    pcVar16 = pcVar16 + 1;
  }
  if ((uVar11 & 0xff) < 0x7b) {
                    /* WARNING: Could not emulate address calculation at 0x000240fc */
                    /* WARNING: Treating indirect jump as call */
    sVar5 = (*(code *)(&_gp + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)))();
    return sVar5;
  }
  pcVar13 = &DAT_00000025;
  pcVar4 = pcVar16;
  do {
    pcVar4 = pcVar4 + -1;
    ptVar15 = (tm *)(pcVar16 + (1 - (int)pcVar4));
  } while (*pcVar4 != '%');
  ptVar12 = ptVar14;
  if ((int)ptVar14 < 0) {
    ptVar12 = (tm *)0x0;
  }
  format = (char *)(maxsize - (int)pcVar18);
  tp = ptVar15;
  if (ptVar15 <= ptVar12) {
    tp = ptVar12;
  }
  if (format <= tp) {
LAB_00023ff8:
    pcVar18 = (char *)0x0;
    goto LAB_00023ffc;
  }
  if (s == (char *)0x0) {
    pcVar18 = (char *)((int)&tp->tm_sec + (int)pcVar18);
  }
  else {
    pcVar13 = s;
    if (ptVar15 < ptVar12) {
      pcVar13 = s + ((int)ptVar14 - (int)ptVar15);
      if (iVar8 == 0x30) {
        (*(code *)PTR_memset_00049524)(s,0x30);
      }
      else {
        (*(code *)PTR_memset_00049524)(s,0x20);
      }
    }
    format = (char *)ptVar15;
    if (cVar9 == '\0') {
      (*(code *)PTR_memcpy_00049600)(pcVar13);
    }
    else {
      (*pcVar10)(pcVar13);
    }
    s = pcVar13 + (int)ptVar15;
    pcVar18 = (char *)((int)&tp->tm_sec + (int)pcVar18);
    pcVar13 = pcVar4;
  }
LAB_00023fc0:
  cVar9 = pcVar16[1];
  pcVar16 = pcVar16 + 1;
  if (cVar9 == '\0') goto LAB_00023fcc;
  goto LAB_00023f94;
}



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

{
  char cVar1;
  undefined *puVar2;
  int iVar3;
  char cVar9;
  uint uVar4;
  char *pcVar5;
  int iVar6;
  int iVar7;
  byte *pbVar8;
  code *pcVar10;
  uint uVar11;
  char *pcVar12;
  char *pcVar13;
  char *pcVar14;
  char *pcVar15;
  char *pcVar16;
  int *piVar17;
  int *piVar18;
  int iVar19;
  undefined *puVar20;
  
  puVar2 = PTR___stack_chk_guard_000495fc;
  puVar20 = PTR_LAB_00049218;
  iVar3 = *(int *)PTR___stack_chk_guard_000495fc;
  cVar9 = *param_3;
  piVar18 = (int *)0x0;
  if (cVar9 == '\0') {
LAB_00023fcc:
    if ((param_1 != (char *)0x0) && (param_2 != 0)) {
      *param_1 = '\0';
    }
LAB_00023ffc:
    if (iVar3 == *(int *)puVar2) {
      return piVar18;
    }
    puVar20 = PTR___stack_chk_fail_000495d0;
    (*(code *)PTR___stack_chk_fail_000495d0)();
    piVar17 = *(int **)(puVar20 + 0x23cfc);
    iVar3 = *piVar17;
    piVar18 = (int *)FUN_00023eb8();
    if (iVar3 == *piVar17) {
      return piVar18;
    }
    pcVar10 = *(code **)(puVar20 + 0x23cd0);
    (*pcVar10)();
    if (iVar3 != 0) {
      iVar6 = (**(code **)(pcVar10 + 0x23b58))();
      if (((iVar6 != 0) && (iVar19 = iVar6 + 1, 6 < iVar19 - iVar3)) &&
         (iVar7 = (**(code **)(pcVar10 + 0x23b10))
                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7), iVar7 == 0)) {
        iVar3 = (**(code **)(pcVar10 + 0x23b10))(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3);
        if (iVar3 != 0) {
          **(int **)(pcVar10 + 0x23934) = iVar19;
          piVar18 = *(int **)(pcVar10 + 0x23b68);
          *piVar18 = iVar19;
          return piVar18;
        }
        iVar3 = iVar6 + 4;
        **(int **)(pcVar10 + 0x23b24) = iVar3;
      }
      **(int **)(pcVar10 + 0x23934) = iVar3;
      piVar18 = *(int **)(pcVar10 + 0x23b68);
      *piVar18 = iVar3;
      return piVar18;
    }
    iVar3 = 1;
    piVar18 = (int *)(*(int *)(pcVar10 + 0x23898) + 0x6990);
    (**(code **)(pcVar10 + 0x23c24))(piVar18,1,0x37,**(undefined4 **)(pcVar10 + 0x23ca4));
    pcVar10 = *(code **)(pcVar10 + 0x23b08);
    (*pcVar10)();
    *piVar18 = 0;
    piVar18[1] = 0;
    piVar18[2] = 0;
    piVar18[3] = 0;
    piVar18[4] = 0;
    piVar18[5] = 0;
    piVar18[6] = 0;
    piVar18[7] = 0;
    piVar18[8] = 0;
    piVar18[9] = 0;
    piVar18[10] = 0;
    piVar18[0xb] = 0;
    if (iVar3 == 10) {
      pcVar10 = *(code **)(pcVar10 + 0x239d8);
      (*pcVar10)();
      piVar17 = (int *)(**(code **)(pcVar10 + 0x23abc))(0,piVar18,5);
      if (piVar18 == piVar17) {
        pbVar8 = (byte *)locale_charset();
        if ((*pbVar8 & 0xdf) == 0x55) {
          if (((((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46)) && (pbVar8[3] == 0x2d)
              ) && ((pbVar8[4] == 0x38 && (pbVar8[5] == 0)))) {
            if (*(char *)piVar17 != '`') {
              return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d8);
            }
            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e4);
          }
        }
        else if ((((((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&
                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))) &&
                 (pbVar8[5] == 0x33)) && ((pbVar8[6] == 0x30 && (pbVar8[7] == 0)))) {
          if (*(char *)piVar17 != '`') {
            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69dc);
          }
          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e0);
        }
        if (iVar3 != 9) {
          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e8);
        }
        piVar17 = (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d4);
      }
      return piVar17;
    }
    *piVar18 = iVar3;
    return piVar18;
  }
  pcVar10 = (code *)(PTR_LAB_00049280 + 0x3e34);
LAB_00023f94:
  if (cVar9 == '%') {
    iVar6 = 0;
    cVar9 = param_5;
LAB_0002406c:
    do {
      param_3 = param_3 + 1;
      cVar1 = *param_3;
      while (uVar11 = (uint)cVar1, uVar11 != 0x30) {
        if (0x30 < (int)uVar11) {
          if (uVar11 == 0x5e) {
            cVar9 = '\x01';
            goto LAB_0002406c;
          }
          if (uVar11 == 0x5f) {
            iVar6 = 0x5f;
            goto LAB_0002406c;
          }
LAB_000240c4:
          pcVar14 = (char *)0xffffffff;
          if (9 < uVar11 - 0x30) goto LAB_000240d4;
          pcVar14 = (char *)0x0;
          pcVar5 = param_3;
          goto LAB_00024154;
        }
        if (uVar11 != 0x23) {
          if (uVar11 != 0x2d) goto LAB_000240c4;
          iVar6 = 0x2d;
          goto LAB_0002406c;
        }
        param_3 = param_3 + 1;
        cVar1 = *param_3;
      }
      iVar6 = 0x30;
    } while( true );
  }
  if ((uint)(param_2 - (int)piVar18) < 2) goto LAB_00023ff8;
  if (param_1 != (char *)0x0) {
    *param_1 = cVar9;
    param_1 = param_1 + 1;
  }
  piVar18 = (int *)((int)piVar18 + 1);
  goto LAB_00023fc0;
LAB_00024154:
  do {
    uVar11 = (uint)pcVar5[1];
    param_3 = pcVar5 + 1;
    uVar4 = uVar11 - 0x30;
    if (((int)pcVar14 < 0xccccccd) && ((pcVar14 != (char *)0xccccccc || (*pcVar5 < 0x38)))) {
      pcVar14 = (char *)(*pcVar5 + -0x30 + (int)pcVar14 * 10);
    }
    else {
      if (9 < uVar4) {
        pcVar14 = (char *)0x7fffffff;
        break;
      }
      uVar11 = (uint)pcVar5[2];
      pcVar14 = (char *)0x7fffffff;
      param_3 = pcVar5 + 2;
      uVar4 = uVar11 - 0x30;
    }
    pcVar5 = param_3;
  } while (uVar4 < 10);
LAB_000240d4:
  if ((uVar11 == 0x45) || (uVar11 == 0x4f)) {
    uVar11 = (uint)param_3[1];
    param_3 = param_3 + 1;
  }
  pcVar5 = param_3;
  if ((uVar11 & 0xff) < 0x7b) {
                    /* WARNING: Could not emulate address calculation at 0x000240fc */
                    /* WARNING: Treating indirect jump as call */
    piVar18 = (int *)(*(code *)(&_gp_1 + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)))();
    return piVar18;
  }
  do {
    pcVar5 = pcVar5 + -1;
    pcVar16 = param_3 + (1 - (int)pcVar5);
  } while (*pcVar5 != '%');
  pcVar12 = pcVar14;
  if ((int)pcVar14 < 0) {
    pcVar12 = (char *)0x0;
  }
  pcVar13 = pcVar16;
  if (pcVar16 <= pcVar12) {
    pcVar13 = pcVar12;
  }
  if ((char *)(param_2 - (int)piVar18) <= pcVar13) {
LAB_00023ff8:
    piVar18 = (int *)0x0;
    goto LAB_00023ffc;
  }
  if (param_1 == (char *)0x0) {
    piVar18 = (int *)((int)piVar18 + (int)pcVar13);
  }
  else {
    pcVar15 = param_1;
    if (pcVar16 < pcVar12) {
      pcVar15 = param_1 + ((int)pcVar14 - (int)pcVar16);
      if (iVar6 == 0x30) {
        (*(code *)PTR_memset_00049524)(param_1,0x30);
      }
      else {
        (*(code *)PTR_memset_00049524)(param_1,0x20);
      }
    }
    if (cVar9 == '\0') {
      (*(code *)PTR_memcpy_00049600)(pcVar15,pcVar5,pcVar16);
    }
    else {
      (*pcVar10)(pcVar15,pcVar5,pcVar16);
    }
    param_1 = pcVar15 + (int)pcVar16;
    piVar18 = (int *)((int)piVar18 + (int)pcVar13);
  }
LAB_00023fc0:
  cVar9 = param_3[1];
  param_3 = param_3 + 1;
  if (cVar9 == '\0') goto LAB_00023fcc;
  goto LAB_00023f94;
}


lui gp,0x3
addiu gp,gp,-0x2cd8
addu gp,gp,t9
addiu sp,sp,-0x4d0
lw t0,0x28(a3)
lw v0,0x4e4(sp)
lw v1,0x4e8(sp)
sw s7,0x4c4(sp)
sw v0,0x38(sp)
lw s7,-0x7be4(gp)
lbu t3,0x4e3(sp)
sw gp,0x20(sp)
sw s6,0x4c0(sp)
or s6,a3,zero
sw s5,0x4bc(sp)
or s5,a1,zero
sw s4,0x4b8(sp)
sw s3,0x4b4(sp)
or s3,a0,zero
sw s0,0x4a8(sp)
or s0,a2,zero
sw ra,0x4cc(sp)
sw s8,0x4c8(sp)
sw s2,0x4b0(sp)
sw s1,0x4ac(sp)
sw v1,0x30(sp)
lw v0,0x0(s7)
lw s4,0x8(a3)
sw v0,0x4a4(sp)
beq t0,zero,0x00024128
_nop
slti v0,s4,0xd
bne v0,zero,0x0002403c
_nop
addiu s4,s4,-0xc
lb v0,0x0(s0)
beq v0,zero,0x00023fcc
_or s1,zero,zero
lw v1,-0x7f60(gp)
or s8,t0,zero
sw s4,0x40(sp)
or s4,s6,zero
or s6,t3,zero
sw v1,0x3c(sp)
lw v1,-0x7f60(gp)
addiu v1,v1,0x3e34
sw v1,0x34(sp)
lw v1,-0x7fc8(gp)
sw v1,0x48(sp)
lw v1,-0x7fc8(gp)
addiu v1,v1,0x67a0
sw v1,0x2c(sp)
lw v1,-0x7fc8(gp)
addiu v1,v1,0x6790
sw v1,0x44(sp)
li v1,0x25
beq v0,v1,0x0002404c
_subu v1,s5,s1
sltiu v1,v1,0x2
bne v1,zero,0x00023ff8
_nop
beq s3,zero,0x00023fbc
_nop
sb v0,0x0(s3)
addiu s3,s3,0x1
addiu s1,s1,0x1
lb v0,0x1(s0)
bne v0,zero,0x00023f94
_addiu s0,s0,0x1
beq s3,zero,0x00023ffc
_nop
beq s5,zero,0x00023ffc
_nop
b 0x00023ffc
_sb zero,0x0(s3)
beq v1,a0,0x000253b8
_or t5,zero,zero
sltu v0,t7,v0
bne v0,zero,0x00024ab0
_nop
or s1,zero,zero
lw a0,0x4a4(sp)
or v0,s1,zero
lw v1,0x0(s7)
bne a0,v1,0x000258f4
_lw ra,0x4cc(sp)
lw s8,0x4c8(sp)
lw s7,0x4c4(sp)
lw s6,0x4c0(sp)
lw s5,0x4bc(sp)
lw s4,0x4b8(sp)
lw s3,0x4b4(sp)
lw s2,0x4b0(sp)
lw s1,0x4ac(sp)
lw s0,0x4a8(sp)
jr ra
_addiu sp,sp,0x4d0
bne s4,zero,0x00023f44
_nop
b 0x00023f44
_li s4,0xc
or a3,zero,zero
or v1,zero,zero
li t5,0x30
li t4,0x5e
li t2,0x5f
li a2,0x23
li a1,0x2d
or t1,s6,zero
addiu s0,s0,0x1
lb a0,0x0(s0)
beq a0,t5,0x000240a4
_or s2,a0,zero
slti v0,a0,0x31
beq v0,zero,0x000240ac
_nop
bne a0,a2,0x000240bc
_nop
addiu s0,s0,0x1
lb a0,0x0(s0)
li a3,0x1
bne a0,t5,0x0002407c
_or s2,a0,zero
b 0x0002406c
_li v1,0x30
bne a0,t4,0x00024110
_nop
b 0x0002406c
_li t1,0x1
beq a0,a1,0x00024120
_addiu v0,a0,-0x30
sltiu v0,v0,0xa
bne v0,zero,0x00024140
_li t2,-0x1
li v0,0x45
beq a0,v0,0x00024134
_li v0,0x4f
beq a0,v0,0x00024134
_nop
or s2,zero,zero
andi v0,a0,0xff
sltiu a1,v0,0x7b
beq a1,zero,0x00024370
_lw a1,0x2c(sp)
sll v0,v0,0x2
addu v0,a1,v0
lw v0,0x0(v0)
addu v0,v0,gp
jr v0
_nop
bne a0,t2,0x000240c4
_addiu v0,a0,-0x30
b 0x0002406c
_li v1,0x5f
b 0x0002406c
_li v1,0x2d
lw t0,-0x7fc8(gp)
b 0x00023f34
_addiu t0,t0,0x7ea8
lb a0,0x1(s0)
b 0x000240e8
_addiu s0,s0,0x1
lui t3,0xccc
or t2,zero,zero
ori t3,t3,0xcccd
addiu t4,t3,-0x1
lui t5,0x7fff
lb a0,0x1(s0)
slt a1,t2,t3
addiu t6,s0,0x1
beq a1,zero,0x000241a8
_addiu v0,a0,-0x30
beq t2,t4,0x0002419c
_lb a2,0x0(s0)
sll a1,t2,0x2
addiu a2,a2,-0x30
addu t2,a1,t2
or s0,t6,zero
sll t2,t2,0x1
addu t2,a2,t2
sltiu v0,v0,0xa
bne v0,zero,0x00024154
_or s2,a0,zero
b 0x000240d4
_li v0,0x45
slti a1,a2,0x38
bne a1,zero,0x00024174
_sll a1,t2,0x2
sltiu v0,v0,0xa
beq v0,zero,0x000241c8
_or s2,a0,zero
lb a0,0x2(s0)
ori t2,t5,0xffff
addiu s0,s0,0x2
b 0x00024188
_addiu v0,a0,-0x30
lui t2,0x7fff
or s0,t6,zero
b 0x000240d0
_ori t2,t2,0xffff
li v0,0x4f
beq s2,v0,0x00024374
_addiu v0,s0,-0x1
sw zero,0x4c(sp)
li v0,0x2025
bne s2,zero,0x00025444
_sh v0,0x9c(sp)
addiu v0,sp,0x9e
lw t9,-0x7c94(gp)
addiu a2,sp,0x9c
sb a0,0x0(v0)
li a1,0x400
addiu a0,sp,0xa4
sw t2,0x50(sp)
sw v1,0x58(sp)
or a3,s4,zero
sw t1,0x54(sp)
jalr t9
_sb zero,0x1(v0)
beq v0,zero,0x00023fc0
_lw gp,0x20(sp)
lw t2,0x50(sp)
addiu t4,v0,-0x1
subu v0,s5,s1
slti a0,t2,0x0
or v1,t2,zero
movn v1,zero,a0
or a0,v1,zero
sltu a1,t4,v1
movz a0,t4,a1
sltu v0,a0,v0
beq v0,zero,0x00023ff8
_or a3,a0,zero
beq s3,zero,0x000242f4
_nop
bne s2,zero,0x000242b8
_lw t1,0x54(sp)
beq a1,zero,0x000242bc
_lw v0,0x4c(sp)
lw v1,0x58(sp)
subu a2,t2,t4
li v0,0x30
lw t9,-0x7cbc(gp)
addu s2,s3,a2
sw a0,0x58(sp)
sw t4,0x54(sp)
beq v1,v0,0x00025540
_sw t1,0x50(sp)
li a1,0x20
jalr t9
_or a0,s3,zero
or s3,s2,zero
lw gp,0x20(sp)
lw a3,0x58(sp)
lw t4,0x54(sp)
lw t1,0x50(sp)
lw v0,0x4c(sp)
bne v0,zero,0x000252cc
_sw a3,0x50(sp)
beq t1,zero,0x000252a4
_lw t9,-0x7be0(gp)
lw t9,0x34(sp)
addiu a1,sp,0xa5
or a2,t4,zero
sw t4,0x4c(sp)
jalr t9
_or a0,s3,zero
lw t4,0x4c(sp)
lw gp,0x20(sp)
lw a3,0x50(sp)
addu s3,s3,t4
b 0x00023fc0
_addu s1,s1,a3
bne s2,zero,0x00024370
_li v0,0x2025
movn t1,a3,a3
or s2,zero,zero
sh v0,0x9c(sp)
addiu v0,sp,0x9e
b 0x000241f8
_sw zero,0x4c(sp)
li v0,0x45
beq s2,v0,0x00024578
_or t7,zero,zero
lw a1,0x14(s4)
lui v0,0x51eb
ori v0,v0,0x851f
mult a1,v0
sra a2,a1,0x1f
mfhi v0
sra v0,v0,0x5
subu v0,v0,a2
li a2,0x64
mul a3,v0,a2
subu v0,a1,a3
bltz v0,0x00025124
_slti a1,a1,-0x76c
b 0x00024558
_li t7,0x2
li v0,0x45
bne s2,v0,0x000241e4
_movn t1,a3,a3
addiu v0,s0,-0x1
addiu a2,s0,0x1
li a1,0x25
or s2,v0,zero
subu t3,a2,v0
addiu v0,v0,-0x1
lb a0,0x1(v0)
bne a0,a1,0x0002437c
_or a0,t2,zero
slti v0,t2,0x0
movn a0,zero,v0
subu a2,s5,s1
sltu a3,a0,t3
or v0,a0,zero
or a0,t3,zero
movz a0,v0,a3
or a3,a0,zero
sltu a0,a3,a2
beq a0,zero,0x00023ff8
_nop
beq s3,zero,0x000242f4
_sltu v0,t3,v0
beq v0,zero,0x00024414
_subu a2,t2,t3
lw t9,-0x7cbc(gp)
li v0,0x30
sw a3,0x58(sp)
addu t2,s3,a2
sw t3,0x54(sp)
sw t1,0x4c(sp)
beq v1,v0,0x0002544c
_sw t2,0x50(sp)
li a1,0x20
jalr t9
_or a0,s3,zero
lw t2,0x50(sp)
lw gp,0x20(sp)
lw a3,0x58(sp)
lw t3,0x54(sp)
or s3,t2,zero
lw t1,0x4c(sp)
beq t1,zero,0x000251c0
_sw a3,0x50(sp)
lw t9,0x34(sp)
or a2,t3,zero
sw t3,0x4c(sp)
or a0,s3,zero
jalr t9
_or a1,s2,zero
lw t3,0x4c(sp)
lw gp,0x20(sp)
lw a3,0x50(sp)
addu s3,s3,t3
b 0x00023fc0
_addu s1,s1,a3
or t4,zero,zero
lw v0,0x20(s4)
bltz v0,0x00023fc0
_nop
lw a3,0x24(s4)
bltz a3,0x0002447c
_li t6,0x1
bne a3,zero,0x0002447c
_or t6,zero,zero
lb t6,0x0(s8)
xori t6,t6,0x2d
sltiu t6,t6,0x1
lui a2,0x8888
lui v0,0x91a2
ori a2,a2,0x8889
mult a3,a2
ori v0,v0,0xb3c5
sra t5,a3,0x1f
li t7,0x1
mfhi a1
mult a3,v0
mfhi v0
addu a1,a1,a3
sra a1,a1,0x5
subu a1,a1,t5
addu v0,v0,a3
mult a1,a2
sra t8,a1,0x1f
sra v0,v0,0xb
sll t9,a1,0x4
mfhi a2
subu v0,v0,t5
subu t9,t9,a1
sll t9,t9,0x2
subu a3,a3,t9
addu a2,a2,a1
sra a2,a2,0x5
subu a2,a2,t8
sll t5,a2,0x4
subu a2,t5,a2
sll a2,a2,0x2
beq t4,t7,0x000256ec
_subu a2,a1,a2
beq t4,zero,0x000257a4
_li a1,0x2
beq t4,a1,0x00025708
_li a1,0x3
beq t4,a1,0x000257c0
_nop
lb a0,0x0(s0)
or s2,s0,zero
slti v0,t2,0x0
or a3,t2,zero
movn a3,zero,v0
li a1,0x25
subu a2,s5,s1
or s0,s2,zero
bne a0,a1,0x00024370
_or v0,a3,zero
li a3,0x1
li t3,0x1
b 0x000243b4
_movn a3,v0,v0
li v0,0x45
beq s2,v0,0x00024370
_li t7,0x2
lw v0,0xc(s4)
srl t6,v0,0x1f
or a2,zero,zero
or t8,zero,zero
li a1,0x4f
bne s2,a1,0x00024950
_nop
bne t6,zero,0x00025160
_nop
li v0,0x2025
sw zero,0x4c(sp)
sh v0,0x9c(sp)
sb s2,0x9e(sp)
addiu v0,sp,0x9f
b 0x000241f8
_or s2,t7,zero
addiu a1,sp,0x70
addiu t5,s4,0x20
or v0,s4,zero
or a2,a1,zero
lw t3,0x0(v0)
addiu v0,v0,0x10
addiu a2,a2,0x10
lw t0,-0xc(v0)
lw a3,-0x8(v0)
lw a0,-0x4(v0)
sw t3,-0x10(a2)
sw t0,-0xc(a2)
sw a3,-0x8(a2)
bne v0,t5,0x000245a4
_sw a0,-0x4(a2)
lw t3,0x0(v0)
addiu s2,sp,0xb2
lw a3,0x4(v0)
lw v0,0x8(v0)
lw a0,0x30(sp)
lw t9,-0x7e34(gp)
sw t1,0x54(sp)
sw v1,0x50(sp)
sw t2,0x4c(sp)
sw t3,0x0(a2)
sw a3,0x4(a2)
bal 0x0002f378
_sw v0,0x8(a2)
lui a2,0x6666
lw gp,0x20(sp)
li t3,0x30
addiu a2,a2,0x6667
lw t1,0x54(sp)
or a1,v0,zero
lw v1,0x50(sp)
or a3,s2,zero
b 0x00024640
_lw t2,0x4c(sp)
addiu a0,a0,0x30
seb a0,a0
addiu a3,a3,-0x1
beq a1,zero,0x00025138
_sb a0,0x0(a3)
mult a1,a2
sra t5,a1,0x1f
mfhi t4
sra t4,t4,0x2
subu a0,t4,t5
sll t0,a0,0x2
addu a0,t0,a0
sll a0,a0,0x1
subu a0,a1,a0
subu a1,t4,t5
bgez v0,0x0002462c
_andi a0,a0,0xff
subu a0,t3,a0
b 0x00024634
_seb a0,a0
sw zero,0x4c(sp)
lw v0,0x4c(sp)
li a0,0x70
movn t1,zero,a3
movn v0,a3,a3
b 0x000241e8
_sw v0,0x4c(sp)
li v0,0x4f
bne s2,v0,0x00025630
_lw a1,0x10(s4)
b 0x00024578
_li t7,0x1
slti a3,t2,0x0
or s2,t2,zero
movn s2,zero,a3
li a0,0x1
subu v0,s5,s1
movz s2,a0,s2
sltu v0,s2,v0
beq v0,zero,0x00023ff8
_nop
beq s3,zero,0x00024714
_slti v0,t2,0x2
bne v0,zero,0x00024708
_addiu a2,t2,-0x1
lw t9,-0x7cbc(gp)
li v0,0x30
addu a0,s3,a2
beq v1,v0,0x00025808
_sw a0,0x4c(sp)
li a1,0x20
jalr t9
_or a0,s3,zero
lw gp,0x20(sp)
lw s3,0x4c(sp)
addiu s3,s3,0x1
li v0,0x9
sb v0,-0x1(s3)
b 0x00023fc0
_addu s1,s1,s2
li v0,0x45
beq s2,v0,0x00024374
_addiu v0,s0,-0x1
lw v0,0xc(s4)
li a1,0x30
beq v1,a1,0x0002435c
_li a1,0x2d
beq v1,a1,0x00024558
_li t7,0x2
b 0x00024558
_li v1,0x5f
li v0,0x45
beq s2,v0,0x00024370
_or a2,zero,zero
lw v0,0x1c(s4)
or t8,zero,zero
li t7,0x3
slti t6,v0,-0x1
b 0x00024564
_addiu v0,v0,0x1
li v0,0x45
beq s2,v0,0x00024370
_nop
b 0x0002472c
_lw v0,0x8(s4)
li v0,0x45
beq s2,v0,0x00024370
_lw v0,0x40(sp)
b 0x00024730
_li a1,0x30
lw t4,-0x7fc8(gp)
addiu t4,t4,0x6788
lw v0,0x4ec(sp)
or a0,zero,zero
lw s2,-0x7f60(gp)
li a1,-0x1
sw t2,0x4c(sp)
or a3,s4,zero
sw v0,0x1c(sp)
or a2,t4,zero
lw v0,0x30(sp)
addiu s2,s2,0x3eb8
sw v1,0x58(sp)
sw t1,0x10(sp)
or t9,s2,zero
sw v0,0x18(sp)
sw t1,0x54(sp)
sw t4,0x50(sp)
lw v0,0x38(sp)
bal 0x00023eb8
_sw v0,0x14(sp)
subu t5,s5,s1
lw t2,0x4c(sp)
or a3,v0,zero
slti a0,t2,0x0
or v1,t2,zero
movn v1,zero,a0
or a0,v1,zero
sltu v0,v0,v1
movz a0,a3,v0
or t3,a0,zero
sltu a0,a0,t5
beq a0,zero,0x00023ff8
_lw gp,0x20(sp)
beq s3,zero,0x000248c8
_lw t4,0x50(sp)
beq v0,zero,0x00024884
_lw t1,0x54(sp)
subu a2,t2,a3
lw v1,0x58(sp)
li v0,0x30
lw t9,-0x7cbc(gp)
addu t2,s3,a2
sw t3,0x5c(sp)
sw a3,0x58(sp)
sw t2,0x60(sp)
sw t4,0x54(sp)
sw t1,0x50(sp)
beq v1,v0,0x00025564
_sw t5,0x4c(sp)
li a1,0x20
jalr t9
_or a0,s3,zero
lw t2,0x60(sp)
lw t3,0x5c(sp)
lw a3,0x58(sp)
lw t4,0x54(sp)
or s3,t2,zero
lw t1,0x50(sp)
lw t5,0x4c(sp)
lw v0,0x4ec(sp)
or a0,s3,zero
sw t3,0x4c(sp)
addu s3,s3,a3
sw t1,0x10(sp)
or a3,s4,zero
sw v0,0x1c(sp)
or a2,t4,zero
lw v0,0x30(sp)
or a1,t5,zero
or t9,s2,zero
sw v0,0x18(sp)
lw v0,0x38(sp)
bal 0x00023eb8
_sw v0,0x14(sp)
lw gp,0x20(sp)
lw t3,0x4c(sp)
b 0x00023fc0
_addu s1,s1,t3
li v0,0x45
beq s2,v0,0x00024370
_li t7,0x2
b 0x00024558
_lw v0,0x0(s4)
li v0,0x45
beq s2,v0,0x00024370
_li t7,0x2
lw a1,0x18(s4)
lw v0,0x1c(s4)
subu v0,v0,a1
addiu a1,v0,0x7
lui v0,0x9249
addiu v0,v0,0x2493
mult a1,v0
sra a2,a1,0x1f
mfhi v0
addu v0,v0,a1
sra v0,v0,0x2
b 0x00024558
_subu v0,v0,a2
li v0,0x45
beq s2,v0,0x00024578
_or t7,zero,zero
li v0,0x4f
beq s2,v0,0x00024370
_or a2,zero,zero
lw v0,0x14(s4)
or t8,zero,zero
li t7,0x4
slti t6,v0,-0x76c
addiu v0,v0,0x76c
bne t6,zero,0x00025160
_nop
addiu s2,sp,0xb2
lui t4,0xcccc
li t5,0x3a
or a1,s2,zero
ori t4,t4,0xcccd
or t3,v0,zero
andi v0,a2,0x1
beq v0,zero,0x0002498c
_addiu a3,a1,-0x1
addiu v0,a1,-0x2
sb t5,-0x1(a1)
or a1,a3,zero
or a3,v0,zero
multu t3,t4
sltiu t0,t3,0xa
sra a2,a2,0x1
mfhi a0
srl a0,a0,0x3
sll v0,a0,0x2
addu v0,v0,a0
sll v0,v0,0x1
subu v0,t3,v0
addiu v0,v0,0x30
beq t0,zero,0x000249c4
_sb v0,-0x1(a1)
beq a2,zero,0x000249d0
_slt v0,t2,t7
or a1,a3,zero
b 0x00024970
_or t3,a0,zero
bne t6,zero,0x0002514c
_movz t7,t2,v0
beq t8,zero,0x00025194
_li a0,0x2d
li v0,0x2d
beq v1,v0,0x0002543c
_li t5,0x2b
subu t4,s2,a3
subu t3,t7,t4
addiu t3,t3,-0x1
blez t3,0x000252fc
_subu v0,s5,s1
li a0,0x5f
beq v1,a0,0x000253b8
_sltu a0,t7,v0
beq a0,zero,0x00023ff8
_slti a0,t2,0x0
or a1,t2,zero
movn a1,zero,a0
or a0,a1,zero
li a1,0x1
movz a0,a1,a0
sltu v0,a0,v0
beq v0,zero,0x00023ff8
_nop
beq s3,zero,0x00024b00
_addu s1,s1,a0
bne t7,zero,0x00024aa8
_slti v0,t2,0x2
bne v0,zero,0x00024aa8
_addiu a2,t2,-0x1
lw t9,-0x7cbc(gp)
li v0,0x30
sw t4,0x64(sp)
addu s2,s3,a2
sw t3,0x60(sp)
sw t7,0x5c(sp)
sw v1,0x58(sp)
sw t5,0x54(sp)
sw a3,0x50(sp)
beq v1,v0,0x00025820
_sw t1,0x4c(sp)
li a1,0x20
jalr t9
_or a0,s3,zero
or s3,s2,zero
lw gp,0x20(sp)
lw t4,0x64(sp)
lw t3,0x60(sp)
lw t7,0x5c(sp)
lw v1,0x58(sp)
lw t5,0x54(sp)
lw a3,0x50(sp)
lw t1,0x4c(sp)
sb t5,0x0(s3)
addiu s3,s3,0x1
beq s3,zero,0x00024b00
_lw t9,-0x7cbc(gp)
li a1,0x30
sw t4,0x60(sp)
or a0,s3,zero
sw t7,0x5c(sp)
or a2,t3,zero
sw v1,0x58(sp)
sw a3,0x54(sp)
sw t1,0x50(sp)
jalr t9
_sw t3,0x4c(sp)
lw t3,0x4c(sp)
lw gp,0x20(sp)
lw t1,0x50(sp)
lw a3,0x54(sp)
addu s3,s3,t3
lw v1,0x58(sp)
lw t7,0x5c(sp)
lw t4,0x60(sp)
addu s1,s1,t3
or t2,zero,zero
or t3,zero,zero
subu v0,s5,s1
sltu a0,t4,t3
movz t3,t4,a0
sltu v0,t3,v0
beq v0,zero,0x00023ff8
_or s2,t3,zero
beq s3,zero,0x00024714
_nop
bne t7,zero,0x00024b80
_nop
beq a0,zero,0x00024b80
_subu a2,t2,t4
lw t9,-0x7cbc(gp)
li v0,0x30
sw t4,0x54(sp)
addu t2,s3,a2
sw a3,0x50(sp)
sw t1,0x4c(sp)
beq v1,v0,0x00025518
_sw t2,0x58(sp)
li a1,0x20
jalr t9
_or a0,s3,zero
lw t2,0x58(sp)
lw gp,0x20(sp)
lw t4,0x54(sp)
lw a3,0x50(sp)
or s3,t2,zero
lw t1,0x4c(sp)
beq t1,zero,0x0002516c
_lw t9,-0x7be0(gp)
lw t9,0x34(sp)
or a2,t4,zero
sw t4,0x4c(sp)
or a0,s3,zero
jalr t9
_or a1,a3,zero
lw t4,0x4c(sp)
lw gp,0x20(sp)
addu s3,s3,t4
b 0x00023fc0
_addu s1,s1,s2
movn t1,zero,a3
or a0,s8,zero
lw t9,-0x7ca4(gp)
sw t2,0x4c(sp)
sw v1,0x58(sp)
sw a3,0x54(sp)
sw t1,0x50(sp)
jalr t9
_sw t1,0x5c(sp)
lw t2,0x4c(sp)
or t3,v0,zero
subu v0,s5,s1
slti s2,t2,0x0
or v1,t2,zero
movn v1,zero,s2
or s2,v1,zero
sltu a0,t3,v1
movz s2,t3,a0
sltu v0,s2,v0
beq v0,zero,0x00023ff8
_lw gp,0x20(sp)
beq s3,zero,0x00024714
_lw t1,0x50(sp)
beq a0,zero,0x00024c60
_lw a3,0x54(sp)
subu a2,t2,t3
lw t9,-0x7cbc(gp)
li v0,0x30
sw t1,0x54(sp)
addu v1,s3,a2
sw a3,0x50(sp)
sw v1,0x4c(sp)
lw v1,0x58(sp)
beq v1,v0,0x000258bc
_sw t3,0x58(sp)
li a1,0x20
jalr t9
_or a0,s3,zero
lw gp,0x20(sp)
lw s3,0x4c(sp)
lw t3,0x58(sp)
lw t1,0x54(sp)
lw a3,0x50(sp)
bne a3,zero,0x00025754
_lw v0,0x3c(sp)
beq t1,zero,0x00025730
_lw t9,-0x7be0(gp)
lw t9,0x34(sp)
or a2,t3,zero
sw t3,0x4c(sp)
or a0,s3,zero
jalr t9
_or a1,s8,zero
lw t3,0x4c(sp)
lw gp,0x20(sp)
addu s3,s3,t3
b 0x00023fc0
_addu s1,s1,s2
li v0,0x45
beq s2,v0,0x00024370
_li t7,0x1
b 0x00024558
_lw v0,0x18(s4)
bne s2,zero,0x00024370
_lw v0,0x48(sp)
b 0x0002479c
_addiu t4,v0,0x677c
bne s2,zero,0x00024370
_lw t4,0x44(sp)
b 0x000247a0
_lw v0,0x4ec(sp)
li v0,0x45
beq s2,v0,0x00024370
_li t5,0x12c
lw a2,0x1c(s4)
lw a1,0x18(s4)
lw t6,0x14(s4)
subu v0,a2,a1
slti a3,t6,0x0
addiu t4,v0,0x17e
li v0,-0x64
movn v0,t5,a3
sra t5,t4,0x1f
or a3,v0,zero
lui v0,0x9249
addiu v0,v0,0x2493
mult t4,v0
mfhi v0
addu v0,v0,t4
sra v0,v0,0x2
subu v0,v0,t5
sll t5,v0,0x3
subu v0,t5,v0
subu v0,t4,v0
subu v0,a2,v0
addiu v0,v0,0x3
bltz v0,0x00025590
_addu a3,t6,a3
andi t4,a3,0x3
bne t4,zero,0x000256e4
_lui t4,0x51eb
sra t7,a3,0x1f
ori t4,t4,0x851f
mult a3,t4
li t8,0x64
mfhi t4
sra t5,t4,0x5
subu t5,t5,t7
mul t0,t5,t8
subu t5,a3,t0
bne t5,zero,0x000257e8
_sra t4,t4,0x7
li t5,0x190
subu t4,t4,t7
mul t0,t4,t5
li t5,0x16d
li t4,0x16e
subu a3,a3,t0
movn t4,t5,a3
or a3,t4,zero
subu a2,a2,a3
subu a1,a2,a1
addiu a3,a1,0x17e
lui a1,0x9249
sra t4,a3,0x1f
addiu a1,a1,0x2493
mult a3,a1
mfhi a1
addu a1,a1,a3
sra a1,a1,0x2
subu a1,a1,t4
sll t4,a1,0x3
subu a1,t4,a1
subu a1,a3,a1
subu a1,a2,a1
addiu a1,a1,0x3
slti a2,a1,0x0
movz v0,a1,a2
sltiu a1,a2,0x1
li a2,0x47
beq a0,a2,0x000256c4
_li a2,-0x76c
li a2,0x67
bne a0,a2,0x0002569c
_sra a2,v0,0x1f
lui v0,0x51eb
sra t4,t6,0x1f
ori v0,v0,0x851f
mult t6,v0
li a3,0x64
mfhi a2
sra a2,a2,0x5
subu a2,a2,t4
mul t0,a2,a3
subu a2,t6,t0
addu a2,a2,a1
mult a2,v0
sra t4,a2,0x1f
mfhi v0
sra v0,v0,0x5
subu v0,v0,t4
mul t0,v0,a3
subu v0,a2,t0
bgez v0,0x00024558
_li t7,0x2
li a2,-0x76c
subu a1,a2,a1
slt t6,t6,a1
beq t6,zero,0x0002512c
_nop
subu v0,zero,v0
b 0x00024558
_li t7,0x2
li v0,0x45
beq s2,v0,0x00024370
_li t7,0x2
b 0x00024558
_lw v0,0x8(s4)
li v0,0x45
beq s2,v0,0x00024370
_lw v0,0x40(sp)
b 0x00024558
_li t7,0x2
li v0,0x45
beq s2,v0,0x00024370
_li t7,0x2
b 0x00024558
_lw v0,0x4(s4)
li v0,0x45
beq s2,v0,0x00024370
_li v0,-0x1
bne t2,v0,0x0002565c
_lw v0,0x4ec(sp)
li t2,0x9
b 0x00024558
_li t7,0x9
lb a0,-0x1(s0)
b 0x00024518
_addiu s2,s0,-0x1
lw a1,0x18(s4)
lui v0,0x9249
li t7,0x1
addiu v0,v0,0x2493
addiu a1,a1,0x6
mult a1,v0
sra a2,a1,0x1f
mfhi v0
addu v0,v0,a1
sra v0,v0,0x2
subu v0,v0,a2
sll a2,v0,0x3
subu v0,a2,v0
subu v0,a1,v0
b 0x00024558
_addiu v0,v0,0x1
li v0,0x45
beq s2,v0,0x00024578
_or t7,zero,zero
lw t6,0x14(s4)
lui v0,0x51eb
ori v0,v0,0x851f
mult t6,v0
sra a1,t6,0x1f
mfhi v0
sra v0,v0,0x5
subu v0,v0,a1
li a1,0x64
mul a2,v0,a1
subu a1,t6,a2
bgez a1,0x00024f58
_addiu v0,v0,0x13
slt a1,zero,v0
subu v0,v0,a1
slti t6,t6,-0x76c
or a2,zero,zero
or t8,zero,zero
b 0x00024564
_li t7,0x2
li v0,0x45
beq s2,v0,0x00024370
_lui v0,0x9249
lw a1,0x18(s4)
lw a3,0x1c(s4)
li t7,0x2
addiu v0,v0,0x2493
addiu a1,a1,0x6
mult a1,v0
sra t4,a1,0x1f
mfhi a2
addu a2,a2,a1
sra a2,a2,0x2
subu a2,a2,t4
sll t4,a2,0x3
subu a2,t4,a2
subu a1,a1,a2
subu a1,a3,a1
b 0x00024908
_addiu a1,a1,0x7
li v0,0x45
beq s2,v0,0x00024370
_or a2,zero,zero
lw v0,0x10(s4)
or t8,zero,zero
li t7,0x2
slti t6,v0,-0x1
b 0x00024564
_addiu v0,v0,0x1
slti a3,t2,0x0
or s2,t2,zero
movn s2,zero,a3
li a0,0x1
subu v0,s5,s1
movz s2,a0,s2
sltu v0,s2,v0
beq v0,zero,0x00023ff8
_nop
beq s3,zero,0x00024714
_slti v0,t2,0x2
bne v0,zero,0x0002503c
_addiu a2,t2,-0x1
lw t9,-0x7cbc(gp)
li v0,0x30
addu a0,s3,a2
beq v1,v0,0x000257f0
_sw a0,0x4c(sp)
li a1,0x20
jalr t9
_or a0,s3,zero
lw gp,0x20(sp)
lw s3,0x4c(sp)
addiu s3,s3,0x1
li v0,0xa
addu s1,s1,s2
b 0x00023fc0
_sb v0,-0x1(s3)
slti v0,t2,0x0
or a1,t2,zero
movn a1,zero,v0
li a3,0x1
subu a2,s5,s1
or v0,a1,zero
bne s2,zero,0x000257dc
_movn a3,a1,a1
sltu a2,a3,a2
beq a2,zero,0x00023ff8
_nop
beq s3,zero,0x000242f4
_slti v0,t2,0x2
bne v0,zero,0x000250bc
_addiu a2,t2,-0x1
lw t9,-0x7cbc(gp)
li v0,0x30
sw a3,0x4c(sp)
beq v1,v0,0x00025894
_addu s2,s3,a2
li a1,0x20
jalr t9
_or a0,s3,zero
or s3,s2,zero
lw gp,0x20(sp)
lb a0,0x0(s0)
lw a3,0x4c(sp)
sb a0,0x0(s3)
addiu s3,s3,0x1
b 0x00023fc0
_addu s1,s1,a3
li v0,0x45
beq s2,v0,0x00024374
_addiu v0,s0,-0x1
movn t1,a3,a3
b 0x000241e8
_sw zero,0x4c(sp)
li v0,0x1
b 0x00024680
_sw v0,0x4c(sp)
lb v0,0x1(s0)
li a2,0x3a
beq v0,a2,0x0002577c
_addiu a1,s0,0x1
li t4,0x1
li a2,0x7a
bne v0,a2,0x00024374
_addiu v0,s0,-0x1
b 0x00024450
_or s0,a1,zero
lw t4,-0x7fc8(gp)
b 0x0002479c
_addiu t4,t4,0x6770
bne a1,zero,0x00024e5c
_nop
addiu v0,v0,0x64
b 0x00024558
_li t7,0x2
li a0,0x1
slt t7,zero,t2
movn a0,t2,t7
bgez v0,0x00025190
_or t7,a0,zero
li v0,0x2d
beq v1,v0,0x000251ec
_li t5,0x2d
b 0x000249f0
_subu t4,s2,a3
subu v0,zero,v0
b 0x00024958
_li t6,0x1
or a2,t4,zero
sw t4,0x4c(sp)
or a0,s3,zero
jalr t9
_or a1,a3,zero
lw t4,0x4c(sp)
lw gp,0x20(sp)
b 0x00024bac
_addu s3,s3,t4
li a0,0x2d
subu t4,s2,a3
beq v1,a0,0x000251ac
_subu v0,s5,s1
subu t3,t7,t4
bgtz t3,0x00023fe4
_li a0,0x5f
slti t3,t2,0x0
or a0,t2,zero
movn a0,zero,t3
b 0x00024b10
_or t3,a0,zero
lw t9,-0x7be0(gp)
or a2,t3,zero
sw t3,0x4c(sp)
or a0,s3,zero
jalr t9
_or a1,s2,zero
lw t3,0x4c(sp)
lw gp,0x20(sp)
lw a3,0x50(sp)
b 0x00024444
_addu s3,s3,t3
li t4,0x2d
slti t3,t2,0x0
or v0,t2,zero
movn v0,zero,t3
li v1,0x1
or t3,v0,zero
movn v1,t3,t3
subu v0,s5,s1
sltu v0,v1,v0
beq v0,zero,0x00023ff8
_nop
beq s3,zero,0x0002523c
_nop
bne t7,zero,0x00025234
_nop
slti v0,t2,0x2
beq v0,zero,0x00025250
_lw t9,-0x7cbc(gp)
sb t4,0x0(s3)
addiu s3,s3,0x1
addu s1,s1,v1
subu t4,s2,a3
subu v0,s5,s1
b 0x00024b10
_li v1,0x2d
addiu a2,t2,-0x1
li a1,0x20
sw t4,0x64(sp)
sw v1,0x60(sp)
or a0,s3,zero
sw t3,0x5c(sp)
addu s3,s3,a2
sw t7,0x58(sp)
sw a3,0x54(sp)
sw t1,0x50(sp)
jalr t9
_sw t2,0x4c(sp)
lw gp,0x20(sp)
lw t4,0x64(sp)
lw v1,0x60(sp)
lw t3,0x5c(sp)
lw t7,0x58(sp)
lw a3,0x54(sp)
lw t1,0x50(sp)
b 0x00025234
_lw t2,0x4c(sp)
addiu a1,sp,0xa5
or a2,t4,zero
sw t4,0x4c(sp)
jalr t9
_or a0,s3,zero
lw t4,0x4c(sp)
lw gp,0x20(sp)
lw a3,0x50(sp)
b 0x000242f4
_addu s3,s3,t4
lw v0,0x3c(sp)
addiu a1,sp,0xa5
or a2,t4,zero
sw t4,0x4c(sp)
addiu t9,v0,0x3db0
bal 0x00023db0
_or a0,s3,zero
lw t4,0x4c(sp)
lw gp,0x20(sp)
lw a3,0x50(sp)
b 0x000242f4
_addu s3,s3,t4
slti t3,t2,0x0
or a0,t2,zero
movn a0,zero,t3
li t6,0x1
movn t6,a0,a0
or t3,a0,zero
sltu v0,t6,v0
beq v0,zero,0x00023ff8
_or s2,t6,zero
beq s3,zero,0x000253ac
_nop
bne t7,zero,0x000253a4
_nop
slti v0,t2,0x2
bne v0,zero,0x000253a4
_addiu a2,t2,-0x1
lw t9,-0x7cbc(gp)
li v0,0x30
sw t4,0x6c(sp)
addu a0,s3,a2
sw t3,0x68(sp)
sw t2,0x64(sp)
sw a0,0x4c(sp)
sw t7,0x60(sp)
sw v1,0x5c(sp)
sw t5,0x58(sp)
sw a3,0x54(sp)
beq v1,v0,0x00025854
_sw t1,0x50(sp)
li a1,0x20
jalr t9
_or a0,s3,zero
lw gp,0x20(sp)
lw s3,0x4c(sp)
lw t4,0x6c(sp)
lw t3,0x68(sp)
lw t2,0x64(sp)
lw t7,0x60(sp)
lw v1,0x5c(sp)
lw t5,0x58(sp)
lw a3,0x54(sp)
lw t1,0x50(sp)
sb t5,0x0(s3)
addiu s3,s3,0x1
addu s1,s1,s2
b 0x00024b10
_subu v0,s5,s1
sltu v0,t3,v0
beq v0,zero,0x00023ff8
_nop
beq s3,zero,0x00025414
_lw t9,-0x7cbc(gp)
li a1,0x20
sw t2,0x60(sp)
or a0,s3,zero
sw t7,0x5c(sp)
or a2,t3,zero
sw t5,0x58(sp)
addu s3,s3,t3
sw a3,0x54(sp)
sw t1,0x50(sp)
jalr t9
_sw t3,0x4c(sp)
lw gp,0x20(sp)
lw t2,0x60(sp)
lw t7,0x5c(sp)
lw t5,0x58(sp)
lw a3,0x54(sp)
lw t1,0x50(sp)
lw t3,0x4c(sp)
slt v0,t3,t2
beq v0,zero,0x00025510
_addu s1,s1,t3
subu t2,t2,t3
bne t5,zero,0x00025474
_subu v0,s5,s1
subu t4,s2,a3
or t3,t2,zero
b 0x00024b10
_li v1,0x5f
b 0x000251f0
_li t4,0x2b
b 0x00024584
_or t7,zero,zero
li a1,0x30
jalr t9
_or a0,s3,zero
lw t2,0x50(sp)
lw gp,0x20(sp)
lw t1,0x4c(sp)
or s3,t2,zero
lw t3,0x54(sp)
b 0x00024414
_lw a3,0x58(sp)
li v1,0x1
movn v1,t2,t2
sltu v0,v1,v0
beq v0,zero,0x00023ff8
_nop
beq s3,zero,0x000254ac
_nop
bne t7,zero,0x000254a4
_nop
slti v0,t2,0x2
beq v0,zero,0x000254c4
_lw t9,-0x7cbc(gp)
sb t5,0x0(s3)
addiu s3,s3,0x1
addu s1,s1,v1
subu t4,s2,a3
or t3,t2,zero
subu v0,s5,s1
b 0x00024b10
_li v1,0x5f
addiu a2,t2,-0x1
li a1,0x20
sw v1,0x60(sp)
sw t7,0x5c(sp)
or a0,s3,zero
sw t5,0x58(sp)
addu s3,s3,a2
sw a3,0x54(sp)
sw t1,0x50(sp)
jalr t9
_sw t2,0x4c(sp)
lw gp,0x20(sp)
lw v1,0x60(sp)
lw t7,0x5c(sp)
lw t5,0x58(sp)
lw a3,0x54(sp)
lw t1,0x50(sp)
b 0x000254a4
_lw t2,0x4c(sp)
b 0x00025424
_or t2,zero,zero
li a1,0x30
jalr t9
_or a0,s3,zero
lw t2,0x58(sp)
lw gp,0x20(sp)
lw t1,0x4c(sp)
or s3,t2,zero
lw a3,0x50(sp)
b 0x00024b80
_lw t4,0x54(sp)
li a1,0x30
jalr t9
_or a0,s3,zero
or s3,s2,zero
lw gp,0x20(sp)
lw t1,0x50(sp)
lw t4,0x54(sp)
b 0x000242b8
_lw a3,0x58(sp)
li a1,0x30
jalr t9
_or a0,s3,zero
lw t2,0x60(sp)
lw t5,0x4c(sp)
lw t1,0x50(sp)
or s3,t2,zero
lw t4,0x54(sp)
lw a3,0x58(sp)
b 0x00024884
_lw t3,0x5c(sp)
addiu a3,a3,-0x1
andi v0,a3,0x3
bne v0,zero,0x000255e8
_li v0,0x16d
lui v0,0x51eb
sra t4,a3,0x1f
ori v0,v0,0x851f
mult a3,v0
mfhi v0
sra v0,v0,0x5
subu v0,v0,t4
li t4,0x64
mul t0,v0,t4
subu v0,a3,t0
bne v0,zero,0x000258e0
_nop
li v0,0x190
teq v0,zero
div a3,v0
mfhi v0
sltiu v0,v0,0x1
addiu v0,v0,0x16d
addu a3,a2,v0
lui v0,0x9249
subu a2,a3,a1
addiu v0,v0,0x2493
addiu a2,a2,0x17e
li a1,-0x1
mult a2,v0
sra t4,a2,0x1f
mfhi v0
addu v0,v0,a2
sra v0,v0,0x2
subu v0,v0,t4
sll t4,v0,0x3
subu v0,t4,v0
subu a2,a2,v0
subu v0,a3,a2
b 0x00024de0
_addiu v0,v0,0x3
sll v0,a1,0x1
or a2,zero,zero
addu v0,v0,a1
or t8,zero,zero
sll v0,v0,0x2
or t6,zero,zero
subu v0,v0,a1
li t7,0x1
sra v0,v0,0x5
b 0x00024958
_addiu v0,v0,0x1
slti v0,t2,0x9
beq v0,zero,0x000258e8
_lui a3,0x6666
lw v0,0x4ec(sp)
li t4,0x9
addiu a3,a3,0x6667
or a2,t2,zero
mult v0,a3
addiu a2,a2,0x1
sra v0,v0,0x1f
mfhi a1
sra a1,a1,0x2
bne a2,t4,0x00025678
_subu v0,a1,v0
b 0x00024558
_or t7,t2,zero
lui a1,0x9249
addiu a1,a1,0x2493
li t7,0x2
mult v0,a1
mfhi a1
addu v0,a1,v0
sra v0,v0,0x2
subu v0,v0,a2
b 0x00024558
_addiu v0,v0,0x1
addiu v0,t6,0x76c
subu a2,a2,a1
addu v0,v0,a1
slt t6,t6,a2
or t8,zero,zero
or a2,zero,zero
b 0x00024564
_li t7,0x4
b 0x00024d94
_li a3,0x16d
li a1,0x64
li t8,0x1
mul a3,v0,a1
li t7,0x6
addu v0,a3,a2
b 0x00024564
_li a2,0x4
li a1,0x64
li t8,0x1
mult a2,a1
li a1,0x2710
li a2,0x14
madd v0,a1
li t7,0x9
mflo v0
b 0x00024564
_addu v0,v0,a3
or a2,t3,zero
sw t3,0x4c(sp)
or a0,s3,zero
jalr t9
_or a1,s8,zero
lw t3,0x4c(sp)
lw gp,0x20(sp)
b 0x00024c94
_addu s3,s3,t3
or a2,t3,zero
sw t3,0x4c(sp)
or a0,s3,zero
addiu t9,v0,0x3db0
bal 0x00023db0
_or a1,s8,zero
lw t3,0x4c(sp)
lw gp,0x20(sp)
b 0x00024c94
_addu s3,s3,t3
addiu a2,s0,0x2
li t4,0x1
li a3,0x3a
or a1,a2,zero
addiu a2,a2,0x1
lb v0,-0x1(a2)
bne v0,a3,0x00025104
_addiu t4,t4,0x1
b 0x0002578c
_or a1,a2,zero
li a1,0x64
li t8,0x1
mul a3,v0,a1
li t7,0x5
addu v0,a3,a2
b 0x00024564
_or a2,zero,zero
bne a3,zero,0x0002570c
_li a1,0x64
bne a2,zero,0x000256f0
_nop
li t8,0x1
b 0x00024564
_li t7,0x3
li t3,0x1
b 0x000243b4
_or s2,s0,zero
b 0x00024d94
_li a3,0x16e
li a1,0x30
jalr t9
_or a0,s3,zero
lw gp,0x20(sp)
b 0x0002503c
_lw s3,0x4c(sp)
li a1,0x30
jalr t9
_or a0,s3,zero
lw gp,0x20(sp)
b 0x00024708
_lw s3,0x4c(sp)
li a1,0x30
jalr t9
_or a0,s3,zero
or s3,s2,zero
lw gp,0x20(sp)
lw t1,0x4c(sp)
lw a3,0x50(sp)
lw t5,0x54(sp)
lw v1,0x58(sp)
lw t7,0x5c(sp)
lw t3,0x60(sp)
b 0x00024aa8
_lw t4,0x64(sp)
li a1,0x30
jalr t9
_or a0,s3,zero
lw s3,0x4c(sp)
lw t5,0x58(sp)
lw gp,0x20(sp)
lw t1,0x50(sp)
addiu s3,s3,0x1
lw a3,0x54(sp)
lw v1,0x5c(sp)
lw t7,0x60(sp)
lw t2,0x64(sp)
lw t3,0x68(sp)
lw t4,0x6c(sp)
b 0x000253ac
_sb t5,-0x1(s3)
li a1,0x30
jalr t9
_or a0,s3,zero
or s3,s2,zero
lb a0,0x0(s0)
addiu s3,s3,0x1
lw gp,0x20(sp)
lw a3,0x4c(sp)
b 0x000250c4
_sb a0,-0x1(s3)
li a1,0x30
jalr t9
_or a0,s3,zero
lw gp,0x20(sp)
lw s3,0x4c(sp)
lw a3,0x50(sp)
lw t1,0x54(sp)
b 0x00024c60
_lw t3,0x58(sp)
b 0x000255e8
_li v0,0x16e
lw v0,0x4ec(sp)
b 0x00024558
_or t7,t2,zero
lw t9,-0x7c10(gp)
jalr t9
_nop
(translation_unit "int * FUN_00023eb8(char *param_1,int param_2,char *param_3,undefined4 param_4,char param_5)\n\n{\n  char cVar1;\n  undefined *puVar2;\n  int iVar3;\n  char cVar9;\n  uint uVar4;\n  char *pcVar5;\n  int iVar6;\n  int iVar7;\n  byte *pbVar8;\n  code *pcVar10;\n  uint uVar11;\n  char *pcVar12;\n  char *pcVar13;\n  char *pcVar14;\n  char *pcVar15;\n  char *pcVar16;\n  int *piVar17;\n  int *piVar18;\n  int iVar19;\n  undefined *puVar20;\n  \n  puVar2 = PTR___stack_chk_guard_000495fc;\n  puVar20 = PTR_LAB_00049218;\n  iVar3 = *(int *)PTR___stack_chk_guard_000495fc;\n  cVar9 = *param_3;\n  piVar18 = (int *)0x0;\n  if (cVar9 == '\0') {\nLAB_00023fcc:\n    if ((param_1 != (char *)0x0) && (param_2 != 0)) {\n      *param_1 = '\0';\n    }\nLAB_00023ffc:\n    if (iVar3 == *(int *)puVar2) {\n      return piVar18;\n    }\n    puVar20 = PTR___stack_chk_fail_000495d0;\n    (*(code *)PTR___stack_chk_fail_000495d0)();\n    piVar17 = *(int **)(puVar20 + 0x23cfc);\n    iVar3 = *piVar17;\n    piVar18 = (int *)FUN_00023eb8();\n    if (iVar3 == *piVar17) {\n      return piVar18;\n    }\n    pcVar10 = *(code **)(puVar20 + 0x23cd0);\n    (*pcVar10)();\n    if (iVar3 != 0) {\n      iVar6 = (**(code **)(pcVar10 + 0x23b58))();\n      if (((iVar6 != 0) && (iVar19 = iVar6 + 1, 6 < iVar19 - iVar3)) &&\n         (iVar7 = (**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7), iVar7 == 0)) {\n        iVar3 = (**(code **)(pcVar10 + 0x23b10))(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3);\n        if (iVar3 != 0) {\n          **(int **)(pcVar10 + 0x23934) = iVar19;\n          piVar18 = *(int **)(pcVar10 + 0x23b68);\n          *piVar18 = iVar19;\n          return piVar18;\n        }\n        iVar3 = iVar6 + 4;\n        **(int **)(pcVar10 + 0x23b24) = iVar3;\n      }\n      **(int **)(pcVar10 + 0x23934) = iVar3;\n      piVar18 = *(int **)(pcVar10 + 0x23b68);\n      *piVar18 = iVar3;\n      return piVar18;\n    }\n    iVar3 = 1;\n    piVar18 = (int *)(*(int *)(pcVar10 + 0x23898) + 0x6990);\n    (**(code **)(pcVar10 + 0x23c24))(piVar18,1,0x37,**(undefined4 **)(pcVar10 + 0x23ca4));\n    pcVar10 = *(code **)(pcVar10 + 0x23b08);\n    (*pcVar10)();\n    *piVar18 = 0;\n    piVar18[1] = 0;\n    piVar18[2] = 0;\n    piVar18[3] = 0;\n    piVar18[4] = 0;\n    piVar18[5] = 0;\n    piVar18[6] = 0;\n    piVar18[7] = 0;\n    piVar18[8] = 0;\n    piVar18[9] = 0;\n    piVar18[10] = 0;\n    piVar18[0xb] = 0;\n    if (iVar3 == 10) {\n      pcVar10 = *(code **)(pcVar10 + 0x239d8);\n      (*pcVar10)();\n      piVar17 = (int *)(**(code **)(pcVar10 + 0x23abc))(0,piVar18,5);\n      if (piVar18 == piVar17) {\n        pbVar8 = (byte *)locale_charset();\n        if ((*pbVar8 & 0xdf) == 0x55) {\n          if (((((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46)) && (pbVar8[3] == 0x2d)\n              ) && ((pbVar8[4] == 0x38 && (pbVar8[5] == 0)))) {\n            if (*(char *)piVar17 != '`') {\n              return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d8);\n            }\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e4);\n          }\n        }\n        else if ((((((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&\n                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))) &&\n                 (pbVar8[5] == 0x33)) && ((pbVar8[6] == 0x30 && (pbVar8[7] == 0)))) {\n          if (*(char *)piVar17 != '`') {\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69dc);\n          }\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e0);\n        }\n        if (iVar3 != 9) {\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e8);\n        }\n        piVar17 = (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d4);\n      }\n      return piVar17;\n    }\n    *piVar18 = iVar3;\n    return piVar18;\n  }\n  pcVar10 = (code *)(PTR_LAB_00049280 + 0x3e34);\nLAB_00023f94:\n  if (cVar9 == '%') {\n    iVar6 = 0;\n    cVar9 = param_5;\nLAB_0002406c:\n    do {\n      param_3 = param_3 + 1;\n      cVar1 = *param_3;\n      while (uVar11 = (uint)cVar1, uVar11 != 0x30) {\n        if (0x30 < (int)uVar11) {\n          if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }\n          if (uVar11 == 0x5f) {\n            iVar6 = 0x5f;\n            goto LAB_0002406c;\n          }\nLAB_000240c4:\n          pcVar14 = (char *)0xffffffff;\n          if (9 < uVar11 - 0x30) goto LAB_000240d4;\n          pcVar14 = (char *)0x0;\n          pcVar5 = param_3;\n          goto LAB_00024154;\n        }\n        if (uVar11 != 0x23) {\n          if (uVar11 != 0x2d) goto LAB_000240c4;\n          iVar6 = 0x2d;\n          goto LAB_0002406c;\n        }\n        param_3 = param_3 + 1;\n        cVar1 = *param_3;\n      }\n      iVar6 = 0x30;\n    } while( true );\n  }\n  if ((uint)(param_2 - (int)piVar18) < 2) goto LAB_00023ff8;\n  if (param_1 != (char *)0x0) {\n    *param_1 = cVar9;\n    param_1 = param_1 + 1;\n  }\n  piVar18 = (int *)((int)piVar18 + 1);\n  goto LAB_00023fc0;\nLAB_00024154:\n  do {\n    uVar11 = (uint)pcVar5[1];\n    param_3 = pcVar5 + 1;\n    uVar4 = uVar11 - 0x30;\n    if (((int)pcVar14 < 0xccccccd) && ((pcVar14 != (char *)0xccccccc || (*pcVar5 < 0x38)))) {\n      pcVar14 = (char *)(*pcVar5 + -0x30 + (int)pcVar14 * 10);\n    }\n    else {\n      if (9 < uVar4) {\n        pcVar14 = (char *)0x7fffffff;\n        break;\n      }\n      uVar11 = (uint)pcVar5[2];\n      pcVar14 = (char *)0x7fffffff;\n      param_3 = pcVar5 + 2;\n      uVar4 = uVar11 - 0x30;\n    }\n    pcVar5 = param_3;\n  } while (uVar4 < 10);\nLAB_000240d4:\n  if ((uVar11 == 0x45) || (uVar11 == 0x4f)) {\n    uVar11 = (uint)param_3[1];\n    param_3 = param_3 + 1;\n  }\n  pcVar5 = param_3;\n  if ((uVar11 & 0xff) < 0x7b) {\n                    /* WARNING: Could not emulate address calculation at 0x000240fc */\n                    /* WARNING: Treating indirect jump as call */\n    piVar18 = (int *)(*(code *)(&_gp_1 + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)))();\n    return piVar18;\n  }\n  do {\n    pcVar5 = pcVar5 + -1;\n    pcVar16 = param_3 + (1 - (int)pcVar5);\n  } while (*pcVar5 != '%');\n  pcVar12 = pcVar14;\n  if ((int)pcVar14 < 0) {\n    pcVar12 = (char *)0x0;\n  }\n  pcVar13 = pcVar16;\n  if (pcVar16 <= pcVar12) {\n    pcVar13 = pcVar12;\n  }\n  if ((char *)(param_2 - (int)piVar18) <= pcVar13) {\nLAB_00023ff8:\n    piVar18 = (int *)0x0;\n    goto LAB_00023ffc;\n  }\n  if (param_1 == (char *)0x0) {\n    piVar18 = (int *)((int)piVar18 + (int)pcVar13);\n  }\n  else {\n    pcVar15 = param_1;\n    if (pcVar16 < pcVar12) {\n      pcVar15 = param_1 + ((int)pcVar14 - (int)pcVar16);\n      if (iVar6 == 0x30) {\n        (*(code *)PTR_memset_00049524)(param_1,0x30);\n      }\n      else {\n        (*(code *)PTR_memset_00049524)(param_1,0x20);\n      }\n    }\n    if (cVar9 == '\0') {\n      (*(code *)PTR_memcpy_00049600)(pcVar15,pcVar5,pcVar16);\n    }\n    else {\n      (*pcVar10)(pcVar15,pcVar5,pcVar16);\n    }\n    param_1 = pcVar15 + (int)pcVar16;\n    piVar18 = (int *)((int)piVar18 + (int)pcVar13);\n  }\nLAB_00023fc0:\n  cVar9 = param_3[1];\n  param_3 = param_3 + 1;\n  if (cVar9 == '\0') goto LAB_00023fcc;\n  goto LAB_00023f94;\n}\n\n" (function_definition "int * FUN_00023eb8(char *param_1,int param_2,char *param_3,undefined4 param_4,char param_5)\n\n{\n  char cVar1;\n  undefined *puVar2;\n  int iVar3;\n  char cVar9;\n  uint uVar4;\n  char *pcVar5;\n  int iVar6;\n  int iVar7;\n  byte *pbVar8;\n  code *pcVar10;\n  uint uVar11;\n  char *pcVar12;\n  char *pcVar13;\n  char *pcVar14;\n  char *pcVar15;\n  char *pcVar16;\n  int *piVar17;\n  int *piVar18;\n  int iVar19;\n  undefined *puVar20;\n  \n  puVar2 = PTR___stack_chk_guard_000495fc;\n  puVar20 = PTR_LAB_00049218;\n  iVar3 = *(int *)PTR___stack_chk_guard_000495fc;\n  cVar9 = *param_3;\n  piVar18 = (int *)0x0;\n  if (cVar9 == '\0') {\nLAB_00023fcc:\n    if ((param_1 != (char *)0x0) && (param_2 != 0)) {\n      *param_1 = '\0';\n    }\nLAB_00023ffc:\n    if (iVar3 == *(int *)puVar2) {\n      return piVar18;\n    }\n    puVar20 = PTR___stack_chk_fail_000495d0;\n    (*(code *)PTR___stack_chk_fail_000495d0)();\n    piVar17 = *(int **)(puVar20 + 0x23cfc);\n    iVar3 = *piVar17;\n    piVar18 = (int *)FUN_00023eb8();\n    if (iVar3 == *piVar17) {\n      return piVar18;\n    }\n    pcVar10 = *(code **)(puVar20 + 0x23cd0);\n    (*pcVar10)();\n    if (iVar3 != 0) {\n      iVar6 = (**(code **)(pcVar10 + 0x23b58))();\n      if (((iVar6 != 0) && (iVar19 = iVar6 + 1, 6 < iVar19 - iVar3)) &&\n         (iVar7 = (**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7), iVar7 == 0)) {\n        iVar3 = (**(code **)(pcVar10 + 0x23b10))(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3);\n        if (iVar3 != 0) {\n          **(int **)(pcVar10 + 0x23934) = iVar19;\n          piVar18 = *(int **)(pcVar10 + 0x23b68);\n          *piVar18 = iVar19;\n          return piVar18;\n        }\n        iVar3 = iVar6 + 4;\n        **(int **)(pcVar10 + 0x23b24) = iVar3;\n      }\n      **(int **)(pcVar10 + 0x23934) = iVar3;\n      piVar18 = *(int **)(pcVar10 + 0x23b68);\n      *piVar18 = iVar3;\n      return piVar18;\n    }\n    iVar3 = 1;\n    piVar18 = (int *)(*(int *)(pcVar10 + 0x23898) + 0x6990);\n    (**(code **)(pcVar10 + 0x23c24))(piVar18,1,0x37,**(undefined4 **)(pcVar10 + 0x23ca4));\n    pcVar10 = *(code **)(pcVar10 + 0x23b08);\n    (*pcVar10)();\n    *piVar18 = 0;\n    piVar18[1] = 0;\n    piVar18[2] = 0;\n    piVar18[3] = 0;\n    piVar18[4] = 0;\n    piVar18[5] = 0;\n    piVar18[6] = 0;\n    piVar18[7] = 0;\n    piVar18[8] = 0;\n    piVar18[9] = 0;\n    piVar18[10] = 0;\n    piVar18[0xb] = 0;\n    if (iVar3 == 10) {\n      pcVar10 = *(code **)(pcVar10 + 0x239d8);\n      (*pcVar10)();\n      piVar17 = (int *)(**(code **)(pcVar10 + 0x23abc))(0,piVar18,5);\n      if (piVar18 == piVar17) {\n        pbVar8 = (byte *)locale_charset();\n        if ((*pbVar8 & 0xdf) == 0x55) {\n          if (((((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46)) && (pbVar8[3] == 0x2d)\n              ) && ((pbVar8[4] == 0x38 && (pbVar8[5] == 0)))) {\n            if (*(char *)piVar17 != '`') {\n              return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d8);\n            }\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e4);\n          }\n        }\n        else if ((((((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&\n                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))) &&\n                 (pbVar8[5] == 0x33)) && ((pbVar8[6] == 0x30 && (pbVar8[7] == 0)))) {\n          if (*(char *)piVar17 != '`') {\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69dc);\n          }\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e0);\n        }\n        if (iVar3 != 9) {\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e8);\n        }\n        piVar17 = (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d4);\n      }\n      return piVar17;\n    }\n    *piVar18 = iVar3;\n    return piVar18;\n  }\n  pcVar10 = (code *)(PTR_LAB_00049280 + 0x3e34);\nLAB_00023f94:\n  if (cVar9 == '%') {\n    iVar6 = 0;\n    cVar9 = param_5;\nLAB_0002406c:\n    do {\n      param_3 = param_3 + 1;\n      cVar1 = *param_3;\n      while (uVar11 = (uint)cVar1, uVar11 != 0x30) {\n        if (0x30 < (int)uVar11) {\n          if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }\n          if (uVar11 == 0x5f) {\n            iVar6 = 0x5f;\n            goto LAB_0002406c;\n          }\nLAB_000240c4:\n          pcVar14 = (char *)0xffffffff;\n          if (9 < uVar11 - 0x30) goto LAB_000240d4;\n          pcVar14 = (char *)0x0;\n          pcVar5 = param_3;\n          goto LAB_00024154;\n        }\n        if (uVar11 != 0x23) {\n          if (uVar11 != 0x2d) goto LAB_000240c4;\n          iVar6 = 0x2d;\n          goto LAB_0002406c;\n        }\n        param_3 = param_3 + 1;\n        cVar1 = *param_3;\n      }\n      iVar6 = 0x30;\n    } while( true );\n  }\n  if ((uint)(param_2 - (int)piVar18) < 2) goto LAB_00023ff8;\n  if (param_1 != (char *)0x0) {\n    *param_1 = cVar9;\n    param_1 = param_1 + 1;\n  }\n  piVar18 = (int *)((int)piVar18 + 1);\n  goto LAB_00023fc0;\nLAB_00024154:\n  do {\n    uVar11 = (uint)pcVar5[1];\n    param_3 = pcVar5 + 1;\n    uVar4 = uVar11 - 0x30;\n    if (((int)pcVar14 < 0xccccccd) && ((pcVar14 != (char *)0xccccccc || (*pcVar5 < 0x38)))) {\n      pcVar14 = (char *)(*pcVar5 + -0x30 + (int)pcVar14 * 10);\n    }\n    else {\n      if (9 < uVar4) {\n        pcVar14 = (char *)0x7fffffff;\n        break;\n      }\n      uVar11 = (uint)pcVar5[2];\n      pcVar14 = (char *)0x7fffffff;\n      param_3 = pcVar5 + 2;\n      uVar4 = uVar11 - 0x30;\n    }\n    pcVar5 = param_3;\n  } while (uVar4 < 10);\nLAB_000240d4:\n  if ((uVar11 == 0x45) || (uVar11 == 0x4f)) {\n    uVar11 = (uint)param_3[1];\n    param_3 = param_3 + 1;\n  }\n  pcVar5 = param_3;\n  if ((uVar11 & 0xff) < 0x7b) {\n                    /* WARNING: Could not emulate address calculation at 0x000240fc */\n                    /* WARNING: Treating indirect jump as call */\n    piVar18 = (int *)(*(code *)(&_gp_1 + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)))();\n    return piVar18;\n  }\n  do {\n    pcVar5 = pcVar5 + -1;\n    pcVar16 = param_3 + (1 - (int)pcVar5);\n  } while (*pcVar5 != '%');\n  pcVar12 = pcVar14;\n  if ((int)pcVar14 < 0) {\n    pcVar12 = (char *)0x0;\n  }\n  pcVar13 = pcVar16;\n  if (pcVar16 <= pcVar12) {\n    pcVar13 = pcVar12;\n  }\n  if ((char *)(param_2 - (int)piVar18) <= pcVar13) {\nLAB_00023ff8:\n    piVar18 = (int *)0x0;\n    goto LAB_00023ffc;\n  }\n  if (param_1 == (char *)0x0) {\n    piVar18 = (int *)((int)piVar18 + (int)pcVar13);\n  }\n  else {\n    pcVar15 = param_1;\n    if (pcVar16 < pcVar12) {\n      pcVar15 = param_1 + ((int)pcVar14 - (int)pcVar16);\n      if (iVar6 == 0x30) {\n        (*(code *)PTR_memset_00049524)(param_1,0x30);\n      }\n      else {\n        (*(code *)PTR_memset_00049524)(param_1,0x20);\n      }\n    }\n    if (cVar9 == '\0') {\n      (*(code *)PTR_memcpy_00049600)(pcVar15,pcVar5,pcVar16);\n    }\n    else {\n      (*pcVar10)(pcVar15,pcVar5,pcVar16);\n    }\n    param_1 = pcVar15 + (int)pcVar16;\n    piVar18 = (int *)((int)piVar18 + (int)pcVar13);\n  }\nLAB_00023fc0:\n  cVar9 = param_3[1];\n  param_3 = param_3 + 1;\n  if (cVar9 == '\0') goto LAB_00023fcc;\n  goto LAB_00023f94;\n}" primitive_type (pointer_declarator "* FUN_00023eb8(char *param_1,int param_2,char *param_3,undefined4 param_4,char param_5)" * (function_declarator "FUN_00023eb8(char *param_1,int param_2,char *param_3,undefined4 param_4,char param_5)" identifier (parameter_list "(char *param_1,int param_2,char *param_3,undefined4 param_4,char param_5)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "char *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "char param_5" primitive_type identifier) )))) (compound_statement "{\n  char cVar1;\n  undefined *puVar2;\n  int iVar3;\n  char cVar9;\n  uint uVar4;\n  char *pcVar5;\n  int iVar6;\n  int iVar7;\n  byte *pbVar8;\n  code *pcVar10;\n  uint uVar11;\n  char *pcVar12;\n  char *pcVar13;\n  char *pcVar14;\n  char *pcVar15;\n  char *pcVar16;\n  int *piVar17;\n  int *piVar18;\n  int iVar19;\n  undefined *puVar20;\n  \n  puVar2 = PTR___stack_chk_guard_000495fc;\n  puVar20 = PTR_LAB_00049218;\n  iVar3 = *(int *)PTR___stack_chk_guard_000495fc;\n  cVar9 = *param_3;\n  piVar18 = (int *)0x0;\n  if (cVar9 == '\0') {\nLAB_00023fcc:\n    if ((param_1 != (char *)0x0) && (param_2 != 0)) {\n      *param_1 = '\0';\n    }\nLAB_00023ffc:\n    if (iVar3 == *(int *)puVar2) {\n      return piVar18;\n    }\n    puVar20 = PTR___stack_chk_fail_000495d0;\n    (*(code *)PTR___stack_chk_fail_000495d0)();\n    piVar17 = *(int **)(puVar20 + 0x23cfc);\n    iVar3 = *piVar17;\n    piVar18 = (int *)FUN_00023eb8();\n    if (iVar3 == *piVar17) {\n      return piVar18;\n    }\n    pcVar10 = *(code **)(puVar20 + 0x23cd0);\n    (*pcVar10)();\n    if (iVar3 != 0) {\n      iVar6 = (**(code **)(pcVar10 + 0x23b58))();\n      if (((iVar6 != 0) && (iVar19 = iVar6 + 1, 6 < iVar19 - iVar3)) &&\n         (iVar7 = (**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7), iVar7 == 0)) {\n        iVar3 = (**(code **)(pcVar10 + 0x23b10))(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3);\n        if (iVar3 != 0) {\n          **(int **)(pcVar10 + 0x23934) = iVar19;\n          piVar18 = *(int **)(pcVar10 + 0x23b68);\n          *piVar18 = iVar19;\n          return piVar18;\n        }\n        iVar3 = iVar6 + 4;\n        **(int **)(pcVar10 + 0x23b24) = iVar3;\n      }\n      **(int **)(pcVar10 + 0x23934) = iVar3;\n      piVar18 = *(int **)(pcVar10 + 0x23b68);\n      *piVar18 = iVar3;\n      return piVar18;\n    }\n    iVar3 = 1;\n    piVar18 = (int *)(*(int *)(pcVar10 + 0x23898) + 0x6990);\n    (**(code **)(pcVar10 + 0x23c24))(piVar18,1,0x37,**(undefined4 **)(pcVar10 + 0x23ca4));\n    pcVar10 = *(code **)(pcVar10 + 0x23b08);\n    (*pcVar10)();\n    *piVar18 = 0;\n    piVar18[1] = 0;\n    piVar18[2] = 0;\n    piVar18[3] = 0;\n    piVar18[4] = 0;\n    piVar18[5] = 0;\n    piVar18[6] = 0;\n    piVar18[7] = 0;\n    piVar18[8] = 0;\n    piVar18[9] = 0;\n    piVar18[10] = 0;\n    piVar18[0xb] = 0;\n    if (iVar3 == 10) {\n      pcVar10 = *(code **)(pcVar10 + 0x239d8);\n      (*pcVar10)();\n      piVar17 = (int *)(**(code **)(pcVar10 + 0x23abc))(0,piVar18,5);\n      if (piVar18 == piVar17) {\n        pbVar8 = (byte *)locale_charset();\n        if ((*pbVar8 & 0xdf) == 0x55) {\n          if (((((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46)) && (pbVar8[3] == 0x2d)\n              ) && ((pbVar8[4] == 0x38 && (pbVar8[5] == 0)))) {\n            if (*(char *)piVar17 != '`') {\n              return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d8);\n            }\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e4);\n          }\n        }\n        else if ((((((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&\n                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))) &&\n                 (pbVar8[5] == 0x33)) && ((pbVar8[6] == 0x30 && (pbVar8[7] == 0)))) {\n          if (*(char *)piVar17 != '`') {\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69dc);\n          }\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e0);\n        }\n        if (iVar3 != 9) {\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e8);\n        }\n        piVar17 = (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d4);\n      }\n      return piVar17;\n    }\n    *piVar18 = iVar3;\n    return piVar18;\n  }\n  pcVar10 = (code *)(PTR_LAB_00049280 + 0x3e34);\nLAB_00023f94:\n  if (cVar9 == '%') {\n    iVar6 = 0;\n    cVar9 = param_5;\nLAB_0002406c:\n    do {\n      param_3 = param_3 + 1;\n      cVar1 = *param_3;\n      while (uVar11 = (uint)cVar1, uVar11 != 0x30) {\n        if (0x30 < (int)uVar11) {\n          if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }\n          if (uVar11 == 0x5f) {\n            iVar6 = 0x5f;\n            goto LAB_0002406c;\n          }\nLAB_000240c4:\n          pcVar14 = (char *)0xffffffff;\n          if (9 < uVar11 - 0x30) goto LAB_000240d4;\n          pcVar14 = (char *)0x0;\n          pcVar5 = param_3;\n          goto LAB_00024154;\n        }\n        if (uVar11 != 0x23) {\n          if (uVar11 != 0x2d) goto LAB_000240c4;\n          iVar6 = 0x2d;\n          goto LAB_0002406c;\n        }\n        param_3 = param_3 + 1;\n        cVar1 = *param_3;\n      }\n      iVar6 = 0x30;\n    } while( true );\n  }\n  if ((uint)(param_2 - (int)piVar18) < 2) goto LAB_00023ff8;\n  if (param_1 != (char *)0x0) {\n    *param_1 = cVar9;\n    param_1 = param_1 + 1;\n  }\n  piVar18 = (int *)((int)piVar18 + 1);\n  goto LAB_00023fc0;\nLAB_00024154:\n  do {\n    uVar11 = (uint)pcVar5[1];\n    param_3 = pcVar5 + 1;\n    uVar4 = uVar11 - 0x30;\n    if (((int)pcVar14 < 0xccccccd) && ((pcVar14 != (char *)0xccccccc || (*pcVar5 < 0x38)))) {\n      pcVar14 = (char *)(*pcVar5 + -0x30 + (int)pcVar14 * 10);\n    }\n    else {\n      if (9 < uVar4) {\n        pcVar14 = (char *)0x7fffffff;\n        break;\n      }\n      uVar11 = (uint)pcVar5[2];\n      pcVar14 = (char *)0x7fffffff;\n      param_3 = pcVar5 + 2;\n      uVar4 = uVar11 - 0x30;\n    }\n    pcVar5 = param_3;\n  } while (uVar4 < 10);\nLAB_000240d4:\n  if ((uVar11 == 0x45) || (uVar11 == 0x4f)) {\n    uVar11 = (uint)param_3[1];\n    param_3 = param_3 + 1;\n  }\n  pcVar5 = param_3;\n  if ((uVar11 & 0xff) < 0x7b) {\n                    /* WARNING: Could not emulate address calculation at 0x000240fc */\n                    /* WARNING: Treating indirect jump as call */\n    piVar18 = (int *)(*(code *)(&_gp_1 + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)))();\n    return piVar18;\n  }\n  do {\n    pcVar5 = pcVar5 + -1;\n    pcVar16 = param_3 + (1 - (int)pcVar5);\n  } while (*pcVar5 != '%');\n  pcVar12 = pcVar14;\n  if ((int)pcVar14 < 0) {\n    pcVar12 = (char *)0x0;\n  }\n  pcVar13 = pcVar16;\n  if (pcVar16 <= pcVar12) {\n    pcVar13 = pcVar12;\n  }\n  if ((char *)(param_2 - (int)piVar18) <= pcVar13) {\nLAB_00023ff8:\n    piVar18 = (int *)0x0;\n    goto LAB_00023ffc;\n  }\n  if (param_1 == (char *)0x0) {\n    piVar18 = (int *)((int)piVar18 + (int)pcVar13);\n  }\n  else {\n    pcVar15 = param_1;\n    if (pcVar16 < pcVar12) {\n      pcVar15 = param_1 + ((int)pcVar14 - (int)pcVar16);\n      if (iVar6 == 0x30) {\n        (*(code *)PTR_memset_00049524)(param_1,0x30);\n      }\n      else {\n        (*(code *)PTR_memset_00049524)(param_1,0x20);\n      }\n    }\n    if (cVar9 == '\0') {\n      (*(code *)PTR_memcpy_00049600)(pcVar15,pcVar5,pcVar16);\n    }\n    else {\n      (*pcVar10)(pcVar15,pcVar5,pcVar16);\n    }\n    param_1 = pcVar15 + (int)pcVar16;\n    piVar18 = (int *)((int)piVar18 + (int)pcVar13);\n  }\nLAB_00023fc0:\n  cVar9 = param_3[1];\n  param_3 = param_3 + 1;\n  if (cVar9 == '\0') goto LAB_00023fcc;\n  goto LAB_00023f94;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "char cVar9;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "code *pcVar10;" type_identifier (pointer_declarator "*pcVar10" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "char *pcVar14;" primitive_type (pointer_declarator "*pcVar14" * identifier) ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "char *pcVar16;" primitive_type (pointer_declarator "*pcVar16" * identifier) ;) (declaration "int *piVar17;" primitive_type (pointer_declarator "*piVar17" * identifier) ;) (declaration "int *piVar18;" primitive_type (pointer_declarator "*piVar18" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "undefined *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (expression_statement "puVar2 = PTR___stack_chk_guard_000495fc;" (assignment_expression "puVar2 = PTR___stack_chk_guard_000495fc" identifier = identifier) ;) (expression_statement "puVar20 = PTR_LAB_00049218;" (assignment_expression "puVar20 = PTR_LAB_00049218" identifier = identifier) ;) (expression_statement "iVar3 = *(int *)PTR___stack_chk_guard_000495fc;" (assignment_expression "iVar3 = *(int *)PTR___stack_chk_guard_000495fc" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000495fc" * (cast_expression "(int *)PTR___stack_chk_guard_000495fc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "cVar9 = *param_3;" (assignment_expression "cVar9 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "piVar18 = (int *)0x0;" (assignment_expression "piVar18 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (cVar9 == '\0') {\nLAB_00023fcc:\n    if ((param_1 != (char *)0x0) && (param_2 != 0)) {\n      *param_1 = '\0';\n    }\nLAB_00023ffc:\n    if (iVar3 == *(int *)puVar2) {\n      return piVar18;\n    }\n    puVar20 = PTR___stack_chk_fail_000495d0;\n    (*(code *)PTR___stack_chk_fail_000495d0)();\n    piVar17 = *(int **)(puVar20 + 0x23cfc);\n    iVar3 = *piVar17;\n    piVar18 = (int *)FUN_00023eb8();\n    if (iVar3 == *piVar17) {\n      return piVar18;\n    }\n    pcVar10 = *(code **)(puVar20 + 0x23cd0);\n    (*pcVar10)();\n    if (iVar3 != 0) {\n      iVar6 = (**(code **)(pcVar10 + 0x23b58))();\n      if (((iVar6 != 0) && (iVar19 = iVar6 + 1, 6 < iVar19 - iVar3)) &&\n         (iVar7 = (**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7), iVar7 == 0)) {\n        iVar3 = (**(code **)(pcVar10 + 0x23b10))(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3);\n        if (iVar3 != 0) {\n          **(int **)(pcVar10 + 0x23934) = iVar19;\n          piVar18 = *(int **)(pcVar10 + 0x23b68);\n          *piVar18 = iVar19;\n          return piVar18;\n        }\n        iVar3 = iVar6 + 4;\n        **(int **)(pcVar10 + 0x23b24) = iVar3;\n      }\n      **(int **)(pcVar10 + 0x23934) = iVar3;\n      piVar18 = *(int **)(pcVar10 + 0x23b68);\n      *piVar18 = iVar3;\n      return piVar18;\n    }\n    iVar3 = 1;\n    piVar18 = (int *)(*(int *)(pcVar10 + 0x23898) + 0x6990);\n    (**(code **)(pcVar10 + 0x23c24))(piVar18,1,0x37,**(undefined4 **)(pcVar10 + 0x23ca4));\n    pcVar10 = *(code **)(pcVar10 + 0x23b08);\n    (*pcVar10)();\n    *piVar18 = 0;\n    piVar18[1] = 0;\n    piVar18[2] = 0;\n    piVar18[3] = 0;\n    piVar18[4] = 0;\n    piVar18[5] = 0;\n    piVar18[6] = 0;\n    piVar18[7] = 0;\n    piVar18[8] = 0;\n    piVar18[9] = 0;\n    piVar18[10] = 0;\n    piVar18[0xb] = 0;\n    if (iVar3 == 10) {\n      pcVar10 = *(code **)(pcVar10 + 0x239d8);\n      (*pcVar10)();\n      piVar17 = (int *)(**(code **)(pcVar10 + 0x23abc))(0,piVar18,5);\n      if (piVar18 == piVar17) {\n        pbVar8 = (byte *)locale_charset();\n        if ((*pbVar8 & 0xdf) == 0x55) {\n          if (((((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46)) && (pbVar8[3] == 0x2d)\n              ) && ((pbVar8[4] == 0x38 && (pbVar8[5] == 0)))) {\n            if (*(char *)piVar17 != '`') {\n              return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d8);\n            }\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e4);\n          }\n        }\n        else if ((((((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&\n                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))) &&\n                 (pbVar8[5] == 0x33)) && ((pbVar8[6] == 0x30 && (pbVar8[7] == 0)))) {\n          if (*(char *)piVar17 != '`') {\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69dc);\n          }\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e0);\n        }\n        if (iVar3 != 9) {\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e8);\n        }\n        piVar17 = (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d4);\n      }\n      return piVar17;\n    }\n    *piVar18 = iVar3;\n    return piVar18;\n  }" if (parenthesized_expression "(cVar9 == '\0')" ( (binary_expression "cVar9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_00023fcc:\n    if ((param_1 != (char *)0x0) && (param_2 != 0)) {\n      *param_1 = '\0';\n    }\nLAB_00023ffc:\n    if (iVar3 == *(int *)puVar2) {\n      return piVar18;\n    }\n    puVar20 = PTR___stack_chk_fail_000495d0;\n    (*(code *)PTR___stack_chk_fail_000495d0)();\n    piVar17 = *(int **)(puVar20 + 0x23cfc);\n    iVar3 = *piVar17;\n    piVar18 = (int *)FUN_00023eb8();\n    if (iVar3 == *piVar17) {\n      return piVar18;\n    }\n    pcVar10 = *(code **)(puVar20 + 0x23cd0);\n    (*pcVar10)();\n    if (iVar3 != 0) {\n      iVar6 = (**(code **)(pcVar10 + 0x23b58))();\n      if (((iVar6 != 0) && (iVar19 = iVar6 + 1, 6 < iVar19 - iVar3)) &&\n         (iVar7 = (**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7), iVar7 == 0)) {\n        iVar3 = (**(code **)(pcVar10 + 0x23b10))(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3);\n        if (iVar3 != 0) {\n          **(int **)(pcVar10 + 0x23934) = iVar19;\n          piVar18 = *(int **)(pcVar10 + 0x23b68);\n          *piVar18 = iVar19;\n          return piVar18;\n        }\n        iVar3 = iVar6 + 4;\n        **(int **)(pcVar10 + 0x23b24) = iVar3;\n      }\n      **(int **)(pcVar10 + 0x23934) = iVar3;\n      piVar18 = *(int **)(pcVar10 + 0x23b68);\n      *piVar18 = iVar3;\n      return piVar18;\n    }\n    iVar3 = 1;\n    piVar18 = (int *)(*(int *)(pcVar10 + 0x23898) + 0x6990);\n    (**(code **)(pcVar10 + 0x23c24))(piVar18,1,0x37,**(undefined4 **)(pcVar10 + 0x23ca4));\n    pcVar10 = *(code **)(pcVar10 + 0x23b08);\n    (*pcVar10)();\n    *piVar18 = 0;\n    piVar18[1] = 0;\n    piVar18[2] = 0;\n    piVar18[3] = 0;\n    piVar18[4] = 0;\n    piVar18[5] = 0;\n    piVar18[6] = 0;\n    piVar18[7] = 0;\n    piVar18[8] = 0;\n    piVar18[9] = 0;\n    piVar18[10] = 0;\n    piVar18[0xb] = 0;\n    if (iVar3 == 10) {\n      pcVar10 = *(code **)(pcVar10 + 0x239d8);\n      (*pcVar10)();\n      piVar17 = (int *)(**(code **)(pcVar10 + 0x23abc))(0,piVar18,5);\n      if (piVar18 == piVar17) {\n        pbVar8 = (byte *)locale_charset();\n        if ((*pbVar8 & 0xdf) == 0x55) {\n          if (((((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46)) && (pbVar8[3] == 0x2d)\n              ) && ((pbVar8[4] == 0x38 && (pbVar8[5] == 0)))) {\n            if (*(char *)piVar17 != '`') {\n              return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d8);\n            }\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e4);\n          }\n        }\n        else if ((((((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&\n                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))) &&\n                 (pbVar8[5] == 0x33)) && ((pbVar8[6] == 0x30 && (pbVar8[7] == 0)))) {\n          if (*(char *)piVar17 != '`') {\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69dc);\n          }\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e0);\n        }\n        if (iVar3 != 9) {\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e8);\n        }\n        piVar17 = (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d4);\n      }\n      return piVar17;\n    }\n    *piVar18 = iVar3;\n    return piVar18;\n  }" { (labeled_statement "LAB_00023fcc:\n    if ((param_1 != (char *)0x0) && (param_2 != 0)) {\n      *param_1 = '\0';\n    }" statement_identifier : (if_statement "if ((param_1 != (char *)0x0) && (param_2 != 0)) {\n      *param_1 = '\0';\n    }" if (parenthesized_expression "((param_1 != (char *)0x0) && (param_2 != 0))" ( (binary_expression "(param_1 != (char *)0x0) && (param_2 != 0)" (parenthesized_expression "(param_1 != (char *)0x0)" ( (binary_expression "param_1 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      *param_1 = '\0';\n    }" { (expression_statement "*param_1 = '\0';" (assignment_expression "*param_1 = '\0'" (pointer_expression "*param_1" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) }))) (labeled_statement "LAB_00023ffc:\n    if (iVar3 == *(int *)puVar2) {\n      return piVar18;\n    }" statement_identifier : (if_statement "if (iVar3 == *(int *)puVar2) {\n      return piVar18;\n    }" if (parenthesized_expression "(iVar3 == *(int *)puVar2)" ( (binary_expression "iVar3 == *(int *)puVar2" identifier == (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n      return piVar18;\n    }" { (return_statement "return piVar18;" return identifier ;) }))) (expression_statement "puVar20 = PTR___stack_chk_fail_000495d0;" (assignment_expression "puVar20 = PTR___stack_chk_fail_000495d0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000495d0)();" (call_expression "(*(code *)PTR___stack_chk_fail_000495d0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000495d0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000495d0" * (cast_expression "(code *)PTR___stack_chk_fail_000495d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar17 = *(int **)(puVar20 + 0x23cfc);" (assignment_expression "piVar17 = *(int **)(puVar20 + 0x23cfc)" identifier = (pointer_expression "*(int **)(puVar20 + 0x23cfc)" * (cast_expression "(int **)(puVar20 + 0x23cfc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x23cfc)" ( (binary_expression "puVar20 + 0x23cfc" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *piVar17;" (assignment_expression "iVar3 = *piVar17" identifier = (pointer_expression "*piVar17" * identifier)) ;) (expression_statement "piVar18 = (int *)FUN_00023eb8();" (assignment_expression "piVar18 = (int *)FUN_00023eb8()" identifier = (cast_expression "(int *)FUN_00023eb8()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00023eb8()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (iVar3 == *piVar17) {\n      return piVar18;\n    }" if (parenthesized_expression "(iVar3 == *piVar17)" ( (binary_expression "iVar3 == *piVar17" identifier == (pointer_expression "*piVar17" * identifier)) )) (compound_statement "{\n      return piVar18;\n    }" { (return_statement "return piVar18;" return identifier ;) })) (expression_statement "pcVar10 = *(code **)(puVar20 + 0x23cd0);" (assignment_expression "pcVar10 = *(code **)(puVar20 + 0x23cd0)" identifier = (pointer_expression "*(code **)(puVar20 + 0x23cd0)" * (cast_expression "(code **)(puVar20 + 0x23cd0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x23cd0)" ( (binary_expression "puVar20 + 0x23cd0" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar10)();" (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "()" ( ))) ;) (if_statement "if (iVar3 != 0) {\n      iVar6 = (**(code **)(pcVar10 + 0x23b58))();\n      if (((iVar6 != 0) && (iVar19 = iVar6 + 1, 6 < iVar19 - iVar3)) &&\n         (iVar7 = (**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7), iVar7 == 0)) {\n        iVar3 = (**(code **)(pcVar10 + 0x23b10))(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3);\n        if (iVar3 != 0) {\n          **(int **)(pcVar10 + 0x23934) = iVar19;\n          piVar18 = *(int **)(pcVar10 + 0x23b68);\n          *piVar18 = iVar19;\n          return piVar18;\n        }\n        iVar3 = iVar6 + 4;\n        **(int **)(pcVar10 + 0x23b24) = iVar3;\n      }\n      **(int **)(pcVar10 + 0x23934) = iVar3;\n      piVar18 = *(int **)(pcVar10 + 0x23b68);\n      *piVar18 = iVar3;\n      return piVar18;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar6 = (**(code **)(pcVar10 + 0x23b58))();\n      if (((iVar6 != 0) && (iVar19 = iVar6 + 1, 6 < iVar19 - iVar3)) &&\n         (iVar7 = (**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7), iVar7 == 0)) {\n        iVar3 = (**(code **)(pcVar10 + 0x23b10))(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3);\n        if (iVar3 != 0) {\n          **(int **)(pcVar10 + 0x23934) = iVar19;\n          piVar18 = *(int **)(pcVar10 + 0x23b68);\n          *piVar18 = iVar19;\n          return piVar18;\n        }\n        iVar3 = iVar6 + 4;\n        **(int **)(pcVar10 + 0x23b24) = iVar3;\n      }\n      **(int **)(pcVar10 + 0x23934) = iVar3;\n      piVar18 = *(int **)(pcVar10 + 0x23b68);\n      *piVar18 = iVar3;\n      return piVar18;\n    }" { (expression_statement "iVar6 = (**(code **)(pcVar10 + 0x23b58))();" (assignment_expression "iVar6 = (**(code **)(pcVar10 + 0x23b58))()" identifier = (call_expression "(**(code **)(pcVar10 + 0x23b58))()" (parenthesized_expression "(**(code **)(pcVar10 + 0x23b58))" ( (pointer_expression "**(code **)(pcVar10 + 0x23b58)" * (pointer_expression "*(code **)(pcVar10 + 0x23b58)" * (cast_expression "(code **)(pcVar10 + 0x23b58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x23b58)" ( (binary_expression "pcVar10 + 0x23b58" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (((iVar6 != 0) && (iVar19 = iVar6 + 1, 6 < iVar19 - iVar3)) &&\n         (iVar7 = (**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7), iVar7 == 0)) {\n        iVar3 = (**(code **)(pcVar10 + 0x23b10))(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3);\n        if (iVar3 != 0) {\n          **(int **)(pcVar10 + 0x23934) = iVar19;\n          piVar18 = *(int **)(pcVar10 + 0x23b68);\n          *piVar18 = iVar19;\n          return piVar18;\n        }\n        iVar3 = iVar6 + 4;\n        **(int **)(pcVar10 + 0x23b24) = iVar3;\n      }" if (parenthesized_expression "(((iVar6 != 0) && (iVar19 = iVar6 + 1, 6 < iVar19 - iVar3)) &&\n         (iVar7 = (**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7), iVar7 == 0))" ( (binary_expression "((iVar6 != 0) && (iVar19 = iVar6 + 1, 6 < iVar19 - iVar3)) &&\n         (iVar7 = (**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7), iVar7 == 0)" (parenthesized_expression "((iVar6 != 0) && (iVar19 = iVar6 + 1, 6 < iVar19 - iVar3))" ( (binary_expression "(iVar6 != 0) && (iVar19 = iVar6 + 1, 6 < iVar19 - iVar3)" (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar19 = iVar6 + 1, 6 < iVar19 - iVar3)" ( (comma_expression "iVar19 = iVar6 + 1, 6 < iVar19 - iVar3" (assignment_expression "iVar19 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) , (binary_expression "6 < iVar19 - iVar3" number_literal < (binary_expression "iVar19 - iVar3" identifier - identifier))) ))) )) && (parenthesized_expression "(iVar7 = (**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7), iVar7 == 0)" ( (comma_expression "iVar7 = (**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7), iVar7 == 0" (assignment_expression "iVar7 = (**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7)" identifier = (call_expression "(**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7)" (parenthesized_expression "(**(code **)(pcVar10 + 0x23b10))" ( (pointer_expression "**(code **)(pcVar10 + 0x23b10)" * (pointer_expression "*(code **)(pcVar10 + 0x23b10)" * (cast_expression "(code **)(pcVar10 + 0x23b10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x23b10)" ( (binary_expression "pcVar10 + 0x23b10" identifier + number_literal) ))))) )) (argument_list "(iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7)" ( (binary_expression "iVar6 + -6" identifier + number_literal) , (binary_expression "*(int *)(pcVar10 + 0x23898) + 0x69c8" (pointer_expression "*(int *)(pcVar10 + 0x23898)" * (cast_expression "(int *)(pcVar10 + 0x23898)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x23898)" ( (binary_expression "pcVar10 + 0x23898" identifier + number_literal) )))) + number_literal) , number_literal )))) , (binary_expression "iVar7 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n        iVar3 = (**(code **)(pcVar10 + 0x23b10))(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3);\n        if (iVar3 != 0) {\n          **(int **)(pcVar10 + 0x23934) = iVar19;\n          piVar18 = *(int **)(pcVar10 + 0x23b68);\n          *piVar18 = iVar19;\n          return piVar18;\n        }\n        iVar3 = iVar6 + 4;\n        **(int **)(pcVar10 + 0x23b24) = iVar3;\n      }" { (expression_statement "iVar3 = (**(code **)(pcVar10 + 0x23b10))(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3);" (assignment_expression "iVar3 = (**(code **)(pcVar10 + 0x23b10))(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3)" identifier = (call_expression "(**(code **)(pcVar10 + 0x23b10))(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3)" (parenthesized_expression "(**(code **)(pcVar10 + 0x23b10))" ( (pointer_expression "**(code **)(pcVar10 + 0x23b10)" * (pointer_expression "*(code **)(pcVar10 + 0x23b10)" * (cast_expression "(code **)(pcVar10 + 0x23b10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x23b10)" ( (binary_expression "pcVar10 + 0x23b10" identifier + number_literal) ))))) )) (argument_list "(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3)" ( identifier , (binary_expression "*(int *)(pcVar10 + 0x23898) + 0x69d0" (pointer_expression "*(int *)(pcVar10 + 0x23898)" * (cast_expression "(int *)(pcVar10 + 0x23898)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x23898)" ( (binary_expression "pcVar10 + 0x23898" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (if_statement "if (iVar3 != 0) {\n          **(int **)(pcVar10 + 0x23934) = iVar19;\n          piVar18 = *(int **)(pcVar10 + 0x23b68);\n          *piVar18 = iVar19;\n          return piVar18;\n        }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n          **(int **)(pcVar10 + 0x23934) = iVar19;\n          piVar18 = *(int **)(pcVar10 + 0x23b68);\n          *piVar18 = iVar19;\n          return piVar18;\n        }" { (expression_statement "**(int **)(pcVar10 + 0x23934) = iVar19;" (assignment_expression "**(int **)(pcVar10 + 0x23934) = iVar19" (pointer_expression "**(int **)(pcVar10 + 0x23934)" * (pointer_expression "*(int **)(pcVar10 + 0x23934)" * (cast_expression "(int **)(pcVar10 + 0x23934)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x23934)" ( (binary_expression "pcVar10 + 0x23934" identifier + number_literal) ))))) = identifier) ;) (expression_statement "piVar18 = *(int **)(pcVar10 + 0x23b68);" (assignment_expression "piVar18 = *(int **)(pcVar10 + 0x23b68)" identifier = (pointer_expression "*(int **)(pcVar10 + 0x23b68)" * (cast_expression "(int **)(pcVar10 + 0x23b68)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x23b68)" ( (binary_expression "pcVar10 + 0x23b68" identifier + number_literal) ))))) ;) (expression_statement "*piVar18 = iVar19;" (assignment_expression "*piVar18 = iVar19" (pointer_expression "*piVar18" * identifier) = identifier) ;) (return_statement "return piVar18;" return identifier ;) })) (expression_statement "iVar3 = iVar6 + 4;" (assignment_expression "iVar3 = iVar6 + 4" identifier = (binary_expression "iVar6 + 4" identifier + number_literal)) ;) (expression_statement "**(int **)(pcVar10 + 0x23b24) = iVar3;" (assignment_expression "**(int **)(pcVar10 + 0x23b24) = iVar3" (pointer_expression "**(int **)(pcVar10 + 0x23b24)" * (pointer_expression "*(int **)(pcVar10 + 0x23b24)" * (cast_expression "(int **)(pcVar10 + 0x23b24)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x23b24)" ( (binary_expression "pcVar10 + 0x23b24" identifier + number_literal) ))))) = identifier) ;) })) (expression_statement "**(int **)(pcVar10 + 0x23934) = iVar3;" (assignment_expression "**(int **)(pcVar10 + 0x23934) = iVar3" (pointer_expression "**(int **)(pcVar10 + 0x23934)" * (pointer_expression "*(int **)(pcVar10 + 0x23934)" * (cast_expression "(int **)(pcVar10 + 0x23934)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x23934)" ( (binary_expression "pcVar10 + 0x23934" identifier + number_literal) ))))) = identifier) ;) (expression_statement "piVar18 = *(int **)(pcVar10 + 0x23b68);" (assignment_expression "piVar18 = *(int **)(pcVar10 + 0x23b68)" identifier = (pointer_expression "*(int **)(pcVar10 + 0x23b68)" * (cast_expression "(int **)(pcVar10 + 0x23b68)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x23b68)" ( (binary_expression "pcVar10 + 0x23b68" identifier + number_literal) ))))) ;) (expression_statement "*piVar18 = iVar3;" (assignment_expression "*piVar18 = iVar3" (pointer_expression "*piVar18" * identifier) = identifier) ;) (return_statement "return piVar18;" return identifier ;) })) (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) (expression_statement "piVar18 = (int *)(*(int *)(pcVar10 + 0x23898) + 0x6990);" (assignment_expression "piVar18 = (int *)(*(int *)(pcVar10 + 0x23898) + 0x6990)" identifier = (cast_expression "(int *)(*(int *)(pcVar10 + 0x23898) + 0x6990)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar10 + 0x23898) + 0x6990)" ( (binary_expression "*(int *)(pcVar10 + 0x23898) + 0x6990" (pointer_expression "*(int *)(pcVar10 + 0x23898)" * (cast_expression "(int *)(pcVar10 + 0x23898)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x23898)" ( (binary_expression "pcVar10 + 0x23898" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar10 + 0x23c24))(piVar18,1,0x37,**(undefined4 **)(pcVar10 + 0x23ca4));" (call_expression "(**(code **)(pcVar10 + 0x23c24))(piVar18,1,0x37,**(undefined4 **)(pcVar10 + 0x23ca4))" (parenthesized_expression "(**(code **)(pcVar10 + 0x23c24))" ( (pointer_expression "**(code **)(pcVar10 + 0x23c24)" * (pointer_expression "*(code **)(pcVar10 + 0x23c24)" * (cast_expression "(code **)(pcVar10 + 0x23c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x23c24)" ( (binary_expression "pcVar10 + 0x23c24" identifier + number_literal) ))))) )) (argument_list "(piVar18,1,0x37,**(undefined4 **)(pcVar10 + 0x23ca4))" ( identifier , number_literal , number_literal , (pointer_expression "**(undefined4 **)(pcVar10 + 0x23ca4)" * (pointer_expression "*(undefined4 **)(pcVar10 + 0x23ca4)" * (cast_expression "(undefined4 **)(pcVar10 + 0x23ca4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x23ca4)" ( (binary_expression "pcVar10 + 0x23ca4" identifier + number_literal) ))))) ))) ;) (expression_statement "pcVar10 = *(code **)(pcVar10 + 0x23b08);" (assignment_expression "pcVar10 = *(code **)(pcVar10 + 0x23b08)" identifier = (pointer_expression "*(code **)(pcVar10 + 0x23b08)" * (cast_expression "(code **)(pcVar10 + 0x23b08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x23b08)" ( (binary_expression "pcVar10 + 0x23b08" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar10)();" (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "*piVar18 = 0;" (assignment_expression "*piVar18 = 0" (pointer_expression "*piVar18" * identifier) = number_literal) ;) (expression_statement "piVar18[1] = 0;" (assignment_expression "piVar18[1] = 0" (subscript_expression "piVar18[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar18[2] = 0;" (assignment_expression "piVar18[2] = 0" (subscript_expression "piVar18[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar18[3] = 0;" (assignment_expression "piVar18[3] = 0" (subscript_expression "piVar18[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar18[4] = 0;" (assignment_expression "piVar18[4] = 0" (subscript_expression "piVar18[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar18[5] = 0;" (assignment_expression "piVar18[5] = 0" (subscript_expression "piVar18[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar18[6] = 0;" (assignment_expression "piVar18[6] = 0" (subscript_expression "piVar18[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar18[7] = 0;" (assignment_expression "piVar18[7] = 0" (subscript_expression "piVar18[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar18[8] = 0;" (assignment_expression "piVar18[8] = 0" (subscript_expression "piVar18[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar18[9] = 0;" (assignment_expression "piVar18[9] = 0" (subscript_expression "piVar18[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar18[10] = 0;" (assignment_expression "piVar18[10] = 0" (subscript_expression "piVar18[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar18[0xb] = 0;" (assignment_expression "piVar18[0xb] = 0" (subscript_expression "piVar18[0xb]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (iVar3 == 10) {\n      pcVar10 = *(code **)(pcVar10 + 0x239d8);\n      (*pcVar10)();\n      piVar17 = (int *)(**(code **)(pcVar10 + 0x23abc))(0,piVar18,5);\n      if (piVar18 == piVar17) {\n        pbVar8 = (byte *)locale_charset();\n        if ((*pbVar8 & 0xdf) == 0x55) {\n          if (((((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46)) && (pbVar8[3] == 0x2d)\n              ) && ((pbVar8[4] == 0x38 && (pbVar8[5] == 0)))) {\n            if (*(char *)piVar17 != '`') {\n              return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d8);\n            }\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e4);\n          }\n        }\n        else if ((((((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&\n                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))) &&\n                 (pbVar8[5] == 0x33)) && ((pbVar8[6] == 0x30 && (pbVar8[7] == 0)))) {\n          if (*(char *)piVar17 != '`') {\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69dc);\n          }\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e0);\n        }\n        if (iVar3 != 9) {\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e8);\n        }\n        piVar17 = (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d4);\n      }\n      return piVar17;\n    }" if (parenthesized_expression "(iVar3 == 10)" ( (binary_expression "iVar3 == 10" identifier == number_literal) )) (compound_statement "{\n      pcVar10 = *(code **)(pcVar10 + 0x239d8);\n      (*pcVar10)();\n      piVar17 = (int *)(**(code **)(pcVar10 + 0x23abc))(0,piVar18,5);\n      if (piVar18 == piVar17) {\n        pbVar8 = (byte *)locale_charset();\n        if ((*pbVar8 & 0xdf) == 0x55) {\n          if (((((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46)) && (pbVar8[3] == 0x2d)\n              ) && ((pbVar8[4] == 0x38 && (pbVar8[5] == 0)))) {\n            if (*(char *)piVar17 != '`') {\n              return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d8);\n            }\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e4);\n          }\n        }\n        else if ((((((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&\n                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))) &&\n                 (pbVar8[5] == 0x33)) && ((pbVar8[6] == 0x30 && (pbVar8[7] == 0)))) {\n          if (*(char *)piVar17 != '`') {\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69dc);\n          }\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e0);\n        }\n        if (iVar3 != 9) {\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e8);\n        }\n        piVar17 = (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d4);\n      }\n      return piVar17;\n    }" { (expression_statement "pcVar10 = *(code **)(pcVar10 + 0x239d8);" (assignment_expression "pcVar10 = *(code **)(pcVar10 + 0x239d8)" identifier = (pointer_expression "*(code **)(pcVar10 + 0x239d8)" * (cast_expression "(code **)(pcVar10 + 0x239d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x239d8)" ( (binary_expression "pcVar10 + 0x239d8" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar10)();" (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar17 = (int *)(**(code **)(pcVar10 + 0x23abc))(0,piVar18,5);" (assignment_expression "piVar17 = (int *)(**(code **)(pcVar10 + 0x23abc))(0,piVar18,5)" identifier = (cast_expression "(int *)(**(code **)(pcVar10 + 0x23abc))(0,piVar18,5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar10 + 0x23abc))(0,piVar18,5)" (parenthesized_expression "(**(code **)(pcVar10 + 0x23abc))" ( (pointer_expression "**(code **)(pcVar10 + 0x23abc)" * (pointer_expression "*(code **)(pcVar10 + 0x23abc)" * (cast_expression "(code **)(pcVar10 + 0x23abc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x23abc)" ( (binary_expression "pcVar10 + 0x23abc" identifier + number_literal) ))))) )) (argument_list "(0,piVar18,5)" ( number_literal , identifier , number_literal ))))) ;) (if_statement "if (piVar18 == piVar17) {\n        pbVar8 = (byte *)locale_charset();\n        if ((*pbVar8 & 0xdf) == 0x55) {\n          if (((((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46)) && (pbVar8[3] == 0x2d)\n              ) && ((pbVar8[4] == 0x38 && (pbVar8[5] == 0)))) {\n            if (*(char *)piVar17 != '`') {\n              return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d8);\n            }\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e4);\n          }\n        }\n        else if ((((((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&\n                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))) &&\n                 (pbVar8[5] == 0x33)) && ((pbVar8[6] == 0x30 && (pbVar8[7] == 0)))) {\n          if (*(char *)piVar17 != '`') {\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69dc);\n          }\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e0);\n        }\n        if (iVar3 != 9) {\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e8);\n        }\n        piVar17 = (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d4);\n      }" if (parenthesized_expression "(piVar18 == piVar17)" ( (binary_expression "piVar18 == piVar17" identifier == identifier) )) (compound_statement "{\n        pbVar8 = (byte *)locale_charset();\n        if ((*pbVar8 & 0xdf) == 0x55) {\n          if (((((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46)) && (pbVar8[3] == 0x2d)\n              ) && ((pbVar8[4] == 0x38 && (pbVar8[5] == 0)))) {\n            if (*(char *)piVar17 != '`') {\n              return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d8);\n            }\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e4);\n          }\n        }\n        else if ((((((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&\n                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))) &&\n                 (pbVar8[5] == 0x33)) && ((pbVar8[6] == 0x30 && (pbVar8[7] == 0)))) {\n          if (*(char *)piVar17 != '`') {\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69dc);\n          }\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e0);\n        }\n        if (iVar3 != 9) {\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e8);\n        }\n        piVar17 = (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d4);\n      }" { (expression_statement "pbVar8 = (byte *)locale_charset();" (assignment_expression "pbVar8 = (byte *)locale_charset()" identifier = (cast_expression "(byte *)locale_charset()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "locale_charset()" identifier (argument_list "()" ( ))))) ;) (if_statement "if ((*pbVar8 & 0xdf) == 0x55) {\n          if (((((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46)) && (pbVar8[3] == 0x2d)\n              ) && ((pbVar8[4] == 0x38 && (pbVar8[5] == 0)))) {\n            if (*(char *)piVar17 != '`') {\n              return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d8);\n            }\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e4);\n          }\n        }\n        else if ((((((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&\n                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))) &&\n                 (pbVar8[5] == 0x33)) && ((pbVar8[6] == 0x30 && (pbVar8[7] == 0)))) {\n          if (*(char *)piVar17 != '`') {\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69dc);\n          }\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e0);\n        }" if (parenthesized_expression "((*pbVar8 & 0xdf) == 0x55)" ( (binary_expression "(*pbVar8 & 0xdf) == 0x55" (parenthesized_expression "(*pbVar8 & 0xdf)" ( (binary_expression "*pbVar8 & 0xdf" (pointer_expression "*pbVar8" * identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n          if (((((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46)) && (pbVar8[3] == 0x2d)\n              ) && ((pbVar8[4] == 0x38 && (pbVar8[5] == 0)))) {\n            if (*(char *)piVar17 != '`') {\n              return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d8);\n            }\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e4);\n          }\n        }" { (if_statement "if (((((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46)) && (pbVar8[3] == 0x2d)\n              ) && ((pbVar8[4] == 0x38 && (pbVar8[5] == 0)))) {\n            if (*(char *)piVar17 != '`') {\n              return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d8);\n            }\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e4);\n          }" if (parenthesized_expression "(((((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46)) && (pbVar8[3] == 0x2d)\n              ) && ((pbVar8[4] == 0x38 && (pbVar8[5] == 0))))" ( (binary_expression "((((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46)) && (pbVar8[3] == 0x2d)\n              ) && ((pbVar8[4] == 0x38 && (pbVar8[5] == 0)))" (parenthesized_expression "((((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46)) && (pbVar8[3] == 0x2d)\n              )" ( (binary_expression "(((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46)) && (pbVar8[3] == 0x2d)" (parenthesized_expression "(((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46))" ( (binary_expression "((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46)" (parenthesized_expression "((pbVar8[1] & 0xdf) == 0x54)" ( (binary_expression "(pbVar8[1] & 0xdf) == 0x54" (parenthesized_expression "(pbVar8[1] & 0xdf)" ( (binary_expression "pbVar8[1] & 0xdf" (subscript_expression "pbVar8[1]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) && (parenthesized_expression "((pbVar8[2] & 0xdf) == 0x46)" ( (binary_expression "(pbVar8[2] & 0xdf) == 0x46" (parenthesized_expression "(pbVar8[2] & 0xdf)" ( (binary_expression "pbVar8[2] & 0xdf" (subscript_expression "pbVar8[2]" identifier [ number_literal ]) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "(pbVar8[3] == 0x2d)" ( (binary_expression "pbVar8[3] == 0x2d" (subscript_expression "pbVar8[3]" identifier [ number_literal ]) == number_literal) ))) )) && (parenthesized_expression "((pbVar8[4] == 0x38 && (pbVar8[5] == 0)))" ( (parenthesized_expression "(pbVar8[4] == 0x38 && (pbVar8[5] == 0))" ( (binary_expression "pbVar8[4] == 0x38 && (pbVar8[5] == 0)" (binary_expression "pbVar8[4] == 0x38" (subscript_expression "pbVar8[4]" identifier [ number_literal ]) == number_literal) && (parenthesized_expression "(pbVar8[5] == 0)" ( (binary_expression "pbVar8[5] == 0" (subscript_expression "pbVar8[5]" identifier [ number_literal ]) == number_literal) ))) )) ))) )) (compound_statement "{\n            if (*(char *)piVar17 != '`') {\n              return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d8);\n            }\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e4);\n          }" { (if_statement "if (*(char *)piVar17 != '`') {\n              return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d8);\n            }" if (parenthesized_expression "(*(char *)piVar17 != '`')" ( (binary_expression "*(char *)piVar17 != '`'" (pointer_expression "*(char *)piVar17" * (cast_expression "(char *)piVar17" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != (char_literal "'`'" ' character ')) )) (compound_statement "{\n              return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d8);\n            }" { (return_statement "return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d8);" return (cast_expression "(int *)(*(int *)(pcVar10 + 0x23700) + 0x69d8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar10 + 0x23700) + 0x69d8)" ( (binary_expression "*(int *)(pcVar10 + 0x23700) + 0x69d8" (pointer_expression "*(int *)(pcVar10 + 0x23700)" * (cast_expression "(int *)(pcVar10 + 0x23700)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x23700)" ( (binary_expression "pcVar10 + 0x23700" identifier + number_literal) )))) + number_literal) ))) ;) })) (return_statement "return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e4);" return (cast_expression "(int *)(*(int *)(pcVar10 + 0x23700) + 0x69e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar10 + 0x23700) + 0x69e4)" ( (binary_expression "*(int *)(pcVar10 + 0x23700) + 0x69e4" (pointer_expression "*(int *)(pcVar10 + 0x23700)" * (cast_expression "(int *)(pcVar10 + 0x23700)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x23700)" ( (binary_expression "pcVar10 + 0x23700" identifier + number_literal) )))) + number_literal) ))) ;) })) }) (else_clause "else if ((((((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&\n                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))) &&\n                 (pbVar8[5] == 0x33)) && ((pbVar8[6] == 0x30 && (pbVar8[7] == 0)))) {\n          if (*(char *)piVar17 != '`') {\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69dc);\n          }\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e0);\n        }" else (if_statement "if ((((((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&\n                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))) &&\n                 (pbVar8[5] == 0x33)) && ((pbVar8[6] == 0x30 && (pbVar8[7] == 0)))) {\n          if (*(char *)piVar17 != '`') {\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69dc);\n          }\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e0);\n        }" if (parenthesized_expression "((((((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&\n                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))) &&\n                 (pbVar8[5] == 0x33)) && ((pbVar8[6] == 0x30 && (pbVar8[7] == 0))))" ( (binary_expression "(((((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&\n                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))) &&\n                 (pbVar8[5] == 0x33)) && ((pbVar8[6] == 0x30 && (pbVar8[7] == 0)))" (parenthesized_expression "(((((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&\n                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))) &&\n                 (pbVar8[5] == 0x33))" ( (binary_expression "((((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&\n                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))) &&\n                 (pbVar8[5] == 0x33)" (parenthesized_expression "((((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&\n                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30))))))" ( (binary_expression "(((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&\n                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))" (parenthesized_expression "(((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42))" ( (binary_expression "((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)" (parenthesized_expression "((*pbVar8 & 0xdf) == 0x47)" ( (binary_expression "(*pbVar8 & 0xdf) == 0x47" (parenthesized_expression "(*pbVar8 & 0xdf)" ( (binary_expression "*pbVar8 & 0xdf" (pointer_expression "*pbVar8" * identifier) & number_literal) )) == number_literal) )) && (parenthesized_expression "((pbVar8[1] & 0xdf) == 0x42)" ( (binary_expression "(pbVar8[1] & 0xdf) == 0x42" (parenthesized_expression "(pbVar8[1] & 0xdf)" ( (binary_expression "pbVar8[1] & 0xdf" (subscript_expression "pbVar8[1]" identifier [ number_literal ]) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))" ( (parenthesized_expression "(pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30))))" ( (binary_expression "pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))" (binary_expression "pbVar8[2] == 0x31" (subscript_expression "pbVar8[2]" identifier [ number_literal ]) == number_literal) && (parenthesized_expression "((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))" ( (parenthesized_expression "(pbVar8[3] == 0x38 && (pbVar8[4] == 0x30))" ( (binary_expression "pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)" (binary_expression "pbVar8[3] == 0x38" (subscript_expression "pbVar8[3]" identifier [ number_literal ]) == number_literal) && (parenthesized_expression "(pbVar8[4] == 0x30)" ( (binary_expression "pbVar8[4] == 0x30" (subscript_expression "pbVar8[4]" identifier [ number_literal ]) == number_literal) ))) )) ))) )) ))) )) && (parenthesized_expression "(pbVar8[5] == 0x33)" ( (binary_expression "pbVar8[5] == 0x33" (subscript_expression "pbVar8[5]" identifier [ number_literal ]) == number_literal) ))) )) && (parenthesized_expression "((pbVar8[6] == 0x30 && (pbVar8[7] == 0)))" ( (parenthesized_expression "(pbVar8[6] == 0x30 && (pbVar8[7] == 0))" ( (binary_expression "pbVar8[6] == 0x30 && (pbVar8[7] == 0)" (binary_expression "pbVar8[6] == 0x30" (subscript_expression "pbVar8[6]" identifier [ number_literal ]) == number_literal) && (parenthesized_expression "(pbVar8[7] == 0)" ( (binary_expression "pbVar8[7] == 0" (subscript_expression "pbVar8[7]" identifier [ number_literal ]) == number_literal) ))) )) ))) )) (compound_statement "{\n          if (*(char *)piVar17 != '`') {\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69dc);\n          }\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e0);\n        }" { (if_statement "if (*(char *)piVar17 != '`') {\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69dc);\n          }" if (parenthesized_expression "(*(char *)piVar17 != '`')" ( (binary_expression "*(char *)piVar17 != '`'" (pointer_expression "*(char *)piVar17" * (cast_expression "(char *)piVar17" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != (char_literal "'`'" ' character ')) )) (compound_statement "{\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69dc);\n          }" { (return_statement "return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69dc);" return (cast_expression "(int *)(*(int *)(pcVar10 + 0x23700) + 0x69dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar10 + 0x23700) + 0x69dc)" ( (binary_expression "*(int *)(pcVar10 + 0x23700) + 0x69dc" (pointer_expression "*(int *)(pcVar10 + 0x23700)" * (cast_expression "(int *)(pcVar10 + 0x23700)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x23700)" ( (binary_expression "pcVar10 + 0x23700" identifier + number_literal) )))) + number_literal) ))) ;) })) (return_statement "return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e0);" return (cast_expression "(int *)(*(int *)(pcVar10 + 0x23700) + 0x69e0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar10 + 0x23700) + 0x69e0)" ( (binary_expression "*(int *)(pcVar10 + 0x23700) + 0x69e0" (pointer_expression "*(int *)(pcVar10 + 0x23700)" * (cast_expression "(int *)(pcVar10 + 0x23700)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x23700)" ( (binary_expression "pcVar10 + 0x23700" identifier + number_literal) )))) + number_literal) ))) ;) })))) (if_statement "if (iVar3 != 9) {\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e8);\n        }" if (parenthesized_expression "(iVar3 != 9)" ( (binary_expression "iVar3 != 9" identifier != number_literal) )) (compound_statement "{\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e8);\n        }" { (return_statement "return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e8);" return (cast_expression "(int *)(*(int *)(pcVar10 + 0x23700) + 0x69e8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar10 + 0x23700) + 0x69e8)" ( (binary_expression "*(int *)(pcVar10 + 0x23700) + 0x69e8" (pointer_expression "*(int *)(pcVar10 + 0x23700)" * (cast_expression "(int *)(pcVar10 + 0x23700)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x23700)" ( (binary_expression "pcVar10 + 0x23700" identifier + number_literal) )))) + number_literal) ))) ;) })) (expression_statement "piVar17 = (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d4);" (assignment_expression "piVar17 = (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d4)" identifier = (cast_expression "(int *)(*(int *)(pcVar10 + 0x23700) + 0x69d4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar10 + 0x23700) + 0x69d4)" ( (binary_expression "*(int *)(pcVar10 + 0x23700) + 0x69d4" (pointer_expression "*(int *)(pcVar10 + 0x23700)" * (cast_expression "(int *)(pcVar10 + 0x23700)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x23700)" ( (binary_expression "pcVar10 + 0x23700" identifier + number_literal) )))) + number_literal) )))) ;) })) (return_statement "return piVar17;" return identifier ;) })) (expression_statement "*piVar18 = iVar3;" (assignment_expression "*piVar18 = iVar3" (pointer_expression "*piVar18" * identifier) = identifier) ;) (return_statement "return piVar18;" return identifier ;) })) (expression_statement "pcVar10 = (code *)(PTR_LAB_00049280 + 0x3e34);" (assignment_expression "pcVar10 = (code *)(PTR_LAB_00049280 + 0x3e34)" identifier = (cast_expression "(code *)(PTR_LAB_00049280 + 0x3e34)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00049280 + 0x3e34)" ( (binary_expression "PTR_LAB_00049280 + 0x3e34" identifier + number_literal) )))) ;) (labeled_statement "LAB_00023f94:\n  if (cVar9 == '%') {\n    iVar6 = 0;\n    cVar9 = param_5;\nLAB_0002406c:\n    do {\n      param_3 = param_3 + 1;\n      cVar1 = *param_3;\n      while (uVar11 = (uint)cVar1, uVar11 != 0x30) {\n        if (0x30 < (int)uVar11) {\n          if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }\n          if (uVar11 == 0x5f) {\n            iVar6 = 0x5f;\n            goto LAB_0002406c;\n          }\nLAB_000240c4:\n          pcVar14 = (char *)0xffffffff;\n          if (9 < uVar11 - 0x30) goto LAB_000240d4;\n          pcVar14 = (char *)0x0;\n          pcVar5 = param_3;\n          goto LAB_00024154;\n        }\n        if (uVar11 != 0x23) {\n          if (uVar11 != 0x2d) goto LAB_000240c4;\n          iVar6 = 0x2d;\n          goto LAB_0002406c;\n        }\n        param_3 = param_3 + 1;\n        cVar1 = *param_3;\n      }\n      iVar6 = 0x30;\n    } while( true );\n  }" statement_identifier : (if_statement "if (cVar9 == '%') {\n    iVar6 = 0;\n    cVar9 = param_5;\nLAB_0002406c:\n    do {\n      param_3 = param_3 + 1;\n      cVar1 = *param_3;\n      while (uVar11 = (uint)cVar1, uVar11 != 0x30) {\n        if (0x30 < (int)uVar11) {\n          if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }\n          if (uVar11 == 0x5f) {\n            iVar6 = 0x5f;\n            goto LAB_0002406c;\n          }\nLAB_000240c4:\n          pcVar14 = (char *)0xffffffff;\n          if (9 < uVar11 - 0x30) goto LAB_000240d4;\n          pcVar14 = (char *)0x0;\n          pcVar5 = param_3;\n          goto LAB_00024154;\n        }\n        if (uVar11 != 0x23) {\n          if (uVar11 != 0x2d) goto LAB_000240c4;\n          iVar6 = 0x2d;\n          goto LAB_0002406c;\n        }\n        param_3 = param_3 + 1;\n        cVar1 = *param_3;\n      }\n      iVar6 = 0x30;\n    } while( true );\n  }" if (parenthesized_expression "(cVar9 == '%')" ( (binary_expression "cVar9 == '%'" identifier == (char_literal "'%'" ' character ')) )) (compound_statement "{\n    iVar6 = 0;\n    cVar9 = param_5;\nLAB_0002406c:\n    do {\n      param_3 = param_3 + 1;\n      cVar1 = *param_3;\n      while (uVar11 = (uint)cVar1, uVar11 != 0x30) {\n        if (0x30 < (int)uVar11) {\n          if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }\n          if (uVar11 == 0x5f) {\n            iVar6 = 0x5f;\n            goto LAB_0002406c;\n          }\nLAB_000240c4:\n          pcVar14 = (char *)0xffffffff;\n          if (9 < uVar11 - 0x30) goto LAB_000240d4;\n          pcVar14 = (char *)0x0;\n          pcVar5 = param_3;\n          goto LAB_00024154;\n        }\n        if (uVar11 != 0x23) {\n          if (uVar11 != 0x2d) goto LAB_000240c4;\n          iVar6 = 0x2d;\n          goto LAB_0002406c;\n        }\n        param_3 = param_3 + 1;\n        cVar1 = *param_3;\n      }\n      iVar6 = 0x30;\n    } while( true );\n  }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "cVar9 = param_5;" (assignment_expression "cVar9 = param_5" identifier = identifier) ;) (labeled_statement "LAB_0002406c:\n    do {\n      param_3 = param_3 + 1;\n      cVar1 = *param_3;\n      while (uVar11 = (uint)cVar1, uVar11 != 0x30) {\n        if (0x30 < (int)uVar11) {\n          if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }\n          if (uVar11 == 0x5f) {\n            iVar6 = 0x5f;\n            goto LAB_0002406c;\n          }\nLAB_000240c4:\n          pcVar14 = (char *)0xffffffff;\n          if (9 < uVar11 - 0x30) goto LAB_000240d4;\n          pcVar14 = (char *)0x0;\n          pcVar5 = param_3;\n          goto LAB_00024154;\n        }\n        if (uVar11 != 0x23) {\n          if (uVar11 != 0x2d) goto LAB_000240c4;\n          iVar6 = 0x2d;\n          goto LAB_0002406c;\n        }\n        param_3 = param_3 + 1;\n        cVar1 = *param_3;\n      }\n      iVar6 = 0x30;\n    } while( true );" statement_identifier : (do_statement "do {\n      param_3 = param_3 + 1;\n      cVar1 = *param_3;\n      while (uVar11 = (uint)cVar1, uVar11 != 0x30) {\n        if (0x30 < (int)uVar11) {\n          if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }\n          if (uVar11 == 0x5f) {\n            iVar6 = 0x5f;\n            goto LAB_0002406c;\n          }\nLAB_000240c4:\n          pcVar14 = (char *)0xffffffff;\n          if (9 < uVar11 - 0x30) goto LAB_000240d4;\n          pcVar14 = (char *)0x0;\n          pcVar5 = param_3;\n          goto LAB_00024154;\n        }\n        if (uVar11 != 0x23) {\n          if (uVar11 != 0x2d) goto LAB_000240c4;\n          iVar6 = 0x2d;\n          goto LAB_0002406c;\n        }\n        param_3 = param_3 + 1;\n        cVar1 = *param_3;\n      }\n      iVar6 = 0x30;\n    } while( true );" do (compound_statement "{\n      param_3 = param_3 + 1;\n      cVar1 = *param_3;\n      while (uVar11 = (uint)cVar1, uVar11 != 0x30) {\n        if (0x30 < (int)uVar11) {\n          if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }\n          if (uVar11 == 0x5f) {\n            iVar6 = 0x5f;\n            goto LAB_0002406c;\n          }\nLAB_000240c4:\n          pcVar14 = (char *)0xffffffff;\n          if (9 < uVar11 - 0x30) goto LAB_000240d4;\n          pcVar14 = (char *)0x0;\n          pcVar5 = param_3;\n          goto LAB_00024154;\n        }\n        if (uVar11 != 0x23) {\n          if (uVar11 != 0x2d) goto LAB_000240c4;\n          iVar6 = 0x2d;\n          goto LAB_0002406c;\n        }\n        param_3 = param_3 + 1;\n        cVar1 = *param_3;\n      }\n      iVar6 = 0x30;\n    }" { (expression_statement "param_3 = param_3 + 1;" (assignment_expression "param_3 = param_3 + 1" identifier = (binary_expression "param_3 + 1" identifier + number_literal)) ;) (expression_statement "cVar1 = *param_3;" (assignment_expression "cVar1 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (while_statement "while (uVar11 = (uint)cVar1, uVar11 != 0x30) {\n        if (0x30 < (int)uVar11) {\n          if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }\n          if (uVar11 == 0x5f) {\n            iVar6 = 0x5f;\n            goto LAB_0002406c;\n          }\nLAB_000240c4:\n          pcVar14 = (char *)0xffffffff;\n          if (9 < uVar11 - 0x30) goto LAB_000240d4;\n          pcVar14 = (char *)0x0;\n          pcVar5 = param_3;\n          goto LAB_00024154;\n        }\n        if (uVar11 != 0x23) {\n          if (uVar11 != 0x2d) goto LAB_000240c4;\n          iVar6 = 0x2d;\n          goto LAB_0002406c;\n        }\n        param_3 = param_3 + 1;\n        cVar1 = *param_3;\n      }" while (parenthesized_expression "(uVar11 = (uint)cVar1, uVar11 != 0x30)" ( (comma_expression "uVar11 = (uint)cVar1, uVar11 != 0x30" (assignment_expression "uVar11 = (uint)cVar1" identifier = (cast_expression "(uint)cVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) , (binary_expression "uVar11 != 0x30" identifier != number_literal)) )) (compound_statement "{\n        if (0x30 < (int)uVar11) {\n          if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }\n          if (uVar11 == 0x5f) {\n            iVar6 = 0x5f;\n            goto LAB_0002406c;\n          }\nLAB_000240c4:\n          pcVar14 = (char *)0xffffffff;\n          if (9 < uVar11 - 0x30) goto LAB_000240d4;\n          pcVar14 = (char *)0x0;\n          pcVar5 = param_3;\n          goto LAB_00024154;\n        }\n        if (uVar11 != 0x23) {\n          if (uVar11 != 0x2d) goto LAB_000240c4;\n          iVar6 = 0x2d;\n          goto LAB_0002406c;\n        }\n        param_3 = param_3 + 1;\n        cVar1 = *param_3;\n      }" { (if_statement "if (0x30 < (int)uVar11) {\n          if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }\n          if (uVar11 == 0x5f) {\n            iVar6 = 0x5f;\n            goto LAB_0002406c;\n          }\nLAB_000240c4:\n          pcVar14 = (char *)0xffffffff;\n          if (9 < uVar11 - 0x30) goto LAB_000240d4;\n          pcVar14 = (char *)0x0;\n          pcVar5 = param_3;\n          goto LAB_00024154;\n        }" if (parenthesized_expression "(0x30 < (int)uVar11)" ( (binary_expression "0x30 < (int)uVar11" number_literal < (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }\n          if (uVar11 == 0x5f) {\n            iVar6 = 0x5f;\n            goto LAB_0002406c;\n          }\nLAB_000240c4:\n          pcVar14 = (char *)0xffffffff;\n          if (9 < uVar11 - 0x30) goto LAB_000240d4;\n          pcVar14 = (char *)0x0;\n          pcVar5 = param_3;\n          goto LAB_00024154;\n        }" { (if_statement "if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }" if (parenthesized_expression "(uVar11 == 0x5e)" ( (binary_expression "uVar11 == 0x5e" identifier == number_literal) )) (compound_statement "{\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }" { (expression_statement "cVar9 = '\x01';" (assignment_expression "cVar9 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (goto_statement "goto LAB_0002406c;" goto statement_identifier ;) })) (if_statement "if (uVar11 == 0x5f) {\n            iVar6 = 0x5f;\n            goto LAB_0002406c;\n          }" if (parenthesized_expression "(uVar11 == 0x5f)" ( (binary_expression "uVar11 == 0x5f" identifier == number_literal) )) (compound_statement "{\n            iVar6 = 0x5f;\n            goto LAB_0002406c;\n          }" { (expression_statement "iVar6 = 0x5f;" (assignment_expression "iVar6 = 0x5f" identifier = number_literal) ;) (goto_statement "goto LAB_0002406c;" goto statement_identifier ;) })) (labeled_statement "LAB_000240c4:\n          pcVar14 = (char *)0xffffffff;" statement_identifier : (expression_statement "pcVar14 = (char *)0xffffffff;" (assignment_expression "pcVar14 = (char *)0xffffffff" identifier = (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (if_statement "if (9 < uVar11 - 0x30) goto LAB_000240d4;" if (parenthesized_expression "(9 < uVar11 - 0x30)" ( (binary_expression "9 < uVar11 - 0x30" number_literal < (binary_expression "uVar11 - 0x30" identifier - number_literal)) )) (goto_statement "goto LAB_000240d4;" goto statement_identifier ;)) (expression_statement "pcVar14 = (char *)0x0;" (assignment_expression "pcVar14 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar5 = param_3;" (assignment_expression "pcVar5 = param_3" identifier = identifier) ;) (goto_statement "goto LAB_00024154;" goto statement_identifier ;) })) (if_statement "if (uVar11 != 0x23) {\n          if (uVar11 != 0x2d) goto LAB_000240c4;\n          iVar6 = 0x2d;\n          goto LAB_0002406c;\n        }" if (parenthesized_expression "(uVar11 != 0x23)" ( (binary_expression "uVar11 != 0x23" identifier != number_literal) )) (compound_statement "{\n          if (uVar11 != 0x2d) goto LAB_000240c4;\n          iVar6 = 0x2d;\n          goto LAB_0002406c;\n        }" { (if_statement "if (uVar11 != 0x2d) goto LAB_000240c4;" if (parenthesized_expression "(uVar11 != 0x2d)" ( (binary_expression "uVar11 != 0x2d" identifier != number_literal) )) (goto_statement "goto LAB_000240c4;" goto statement_identifier ;)) (expression_statement "iVar6 = 0x2d;" (assignment_expression "iVar6 = 0x2d" identifier = number_literal) ;) (goto_statement "goto LAB_0002406c;" goto statement_identifier ;) })) (expression_statement "param_3 = param_3 + 1;" (assignment_expression "param_3 = param_3 + 1" identifier = (binary_expression "param_3 + 1" identifier + number_literal)) ;) (expression_statement "cVar1 = *param_3;" (assignment_expression "cVar1 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) })) (expression_statement "iVar6 = 0x30;" (assignment_expression "iVar6 = 0x30" identifier = number_literal) ;) }) while (parenthesized_expression "( true )" ( true )) ;)) }))) (if_statement "if ((uint)(param_2 - (int)piVar18) < 2) goto LAB_00023ff8;" if (parenthesized_expression "((uint)(param_2 - (int)piVar18) < 2)" ( (binary_expression "(uint)(param_2 - (int)piVar18) < 2" (call_expression "(uint)(param_2 - (int)piVar18)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_2 - (int)piVar18)" ( (binary_expression "param_2 - (int)piVar18" identifier - (cast_expression "(int)piVar18" ( (type_descriptor "int" primitive_type) ) identifier)) ))) < number_literal) )) (goto_statement "goto LAB_00023ff8;" goto statement_identifier ;)) (if_statement "if (param_1 != (char *)0x0) {\n    *param_1 = cVar9;\n    param_1 = param_1 + 1;\n  }" if (parenthesized_expression "(param_1 != (char *)0x0)" ( (binary_expression "param_1 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *param_1 = cVar9;\n    param_1 = param_1 + 1;\n  }" { (expression_statement "*param_1 = cVar9;" (assignment_expression "*param_1 = cVar9" (pointer_expression "*param_1" * identifier) = identifier) ;) (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 "piVar18 = (int *)((int)piVar18 + 1);" (assignment_expression "piVar18 = (int *)((int)piVar18 + 1)" identifier = (cast_expression "(int *)((int)piVar18 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar18 + 1)" ( (binary_expression "(int)piVar18 + 1" (cast_expression "(int)piVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (goto_statement "goto LAB_00023fc0;" goto statement_identifier ;) (labeled_statement "LAB_00024154:\n  do {\n    uVar11 = (uint)pcVar5[1];\n    param_3 = pcVar5 + 1;\n    uVar4 = uVar11 - 0x30;\n    if (((int)pcVar14 < 0xccccccd) && ((pcVar14 != (char *)0xccccccc || (*pcVar5 < 0x38)))) {\n      pcVar14 = (char *)(*pcVar5 + -0x30 + (int)pcVar14 * 10);\n    }\n    else {\n      if (9 < uVar4) {\n        pcVar14 = (char *)0x7fffffff;\n        break;\n      }\n      uVar11 = (uint)pcVar5[2];\n      pcVar14 = (char *)0x7fffffff;\n      param_3 = pcVar5 + 2;\n      uVar4 = uVar11 - 0x30;\n    }\n    pcVar5 = param_3;\n  } while (uVar4 < 10);" statement_identifier : (do_statement "do {\n    uVar11 = (uint)pcVar5[1];\n    param_3 = pcVar5 + 1;\n    uVar4 = uVar11 - 0x30;\n    if (((int)pcVar14 < 0xccccccd) && ((pcVar14 != (char *)0xccccccc || (*pcVar5 < 0x38)))) {\n      pcVar14 = (char *)(*pcVar5 + -0x30 + (int)pcVar14 * 10);\n    }\n    else {\n      if (9 < uVar4) {\n        pcVar14 = (char *)0x7fffffff;\n        break;\n      }\n      uVar11 = (uint)pcVar5[2];\n      pcVar14 = (char *)0x7fffffff;\n      param_3 = pcVar5 + 2;\n      uVar4 = uVar11 - 0x30;\n    }\n    pcVar5 = param_3;\n  } while (uVar4 < 10);" do (compound_statement "{\n    uVar11 = (uint)pcVar5[1];\n    param_3 = pcVar5 + 1;\n    uVar4 = uVar11 - 0x30;\n    if (((int)pcVar14 < 0xccccccd) && ((pcVar14 != (char *)0xccccccc || (*pcVar5 < 0x38)))) {\n      pcVar14 = (char *)(*pcVar5 + -0x30 + (int)pcVar14 * 10);\n    }\n    else {\n      if (9 < uVar4) {\n        pcVar14 = (char *)0x7fffffff;\n        break;\n      }\n      uVar11 = (uint)pcVar5[2];\n      pcVar14 = (char *)0x7fffffff;\n      param_3 = pcVar5 + 2;\n      uVar4 = uVar11 - 0x30;\n    }\n    pcVar5 = param_3;\n  }" { (expression_statement "uVar11 = (uint)pcVar5[1];" (assignment_expression "uVar11 = (uint)pcVar5[1]" identifier = (cast_expression "(uint)pcVar5[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pcVar5[1]" identifier [ number_literal ]))) ;) (expression_statement "param_3 = pcVar5 + 1;" (assignment_expression "param_3 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;) (expression_statement "uVar4 = uVar11 - 0x30;" (assignment_expression "uVar4 = uVar11 - 0x30" identifier = (binary_expression "uVar11 - 0x30" identifier - number_literal)) ;) (if_statement "if (((int)pcVar14 < 0xccccccd) && ((pcVar14 != (char *)0xccccccc || (*pcVar5 < 0x38)))) {\n      pcVar14 = (char *)(*pcVar5 + -0x30 + (int)pcVar14 * 10);\n    }\n    else {\n      if (9 < uVar4) {\n        pcVar14 = (char *)0x7fffffff;\n        break;\n      }\n      uVar11 = (uint)pcVar5[2];\n      pcVar14 = (char *)0x7fffffff;\n      param_3 = pcVar5 + 2;\n      uVar4 = uVar11 - 0x30;\n    }" if (parenthesized_expression "(((int)pcVar14 < 0xccccccd) && ((pcVar14 != (char *)0xccccccc || (*pcVar5 < 0x38))))" ( (binary_expression "((int)pcVar14 < 0xccccccd) && ((pcVar14 != (char *)0xccccccc || (*pcVar5 < 0x38)))" (parenthesized_expression "((int)pcVar14 < 0xccccccd)" ( (binary_expression "(int)pcVar14 < 0xccccccd" (cast_expression "(int)pcVar14" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) && (parenthesized_expression "((pcVar14 != (char *)0xccccccc || (*pcVar5 < 0x38)))" ( (parenthesized_expression "(pcVar14 != (char *)0xccccccc || (*pcVar5 < 0x38))" ( (binary_expression "pcVar14 != (char *)0xccccccc || (*pcVar5 < 0x38)" (binary_expression "pcVar14 != (char *)0xccccccc" identifier != (cast_expression "(char *)0xccccccc" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "(*pcVar5 < 0x38)" ( (binary_expression "*pcVar5 < 0x38" (pointer_expression "*pcVar5" * identifier) < number_literal) ))) )) ))) )) (compound_statement "{\n      pcVar14 = (char *)(*pcVar5 + -0x30 + (int)pcVar14 * 10);\n    }" { (expression_statement "pcVar14 = (char *)(*pcVar5 + -0x30 + (int)pcVar14 * 10);" (assignment_expression "pcVar14 = (char *)(*pcVar5 + -0x30 + (int)pcVar14 * 10)" identifier = (cast_expression "(char *)(*pcVar5 + -0x30 + (int)pcVar14 * 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*pcVar5 + -0x30 + (int)pcVar14 * 10)" ( (binary_expression "*pcVar5 + -0x30 + (int)pcVar14 * 10" (binary_expression "*pcVar5 + -0x30" (pointer_expression "*pcVar5" * identifier) + number_literal) + (binary_expression "(int)pcVar14 * 10" (cast_expression "(int)pcVar14" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) }) (else_clause "else {\n      if (9 < uVar4) {\n        pcVar14 = (char *)0x7fffffff;\n        break;\n      }\n      uVar11 = (uint)pcVar5[2];\n      pcVar14 = (char *)0x7fffffff;\n      param_3 = pcVar5 + 2;\n      uVar4 = uVar11 - 0x30;\n    }" else (compound_statement "{\n      if (9 < uVar4) {\n        pcVar14 = (char *)0x7fffffff;\n        break;\n      }\n      uVar11 = (uint)pcVar5[2];\n      pcVar14 = (char *)0x7fffffff;\n      param_3 = pcVar5 + 2;\n      uVar4 = uVar11 - 0x30;\n    }" { (if_statement "if (9 < uVar4) {\n        pcVar14 = (char *)0x7fffffff;\n        break;\n      }" if (parenthesized_expression "(9 < uVar4)" ( (binary_expression "9 < uVar4" number_literal < identifier) )) (compound_statement "{\n        pcVar14 = (char *)0x7fffffff;\n        break;\n      }" { (expression_statement "pcVar14 = (char *)0x7fffffff;" (assignment_expression "pcVar14 = (char *)0x7fffffff" identifier = (cast_expression "(char *)0x7fffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (break_statement "break;" break ;) })) (expression_statement "uVar11 = (uint)pcVar5[2];" (assignment_expression "uVar11 = (uint)pcVar5[2]" identifier = (cast_expression "(uint)pcVar5[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pcVar5[2]" identifier [ number_literal ]))) ;) (expression_statement "pcVar14 = (char *)0x7fffffff;" (assignment_expression "pcVar14 = (char *)0x7fffffff" identifier = (cast_expression "(char *)0x7fffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_3 = pcVar5 + 2;" (assignment_expression "param_3 = pcVar5 + 2" identifier = (binary_expression "pcVar5 + 2" identifier + number_literal)) ;) (expression_statement "uVar4 = uVar11 - 0x30;" (assignment_expression "uVar4 = uVar11 - 0x30" identifier = (binary_expression "uVar11 - 0x30" identifier - number_literal)) ;) }))) (expression_statement "pcVar5 = param_3;" (assignment_expression "pcVar5 = param_3" identifier = identifier) ;) }) while (parenthesized_expression "(uVar4 < 10)" ( (binary_expression "uVar4 < 10" identifier < number_literal) )) ;)) (labeled_statement "LAB_000240d4:\n  if ((uVar11 == 0x45) || (uVar11 == 0x4f)) {\n    uVar11 = (uint)param_3[1];\n    param_3 = param_3 + 1;\n  }" statement_identifier : (if_statement "if ((uVar11 == 0x45) || (uVar11 == 0x4f)) {\n    uVar11 = (uint)param_3[1];\n    param_3 = param_3 + 1;\n  }" if (parenthesized_expression "((uVar11 == 0x45) || (uVar11 == 0x4f))" ( (binary_expression "(uVar11 == 0x45) || (uVar11 == 0x4f)" (parenthesized_expression "(uVar11 == 0x45)" ( (binary_expression "uVar11 == 0x45" identifier == number_literal) )) || (parenthesized_expression "(uVar11 == 0x4f)" ( (binary_expression "uVar11 == 0x4f" identifier == number_literal) ))) )) (compound_statement "{\n    uVar11 = (uint)param_3[1];\n    param_3 = param_3 + 1;\n  }" { (expression_statement "uVar11 = (uint)param_3[1];" (assignment_expression "uVar11 = (uint)param_3[1]" identifier = (cast_expression "(uint)param_3[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_3[1]" identifier [ number_literal ]))) ;) (expression_statement "param_3 = param_3 + 1;" (assignment_expression "param_3 = param_3 + 1" identifier = (binary_expression "param_3 + 1" identifier + number_literal)) ;) }))) (expression_statement "pcVar5 = param_3;" (assignment_expression "pcVar5 = param_3" identifier = identifier) ;) (if_statement "if ((uVar11 & 0xff) < 0x7b) {\n                    /* WARNING: Could not emulate address calculation at 0x000240fc */\n                    /* WARNING: Treating indirect jump as call */\n    piVar18 = (int *)(*(code *)(&_gp_1 + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)))();\n    return piVar18;\n  }" if (parenthesized_expression "((uVar11 & 0xff) < 0x7b)" ( (binary_expression "(uVar11 & 0xff) < 0x7b" (parenthesized_expression "(uVar11 & 0xff)" ( (binary_expression "uVar11 & 0xff" identifier & number_literal) )) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not emulate address calculation at 0x000240fc */\n                    /* WARNING: Treating indirect jump as call */\n    piVar18 = (int *)(*(code *)(&_gp_1 + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)))();\n    return piVar18;\n  }" { comment comment (expression_statement "piVar18 = (int *)(*(code *)(&_gp_1 + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)))();" (assignment_expression "piVar18 = (int *)(*(code *)(&_gp_1 + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)))()" identifier = (cast_expression "(int *)(*(code *)(&_gp_1 + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(&_gp_1 + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)))" ( (pointer_expression "*(code *)(&_gp_1 + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0))" * (cast_expression "(code *)(&_gp_1 + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0))" ( (binary_expression "&_gp_1 + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)" * (cast_expression "(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)" ( (binary_expression "puVar20 + (uVar11 & 0xff) * 4 + 0x67a0" (binary_expression "puVar20 + (uVar11 & 0xff) * 4" identifier + (binary_expression "(uVar11 & 0xff) * 4" (parenthesized_expression "(uVar11 & 0xff)" ( (binary_expression "uVar11 & 0xff" identifier & number_literal) )) * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return piVar18;" return identifier ;) })) (do_statement "do {\n    pcVar5 = pcVar5 + -1;\n    pcVar16 = param_3 + (1 - (int)pcVar5);\n  } while (*pcVar5 != '%');" do (compound_statement "{\n    pcVar5 = pcVar5 + -1;\n    pcVar16 = param_3 + (1 - (int)pcVar5);\n  }" { (expression_statement "pcVar5 = pcVar5 + -1;" (assignment_expression "pcVar5 = pcVar5 + -1" identifier = (binary_expression "pcVar5 + -1" identifier + number_literal)) ;) (expression_statement "pcVar16 = param_3 + (1 - (int)pcVar5);" (assignment_expression "pcVar16 = param_3 + (1 - (int)pcVar5)" identifier = (binary_expression "param_3 + (1 - (int)pcVar5)" identifier + (parenthesized_expression "(1 - (int)pcVar5)" ( (binary_expression "1 - (int)pcVar5" number_literal - (cast_expression "(int)pcVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) }) while (parenthesized_expression "(*pcVar5 != '%')" ( (binary_expression "*pcVar5 != '%'" (pointer_expression "*pcVar5" * identifier) != (char_literal "'%'" ' character ')) )) ;) (expression_statement "pcVar12 = pcVar14;" (assignment_expression "pcVar12 = pcVar14" identifier = identifier) ;) (if_statement "if ((int)pcVar14 < 0) {\n    pcVar12 = (char *)0x0;\n  }" if (parenthesized_expression "((int)pcVar14 < 0)" ( (binary_expression "(int)pcVar14 < 0" (cast_expression "(int)pcVar14" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    pcVar12 = (char *)0x0;\n  }" { (expression_statement "pcVar12 = (char *)0x0;" (assignment_expression "pcVar12 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "pcVar13 = pcVar16;" (assignment_expression "pcVar13 = pcVar16" identifier = identifier) ;) (if_statement "if (pcVar16 <= pcVar12) {\n    pcVar13 = pcVar12;\n  }" if (parenthesized_expression "(pcVar16 <= pcVar12)" ( (binary_expression "pcVar16 <= pcVar12" identifier <= identifier) )) (compound_statement "{\n    pcVar13 = pcVar12;\n  }" { (expression_statement "pcVar13 = pcVar12;" (assignment_expression "pcVar13 = pcVar12" identifier = identifier) ;) })) (if_statement "if ((char *)(param_2 - (int)piVar18) <= pcVar13) {\nLAB_00023ff8:\n    piVar18 = (int *)0x0;\n    goto LAB_00023ffc;\n  }" if (parenthesized_expression "((char *)(param_2 - (int)piVar18) <= pcVar13)" ( (binary_expression "(char *)(param_2 - (int)piVar18) <= pcVar13" (cast_expression "(char *)(param_2 - (int)piVar18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 - (int)piVar18)" ( (binary_expression "param_2 - (int)piVar18" identifier - (cast_expression "(int)piVar18" ( (type_descriptor "int" primitive_type) ) identifier)) ))) <= identifier) )) (compound_statement "{\nLAB_00023ff8:\n    piVar18 = (int *)0x0;\n    goto LAB_00023ffc;\n  }" { (labeled_statement "LAB_00023ff8:\n    piVar18 = (int *)0x0;" statement_identifier : (expression_statement "piVar18 = (int *)0x0;" (assignment_expression "piVar18 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (goto_statement "goto LAB_00023ffc;" goto statement_identifier ;) })) (if_statement "if (param_1 == (char *)0x0) {\n    piVar18 = (int *)((int)piVar18 + (int)pcVar13);\n  }\n  else {\n    pcVar15 = param_1;\n    if (pcVar16 < pcVar12) {\n      pcVar15 = param_1 + ((int)pcVar14 - (int)pcVar16);\n      if (iVar6 == 0x30) {\n        (*(code *)PTR_memset_00049524)(param_1,0x30);\n      }\n      else {\n        (*(code *)PTR_memset_00049524)(param_1,0x20);\n      }\n    }\n    if (cVar9 == '\0') {\n      (*(code *)PTR_memcpy_00049600)(pcVar15,pcVar5,pcVar16);\n    }\n    else {\n      (*pcVar10)(pcVar15,pcVar5,pcVar16);\n    }\n    param_1 = pcVar15 + (int)pcVar16;\n    piVar18 = (int *)((int)piVar18 + (int)pcVar13);\n  }" if (parenthesized_expression "(param_1 == (char *)0x0)" ( (binary_expression "param_1 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    piVar18 = (int *)((int)piVar18 + (int)pcVar13);\n  }" { (expression_statement "piVar18 = (int *)((int)piVar18 + (int)pcVar13);" (assignment_expression "piVar18 = (int *)((int)piVar18 + (int)pcVar13)" identifier = (cast_expression "(int *)((int)piVar18 + (int)pcVar13)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar18 + (int)pcVar13)" ( (binary_expression "(int)piVar18 + (int)pcVar13" (cast_expression "(int)piVar18" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pcVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) }) (else_clause "else {\n    pcVar15 = param_1;\n    if (pcVar16 < pcVar12) {\n      pcVar15 = param_1 + ((int)pcVar14 - (int)pcVar16);\n      if (iVar6 == 0x30) {\n        (*(code *)PTR_memset_00049524)(param_1,0x30);\n      }\n      else {\n        (*(code *)PTR_memset_00049524)(param_1,0x20);\n      }\n    }\n    if (cVar9 == '\0') {\n      (*(code *)PTR_memcpy_00049600)(pcVar15,pcVar5,pcVar16);\n    }\n    else {\n      (*pcVar10)(pcVar15,pcVar5,pcVar16);\n    }\n    param_1 = pcVar15 + (int)pcVar16;\n    piVar18 = (int *)((int)piVar18 + (int)pcVar13);\n  }" else (compound_statement "{\n    pcVar15 = param_1;\n    if (pcVar16 < pcVar12) {\n      pcVar15 = param_1 + ((int)pcVar14 - (int)pcVar16);\n      if (iVar6 == 0x30) {\n        (*(code *)PTR_memset_00049524)(param_1,0x30);\n      }\n      else {\n        (*(code *)PTR_memset_00049524)(param_1,0x20);\n      }\n    }\n    if (cVar9 == '\0') {\n      (*(code *)PTR_memcpy_00049600)(pcVar15,pcVar5,pcVar16);\n    }\n    else {\n      (*pcVar10)(pcVar15,pcVar5,pcVar16);\n    }\n    param_1 = pcVar15 + (int)pcVar16;\n    piVar18 = (int *)((int)piVar18 + (int)pcVar13);\n  }" { (expression_statement "pcVar15 = param_1;" (assignment_expression "pcVar15 = param_1" identifier = identifier) ;) (if_statement "if (pcVar16 < pcVar12) {\n      pcVar15 = param_1 + ((int)pcVar14 - (int)pcVar16);\n      if (iVar6 == 0x30) {\n        (*(code *)PTR_memset_00049524)(param_1,0x30);\n      }\n      else {\n        (*(code *)PTR_memset_00049524)(param_1,0x20);\n      }\n    }" if (parenthesized_expression "(pcVar16 < pcVar12)" ( (binary_expression "pcVar16 < pcVar12" identifier < identifier) )) (compound_statement "{\n      pcVar15 = param_1 + ((int)pcVar14 - (int)pcVar16);\n      if (iVar6 == 0x30) {\n        (*(code *)PTR_memset_00049524)(param_1,0x30);\n      }\n      else {\n        (*(code *)PTR_memset_00049524)(param_1,0x20);\n      }\n    }" { (expression_statement "pcVar15 = param_1 + ((int)pcVar14 - (int)pcVar16);" (assignment_expression "pcVar15 = param_1 + ((int)pcVar14 - (int)pcVar16)" identifier = (binary_expression "param_1 + ((int)pcVar14 - (int)pcVar16)" identifier + (parenthesized_expression "((int)pcVar14 - (int)pcVar16)" ( (binary_expression "(int)pcVar14 - (int)pcVar16" (cast_expression "(int)pcVar14" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (iVar6 == 0x30) {\n        (*(code *)PTR_memset_00049524)(param_1,0x30);\n      }\n      else {\n        (*(code *)PTR_memset_00049524)(param_1,0x20);\n      }" if (parenthesized_expression "(iVar6 == 0x30)" ( (binary_expression "iVar6 == 0x30" identifier == number_literal) )) (compound_statement "{\n        (*(code *)PTR_memset_00049524)(param_1,0x30);\n      }" { (expression_statement "(*(code *)PTR_memset_00049524)(param_1,0x30);" (call_expression "(*(code *)PTR_memset_00049524)(param_1,0x30)" (parenthesized_expression "(*(code *)PTR_memset_00049524)" ( (pointer_expression "*(code *)PTR_memset_00049524" * (cast_expression "(code *)PTR_memset_00049524" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,0x30)" ( identifier , number_literal ))) ;) }) (else_clause "else {\n        (*(code *)PTR_memset_00049524)(param_1,0x20);\n      }" else (compound_statement "{\n        (*(code *)PTR_memset_00049524)(param_1,0x20);\n      }" { (expression_statement "(*(code *)PTR_memset_00049524)(param_1,0x20);" (call_expression "(*(code *)PTR_memset_00049524)(param_1,0x20)" (parenthesized_expression "(*(code *)PTR_memset_00049524)" ( (pointer_expression "*(code *)PTR_memset_00049524" * (cast_expression "(code *)PTR_memset_00049524" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,0x20)" ( identifier , number_literal ))) ;) }))) })) (if_statement "if (cVar9 == '\0') {\n      (*(code *)PTR_memcpy_00049600)(pcVar15,pcVar5,pcVar16);\n    }\n    else {\n      (*pcVar10)(pcVar15,pcVar5,pcVar16);\n    }" if (parenthesized_expression "(cVar9 == '\0')" ( (binary_expression "cVar9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      (*(code *)PTR_memcpy_00049600)(pcVar15,pcVar5,pcVar16);\n    }" { (expression_statement "(*(code *)PTR_memcpy_00049600)(pcVar15,pcVar5,pcVar16);" (call_expression "(*(code *)PTR_memcpy_00049600)(pcVar15,pcVar5,pcVar16)" (parenthesized_expression "(*(code *)PTR_memcpy_00049600)" ( (pointer_expression "*(code *)PTR_memcpy_00049600" * (cast_expression "(code *)PTR_memcpy_00049600" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar15,pcVar5,pcVar16)" ( identifier , identifier , identifier ))) ;) }) (else_clause "else {\n      (*pcVar10)(pcVar15,pcVar5,pcVar16);\n    }" else (compound_statement "{\n      (*pcVar10)(pcVar15,pcVar5,pcVar16);\n    }" { (expression_statement "(*pcVar10)(pcVar15,pcVar5,pcVar16);" (call_expression "(*pcVar10)(pcVar15,pcVar5,pcVar16)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(pcVar15,pcVar5,pcVar16)" ( identifier , identifier , identifier ))) ;) }))) (expression_statement "param_1 = pcVar15 + (int)pcVar16;" (assignment_expression "param_1 = pcVar15 + (int)pcVar16" identifier = (binary_expression "pcVar15 + (int)pcVar16" identifier + (cast_expression "(int)pcVar16" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "piVar18 = (int *)((int)piVar18 + (int)pcVar13);" (assignment_expression "piVar18 = (int *)((int)piVar18 + (int)pcVar13)" identifier = (cast_expression "(int *)((int)piVar18 + (int)pcVar13)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar18 + (int)pcVar13)" ( (binary_expression "(int)piVar18 + (int)pcVar13" (cast_expression "(int)piVar18" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pcVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) }))) (labeled_statement "LAB_00023fc0:\n  cVar9 = param_3[1];" statement_identifier : (expression_statement "cVar9 = param_3[1];" (assignment_expression "cVar9 = param_3[1]" identifier = (subscript_expression "param_3[1]" identifier [ number_literal ])) ;)) (expression_statement "param_3 = param_3 + 1;" (assignment_expression "param_3 = param_3 + 1" identifier = (binary_expression "param_3 + 1" identifier + number_literal)) ;) (if_statement "if (cVar9 == '\0') goto LAB_00023fcc;" if (parenthesized_expression "(cVar9 == '\0')" ( (binary_expression "cVar9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00023fcc;" goto statement_identifier ;)) (goto_statement "goto LAB_00023f94;" goto statement_identifier ;) })))
(translation_unit "size_t __strftime_internal(char *s,size_t maxsize,char *format,tm *tp,_Bool upcase,\n                          _Bool *tzset_called,timezone_t tz,int ns)\n\n{\n  char cVar1;\n  undefined *puVar2;\n  char *s_00;\n  char cVar9;\n  uint uVar3;\n  char *pcVar4;\n  size_t sVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  code *pcVar10;\n  uint uVar11;\n  tm *ptVar12;\n  char *pcVar13;\n  tm *ptVar14;\n  tm *ptVar15;\n  char *pcVar16;\n  int *piVar17;\n  char *pcVar18;\n  int iVar19;\n  undefined *puVar20;\n  _Bool _Stack_4dd;\n  int iStack_4dc;\n  char *pcStack_4d8;\n  code *pcStack_4d4;\n  timezone_t local_4c0;\n  int local_4bc;\n  tm ltm;\n  char ufmt [5];\n  char buf [14];\n  \n  puVar2 = PTR___stack_chk_guard_000495fc;\n  puVar20 = PTR_LAB_00049218;\n  s_00 = *(char **)PTR___stack_chk_guard_000495fc;\n  cVar9 = *format;\n  pcVar18 = (char *)0x0;\n  pcVar13 = (char *)maxsize;\n  pcVar16 = format;\n  if (cVar9 == '\0') {\nLAB_00023fcc:\n    if ((s != (char *)0x0) && (maxsize != 0)) {\n      *s = '\0';\n    }\nLAB_00023ffc:\n    if (s_00 == *(char **)puVar2) {\n      return (size_t)pcVar18;\n    }\n    pcVar10 = nstrftime;\n    puVar20 = PTR___stack_chk_fail_000495d0;\n    (*(code *)PTR___stack_chk_fail_000495d0)();\n    piVar17 = *(int **)(puVar20 + 0x23cfc);\n    _Stack_4dd = false;\n    iStack_4dc = *piVar17;\n    pcStack_4d8 = pcVar16;\n    pcStack_4d4 = pcVar10;\n    sVar5 = __strftime_internal(s_00,(size_t)pcVar13,format,tp,false,&_Stack_4dd,local_4c0,local_4bc\n                               );\n    if (iStack_4dc != *piVar17) {\n      pcVar10 = *(code **)(puVar20 + 0x23cd0);\n      iVar8 = iStack_4dc;\n      (*pcVar10)();\n      if (iVar8 == 0) {\n        iVar8 = 1;\n        piVar17 = (int *)(*(int *)(pcVar10 + 0x23898) + 0x6990);\n        (**(code **)(pcVar10 + 0x23c24))(piVar17,1,0x37,**(undefined4 **)(pcVar10 + 0x23ca4));\n        pcVar10 = *(code **)(pcVar10 + 0x23b08);\n        (*pcVar10)();\n        *piVar17 = 0;\n        piVar17[1] = 0;\n        piVar17[2] = 0;\n        piVar17[3] = 0;\n        piVar17[4] = 0;\n        piVar17[5] = 0;\n        piVar17[6] = 0;\n        piVar17[7] = 0;\n        piVar17[8] = 0;\n        piVar17[9] = 0;\n        piVar17[10] = 0;\n        piVar17[0xb] = 0;\n        if (iVar8 == 10) {\n          sVar5 = (**(code **)(pcVar10 + 0x239d8))();\n          return sVar5;\n        }\n        *piVar17 = iVar8;\n        return (size_t)piVar17;\n      }\n      iVar6 = (**(code **)(pcVar10 + 0x23b58))();\n      if (((iVar6 != 0) && (iVar19 = iVar6 + 1, 6 < iVar19 - iVar8)) &&\n         (iVar7 = (**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7), iVar7 == 0)) {\n        iVar8 = (**(code **)(pcVar10 + 0x23b10))(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3);\n        if (iVar8 != 0) {\n          **(int **)(pcVar10 + 0x23934) = iVar19;\n          piVar17 = *(int **)(pcVar10 + 0x23b68);\n          *piVar17 = iVar19;\n          return (size_t)piVar17;\n        }\n        iVar8 = iVar6 + 4;\n        **(int **)(pcVar10 + 0x23b24) = iVar8;\n      }\n      **(int **)(pcVar10 + 0x23934) = iVar8;\n      piVar17 = *(int **)(pcVar10 + 0x23b68);\n      *piVar17 = iVar8;\n      return (size_t)piVar17;\n    }\n    return sVar5;\n  }\n  pcVar10 = (code *)(PTR_LAB_00049280 + 0x3e34);\nLAB_00023f94:\n  if (cVar9 == '%') {\n    iVar8 = 0;\n    cVar9 = upcase;\nLAB_0002406c:\n    do {\n      pcVar16 = pcVar16 + 1;\n      cVar1 = *pcVar16;\n      while (uVar11 = (uint)cVar1, uVar11 != 0x30) {\n        if (0x30 < (int)uVar11) {\n          if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }\n          if (uVar11 == 0x5f) {\n            iVar8 = 0x5f;\n            goto LAB_0002406c;\n          }\nLAB_000240c4:\n          ptVar14 = (tm *)0xffffffff;\n          if (9 < uVar11 - 0x30) goto LAB_000240d4;\n          ptVar14 = (tm *)0x0;\n          pcVar13 = pcVar16;\n          goto LAB_00024154;\n        }\n        if (uVar11 != 0x23) {\n          if (uVar11 != 0x2d) goto LAB_000240c4;\n          iVar8 = 0x2d;\n          goto LAB_0002406c;\n        }\n        pcVar16 = pcVar16 + 1;\n        cVar1 = *pcVar16;\n      }\n      iVar8 = 0x30;\n    } while( true );\n  }\n  if (maxsize - (int)pcVar18 < 2) goto LAB_00023ff8;\n  if (s != (char *)0x0) {\n    *s = cVar9;\n    s = s + 1;\n  }\n  pcVar18 = pcVar18 + 1;\n  goto LAB_00023fc0;\nLAB_00024154:\n  do {\n    uVar11 = (uint)pcVar13[1];\n    pcVar16 = pcVar13 + 1;\n    uVar3 = uVar11 - 0x30;\n    if (((int)ptVar14 < 0xccccccd) && ((ptVar14 != (tm *)0xccccccc || (*pcVar13 < 0x38)))) {\n      ptVar14 = (tm *)(*pcVar13 + -0x30 + (int)ptVar14 * 10);\n    }\n    else {\n      if (9 < uVar3) {\n        ptVar14 = (tm *)0x7fffffff;\n        break;\n      }\n      uVar11 = (uint)pcVar13[2];\n      ptVar14 = (tm *)0x7fffffff;\n      pcVar16 = pcVar13 + 2;\n      uVar3 = uVar11 - 0x30;\n    }\n    pcVar13 = pcVar16;\n  } while (uVar3 < 10);\nLAB_000240d4:\n  if ((uVar11 == 0x45) || (uVar11 == 0x4f)) {\n    uVar11 = (uint)pcVar16[1];\n    pcVar16 = pcVar16 + 1;\n  }\n  if ((uVar11 & 0xff) < 0x7b) {\n                    /* WARNING: Could not emulate address calculation at 0x000240fc */\n                    /* WARNING: Treating indirect jump as call */\n    sVar5 = (*(code *)(&_gp + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)))();\n    return sVar5;\n  }\n  pcVar13 = &DAT_00000025;\n  pcVar4 = pcVar16;\n  do {\n    pcVar4 = pcVar4 + -1;\n    ptVar15 = (tm *)(pcVar16 + (1 - (int)pcVar4));\n  } while (*pcVar4 != '%');\n  ptVar12 = ptVar14;\n  if ((int)ptVar14 < 0) {\n    ptVar12 = (tm *)0x0;\n  }\n  format = (char *)(maxsize - (int)pcVar18);\n  tp = ptVar15;\n  if (ptVar15 <= ptVar12) {\n    tp = ptVar12;\n  }\n  if (format <= tp) {\nLAB_00023ff8:\n    pcVar18 = (char *)0x0;\n    goto LAB_00023ffc;\n  }\n  if (s == (char *)0x0) {\n    pcVar18 = (char *)((int)&tp->tm_sec + (int)pcVar18);\n  }\n  else {\n    pcVar13 = s;\n    if (ptVar15 < ptVar12) {\n      pcVar13 = s + ((int)ptVar14 - (int)ptVar15);\n      if (iVar8 == 0x30) {\n        (*(code *)PTR_memset_00049524)(s,0x30);\n      }\n      else {\n        (*(code *)PTR_memset_00049524)(s,0x20);\n      }\n    }\n    format = (char *)ptVar15;\n    if (cVar9 == '\0') {\n      (*(code *)PTR_memcpy_00049600)(pcVar13);\n    }\n    else {\n      (*pcVar10)(pcVar13);\n    }\n    s = pcVar13 + (int)ptVar15;\n    pcVar18 = (char *)((int)&tp->tm_sec + (int)pcVar18);\n    pcVar13 = pcVar4;\n  }\nLAB_00023fc0:\n  cVar9 = pcVar16[1];\n  pcVar16 = pcVar16 + 1;\n  if (cVar9 == '\0') goto LAB_00023fcc;\n  goto LAB_00023f94;\n}\n\n" (function_definition "size_t __strftime_internal(char *s,size_t maxsize,char *format,tm *tp,_Bool upcase,\n                          _Bool *tzset_called,timezone_t tz,int ns)\n\n{\n  char cVar1;\n  undefined *puVar2;\n  char *s_00;\n  char cVar9;\n  uint uVar3;\n  char *pcVar4;\n  size_t sVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  code *pcVar10;\n  uint uVar11;\n  tm *ptVar12;\n  char *pcVar13;\n  tm *ptVar14;\n  tm *ptVar15;\n  char *pcVar16;\n  int *piVar17;\n  char *pcVar18;\n  int iVar19;\n  undefined *puVar20;\n  _Bool _Stack_4dd;\n  int iStack_4dc;\n  char *pcStack_4d8;\n  code *pcStack_4d4;\n  timezone_t local_4c0;\n  int local_4bc;\n  tm ltm;\n  char ufmt [5];\n  char buf [14];\n  \n  puVar2 = PTR___stack_chk_guard_000495fc;\n  puVar20 = PTR_LAB_00049218;\n  s_00 = *(char **)PTR___stack_chk_guard_000495fc;\n  cVar9 = *format;\n  pcVar18 = (char *)0x0;\n  pcVar13 = (char *)maxsize;\n  pcVar16 = format;\n  if (cVar9 == '\0') {\nLAB_00023fcc:\n    if ((s != (char *)0x0) && (maxsize != 0)) {\n      *s = '\0';\n    }\nLAB_00023ffc:\n    if (s_00 == *(char **)puVar2) {\n      return (size_t)pcVar18;\n    }\n    pcVar10 = nstrftime;\n    puVar20 = PTR___stack_chk_fail_000495d0;\n    (*(code *)PTR___stack_chk_fail_000495d0)();\n    piVar17 = *(int **)(puVar20 + 0x23cfc);\n    _Stack_4dd = false;\n    iStack_4dc = *piVar17;\n    pcStack_4d8 = pcVar16;\n    pcStack_4d4 = pcVar10;\n    sVar5 = __strftime_internal(s_00,(size_t)pcVar13,format,tp,false,&_Stack_4dd,local_4c0,local_4bc\n                               );\n    if (iStack_4dc != *piVar17) {\n      pcVar10 = *(code **)(puVar20 + 0x23cd0);\n      iVar8 = iStack_4dc;\n      (*pcVar10)();\n      if (iVar8 == 0) {\n        iVar8 = 1;\n        piVar17 = (int *)(*(int *)(pcVar10 + 0x23898) + 0x6990);\n        (**(code **)(pcVar10 + 0x23c24))(piVar17,1,0x37,**(undefined4 **)(pcVar10 + 0x23ca4));\n        pcVar10 = *(code **)(pcVar10 + 0x23b08);\n        (*pcVar10)();\n        *piVar17 = 0;\n        piVar17[1] = 0;\n        piVar17[2] = 0;\n        piVar17[3] = 0;\n        piVar17[4] = 0;\n        piVar17[5] = 0;\n        piVar17[6] = 0;\n        piVar17[7] = 0;\n        piVar17[8] = 0;\n        piVar17[9] = 0;\n        piVar17[10] = 0;\n        piVar17[0xb] = 0;\n        if (iVar8 == 10) {\n          sVar5 = (**(code **)(pcVar10 + 0x239d8))();\n          return sVar5;\n        }\n        *piVar17 = iVar8;\n        return (size_t)piVar17;\n      }\n      iVar6 = (**(code **)(pcVar10 + 0x23b58))();\n      if (((iVar6 != 0) && (iVar19 = iVar6 + 1, 6 < iVar19 - iVar8)) &&\n         (iVar7 = (**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7), iVar7 == 0)) {\n        iVar8 = (**(code **)(pcVar10 + 0x23b10))(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3);\n        if (iVar8 != 0) {\n          **(int **)(pcVar10 + 0x23934) = iVar19;\n          piVar17 = *(int **)(pcVar10 + 0x23b68);\n          *piVar17 = iVar19;\n          return (size_t)piVar17;\n        }\n        iVar8 = iVar6 + 4;\n        **(int **)(pcVar10 + 0x23b24) = iVar8;\n      }\n      **(int **)(pcVar10 + 0x23934) = iVar8;\n      piVar17 = *(int **)(pcVar10 + 0x23b68);\n      *piVar17 = iVar8;\n      return (size_t)piVar17;\n    }\n    return sVar5;\n  }\n  pcVar10 = (code *)(PTR_LAB_00049280 + 0x3e34);\nLAB_00023f94:\n  if (cVar9 == '%') {\n    iVar8 = 0;\n    cVar9 = upcase;\nLAB_0002406c:\n    do {\n      pcVar16 = pcVar16 + 1;\n      cVar1 = *pcVar16;\n      while (uVar11 = (uint)cVar1, uVar11 != 0x30) {\n        if (0x30 < (int)uVar11) {\n          if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }\n          if (uVar11 == 0x5f) {\n            iVar8 = 0x5f;\n            goto LAB_0002406c;\n          }\nLAB_000240c4:\n          ptVar14 = (tm *)0xffffffff;\n          if (9 < uVar11 - 0x30) goto LAB_000240d4;\n          ptVar14 = (tm *)0x0;\n          pcVar13 = pcVar16;\n          goto LAB_00024154;\n        }\n        if (uVar11 != 0x23) {\n          if (uVar11 != 0x2d) goto LAB_000240c4;\n          iVar8 = 0x2d;\n          goto LAB_0002406c;\n        }\n        pcVar16 = pcVar16 + 1;\n        cVar1 = *pcVar16;\n      }\n      iVar8 = 0x30;\n    } while( true );\n  }\n  if (maxsize - (int)pcVar18 < 2) goto LAB_00023ff8;\n  if (s != (char *)0x0) {\n    *s = cVar9;\n    s = s + 1;\n  }\n  pcVar18 = pcVar18 + 1;\n  goto LAB_00023fc0;\nLAB_00024154:\n  do {\n    uVar11 = (uint)pcVar13[1];\n    pcVar16 = pcVar13 + 1;\n    uVar3 = uVar11 - 0x30;\n    if (((int)ptVar14 < 0xccccccd) && ((ptVar14 != (tm *)0xccccccc || (*pcVar13 < 0x38)))) {\n      ptVar14 = (tm *)(*pcVar13 + -0x30 + (int)ptVar14 * 10);\n    }\n    else {\n      if (9 < uVar3) {\n        ptVar14 = (tm *)0x7fffffff;\n        break;\n      }\n      uVar11 = (uint)pcVar13[2];\n      ptVar14 = (tm *)0x7fffffff;\n      pcVar16 = pcVar13 + 2;\n      uVar3 = uVar11 - 0x30;\n    }\n    pcVar13 = pcVar16;\n  } while (uVar3 < 10);\nLAB_000240d4:\n  if ((uVar11 == 0x45) || (uVar11 == 0x4f)) {\n    uVar11 = (uint)pcVar16[1];\n    pcVar16 = pcVar16 + 1;\n  }\n  if ((uVar11 & 0xff) < 0x7b) {\n                    /* WARNING: Could not emulate address calculation at 0x000240fc */\n                    /* WARNING: Treating indirect jump as call */\n    sVar5 = (*(code *)(&_gp + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)))();\n    return sVar5;\n  }\n  pcVar13 = &DAT_00000025;\n  pcVar4 = pcVar16;\n  do {\n    pcVar4 = pcVar4 + -1;\n    ptVar15 = (tm *)(pcVar16 + (1 - (int)pcVar4));\n  } while (*pcVar4 != '%');\n  ptVar12 = ptVar14;\n  if ((int)ptVar14 < 0) {\n    ptVar12 = (tm *)0x0;\n  }\n  format = (char *)(maxsize - (int)pcVar18);\n  tp = ptVar15;\n  if (ptVar15 <= ptVar12) {\n    tp = ptVar12;\n  }\n  if (format <= tp) {\nLAB_00023ff8:\n    pcVar18 = (char *)0x0;\n    goto LAB_00023ffc;\n  }\n  if (s == (char *)0x0) {\n    pcVar18 = (char *)((int)&tp->tm_sec + (int)pcVar18);\n  }\n  else {\n    pcVar13 = s;\n    if (ptVar15 < ptVar12) {\n      pcVar13 = s + ((int)ptVar14 - (int)ptVar15);\n      if (iVar8 == 0x30) {\n        (*(code *)PTR_memset_00049524)(s,0x30);\n      }\n      else {\n        (*(code *)PTR_memset_00049524)(s,0x20);\n      }\n    }\n    format = (char *)ptVar15;\n    if (cVar9 == '\0') {\n      (*(code *)PTR_memcpy_00049600)(pcVar13);\n    }\n    else {\n      (*pcVar10)(pcVar13);\n    }\n    s = pcVar13 + (int)ptVar15;\n    pcVar18 = (char *)((int)&tp->tm_sec + (int)pcVar18);\n    pcVar13 = pcVar4;\n  }\nLAB_00023fc0:\n  cVar9 = pcVar16[1];\n  pcVar16 = pcVar16 + 1;\n  if (cVar9 == '\0') goto LAB_00023fcc;\n  goto LAB_00023f94;\n}" primitive_type (function_declarator "__strftime_internal(char *s,size_t maxsize,char *format,tm *tp,_Bool upcase,\n                          _Bool *tzset_called,timezone_t tz,int ns)" identifier (parameter_list "(char *s,size_t maxsize,char *format,tm *tp,_Bool upcase,\n                          _Bool *tzset_called,timezone_t tz,int ns)" ( (parameter_declaration "char *s" primitive_type (pointer_declarator "*s" * identifier)) , (parameter_declaration "size_t maxsize" primitive_type identifier) , (parameter_declaration "char *format" primitive_type (pointer_declarator "*format" * identifier)) , (parameter_declaration "tm *tp" type_identifier (pointer_declarator "*tp" * identifier)) , (parameter_declaration "_Bool upcase" type_identifier identifier) , (parameter_declaration "_Bool *tzset_called" type_identifier (pointer_declarator "*tzset_called" * identifier)) , (parameter_declaration "timezone_t tz" type_identifier identifier) , (parameter_declaration "int ns" primitive_type identifier) ))) (compound_statement "{\n  char cVar1;\n  undefined *puVar2;\n  char *s_00;\n  char cVar9;\n  uint uVar3;\n  char *pcVar4;\n  size_t sVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  code *pcVar10;\n  uint uVar11;\n  tm *ptVar12;\n  char *pcVar13;\n  tm *ptVar14;\n  tm *ptVar15;\n  char *pcVar16;\n  int *piVar17;\n  char *pcVar18;\n  int iVar19;\n  undefined *puVar20;\n  _Bool _Stack_4dd;\n  int iStack_4dc;\n  char *pcStack_4d8;\n  code *pcStack_4d4;\n  timezone_t local_4c0;\n  int local_4bc;\n  tm ltm;\n  char ufmt [5];\n  char buf [14];\n  \n  puVar2 = PTR___stack_chk_guard_000495fc;\n  puVar20 = PTR_LAB_00049218;\n  s_00 = *(char **)PTR___stack_chk_guard_000495fc;\n  cVar9 = *format;\n  pcVar18 = (char *)0x0;\n  pcVar13 = (char *)maxsize;\n  pcVar16 = format;\n  if (cVar9 == '\0') {\nLAB_00023fcc:\n    if ((s != (char *)0x0) && (maxsize != 0)) {\n      *s = '\0';\n    }\nLAB_00023ffc:\n    if (s_00 == *(char **)puVar2) {\n      return (size_t)pcVar18;\n    }\n    pcVar10 = nstrftime;\n    puVar20 = PTR___stack_chk_fail_000495d0;\n    (*(code *)PTR___stack_chk_fail_000495d0)();\n    piVar17 = *(int **)(puVar20 + 0x23cfc);\n    _Stack_4dd = false;\n    iStack_4dc = *piVar17;\n    pcStack_4d8 = pcVar16;\n    pcStack_4d4 = pcVar10;\n    sVar5 = __strftime_internal(s_00,(size_t)pcVar13,format,tp,false,&_Stack_4dd,local_4c0,local_4bc\n                               );\n    if (iStack_4dc != *piVar17) {\n      pcVar10 = *(code **)(puVar20 + 0x23cd0);\n      iVar8 = iStack_4dc;\n      (*pcVar10)();\n      if (iVar8 == 0) {\n        iVar8 = 1;\n        piVar17 = (int *)(*(int *)(pcVar10 + 0x23898) + 0x6990);\n        (**(code **)(pcVar10 + 0x23c24))(piVar17,1,0x37,**(undefined4 **)(pcVar10 + 0x23ca4));\n        pcVar10 = *(code **)(pcVar10 + 0x23b08);\n        (*pcVar10)();\n        *piVar17 = 0;\n        piVar17[1] = 0;\n        piVar17[2] = 0;\n        piVar17[3] = 0;\n        piVar17[4] = 0;\n        piVar17[5] = 0;\n        piVar17[6] = 0;\n        piVar17[7] = 0;\n        piVar17[8] = 0;\n        piVar17[9] = 0;\n        piVar17[10] = 0;\n        piVar17[0xb] = 0;\n        if (iVar8 == 10) {\n          sVar5 = (**(code **)(pcVar10 + 0x239d8))();\n          return sVar5;\n        }\n        *piVar17 = iVar8;\n        return (size_t)piVar17;\n      }\n      iVar6 = (**(code **)(pcVar10 + 0x23b58))();\n      if (((iVar6 != 0) && (iVar19 = iVar6 + 1, 6 < iVar19 - iVar8)) &&\n         (iVar7 = (**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7), iVar7 == 0)) {\n        iVar8 = (**(code **)(pcVar10 + 0x23b10))(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3);\n        if (iVar8 != 0) {\n          **(int **)(pcVar10 + 0x23934) = iVar19;\n          piVar17 = *(int **)(pcVar10 + 0x23b68);\n          *piVar17 = iVar19;\n          return (size_t)piVar17;\n        }\n        iVar8 = iVar6 + 4;\n        **(int **)(pcVar10 + 0x23b24) = iVar8;\n      }\n      **(int **)(pcVar10 + 0x23934) = iVar8;\n      piVar17 = *(int **)(pcVar10 + 0x23b68);\n      *piVar17 = iVar8;\n      return (size_t)piVar17;\n    }\n    return sVar5;\n  }\n  pcVar10 = (code *)(PTR_LAB_00049280 + 0x3e34);\nLAB_00023f94:\n  if (cVar9 == '%') {\n    iVar8 = 0;\n    cVar9 = upcase;\nLAB_0002406c:\n    do {\n      pcVar16 = pcVar16 + 1;\n      cVar1 = *pcVar16;\n      while (uVar11 = (uint)cVar1, uVar11 != 0x30) {\n        if (0x30 < (int)uVar11) {\n          if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }\n          if (uVar11 == 0x5f) {\n            iVar8 = 0x5f;\n            goto LAB_0002406c;\n          }\nLAB_000240c4:\n          ptVar14 = (tm *)0xffffffff;\n          if (9 < uVar11 - 0x30) goto LAB_000240d4;\n          ptVar14 = (tm *)0x0;\n          pcVar13 = pcVar16;\n          goto LAB_00024154;\n        }\n        if (uVar11 != 0x23) {\n          if (uVar11 != 0x2d) goto LAB_000240c4;\n          iVar8 = 0x2d;\n          goto LAB_0002406c;\n        }\n        pcVar16 = pcVar16 + 1;\n        cVar1 = *pcVar16;\n      }\n      iVar8 = 0x30;\n    } while( true );\n  }\n  if (maxsize - (int)pcVar18 < 2) goto LAB_00023ff8;\n  if (s != (char *)0x0) {\n    *s = cVar9;\n    s = s + 1;\n  }\n  pcVar18 = pcVar18 + 1;\n  goto LAB_00023fc0;\nLAB_00024154:\n  do {\n    uVar11 = (uint)pcVar13[1];\n    pcVar16 = pcVar13 + 1;\n    uVar3 = uVar11 - 0x30;\n    if (((int)ptVar14 < 0xccccccd) && ((ptVar14 != (tm *)0xccccccc || (*pcVar13 < 0x38)))) {\n      ptVar14 = (tm *)(*pcVar13 + -0x30 + (int)ptVar14 * 10);\n    }\n    else {\n      if (9 < uVar3) {\n        ptVar14 = (tm *)0x7fffffff;\n        break;\n      }\n      uVar11 = (uint)pcVar13[2];\n      ptVar14 = (tm *)0x7fffffff;\n      pcVar16 = pcVar13 + 2;\n      uVar3 = uVar11 - 0x30;\n    }\n    pcVar13 = pcVar16;\n  } while (uVar3 < 10);\nLAB_000240d4:\n  if ((uVar11 == 0x45) || (uVar11 == 0x4f)) {\n    uVar11 = (uint)pcVar16[1];\n    pcVar16 = pcVar16 + 1;\n  }\n  if ((uVar11 & 0xff) < 0x7b) {\n                    /* WARNING: Could not emulate address calculation at 0x000240fc */\n                    /* WARNING: Treating indirect jump as call */\n    sVar5 = (*(code *)(&_gp + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)))();\n    return sVar5;\n  }\n  pcVar13 = &DAT_00000025;\n  pcVar4 = pcVar16;\n  do {\n    pcVar4 = pcVar4 + -1;\n    ptVar15 = (tm *)(pcVar16 + (1 - (int)pcVar4));\n  } while (*pcVar4 != '%');\n  ptVar12 = ptVar14;\n  if ((int)ptVar14 < 0) {\n    ptVar12 = (tm *)0x0;\n  }\n  format = (char *)(maxsize - (int)pcVar18);\n  tp = ptVar15;\n  if (ptVar15 <= ptVar12) {\n    tp = ptVar12;\n  }\n  if (format <= tp) {\nLAB_00023ff8:\n    pcVar18 = (char *)0x0;\n    goto LAB_00023ffc;\n  }\n  if (s == (char *)0x0) {\n    pcVar18 = (char *)((int)&tp->tm_sec + (int)pcVar18);\n  }\n  else {\n    pcVar13 = s;\n    if (ptVar15 < ptVar12) {\n      pcVar13 = s + ((int)ptVar14 - (int)ptVar15);\n      if (iVar8 == 0x30) {\n        (*(code *)PTR_memset_00049524)(s,0x30);\n      }\n      else {\n        (*(code *)PTR_memset_00049524)(s,0x20);\n      }\n    }\n    format = (char *)ptVar15;\n    if (cVar9 == '\0') {\n      (*(code *)PTR_memcpy_00049600)(pcVar13);\n    }\n    else {\n      (*pcVar10)(pcVar13);\n    }\n    s = pcVar13 + (int)ptVar15;\n    pcVar18 = (char *)((int)&tp->tm_sec + (int)pcVar18);\n    pcVar13 = pcVar4;\n  }\nLAB_00023fc0:\n  cVar9 = pcVar16[1];\n  pcVar16 = pcVar16 + 1;\n  if (cVar9 == '\0') goto LAB_00023fcc;\n  goto LAB_00023f94;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "char *s_00;" primitive_type (pointer_declarator "*s_00" * identifier) ;) (declaration "char cVar9;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "size_t sVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "code *pcVar10;" type_identifier (pointer_declarator "*pcVar10" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "tm *ptVar12;" type_identifier (pointer_declarator "*ptVar12" * identifier) ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "tm *ptVar14;" type_identifier (pointer_declarator "*ptVar14" * identifier) ;) (declaration "tm *ptVar15;" type_identifier (pointer_declarator "*ptVar15" * identifier) ;) (declaration "char *pcVar16;" primitive_type (pointer_declarator "*pcVar16" * identifier) ;) (declaration "int *piVar17;" primitive_type (pointer_declarator "*piVar17" * identifier) ;) (declaration "char *pcVar18;" primitive_type (pointer_declarator "*pcVar18" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "undefined *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "_Bool _Stack_4dd;" type_identifier identifier ;) (declaration "int iStack_4dc;" primitive_type identifier ;) (declaration "char *pcStack_4d8;" primitive_type (pointer_declarator "*pcStack_4d8" * identifier) ;) (declaration "code *pcStack_4d4;" type_identifier (pointer_declarator "*pcStack_4d4" * identifier) ;) (declaration "timezone_t local_4c0;" type_identifier identifier ;) (declaration "int local_4bc;" primitive_type identifier ;) (declaration "tm ltm;" type_identifier identifier ;) (declaration "char ufmt [5];" primitive_type (array_declarator "ufmt [5]" identifier [ number_literal ]) ;) (declaration "char buf [14];" primitive_type (array_declarator "buf [14]" identifier [ number_literal ]) ;) (expression_statement "puVar2 = PTR___stack_chk_guard_000495fc;" (assignment_expression "puVar2 = PTR___stack_chk_guard_000495fc" identifier = identifier) ;) (expression_statement "puVar20 = PTR_LAB_00049218;" (assignment_expression "puVar20 = PTR_LAB_00049218" identifier = identifier) ;) (expression_statement "s_00 = *(char **)PTR___stack_chk_guard_000495fc;" (assignment_expression "s_00 = *(char **)PTR___stack_chk_guard_000495fc" identifier = (pointer_expression "*(char **)PTR___stack_chk_guard_000495fc" * (cast_expression "(char **)PTR___stack_chk_guard_000495fc" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "cVar9 = *format;" (assignment_expression "cVar9 = *format" identifier = (pointer_expression "*format" * identifier)) ;) (expression_statement "pcVar18 = (char *)0x0;" (assignment_expression "pcVar18 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar13 = (char *)maxsize;" (assignment_expression "pcVar13 = (char *)maxsize" identifier = (cast_expression "(char *)maxsize" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pcVar16 = format;" (assignment_expression "pcVar16 = format" identifier = identifier) ;) (if_statement "if (cVar9 == '\0') {\nLAB_00023fcc:\n    if ((s != (char *)0x0) && (maxsize != 0)) {\n      *s = '\0';\n    }\nLAB_00023ffc:\n    if (s_00 == *(char **)puVar2) {\n      return (size_t)pcVar18;\n    }\n    pcVar10 = nstrftime;\n    puVar20 = PTR___stack_chk_fail_000495d0;\n    (*(code *)PTR___stack_chk_fail_000495d0)();\n    piVar17 = *(int **)(puVar20 + 0x23cfc);\n    _Stack_4dd = false;\n    iStack_4dc = *piVar17;\n    pcStack_4d8 = pcVar16;\n    pcStack_4d4 = pcVar10;\n    sVar5 = __strftime_internal(s_00,(size_t)pcVar13,format,tp,false,&_Stack_4dd,local_4c0,local_4bc\n                               );\n    if (iStack_4dc != *piVar17) {\n      pcVar10 = *(code **)(puVar20 + 0x23cd0);\n      iVar8 = iStack_4dc;\n      (*pcVar10)();\n      if (iVar8 == 0) {\n        iVar8 = 1;\n        piVar17 = (int *)(*(int *)(pcVar10 + 0x23898) + 0x6990);\n        (**(code **)(pcVar10 + 0x23c24))(piVar17,1,0x37,**(undefined4 **)(pcVar10 + 0x23ca4));\n        pcVar10 = *(code **)(pcVar10 + 0x23b08);\n        (*pcVar10)();\n        *piVar17 = 0;\n        piVar17[1] = 0;\n        piVar17[2] = 0;\n        piVar17[3] = 0;\n        piVar17[4] = 0;\n        piVar17[5] = 0;\n        piVar17[6] = 0;\n        piVar17[7] = 0;\n        piVar17[8] = 0;\n        piVar17[9] = 0;\n        piVar17[10] = 0;\n        piVar17[0xb] = 0;\n        if (iVar8 == 10) {\n          sVar5 = (**(code **)(pcVar10 + 0x239d8))();\n          return sVar5;\n        }\n        *piVar17 = iVar8;\n        return (size_t)piVar17;\n      }\n      iVar6 = (**(code **)(pcVar10 + 0x23b58))();\n      if (((iVar6 != 0) && (iVar19 = iVar6 + 1, 6 < iVar19 - iVar8)) &&\n         (iVar7 = (**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7), iVar7 == 0)) {\n        iVar8 = (**(code **)(pcVar10 + 0x23b10))(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3);\n        if (iVar8 != 0) {\n          **(int **)(pcVar10 + 0x23934) = iVar19;\n          piVar17 = *(int **)(pcVar10 + 0x23b68);\n          *piVar17 = iVar19;\n          return (size_t)piVar17;\n        }\n        iVar8 = iVar6 + 4;\n        **(int **)(pcVar10 + 0x23b24) = iVar8;\n      }\n      **(int **)(pcVar10 + 0x23934) = iVar8;\n      piVar17 = *(int **)(pcVar10 + 0x23b68);\n      *piVar17 = iVar8;\n      return (size_t)piVar17;\n    }\n    return sVar5;\n  }" if (parenthesized_expression "(cVar9 == '\0')" ( (binary_expression "cVar9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_00023fcc:\n    if ((s != (char *)0x0) && (maxsize != 0)) {\n      *s = '\0';\n    }\nLAB_00023ffc:\n    if (s_00 == *(char **)puVar2) {\n      return (size_t)pcVar18;\n    }\n    pcVar10 = nstrftime;\n    puVar20 = PTR___stack_chk_fail_000495d0;\n    (*(code *)PTR___stack_chk_fail_000495d0)();\n    piVar17 = *(int **)(puVar20 + 0x23cfc);\n    _Stack_4dd = false;\n    iStack_4dc = *piVar17;\n    pcStack_4d8 = pcVar16;\n    pcStack_4d4 = pcVar10;\n    sVar5 = __strftime_internal(s_00,(size_t)pcVar13,format,tp,false,&_Stack_4dd,local_4c0,local_4bc\n                               );\n    if (iStack_4dc != *piVar17) {\n      pcVar10 = *(code **)(puVar20 + 0x23cd0);\n      iVar8 = iStack_4dc;\n      (*pcVar10)();\n      if (iVar8 == 0) {\n        iVar8 = 1;\n        piVar17 = (int *)(*(int *)(pcVar10 + 0x23898) + 0x6990);\n        (**(code **)(pcVar10 + 0x23c24))(piVar17,1,0x37,**(undefined4 **)(pcVar10 + 0x23ca4));\n        pcVar10 = *(code **)(pcVar10 + 0x23b08);\n        (*pcVar10)();\n        *piVar17 = 0;\n        piVar17[1] = 0;\n        piVar17[2] = 0;\n        piVar17[3] = 0;\n        piVar17[4] = 0;\n        piVar17[5] = 0;\n        piVar17[6] = 0;\n        piVar17[7] = 0;\n        piVar17[8] = 0;\n        piVar17[9] = 0;\n        piVar17[10] = 0;\n        piVar17[0xb] = 0;\n        if (iVar8 == 10) {\n          sVar5 = (**(code **)(pcVar10 + 0x239d8))();\n          return sVar5;\n        }\n        *piVar17 = iVar8;\n        return (size_t)piVar17;\n      }\n      iVar6 = (**(code **)(pcVar10 + 0x23b58))();\n      if (((iVar6 != 0) && (iVar19 = iVar6 + 1, 6 < iVar19 - iVar8)) &&\n         (iVar7 = (**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7), iVar7 == 0)) {\n        iVar8 = (**(code **)(pcVar10 + 0x23b10))(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3);\n        if (iVar8 != 0) {\n          **(int **)(pcVar10 + 0x23934) = iVar19;\n          piVar17 = *(int **)(pcVar10 + 0x23b68);\n          *piVar17 = iVar19;\n          return (size_t)piVar17;\n        }\n        iVar8 = iVar6 + 4;\n        **(int **)(pcVar10 + 0x23b24) = iVar8;\n      }\n      **(int **)(pcVar10 + 0x23934) = iVar8;\n      piVar17 = *(int **)(pcVar10 + 0x23b68);\n      *piVar17 = iVar8;\n      return (size_t)piVar17;\n    }\n    return sVar5;\n  }" { (labeled_statement "LAB_00023fcc:\n    if ((s != (char *)0x0) && (maxsize != 0)) {\n      *s = '\0';\n    }" statement_identifier : (if_statement "if ((s != (char *)0x0) && (maxsize != 0)) {\n      *s = '\0';\n    }" if (parenthesized_expression "((s != (char *)0x0) && (maxsize != 0))" ( (binary_expression "(s != (char *)0x0) && (maxsize != 0)" (parenthesized_expression "(s != (char *)0x0)" ( (binary_expression "s != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(maxsize != 0)" ( (binary_expression "maxsize != 0" identifier != number_literal) ))) )) (compound_statement "{\n      *s = '\0';\n    }" { (expression_statement "*s = '\0';" (assignment_expression "*s = '\0'" (pointer_expression "*s" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) }))) (labeled_statement "LAB_00023ffc:\n    if (s_00 == *(char **)puVar2) {\n      return (size_t)pcVar18;\n    }" statement_identifier : (if_statement "if (s_00 == *(char **)puVar2) {\n      return (size_t)pcVar18;\n    }" if (parenthesized_expression "(s_00 == *(char **)puVar2)" ( (binary_expression "s_00 == *(char **)puVar2" identifier == (pointer_expression "*(char **)puVar2" * (cast_expression "(char **)puVar2" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n      return (size_t)pcVar18;\n    }" { (return_statement "return (size_t)pcVar18;" return (cast_expression "(size_t)pcVar18" ( (type_descriptor "size_t" primitive_type) ) identifier) ;) }))) (expression_statement "pcVar10 = nstrftime;" (assignment_expression "pcVar10 = nstrftime" identifier = identifier) ;) (expression_statement "puVar20 = PTR___stack_chk_fail_000495d0;" (assignment_expression "puVar20 = PTR___stack_chk_fail_000495d0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000495d0)();" (call_expression "(*(code *)PTR___stack_chk_fail_000495d0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000495d0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000495d0" * (cast_expression "(code *)PTR___stack_chk_fail_000495d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar17 = *(int **)(puVar20 + 0x23cfc);" (assignment_expression "piVar17 = *(int **)(puVar20 + 0x23cfc)" identifier = (pointer_expression "*(int **)(puVar20 + 0x23cfc)" * (cast_expression "(int **)(puVar20 + 0x23cfc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x23cfc)" ( (binary_expression "puVar20 + 0x23cfc" identifier + number_literal) ))))) ;) (expression_statement "_Stack_4dd = false;" (assignment_expression "_Stack_4dd = false" identifier = false) ;) (expression_statement "iStack_4dc = *piVar17;" (assignment_expression "iStack_4dc = *piVar17" identifier = (pointer_expression "*piVar17" * identifier)) ;) (expression_statement "pcStack_4d8 = pcVar16;" (assignment_expression "pcStack_4d8 = pcVar16" identifier = identifier) ;) (expression_statement "pcStack_4d4 = pcVar10;" (assignment_expression "pcStack_4d4 = pcVar10" identifier = identifier) ;) (expression_statement "sVar5 = __strftime_internal(s_00,(size_t)pcVar13,format,tp,false,&_Stack_4dd,local_4c0,local_4bc\n                               );" (assignment_expression "sVar5 = __strftime_internal(s_00,(size_t)pcVar13,format,tp,false,&_Stack_4dd,local_4c0,local_4bc\n                               )" identifier = (call_expression "__strftime_internal(s_00,(size_t)pcVar13,format,tp,false,&_Stack_4dd,local_4c0,local_4bc\n                               )" identifier (argument_list "(s_00,(size_t)pcVar13,format,tp,false,&_Stack_4dd,local_4c0,local_4bc\n                               )" ( identifier , (cast_expression "(size_t)pcVar13" ( (type_descriptor "size_t" primitive_type) ) identifier) , identifier , identifier , false , (pointer_expression "&_Stack_4dd" & identifier) , identifier , identifier )))) ;) (if_statement "if (iStack_4dc != *piVar17) {\n      pcVar10 = *(code **)(puVar20 + 0x23cd0);\n      iVar8 = iStack_4dc;\n      (*pcVar10)();\n      if (iVar8 == 0) {\n        iVar8 = 1;\n        piVar17 = (int *)(*(int *)(pcVar10 + 0x23898) + 0x6990);\n        (**(code **)(pcVar10 + 0x23c24))(piVar17,1,0x37,**(undefined4 **)(pcVar10 + 0x23ca4));\n        pcVar10 = *(code **)(pcVar10 + 0x23b08);\n        (*pcVar10)();\n        *piVar17 = 0;\n        piVar17[1] = 0;\n        piVar17[2] = 0;\n        piVar17[3] = 0;\n        piVar17[4] = 0;\n        piVar17[5] = 0;\n        piVar17[6] = 0;\n        piVar17[7] = 0;\n        piVar17[8] = 0;\n        piVar17[9] = 0;\n        piVar17[10] = 0;\n        piVar17[0xb] = 0;\n        if (iVar8 == 10) {\n          sVar5 = (**(code **)(pcVar10 + 0x239d8))();\n          return sVar5;\n        }\n        *piVar17 = iVar8;\n        return (size_t)piVar17;\n      }\n      iVar6 = (**(code **)(pcVar10 + 0x23b58))();\n      if (((iVar6 != 0) && (iVar19 = iVar6 + 1, 6 < iVar19 - iVar8)) &&\n         (iVar7 = (**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7), iVar7 == 0)) {\n        iVar8 = (**(code **)(pcVar10 + 0x23b10))(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3);\n        if (iVar8 != 0) {\n          **(int **)(pcVar10 + 0x23934) = iVar19;\n          piVar17 = *(int **)(pcVar10 + 0x23b68);\n          *piVar17 = iVar19;\n          return (size_t)piVar17;\n        }\n        iVar8 = iVar6 + 4;\n        **(int **)(pcVar10 + 0x23b24) = iVar8;\n      }\n      **(int **)(pcVar10 + 0x23934) = iVar8;\n      piVar17 = *(int **)(pcVar10 + 0x23b68);\n      *piVar17 = iVar8;\n      return (size_t)piVar17;\n    }" if (parenthesized_expression "(iStack_4dc != *piVar17)" ( (binary_expression "iStack_4dc != *piVar17" identifier != (pointer_expression "*piVar17" * identifier)) )) (compound_statement "{\n      pcVar10 = *(code **)(puVar20 + 0x23cd0);\n      iVar8 = iStack_4dc;\n      (*pcVar10)();\n      if (iVar8 == 0) {\n        iVar8 = 1;\n        piVar17 = (int *)(*(int *)(pcVar10 + 0x23898) + 0x6990);\n        (**(code **)(pcVar10 + 0x23c24))(piVar17,1,0x37,**(undefined4 **)(pcVar10 + 0x23ca4));\n        pcVar10 = *(code **)(pcVar10 + 0x23b08);\n        (*pcVar10)();\n        *piVar17 = 0;\n        piVar17[1] = 0;\n        piVar17[2] = 0;\n        piVar17[3] = 0;\n        piVar17[4] = 0;\n        piVar17[5] = 0;\n        piVar17[6] = 0;\n        piVar17[7] = 0;\n        piVar17[8] = 0;\n        piVar17[9] = 0;\n        piVar17[10] = 0;\n        piVar17[0xb] = 0;\n        if (iVar8 == 10) {\n          sVar5 = (**(code **)(pcVar10 + 0x239d8))();\n          return sVar5;\n        }\n        *piVar17 = iVar8;\n        return (size_t)piVar17;\n      }\n      iVar6 = (**(code **)(pcVar10 + 0x23b58))();\n      if (((iVar6 != 0) && (iVar19 = iVar6 + 1, 6 < iVar19 - iVar8)) &&\n         (iVar7 = (**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7), iVar7 == 0)) {\n        iVar8 = (**(code **)(pcVar10 + 0x23b10))(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3);\n        if (iVar8 != 0) {\n          **(int **)(pcVar10 + 0x23934) = iVar19;\n          piVar17 = *(int **)(pcVar10 + 0x23b68);\n          *piVar17 = iVar19;\n          return (size_t)piVar17;\n        }\n        iVar8 = iVar6 + 4;\n        **(int **)(pcVar10 + 0x23b24) = iVar8;\n      }\n      **(int **)(pcVar10 + 0x23934) = iVar8;\n      piVar17 = *(int **)(pcVar10 + 0x23b68);\n      *piVar17 = iVar8;\n      return (size_t)piVar17;\n    }" { (expression_statement "pcVar10 = *(code **)(puVar20 + 0x23cd0);" (assignment_expression "pcVar10 = *(code **)(puVar20 + 0x23cd0)" identifier = (pointer_expression "*(code **)(puVar20 + 0x23cd0)" * (cast_expression "(code **)(puVar20 + 0x23cd0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x23cd0)" ( (binary_expression "puVar20 + 0x23cd0" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = iStack_4dc;" (assignment_expression "iVar8 = iStack_4dc" identifier = identifier) ;) (expression_statement "(*pcVar10)();" (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "()" ( ))) ;) (if_statement "if (iVar8 == 0) {\n        iVar8 = 1;\n        piVar17 = (int *)(*(int *)(pcVar10 + 0x23898) + 0x6990);\n        (**(code **)(pcVar10 + 0x23c24))(piVar17,1,0x37,**(undefined4 **)(pcVar10 + 0x23ca4));\n        pcVar10 = *(code **)(pcVar10 + 0x23b08);\n        (*pcVar10)();\n        *piVar17 = 0;\n        piVar17[1] = 0;\n        piVar17[2] = 0;\n        piVar17[3] = 0;\n        piVar17[4] = 0;\n        piVar17[5] = 0;\n        piVar17[6] = 0;\n        piVar17[7] = 0;\n        piVar17[8] = 0;\n        piVar17[9] = 0;\n        piVar17[10] = 0;\n        piVar17[0xb] = 0;\n        if (iVar8 == 10) {\n          sVar5 = (**(code **)(pcVar10 + 0x239d8))();\n          return sVar5;\n        }\n        *piVar17 = iVar8;\n        return (size_t)piVar17;\n      }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar8 = 1;\n        piVar17 = (int *)(*(int *)(pcVar10 + 0x23898) + 0x6990);\n        (**(code **)(pcVar10 + 0x23c24))(piVar17,1,0x37,**(undefined4 **)(pcVar10 + 0x23ca4));\n        pcVar10 = *(code **)(pcVar10 + 0x23b08);\n        (*pcVar10)();\n        *piVar17 = 0;\n        piVar17[1] = 0;\n        piVar17[2] = 0;\n        piVar17[3] = 0;\n        piVar17[4] = 0;\n        piVar17[5] = 0;\n        piVar17[6] = 0;\n        piVar17[7] = 0;\n        piVar17[8] = 0;\n        piVar17[9] = 0;\n        piVar17[10] = 0;\n        piVar17[0xb] = 0;\n        if (iVar8 == 10) {\n          sVar5 = (**(code **)(pcVar10 + 0x239d8))();\n          return sVar5;\n        }\n        *piVar17 = iVar8;\n        return (size_t)piVar17;\n      }" { (expression_statement "iVar8 = 1;" (assignment_expression "iVar8 = 1" identifier = number_literal) ;) (expression_statement "piVar17 = (int *)(*(int *)(pcVar10 + 0x23898) + 0x6990);" (assignment_expression "piVar17 = (int *)(*(int *)(pcVar10 + 0x23898) + 0x6990)" identifier = (cast_expression "(int *)(*(int *)(pcVar10 + 0x23898) + 0x6990)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar10 + 0x23898) + 0x6990)" ( (binary_expression "*(int *)(pcVar10 + 0x23898) + 0x6990" (pointer_expression "*(int *)(pcVar10 + 0x23898)" * (cast_expression "(int *)(pcVar10 + 0x23898)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x23898)" ( (binary_expression "pcVar10 + 0x23898" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar10 + 0x23c24))(piVar17,1,0x37,**(undefined4 **)(pcVar10 + 0x23ca4));" (call_expression "(**(code **)(pcVar10 + 0x23c24))(piVar17,1,0x37,**(undefined4 **)(pcVar10 + 0x23ca4))" (parenthesized_expression "(**(code **)(pcVar10 + 0x23c24))" ( (pointer_expression "**(code **)(pcVar10 + 0x23c24)" * (pointer_expression "*(code **)(pcVar10 + 0x23c24)" * (cast_expression "(code **)(pcVar10 + 0x23c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x23c24)" ( (binary_expression "pcVar10 + 0x23c24" identifier + number_literal) ))))) )) (argument_list "(piVar17,1,0x37,**(undefined4 **)(pcVar10 + 0x23ca4))" ( identifier , number_literal , number_literal , (pointer_expression "**(undefined4 **)(pcVar10 + 0x23ca4)" * (pointer_expression "*(undefined4 **)(pcVar10 + 0x23ca4)" * (cast_expression "(undefined4 **)(pcVar10 + 0x23ca4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x23ca4)" ( (binary_expression "pcVar10 + 0x23ca4" identifier + number_literal) ))))) ))) ;) (expression_statement "pcVar10 = *(code **)(pcVar10 + 0x23b08);" (assignment_expression "pcVar10 = *(code **)(pcVar10 + 0x23b08)" identifier = (pointer_expression "*(code **)(pcVar10 + 0x23b08)" * (cast_expression "(code **)(pcVar10 + 0x23b08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x23b08)" ( (binary_expression "pcVar10 + 0x23b08" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar10)();" (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "*piVar17 = 0;" (assignment_expression "*piVar17 = 0" (pointer_expression "*piVar17" * identifier) = number_literal) ;) (expression_statement "piVar17[1] = 0;" (assignment_expression "piVar17[1] = 0" (subscript_expression "piVar17[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar17[2] = 0;" (assignment_expression "piVar17[2] = 0" (subscript_expression "piVar17[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar17[3] = 0;" (assignment_expression "piVar17[3] = 0" (subscript_expression "piVar17[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar17[4] = 0;" (assignment_expression "piVar17[4] = 0" (subscript_expression "piVar17[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar17[5] = 0;" (assignment_expression "piVar17[5] = 0" (subscript_expression "piVar17[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar17[6] = 0;" (assignment_expression "piVar17[6] = 0" (subscript_expression "piVar17[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar17[7] = 0;" (assignment_expression "piVar17[7] = 0" (subscript_expression "piVar17[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar17[8] = 0;" (assignment_expression "piVar17[8] = 0" (subscript_expression "piVar17[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar17[9] = 0;" (assignment_expression "piVar17[9] = 0" (subscript_expression "piVar17[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar17[10] = 0;" (assignment_expression "piVar17[10] = 0" (subscript_expression "piVar17[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar17[0xb] = 0;" (assignment_expression "piVar17[0xb] = 0" (subscript_expression "piVar17[0xb]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (iVar8 == 10) {\n          sVar5 = (**(code **)(pcVar10 + 0x239d8))();\n          return sVar5;\n        }" if (parenthesized_expression "(iVar8 == 10)" ( (binary_expression "iVar8 == 10" identifier == number_literal) )) (compound_statement "{\n          sVar5 = (**(code **)(pcVar10 + 0x239d8))();\n          return sVar5;\n        }" { (expression_statement "sVar5 = (**(code **)(pcVar10 + 0x239d8))();" (assignment_expression "sVar5 = (**(code **)(pcVar10 + 0x239d8))()" identifier = (call_expression "(**(code **)(pcVar10 + 0x239d8))()" (parenthesized_expression "(**(code **)(pcVar10 + 0x239d8))" ( (pointer_expression "**(code **)(pcVar10 + 0x239d8)" * (pointer_expression "*(code **)(pcVar10 + 0x239d8)" * (cast_expression "(code **)(pcVar10 + 0x239d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x239d8)" ( (binary_expression "pcVar10 + 0x239d8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (return_statement "return sVar5;" return identifier ;) })) (expression_statement "*piVar17 = iVar8;" (assignment_expression "*piVar17 = iVar8" (pointer_expression "*piVar17" * identifier) = identifier) ;) (return_statement "return (size_t)piVar17;" return (cast_expression "(size_t)piVar17" ( (type_descriptor "size_t" primitive_type) ) identifier) ;) })) (expression_statement "iVar6 = (**(code **)(pcVar10 + 0x23b58))();" (assignment_expression "iVar6 = (**(code **)(pcVar10 + 0x23b58))()" identifier = (call_expression "(**(code **)(pcVar10 + 0x23b58))()" (parenthesized_expression "(**(code **)(pcVar10 + 0x23b58))" ( (pointer_expression "**(code **)(pcVar10 + 0x23b58)" * (pointer_expression "*(code **)(pcVar10 + 0x23b58)" * (cast_expression "(code **)(pcVar10 + 0x23b58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x23b58)" ( (binary_expression "pcVar10 + 0x23b58" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (((iVar6 != 0) && (iVar19 = iVar6 + 1, 6 < iVar19 - iVar8)) &&\n         (iVar7 = (**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7), iVar7 == 0)) {\n        iVar8 = (**(code **)(pcVar10 + 0x23b10))(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3);\n        if (iVar8 != 0) {\n          **(int **)(pcVar10 + 0x23934) = iVar19;\n          piVar17 = *(int **)(pcVar10 + 0x23b68);\n          *piVar17 = iVar19;\n          return (size_t)piVar17;\n        }\n        iVar8 = iVar6 + 4;\n        **(int **)(pcVar10 + 0x23b24) = iVar8;\n      }" if (parenthesized_expression "(((iVar6 != 0) && (iVar19 = iVar6 + 1, 6 < iVar19 - iVar8)) &&\n         (iVar7 = (**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7), iVar7 == 0))" ( (binary_expression "((iVar6 != 0) && (iVar19 = iVar6 + 1, 6 < iVar19 - iVar8)) &&\n         (iVar7 = (**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7), iVar7 == 0)" (parenthesized_expression "((iVar6 != 0) && (iVar19 = iVar6 + 1, 6 < iVar19 - iVar8))" ( (binary_expression "(iVar6 != 0) && (iVar19 = iVar6 + 1, 6 < iVar19 - iVar8)" (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar19 = iVar6 + 1, 6 < iVar19 - iVar8)" ( (comma_expression "iVar19 = iVar6 + 1, 6 < iVar19 - iVar8" (assignment_expression "iVar19 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) , (binary_expression "6 < iVar19 - iVar8" number_literal < (binary_expression "iVar19 - iVar8" identifier - identifier))) ))) )) && (parenthesized_expression "(iVar7 = (**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7), iVar7 == 0)" ( (comma_expression "iVar7 = (**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7), iVar7 == 0" (assignment_expression "iVar7 = (**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7)" identifier = (call_expression "(**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7)" (parenthesized_expression "(**(code **)(pcVar10 + 0x23b10))" ( (pointer_expression "**(code **)(pcVar10 + 0x23b10)" * (pointer_expression "*(code **)(pcVar10 + 0x23b10)" * (cast_expression "(code **)(pcVar10 + 0x23b10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x23b10)" ( (binary_expression "pcVar10 + 0x23b10" identifier + number_literal) ))))) )) (argument_list "(iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7)" ( (binary_expression "iVar6 + -6" identifier + number_literal) , (binary_expression "*(int *)(pcVar10 + 0x23898) + 0x69c8" (pointer_expression "*(int *)(pcVar10 + 0x23898)" * (cast_expression "(int *)(pcVar10 + 0x23898)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x23898)" ( (binary_expression "pcVar10 + 0x23898" identifier + number_literal) )))) + number_literal) , number_literal )))) , (binary_expression "iVar7 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n        iVar8 = (**(code **)(pcVar10 + 0x23b10))(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3);\n        if (iVar8 != 0) {\n          **(int **)(pcVar10 + 0x23934) = iVar19;\n          piVar17 = *(int **)(pcVar10 + 0x23b68);\n          *piVar17 = iVar19;\n          return (size_t)piVar17;\n        }\n        iVar8 = iVar6 + 4;\n        **(int **)(pcVar10 + 0x23b24) = iVar8;\n      }" { (expression_statement "iVar8 = (**(code **)(pcVar10 + 0x23b10))(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3);" (assignment_expression "iVar8 = (**(code **)(pcVar10 + 0x23b10))(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3)" identifier = (call_expression "(**(code **)(pcVar10 + 0x23b10))(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3)" (parenthesized_expression "(**(code **)(pcVar10 + 0x23b10))" ( (pointer_expression "**(code **)(pcVar10 + 0x23b10)" * (pointer_expression "*(code **)(pcVar10 + 0x23b10)" * (cast_expression "(code **)(pcVar10 + 0x23b10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x23b10)" ( (binary_expression "pcVar10 + 0x23b10" identifier + number_literal) ))))) )) (argument_list "(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3)" ( identifier , (binary_expression "*(int *)(pcVar10 + 0x23898) + 0x69d0" (pointer_expression "*(int *)(pcVar10 + 0x23898)" * (cast_expression "(int *)(pcVar10 + 0x23898)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x23898)" ( (binary_expression "pcVar10 + 0x23898" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (if_statement "if (iVar8 != 0) {\n          **(int **)(pcVar10 + 0x23934) = iVar19;\n          piVar17 = *(int **)(pcVar10 + 0x23b68);\n          *piVar17 = iVar19;\n          return (size_t)piVar17;\n        }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n          **(int **)(pcVar10 + 0x23934) = iVar19;\n          piVar17 = *(int **)(pcVar10 + 0x23b68);\n          *piVar17 = iVar19;\n          return (size_t)piVar17;\n        }" { (expression_statement "**(int **)(pcVar10 + 0x23934) = iVar19;" (assignment_expression "**(int **)(pcVar10 + 0x23934) = iVar19" (pointer_expression "**(int **)(pcVar10 + 0x23934)" * (pointer_expression "*(int **)(pcVar10 + 0x23934)" * (cast_expression "(int **)(pcVar10 + 0x23934)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x23934)" ( (binary_expression "pcVar10 + 0x23934" identifier + number_literal) ))))) = identifier) ;) (expression_statement "piVar17 = *(int **)(pcVar10 + 0x23b68);" (assignment_expression "piVar17 = *(int **)(pcVar10 + 0x23b68)" identifier = (pointer_expression "*(int **)(pcVar10 + 0x23b68)" * (cast_expression "(int **)(pcVar10 + 0x23b68)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x23b68)" ( (binary_expression "pcVar10 + 0x23b68" identifier + number_literal) ))))) ;) (expression_statement "*piVar17 = iVar19;" (assignment_expression "*piVar17 = iVar19" (pointer_expression "*piVar17" * identifier) = identifier) ;) (return_statement "return (size_t)piVar17;" return (cast_expression "(size_t)piVar17" ( (type_descriptor "size_t" primitive_type) ) identifier) ;) })) (expression_statement "iVar8 = iVar6 + 4;" (assignment_expression "iVar8 = iVar6 + 4" identifier = (binary_expression "iVar6 + 4" identifier + number_literal)) ;) (expression_statement "**(int **)(pcVar10 + 0x23b24) = iVar8;" (assignment_expression "**(int **)(pcVar10 + 0x23b24) = iVar8" (pointer_expression "**(int **)(pcVar10 + 0x23b24)" * (pointer_expression "*(int **)(pcVar10 + 0x23b24)" * (cast_expression "(int **)(pcVar10 + 0x23b24)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x23b24)" ( (binary_expression "pcVar10 + 0x23b24" identifier + number_literal) ))))) = identifier) ;) })) (expression_statement "**(int **)(pcVar10 + 0x23934) = iVar8;" (assignment_expression "**(int **)(pcVar10 + 0x23934) = iVar8" (pointer_expression "**(int **)(pcVar10 + 0x23934)" * (pointer_expression "*(int **)(pcVar10 + 0x23934)" * (cast_expression "(int **)(pcVar10 + 0x23934)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x23934)" ( (binary_expression "pcVar10 + 0x23934" identifier + number_literal) ))))) = identifier) ;) (expression_statement "piVar17 = *(int **)(pcVar10 + 0x23b68);" (assignment_expression "piVar17 = *(int **)(pcVar10 + 0x23b68)" identifier = (pointer_expression "*(int **)(pcVar10 + 0x23b68)" * (cast_expression "(int **)(pcVar10 + 0x23b68)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x23b68)" ( (binary_expression "pcVar10 + 0x23b68" identifier + number_literal) ))))) ;) (expression_statement "*piVar17 = iVar8;" (assignment_expression "*piVar17 = iVar8" (pointer_expression "*piVar17" * identifier) = identifier) ;) (return_statement "return (size_t)piVar17;" return (cast_expression "(size_t)piVar17" ( (type_descriptor "size_t" primitive_type) ) identifier) ;) })) (return_statement "return sVar5;" return identifier ;) })) (expression_statement "pcVar10 = (code *)(PTR_LAB_00049280 + 0x3e34);" (assignment_expression "pcVar10 = (code *)(PTR_LAB_00049280 + 0x3e34)" identifier = (cast_expression "(code *)(PTR_LAB_00049280 + 0x3e34)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00049280 + 0x3e34)" ( (binary_expression "PTR_LAB_00049280 + 0x3e34" identifier + number_literal) )))) ;) (labeled_statement "LAB_00023f94:\n  if (cVar9 == '%') {\n    iVar8 = 0;\n    cVar9 = upcase;\nLAB_0002406c:\n    do {\n      pcVar16 = pcVar16 + 1;\n      cVar1 = *pcVar16;\n      while (uVar11 = (uint)cVar1, uVar11 != 0x30) {\n        if (0x30 < (int)uVar11) {\n          if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }\n          if (uVar11 == 0x5f) {\n            iVar8 = 0x5f;\n            goto LAB_0002406c;\n          }\nLAB_000240c4:\n          ptVar14 = (tm *)0xffffffff;\n          if (9 < uVar11 - 0x30) goto LAB_000240d4;\n          ptVar14 = (tm *)0x0;\n          pcVar13 = pcVar16;\n          goto LAB_00024154;\n        }\n        if (uVar11 != 0x23) {\n          if (uVar11 != 0x2d) goto LAB_000240c4;\n          iVar8 = 0x2d;\n          goto LAB_0002406c;\n        }\n        pcVar16 = pcVar16 + 1;\n        cVar1 = *pcVar16;\n      }\n      iVar8 = 0x30;\n    } while( true );\n  }" statement_identifier : (if_statement "if (cVar9 == '%') {\n    iVar8 = 0;\n    cVar9 = upcase;\nLAB_0002406c:\n    do {\n      pcVar16 = pcVar16 + 1;\n      cVar1 = *pcVar16;\n      while (uVar11 = (uint)cVar1, uVar11 != 0x30) {\n        if (0x30 < (int)uVar11) {\n          if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }\n          if (uVar11 == 0x5f) {\n            iVar8 = 0x5f;\n            goto LAB_0002406c;\n          }\nLAB_000240c4:\n          ptVar14 = (tm *)0xffffffff;\n          if (9 < uVar11 - 0x30) goto LAB_000240d4;\n          ptVar14 = (tm *)0x0;\n          pcVar13 = pcVar16;\n          goto LAB_00024154;\n        }\n        if (uVar11 != 0x23) {\n          if (uVar11 != 0x2d) goto LAB_000240c4;\n          iVar8 = 0x2d;\n          goto LAB_0002406c;\n        }\n        pcVar16 = pcVar16 + 1;\n        cVar1 = *pcVar16;\n      }\n      iVar8 = 0x30;\n    } while( true );\n  }" if (parenthesized_expression "(cVar9 == '%')" ( (binary_expression "cVar9 == '%'" identifier == (char_literal "'%'" ' character ')) )) (compound_statement "{\n    iVar8 = 0;\n    cVar9 = upcase;\nLAB_0002406c:\n    do {\n      pcVar16 = pcVar16 + 1;\n      cVar1 = *pcVar16;\n      while (uVar11 = (uint)cVar1, uVar11 != 0x30) {\n        if (0x30 < (int)uVar11) {\n          if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }\n          if (uVar11 == 0x5f) {\n            iVar8 = 0x5f;\n            goto LAB_0002406c;\n          }\nLAB_000240c4:\n          ptVar14 = (tm *)0xffffffff;\n          if (9 < uVar11 - 0x30) goto LAB_000240d4;\n          ptVar14 = (tm *)0x0;\n          pcVar13 = pcVar16;\n          goto LAB_00024154;\n        }\n        if (uVar11 != 0x23) {\n          if (uVar11 != 0x2d) goto LAB_000240c4;\n          iVar8 = 0x2d;\n          goto LAB_0002406c;\n        }\n        pcVar16 = pcVar16 + 1;\n        cVar1 = *pcVar16;\n      }\n      iVar8 = 0x30;\n    } while( true );\n  }" { (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (expression_statement "cVar9 = upcase;" (assignment_expression "cVar9 = upcase" identifier = identifier) ;) (labeled_statement "LAB_0002406c:\n    do {\n      pcVar16 = pcVar16 + 1;\n      cVar1 = *pcVar16;\n      while (uVar11 = (uint)cVar1, uVar11 != 0x30) {\n        if (0x30 < (int)uVar11) {\n          if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }\n          if (uVar11 == 0x5f) {\n            iVar8 = 0x5f;\n            goto LAB_0002406c;\n          }\nLAB_000240c4:\n          ptVar14 = (tm *)0xffffffff;\n          if (9 < uVar11 - 0x30) goto LAB_000240d4;\n          ptVar14 = (tm *)0x0;\n          pcVar13 = pcVar16;\n          goto LAB_00024154;\n        }\n        if (uVar11 != 0x23) {\n          if (uVar11 != 0x2d) goto LAB_000240c4;\n          iVar8 = 0x2d;\n          goto LAB_0002406c;\n        }\n        pcVar16 = pcVar16 + 1;\n        cVar1 = *pcVar16;\n      }\n      iVar8 = 0x30;\n    } while( true );" statement_identifier : (do_statement "do {\n      pcVar16 = pcVar16 + 1;\n      cVar1 = *pcVar16;\n      while (uVar11 = (uint)cVar1, uVar11 != 0x30) {\n        if (0x30 < (int)uVar11) {\n          if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }\n          if (uVar11 == 0x5f) {\n            iVar8 = 0x5f;\n            goto LAB_0002406c;\n          }\nLAB_000240c4:\n          ptVar14 = (tm *)0xffffffff;\n          if (9 < uVar11 - 0x30) goto LAB_000240d4;\n          ptVar14 = (tm *)0x0;\n          pcVar13 = pcVar16;\n          goto LAB_00024154;\n        }\n        if (uVar11 != 0x23) {\n          if (uVar11 != 0x2d) goto LAB_000240c4;\n          iVar8 = 0x2d;\n          goto LAB_0002406c;\n        }\n        pcVar16 = pcVar16 + 1;\n        cVar1 = *pcVar16;\n      }\n      iVar8 = 0x30;\n    } while( true );" do (compound_statement "{\n      pcVar16 = pcVar16 + 1;\n      cVar1 = *pcVar16;\n      while (uVar11 = (uint)cVar1, uVar11 != 0x30) {\n        if (0x30 < (int)uVar11) {\n          if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }\n          if (uVar11 == 0x5f) {\n            iVar8 = 0x5f;\n            goto LAB_0002406c;\n          }\nLAB_000240c4:\n          ptVar14 = (tm *)0xffffffff;\n          if (9 < uVar11 - 0x30) goto LAB_000240d4;\n          ptVar14 = (tm *)0x0;\n          pcVar13 = pcVar16;\n          goto LAB_00024154;\n        }\n        if (uVar11 != 0x23) {\n          if (uVar11 != 0x2d) goto LAB_000240c4;\n          iVar8 = 0x2d;\n          goto LAB_0002406c;\n        }\n        pcVar16 = pcVar16 + 1;\n        cVar1 = *pcVar16;\n      }\n      iVar8 = 0x30;\n    }" { (expression_statement "pcVar16 = pcVar16 + 1;" (assignment_expression "pcVar16 = pcVar16 + 1" identifier = (binary_expression "pcVar16 + 1" identifier + number_literal)) ;) (expression_statement "cVar1 = *pcVar16;" (assignment_expression "cVar1 = *pcVar16" identifier = (pointer_expression "*pcVar16" * identifier)) ;) (while_statement "while (uVar11 = (uint)cVar1, uVar11 != 0x30) {\n        if (0x30 < (int)uVar11) {\n          if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }\n          if (uVar11 == 0x5f) {\n            iVar8 = 0x5f;\n            goto LAB_0002406c;\n          }\nLAB_000240c4:\n          ptVar14 = (tm *)0xffffffff;\n          if (9 < uVar11 - 0x30) goto LAB_000240d4;\n          ptVar14 = (tm *)0x0;\n          pcVar13 = pcVar16;\n          goto LAB_00024154;\n        }\n        if (uVar11 != 0x23) {\n          if (uVar11 != 0x2d) goto LAB_000240c4;\n          iVar8 = 0x2d;\n          goto LAB_0002406c;\n        }\n        pcVar16 = pcVar16 + 1;\n        cVar1 = *pcVar16;\n      }" while (parenthesized_expression "(uVar11 = (uint)cVar1, uVar11 != 0x30)" ( (comma_expression "uVar11 = (uint)cVar1, uVar11 != 0x30" (assignment_expression "uVar11 = (uint)cVar1" identifier = (cast_expression "(uint)cVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) , (binary_expression "uVar11 != 0x30" identifier != number_literal)) )) (compound_statement "{\n        if (0x30 < (int)uVar11) {\n          if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }\n          if (uVar11 == 0x5f) {\n            iVar8 = 0x5f;\n            goto LAB_0002406c;\n          }\nLAB_000240c4:\n          ptVar14 = (tm *)0xffffffff;\n          if (9 < uVar11 - 0x30) goto LAB_000240d4;\n          ptVar14 = (tm *)0x0;\n          pcVar13 = pcVar16;\n          goto LAB_00024154;\n        }\n        if (uVar11 != 0x23) {\n          if (uVar11 != 0x2d) goto LAB_000240c4;\n          iVar8 = 0x2d;\n          goto LAB_0002406c;\n        }\n        pcVar16 = pcVar16 + 1;\n        cVar1 = *pcVar16;\n      }" { (if_statement "if (0x30 < (int)uVar11) {\n          if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }\n          if (uVar11 == 0x5f) {\n            iVar8 = 0x5f;\n            goto LAB_0002406c;\n          }\nLAB_000240c4:\n          ptVar14 = (tm *)0xffffffff;\n          if (9 < uVar11 - 0x30) goto LAB_000240d4;\n          ptVar14 = (tm *)0x0;\n          pcVar13 = pcVar16;\n          goto LAB_00024154;\n        }" if (parenthesized_expression "(0x30 < (int)uVar11)" ( (binary_expression "0x30 < (int)uVar11" number_literal < (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }\n          if (uVar11 == 0x5f) {\n            iVar8 = 0x5f;\n            goto LAB_0002406c;\n          }\nLAB_000240c4:\n          ptVar14 = (tm *)0xffffffff;\n          if (9 < uVar11 - 0x30) goto LAB_000240d4;\n          ptVar14 = (tm *)0x0;\n          pcVar13 = pcVar16;\n          goto LAB_00024154;\n        }" { (if_statement "if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }" if (parenthesized_expression "(uVar11 == 0x5e)" ( (binary_expression "uVar11 == 0x5e" identifier == number_literal) )) (compound_statement "{\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }" { (expression_statement "cVar9 = '\x01';" (assignment_expression "cVar9 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (goto_statement "goto LAB_0002406c;" goto statement_identifier ;) })) (if_statement "if (uVar11 == 0x5f) {\n            iVar8 = 0x5f;\n            goto LAB_0002406c;\n          }" if (parenthesized_expression "(uVar11 == 0x5f)" ( (binary_expression "uVar11 == 0x5f" identifier == number_literal) )) (compound_statement "{\n            iVar8 = 0x5f;\n            goto LAB_0002406c;\n          }" { (expression_statement "iVar8 = 0x5f;" (assignment_expression "iVar8 = 0x5f" identifier = number_literal) ;) (goto_statement "goto LAB_0002406c;" goto statement_identifier ;) })) (labeled_statement "LAB_000240c4:\n          ptVar14 = (tm *)0xffffffff;" statement_identifier : (expression_statement "ptVar14 = (tm *)0xffffffff;" (assignment_expression "ptVar14 = (tm *)0xffffffff" identifier = (cast_expression "(tm *)0xffffffff" ( (type_descriptor "tm *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (if_statement "if (9 < uVar11 - 0x30) goto LAB_000240d4;" if (parenthesized_expression "(9 < uVar11 - 0x30)" ( (binary_expression "9 < uVar11 - 0x30" number_literal < (binary_expression "uVar11 - 0x30" identifier - number_literal)) )) (goto_statement "goto LAB_000240d4;" goto statement_identifier ;)) (expression_statement "ptVar14 = (tm *)0x0;" (assignment_expression "ptVar14 = (tm *)0x0" identifier = (cast_expression "(tm *)0x0" ( (type_descriptor "tm *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar13 = pcVar16;" (assignment_expression "pcVar13 = pcVar16" identifier = identifier) ;) (goto_statement "goto LAB_00024154;" goto statement_identifier ;) })) (if_statement "if (uVar11 != 0x23) {\n          if (uVar11 != 0x2d) goto LAB_000240c4;\n          iVar8 = 0x2d;\n          goto LAB_0002406c;\n        }" if (parenthesized_expression "(uVar11 != 0x23)" ( (binary_expression "uVar11 != 0x23" identifier != number_literal) )) (compound_statement "{\n          if (uVar11 != 0x2d) goto LAB_000240c4;\n          iVar8 = 0x2d;\n          goto LAB_0002406c;\n        }" { (if_statement "if (uVar11 != 0x2d) goto LAB_000240c4;" if (parenthesized_expression "(uVar11 != 0x2d)" ( (binary_expression "uVar11 != 0x2d" identifier != number_literal) )) (goto_statement "goto LAB_000240c4;" goto statement_identifier ;)) (expression_statement "iVar8 = 0x2d;" (assignment_expression "iVar8 = 0x2d" identifier = number_literal) ;) (goto_statement "goto LAB_0002406c;" goto statement_identifier ;) })) (expression_statement "pcVar16 = pcVar16 + 1;" (assignment_expression "pcVar16 = pcVar16 + 1" identifier = (binary_expression "pcVar16 + 1" identifier + number_literal)) ;) (expression_statement "cVar1 = *pcVar16;" (assignment_expression "cVar1 = *pcVar16" identifier = (pointer_expression "*pcVar16" * identifier)) ;) })) (expression_statement "iVar8 = 0x30;" (assignment_expression "iVar8 = 0x30" identifier = number_literal) ;) }) while (parenthesized_expression "( true )" ( true )) ;)) }))) (if_statement "if (maxsize - (int)pcVar18 < 2) goto LAB_00023ff8;" if (parenthesized_expression "(maxsize - (int)pcVar18 < 2)" ( (binary_expression "maxsize - (int)pcVar18 < 2" (binary_expression "maxsize - (int)pcVar18" identifier - (cast_expression "(int)pcVar18" ( (type_descriptor "int" primitive_type) ) identifier)) < number_literal) )) (goto_statement "goto LAB_00023ff8;" goto statement_identifier ;)) (if_statement "if (s != (char *)0x0) {\n    *s = cVar9;\n    s = s + 1;\n  }" if (parenthesized_expression "(s != (char *)0x0)" ( (binary_expression "s != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *s = cVar9;\n    s = s + 1;\n  }" { (expression_statement "*s = cVar9;" (assignment_expression "*s = cVar9" (pointer_expression "*s" * identifier) = identifier) ;) (expression_statement "s = s + 1;" (assignment_expression "s = s + 1" identifier = (binary_expression "s + 1" identifier + number_literal)) ;) })) (expression_statement "pcVar18 = pcVar18 + 1;" (assignment_expression "pcVar18 = pcVar18 + 1" identifier = (binary_expression "pcVar18 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_00023fc0;" goto statement_identifier ;) (labeled_statement "LAB_00024154:\n  do {\n    uVar11 = (uint)pcVar13[1];\n    pcVar16 = pcVar13 + 1;\n    uVar3 = uVar11 - 0x30;\n    if (((int)ptVar14 < 0xccccccd) && ((ptVar14 != (tm *)0xccccccc || (*pcVar13 < 0x38)))) {\n      ptVar14 = (tm *)(*pcVar13 + -0x30 + (int)ptVar14 * 10);\n    }\n    else {\n      if (9 < uVar3) {\n        ptVar14 = (tm *)0x7fffffff;\n        break;\n      }\n      uVar11 = (uint)pcVar13[2];\n      ptVar14 = (tm *)0x7fffffff;\n      pcVar16 = pcVar13 + 2;\n      uVar3 = uVar11 - 0x30;\n    }\n    pcVar13 = pcVar16;\n  } while (uVar3 < 10);" statement_identifier : (do_statement "do {\n    uVar11 = (uint)pcVar13[1];\n    pcVar16 = pcVar13 + 1;\n    uVar3 = uVar11 - 0x30;\n    if (((int)ptVar14 < 0xccccccd) && ((ptVar14 != (tm *)0xccccccc || (*pcVar13 < 0x38)))) {\n      ptVar14 = (tm *)(*pcVar13 + -0x30 + (int)ptVar14 * 10);\n    }\n    else {\n      if (9 < uVar3) {\n        ptVar14 = (tm *)0x7fffffff;\n        break;\n      }\n      uVar11 = (uint)pcVar13[2];\n      ptVar14 = (tm *)0x7fffffff;\n      pcVar16 = pcVar13 + 2;\n      uVar3 = uVar11 - 0x30;\n    }\n    pcVar13 = pcVar16;\n  } while (uVar3 < 10);" do (compound_statement "{\n    uVar11 = (uint)pcVar13[1];\n    pcVar16 = pcVar13 + 1;\n    uVar3 = uVar11 - 0x30;\n    if (((int)ptVar14 < 0xccccccd) && ((ptVar14 != (tm *)0xccccccc || (*pcVar13 < 0x38)))) {\n      ptVar14 = (tm *)(*pcVar13 + -0x30 + (int)ptVar14 * 10);\n    }\n    else {\n      if (9 < uVar3) {\n        ptVar14 = (tm *)0x7fffffff;\n        break;\n      }\n      uVar11 = (uint)pcVar13[2];\n      ptVar14 = (tm *)0x7fffffff;\n      pcVar16 = pcVar13 + 2;\n      uVar3 = uVar11 - 0x30;\n    }\n    pcVar13 = pcVar16;\n  }" { (expression_statement "uVar11 = (uint)pcVar13[1];" (assignment_expression "uVar11 = (uint)pcVar13[1]" identifier = (cast_expression "(uint)pcVar13[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pcVar13[1]" identifier [ number_literal ]))) ;) (expression_statement "pcVar16 = pcVar13 + 1;" (assignment_expression "pcVar16 = pcVar13 + 1" identifier = (binary_expression "pcVar13 + 1" identifier + number_literal)) ;) (expression_statement "uVar3 = uVar11 - 0x30;" (assignment_expression "uVar3 = uVar11 - 0x30" identifier = (binary_expression "uVar11 - 0x30" identifier - number_literal)) ;) (if_statement "if (((int)ptVar14 < 0xccccccd) && ((ptVar14 != (tm *)0xccccccc || (*pcVar13 < 0x38)))) {\n      ptVar14 = (tm *)(*pcVar13 + -0x30 + (int)ptVar14 * 10);\n    }\n    else {\n      if (9 < uVar3) {\n        ptVar14 = (tm *)0x7fffffff;\n        break;\n      }\n      uVar11 = (uint)pcVar13[2];\n      ptVar14 = (tm *)0x7fffffff;\n      pcVar16 = pcVar13 + 2;\n      uVar3 = uVar11 - 0x30;\n    }" if (parenthesized_expression "(((int)ptVar14 < 0xccccccd) && ((ptVar14 != (tm *)0xccccccc || (*pcVar13 < 0x38))))" ( (binary_expression "((int)ptVar14 < 0xccccccd) && ((ptVar14 != (tm *)0xccccccc || (*pcVar13 < 0x38)))" (parenthesized_expression "((int)ptVar14 < 0xccccccd)" ( (binary_expression "(int)ptVar14 < 0xccccccd" (cast_expression "(int)ptVar14" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) && (parenthesized_expression "((ptVar14 != (tm *)0xccccccc || (*pcVar13 < 0x38)))" ( (parenthesized_expression "(ptVar14 != (tm *)0xccccccc || (*pcVar13 < 0x38))" ( (binary_expression "ptVar14 != (tm *)0xccccccc || (*pcVar13 < 0x38)" (binary_expression "ptVar14 != (tm *)0xccccccc" identifier != (cast_expression "(tm *)0xccccccc" ( (type_descriptor "tm *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "(*pcVar13 < 0x38)" ( (binary_expression "*pcVar13 < 0x38" (pointer_expression "*pcVar13" * identifier) < number_literal) ))) )) ))) )) (compound_statement "{\n      ptVar14 = (tm *)(*pcVar13 + -0x30 + (int)ptVar14 * 10);\n    }" { (expression_statement "ptVar14 = (tm *)(*pcVar13 + -0x30 + (int)ptVar14 * 10);" (assignment_expression "ptVar14 = (tm *)(*pcVar13 + -0x30 + (int)ptVar14 * 10)" identifier = (cast_expression "(tm *)(*pcVar13 + -0x30 + (int)ptVar14 * 10)" ( (type_descriptor "tm *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*pcVar13 + -0x30 + (int)ptVar14 * 10)" ( (binary_expression "*pcVar13 + -0x30 + (int)ptVar14 * 10" (binary_expression "*pcVar13 + -0x30" (pointer_expression "*pcVar13" * identifier) + number_literal) + (binary_expression "(int)ptVar14 * 10" (cast_expression "(int)ptVar14" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) }) (else_clause "else {\n      if (9 < uVar3) {\n        ptVar14 = (tm *)0x7fffffff;\n        break;\n      }\n      uVar11 = (uint)pcVar13[2];\n      ptVar14 = (tm *)0x7fffffff;\n      pcVar16 = pcVar13 + 2;\n      uVar3 = uVar11 - 0x30;\n    }" else (compound_statement "{\n      if (9 < uVar3) {\n        ptVar14 = (tm *)0x7fffffff;\n        break;\n      }\n      uVar11 = (uint)pcVar13[2];\n      ptVar14 = (tm *)0x7fffffff;\n      pcVar16 = pcVar13 + 2;\n      uVar3 = uVar11 - 0x30;\n    }" { (if_statement "if (9 < uVar3) {\n        ptVar14 = (tm *)0x7fffffff;\n        break;\n      }" if (parenthesized_expression "(9 < uVar3)" ( (binary_expression "9 < uVar3" number_literal < identifier) )) (compound_statement "{\n        ptVar14 = (tm *)0x7fffffff;\n        break;\n      }" { (expression_statement "ptVar14 = (tm *)0x7fffffff;" (assignment_expression "ptVar14 = (tm *)0x7fffffff" identifier = (cast_expression "(tm *)0x7fffffff" ( (type_descriptor "tm *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (break_statement "break;" break ;) })) (expression_statement "uVar11 = (uint)pcVar13[2];" (assignment_expression "uVar11 = (uint)pcVar13[2]" identifier = (cast_expression "(uint)pcVar13[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pcVar13[2]" identifier [ number_literal ]))) ;) (expression_statement "ptVar14 = (tm *)0x7fffffff;" (assignment_expression "ptVar14 = (tm *)0x7fffffff" identifier = (cast_expression "(tm *)0x7fffffff" ( (type_descriptor "tm *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar16 = pcVar13 + 2;" (assignment_expression "pcVar16 = pcVar13 + 2" identifier = (binary_expression "pcVar13 + 2" identifier + number_literal)) ;) (expression_statement "uVar3 = uVar11 - 0x30;" (assignment_expression "uVar3 = uVar11 - 0x30" identifier = (binary_expression "uVar11 - 0x30" identifier - number_literal)) ;) }))) (expression_statement "pcVar13 = pcVar16;" (assignment_expression "pcVar13 = pcVar16" identifier = identifier) ;) }) while (parenthesized_expression "(uVar3 < 10)" ( (binary_expression "uVar3 < 10" identifier < number_literal) )) ;)) (labeled_statement "LAB_000240d4:\n  if ((uVar11 == 0x45) || (uVar11 == 0x4f)) {\n    uVar11 = (uint)pcVar16[1];\n    pcVar16 = pcVar16 + 1;\n  }" statement_identifier : (if_statement "if ((uVar11 == 0x45) || (uVar11 == 0x4f)) {\n    uVar11 = (uint)pcVar16[1];\n    pcVar16 = pcVar16 + 1;\n  }" if (parenthesized_expression "((uVar11 == 0x45) || (uVar11 == 0x4f))" ( (binary_expression "(uVar11 == 0x45) || (uVar11 == 0x4f)" (parenthesized_expression "(uVar11 == 0x45)" ( (binary_expression "uVar11 == 0x45" identifier == number_literal) )) || (parenthesized_expression "(uVar11 == 0x4f)" ( (binary_expression "uVar11 == 0x4f" identifier == number_literal) ))) )) (compound_statement "{\n    uVar11 = (uint)pcVar16[1];\n    pcVar16 = pcVar16 + 1;\n  }" { (expression_statement "uVar11 = (uint)pcVar16[1];" (assignment_expression "uVar11 = (uint)pcVar16[1]" identifier = (cast_expression "(uint)pcVar16[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pcVar16[1]" identifier [ number_literal ]))) ;) (expression_statement "pcVar16 = pcVar16 + 1;" (assignment_expression "pcVar16 = pcVar16 + 1" identifier = (binary_expression "pcVar16 + 1" identifier + number_literal)) ;) }))) (if_statement "if ((uVar11 & 0xff) < 0x7b) {\n                    /* WARNING: Could not emulate address calculation at 0x000240fc */\n                    /* WARNING: Treating indirect jump as call */\n    sVar5 = (*(code *)(&_gp + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)))();\n    return sVar5;\n  }" if (parenthesized_expression "((uVar11 & 0xff) < 0x7b)" ( (binary_expression "(uVar11 & 0xff) < 0x7b" (parenthesized_expression "(uVar11 & 0xff)" ( (binary_expression "uVar11 & 0xff" identifier & number_literal) )) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not emulate address calculation at 0x000240fc */\n                    /* WARNING: Treating indirect jump as call */\n    sVar5 = (*(code *)(&_gp + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)))();\n    return sVar5;\n  }" { comment comment (expression_statement "sVar5 = (*(code *)(&_gp + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)))();" (assignment_expression "sVar5 = (*(code *)(&_gp + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)))()" identifier = (call_expression "(*(code *)(&_gp + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)))()" (parenthesized_expression "(*(code *)(&_gp + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)))" ( (pointer_expression "*(code *)(&_gp + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0))" * (cast_expression "(code *)(&_gp + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0))" ( (binary_expression "&_gp + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)" (pointer_expression "&_gp" & identifier) + (pointer_expression "*(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)" * (cast_expression "(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)" ( (binary_expression "puVar20 + (uVar11 & 0xff) * 4 + 0x67a0" (binary_expression "puVar20 + (uVar11 & 0xff) * 4" identifier + (binary_expression "(uVar11 & 0xff) * 4" (parenthesized_expression "(uVar11 & 0xff)" ( (binary_expression "uVar11 & 0xff" identifier & number_literal) )) * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return sVar5;" return identifier ;) })) (expression_statement "pcVar13 = &DAT_00000025;" (assignment_expression "pcVar13 = &DAT_00000025" identifier = (pointer_expression "&DAT_00000025" & identifier)) ;) (expression_statement "pcVar4 = pcVar16;" (assignment_expression "pcVar4 = pcVar16" identifier = identifier) ;) (do_statement "do {\n    pcVar4 = pcVar4 + -1;\n    ptVar15 = (tm *)(pcVar16 + (1 - (int)pcVar4));\n  } while (*pcVar4 != '%');" do (compound_statement "{\n    pcVar4 = pcVar4 + -1;\n    ptVar15 = (tm *)(pcVar16 + (1 - (int)pcVar4));\n  }" { (expression_statement "pcVar4 = pcVar4 + -1;" (assignment_expression "pcVar4 = pcVar4 + -1" identifier = (binary_expression "pcVar4 + -1" identifier + number_literal)) ;) (expression_statement "ptVar15 = (tm *)(pcVar16 + (1 - (int)pcVar4));" (assignment_expression "ptVar15 = (tm *)(pcVar16 + (1 - (int)pcVar4))" identifier = (cast_expression "(tm *)(pcVar16 + (1 - (int)pcVar4))" ( (type_descriptor "tm *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar16 + (1 - (int)pcVar4))" ( (binary_expression "pcVar16 + (1 - (int)pcVar4)" identifier + (parenthesized_expression "(1 - (int)pcVar4)" ( (binary_expression "1 - (int)pcVar4" number_literal - (cast_expression "(int)pcVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) }) while (parenthesized_expression "(*pcVar4 != '%')" ( (binary_expression "*pcVar4 != '%'" (pointer_expression "*pcVar4" * identifier) != (char_literal "'%'" ' character ')) )) ;) (expression_statement "ptVar12 = ptVar14;" (assignment_expression "ptVar12 = ptVar14" identifier = identifier) ;) (if_statement "if ((int)ptVar14 < 0) {\n    ptVar12 = (tm *)0x0;\n  }" if (parenthesized_expression "((int)ptVar14 < 0)" ( (binary_expression "(int)ptVar14 < 0" (cast_expression "(int)ptVar14" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    ptVar12 = (tm *)0x0;\n  }" { (expression_statement "ptVar12 = (tm *)0x0;" (assignment_expression "ptVar12 = (tm *)0x0" identifier = (cast_expression "(tm *)0x0" ( (type_descriptor "tm *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "format = (char *)(maxsize - (int)pcVar18);" (assignment_expression "format = (char *)(maxsize - (int)pcVar18)" identifier = (cast_expression "(char *)(maxsize - (int)pcVar18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(maxsize - (int)pcVar18)" ( (binary_expression "maxsize - (int)pcVar18" identifier - (cast_expression "(int)pcVar18" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "tp = ptVar15;" (assignment_expression "tp = ptVar15" identifier = identifier) ;) (if_statement "if (ptVar15 <= ptVar12) {\n    tp = ptVar12;\n  }" if (parenthesized_expression "(ptVar15 <= ptVar12)" ( (binary_expression "ptVar15 <= ptVar12" identifier <= identifier) )) (compound_statement "{\n    tp = ptVar12;\n  }" { (expression_statement "tp = ptVar12;" (assignment_expression "tp = ptVar12" identifier = identifier) ;) })) (if_statement "if (format <= tp) {\nLAB_00023ff8:\n    pcVar18 = (char *)0x0;\n    goto LAB_00023ffc;\n  }" if (parenthesized_expression "(format <= tp)" ( (binary_expression "format <= tp" identifier <= identifier) )) (compound_statement "{\nLAB_00023ff8:\n    pcVar18 = (char *)0x0;\n    goto LAB_00023ffc;\n  }" { (labeled_statement "LAB_00023ff8:\n    pcVar18 = (char *)0x0;" statement_identifier : (expression_statement "pcVar18 = (char *)0x0;" (assignment_expression "pcVar18 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (goto_statement "goto LAB_00023ffc;" goto statement_identifier ;) })) (if_statement "if (s == (char *)0x0) {\n    pcVar18 = (char *)((int)&tp->tm_sec + (int)pcVar18);\n  }\n  else {\n    pcVar13 = s;\n    if (ptVar15 < ptVar12) {\n      pcVar13 = s + ((int)ptVar14 - (int)ptVar15);\n      if (iVar8 == 0x30) {\n        (*(code *)PTR_memset_00049524)(s,0x30);\n      }\n      else {\n        (*(code *)PTR_memset_00049524)(s,0x20);\n      }\n    }\n    format = (char *)ptVar15;\n    if (cVar9 == '\0') {\n      (*(code *)PTR_memcpy_00049600)(pcVar13);\n    }\n    else {\n      (*pcVar10)(pcVar13);\n    }\n    s = pcVar13 + (int)ptVar15;\n    pcVar18 = (char *)((int)&tp->tm_sec + (int)pcVar18);\n    pcVar13 = pcVar4;\n  }" if (parenthesized_expression "(s == (char *)0x0)" ( (binary_expression "s == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar18 = (char *)((int)&tp->tm_sec + (int)pcVar18);\n  }" { (expression_statement "pcVar18 = (char *)((int)&tp->tm_sec + (int)pcVar18);" (assignment_expression "pcVar18 = (char *)((int)&tp->tm_sec + (int)pcVar18)" identifier = (cast_expression "(char *)((int)&tp->tm_sec + (int)pcVar18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&tp->tm_sec + (int)pcVar18)" ( (binary_expression "(int)&tp->tm_sec + (int)pcVar18" (cast_expression "(int)&tp->tm_sec" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&tp->tm_sec" & (field_expression "tp->tm_sec" identifier -> field_identifier))) + (cast_expression "(int)pcVar18" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) }) (else_clause "else {\n    pcVar13 = s;\n    if (ptVar15 < ptVar12) {\n      pcVar13 = s + ((int)ptVar14 - (int)ptVar15);\n      if (iVar8 == 0x30) {\n        (*(code *)PTR_memset_00049524)(s,0x30);\n      }\n      else {\n        (*(code *)PTR_memset_00049524)(s,0x20);\n      }\n    }\n    format = (char *)ptVar15;\n    if (cVar9 == '\0') {\n      (*(code *)PTR_memcpy_00049600)(pcVar13);\n    }\n    else {\n      (*pcVar10)(pcVar13);\n    }\n    s = pcVar13 + (int)ptVar15;\n    pcVar18 = (char *)((int)&tp->tm_sec + (int)pcVar18);\n    pcVar13 = pcVar4;\n  }" else (compound_statement "{\n    pcVar13 = s;\n    if (ptVar15 < ptVar12) {\n      pcVar13 = s + ((int)ptVar14 - (int)ptVar15);\n      if (iVar8 == 0x30) {\n        (*(code *)PTR_memset_00049524)(s,0x30);\n      }\n      else {\n        (*(code *)PTR_memset_00049524)(s,0x20);\n      }\n    }\n    format = (char *)ptVar15;\n    if (cVar9 == '\0') {\n      (*(code *)PTR_memcpy_00049600)(pcVar13);\n    }\n    else {\n      (*pcVar10)(pcVar13);\n    }\n    s = pcVar13 + (int)ptVar15;\n    pcVar18 = (char *)((int)&tp->tm_sec + (int)pcVar18);\n    pcVar13 = pcVar4;\n  }" { (expression_statement "pcVar13 = s;" (assignment_expression "pcVar13 = s" identifier = identifier) ;) (if_statement "if (ptVar15 < ptVar12) {\n      pcVar13 = s + ((int)ptVar14 - (int)ptVar15);\n      if (iVar8 == 0x30) {\n        (*(code *)PTR_memset_00049524)(s,0x30);\n      }\n      else {\n        (*(code *)PTR_memset_00049524)(s,0x20);\n      }\n    }" if (parenthesized_expression "(ptVar15 < ptVar12)" ( (binary_expression "ptVar15 < ptVar12" identifier < identifier) )) (compound_statement "{\n      pcVar13 = s + ((int)ptVar14 - (int)ptVar15);\n      if (iVar8 == 0x30) {\n        (*(code *)PTR_memset_00049524)(s,0x30);\n      }\n      else {\n        (*(code *)PTR_memset_00049524)(s,0x20);\n      }\n    }" { (expression_statement "pcVar13 = s + ((int)ptVar14 - (int)ptVar15);" (assignment_expression "pcVar13 = s + ((int)ptVar14 - (int)ptVar15)" identifier = (binary_expression "s + ((int)ptVar14 - (int)ptVar15)" identifier + (parenthesized_expression "((int)ptVar14 - (int)ptVar15)" ( (binary_expression "(int)ptVar14 - (int)ptVar15" (cast_expression "(int)ptVar14" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)ptVar15" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (iVar8 == 0x30) {\n        (*(code *)PTR_memset_00049524)(s,0x30);\n      }\n      else {\n        (*(code *)PTR_memset_00049524)(s,0x20);\n      }" if (parenthesized_expression "(iVar8 == 0x30)" ( (binary_expression "iVar8 == 0x30" identifier == number_literal) )) (compound_statement "{\n        (*(code *)PTR_memset_00049524)(s,0x30);\n      }" { (expression_statement "(*(code *)PTR_memset_00049524)(s,0x30);" (call_expression "(*(code *)PTR_memset_00049524)(s,0x30)" (parenthesized_expression "(*(code *)PTR_memset_00049524)" ( (pointer_expression "*(code *)PTR_memset_00049524" * (cast_expression "(code *)PTR_memset_00049524" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(s,0x30)" ( identifier , number_literal ))) ;) }) (else_clause "else {\n        (*(code *)PTR_memset_00049524)(s,0x20);\n      }" else (compound_statement "{\n        (*(code *)PTR_memset_00049524)(s,0x20);\n      }" { (expression_statement "(*(code *)PTR_memset_00049524)(s,0x20);" (call_expression "(*(code *)PTR_memset_00049524)(s,0x20)" (parenthesized_expression "(*(code *)PTR_memset_00049524)" ( (pointer_expression "*(code *)PTR_memset_00049524" * (cast_expression "(code *)PTR_memset_00049524" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(s,0x20)" ( identifier , number_literal ))) ;) }))) })) (expression_statement "format = (char *)ptVar15;" (assignment_expression "format = (char *)ptVar15" identifier = (cast_expression "(char *)ptVar15" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (cVar9 == '\0') {\n      (*(code *)PTR_memcpy_00049600)(pcVar13);\n    }\n    else {\n      (*pcVar10)(pcVar13);\n    }" if (parenthesized_expression "(cVar9 == '\0')" ( (binary_expression "cVar9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      (*(code *)PTR_memcpy_00049600)(pcVar13);\n    }" { (expression_statement "(*(code *)PTR_memcpy_00049600)(pcVar13);" (call_expression "(*(code *)PTR_memcpy_00049600)(pcVar13)" (parenthesized_expression "(*(code *)PTR_memcpy_00049600)" ( (pointer_expression "*(code *)PTR_memcpy_00049600" * (cast_expression "(code *)PTR_memcpy_00049600" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar13)" ( identifier ))) ;) }) (else_clause "else {\n      (*pcVar10)(pcVar13);\n    }" else (compound_statement "{\n      (*pcVar10)(pcVar13);\n    }" { (expression_statement "(*pcVar10)(pcVar13);" (call_expression "(*pcVar10)(pcVar13)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(pcVar13)" ( identifier ))) ;) }))) (expression_statement "s = pcVar13 + (int)ptVar15;" (assignment_expression "s = pcVar13 + (int)ptVar15" identifier = (binary_expression "pcVar13 + (int)ptVar15" identifier + (cast_expression "(int)ptVar15" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pcVar18 = (char *)((int)&tp->tm_sec + (int)pcVar18);" (assignment_expression "pcVar18 = (char *)((int)&tp->tm_sec + (int)pcVar18)" identifier = (cast_expression "(char *)((int)&tp->tm_sec + (int)pcVar18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&tp->tm_sec + (int)pcVar18)" ( (binary_expression "(int)&tp->tm_sec + (int)pcVar18" (cast_expression "(int)&tp->tm_sec" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&tp->tm_sec" & (field_expression "tp->tm_sec" identifier -> field_identifier))) + (cast_expression "(int)pcVar18" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pcVar13 = pcVar4;" (assignment_expression "pcVar13 = pcVar4" identifier = identifier) ;) }))) (labeled_statement "LAB_00023fc0:\n  cVar9 = pcVar16[1];" statement_identifier : (expression_statement "cVar9 = pcVar16[1];" (assignment_expression "cVar9 = pcVar16[1]" identifier = (subscript_expression "pcVar16[1]" identifier [ number_literal ])) ;)) (expression_statement "pcVar16 = pcVar16 + 1;" (assignment_expression "pcVar16 = pcVar16 + 1" identifier = (binary_expression "pcVar16 + 1" identifier + number_literal)) ;) (if_statement "if (cVar9 == '\0') goto LAB_00023fcc;" if (parenthesized_expression "(cVar9 == '\0')" ( (binary_expression "cVar9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00023fcc;" goto statement_identifier ;)) (goto_statement "goto LAB_00023f94;" goto statement_identifier ;) })))
(translation_unit "int * FUN_00023eb8(char *param_1,int param_2,char *param_3,undefined4 param_4,char param_5)\n\n{\n  char cVar1;\n  undefined *puVar2;\n  int iVar3;\n  char cVar9;\n  uint uVar4;\n  char *pcVar5;\n  int iVar6;\n  int iVar7;\n  byte *pbVar8;\n  code *pcVar10;\n  uint uVar11;\n  char *pcVar12;\n  char *pcVar13;\n  char *pcVar14;\n  char *pcVar15;\n  char *pcVar16;\n  int *piVar17;\n  int *piVar18;\n  int iVar19;\n  undefined *puVar20;\n  \n  puVar2 = PTR___stack_chk_guard_000495fc;\n  puVar20 = PTR_LAB_00049218;\n  iVar3 = *(int *)PTR___stack_chk_guard_000495fc;\n  cVar9 = *param_3;\n  piVar18 = (int *)0x0;\n  if (cVar9 == '\0') {\nLAB_00023fcc:\n    if ((param_1 != (char *)0x0) && (param_2 != 0)) {\n      *param_1 = '\0';\n    }\nLAB_00023ffc:\n    if (iVar3 == *(int *)puVar2) {\n      return piVar18;\n    }\n    puVar20 = PTR___stack_chk_fail_000495d0;\n    (*(code *)PTR___stack_chk_fail_000495d0)();\n    piVar17 = *(int **)(puVar20 + 0x23cfc);\n    iVar3 = *piVar17;\n    piVar18 = (int *)FUN_00023eb8();\n    if (iVar3 == *piVar17) {\n      return piVar18;\n    }\n    pcVar10 = *(code **)(puVar20 + 0x23cd0);\n    (*pcVar10)();\n    if (iVar3 != 0) {\n      iVar6 = (**(code **)(pcVar10 + 0x23b58))();\n      if (((iVar6 != 0) && (iVar19 = iVar6 + 1, 6 < iVar19 - iVar3)) &&\n         (iVar7 = (**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7), iVar7 == 0)) {\n        iVar3 = (**(code **)(pcVar10 + 0x23b10))(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3);\n        if (iVar3 != 0) {\n          **(int **)(pcVar10 + 0x23934) = iVar19;\n          piVar18 = *(int **)(pcVar10 + 0x23b68);\n          *piVar18 = iVar19;\n          return piVar18;\n        }\n        iVar3 = iVar6 + 4;\n        **(int **)(pcVar10 + 0x23b24) = iVar3;\n      }\n      **(int **)(pcVar10 + 0x23934) = iVar3;\n      piVar18 = *(int **)(pcVar10 + 0x23b68);\n      *piVar18 = iVar3;\n      return piVar18;\n    }\n    iVar3 = 1;\n    piVar18 = (int *)(*(int *)(pcVar10 + 0x23898) + 0x6990);\n    (**(code **)(pcVar10 + 0x23c24))(piVar18,1,0x37,**(undefined4 **)(pcVar10 + 0x23ca4));\n    pcVar10 = *(code **)(pcVar10 + 0x23b08);\n    (*pcVar10)();\n    *piVar18 = 0;\n    piVar18[1] = 0;\n    piVar18[2] = 0;\n    piVar18[3] = 0;\n    piVar18[4] = 0;\n    piVar18[5] = 0;\n    piVar18[6] = 0;\n    piVar18[7] = 0;\n    piVar18[8] = 0;\n    piVar18[9] = 0;\n    piVar18[10] = 0;\n    piVar18[0xb] = 0;\n    if (iVar3 == 10) {\n      pcVar10 = *(code **)(pcVar10 + 0x239d8);\n      (*pcVar10)();\n      piVar17 = (int *)(**(code **)(pcVar10 + 0x23abc))(0,piVar18,5);\n      if (piVar18 == piVar17) {\n        pbVar8 = (byte *)locale_charset();\n        if ((*pbVar8 & 0xdf) == 0x55) {\n          if (((((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46)) && (pbVar8[3] == 0x2d)\n              ) && ((pbVar8[4] == 0x38 && (pbVar8[5] == 0)))) {\n            if (*(char *)piVar17 != '`') {\n              return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d8);\n            }\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e4);\n          }\n        }\n        else if ((((((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&\n                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))) &&\n                 (pbVar8[5] == 0x33)) && ((pbVar8[6] == 0x30 && (pbVar8[7] == 0)))) {\n          if (*(char *)piVar17 != '`') {\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69dc);\n          }\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e0);\n        }\n        if (iVar3 != 9) {\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e8);\n        }\n        piVar17 = (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d4);\n      }\n      return piVar17;\n    }\n    *piVar18 = iVar3;\n    return piVar18;\n  }\n  pcVar10 = (code *)(PTR_LAB_00049280 + 0x3e34);\nLAB_00023f94:\n  if (cVar9 == '%') {\n    iVar6 = 0;\n    cVar9 = param_5;\nLAB_0002406c:\n    do {\n      param_3 = param_3 + 1;\n      cVar1 = *param_3;\n      while (uVar11 = (uint)cVar1, uVar11 != 0x30) {\n        if (0x30 < (int)uVar11) {\n          if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }\n          if (uVar11 == 0x5f) {\n            iVar6 = 0x5f;\n            goto LAB_0002406c;\n          }\nLAB_000240c4:\n          pcVar14 = (char *)0xffffffff;\n          if (9 < uVar11 - 0x30) goto LAB_000240d4;\n          pcVar14 = (char *)0x0;\n          pcVar5 = param_3;\n          goto LAB_00024154;\n        }\n        if (uVar11 != 0x23) {\n          if (uVar11 != 0x2d) goto LAB_000240c4;\n          iVar6 = 0x2d;\n          goto LAB_0002406c;\n        }\n        param_3 = param_3 + 1;\n        cVar1 = *param_3;\n      }\n      iVar6 = 0x30;\n    } while( true );\n  }\n  if ((uint)(param_2 - (int)piVar18) < 2) goto LAB_00023ff8;\n  if (param_1 != (char *)0x0) {\n    *param_1 = cVar9;\n    param_1 = param_1 + 1;\n  }\n  piVar18 = (int *)((int)piVar18 + 1);\n  goto LAB_00023fc0;\nLAB_00024154:\n  do {\n    uVar11 = (uint)pcVar5[1];\n    param_3 = pcVar5 + 1;\n    uVar4 = uVar11 - 0x30;\n    if (((int)pcVar14 < 0xccccccd) && ((pcVar14 != (char *)0xccccccc || (*pcVar5 < 0x38)))) {\n      pcVar14 = (char *)(*pcVar5 + -0x30 + (int)pcVar14 * 10);\n    }\n    else {\n      if (9 < uVar4) {\n        pcVar14 = (char *)0x7fffffff;\n        break;\n      }\n      uVar11 = (uint)pcVar5[2];\n      pcVar14 = (char *)0x7fffffff;\n      param_3 = pcVar5 + 2;\n      uVar4 = uVar11 - 0x30;\n    }\n    pcVar5 = param_3;\n  } while (uVar4 < 10);\nLAB_000240d4:\n  if ((uVar11 == 0x45) || (uVar11 == 0x4f)) {\n    uVar11 = (uint)param_3[1];\n    param_3 = param_3 + 1;\n  }\n  pcVar5 = param_3;\n  if ((uVar11 & 0xff) < 0x7b) {\n                    \n                    \n    piVar18 = (int *)(*(code *)(&_gp_1 + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)))();\n    return piVar18;\n  }\n  do {\n    pcVar5 = pcVar5 + -1;\n    pcVar16 = param_3 + (1 - (int)pcVar5);\n  } while (*pcVar5 != '%');\n  pcVar12 = pcVar14;\n  if ((int)pcVar14 < 0) {\n    pcVar12 = (char *)0x0;\n  }\n  pcVar13 = pcVar16;\n  if (pcVar16 <= pcVar12) {\n    pcVar13 = pcVar12;\n  }\n  if ((char *)(param_2 - (int)piVar18) <= pcVar13) {\nLAB_00023ff8:\n    piVar18 = (int *)0x0;\n    goto LAB_00023ffc;\n  }\n  if (param_1 == (char *)0x0) {\n    piVar18 = (int *)((int)piVar18 + (int)pcVar13);\n  }\n  else {\n    pcVar15 = param_1;\n    if (pcVar16 < pcVar12) {\n      pcVar15 = param_1 + ((int)pcVar14 - (int)pcVar16);\n      if (iVar6 == 0x30) {\n        (*(code *)PTR_memset_00049524)(param_1,0x30);\n      }\n      else {\n        (*(code *)PTR_memset_00049524)(param_1,0x20);\n      }\n    }\n    if (cVar9 == '\0') {\n      (*(code *)PTR_memcpy_00049600)(pcVar15,pcVar5,pcVar16);\n    }\n    else {\n      (*pcVar10)(pcVar15,pcVar5,pcVar16);\n    }\n    param_1 = pcVar15 + (int)pcVar16;\n    piVar18 = (int *)((int)piVar18 + (int)pcVar13);\n  }\nLAB_00023fc0:\n  cVar9 = param_3[1];\n  param_3 = param_3 + 1;\n  if (cVar9 == '\0') goto LAB_00023fcc;\n  goto LAB_00023f94;\n}\n\n" (function_definition "int * FUN_00023eb8(char *param_1,int param_2,char *param_3,undefined4 param_4,char param_5)\n\n{\n  char cVar1;\n  undefined *puVar2;\n  int iVar3;\n  char cVar9;\n  uint uVar4;\n  char *pcVar5;\n  int iVar6;\n  int iVar7;\n  byte *pbVar8;\n  code *pcVar10;\n  uint uVar11;\n  char *pcVar12;\n  char *pcVar13;\n  char *pcVar14;\n  char *pcVar15;\n  char *pcVar16;\n  int *piVar17;\n  int *piVar18;\n  int iVar19;\n  undefined *puVar20;\n  \n  puVar2 = PTR___stack_chk_guard_000495fc;\n  puVar20 = PTR_LAB_00049218;\n  iVar3 = *(int *)PTR___stack_chk_guard_000495fc;\n  cVar9 = *param_3;\n  piVar18 = (int *)0x0;\n  if (cVar9 == '\0') {\nLAB_00023fcc:\n    if ((param_1 != (char *)0x0) && (param_2 != 0)) {\n      *param_1 = '\0';\n    }\nLAB_00023ffc:\n    if (iVar3 == *(int *)puVar2) {\n      return piVar18;\n    }\n    puVar20 = PTR___stack_chk_fail_000495d0;\n    (*(code *)PTR___stack_chk_fail_000495d0)();\n    piVar17 = *(int **)(puVar20 + 0x23cfc);\n    iVar3 = *piVar17;\n    piVar18 = (int *)FUN_00023eb8();\n    if (iVar3 == *piVar17) {\n      return piVar18;\n    }\n    pcVar10 = *(code **)(puVar20 + 0x23cd0);\n    (*pcVar10)();\n    if (iVar3 != 0) {\n      iVar6 = (**(code **)(pcVar10 + 0x23b58))();\n      if (((iVar6 != 0) && (iVar19 = iVar6 + 1, 6 < iVar19 - iVar3)) &&\n         (iVar7 = (**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7), iVar7 == 0)) {\n        iVar3 = (**(code **)(pcVar10 + 0x23b10))(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3);\n        if (iVar3 != 0) {\n          **(int **)(pcVar10 + 0x23934) = iVar19;\n          piVar18 = *(int **)(pcVar10 + 0x23b68);\n          *piVar18 = iVar19;\n          return piVar18;\n        }\n        iVar3 = iVar6 + 4;\n        **(int **)(pcVar10 + 0x23b24) = iVar3;\n      }\n      **(int **)(pcVar10 + 0x23934) = iVar3;\n      piVar18 = *(int **)(pcVar10 + 0x23b68);\n      *piVar18 = iVar3;\n      return piVar18;\n    }\n    iVar3 = 1;\n    piVar18 = (int *)(*(int *)(pcVar10 + 0x23898) + 0x6990);\n    (**(code **)(pcVar10 + 0x23c24))(piVar18,1,0x37,**(undefined4 **)(pcVar10 + 0x23ca4));\n    pcVar10 = *(code **)(pcVar10 + 0x23b08);\n    (*pcVar10)();\n    *piVar18 = 0;\n    piVar18[1] = 0;\n    piVar18[2] = 0;\n    piVar18[3] = 0;\n    piVar18[4] = 0;\n    piVar18[5] = 0;\n    piVar18[6] = 0;\n    piVar18[7] = 0;\n    piVar18[8] = 0;\n    piVar18[9] = 0;\n    piVar18[10] = 0;\n    piVar18[0xb] = 0;\n    if (iVar3 == 10) {\n      pcVar10 = *(code **)(pcVar10 + 0x239d8);\n      (*pcVar10)();\n      piVar17 = (int *)(**(code **)(pcVar10 + 0x23abc))(0,piVar18,5);\n      if (piVar18 == piVar17) {\n        pbVar8 = (byte *)locale_charset();\n        if ((*pbVar8 & 0xdf) == 0x55) {\n          if (((((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46)) && (pbVar8[3] == 0x2d)\n              ) && ((pbVar8[4] == 0x38 && (pbVar8[5] == 0)))) {\n            if (*(char *)piVar17 != '`') {\n              return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d8);\n            }\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e4);\n          }\n        }\n        else if ((((((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&\n                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))) &&\n                 (pbVar8[5] == 0x33)) && ((pbVar8[6] == 0x30 && (pbVar8[7] == 0)))) {\n          if (*(char *)piVar17 != '`') {\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69dc);\n          }\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e0);\n        }\n        if (iVar3 != 9) {\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e8);\n        }\n        piVar17 = (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d4);\n      }\n      return piVar17;\n    }\n    *piVar18 = iVar3;\n    return piVar18;\n  }\n  pcVar10 = (code *)(PTR_LAB_00049280 + 0x3e34);\nLAB_00023f94:\n  if (cVar9 == '%') {\n    iVar6 = 0;\n    cVar9 = param_5;\nLAB_0002406c:\n    do {\n      param_3 = param_3 + 1;\n      cVar1 = *param_3;\n      while (uVar11 = (uint)cVar1, uVar11 != 0x30) {\n        if (0x30 < (int)uVar11) {\n          if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }\n          if (uVar11 == 0x5f) {\n            iVar6 = 0x5f;\n            goto LAB_0002406c;\n          }\nLAB_000240c4:\n          pcVar14 = (char *)0xffffffff;\n          if (9 < uVar11 - 0x30) goto LAB_000240d4;\n          pcVar14 = (char *)0x0;\n          pcVar5 = param_3;\n          goto LAB_00024154;\n        }\n        if (uVar11 != 0x23) {\n          if (uVar11 != 0x2d) goto LAB_000240c4;\n          iVar6 = 0x2d;\n          goto LAB_0002406c;\n        }\n        param_3 = param_3 + 1;\n        cVar1 = *param_3;\n      }\n      iVar6 = 0x30;\n    } while( true );\n  }\n  if ((uint)(param_2 - (int)piVar18) < 2) goto LAB_00023ff8;\n  if (param_1 != (char *)0x0) {\n    *param_1 = cVar9;\n    param_1 = param_1 + 1;\n  }\n  piVar18 = (int *)((int)piVar18 + 1);\n  goto LAB_00023fc0;\nLAB_00024154:\n  do {\n    uVar11 = (uint)pcVar5[1];\n    param_3 = pcVar5 + 1;\n    uVar4 = uVar11 - 0x30;\n    if (((int)pcVar14 < 0xccccccd) && ((pcVar14 != (char *)0xccccccc || (*pcVar5 < 0x38)))) {\n      pcVar14 = (char *)(*pcVar5 + -0x30 + (int)pcVar14 * 10);\n    }\n    else {\n      if (9 < uVar4) {\n        pcVar14 = (char *)0x7fffffff;\n        break;\n      }\n      uVar11 = (uint)pcVar5[2];\n      pcVar14 = (char *)0x7fffffff;\n      param_3 = pcVar5 + 2;\n      uVar4 = uVar11 - 0x30;\n    }\n    pcVar5 = param_3;\n  } while (uVar4 < 10);\nLAB_000240d4:\n  if ((uVar11 == 0x45) || (uVar11 == 0x4f)) {\n    uVar11 = (uint)param_3[1];\n    param_3 = param_3 + 1;\n  }\n  pcVar5 = param_3;\n  if ((uVar11 & 0xff) < 0x7b) {\n                    \n                    \n    piVar18 = (int *)(*(code *)(&_gp_1 + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)))();\n    return piVar18;\n  }\n  do {\n    pcVar5 = pcVar5 + -1;\n    pcVar16 = param_3 + (1 - (int)pcVar5);\n  } while (*pcVar5 != '%');\n  pcVar12 = pcVar14;\n  if ((int)pcVar14 < 0) {\n    pcVar12 = (char *)0x0;\n  }\n  pcVar13 = pcVar16;\n  if (pcVar16 <= pcVar12) {\n    pcVar13 = pcVar12;\n  }\n  if ((char *)(param_2 - (int)piVar18) <= pcVar13) {\nLAB_00023ff8:\n    piVar18 = (int *)0x0;\n    goto LAB_00023ffc;\n  }\n  if (param_1 == (char *)0x0) {\n    piVar18 = (int *)((int)piVar18 + (int)pcVar13);\n  }\n  else {\n    pcVar15 = param_1;\n    if (pcVar16 < pcVar12) {\n      pcVar15 = param_1 + ((int)pcVar14 - (int)pcVar16);\n      if (iVar6 == 0x30) {\n        (*(code *)PTR_memset_00049524)(param_1,0x30);\n      }\n      else {\n        (*(code *)PTR_memset_00049524)(param_1,0x20);\n      }\n    }\n    if (cVar9 == '\0') {\n      (*(code *)PTR_memcpy_00049600)(pcVar15,pcVar5,pcVar16);\n    }\n    else {\n      (*pcVar10)(pcVar15,pcVar5,pcVar16);\n    }\n    param_1 = pcVar15 + (int)pcVar16;\n    piVar18 = (int *)((int)piVar18 + (int)pcVar13);\n  }\nLAB_00023fc0:\n  cVar9 = param_3[1];\n  param_3 = param_3 + 1;\n  if (cVar9 == '\0') goto LAB_00023fcc;\n  goto LAB_00023f94;\n}" primitive_type (pointer_declarator "* FUN_00023eb8(char *param_1,int param_2,char *param_3,undefined4 param_4,char param_5)" * (function_declarator "FUN_00023eb8(char *param_1,int param_2,char *param_3,undefined4 param_4,char param_5)" identifier (parameter_list "(char *param_1,int param_2,char *param_3,undefined4 param_4,char param_5)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "char *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "char param_5" primitive_type identifier) )))) (compound_statement "{\n  char cVar1;\n  undefined *puVar2;\n  int iVar3;\n  char cVar9;\n  uint uVar4;\n  char *pcVar5;\n  int iVar6;\n  int iVar7;\n  byte *pbVar8;\n  code *pcVar10;\n  uint uVar11;\n  char *pcVar12;\n  char *pcVar13;\n  char *pcVar14;\n  char *pcVar15;\n  char *pcVar16;\n  int *piVar17;\n  int *piVar18;\n  int iVar19;\n  undefined *puVar20;\n  \n  puVar2 = PTR___stack_chk_guard_000495fc;\n  puVar20 = PTR_LAB_00049218;\n  iVar3 = *(int *)PTR___stack_chk_guard_000495fc;\n  cVar9 = *param_3;\n  piVar18 = (int *)0x0;\n  if (cVar9 == '\0') {\nLAB_00023fcc:\n    if ((param_1 != (char *)0x0) && (param_2 != 0)) {\n      *param_1 = '\0';\n    }\nLAB_00023ffc:\n    if (iVar3 == *(int *)puVar2) {\n      return piVar18;\n    }\n    puVar20 = PTR___stack_chk_fail_000495d0;\n    (*(code *)PTR___stack_chk_fail_000495d0)();\n    piVar17 = *(int **)(puVar20 + 0x23cfc);\n    iVar3 = *piVar17;\n    piVar18 = (int *)FUN_00023eb8();\n    if (iVar3 == *piVar17) {\n      return piVar18;\n    }\n    pcVar10 = *(code **)(puVar20 + 0x23cd0);\n    (*pcVar10)();\n    if (iVar3 != 0) {\n      iVar6 = (**(code **)(pcVar10 + 0x23b58))();\n      if (((iVar6 != 0) && (iVar19 = iVar6 + 1, 6 < iVar19 - iVar3)) &&\n         (iVar7 = (**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7), iVar7 == 0)) {\n        iVar3 = (**(code **)(pcVar10 + 0x23b10))(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3);\n        if (iVar3 != 0) {\n          **(int **)(pcVar10 + 0x23934) = iVar19;\n          piVar18 = *(int **)(pcVar10 + 0x23b68);\n          *piVar18 = iVar19;\n          return piVar18;\n        }\n        iVar3 = iVar6 + 4;\n        **(int **)(pcVar10 + 0x23b24) = iVar3;\n      }\n      **(int **)(pcVar10 + 0x23934) = iVar3;\n      piVar18 = *(int **)(pcVar10 + 0x23b68);\n      *piVar18 = iVar3;\n      return piVar18;\n    }\n    iVar3 = 1;\n    piVar18 = (int *)(*(int *)(pcVar10 + 0x23898) + 0x6990);\n    (**(code **)(pcVar10 + 0x23c24))(piVar18,1,0x37,**(undefined4 **)(pcVar10 + 0x23ca4));\n    pcVar10 = *(code **)(pcVar10 + 0x23b08);\n    (*pcVar10)();\n    *piVar18 = 0;\n    piVar18[1] = 0;\n    piVar18[2] = 0;\n    piVar18[3] = 0;\n    piVar18[4] = 0;\n    piVar18[5] = 0;\n    piVar18[6] = 0;\n    piVar18[7] = 0;\n    piVar18[8] = 0;\n    piVar18[9] = 0;\n    piVar18[10] = 0;\n    piVar18[0xb] = 0;\n    if (iVar3 == 10) {\n      pcVar10 = *(code **)(pcVar10 + 0x239d8);\n      (*pcVar10)();\n      piVar17 = (int *)(**(code **)(pcVar10 + 0x23abc))(0,piVar18,5);\n      if (piVar18 == piVar17) {\n        pbVar8 = (byte *)locale_charset();\n        if ((*pbVar8 & 0xdf) == 0x55) {\n          if (((((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46)) && (pbVar8[3] == 0x2d)\n              ) && ((pbVar8[4] == 0x38 && (pbVar8[5] == 0)))) {\n            if (*(char *)piVar17 != '`') {\n              return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d8);\n            }\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e4);\n          }\n        }\n        else if ((((((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&\n                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))) &&\n                 (pbVar8[5] == 0x33)) && ((pbVar8[6] == 0x30 && (pbVar8[7] == 0)))) {\n          if (*(char *)piVar17 != '`') {\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69dc);\n          }\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e0);\n        }\n        if (iVar3 != 9) {\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e8);\n        }\n        piVar17 = (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d4);\n      }\n      return piVar17;\n    }\n    *piVar18 = iVar3;\n    return piVar18;\n  }\n  pcVar10 = (code *)(PTR_LAB_00049280 + 0x3e34);\nLAB_00023f94:\n  if (cVar9 == '%') {\n    iVar6 = 0;\n    cVar9 = param_5;\nLAB_0002406c:\n    do {\n      param_3 = param_3 + 1;\n      cVar1 = *param_3;\n      while (uVar11 = (uint)cVar1, uVar11 != 0x30) {\n        if (0x30 < (int)uVar11) {\n          if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }\n          if (uVar11 == 0x5f) {\n            iVar6 = 0x5f;\n            goto LAB_0002406c;\n          }\nLAB_000240c4:\n          pcVar14 = (char *)0xffffffff;\n          if (9 < uVar11 - 0x30) goto LAB_000240d4;\n          pcVar14 = (char *)0x0;\n          pcVar5 = param_3;\n          goto LAB_00024154;\n        }\n        if (uVar11 != 0x23) {\n          if (uVar11 != 0x2d) goto LAB_000240c4;\n          iVar6 = 0x2d;\n          goto LAB_0002406c;\n        }\n        param_3 = param_3 + 1;\n        cVar1 = *param_3;\n      }\n      iVar6 = 0x30;\n    } while( true );\n  }\n  if ((uint)(param_2 - (int)piVar18) < 2) goto LAB_00023ff8;\n  if (param_1 != (char *)0x0) {\n    *param_1 = cVar9;\n    param_1 = param_1 + 1;\n  }\n  piVar18 = (int *)((int)piVar18 + 1);\n  goto LAB_00023fc0;\nLAB_00024154:\n  do {\n    uVar11 = (uint)pcVar5[1];\n    param_3 = pcVar5 + 1;\n    uVar4 = uVar11 - 0x30;\n    if (((int)pcVar14 < 0xccccccd) && ((pcVar14 != (char *)0xccccccc || (*pcVar5 < 0x38)))) {\n      pcVar14 = (char *)(*pcVar5 + -0x30 + (int)pcVar14 * 10);\n    }\n    else {\n      if (9 < uVar4) {\n        pcVar14 = (char *)0x7fffffff;\n        break;\n      }\n      uVar11 = (uint)pcVar5[2];\n      pcVar14 = (char *)0x7fffffff;\n      param_3 = pcVar5 + 2;\n      uVar4 = uVar11 - 0x30;\n    }\n    pcVar5 = param_3;\n  } while (uVar4 < 10);\nLAB_000240d4:\n  if ((uVar11 == 0x45) || (uVar11 == 0x4f)) {\n    uVar11 = (uint)param_3[1];\n    param_3 = param_3 + 1;\n  }\n  pcVar5 = param_3;\n  if ((uVar11 & 0xff) < 0x7b) {\n                    \n                    \n    piVar18 = (int *)(*(code *)(&_gp_1 + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)))();\n    return piVar18;\n  }\n  do {\n    pcVar5 = pcVar5 + -1;\n    pcVar16 = param_3 + (1 - (int)pcVar5);\n  } while (*pcVar5 != '%');\n  pcVar12 = pcVar14;\n  if ((int)pcVar14 < 0) {\n    pcVar12 = (char *)0x0;\n  }\n  pcVar13 = pcVar16;\n  if (pcVar16 <= pcVar12) {\n    pcVar13 = pcVar12;\n  }\n  if ((char *)(param_2 - (int)piVar18) <= pcVar13) {\nLAB_00023ff8:\n    piVar18 = (int *)0x0;\n    goto LAB_00023ffc;\n  }\n  if (param_1 == (char *)0x0) {\n    piVar18 = (int *)((int)piVar18 + (int)pcVar13);\n  }\n  else {\n    pcVar15 = param_1;\n    if (pcVar16 < pcVar12) {\n      pcVar15 = param_1 + ((int)pcVar14 - (int)pcVar16);\n      if (iVar6 == 0x30) {\n        (*(code *)PTR_memset_00049524)(param_1,0x30);\n      }\n      else {\n        (*(code *)PTR_memset_00049524)(param_1,0x20);\n      }\n    }\n    if (cVar9 == '\0') {\n      (*(code *)PTR_memcpy_00049600)(pcVar15,pcVar5,pcVar16);\n    }\n    else {\n      (*pcVar10)(pcVar15,pcVar5,pcVar16);\n    }\n    param_1 = pcVar15 + (int)pcVar16;\n    piVar18 = (int *)((int)piVar18 + (int)pcVar13);\n  }\nLAB_00023fc0:\n  cVar9 = param_3[1];\n  param_3 = param_3 + 1;\n  if (cVar9 == '\0') goto LAB_00023fcc;\n  goto LAB_00023f94;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "char cVar9;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "code *pcVar10;" type_identifier (pointer_declarator "*pcVar10" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "char *pcVar14;" primitive_type (pointer_declarator "*pcVar14" * identifier) ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "char *pcVar16;" primitive_type (pointer_declarator "*pcVar16" * identifier) ;) (declaration "int *piVar17;" primitive_type (pointer_declarator "*piVar17" * identifier) ;) (declaration "int *piVar18;" primitive_type (pointer_declarator "*piVar18" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "undefined *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (expression_statement "puVar2 = PTR___stack_chk_guard_000495fc;" (assignment_expression "puVar2 = PTR___stack_chk_guard_000495fc" identifier = identifier) ;) (expression_statement "puVar20 = PTR_LAB_00049218;" (assignment_expression "puVar20 = PTR_LAB_00049218" identifier = identifier) ;) (expression_statement "iVar3 = *(int *)PTR___stack_chk_guard_000495fc;" (assignment_expression "iVar3 = *(int *)PTR___stack_chk_guard_000495fc" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000495fc" * (cast_expression "(int *)PTR___stack_chk_guard_000495fc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "cVar9 = *param_3;" (assignment_expression "cVar9 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "piVar18 = (int *)0x0;" (assignment_expression "piVar18 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (cVar9 == '\0') {\nLAB_00023fcc:\n    if ((param_1 != (char *)0x0) && (param_2 != 0)) {\n      *param_1 = '\0';\n    }\nLAB_00023ffc:\n    if (iVar3 == *(int *)puVar2) {\n      return piVar18;\n    }\n    puVar20 = PTR___stack_chk_fail_000495d0;\n    (*(code *)PTR___stack_chk_fail_000495d0)();\n    piVar17 = *(int **)(puVar20 + 0x23cfc);\n    iVar3 = *piVar17;\n    piVar18 = (int *)FUN_00023eb8();\n    if (iVar3 == *piVar17) {\n      return piVar18;\n    }\n    pcVar10 = *(code **)(puVar20 + 0x23cd0);\n    (*pcVar10)();\n    if (iVar3 != 0) {\n      iVar6 = (**(code **)(pcVar10 + 0x23b58))();\n      if (((iVar6 != 0) && (iVar19 = iVar6 + 1, 6 < iVar19 - iVar3)) &&\n         (iVar7 = (**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7), iVar7 == 0)) {\n        iVar3 = (**(code **)(pcVar10 + 0x23b10))(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3);\n        if (iVar3 != 0) {\n          **(int **)(pcVar10 + 0x23934) = iVar19;\n          piVar18 = *(int **)(pcVar10 + 0x23b68);\n          *piVar18 = iVar19;\n          return piVar18;\n        }\n        iVar3 = iVar6 + 4;\n        **(int **)(pcVar10 + 0x23b24) = iVar3;\n      }\n      **(int **)(pcVar10 + 0x23934) = iVar3;\n      piVar18 = *(int **)(pcVar10 + 0x23b68);\n      *piVar18 = iVar3;\n      return piVar18;\n    }\n    iVar3 = 1;\n    piVar18 = (int *)(*(int *)(pcVar10 + 0x23898) + 0x6990);\n    (**(code **)(pcVar10 + 0x23c24))(piVar18,1,0x37,**(undefined4 **)(pcVar10 + 0x23ca4));\n    pcVar10 = *(code **)(pcVar10 + 0x23b08);\n    (*pcVar10)();\n    *piVar18 = 0;\n    piVar18[1] = 0;\n    piVar18[2] = 0;\n    piVar18[3] = 0;\n    piVar18[4] = 0;\n    piVar18[5] = 0;\n    piVar18[6] = 0;\n    piVar18[7] = 0;\n    piVar18[8] = 0;\n    piVar18[9] = 0;\n    piVar18[10] = 0;\n    piVar18[0xb] = 0;\n    if (iVar3 == 10) {\n      pcVar10 = *(code **)(pcVar10 + 0x239d8);\n      (*pcVar10)();\n      piVar17 = (int *)(**(code **)(pcVar10 + 0x23abc))(0,piVar18,5);\n      if (piVar18 == piVar17) {\n        pbVar8 = (byte *)locale_charset();\n        if ((*pbVar8 & 0xdf) == 0x55) {\n          if (((((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46)) && (pbVar8[3] == 0x2d)\n              ) && ((pbVar8[4] == 0x38 && (pbVar8[5] == 0)))) {\n            if (*(char *)piVar17 != '`') {\n              return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d8);\n            }\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e4);\n          }\n        }\n        else if ((((((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&\n                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))) &&\n                 (pbVar8[5] == 0x33)) && ((pbVar8[6] == 0x30 && (pbVar8[7] == 0)))) {\n          if (*(char *)piVar17 != '`') {\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69dc);\n          }\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e0);\n        }\n        if (iVar3 != 9) {\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e8);\n        }\n        piVar17 = (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d4);\n      }\n      return piVar17;\n    }\n    *piVar18 = iVar3;\n    return piVar18;\n  }" if (parenthesized_expression "(cVar9 == '\0')" ( (binary_expression "cVar9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_00023fcc:\n    if ((param_1 != (char *)0x0) && (param_2 != 0)) {\n      *param_1 = '\0';\n    }\nLAB_00023ffc:\n    if (iVar3 == *(int *)puVar2) {\n      return piVar18;\n    }\n    puVar20 = PTR___stack_chk_fail_000495d0;\n    (*(code *)PTR___stack_chk_fail_000495d0)();\n    piVar17 = *(int **)(puVar20 + 0x23cfc);\n    iVar3 = *piVar17;\n    piVar18 = (int *)FUN_00023eb8();\n    if (iVar3 == *piVar17) {\n      return piVar18;\n    }\n    pcVar10 = *(code **)(puVar20 + 0x23cd0);\n    (*pcVar10)();\n    if (iVar3 != 0) {\n      iVar6 = (**(code **)(pcVar10 + 0x23b58))();\n      if (((iVar6 != 0) && (iVar19 = iVar6 + 1, 6 < iVar19 - iVar3)) &&\n         (iVar7 = (**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7), iVar7 == 0)) {\n        iVar3 = (**(code **)(pcVar10 + 0x23b10))(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3);\n        if (iVar3 != 0) {\n          **(int **)(pcVar10 + 0x23934) = iVar19;\n          piVar18 = *(int **)(pcVar10 + 0x23b68);\n          *piVar18 = iVar19;\n          return piVar18;\n        }\n        iVar3 = iVar6 + 4;\n        **(int **)(pcVar10 + 0x23b24) = iVar3;\n      }\n      **(int **)(pcVar10 + 0x23934) = iVar3;\n      piVar18 = *(int **)(pcVar10 + 0x23b68);\n      *piVar18 = iVar3;\n      return piVar18;\n    }\n    iVar3 = 1;\n    piVar18 = (int *)(*(int *)(pcVar10 + 0x23898) + 0x6990);\n    (**(code **)(pcVar10 + 0x23c24))(piVar18,1,0x37,**(undefined4 **)(pcVar10 + 0x23ca4));\n    pcVar10 = *(code **)(pcVar10 + 0x23b08);\n    (*pcVar10)();\n    *piVar18 = 0;\n    piVar18[1] = 0;\n    piVar18[2] = 0;\n    piVar18[3] = 0;\n    piVar18[4] = 0;\n    piVar18[5] = 0;\n    piVar18[6] = 0;\n    piVar18[7] = 0;\n    piVar18[8] = 0;\n    piVar18[9] = 0;\n    piVar18[10] = 0;\n    piVar18[0xb] = 0;\n    if (iVar3 == 10) {\n      pcVar10 = *(code **)(pcVar10 + 0x239d8);\n      (*pcVar10)();\n      piVar17 = (int *)(**(code **)(pcVar10 + 0x23abc))(0,piVar18,5);\n      if (piVar18 == piVar17) {\n        pbVar8 = (byte *)locale_charset();\n        if ((*pbVar8 & 0xdf) == 0x55) {\n          if (((((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46)) && (pbVar8[3] == 0x2d)\n              ) && ((pbVar8[4] == 0x38 && (pbVar8[5] == 0)))) {\n            if (*(char *)piVar17 != '`') {\n              return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d8);\n            }\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e4);\n          }\n        }\n        else if ((((((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&\n                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))) &&\n                 (pbVar8[5] == 0x33)) && ((pbVar8[6] == 0x30 && (pbVar8[7] == 0)))) {\n          if (*(char *)piVar17 != '`') {\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69dc);\n          }\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e0);\n        }\n        if (iVar3 != 9) {\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e8);\n        }\n        piVar17 = (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d4);\n      }\n      return piVar17;\n    }\n    *piVar18 = iVar3;\n    return piVar18;\n  }" { (labeled_statement "LAB_00023fcc:\n    if ((param_1 != (char *)0x0) && (param_2 != 0)) {\n      *param_1 = '\0';\n    }" statement_identifier : (if_statement "if ((param_1 != (char *)0x0) && (param_2 != 0)) {\n      *param_1 = '\0';\n    }" if (parenthesized_expression "((param_1 != (char *)0x0) && (param_2 != 0))" ( (binary_expression "(param_1 != (char *)0x0) && (param_2 != 0)" (parenthesized_expression "(param_1 != (char *)0x0)" ( (binary_expression "param_1 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      *param_1 = '\0';\n    }" { (expression_statement "*param_1 = '\0';" (assignment_expression "*param_1 = '\0'" (pointer_expression "*param_1" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) }))) (labeled_statement "LAB_00023ffc:\n    if (iVar3 == *(int *)puVar2) {\n      return piVar18;\n    }" statement_identifier : (if_statement "if (iVar3 == *(int *)puVar2) {\n      return piVar18;\n    }" if (parenthesized_expression "(iVar3 == *(int *)puVar2)" ( (binary_expression "iVar3 == *(int *)puVar2" identifier == (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n      return piVar18;\n    }" { (return_statement "return piVar18;" return identifier ;) }))) (expression_statement "puVar20 = PTR___stack_chk_fail_000495d0;" (assignment_expression "puVar20 = PTR___stack_chk_fail_000495d0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000495d0)();" (call_expression "(*(code *)PTR___stack_chk_fail_000495d0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000495d0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000495d0" * (cast_expression "(code *)PTR___stack_chk_fail_000495d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar17 = *(int **)(puVar20 + 0x23cfc);" (assignment_expression "piVar17 = *(int **)(puVar20 + 0x23cfc)" identifier = (pointer_expression "*(int **)(puVar20 + 0x23cfc)" * (cast_expression "(int **)(puVar20 + 0x23cfc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x23cfc)" ( (binary_expression "puVar20 + 0x23cfc" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *piVar17;" (assignment_expression "iVar3 = *piVar17" identifier = (pointer_expression "*piVar17" * identifier)) ;) (expression_statement "piVar18 = (int *)FUN_00023eb8();" (assignment_expression "piVar18 = (int *)FUN_00023eb8()" identifier = (cast_expression "(int *)FUN_00023eb8()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00023eb8()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (iVar3 == *piVar17) {\n      return piVar18;\n    }" if (parenthesized_expression "(iVar3 == *piVar17)" ( (binary_expression "iVar3 == *piVar17" identifier == (pointer_expression "*piVar17" * identifier)) )) (compound_statement "{\n      return piVar18;\n    }" { (return_statement "return piVar18;" return identifier ;) })) (expression_statement "pcVar10 = *(code **)(puVar20 + 0x23cd0);" (assignment_expression "pcVar10 = *(code **)(puVar20 + 0x23cd0)" identifier = (pointer_expression "*(code **)(puVar20 + 0x23cd0)" * (cast_expression "(code **)(puVar20 + 0x23cd0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x23cd0)" ( (binary_expression "puVar20 + 0x23cd0" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar10)();" (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "()" ( ))) ;) (if_statement "if (iVar3 != 0) {\n      iVar6 = (**(code **)(pcVar10 + 0x23b58))();\n      if (((iVar6 != 0) && (iVar19 = iVar6 + 1, 6 < iVar19 - iVar3)) &&\n         (iVar7 = (**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7), iVar7 == 0)) {\n        iVar3 = (**(code **)(pcVar10 + 0x23b10))(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3);\n        if (iVar3 != 0) {\n          **(int **)(pcVar10 + 0x23934) = iVar19;\n          piVar18 = *(int **)(pcVar10 + 0x23b68);\n          *piVar18 = iVar19;\n          return piVar18;\n        }\n        iVar3 = iVar6 + 4;\n        **(int **)(pcVar10 + 0x23b24) = iVar3;\n      }\n      **(int **)(pcVar10 + 0x23934) = iVar3;\n      piVar18 = *(int **)(pcVar10 + 0x23b68);\n      *piVar18 = iVar3;\n      return piVar18;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar6 = (**(code **)(pcVar10 + 0x23b58))();\n      if (((iVar6 != 0) && (iVar19 = iVar6 + 1, 6 < iVar19 - iVar3)) &&\n         (iVar7 = (**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7), iVar7 == 0)) {\n        iVar3 = (**(code **)(pcVar10 + 0x23b10))(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3);\n        if (iVar3 != 0) {\n          **(int **)(pcVar10 + 0x23934) = iVar19;\n          piVar18 = *(int **)(pcVar10 + 0x23b68);\n          *piVar18 = iVar19;\n          return piVar18;\n        }\n        iVar3 = iVar6 + 4;\n        **(int **)(pcVar10 + 0x23b24) = iVar3;\n      }\n      **(int **)(pcVar10 + 0x23934) = iVar3;\n      piVar18 = *(int **)(pcVar10 + 0x23b68);\n      *piVar18 = iVar3;\n      return piVar18;\n    }" { (expression_statement "iVar6 = (**(code **)(pcVar10 + 0x23b58))();" (assignment_expression "iVar6 = (**(code **)(pcVar10 + 0x23b58))()" identifier = (call_expression "(**(code **)(pcVar10 + 0x23b58))()" (parenthesized_expression "(**(code **)(pcVar10 + 0x23b58))" ( (pointer_expression "**(code **)(pcVar10 + 0x23b58)" * (pointer_expression "*(code **)(pcVar10 + 0x23b58)" * (cast_expression "(code **)(pcVar10 + 0x23b58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x23b58)" ( (binary_expression "pcVar10 + 0x23b58" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (((iVar6 != 0) && (iVar19 = iVar6 + 1, 6 < iVar19 - iVar3)) &&\n         (iVar7 = (**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7), iVar7 == 0)) {\n        iVar3 = (**(code **)(pcVar10 + 0x23b10))(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3);\n        if (iVar3 != 0) {\n          **(int **)(pcVar10 + 0x23934) = iVar19;\n          piVar18 = *(int **)(pcVar10 + 0x23b68);\n          *piVar18 = iVar19;\n          return piVar18;\n        }\n        iVar3 = iVar6 + 4;\n        **(int **)(pcVar10 + 0x23b24) = iVar3;\n      }" if (parenthesized_expression "(((iVar6 != 0) && (iVar19 = iVar6 + 1, 6 < iVar19 - iVar3)) &&\n         (iVar7 = (**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7), iVar7 == 0))" ( (binary_expression "((iVar6 != 0) && (iVar19 = iVar6 + 1, 6 < iVar19 - iVar3)) &&\n         (iVar7 = (**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7), iVar7 == 0)" (parenthesized_expression "((iVar6 != 0) && (iVar19 = iVar6 + 1, 6 < iVar19 - iVar3))" ( (binary_expression "(iVar6 != 0) && (iVar19 = iVar6 + 1, 6 < iVar19 - iVar3)" (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar19 = iVar6 + 1, 6 < iVar19 - iVar3)" ( (comma_expression "iVar19 = iVar6 + 1, 6 < iVar19 - iVar3" (assignment_expression "iVar19 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) , (binary_expression "6 < iVar19 - iVar3" number_literal < (binary_expression "iVar19 - iVar3" identifier - identifier))) ))) )) && (parenthesized_expression "(iVar7 = (**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7), iVar7 == 0)" ( (comma_expression "iVar7 = (**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7), iVar7 == 0" (assignment_expression "iVar7 = (**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7)" identifier = (call_expression "(**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7)" (parenthesized_expression "(**(code **)(pcVar10 + 0x23b10))" ( (pointer_expression "**(code **)(pcVar10 + 0x23b10)" * (pointer_expression "*(code **)(pcVar10 + 0x23b10)" * (cast_expression "(code **)(pcVar10 + 0x23b10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x23b10)" ( (binary_expression "pcVar10 + 0x23b10" identifier + number_literal) ))))) )) (argument_list "(iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7)" ( (binary_expression "iVar6 + -6" identifier + number_literal) , (binary_expression "*(int *)(pcVar10 + 0x23898) + 0x69c8" (pointer_expression "*(int *)(pcVar10 + 0x23898)" * (cast_expression "(int *)(pcVar10 + 0x23898)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x23898)" ( (binary_expression "pcVar10 + 0x23898" identifier + number_literal) )))) + number_literal) , number_literal )))) , (binary_expression "iVar7 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n        iVar3 = (**(code **)(pcVar10 + 0x23b10))(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3);\n        if (iVar3 != 0) {\n          **(int **)(pcVar10 + 0x23934) = iVar19;\n          piVar18 = *(int **)(pcVar10 + 0x23b68);\n          *piVar18 = iVar19;\n          return piVar18;\n        }\n        iVar3 = iVar6 + 4;\n        **(int **)(pcVar10 + 0x23b24) = iVar3;\n      }" { (expression_statement "iVar3 = (**(code **)(pcVar10 + 0x23b10))(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3);" (assignment_expression "iVar3 = (**(code **)(pcVar10 + 0x23b10))(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3)" identifier = (call_expression "(**(code **)(pcVar10 + 0x23b10))(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3)" (parenthesized_expression "(**(code **)(pcVar10 + 0x23b10))" ( (pointer_expression "**(code **)(pcVar10 + 0x23b10)" * (pointer_expression "*(code **)(pcVar10 + 0x23b10)" * (cast_expression "(code **)(pcVar10 + 0x23b10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x23b10)" ( (binary_expression "pcVar10 + 0x23b10" identifier + number_literal) ))))) )) (argument_list "(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3)" ( identifier , (binary_expression "*(int *)(pcVar10 + 0x23898) + 0x69d0" (pointer_expression "*(int *)(pcVar10 + 0x23898)" * (cast_expression "(int *)(pcVar10 + 0x23898)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x23898)" ( (binary_expression "pcVar10 + 0x23898" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (if_statement "if (iVar3 != 0) {\n          **(int **)(pcVar10 + 0x23934) = iVar19;\n          piVar18 = *(int **)(pcVar10 + 0x23b68);\n          *piVar18 = iVar19;\n          return piVar18;\n        }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n          **(int **)(pcVar10 + 0x23934) = iVar19;\n          piVar18 = *(int **)(pcVar10 + 0x23b68);\n          *piVar18 = iVar19;\n          return piVar18;\n        }" { (expression_statement "**(int **)(pcVar10 + 0x23934) = iVar19;" (assignment_expression "**(int **)(pcVar10 + 0x23934) = iVar19" (pointer_expression "**(int **)(pcVar10 + 0x23934)" * (pointer_expression "*(int **)(pcVar10 + 0x23934)" * (cast_expression "(int **)(pcVar10 + 0x23934)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x23934)" ( (binary_expression "pcVar10 + 0x23934" identifier + number_literal) ))))) = identifier) ;) (expression_statement "piVar18 = *(int **)(pcVar10 + 0x23b68);" (assignment_expression "piVar18 = *(int **)(pcVar10 + 0x23b68)" identifier = (pointer_expression "*(int **)(pcVar10 + 0x23b68)" * (cast_expression "(int **)(pcVar10 + 0x23b68)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x23b68)" ( (binary_expression "pcVar10 + 0x23b68" identifier + number_literal) ))))) ;) (expression_statement "*piVar18 = iVar19;" (assignment_expression "*piVar18 = iVar19" (pointer_expression "*piVar18" * identifier) = identifier) ;) (return_statement "return piVar18;" return identifier ;) })) (expression_statement "iVar3 = iVar6 + 4;" (assignment_expression "iVar3 = iVar6 + 4" identifier = (binary_expression "iVar6 + 4" identifier + number_literal)) ;) (expression_statement "**(int **)(pcVar10 + 0x23b24) = iVar3;" (assignment_expression "**(int **)(pcVar10 + 0x23b24) = iVar3" (pointer_expression "**(int **)(pcVar10 + 0x23b24)" * (pointer_expression "*(int **)(pcVar10 + 0x23b24)" * (cast_expression "(int **)(pcVar10 + 0x23b24)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x23b24)" ( (binary_expression "pcVar10 + 0x23b24" identifier + number_literal) ))))) = identifier) ;) })) (expression_statement "**(int **)(pcVar10 + 0x23934) = iVar3;" (assignment_expression "**(int **)(pcVar10 + 0x23934) = iVar3" (pointer_expression "**(int **)(pcVar10 + 0x23934)" * (pointer_expression "*(int **)(pcVar10 + 0x23934)" * (cast_expression "(int **)(pcVar10 + 0x23934)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x23934)" ( (binary_expression "pcVar10 + 0x23934" identifier + number_literal) ))))) = identifier) ;) (expression_statement "piVar18 = *(int **)(pcVar10 + 0x23b68);" (assignment_expression "piVar18 = *(int **)(pcVar10 + 0x23b68)" identifier = (pointer_expression "*(int **)(pcVar10 + 0x23b68)" * (cast_expression "(int **)(pcVar10 + 0x23b68)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x23b68)" ( (binary_expression "pcVar10 + 0x23b68" identifier + number_literal) ))))) ;) (expression_statement "*piVar18 = iVar3;" (assignment_expression "*piVar18 = iVar3" (pointer_expression "*piVar18" * identifier) = identifier) ;) (return_statement "return piVar18;" return identifier ;) })) (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) (expression_statement "piVar18 = (int *)(*(int *)(pcVar10 + 0x23898) + 0x6990);" (assignment_expression "piVar18 = (int *)(*(int *)(pcVar10 + 0x23898) + 0x6990)" identifier = (cast_expression "(int *)(*(int *)(pcVar10 + 0x23898) + 0x6990)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar10 + 0x23898) + 0x6990)" ( (binary_expression "*(int *)(pcVar10 + 0x23898) + 0x6990" (pointer_expression "*(int *)(pcVar10 + 0x23898)" * (cast_expression "(int *)(pcVar10 + 0x23898)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x23898)" ( (binary_expression "pcVar10 + 0x23898" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar10 + 0x23c24))(piVar18,1,0x37,**(undefined4 **)(pcVar10 + 0x23ca4));" (call_expression "(**(code **)(pcVar10 + 0x23c24))(piVar18,1,0x37,**(undefined4 **)(pcVar10 + 0x23ca4))" (parenthesized_expression "(**(code **)(pcVar10 + 0x23c24))" ( (pointer_expression "**(code **)(pcVar10 + 0x23c24)" * (pointer_expression "*(code **)(pcVar10 + 0x23c24)" * (cast_expression "(code **)(pcVar10 + 0x23c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x23c24)" ( (binary_expression "pcVar10 + 0x23c24" identifier + number_literal) ))))) )) (argument_list "(piVar18,1,0x37,**(undefined4 **)(pcVar10 + 0x23ca4))" ( identifier , number_literal , number_literal , (pointer_expression "**(undefined4 **)(pcVar10 + 0x23ca4)" * (pointer_expression "*(undefined4 **)(pcVar10 + 0x23ca4)" * (cast_expression "(undefined4 **)(pcVar10 + 0x23ca4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x23ca4)" ( (binary_expression "pcVar10 + 0x23ca4" identifier + number_literal) ))))) ))) ;) (expression_statement "pcVar10 = *(code **)(pcVar10 + 0x23b08);" (assignment_expression "pcVar10 = *(code **)(pcVar10 + 0x23b08)" identifier = (pointer_expression "*(code **)(pcVar10 + 0x23b08)" * (cast_expression "(code **)(pcVar10 + 0x23b08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x23b08)" ( (binary_expression "pcVar10 + 0x23b08" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar10)();" (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "*piVar18 = 0;" (assignment_expression "*piVar18 = 0" (pointer_expression "*piVar18" * identifier) = number_literal) ;) (expression_statement "piVar18[1] = 0;" (assignment_expression "piVar18[1] = 0" (subscript_expression "piVar18[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar18[2] = 0;" (assignment_expression "piVar18[2] = 0" (subscript_expression "piVar18[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar18[3] = 0;" (assignment_expression "piVar18[3] = 0" (subscript_expression "piVar18[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar18[4] = 0;" (assignment_expression "piVar18[4] = 0" (subscript_expression "piVar18[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar18[5] = 0;" (assignment_expression "piVar18[5] = 0" (subscript_expression "piVar18[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar18[6] = 0;" (assignment_expression "piVar18[6] = 0" (subscript_expression "piVar18[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar18[7] = 0;" (assignment_expression "piVar18[7] = 0" (subscript_expression "piVar18[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar18[8] = 0;" (assignment_expression "piVar18[8] = 0" (subscript_expression "piVar18[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar18[9] = 0;" (assignment_expression "piVar18[9] = 0" (subscript_expression "piVar18[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar18[10] = 0;" (assignment_expression "piVar18[10] = 0" (subscript_expression "piVar18[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar18[0xb] = 0;" (assignment_expression "piVar18[0xb] = 0" (subscript_expression "piVar18[0xb]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (iVar3 == 10) {\n      pcVar10 = *(code **)(pcVar10 + 0x239d8);\n      (*pcVar10)();\n      piVar17 = (int *)(**(code **)(pcVar10 + 0x23abc))(0,piVar18,5);\n      if (piVar18 == piVar17) {\n        pbVar8 = (byte *)locale_charset();\n        if ((*pbVar8 & 0xdf) == 0x55) {\n          if (((((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46)) && (pbVar8[3] == 0x2d)\n              ) && ((pbVar8[4] == 0x38 && (pbVar8[5] == 0)))) {\n            if (*(char *)piVar17 != '`') {\n              return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d8);\n            }\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e4);\n          }\n        }\n        else if ((((((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&\n                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))) &&\n                 (pbVar8[5] == 0x33)) && ((pbVar8[6] == 0x30 && (pbVar8[7] == 0)))) {\n          if (*(char *)piVar17 != '`') {\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69dc);\n          }\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e0);\n        }\n        if (iVar3 != 9) {\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e8);\n        }\n        piVar17 = (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d4);\n      }\n      return piVar17;\n    }" if (parenthesized_expression "(iVar3 == 10)" ( (binary_expression "iVar3 == 10" identifier == number_literal) )) (compound_statement "{\n      pcVar10 = *(code **)(pcVar10 + 0x239d8);\n      (*pcVar10)();\n      piVar17 = (int *)(**(code **)(pcVar10 + 0x23abc))(0,piVar18,5);\n      if (piVar18 == piVar17) {\n        pbVar8 = (byte *)locale_charset();\n        if ((*pbVar8 & 0xdf) == 0x55) {\n          if (((((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46)) && (pbVar8[3] == 0x2d)\n              ) && ((pbVar8[4] == 0x38 && (pbVar8[5] == 0)))) {\n            if (*(char *)piVar17 != '`') {\n              return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d8);\n            }\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e4);\n          }\n        }\n        else if ((((((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&\n                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))) &&\n                 (pbVar8[5] == 0x33)) && ((pbVar8[6] == 0x30 && (pbVar8[7] == 0)))) {\n          if (*(char *)piVar17 != '`') {\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69dc);\n          }\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e0);\n        }\n        if (iVar3 != 9) {\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e8);\n        }\n        piVar17 = (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d4);\n      }\n      return piVar17;\n    }" { (expression_statement "pcVar10 = *(code **)(pcVar10 + 0x239d8);" (assignment_expression "pcVar10 = *(code **)(pcVar10 + 0x239d8)" identifier = (pointer_expression "*(code **)(pcVar10 + 0x239d8)" * (cast_expression "(code **)(pcVar10 + 0x239d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x239d8)" ( (binary_expression "pcVar10 + 0x239d8" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar10)();" (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar17 = (int *)(**(code **)(pcVar10 + 0x23abc))(0,piVar18,5);" (assignment_expression "piVar17 = (int *)(**(code **)(pcVar10 + 0x23abc))(0,piVar18,5)" identifier = (cast_expression "(int *)(**(code **)(pcVar10 + 0x23abc))(0,piVar18,5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar10 + 0x23abc))(0,piVar18,5)" (parenthesized_expression "(**(code **)(pcVar10 + 0x23abc))" ( (pointer_expression "**(code **)(pcVar10 + 0x23abc)" * (pointer_expression "*(code **)(pcVar10 + 0x23abc)" * (cast_expression "(code **)(pcVar10 + 0x23abc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x23abc)" ( (binary_expression "pcVar10 + 0x23abc" identifier + number_literal) ))))) )) (argument_list "(0,piVar18,5)" ( number_literal , identifier , number_literal ))))) ;) (if_statement "if (piVar18 == piVar17) {\n        pbVar8 = (byte *)locale_charset();\n        if ((*pbVar8 & 0xdf) == 0x55) {\n          if (((((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46)) && (pbVar8[3] == 0x2d)\n              ) && ((pbVar8[4] == 0x38 && (pbVar8[5] == 0)))) {\n            if (*(char *)piVar17 != '`') {\n              return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d8);\n            }\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e4);\n          }\n        }\n        else if ((((((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&\n                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))) &&\n                 (pbVar8[5] == 0x33)) && ((pbVar8[6] == 0x30 && (pbVar8[7] == 0)))) {\n          if (*(char *)piVar17 != '`') {\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69dc);\n          }\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e0);\n        }\n        if (iVar3 != 9) {\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e8);\n        }\n        piVar17 = (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d4);\n      }" if (parenthesized_expression "(piVar18 == piVar17)" ( (binary_expression "piVar18 == piVar17" identifier == identifier) )) (compound_statement "{\n        pbVar8 = (byte *)locale_charset();\n        if ((*pbVar8 & 0xdf) == 0x55) {\n          if (((((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46)) && (pbVar8[3] == 0x2d)\n              ) && ((pbVar8[4] == 0x38 && (pbVar8[5] == 0)))) {\n            if (*(char *)piVar17 != '`') {\n              return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d8);\n            }\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e4);\n          }\n        }\n        else if ((((((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&\n                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))) &&\n                 (pbVar8[5] == 0x33)) && ((pbVar8[6] == 0x30 && (pbVar8[7] == 0)))) {\n          if (*(char *)piVar17 != '`') {\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69dc);\n          }\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e0);\n        }\n        if (iVar3 != 9) {\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e8);\n        }\n        piVar17 = (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d4);\n      }" { (expression_statement "pbVar8 = (byte *)locale_charset();" (assignment_expression "pbVar8 = (byte *)locale_charset()" identifier = (cast_expression "(byte *)locale_charset()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "locale_charset()" identifier (argument_list "()" ( ))))) ;) (if_statement "if ((*pbVar8 & 0xdf) == 0x55) {\n          if (((((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46)) && (pbVar8[3] == 0x2d)\n              ) && ((pbVar8[4] == 0x38 && (pbVar8[5] == 0)))) {\n            if (*(char *)piVar17 != '`') {\n              return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d8);\n            }\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e4);\n          }\n        }\n        else if ((((((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&\n                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))) &&\n                 (pbVar8[5] == 0x33)) && ((pbVar8[6] == 0x30 && (pbVar8[7] == 0)))) {\n          if (*(char *)piVar17 != '`') {\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69dc);\n          }\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e0);\n        }" if (parenthesized_expression "((*pbVar8 & 0xdf) == 0x55)" ( (binary_expression "(*pbVar8 & 0xdf) == 0x55" (parenthesized_expression "(*pbVar8 & 0xdf)" ( (binary_expression "*pbVar8 & 0xdf" (pointer_expression "*pbVar8" * identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n          if (((((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46)) && (pbVar8[3] == 0x2d)\n              ) && ((pbVar8[4] == 0x38 && (pbVar8[5] == 0)))) {\n            if (*(char *)piVar17 != '`') {\n              return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d8);\n            }\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e4);\n          }\n        }" { (if_statement "if (((((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46)) && (pbVar8[3] == 0x2d)\n              ) && ((pbVar8[4] == 0x38 && (pbVar8[5] == 0)))) {\n            if (*(char *)piVar17 != '`') {\n              return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d8);\n            }\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e4);\n          }" if (parenthesized_expression "(((((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46)) && (pbVar8[3] == 0x2d)\n              ) && ((pbVar8[4] == 0x38 && (pbVar8[5] == 0))))" ( (binary_expression "((((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46)) && (pbVar8[3] == 0x2d)\n              ) && ((pbVar8[4] == 0x38 && (pbVar8[5] == 0)))" (parenthesized_expression "((((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46)) && (pbVar8[3] == 0x2d)\n              )" ( (binary_expression "(((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46)) && (pbVar8[3] == 0x2d)" (parenthesized_expression "(((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46))" ( (binary_expression "((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46)" (parenthesized_expression "((pbVar8[1] & 0xdf) == 0x54)" ( (binary_expression "(pbVar8[1] & 0xdf) == 0x54" (parenthesized_expression "(pbVar8[1] & 0xdf)" ( (binary_expression "pbVar8[1] & 0xdf" (subscript_expression "pbVar8[1]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) && (parenthesized_expression "((pbVar8[2] & 0xdf) == 0x46)" ( (binary_expression "(pbVar8[2] & 0xdf) == 0x46" (parenthesized_expression "(pbVar8[2] & 0xdf)" ( (binary_expression "pbVar8[2] & 0xdf" (subscript_expression "pbVar8[2]" identifier [ number_literal ]) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "(pbVar8[3] == 0x2d)" ( (binary_expression "pbVar8[3] == 0x2d" (subscript_expression "pbVar8[3]" identifier [ number_literal ]) == number_literal) ))) )) && (parenthesized_expression "((pbVar8[4] == 0x38 && (pbVar8[5] == 0)))" ( (parenthesized_expression "(pbVar8[4] == 0x38 && (pbVar8[5] == 0))" ( (binary_expression "pbVar8[4] == 0x38 && (pbVar8[5] == 0)" (binary_expression "pbVar8[4] == 0x38" (subscript_expression "pbVar8[4]" identifier [ number_literal ]) == number_literal) && (parenthesized_expression "(pbVar8[5] == 0)" ( (binary_expression "pbVar8[5] == 0" (subscript_expression "pbVar8[5]" identifier [ number_literal ]) == number_literal) ))) )) ))) )) (compound_statement "{\n            if (*(char *)piVar17 != '`') {\n              return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d8);\n            }\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e4);\n          }" { (if_statement "if (*(char *)piVar17 != '`') {\n              return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d8);\n            }" if (parenthesized_expression "(*(char *)piVar17 != '`')" ( (binary_expression "*(char *)piVar17 != '`'" (pointer_expression "*(char *)piVar17" * (cast_expression "(char *)piVar17" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != (char_literal "'`'" ' character ')) )) (compound_statement "{\n              return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d8);\n            }" { (return_statement "return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d8);" return (cast_expression "(int *)(*(int *)(pcVar10 + 0x23700) + 0x69d8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar10 + 0x23700) + 0x69d8)" ( (binary_expression "*(int *)(pcVar10 + 0x23700) + 0x69d8" (pointer_expression "*(int *)(pcVar10 + 0x23700)" * (cast_expression "(int *)(pcVar10 + 0x23700)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x23700)" ( (binary_expression "pcVar10 + 0x23700" identifier + number_literal) )))) + number_literal) ))) ;) })) (return_statement "return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e4);" return (cast_expression "(int *)(*(int *)(pcVar10 + 0x23700) + 0x69e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar10 + 0x23700) + 0x69e4)" ( (binary_expression "*(int *)(pcVar10 + 0x23700) + 0x69e4" (pointer_expression "*(int *)(pcVar10 + 0x23700)" * (cast_expression "(int *)(pcVar10 + 0x23700)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x23700)" ( (binary_expression "pcVar10 + 0x23700" identifier + number_literal) )))) + number_literal) ))) ;) })) }) (else_clause "else if ((((((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&\n                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))) &&\n                 (pbVar8[5] == 0x33)) && ((pbVar8[6] == 0x30 && (pbVar8[7] == 0)))) {\n          if (*(char *)piVar17 != '`') {\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69dc);\n          }\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e0);\n        }" else (if_statement "if ((((((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&\n                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))) &&\n                 (pbVar8[5] == 0x33)) && ((pbVar8[6] == 0x30 && (pbVar8[7] == 0)))) {\n          if (*(char *)piVar17 != '`') {\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69dc);\n          }\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e0);\n        }" if (parenthesized_expression "((((((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&\n                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))) &&\n                 (pbVar8[5] == 0x33)) && ((pbVar8[6] == 0x30 && (pbVar8[7] == 0))))" ( (binary_expression "(((((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&\n                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))) &&\n                 (pbVar8[5] == 0x33)) && ((pbVar8[6] == 0x30 && (pbVar8[7] == 0)))" (parenthesized_expression "(((((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&\n                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))) &&\n                 (pbVar8[5] == 0x33))" ( (binary_expression "((((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&\n                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))) &&\n                 (pbVar8[5] == 0x33)" (parenthesized_expression "((((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&\n                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30))))))" ( (binary_expression "(((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&\n                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))" (parenthesized_expression "(((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42))" ( (binary_expression "((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)" (parenthesized_expression "((*pbVar8 & 0xdf) == 0x47)" ( (binary_expression "(*pbVar8 & 0xdf) == 0x47" (parenthesized_expression "(*pbVar8 & 0xdf)" ( (binary_expression "*pbVar8 & 0xdf" (pointer_expression "*pbVar8" * identifier) & number_literal) )) == number_literal) )) && (parenthesized_expression "((pbVar8[1] & 0xdf) == 0x42)" ( (binary_expression "(pbVar8[1] & 0xdf) == 0x42" (parenthesized_expression "(pbVar8[1] & 0xdf)" ( (binary_expression "pbVar8[1] & 0xdf" (subscript_expression "pbVar8[1]" identifier [ number_literal ]) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))" ( (parenthesized_expression "(pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30))))" ( (binary_expression "pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))" (binary_expression "pbVar8[2] == 0x31" (subscript_expression "pbVar8[2]" identifier [ number_literal ]) == number_literal) && (parenthesized_expression "((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))" ( (parenthesized_expression "(pbVar8[3] == 0x38 && (pbVar8[4] == 0x30))" ( (binary_expression "pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)" (binary_expression "pbVar8[3] == 0x38" (subscript_expression "pbVar8[3]" identifier [ number_literal ]) == number_literal) && (parenthesized_expression "(pbVar8[4] == 0x30)" ( (binary_expression "pbVar8[4] == 0x30" (subscript_expression "pbVar8[4]" identifier [ number_literal ]) == number_literal) ))) )) ))) )) ))) )) && (parenthesized_expression "(pbVar8[5] == 0x33)" ( (binary_expression "pbVar8[5] == 0x33" (subscript_expression "pbVar8[5]" identifier [ number_literal ]) == number_literal) ))) )) && (parenthesized_expression "((pbVar8[6] == 0x30 && (pbVar8[7] == 0)))" ( (parenthesized_expression "(pbVar8[6] == 0x30 && (pbVar8[7] == 0))" ( (binary_expression "pbVar8[6] == 0x30 && (pbVar8[7] == 0)" (binary_expression "pbVar8[6] == 0x30" (subscript_expression "pbVar8[6]" identifier [ number_literal ]) == number_literal) && (parenthesized_expression "(pbVar8[7] == 0)" ( (binary_expression "pbVar8[7] == 0" (subscript_expression "pbVar8[7]" identifier [ number_literal ]) == number_literal) ))) )) ))) )) (compound_statement "{\n          if (*(char *)piVar17 != '`') {\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69dc);\n          }\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e0);\n        }" { (if_statement "if (*(char *)piVar17 != '`') {\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69dc);\n          }" if (parenthesized_expression "(*(char *)piVar17 != '`')" ( (binary_expression "*(char *)piVar17 != '`'" (pointer_expression "*(char *)piVar17" * (cast_expression "(char *)piVar17" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != (char_literal "'`'" ' character ')) )) (compound_statement "{\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69dc);\n          }" { (return_statement "return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69dc);" return (cast_expression "(int *)(*(int *)(pcVar10 + 0x23700) + 0x69dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar10 + 0x23700) + 0x69dc)" ( (binary_expression "*(int *)(pcVar10 + 0x23700) + 0x69dc" (pointer_expression "*(int *)(pcVar10 + 0x23700)" * (cast_expression "(int *)(pcVar10 + 0x23700)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x23700)" ( (binary_expression "pcVar10 + 0x23700" identifier + number_literal) )))) + number_literal) ))) ;) })) (return_statement "return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e0);" return (cast_expression "(int *)(*(int *)(pcVar10 + 0x23700) + 0x69e0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar10 + 0x23700) + 0x69e0)" ( (binary_expression "*(int *)(pcVar10 + 0x23700) + 0x69e0" (pointer_expression "*(int *)(pcVar10 + 0x23700)" * (cast_expression "(int *)(pcVar10 + 0x23700)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x23700)" ( (binary_expression "pcVar10 + 0x23700" identifier + number_literal) )))) + number_literal) ))) ;) })))) (if_statement "if (iVar3 != 9) {\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e8);\n        }" if (parenthesized_expression "(iVar3 != 9)" ( (binary_expression "iVar3 != 9" identifier != number_literal) )) (compound_statement "{\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e8);\n        }" { (return_statement "return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e8);" return (cast_expression "(int *)(*(int *)(pcVar10 + 0x23700) + 0x69e8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar10 + 0x23700) + 0x69e8)" ( (binary_expression "*(int *)(pcVar10 + 0x23700) + 0x69e8" (pointer_expression "*(int *)(pcVar10 + 0x23700)" * (cast_expression "(int *)(pcVar10 + 0x23700)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x23700)" ( (binary_expression "pcVar10 + 0x23700" identifier + number_literal) )))) + number_literal) ))) ;) })) (expression_statement "piVar17 = (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d4);" (assignment_expression "piVar17 = (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d4)" identifier = (cast_expression "(int *)(*(int *)(pcVar10 + 0x23700) + 0x69d4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar10 + 0x23700) + 0x69d4)" ( (binary_expression "*(int *)(pcVar10 + 0x23700) + 0x69d4" (pointer_expression "*(int *)(pcVar10 + 0x23700)" * (cast_expression "(int *)(pcVar10 + 0x23700)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x23700)" ( (binary_expression "pcVar10 + 0x23700" identifier + number_literal) )))) + number_literal) )))) ;) })) (return_statement "return piVar17;" return identifier ;) })) (expression_statement "*piVar18 = iVar3;" (assignment_expression "*piVar18 = iVar3" (pointer_expression "*piVar18" * identifier) = identifier) ;) (return_statement "return piVar18;" return identifier ;) })) (expression_statement "pcVar10 = (code *)(PTR_LAB_00049280 + 0x3e34);" (assignment_expression "pcVar10 = (code *)(PTR_LAB_00049280 + 0x3e34)" identifier = (cast_expression "(code *)(PTR_LAB_00049280 + 0x3e34)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00049280 + 0x3e34)" ( (binary_expression "PTR_LAB_00049280 + 0x3e34" identifier + number_literal) )))) ;) (labeled_statement "LAB_00023f94:\n  if (cVar9 == '%') {\n    iVar6 = 0;\n    cVar9 = param_5;\nLAB_0002406c:\n    do {\n      param_3 = param_3 + 1;\n      cVar1 = *param_3;\n      while (uVar11 = (uint)cVar1, uVar11 != 0x30) {\n        if (0x30 < (int)uVar11) {\n          if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }\n          if (uVar11 == 0x5f) {\n            iVar6 = 0x5f;\n            goto LAB_0002406c;\n          }\nLAB_000240c4:\n          pcVar14 = (char *)0xffffffff;\n          if (9 < uVar11 - 0x30) goto LAB_000240d4;\n          pcVar14 = (char *)0x0;\n          pcVar5 = param_3;\n          goto LAB_00024154;\n        }\n        if (uVar11 != 0x23) {\n          if (uVar11 != 0x2d) goto LAB_000240c4;\n          iVar6 = 0x2d;\n          goto LAB_0002406c;\n        }\n        param_3 = param_3 + 1;\n        cVar1 = *param_3;\n      }\n      iVar6 = 0x30;\n    } while( true );\n  }" statement_identifier : (if_statement "if (cVar9 == '%') {\n    iVar6 = 0;\n    cVar9 = param_5;\nLAB_0002406c:\n    do {\n      param_3 = param_3 + 1;\n      cVar1 = *param_3;\n      while (uVar11 = (uint)cVar1, uVar11 != 0x30) {\n        if (0x30 < (int)uVar11) {\n          if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }\n          if (uVar11 == 0x5f) {\n            iVar6 = 0x5f;\n            goto LAB_0002406c;\n          }\nLAB_000240c4:\n          pcVar14 = (char *)0xffffffff;\n          if (9 < uVar11 - 0x30) goto LAB_000240d4;\n          pcVar14 = (char *)0x0;\n          pcVar5 = param_3;\n          goto LAB_00024154;\n        }\n        if (uVar11 != 0x23) {\n          if (uVar11 != 0x2d) goto LAB_000240c4;\n          iVar6 = 0x2d;\n          goto LAB_0002406c;\n        }\n        param_3 = param_3 + 1;\n        cVar1 = *param_3;\n      }\n      iVar6 = 0x30;\n    } while( true );\n  }" if (parenthesized_expression "(cVar9 == '%')" ( (binary_expression "cVar9 == '%'" identifier == (char_literal "'%'" ' character ')) )) (compound_statement "{\n    iVar6 = 0;\n    cVar9 = param_5;\nLAB_0002406c:\n    do {\n      param_3 = param_3 + 1;\n      cVar1 = *param_3;\n      while (uVar11 = (uint)cVar1, uVar11 != 0x30) {\n        if (0x30 < (int)uVar11) {\n          if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }\n          if (uVar11 == 0x5f) {\n            iVar6 = 0x5f;\n            goto LAB_0002406c;\n          }\nLAB_000240c4:\n          pcVar14 = (char *)0xffffffff;\n          if (9 < uVar11 - 0x30) goto LAB_000240d4;\n          pcVar14 = (char *)0x0;\n          pcVar5 = param_3;\n          goto LAB_00024154;\n        }\n        if (uVar11 != 0x23) {\n          if (uVar11 != 0x2d) goto LAB_000240c4;\n          iVar6 = 0x2d;\n          goto LAB_0002406c;\n        }\n        param_3 = param_3 + 1;\n        cVar1 = *param_3;\n      }\n      iVar6 = 0x30;\n    } while( true );\n  }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "cVar9 = param_5;" (assignment_expression "cVar9 = param_5" identifier = identifier) ;) (labeled_statement "LAB_0002406c:\n    do {\n      param_3 = param_3 + 1;\n      cVar1 = *param_3;\n      while (uVar11 = (uint)cVar1, uVar11 != 0x30) {\n        if (0x30 < (int)uVar11) {\n          if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }\n          if (uVar11 == 0x5f) {\n            iVar6 = 0x5f;\n            goto LAB_0002406c;\n          }\nLAB_000240c4:\n          pcVar14 = (char *)0xffffffff;\n          if (9 < uVar11 - 0x30) goto LAB_000240d4;\n          pcVar14 = (char *)0x0;\n          pcVar5 = param_3;\n          goto LAB_00024154;\n        }\n        if (uVar11 != 0x23) {\n          if (uVar11 != 0x2d) goto LAB_000240c4;\n          iVar6 = 0x2d;\n          goto LAB_0002406c;\n        }\n        param_3 = param_3 + 1;\n        cVar1 = *param_3;\n      }\n      iVar6 = 0x30;\n    } while( true );" statement_identifier : (do_statement "do {\n      param_3 = param_3 + 1;\n      cVar1 = *param_3;\n      while (uVar11 = (uint)cVar1, uVar11 != 0x30) {\n        if (0x30 < (int)uVar11) {\n          if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }\n          if (uVar11 == 0x5f) {\n            iVar6 = 0x5f;\n            goto LAB_0002406c;\n          }\nLAB_000240c4:\n          pcVar14 = (char *)0xffffffff;\n          if (9 < uVar11 - 0x30) goto LAB_000240d4;\n          pcVar14 = (char *)0x0;\n          pcVar5 = param_3;\n          goto LAB_00024154;\n        }\n        if (uVar11 != 0x23) {\n          if (uVar11 != 0x2d) goto LAB_000240c4;\n          iVar6 = 0x2d;\n          goto LAB_0002406c;\n        }\n        param_3 = param_3 + 1;\n        cVar1 = *param_3;\n      }\n      iVar6 = 0x30;\n    } while( true );" do (compound_statement "{\n      param_3 = param_3 + 1;\n      cVar1 = *param_3;\n      while (uVar11 = (uint)cVar1, uVar11 != 0x30) {\n        if (0x30 < (int)uVar11) {\n          if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }\n          if (uVar11 == 0x5f) {\n            iVar6 = 0x5f;\n            goto LAB_0002406c;\n          }\nLAB_000240c4:\n          pcVar14 = (char *)0xffffffff;\n          if (9 < uVar11 - 0x30) goto LAB_000240d4;\n          pcVar14 = (char *)0x0;\n          pcVar5 = param_3;\n          goto LAB_00024154;\n        }\n        if (uVar11 != 0x23) {\n          if (uVar11 != 0x2d) goto LAB_000240c4;\n          iVar6 = 0x2d;\n          goto LAB_0002406c;\n        }\n        param_3 = param_3 + 1;\n        cVar1 = *param_3;\n      }\n      iVar6 = 0x30;\n    }" { (expression_statement "param_3 = param_3 + 1;" (assignment_expression "param_3 = param_3 + 1" identifier = (binary_expression "param_3 + 1" identifier + number_literal)) ;) (expression_statement "cVar1 = *param_3;" (assignment_expression "cVar1 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (while_statement "while (uVar11 = (uint)cVar1, uVar11 != 0x30) {\n        if (0x30 < (int)uVar11) {\n          if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }\n          if (uVar11 == 0x5f) {\n            iVar6 = 0x5f;\n            goto LAB_0002406c;\n          }\nLAB_000240c4:\n          pcVar14 = (char *)0xffffffff;\n          if (9 < uVar11 - 0x30) goto LAB_000240d4;\n          pcVar14 = (char *)0x0;\n          pcVar5 = param_3;\n          goto LAB_00024154;\n        }\n        if (uVar11 != 0x23) {\n          if (uVar11 != 0x2d) goto LAB_000240c4;\n          iVar6 = 0x2d;\n          goto LAB_0002406c;\n        }\n        param_3 = param_3 + 1;\n        cVar1 = *param_3;\n      }" while (parenthesized_expression "(uVar11 = (uint)cVar1, uVar11 != 0x30)" ( (comma_expression "uVar11 = (uint)cVar1, uVar11 != 0x30" (assignment_expression "uVar11 = (uint)cVar1" identifier = (cast_expression "(uint)cVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) , (binary_expression "uVar11 != 0x30" identifier != number_literal)) )) (compound_statement "{\n        if (0x30 < (int)uVar11) {\n          if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }\n          if (uVar11 == 0x5f) {\n            iVar6 = 0x5f;\n            goto LAB_0002406c;\n          }\nLAB_000240c4:\n          pcVar14 = (char *)0xffffffff;\n          if (9 < uVar11 - 0x30) goto LAB_000240d4;\n          pcVar14 = (char *)0x0;\n          pcVar5 = param_3;\n          goto LAB_00024154;\n        }\n        if (uVar11 != 0x23) {\n          if (uVar11 != 0x2d) goto LAB_000240c4;\n          iVar6 = 0x2d;\n          goto LAB_0002406c;\n        }\n        param_3 = param_3 + 1;\n        cVar1 = *param_3;\n      }" { (if_statement "if (0x30 < (int)uVar11) {\n          if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }\n          if (uVar11 == 0x5f) {\n            iVar6 = 0x5f;\n            goto LAB_0002406c;\n          }\nLAB_000240c4:\n          pcVar14 = (char *)0xffffffff;\n          if (9 < uVar11 - 0x30) goto LAB_000240d4;\n          pcVar14 = (char *)0x0;\n          pcVar5 = param_3;\n          goto LAB_00024154;\n        }" if (parenthesized_expression "(0x30 < (int)uVar11)" ( (binary_expression "0x30 < (int)uVar11" number_literal < (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }\n          if (uVar11 == 0x5f) {\n            iVar6 = 0x5f;\n            goto LAB_0002406c;\n          }\nLAB_000240c4:\n          pcVar14 = (char *)0xffffffff;\n          if (9 < uVar11 - 0x30) goto LAB_000240d4;\n          pcVar14 = (char *)0x0;\n          pcVar5 = param_3;\n          goto LAB_00024154;\n        }" { (if_statement "if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }" if (parenthesized_expression "(uVar11 == 0x5e)" ( (binary_expression "uVar11 == 0x5e" identifier == number_literal) )) (compound_statement "{\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }" { (expression_statement "cVar9 = '\x01';" (assignment_expression "cVar9 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (goto_statement "goto LAB_0002406c;" goto statement_identifier ;) })) (if_statement "if (uVar11 == 0x5f) {\n            iVar6 = 0x5f;\n            goto LAB_0002406c;\n          }" if (parenthesized_expression "(uVar11 == 0x5f)" ( (binary_expression "uVar11 == 0x5f" identifier == number_literal) )) (compound_statement "{\n            iVar6 = 0x5f;\n            goto LAB_0002406c;\n          }" { (expression_statement "iVar6 = 0x5f;" (assignment_expression "iVar6 = 0x5f" identifier = number_literal) ;) (goto_statement "goto LAB_0002406c;" goto statement_identifier ;) })) (labeled_statement "LAB_000240c4:\n          pcVar14 = (char *)0xffffffff;" statement_identifier : (expression_statement "pcVar14 = (char *)0xffffffff;" (assignment_expression "pcVar14 = (char *)0xffffffff" identifier = (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (if_statement "if (9 < uVar11 - 0x30) goto LAB_000240d4;" if (parenthesized_expression "(9 < uVar11 - 0x30)" ( (binary_expression "9 < uVar11 - 0x30" number_literal < (binary_expression "uVar11 - 0x30" identifier - number_literal)) )) (goto_statement "goto LAB_000240d4;" goto statement_identifier ;)) (expression_statement "pcVar14 = (char *)0x0;" (assignment_expression "pcVar14 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar5 = param_3;" (assignment_expression "pcVar5 = param_3" identifier = identifier) ;) (goto_statement "goto LAB_00024154;" goto statement_identifier ;) })) (if_statement "if (uVar11 != 0x23) {\n          if (uVar11 != 0x2d) goto LAB_000240c4;\n          iVar6 = 0x2d;\n          goto LAB_0002406c;\n        }" if (parenthesized_expression "(uVar11 != 0x23)" ( (binary_expression "uVar11 != 0x23" identifier != number_literal) )) (compound_statement "{\n          if (uVar11 != 0x2d) goto LAB_000240c4;\n          iVar6 = 0x2d;\n          goto LAB_0002406c;\n        }" { (if_statement "if (uVar11 != 0x2d) goto LAB_000240c4;" if (parenthesized_expression "(uVar11 != 0x2d)" ( (binary_expression "uVar11 != 0x2d" identifier != number_literal) )) (goto_statement "goto LAB_000240c4;" goto statement_identifier ;)) (expression_statement "iVar6 = 0x2d;" (assignment_expression "iVar6 = 0x2d" identifier = number_literal) ;) (goto_statement "goto LAB_0002406c;" goto statement_identifier ;) })) (expression_statement "param_3 = param_3 + 1;" (assignment_expression "param_3 = param_3 + 1" identifier = (binary_expression "param_3 + 1" identifier + number_literal)) ;) (expression_statement "cVar1 = *param_3;" (assignment_expression "cVar1 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) })) (expression_statement "iVar6 = 0x30;" (assignment_expression "iVar6 = 0x30" identifier = number_literal) ;) }) while (parenthesized_expression "( true )" ( true )) ;)) }))) (if_statement "if ((uint)(param_2 - (int)piVar18) < 2) goto LAB_00023ff8;" if (parenthesized_expression "((uint)(param_2 - (int)piVar18) < 2)" ( (binary_expression "(uint)(param_2 - (int)piVar18) < 2" (call_expression "(uint)(param_2 - (int)piVar18)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_2 - (int)piVar18)" ( (binary_expression "param_2 - (int)piVar18" identifier - (cast_expression "(int)piVar18" ( (type_descriptor "int" primitive_type) ) identifier)) ))) < number_literal) )) (goto_statement "goto LAB_00023ff8;" goto statement_identifier ;)) (if_statement "if (param_1 != (char *)0x0) {\n    *param_1 = cVar9;\n    param_1 = param_1 + 1;\n  }" if (parenthesized_expression "(param_1 != (char *)0x0)" ( (binary_expression "param_1 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *param_1 = cVar9;\n    param_1 = param_1 + 1;\n  }" { (expression_statement "*param_1 = cVar9;" (assignment_expression "*param_1 = cVar9" (pointer_expression "*param_1" * identifier) = identifier) ;) (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 "piVar18 = (int *)((int)piVar18 + 1);" (assignment_expression "piVar18 = (int *)((int)piVar18 + 1)" identifier = (cast_expression "(int *)((int)piVar18 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar18 + 1)" ( (binary_expression "(int)piVar18 + 1" (cast_expression "(int)piVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (goto_statement "goto LAB_00023fc0;" goto statement_identifier ;) (labeled_statement "LAB_00024154:\n  do {\n    uVar11 = (uint)pcVar5[1];\n    param_3 = pcVar5 + 1;\n    uVar4 = uVar11 - 0x30;\n    if (((int)pcVar14 < 0xccccccd) && ((pcVar14 != (char *)0xccccccc || (*pcVar5 < 0x38)))) {\n      pcVar14 = (char *)(*pcVar5 + -0x30 + (int)pcVar14 * 10);\n    }\n    else {\n      if (9 < uVar4) {\n        pcVar14 = (char *)0x7fffffff;\n        break;\n      }\n      uVar11 = (uint)pcVar5[2];\n      pcVar14 = (char *)0x7fffffff;\n      param_3 = pcVar5 + 2;\n      uVar4 = uVar11 - 0x30;\n    }\n    pcVar5 = param_3;\n  } while (uVar4 < 10);" statement_identifier : (do_statement "do {\n    uVar11 = (uint)pcVar5[1];\n    param_3 = pcVar5 + 1;\n    uVar4 = uVar11 - 0x30;\n    if (((int)pcVar14 < 0xccccccd) && ((pcVar14 != (char *)0xccccccc || (*pcVar5 < 0x38)))) {\n      pcVar14 = (char *)(*pcVar5 + -0x30 + (int)pcVar14 * 10);\n    }\n    else {\n      if (9 < uVar4) {\n        pcVar14 = (char *)0x7fffffff;\n        break;\n      }\n      uVar11 = (uint)pcVar5[2];\n      pcVar14 = (char *)0x7fffffff;\n      param_3 = pcVar5 + 2;\n      uVar4 = uVar11 - 0x30;\n    }\n    pcVar5 = param_3;\n  } while (uVar4 < 10);" do (compound_statement "{\n    uVar11 = (uint)pcVar5[1];\n    param_3 = pcVar5 + 1;\n    uVar4 = uVar11 - 0x30;\n    if (((int)pcVar14 < 0xccccccd) && ((pcVar14 != (char *)0xccccccc || (*pcVar5 < 0x38)))) {\n      pcVar14 = (char *)(*pcVar5 + -0x30 + (int)pcVar14 * 10);\n    }\n    else {\n      if (9 < uVar4) {\n        pcVar14 = (char *)0x7fffffff;\n        break;\n      }\n      uVar11 = (uint)pcVar5[2];\n      pcVar14 = (char *)0x7fffffff;\n      param_3 = pcVar5 + 2;\n      uVar4 = uVar11 - 0x30;\n    }\n    pcVar5 = param_3;\n  }" { (expression_statement "uVar11 = (uint)pcVar5[1];" (assignment_expression "uVar11 = (uint)pcVar5[1]" identifier = (cast_expression "(uint)pcVar5[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pcVar5[1]" identifier [ number_literal ]))) ;) (expression_statement "param_3 = pcVar5 + 1;" (assignment_expression "param_3 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;) (expression_statement "uVar4 = uVar11 - 0x30;" (assignment_expression "uVar4 = uVar11 - 0x30" identifier = (binary_expression "uVar11 - 0x30" identifier - number_literal)) ;) (if_statement "if (((int)pcVar14 < 0xccccccd) && ((pcVar14 != (char *)0xccccccc || (*pcVar5 < 0x38)))) {\n      pcVar14 = (char *)(*pcVar5 + -0x30 + (int)pcVar14 * 10);\n    }\n    else {\n      if (9 < uVar4) {\n        pcVar14 = (char *)0x7fffffff;\n        break;\n      }\n      uVar11 = (uint)pcVar5[2];\n      pcVar14 = (char *)0x7fffffff;\n      param_3 = pcVar5 + 2;\n      uVar4 = uVar11 - 0x30;\n    }" if (parenthesized_expression "(((int)pcVar14 < 0xccccccd) && ((pcVar14 != (char *)0xccccccc || (*pcVar5 < 0x38))))" ( (binary_expression "((int)pcVar14 < 0xccccccd) && ((pcVar14 != (char *)0xccccccc || (*pcVar5 < 0x38)))" (parenthesized_expression "((int)pcVar14 < 0xccccccd)" ( (binary_expression "(int)pcVar14 < 0xccccccd" (cast_expression "(int)pcVar14" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) && (parenthesized_expression "((pcVar14 != (char *)0xccccccc || (*pcVar5 < 0x38)))" ( (parenthesized_expression "(pcVar14 != (char *)0xccccccc || (*pcVar5 < 0x38))" ( (binary_expression "pcVar14 != (char *)0xccccccc || (*pcVar5 < 0x38)" (binary_expression "pcVar14 != (char *)0xccccccc" identifier != (cast_expression "(char *)0xccccccc" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "(*pcVar5 < 0x38)" ( (binary_expression "*pcVar5 < 0x38" (pointer_expression "*pcVar5" * identifier) < number_literal) ))) )) ))) )) (compound_statement "{\n      pcVar14 = (char *)(*pcVar5 + -0x30 + (int)pcVar14 * 10);\n    }" { (expression_statement "pcVar14 = (char *)(*pcVar5 + -0x30 + (int)pcVar14 * 10);" (assignment_expression "pcVar14 = (char *)(*pcVar5 + -0x30 + (int)pcVar14 * 10)" identifier = (cast_expression "(char *)(*pcVar5 + -0x30 + (int)pcVar14 * 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*pcVar5 + -0x30 + (int)pcVar14 * 10)" ( (binary_expression "*pcVar5 + -0x30 + (int)pcVar14 * 10" (binary_expression "*pcVar5 + -0x30" (pointer_expression "*pcVar5" * identifier) + number_literal) + (binary_expression "(int)pcVar14 * 10" (cast_expression "(int)pcVar14" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) }) (else_clause "else {\n      if (9 < uVar4) {\n        pcVar14 = (char *)0x7fffffff;\n        break;\n      }\n      uVar11 = (uint)pcVar5[2];\n      pcVar14 = (char *)0x7fffffff;\n      param_3 = pcVar5 + 2;\n      uVar4 = uVar11 - 0x30;\n    }" else (compound_statement "{\n      if (9 < uVar4) {\n        pcVar14 = (char *)0x7fffffff;\n        break;\n      }\n      uVar11 = (uint)pcVar5[2];\n      pcVar14 = (char *)0x7fffffff;\n      param_3 = pcVar5 + 2;\n      uVar4 = uVar11 - 0x30;\n    }" { (if_statement "if (9 < uVar4) {\n        pcVar14 = (char *)0x7fffffff;\n        break;\n      }" if (parenthesized_expression "(9 < uVar4)" ( (binary_expression "9 < uVar4" number_literal < identifier) )) (compound_statement "{\n        pcVar14 = (char *)0x7fffffff;\n        break;\n      }" { (expression_statement "pcVar14 = (char *)0x7fffffff;" (assignment_expression "pcVar14 = (char *)0x7fffffff" identifier = (cast_expression "(char *)0x7fffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (break_statement "break;" break ;) })) (expression_statement "uVar11 = (uint)pcVar5[2];" (assignment_expression "uVar11 = (uint)pcVar5[2]" identifier = (cast_expression "(uint)pcVar5[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pcVar5[2]" identifier [ number_literal ]))) ;) (expression_statement "pcVar14 = (char *)0x7fffffff;" (assignment_expression "pcVar14 = (char *)0x7fffffff" identifier = (cast_expression "(char *)0x7fffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_3 = pcVar5 + 2;" (assignment_expression "param_3 = pcVar5 + 2" identifier = (binary_expression "pcVar5 + 2" identifier + number_literal)) ;) (expression_statement "uVar4 = uVar11 - 0x30;" (assignment_expression "uVar4 = uVar11 - 0x30" identifier = (binary_expression "uVar11 - 0x30" identifier - number_literal)) ;) }))) (expression_statement "pcVar5 = param_3;" (assignment_expression "pcVar5 = param_3" identifier = identifier) ;) }) while (parenthesized_expression "(uVar4 < 10)" ( (binary_expression "uVar4 < 10" identifier < number_literal) )) ;)) (labeled_statement "LAB_000240d4:\n  if ((uVar11 == 0x45) || (uVar11 == 0x4f)) {\n    uVar11 = (uint)param_3[1];\n    param_3 = param_3 + 1;\n  }" statement_identifier : (if_statement "if ((uVar11 == 0x45) || (uVar11 == 0x4f)) {\n    uVar11 = (uint)param_3[1];\n    param_3 = param_3 + 1;\n  }" if (parenthesized_expression "((uVar11 == 0x45) || (uVar11 == 0x4f))" ( (binary_expression "(uVar11 == 0x45) || (uVar11 == 0x4f)" (parenthesized_expression "(uVar11 == 0x45)" ( (binary_expression "uVar11 == 0x45" identifier == number_literal) )) || (parenthesized_expression "(uVar11 == 0x4f)" ( (binary_expression "uVar11 == 0x4f" identifier == number_literal) ))) )) (compound_statement "{\n    uVar11 = (uint)param_3[1];\n    param_3 = param_3 + 1;\n  }" { (expression_statement "uVar11 = (uint)param_3[1];" (assignment_expression "uVar11 = (uint)param_3[1]" identifier = (cast_expression "(uint)param_3[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_3[1]" identifier [ number_literal ]))) ;) (expression_statement "param_3 = param_3 + 1;" (assignment_expression "param_3 = param_3 + 1" identifier = (binary_expression "param_3 + 1" identifier + number_literal)) ;) }))) (expression_statement "pcVar5 = param_3;" (assignment_expression "pcVar5 = param_3" identifier = identifier) ;) (if_statement "if ((uVar11 & 0xff) < 0x7b) {\n                    \n                    \n    piVar18 = (int *)(*(code *)(&_gp_1 + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)))();\n    return piVar18;\n  }" if (parenthesized_expression "((uVar11 & 0xff) < 0x7b)" ( (binary_expression "(uVar11 & 0xff) < 0x7b" (parenthesized_expression "(uVar11 & 0xff)" ( (binary_expression "uVar11 & 0xff" identifier & number_literal) )) < number_literal) )) (compound_statement "{\n                    \n                    \n    piVar18 = (int *)(*(code *)(&_gp_1 + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)))();\n    return piVar18;\n  }" { (expression_statement "piVar18 = (int *)(*(code *)(&_gp_1 + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)))();" (assignment_expression "piVar18 = (int *)(*(code *)(&_gp_1 + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)))()" identifier = (cast_expression "(int *)(*(code *)(&_gp_1 + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(&_gp_1 + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)))" ( (pointer_expression "*(code *)(&_gp_1 + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0))" * (cast_expression "(code *)(&_gp_1 + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0))" ( (binary_expression "&_gp_1 + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)" * (cast_expression "(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)" ( (binary_expression "puVar20 + (uVar11 & 0xff) * 4 + 0x67a0" (binary_expression "puVar20 + (uVar11 & 0xff) * 4" identifier + (binary_expression "(uVar11 & 0xff) * 4" (parenthesized_expression "(uVar11 & 0xff)" ( (binary_expression "uVar11 & 0xff" identifier & number_literal) )) * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return piVar18;" return identifier ;) })) (do_statement "do {\n    pcVar5 = pcVar5 + -1;\n    pcVar16 = param_3 + (1 - (int)pcVar5);\n  } while (*pcVar5 != '%');" do (compound_statement "{\n    pcVar5 = pcVar5 + -1;\n    pcVar16 = param_3 + (1 - (int)pcVar5);\n  }" { (expression_statement "pcVar5 = pcVar5 + -1;" (assignment_expression "pcVar5 = pcVar5 + -1" identifier = (binary_expression "pcVar5 + -1" identifier + number_literal)) ;) (expression_statement "pcVar16 = param_3 + (1 - (int)pcVar5);" (assignment_expression "pcVar16 = param_3 + (1 - (int)pcVar5)" identifier = (binary_expression "param_3 + (1 - (int)pcVar5)" identifier + (parenthesized_expression "(1 - (int)pcVar5)" ( (binary_expression "1 - (int)pcVar5" number_literal - (cast_expression "(int)pcVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) }) while (parenthesized_expression "(*pcVar5 != '%')" ( (binary_expression "*pcVar5 != '%'" (pointer_expression "*pcVar5" * identifier) != (char_literal "'%'" ' character ')) )) ;) (expression_statement "pcVar12 = pcVar14;" (assignment_expression "pcVar12 = pcVar14" identifier = identifier) ;) (if_statement "if ((int)pcVar14 < 0) {\n    pcVar12 = (char *)0x0;\n  }" if (parenthesized_expression "((int)pcVar14 < 0)" ( (binary_expression "(int)pcVar14 < 0" (cast_expression "(int)pcVar14" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    pcVar12 = (char *)0x0;\n  }" { (expression_statement "pcVar12 = (char *)0x0;" (assignment_expression "pcVar12 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "pcVar13 = pcVar16;" (assignment_expression "pcVar13 = pcVar16" identifier = identifier) ;) (if_statement "if (pcVar16 <= pcVar12) {\n    pcVar13 = pcVar12;\n  }" if (parenthesized_expression "(pcVar16 <= pcVar12)" ( (binary_expression "pcVar16 <= pcVar12" identifier <= identifier) )) (compound_statement "{\n    pcVar13 = pcVar12;\n  }" { (expression_statement "pcVar13 = pcVar12;" (assignment_expression "pcVar13 = pcVar12" identifier = identifier) ;) })) (if_statement "if ((char *)(param_2 - (int)piVar18) <= pcVar13) {\nLAB_00023ff8:\n    piVar18 = (int *)0x0;\n    goto LAB_00023ffc;\n  }" if (parenthesized_expression "((char *)(param_2 - (int)piVar18) <= pcVar13)" ( (binary_expression "(char *)(param_2 - (int)piVar18) <= pcVar13" (cast_expression "(char *)(param_2 - (int)piVar18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 - (int)piVar18)" ( (binary_expression "param_2 - (int)piVar18" identifier - (cast_expression "(int)piVar18" ( (type_descriptor "int" primitive_type) ) identifier)) ))) <= identifier) )) (compound_statement "{\nLAB_00023ff8:\n    piVar18 = (int *)0x0;\n    goto LAB_00023ffc;\n  }" { (labeled_statement "LAB_00023ff8:\n    piVar18 = (int *)0x0;" statement_identifier : (expression_statement "piVar18 = (int *)0x0;" (assignment_expression "piVar18 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (goto_statement "goto LAB_00023ffc;" goto statement_identifier ;) })) (if_statement "if (param_1 == (char *)0x0) {\n    piVar18 = (int *)((int)piVar18 + (int)pcVar13);\n  }\n  else {\n    pcVar15 = param_1;\n    if (pcVar16 < pcVar12) {\n      pcVar15 = param_1 + ((int)pcVar14 - (int)pcVar16);\n      if (iVar6 == 0x30) {\n        (*(code *)PTR_memset_00049524)(param_1,0x30);\n      }\n      else {\n        (*(code *)PTR_memset_00049524)(param_1,0x20);\n      }\n    }\n    if (cVar9 == '\0') {\n      (*(code *)PTR_memcpy_00049600)(pcVar15,pcVar5,pcVar16);\n    }\n    else {\n      (*pcVar10)(pcVar15,pcVar5,pcVar16);\n    }\n    param_1 = pcVar15 + (int)pcVar16;\n    piVar18 = (int *)((int)piVar18 + (int)pcVar13);\n  }" if (parenthesized_expression "(param_1 == (char *)0x0)" ( (binary_expression "param_1 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    piVar18 = (int *)((int)piVar18 + (int)pcVar13);\n  }" { (expression_statement "piVar18 = (int *)((int)piVar18 + (int)pcVar13);" (assignment_expression "piVar18 = (int *)((int)piVar18 + (int)pcVar13)" identifier = (cast_expression "(int *)((int)piVar18 + (int)pcVar13)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar18 + (int)pcVar13)" ( (binary_expression "(int)piVar18 + (int)pcVar13" (cast_expression "(int)piVar18" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pcVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) }) (else_clause "else {\n    pcVar15 = param_1;\n    if (pcVar16 < pcVar12) {\n      pcVar15 = param_1 + ((int)pcVar14 - (int)pcVar16);\n      if (iVar6 == 0x30) {\n        (*(code *)PTR_memset_00049524)(param_1,0x30);\n      }\n      else {\n        (*(code *)PTR_memset_00049524)(param_1,0x20);\n      }\n    }\n    if (cVar9 == '\0') {\n      (*(code *)PTR_memcpy_00049600)(pcVar15,pcVar5,pcVar16);\n    }\n    else {\n      (*pcVar10)(pcVar15,pcVar5,pcVar16);\n    }\n    param_1 = pcVar15 + (int)pcVar16;\n    piVar18 = (int *)((int)piVar18 + (int)pcVar13);\n  }" else (compound_statement "{\n    pcVar15 = param_1;\n    if (pcVar16 < pcVar12) {\n      pcVar15 = param_1 + ((int)pcVar14 - (int)pcVar16);\n      if (iVar6 == 0x30) {\n        (*(code *)PTR_memset_00049524)(param_1,0x30);\n      }\n      else {\n        (*(code *)PTR_memset_00049524)(param_1,0x20);\n      }\n    }\n    if (cVar9 == '\0') {\n      (*(code *)PTR_memcpy_00049600)(pcVar15,pcVar5,pcVar16);\n    }\n    else {\n      (*pcVar10)(pcVar15,pcVar5,pcVar16);\n    }\n    param_1 = pcVar15 + (int)pcVar16;\n    piVar18 = (int *)((int)piVar18 + (int)pcVar13);\n  }" { (expression_statement "pcVar15 = param_1;" (assignment_expression "pcVar15 = param_1" identifier = identifier) ;) (if_statement "if (pcVar16 < pcVar12) {\n      pcVar15 = param_1 + ((int)pcVar14 - (int)pcVar16);\n      if (iVar6 == 0x30) {\n        (*(code *)PTR_memset_00049524)(param_1,0x30);\n      }\n      else {\n        (*(code *)PTR_memset_00049524)(param_1,0x20);\n      }\n    }" if (parenthesized_expression "(pcVar16 < pcVar12)" ( (binary_expression "pcVar16 < pcVar12" identifier < identifier) )) (compound_statement "{\n      pcVar15 = param_1 + ((int)pcVar14 - (int)pcVar16);\n      if (iVar6 == 0x30) {\n        (*(code *)PTR_memset_00049524)(param_1,0x30);\n      }\n      else {\n        (*(code *)PTR_memset_00049524)(param_1,0x20);\n      }\n    }" { (expression_statement "pcVar15 = param_1 + ((int)pcVar14 - (int)pcVar16);" (assignment_expression "pcVar15 = param_1 + ((int)pcVar14 - (int)pcVar16)" identifier = (binary_expression "param_1 + ((int)pcVar14 - (int)pcVar16)" identifier + (parenthesized_expression "((int)pcVar14 - (int)pcVar16)" ( (binary_expression "(int)pcVar14 - (int)pcVar16" (cast_expression "(int)pcVar14" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (iVar6 == 0x30) {\n        (*(code *)PTR_memset_00049524)(param_1,0x30);\n      }\n      else {\n        (*(code *)PTR_memset_00049524)(param_1,0x20);\n      }" if (parenthesized_expression "(iVar6 == 0x30)" ( (binary_expression "iVar6 == 0x30" identifier == number_literal) )) (compound_statement "{\n        (*(code *)PTR_memset_00049524)(param_1,0x30);\n      }" { (expression_statement "(*(code *)PTR_memset_00049524)(param_1,0x30);" (call_expression "(*(code *)PTR_memset_00049524)(param_1,0x30)" (parenthesized_expression "(*(code *)PTR_memset_00049524)" ( (pointer_expression "*(code *)PTR_memset_00049524" * (cast_expression "(code *)PTR_memset_00049524" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,0x30)" ( identifier , number_literal ))) ;) }) (else_clause "else {\n        (*(code *)PTR_memset_00049524)(param_1,0x20);\n      }" else (compound_statement "{\n        (*(code *)PTR_memset_00049524)(param_1,0x20);\n      }" { (expression_statement "(*(code *)PTR_memset_00049524)(param_1,0x20);" (call_expression "(*(code *)PTR_memset_00049524)(param_1,0x20)" (parenthesized_expression "(*(code *)PTR_memset_00049524)" ( (pointer_expression "*(code *)PTR_memset_00049524" * (cast_expression "(code *)PTR_memset_00049524" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,0x20)" ( identifier , number_literal ))) ;) }))) })) (if_statement "if (cVar9 == '\0') {\n      (*(code *)PTR_memcpy_00049600)(pcVar15,pcVar5,pcVar16);\n    }\n    else {\n      (*pcVar10)(pcVar15,pcVar5,pcVar16);\n    }" if (parenthesized_expression "(cVar9 == '\0')" ( (binary_expression "cVar9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      (*(code *)PTR_memcpy_00049600)(pcVar15,pcVar5,pcVar16);\n    }" { (expression_statement "(*(code *)PTR_memcpy_00049600)(pcVar15,pcVar5,pcVar16);" (call_expression "(*(code *)PTR_memcpy_00049600)(pcVar15,pcVar5,pcVar16)" (parenthesized_expression "(*(code *)PTR_memcpy_00049600)" ( (pointer_expression "*(code *)PTR_memcpy_00049600" * (cast_expression "(code *)PTR_memcpy_00049600" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar15,pcVar5,pcVar16)" ( identifier , identifier , identifier ))) ;) }) (else_clause "else {\n      (*pcVar10)(pcVar15,pcVar5,pcVar16);\n    }" else (compound_statement "{\n      (*pcVar10)(pcVar15,pcVar5,pcVar16);\n    }" { (expression_statement "(*pcVar10)(pcVar15,pcVar5,pcVar16);" (call_expression "(*pcVar10)(pcVar15,pcVar5,pcVar16)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(pcVar15,pcVar5,pcVar16)" ( identifier , identifier , identifier ))) ;) }))) (expression_statement "param_1 = pcVar15 + (int)pcVar16;" (assignment_expression "param_1 = pcVar15 + (int)pcVar16" identifier = (binary_expression "pcVar15 + (int)pcVar16" identifier + (cast_expression "(int)pcVar16" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "piVar18 = (int *)((int)piVar18 + (int)pcVar13);" (assignment_expression "piVar18 = (int *)((int)piVar18 + (int)pcVar13)" identifier = (cast_expression "(int *)((int)piVar18 + (int)pcVar13)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar18 + (int)pcVar13)" ( (binary_expression "(int)piVar18 + (int)pcVar13" (cast_expression "(int)piVar18" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pcVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) }))) (labeled_statement "LAB_00023fc0:\n  cVar9 = param_3[1];" statement_identifier : (expression_statement "cVar9 = param_3[1];" (assignment_expression "cVar9 = param_3[1]" identifier = (subscript_expression "param_3[1]" identifier [ number_literal ])) ;)) (expression_statement "param_3 = param_3 + 1;" (assignment_expression "param_3 = param_3 + 1" identifier = (binary_expression "param_3 + 1" identifier + number_literal)) ;) (if_statement "if (cVar9 == '\0') goto LAB_00023fcc;" if (parenthesized_expression "(cVar9 == '\0')" ( (binary_expression "cVar9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00023fcc;" goto statement_identifier ;)) (goto_statement "goto LAB_00023f94;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression LIT < (binary_expression IDENT - IDENT))) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) = IDENT) ;) })) (expression_statement (assignment_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , LIT , (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT , IDENT , LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) ))) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) != (char_literal ' character ')) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) })) (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) == LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) ))) )) ))) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) != (char_literal ' character ')) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) })) (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) })))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) })) (return_statement return IDENT ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) , (binary_expression IDENT != LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) }) while (parenthesized_expression ( BOOL )) ;)) }))) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) < LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) || (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) < LIT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * IDENT) + LIT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT < LIT) )) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) * LIT)) + LIT) ))))) )))) )) (argument_list ( ))))) ;) (return_statement return IDENT ;) })) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' character ')) )) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) <= IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT ))) ;) }))) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })))
(function_definition "int * FUN_00023eb8(char *param_1,int param_2,char *param_3,undefined4 param_4,char param_5)\n\n{\n  char cVar1;\n  undefined *puVar2;\n  int iVar3;\n  char cVar9;\n  uint uVar4;\n  char *pcVar5;\n  int iVar6;\n  int iVar7;\n  byte *pbVar8;\n  code *pcVar10;\n  uint uVar11;\n  char *pcVar12;\n  char *pcVar13;\n  char *pcVar14;\n  char *pcVar15;\n  char *pcVar16;\n  int *piVar17;\n  int *piVar18;\n  int iVar19;\n  undefined *puVar20;\n  \n  puVar2 = PTR___stack_chk_guard_000495fc;\n  puVar20 = PTR_LAB_00049218;\n  iVar3 = *(int *)PTR___stack_chk_guard_000495fc;\n  cVar9 = *param_3;\n  piVar18 = (int *)0x0;\n  if (cVar9 == '\0') {\nLAB_00023fcc:\n    if ((param_1 != (char *)0x0) && (param_2 != 0)) {\n      *param_1 = '\0';\n    }\nLAB_00023ffc:\n    if (iVar3 == *(int *)puVar2) {\n      return piVar18;\n    }\n    puVar20 = PTR___stack_chk_fail_000495d0;\n    (*(code *)PTR___stack_chk_fail_000495d0)();\n    piVar17 = *(int **)(puVar20 + 0x23cfc);\n    iVar3 = *piVar17;\n    piVar18 = (int *)FUN_00023eb8();\n    if (iVar3 == *piVar17) {\n      return piVar18;\n    }\n    pcVar10 = *(code **)(puVar20 + 0x23cd0);\n    (*pcVar10)();\n    if (iVar3 != 0) {\n      iVar6 = (**(code **)(pcVar10 + 0x23b58))();\n      if (((iVar6 != 0) && (iVar19 = iVar6 + 1, 6 < iVar19 - iVar3)) &&\n         (iVar7 = (**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7), iVar7 == 0)) {\n        iVar3 = (**(code **)(pcVar10 + 0x23b10))(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3);\n        if (iVar3 != 0) {\n          **(int **)(pcVar10 + 0x23934) = iVar19;\n          piVar18 = *(int **)(pcVar10 + 0x23b68);\n          *piVar18 = iVar19;\n          return piVar18;\n        }\n        iVar3 = iVar6 + 4;\n        **(int **)(pcVar10 + 0x23b24) = iVar3;\n      }\n      **(int **)(pcVar10 + 0x23934) = iVar3;\n      piVar18 = *(int **)(pcVar10 + 0x23b68);\n      *piVar18 = iVar3;\n      return piVar18;\n    }\n    iVar3 = 1;\n    piVar18 = (int *)(*(int *)(pcVar10 + 0x23898) + 0x6990);\n    (**(code **)(pcVar10 + 0x23c24))(piVar18,1,0x37,**(undefined4 **)(pcVar10 + 0x23ca4));\n    pcVar10 = *(code **)(pcVar10 + 0x23b08);\n    (*pcVar10)();\n    *piVar18 = 0;\n    piVar18[1] = 0;\n    piVar18[2] = 0;\n    piVar18[3] = 0;\n    piVar18[4] = 0;\n    piVar18[5] = 0;\n    piVar18[6] = 0;\n    piVar18[7] = 0;\n    piVar18[8] = 0;\n    piVar18[9] = 0;\n    piVar18[10] = 0;\n    piVar18[0xb] = 0;\n    if (iVar3 == 10) {\n      pcVar10 = *(code **)(pcVar10 + 0x239d8);\n      (*pcVar10)();\n      piVar17 = (int *)(**(code **)(pcVar10 + 0x23abc))(0,piVar18,5);\n      if (piVar18 == piVar17) {\n        pbVar8 = (byte *)locale_charset();\n        if ((*pbVar8 & 0xdf) == 0x55) {\n          if (((((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46)) && (pbVar8[3] == 0x2d)\n              ) && ((pbVar8[4] == 0x38 && (pbVar8[5] == 0)))) {\n            if (*(char *)piVar17 != '`') {\n              return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d8);\n            }\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e4);\n          }\n        }\n        else if ((((((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&\n                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))) &&\n                 (pbVar8[5] == 0x33)) && ((pbVar8[6] == 0x30 && (pbVar8[7] == 0)))) {\n          if (*(char *)piVar17 != '`') {\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69dc);\n          }\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e0);\n        }\n        if (iVar3 != 9) {\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e8);\n        }\n        piVar17 = (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d4);\n      }\n      return piVar17;\n    }\n    *piVar18 = iVar3;\n    return piVar18;\n  }\n  pcVar10 = (code *)(PTR_LAB_00049280 + 0x3e34);\nLAB_00023f94:\n  if (cVar9 == '%') {\n    iVar6 = 0;\n    cVar9 = param_5;\nLAB_0002406c:\n    do {\n      param_3 = param_3 + 1;\n      cVar1 = *param_3;\n      while (uVar11 = (uint)cVar1, uVar11 != 0x30) {\n        if (0x30 < (int)uVar11) {\n          if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }\n          if (uVar11 == 0x5f) {\n            iVar6 = 0x5f;\n            goto LAB_0002406c;\n          }\nLAB_000240c4:\n          pcVar14 = (char *)0xffffffff;\n          if (9 < uVar11 - 0x30) goto LAB_000240d4;\n          pcVar14 = (char *)0x0;\n          pcVar5 = param_3;\n          goto LAB_00024154;\n        }\n        if (uVar11 != 0x23) {\n          if (uVar11 != 0x2d) goto LAB_000240c4;\n          iVar6 = 0x2d;\n          goto LAB_0002406c;\n        }\n        param_3 = param_3 + 1;\n        cVar1 = *param_3;\n      }\n      iVar6 = 0x30;\n    } while( true );\n  }\n  if ((uint)(param_2 - (int)piVar18) < 2) goto LAB_00023ff8;\n  if (param_1 != (char *)0x0) {\n    *param_1 = cVar9;\n    param_1 = param_1 + 1;\n  }\n  piVar18 = (int *)((int)piVar18 + 1);\n  goto LAB_00023fc0;\nLAB_00024154:\n  do {\n    uVar11 = (uint)pcVar5[1];\n    param_3 = pcVar5 + 1;\n    uVar4 = uVar11 - 0x30;\n    if (((int)pcVar14 < 0xccccccd) && ((pcVar14 != (char *)0xccccccc || (*pcVar5 < 0x38)))) {\n      pcVar14 = (char *)(*pcVar5 + -0x30 + (int)pcVar14 * 10);\n    }\n    else {\n      if (9 < uVar4) {\n        pcVar14 = (char *)0x7fffffff;\n        break;\n      }\n      uVar11 = (uint)pcVar5[2];\n      pcVar14 = (char *)0x7fffffff;\n      param_3 = pcVar5 + 2;\n      uVar4 = uVar11 - 0x30;\n    }\n    pcVar5 = param_3;\n  } while (uVar4 < 10);\nLAB_000240d4:\n  if ((uVar11 == 0x45) || (uVar11 == 0x4f)) {\n    uVar11 = (uint)param_3[1];\n    param_3 = param_3 + 1;\n  }\n  pcVar5 = param_3;\n  if ((uVar11 & 0xff) < 0x7b) {\n                    \n                    \n    piVar18 = (int *)(*(code *)(&_gp_1 + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)))();\n    return piVar18;\n  }\n  do {\n    pcVar5 = pcVar5 + -1;\n    pcVar16 = param_3 + (1 - (int)pcVar5);\n  } while (*pcVar5 != '%');\n  pcVar12 = pcVar14;\n  if ((int)pcVar14 < 0) {\n    pcVar12 = (char *)0x0;\n  }\n  pcVar13 = pcVar16;\n  if (pcVar16 <= pcVar12) {\n    pcVar13 = pcVar12;\n  }\n  if ((char *)(param_2 - (int)piVar18) <= pcVar13) {\nLAB_00023ff8:\n    piVar18 = (int *)0x0;\n    goto LAB_00023ffc;\n  }\n  if (param_1 == (char *)0x0) {\n    piVar18 = (int *)((int)piVar18 + (int)pcVar13);\n  }\n  else {\n    pcVar15 = param_1;\n    if (pcVar16 < pcVar12) {\n      pcVar15 = param_1 + ((int)pcVar14 - (int)pcVar16);\n      if (iVar6 == 0x30) {\n        (*(code *)PTR_memset_00049524)(param_1,0x30);\n      }\n      else {\n        (*(code *)PTR_memset_00049524)(param_1,0x20);\n      }\n    }\n    if (cVar9 == '\0') {\n      (*(code *)PTR_memcpy_00049600)(pcVar15,pcVar5,pcVar16);\n    }\n    else {\n      (*pcVar10)(pcVar15,pcVar5,pcVar16);\n    }\n    param_1 = pcVar15 + (int)pcVar16;\n    piVar18 = (int *)((int)piVar18 + (int)pcVar13);\n  }\nLAB_00023fc0:\n  cVar9 = param_3[1];\n  param_3 = param_3 + 1;\n  if (cVar9 == '\0') goto LAB_00023fcc;\n  goto LAB_00023f94;\n}" (primitive_type "int") (pointer_declarator "* FUN_00023eb8(char *param_1,int param_2,char *param_3,undefined4 param_4,char param_5)" (* "*") (function_declarator "FUN_00023eb8(char *param_1,int param_2,char *param_3,undefined4 param_4,char param_5)" (identifier "FUN_00023eb8") (parameter_list "(char *param_1,int param_2,char *param_3,undefined4 param_4,char param_5)" (( "(") (parameter_declaration "char *param_1" (primitive_type "char") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "char *param_3" (primitive_type "char") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) (, ",") (parameter_declaration "char param_5" (primitive_type "char") (identifier "param_5")) () ")")))) (compound_statement "{\n  char cVar1;\n  undefined *puVar2;\n  int iVar3;\n  char cVar9;\n  uint uVar4;\n  char *pcVar5;\n  int iVar6;\n  int iVar7;\n  byte *pbVar8;\n  code *pcVar10;\n  uint uVar11;\n  char *pcVar12;\n  char *pcVar13;\n  char *pcVar14;\n  char *pcVar15;\n  char *pcVar16;\n  int *piVar17;\n  int *piVar18;\n  int iVar19;\n  undefined *puVar20;\n  \n  puVar2 = PTR___stack_chk_guard_000495fc;\n  puVar20 = PTR_LAB_00049218;\n  iVar3 = *(int *)PTR___stack_chk_guard_000495fc;\n  cVar9 = *param_3;\n  piVar18 = (int *)0x0;\n  if (cVar9 == '\0') {\nLAB_00023fcc:\n    if ((param_1 != (char *)0x0) && (param_2 != 0)) {\n      *param_1 = '\0';\n    }\nLAB_00023ffc:\n    if (iVar3 == *(int *)puVar2) {\n      return piVar18;\n    }\n    puVar20 = PTR___stack_chk_fail_000495d0;\n    (*(code *)PTR___stack_chk_fail_000495d0)();\n    piVar17 = *(int **)(puVar20 + 0x23cfc);\n    iVar3 = *piVar17;\n    piVar18 = (int *)FUN_00023eb8();\n    if (iVar3 == *piVar17) {\n      return piVar18;\n    }\n    pcVar10 = *(code **)(puVar20 + 0x23cd0);\n    (*pcVar10)();\n    if (iVar3 != 0) {\n      iVar6 = (**(code **)(pcVar10 + 0x23b58))();\n      if (((iVar6 != 0) && (iVar19 = iVar6 + 1, 6 < iVar19 - iVar3)) &&\n         (iVar7 = (**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7), iVar7 == 0)) {\n        iVar3 = (**(code **)(pcVar10 + 0x23b10))(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3);\n        if (iVar3 != 0) {\n          **(int **)(pcVar10 + 0x23934) = iVar19;\n          piVar18 = *(int **)(pcVar10 + 0x23b68);\n          *piVar18 = iVar19;\n          return piVar18;\n        }\n        iVar3 = iVar6 + 4;\n        **(int **)(pcVar10 + 0x23b24) = iVar3;\n      }\n      **(int **)(pcVar10 + 0x23934) = iVar3;\n      piVar18 = *(int **)(pcVar10 + 0x23b68);\n      *piVar18 = iVar3;\n      return piVar18;\n    }\n    iVar3 = 1;\n    piVar18 = (int *)(*(int *)(pcVar10 + 0x23898) + 0x6990);\n    (**(code **)(pcVar10 + 0x23c24))(piVar18,1,0x37,**(undefined4 **)(pcVar10 + 0x23ca4));\n    pcVar10 = *(code **)(pcVar10 + 0x23b08);\n    (*pcVar10)();\n    *piVar18 = 0;\n    piVar18[1] = 0;\n    piVar18[2] = 0;\n    piVar18[3] = 0;\n    piVar18[4] = 0;\n    piVar18[5] = 0;\n    piVar18[6] = 0;\n    piVar18[7] = 0;\n    piVar18[8] = 0;\n    piVar18[9] = 0;\n    piVar18[10] = 0;\n    piVar18[0xb] = 0;\n    if (iVar3 == 10) {\n      pcVar10 = *(code **)(pcVar10 + 0x239d8);\n      (*pcVar10)();\n      piVar17 = (int *)(**(code **)(pcVar10 + 0x23abc))(0,piVar18,5);\n      if (piVar18 == piVar17) {\n        pbVar8 = (byte *)locale_charset();\n        if ((*pbVar8 & 0xdf) == 0x55) {\n          if (((((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46)) && (pbVar8[3] == 0x2d)\n              ) && ((pbVar8[4] == 0x38 && (pbVar8[5] == 0)))) {\n            if (*(char *)piVar17 != '`') {\n              return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d8);\n            }\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e4);\n          }\n        }\n        else if ((((((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&\n                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))) &&\n                 (pbVar8[5] == 0x33)) && ((pbVar8[6] == 0x30 && (pbVar8[7] == 0)))) {\n          if (*(char *)piVar17 != '`') {\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69dc);\n          }\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e0);\n        }\n        if (iVar3 != 9) {\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e8);\n        }\n        piVar17 = (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d4);\n      }\n      return piVar17;\n    }\n    *piVar18 = iVar3;\n    return piVar18;\n  }\n  pcVar10 = (code *)(PTR_LAB_00049280 + 0x3e34);\nLAB_00023f94:\n  if (cVar9 == '%') {\n    iVar6 = 0;\n    cVar9 = param_5;\nLAB_0002406c:\n    do {\n      param_3 = param_3 + 1;\n      cVar1 = *param_3;\n      while (uVar11 = (uint)cVar1, uVar11 != 0x30) {\n        if (0x30 < (int)uVar11) {\n          if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }\n          if (uVar11 == 0x5f) {\n            iVar6 = 0x5f;\n            goto LAB_0002406c;\n          }\nLAB_000240c4:\n          pcVar14 = (char *)0xffffffff;\n          if (9 < uVar11 - 0x30) goto LAB_000240d4;\n          pcVar14 = (char *)0x0;\n          pcVar5 = param_3;\n          goto LAB_00024154;\n        }\n        if (uVar11 != 0x23) {\n          if (uVar11 != 0x2d) goto LAB_000240c4;\n          iVar6 = 0x2d;\n          goto LAB_0002406c;\n        }\n        param_3 = param_3 + 1;\n        cVar1 = *param_3;\n      }\n      iVar6 = 0x30;\n    } while( true );\n  }\n  if ((uint)(param_2 - (int)piVar18) < 2) goto LAB_00023ff8;\n  if (param_1 != (char *)0x0) {\n    *param_1 = cVar9;\n    param_1 = param_1 + 1;\n  }\n  piVar18 = (int *)((int)piVar18 + 1);\n  goto LAB_00023fc0;\nLAB_00024154:\n  do {\n    uVar11 = (uint)pcVar5[1];\n    param_3 = pcVar5 + 1;\n    uVar4 = uVar11 - 0x30;\n    if (((int)pcVar14 < 0xccccccd) && ((pcVar14 != (char *)0xccccccc || (*pcVar5 < 0x38)))) {\n      pcVar14 = (char *)(*pcVar5 + -0x30 + (int)pcVar14 * 10);\n    }\n    else {\n      if (9 < uVar4) {\n        pcVar14 = (char *)0x7fffffff;\n        break;\n      }\n      uVar11 = (uint)pcVar5[2];\n      pcVar14 = (char *)0x7fffffff;\n      param_3 = pcVar5 + 2;\n      uVar4 = uVar11 - 0x30;\n    }\n    pcVar5 = param_3;\n  } while (uVar4 < 10);\nLAB_000240d4:\n  if ((uVar11 == 0x45) || (uVar11 == 0x4f)) {\n    uVar11 = (uint)param_3[1];\n    param_3 = param_3 + 1;\n  }\n  pcVar5 = param_3;\n  if ((uVar11 & 0xff) < 0x7b) {\n                    \n                    \n    piVar18 = (int *)(*(code *)(&_gp_1 + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)))();\n    return piVar18;\n  }\n  do {\n    pcVar5 = pcVar5 + -1;\n    pcVar16 = param_3 + (1 - (int)pcVar5);\n  } while (*pcVar5 != '%');\n  pcVar12 = pcVar14;\n  if ((int)pcVar14 < 0) {\n    pcVar12 = (char *)0x0;\n  }\n  pcVar13 = pcVar16;\n  if (pcVar16 <= pcVar12) {\n    pcVar13 = pcVar12;\n  }\n  if ((char *)(param_2 - (int)piVar18) <= pcVar13) {\nLAB_00023ff8:\n    piVar18 = (int *)0x0;\n    goto LAB_00023ffc;\n  }\n  if (param_1 == (char *)0x0) {\n    piVar18 = (int *)((int)piVar18 + (int)pcVar13);\n  }\n  else {\n    pcVar15 = param_1;\n    if (pcVar16 < pcVar12) {\n      pcVar15 = param_1 + ((int)pcVar14 - (int)pcVar16);\n      if (iVar6 == 0x30) {\n        (*(code *)PTR_memset_00049524)(param_1,0x30);\n      }\n      else {\n        (*(code *)PTR_memset_00049524)(param_1,0x20);\n      }\n    }\n    if (cVar9 == '\0') {\n      (*(code *)PTR_memcpy_00049600)(pcVar15,pcVar5,pcVar16);\n    }\n    else {\n      (*pcVar10)(pcVar15,pcVar5,pcVar16);\n    }\n    param_1 = pcVar15 + (int)pcVar16;\n    piVar18 = (int *)((int)piVar18 + (int)pcVar13);\n  }\nLAB_00023fc0:\n  cVar9 = param_3[1];\n  param_3 = param_3 + 1;\n  if (cVar9 == '\0') goto LAB_00023fcc;\n  goto LAB_00023f94;\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "char cVar9;" (primitive_type "char") (identifier "cVar9") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "char *pcVar5;" (primitive_type "char") (pointer_declarator "*pcVar5" (* "*") (identifier "pcVar5")) (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "byte *pbVar8;" (type_identifier "byte") (pointer_declarator "*pbVar8" (* "*") (identifier "pbVar8")) (; ";")) (declaration "code *pcVar10;" (type_identifier "code") (pointer_declarator "*pcVar10" (* "*") (identifier "pcVar10")) (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "char *pcVar12;" (primitive_type "char") (pointer_declarator "*pcVar12" (* "*") (identifier "pcVar12")) (; ";")) (declaration "char *pcVar13;" (primitive_type "char") (pointer_declarator "*pcVar13" (* "*") (identifier "pcVar13")) (; ";")) (declaration "char *pcVar14;" (primitive_type "char") (pointer_declarator "*pcVar14" (* "*") (identifier "pcVar14")) (; ";")) (declaration "char *pcVar15;" (primitive_type "char") (pointer_declarator "*pcVar15" (* "*") (identifier "pcVar15")) (; ";")) (declaration "char *pcVar16;" (primitive_type "char") (pointer_declarator "*pcVar16" (* "*") (identifier "pcVar16")) (; ";")) (declaration "int *piVar17;" (primitive_type "int") (pointer_declarator "*piVar17" (* "*") (identifier "piVar17")) (; ";")) (declaration "int *piVar18;" (primitive_type "int") (pointer_declarator "*piVar18" (* "*") (identifier "piVar18")) (; ";")) (declaration "int iVar19;" (primitive_type "int") (identifier "iVar19") (; ";")) (declaration "undefined *puVar20;" (type_identifier "undefined") (pointer_declarator "*puVar20" (* "*") (identifier "puVar20")) (; ";")) (expression_statement "puVar2 = PTR___stack_chk_guard_000495fc;" (assignment_expression "puVar2 = PTR___stack_chk_guard_000495fc" (identifier "puVar2") (= "=") (identifier "PTR___stack_chk_guard_000495fc")) (; ";")) (expression_statement "puVar20 = PTR_LAB_00049218;" (assignment_expression "puVar20 = PTR_LAB_00049218" (identifier "puVar20") (= "=") (identifier "PTR_LAB_00049218")) (; ";")) (expression_statement "iVar3 = *(int *)PTR___stack_chk_guard_000495fc;" (assignment_expression "iVar3 = *(int *)PTR___stack_chk_guard_000495fc" (identifier "iVar3") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_000495fc" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_000495fc" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_000495fc")))) (; ";")) (expression_statement "cVar9 = *param_3;" (assignment_expression "cVar9 = *param_3" (identifier "cVar9") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (expression_statement "piVar18 = (int *)0x0;" (assignment_expression "piVar18 = (int *)0x0" (identifier "piVar18") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (cVar9 == '\0') {\nLAB_00023fcc:\n    if ((param_1 != (char *)0x0) && (param_2 != 0)) {\n      *param_1 = '\0';\n    }\nLAB_00023ffc:\n    if (iVar3 == *(int *)puVar2) {\n      return piVar18;\n    }\n    puVar20 = PTR___stack_chk_fail_000495d0;\n    (*(code *)PTR___stack_chk_fail_000495d0)();\n    piVar17 = *(int **)(puVar20 + 0x23cfc);\n    iVar3 = *piVar17;\n    piVar18 = (int *)FUN_00023eb8();\n    if (iVar3 == *piVar17) {\n      return piVar18;\n    }\n    pcVar10 = *(code **)(puVar20 + 0x23cd0);\n    (*pcVar10)();\n    if (iVar3 != 0) {\n      iVar6 = (**(code **)(pcVar10 + 0x23b58))();\n      if (((iVar6 != 0) && (iVar19 = iVar6 + 1, 6 < iVar19 - iVar3)) &&\n         (iVar7 = (**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7), iVar7 == 0)) {\n        iVar3 = (**(code **)(pcVar10 + 0x23b10))(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3);\n        if (iVar3 != 0) {\n          **(int **)(pcVar10 + 0x23934) = iVar19;\n          piVar18 = *(int **)(pcVar10 + 0x23b68);\n          *piVar18 = iVar19;\n          return piVar18;\n        }\n        iVar3 = iVar6 + 4;\n        **(int **)(pcVar10 + 0x23b24) = iVar3;\n      }\n      **(int **)(pcVar10 + 0x23934) = iVar3;\n      piVar18 = *(int **)(pcVar10 + 0x23b68);\n      *piVar18 = iVar3;\n      return piVar18;\n    }\n    iVar3 = 1;\n    piVar18 = (int *)(*(int *)(pcVar10 + 0x23898) + 0x6990);\n    (**(code **)(pcVar10 + 0x23c24))(piVar18,1,0x37,**(undefined4 **)(pcVar10 + 0x23ca4));\n    pcVar10 = *(code **)(pcVar10 + 0x23b08);\n    (*pcVar10)();\n    *piVar18 = 0;\n    piVar18[1] = 0;\n    piVar18[2] = 0;\n    piVar18[3] = 0;\n    piVar18[4] = 0;\n    piVar18[5] = 0;\n    piVar18[6] = 0;\n    piVar18[7] = 0;\n    piVar18[8] = 0;\n    piVar18[9] = 0;\n    piVar18[10] = 0;\n    piVar18[0xb] = 0;\n    if (iVar3 == 10) {\n      pcVar10 = *(code **)(pcVar10 + 0x239d8);\n      (*pcVar10)();\n      piVar17 = (int *)(**(code **)(pcVar10 + 0x23abc))(0,piVar18,5);\n      if (piVar18 == piVar17) {\n        pbVar8 = (byte *)locale_charset();\n        if ((*pbVar8 & 0xdf) == 0x55) {\n          if (((((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46)) && (pbVar8[3] == 0x2d)\n              ) && ((pbVar8[4] == 0x38 && (pbVar8[5] == 0)))) {\n            if (*(char *)piVar17 != '`') {\n              return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d8);\n            }\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e4);\n          }\n        }\n        else if ((((((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&\n                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))) &&\n                 (pbVar8[5] == 0x33)) && ((pbVar8[6] == 0x30 && (pbVar8[7] == 0)))) {\n          if (*(char *)piVar17 != '`') {\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69dc);\n          }\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e0);\n        }\n        if (iVar3 != 9) {\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e8);\n        }\n        piVar17 = (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d4);\n      }\n      return piVar17;\n    }\n    *piVar18 = iVar3;\n    return piVar18;\n  }" (if "if") (parenthesized_expression "(cVar9 == '\0')" (( "(") (binary_expression "cVar9 == '\0'" (identifier "cVar9") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\nLAB_00023fcc:\n    if ((param_1 != (char *)0x0) && (param_2 != 0)) {\n      *param_1 = '\0';\n    }\nLAB_00023ffc:\n    if (iVar3 == *(int *)puVar2) {\n      return piVar18;\n    }\n    puVar20 = PTR___stack_chk_fail_000495d0;\n    (*(code *)PTR___stack_chk_fail_000495d0)();\n    piVar17 = *(int **)(puVar20 + 0x23cfc);\n    iVar3 = *piVar17;\n    piVar18 = (int *)FUN_00023eb8();\n    if (iVar3 == *piVar17) {\n      return piVar18;\n    }\n    pcVar10 = *(code **)(puVar20 + 0x23cd0);\n    (*pcVar10)();\n    if (iVar3 != 0) {\n      iVar6 = (**(code **)(pcVar10 + 0x23b58))();\n      if (((iVar6 != 0) && (iVar19 = iVar6 + 1, 6 < iVar19 - iVar3)) &&\n         (iVar7 = (**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7), iVar7 == 0)) {\n        iVar3 = (**(code **)(pcVar10 + 0x23b10))(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3);\n        if (iVar3 != 0) {\n          **(int **)(pcVar10 + 0x23934) = iVar19;\n          piVar18 = *(int **)(pcVar10 + 0x23b68);\n          *piVar18 = iVar19;\n          return piVar18;\n        }\n        iVar3 = iVar6 + 4;\n        **(int **)(pcVar10 + 0x23b24) = iVar3;\n      }\n      **(int **)(pcVar10 + 0x23934) = iVar3;\n      piVar18 = *(int **)(pcVar10 + 0x23b68);\n      *piVar18 = iVar3;\n      return piVar18;\n    }\n    iVar3 = 1;\n    piVar18 = (int *)(*(int *)(pcVar10 + 0x23898) + 0x6990);\n    (**(code **)(pcVar10 + 0x23c24))(piVar18,1,0x37,**(undefined4 **)(pcVar10 + 0x23ca4));\n    pcVar10 = *(code **)(pcVar10 + 0x23b08);\n    (*pcVar10)();\n    *piVar18 = 0;\n    piVar18[1] = 0;\n    piVar18[2] = 0;\n    piVar18[3] = 0;\n    piVar18[4] = 0;\n    piVar18[5] = 0;\n    piVar18[6] = 0;\n    piVar18[7] = 0;\n    piVar18[8] = 0;\n    piVar18[9] = 0;\n    piVar18[10] = 0;\n    piVar18[0xb] = 0;\n    if (iVar3 == 10) {\n      pcVar10 = *(code **)(pcVar10 + 0x239d8);\n      (*pcVar10)();\n      piVar17 = (int *)(**(code **)(pcVar10 + 0x23abc))(0,piVar18,5);\n      if (piVar18 == piVar17) {\n        pbVar8 = (byte *)locale_charset();\n        if ((*pbVar8 & 0xdf) == 0x55) {\n          if (((((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46)) && (pbVar8[3] == 0x2d)\n              ) && ((pbVar8[4] == 0x38 && (pbVar8[5] == 0)))) {\n            if (*(char *)piVar17 != '`') {\n              return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d8);\n            }\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e4);\n          }\n        }\n        else if ((((((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&\n                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))) &&\n                 (pbVar8[5] == 0x33)) && ((pbVar8[6] == 0x30 && (pbVar8[7] == 0)))) {\n          if (*(char *)piVar17 != '`') {\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69dc);\n          }\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e0);\n        }\n        if (iVar3 != 9) {\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e8);\n        }\n        piVar17 = (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d4);\n      }\n      return piVar17;\n    }\n    *piVar18 = iVar3;\n    return piVar18;\n  }" ({ "{") (labeled_statement "LAB_00023fcc:\n    if ((param_1 != (char *)0x0) && (param_2 != 0)) {\n      *param_1 = '\0';\n    }" (statement_identifier "LAB_00023fcc") (: ":") (if_statement "if ((param_1 != (char *)0x0) && (param_2 != 0)) {\n      *param_1 = '\0';\n    }" (if "if") (parenthesized_expression "((param_1 != (char *)0x0) && (param_2 != 0))" (( "(") (binary_expression "(param_1 != (char *)0x0) && (param_2 != 0)" (parenthesized_expression "(param_1 != (char *)0x0)" (( "(") (binary_expression "param_1 != (char *)0x0" (identifier "param_1") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(param_2 != 0)" (( "(") (binary_expression "param_2 != 0" (identifier "param_2") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      *param_1 = '\0';\n    }" ({ "{") (expression_statement "*param_1 = '\0';" (assignment_expression "*param_1 = '\0'" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (} "}")))) (labeled_statement "LAB_00023ffc:\n    if (iVar3 == *(int *)puVar2) {\n      return piVar18;\n    }" (statement_identifier "LAB_00023ffc") (: ":") (if_statement "if (iVar3 == *(int *)puVar2) {\n      return piVar18;\n    }" (if "if") (parenthesized_expression "(iVar3 == *(int *)puVar2)" (( "(") (binary_expression "iVar3 == *(int *)puVar2" (identifier "iVar3") (== "==") (pointer_expression "*(int *)puVar2" (* "*") (cast_expression "(int *)puVar2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2")))) () ")")) (compound_statement "{\n      return piVar18;\n    }" ({ "{") (return_statement "return piVar18;" (return "return") (identifier "piVar18") (; ";")) (} "}")))) (expression_statement "puVar20 = PTR___stack_chk_fail_000495d0;" (assignment_expression "puVar20 = PTR___stack_chk_fail_000495d0" (identifier "puVar20") (= "=") (identifier "PTR___stack_chk_fail_000495d0")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_000495d0)();" (call_expression "(*(code *)PTR___stack_chk_fail_000495d0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000495d0)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_000495d0" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_000495d0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_000495d0"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar17 = *(int **)(puVar20 + 0x23cfc);" (assignment_expression "piVar17 = *(int **)(puVar20 + 0x23cfc)" (identifier "piVar17") (= "=") (pointer_expression "*(int **)(puVar20 + 0x23cfc)" (* "*") (cast_expression "(int **)(puVar20 + 0x23cfc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + 0x23cfc)" (( "(") (binary_expression "puVar20 + 0x23cfc" (identifier "puVar20") (+ "+") (number_literal "0x23cfc")) () ")"))))) (; ";")) (expression_statement "iVar3 = *piVar17;" (assignment_expression "iVar3 = *piVar17" (identifier "iVar3") (= "=") (pointer_expression "*piVar17" (* "*") (identifier "piVar17"))) (; ";")) (expression_statement "piVar18 = (int *)FUN_00023eb8();" (assignment_expression "piVar18 = (int *)FUN_00023eb8()" (identifier "piVar18") (= "=") (cast_expression "(int *)FUN_00023eb8()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00023eb8()" (identifier "FUN_00023eb8") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (iVar3 == *piVar17) {\n      return piVar18;\n    }" (if "if") (parenthesized_expression "(iVar3 == *piVar17)" (( "(") (binary_expression "iVar3 == *piVar17" (identifier "iVar3") (== "==") (pointer_expression "*piVar17" (* "*") (identifier "piVar17"))) () ")")) (compound_statement "{\n      return piVar18;\n    }" ({ "{") (return_statement "return piVar18;" (return "return") (identifier "piVar18") (; ";")) (} "}"))) (expression_statement "pcVar10 = *(code **)(puVar20 + 0x23cd0);" (assignment_expression "pcVar10 = *(code **)(puVar20 + 0x23cd0)" (identifier "pcVar10") (= "=") (pointer_expression "*(code **)(puVar20 + 0x23cd0)" (* "*") (cast_expression "(code **)(puVar20 + 0x23cd0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + 0x23cd0)" (( "(") (binary_expression "puVar20 + 0x23cd0" (identifier "puVar20") (+ "+") (number_literal "0x23cd0")) () ")"))))) (; ";")) (expression_statement "(*pcVar10)();" (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" (( "(") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (iVar3 != 0) {\n      iVar6 = (**(code **)(pcVar10 + 0x23b58))();\n      if (((iVar6 != 0) && (iVar19 = iVar6 + 1, 6 < iVar19 - iVar3)) &&\n         (iVar7 = (**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7), iVar7 == 0)) {\n        iVar3 = (**(code **)(pcVar10 + 0x23b10))(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3);\n        if (iVar3 != 0) {\n          **(int **)(pcVar10 + 0x23934) = iVar19;\n          piVar18 = *(int **)(pcVar10 + 0x23b68);\n          *piVar18 = iVar19;\n          return piVar18;\n        }\n        iVar3 = iVar6 + 4;\n        **(int **)(pcVar10 + 0x23b24) = iVar3;\n      }\n      **(int **)(pcVar10 + 0x23934) = iVar3;\n      piVar18 = *(int **)(pcVar10 + 0x23b68);\n      *piVar18 = iVar3;\n      return piVar18;\n    }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar6 = (**(code **)(pcVar10 + 0x23b58))();\n      if (((iVar6 != 0) && (iVar19 = iVar6 + 1, 6 < iVar19 - iVar3)) &&\n         (iVar7 = (**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7), iVar7 == 0)) {\n        iVar3 = (**(code **)(pcVar10 + 0x23b10))(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3);\n        if (iVar3 != 0) {\n          **(int **)(pcVar10 + 0x23934) = iVar19;\n          piVar18 = *(int **)(pcVar10 + 0x23b68);\n          *piVar18 = iVar19;\n          return piVar18;\n        }\n        iVar3 = iVar6 + 4;\n        **(int **)(pcVar10 + 0x23b24) = iVar3;\n      }\n      **(int **)(pcVar10 + 0x23934) = iVar3;\n      piVar18 = *(int **)(pcVar10 + 0x23b68);\n      *piVar18 = iVar3;\n      return piVar18;\n    }" ({ "{") (expression_statement "iVar6 = (**(code **)(pcVar10 + 0x23b58))();" (assignment_expression "iVar6 = (**(code **)(pcVar10 + 0x23b58))()" (identifier "iVar6") (= "=") (call_expression "(**(code **)(pcVar10 + 0x23b58))()" (parenthesized_expression "(**(code **)(pcVar10 + 0x23b58))" (( "(") (pointer_expression "**(code **)(pcVar10 + 0x23b58)" (* "*") (pointer_expression "*(code **)(pcVar10 + 0x23b58)" (* "*") (cast_expression "(code **)(pcVar10 + 0x23b58)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar10 + 0x23b58)" (( "(") (binary_expression "pcVar10 + 0x23b58" (identifier "pcVar10") (+ "+") (number_literal "0x23b58")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (((iVar6 != 0) && (iVar19 = iVar6 + 1, 6 < iVar19 - iVar3)) &&\n         (iVar7 = (**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7), iVar7 == 0)) {\n        iVar3 = (**(code **)(pcVar10 + 0x23b10))(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3);\n        if (iVar3 != 0) {\n          **(int **)(pcVar10 + 0x23934) = iVar19;\n          piVar18 = *(int **)(pcVar10 + 0x23b68);\n          *piVar18 = iVar19;\n          return piVar18;\n        }\n        iVar3 = iVar6 + 4;\n        **(int **)(pcVar10 + 0x23b24) = iVar3;\n      }" (if "if") (parenthesized_expression "(((iVar6 != 0) && (iVar19 = iVar6 + 1, 6 < iVar19 - iVar3)) &&\n         (iVar7 = (**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7), iVar7 == 0))" (( "(") (binary_expression "((iVar6 != 0) && (iVar19 = iVar6 + 1, 6 < iVar19 - iVar3)) &&\n         (iVar7 = (**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7), iVar7 == 0)" (parenthesized_expression "((iVar6 != 0) && (iVar19 = iVar6 + 1, 6 < iVar19 - iVar3))" (( "(") (binary_expression "(iVar6 != 0) && (iVar19 = iVar6 + 1, 6 < iVar19 - iVar3)" (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar19 = iVar6 + 1, 6 < iVar19 - iVar3)" (( "(") (comma_expression "iVar19 = iVar6 + 1, 6 < iVar19 - iVar3" (assignment_expression "iVar19 = iVar6 + 1" (identifier "iVar19") (= "=") (binary_expression "iVar6 + 1" (identifier "iVar6") (+ "+") (number_literal "1"))) (, ",") (binary_expression "6 < iVar19 - iVar3" (number_literal "6") (< "<") (binary_expression "iVar19 - iVar3" (identifier "iVar19") (- "-") (identifier "iVar3")))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(iVar7 = (**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7), iVar7 == 0)" (( "(") (comma_expression "iVar7 = (**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7), iVar7 == 0" (assignment_expression "iVar7 = (**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(pcVar10 + 0x23b10))\n                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7)" (parenthesized_expression "(**(code **)(pcVar10 + 0x23b10))" (( "(") (pointer_expression "**(code **)(pcVar10 + 0x23b10)" (* "*") (pointer_expression "*(code **)(pcVar10 + 0x23b10)" (* "*") (cast_expression "(code **)(pcVar10 + 0x23b10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar10 + 0x23b10)" (( "(") (binary_expression "pcVar10 + 0x23b10" (identifier "pcVar10") (+ "+") (number_literal "0x23b10")) () ")"))))) () ")")) (argument_list "(iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7)" (( "(") (binary_expression "iVar6 + -6" (identifier "iVar6") (+ "+") (number_literal "-6")) (, ",") (binary_expression "*(int *)(pcVar10 + 0x23898) + 0x69c8" (pointer_expression "*(int *)(pcVar10 + 0x23898)" (* "*") (cast_expression "(int *)(pcVar10 + 0x23898)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x23898)" (( "(") (binary_expression "pcVar10 + 0x23898" (identifier "pcVar10") (+ "+") (number_literal "0x23898")) () ")")))) (+ "+") (number_literal "0x69c8")) (, ",") (number_literal "7") () ")")))) (, ",") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n        iVar3 = (**(code **)(pcVar10 + 0x23b10))(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3);\n        if (iVar3 != 0) {\n          **(int **)(pcVar10 + 0x23934) = iVar19;\n          piVar18 = *(int **)(pcVar10 + 0x23b68);\n          *piVar18 = iVar19;\n          return piVar18;\n        }\n        iVar3 = iVar6 + 4;\n        **(int **)(pcVar10 + 0x23b24) = iVar3;\n      }" ({ "{") (expression_statement "iVar3 = (**(code **)(pcVar10 + 0x23b10))(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3);" (assignment_expression "iVar3 = (**(code **)(pcVar10 + 0x23b10))(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar10 + 0x23b10))(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3)" (parenthesized_expression "(**(code **)(pcVar10 + 0x23b10))" (( "(") (pointer_expression "**(code **)(pcVar10 + 0x23b10)" (* "*") (pointer_expression "*(code **)(pcVar10 + 0x23b10)" (* "*") (cast_expression "(code **)(pcVar10 + 0x23b10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar10 + 0x23b10)" (( "(") (binary_expression "pcVar10 + 0x23b10" (identifier "pcVar10") (+ "+") (number_literal "0x23b10")) () ")"))))) () ")")) (argument_list "(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3)" (( "(") (identifier "iVar19") (, ",") (binary_expression "*(int *)(pcVar10 + 0x23898) + 0x69d0" (pointer_expression "*(int *)(pcVar10 + 0x23898)" (* "*") (cast_expression "(int *)(pcVar10 + 0x23898)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x23898)" (( "(") (binary_expression "pcVar10 + 0x23898" (identifier "pcVar10") (+ "+") (number_literal "0x23898")) () ")")))) (+ "+") (number_literal "0x69d0")) (, ",") (number_literal "3") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n          **(int **)(pcVar10 + 0x23934) = iVar19;\n          piVar18 = *(int **)(pcVar10 + 0x23b68);\n          *piVar18 = iVar19;\n          return piVar18;\n        }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          **(int **)(pcVar10 + 0x23934) = iVar19;\n          piVar18 = *(int **)(pcVar10 + 0x23b68);\n          *piVar18 = iVar19;\n          return piVar18;\n        }" ({ "{") (expression_statement "**(int **)(pcVar10 + 0x23934) = iVar19;" (assignment_expression "**(int **)(pcVar10 + 0x23934) = iVar19" (pointer_expression "**(int **)(pcVar10 + 0x23934)" (* "*") (pointer_expression "*(int **)(pcVar10 + 0x23934)" (* "*") (cast_expression "(int **)(pcVar10 + 0x23934)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar10 + 0x23934)" (( "(") (binary_expression "pcVar10 + 0x23934" (identifier "pcVar10") (+ "+") (number_literal "0x23934")) () ")"))))) (= "=") (identifier "iVar19")) (; ";")) (expression_statement "piVar18 = *(int **)(pcVar10 + 0x23b68);" (assignment_expression "piVar18 = *(int **)(pcVar10 + 0x23b68)" (identifier "piVar18") (= "=") (pointer_expression "*(int **)(pcVar10 + 0x23b68)" (* "*") (cast_expression "(int **)(pcVar10 + 0x23b68)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar10 + 0x23b68)" (( "(") (binary_expression "pcVar10 + 0x23b68" (identifier "pcVar10") (+ "+") (number_literal "0x23b68")) () ")"))))) (; ";")) (expression_statement "*piVar18 = iVar19;" (assignment_expression "*piVar18 = iVar19" (pointer_expression "*piVar18" (* "*") (identifier "piVar18")) (= "=") (identifier "iVar19")) (; ";")) (return_statement "return piVar18;" (return "return") (identifier "piVar18") (; ";")) (} "}"))) (expression_statement "iVar3 = iVar6 + 4;" (assignment_expression "iVar3 = iVar6 + 4" (identifier "iVar3") (= "=") (binary_expression "iVar6 + 4" (identifier "iVar6") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "**(int **)(pcVar10 + 0x23b24) = iVar3;" (assignment_expression "**(int **)(pcVar10 + 0x23b24) = iVar3" (pointer_expression "**(int **)(pcVar10 + 0x23b24)" (* "*") (pointer_expression "*(int **)(pcVar10 + 0x23b24)" (* "*") (cast_expression "(int **)(pcVar10 + 0x23b24)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar10 + 0x23b24)" (( "(") (binary_expression "pcVar10 + 0x23b24" (identifier "pcVar10") (+ "+") (number_literal "0x23b24")) () ")"))))) (= "=") (identifier "iVar3")) (; ";")) (} "}"))) (expression_statement "**(int **)(pcVar10 + 0x23934) = iVar3;" (assignment_expression "**(int **)(pcVar10 + 0x23934) = iVar3" (pointer_expression "**(int **)(pcVar10 + 0x23934)" (* "*") (pointer_expression "*(int **)(pcVar10 + 0x23934)" (* "*") (cast_expression "(int **)(pcVar10 + 0x23934)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar10 + 0x23934)" (( "(") (binary_expression "pcVar10 + 0x23934" (identifier "pcVar10") (+ "+") (number_literal "0x23934")) () ")"))))) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "piVar18 = *(int **)(pcVar10 + 0x23b68);" (assignment_expression "piVar18 = *(int **)(pcVar10 + 0x23b68)" (identifier "piVar18") (= "=") (pointer_expression "*(int **)(pcVar10 + 0x23b68)" (* "*") (cast_expression "(int **)(pcVar10 + 0x23b68)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar10 + 0x23b68)" (( "(") (binary_expression "pcVar10 + 0x23b68" (identifier "pcVar10") (+ "+") (number_literal "0x23b68")) () ")"))))) (; ";")) (expression_statement "*piVar18 = iVar3;" (assignment_expression "*piVar18 = iVar3" (pointer_expression "*piVar18" (* "*") (identifier "piVar18")) (= "=") (identifier "iVar3")) (; ";")) (return_statement "return piVar18;" (return "return") (identifier "piVar18") (; ";")) (} "}"))) (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" (identifier "iVar3") (= "=") (number_literal "1")) (; ";")) (expression_statement "piVar18 = (int *)(*(int *)(pcVar10 + 0x23898) + 0x6990);" (assignment_expression "piVar18 = (int *)(*(int *)(pcVar10 + 0x23898) + 0x6990)" (identifier "piVar18") (= "=") (cast_expression "(int *)(*(int *)(pcVar10 + 0x23898) + 0x6990)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar10 + 0x23898) + 0x6990)" (( "(") (binary_expression "*(int *)(pcVar10 + 0x23898) + 0x6990" (pointer_expression "*(int *)(pcVar10 + 0x23898)" (* "*") (cast_expression "(int *)(pcVar10 + 0x23898)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x23898)" (( "(") (binary_expression "pcVar10 + 0x23898" (identifier "pcVar10") (+ "+") (number_literal "0x23898")) () ")")))) (+ "+") (number_literal "0x6990")) () ")")))) (; ";")) (expression_statement "(**(code **)(pcVar10 + 0x23c24))(piVar18,1,0x37,**(undefined4 **)(pcVar10 + 0x23ca4));" (call_expression "(**(code **)(pcVar10 + 0x23c24))(piVar18,1,0x37,**(undefined4 **)(pcVar10 + 0x23ca4))" (parenthesized_expression "(**(code **)(pcVar10 + 0x23c24))" (( "(") (pointer_expression "**(code **)(pcVar10 + 0x23c24)" (* "*") (pointer_expression "*(code **)(pcVar10 + 0x23c24)" (* "*") (cast_expression "(code **)(pcVar10 + 0x23c24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar10 + 0x23c24)" (( "(") (binary_expression "pcVar10 + 0x23c24" (identifier "pcVar10") (+ "+") (number_literal "0x23c24")) () ")"))))) () ")")) (argument_list "(piVar18,1,0x37,**(undefined4 **)(pcVar10 + 0x23ca4))" (( "(") (identifier "piVar18") (, ",") (number_literal "1") (, ",") (number_literal "0x37") (, ",") (pointer_expression "**(undefined4 **)(pcVar10 + 0x23ca4)" (* "*") (pointer_expression "*(undefined4 **)(pcVar10 + 0x23ca4)" (* "*") (cast_expression "(undefined4 **)(pcVar10 + 0x23ca4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar10 + 0x23ca4)" (( "(") (binary_expression "pcVar10 + 0x23ca4" (identifier "pcVar10") (+ "+") (number_literal "0x23ca4")) () ")"))))) () ")"))) (; ";")) (expression_statement "pcVar10 = *(code **)(pcVar10 + 0x23b08);" (assignment_expression "pcVar10 = *(code **)(pcVar10 + 0x23b08)" (identifier "pcVar10") (= "=") (pointer_expression "*(code **)(pcVar10 + 0x23b08)" (* "*") (cast_expression "(code **)(pcVar10 + 0x23b08)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar10 + 0x23b08)" (( "(") (binary_expression "pcVar10 + 0x23b08" (identifier "pcVar10") (+ "+") (number_literal "0x23b08")) () ")"))))) (; ";")) (expression_statement "(*pcVar10)();" (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" (( "(") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*piVar18 = 0;" (assignment_expression "*piVar18 = 0" (pointer_expression "*piVar18" (* "*") (identifier "piVar18")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar18[1] = 0;" (assignment_expression "piVar18[1] = 0" (subscript_expression "piVar18[1]" (identifier "piVar18") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar18[2] = 0;" (assignment_expression "piVar18[2] = 0" (subscript_expression "piVar18[2]" (identifier "piVar18") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar18[3] = 0;" (assignment_expression "piVar18[3] = 0" (subscript_expression "piVar18[3]" (identifier "piVar18") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar18[4] = 0;" (assignment_expression "piVar18[4] = 0" (subscript_expression "piVar18[4]" (identifier "piVar18") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar18[5] = 0;" (assignment_expression "piVar18[5] = 0" (subscript_expression "piVar18[5]" (identifier "piVar18") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar18[6] = 0;" (assignment_expression "piVar18[6] = 0" (subscript_expression "piVar18[6]" (identifier "piVar18") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar18[7] = 0;" (assignment_expression "piVar18[7] = 0" (subscript_expression "piVar18[7]" (identifier "piVar18") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar18[8] = 0;" (assignment_expression "piVar18[8] = 0" (subscript_expression "piVar18[8]" (identifier "piVar18") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar18[9] = 0;" (assignment_expression "piVar18[9] = 0" (subscript_expression "piVar18[9]" (identifier "piVar18") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar18[10] = 0;" (assignment_expression "piVar18[10] = 0" (subscript_expression "piVar18[10]" (identifier "piVar18") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar18[0xb] = 0;" (assignment_expression "piVar18[0xb] = 0" (subscript_expression "piVar18[0xb]" (identifier "piVar18") ([ "[") (number_literal "0xb") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar3 == 10) {\n      pcVar10 = *(code **)(pcVar10 + 0x239d8);\n      (*pcVar10)();\n      piVar17 = (int *)(**(code **)(pcVar10 + 0x23abc))(0,piVar18,5);\n      if (piVar18 == piVar17) {\n        pbVar8 = (byte *)locale_charset();\n        if ((*pbVar8 & 0xdf) == 0x55) {\n          if (((((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46)) && (pbVar8[3] == 0x2d)\n              ) && ((pbVar8[4] == 0x38 && (pbVar8[5] == 0)))) {\n            if (*(char *)piVar17 != '`') {\n              return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d8);\n            }\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e4);\n          }\n        }\n        else if ((((((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&\n                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))) &&\n                 (pbVar8[5] == 0x33)) && ((pbVar8[6] == 0x30 && (pbVar8[7] == 0)))) {\n          if (*(char *)piVar17 != '`') {\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69dc);\n          }\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e0);\n        }\n        if (iVar3 != 9) {\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e8);\n        }\n        piVar17 = (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d4);\n      }\n      return piVar17;\n    }" (if "if") (parenthesized_expression "(iVar3 == 10)" (( "(") (binary_expression "iVar3 == 10" (identifier "iVar3") (== "==") (number_literal "10")) () ")")) (compound_statement "{\n      pcVar10 = *(code **)(pcVar10 + 0x239d8);\n      (*pcVar10)();\n      piVar17 = (int *)(**(code **)(pcVar10 + 0x23abc))(0,piVar18,5);\n      if (piVar18 == piVar17) {\n        pbVar8 = (byte *)locale_charset();\n        if ((*pbVar8 & 0xdf) == 0x55) {\n          if (((((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46)) && (pbVar8[3] == 0x2d)\n              ) && ((pbVar8[4] == 0x38 && (pbVar8[5] == 0)))) {\n            if (*(char *)piVar17 != '`') {\n              return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d8);\n            }\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e4);\n          }\n        }\n        else if ((((((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&\n                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))) &&\n                 (pbVar8[5] == 0x33)) && ((pbVar8[6] == 0x30 && (pbVar8[7] == 0)))) {\n          if (*(char *)piVar17 != '`') {\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69dc);\n          }\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e0);\n        }\n        if (iVar3 != 9) {\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e8);\n        }\n        piVar17 = (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d4);\n      }\n      return piVar17;\n    }" ({ "{") (expression_statement "pcVar10 = *(code **)(pcVar10 + 0x239d8);" (assignment_expression "pcVar10 = *(code **)(pcVar10 + 0x239d8)" (identifier "pcVar10") (= "=") (pointer_expression "*(code **)(pcVar10 + 0x239d8)" (* "*") (cast_expression "(code **)(pcVar10 + 0x239d8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar10 + 0x239d8)" (( "(") (binary_expression "pcVar10 + 0x239d8" (identifier "pcVar10") (+ "+") (number_literal "0x239d8")) () ")"))))) (; ";")) (expression_statement "(*pcVar10)();" (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" (( "(") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar17 = (int *)(**(code **)(pcVar10 + 0x23abc))(0,piVar18,5);" (assignment_expression "piVar17 = (int *)(**(code **)(pcVar10 + 0x23abc))(0,piVar18,5)" (identifier "piVar17") (= "=") (cast_expression "(int *)(**(code **)(pcVar10 + 0x23abc))(0,piVar18,5)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar10 + 0x23abc))(0,piVar18,5)" (parenthesized_expression "(**(code **)(pcVar10 + 0x23abc))" (( "(") (pointer_expression "**(code **)(pcVar10 + 0x23abc)" (* "*") (pointer_expression "*(code **)(pcVar10 + 0x23abc)" (* "*") (cast_expression "(code **)(pcVar10 + 0x23abc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar10 + 0x23abc)" (( "(") (binary_expression "pcVar10 + 0x23abc" (identifier "pcVar10") (+ "+") (number_literal "0x23abc")) () ")"))))) () ")")) (argument_list "(0,piVar18,5)" (( "(") (number_literal "0") (, ",") (identifier "piVar18") (, ",") (number_literal "5") () ")"))))) (; ";")) (if_statement "if (piVar18 == piVar17) {\n        pbVar8 = (byte *)locale_charset();\n        if ((*pbVar8 & 0xdf) == 0x55) {\n          if (((((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46)) && (pbVar8[3] == 0x2d)\n              ) && ((pbVar8[4] == 0x38 && (pbVar8[5] == 0)))) {\n            if (*(char *)piVar17 != '`') {\n              return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d8);\n            }\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e4);\n          }\n        }\n        else if ((((((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&\n                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))) &&\n                 (pbVar8[5] == 0x33)) && ((pbVar8[6] == 0x30 && (pbVar8[7] == 0)))) {\n          if (*(char *)piVar17 != '`') {\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69dc);\n          }\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e0);\n        }\n        if (iVar3 != 9) {\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e8);\n        }\n        piVar17 = (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d4);\n      }" (if "if") (parenthesized_expression "(piVar18 == piVar17)" (( "(") (binary_expression "piVar18 == piVar17" (identifier "piVar18") (== "==") (identifier "piVar17")) () ")")) (compound_statement "{\n        pbVar8 = (byte *)locale_charset();\n        if ((*pbVar8 & 0xdf) == 0x55) {\n          if (((((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46)) && (pbVar8[3] == 0x2d)\n              ) && ((pbVar8[4] == 0x38 && (pbVar8[5] == 0)))) {\n            if (*(char *)piVar17 != '`') {\n              return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d8);\n            }\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e4);\n          }\n        }\n        else if ((((((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&\n                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))) &&\n                 (pbVar8[5] == 0x33)) && ((pbVar8[6] == 0x30 && (pbVar8[7] == 0)))) {\n          if (*(char *)piVar17 != '`') {\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69dc);\n          }\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e0);\n        }\n        if (iVar3 != 9) {\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e8);\n        }\n        piVar17 = (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d4);\n      }" ({ "{") (expression_statement "pbVar8 = (byte *)locale_charset();" (assignment_expression "pbVar8 = (byte *)locale_charset()" (identifier "pbVar8") (= "=") (cast_expression "(byte *)locale_charset()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "locale_charset()" (identifier "locale_charset") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if ((*pbVar8 & 0xdf) == 0x55) {\n          if (((((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46)) && (pbVar8[3] == 0x2d)\n              ) && ((pbVar8[4] == 0x38 && (pbVar8[5] == 0)))) {\n            if (*(char *)piVar17 != '`') {\n              return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d8);\n            }\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e4);\n          }\n        }\n        else if ((((((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&\n                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))) &&\n                 (pbVar8[5] == 0x33)) && ((pbVar8[6] == 0x30 && (pbVar8[7] == 0)))) {\n          if (*(char *)piVar17 != '`') {\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69dc);\n          }\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e0);\n        }" (if "if") (parenthesized_expression "((*pbVar8 & 0xdf) == 0x55)" (( "(") (binary_expression "(*pbVar8 & 0xdf) == 0x55" (parenthesized_expression "(*pbVar8 & 0xdf)" (( "(") (binary_expression "*pbVar8 & 0xdf" (pointer_expression "*pbVar8" (* "*") (identifier "pbVar8")) (& "&") (number_literal "0xdf")) () ")")) (== "==") (number_literal "0x55")) () ")")) (compound_statement "{\n          if (((((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46)) && (pbVar8[3] == 0x2d)\n              ) && ((pbVar8[4] == 0x38 && (pbVar8[5] == 0)))) {\n            if (*(char *)piVar17 != '`') {\n              return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d8);\n            }\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e4);\n          }\n        }" ({ "{") (if_statement "if (((((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46)) && (pbVar8[3] == 0x2d)\n              ) && ((pbVar8[4] == 0x38 && (pbVar8[5] == 0)))) {\n            if (*(char *)piVar17 != '`') {\n              return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d8);\n            }\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e4);\n          }" (if "if") (parenthesized_expression "(((((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46)) && (pbVar8[3] == 0x2d)\n              ) && ((pbVar8[4] == 0x38 && (pbVar8[5] == 0))))" (( "(") (binary_expression "((((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46)) && (pbVar8[3] == 0x2d)\n              ) && ((pbVar8[4] == 0x38 && (pbVar8[5] == 0)))" (parenthesized_expression "((((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46)) && (pbVar8[3] == 0x2d)\n              )" (( "(") (binary_expression "(((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46)) && (pbVar8[3] == 0x2d)" (parenthesized_expression "(((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46))" (( "(") (binary_expression "((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46)" (parenthesized_expression "((pbVar8[1] & 0xdf) == 0x54)" (( "(") (binary_expression "(pbVar8[1] & 0xdf) == 0x54" (parenthesized_expression "(pbVar8[1] & 0xdf)" (( "(") (binary_expression "pbVar8[1] & 0xdf" (subscript_expression "pbVar8[1]" (identifier "pbVar8") ([ "[") (number_literal "1") (] "]")) (& "&") (number_literal "0xdf")) () ")")) (== "==") (number_literal "0x54")) () ")")) (&& "&&") (parenthesized_expression "((pbVar8[2] & 0xdf) == 0x46)" (( "(") (binary_expression "(pbVar8[2] & 0xdf) == 0x46" (parenthesized_expression "(pbVar8[2] & 0xdf)" (( "(") (binary_expression "pbVar8[2] & 0xdf" (subscript_expression "pbVar8[2]" (identifier "pbVar8") ([ "[") (number_literal "2") (] "]")) (& "&") (number_literal "0xdf")) () ")")) (== "==") (number_literal "0x46")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(pbVar8[3] == 0x2d)" (( "(") (binary_expression "pbVar8[3] == 0x2d" (subscript_expression "pbVar8[3]" (identifier "pbVar8") ([ "[") (number_literal "3") (] "]")) (== "==") (number_literal "0x2d")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((pbVar8[4] == 0x38 && (pbVar8[5] == 0)))" (( "(") (parenthesized_expression "(pbVar8[4] == 0x38 && (pbVar8[5] == 0))" (( "(") (binary_expression "pbVar8[4] == 0x38 && (pbVar8[5] == 0)" (binary_expression "pbVar8[4] == 0x38" (subscript_expression "pbVar8[4]" (identifier "pbVar8") ([ "[") (number_literal "4") (] "]")) (== "==") (number_literal "0x38")) (&& "&&") (parenthesized_expression "(pbVar8[5] == 0)" (( "(") (binary_expression "pbVar8[5] == 0" (subscript_expression "pbVar8[5]" (identifier "pbVar8") ([ "[") (number_literal "5") (] "]")) (== "==") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n            if (*(char *)piVar17 != '`') {\n              return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d8);\n            }\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e4);\n          }" ({ "{") (if_statement "if (*(char *)piVar17 != '`') {\n              return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d8);\n            }" (if "if") (parenthesized_expression "(*(char *)piVar17 != '`')" (( "(") (binary_expression "*(char *)piVar17 != '`'" (pointer_expression "*(char *)piVar17" (* "*") (cast_expression "(char *)piVar17" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "piVar17"))) (!= "!=") (char_literal "'`'" (' "'") (character "`") (' "'"))) () ")")) (compound_statement "{\n              return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d8);\n            }" ({ "{") (return_statement "return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d8);" (return "return") (cast_expression "(int *)(*(int *)(pcVar10 + 0x23700) + 0x69d8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar10 + 0x23700) + 0x69d8)" (( "(") (binary_expression "*(int *)(pcVar10 + 0x23700) + 0x69d8" (pointer_expression "*(int *)(pcVar10 + 0x23700)" (* "*") (cast_expression "(int *)(pcVar10 + 0x23700)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x23700)" (( "(") (binary_expression "pcVar10 + 0x23700" (identifier "pcVar10") (+ "+") (number_literal "0x23700")) () ")")))) (+ "+") (number_literal "0x69d8")) () ")"))) (; ";")) (} "}"))) (return_statement "return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e4);" (return "return") (cast_expression "(int *)(*(int *)(pcVar10 + 0x23700) + 0x69e4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar10 + 0x23700) + 0x69e4)" (( "(") (binary_expression "*(int *)(pcVar10 + 0x23700) + 0x69e4" (pointer_expression "*(int *)(pcVar10 + 0x23700)" (* "*") (cast_expression "(int *)(pcVar10 + 0x23700)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x23700)" (( "(") (binary_expression "pcVar10 + 0x23700" (identifier "pcVar10") (+ "+") (number_literal "0x23700")) () ")")))) (+ "+") (number_literal "0x69e4")) () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else if ((((((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&\n                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))) &&\n                 (pbVar8[5] == 0x33)) && ((pbVar8[6] == 0x30 && (pbVar8[7] == 0)))) {\n          if (*(char *)piVar17 != '`') {\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69dc);\n          }\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e0);\n        }" (else "else") (if_statement "if ((((((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&\n                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))) &&\n                 (pbVar8[5] == 0x33)) && ((pbVar8[6] == 0x30 && (pbVar8[7] == 0)))) {\n          if (*(char *)piVar17 != '`') {\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69dc);\n          }\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e0);\n        }" (if "if") (parenthesized_expression "((((((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&\n                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))) &&\n                 (pbVar8[5] == 0x33)) && ((pbVar8[6] == 0x30 && (pbVar8[7] == 0))))" (( "(") (binary_expression "(((((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&\n                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))) &&\n                 (pbVar8[5] == 0x33)) && ((pbVar8[6] == 0x30 && (pbVar8[7] == 0)))" (parenthesized_expression "(((((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&\n                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))) &&\n                 (pbVar8[5] == 0x33))" (( "(") (binary_expression "((((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&\n                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))) &&\n                 (pbVar8[5] == 0x33)" (parenthesized_expression "((((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&\n                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30))))))" (( "(") (binary_expression "(((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&\n                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))" (parenthesized_expression "(((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42))" (( "(") (binary_expression "((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)" (parenthesized_expression "((*pbVar8 & 0xdf) == 0x47)" (( "(") (binary_expression "(*pbVar8 & 0xdf) == 0x47" (parenthesized_expression "(*pbVar8 & 0xdf)" (( "(") (binary_expression "*pbVar8 & 0xdf" (pointer_expression "*pbVar8" (* "*") (identifier "pbVar8")) (& "&") (number_literal "0xdf")) () ")")) (== "==") (number_literal "0x47")) () ")")) (&& "&&") (parenthesized_expression "((pbVar8[1] & 0xdf) == 0x42)" (( "(") (binary_expression "(pbVar8[1] & 0xdf) == 0x42" (parenthesized_expression "(pbVar8[1] & 0xdf)" (( "(") (binary_expression "pbVar8[1] & 0xdf" (subscript_expression "pbVar8[1]" (identifier "pbVar8") ([ "[") (number_literal "1") (] "]")) (& "&") (number_literal "0xdf")) () ")")) (== "==") (number_literal "0x42")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))" (( "(") (parenthesized_expression "(pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30))))" (( "(") (binary_expression "pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))" (binary_expression "pbVar8[2] == 0x31" (subscript_expression "pbVar8[2]" (identifier "pbVar8") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "0x31")) (&& "&&") (parenthesized_expression "((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))" (( "(") (parenthesized_expression "(pbVar8[3] == 0x38 && (pbVar8[4] == 0x30))" (( "(") (binary_expression "pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)" (binary_expression "pbVar8[3] == 0x38" (subscript_expression "pbVar8[3]" (identifier "pbVar8") ([ "[") (number_literal "3") (] "]")) (== "==") (number_literal "0x38")) (&& "&&") (parenthesized_expression "(pbVar8[4] == 0x30)" (( "(") (binary_expression "pbVar8[4] == 0x30" (subscript_expression "pbVar8[4]" (identifier "pbVar8") ([ "[") (number_literal "4") (] "]")) (== "==") (number_literal "0x30")) () ")"))) () ")")) () ")"))) () ")")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(pbVar8[5] == 0x33)" (( "(") (binary_expression "pbVar8[5] == 0x33" (subscript_expression "pbVar8[5]" (identifier "pbVar8") ([ "[") (number_literal "5") (] "]")) (== "==") (number_literal "0x33")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((pbVar8[6] == 0x30 && (pbVar8[7] == 0)))" (( "(") (parenthesized_expression "(pbVar8[6] == 0x30 && (pbVar8[7] == 0))" (( "(") (binary_expression "pbVar8[6] == 0x30 && (pbVar8[7] == 0)" (binary_expression "pbVar8[6] == 0x30" (subscript_expression "pbVar8[6]" (identifier "pbVar8") ([ "[") (number_literal "6") (] "]")) (== "==") (number_literal "0x30")) (&& "&&") (parenthesized_expression "(pbVar8[7] == 0)" (( "(") (binary_expression "pbVar8[7] == 0" (subscript_expression "pbVar8[7]" (identifier "pbVar8") ([ "[") (number_literal "7") (] "]")) (== "==") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n          if (*(char *)piVar17 != '`') {\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69dc);\n          }\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e0);\n        }" ({ "{") (if_statement "if (*(char *)piVar17 != '`') {\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69dc);\n          }" (if "if") (parenthesized_expression "(*(char *)piVar17 != '`')" (( "(") (binary_expression "*(char *)piVar17 != '`'" (pointer_expression "*(char *)piVar17" (* "*") (cast_expression "(char *)piVar17" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "piVar17"))) (!= "!=") (char_literal "'`'" (' "'") (character "`") (' "'"))) () ")")) (compound_statement "{\n            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69dc);\n          }" ({ "{") (return_statement "return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69dc);" (return "return") (cast_expression "(int *)(*(int *)(pcVar10 + 0x23700) + 0x69dc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar10 + 0x23700) + 0x69dc)" (( "(") (binary_expression "*(int *)(pcVar10 + 0x23700) + 0x69dc" (pointer_expression "*(int *)(pcVar10 + 0x23700)" (* "*") (cast_expression "(int *)(pcVar10 + 0x23700)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x23700)" (( "(") (binary_expression "pcVar10 + 0x23700" (identifier "pcVar10") (+ "+") (number_literal "0x23700")) () ")")))) (+ "+") (number_literal "0x69dc")) () ")"))) (; ";")) (} "}"))) (return_statement "return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e0);" (return "return") (cast_expression "(int *)(*(int *)(pcVar10 + 0x23700) + 0x69e0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar10 + 0x23700) + 0x69e0)" (( "(") (binary_expression "*(int *)(pcVar10 + 0x23700) + 0x69e0" (pointer_expression "*(int *)(pcVar10 + 0x23700)" (* "*") (cast_expression "(int *)(pcVar10 + 0x23700)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x23700)" (( "(") (binary_expression "pcVar10 + 0x23700" (identifier "pcVar10") (+ "+") (number_literal "0x23700")) () ")")))) (+ "+") (number_literal "0x69e0")) () ")"))) (; ";")) (} "}"))))) (if_statement "if (iVar3 != 9) {\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e8);\n        }" (if "if") (parenthesized_expression "(iVar3 != 9)" (( "(") (binary_expression "iVar3 != 9" (identifier "iVar3") (!= "!=") (number_literal "9")) () ")")) (compound_statement "{\n          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e8);\n        }" ({ "{") (return_statement "return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e8);" (return "return") (cast_expression "(int *)(*(int *)(pcVar10 + 0x23700) + 0x69e8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar10 + 0x23700) + 0x69e8)" (( "(") (binary_expression "*(int *)(pcVar10 + 0x23700) + 0x69e8" (pointer_expression "*(int *)(pcVar10 + 0x23700)" (* "*") (cast_expression "(int *)(pcVar10 + 0x23700)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x23700)" (( "(") (binary_expression "pcVar10 + 0x23700" (identifier "pcVar10") (+ "+") (number_literal "0x23700")) () ")")))) (+ "+") (number_literal "0x69e8")) () ")"))) (; ";")) (} "}"))) (expression_statement "piVar17 = (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d4);" (assignment_expression "piVar17 = (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d4)" (identifier "piVar17") (= "=") (cast_expression "(int *)(*(int *)(pcVar10 + 0x23700) + 0x69d4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar10 + 0x23700) + 0x69d4)" (( "(") (binary_expression "*(int *)(pcVar10 + 0x23700) + 0x69d4" (pointer_expression "*(int *)(pcVar10 + 0x23700)" (* "*") (cast_expression "(int *)(pcVar10 + 0x23700)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x23700)" (( "(") (binary_expression "pcVar10 + 0x23700" (identifier "pcVar10") (+ "+") (number_literal "0x23700")) () ")")))) (+ "+") (number_literal "0x69d4")) () ")")))) (; ";")) (} "}"))) (return_statement "return piVar17;" (return "return") (identifier "piVar17") (; ";")) (} "}"))) (expression_statement "*piVar18 = iVar3;" (assignment_expression "*piVar18 = iVar3" (pointer_expression "*piVar18" (* "*") (identifier "piVar18")) (= "=") (identifier "iVar3")) (; ";")) (return_statement "return piVar18;" (return "return") (identifier "piVar18") (; ";")) (} "}"))) (expression_statement "pcVar10 = (code *)(PTR_LAB_00049280 + 0x3e34);" (assignment_expression "pcVar10 = (code *)(PTR_LAB_00049280 + 0x3e34)" (identifier "pcVar10") (= "=") (cast_expression "(code *)(PTR_LAB_00049280 + 0x3e34)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00049280 + 0x3e34)" (( "(") (binary_expression "PTR_LAB_00049280 + 0x3e34" (identifier "PTR_LAB_00049280") (+ "+") (number_literal "0x3e34")) () ")")))) (; ";")) (labeled_statement "LAB_00023f94:\n  if (cVar9 == '%') {\n    iVar6 = 0;\n    cVar9 = param_5;\nLAB_0002406c:\n    do {\n      param_3 = param_3 + 1;\n      cVar1 = *param_3;\n      while (uVar11 = (uint)cVar1, uVar11 != 0x30) {\n        if (0x30 < (int)uVar11) {\n          if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }\n          if (uVar11 == 0x5f) {\n            iVar6 = 0x5f;\n            goto LAB_0002406c;\n          }\nLAB_000240c4:\n          pcVar14 = (char *)0xffffffff;\n          if (9 < uVar11 - 0x30) goto LAB_000240d4;\n          pcVar14 = (char *)0x0;\n          pcVar5 = param_3;\n          goto LAB_00024154;\n        }\n        if (uVar11 != 0x23) {\n          if (uVar11 != 0x2d) goto LAB_000240c4;\n          iVar6 = 0x2d;\n          goto LAB_0002406c;\n        }\n        param_3 = param_3 + 1;\n        cVar1 = *param_3;\n      }\n      iVar6 = 0x30;\n    } while( true );\n  }" (statement_identifier "LAB_00023f94") (: ":") (if_statement "if (cVar9 == '%') {\n    iVar6 = 0;\n    cVar9 = param_5;\nLAB_0002406c:\n    do {\n      param_3 = param_3 + 1;\n      cVar1 = *param_3;\n      while (uVar11 = (uint)cVar1, uVar11 != 0x30) {\n        if (0x30 < (int)uVar11) {\n          if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }\n          if (uVar11 == 0x5f) {\n            iVar6 = 0x5f;\n            goto LAB_0002406c;\n          }\nLAB_000240c4:\n          pcVar14 = (char *)0xffffffff;\n          if (9 < uVar11 - 0x30) goto LAB_000240d4;\n          pcVar14 = (char *)0x0;\n          pcVar5 = param_3;\n          goto LAB_00024154;\n        }\n        if (uVar11 != 0x23) {\n          if (uVar11 != 0x2d) goto LAB_000240c4;\n          iVar6 = 0x2d;\n          goto LAB_0002406c;\n        }\n        param_3 = param_3 + 1;\n        cVar1 = *param_3;\n      }\n      iVar6 = 0x30;\n    } while( true );\n  }" (if "if") (parenthesized_expression "(cVar9 == '%')" (( "(") (binary_expression "cVar9 == '%'" (identifier "cVar9") (== "==") (char_literal "'%'" (' "'") (character "%") (' "'"))) () ")")) (compound_statement "{\n    iVar6 = 0;\n    cVar9 = param_5;\nLAB_0002406c:\n    do {\n      param_3 = param_3 + 1;\n      cVar1 = *param_3;\n      while (uVar11 = (uint)cVar1, uVar11 != 0x30) {\n        if (0x30 < (int)uVar11) {\n          if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }\n          if (uVar11 == 0x5f) {\n            iVar6 = 0x5f;\n            goto LAB_0002406c;\n          }\nLAB_000240c4:\n          pcVar14 = (char *)0xffffffff;\n          if (9 < uVar11 - 0x30) goto LAB_000240d4;\n          pcVar14 = (char *)0x0;\n          pcVar5 = param_3;\n          goto LAB_00024154;\n        }\n        if (uVar11 != 0x23) {\n          if (uVar11 != 0x2d) goto LAB_000240c4;\n          iVar6 = 0x2d;\n          goto LAB_0002406c;\n        }\n        param_3 = param_3 + 1;\n        cVar1 = *param_3;\n      }\n      iVar6 = 0x30;\n    } while( true );\n  }" ({ "{") (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (expression_statement "cVar9 = param_5;" (assignment_expression "cVar9 = param_5" (identifier "cVar9") (= "=") (identifier "param_5")) (; ";")) (labeled_statement "LAB_0002406c:\n    do {\n      param_3 = param_3 + 1;\n      cVar1 = *param_3;\n      while (uVar11 = (uint)cVar1, uVar11 != 0x30) {\n        if (0x30 < (int)uVar11) {\n          if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }\n          if (uVar11 == 0x5f) {\n            iVar6 = 0x5f;\n            goto LAB_0002406c;\n          }\nLAB_000240c4:\n          pcVar14 = (char *)0xffffffff;\n          if (9 < uVar11 - 0x30) goto LAB_000240d4;\n          pcVar14 = (char *)0x0;\n          pcVar5 = param_3;\n          goto LAB_00024154;\n        }\n        if (uVar11 != 0x23) {\n          if (uVar11 != 0x2d) goto LAB_000240c4;\n          iVar6 = 0x2d;\n          goto LAB_0002406c;\n        }\n        param_3 = param_3 + 1;\n        cVar1 = *param_3;\n      }\n      iVar6 = 0x30;\n    } while( true );" (statement_identifier "LAB_0002406c") (: ":") (do_statement "do {\n      param_3 = param_3 + 1;\n      cVar1 = *param_3;\n      while (uVar11 = (uint)cVar1, uVar11 != 0x30) {\n        if (0x30 < (int)uVar11) {\n          if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }\n          if (uVar11 == 0x5f) {\n            iVar6 = 0x5f;\n            goto LAB_0002406c;\n          }\nLAB_000240c4:\n          pcVar14 = (char *)0xffffffff;\n          if (9 < uVar11 - 0x30) goto LAB_000240d4;\n          pcVar14 = (char *)0x0;\n          pcVar5 = param_3;\n          goto LAB_00024154;\n        }\n        if (uVar11 != 0x23) {\n          if (uVar11 != 0x2d) goto LAB_000240c4;\n          iVar6 = 0x2d;\n          goto LAB_0002406c;\n        }\n        param_3 = param_3 + 1;\n        cVar1 = *param_3;\n      }\n      iVar6 = 0x30;\n    } while( true );" (do "do") (compound_statement "{\n      param_3 = param_3 + 1;\n      cVar1 = *param_3;\n      while (uVar11 = (uint)cVar1, uVar11 != 0x30) {\n        if (0x30 < (int)uVar11) {\n          if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }\n          if (uVar11 == 0x5f) {\n            iVar6 = 0x5f;\n            goto LAB_0002406c;\n          }\nLAB_000240c4:\n          pcVar14 = (char *)0xffffffff;\n          if (9 < uVar11 - 0x30) goto LAB_000240d4;\n          pcVar14 = (char *)0x0;\n          pcVar5 = param_3;\n          goto LAB_00024154;\n        }\n        if (uVar11 != 0x23) {\n          if (uVar11 != 0x2d) goto LAB_000240c4;\n          iVar6 = 0x2d;\n          goto LAB_0002406c;\n        }\n        param_3 = param_3 + 1;\n        cVar1 = *param_3;\n      }\n      iVar6 = 0x30;\n    }" ({ "{") (expression_statement "param_3 = param_3 + 1;" (assignment_expression "param_3 = param_3 + 1" (identifier "param_3") (= "=") (binary_expression "param_3 + 1" (identifier "param_3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "cVar1 = *param_3;" (assignment_expression "cVar1 = *param_3" (identifier "cVar1") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (while_statement "while (uVar11 = (uint)cVar1, uVar11 != 0x30) {\n        if (0x30 < (int)uVar11) {\n          if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }\n          if (uVar11 == 0x5f) {\n            iVar6 = 0x5f;\n            goto LAB_0002406c;\n          }\nLAB_000240c4:\n          pcVar14 = (char *)0xffffffff;\n          if (9 < uVar11 - 0x30) goto LAB_000240d4;\n          pcVar14 = (char *)0x0;\n          pcVar5 = param_3;\n          goto LAB_00024154;\n        }\n        if (uVar11 != 0x23) {\n          if (uVar11 != 0x2d) goto LAB_000240c4;\n          iVar6 = 0x2d;\n          goto LAB_0002406c;\n        }\n        param_3 = param_3 + 1;\n        cVar1 = *param_3;\n      }" (while "while") (parenthesized_expression "(uVar11 = (uint)cVar1, uVar11 != 0x30)" (( "(") (comma_expression "uVar11 = (uint)cVar1, uVar11 != 0x30" (assignment_expression "uVar11 = (uint)cVar1" (identifier "uVar11") (= "=") (cast_expression "(uint)cVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "cVar1"))) (, ",") (binary_expression "uVar11 != 0x30" (identifier "uVar11") (!= "!=") (number_literal "0x30"))) () ")")) (compound_statement "{\n        if (0x30 < (int)uVar11) {\n          if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }\n          if (uVar11 == 0x5f) {\n            iVar6 = 0x5f;\n            goto LAB_0002406c;\n          }\nLAB_000240c4:\n          pcVar14 = (char *)0xffffffff;\n          if (9 < uVar11 - 0x30) goto LAB_000240d4;\n          pcVar14 = (char *)0x0;\n          pcVar5 = param_3;\n          goto LAB_00024154;\n        }\n        if (uVar11 != 0x23) {\n          if (uVar11 != 0x2d) goto LAB_000240c4;\n          iVar6 = 0x2d;\n          goto LAB_0002406c;\n        }\n        param_3 = param_3 + 1;\n        cVar1 = *param_3;\n      }" ({ "{") (if_statement "if (0x30 < (int)uVar11) {\n          if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }\n          if (uVar11 == 0x5f) {\n            iVar6 = 0x5f;\n            goto LAB_0002406c;\n          }\nLAB_000240c4:\n          pcVar14 = (char *)0xffffffff;\n          if (9 < uVar11 - 0x30) goto LAB_000240d4;\n          pcVar14 = (char *)0x0;\n          pcVar5 = param_3;\n          goto LAB_00024154;\n        }" (if "if") (parenthesized_expression "(0x30 < (int)uVar11)" (( "(") (binary_expression "0x30 < (int)uVar11" (number_literal "0x30") (< "<") (cast_expression "(int)uVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar11"))) () ")")) (compound_statement "{\n          if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }\n          if (uVar11 == 0x5f) {\n            iVar6 = 0x5f;\n            goto LAB_0002406c;\n          }\nLAB_000240c4:\n          pcVar14 = (char *)0xffffffff;\n          if (9 < uVar11 - 0x30) goto LAB_000240d4;\n          pcVar14 = (char *)0x0;\n          pcVar5 = param_3;\n          goto LAB_00024154;\n        }" ({ "{") (if_statement "if (uVar11 == 0x5e) {\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }" (if "if") (parenthesized_expression "(uVar11 == 0x5e)" (( "(") (binary_expression "uVar11 == 0x5e" (identifier "uVar11") (== "==") (number_literal "0x5e")) () ")")) (compound_statement "{\n            cVar9 = '\x01';\n            goto LAB_0002406c;\n          }" ({ "{") (expression_statement "cVar9 = '\x01';" (assignment_expression "cVar9 = '\x01'" (identifier "cVar9") (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (goto_statement "goto LAB_0002406c;" (goto "goto") (statement_identifier "LAB_0002406c") (; ";")) (} "}"))) (if_statement "if (uVar11 == 0x5f) {\n            iVar6 = 0x5f;\n            goto LAB_0002406c;\n          }" (if "if") (parenthesized_expression "(uVar11 == 0x5f)" (( "(") (binary_expression "uVar11 == 0x5f" (identifier "uVar11") (== "==") (number_literal "0x5f")) () ")")) (compound_statement "{\n            iVar6 = 0x5f;\n            goto LAB_0002406c;\n          }" ({ "{") (expression_statement "iVar6 = 0x5f;" (assignment_expression "iVar6 = 0x5f" (identifier "iVar6") (= "=") (number_literal "0x5f")) (; ";")) (goto_statement "goto LAB_0002406c;" (goto "goto") (statement_identifier "LAB_0002406c") (; ";")) (} "}"))) (labeled_statement "LAB_000240c4:\n          pcVar14 = (char *)0xffffffff;" (statement_identifier "LAB_000240c4") (: ":") (expression_statement "pcVar14 = (char *)0xffffffff;" (assignment_expression "pcVar14 = (char *)0xffffffff" (identifier "pcVar14") (= "=") (cast_expression "(char *)0xffffffff" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";"))) (if_statement "if (9 < uVar11 - 0x30) goto LAB_000240d4;" (if "if") (parenthesized_expression "(9 < uVar11 - 0x30)" (( "(") (binary_expression "9 < uVar11 - 0x30" (number_literal "9") (< "<") (binary_expression "uVar11 - 0x30" (identifier "uVar11") (- "-") (number_literal "0x30"))) () ")")) (goto_statement "goto LAB_000240d4;" (goto "goto") (statement_identifier "LAB_000240d4") (; ";"))) (expression_statement "pcVar14 = (char *)0x0;" (assignment_expression "pcVar14 = (char *)0x0" (identifier "pcVar14") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pcVar5 = param_3;" (assignment_expression "pcVar5 = param_3" (identifier "pcVar5") (= "=") (identifier "param_3")) (; ";")) (goto_statement "goto LAB_00024154;" (goto "goto") (statement_identifier "LAB_00024154") (; ";")) (} "}"))) (if_statement "if (uVar11 != 0x23) {\n          if (uVar11 != 0x2d) goto LAB_000240c4;\n          iVar6 = 0x2d;\n          goto LAB_0002406c;\n        }" (if "if") (parenthesized_expression "(uVar11 != 0x23)" (( "(") (binary_expression "uVar11 != 0x23" (identifier "uVar11") (!= "!=") (number_literal "0x23")) () ")")) (compound_statement "{\n          if (uVar11 != 0x2d) goto LAB_000240c4;\n          iVar6 = 0x2d;\n          goto LAB_0002406c;\n        }" ({ "{") (if_statement "if (uVar11 != 0x2d) goto LAB_000240c4;" (if "if") (parenthesized_expression "(uVar11 != 0x2d)" (( "(") (binary_expression "uVar11 != 0x2d" (identifier "uVar11") (!= "!=") (number_literal "0x2d")) () ")")) (goto_statement "goto LAB_000240c4;" (goto "goto") (statement_identifier "LAB_000240c4") (; ";"))) (expression_statement "iVar6 = 0x2d;" (assignment_expression "iVar6 = 0x2d" (identifier "iVar6") (= "=") (number_literal "0x2d")) (; ";")) (goto_statement "goto LAB_0002406c;" (goto "goto") (statement_identifier "LAB_0002406c") (; ";")) (} "}"))) (expression_statement "param_3 = param_3 + 1;" (assignment_expression "param_3 = param_3 + 1" (identifier "param_3") (= "=") (binary_expression "param_3 + 1" (identifier "param_3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "cVar1 = *param_3;" (assignment_expression "cVar1 = *param_3" (identifier "cVar1") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (} "}"))) (expression_statement "iVar6 = 0x30;" (assignment_expression "iVar6 = 0x30" (identifier "iVar6") (= "=") (number_literal "0x30")) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";"))) (} "}")))) (if_statement "if ((uint)(param_2 - (int)piVar18) < 2) goto LAB_00023ff8;" (if "if") (parenthesized_expression "((uint)(param_2 - (int)piVar18) < 2)" (( "(") (binary_expression "(uint)(param_2 - (int)piVar18) < 2" (call_expression "(uint)(param_2 - (int)piVar18)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_2 - (int)piVar18)" (( "(") (binary_expression "param_2 - (int)piVar18" (identifier "param_2") (- "-") (cast_expression "(int)piVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar18"))) () ")"))) (< "<") (number_literal "2")) () ")")) (goto_statement "goto LAB_00023ff8;" (goto "goto") (statement_identifier "LAB_00023ff8") (; ";"))) (if_statement "if (param_1 != (char *)0x0) {\n    *param_1 = cVar9;\n    param_1 = param_1 + 1;\n  }" (if "if") (parenthesized_expression "(param_1 != (char *)0x0)" (( "(") (binary_expression "param_1 != (char *)0x0" (identifier "param_1") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    *param_1 = cVar9;\n    param_1 = param_1 + 1;\n  }" ({ "{") (expression_statement "*param_1 = cVar9;" (assignment_expression "*param_1 = cVar9" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "cVar9")) (; ";")) (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 "piVar18 = (int *)((int)piVar18 + 1);" (assignment_expression "piVar18 = (int *)((int)piVar18 + 1)" (identifier "piVar18") (= "=") (cast_expression "(int *)((int)piVar18 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar18 + 1)" (( "(") (binary_expression "(int)piVar18 + 1" (cast_expression "(int)piVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar18")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (goto_statement "goto LAB_00023fc0;" (goto "goto") (statement_identifier "LAB_00023fc0") (; ";")) (labeled_statement "LAB_00024154:\n  do {\n    uVar11 = (uint)pcVar5[1];\n    param_3 = pcVar5 + 1;\n    uVar4 = uVar11 - 0x30;\n    if (((int)pcVar14 < 0xccccccd) && ((pcVar14 != (char *)0xccccccc || (*pcVar5 < 0x38)))) {\n      pcVar14 = (char *)(*pcVar5 + -0x30 + (int)pcVar14 * 10);\n    }\n    else {\n      if (9 < uVar4) {\n        pcVar14 = (char *)0x7fffffff;\n        break;\n      }\n      uVar11 = (uint)pcVar5[2];\n      pcVar14 = (char *)0x7fffffff;\n      param_3 = pcVar5 + 2;\n      uVar4 = uVar11 - 0x30;\n    }\n    pcVar5 = param_3;\n  } while (uVar4 < 10);" (statement_identifier "LAB_00024154") (: ":") (do_statement "do {\n    uVar11 = (uint)pcVar5[1];\n    param_3 = pcVar5 + 1;\n    uVar4 = uVar11 - 0x30;\n    if (((int)pcVar14 < 0xccccccd) && ((pcVar14 != (char *)0xccccccc || (*pcVar5 < 0x38)))) {\n      pcVar14 = (char *)(*pcVar5 + -0x30 + (int)pcVar14 * 10);\n    }\n    else {\n      if (9 < uVar4) {\n        pcVar14 = (char *)0x7fffffff;\n        break;\n      }\n      uVar11 = (uint)pcVar5[2];\n      pcVar14 = (char *)0x7fffffff;\n      param_3 = pcVar5 + 2;\n      uVar4 = uVar11 - 0x30;\n    }\n    pcVar5 = param_3;\n  } while (uVar4 < 10);" (do "do") (compound_statement "{\n    uVar11 = (uint)pcVar5[1];\n    param_3 = pcVar5 + 1;\n    uVar4 = uVar11 - 0x30;\n    if (((int)pcVar14 < 0xccccccd) && ((pcVar14 != (char *)0xccccccc || (*pcVar5 < 0x38)))) {\n      pcVar14 = (char *)(*pcVar5 + -0x30 + (int)pcVar14 * 10);\n    }\n    else {\n      if (9 < uVar4) {\n        pcVar14 = (char *)0x7fffffff;\n        break;\n      }\n      uVar11 = (uint)pcVar5[2];\n      pcVar14 = (char *)0x7fffffff;\n      param_3 = pcVar5 + 2;\n      uVar4 = uVar11 - 0x30;\n    }\n    pcVar5 = param_3;\n  }" ({ "{") (expression_statement "uVar11 = (uint)pcVar5[1];" (assignment_expression "uVar11 = (uint)pcVar5[1]" (identifier "uVar11") (= "=") (cast_expression "(uint)pcVar5[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pcVar5[1]" (identifier "pcVar5") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "param_3 = pcVar5 + 1;" (assignment_expression "param_3 = pcVar5 + 1" (identifier "param_3") (= "=") (binary_expression "pcVar5 + 1" (identifier "pcVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar4 = uVar11 - 0x30;" (assignment_expression "uVar4 = uVar11 - 0x30" (identifier "uVar4") (= "=") (binary_expression "uVar11 - 0x30" (identifier "uVar11") (- "-") (number_literal "0x30"))) (; ";")) (if_statement "if (((int)pcVar14 < 0xccccccd) && ((pcVar14 != (char *)0xccccccc || (*pcVar5 < 0x38)))) {\n      pcVar14 = (char *)(*pcVar5 + -0x30 + (int)pcVar14 * 10);\n    }\n    else {\n      if (9 < uVar4) {\n        pcVar14 = (char *)0x7fffffff;\n        break;\n      }\n      uVar11 = (uint)pcVar5[2];\n      pcVar14 = (char *)0x7fffffff;\n      param_3 = pcVar5 + 2;\n      uVar4 = uVar11 - 0x30;\n    }" (if "if") (parenthesized_expression "(((int)pcVar14 < 0xccccccd) && ((pcVar14 != (char *)0xccccccc || (*pcVar5 < 0x38))))" (( "(") (binary_expression "((int)pcVar14 < 0xccccccd) && ((pcVar14 != (char *)0xccccccc || (*pcVar5 < 0x38)))" (parenthesized_expression "((int)pcVar14 < 0xccccccd)" (( "(") (binary_expression "(int)pcVar14 < 0xccccccd" (cast_expression "(int)pcVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar14")) (< "<") (number_literal "0xccccccd")) () ")")) (&& "&&") (parenthesized_expression "((pcVar14 != (char *)0xccccccc || (*pcVar5 < 0x38)))" (( "(") (parenthesized_expression "(pcVar14 != (char *)0xccccccc || (*pcVar5 < 0x38))" (( "(") (binary_expression "pcVar14 != (char *)0xccccccc || (*pcVar5 < 0x38)" (binary_expression "pcVar14 != (char *)0xccccccc" (identifier "pcVar14") (!= "!=") (cast_expression "(char *)0xccccccc" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xccccccc"))) (|| "||") (parenthesized_expression "(*pcVar5 < 0x38)" (( "(") (binary_expression "*pcVar5 < 0x38" (pointer_expression "*pcVar5" (* "*") (identifier "pcVar5")) (< "<") (number_literal "0x38")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n      pcVar14 = (char *)(*pcVar5 + -0x30 + (int)pcVar14 * 10);\n    }" ({ "{") (expression_statement "pcVar14 = (char *)(*pcVar5 + -0x30 + (int)pcVar14 * 10);" (assignment_expression "pcVar14 = (char *)(*pcVar5 + -0x30 + (int)pcVar14 * 10)" (identifier "pcVar14") (= "=") (cast_expression "(char *)(*pcVar5 + -0x30 + (int)pcVar14 * 10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*pcVar5 + -0x30 + (int)pcVar14 * 10)" (( "(") (binary_expression "*pcVar5 + -0x30 + (int)pcVar14 * 10" (binary_expression "*pcVar5 + -0x30" (pointer_expression "*pcVar5" (* "*") (identifier "pcVar5")) (+ "+") (number_literal "-0x30")) (+ "+") (binary_expression "(int)pcVar14 * 10" (cast_expression "(int)pcVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar14")) (* "*") (number_literal "10"))) () ")")))) (; ";")) (} "}")) (else_clause "else {\n      if (9 < uVar4) {\n        pcVar14 = (char *)0x7fffffff;\n        break;\n      }\n      uVar11 = (uint)pcVar5[2];\n      pcVar14 = (char *)0x7fffffff;\n      param_3 = pcVar5 + 2;\n      uVar4 = uVar11 - 0x30;\n    }" (else "else") (compound_statement "{\n      if (9 < uVar4) {\n        pcVar14 = (char *)0x7fffffff;\n        break;\n      }\n      uVar11 = (uint)pcVar5[2];\n      pcVar14 = (char *)0x7fffffff;\n      param_3 = pcVar5 + 2;\n      uVar4 = uVar11 - 0x30;\n    }" ({ "{") (if_statement "if (9 < uVar4) {\n        pcVar14 = (char *)0x7fffffff;\n        break;\n      }" (if "if") (parenthesized_expression "(9 < uVar4)" (( "(") (binary_expression "9 < uVar4" (number_literal "9") (< "<") (identifier "uVar4")) () ")")) (compound_statement "{\n        pcVar14 = (char *)0x7fffffff;\n        break;\n      }" ({ "{") (expression_statement "pcVar14 = (char *)0x7fffffff;" (assignment_expression "pcVar14 = (char *)0x7fffffff" (identifier "pcVar14") (= "=") (cast_expression "(char *)0x7fffffff" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x7fffffff"))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "uVar11 = (uint)pcVar5[2];" (assignment_expression "uVar11 = (uint)pcVar5[2]" (identifier "uVar11") (= "=") (cast_expression "(uint)pcVar5[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pcVar5[2]" (identifier "pcVar5") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "pcVar14 = (char *)0x7fffffff;" (assignment_expression "pcVar14 = (char *)0x7fffffff" (identifier "pcVar14") (= "=") (cast_expression "(char *)0x7fffffff" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x7fffffff"))) (; ";")) (expression_statement "param_3 = pcVar5 + 2;" (assignment_expression "param_3 = pcVar5 + 2" (identifier "param_3") (= "=") (binary_expression "pcVar5 + 2" (identifier "pcVar5") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "uVar4 = uVar11 - 0x30;" (assignment_expression "uVar4 = uVar11 - 0x30" (identifier "uVar4") (= "=") (binary_expression "uVar11 - 0x30" (identifier "uVar11") (- "-") (number_literal "0x30"))) (; ";")) (} "}")))) (expression_statement "pcVar5 = param_3;" (assignment_expression "pcVar5 = param_3" (identifier "pcVar5") (= "=") (identifier "param_3")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar4 < 10)" (( "(") (binary_expression "uVar4 < 10" (identifier "uVar4") (< "<") (number_literal "10")) () ")")) (; ";"))) (labeled_statement "LAB_000240d4:\n  if ((uVar11 == 0x45) || (uVar11 == 0x4f)) {\n    uVar11 = (uint)param_3[1];\n    param_3 = param_3 + 1;\n  }" (statement_identifier "LAB_000240d4") (: ":") (if_statement "if ((uVar11 == 0x45) || (uVar11 == 0x4f)) {\n    uVar11 = (uint)param_3[1];\n    param_3 = param_3 + 1;\n  }" (if "if") (parenthesized_expression "((uVar11 == 0x45) || (uVar11 == 0x4f))" (( "(") (binary_expression "(uVar11 == 0x45) || (uVar11 == 0x4f)" (parenthesized_expression "(uVar11 == 0x45)" (( "(") (binary_expression "uVar11 == 0x45" (identifier "uVar11") (== "==") (number_literal "0x45")) () ")")) (|| "||") (parenthesized_expression "(uVar11 == 0x4f)" (( "(") (binary_expression "uVar11 == 0x4f" (identifier "uVar11") (== "==") (number_literal "0x4f")) () ")"))) () ")")) (compound_statement "{\n    uVar11 = (uint)param_3[1];\n    param_3 = param_3 + 1;\n  }" ({ "{") (expression_statement "uVar11 = (uint)param_3[1];" (assignment_expression "uVar11 = (uint)param_3[1]" (identifier "uVar11") (= "=") (cast_expression "(uint)param_3[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "param_3 = param_3 + 1;" (assignment_expression "param_3 = param_3 + 1" (identifier "param_3") (= "=") (binary_expression "param_3 + 1" (identifier "param_3") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (expression_statement "pcVar5 = param_3;" (assignment_expression "pcVar5 = param_3" (identifier "pcVar5") (= "=") (identifier "param_3")) (; ";")) (if_statement "if ((uVar11 & 0xff) < 0x7b) {\n                    \n                    \n    piVar18 = (int *)(*(code *)(&_gp_1 + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)))();\n    return piVar18;\n  }" (if "if") (parenthesized_expression "((uVar11 & 0xff) < 0x7b)" (( "(") (binary_expression "(uVar11 & 0xff) < 0x7b" (parenthesized_expression "(uVar11 & 0xff)" (( "(") (binary_expression "uVar11 & 0xff" (identifier "uVar11") (& "&") (number_literal "0xff")) () ")")) (< "<") (number_literal "0x7b")) () ")")) (compound_statement "{\n                    \n                    \n    piVar18 = (int *)(*(code *)(&_gp_1 + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)))();\n    return piVar18;\n  }" ({ "{") (expression_statement "piVar18 = (int *)(*(code *)(&_gp_1 + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)))();" (assignment_expression "piVar18 = (int *)(*(code *)(&_gp_1 + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)))()" (identifier "piVar18") (= "=") (cast_expression "(int *)(*(code *)(&_gp_1 + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)(&_gp_1 + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)))" (( "(") (pointer_expression "*(code *)(&_gp_1 + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0))" (* "*") (cast_expression "(code *)(&_gp_1 + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0))" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&_gp_1 + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0))" (( "(") (binary_expression "&_gp_1 + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)" (pointer_expression "&_gp_1" (& "&") (identifier "_gp_1")) (+ "+") (pointer_expression "*(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)" (* "*") (cast_expression "(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)" (( "(") (binary_expression "puVar20 + (uVar11 & 0xff) * 4 + 0x67a0" (binary_expression "puVar20 + (uVar11 & 0xff) * 4" (identifier "puVar20") (+ "+") (binary_expression "(uVar11 & 0xff) * 4" (parenthesized_expression "(uVar11 & 0xff)" (( "(") (binary_expression "uVar11 & 0xff" (identifier "uVar11") (& "&") (number_literal "0xff")) () ")")) (* "*") (number_literal "4"))) (+ "+") (number_literal "0x67a0")) () ")"))))) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (return_statement "return piVar18;" (return "return") (identifier "piVar18") (; ";")) (} "}"))) (do_statement "do {\n    pcVar5 = pcVar5 + -1;\n    pcVar16 = param_3 + (1 - (int)pcVar5);\n  } while (*pcVar5 != '%');" (do "do") (compound_statement "{\n    pcVar5 = pcVar5 + -1;\n    pcVar16 = param_3 + (1 - (int)pcVar5);\n  }" ({ "{") (expression_statement "pcVar5 = pcVar5 + -1;" (assignment_expression "pcVar5 = pcVar5 + -1" (identifier "pcVar5") (= "=") (binary_expression "pcVar5 + -1" (identifier "pcVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "pcVar16 = param_3 + (1 - (int)pcVar5);" (assignment_expression "pcVar16 = param_3 + (1 - (int)pcVar5)" (identifier "pcVar16") (= "=") (binary_expression "param_3 + (1 - (int)pcVar5)" (identifier "param_3") (+ "+") (parenthesized_expression "(1 - (int)pcVar5)" (( "(") (binary_expression "1 - (int)pcVar5" (number_literal "1") (- "-") (cast_expression "(int)pcVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar5"))) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*pcVar5 != '%')" (( "(") (binary_expression "*pcVar5 != '%'" (pointer_expression "*pcVar5" (* "*") (identifier "pcVar5")) (!= "!=") (char_literal "'%'" (' "'") (character "%") (' "'"))) () ")")) (; ";")) (expression_statement "pcVar12 = pcVar14;" (assignment_expression "pcVar12 = pcVar14" (identifier "pcVar12") (= "=") (identifier "pcVar14")) (; ";")) (if_statement "if ((int)pcVar14 < 0) {\n    pcVar12 = (char *)0x0;\n  }" (if "if") (parenthesized_expression "((int)pcVar14 < 0)" (( "(") (binary_expression "(int)pcVar14 < 0" (cast_expression "(int)pcVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar14")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    pcVar12 = (char *)0x0;\n  }" ({ "{") (expression_statement "pcVar12 = (char *)0x0;" (assignment_expression "pcVar12 = (char *)0x0" (identifier "pcVar12") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (expression_statement "pcVar13 = pcVar16;" (assignment_expression "pcVar13 = pcVar16" (identifier "pcVar13") (= "=") (identifier "pcVar16")) (; ";")) (if_statement "if (pcVar16 <= pcVar12) {\n    pcVar13 = pcVar12;\n  }" (if "if") (parenthesized_expression "(pcVar16 <= pcVar12)" (( "(") (binary_expression "pcVar16 <= pcVar12" (identifier "pcVar16") (<= "<=") (identifier "pcVar12")) () ")")) (compound_statement "{\n    pcVar13 = pcVar12;\n  }" ({ "{") (expression_statement "pcVar13 = pcVar12;" (assignment_expression "pcVar13 = pcVar12" (identifier "pcVar13") (= "=") (identifier "pcVar12")) (; ";")) (} "}"))) (if_statement "if ((char *)(param_2 - (int)piVar18) <= pcVar13) {\nLAB_00023ff8:\n    piVar18 = (int *)0x0;\n    goto LAB_00023ffc;\n  }" (if "if") (parenthesized_expression "((char *)(param_2 - (int)piVar18) <= pcVar13)" (( "(") (binary_expression "(char *)(param_2 - (int)piVar18) <= pcVar13" (cast_expression "(char *)(param_2 - (int)piVar18)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 - (int)piVar18)" (( "(") (binary_expression "param_2 - (int)piVar18" (identifier "param_2") (- "-") (cast_expression "(int)piVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar18"))) () ")"))) (<= "<=") (identifier "pcVar13")) () ")")) (compound_statement "{\nLAB_00023ff8:\n    piVar18 = (int *)0x0;\n    goto LAB_00023ffc;\n  }" ({ "{") (labeled_statement "LAB_00023ff8:\n    piVar18 = (int *)0x0;" (statement_identifier "LAB_00023ff8") (: ":") (expression_statement "piVar18 = (int *)0x0;" (assignment_expression "piVar18 = (int *)0x0" (identifier "piVar18") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (goto_statement "goto LAB_00023ffc;" (goto "goto") (statement_identifier "LAB_00023ffc") (; ";")) (} "}"))) (if_statement "if (param_1 == (char *)0x0) {\n    piVar18 = (int *)((int)piVar18 + (int)pcVar13);\n  }\n  else {\n    pcVar15 = param_1;\n    if (pcVar16 < pcVar12) {\n      pcVar15 = param_1 + ((int)pcVar14 - (int)pcVar16);\n      if (iVar6 == 0x30) {\n        (*(code *)PTR_memset_00049524)(param_1,0x30);\n      }\n      else {\n        (*(code *)PTR_memset_00049524)(param_1,0x20);\n      }\n    }\n    if (cVar9 == '\0') {\n      (*(code *)PTR_memcpy_00049600)(pcVar15,pcVar5,pcVar16);\n    }\n    else {\n      (*pcVar10)(pcVar15,pcVar5,pcVar16);\n    }\n    param_1 = pcVar15 + (int)pcVar16;\n    piVar18 = (int *)((int)piVar18 + (int)pcVar13);\n  }" (if "if") (parenthesized_expression "(param_1 == (char *)0x0)" (( "(") (binary_expression "param_1 == (char *)0x0" (identifier "param_1") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    piVar18 = (int *)((int)piVar18 + (int)pcVar13);\n  }" ({ "{") (expression_statement "piVar18 = (int *)((int)piVar18 + (int)pcVar13);" (assignment_expression "piVar18 = (int *)((int)piVar18 + (int)pcVar13)" (identifier "piVar18") (= "=") (cast_expression "(int *)((int)piVar18 + (int)pcVar13)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar18 + (int)pcVar13)" (( "(") (binary_expression "(int)piVar18 + (int)pcVar13" (cast_expression "(int)piVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar18")) (+ "+") (cast_expression "(int)pcVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar13"))) () ")")))) (; ";")) (} "}")) (else_clause "else {\n    pcVar15 = param_1;\n    if (pcVar16 < pcVar12) {\n      pcVar15 = param_1 + ((int)pcVar14 - (int)pcVar16);\n      if (iVar6 == 0x30) {\n        (*(code *)PTR_memset_00049524)(param_1,0x30);\n      }\n      else {\n        (*(code *)PTR_memset_00049524)(param_1,0x20);\n      }\n    }\n    if (cVar9 == '\0') {\n      (*(code *)PTR_memcpy_00049600)(pcVar15,pcVar5,pcVar16);\n    }\n    else {\n      (*pcVar10)(pcVar15,pcVar5,pcVar16);\n    }\n    param_1 = pcVar15 + (int)pcVar16;\n    piVar18 = (int *)((int)piVar18 + (int)pcVar13);\n  }" (else "else") (compound_statement "{\n    pcVar15 = param_1;\n    if (pcVar16 < pcVar12) {\n      pcVar15 = param_1 + ((int)pcVar14 - (int)pcVar16);\n      if (iVar6 == 0x30) {\n        (*(code *)PTR_memset_00049524)(param_1,0x30);\n      }\n      else {\n        (*(code *)PTR_memset_00049524)(param_1,0x20);\n      }\n    }\n    if (cVar9 == '\0') {\n      (*(code *)PTR_memcpy_00049600)(pcVar15,pcVar5,pcVar16);\n    }\n    else {\n      (*pcVar10)(pcVar15,pcVar5,pcVar16);\n    }\n    param_1 = pcVar15 + (int)pcVar16;\n    piVar18 = (int *)((int)piVar18 + (int)pcVar13);\n  }" ({ "{") (expression_statement "pcVar15 = param_1;" (assignment_expression "pcVar15 = param_1" (identifier "pcVar15") (= "=") (identifier "param_1")) (; ";")) (if_statement "if (pcVar16 < pcVar12) {\n      pcVar15 = param_1 + ((int)pcVar14 - (int)pcVar16);\n      if (iVar6 == 0x30) {\n        (*(code *)PTR_memset_00049524)(param_1,0x30);\n      }\n      else {\n        (*(code *)PTR_memset_00049524)(param_1,0x20);\n      }\n    }" (if "if") (parenthesized_expression "(pcVar16 < pcVar12)" (( "(") (binary_expression "pcVar16 < pcVar12" (identifier "pcVar16") (< "<") (identifier "pcVar12")) () ")")) (compound_statement "{\n      pcVar15 = param_1 + ((int)pcVar14 - (int)pcVar16);\n      if (iVar6 == 0x30) {\n        (*(code *)PTR_memset_00049524)(param_1,0x30);\n      }\n      else {\n        (*(code *)PTR_memset_00049524)(param_1,0x20);\n      }\n    }" ({ "{") (expression_statement "pcVar15 = param_1 + ((int)pcVar14 - (int)pcVar16);" (assignment_expression "pcVar15 = param_1 + ((int)pcVar14 - (int)pcVar16)" (identifier "pcVar15") (= "=") (binary_expression "param_1 + ((int)pcVar14 - (int)pcVar16)" (identifier "param_1") (+ "+") (parenthesized_expression "((int)pcVar14 - (int)pcVar16)" (( "(") (binary_expression "(int)pcVar14 - (int)pcVar16" (cast_expression "(int)pcVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar14")) (- "-") (cast_expression "(int)pcVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar16"))) () ")")))) (; ";")) (if_statement "if (iVar6 == 0x30) {\n        (*(code *)PTR_memset_00049524)(param_1,0x30);\n      }\n      else {\n        (*(code *)PTR_memset_00049524)(param_1,0x20);\n      }" (if "if") (parenthesized_expression "(iVar6 == 0x30)" (( "(") (binary_expression "iVar6 == 0x30" (identifier "iVar6") (== "==") (number_literal "0x30")) () ")")) (compound_statement "{\n        (*(code *)PTR_memset_00049524)(param_1,0x30);\n      }" ({ "{") (expression_statement "(*(code *)PTR_memset_00049524)(param_1,0x30);" (call_expression "(*(code *)PTR_memset_00049524)(param_1,0x30)" (parenthesized_expression "(*(code *)PTR_memset_00049524)" (( "(") (pointer_expression "*(code *)PTR_memset_00049524" (* "*") (cast_expression "(code *)PTR_memset_00049524" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memset_00049524"))) () ")")) (argument_list "(param_1,0x30)" (( "(") (identifier "param_1") (, ",") (number_literal "0x30") () ")"))) (; ";")) (} "}")) (else_clause "else {\n        (*(code *)PTR_memset_00049524)(param_1,0x20);\n      }" (else "else") (compound_statement "{\n        (*(code *)PTR_memset_00049524)(param_1,0x20);\n      }" ({ "{") (expression_statement "(*(code *)PTR_memset_00049524)(param_1,0x20);" (call_expression "(*(code *)PTR_memset_00049524)(param_1,0x20)" (parenthesized_expression "(*(code *)PTR_memset_00049524)" (( "(") (pointer_expression "*(code *)PTR_memset_00049524" (* "*") (cast_expression "(code *)PTR_memset_00049524" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memset_00049524"))) () ")")) (argument_list "(param_1,0x20)" (( "(") (identifier "param_1") (, ",") (number_literal "0x20") () ")"))) (; ";")) (} "}")))) (} "}"))) (if_statement "if (cVar9 == '\0') {\n      (*(code *)PTR_memcpy_00049600)(pcVar15,pcVar5,pcVar16);\n    }\n    else {\n      (*pcVar10)(pcVar15,pcVar5,pcVar16);\n    }" (if "if") (parenthesized_expression "(cVar9 == '\0')" (( "(") (binary_expression "cVar9 == '\0'" (identifier "cVar9") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      (*(code *)PTR_memcpy_00049600)(pcVar15,pcVar5,pcVar16);\n    }" ({ "{") (expression_statement "(*(code *)PTR_memcpy_00049600)(pcVar15,pcVar5,pcVar16);" (call_expression "(*(code *)PTR_memcpy_00049600)(pcVar15,pcVar5,pcVar16)" (parenthesized_expression "(*(code *)PTR_memcpy_00049600)" (( "(") (pointer_expression "*(code *)PTR_memcpy_00049600" (* "*") (cast_expression "(code *)PTR_memcpy_00049600" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memcpy_00049600"))) () ")")) (argument_list "(pcVar15,pcVar5,pcVar16)" (( "(") (identifier "pcVar15") (, ",") (identifier "pcVar5") (, ",") (identifier "pcVar16") () ")"))) (; ";")) (} "}")) (else_clause "else {\n      (*pcVar10)(pcVar15,pcVar5,pcVar16);\n    }" (else "else") (compound_statement "{\n      (*pcVar10)(pcVar15,pcVar5,pcVar16);\n    }" ({ "{") (expression_statement "(*pcVar10)(pcVar15,pcVar5,pcVar16);" (call_expression "(*pcVar10)(pcVar15,pcVar5,pcVar16)" (parenthesized_expression "(*pcVar10)" (( "(") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) () ")")) (argument_list "(pcVar15,pcVar5,pcVar16)" (( "(") (identifier "pcVar15") (, ",") (identifier "pcVar5") (, ",") (identifier "pcVar16") () ")"))) (; ";")) (} "}")))) (expression_statement "param_1 = pcVar15 + (int)pcVar16;" (assignment_expression "param_1 = pcVar15 + (int)pcVar16" (identifier "param_1") (= "=") (binary_expression "pcVar15 + (int)pcVar16" (identifier "pcVar15") (+ "+") (cast_expression "(int)pcVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar16")))) (; ";")) (expression_statement "piVar18 = (int *)((int)piVar18 + (int)pcVar13);" (assignment_expression "piVar18 = (int *)((int)piVar18 + (int)pcVar13)" (identifier "piVar18") (= "=") (cast_expression "(int *)((int)piVar18 + (int)pcVar13)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar18 + (int)pcVar13)" (( "(") (binary_expression "(int)piVar18 + (int)pcVar13" (cast_expression "(int)piVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar18")) (+ "+") (cast_expression "(int)pcVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar13"))) () ")")))) (; ";")) (} "}")))) (labeled_statement "LAB_00023fc0:\n  cVar9 = param_3[1];" (statement_identifier "LAB_00023fc0") (: ":") (expression_statement "cVar9 = param_3[1];" (assignment_expression "cVar9 = param_3[1]" (identifier "cVar9") (= "=") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) (; ";"))) (expression_statement "param_3 = param_3 + 1;" (assignment_expression "param_3 = param_3 + 1" (identifier "param_3") (= "=") (binary_expression "param_3 + 1" (identifier "param_3") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (cVar9 == '\0') goto LAB_00023fcc;" (if "if") (parenthesized_expression "(cVar9 == '\0')" (( "(") (binary_expression "cVar9 == '\0'" (identifier "cVar9") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00023fcc;" (goto "goto") (statement_identifier "LAB_00023fcc") (; ";"))) (goto_statement "goto LAB_00023f94;" (goto "goto") (statement_identifier "LAB_00023f94") (; ";")) (} "}")))

size_t function_1(char *var_2,size_t var_3,char *var_22,type_1 *var_23,type_2 upcase,
                          type_2 *tzset_called,type_3 tz,int ns)

{
  char cVar1;
  type_4 *puVar2;
  char *var_4;
  char var_1;
  type_5 var_18;
  char *var_19;
  size_t sVar5;
  int var_9;
  int var_11;
  int var_7;
  type_6 *var_8;
  type_5 var_14;
  type_1 *var_21;
  char *var_16;
  type_1 *var_17;
  type_1 *var_20;
  char *var_13;
  int *piVar17;
  char *var_15;
  int var_10;
  type_4 *var_5;
  type_2 _Stack_4dd;
  int var_6;
  char *pcStack_4d8;
  type_6 *pcStack_4d4;
  type_3 local_4c0;
  int local_4bc;
  type_1 ltm;
  char ufmt [5];
  char buf [14];
  
  puVar2 = PTR___stack_chk_guard_000495fc;
  var_5 = PTR_LAB_00049218;
  var_4 = *(char **)PTR___stack_chk_guard_000495fc;
  var_1 = *var_22;
  var_15 = (char *)0x0;
  var_16 = (char *)var_3;
  var_13 = var_22;
  if (var_1 == '\0') {
LAB_00023fcc:
    if ((var_2 != (char *)0x0) && (var_3 != 0)) {
      *var_2 = '\0';
    }
LAB_00023ffc:
    if (var_4 == *(char **)puVar2) {
      return (size_t)var_15;
    }
    var_8 = nstrftime;
    var_5 = PTR___stack_chk_fail_000495d0;
    (*(type_6 *)PTR___stack_chk_fail_000495d0)();
    piVar17 = *(int **)(var_5 + 0x23cfc);
    _Stack_4dd = false;
    var_6 = *piVar17;
    pcStack_4d8 = var_13;
    pcStack_4d4 = var_8;
    sVar5 = function_1(var_4,(size_t)var_16,var_22,var_23,false,&_Stack_4dd,local_4c0,local_4bc
                               );
    if (var_6 != *piVar17) {
      var_8 = *(type_6 **)(var_5 + 0x23cd0);
      var_7 = var_6;
      (*var_8)();
      if (var_7 == 0) {
        var_7 = 1;
        piVar17 = (int *)(*(int *)(var_8 + 0x23898) + 0x6990);
        (**(type_6 **)(var_8 + 0x23c24))(piVar17,1,0x37,**(type_7 **)(var_8 + 0x23ca4));
        var_8 = *(type_6 **)(var_8 + 0x23b08);
        (*var_8)();
        *piVar17 = 0;
        piVar17[1] = 0;
        piVar17[2] = 0;
        piVar17[3] = 0;
        piVar17[4] = 0;
        piVar17[5] = 0;
        piVar17[6] = 0;
        piVar17[7] = 0;
        piVar17[8] = 0;
        piVar17[9] = 0;
        piVar17[10] = 0;
        piVar17[0xb] = 0;
        if (var_7 == 10) {
          sVar5 = (**(type_6 **)(var_8 + 0x239d8))();
          return sVar5;
        }
        *piVar17 = var_7;
        return (size_t)piVar17;
      }
      var_9 = (**(type_6 **)(var_8 + 0x23b58))();
      if (((var_9 != 0) && (var_10 = var_9 + 1, 6 < var_10 - var_7)) &&
         (var_11 = (**(type_6 **)(var_8 + 0x23b10))
                            (var_9 + -6,*(int *)(var_8 + 0x23898) + 0x69c8,7), var_11 == 0)) {
        var_7 = (**(type_6 **)(var_8 + 0x23b10))(var_10,*(int *)(var_8 + 0x23898) + 0x69d0,3);
        if (var_7 != 0) {
          **(int **)(var_8 + 0x23934) = var_10;
          piVar17 = *(int **)(var_8 + 0x23b68);
          *piVar17 = var_10;
          return (size_t)piVar17;
        }
        var_7 = var_9 + 4;
        **(int **)(var_8 + 0x23b24) = var_7;
      }
      **(int **)(var_8 + 0x23934) = var_7;
      piVar17 = *(int **)(var_8 + 0x23b68);
      *piVar17 = var_7;
      return (size_t)piVar17;
    }
    return sVar5;
  }
  var_8 = (type_6 *)(var_12 + 0x3e34);
LAB_00023f94:
  if (var_1 == '%') {
    var_7 = 0;
    var_1 = upcase;
LAB_0002406c:
    do {
      var_13 = var_13 + 1;
      cVar1 = *var_13;
      while (var_14 = (type_5)cVar1, var_14 != 0x30) {
        if (0x30 < (int)var_14) {
          if (var_14 == 0x5e) {
            var_1 = '\x01';
            goto LAB_0002406c;
          }
          if (var_14 == 0x5f) {
            var_7 = 0x5f;
            goto LAB_0002406c;
          }
LAB_000240c4:
          var_17 = (type_1 *)0xffffffff;
          if (9 < var_14 - 0x30) goto LAB_000240d4;
          var_17 = (type_1 *)0x0;
          var_16 = var_13;
          goto LAB_00024154;
        }
        if (var_14 != 0x23) {
          if (var_14 != 0x2d) goto LAB_000240c4;
          var_7 = 0x2d;
          goto LAB_0002406c;
        }
        var_13 = var_13 + 1;
        cVar1 = *var_13;
      }
      var_7 = 0x30;
    } while( true );
  }
  if (var_3 - (int)var_15 < 2) goto LAB_00023ff8;
  if (var_2 != (char *)0x0) {
    *var_2 = var_1;
    var_2 = var_2 + 1;
  }
  var_15 = var_15 + 1;
  goto LAB_00023fc0;
LAB_00024154:
  do {
    var_14 = (type_5)var_16[1];
    var_13 = var_16 + 1;
    var_18 = var_14 - 0x30;
    if (((int)var_17 < 0xccccccd) && ((var_17 != (type_1 *)0xccccccc || (*var_16 < 0x38)))) {
      var_17 = (type_1 *)(*var_16 + -0x30 + (int)var_17 * 10);
    }
    else {
      if (9 < var_18) {
        var_17 = (type_1 *)0x7fffffff;
        break;
      }
      var_14 = (type_5)var_16[2];
      var_17 = (type_1 *)0x7fffffff;
      var_13 = var_16 + 2;
      var_18 = var_14 - 0x30;
    }
    var_16 = var_13;
  } while (var_18 < 10);
LAB_000240d4:
  if ((var_14 == 0x45) || (var_14 == 0x4f)) {
    var_14 = (type_5)var_13[1];
    var_13 = var_13 + 1;
  }
  if ((var_14 & 0xff) < 0x7b) {
                    /* WARNING: Could not emulate address calculation at 0x000240fc */
                    /* WARNING: Treating indirect jump as call */
    sVar5 = (*(type_6 *)(&_gp + *(int *)(var_5 + (var_14 & 0xff) * 4 + 0x67a0)))();
    return sVar5;
  }
  var_16 = &DAT_00000025;
  var_19 = var_13;
  do {
    var_19 = var_19 + -1;
    var_20 = (type_1 *)(var_13 + (1 - (int)var_19));
  } while (*var_19 != '%');
  var_21 = var_17;
  if ((int)var_17 < 0) {
    var_21 = (type_1 *)0x0;
  }
  var_22 = (char *)(var_3 - (int)var_15);
  var_23 = var_20;
  if (var_20 <= var_21) {
    var_23 = var_21;
  }
  if (var_22 <= var_23) {
LAB_00023ff8:
    var_15 = (char *)0x0;
    goto LAB_00023ffc;
  }
  if (var_2 == (char *)0x0) {
    var_15 = (char *)((int)&var_23->tm_sec + (int)var_15);
  }
  else {
    var_16 = var_2;
    if (var_20 < var_21) {
      var_16 = var_2 + ((int)var_17 - (int)var_20);
      if (var_7 == 0x30) {
        (*(type_6 *)PTR_memset_00049524)(var_2,0x30);
      }
      else {
        (*(type_6 *)PTR_memset_00049524)(var_2,0x20);
      }
    }
    var_22 = (char *)var_20;
    if (var_1 == '\0') {
      (*(type_6 *)PTR_memcpy_00049600)(var_16);
    }
    else {
      (*var_8)(var_16);
    }
    var_2 = var_16 + (int)var_20;
    var_15 = (char *)((int)&var_23->tm_sec + (int)var_15);
    var_16 = var_19;
  }
LAB_00023fc0:
  var_1 = var_13[1];
  var_13 = var_13 + 1;
  if (var_1 == '\0') goto LAB_00023fcc;
  goto LAB_00023f94;
}


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

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

{
  char cVar1;
  undefined *puVar2;
  int iVar3;
  char cVar9;
  uint uVar4;
  char *pcVar5;
  int iVar6;
  int iVar7;
  byte *pbVar8;
  code *pcVar10;
  uint uVar11;
  char *pcVar12;
  char *pcVar13;
  char *pcVar14;
  char *pcVar15;
  char *pcVar16;
  int *piVar17;
  int *piVar18;
  int iVar19;
  undefined *puVar20;
  
  puVar2 = PTR___stack_chk_guard_000495fc;
  puVar20 = PTR_LAB_00049218;
  iVar3 = *(int *)PTR___stack_chk_guard_000495fc;
  cVar9 = *param_3;
  piVar18 = (int *)0x0;
  if (cVar9 == '\0') {
LAB_00023fcc:
    if ((param_1 != (char *)0x0) && (param_2 != 0)) {
      *param_1 = '\0';
    }
LAB_00023ffc:
    if (iVar3 == *(int *)puVar2) {
      return piVar18;
    }
    puVar20 = PTR___stack_chk_fail_000495d0;
    (*(code *)PTR___stack_chk_fail_000495d0)();
    piVar17 = *(int **)(puVar20 + 0x23cfc);
    iVar3 = *piVar17;
    piVar18 = (int *)MASKED();
    if (iVar3 == *piVar17) {
      return piVar18;
    }
    pcVar10 = *(code **)(puVar20 + 0x23cd0);
    (*pcVar10)();
    if (iVar3 != 0) {
      iVar6 = (**(code **)(pcVar10 + 0x23b58))();
      if (((iVar6 != 0) && (iVar19 = iVar6 + 1, 6 < iVar19 - iVar3)) &&
         (iVar7 = (**(code **)(pcVar10 + 0x23b10))
                            (iVar6 + -6,*(int *)(pcVar10 + 0x23898) + 0x69c8,7), iVar7 == 0)) {
        iVar3 = (**(code **)(pcVar10 + 0x23b10))(iVar19,*(int *)(pcVar10 + 0x23898) + 0x69d0,3);
        if (iVar3 != 0) {
          **(int **)(pcVar10 + 0x23934) = iVar19;
          piVar18 = *(int **)(pcVar10 + 0x23b68);
          *piVar18 = iVar19;
          return piVar18;
        }
        iVar3 = iVar6 + 4;
        **(int **)(pcVar10 + 0x23b24) = iVar3;
      }
      **(int **)(pcVar10 + 0x23934) = iVar3;
      piVar18 = *(int **)(pcVar10 + 0x23b68);
      *piVar18 = iVar3;
      return piVar18;
    }
    iVar3 = 1;
    piVar18 = (int *)(*(int *)(pcVar10 + 0x23898) + 0x6990);
    (**(code **)(pcVar10 + 0x23c24))(piVar18,1,0x37,**(undefined4 **)(pcVar10 + 0x23ca4));
    pcVar10 = *(code **)(pcVar10 + 0x23b08);
    (*pcVar10)();
    *piVar18 = 0;
    piVar18[1] = 0;
    piVar18[2] = 0;
    piVar18[3] = 0;
    piVar18[4] = 0;
    piVar18[5] = 0;
    piVar18[6] = 0;
    piVar18[7] = 0;
    piVar18[8] = 0;
    piVar18[9] = 0;
    piVar18[10] = 0;
    piVar18[0xb] = 0;
    if (iVar3 == 10) {
      pcVar10 = *(code **)(pcVar10 + 0x239d8);
      (*pcVar10)();
      piVar17 = (int *)(**(code **)(pcVar10 + 0x23abc))(0,piVar18,5);
      if (piVar18 == piVar17) {
        pbVar8 = (byte *)locale_charset();
        if ((*pbVar8 & 0xdf) == 0x55) {
          if (((((pbVar8[1] & 0xdf) == 0x54) && ((pbVar8[2] & 0xdf) == 0x46)) && (pbVar8[3] == 0x2d)
              ) && ((pbVar8[4] == 0x38 && (pbVar8[5] == 0)))) {
            if (*(char *)piVar17 != '`') {
              return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d8);
            }
            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e4);
          }
        }
        else if ((((((*pbVar8 & 0xdf) == 0x47) && ((pbVar8[1] & 0xdf) == 0x42)) &&
                  ((pbVar8[2] == 0x31 && ((pbVar8[3] == 0x38 && (pbVar8[4] == 0x30)))))) &&
                 (pbVar8[5] == 0x33)) && ((pbVar8[6] == 0x30 && (pbVar8[7] == 0)))) {
          if (*(char *)piVar17 != '`') {
            return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69dc);
          }
          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e0);
        }
        if (iVar3 != 9) {
          return (int *)(*(int *)(pcVar10 + 0x23700) + 0x69e8);
        }
        piVar17 = (int *)(*(int *)(pcVar10 + 0x23700) + 0x69d4);
      }
      return piVar17;
    }
    *piVar18 = iVar3;
    return piVar18;
  }
  pcVar10 = (code *)(PTR_LAB_00049280 + 0x3e34);
LAB_00023f94:
  if (cVar9 == '%') {
    iVar6 = 0;
    cVar9 = param_5;
LAB_0002406c:
    do {
      param_3 = param_3 + 1;
      cVar1 = *param_3;
      while (uVar11 = (uint)cVar1, uVar11 != 0x30) {
        if (0x30 < (int)uVar11) {
          if (uVar11 == 0x5e) {
            cVar9 = '\x01';
            goto LAB_0002406c;
          }
          if (uVar11 == 0x5f) {
            iVar6 = 0x5f;
            goto LAB_0002406c;
          }
LAB_000240c4:
          pcVar14 = (char *)0xffffffff;
          if (9 < uVar11 - 0x30) goto LAB_000240d4;
          pcVar14 = (char *)0x0;
          pcVar5 = param_3;
          goto LAB_00024154;
        }
        if (uVar11 != 0x23) {
          if (uVar11 != 0x2d) goto LAB_000240c4;
          iVar6 = 0x2d;
          goto LAB_0002406c;
        }
        param_3 = param_3 + 1;
        cVar1 = *param_3;
      }
      iVar6 = 0x30;
    } while( true );
  }
  if ((uint)(param_2 - (int)piVar18) < 2) goto LAB_00023ff8;
  if (param_1 != (char *)0x0) {
    *param_1 = cVar9;
    param_1 = param_1 + 1;
  }
  piVar18 = (int *)((int)piVar18 + 1);
  goto LAB_00023fc0;
LAB_00024154:
  do {
    uVar11 = (uint)pcVar5[1];
    param_3 = pcVar5 + 1;
    uVar4 = uVar11 - 0x30;
    if (((int)pcVar14 < 0xccccccd) && ((pcVar14 != (char *)0xccccccc || (*pcVar5 < 0x38)))) {
      pcVar14 = (char *)(*pcVar5 + -0x30 + (int)pcVar14 * 10);
    }
    else {
      if (9 < uVar4) {
        pcVar14 = (char *)0x7fffffff;
        break;
      }
      uVar11 = (uint)pcVar5[2];
      pcVar14 = (char *)0x7fffffff;
      param_3 = pcVar5 + 2;
      uVar4 = uVar11 - 0x30;
    }
    pcVar5 = param_3;
  } while (uVar4 < 10);
LAB_000240d4:
  if ((uVar11 == 0x45) || (uVar11 == 0x4f)) {
    uVar11 = (uint)param_3[1];
    param_3 = param_3 + 1;
  }
  pcVar5 = param_3;
  if ((uVar11 & 0xff) < 0x7b) {
                    /* WARNING: Could not emulate address calculation at 0x000240fc */
                    /* WARNING: Treating indirect jump as call */
    piVar18 = (int *)(*(code *)(&_gp_1 + *(int *)(puVar20 + (uVar11 & 0xff) * 4 + 0x67a0)))();
    return piVar18;
  }
  do {
    pcVar5 = pcVar5 + -1;
    pcVar16 = param_3 + (1 - (int)pcVar5);
  } while (*pcVar5 != '%');
  pcVar12 = pcVar14;
  if ((int)pcVar14 < 0) {
    pcVar12 = (char *)0x0;
  }
  pcVar13 = pcVar16;
  if (pcVar16 <= pcVar12) {
    pcVar13 = pcVar12;
  }
  if ((char *)(param_2 - (int)piVar18) <= pcVar13) {
LAB_00023ff8:
    piVar18 = (int *)0x0;
    goto LAB_00023ffc;
  }
  if (param_1 == (char *)0x0) {
    piVar18 = (int *)((int)piVar18 + (int)pcVar13);
  }
  else {
    pcVar15 = param_1;
    if (pcVar16 < pcVar12) {
      pcVar15 = param_1 + ((int)pcVar14 - (int)pcVar16);
      if (iVar6 == 0x30) {
        (*(code *)PTR_memset_00049524)(param_1,0x30);
      }
      else {
        (*(code *)PTR_memset_00049524)(param_1,0x20);
      }
    }
    if (cVar9 == '\0') {
      (*(code *)PTR_memcpy_00049600)(pcVar15,pcVar5,pcVar16);
    }
    else {
      (*pcVar10)(pcVar15,pcVar5,pcVar16);
    }
    param_1 = pcVar15 + (int)pcVar16;
    piVar18 = (int *)((int)piVar18 + (int)pcVar13);
  }
LAB_00023fc0:
  cVar9 = param_3[1];
  param_3 = param_3 + 1;
  if (cVar9 == '\0') goto LAB_00023fcc;
  goto LAB_00023f94;
}

