
/* std::time_get<char, std::istreambuf_iterator<char, std::char_traits<char> >
   >::_M_extract_num(std::istreambuf_iterator<char, std::char_traits<char> >,
   std::istreambuf_iterator<char, std::char_traits<char> >, int&, int, int, unsigned int,
   std::ios_base&, std::_Ios_Iostate&) const */

void std::time_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::_M_extract_num
               (undefined4 *param_1,undefined4 param_2,int *param_3,uint param_4,int *param_5,
               int param_6,int *param_7,int param_8,int param_9,int param_10,int param_11,
               uint *param_12)

{
  byte bVar1;
  ctype *pcVar2;
  uint uVar3;
  int iVar4;
  bool bVar5;
  bool bVar6;
  int iVar7;
  uint uVar8;
  int iVar9;
  int iVar10;
  
  pcVar2 = use_facet<std::ctype<char>>((locale *)(param_11 + 0x6c));
  if (param_10 == 2) {
    uVar3 = 10;
  }
  else {
    uVar3 = 1;
    if (param_10 == 4) {
      uVar3 = 1000;
    }
  }
  iVar9 = 0;
  iVar10 = 0;
  if (param_3 == (int *)0x0) goto LAB_0034b758;
LAB_0034b670:
  if (param_4 == 0xffffffff) {
    bVar5 = false;
    if ((uint)param_3[3] <= (uint)param_3[2]) {
      iVar7 = (**(code **)(*param_3 + 0x24))(param_3);
      bVar5 = iVar7 == -1;
      if (iVar7 == -1) {
        param_3 = (int *)0x0;
      }
    }
  }
  else {
    bVar5 = false;
  }
  if (param_5 == (int *)0x0) goto LAB_0034b768;
  while( true ) {
    if (param_6 == -1) {
      bVar6 = false;
      if ((uint)param_5[3] <= (uint)param_5[2]) {
        iVar7 = (**(code **)(*param_5 + 0x24))(param_5);
        bVar6 = iVar7 == -1;
        if (iVar7 == -1) {
          param_5 = (int *)0x0;
        }
      }
    }
    else {
      bVar6 = false;
    }
    if (bVar6 == bVar5) break;
    while( true ) {
      if (iVar10 == param_10) goto LAB_0034b778;
      if ((param_3 == (int *)0x0) || (param_4 != 0xffffffff)) {
        iVar7 = (int)(char)param_4;
        uVar8 = param_4 & 0xff;
      }
      else if ((byte *)param_3[2] < (byte *)param_3[3]) {
        bVar1 = *(byte *)param_3[2];
        iVar7 = (int)(char)bVar1;
        uVar8 = (uint)bVar1;
      }
      else {
        uVar8 = (**(code **)(*param_3 + 0x24))(param_3);
        if (uVar8 == 0xffffffff) {
          uVar8 = 0xff;
          iVar7 = -1;
          param_3 = (int *)0x0;
        }
        else {
          iVar7 = (int)(char)uVar8;
          uVar8 = uVar8 & 0xff;
        }
      }
      iVar4 = (int)(char)pcVar2[uVar8 + 0x11d];
      if (iVar4 == 0) {
        iVar4 = iVar7;
        if (*(code **)(*(int *)pcVar2 + 0x20) != (code *)PTR_do_narrow_004c2c88) {
          iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar7,0x2a);
        }
        if (iVar4 == 0x2a) goto LAB_0034b8c0;
        pcVar2[uVar8 + 0x11d] = SUB41(iVar4,0);
      }
      if (9 < (iVar4 - 0x30U & 0xff)) goto LAB_0034b8c0;
      iVar9 = (iVar4 - 0x30U) + iVar9 * 10;
      if ((param_9 < (int)(uVar3 * iVar9)) || ((int)(uVar3 + uVar3 * iVar9) <= param_8))
      goto LAB_0034b8c0;
      uVar3 = uVar3 / 10;
      if ((uint)param_3[2] < (uint)param_3[3]) {
        param_3[2] = param_3[2] + 1;
      }
      else {
        (**(code **)(*param_3 + 0x28))(param_3);
      }
      iVar10 = iVar10 + 1;
      param_4 = 0xffffffff;
      if (param_3 != (int *)0x0) goto LAB_0034b670;
LAB_0034b758:
      bVar5 = param_4 == 0xffffffff;
      if (param_5 != (int *)0x0) break;
LAB_0034b768:
      if ((param_6 == -1) == bVar5) goto LAB_0034b770;
    }
  }
LAB_0034b770:
  if (iVar10 != param_10) {
LAB_0034b8c0:
    if ((param_10 == 4) && (iVar10 == 2)) {
      *param_7 = iVar9 + -100;
    }
    else {
      *param_12 = *param_12 | 4;
    }
    *param_1 = param_3;
    param_1[1] = param_4;
    return;
  }
LAB_0034b778:
  *param_7 = iVar9;
  *param_1 = param_3;
  param_1[1] = param_4;
  return;
}



/* std::time_get<char, std::istreambuf_iterator<char, std::char_traits<char> >
   >::_M_extract_num(std::istreambuf_iterator<char, std::char_traits<char> >,
   std::istreambuf_iterator<char, std::char_traits<char> >, int&, int, int, unsigned int,
   std::ios_base&, std::_Ios_Iostate&) const */

void std::time_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::_M_extract_num
               (undefined4 *param_1,undefined4 param_2,int *param_3,uint param_4,int *param_5,
               int param_6,int *param_7,int param_8,int param_9,int param_10,int param_11,
               uint *param_12)

{
  byte bVar1;
  ctype *pcVar2;
  uint uVar3;
  int iVar4;
  bool bVar5;
  bool bVar6;
  int iVar7;
  uint uVar8;
  int iVar9;
  int iVar10;
  
  pcVar2 = use_facet<std::ctype<char>>((locale *)(param_11 + 0x6c));
  if (param_10 == 2) {
    uVar3 = 10;
  }
  else {
    uVar3 = 1;
    if (param_10 == 4) {
      uVar3 = 1000;
    }
  }
  iVar9 = 0;
  iVar10 = 0;
  if (param_3 == (int *)0x0) goto LAB_0034b758;
LAB_0034b670:
  if (param_4 == 0xffffffff) {
    bVar5 = false;
    if ((uint)param_3[3] <= (uint)param_3[2]) {
      iVar7 = (**(code **)(*param_3 + 0x24))(param_3);
      bVar5 = iVar7 == -1;
      if (iVar7 == -1) {
        param_3 = (int *)0x0;
      }
    }
  }
  else {
    bVar5 = false;
  }
  if (param_5 == (int *)0x0) goto LAB_0034b768;
  while( true ) {
    if (param_6 == -1) {
      bVar6 = false;
      if ((uint)param_5[3] <= (uint)param_5[2]) {
        iVar7 = (**(code **)(*param_5 + 0x24))(param_5);
        bVar6 = iVar7 == -1;
        if (iVar7 == -1) {
          param_5 = (int *)0x0;
        }
      }
    }
    else {
      bVar6 = false;
    }
    if (bVar6 == bVar5) break;
    while( true ) {
      if (iVar10 == param_10) goto LAB_0034b778;
      if ((param_3 == (int *)0x0) || (param_4 != 0xffffffff)) {
        iVar7 = (int)(char)param_4;
        uVar8 = param_4 & 0xff;
      }
      else if ((byte *)param_3[2] < (byte *)param_3[3]) {
        bVar1 = *(byte *)param_3[2];
        iVar7 = (int)(char)bVar1;
        uVar8 = (uint)bVar1;
      }
      else {
        uVar8 = (**(code **)(*param_3 + 0x24))(param_3);
        if (uVar8 == 0xffffffff) {
          uVar8 = 0xff;
          iVar7 = -1;
          param_3 = (int *)0x0;
        }
        else {
          iVar7 = (int)(char)uVar8;
          uVar8 = uVar8 & 0xff;
        }
      }
      iVar4 = (int)(char)pcVar2[uVar8 + 0x11d];
      if (iVar4 == 0) {
        iVar4 = iVar7;
        if (*(code **)(*(int *)pcVar2 + 0x20) != (code *)PTR_do_narrow_004c2c88) {
          iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar7,0x2a);
        }
        if (iVar4 == 0x2a) goto LAB_0034b8c0;
        pcVar2[uVar8 + 0x11d] = SUB41(iVar4,0);
      }
      if (9 < (iVar4 - 0x30U & 0xff)) goto LAB_0034b8c0;
      iVar9 = (iVar4 - 0x30U) + iVar9 * 10;
      if ((param_9 < (int)(uVar3 * iVar9)) || ((int)(uVar3 + uVar3 * iVar9) <= param_8))
      goto LAB_0034b8c0;
      uVar3 = uVar3 / 10;
      if ((uint)param_3[2] < (uint)param_3[3]) {
        param_3[2] = param_3[2] + 1;
      }
      else {
        (**(code **)(*param_3 + 0x28))(param_3);
      }
      iVar10 = iVar10 + 1;
      param_4 = 0xffffffff;
      if (param_3 != (int *)0x0) goto LAB_0034b670;
LAB_0034b758:
      bVar5 = param_4 == 0xffffffff;
      if (param_5 != (int *)0x0) break;
LAB_0034b768:
      if ((param_6 == -1) == bVar5) goto LAB_0034b770;
    }
  }
LAB_0034b770:
  if (iVar10 != param_10) {
LAB_0034b8c0:
    if ((param_10 == 4) && (iVar10 == 2)) {
      *param_7 = iVar9 + -100;
    }
    else {
      *param_12 = *param_12 | 4;
    }
    *param_1 = param_3;
    param_1[1] = param_4;
    return;
  }
LAB_0034b778:
  *param_7 = iVar9;
  *param_1 = param_3;
  param_1[1] = param_4;
  return;
}


lui gp,0x18
addiu gp,gp,-0x2374
addu gp,gp,t9
addiu sp,sp,-0x50
lw t9,-0x65bc(gp)
sw a0,0x50(sp)
sw gp,0x10(sp)
sw s8,0x48(sp)
sw s7,0x44(sp)
sw s5,0x3c(sp)
or s5,a3,zero
sw s2,0x30(sp)
sw s1,0x2c(sp)
sw s0,0x28(sp)
or s0,a2,zero
sw ra,0x4c(sp)
sw s6,0x40(sp)
sw s4,0x38(sp)
sw s3,0x34(sp)
sw a2,0x58(sp)
sw a3,0x5c(sp)
lw a0,0x78(sp)
lw s2,0x74(sp)
lw s1,0x6c(sp)
addiu a0,a0,0x6c
bal 0x0034b25c
_lw s8,0x60(sp)
li v1,0x2
lw gp,0x10(sp)
or s7,v0,zero
beq s2,v1,0x0034b968
_lw t1,0x70(sp)
li v1,0x3e8
li v0,0x1
xori s4,s2,0x4
movz v0,v1,s4
or s4,v0,zero
lw t3,0x64(sp)
lui a3,0xcccc
or s3,zero,zero
or s6,zero,zero
addiu v0,t3,0x1
ori a3,a3,0xcccd
sltiu v0,v0,0x1
beq s0,zero,0x0034b758
_sw v0,0x18(sp)
li v0,-0x1
beq s5,v0,0x0034b7d8
_nop
or v1,zero,zero
beq s8,zero,0x0034b768
_lw a0,0x18(sp)
li v0,-0x1
beq t3,v0,0x0034b828
_nop
or a0,zero,zero
beq a0,v1,0x0034b770
_nop
beq s6,s2,0x0034b778
_lw v0,0x68(sp)
beq s0,zero,0x0034b6b4
_li v0,-0x1
beq s5,v0,0x0034b7b8
_nop
seb a1,s5
andi t5,s5,0xff
addu t5,s7,t5
lb v1,0x11d(t5)
bne v1,zero,0x0034b6ec
_lw v0,-0x65b8(gp)
lw v1,0x0(s7)
lw t9,0x20(v1)
bne t9,v0,0x0034b880
_li v0,0x2a
beq a1,v0,0x0034b8c0
_li v0,0x4
sb a1,0x11d(t5)
or v1,a1,zero
addiu v1,v1,-0x30
andi v0,v1,0xff
sltiu v0,v0,0xa
beq v0,zero,0x0034b8bc
_sll v0,s3,0x2
addu v0,v0,s3
sll v0,v0,0x1
addu s3,v1,v0
mul v0,s4,s3
slt v1,t1,v0
bne v1,zero,0x0034b8bc
_addu v0,s4,v0
slt v0,s1,v0
beq v0,zero,0x0034b8bc
_multu s4,a3
lw v0,0x8(s0)
lw v1,0xc(s0)
mfhi s4
sltu v1,v0,v1
beq v1,zero,0x0034b918
_srl s4,s4,0x3
addiu v0,v0,0x1
addiu s6,s6,0x1
li s5,-0x1
sw v0,0x8(s0)
bne s0,zero,0x0034b670
_li v0,-0x1
addiu v1,s5,0x1
bne s8,zero,0x0034b684
_sltiu v1,v1,0x1
lw a0,0x18(sp)
bne a0,v1,0x0034b69c
_nop
bne s6,s2,0x0034b8bc
_lw v0,0x68(sp)
lw ra,0x4c(sp)
lw s8,0x48(sp)
lw s7,0x44(sp)
lw s6,0x40(sp)
lw s4,0x38(sp)
lw s2,0x30(sp)
lw s1,0x2c(sp)
sw s3,0x0(v0)
lw v0,0x50(sp)
lw s3,0x34(sp)
sw s0,0x0(v0)
sw s5,0x4(v0)
lw s0,0x28(sp)
lw s5,0x3c(sp)
jr ra
_addiu sp,sp,0x50
lw v1,0x8(s0)
lw v0,0xc(s0)
sltu v0,v1,v0
beq v0,zero,0x0034b970
_nop
lb a1,0x0(v1)
b 0x0034b6bc
_andi t5,a1,0xff
lw v0,0x8(s0)
lw a0,0xc(s0)
sltu v0,v0,a0
bne v0,zero,0x0034b67c
_or v1,zero,zero
lw v0,0x0(s0)
sw t1,0x70(sp)
sw t3,0x1c(sp)
lw t9,0x24(v0)
jalr t9
_or a0,s0,zero
nor v0,zero,v0
lw gp,0x10(sp)
sltiu v1,v0,0x1
movz s0,zero,v0
lui v0,0xcccc
lw t3,0x1c(sp)
lw t1,0x70(sp)
b 0x0034b67c
_ori a3,v0,0xcccd
lw v0,0x8(s8)
lw a1,0xc(s8)
sltu v0,v0,a1
bne v0,zero,0x0034b694
_or a0,zero,zero
lw v0,0x0(s8)
sw t1,0x70(sp)
sw v1,0x20(sp)
sw t3,0x1c(sp)
lw t9,0x24(v0)
jalr t9
_or a0,s8,zero
nor v0,zero,v0
lw gp,0x10(sp)
sltiu a0,v0,0x1
movz s8,zero,v0
lui v0,0xcccc
lw t3,0x1c(sp)
lw v1,0x20(sp)
ori a3,v0,0xcccd
b 0x0034b694
_lw t1,0x70(sp)
li a2,0x2a
sw t5,0x20(sp)
sw t1,0x70(sp)
or a0,s7,zero
jalr t9
_sw t3,0x1c(sp)
or a1,v0,zero
lw gp,0x10(sp)
lui v0,0xcccc
lw t5,0x20(sp)
lw t1,0x70(sp)
ori a3,v0,0xcccd
li v0,0x2a
bne a1,v0,0x0034b6e4
_lw t3,0x1c(sp)
li v0,0x4
beq s2,v0,0x0034b950
_li v0,0x2
lw v0,0x7c(sp)
lw v1,0x7c(sp)
lw v0,0x0(v0)
ori v0,v0,0x4
sw v0,0x0(v1)
lw v0,0x50(sp)
lw ra,0x4c(sp)
lw s8,0x48(sp)
lw s7,0x44(sp)
lw s6,0x40(sp)
lw s4,0x38(sp)
lw s3,0x34(sp)
lw s2,0x30(sp)
lw s1,0x2c(sp)
sw s0,0x0(v0)
sw s5,0x4(v0)
lw s0,0x28(sp)
lw s5,0x3c(sp)
jr ra
_addiu sp,sp,0x50
lw v0,0x0(s0)
or a0,s0,zero
sw t1,0x70(sp)
addiu s6,s6,0x1
sw t3,0x1c(sp)
lw t9,0x28(v0)
jalr t9
_li s5,-0x1
lui v0,0xcccc
lw gp,0x10(sp)
ori a3,v0,0xcccd
lw t1,0x70(sp)
b 0x0034b750
_lw t3,0x1c(sp)
bne s6,v0,0x0034b8cc
_lw v0,0x7c(sp)
lw v1,0x68(sp)
addiu v0,s3,-0x64
b 0x0034b8dc
_sw v0,0x0(v1)
b 0x0034b648
_li s4,0xa
lw v0,0x0(s0)
sw t1,0x70(sp)
sw t3,0x1c(sp)
lw t9,0x24(v0)
jalr t9
_or a0,s0,zero
lui v1,0xcccc
lw gp,0x10(sp)
lw t3,0x1c(sp)
ori a3,v1,0xcccd
beq v0,s5,0x0034b9ac
_lw t1,0x70(sp)
seb a1,v0
b 0x0034b6bc
_andi t5,v0,0xff
li t5,0xff
li a1,-0x1
b 0x0034b6bc
_or s0,zero,zero
(translation_unit "/* std::time_get<char, std::istreambuf_iterator<char, std::char_traits<char> >\n   >::_M_extract_num(std::istreambuf_iterator<char, std::char_traits<char> >,\n   std::istreambuf_iterator<char, std::char_traits<char> >, int&, int, int, unsigned int,\n   std::ios_base&, std::_Ios_Iostate&) const */\n\nvoid std::time_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::_M_extract_num\n               (undefined4 *param_1,undefined4 param_2,int *param_3,uint param_4,int *param_5,\n               int param_6,int *param_7,int param_8,int param_9,int param_10,int param_11,\n               uint *param_12)\n\n{\n  byte bVar1;\n  ctype *pcVar2;\n  uint uVar3;\n  int iVar4;\n  bool bVar5;\n  bool bVar6;\n  int iVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  \n  pcVar2 = use_facet<std::ctype<char>>((locale *)(param_11 + 0x6c));\n  if (param_10 == 2) {\n    uVar3 = 10;\n  }\n  else {\n    uVar3 = 1;\n    if (param_10 == 4) {\n      uVar3 = 1000;\n    }\n  }\n  iVar9 = 0;\n  iVar10 = 0;\n  if (param_3 == (int *)0x0) goto LAB_0034b758;\nLAB_0034b670:\n  if (param_4 == 0xffffffff) {\n    bVar5 = false;\n    if ((uint)param_3[3] <= (uint)param_3[2]) {\n      iVar7 = (**(code **)(*param_3 + 0x24))(param_3);\n      bVar5 = iVar7 == -1;\n      if (iVar7 == -1) {\n        param_3 = (int *)0x0;\n      }\n    }\n  }\n  else {\n    bVar5 = false;\n  }\n  if (param_5 == (int *)0x0) goto LAB_0034b768;\n  while( true ) {\n    if (param_6 == -1) {\n      bVar6 = false;\n      if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar7 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar6 = iVar7 == -1;\n        if (iVar7 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    else {\n      bVar6 = false;\n    }\n    if (bVar6 == bVar5) break;\n    while( true ) {\n      if (iVar10 == param_10) goto LAB_0034b778;\n      if ((param_3 == (int *)0x0) || (param_4 != 0xffffffff)) {\n        iVar7 = (int)(char)param_4;\n        uVar8 = param_4 & 0xff;\n      }\n      else if ((byte *)param_3[2] < (byte *)param_3[3]) {\n        bVar1 = *(byte *)param_3[2];\n        iVar7 = (int)(char)bVar1;\n        uVar8 = (uint)bVar1;\n      }\n      else {\n        uVar8 = (**(code **)(*param_3 + 0x24))(param_3);\n        if (uVar8 == 0xffffffff) {\n          uVar8 = 0xff;\n          iVar7 = -1;\n          param_3 = (int *)0x0;\n        }\n        else {\n          iVar7 = (int)(char)uVar8;\n          uVar8 = uVar8 & 0xff;\n        }\n      }\n      iVar4 = (int)(char)pcVar2[uVar8 + 0x11d];\n      if (iVar4 == 0) {\n        iVar4 = iVar7;\n        if (*(code **)(*(int *)pcVar2 + 0x20) != (code *)PTR_do_narrow_004c2c88) {\n          iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar7,0x2a);\n        }\n        if (iVar4 == 0x2a) goto LAB_0034b8c0;\n        pcVar2[uVar8 + 0x11d] = SUB41(iVar4,0);\n      }\n      if (9 < (iVar4 - 0x30U & 0xff)) goto LAB_0034b8c0;\n      iVar9 = (iVar4 - 0x30U) + iVar9 * 10;\n      if ((param_9 < (int)(uVar3 * iVar9)) || ((int)(uVar3 + uVar3 * iVar9) <= param_8))\n      goto LAB_0034b8c0;\n      uVar3 = uVar3 / 10;\n      if ((uint)param_3[2] < (uint)param_3[3]) {\n        param_3[2] = param_3[2] + 1;\n      }\n      else {\n        (**(code **)(*param_3 + 0x28))(param_3);\n      }\n      iVar10 = iVar10 + 1;\n      param_4 = 0xffffffff;\n      if (param_3 != (int *)0x0) goto LAB_0034b670;\nLAB_0034b758:\n      bVar5 = param_4 == 0xffffffff;\n      if (param_5 != (int *)0x0) break;\nLAB_0034b768:\n      if ((param_6 == -1) == bVar5) goto LAB_0034b770;\n    }\n  }\nLAB_0034b770:\n  if (iVar10 != param_10) {\nLAB_0034b8c0:\n    if ((param_10 == 4) && (iVar10 == 2)) {\n      *param_7 = iVar9 + -100;\n    }\n    else {\n      *param_12 = *param_12 | 4;\n    }\n    *param_1 = param_3;\n    param_1[1] = param_4;\n    return;\n  }\nLAB_0034b778:\n  *param_7 = iVar9;\n  *param_1 = param_3;\n  param_1[1] = param_4;\n  return;\n}\n\n" comment (declaration "void std::time_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::_M_extract_num\n               (undefined4 *param_1,undefined4 param_2,int *param_3,uint param_4,int *param_5,\n               int param_6,int *param_7,int param_8,int param_9,int param_10,int param_11,\n               uint *param_12)\n\n{\n  byte bVar1;" primitive_type (ERROR "std::" identifier : :) identifier (ERROR "<char" < primitive_type) , (ERROR "std::" identifier : :) identifier (ERROR "<char" < primitive_type) , (ERROR "std::char_traits<char>>>::_M_extract_num\n               (undefined4 *param_1,undefined4 param_2,int *param_3,uint param_4,int *param_5,\n               int param_6,int *param_7,int param_8,int param_9,int param_10,int param_11,\n               uint *param_12)\n\n{\n  byte" identifier : : identifier < primitive_type >> > : : (function_declarator "_M_extract_num\n               (undefined4 *param_1,undefined4 param_2,int *param_3,uint param_4,int *param_5,\n               int param_6,int *param_7,int param_8,int param_9,int param_10,int param_11,\n               uint *param_12)" identifier (parameter_list "(undefined4 *param_1,undefined4 param_2,int *param_3,uint param_4,int *param_5,\n               int param_6,int *param_7,int param_8,int param_9,int param_10,int param_11,\n               uint *param_12)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "uint param_4" type_identifier identifier) , (parameter_declaration "int *param_5" primitive_type (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "int param_6" primitive_type identifier) , (parameter_declaration "int *param_7" primitive_type (pointer_declarator "*param_7" * identifier)) , (parameter_declaration "int param_8" primitive_type identifier) , (parameter_declaration "int param_9" primitive_type identifier) , (parameter_declaration "int param_10" primitive_type identifier) , (parameter_declaration "int param_11" primitive_type identifier) , (parameter_declaration "uint *param_12" type_identifier (pointer_declarator "*param_12" * identifier)) ))) { identifier) identifier ;) (declaration "ctype *pcVar2;" type_identifier (pointer_declarator "*pcVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "bool bVar5;" primitive_type identifier ;) (declaration "bool bVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (expression_statement "pcVar2 = use_facet<std::ctype<char>>((locale *)(param_11 + 0x6c));" (update_expression "pcVar2 = use_facet<std::ctype<char>>((locale *)(param_11 + 0x6c))" (binary_expression "pcVar2 = use_facet<std::ctype<char>>((locale *)(param_11 + 0x6c))" (assignment_expression "pcVar2 = use_facet<std" identifier = (binary_expression "use_facet<std" identifier < identifier)) (ERROR "::ctype" : : identifier) < (binary_expression "char>>((locale *)(param_11 + 0x6c))" identifier >> (parenthesized_expression "((locale *)(param_11 + 0x6c))" ( (cast_expression "(locale *)(param_11 + 0x6c)" ( (type_descriptor "locale *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_11 + 0x6c)" ( (binary_expression "param_11 + 0x6c" identifier + number_literal) ))) )))) --) ;) (if_statement "if (param_10 == 2) {\n    uVar3 = 10;\n  }\n  else {\n    uVar3 = 1;\n    if (param_10 == 4) {\n      uVar3 = 1000;\n    }\n  }" if (parenthesized_expression "(param_10 == 2)" ( (binary_expression "param_10 == 2" identifier == number_literal) )) (compound_statement "{\n    uVar3 = 10;\n  }" { (expression_statement "uVar3 = 10;" (assignment_expression "uVar3 = 10" identifier = number_literal) ;) }) (else_clause "else {\n    uVar3 = 1;\n    if (param_10 == 4) {\n      uVar3 = 1000;\n    }\n  }" else (compound_statement "{\n    uVar3 = 1;\n    if (param_10 == 4) {\n      uVar3 = 1000;\n    }\n  }" { (expression_statement "uVar3 = 1;" (assignment_expression "uVar3 = 1" identifier = number_literal) ;) (if_statement "if (param_10 == 4) {\n      uVar3 = 1000;\n    }" if (parenthesized_expression "(param_10 == 4)" ( (binary_expression "param_10 == 4" identifier == number_literal) )) (compound_statement "{\n      uVar3 = 1000;\n    }" { (expression_statement "uVar3 = 1000;" (assignment_expression "uVar3 = 1000" identifier = number_literal) ;) })) }))) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (if_statement "if (param_3 == (int *)0x0) goto LAB_0034b758;" if (parenthesized_expression "(param_3 == (int *)0x0)" ( (binary_expression "param_3 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0034b758;" goto statement_identifier ;)) (labeled_statement "LAB_0034b670:\n  if (param_4 == 0xffffffff) {\n    bVar5 = false;\n    if ((uint)param_3[3] <= (uint)param_3[2]) {\n      iVar7 = (**(code **)(*param_3 + 0x24))(param_3);\n      bVar5 = iVar7 == -1;\n      if (iVar7 == -1) {\n        param_3 = (int *)0x0;\n      }\n    }\n  }\n  else {\n    bVar5 = false;\n  }" statement_identifier : (if_statement "if (param_4 == 0xffffffff) {\n    bVar5 = false;\n    if ((uint)param_3[3] <= (uint)param_3[2]) {\n      iVar7 = (**(code **)(*param_3 + 0x24))(param_3);\n      bVar5 = iVar7 == -1;\n      if (iVar7 == -1) {\n        param_3 = (int *)0x0;\n      }\n    }\n  }\n  else {\n    bVar5 = false;\n  }" if (parenthesized_expression "(param_4 == 0xffffffff)" ( (binary_expression "param_4 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n    bVar5 = false;\n    if ((uint)param_3[3] <= (uint)param_3[2]) {\n      iVar7 = (**(code **)(*param_3 + 0x24))(param_3);\n      bVar5 = iVar7 == -1;\n      if (iVar7 == -1) {\n        param_3 = (int *)0x0;\n      }\n    }\n  }" { (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" identifier = false) ;) (if_statement "if ((uint)param_3[3] <= (uint)param_3[2]) {\n      iVar7 = (**(code **)(*param_3 + 0x24))(param_3);\n      bVar5 = iVar7 == -1;\n      if (iVar7 == -1) {\n        param_3 = (int *)0x0;\n      }\n    }" if (parenthesized_expression "((uint)param_3[3] <= (uint)param_3[2])" ( (binary_expression "(uint)param_3[3] <= (uint)param_3[2]" (cast_expression "(uint)param_3[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_3[3]" identifier [ number_literal ])) <= (cast_expression "(uint)param_3[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_3[2]" identifier [ number_literal ]))) )) (compound_statement "{\n      iVar7 = (**(code **)(*param_3 + 0x24))(param_3);\n      bVar5 = iVar7 == -1;\n      if (iVar7 == -1) {\n        param_3 = (int *)0x0;\n      }\n    }" { (expression_statement "iVar7 = (**(code **)(*param_3 + 0x24))(param_3);" (assignment_expression "iVar7 = (**(code **)(*param_3 + 0x24))(param_3)" identifier = (call_expression "(**(code **)(*param_3 + 0x24))(param_3)" (parenthesized_expression "(**(code **)(*param_3 + 0x24))" ( (pointer_expression "**(code **)(*param_3 + 0x24)" * (pointer_expression "*(code **)(*param_3 + 0x24)" * (cast_expression "(code **)(*param_3 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_3 + 0x24)" ( (binary_expression "*param_3 + 0x24" (pointer_expression "*param_3" * identifier) + number_literal) ))))) )) (argument_list "(param_3)" ( identifier )))) ;) (expression_statement "bVar5 = iVar7 == -1;" (assignment_expression "bVar5 = iVar7 == -1" identifier = (binary_expression "iVar7 == -1" identifier == number_literal)) ;) (if_statement "if (iVar7 == -1) {\n        param_3 = (int *)0x0;\n      }" if (parenthesized_expression "(iVar7 == -1)" ( (binary_expression "iVar7 == -1" identifier == number_literal) )) (compound_statement "{\n        param_3 = (int *)0x0;\n      }" { (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) })) }) (else_clause "else {\n    bVar5 = false;\n  }" else (compound_statement "{\n    bVar5 = false;\n  }" { (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" identifier = false) ;) })))) (if_statement "if (param_5 == (int *)0x0) goto LAB_0034b768;" if (parenthesized_expression "(param_5 == (int *)0x0)" ( (binary_expression "param_5 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0034b768;" goto statement_identifier ;)) (while_statement "while( true ) {\n    if (param_6 == -1) {\n      bVar6 = false;\n      if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar7 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar6 = iVar7 == -1;\n        if (iVar7 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    else {\n      bVar6 = false;\n    }\n    if (bVar6 == bVar5) break;\n    while( true ) {\n      if (iVar10 == param_10) goto LAB_0034b778;\n      if ((param_3 == (int *)0x0) || (param_4 != 0xffffffff)) {\n        iVar7 = (int)(char)param_4;\n        uVar8 = param_4 & 0xff;\n      }\n      else if ((byte *)param_3[2] < (byte *)param_3[3]) {\n        bVar1 = *(byte *)param_3[2];\n        iVar7 = (int)(char)bVar1;\n        uVar8 = (uint)bVar1;\n      }\n      else {\n        uVar8 = (**(code **)(*param_3 + 0x24))(param_3);\n        if (uVar8 == 0xffffffff) {\n          uVar8 = 0xff;\n          iVar7 = -1;\n          param_3 = (int *)0x0;\n        }\n        else {\n          iVar7 = (int)(char)uVar8;\n          uVar8 = uVar8 & 0xff;\n        }\n      }\n      iVar4 = (int)(char)pcVar2[uVar8 + 0x11d];\n      if (iVar4 == 0) {\n        iVar4 = iVar7;\n        if (*(code **)(*(int *)pcVar2 + 0x20) != (code *)PTR_do_narrow_004c2c88) {\n          iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar7,0x2a);\n        }\n        if (iVar4 == 0x2a) goto LAB_0034b8c0;\n        pcVar2[uVar8 + 0x11d] = SUB41(iVar4,0);\n      }\n      if (9 < (iVar4 - 0x30U & 0xff)) goto LAB_0034b8c0;\n      iVar9 = (iVar4 - 0x30U) + iVar9 * 10;\n      if ((param_9 < (int)(uVar3 * iVar9)) || ((int)(uVar3 + uVar3 * iVar9) <= param_8))\n      goto LAB_0034b8c0;\n      uVar3 = uVar3 / 10;\n      if ((uint)param_3[2] < (uint)param_3[3]) {\n        param_3[2] = param_3[2] + 1;\n      }\n      else {\n        (**(code **)(*param_3 + 0x28))(param_3);\n      }\n      iVar10 = iVar10 + 1;\n      param_4 = 0xffffffff;\n      if (param_3 != (int *)0x0) goto LAB_0034b670;\nLAB_0034b758:\n      bVar5 = param_4 == 0xffffffff;\n      if (param_5 != (int *)0x0) break;\nLAB_0034b768:\n      if ((param_6 == -1) == bVar5) goto LAB_0034b770;\n    }\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    if (param_6 == -1) {\n      bVar6 = false;\n      if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar7 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar6 = iVar7 == -1;\n        if (iVar7 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    else {\n      bVar6 = false;\n    }\n    if (bVar6 == bVar5) break;\n    while( true ) {\n      if (iVar10 == param_10) goto LAB_0034b778;\n      if ((param_3 == (int *)0x0) || (param_4 != 0xffffffff)) {\n        iVar7 = (int)(char)param_4;\n        uVar8 = param_4 & 0xff;\n      }\n      else if ((byte *)param_3[2] < (byte *)param_3[3]) {\n        bVar1 = *(byte *)param_3[2];\n        iVar7 = (int)(char)bVar1;\n        uVar8 = (uint)bVar1;\n      }\n      else {\n        uVar8 = (**(code **)(*param_3 + 0x24))(param_3);\n        if (uVar8 == 0xffffffff) {\n          uVar8 = 0xff;\n          iVar7 = -1;\n          param_3 = (int *)0x0;\n        }\n        else {\n          iVar7 = (int)(char)uVar8;\n          uVar8 = uVar8 & 0xff;\n        }\n      }\n      iVar4 = (int)(char)pcVar2[uVar8 + 0x11d];\n      if (iVar4 == 0) {\n        iVar4 = iVar7;\n        if (*(code **)(*(int *)pcVar2 + 0x20) != (code *)PTR_do_narrow_004c2c88) {\n          iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar7,0x2a);\n        }\n        if (iVar4 == 0x2a) goto LAB_0034b8c0;\n        pcVar2[uVar8 + 0x11d] = SUB41(iVar4,0);\n      }\n      if (9 < (iVar4 - 0x30U & 0xff)) goto LAB_0034b8c0;\n      iVar9 = (iVar4 - 0x30U) + iVar9 * 10;\n      if ((param_9 < (int)(uVar3 * iVar9)) || ((int)(uVar3 + uVar3 * iVar9) <= param_8))\n      goto LAB_0034b8c0;\n      uVar3 = uVar3 / 10;\n      if ((uint)param_3[2] < (uint)param_3[3]) {\n        param_3[2] = param_3[2] + 1;\n      }\n      else {\n        (**(code **)(*param_3 + 0x28))(param_3);\n      }\n      iVar10 = iVar10 + 1;\n      param_4 = 0xffffffff;\n      if (param_3 != (int *)0x0) goto LAB_0034b670;\nLAB_0034b758:\n      bVar5 = param_4 == 0xffffffff;\n      if (param_5 != (int *)0x0) break;\nLAB_0034b768:\n      if ((param_6 == -1) == bVar5) goto LAB_0034b770;\n    }\n  }" { (if_statement "if (param_6 == -1) {\n      bVar6 = false;\n      if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar7 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar6 = iVar7 == -1;\n        if (iVar7 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    else {\n      bVar6 = false;\n    }" if (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )) (compound_statement "{\n      bVar6 = false;\n      if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar7 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar6 = iVar7 == -1;\n        if (iVar7 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }" { (expression_statement "bVar6 = false;" (assignment_expression "bVar6 = false" identifier = false) ;) (if_statement "if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar7 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar6 = iVar7 == -1;\n        if (iVar7 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }" if (parenthesized_expression "((uint)param_5[3] <= (uint)param_5[2])" ( (binary_expression "(uint)param_5[3] <= (uint)param_5[2]" (cast_expression "(uint)param_5[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_5[3]" identifier [ number_literal ])) <= (cast_expression "(uint)param_5[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_5[2]" identifier [ number_literal ]))) )) (compound_statement "{\n        iVar7 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar6 = iVar7 == -1;\n        if (iVar7 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }" { (expression_statement "iVar7 = (**(code **)(*param_5 + 0x24))(param_5);" (assignment_expression "iVar7 = (**(code **)(*param_5 + 0x24))(param_5)" identifier = (call_expression "(**(code **)(*param_5 + 0x24))(param_5)" (parenthesized_expression "(**(code **)(*param_5 + 0x24))" ( (pointer_expression "**(code **)(*param_5 + 0x24)" * (pointer_expression "*(code **)(*param_5 + 0x24)" * (cast_expression "(code **)(*param_5 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_5 + 0x24)" ( (binary_expression "*param_5 + 0x24" (pointer_expression "*param_5" * identifier) + number_literal) ))))) )) (argument_list "(param_5)" ( identifier )))) ;) (expression_statement "bVar6 = iVar7 == -1;" (assignment_expression "bVar6 = iVar7 == -1" identifier = (binary_expression "iVar7 == -1" identifier == number_literal)) ;) (if_statement "if (iVar7 == -1) {\n          param_5 = (int *)0x0;\n        }" if (parenthesized_expression "(iVar7 == -1)" ( (binary_expression "iVar7 == -1" identifier == number_literal) )) (compound_statement "{\n          param_5 = (int *)0x0;\n        }" { (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) })) }) (else_clause "else {\n      bVar6 = false;\n    }" else (compound_statement "{\n      bVar6 = false;\n    }" { (expression_statement "bVar6 = false;" (assignment_expression "bVar6 = false" identifier = false) ;) }))) (if_statement "if (bVar6 == bVar5) break;" if (parenthesized_expression "(bVar6 == bVar5)" ( (binary_expression "bVar6 == bVar5" identifier == identifier) )) (break_statement "break;" break ;)) (while_statement "while( true ) {\n      if (iVar10 == param_10) goto LAB_0034b778;\n      if ((param_3 == (int *)0x0) || (param_4 != 0xffffffff)) {\n        iVar7 = (int)(char)param_4;\n        uVar8 = param_4 & 0xff;\n      }\n      else if ((byte *)param_3[2] < (byte *)param_3[3]) {\n        bVar1 = *(byte *)param_3[2];\n        iVar7 = (int)(char)bVar1;\n        uVar8 = (uint)bVar1;\n      }\n      else {\n        uVar8 = (**(code **)(*param_3 + 0x24))(param_3);\n        if (uVar8 == 0xffffffff) {\n          uVar8 = 0xff;\n          iVar7 = -1;\n          param_3 = (int *)0x0;\n        }\n        else {\n          iVar7 = (int)(char)uVar8;\n          uVar8 = uVar8 & 0xff;\n        }\n      }\n      iVar4 = (int)(char)pcVar2[uVar8 + 0x11d];\n      if (iVar4 == 0) {\n        iVar4 = iVar7;\n        if (*(code **)(*(int *)pcVar2 + 0x20) != (code *)PTR_do_narrow_004c2c88) {\n          iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar7,0x2a);\n        }\n        if (iVar4 == 0x2a) goto LAB_0034b8c0;\n        pcVar2[uVar8 + 0x11d] = SUB41(iVar4,0);\n      }\n      if (9 < (iVar4 - 0x30U & 0xff)) goto LAB_0034b8c0;\n      iVar9 = (iVar4 - 0x30U) + iVar9 * 10;\n      if ((param_9 < (int)(uVar3 * iVar9)) || ((int)(uVar3 + uVar3 * iVar9) <= param_8))\n      goto LAB_0034b8c0;\n      uVar3 = uVar3 / 10;\n      if ((uint)param_3[2] < (uint)param_3[3]) {\n        param_3[2] = param_3[2] + 1;\n      }\n      else {\n        (**(code **)(*param_3 + 0x28))(param_3);\n      }\n      iVar10 = iVar10 + 1;\n      param_4 = 0xffffffff;\n      if (param_3 != (int *)0x0) goto LAB_0034b670;\nLAB_0034b758:\n      bVar5 = param_4 == 0xffffffff;\n      if (param_5 != (int *)0x0) break;\nLAB_0034b768:\n      if ((param_6 == -1) == bVar5) goto LAB_0034b770;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      if (iVar10 == param_10) goto LAB_0034b778;\n      if ((param_3 == (int *)0x0) || (param_4 != 0xffffffff)) {\n        iVar7 = (int)(char)param_4;\n        uVar8 = param_4 & 0xff;\n      }\n      else if ((byte *)param_3[2] < (byte *)param_3[3]) {\n        bVar1 = *(byte *)param_3[2];\n        iVar7 = (int)(char)bVar1;\n        uVar8 = (uint)bVar1;\n      }\n      else {\n        uVar8 = (**(code **)(*param_3 + 0x24))(param_3);\n        if (uVar8 == 0xffffffff) {\n          uVar8 = 0xff;\n          iVar7 = -1;\n          param_3 = (int *)0x0;\n        }\n        else {\n          iVar7 = (int)(char)uVar8;\n          uVar8 = uVar8 & 0xff;\n        }\n      }\n      iVar4 = (int)(char)pcVar2[uVar8 + 0x11d];\n      if (iVar4 == 0) {\n        iVar4 = iVar7;\n        if (*(code **)(*(int *)pcVar2 + 0x20) != (code *)PTR_do_narrow_004c2c88) {\n          iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar7,0x2a);\n        }\n        if (iVar4 == 0x2a) goto LAB_0034b8c0;\n        pcVar2[uVar8 + 0x11d] = SUB41(iVar4,0);\n      }\n      if (9 < (iVar4 - 0x30U & 0xff)) goto LAB_0034b8c0;\n      iVar9 = (iVar4 - 0x30U) + iVar9 * 10;\n      if ((param_9 < (int)(uVar3 * iVar9)) || ((int)(uVar3 + uVar3 * iVar9) <= param_8))\n      goto LAB_0034b8c0;\n      uVar3 = uVar3 / 10;\n      if ((uint)param_3[2] < (uint)param_3[3]) {\n        param_3[2] = param_3[2] + 1;\n      }\n      else {\n        (**(code **)(*param_3 + 0x28))(param_3);\n      }\n      iVar10 = iVar10 + 1;\n      param_4 = 0xffffffff;\n      if (param_3 != (int *)0x0) goto LAB_0034b670;\nLAB_0034b758:\n      bVar5 = param_4 == 0xffffffff;\n      if (param_5 != (int *)0x0) break;\nLAB_0034b768:\n      if ((param_6 == -1) == bVar5) goto LAB_0034b770;\n    }" { (if_statement "if (iVar10 == param_10) goto LAB_0034b778;" if (parenthesized_expression "(iVar10 == param_10)" ( (binary_expression "iVar10 == param_10" identifier == identifier) )) (goto_statement "goto LAB_0034b778;" goto statement_identifier ;)) (if_statement "if ((param_3 == (int *)0x0) || (param_4 != 0xffffffff)) {\n        iVar7 = (int)(char)param_4;\n        uVar8 = param_4 & 0xff;\n      }\n      else if ((byte *)param_3[2] < (byte *)param_3[3]) {\n        bVar1 = *(byte *)param_3[2];\n        iVar7 = (int)(char)bVar1;\n        uVar8 = (uint)bVar1;\n      }\n      else {\n        uVar8 = (**(code **)(*param_3 + 0x24))(param_3);\n        if (uVar8 == 0xffffffff) {\n          uVar8 = 0xff;\n          iVar7 = -1;\n          param_3 = (int *)0x0;\n        }\n        else {\n          iVar7 = (int)(char)uVar8;\n          uVar8 = uVar8 & 0xff;\n        }\n      }" if (parenthesized_expression "((param_3 == (int *)0x0) || (param_4 != 0xffffffff))" ( (binary_expression "(param_3 == (int *)0x0) || (param_4 != 0xffffffff)" (parenthesized_expression "(param_3 == (int *)0x0)" ( (binary_expression "param_3 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(param_4 != 0xffffffff)" ( (binary_expression "param_4 != 0xffffffff" identifier != number_literal) ))) )) (compound_statement "{\n        iVar7 = (int)(char)param_4;\n        uVar8 = param_4 & 0xff;\n      }" { (expression_statement "iVar7 = (int)(char)param_4;" (assignment_expression "iVar7 = (int)(char)param_4" identifier = (cast_expression "(int)(char)param_4" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)param_4" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (expression_statement "uVar8 = param_4 & 0xff;" (assignment_expression "uVar8 = param_4 & 0xff" identifier = (binary_expression "param_4 & 0xff" identifier & number_literal)) ;) }) (else_clause "else if ((byte *)param_3[2] < (byte *)param_3[3]) {\n        bVar1 = *(byte *)param_3[2];\n        iVar7 = (int)(char)bVar1;\n        uVar8 = (uint)bVar1;\n      }\n      else {\n        uVar8 = (**(code **)(*param_3 + 0x24))(param_3);\n        if (uVar8 == 0xffffffff) {\n          uVar8 = 0xff;\n          iVar7 = -1;\n          param_3 = (int *)0x0;\n        }\n        else {\n          iVar7 = (int)(char)uVar8;\n          uVar8 = uVar8 & 0xff;\n        }\n      }" else (if_statement "if ((byte *)param_3[2] < (byte *)param_3[3]) {\n        bVar1 = *(byte *)param_3[2];\n        iVar7 = (int)(char)bVar1;\n        uVar8 = (uint)bVar1;\n      }\n      else {\n        uVar8 = (**(code **)(*param_3 + 0x24))(param_3);\n        if (uVar8 == 0xffffffff) {\n          uVar8 = 0xff;\n          iVar7 = -1;\n          param_3 = (int *)0x0;\n        }\n        else {\n          iVar7 = (int)(char)uVar8;\n          uVar8 = uVar8 & 0xff;\n        }\n      }" if (parenthesized_expression "((byte *)param_3[2] < (byte *)param_3[3])" ( (binary_expression "(byte *)param_3[2] < (byte *)param_3[3]" (cast_expression "(byte *)param_3[2]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])) < (cast_expression "(byte *)param_3[3]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (compound_statement "{\n        bVar1 = *(byte *)param_3[2];\n        iVar7 = (int)(char)bVar1;\n        uVar8 = (uint)bVar1;\n      }" { (expression_statement "bVar1 = *(byte *)param_3[2];" (assignment_expression "bVar1 = *(byte *)param_3[2]" identifier = (pointer_expression "*(byte *)param_3[2]" * (cast_expression "(byte *)param_3[2]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])))) ;) (expression_statement "iVar7 = (int)(char)bVar1;" (assignment_expression "iVar7 = (int)(char)bVar1" identifier = (cast_expression "(int)(char)bVar1" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (expression_statement "uVar8 = (uint)bVar1;" (assignment_expression "uVar8 = (uint)bVar1" identifier = (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n        uVar8 = (**(code **)(*param_3 + 0x24))(param_3);\n        if (uVar8 == 0xffffffff) {\n          uVar8 = 0xff;\n          iVar7 = -1;\n          param_3 = (int *)0x0;\n        }\n        else {\n          iVar7 = (int)(char)uVar8;\n          uVar8 = uVar8 & 0xff;\n        }\n      }" else (compound_statement "{\n        uVar8 = (**(code **)(*param_3 + 0x24))(param_3);\n        if (uVar8 == 0xffffffff) {\n          uVar8 = 0xff;\n          iVar7 = -1;\n          param_3 = (int *)0x0;\n        }\n        else {\n          iVar7 = (int)(char)uVar8;\n          uVar8 = uVar8 & 0xff;\n        }\n      }" { (expression_statement "uVar8 = (**(code **)(*param_3 + 0x24))(param_3);" (assignment_expression "uVar8 = (**(code **)(*param_3 + 0x24))(param_3)" identifier = (call_expression "(**(code **)(*param_3 + 0x24))(param_3)" (parenthesized_expression "(**(code **)(*param_3 + 0x24))" ( (pointer_expression "**(code **)(*param_3 + 0x24)" * (pointer_expression "*(code **)(*param_3 + 0x24)" * (cast_expression "(code **)(*param_3 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_3 + 0x24)" ( (binary_expression "*param_3 + 0x24" (pointer_expression "*param_3" * identifier) + number_literal) ))))) )) (argument_list "(param_3)" ( identifier )))) ;) (if_statement "if (uVar8 == 0xffffffff) {\n          uVar8 = 0xff;\n          iVar7 = -1;\n          param_3 = (int *)0x0;\n        }\n        else {\n          iVar7 = (int)(char)uVar8;\n          uVar8 = uVar8 & 0xff;\n        }" if (parenthesized_expression "(uVar8 == 0xffffffff)" ( (binary_expression "uVar8 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n          uVar8 = 0xff;\n          iVar7 = -1;\n          param_3 = (int *)0x0;\n        }" { (expression_statement "uVar8 = 0xff;" (assignment_expression "uVar8 = 0xff" identifier = number_literal) ;) (expression_statement "iVar7 = -1;" (assignment_expression "iVar7 = -1" identifier = number_literal) ;) (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n          iVar7 = (int)(char)uVar8;\n          uVar8 = uVar8 & 0xff;\n        }" else (compound_statement "{\n          iVar7 = (int)(char)uVar8;\n          uVar8 = uVar8 & 0xff;\n        }" { (expression_statement "iVar7 = (int)(char)uVar8;" (assignment_expression "iVar7 = (int)(char)uVar8" identifier = (cast_expression "(int)(char)uVar8" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)uVar8" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (expression_statement "uVar8 = uVar8 & 0xff;" (assignment_expression "uVar8 = uVar8 & 0xff" identifier = (binary_expression "uVar8 & 0xff" identifier & number_literal)) ;) }))) }))))) (expression_statement "iVar4 = (int)(char)pcVar2[uVar8 + 0x11d];" (assignment_expression "iVar4 = (int)(char)pcVar2[uVar8 + 0x11d]" identifier = (cast_expression "(int)(char)pcVar2[uVar8 + 0x11d]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pcVar2[uVar8 + 0x11d]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pcVar2[uVar8 + 0x11d]" identifier [ (binary_expression "uVar8 + 0x11d" identifier + number_literal) ])))) ;) (if_statement "if (iVar4 == 0) {\n        iVar4 = iVar7;\n        if (*(code **)(*(int *)pcVar2 + 0x20) != (code *)PTR_do_narrow_004c2c88) {\n          iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar7,0x2a);\n        }\n        if (iVar4 == 0x2a) goto LAB_0034b8c0;\n        pcVar2[uVar8 + 0x11d] = SUB41(iVar4,0);\n      }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar4 = iVar7;\n        if (*(code **)(*(int *)pcVar2 + 0x20) != (code *)PTR_do_narrow_004c2c88) {\n          iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar7,0x2a);\n        }\n        if (iVar4 == 0x2a) goto LAB_0034b8c0;\n        pcVar2[uVar8 + 0x11d] = SUB41(iVar4,0);\n      }" { (expression_statement "iVar4 = iVar7;" (assignment_expression "iVar4 = iVar7" identifier = identifier) ;) (if_statement "if (*(code **)(*(int *)pcVar2 + 0x20) != (code *)PTR_do_narrow_004c2c88) {\n          iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar7,0x2a);\n        }" if (parenthesized_expression "(*(code **)(*(int *)pcVar2 + 0x20) != (code *)PTR_do_narrow_004c2c88)" ( (binary_expression "*(code **)(*(int *)pcVar2 + 0x20) != (code *)PTR_do_narrow_004c2c88" (pointer_expression "*(code **)(*(int *)pcVar2 + 0x20)" * (cast_expression "(code **)(*(int *)pcVar2 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 0x20)" ( (binary_expression "*(int *)pcVar2 + 0x20" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) != (cast_expression "(code *)PTR_do_narrow_004c2c88" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n          iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar7,0x2a);\n        }" { (expression_statement "iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar7,0x2a);" (assignment_expression "iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar7,0x2a)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar7,0x2a)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x20))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 0x20)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 0x20)" * (cast_expression "(code **)(*(int *)pcVar2 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 0x20)" ( (binary_expression "*(int *)pcVar2 + 0x20" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2,iVar7,0x2a)" ( identifier , identifier , number_literal )))) ;) })) (if_statement "if (iVar4 == 0x2a) goto LAB_0034b8c0;" if (parenthesized_expression "(iVar4 == 0x2a)" ( (binary_expression "iVar4 == 0x2a" identifier == number_literal) )) (goto_statement "goto LAB_0034b8c0;" goto statement_identifier ;)) (expression_statement "pcVar2[uVar8 + 0x11d] = SUB41(iVar4,0);" (assignment_expression "pcVar2[uVar8 + 0x11d] = SUB41(iVar4,0)" (subscript_expression "pcVar2[uVar8 + 0x11d]" identifier [ (binary_expression "uVar8 + 0x11d" identifier + number_literal) ]) = (call_expression "SUB41(iVar4,0)" identifier (argument_list "(iVar4,0)" ( identifier , number_literal )))) ;) })) (if_statement "if (9 < (iVar4 - 0x30U & 0xff)) goto LAB_0034b8c0;" if (parenthesized_expression "(9 < (iVar4 - 0x30U & 0xff))" ( (binary_expression "9 < (iVar4 - 0x30U & 0xff)" number_literal < (parenthesized_expression "(iVar4 - 0x30U & 0xff)" ( (binary_expression "iVar4 - 0x30U & 0xff" (binary_expression "iVar4 - 0x30U" identifier - number_literal) & number_literal) ))) )) (goto_statement "goto LAB_0034b8c0;" goto statement_identifier ;)) (expression_statement "iVar9 = (iVar4 - 0x30U) + iVar9 * 10;" (assignment_expression "iVar9 = (iVar4 - 0x30U) + iVar9 * 10" identifier = (binary_expression "(iVar4 - 0x30U) + iVar9 * 10" (parenthesized_expression "(iVar4 - 0x30U)" ( (binary_expression "iVar4 - 0x30U" identifier - number_literal) )) + (binary_expression "iVar9 * 10" identifier * number_literal))) ;) (if_statement "if ((param_9 < (int)(uVar3 * iVar9)) || ((int)(uVar3 + uVar3 * iVar9) <= param_8))\n      goto LAB_0034b8c0;" if (parenthesized_expression "((param_9 < (int)(uVar3 * iVar9)) || ((int)(uVar3 + uVar3 * iVar9) <= param_8))" ( (binary_expression "(param_9 < (int)(uVar3 * iVar9)) || ((int)(uVar3 + uVar3 * iVar9) <= param_8)" (parenthesized_expression "(param_9 < (int)(uVar3 * iVar9))" ( (binary_expression "param_9 < (int)(uVar3 * iVar9)" identifier < (cast_expression "(int)(uVar3 * iVar9)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar3 * iVar9)" ( (binary_expression "uVar3 * iVar9" identifier * identifier) )))) )) || (parenthesized_expression "((int)(uVar3 + uVar3 * iVar9) <= param_8)" ( (binary_expression "(int)(uVar3 + uVar3 * iVar9) <= param_8" (cast_expression "(int)(uVar3 + uVar3 * iVar9)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar3 + uVar3 * iVar9)" ( (binary_expression "uVar3 + uVar3 * iVar9" identifier + (binary_expression "uVar3 * iVar9" identifier * identifier)) ))) <= identifier) ))) )) (goto_statement "goto LAB_0034b8c0;" goto statement_identifier ;)) (expression_statement "uVar3 = uVar3 / 10;" (assignment_expression "uVar3 = uVar3 / 10" identifier = (binary_expression "uVar3 / 10" identifier / number_literal)) ;) (if_statement "if ((uint)param_3[2] < (uint)param_3[3]) {\n        param_3[2] = param_3[2] + 1;\n      }\n      else {\n        (**(code **)(*param_3 + 0x28))(param_3);\n      }" if (parenthesized_expression "((uint)param_3[2] < (uint)param_3[3])" ( (binary_expression "(uint)param_3[2] < (uint)param_3[3]" (cast_expression "(uint)param_3[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_3[2]" identifier [ number_literal ])) < (cast_expression "(uint)param_3[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (compound_statement "{\n        param_3[2] = param_3[2] + 1;\n      }" { (expression_statement "param_3[2] = param_3[2] + 1;" (assignment_expression "param_3[2] = param_3[2] + 1" (subscript_expression "param_3[2]" identifier [ number_literal ]) = (binary_expression "param_3[2] + 1" (subscript_expression "param_3[2]" identifier [ number_literal ]) + number_literal)) ;) }) (else_clause "else {\n        (**(code **)(*param_3 + 0x28))(param_3);\n      }" else (compound_statement "{\n        (**(code **)(*param_3 + 0x28))(param_3);\n      }" { (expression_statement "(**(code **)(*param_3 + 0x28))(param_3);" (call_expression "(**(code **)(*param_3 + 0x28))(param_3)" (parenthesized_expression "(**(code **)(*param_3 + 0x28))" ( (pointer_expression "**(code **)(*param_3 + 0x28)" * (pointer_expression "*(code **)(*param_3 + 0x28)" * (cast_expression "(code **)(*param_3 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_3 + 0x28)" ( (binary_expression "*param_3 + 0x28" (pointer_expression "*param_3" * identifier) + number_literal) ))))) )) (argument_list "(param_3)" ( identifier ))) ;) }))) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (expression_statement "param_4 = 0xffffffff;" (assignment_expression "param_4 = 0xffffffff" identifier = number_literal) ;) (if_statement "if (param_3 != (int *)0x0) goto LAB_0034b670;" if (parenthesized_expression "(param_3 != (int *)0x0)" ( (binary_expression "param_3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0034b670;" goto statement_identifier ;)) (labeled_statement "LAB_0034b758:\n      bVar5 = param_4 == 0xffffffff;" statement_identifier : (expression_statement "bVar5 = param_4 == 0xffffffff;" (assignment_expression "bVar5 = param_4 == 0xffffffff" identifier = (binary_expression "param_4 == 0xffffffff" identifier == number_literal)) ;)) (if_statement "if (param_5 != (int *)0x0) break;" if (parenthesized_expression "(param_5 != (int *)0x0)" ( (binary_expression "param_5 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0034b768:\n      if ((param_6 == -1) == bVar5) goto LAB_0034b770;" statement_identifier : (if_statement "if ((param_6 == -1) == bVar5) goto LAB_0034b770;" if (parenthesized_expression "((param_6 == -1) == bVar5)" ( (binary_expression "(param_6 == -1) == bVar5" (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )) == identifier) )) (goto_statement "goto LAB_0034b770;" goto statement_identifier ;))) })) })) (labeled_statement "LAB_0034b770:\n  if (iVar10 != param_10) {\nLAB_0034b8c0:\n    if ((param_10 == 4) && (iVar10 == 2)) {\n      *param_7 = iVar9 + -100;\n    }\n    else {\n      *param_12 = *param_12 | 4;\n    }\n    *param_1 = param_3;\n    param_1[1] = param_4;\n    return;\n  }" statement_identifier : (if_statement "if (iVar10 != param_10) {\nLAB_0034b8c0:\n    if ((param_10 == 4) && (iVar10 == 2)) {\n      *param_7 = iVar9 + -100;\n    }\n    else {\n      *param_12 = *param_12 | 4;\n    }\n    *param_1 = param_3;\n    param_1[1] = param_4;\n    return;\n  }" if (parenthesized_expression "(iVar10 != param_10)" ( (binary_expression "iVar10 != param_10" identifier != identifier) )) (compound_statement "{\nLAB_0034b8c0:\n    if ((param_10 == 4) && (iVar10 == 2)) {\n      *param_7 = iVar9 + -100;\n    }\n    else {\n      *param_12 = *param_12 | 4;\n    }\n    *param_1 = param_3;\n    param_1[1] = param_4;\n    return;\n  }" { (labeled_statement "LAB_0034b8c0:\n    if ((param_10 == 4) && (iVar10 == 2)) {\n      *param_7 = iVar9 + -100;\n    }\n    else {\n      *param_12 = *param_12 | 4;\n    }" statement_identifier : (if_statement "if ((param_10 == 4) && (iVar10 == 2)) {\n      *param_7 = iVar9 + -100;\n    }\n    else {\n      *param_12 = *param_12 | 4;\n    }" if (parenthesized_expression "((param_10 == 4) && (iVar10 == 2))" ( (binary_expression "(param_10 == 4) && (iVar10 == 2)" (parenthesized_expression "(param_10 == 4)" ( (binary_expression "param_10 == 4" identifier == number_literal) )) && (parenthesized_expression "(iVar10 == 2)" ( (binary_expression "iVar10 == 2" identifier == number_literal) ))) )) (compound_statement "{\n      *param_7 = iVar9 + -100;\n    }" { (expression_statement "*param_7 = iVar9 + -100;" (assignment_expression "*param_7 = iVar9 + -100" (pointer_expression "*param_7" * identifier) = (binary_expression "iVar9 + -100" identifier + number_literal)) ;) }) (else_clause "else {\n      *param_12 = *param_12 | 4;\n    }" else (compound_statement "{\n      *param_12 = *param_12 | 4;\n    }" { (expression_statement "*param_12 = *param_12 | 4;" (assignment_expression "*param_12 = *param_12 | 4" (pointer_expression "*param_12" * identifier) = (binary_expression "*param_12 | 4" (pointer_expression "*param_12" * identifier) | number_literal)) ;) })))) (expression_statement "*param_1 = param_3;" (assignment_expression "*param_1 = param_3" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[1] = param_4;" (assignment_expression "param_1[1] = param_4" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) }))) (labeled_statement "LAB_0034b778:\n  *param_7 = iVar9;" statement_identifier : (expression_statement "*param_7 = iVar9;" (assignment_expression "*param_7 = iVar9" (pointer_expression "*param_7" * identifier) = identifier) ;)) (expression_statement "*param_1 = param_3;" (assignment_expression "*param_1 = param_3" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[1] = param_4;" (assignment_expression "param_1[1] = param_4" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "/* std::time_get<char, std::istreambuf_iterator<char, std::char_traits<char> >\n   >::_M_extract_num(std::istreambuf_iterator<char, std::char_traits<char> >,\n   std::istreambuf_iterator<char, std::char_traits<char> >, int&, int, int, unsigned int,\n   std::ios_base&, std::_Ios_Iostate&) const */\n\nvoid std::time_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::_M_extract_num\n               (undefined4 *param_1,undefined4 param_2,int *param_3,uint param_4,int *param_5,\n               int param_6,int *param_7,int param_8,int param_9,int param_10,int param_11,\n               uint *param_12)\n\n{\n  byte bVar1;\n  ctype *pcVar2;\n  uint uVar3;\n  int iVar4;\n  bool bVar5;\n  bool bVar6;\n  int iVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  \n  pcVar2 = use_facet<std::ctype<char>>((locale *)(param_11 + 0x6c));\n  if (param_10 == 2) {\n    uVar3 = 10;\n  }\n  else {\n    uVar3 = 1;\n    if (param_10 == 4) {\n      uVar3 = 1000;\n    }\n  }\n  iVar9 = 0;\n  iVar10 = 0;\n  if (param_3 == (int *)0x0) goto LAB_0034b758;\nLAB_0034b670:\n  if (param_4 == 0xffffffff) {\n    bVar5 = false;\n    if ((uint)param_3[3] <= (uint)param_3[2]) {\n      iVar7 = (**(code **)(*param_3 + 0x24))(param_3);\n      bVar5 = iVar7 == -1;\n      if (iVar7 == -1) {\n        param_3 = (int *)0x0;\n      }\n    }\n  }\n  else {\n    bVar5 = false;\n  }\n  if (param_5 == (int *)0x0) goto LAB_0034b768;\n  while( true ) {\n    if (param_6 == -1) {\n      bVar6 = false;\n      if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar7 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar6 = iVar7 == -1;\n        if (iVar7 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    else {\n      bVar6 = false;\n    }\n    if (bVar6 == bVar5) break;\n    while( true ) {\n      if (iVar10 == param_10) goto LAB_0034b778;\n      if ((param_3 == (int *)0x0) || (param_4 != 0xffffffff)) {\n        iVar7 = (int)(char)param_4;\n        uVar8 = param_4 & 0xff;\n      }\n      else if ((byte *)param_3[2] < (byte *)param_3[3]) {\n        bVar1 = *(byte *)param_3[2];\n        iVar7 = (int)(char)bVar1;\n        uVar8 = (uint)bVar1;\n      }\n      else {\n        uVar8 = (**(code **)(*param_3 + 0x24))(param_3);\n        if (uVar8 == 0xffffffff) {\n          uVar8 = 0xff;\n          iVar7 = -1;\n          param_3 = (int *)0x0;\n        }\n        else {\n          iVar7 = (int)(char)uVar8;\n          uVar8 = uVar8 & 0xff;\n        }\n      }\n      iVar4 = (int)(char)pcVar2[uVar8 + 0x11d];\n      if (iVar4 == 0) {\n        iVar4 = iVar7;\n        if (*(code **)(*(int *)pcVar2 + 0x20) != (code *)PTR_do_narrow_004c2c88) {\n          iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar7,0x2a);\n        }\n        if (iVar4 == 0x2a) goto LAB_0034b8c0;\n        pcVar2[uVar8 + 0x11d] = SUB41(iVar4,0);\n      }\n      if (9 < (iVar4 - 0x30U & 0xff)) goto LAB_0034b8c0;\n      iVar9 = (iVar4 - 0x30U) + iVar9 * 10;\n      if ((param_9 < (int)(uVar3 * iVar9)) || ((int)(uVar3 + uVar3 * iVar9) <= param_8))\n      goto LAB_0034b8c0;\n      uVar3 = uVar3 / 10;\n      if ((uint)param_3[2] < (uint)param_3[3]) {\n        param_3[2] = param_3[2] + 1;\n      }\n      else {\n        (**(code **)(*param_3 + 0x28))(param_3);\n      }\n      iVar10 = iVar10 + 1;\n      param_4 = 0xffffffff;\n      if (param_3 != (int *)0x0) goto LAB_0034b670;\nLAB_0034b758:\n      bVar5 = param_4 == 0xffffffff;\n      if (param_5 != (int *)0x0) break;\nLAB_0034b768:\n      if ((param_6 == -1) == bVar5) goto LAB_0034b770;\n    }\n  }\nLAB_0034b770:\n  if (iVar10 != param_10) {\nLAB_0034b8c0:\n    if ((param_10 == 4) && (iVar10 == 2)) {\n      *param_7 = iVar9 + -100;\n    }\n    else {\n      *param_12 = *param_12 | 4;\n    }\n    *param_1 = param_3;\n    param_1[1] = param_4;\n    return;\n  }\nLAB_0034b778:\n  *param_7 = iVar9;\n  *param_1 = param_3;\n  param_1[1] = param_4;\n  return;\n}\n\n" comment (declaration "void std::time_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::_M_extract_num\n               (undefined4 *param_1,undefined4 param_2,int *param_3,uint param_4,int *param_5,\n               int param_6,int *param_7,int param_8,int param_9,int param_10,int param_11,\n               uint *param_12)\n\n{\n  byte bVar1;" primitive_type (ERROR "std::" identifier : :) identifier (ERROR "<char" < primitive_type) , (ERROR "std::" identifier : :) identifier (ERROR "<char" < primitive_type) , (ERROR "std::char_traits<char>>>::_M_extract_num\n               (undefined4 *param_1,undefined4 param_2,int *param_3,uint param_4,int *param_5,\n               int param_6,int *param_7,int param_8,int param_9,int param_10,int param_11,\n               uint *param_12)\n\n{\n  byte" identifier : : identifier < primitive_type >> > : : (function_declarator "_M_extract_num\n               (undefined4 *param_1,undefined4 param_2,int *param_3,uint param_4,int *param_5,\n               int param_6,int *param_7,int param_8,int param_9,int param_10,int param_11,\n               uint *param_12)" identifier (parameter_list "(undefined4 *param_1,undefined4 param_2,int *param_3,uint param_4,int *param_5,\n               int param_6,int *param_7,int param_8,int param_9,int param_10,int param_11,\n               uint *param_12)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "uint param_4" type_identifier identifier) , (parameter_declaration "int *param_5" primitive_type (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "int param_6" primitive_type identifier) , (parameter_declaration "int *param_7" primitive_type (pointer_declarator "*param_7" * identifier)) , (parameter_declaration "int param_8" primitive_type identifier) , (parameter_declaration "int param_9" primitive_type identifier) , (parameter_declaration "int param_10" primitive_type identifier) , (parameter_declaration "int param_11" primitive_type identifier) , (parameter_declaration "uint *param_12" type_identifier (pointer_declarator "*param_12" * identifier)) ))) { identifier) identifier ;) (declaration "ctype *pcVar2;" type_identifier (pointer_declarator "*pcVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "bool bVar5;" primitive_type identifier ;) (declaration "bool bVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (expression_statement "pcVar2 = use_facet<std::ctype<char>>((locale *)(param_11 + 0x6c));" (update_expression "pcVar2 = use_facet<std::ctype<char>>((locale *)(param_11 + 0x6c))" (binary_expression "pcVar2 = use_facet<std::ctype<char>>((locale *)(param_11 + 0x6c))" (assignment_expression "pcVar2 = use_facet<std" identifier = (binary_expression "use_facet<std" identifier < identifier)) (ERROR "::ctype" : : identifier) < (binary_expression "char>>((locale *)(param_11 + 0x6c))" identifier >> (parenthesized_expression "((locale *)(param_11 + 0x6c))" ( (cast_expression "(locale *)(param_11 + 0x6c)" ( (type_descriptor "locale *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_11 + 0x6c)" ( (binary_expression "param_11 + 0x6c" identifier + number_literal) ))) )))) --) ;) (if_statement "if (param_10 == 2) {\n    uVar3 = 10;\n  }\n  else {\n    uVar3 = 1;\n    if (param_10 == 4) {\n      uVar3 = 1000;\n    }\n  }" if (parenthesized_expression "(param_10 == 2)" ( (binary_expression "param_10 == 2" identifier == number_literal) )) (compound_statement "{\n    uVar3 = 10;\n  }" { (expression_statement "uVar3 = 10;" (assignment_expression "uVar3 = 10" identifier = number_literal) ;) }) (else_clause "else {\n    uVar3 = 1;\n    if (param_10 == 4) {\n      uVar3 = 1000;\n    }\n  }" else (compound_statement "{\n    uVar3 = 1;\n    if (param_10 == 4) {\n      uVar3 = 1000;\n    }\n  }" { (expression_statement "uVar3 = 1;" (assignment_expression "uVar3 = 1" identifier = number_literal) ;) (if_statement "if (param_10 == 4) {\n      uVar3 = 1000;\n    }" if (parenthesized_expression "(param_10 == 4)" ( (binary_expression "param_10 == 4" identifier == number_literal) )) (compound_statement "{\n      uVar3 = 1000;\n    }" { (expression_statement "uVar3 = 1000;" (assignment_expression "uVar3 = 1000" identifier = number_literal) ;) })) }))) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (if_statement "if (param_3 == (int *)0x0) goto LAB_0034b758;" if (parenthesized_expression "(param_3 == (int *)0x0)" ( (binary_expression "param_3 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0034b758;" goto statement_identifier ;)) (labeled_statement "LAB_0034b670:\n  if (param_4 == 0xffffffff) {\n    bVar5 = false;\n    if ((uint)param_3[3] <= (uint)param_3[2]) {\n      iVar7 = (**(code **)(*param_3 + 0x24))(param_3);\n      bVar5 = iVar7 == -1;\n      if (iVar7 == -1) {\n        param_3 = (int *)0x0;\n      }\n    }\n  }\n  else {\n    bVar5 = false;\n  }" statement_identifier : (if_statement "if (param_4 == 0xffffffff) {\n    bVar5 = false;\n    if ((uint)param_3[3] <= (uint)param_3[2]) {\n      iVar7 = (**(code **)(*param_3 + 0x24))(param_3);\n      bVar5 = iVar7 == -1;\n      if (iVar7 == -1) {\n        param_3 = (int *)0x0;\n      }\n    }\n  }\n  else {\n    bVar5 = false;\n  }" if (parenthesized_expression "(param_4 == 0xffffffff)" ( (binary_expression "param_4 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n    bVar5 = false;\n    if ((uint)param_3[3] <= (uint)param_3[2]) {\n      iVar7 = (**(code **)(*param_3 + 0x24))(param_3);\n      bVar5 = iVar7 == -1;\n      if (iVar7 == -1) {\n        param_3 = (int *)0x0;\n      }\n    }\n  }" { (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" identifier = false) ;) (if_statement "if ((uint)param_3[3] <= (uint)param_3[2]) {\n      iVar7 = (**(code **)(*param_3 + 0x24))(param_3);\n      bVar5 = iVar7 == -1;\n      if (iVar7 == -1) {\n        param_3 = (int *)0x0;\n      }\n    }" if (parenthesized_expression "((uint)param_3[3] <= (uint)param_3[2])" ( (binary_expression "(uint)param_3[3] <= (uint)param_3[2]" (cast_expression "(uint)param_3[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_3[3]" identifier [ number_literal ])) <= (cast_expression "(uint)param_3[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_3[2]" identifier [ number_literal ]))) )) (compound_statement "{\n      iVar7 = (**(code **)(*param_3 + 0x24))(param_3);\n      bVar5 = iVar7 == -1;\n      if (iVar7 == -1) {\n        param_3 = (int *)0x0;\n      }\n    }" { (expression_statement "iVar7 = (**(code **)(*param_3 + 0x24))(param_3);" (assignment_expression "iVar7 = (**(code **)(*param_3 + 0x24))(param_3)" identifier = (call_expression "(**(code **)(*param_3 + 0x24))(param_3)" (parenthesized_expression "(**(code **)(*param_3 + 0x24))" ( (pointer_expression "**(code **)(*param_3 + 0x24)" * (pointer_expression "*(code **)(*param_3 + 0x24)" * (cast_expression "(code **)(*param_3 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_3 + 0x24)" ( (binary_expression "*param_3 + 0x24" (pointer_expression "*param_3" * identifier) + number_literal) ))))) )) (argument_list "(param_3)" ( identifier )))) ;) (expression_statement "bVar5 = iVar7 == -1;" (assignment_expression "bVar5 = iVar7 == -1" identifier = (binary_expression "iVar7 == -1" identifier == number_literal)) ;) (if_statement "if (iVar7 == -1) {\n        param_3 = (int *)0x0;\n      }" if (parenthesized_expression "(iVar7 == -1)" ( (binary_expression "iVar7 == -1" identifier == number_literal) )) (compound_statement "{\n        param_3 = (int *)0x0;\n      }" { (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) })) }) (else_clause "else {\n    bVar5 = false;\n  }" else (compound_statement "{\n    bVar5 = false;\n  }" { (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" identifier = false) ;) })))) (if_statement "if (param_5 == (int *)0x0) goto LAB_0034b768;" if (parenthesized_expression "(param_5 == (int *)0x0)" ( (binary_expression "param_5 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0034b768;" goto statement_identifier ;)) (while_statement "while( true ) {\n    if (param_6 == -1) {\n      bVar6 = false;\n      if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar7 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar6 = iVar7 == -1;\n        if (iVar7 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    else {\n      bVar6 = false;\n    }\n    if (bVar6 == bVar5) break;\n    while( true ) {\n      if (iVar10 == param_10) goto LAB_0034b778;\n      if ((param_3 == (int *)0x0) || (param_4 != 0xffffffff)) {\n        iVar7 = (int)(char)param_4;\n        uVar8 = param_4 & 0xff;\n      }\n      else if ((byte *)param_3[2] < (byte *)param_3[3]) {\n        bVar1 = *(byte *)param_3[2];\n        iVar7 = (int)(char)bVar1;\n        uVar8 = (uint)bVar1;\n      }\n      else {\n        uVar8 = (**(code **)(*param_3 + 0x24))(param_3);\n        if (uVar8 == 0xffffffff) {\n          uVar8 = 0xff;\n          iVar7 = -1;\n          param_3 = (int *)0x0;\n        }\n        else {\n          iVar7 = (int)(char)uVar8;\n          uVar8 = uVar8 & 0xff;\n        }\n      }\n      iVar4 = (int)(char)pcVar2[uVar8 + 0x11d];\n      if (iVar4 == 0) {\n        iVar4 = iVar7;\n        if (*(code **)(*(int *)pcVar2 + 0x20) != (code *)PTR_do_narrow_004c2c88) {\n          iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar7,0x2a);\n        }\n        if (iVar4 == 0x2a) goto LAB_0034b8c0;\n        pcVar2[uVar8 + 0x11d] = SUB41(iVar4,0);\n      }\n      if (9 < (iVar4 - 0x30U & 0xff)) goto LAB_0034b8c0;\n      iVar9 = (iVar4 - 0x30U) + iVar9 * 10;\n      if ((param_9 < (int)(uVar3 * iVar9)) || ((int)(uVar3 + uVar3 * iVar9) <= param_8))\n      goto LAB_0034b8c0;\n      uVar3 = uVar3 / 10;\n      if ((uint)param_3[2] < (uint)param_3[3]) {\n        param_3[2] = param_3[2] + 1;\n      }\n      else {\n        (**(code **)(*param_3 + 0x28))(param_3);\n      }\n      iVar10 = iVar10 + 1;\n      param_4 = 0xffffffff;\n      if (param_3 != (int *)0x0) goto LAB_0034b670;\nLAB_0034b758:\n      bVar5 = param_4 == 0xffffffff;\n      if (param_5 != (int *)0x0) break;\nLAB_0034b768:\n      if ((param_6 == -1) == bVar5) goto LAB_0034b770;\n    }\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    if (param_6 == -1) {\n      bVar6 = false;\n      if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar7 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar6 = iVar7 == -1;\n        if (iVar7 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    else {\n      bVar6 = false;\n    }\n    if (bVar6 == bVar5) break;\n    while( true ) {\n      if (iVar10 == param_10) goto LAB_0034b778;\n      if ((param_3 == (int *)0x0) || (param_4 != 0xffffffff)) {\n        iVar7 = (int)(char)param_4;\n        uVar8 = param_4 & 0xff;\n      }\n      else if ((byte *)param_3[2] < (byte *)param_3[3]) {\n        bVar1 = *(byte *)param_3[2];\n        iVar7 = (int)(char)bVar1;\n        uVar8 = (uint)bVar1;\n      }\n      else {\n        uVar8 = (**(code **)(*param_3 + 0x24))(param_3);\n        if (uVar8 == 0xffffffff) {\n          uVar8 = 0xff;\n          iVar7 = -1;\n          param_3 = (int *)0x0;\n        }\n        else {\n          iVar7 = (int)(char)uVar8;\n          uVar8 = uVar8 & 0xff;\n        }\n      }\n      iVar4 = (int)(char)pcVar2[uVar8 + 0x11d];\n      if (iVar4 == 0) {\n        iVar4 = iVar7;\n        if (*(code **)(*(int *)pcVar2 + 0x20) != (code *)PTR_do_narrow_004c2c88) {\n          iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar7,0x2a);\n        }\n        if (iVar4 == 0x2a) goto LAB_0034b8c0;\n        pcVar2[uVar8 + 0x11d] = SUB41(iVar4,0);\n      }\n      if (9 < (iVar4 - 0x30U & 0xff)) goto LAB_0034b8c0;\n      iVar9 = (iVar4 - 0x30U) + iVar9 * 10;\n      if ((param_9 < (int)(uVar3 * iVar9)) || ((int)(uVar3 + uVar3 * iVar9) <= param_8))\n      goto LAB_0034b8c0;\n      uVar3 = uVar3 / 10;\n      if ((uint)param_3[2] < (uint)param_3[3]) {\n        param_3[2] = param_3[2] + 1;\n      }\n      else {\n        (**(code **)(*param_3 + 0x28))(param_3);\n      }\n      iVar10 = iVar10 + 1;\n      param_4 = 0xffffffff;\n      if (param_3 != (int *)0x0) goto LAB_0034b670;\nLAB_0034b758:\n      bVar5 = param_4 == 0xffffffff;\n      if (param_5 != (int *)0x0) break;\nLAB_0034b768:\n      if ((param_6 == -1) == bVar5) goto LAB_0034b770;\n    }\n  }" { (if_statement "if (param_6 == -1) {\n      bVar6 = false;\n      if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar7 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar6 = iVar7 == -1;\n        if (iVar7 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    else {\n      bVar6 = false;\n    }" if (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )) (compound_statement "{\n      bVar6 = false;\n      if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar7 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar6 = iVar7 == -1;\n        if (iVar7 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }" { (expression_statement "bVar6 = false;" (assignment_expression "bVar6 = false" identifier = false) ;) (if_statement "if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar7 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar6 = iVar7 == -1;\n        if (iVar7 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }" if (parenthesized_expression "((uint)param_5[3] <= (uint)param_5[2])" ( (binary_expression "(uint)param_5[3] <= (uint)param_5[2]" (cast_expression "(uint)param_5[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_5[3]" identifier [ number_literal ])) <= (cast_expression "(uint)param_5[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_5[2]" identifier [ number_literal ]))) )) (compound_statement "{\n        iVar7 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar6 = iVar7 == -1;\n        if (iVar7 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }" { (expression_statement "iVar7 = (**(code **)(*param_5 + 0x24))(param_5);" (assignment_expression "iVar7 = (**(code **)(*param_5 + 0x24))(param_5)" identifier = (call_expression "(**(code **)(*param_5 + 0x24))(param_5)" (parenthesized_expression "(**(code **)(*param_5 + 0x24))" ( (pointer_expression "**(code **)(*param_5 + 0x24)" * (pointer_expression "*(code **)(*param_5 + 0x24)" * (cast_expression "(code **)(*param_5 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_5 + 0x24)" ( (binary_expression "*param_5 + 0x24" (pointer_expression "*param_5" * identifier) + number_literal) ))))) )) (argument_list "(param_5)" ( identifier )))) ;) (expression_statement "bVar6 = iVar7 == -1;" (assignment_expression "bVar6 = iVar7 == -1" identifier = (binary_expression "iVar7 == -1" identifier == number_literal)) ;) (if_statement "if (iVar7 == -1) {\n          param_5 = (int *)0x0;\n        }" if (parenthesized_expression "(iVar7 == -1)" ( (binary_expression "iVar7 == -1" identifier == number_literal) )) (compound_statement "{\n          param_5 = (int *)0x0;\n        }" { (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) })) }) (else_clause "else {\n      bVar6 = false;\n    }" else (compound_statement "{\n      bVar6 = false;\n    }" { (expression_statement "bVar6 = false;" (assignment_expression "bVar6 = false" identifier = false) ;) }))) (if_statement "if (bVar6 == bVar5) break;" if (parenthesized_expression "(bVar6 == bVar5)" ( (binary_expression "bVar6 == bVar5" identifier == identifier) )) (break_statement "break;" break ;)) (while_statement "while( true ) {\n      if (iVar10 == param_10) goto LAB_0034b778;\n      if ((param_3 == (int *)0x0) || (param_4 != 0xffffffff)) {\n        iVar7 = (int)(char)param_4;\n        uVar8 = param_4 & 0xff;\n      }\n      else if ((byte *)param_3[2] < (byte *)param_3[3]) {\n        bVar1 = *(byte *)param_3[2];\n        iVar7 = (int)(char)bVar1;\n        uVar8 = (uint)bVar1;\n      }\n      else {\n        uVar8 = (**(code **)(*param_3 + 0x24))(param_3);\n        if (uVar8 == 0xffffffff) {\n          uVar8 = 0xff;\n          iVar7 = -1;\n          param_3 = (int *)0x0;\n        }\n        else {\n          iVar7 = (int)(char)uVar8;\n          uVar8 = uVar8 & 0xff;\n        }\n      }\n      iVar4 = (int)(char)pcVar2[uVar8 + 0x11d];\n      if (iVar4 == 0) {\n        iVar4 = iVar7;\n        if (*(code **)(*(int *)pcVar2 + 0x20) != (code *)PTR_do_narrow_004c2c88) {\n          iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar7,0x2a);\n        }\n        if (iVar4 == 0x2a) goto LAB_0034b8c0;\n        pcVar2[uVar8 + 0x11d] = SUB41(iVar4,0);\n      }\n      if (9 < (iVar4 - 0x30U & 0xff)) goto LAB_0034b8c0;\n      iVar9 = (iVar4 - 0x30U) + iVar9 * 10;\n      if ((param_9 < (int)(uVar3 * iVar9)) || ((int)(uVar3 + uVar3 * iVar9) <= param_8))\n      goto LAB_0034b8c0;\n      uVar3 = uVar3 / 10;\n      if ((uint)param_3[2] < (uint)param_3[3]) {\n        param_3[2] = param_3[2] + 1;\n      }\n      else {\n        (**(code **)(*param_3 + 0x28))(param_3);\n      }\n      iVar10 = iVar10 + 1;\n      param_4 = 0xffffffff;\n      if (param_3 != (int *)0x0) goto LAB_0034b670;\nLAB_0034b758:\n      bVar5 = param_4 == 0xffffffff;\n      if (param_5 != (int *)0x0) break;\nLAB_0034b768:\n      if ((param_6 == -1) == bVar5) goto LAB_0034b770;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      if (iVar10 == param_10) goto LAB_0034b778;\n      if ((param_3 == (int *)0x0) || (param_4 != 0xffffffff)) {\n        iVar7 = (int)(char)param_4;\n        uVar8 = param_4 & 0xff;\n      }\n      else if ((byte *)param_3[2] < (byte *)param_3[3]) {\n        bVar1 = *(byte *)param_3[2];\n        iVar7 = (int)(char)bVar1;\n        uVar8 = (uint)bVar1;\n      }\n      else {\n        uVar8 = (**(code **)(*param_3 + 0x24))(param_3);\n        if (uVar8 == 0xffffffff) {\n          uVar8 = 0xff;\n          iVar7 = -1;\n          param_3 = (int *)0x0;\n        }\n        else {\n          iVar7 = (int)(char)uVar8;\n          uVar8 = uVar8 & 0xff;\n        }\n      }\n      iVar4 = (int)(char)pcVar2[uVar8 + 0x11d];\n      if (iVar4 == 0) {\n        iVar4 = iVar7;\n        if (*(code **)(*(int *)pcVar2 + 0x20) != (code *)PTR_do_narrow_004c2c88) {\n          iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar7,0x2a);\n        }\n        if (iVar4 == 0x2a) goto LAB_0034b8c0;\n        pcVar2[uVar8 + 0x11d] = SUB41(iVar4,0);\n      }\n      if (9 < (iVar4 - 0x30U & 0xff)) goto LAB_0034b8c0;\n      iVar9 = (iVar4 - 0x30U) + iVar9 * 10;\n      if ((param_9 < (int)(uVar3 * iVar9)) || ((int)(uVar3 + uVar3 * iVar9) <= param_8))\n      goto LAB_0034b8c0;\n      uVar3 = uVar3 / 10;\n      if ((uint)param_3[2] < (uint)param_3[3]) {\n        param_3[2] = param_3[2] + 1;\n      }\n      else {\n        (**(code **)(*param_3 + 0x28))(param_3);\n      }\n      iVar10 = iVar10 + 1;\n      param_4 = 0xffffffff;\n      if (param_3 != (int *)0x0) goto LAB_0034b670;\nLAB_0034b758:\n      bVar5 = param_4 == 0xffffffff;\n      if (param_5 != (int *)0x0) break;\nLAB_0034b768:\n      if ((param_6 == -1) == bVar5) goto LAB_0034b770;\n    }" { (if_statement "if (iVar10 == param_10) goto LAB_0034b778;" if (parenthesized_expression "(iVar10 == param_10)" ( (binary_expression "iVar10 == param_10" identifier == identifier) )) (goto_statement "goto LAB_0034b778;" goto statement_identifier ;)) (if_statement "if ((param_3 == (int *)0x0) || (param_4 != 0xffffffff)) {\n        iVar7 = (int)(char)param_4;\n        uVar8 = param_4 & 0xff;\n      }\n      else if ((byte *)param_3[2] < (byte *)param_3[3]) {\n        bVar1 = *(byte *)param_3[2];\n        iVar7 = (int)(char)bVar1;\n        uVar8 = (uint)bVar1;\n      }\n      else {\n        uVar8 = (**(code **)(*param_3 + 0x24))(param_3);\n        if (uVar8 == 0xffffffff) {\n          uVar8 = 0xff;\n          iVar7 = -1;\n          param_3 = (int *)0x0;\n        }\n        else {\n          iVar7 = (int)(char)uVar8;\n          uVar8 = uVar8 & 0xff;\n        }\n      }" if (parenthesized_expression "((param_3 == (int *)0x0) || (param_4 != 0xffffffff))" ( (binary_expression "(param_3 == (int *)0x0) || (param_4 != 0xffffffff)" (parenthesized_expression "(param_3 == (int *)0x0)" ( (binary_expression "param_3 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(param_4 != 0xffffffff)" ( (binary_expression "param_4 != 0xffffffff" identifier != number_literal) ))) )) (compound_statement "{\n        iVar7 = (int)(char)param_4;\n        uVar8 = param_4 & 0xff;\n      }" { (expression_statement "iVar7 = (int)(char)param_4;" (assignment_expression "iVar7 = (int)(char)param_4" identifier = (cast_expression "(int)(char)param_4" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)param_4" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (expression_statement "uVar8 = param_4 & 0xff;" (assignment_expression "uVar8 = param_4 & 0xff" identifier = (binary_expression "param_4 & 0xff" identifier & number_literal)) ;) }) (else_clause "else if ((byte *)param_3[2] < (byte *)param_3[3]) {\n        bVar1 = *(byte *)param_3[2];\n        iVar7 = (int)(char)bVar1;\n        uVar8 = (uint)bVar1;\n      }\n      else {\n        uVar8 = (**(code **)(*param_3 + 0x24))(param_3);\n        if (uVar8 == 0xffffffff) {\n          uVar8 = 0xff;\n          iVar7 = -1;\n          param_3 = (int *)0x0;\n        }\n        else {\n          iVar7 = (int)(char)uVar8;\n          uVar8 = uVar8 & 0xff;\n        }\n      }" else (if_statement "if ((byte *)param_3[2] < (byte *)param_3[3]) {\n        bVar1 = *(byte *)param_3[2];\n        iVar7 = (int)(char)bVar1;\n        uVar8 = (uint)bVar1;\n      }\n      else {\n        uVar8 = (**(code **)(*param_3 + 0x24))(param_3);\n        if (uVar8 == 0xffffffff) {\n          uVar8 = 0xff;\n          iVar7 = -1;\n          param_3 = (int *)0x0;\n        }\n        else {\n          iVar7 = (int)(char)uVar8;\n          uVar8 = uVar8 & 0xff;\n        }\n      }" if (parenthesized_expression "((byte *)param_3[2] < (byte *)param_3[3])" ( (binary_expression "(byte *)param_3[2] < (byte *)param_3[3]" (cast_expression "(byte *)param_3[2]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])) < (cast_expression "(byte *)param_3[3]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (compound_statement "{\n        bVar1 = *(byte *)param_3[2];\n        iVar7 = (int)(char)bVar1;\n        uVar8 = (uint)bVar1;\n      }" { (expression_statement "bVar1 = *(byte *)param_3[2];" (assignment_expression "bVar1 = *(byte *)param_3[2]" identifier = (pointer_expression "*(byte *)param_3[2]" * (cast_expression "(byte *)param_3[2]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])))) ;) (expression_statement "iVar7 = (int)(char)bVar1;" (assignment_expression "iVar7 = (int)(char)bVar1" identifier = (cast_expression "(int)(char)bVar1" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (expression_statement "uVar8 = (uint)bVar1;" (assignment_expression "uVar8 = (uint)bVar1" identifier = (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n        uVar8 = (**(code **)(*param_3 + 0x24))(param_3);\n        if (uVar8 == 0xffffffff) {\n          uVar8 = 0xff;\n          iVar7 = -1;\n          param_3 = (int *)0x0;\n        }\n        else {\n          iVar7 = (int)(char)uVar8;\n          uVar8 = uVar8 & 0xff;\n        }\n      }" else (compound_statement "{\n        uVar8 = (**(code **)(*param_3 + 0x24))(param_3);\n        if (uVar8 == 0xffffffff) {\n          uVar8 = 0xff;\n          iVar7 = -1;\n          param_3 = (int *)0x0;\n        }\n        else {\n          iVar7 = (int)(char)uVar8;\n          uVar8 = uVar8 & 0xff;\n        }\n      }" { (expression_statement "uVar8 = (**(code **)(*param_3 + 0x24))(param_3);" (assignment_expression "uVar8 = (**(code **)(*param_3 + 0x24))(param_3)" identifier = (call_expression "(**(code **)(*param_3 + 0x24))(param_3)" (parenthesized_expression "(**(code **)(*param_3 + 0x24))" ( (pointer_expression "**(code **)(*param_3 + 0x24)" * (pointer_expression "*(code **)(*param_3 + 0x24)" * (cast_expression "(code **)(*param_3 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_3 + 0x24)" ( (binary_expression "*param_3 + 0x24" (pointer_expression "*param_3" * identifier) + number_literal) ))))) )) (argument_list "(param_3)" ( identifier )))) ;) (if_statement "if (uVar8 == 0xffffffff) {\n          uVar8 = 0xff;\n          iVar7 = -1;\n          param_3 = (int *)0x0;\n        }\n        else {\n          iVar7 = (int)(char)uVar8;\n          uVar8 = uVar8 & 0xff;\n        }" if (parenthesized_expression "(uVar8 == 0xffffffff)" ( (binary_expression "uVar8 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n          uVar8 = 0xff;\n          iVar7 = -1;\n          param_3 = (int *)0x0;\n        }" { (expression_statement "uVar8 = 0xff;" (assignment_expression "uVar8 = 0xff" identifier = number_literal) ;) (expression_statement "iVar7 = -1;" (assignment_expression "iVar7 = -1" identifier = number_literal) ;) (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n          iVar7 = (int)(char)uVar8;\n          uVar8 = uVar8 & 0xff;\n        }" else (compound_statement "{\n          iVar7 = (int)(char)uVar8;\n          uVar8 = uVar8 & 0xff;\n        }" { (expression_statement "iVar7 = (int)(char)uVar8;" (assignment_expression "iVar7 = (int)(char)uVar8" identifier = (cast_expression "(int)(char)uVar8" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)uVar8" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (expression_statement "uVar8 = uVar8 & 0xff;" (assignment_expression "uVar8 = uVar8 & 0xff" identifier = (binary_expression "uVar8 & 0xff" identifier & number_literal)) ;) }))) }))))) (expression_statement "iVar4 = (int)(char)pcVar2[uVar8 + 0x11d];" (assignment_expression "iVar4 = (int)(char)pcVar2[uVar8 + 0x11d]" identifier = (cast_expression "(int)(char)pcVar2[uVar8 + 0x11d]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pcVar2[uVar8 + 0x11d]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pcVar2[uVar8 + 0x11d]" identifier [ (binary_expression "uVar8 + 0x11d" identifier + number_literal) ])))) ;) (if_statement "if (iVar4 == 0) {\n        iVar4 = iVar7;\n        if (*(code **)(*(int *)pcVar2 + 0x20) != (code *)PTR_do_narrow_004c2c88) {\n          iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar7,0x2a);\n        }\n        if (iVar4 == 0x2a) goto LAB_0034b8c0;\n        pcVar2[uVar8 + 0x11d] = SUB41(iVar4,0);\n      }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar4 = iVar7;\n        if (*(code **)(*(int *)pcVar2 + 0x20) != (code *)PTR_do_narrow_004c2c88) {\n          iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar7,0x2a);\n        }\n        if (iVar4 == 0x2a) goto LAB_0034b8c0;\n        pcVar2[uVar8 + 0x11d] = SUB41(iVar4,0);\n      }" { (expression_statement "iVar4 = iVar7;" (assignment_expression "iVar4 = iVar7" identifier = identifier) ;) (if_statement "if (*(code **)(*(int *)pcVar2 + 0x20) != (code *)PTR_do_narrow_004c2c88) {\n          iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar7,0x2a);\n        }" if (parenthesized_expression "(*(code **)(*(int *)pcVar2 + 0x20) != (code *)PTR_do_narrow_004c2c88)" ( (binary_expression "*(code **)(*(int *)pcVar2 + 0x20) != (code *)PTR_do_narrow_004c2c88" (pointer_expression "*(code **)(*(int *)pcVar2 + 0x20)" * (cast_expression "(code **)(*(int *)pcVar2 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 0x20)" ( (binary_expression "*(int *)pcVar2 + 0x20" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) != (cast_expression "(code *)PTR_do_narrow_004c2c88" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n          iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar7,0x2a);\n        }" { (expression_statement "iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar7,0x2a);" (assignment_expression "iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar7,0x2a)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar7,0x2a)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x20))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 0x20)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 0x20)" * (cast_expression "(code **)(*(int *)pcVar2 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 0x20)" ( (binary_expression "*(int *)pcVar2 + 0x20" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2,iVar7,0x2a)" ( identifier , identifier , number_literal )))) ;) })) (if_statement "if (iVar4 == 0x2a) goto LAB_0034b8c0;" if (parenthesized_expression "(iVar4 == 0x2a)" ( (binary_expression "iVar4 == 0x2a" identifier == number_literal) )) (goto_statement "goto LAB_0034b8c0;" goto statement_identifier ;)) (expression_statement "pcVar2[uVar8 + 0x11d] = SUB41(iVar4,0);" (assignment_expression "pcVar2[uVar8 + 0x11d] = SUB41(iVar4,0)" (subscript_expression "pcVar2[uVar8 + 0x11d]" identifier [ (binary_expression "uVar8 + 0x11d" identifier + number_literal) ]) = (call_expression "SUB41(iVar4,0)" identifier (argument_list "(iVar4,0)" ( identifier , number_literal )))) ;) })) (if_statement "if (9 < (iVar4 - 0x30U & 0xff)) goto LAB_0034b8c0;" if (parenthesized_expression "(9 < (iVar4 - 0x30U & 0xff))" ( (binary_expression "9 < (iVar4 - 0x30U & 0xff)" number_literal < (parenthesized_expression "(iVar4 - 0x30U & 0xff)" ( (binary_expression "iVar4 - 0x30U & 0xff" (binary_expression "iVar4 - 0x30U" identifier - number_literal) & number_literal) ))) )) (goto_statement "goto LAB_0034b8c0;" goto statement_identifier ;)) (expression_statement "iVar9 = (iVar4 - 0x30U) + iVar9 * 10;" (assignment_expression "iVar9 = (iVar4 - 0x30U) + iVar9 * 10" identifier = (binary_expression "(iVar4 - 0x30U) + iVar9 * 10" (parenthesized_expression "(iVar4 - 0x30U)" ( (binary_expression "iVar4 - 0x30U" identifier - number_literal) )) + (binary_expression "iVar9 * 10" identifier * number_literal))) ;) (if_statement "if ((param_9 < (int)(uVar3 * iVar9)) || ((int)(uVar3 + uVar3 * iVar9) <= param_8))\n      goto LAB_0034b8c0;" if (parenthesized_expression "((param_9 < (int)(uVar3 * iVar9)) || ((int)(uVar3 + uVar3 * iVar9) <= param_8))" ( (binary_expression "(param_9 < (int)(uVar3 * iVar9)) || ((int)(uVar3 + uVar3 * iVar9) <= param_8)" (parenthesized_expression "(param_9 < (int)(uVar3 * iVar9))" ( (binary_expression "param_9 < (int)(uVar3 * iVar9)" identifier < (cast_expression "(int)(uVar3 * iVar9)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar3 * iVar9)" ( (binary_expression "uVar3 * iVar9" identifier * identifier) )))) )) || (parenthesized_expression "((int)(uVar3 + uVar3 * iVar9) <= param_8)" ( (binary_expression "(int)(uVar3 + uVar3 * iVar9) <= param_8" (cast_expression "(int)(uVar3 + uVar3 * iVar9)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar3 + uVar3 * iVar9)" ( (binary_expression "uVar3 + uVar3 * iVar9" identifier + (binary_expression "uVar3 * iVar9" identifier * identifier)) ))) <= identifier) ))) )) (goto_statement "goto LAB_0034b8c0;" goto statement_identifier ;)) (expression_statement "uVar3 = uVar3 / 10;" (assignment_expression "uVar3 = uVar3 / 10" identifier = (binary_expression "uVar3 / 10" identifier / number_literal)) ;) (if_statement "if ((uint)param_3[2] < (uint)param_3[3]) {\n        param_3[2] = param_3[2] + 1;\n      }\n      else {\n        (**(code **)(*param_3 + 0x28))(param_3);\n      }" if (parenthesized_expression "((uint)param_3[2] < (uint)param_3[3])" ( (binary_expression "(uint)param_3[2] < (uint)param_3[3]" (cast_expression "(uint)param_3[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_3[2]" identifier [ number_literal ])) < (cast_expression "(uint)param_3[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (compound_statement "{\n        param_3[2] = param_3[2] + 1;\n      }" { (expression_statement "param_3[2] = param_3[2] + 1;" (assignment_expression "param_3[2] = param_3[2] + 1" (subscript_expression "param_3[2]" identifier [ number_literal ]) = (binary_expression "param_3[2] + 1" (subscript_expression "param_3[2]" identifier [ number_literal ]) + number_literal)) ;) }) (else_clause "else {\n        (**(code **)(*param_3 + 0x28))(param_3);\n      }" else (compound_statement "{\n        (**(code **)(*param_3 + 0x28))(param_3);\n      }" { (expression_statement "(**(code **)(*param_3 + 0x28))(param_3);" (call_expression "(**(code **)(*param_3 + 0x28))(param_3)" (parenthesized_expression "(**(code **)(*param_3 + 0x28))" ( (pointer_expression "**(code **)(*param_3 + 0x28)" * (pointer_expression "*(code **)(*param_3 + 0x28)" * (cast_expression "(code **)(*param_3 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_3 + 0x28)" ( (binary_expression "*param_3 + 0x28" (pointer_expression "*param_3" * identifier) + number_literal) ))))) )) (argument_list "(param_3)" ( identifier ))) ;) }))) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (expression_statement "param_4 = 0xffffffff;" (assignment_expression "param_4 = 0xffffffff" identifier = number_literal) ;) (if_statement "if (param_3 != (int *)0x0) goto LAB_0034b670;" if (parenthesized_expression "(param_3 != (int *)0x0)" ( (binary_expression "param_3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0034b670;" goto statement_identifier ;)) (labeled_statement "LAB_0034b758:\n      bVar5 = param_4 == 0xffffffff;" statement_identifier : (expression_statement "bVar5 = param_4 == 0xffffffff;" (assignment_expression "bVar5 = param_4 == 0xffffffff" identifier = (binary_expression "param_4 == 0xffffffff" identifier == number_literal)) ;)) (if_statement "if (param_5 != (int *)0x0) break;" if (parenthesized_expression "(param_5 != (int *)0x0)" ( (binary_expression "param_5 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0034b768:\n      if ((param_6 == -1) == bVar5) goto LAB_0034b770;" statement_identifier : (if_statement "if ((param_6 == -1) == bVar5) goto LAB_0034b770;" if (parenthesized_expression "((param_6 == -1) == bVar5)" ( (binary_expression "(param_6 == -1) == bVar5" (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )) == identifier) )) (goto_statement "goto LAB_0034b770;" goto statement_identifier ;))) })) })) (labeled_statement "LAB_0034b770:\n  if (iVar10 != param_10) {\nLAB_0034b8c0:\n    if ((param_10 == 4) && (iVar10 == 2)) {\n      *param_7 = iVar9 + -100;\n    }\n    else {\n      *param_12 = *param_12 | 4;\n    }\n    *param_1 = param_3;\n    param_1[1] = param_4;\n    return;\n  }" statement_identifier : (if_statement "if (iVar10 != param_10) {\nLAB_0034b8c0:\n    if ((param_10 == 4) && (iVar10 == 2)) {\n      *param_7 = iVar9 + -100;\n    }\n    else {\n      *param_12 = *param_12 | 4;\n    }\n    *param_1 = param_3;\n    param_1[1] = param_4;\n    return;\n  }" if (parenthesized_expression "(iVar10 != param_10)" ( (binary_expression "iVar10 != param_10" identifier != identifier) )) (compound_statement "{\nLAB_0034b8c0:\n    if ((param_10 == 4) && (iVar10 == 2)) {\n      *param_7 = iVar9 + -100;\n    }\n    else {\n      *param_12 = *param_12 | 4;\n    }\n    *param_1 = param_3;\n    param_1[1] = param_4;\n    return;\n  }" { (labeled_statement "LAB_0034b8c0:\n    if ((param_10 == 4) && (iVar10 == 2)) {\n      *param_7 = iVar9 + -100;\n    }\n    else {\n      *param_12 = *param_12 | 4;\n    }" statement_identifier : (if_statement "if ((param_10 == 4) && (iVar10 == 2)) {\n      *param_7 = iVar9 + -100;\n    }\n    else {\n      *param_12 = *param_12 | 4;\n    }" if (parenthesized_expression "((param_10 == 4) && (iVar10 == 2))" ( (binary_expression "(param_10 == 4) && (iVar10 == 2)" (parenthesized_expression "(param_10 == 4)" ( (binary_expression "param_10 == 4" identifier == number_literal) )) && (parenthesized_expression "(iVar10 == 2)" ( (binary_expression "iVar10 == 2" identifier == number_literal) ))) )) (compound_statement "{\n      *param_7 = iVar9 + -100;\n    }" { (expression_statement "*param_7 = iVar9 + -100;" (assignment_expression "*param_7 = iVar9 + -100" (pointer_expression "*param_7" * identifier) = (binary_expression "iVar9 + -100" identifier + number_literal)) ;) }) (else_clause "else {\n      *param_12 = *param_12 | 4;\n    }" else (compound_statement "{\n      *param_12 = *param_12 | 4;\n    }" { (expression_statement "*param_12 = *param_12 | 4;" (assignment_expression "*param_12 = *param_12 | 4" (pointer_expression "*param_12" * identifier) = (binary_expression "*param_12 | 4" (pointer_expression "*param_12" * identifier) | number_literal)) ;) })))) (expression_statement "*param_1 = param_3;" (assignment_expression "*param_1 = param_3" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[1] = param_4;" (assignment_expression "param_1[1] = param_4" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) }))) (labeled_statement "LAB_0034b778:\n  *param_7 = iVar9;" statement_identifier : (expression_statement "*param_7 = iVar9;" (assignment_expression "*param_7 = iVar9" (pointer_expression "*param_7" * identifier) = identifier) ;)) (expression_statement "*param_1 = param_3;" (assignment_expression "*param_1 = param_3" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[1] = param_4;" (assignment_expression "param_1[1] = param_4" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void std::time_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::_M_extract_num\n               (undefined4 *param_1,undefined4 param_2,int *param_3,uint param_4,int *param_5,\n               int param_6,int *param_7,int param_8,int param_9,int param_10,int param_11,\n               uint *param_12)\n\n{\n  byte bVar1;\n  ctype *pcVar2;\n  uint uVar3;\n  int iVar4;\n  bool bVar5;\n  bool bVar6;\n  int iVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  \n  pcVar2 = use_facet<std::ctype<char>>((locale *)(param_11 + 0x6c));\n  if (param_10 == 2) {\n    uVar3 = 10;\n  }\n  else {\n    uVar3 = 1;\n    if (param_10 == 4) {\n      uVar3 = 1000;\n    }\n  }\n  iVar9 = 0;\n  iVar10 = 0;\n  if (param_3 == (int *)0x0) goto LAB_0034b758;\nLAB_0034b670:\n  if (param_4 == 0xffffffff) {\n    bVar5 = false;\n    if ((uint)param_3[3] <= (uint)param_3[2]) {\n      iVar7 = (**(code **)(*param_3 + 0x24))(param_3);\n      bVar5 = iVar7 == -1;\n      if (iVar7 == -1) {\n        param_3 = (int *)0x0;\n      }\n    }\n  }\n  else {\n    bVar5 = false;\n  }\n  if (param_5 == (int *)0x0) goto LAB_0034b768;\n  while( true ) {\n    if (param_6 == -1) {\n      bVar6 = false;\n      if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar7 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar6 = iVar7 == -1;\n        if (iVar7 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    else {\n      bVar6 = false;\n    }\n    if (bVar6 == bVar5) break;\n    while( true ) {\n      if (iVar10 == param_10) goto LAB_0034b778;\n      if ((param_3 == (int *)0x0) || (param_4 != 0xffffffff)) {\n        iVar7 = (int)(char)param_4;\n        uVar8 = param_4 & 0xff;\n      }\n      else if ((byte *)param_3[2] < (byte *)param_3[3]) {\n        bVar1 = *(byte *)param_3[2];\n        iVar7 = (int)(char)bVar1;\n        uVar8 = (uint)bVar1;\n      }\n      else {\n        uVar8 = (**(code **)(*param_3 + 0x24))(param_3);\n        if (uVar8 == 0xffffffff) {\n          uVar8 = 0xff;\n          iVar7 = -1;\n          param_3 = (int *)0x0;\n        }\n        else {\n          iVar7 = (int)(char)uVar8;\n          uVar8 = uVar8 & 0xff;\n        }\n      }\n      iVar4 = (int)(char)pcVar2[uVar8 + 0x11d];\n      if (iVar4 == 0) {\n        iVar4 = iVar7;\n        if (*(code **)(*(int *)pcVar2 + 0x20) != (code *)PTR_do_narrow_004c2c88) {\n          iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar7,0x2a);\n        }\n        if (iVar4 == 0x2a) goto LAB_0034b8c0;\n        pcVar2[uVar8 + 0x11d] = SUB41(iVar4,0);\n      }\n      if (9 < (iVar4 - 0x30U & 0xff)) goto LAB_0034b8c0;\n      iVar9 = (iVar4 - 0x30U) + iVar9 * 10;\n      if ((param_9 < (int)(uVar3 * iVar9)) || ((int)(uVar3 + uVar3 * iVar9) <= param_8))\n      goto LAB_0034b8c0;\n      uVar3 = uVar3 / 10;\n      if ((uint)param_3[2] < (uint)param_3[3]) {\n        param_3[2] = param_3[2] + 1;\n      }\n      else {\n        (**(code **)(*param_3 + 0x28))(param_3);\n      }\n      iVar10 = iVar10 + 1;\n      param_4 = 0xffffffff;\n      if (param_3 != (int *)0x0) goto LAB_0034b670;\nLAB_0034b758:\n      bVar5 = param_4 == 0xffffffff;\n      if (param_5 != (int *)0x0) break;\nLAB_0034b768:\n      if ((param_6 == -1) == bVar5) goto LAB_0034b770;\n    }\n  }\nLAB_0034b770:\n  if (iVar10 != param_10) {\nLAB_0034b8c0:\n    if ((param_10 == 4) && (iVar10 == 2)) {\n      *param_7 = iVar9 + -100;\n    }\n    else {\n      *param_12 = *param_12 | 4;\n    }\n    *param_1 = param_3;\n    param_1[1] = param_4;\n    return;\n  }\nLAB_0034b778:\n  *param_7 = iVar9;\n  *param_1 = param_3;\n  param_1[1] = param_4;\n  return;\n}\n\n" (declaration "void std::time_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::_M_extract_num\n               (undefined4 *param_1,undefined4 param_2,int *param_3,uint param_4,int *param_5,\n               int param_6,int *param_7,int param_8,int param_9,int param_10,int param_11,\n               uint *param_12)\n\n{\n  byte bVar1;" primitive_type (ERROR "std::" identifier : :) identifier (ERROR "<char" < primitive_type) , (ERROR "std::" identifier : :) identifier (ERROR "<char" < primitive_type) , (ERROR "std::char_traits<char>>>::_M_extract_num\n               (undefined4 *param_1,undefined4 param_2,int *param_3,uint param_4,int *param_5,\n               int param_6,int *param_7,int param_8,int param_9,int param_10,int param_11,\n               uint *param_12)\n\n{\n  byte" identifier : : identifier < primitive_type >> > : : (function_declarator "_M_extract_num\n               (undefined4 *param_1,undefined4 param_2,int *param_3,uint param_4,int *param_5,\n               int param_6,int *param_7,int param_8,int param_9,int param_10,int param_11,\n               uint *param_12)" identifier (parameter_list "(undefined4 *param_1,undefined4 param_2,int *param_3,uint param_4,int *param_5,\n               int param_6,int *param_7,int param_8,int param_9,int param_10,int param_11,\n               uint *param_12)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "uint param_4" type_identifier identifier) , (parameter_declaration "int *param_5" primitive_type (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "int param_6" primitive_type identifier) , (parameter_declaration "int *param_7" primitive_type (pointer_declarator "*param_7" * identifier)) , (parameter_declaration "int param_8" primitive_type identifier) , (parameter_declaration "int param_9" primitive_type identifier) , (parameter_declaration "int param_10" primitive_type identifier) , (parameter_declaration "int param_11" primitive_type identifier) , (parameter_declaration "uint *param_12" type_identifier (pointer_declarator "*param_12" * identifier)) ))) { identifier) identifier ;) (declaration "ctype *pcVar2;" type_identifier (pointer_declarator "*pcVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "bool bVar5;" primitive_type identifier ;) (declaration "bool bVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (expression_statement "pcVar2 = use_facet<std::ctype<char>>((locale *)(param_11 + 0x6c));" (update_expression "pcVar2 = use_facet<std::ctype<char>>((locale *)(param_11 + 0x6c))" (binary_expression "pcVar2 = use_facet<std::ctype<char>>((locale *)(param_11 + 0x6c))" (assignment_expression "pcVar2 = use_facet<std" identifier = (binary_expression "use_facet<std" identifier < identifier)) (ERROR "::ctype" : : identifier) < (binary_expression "char>>((locale *)(param_11 + 0x6c))" identifier >> (parenthesized_expression "((locale *)(param_11 + 0x6c))" ( (cast_expression "(locale *)(param_11 + 0x6c)" ( (type_descriptor "locale *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_11 + 0x6c)" ( (binary_expression "param_11 + 0x6c" identifier + number_literal) ))) )))) --) ;) (if_statement "if (param_10 == 2) {\n    uVar3 = 10;\n  }\n  else {\n    uVar3 = 1;\n    if (param_10 == 4) {\n      uVar3 = 1000;\n    }\n  }" if (parenthesized_expression "(param_10 == 2)" ( (binary_expression "param_10 == 2" identifier == number_literal) )) (compound_statement "{\n    uVar3 = 10;\n  }" { (expression_statement "uVar3 = 10;" (assignment_expression "uVar3 = 10" identifier = number_literal) ;) }) (else_clause "else {\n    uVar3 = 1;\n    if (param_10 == 4) {\n      uVar3 = 1000;\n    }\n  }" else (compound_statement "{\n    uVar3 = 1;\n    if (param_10 == 4) {\n      uVar3 = 1000;\n    }\n  }" { (expression_statement "uVar3 = 1;" (assignment_expression "uVar3 = 1" identifier = number_literal) ;) (if_statement "if (param_10 == 4) {\n      uVar3 = 1000;\n    }" if (parenthesized_expression "(param_10 == 4)" ( (binary_expression "param_10 == 4" identifier == number_literal) )) (compound_statement "{\n      uVar3 = 1000;\n    }" { (expression_statement "uVar3 = 1000;" (assignment_expression "uVar3 = 1000" identifier = number_literal) ;) })) }))) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (if_statement "if (param_3 == (int *)0x0) goto LAB_0034b758;" if (parenthesized_expression "(param_3 == (int *)0x0)" ( (binary_expression "param_3 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0034b758;" goto statement_identifier ;)) (labeled_statement "LAB_0034b670:\n  if (param_4 == 0xffffffff) {\n    bVar5 = false;\n    if ((uint)param_3[3] <= (uint)param_3[2]) {\n      iVar7 = (**(code **)(*param_3 + 0x24))(param_3);\n      bVar5 = iVar7 == -1;\n      if (iVar7 == -1) {\n        param_3 = (int *)0x0;\n      }\n    }\n  }\n  else {\n    bVar5 = false;\n  }" statement_identifier : (if_statement "if (param_4 == 0xffffffff) {\n    bVar5 = false;\n    if ((uint)param_3[3] <= (uint)param_3[2]) {\n      iVar7 = (**(code **)(*param_3 + 0x24))(param_3);\n      bVar5 = iVar7 == -1;\n      if (iVar7 == -1) {\n        param_3 = (int *)0x0;\n      }\n    }\n  }\n  else {\n    bVar5 = false;\n  }" if (parenthesized_expression "(param_4 == 0xffffffff)" ( (binary_expression "param_4 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n    bVar5 = false;\n    if ((uint)param_3[3] <= (uint)param_3[2]) {\n      iVar7 = (**(code **)(*param_3 + 0x24))(param_3);\n      bVar5 = iVar7 == -1;\n      if (iVar7 == -1) {\n        param_3 = (int *)0x0;\n      }\n    }\n  }" { (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" identifier = false) ;) (if_statement "if ((uint)param_3[3] <= (uint)param_3[2]) {\n      iVar7 = (**(code **)(*param_3 + 0x24))(param_3);\n      bVar5 = iVar7 == -1;\n      if (iVar7 == -1) {\n        param_3 = (int *)0x0;\n      }\n    }" if (parenthesized_expression "((uint)param_3[3] <= (uint)param_3[2])" ( (binary_expression "(uint)param_3[3] <= (uint)param_3[2]" (cast_expression "(uint)param_3[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_3[3]" identifier [ number_literal ])) <= (cast_expression "(uint)param_3[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_3[2]" identifier [ number_literal ]))) )) (compound_statement "{\n      iVar7 = (**(code **)(*param_3 + 0x24))(param_3);\n      bVar5 = iVar7 == -1;\n      if (iVar7 == -1) {\n        param_3 = (int *)0x0;\n      }\n    }" { (expression_statement "iVar7 = (**(code **)(*param_3 + 0x24))(param_3);" (assignment_expression "iVar7 = (**(code **)(*param_3 + 0x24))(param_3)" identifier = (call_expression "(**(code **)(*param_3 + 0x24))(param_3)" (parenthesized_expression "(**(code **)(*param_3 + 0x24))" ( (pointer_expression "**(code **)(*param_3 + 0x24)" * (pointer_expression "*(code **)(*param_3 + 0x24)" * (cast_expression "(code **)(*param_3 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_3 + 0x24)" ( (binary_expression "*param_3 + 0x24" (pointer_expression "*param_3" * identifier) + number_literal) ))))) )) (argument_list "(param_3)" ( identifier )))) ;) (expression_statement "bVar5 = iVar7 == -1;" (assignment_expression "bVar5 = iVar7 == -1" identifier = (binary_expression "iVar7 == -1" identifier == number_literal)) ;) (if_statement "if (iVar7 == -1) {\n        param_3 = (int *)0x0;\n      }" if (parenthesized_expression "(iVar7 == -1)" ( (binary_expression "iVar7 == -1" identifier == number_literal) )) (compound_statement "{\n        param_3 = (int *)0x0;\n      }" { (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) })) }) (else_clause "else {\n    bVar5 = false;\n  }" else (compound_statement "{\n    bVar5 = false;\n  }" { (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" identifier = false) ;) })))) (if_statement "if (param_5 == (int *)0x0) goto LAB_0034b768;" if (parenthesized_expression "(param_5 == (int *)0x0)" ( (binary_expression "param_5 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0034b768;" goto statement_identifier ;)) (while_statement "while( true ) {\n    if (param_6 == -1) {\n      bVar6 = false;\n      if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar7 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar6 = iVar7 == -1;\n        if (iVar7 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    else {\n      bVar6 = false;\n    }\n    if (bVar6 == bVar5) break;\n    while( true ) {\n      if (iVar10 == param_10) goto LAB_0034b778;\n      if ((param_3 == (int *)0x0) || (param_4 != 0xffffffff)) {\n        iVar7 = (int)(char)param_4;\n        uVar8 = param_4 & 0xff;\n      }\n      else if ((byte *)param_3[2] < (byte *)param_3[3]) {\n        bVar1 = *(byte *)param_3[2];\n        iVar7 = (int)(char)bVar1;\n        uVar8 = (uint)bVar1;\n      }\n      else {\n        uVar8 = (**(code **)(*param_3 + 0x24))(param_3);\n        if (uVar8 == 0xffffffff) {\n          uVar8 = 0xff;\n          iVar7 = -1;\n          param_3 = (int *)0x0;\n        }\n        else {\n          iVar7 = (int)(char)uVar8;\n          uVar8 = uVar8 & 0xff;\n        }\n      }\n      iVar4 = (int)(char)pcVar2[uVar8 + 0x11d];\n      if (iVar4 == 0) {\n        iVar4 = iVar7;\n        if (*(code **)(*(int *)pcVar2 + 0x20) != (code *)PTR_do_narrow_004c2c88) {\n          iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar7,0x2a);\n        }\n        if (iVar4 == 0x2a) goto LAB_0034b8c0;\n        pcVar2[uVar8 + 0x11d] = SUB41(iVar4,0);\n      }\n      if (9 < (iVar4 - 0x30U & 0xff)) goto LAB_0034b8c0;\n      iVar9 = (iVar4 - 0x30U) + iVar9 * 10;\n      if ((param_9 < (int)(uVar3 * iVar9)) || ((int)(uVar3 + uVar3 * iVar9) <= param_8))\n      goto LAB_0034b8c0;\n      uVar3 = uVar3 / 10;\n      if ((uint)param_3[2] < (uint)param_3[3]) {\n        param_3[2] = param_3[2] + 1;\n      }\n      else {\n        (**(code **)(*param_3 + 0x28))(param_3);\n      }\n      iVar10 = iVar10 + 1;\n      param_4 = 0xffffffff;\n      if (param_3 != (int *)0x0) goto LAB_0034b670;\nLAB_0034b758:\n      bVar5 = param_4 == 0xffffffff;\n      if (param_5 != (int *)0x0) break;\nLAB_0034b768:\n      if ((param_6 == -1) == bVar5) goto LAB_0034b770;\n    }\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    if (param_6 == -1) {\n      bVar6 = false;\n      if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar7 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar6 = iVar7 == -1;\n        if (iVar7 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    else {\n      bVar6 = false;\n    }\n    if (bVar6 == bVar5) break;\n    while( true ) {\n      if (iVar10 == param_10) goto LAB_0034b778;\n      if ((param_3 == (int *)0x0) || (param_4 != 0xffffffff)) {\n        iVar7 = (int)(char)param_4;\n        uVar8 = param_4 & 0xff;\n      }\n      else if ((byte *)param_3[2] < (byte *)param_3[3]) {\n        bVar1 = *(byte *)param_3[2];\n        iVar7 = (int)(char)bVar1;\n        uVar8 = (uint)bVar1;\n      }\n      else {\n        uVar8 = (**(code **)(*param_3 + 0x24))(param_3);\n        if (uVar8 == 0xffffffff) {\n          uVar8 = 0xff;\n          iVar7 = -1;\n          param_3 = (int *)0x0;\n        }\n        else {\n          iVar7 = (int)(char)uVar8;\n          uVar8 = uVar8 & 0xff;\n        }\n      }\n      iVar4 = (int)(char)pcVar2[uVar8 + 0x11d];\n      if (iVar4 == 0) {\n        iVar4 = iVar7;\n        if (*(code **)(*(int *)pcVar2 + 0x20) != (code *)PTR_do_narrow_004c2c88) {\n          iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar7,0x2a);\n        }\n        if (iVar4 == 0x2a) goto LAB_0034b8c0;\n        pcVar2[uVar8 + 0x11d] = SUB41(iVar4,0);\n      }\n      if (9 < (iVar4 - 0x30U & 0xff)) goto LAB_0034b8c0;\n      iVar9 = (iVar4 - 0x30U) + iVar9 * 10;\n      if ((param_9 < (int)(uVar3 * iVar9)) || ((int)(uVar3 + uVar3 * iVar9) <= param_8))\n      goto LAB_0034b8c0;\n      uVar3 = uVar3 / 10;\n      if ((uint)param_3[2] < (uint)param_3[3]) {\n        param_3[2] = param_3[2] + 1;\n      }\n      else {\n        (**(code **)(*param_3 + 0x28))(param_3);\n      }\n      iVar10 = iVar10 + 1;\n      param_4 = 0xffffffff;\n      if (param_3 != (int *)0x0) goto LAB_0034b670;\nLAB_0034b758:\n      bVar5 = param_4 == 0xffffffff;\n      if (param_5 != (int *)0x0) break;\nLAB_0034b768:\n      if ((param_6 == -1) == bVar5) goto LAB_0034b770;\n    }\n  }" { (if_statement "if (param_6 == -1) {\n      bVar6 = false;\n      if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar7 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar6 = iVar7 == -1;\n        if (iVar7 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    else {\n      bVar6 = false;\n    }" if (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )) (compound_statement "{\n      bVar6 = false;\n      if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar7 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar6 = iVar7 == -1;\n        if (iVar7 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }" { (expression_statement "bVar6 = false;" (assignment_expression "bVar6 = false" identifier = false) ;) (if_statement "if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar7 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar6 = iVar7 == -1;\n        if (iVar7 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }" if (parenthesized_expression "((uint)param_5[3] <= (uint)param_5[2])" ( (binary_expression "(uint)param_5[3] <= (uint)param_5[2]" (cast_expression "(uint)param_5[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_5[3]" identifier [ number_literal ])) <= (cast_expression "(uint)param_5[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_5[2]" identifier [ number_literal ]))) )) (compound_statement "{\n        iVar7 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar6 = iVar7 == -1;\n        if (iVar7 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }" { (expression_statement "iVar7 = (**(code **)(*param_5 + 0x24))(param_5);" (assignment_expression "iVar7 = (**(code **)(*param_5 + 0x24))(param_5)" identifier = (call_expression "(**(code **)(*param_5 + 0x24))(param_5)" (parenthesized_expression "(**(code **)(*param_5 + 0x24))" ( (pointer_expression "**(code **)(*param_5 + 0x24)" * (pointer_expression "*(code **)(*param_5 + 0x24)" * (cast_expression "(code **)(*param_5 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_5 + 0x24)" ( (binary_expression "*param_5 + 0x24" (pointer_expression "*param_5" * identifier) + number_literal) ))))) )) (argument_list "(param_5)" ( identifier )))) ;) (expression_statement "bVar6 = iVar7 == -1;" (assignment_expression "bVar6 = iVar7 == -1" identifier = (binary_expression "iVar7 == -1" identifier == number_literal)) ;) (if_statement "if (iVar7 == -1) {\n          param_5 = (int *)0x0;\n        }" if (parenthesized_expression "(iVar7 == -1)" ( (binary_expression "iVar7 == -1" identifier == number_literal) )) (compound_statement "{\n          param_5 = (int *)0x0;\n        }" { (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) })) }) (else_clause "else {\n      bVar6 = false;\n    }" else (compound_statement "{\n      bVar6 = false;\n    }" { (expression_statement "bVar6 = false;" (assignment_expression "bVar6 = false" identifier = false) ;) }))) (if_statement "if (bVar6 == bVar5) break;" if (parenthesized_expression "(bVar6 == bVar5)" ( (binary_expression "bVar6 == bVar5" identifier == identifier) )) (break_statement "break;" break ;)) (while_statement "while( true ) {\n      if (iVar10 == param_10) goto LAB_0034b778;\n      if ((param_3 == (int *)0x0) || (param_4 != 0xffffffff)) {\n        iVar7 = (int)(char)param_4;\n        uVar8 = param_4 & 0xff;\n      }\n      else if ((byte *)param_3[2] < (byte *)param_3[3]) {\n        bVar1 = *(byte *)param_3[2];\n        iVar7 = (int)(char)bVar1;\n        uVar8 = (uint)bVar1;\n      }\n      else {\n        uVar8 = (**(code **)(*param_3 + 0x24))(param_3);\n        if (uVar8 == 0xffffffff) {\n          uVar8 = 0xff;\n          iVar7 = -1;\n          param_3 = (int *)0x0;\n        }\n        else {\n          iVar7 = (int)(char)uVar8;\n          uVar8 = uVar8 & 0xff;\n        }\n      }\n      iVar4 = (int)(char)pcVar2[uVar8 + 0x11d];\n      if (iVar4 == 0) {\n        iVar4 = iVar7;\n        if (*(code **)(*(int *)pcVar2 + 0x20) != (code *)PTR_do_narrow_004c2c88) {\n          iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar7,0x2a);\n        }\n        if (iVar4 == 0x2a) goto LAB_0034b8c0;\n        pcVar2[uVar8 + 0x11d] = SUB41(iVar4,0);\n      }\n      if (9 < (iVar4 - 0x30U & 0xff)) goto LAB_0034b8c0;\n      iVar9 = (iVar4 - 0x30U) + iVar9 * 10;\n      if ((param_9 < (int)(uVar3 * iVar9)) || ((int)(uVar3 + uVar3 * iVar9) <= param_8))\n      goto LAB_0034b8c0;\n      uVar3 = uVar3 / 10;\n      if ((uint)param_3[2] < (uint)param_3[3]) {\n        param_3[2] = param_3[2] + 1;\n      }\n      else {\n        (**(code **)(*param_3 + 0x28))(param_3);\n      }\n      iVar10 = iVar10 + 1;\n      param_4 = 0xffffffff;\n      if (param_3 != (int *)0x0) goto LAB_0034b670;\nLAB_0034b758:\n      bVar5 = param_4 == 0xffffffff;\n      if (param_5 != (int *)0x0) break;\nLAB_0034b768:\n      if ((param_6 == -1) == bVar5) goto LAB_0034b770;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      if (iVar10 == param_10) goto LAB_0034b778;\n      if ((param_3 == (int *)0x0) || (param_4 != 0xffffffff)) {\n        iVar7 = (int)(char)param_4;\n        uVar8 = param_4 & 0xff;\n      }\n      else if ((byte *)param_3[2] < (byte *)param_3[3]) {\n        bVar1 = *(byte *)param_3[2];\n        iVar7 = (int)(char)bVar1;\n        uVar8 = (uint)bVar1;\n      }\n      else {\n        uVar8 = (**(code **)(*param_3 + 0x24))(param_3);\n        if (uVar8 == 0xffffffff) {\n          uVar8 = 0xff;\n          iVar7 = -1;\n          param_3 = (int *)0x0;\n        }\n        else {\n          iVar7 = (int)(char)uVar8;\n          uVar8 = uVar8 & 0xff;\n        }\n      }\n      iVar4 = (int)(char)pcVar2[uVar8 + 0x11d];\n      if (iVar4 == 0) {\n        iVar4 = iVar7;\n        if (*(code **)(*(int *)pcVar2 + 0x20) != (code *)PTR_do_narrow_004c2c88) {\n          iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar7,0x2a);\n        }\n        if (iVar4 == 0x2a) goto LAB_0034b8c0;\n        pcVar2[uVar8 + 0x11d] = SUB41(iVar4,0);\n      }\n      if (9 < (iVar4 - 0x30U & 0xff)) goto LAB_0034b8c0;\n      iVar9 = (iVar4 - 0x30U) + iVar9 * 10;\n      if ((param_9 < (int)(uVar3 * iVar9)) || ((int)(uVar3 + uVar3 * iVar9) <= param_8))\n      goto LAB_0034b8c0;\n      uVar3 = uVar3 / 10;\n      if ((uint)param_3[2] < (uint)param_3[3]) {\n        param_3[2] = param_3[2] + 1;\n      }\n      else {\n        (**(code **)(*param_3 + 0x28))(param_3);\n      }\n      iVar10 = iVar10 + 1;\n      param_4 = 0xffffffff;\n      if (param_3 != (int *)0x0) goto LAB_0034b670;\nLAB_0034b758:\n      bVar5 = param_4 == 0xffffffff;\n      if (param_5 != (int *)0x0) break;\nLAB_0034b768:\n      if ((param_6 == -1) == bVar5) goto LAB_0034b770;\n    }" { (if_statement "if (iVar10 == param_10) goto LAB_0034b778;" if (parenthesized_expression "(iVar10 == param_10)" ( (binary_expression "iVar10 == param_10" identifier == identifier) )) (goto_statement "goto LAB_0034b778;" goto statement_identifier ;)) (if_statement "if ((param_3 == (int *)0x0) || (param_4 != 0xffffffff)) {\n        iVar7 = (int)(char)param_4;\n        uVar8 = param_4 & 0xff;\n      }\n      else if ((byte *)param_3[2] < (byte *)param_3[3]) {\n        bVar1 = *(byte *)param_3[2];\n        iVar7 = (int)(char)bVar1;\n        uVar8 = (uint)bVar1;\n      }\n      else {\n        uVar8 = (**(code **)(*param_3 + 0x24))(param_3);\n        if (uVar8 == 0xffffffff) {\n          uVar8 = 0xff;\n          iVar7 = -1;\n          param_3 = (int *)0x0;\n        }\n        else {\n          iVar7 = (int)(char)uVar8;\n          uVar8 = uVar8 & 0xff;\n        }\n      }" if (parenthesized_expression "((param_3 == (int *)0x0) || (param_4 != 0xffffffff))" ( (binary_expression "(param_3 == (int *)0x0) || (param_4 != 0xffffffff)" (parenthesized_expression "(param_3 == (int *)0x0)" ( (binary_expression "param_3 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(param_4 != 0xffffffff)" ( (binary_expression "param_4 != 0xffffffff" identifier != number_literal) ))) )) (compound_statement "{\n        iVar7 = (int)(char)param_4;\n        uVar8 = param_4 & 0xff;\n      }" { (expression_statement "iVar7 = (int)(char)param_4;" (assignment_expression "iVar7 = (int)(char)param_4" identifier = (cast_expression "(int)(char)param_4" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)param_4" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (expression_statement "uVar8 = param_4 & 0xff;" (assignment_expression "uVar8 = param_4 & 0xff" identifier = (binary_expression "param_4 & 0xff" identifier & number_literal)) ;) }) (else_clause "else if ((byte *)param_3[2] < (byte *)param_3[3]) {\n        bVar1 = *(byte *)param_3[2];\n        iVar7 = (int)(char)bVar1;\n        uVar8 = (uint)bVar1;\n      }\n      else {\n        uVar8 = (**(code **)(*param_3 + 0x24))(param_3);\n        if (uVar8 == 0xffffffff) {\n          uVar8 = 0xff;\n          iVar7 = -1;\n          param_3 = (int *)0x0;\n        }\n        else {\n          iVar7 = (int)(char)uVar8;\n          uVar8 = uVar8 & 0xff;\n        }\n      }" else (if_statement "if ((byte *)param_3[2] < (byte *)param_3[3]) {\n        bVar1 = *(byte *)param_3[2];\n        iVar7 = (int)(char)bVar1;\n        uVar8 = (uint)bVar1;\n      }\n      else {\n        uVar8 = (**(code **)(*param_3 + 0x24))(param_3);\n        if (uVar8 == 0xffffffff) {\n          uVar8 = 0xff;\n          iVar7 = -1;\n          param_3 = (int *)0x0;\n        }\n        else {\n          iVar7 = (int)(char)uVar8;\n          uVar8 = uVar8 & 0xff;\n        }\n      }" if (parenthesized_expression "((byte *)param_3[2] < (byte *)param_3[3])" ( (binary_expression "(byte *)param_3[2] < (byte *)param_3[3]" (cast_expression "(byte *)param_3[2]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])) < (cast_expression "(byte *)param_3[3]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (compound_statement "{\n        bVar1 = *(byte *)param_3[2];\n        iVar7 = (int)(char)bVar1;\n        uVar8 = (uint)bVar1;\n      }" { (expression_statement "bVar1 = *(byte *)param_3[2];" (assignment_expression "bVar1 = *(byte *)param_3[2]" identifier = (pointer_expression "*(byte *)param_3[2]" * (cast_expression "(byte *)param_3[2]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])))) ;) (expression_statement "iVar7 = (int)(char)bVar1;" (assignment_expression "iVar7 = (int)(char)bVar1" identifier = (cast_expression "(int)(char)bVar1" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (expression_statement "uVar8 = (uint)bVar1;" (assignment_expression "uVar8 = (uint)bVar1" identifier = (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n        uVar8 = (**(code **)(*param_3 + 0x24))(param_3);\n        if (uVar8 == 0xffffffff) {\n          uVar8 = 0xff;\n          iVar7 = -1;\n          param_3 = (int *)0x0;\n        }\n        else {\n          iVar7 = (int)(char)uVar8;\n          uVar8 = uVar8 & 0xff;\n        }\n      }" else (compound_statement "{\n        uVar8 = (**(code **)(*param_3 + 0x24))(param_3);\n        if (uVar8 == 0xffffffff) {\n          uVar8 = 0xff;\n          iVar7 = -1;\n          param_3 = (int *)0x0;\n        }\n        else {\n          iVar7 = (int)(char)uVar8;\n          uVar8 = uVar8 & 0xff;\n        }\n      }" { (expression_statement "uVar8 = (**(code **)(*param_3 + 0x24))(param_3);" (assignment_expression "uVar8 = (**(code **)(*param_3 + 0x24))(param_3)" identifier = (call_expression "(**(code **)(*param_3 + 0x24))(param_3)" (parenthesized_expression "(**(code **)(*param_3 + 0x24))" ( (pointer_expression "**(code **)(*param_3 + 0x24)" * (pointer_expression "*(code **)(*param_3 + 0x24)" * (cast_expression "(code **)(*param_3 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_3 + 0x24)" ( (binary_expression "*param_3 + 0x24" (pointer_expression "*param_3" * identifier) + number_literal) ))))) )) (argument_list "(param_3)" ( identifier )))) ;) (if_statement "if (uVar8 == 0xffffffff) {\n          uVar8 = 0xff;\n          iVar7 = -1;\n          param_3 = (int *)0x0;\n        }\n        else {\n          iVar7 = (int)(char)uVar8;\n          uVar8 = uVar8 & 0xff;\n        }" if (parenthesized_expression "(uVar8 == 0xffffffff)" ( (binary_expression "uVar8 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n          uVar8 = 0xff;\n          iVar7 = -1;\n          param_3 = (int *)0x0;\n        }" { (expression_statement "uVar8 = 0xff;" (assignment_expression "uVar8 = 0xff" identifier = number_literal) ;) (expression_statement "iVar7 = -1;" (assignment_expression "iVar7 = -1" identifier = number_literal) ;) (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n          iVar7 = (int)(char)uVar8;\n          uVar8 = uVar8 & 0xff;\n        }" else (compound_statement "{\n          iVar7 = (int)(char)uVar8;\n          uVar8 = uVar8 & 0xff;\n        }" { (expression_statement "iVar7 = (int)(char)uVar8;" (assignment_expression "iVar7 = (int)(char)uVar8" identifier = (cast_expression "(int)(char)uVar8" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)uVar8" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (expression_statement "uVar8 = uVar8 & 0xff;" (assignment_expression "uVar8 = uVar8 & 0xff" identifier = (binary_expression "uVar8 & 0xff" identifier & number_literal)) ;) }))) }))))) (expression_statement "iVar4 = (int)(char)pcVar2[uVar8 + 0x11d];" (assignment_expression "iVar4 = (int)(char)pcVar2[uVar8 + 0x11d]" identifier = (cast_expression "(int)(char)pcVar2[uVar8 + 0x11d]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pcVar2[uVar8 + 0x11d]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pcVar2[uVar8 + 0x11d]" identifier [ (binary_expression "uVar8 + 0x11d" identifier + number_literal) ])))) ;) (if_statement "if (iVar4 == 0) {\n        iVar4 = iVar7;\n        if (*(code **)(*(int *)pcVar2 + 0x20) != (code *)PTR_do_narrow_004c2c88) {\n          iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar7,0x2a);\n        }\n        if (iVar4 == 0x2a) goto LAB_0034b8c0;\n        pcVar2[uVar8 + 0x11d] = SUB41(iVar4,0);\n      }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar4 = iVar7;\n        if (*(code **)(*(int *)pcVar2 + 0x20) != (code *)PTR_do_narrow_004c2c88) {\n          iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar7,0x2a);\n        }\n        if (iVar4 == 0x2a) goto LAB_0034b8c0;\n        pcVar2[uVar8 + 0x11d] = SUB41(iVar4,0);\n      }" { (expression_statement "iVar4 = iVar7;" (assignment_expression "iVar4 = iVar7" identifier = identifier) ;) (if_statement "if (*(code **)(*(int *)pcVar2 + 0x20) != (code *)PTR_do_narrow_004c2c88) {\n          iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar7,0x2a);\n        }" if (parenthesized_expression "(*(code **)(*(int *)pcVar2 + 0x20) != (code *)PTR_do_narrow_004c2c88)" ( (binary_expression "*(code **)(*(int *)pcVar2 + 0x20) != (code *)PTR_do_narrow_004c2c88" (pointer_expression "*(code **)(*(int *)pcVar2 + 0x20)" * (cast_expression "(code **)(*(int *)pcVar2 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 0x20)" ( (binary_expression "*(int *)pcVar2 + 0x20" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) != (cast_expression "(code *)PTR_do_narrow_004c2c88" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n          iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar7,0x2a);\n        }" { (expression_statement "iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar7,0x2a);" (assignment_expression "iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar7,0x2a)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar7,0x2a)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x20))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 0x20)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 0x20)" * (cast_expression "(code **)(*(int *)pcVar2 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 0x20)" ( (binary_expression "*(int *)pcVar2 + 0x20" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2,iVar7,0x2a)" ( identifier , identifier , number_literal )))) ;) })) (if_statement "if (iVar4 == 0x2a) goto LAB_0034b8c0;" if (parenthesized_expression "(iVar4 == 0x2a)" ( (binary_expression "iVar4 == 0x2a" identifier == number_literal) )) (goto_statement "goto LAB_0034b8c0;" goto statement_identifier ;)) (expression_statement "pcVar2[uVar8 + 0x11d] = SUB41(iVar4,0);" (assignment_expression "pcVar2[uVar8 + 0x11d] = SUB41(iVar4,0)" (subscript_expression "pcVar2[uVar8 + 0x11d]" identifier [ (binary_expression "uVar8 + 0x11d" identifier + number_literal) ]) = (call_expression "SUB41(iVar4,0)" identifier (argument_list "(iVar4,0)" ( identifier , number_literal )))) ;) })) (if_statement "if (9 < (iVar4 - 0x30U & 0xff)) goto LAB_0034b8c0;" if (parenthesized_expression "(9 < (iVar4 - 0x30U & 0xff))" ( (binary_expression "9 < (iVar4 - 0x30U & 0xff)" number_literal < (parenthesized_expression "(iVar4 - 0x30U & 0xff)" ( (binary_expression "iVar4 - 0x30U & 0xff" (binary_expression "iVar4 - 0x30U" identifier - number_literal) & number_literal) ))) )) (goto_statement "goto LAB_0034b8c0;" goto statement_identifier ;)) (expression_statement "iVar9 = (iVar4 - 0x30U) + iVar9 * 10;" (assignment_expression "iVar9 = (iVar4 - 0x30U) + iVar9 * 10" identifier = (binary_expression "(iVar4 - 0x30U) + iVar9 * 10" (parenthesized_expression "(iVar4 - 0x30U)" ( (binary_expression "iVar4 - 0x30U" identifier - number_literal) )) + (binary_expression "iVar9 * 10" identifier * number_literal))) ;) (if_statement "if ((param_9 < (int)(uVar3 * iVar9)) || ((int)(uVar3 + uVar3 * iVar9) <= param_8))\n      goto LAB_0034b8c0;" if (parenthesized_expression "((param_9 < (int)(uVar3 * iVar9)) || ((int)(uVar3 + uVar3 * iVar9) <= param_8))" ( (binary_expression "(param_9 < (int)(uVar3 * iVar9)) || ((int)(uVar3 + uVar3 * iVar9) <= param_8)" (parenthesized_expression "(param_9 < (int)(uVar3 * iVar9))" ( (binary_expression "param_9 < (int)(uVar3 * iVar9)" identifier < (cast_expression "(int)(uVar3 * iVar9)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar3 * iVar9)" ( (binary_expression "uVar3 * iVar9" identifier * identifier) )))) )) || (parenthesized_expression "((int)(uVar3 + uVar3 * iVar9) <= param_8)" ( (binary_expression "(int)(uVar3 + uVar3 * iVar9) <= param_8" (cast_expression "(int)(uVar3 + uVar3 * iVar9)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar3 + uVar3 * iVar9)" ( (binary_expression "uVar3 + uVar3 * iVar9" identifier + (binary_expression "uVar3 * iVar9" identifier * identifier)) ))) <= identifier) ))) )) (goto_statement "goto LAB_0034b8c0;" goto statement_identifier ;)) (expression_statement "uVar3 = uVar3 / 10;" (assignment_expression "uVar3 = uVar3 / 10" identifier = (binary_expression "uVar3 / 10" identifier / number_literal)) ;) (if_statement "if ((uint)param_3[2] < (uint)param_3[3]) {\n        param_3[2] = param_3[2] + 1;\n      }\n      else {\n        (**(code **)(*param_3 + 0x28))(param_3);\n      }" if (parenthesized_expression "((uint)param_3[2] < (uint)param_3[3])" ( (binary_expression "(uint)param_3[2] < (uint)param_3[3]" (cast_expression "(uint)param_3[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_3[2]" identifier [ number_literal ])) < (cast_expression "(uint)param_3[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (compound_statement "{\n        param_3[2] = param_3[2] + 1;\n      }" { (expression_statement "param_3[2] = param_3[2] + 1;" (assignment_expression "param_3[2] = param_3[2] + 1" (subscript_expression "param_3[2]" identifier [ number_literal ]) = (binary_expression "param_3[2] + 1" (subscript_expression "param_3[2]" identifier [ number_literal ]) + number_literal)) ;) }) (else_clause "else {\n        (**(code **)(*param_3 + 0x28))(param_3);\n      }" else (compound_statement "{\n        (**(code **)(*param_3 + 0x28))(param_3);\n      }" { (expression_statement "(**(code **)(*param_3 + 0x28))(param_3);" (call_expression "(**(code **)(*param_3 + 0x28))(param_3)" (parenthesized_expression "(**(code **)(*param_3 + 0x28))" ( (pointer_expression "**(code **)(*param_3 + 0x28)" * (pointer_expression "*(code **)(*param_3 + 0x28)" * (cast_expression "(code **)(*param_3 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_3 + 0x28)" ( (binary_expression "*param_3 + 0x28" (pointer_expression "*param_3" * identifier) + number_literal) ))))) )) (argument_list "(param_3)" ( identifier ))) ;) }))) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (expression_statement "param_4 = 0xffffffff;" (assignment_expression "param_4 = 0xffffffff" identifier = number_literal) ;) (if_statement "if (param_3 != (int *)0x0) goto LAB_0034b670;" if (parenthesized_expression "(param_3 != (int *)0x0)" ( (binary_expression "param_3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0034b670;" goto statement_identifier ;)) (labeled_statement "LAB_0034b758:\n      bVar5 = param_4 == 0xffffffff;" statement_identifier : (expression_statement "bVar5 = param_4 == 0xffffffff;" (assignment_expression "bVar5 = param_4 == 0xffffffff" identifier = (binary_expression "param_4 == 0xffffffff" identifier == number_literal)) ;)) (if_statement "if (param_5 != (int *)0x0) break;" if (parenthesized_expression "(param_5 != (int *)0x0)" ( (binary_expression "param_5 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0034b768:\n      if ((param_6 == -1) == bVar5) goto LAB_0034b770;" statement_identifier : (if_statement "if ((param_6 == -1) == bVar5) goto LAB_0034b770;" if (parenthesized_expression "((param_6 == -1) == bVar5)" ( (binary_expression "(param_6 == -1) == bVar5" (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )) == identifier) )) (goto_statement "goto LAB_0034b770;" goto statement_identifier ;))) })) })) (labeled_statement "LAB_0034b770:\n  if (iVar10 != param_10) {\nLAB_0034b8c0:\n    if ((param_10 == 4) && (iVar10 == 2)) {\n      *param_7 = iVar9 + -100;\n    }\n    else {\n      *param_12 = *param_12 | 4;\n    }\n    *param_1 = param_3;\n    param_1[1] = param_4;\n    return;\n  }" statement_identifier : (if_statement "if (iVar10 != param_10) {\nLAB_0034b8c0:\n    if ((param_10 == 4) && (iVar10 == 2)) {\n      *param_7 = iVar9 + -100;\n    }\n    else {\n      *param_12 = *param_12 | 4;\n    }\n    *param_1 = param_3;\n    param_1[1] = param_4;\n    return;\n  }" if (parenthesized_expression "(iVar10 != param_10)" ( (binary_expression "iVar10 != param_10" identifier != identifier) )) (compound_statement "{\nLAB_0034b8c0:\n    if ((param_10 == 4) && (iVar10 == 2)) {\n      *param_7 = iVar9 + -100;\n    }\n    else {\n      *param_12 = *param_12 | 4;\n    }\n    *param_1 = param_3;\n    param_1[1] = param_4;\n    return;\n  }" { (labeled_statement "LAB_0034b8c0:\n    if ((param_10 == 4) && (iVar10 == 2)) {\n      *param_7 = iVar9 + -100;\n    }\n    else {\n      *param_12 = *param_12 | 4;\n    }" statement_identifier : (if_statement "if ((param_10 == 4) && (iVar10 == 2)) {\n      *param_7 = iVar9 + -100;\n    }\n    else {\n      *param_12 = *param_12 | 4;\n    }" if (parenthesized_expression "((param_10 == 4) && (iVar10 == 2))" ( (binary_expression "(param_10 == 4) && (iVar10 == 2)" (parenthesized_expression "(param_10 == 4)" ( (binary_expression "param_10 == 4" identifier == number_literal) )) && (parenthesized_expression "(iVar10 == 2)" ( (binary_expression "iVar10 == 2" identifier == number_literal) ))) )) (compound_statement "{\n      *param_7 = iVar9 + -100;\n    }" { (expression_statement "*param_7 = iVar9 + -100;" (assignment_expression "*param_7 = iVar9 + -100" (pointer_expression "*param_7" * identifier) = (binary_expression "iVar9 + -100" identifier + number_literal)) ;) }) (else_clause "else {\n      *param_12 = *param_12 | 4;\n    }" else (compound_statement "{\n      *param_12 = *param_12 | 4;\n    }" { (expression_statement "*param_12 = *param_12 | 4;" (assignment_expression "*param_12 = *param_12 | 4" (pointer_expression "*param_12" * identifier) = (binary_expression "*param_12 | 4" (pointer_expression "*param_12" * identifier) | number_literal)) ;) })))) (expression_statement "*param_1 = param_3;" (assignment_expression "*param_1 = param_3" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[1] = param_4;" (assignment_expression "param_1[1] = param_4" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) }))) (labeled_statement "LAB_0034b778:\n  *param_7 = iVar9;" statement_identifier : (expression_statement "*param_7 = iVar9;" (assignment_expression "*param_7 = iVar9" (pointer_expression "*param_7" * identifier) = identifier) ;)) (expression_statement "*param_1 = param_3;" (assignment_expression "*param_1 = param_3" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[1] = param_4;" (assignment_expression "param_1[1] = param_4" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit (declaration TYPE (ERROR IDENT : :) IDENT (ERROR < TYPE) , (ERROR IDENT : :) IDENT (ERROR < TYPE) , (ERROR IDENT : : IDENT < TYPE >> > : : (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 (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) { IDENT) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (update_expression (binary_expression (assignment_expression IDENT = (binary_expression IDENT < IDENT)) (ERROR : : IDENT) < (binary_expression IDENT >> (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) )))) --) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) <= (cast_expression ( (type_descriptor TYPE) ) (subscript_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 (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) })))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) <= (cast_expression ( (type_descriptor TYPE) ) (subscript_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 (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (break_statement break ;)) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) }))) }))))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (binary_expression IDENT + LIT) ])))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) )))) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) )) (argument_list ( IDENT , IDENT , LIT )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & LIT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - LIT) )) + (binary_expression IDENT * LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT * IDENT) )))) )) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * IDENT)) ))) <= IDENT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT / LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT ))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) == IDENT) )) (goto_statement goto statement_identifier ;))) })) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (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 (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | LIT)) ;) })))) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (return_statement return ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (return_statement return ;) (ERROR }))
(declaration "void std::time_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::_M_extract_num\n               (undefined4 *param_1,undefined4 param_2,int *param_3,uint param_4,int *param_5,\n               int param_6,int *param_7,int param_8,int param_9,int param_10,int param_11,\n               uint *param_12)\n\n{\n  byte bVar1;" (primitive_type "void") (ERROR "std::" (identifier "std") (: ":") (: ":")) (identifier "time_get") (ERROR "<char" (< "<") (primitive_type "char")) (, ",") (ERROR "std::" (identifier "std") (: ":") (: ":")) (identifier "istreambuf_iterator") (ERROR "<char" (< "<") (primitive_type "char")) (, ",") (ERROR "std::char_traits<char>>>::_M_extract_num\n               (undefined4 *param_1,undefined4 param_2,int *param_3,uint param_4,int *param_5,\n               int param_6,int *param_7,int param_8,int param_9,int param_10,int param_11,\n               uint *param_12)\n\n{\n  byte" (identifier "std") (: ":") (: ":") (identifier "char_traits") (< "<") (primitive_type "char") (>> ">>") (> ">") (: ":") (: ":") (function_declarator "_M_extract_num\n               (undefined4 *param_1,undefined4 param_2,int *param_3,uint param_4,int *param_5,\n               int param_6,int *param_7,int param_8,int param_9,int param_10,int param_11,\n               uint *param_12)" (identifier "_M_extract_num") (parameter_list "(undefined4 *param_1,undefined4 param_2,int *param_3,uint param_4,int *param_5,\n               int param_6,int *param_7,int param_8,int param_9,int param_10,int param_11,\n               uint *param_12)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "int *param_3" (primitive_type "int") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "uint param_4" (type_identifier "uint") (identifier "param_4")) (, ",") (parameter_declaration "int *param_5" (primitive_type "int") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) (, ",") (parameter_declaration "int param_6" (primitive_type "int") (identifier "param_6")) (, ",") (parameter_declaration "int *param_7" (primitive_type "int") (pointer_declarator "*param_7" (* "*") (identifier "param_7"))) (, ",") (parameter_declaration "int param_8" (primitive_type "int") (identifier "param_8")) (, ",") (parameter_declaration "int param_9" (primitive_type "int") (identifier "param_9")) (, ",") (parameter_declaration "int param_10" (primitive_type "int") (identifier "param_10")) (, ",") (parameter_declaration "int param_11" (primitive_type "int") (identifier "param_11")) (, ",") (parameter_declaration "uint *param_12" (type_identifier "uint") (pointer_declarator "*param_12" (* "*") (identifier "param_12"))) () ")"))) ({ "{") (identifier "byte")) (identifier "bVar1") (; ";")) (declaration "ctype *pcVar2;" (type_identifier "ctype") (pointer_declarator "*pcVar2" (* "*") (identifier "pcVar2")) (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "bool bVar5;" (primitive_type "bool") (identifier "bVar5") (; ";")) (declaration "bool bVar6;" (primitive_type "bool") (identifier "bVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (expression_statement "pcVar2 = use_facet<std::ctype<char>>((locale *)(param_11 + 0x6c));" (update_expression "pcVar2 = use_facet<std::ctype<char>>((locale *)(param_11 + 0x6c))" (binary_expression "pcVar2 = use_facet<std::ctype<char>>((locale *)(param_11 + 0x6c))" (assignment_expression "pcVar2 = use_facet<std" (identifier "pcVar2") (= "=") (binary_expression "use_facet<std" (identifier "use_facet") (< "<") (identifier "std"))) (ERROR "::ctype" (: ":") (: ":") (identifier "ctype")) (< "<") (binary_expression "char>>((locale *)(param_11 + 0x6c))" (identifier "char") (>> ">>") (parenthesized_expression "((locale *)(param_11 + 0x6c))" (( "(") (cast_expression "(locale *)(param_11 + 0x6c)" (( "(") (type_descriptor "locale *" (type_identifier "locale") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_11 + 0x6c)" (( "(") (binary_expression "param_11 + 0x6c" (identifier "param_11") (+ "+") (number_literal "0x6c")) () ")"))) () ")")))) (-- "")) (; ";")) (if_statement "if (param_10 == 2) {\n    uVar3 = 10;\n  }\n  else {\n    uVar3 = 1;\n    if (param_10 == 4) {\n      uVar3 = 1000;\n    }\n  }" (if "if") (parenthesized_expression "(param_10 == 2)" (( "(") (binary_expression "param_10 == 2" (identifier "param_10") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n    uVar3 = 10;\n  }" ({ "{") (expression_statement "uVar3 = 10;" (assignment_expression "uVar3 = 10" (identifier "uVar3") (= "=") (number_literal "10")) (; ";")) (} "}")) (else_clause "else {\n    uVar3 = 1;\n    if (param_10 == 4) {\n      uVar3 = 1000;\n    }\n  }" (else "else") (compound_statement "{\n    uVar3 = 1;\n    if (param_10 == 4) {\n      uVar3 = 1000;\n    }\n  }" ({ "{") (expression_statement "uVar3 = 1;" (assignment_expression "uVar3 = 1" (identifier "uVar3") (= "=") (number_literal "1")) (; ";")) (if_statement "if (param_10 == 4) {\n      uVar3 = 1000;\n    }" (if "if") (parenthesized_expression "(param_10 == 4)" (( "(") (binary_expression "param_10 == 4" (identifier "param_10") (== "==") (number_literal "4")) () ")")) (compound_statement "{\n      uVar3 = 1000;\n    }" ({ "{") (expression_statement "uVar3 = 1000;" (assignment_expression "uVar3 = 1000" (identifier "uVar3") (= "=") (number_literal "1000")) (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" (identifier "iVar9") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" (identifier "iVar10") (= "=") (number_literal "0")) (; ";")) (if_statement "if (param_3 == (int *)0x0) goto LAB_0034b758;" (if "if") (parenthesized_expression "(param_3 == (int *)0x0)" (( "(") (binary_expression "param_3 == (int *)0x0" (identifier "param_3") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0034b758;" (goto "goto") (statement_identifier "LAB_0034b758") (; ";"))) (labeled_statement "LAB_0034b670:\n  if (param_4 == 0xffffffff) {\n    bVar5 = false;\n    if ((uint)param_3[3] <= (uint)param_3[2]) {\n      iVar7 = (**(code **)(*param_3 + 0x24))(param_3);\n      bVar5 = iVar7 == -1;\n      if (iVar7 == -1) {\n        param_3 = (int *)0x0;\n      }\n    }\n  }\n  else {\n    bVar5 = false;\n  }" (statement_identifier "LAB_0034b670") (: ":") (if_statement "if (param_4 == 0xffffffff) {\n    bVar5 = false;\n    if ((uint)param_3[3] <= (uint)param_3[2]) {\n      iVar7 = (**(code **)(*param_3 + 0x24))(param_3);\n      bVar5 = iVar7 == -1;\n      if (iVar7 == -1) {\n        param_3 = (int *)0x0;\n      }\n    }\n  }\n  else {\n    bVar5 = false;\n  }" (if "if") (parenthesized_expression "(param_4 == 0xffffffff)" (( "(") (binary_expression "param_4 == 0xffffffff" (identifier "param_4") (== "==") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n    bVar5 = false;\n    if ((uint)param_3[3] <= (uint)param_3[2]) {\n      iVar7 = (**(code **)(*param_3 + 0x24))(param_3);\n      bVar5 = iVar7 == -1;\n      if (iVar7 == -1) {\n        param_3 = (int *)0x0;\n      }\n    }\n  }" ({ "{") (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" (identifier "bVar5") (= "=") (false "false")) (; ";")) (if_statement "if ((uint)param_3[3] <= (uint)param_3[2]) {\n      iVar7 = (**(code **)(*param_3 + 0x24))(param_3);\n      bVar5 = iVar7 == -1;\n      if (iVar7 == -1) {\n        param_3 = (int *)0x0;\n      }\n    }" (if "if") (parenthesized_expression "((uint)param_3[3] <= (uint)param_3[2])" (( "(") (binary_expression "(uint)param_3[3] <= (uint)param_3[2]" (cast_expression "(uint)param_3[3]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]"))) (<= "<=") (cast_expression "(uint)param_3[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")))) () ")")) (compound_statement "{\n      iVar7 = (**(code **)(*param_3 + 0x24))(param_3);\n      bVar5 = iVar7 == -1;\n      if (iVar7 == -1) {\n        param_3 = (int *)0x0;\n      }\n    }" ({ "{") (expression_statement "iVar7 = (**(code **)(*param_3 + 0x24))(param_3);" (assignment_expression "iVar7 = (**(code **)(*param_3 + 0x24))(param_3)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(*param_3 + 0x24))(param_3)" (parenthesized_expression "(**(code **)(*param_3 + 0x24))" (( "(") (pointer_expression "**(code **)(*param_3 + 0x24)" (* "*") (pointer_expression "*(code **)(*param_3 + 0x24)" (* "*") (cast_expression "(code **)(*param_3 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_3 + 0x24)" (( "(") (binary_expression "*param_3 + 0x24" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (+ "+") (number_literal "0x24")) () ")"))))) () ")")) (argument_list "(param_3)" (( "(") (identifier "param_3") () ")")))) (; ";")) (expression_statement "bVar5 = iVar7 == -1;" (assignment_expression "bVar5 = iVar7 == -1" (identifier "bVar5") (= "=") (binary_expression "iVar7 == -1" (identifier "iVar7") (== "==") (number_literal "-1"))) (; ";")) (if_statement "if (iVar7 == -1) {\n        param_3 = (int *)0x0;\n      }" (if "if") (parenthesized_expression "(iVar7 == -1)" (( "(") (binary_expression "iVar7 == -1" (identifier "iVar7") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n        param_3 = (int *)0x0;\n      }" ({ "{") (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" (identifier "param_3") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n    bVar5 = false;\n  }" (else "else") (compound_statement "{\n    bVar5 = false;\n  }" ({ "{") (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" (identifier "bVar5") (= "=") (false "false")) (; ";")) (} "}"))))) (if_statement "if (param_5 == (int *)0x0) goto LAB_0034b768;" (if "if") (parenthesized_expression "(param_5 == (int *)0x0)" (( "(") (binary_expression "param_5 == (int *)0x0" (identifier "param_5") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0034b768;" (goto "goto") (statement_identifier "LAB_0034b768") (; ";"))) (while_statement "while( true ) {\n    if (param_6 == -1) {\n      bVar6 = false;\n      if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar7 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar6 = iVar7 == -1;\n        if (iVar7 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    else {\n      bVar6 = false;\n    }\n    if (bVar6 == bVar5) break;\n    while( true ) {\n      if (iVar10 == param_10) goto LAB_0034b778;\n      if ((param_3 == (int *)0x0) || (param_4 != 0xffffffff)) {\n        iVar7 = (int)(char)param_4;\n        uVar8 = param_4 & 0xff;\n      }\n      else if ((byte *)param_3[2] < (byte *)param_3[3]) {\n        bVar1 = *(byte *)param_3[2];\n        iVar7 = (int)(char)bVar1;\n        uVar8 = (uint)bVar1;\n      }\n      else {\n        uVar8 = (**(code **)(*param_3 + 0x24))(param_3);\n        if (uVar8 == 0xffffffff) {\n          uVar8 = 0xff;\n          iVar7 = -1;\n          param_3 = (int *)0x0;\n        }\n        else {\n          iVar7 = (int)(char)uVar8;\n          uVar8 = uVar8 & 0xff;\n        }\n      }\n      iVar4 = (int)(char)pcVar2[uVar8 + 0x11d];\n      if (iVar4 == 0) {\n        iVar4 = iVar7;\n        if (*(code **)(*(int *)pcVar2 + 0x20) != (code *)PTR_do_narrow_004c2c88) {\n          iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar7,0x2a);\n        }\n        if (iVar4 == 0x2a) goto LAB_0034b8c0;\n        pcVar2[uVar8 + 0x11d] = SUB41(iVar4,0);\n      }\n      if (9 < (iVar4 - 0x30U & 0xff)) goto LAB_0034b8c0;\n      iVar9 = (iVar4 - 0x30U) + iVar9 * 10;\n      if ((param_9 < (int)(uVar3 * iVar9)) || ((int)(uVar3 + uVar3 * iVar9) <= param_8))\n      goto LAB_0034b8c0;\n      uVar3 = uVar3 / 10;\n      if ((uint)param_3[2] < (uint)param_3[3]) {\n        param_3[2] = param_3[2] + 1;\n      }\n      else {\n        (**(code **)(*param_3 + 0x28))(param_3);\n      }\n      iVar10 = iVar10 + 1;\n      param_4 = 0xffffffff;\n      if (param_3 != (int *)0x0) goto LAB_0034b670;\nLAB_0034b758:\n      bVar5 = param_4 == 0xffffffff;\n      if (param_5 != (int *)0x0) break;\nLAB_0034b768:\n      if ((param_6 == -1) == bVar5) goto LAB_0034b770;\n    }\n  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n    if (param_6 == -1) {\n      bVar6 = false;\n      if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar7 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar6 = iVar7 == -1;\n        if (iVar7 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    else {\n      bVar6 = false;\n    }\n    if (bVar6 == bVar5) break;\n    while( true ) {\n      if (iVar10 == param_10) goto LAB_0034b778;\n      if ((param_3 == (int *)0x0) || (param_4 != 0xffffffff)) {\n        iVar7 = (int)(char)param_4;\n        uVar8 = param_4 & 0xff;\n      }\n      else if ((byte *)param_3[2] < (byte *)param_3[3]) {\n        bVar1 = *(byte *)param_3[2];\n        iVar7 = (int)(char)bVar1;\n        uVar8 = (uint)bVar1;\n      }\n      else {\n        uVar8 = (**(code **)(*param_3 + 0x24))(param_3);\n        if (uVar8 == 0xffffffff) {\n          uVar8 = 0xff;\n          iVar7 = -1;\n          param_3 = (int *)0x0;\n        }\n        else {\n          iVar7 = (int)(char)uVar8;\n          uVar8 = uVar8 & 0xff;\n        }\n      }\n      iVar4 = (int)(char)pcVar2[uVar8 + 0x11d];\n      if (iVar4 == 0) {\n        iVar4 = iVar7;\n        if (*(code **)(*(int *)pcVar2 + 0x20) != (code *)PTR_do_narrow_004c2c88) {\n          iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar7,0x2a);\n        }\n        if (iVar4 == 0x2a) goto LAB_0034b8c0;\n        pcVar2[uVar8 + 0x11d] = SUB41(iVar4,0);\n      }\n      if (9 < (iVar4 - 0x30U & 0xff)) goto LAB_0034b8c0;\n      iVar9 = (iVar4 - 0x30U) + iVar9 * 10;\n      if ((param_9 < (int)(uVar3 * iVar9)) || ((int)(uVar3 + uVar3 * iVar9) <= param_8))\n      goto LAB_0034b8c0;\n      uVar3 = uVar3 / 10;\n      if ((uint)param_3[2] < (uint)param_3[3]) {\n        param_3[2] = param_3[2] + 1;\n      }\n      else {\n        (**(code **)(*param_3 + 0x28))(param_3);\n      }\n      iVar10 = iVar10 + 1;\n      param_4 = 0xffffffff;\n      if (param_3 != (int *)0x0) goto LAB_0034b670;\nLAB_0034b758:\n      bVar5 = param_4 == 0xffffffff;\n      if (param_5 != (int *)0x0) break;\nLAB_0034b768:\n      if ((param_6 == -1) == bVar5) goto LAB_0034b770;\n    }\n  }" ({ "{") (if_statement "if (param_6 == -1) {\n      bVar6 = false;\n      if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar7 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar6 = iVar7 == -1;\n        if (iVar7 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    else {\n      bVar6 = false;\n    }" (if "if") (parenthesized_expression "(param_6 == -1)" (( "(") (binary_expression "param_6 == -1" (identifier "param_6") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n      bVar6 = false;\n      if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar7 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar6 = iVar7 == -1;\n        if (iVar7 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }" ({ "{") (expression_statement "bVar6 = false;" (assignment_expression "bVar6 = false" (identifier "bVar6") (= "=") (false "false")) (; ";")) (if_statement "if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar7 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar6 = iVar7 == -1;\n        if (iVar7 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }" (if "if") (parenthesized_expression "((uint)param_5[3] <= (uint)param_5[2])" (( "(") (binary_expression "(uint)param_5[3] <= (uint)param_5[2]" (cast_expression "(uint)param_5[3]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]"))) (<= "<=") (cast_expression "(uint)param_5[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]")))) () ")")) (compound_statement "{\n        iVar7 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar6 = iVar7 == -1;\n        if (iVar7 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }" ({ "{") (expression_statement "iVar7 = (**(code **)(*param_5 + 0x24))(param_5);" (assignment_expression "iVar7 = (**(code **)(*param_5 + 0x24))(param_5)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(*param_5 + 0x24))(param_5)" (parenthesized_expression "(**(code **)(*param_5 + 0x24))" (( "(") (pointer_expression "**(code **)(*param_5 + 0x24)" (* "*") (pointer_expression "*(code **)(*param_5 + 0x24)" (* "*") (cast_expression "(code **)(*param_5 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_5 + 0x24)" (( "(") (binary_expression "*param_5 + 0x24" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (+ "+") (number_literal "0x24")) () ")"))))) () ")")) (argument_list "(param_5)" (( "(") (identifier "param_5") () ")")))) (; ";")) (expression_statement "bVar6 = iVar7 == -1;" (assignment_expression "bVar6 = iVar7 == -1" (identifier "bVar6") (= "=") (binary_expression "iVar7 == -1" (identifier "iVar7") (== "==") (number_literal "-1"))) (; ";")) (if_statement "if (iVar7 == -1) {\n          param_5 = (int *)0x0;\n        }" (if "if") (parenthesized_expression "(iVar7 == -1)" (( "(") (binary_expression "iVar7 == -1" (identifier "iVar7") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n          param_5 = (int *)0x0;\n        }" ({ "{") (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" (identifier "param_5") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n      bVar6 = false;\n    }" (else "else") (compound_statement "{\n      bVar6 = false;\n    }" ({ "{") (expression_statement "bVar6 = false;" (assignment_expression "bVar6 = false" (identifier "bVar6") (= "=") (false "false")) (; ";")) (} "}")))) (if_statement "if (bVar6 == bVar5) break;" (if "if") (parenthesized_expression "(bVar6 == bVar5)" (( "(") (binary_expression "bVar6 == bVar5" (identifier "bVar6") (== "==") (identifier "bVar5")) () ")")) (break_statement "break;" (break "break") (; ";"))) (while_statement "while( true ) {\n      if (iVar10 == param_10) goto LAB_0034b778;\n      if ((param_3 == (int *)0x0) || (param_4 != 0xffffffff)) {\n        iVar7 = (int)(char)param_4;\n        uVar8 = param_4 & 0xff;\n      }\n      else if ((byte *)param_3[2] < (byte *)param_3[3]) {\n        bVar1 = *(byte *)param_3[2];\n        iVar7 = (int)(char)bVar1;\n        uVar8 = (uint)bVar1;\n      }\n      else {\n        uVar8 = (**(code **)(*param_3 + 0x24))(param_3);\n        if (uVar8 == 0xffffffff) {\n          uVar8 = 0xff;\n          iVar7 = -1;\n          param_3 = (int *)0x0;\n        }\n        else {\n          iVar7 = (int)(char)uVar8;\n          uVar8 = uVar8 & 0xff;\n        }\n      }\n      iVar4 = (int)(char)pcVar2[uVar8 + 0x11d];\n      if (iVar4 == 0) {\n        iVar4 = iVar7;\n        if (*(code **)(*(int *)pcVar2 + 0x20) != (code *)PTR_do_narrow_004c2c88) {\n          iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar7,0x2a);\n        }\n        if (iVar4 == 0x2a) goto LAB_0034b8c0;\n        pcVar2[uVar8 + 0x11d] = SUB41(iVar4,0);\n      }\n      if (9 < (iVar4 - 0x30U & 0xff)) goto LAB_0034b8c0;\n      iVar9 = (iVar4 - 0x30U) + iVar9 * 10;\n      if ((param_9 < (int)(uVar3 * iVar9)) || ((int)(uVar3 + uVar3 * iVar9) <= param_8))\n      goto LAB_0034b8c0;\n      uVar3 = uVar3 / 10;\n      if ((uint)param_3[2] < (uint)param_3[3]) {\n        param_3[2] = param_3[2] + 1;\n      }\n      else {\n        (**(code **)(*param_3 + 0x28))(param_3);\n      }\n      iVar10 = iVar10 + 1;\n      param_4 = 0xffffffff;\n      if (param_3 != (int *)0x0) goto LAB_0034b670;\nLAB_0034b758:\n      bVar5 = param_4 == 0xffffffff;\n      if (param_5 != (int *)0x0) break;\nLAB_0034b768:\n      if ((param_6 == -1) == bVar5) goto LAB_0034b770;\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      if (iVar10 == param_10) goto LAB_0034b778;\n      if ((param_3 == (int *)0x0) || (param_4 != 0xffffffff)) {\n        iVar7 = (int)(char)param_4;\n        uVar8 = param_4 & 0xff;\n      }\n      else if ((byte *)param_3[2] < (byte *)param_3[3]) {\n        bVar1 = *(byte *)param_3[2];\n        iVar7 = (int)(char)bVar1;\n        uVar8 = (uint)bVar1;\n      }\n      else {\n        uVar8 = (**(code **)(*param_3 + 0x24))(param_3);\n        if (uVar8 == 0xffffffff) {\n          uVar8 = 0xff;\n          iVar7 = -1;\n          param_3 = (int *)0x0;\n        }\n        else {\n          iVar7 = (int)(char)uVar8;\n          uVar8 = uVar8 & 0xff;\n        }\n      }\n      iVar4 = (int)(char)pcVar2[uVar8 + 0x11d];\n      if (iVar4 == 0) {\n        iVar4 = iVar7;\n        if (*(code **)(*(int *)pcVar2 + 0x20) != (code *)PTR_do_narrow_004c2c88) {\n          iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar7,0x2a);\n        }\n        if (iVar4 == 0x2a) goto LAB_0034b8c0;\n        pcVar2[uVar8 + 0x11d] = SUB41(iVar4,0);\n      }\n      if (9 < (iVar4 - 0x30U & 0xff)) goto LAB_0034b8c0;\n      iVar9 = (iVar4 - 0x30U) + iVar9 * 10;\n      if ((param_9 < (int)(uVar3 * iVar9)) || ((int)(uVar3 + uVar3 * iVar9) <= param_8))\n      goto LAB_0034b8c0;\n      uVar3 = uVar3 / 10;\n      if ((uint)param_3[2] < (uint)param_3[3]) {\n        param_3[2] = param_3[2] + 1;\n      }\n      else {\n        (**(code **)(*param_3 + 0x28))(param_3);\n      }\n      iVar10 = iVar10 + 1;\n      param_4 = 0xffffffff;\n      if (param_3 != (int *)0x0) goto LAB_0034b670;\nLAB_0034b758:\n      bVar5 = param_4 == 0xffffffff;\n      if (param_5 != (int *)0x0) break;\nLAB_0034b768:\n      if ((param_6 == -1) == bVar5) goto LAB_0034b770;\n    }" ({ "{") (if_statement "if (iVar10 == param_10) goto LAB_0034b778;" (if "if") (parenthesized_expression "(iVar10 == param_10)" (( "(") (binary_expression "iVar10 == param_10" (identifier "iVar10") (== "==") (identifier "param_10")) () ")")) (goto_statement "goto LAB_0034b778;" (goto "goto") (statement_identifier "LAB_0034b778") (; ";"))) (if_statement "if ((param_3 == (int *)0x0) || (param_4 != 0xffffffff)) {\n        iVar7 = (int)(char)param_4;\n        uVar8 = param_4 & 0xff;\n      }\n      else if ((byte *)param_3[2] < (byte *)param_3[3]) {\n        bVar1 = *(byte *)param_3[2];\n        iVar7 = (int)(char)bVar1;\n        uVar8 = (uint)bVar1;\n      }\n      else {\n        uVar8 = (**(code **)(*param_3 + 0x24))(param_3);\n        if (uVar8 == 0xffffffff) {\n          uVar8 = 0xff;\n          iVar7 = -1;\n          param_3 = (int *)0x0;\n        }\n        else {\n          iVar7 = (int)(char)uVar8;\n          uVar8 = uVar8 & 0xff;\n        }\n      }" (if "if") (parenthesized_expression "((param_3 == (int *)0x0) || (param_4 != 0xffffffff))" (( "(") (binary_expression "(param_3 == (int *)0x0) || (param_4 != 0xffffffff)" (parenthesized_expression "(param_3 == (int *)0x0)" (( "(") (binary_expression "param_3 == (int *)0x0" (identifier "param_3") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(param_4 != 0xffffffff)" (( "(") (binary_expression "param_4 != 0xffffffff" (identifier "param_4") (!= "!=") (number_literal "0xffffffff")) () ")"))) () ")")) (compound_statement "{\n        iVar7 = (int)(char)param_4;\n        uVar8 = param_4 & 0xff;\n      }" ({ "{") (expression_statement "iVar7 = (int)(char)param_4;" (assignment_expression "iVar7 = (int)(char)param_4" (identifier "iVar7") (= "=") (cast_expression "(int)(char)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)param_4" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "param_4")))) (; ";")) (expression_statement "uVar8 = param_4 & 0xff;" (assignment_expression "uVar8 = param_4 & 0xff" (identifier "uVar8") (= "=") (binary_expression "param_4 & 0xff" (identifier "param_4") (& "&") (number_literal "0xff"))) (; ";")) (} "}")) (else_clause "else if ((byte *)param_3[2] < (byte *)param_3[3]) {\n        bVar1 = *(byte *)param_3[2];\n        iVar7 = (int)(char)bVar1;\n        uVar8 = (uint)bVar1;\n      }\n      else {\n        uVar8 = (**(code **)(*param_3 + 0x24))(param_3);\n        if (uVar8 == 0xffffffff) {\n          uVar8 = 0xff;\n          iVar7 = -1;\n          param_3 = (int *)0x0;\n        }\n        else {\n          iVar7 = (int)(char)uVar8;\n          uVar8 = uVar8 & 0xff;\n        }\n      }" (else "else") (if_statement "if ((byte *)param_3[2] < (byte *)param_3[3]) {\n        bVar1 = *(byte *)param_3[2];\n        iVar7 = (int)(char)bVar1;\n        uVar8 = (uint)bVar1;\n      }\n      else {\n        uVar8 = (**(code **)(*param_3 + 0x24))(param_3);\n        if (uVar8 == 0xffffffff) {\n          uVar8 = 0xff;\n          iVar7 = -1;\n          param_3 = (int *)0x0;\n        }\n        else {\n          iVar7 = (int)(char)uVar8;\n          uVar8 = uVar8 & 0xff;\n        }\n      }" (if "if") (parenthesized_expression "((byte *)param_3[2] < (byte *)param_3[3])" (( "(") (binary_expression "(byte *)param_3[2] < (byte *)param_3[3]" (cast_expression "(byte *)param_3[2]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]"))) (< "<") (cast_expression "(byte *)param_3[3]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]")))) () ")")) (compound_statement "{\n        bVar1 = *(byte *)param_3[2];\n        iVar7 = (int)(char)bVar1;\n        uVar8 = (uint)bVar1;\n      }" ({ "{") (expression_statement "bVar1 = *(byte *)param_3[2];" (assignment_expression "bVar1 = *(byte *)param_3[2]" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)param_3[2]" (* "*") (cast_expression "(byte *)param_3[2]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (expression_statement "iVar7 = (int)(char)bVar1;" (assignment_expression "iVar7 = (int)(char)bVar1" (identifier "iVar7") (= "=") (cast_expression "(int)(char)bVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)bVar1" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar1")))) (; ";")) (expression_statement "uVar8 = (uint)bVar1;" (assignment_expression "uVar8 = (uint)bVar1" (identifier "uVar8") (= "=") (cast_expression "(uint)bVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar1"))) (; ";")) (} "}")) (else_clause "else {\n        uVar8 = (**(code **)(*param_3 + 0x24))(param_3);\n        if (uVar8 == 0xffffffff) {\n          uVar8 = 0xff;\n          iVar7 = -1;\n          param_3 = (int *)0x0;\n        }\n        else {\n          iVar7 = (int)(char)uVar8;\n          uVar8 = uVar8 & 0xff;\n        }\n      }" (else "else") (compound_statement "{\n        uVar8 = (**(code **)(*param_3 + 0x24))(param_3);\n        if (uVar8 == 0xffffffff) {\n          uVar8 = 0xff;\n          iVar7 = -1;\n          param_3 = (int *)0x0;\n        }\n        else {\n          iVar7 = (int)(char)uVar8;\n          uVar8 = uVar8 & 0xff;\n        }\n      }" ({ "{") (expression_statement "uVar8 = (**(code **)(*param_3 + 0x24))(param_3);" (assignment_expression "uVar8 = (**(code **)(*param_3 + 0x24))(param_3)" (identifier "uVar8") (= "=") (call_expression "(**(code **)(*param_3 + 0x24))(param_3)" (parenthesized_expression "(**(code **)(*param_3 + 0x24))" (( "(") (pointer_expression "**(code **)(*param_3 + 0x24)" (* "*") (pointer_expression "*(code **)(*param_3 + 0x24)" (* "*") (cast_expression "(code **)(*param_3 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_3 + 0x24)" (( "(") (binary_expression "*param_3 + 0x24" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (+ "+") (number_literal "0x24")) () ")"))))) () ")")) (argument_list "(param_3)" (( "(") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (uVar8 == 0xffffffff) {\n          uVar8 = 0xff;\n          iVar7 = -1;\n          param_3 = (int *)0x0;\n        }\n        else {\n          iVar7 = (int)(char)uVar8;\n          uVar8 = uVar8 & 0xff;\n        }" (if "if") (parenthesized_expression "(uVar8 == 0xffffffff)" (( "(") (binary_expression "uVar8 == 0xffffffff" (identifier "uVar8") (== "==") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n          uVar8 = 0xff;\n          iVar7 = -1;\n          param_3 = (int *)0x0;\n        }" ({ "{") (expression_statement "uVar8 = 0xff;" (assignment_expression "uVar8 = 0xff" (identifier "uVar8") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "iVar7 = -1;" (assignment_expression "iVar7 = -1" (identifier "iVar7") (= "=") (number_literal "-1")) (; ";")) (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" (identifier "param_3") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n          iVar7 = (int)(char)uVar8;\n          uVar8 = uVar8 & 0xff;\n        }" (else "else") (compound_statement "{\n          iVar7 = (int)(char)uVar8;\n          uVar8 = uVar8 & 0xff;\n        }" ({ "{") (expression_statement "iVar7 = (int)(char)uVar8;" (assignment_expression "iVar7 = (int)(char)uVar8" (identifier "iVar7") (= "=") (cast_expression "(int)(char)uVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)uVar8" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar8")))) (; ";")) (expression_statement "uVar8 = uVar8 & 0xff;" (assignment_expression "uVar8 = uVar8 & 0xff" (identifier "uVar8") (= "=") (binary_expression "uVar8 & 0xff" (identifier "uVar8") (& "&") (number_literal "0xff"))) (; ";")) (} "}")))) (} "}")))))) (expression_statement "iVar4 = (int)(char)pcVar2[uVar8 + 0x11d];" (assignment_expression "iVar4 = (int)(char)pcVar2[uVar8 + 0x11d]" (identifier "iVar4") (= "=") (cast_expression "(int)(char)pcVar2[uVar8 + 0x11d]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)pcVar2[uVar8 + 0x11d]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "pcVar2[uVar8 + 0x11d]" (identifier "pcVar2") ([ "[") (binary_expression "uVar8 + 0x11d" (identifier "uVar8") (+ "+") (number_literal "0x11d")) (] "]"))))) (; ";")) (if_statement "if (iVar4 == 0) {\n        iVar4 = iVar7;\n        if (*(code **)(*(int *)pcVar2 + 0x20) != (code *)PTR_do_narrow_004c2c88) {\n          iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar7,0x2a);\n        }\n        if (iVar4 == 0x2a) goto LAB_0034b8c0;\n        pcVar2[uVar8 + 0x11d] = SUB41(iVar4,0);\n      }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar4 = iVar7;\n        if (*(code **)(*(int *)pcVar2 + 0x20) != (code *)PTR_do_narrow_004c2c88) {\n          iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar7,0x2a);\n        }\n        if (iVar4 == 0x2a) goto LAB_0034b8c0;\n        pcVar2[uVar8 + 0x11d] = SUB41(iVar4,0);\n      }" ({ "{") (expression_statement "iVar4 = iVar7;" (assignment_expression "iVar4 = iVar7" (identifier "iVar4") (= "=") (identifier "iVar7")) (; ";")) (if_statement "if (*(code **)(*(int *)pcVar2 + 0x20) != (code *)PTR_do_narrow_004c2c88) {\n          iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar7,0x2a);\n        }" (if "if") (parenthesized_expression "(*(code **)(*(int *)pcVar2 + 0x20) != (code *)PTR_do_narrow_004c2c88)" (( "(") (binary_expression "*(code **)(*(int *)pcVar2 + 0x20) != (code *)PTR_do_narrow_004c2c88" (pointer_expression "*(code **)(*(int *)pcVar2 + 0x20)" (* "*") (cast_expression "(code **)(*(int *)pcVar2 + 0x20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)pcVar2 + 0x20)" (( "(") (binary_expression "*(int *)pcVar2 + 0x20" (pointer_expression "*(int *)pcVar2" (* "*") (cast_expression "(int *)pcVar2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar2"))) (+ "+") (number_literal "0x20")) () ")")))) (!= "!=") (cast_expression "(code *)PTR_do_narrow_004c2c88" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_narrow_004c2c88"))) () ")")) (compound_statement "{\n          iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar7,0x2a);\n        }" ({ "{") (expression_statement "iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar7,0x2a);" (assignment_expression "iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar7,0x2a)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar7,0x2a)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x20))" (( "(") (pointer_expression "**(code **)(*(int *)pcVar2 + 0x20)" (* "*") (pointer_expression "*(code **)(*(int *)pcVar2 + 0x20)" (* "*") (cast_expression "(code **)(*(int *)pcVar2 + 0x20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)pcVar2 + 0x20)" (( "(") (binary_expression "*(int *)pcVar2 + 0x20" (pointer_expression "*(int *)pcVar2" (* "*") (cast_expression "(int *)pcVar2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar2"))) (+ "+") (number_literal "0x20")) () ")"))))) () ")")) (argument_list "(pcVar2,iVar7,0x2a)" (( "(") (identifier "pcVar2") (, ",") (identifier "iVar7") (, ",") (number_literal "0x2a") () ")")))) (; ";")) (} "}"))) (if_statement "if (iVar4 == 0x2a) goto LAB_0034b8c0;" (if "if") (parenthesized_expression "(iVar4 == 0x2a)" (( "(") (binary_expression "iVar4 == 0x2a" (identifier "iVar4") (== "==") (number_literal "0x2a")) () ")")) (goto_statement "goto LAB_0034b8c0;" (goto "goto") (statement_identifier "LAB_0034b8c0") (; ";"))) (expression_statement "pcVar2[uVar8 + 0x11d] = SUB41(iVar4,0);" (assignment_expression "pcVar2[uVar8 + 0x11d] = SUB41(iVar4,0)" (subscript_expression "pcVar2[uVar8 + 0x11d]" (identifier "pcVar2") ([ "[") (binary_expression "uVar8 + 0x11d" (identifier "uVar8") (+ "+") (number_literal "0x11d")) (] "]")) (= "=") (call_expression "SUB41(iVar4,0)" (identifier "SUB41") (argument_list "(iVar4,0)" (( "(") (identifier "iVar4") (, ",") (number_literal "0") () ")")))) (; ";")) (} "}"))) (if_statement "if (9 < (iVar4 - 0x30U & 0xff)) goto LAB_0034b8c0;" (if "if") (parenthesized_expression "(9 < (iVar4 - 0x30U & 0xff))" (( "(") (binary_expression "9 < (iVar4 - 0x30U & 0xff)" (number_literal "9") (< "<") (parenthesized_expression "(iVar4 - 0x30U & 0xff)" (( "(") (binary_expression "iVar4 - 0x30U & 0xff" (binary_expression "iVar4 - 0x30U" (identifier "iVar4") (- "-") (number_literal "0x30U")) (& "&") (number_literal "0xff")) () ")"))) () ")")) (goto_statement "goto LAB_0034b8c0;" (goto "goto") (statement_identifier "LAB_0034b8c0") (; ";"))) (expression_statement "iVar9 = (iVar4 - 0x30U) + iVar9 * 10;" (assignment_expression "iVar9 = (iVar4 - 0x30U) + iVar9 * 10" (identifier "iVar9") (= "=") (binary_expression "(iVar4 - 0x30U) + iVar9 * 10" (parenthesized_expression "(iVar4 - 0x30U)" (( "(") (binary_expression "iVar4 - 0x30U" (identifier "iVar4") (- "-") (number_literal "0x30U")) () ")")) (+ "+") (binary_expression "iVar9 * 10" (identifier "iVar9") (* "*") (number_literal "10")))) (; ";")) (if_statement "if ((param_9 < (int)(uVar3 * iVar9)) || ((int)(uVar3 + uVar3 * iVar9) <= param_8))\n      goto LAB_0034b8c0;" (if "if") (parenthesized_expression "((param_9 < (int)(uVar3 * iVar9)) || ((int)(uVar3 + uVar3 * iVar9) <= param_8))" (( "(") (binary_expression "(param_9 < (int)(uVar3 * iVar9)) || ((int)(uVar3 + uVar3 * iVar9) <= param_8)" (parenthesized_expression "(param_9 < (int)(uVar3 * iVar9))" (( "(") (binary_expression "param_9 < (int)(uVar3 * iVar9)" (identifier "param_9") (< "<") (cast_expression "(int)(uVar3 * iVar9)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar3 * iVar9)" (( "(") (binary_expression "uVar3 * iVar9" (identifier "uVar3") (* "*") (identifier "iVar9")) () ")")))) () ")")) (|| "||") (parenthesized_expression "((int)(uVar3 + uVar3 * iVar9) <= param_8)" (( "(") (binary_expression "(int)(uVar3 + uVar3 * iVar9) <= param_8" (cast_expression "(int)(uVar3 + uVar3 * iVar9)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar3 + uVar3 * iVar9)" (( "(") (binary_expression "uVar3 + uVar3 * iVar9" (identifier "uVar3") (+ "+") (binary_expression "uVar3 * iVar9" (identifier "uVar3") (* "*") (identifier "iVar9"))) () ")"))) (<= "<=") (identifier "param_8")) () ")"))) () ")")) (goto_statement "goto LAB_0034b8c0;" (goto "goto") (statement_identifier "LAB_0034b8c0") (; ";"))) (expression_statement "uVar3 = uVar3 / 10;" (assignment_expression "uVar3 = uVar3 / 10" (identifier "uVar3") (= "=") (binary_expression "uVar3 / 10" (identifier "uVar3") (/ "/") (number_literal "10"))) (; ";")) (if_statement "if ((uint)param_3[2] < (uint)param_3[3]) {\n        param_3[2] = param_3[2] + 1;\n      }\n      else {\n        (**(code **)(*param_3 + 0x28))(param_3);\n      }" (if "if") (parenthesized_expression "((uint)param_3[2] < (uint)param_3[3])" (( "(") (binary_expression "(uint)param_3[2] < (uint)param_3[3]" (cast_expression "(uint)param_3[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]"))) (< "<") (cast_expression "(uint)param_3[3]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]")))) () ")")) (compound_statement "{\n        param_3[2] = param_3[2] + 1;\n      }" ({ "{") (expression_statement "param_3[2] = param_3[2] + 1;" (assignment_expression "param_3[2] = param_3[2] + 1" (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "param_3[2] + 1" (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n        (**(code **)(*param_3 + 0x28))(param_3);\n      }" (else "else") (compound_statement "{\n        (**(code **)(*param_3 + 0x28))(param_3);\n      }" ({ "{") (expression_statement "(**(code **)(*param_3 + 0x28))(param_3);" (call_expression "(**(code **)(*param_3 + 0x28))(param_3)" (parenthesized_expression "(**(code **)(*param_3 + 0x28))" (( "(") (pointer_expression "**(code **)(*param_3 + 0x28)" (* "*") (pointer_expression "*(code **)(*param_3 + 0x28)" (* "*") (cast_expression "(code **)(*param_3 + 0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_3 + 0x28)" (( "(") (binary_expression "*param_3 + 0x28" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (argument_list "(param_3)" (( "(") (identifier "param_3") () ")"))) (; ";")) (} "}")))) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" (identifier "iVar10") (= "=") (binary_expression "iVar10 + 1" (identifier "iVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_4 = 0xffffffff;" (assignment_expression "param_4 = 0xffffffff" (identifier "param_4") (= "=") (number_literal "0xffffffff")) (; ";")) (if_statement "if (param_3 != (int *)0x0) goto LAB_0034b670;" (if "if") (parenthesized_expression "(param_3 != (int *)0x0)" (( "(") (binary_expression "param_3 != (int *)0x0" (identifier "param_3") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0034b670;" (goto "goto") (statement_identifier "LAB_0034b670") (; ";"))) (labeled_statement "LAB_0034b758:\n      bVar5 = param_4 == 0xffffffff;" (statement_identifier "LAB_0034b758") (: ":") (expression_statement "bVar5 = param_4 == 0xffffffff;" (assignment_expression "bVar5 = param_4 == 0xffffffff" (identifier "bVar5") (= "=") (binary_expression "param_4 == 0xffffffff" (identifier "param_4") (== "==") (number_literal "0xffffffff"))) (; ";"))) (if_statement "if (param_5 != (int *)0x0) break;" (if "if") (parenthesized_expression "(param_5 != (int *)0x0)" (( "(") (binary_expression "param_5 != (int *)0x0" (identifier "param_5") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_0034b768:\n      if ((param_6 == -1) == bVar5) goto LAB_0034b770;" (statement_identifier "LAB_0034b768") (: ":") (if_statement "if ((param_6 == -1) == bVar5) goto LAB_0034b770;" (if "if") (parenthesized_expression "((param_6 == -1) == bVar5)" (( "(") (binary_expression "(param_6 == -1) == bVar5" (parenthesized_expression "(param_6 == -1)" (( "(") (binary_expression "param_6 == -1" (identifier "param_6") (== "==") (number_literal "-1")) () ")")) (== "==") (identifier "bVar5")) () ")")) (goto_statement "goto LAB_0034b770;" (goto "goto") (statement_identifier "LAB_0034b770") (; ";")))) (} "}"))) (} "}"))) (labeled_statement "LAB_0034b770:\n  if (iVar10 != param_10) {\nLAB_0034b8c0:\n    if ((param_10 == 4) && (iVar10 == 2)) {\n      *param_7 = iVar9 + -100;\n    }\n    else {\n      *param_12 = *param_12 | 4;\n    }\n    *param_1 = param_3;\n    param_1[1] = param_4;\n    return;\n  }" (statement_identifier "LAB_0034b770") (: ":") (if_statement "if (iVar10 != param_10) {\nLAB_0034b8c0:\n    if ((param_10 == 4) && (iVar10 == 2)) {\n      *param_7 = iVar9 + -100;\n    }\n    else {\n      *param_12 = *param_12 | 4;\n    }\n    *param_1 = param_3;\n    param_1[1] = param_4;\n    return;\n  }" (if "if") (parenthesized_expression "(iVar10 != param_10)" (( "(") (binary_expression "iVar10 != param_10" (identifier "iVar10") (!= "!=") (identifier "param_10")) () ")")) (compound_statement "{\nLAB_0034b8c0:\n    if ((param_10 == 4) && (iVar10 == 2)) {\n      *param_7 = iVar9 + -100;\n    }\n    else {\n      *param_12 = *param_12 | 4;\n    }\n    *param_1 = param_3;\n    param_1[1] = param_4;\n    return;\n  }" ({ "{") (labeled_statement "LAB_0034b8c0:\n    if ((param_10 == 4) && (iVar10 == 2)) {\n      *param_7 = iVar9 + -100;\n    }\n    else {\n      *param_12 = *param_12 | 4;\n    }" (statement_identifier "LAB_0034b8c0") (: ":") (if_statement "if ((param_10 == 4) && (iVar10 == 2)) {\n      *param_7 = iVar9 + -100;\n    }\n    else {\n      *param_12 = *param_12 | 4;\n    }" (if "if") (parenthesized_expression "((param_10 == 4) && (iVar10 == 2))" (( "(") (binary_expression "(param_10 == 4) && (iVar10 == 2)" (parenthesized_expression "(param_10 == 4)" (( "(") (binary_expression "param_10 == 4" (identifier "param_10") (== "==") (number_literal "4")) () ")")) (&& "&&") (parenthesized_expression "(iVar10 == 2)" (( "(") (binary_expression "iVar10 == 2" (identifier "iVar10") (== "==") (number_literal "2")) () ")"))) () ")")) (compound_statement "{\n      *param_7 = iVar9 + -100;\n    }" ({ "{") (expression_statement "*param_7 = iVar9 + -100;" (assignment_expression "*param_7 = iVar9 + -100" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (= "=") (binary_expression "iVar9 + -100" (identifier "iVar9") (+ "+") (number_literal "-100"))) (; ";")) (} "}")) (else_clause "else {\n      *param_12 = *param_12 | 4;\n    }" (else "else") (compound_statement "{\n      *param_12 = *param_12 | 4;\n    }" ({ "{") (expression_statement "*param_12 = *param_12 | 4;" (assignment_expression "*param_12 = *param_12 | 4" (pointer_expression "*param_12" (* "*") (identifier "param_12")) (= "=") (binary_expression "*param_12 | 4" (pointer_expression "*param_12" (* "*") (identifier "param_12")) (| "|") (number_literal "4"))) (; ";")) (} "}"))))) (expression_statement "*param_1 = param_3;" (assignment_expression "*param_1 = param_3" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "param_3")) (; ";")) (expression_statement "param_1[1] = param_4;" (assignment_expression "param_1[1] = param_4" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "param_4")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))) (labeled_statement "LAB_0034b778:\n  *param_7 = iVar9;" (statement_identifier "LAB_0034b778") (: ":") (expression_statement "*param_7 = iVar9;" (assignment_expression "*param_7 = iVar9" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (= "=") (identifier "iVar9")) (; ";"))) (expression_statement "*param_1 = param_3;" (assignment_expression "*param_1 = param_3" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "param_3")) (; ";")) (expression_statement "param_1[1] = param_4;" (assignment_expression "param_1[1] = param_4" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "param_4")) (; ";")) (return_statement "return;" (return "return") (; ";")) (ERROR "}" (} "}"))
(translation_unit (declaration type: (primitive_type) (ERROR (identifier)) declarator: (identifier) (ERROR (primitive_type)) (ERROR (identifier)) declarator: (identifier) (ERROR (primitive_type)) (ERROR (identifier) (identifier) (primitive_type) (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) 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: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) (identifier)) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (update_expression argument: (binary_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))) (ERROR (identifier)) right: (binary_expression left: (identifier) right: (parenthesized_expression (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) operator: (MISSING "--"))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (labeled_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: (false))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (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: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (false))))))) (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: (goto_statement label: (statement_identifier))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (false))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (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: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (false)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (break_statement)) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (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: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) 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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (number_literal))) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))) right: (identifier))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (break_statement)) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (identifier))) consequence: (goto_statement label: (statement_identifier)))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (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: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (return_statement)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (return_statement) (ERROR))

/* std::time_get<char, std::istreambuf_iterator<char, std::char_traits<char> >
   >::MASKED(std::istreambuf_iterator<char, std::char_traits<char> >,
   std::istreambuf_iterator<char, std::char_traits<char> >, int&, int, int, unsigned int,
   std::ios_base&, std::_Ios_Iostate&) const */

void std::time_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::MASKED
               (undefined4 *param_1,undefined4 param_2,int *param_3,uint param_4,int *param_5,
               int param_6,int *param_7,int param_8,int param_9,int param_10,int param_11,
               uint *param_12)

{
  byte bVar1;
  ctype *pcVar2;
  uint uVar3;
  int iVar4;
  bool bVar5;
  bool bVar6;
  int iVar7;
  uint uVar8;
  int iVar9;
  int iVar10;
  
  pcVar2 = use_facet<std::ctype<char>>((locale *)(param_11 + 0x6c));
  if (param_10 == 2) {
    uVar3 = 10;
  }
  else {
    uVar3 = 1;
    if (param_10 == 4) {
      uVar3 = 1000;
    }
  }
  iVar9 = 0;
  iVar10 = 0;
  if (param_3 == (int *)0x0) goto LAB_0034b758;
LAB_0034b670:
  if (param_4 == 0xffffffff) {
    bVar5 = false;
    if ((uint)param_3[3] <= (uint)param_3[2]) {
      iVar7 = (**(code **)(*param_3 + 0x24))(param_3);
      bVar5 = iVar7 == -1;
      if (iVar7 == -1) {
        param_3 = (int *)0x0;
      }
    }
  }
  else {
    bVar5 = false;
  }
  if (param_5 == (int *)0x0) goto LAB_0034b768;
  while( true ) {
    if (param_6 == -1) {
      bVar6 = false;
      if ((uint)param_5[3] <= (uint)param_5[2]) {
        iVar7 = (**(code **)(*param_5 + 0x24))(param_5);
        bVar6 = iVar7 == -1;
        if (iVar7 == -1) {
          param_5 = (int *)0x0;
        }
      }
    }
    else {
      bVar6 = false;
    }
    if (bVar6 == bVar5) break;
    while( true ) {
      if (iVar10 == param_10) goto LAB_0034b778;
      if ((param_3 == (int *)0x0) || (param_4 != 0xffffffff)) {
        iVar7 = (int)(char)param_4;
        uVar8 = param_4 & 0xff;
      }
      else if ((byte *)param_3[2] < (byte *)param_3[3]) {
        bVar1 = *(byte *)param_3[2];
        iVar7 = (int)(char)bVar1;
        uVar8 = (uint)bVar1;
      }
      else {
        uVar8 = (**(code **)(*param_3 + 0x24))(param_3);
        if (uVar8 == 0xffffffff) {
          uVar8 = 0xff;
          iVar7 = -1;
          param_3 = (int *)0x0;
        }
        else {
          iVar7 = (int)(char)uVar8;
          uVar8 = uVar8 & 0xff;
        }
      }
      iVar4 = (int)(char)pcVar2[uVar8 + 0x11d];
      if (iVar4 == 0) {
        iVar4 = iVar7;
        if (*(code **)(*(int *)pcVar2 + 0x20) != (code *)PTR_do_narrow_004c2c88) {
          iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar7,0x2a);
        }
        if (iVar4 == 0x2a) goto LAB_0034b8c0;
        pcVar2[uVar8 + 0x11d] = SUB41(iVar4,0);
      }
      if (9 < (iVar4 - 0x30U & 0xff)) goto LAB_0034b8c0;
      iVar9 = (iVar4 - 0x30U) + iVar9 * 10;
      if ((param_9 < (int)(uVar3 * iVar9)) || ((int)(uVar3 + uVar3 * iVar9) <= param_8))
      goto LAB_0034b8c0;
      uVar3 = uVar3 / 10;
      if ((uint)param_3[2] < (uint)param_3[3]) {
        param_3[2] = param_3[2] + 1;
      }
      else {
        (**(code **)(*param_3 + 0x28))(param_3);
      }
      iVar10 = iVar10 + 1;
      param_4 = 0xffffffff;
      if (param_3 != (int *)0x0) goto LAB_0034b670;
LAB_0034b758:
      bVar5 = param_4 == 0xffffffff;
      if (param_5 != (int *)0x0) break;
LAB_0034b768:
      if ((param_6 == -1) == bVar5) goto LAB_0034b770;
    }
  }
LAB_0034b770:
  if (iVar10 != param_10) {
LAB_0034b8c0:
    if ((param_10 == 4) && (iVar10 == 2)) {
      *param_7 = iVar9 + -100;
    }
    else {
      *param_12 = *param_12 | 4;
    }
    *param_1 = param_3;
    param_1[1] = param_4;
    return;
  }
LAB_0034b778:
  *param_7 = iVar9;
  *param_1 = param_3;
  param_1[1] = param_4;
  return;
}

