
/* DWARF original prototype: uint64_t integer_value(Token * this) */

uint64_t __thiscall gold::Token::integer_value(Token *this)

{
  bool bVar1;
  longlong lVar2;
  byte bVar4;
  char *pcVar3;
  char cVar5;
  undefined4 extraout_v1;
  undefined *puVar6;
  undefined4 *puVar7;
  undefined4 *puVar8;
  Token *unaff_s0;
  int iVar9;
  size_t unaff_s1;
  size_t sVar10;
  uint unaff_s2;
  int iVar11;
  undefined4 *puVar12;
  undefined4 *puVar13;
  undefined4 *puVar14;
  undefined4 *puVar15;
  undefined *puVar16;
  code *pcVar17;
  int iVar18;
  ulonglong uVar19;
  undefined4 auStack_2060 [2048];
  undefined *puStack_60;
  int iStack_5c;
  Token *pTStack_58;
  size_t sStack_54;
  uint uStack_50;
  char *end;
  
  puVar7 = (undefined4 *)&DAT_000000ad;
  if (this->classification_ == TOKEN_INTEGER) {
    unaff_s1 = this->value_length_;
    sVar10 = unaff_s1 - 1;
    bVar4 = this->value_[sVar10] & 0xdf;
    if (bVar4 == 0x4d) {
      unaff_s2 = 0x100000;
      unaff_s1 = sVar10;
    }
    else {
      unaff_s2 = 1;
      if (bVar4 == 0x4b) {
        unaff_s2 = 0x400;
        unaff_s1 = sVar10;
      }
    }
    uVar19 = (*(code *)PTR_strtoull_004c5c14)(this->value_,&end,0);
    if ((int)end - (int)this->value_ == unaff_s1) {
      lVar2 = (ulonglong)unaff_s2 * (uVar19 & 0xffffffff);
      return CONCAT44((int)(uVar19 >> 0x20) * unaff_s2 + (int)((ulonglong)lVar2 >> 0x20),(int)lVar2)
      ;
    }
    puVar7 = (undefined4 *)&DAT_000000c0;
    unaff_s0 = this;
  }
  puVar6 = PTR_s_in_a_linker_script_004c191c + 0xdec;
  puVar16 = PTR_do_gold_unreachable_004c1a30;
  (*(code *)PTR_do_gold_unreachable_004c1a30)
            (puVar6,puVar7,PTR_s_in_a_linker_script_004c191c + 0x2280);
  pcVar17 = *(code **)(puVar16 + 0x21e8f0);
  puVar12 = *(undefined4 **)(puVar6 + 0x4c);
  iVar11 = *(int *)(puVar6 + 0x48);
  puVar7[1] = 0;
  *(undefined1 *)*puVar7 = 0;
  puVar8 = puVar12;
  pTStack_58 = unaff_s0;
  sStack_54 = unaff_s1;
  uStack_50 = unaff_s2;
  uVar19 = (*pcVar17)(puVar7);
  if ((0 < iVar11) ||
     ((iVar11 == 0 && (uVar19 = CONCAT44(puVar6 + 0x20,(int)uVar19), puVar12 != (undefined4 *)0x0)))
     ) {
    puStack_60 = puVar6 + 0x20;
    iVar18 = 0;
    iStack_5c = 0x7fffffff;
    puVar13 = (undefined4 *)0x0;
    do {
      do {
        puVar14 = (undefined4 *)((int)puVar12 - (int)puVar13);
        iVar9 = (iVar11 - iVar18) - (uint)(puVar12 < puVar14);
        if ((0 < iVar9) ||
           ((pcVar17 = *(code **)(puVar16 + 0x21e4c4), iVar9 == 0 &&
            ((undefined4 *)0x1fff < puVar14)))) {
          iVar9 = 0;
          puVar14 = (undefined4 *)0x2000;
          pcVar17 = *(code **)(puVar16 + 0x21e4c4);
        }
        (*pcVar17)(puStack_60);
        if ((undefined4 *)(iStack_5c - puVar7[1]) < puVar14) {
          iVar11 = *(int *)(puVar16 + 0x21d714) + 0x446c;
          (**(code **)(puVar16 + 0x21e30c))();
          pcVar3 = (char *)*puVar8;
          cVar5 = *pcVar3;
          do {
            if (cVar5 == '*') {
              cVar5 = pcVar3[1];
              if (cVar5 == '/') {
                *puVar8 = pcVar3 + 2;
                return CONCAT44(1,pcVar3 + 2);
              }
            }
            else {
              if (cVar5 == '\0') {
                *puVar8 = pcVar3;
                return ZEXT48(pcVar3);
              }
              if (cVar5 == '\n') {
                *(char **)(iVar11 + 0x30) = pcVar3 + 1;
                *(int *)(iVar11 + 0x2c) = *(int *)(iVar11 + 0x2c) + 1;
              }
              cVar5 = pcVar3[1];
            }
            pcVar3 = pcVar3 + 1;
          } while( true );
        }
        puVar15 = (undefined4 *)((int)puVar13 + (int)puVar14);
        iVar18 = (uint)(puVar15 < puVar13) + iVar18 + iVar9;
        puVar8 = auStack_2060;
        (**(code **)(puVar16 + 0x21e300))(puVar7,auStack_2060,puVar14);
        puVar13 = puVar15;
      } while (iVar18 < iVar11);
      bVar1 = puVar15 < puVar12;
      uVar19 = (ulonglong)CONCAT14(bVar1,extraout_v1);
    } while ((iVar11 == iVar18) && (uVar19 = (ulonglong)CONCAT14(bVar1,extraout_v1), bVar1));
  }
  return uVar19;
}



/* gold::Token::integer_value() const */

ulonglong __thiscall gold::Token::integer_value(Token *this)

{
  bool bVar1;
  longlong lVar2;
  byte bVar4;
  char *pcVar3;
  char cVar5;
  undefined4 extraout_v1;
  undefined *puVar6;
  undefined4 *puVar7;
  undefined4 *puVar8;
  Token *unaff_s0;
  int iVar9;
  int unaff_s1;
  int iVar10;
  uint unaff_s2;
  undefined4 *puVar11;
  undefined4 *puVar12;
  undefined4 *puVar13;
  undefined4 *puVar14;
  undefined *puVar15;
  code *pcVar16;
  int iVar17;
  ulonglong uVar18;
  undefined4 auStack_2060 [2048];
  undefined *puStack_60;
  int iStack_5c;
  Token *pTStack_58;
  int iStack_54;
  uint uStack_50;
  int local_18 [2];
  
  puVar7 = (undefined4 *)&DAT_000000ad;
  if (*(int *)this == 5) {
    unaff_s1 = *(int *)(this + 8);
    iVar10 = unaff_s1 + -1;
    bVar4 = *(byte *)(*(int *)(this + 4) + iVar10) & 0xdf;
    if (bVar4 == 0x4d) {
      unaff_s2 = 0x100000;
      unaff_s1 = iVar10;
    }
    else {
      unaff_s2 = 1;
      if (bVar4 == 0x4b) {
        unaff_s2 = 0x400;
        unaff_s1 = iVar10;
      }
    }
    uVar18 = (*(code *)PTR_strtoull_004c5c14)(*(int *)(this + 4),local_18,0);
    if (local_18[0] - *(int *)(this + 4) == unaff_s1) {
      lVar2 = (ulonglong)unaff_s2 * (uVar18 & 0xffffffff);
      return CONCAT44((int)(uVar18 >> 0x20) * unaff_s2 + (int)((ulonglong)lVar2 >> 0x20),(int)lVar2)
      ;
    }
    puVar7 = (undefined4 *)&DAT_000000c0;
    unaff_s0 = this;
  }
  puVar6 = PTR_s_in_a_linker_script_004c191c + 0xdec;
  puVar15 = PTR_do_gold_unreachable_004c1a30;
  (*(code *)PTR_do_gold_unreachable_004c1a30)
            (puVar6,puVar7,PTR_s_in_a_linker_script_004c191c + 0x2280);
  pcVar16 = *(code **)(puVar15 + 0x21e8f0);
  puVar11 = *(undefined4 **)(puVar6 + 0x4c);
  iVar10 = *(int *)(puVar6 + 0x48);
  puVar7[1] = 0;
  *(undefined1 *)*puVar7 = 0;
  puVar8 = puVar11;
  pTStack_58 = unaff_s0;
  iStack_54 = unaff_s1;
  uStack_50 = unaff_s2;
  uVar18 = (*pcVar16)(puVar7);
  if ((0 < iVar10) ||
     ((iVar10 == 0 && (uVar18 = CONCAT44(puVar6 + 0x20,(int)uVar18), puVar11 != (undefined4 *)0x0)))
     ) {
    puStack_60 = puVar6 + 0x20;
    iVar17 = 0;
    iStack_5c = 0x7fffffff;
    puVar12 = (undefined4 *)0x0;
    do {
      do {
        puVar13 = (undefined4 *)((int)puVar11 - (int)puVar12);
        iVar9 = (iVar10 - iVar17) - (uint)(puVar11 < puVar13);
        if ((0 < iVar9) ||
           ((pcVar16 = *(code **)(puVar15 + 0x21e4c4), iVar9 == 0 &&
            ((undefined4 *)0x1fff < puVar13)))) {
          iVar9 = 0;
          puVar13 = (undefined4 *)0x2000;
          pcVar16 = *(code **)(puVar15 + 0x21e4c4);
        }
        (*pcVar16)(puStack_60);
        if ((undefined4 *)(iStack_5c - puVar7[1]) < puVar13) {
          iVar10 = *(int *)(puVar15 + 0x21d714) + 0x446c;
          (**(code **)(puVar15 + 0x21e30c))();
          pcVar3 = (char *)*puVar8;
          cVar5 = *pcVar3;
          do {
            if (cVar5 == '*') {
              cVar5 = pcVar3[1];
              if (cVar5 == '/') {
                *puVar8 = pcVar3 + 2;
                return CONCAT44(1,pcVar3 + 2);
              }
            }
            else {
              if (cVar5 == '\0') {
                *puVar8 = pcVar3;
                return ZEXT48(pcVar3);
              }
              if (cVar5 == '\n') {
                *(char **)(iVar10 + 0x30) = pcVar3 + 1;
                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;
              }
              cVar5 = pcVar3[1];
            }
            pcVar3 = pcVar3 + 1;
          } while( true );
        }
        puVar14 = (undefined4 *)((int)puVar12 + (int)puVar13);
        iVar17 = (uint)(puVar14 < puVar12) + iVar17 + iVar9;
        puVar8 = auStack_2060;
        (**(code **)(puVar15 + 0x21e300))(puVar7,auStack_2060,puVar13);
        puVar12 = puVar14;
      } while (iVar17 < iVar10);
      bVar1 = puVar14 < puVar11;
      uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1);
    } while ((iVar10 == iVar17) && (uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1), bVar1));
  }
  return uVar18;
}


lui gp,0x22
addiu gp,gp,0x57c0
addu gp,gp,t9
addiu sp,sp,-0x30
lw v1,0x0(a0)
li v0,0x5
li a1,0xad
sw gp,0x10(sp)
sw ra,0x2c(sp)
sw s2,0x28(sp)
sw s1,0x24(sp)
bne v1,v0,0x002a3b50
_sw s0,0x20(sp)
lw v1,0x8(a0)
or s0,a0,zero
lw a0,0x4(a0)
li a1,0x4d
addiu s1,v1,-0x1
addu v0,a0,s1
lbu v0,0x0(v0)
andi v0,v0,0xdf
seb v0,v0
beq v0,a1,0x002a3b44
_li a1,0x400
li s2,0x1
xori v0,v0,0x4b
movz s2,a1,v0
movn s1,v1,v0
addiu a1,sp,0x18
lw t9,-0x362c(gp)
jalr t9
_or a2,zero,zero
or a1,v0,zero
lw a0,0x18(sp)
lw v0,0x4(s0)
subu a0,a0,v0
bne a0,s1,0x002a3b4c
_lw gp,0x10(sp)
multu s2,v1
lw ra,0x2c(sp)
lw s1,0x24(sp)
lw s0,0x20(sp)
mflo v1
mfhi v0
mul a0,a1,s2
lw s2,0x28(sp)
addiu sp,sp,0x30
jr ra
_addu v0,a0,v0
b 0x002a3af0
_lui s2,0x10
li a1,0xc0
lw a2,-0x7924(gp)
lw a0,-0x7924(gp)
lw t9,-0x7810(gp)
addiu a2,a2,0x2280
jalr t9
_addiu a0,a0,0xdec
(translation_unit "/* gold::Token::integer_value() const */\n\nulonglong __thiscall gold::Token::integer_value(Token *this)\n\n{\n  bool bVar1;\n  longlong lVar2;\n  byte bVar4;\n  char *pcVar3;\n  char cVar5;\n  undefined4 extraout_v1;\n  undefined *puVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  Token *unaff_s0;\n  int iVar9;\n  int unaff_s1;\n  int iVar10;\n  uint unaff_s2;\n  undefined4 *puVar11;\n  undefined4 *puVar12;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  undefined *puVar15;\n  code *pcVar16;\n  int iVar17;\n  ulonglong uVar18;\n  undefined4 auStack_2060 [2048];\n  undefined *puStack_60;\n  int iStack_5c;\n  Token *pTStack_58;\n  int iStack_54;\n  uint uStack_50;\n  int local_18 [2];\n  \n  puVar7 = (undefined4 *)&DAT_000000ad;\n  if (*(int *)this == 5) {\n    unaff_s1 = *(int *)(this + 8);\n    iVar10 = unaff_s1 + -1;\n    bVar4 = *(byte *)(*(int *)(this + 4) + iVar10) & 0xdf;\n    if (bVar4 == 0x4d) {\n      unaff_s2 = 0x100000;\n      unaff_s1 = iVar10;\n    }\n    else {\n      unaff_s2 = 1;\n      if (bVar4 == 0x4b) {\n        unaff_s2 = 0x400;\n        unaff_s1 = iVar10;\n      }\n    }\n    uVar18 = (*(code *)PTR_strtoull_004c5c14)(*(int *)(this + 4),local_18,0);\n    if (local_18[0] - *(int *)(this + 4) == unaff_s1) {\n      lVar2 = (ulonglong)unaff_s2 * (uVar18 & 0xffffffff);\n      return CONCAT44((int)(uVar18 >> 0x20) * unaff_s2 + (int)((ulonglong)lVar2 >> 0x20),(int)lVar2)\n      ;\n    }\n    puVar7 = (undefined4 *)&DAT_000000c0;\n    unaff_s0 = this;\n  }\n  puVar6 = PTR_s_in_a_linker_script_004c191c + 0xdec;\n  puVar15 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar6,puVar7,PTR_s_in_a_linker_script_004c191c + 0x2280);\n  pcVar16 = *(code **)(puVar15 + 0x21e8f0);\n  puVar11 = *(undefined4 **)(puVar6 + 0x4c);\n  iVar10 = *(int *)(puVar6 + 0x48);\n  puVar7[1] = 0;\n  *(undefined1 *)*puVar7 = 0;\n  puVar8 = puVar11;\n  pTStack_58 = unaff_s0;\n  iStack_54 = unaff_s1;\n  uStack_50 = unaff_s2;\n  uVar18 = (*pcVar16)(puVar7);\n  if ((0 < iVar10) ||\n     ((iVar10 == 0 && (uVar18 = CONCAT44(puVar6 + 0x20,(int)uVar18), puVar11 != (undefined4 *)0x0)))\n     ) {\n    puStack_60 = puVar6 + 0x20;\n    iVar17 = 0;\n    iStack_5c = 0x7fffffff;\n    puVar12 = (undefined4 *)0x0;\n    do {\n      do {\n        puVar13 = (undefined4 *)((int)puVar11 - (int)puVar12);\n        iVar9 = (iVar10 - iVar17) - (uint)(puVar11 < puVar13);\n        if ((0 < iVar9) ||\n           ((pcVar16 = *(code **)(puVar15 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar13)))) {\n          iVar9 = 0;\n          puVar13 = (undefined4 *)0x2000;\n          pcVar16 = *(code **)(puVar15 + 0x21e4c4);\n        }\n        (*pcVar16)(puStack_60);\n        if ((undefined4 *)(iStack_5c - puVar7[1]) < puVar13) {\n          iVar10 = *(int *)(puVar15 + 0x21d714) + 0x446c;\n          (**(code **)(puVar15 + 0x21e30c))();\n          pcVar3 = (char *)*puVar8;\n          cVar5 = *pcVar3;\n          do {\n            if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar10 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }\n            pcVar3 = pcVar3 + 1;\n          } while( true );\n        }\n        puVar14 = (undefined4 *)((int)puVar12 + (int)puVar13);\n        iVar17 = (uint)(puVar14 < puVar12) + iVar17 + iVar9;\n        puVar8 = auStack_2060;\n        (**(code **)(puVar15 + 0x21e300))(puVar7,auStack_2060,puVar13);\n        puVar12 = puVar14;\n      } while (iVar17 < iVar10);\n      bVar1 = puVar14 < puVar11;\n      uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1);\n    } while ((iVar10 == iVar17) && (uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1), bVar1));\n  }\n  return uVar18;\n}\n\n" comment (function_definition "ulonglong __thiscall gold::Token::integer_value(Token *this)\n\n{\n  bool bVar1;\n  longlong lVar2;\n  byte bVar4;\n  char *pcVar3;\n  char cVar5;\n  undefined4 extraout_v1;\n  undefined *puVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  Token *unaff_s0;\n  int iVar9;\n  int unaff_s1;\n  int iVar10;\n  uint unaff_s2;\n  undefined4 *puVar11;\n  undefined4 *puVar12;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  undefined *puVar15;\n  code *pcVar16;\n  int iVar17;\n  ulonglong uVar18;\n  undefined4 auStack_2060 [2048];\n  undefined *puStack_60;\n  int iStack_5c;\n  Token *pTStack_58;\n  int iStack_54;\n  uint uStack_50;\n  int local_18 [2];\n  \n  puVar7 = (undefined4 *)&DAT_000000ad;\n  if (*(int *)this == 5) {\n    unaff_s1 = *(int *)(this + 8);\n    iVar10 = unaff_s1 + -1;\n    bVar4 = *(byte *)(*(int *)(this + 4) + iVar10) & 0xdf;\n    if (bVar4 == 0x4d) {\n      unaff_s2 = 0x100000;\n      unaff_s1 = iVar10;\n    }\n    else {\n      unaff_s2 = 1;\n      if (bVar4 == 0x4b) {\n        unaff_s2 = 0x400;\n        unaff_s1 = iVar10;\n      }\n    }\n    uVar18 = (*(code *)PTR_strtoull_004c5c14)(*(int *)(this + 4),local_18,0);\n    if (local_18[0] - *(int *)(this + 4) == unaff_s1) {\n      lVar2 = (ulonglong)unaff_s2 * (uVar18 & 0xffffffff);\n      return CONCAT44((int)(uVar18 >> 0x20) * unaff_s2 + (int)((ulonglong)lVar2 >> 0x20),(int)lVar2)\n      ;\n    }\n    puVar7 = (undefined4 *)&DAT_000000c0;\n    unaff_s0 = this;\n  }\n  puVar6 = PTR_s_in_a_linker_script_004c191c + 0xdec;\n  puVar15 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar6,puVar7,PTR_s_in_a_linker_script_004c191c + 0x2280);\n  pcVar16 = *(code **)(puVar15 + 0x21e8f0);\n  puVar11 = *(undefined4 **)(puVar6 + 0x4c);\n  iVar10 = *(int *)(puVar6 + 0x48);\n  puVar7[1] = 0;\n  *(undefined1 *)*puVar7 = 0;\n  puVar8 = puVar11;\n  pTStack_58 = unaff_s0;\n  iStack_54 = unaff_s1;\n  uStack_50 = unaff_s2;\n  uVar18 = (*pcVar16)(puVar7);\n  if ((0 < iVar10) ||\n     ((iVar10 == 0 && (uVar18 = CONCAT44(puVar6 + 0x20,(int)uVar18), puVar11 != (undefined4 *)0x0)))\n     ) {\n    puStack_60 = puVar6 + 0x20;\n    iVar17 = 0;\n    iStack_5c = 0x7fffffff;\n    puVar12 = (undefined4 *)0x0;\n    do {\n      do {\n        puVar13 = (undefined4 *)((int)puVar11 - (int)puVar12);\n        iVar9 = (iVar10 - iVar17) - (uint)(puVar11 < puVar13);\n        if ((0 < iVar9) ||\n           ((pcVar16 = *(code **)(puVar15 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar13)))) {\n          iVar9 = 0;\n          puVar13 = (undefined4 *)0x2000;\n          pcVar16 = *(code **)(puVar15 + 0x21e4c4);\n        }\n        (*pcVar16)(puStack_60);\n        if ((undefined4 *)(iStack_5c - puVar7[1]) < puVar13) {\n          iVar10 = *(int *)(puVar15 + 0x21d714) + 0x446c;\n          (**(code **)(puVar15 + 0x21e30c))();\n          pcVar3 = (char *)*puVar8;\n          cVar5 = *pcVar3;\n          do {\n            if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar10 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }\n            pcVar3 = pcVar3 + 1;\n          } while( true );\n        }\n        puVar14 = (undefined4 *)((int)puVar12 + (int)puVar13);\n        iVar17 = (uint)(puVar14 < puVar12) + iVar17 + iVar9;\n        puVar8 = auStack_2060;\n        (**(code **)(puVar15 + 0x21e300))(puVar7,auStack_2060,puVar13);\n        puVar12 = puVar14;\n      } while (iVar17 < iVar10);\n      bVar1 = puVar14 < puVar11;\n      uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1);\n    } while ((iVar10 == iVar17) && (uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1), bVar1));\n  }\n  return uVar18;\n}" type_identifier (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Token::" identifier : : identifier : :) (function_declarator "integer_value(Token *this)" identifier (parameter_list "(Token *this)" ( (parameter_declaration "Token *this" type_identifier (pointer_declarator "*this" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  longlong lVar2;\n  byte bVar4;\n  char *pcVar3;\n  char cVar5;\n  undefined4 extraout_v1;\n  undefined *puVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  Token *unaff_s0;\n  int iVar9;\n  int unaff_s1;\n  int iVar10;\n  uint unaff_s2;\n  undefined4 *puVar11;\n  undefined4 *puVar12;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  undefined *puVar15;\n  code *pcVar16;\n  int iVar17;\n  ulonglong uVar18;\n  undefined4 auStack_2060 [2048];\n  undefined *puStack_60;\n  int iStack_5c;\n  Token *pTStack_58;\n  int iStack_54;\n  uint uStack_50;\n  int local_18 [2];\n  \n  puVar7 = (undefined4 *)&DAT_000000ad;\n  if (*(int *)this == 5) {\n    unaff_s1 = *(int *)(this + 8);\n    iVar10 = unaff_s1 + -1;\n    bVar4 = *(byte *)(*(int *)(this + 4) + iVar10) & 0xdf;\n    if (bVar4 == 0x4d) {\n      unaff_s2 = 0x100000;\n      unaff_s1 = iVar10;\n    }\n    else {\n      unaff_s2 = 1;\n      if (bVar4 == 0x4b) {\n        unaff_s2 = 0x400;\n        unaff_s1 = iVar10;\n      }\n    }\n    uVar18 = (*(code *)PTR_strtoull_004c5c14)(*(int *)(this + 4),local_18,0);\n    if (local_18[0] - *(int *)(this + 4) == unaff_s1) {\n      lVar2 = (ulonglong)unaff_s2 * (uVar18 & 0xffffffff);\n      return CONCAT44((int)(uVar18 >> 0x20) * unaff_s2 + (int)((ulonglong)lVar2 >> 0x20),(int)lVar2)\n      ;\n    }\n    puVar7 = (undefined4 *)&DAT_000000c0;\n    unaff_s0 = this;\n  }\n  puVar6 = PTR_s_in_a_linker_script_004c191c + 0xdec;\n  puVar15 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar6,puVar7,PTR_s_in_a_linker_script_004c191c + 0x2280);\n  pcVar16 = *(code **)(puVar15 + 0x21e8f0);\n  puVar11 = *(undefined4 **)(puVar6 + 0x4c);\n  iVar10 = *(int *)(puVar6 + 0x48);\n  puVar7[1] = 0;\n  *(undefined1 *)*puVar7 = 0;\n  puVar8 = puVar11;\n  pTStack_58 = unaff_s0;\n  iStack_54 = unaff_s1;\n  uStack_50 = unaff_s2;\n  uVar18 = (*pcVar16)(puVar7);\n  if ((0 < iVar10) ||\n     ((iVar10 == 0 && (uVar18 = CONCAT44(puVar6 + 0x20,(int)uVar18), puVar11 != (undefined4 *)0x0)))\n     ) {\n    puStack_60 = puVar6 + 0x20;\n    iVar17 = 0;\n    iStack_5c = 0x7fffffff;\n    puVar12 = (undefined4 *)0x0;\n    do {\n      do {\n        puVar13 = (undefined4 *)((int)puVar11 - (int)puVar12);\n        iVar9 = (iVar10 - iVar17) - (uint)(puVar11 < puVar13);\n        if ((0 < iVar9) ||\n           ((pcVar16 = *(code **)(puVar15 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar13)))) {\n          iVar9 = 0;\n          puVar13 = (undefined4 *)0x2000;\n          pcVar16 = *(code **)(puVar15 + 0x21e4c4);\n        }\n        (*pcVar16)(puStack_60);\n        if ((undefined4 *)(iStack_5c - puVar7[1]) < puVar13) {\n          iVar10 = *(int *)(puVar15 + 0x21d714) + 0x446c;\n          (**(code **)(puVar15 + 0x21e30c))();\n          pcVar3 = (char *)*puVar8;\n          cVar5 = *pcVar3;\n          do {\n            if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar10 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }\n            pcVar3 = pcVar3 + 1;\n          } while( true );\n        }\n        puVar14 = (undefined4 *)((int)puVar12 + (int)puVar13);\n        iVar17 = (uint)(puVar14 < puVar12) + iVar17 + iVar9;\n        puVar8 = auStack_2060;\n        (**(code **)(puVar15 + 0x21e300))(puVar7,auStack_2060,puVar13);\n        puVar12 = puVar14;\n      } while (iVar17 < iVar10);\n      bVar1 = puVar14 < puVar11;\n      uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1);\n    } while ((iVar10 == iVar17) && (uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1), bVar1));\n  }\n  return uVar18;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "longlong lVar2;" type_identifier identifier ;) (declaration "byte bVar4;" type_identifier identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "char cVar5;" primitive_type identifier ;) (declaration "undefined4 extraout_v1;" type_identifier identifier ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "Token *unaff_s0;" type_identifier (pointer_declarator "*unaff_s0" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int unaff_s1;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "uint unaff_s2;" type_identifier identifier ;) (declaration "undefined4 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined4 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "code *pcVar16;" type_identifier (pointer_declarator "*pcVar16" * identifier) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "ulonglong uVar18;" type_identifier identifier ;) (declaration "undefined4 auStack_2060 [2048];" type_identifier (array_declarator "auStack_2060 [2048]" identifier [ number_literal ]) ;) (declaration "undefined *puStack_60;" type_identifier (pointer_declarator "*puStack_60" * identifier) ;) (declaration "int iStack_5c;" primitive_type identifier ;) (declaration "Token *pTStack_58;" type_identifier (pointer_declarator "*pTStack_58" * identifier) ;) (declaration "int iStack_54;" primitive_type identifier ;) (declaration "uint uStack_50;" type_identifier identifier ;) (declaration "int local_18 [2];" primitive_type (array_declarator "local_18 [2]" identifier [ number_literal ]) ;) (expression_statement "puVar7 = (undefined4 *)&DAT_000000ad;" (assignment_expression "puVar7 = (undefined4 *)&DAT_000000ad" identifier = (cast_expression "(undefined4 *)&DAT_000000ad" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_000000ad" & identifier))) ;) (if_statement "if (*(int *)this == 5) {\n    unaff_s1 = *(int *)(this + 8);\n    iVar10 = unaff_s1 + -1;\n    bVar4 = *(byte *)(*(int *)(this + 4) + iVar10) & 0xdf;\n    if (bVar4 == 0x4d) {\n      unaff_s2 = 0x100000;\n      unaff_s1 = iVar10;\n    }\n    else {\n      unaff_s2 = 1;\n      if (bVar4 == 0x4b) {\n        unaff_s2 = 0x400;\n        unaff_s1 = iVar10;\n      }\n    }\n    uVar18 = (*(code *)PTR_strtoull_004c5c14)(*(int *)(this + 4),local_18,0);\n    if (local_18[0] - *(int *)(this + 4) == unaff_s1) {\n      lVar2 = (ulonglong)unaff_s2 * (uVar18 & 0xffffffff);\n      return CONCAT44((int)(uVar18 >> 0x20) * unaff_s2 + (int)((ulonglong)lVar2 >> 0x20),(int)lVar2)\n      ;\n    }\n    puVar7 = (undefined4 *)&DAT_000000c0;\n    unaff_s0 = this;\n  }" if (parenthesized_expression "(*(int *)this == 5)" ( (binary_expression "*(int *)this == 5" (pointer_expression "*(int *)this" * (cast_expression "(int *)this" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n    unaff_s1 = *(int *)(this + 8);\n    iVar10 = unaff_s1 + -1;\n    bVar4 = *(byte *)(*(int *)(this + 4) + iVar10) & 0xdf;\n    if (bVar4 == 0x4d) {\n      unaff_s2 = 0x100000;\n      unaff_s1 = iVar10;\n    }\n    else {\n      unaff_s2 = 1;\n      if (bVar4 == 0x4b) {\n        unaff_s2 = 0x400;\n        unaff_s1 = iVar10;\n      }\n    }\n    uVar18 = (*(code *)PTR_strtoull_004c5c14)(*(int *)(this + 4),local_18,0);\n    if (local_18[0] - *(int *)(this + 4) == unaff_s1) {\n      lVar2 = (ulonglong)unaff_s2 * (uVar18 & 0xffffffff);\n      return CONCAT44((int)(uVar18 >> 0x20) * unaff_s2 + (int)((ulonglong)lVar2 >> 0x20),(int)lVar2)\n      ;\n    }\n    puVar7 = (undefined4 *)&DAT_000000c0;\n    unaff_s0 = this;\n  }" { (expression_statement "unaff_s1 = *(int *)(this + 8);" (assignment_expression "unaff_s1 = *(int *)(this + 8)" identifier = (pointer_expression "*(int *)(this + 8)" * (cast_expression "(int *)(this + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = unaff_s1 + -1;" (assignment_expression "iVar10 = unaff_s1 + -1" identifier = (binary_expression "unaff_s1 + -1" identifier + number_literal)) ;) (expression_statement "bVar4 = *(byte *)(*(int *)(this + 4) + iVar10) & 0xdf;" (assignment_expression "bVar4 = *(byte *)(*(int *)(this + 4) + iVar10) & 0xdf" identifier = (binary_expression "*(byte *)(*(int *)(this + 4) + iVar10) & 0xdf" (pointer_expression "*(byte *)(*(int *)(this + 4) + iVar10)" * (cast_expression "(byte *)(*(int *)(this + 4) + iVar10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(this + 4) + iVar10)" ( (binary_expression "*(int *)(this + 4) + iVar10" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + identifier) )))) & number_literal)) ;) (if_statement "if (bVar4 == 0x4d) {\n      unaff_s2 = 0x100000;\n      unaff_s1 = iVar10;\n    }\n    else {\n      unaff_s2 = 1;\n      if (bVar4 == 0x4b) {\n        unaff_s2 = 0x400;\n        unaff_s1 = iVar10;\n      }\n    }" if (parenthesized_expression "(bVar4 == 0x4d)" ( (binary_expression "bVar4 == 0x4d" identifier == number_literal) )) (compound_statement "{\n      unaff_s2 = 0x100000;\n      unaff_s1 = iVar10;\n    }" { (expression_statement "unaff_s2 = 0x100000;" (assignment_expression "unaff_s2 = 0x100000" identifier = number_literal) ;) (expression_statement "unaff_s1 = iVar10;" (assignment_expression "unaff_s1 = iVar10" identifier = identifier) ;) }) (else_clause "else {\n      unaff_s2 = 1;\n      if (bVar4 == 0x4b) {\n        unaff_s2 = 0x400;\n        unaff_s1 = iVar10;\n      }\n    }" else (compound_statement "{\n      unaff_s2 = 1;\n      if (bVar4 == 0x4b) {\n        unaff_s2 = 0x400;\n        unaff_s1 = iVar10;\n      }\n    }" { (expression_statement "unaff_s2 = 1;" (assignment_expression "unaff_s2 = 1" identifier = number_literal) ;) (if_statement "if (bVar4 == 0x4b) {\n        unaff_s2 = 0x400;\n        unaff_s1 = iVar10;\n      }" if (parenthesized_expression "(bVar4 == 0x4b)" ( (binary_expression "bVar4 == 0x4b" identifier == number_literal) )) (compound_statement "{\n        unaff_s2 = 0x400;\n        unaff_s1 = iVar10;\n      }" { (expression_statement "unaff_s2 = 0x400;" (assignment_expression "unaff_s2 = 0x400" identifier = number_literal) ;) (expression_statement "unaff_s1 = iVar10;" (assignment_expression "unaff_s1 = iVar10" identifier = identifier) ;) })) }))) (expression_statement "uVar18 = (*(code *)PTR_strtoull_004c5c14)(*(int *)(this + 4),local_18,0);" (assignment_expression "uVar18 = (*(code *)PTR_strtoull_004c5c14)(*(int *)(this + 4),local_18,0)" identifier = (call_expression "(*(code *)PTR_strtoull_004c5c14)(*(int *)(this + 4),local_18,0)" (parenthesized_expression "(*(code *)PTR_strtoull_004c5c14)" ( (pointer_expression "*(code *)PTR_strtoull_004c5c14" * (cast_expression "(code *)PTR_strtoull_004c5c14" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(int *)(this + 4),local_18,0)" ( (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) , identifier , number_literal )))) ;) (if_statement "if (local_18[0] - *(int *)(this + 4) == unaff_s1) {\n      lVar2 = (ulonglong)unaff_s2 * (uVar18 & 0xffffffff);\n      return CONCAT44((int)(uVar18 >> 0x20) * unaff_s2 + (int)((ulonglong)lVar2 >> 0x20),(int)lVar2)\n      ;\n    }" if (parenthesized_expression "(local_18[0] - *(int *)(this + 4) == unaff_s1)" ( (binary_expression "local_18[0] - *(int *)(this + 4) == unaff_s1" (binary_expression "local_18[0] - *(int *)(this + 4)" (subscript_expression "local_18[0]" identifier [ number_literal ]) - (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) ))))) == identifier) )) (compound_statement "{\n      lVar2 = (ulonglong)unaff_s2 * (uVar18 & 0xffffffff);\n      return CONCAT44((int)(uVar18 >> 0x20) * unaff_s2 + (int)((ulonglong)lVar2 >> 0x20),(int)lVar2)\n      ;\n    }" { (expression_statement "lVar2 = (ulonglong)unaff_s2 * (uVar18 & 0xffffffff);" (assignment_expression "lVar2 = (ulonglong)unaff_s2 * (uVar18 & 0xffffffff)" identifier = (binary_expression "(ulonglong)unaff_s2 * (uVar18 & 0xffffffff)" (cast_expression "(ulonglong)unaff_s2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (parenthesized_expression "(uVar18 & 0xffffffff)" ( (binary_expression "uVar18 & 0xffffffff" identifier & number_literal) )))) ;) (return_statement "return CONCAT44((int)(uVar18 >> 0x20) * unaff_s2 + (int)((ulonglong)lVar2 >> 0x20),(int)lVar2)\n      ;" return (call_expression "CONCAT44((int)(uVar18 >> 0x20) * unaff_s2 + (int)((ulonglong)lVar2 >> 0x20),(int)lVar2)" identifier (argument_list "((int)(uVar18 >> 0x20) * unaff_s2 + (int)((ulonglong)lVar2 >> 0x20),(int)lVar2)" ( (binary_expression "(int)(uVar18 >> 0x20) * unaff_s2 + (int)((ulonglong)lVar2 >> 0x20)" (binary_expression "(int)(uVar18 >> 0x20) * unaff_s2" (cast_expression "(int)(uVar18 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar18 >> 0x20)" ( (binary_expression "uVar18 >> 0x20" identifier >> number_literal) ))) * identifier) + (cast_expression "(int)((ulonglong)lVar2 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar2 >> 0x20)" ( (binary_expression "(ulonglong)lVar2 >> 0x20" (cast_expression "(ulonglong)lVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) , (cast_expression "(int)lVar2" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) })) (expression_statement "puVar7 = (undefined4 *)&DAT_000000c0;" (assignment_expression "puVar7 = (undefined4 *)&DAT_000000c0" identifier = (cast_expression "(undefined4 *)&DAT_000000c0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_000000c0" & identifier))) ;) (expression_statement "unaff_s0 = this;" (assignment_expression "unaff_s0 = this" identifier = identifier) ;) })) (expression_statement "puVar6 = PTR_s_in_a_linker_script_004c191c + 0xdec;" (assignment_expression "puVar6 = PTR_s_in_a_linker_script_004c191c + 0xdec" identifier = (binary_expression "PTR_s_in_a_linker_script_004c191c + 0xdec" identifier + number_literal)) ;) (expression_statement "puVar15 = PTR_do_gold_unreachable_004c1a30;" (assignment_expression "puVar15 = PTR_do_gold_unreachable_004c1a30" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar6,puVar7,PTR_s_in_a_linker_script_004c191c + 0x2280);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar6,puVar7,PTR_s_in_a_linker_script_004c191c + 0x2280)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar6,puVar7,PTR_s_in_a_linker_script_004c191c + 0x2280)" ( identifier , identifier , (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x2280" identifier + number_literal) ))) ;) (expression_statement "pcVar16 = *(code **)(puVar15 + 0x21e8f0);" (assignment_expression "pcVar16 = *(code **)(puVar15 + 0x21e8f0)" identifier = (pointer_expression "*(code **)(puVar15 + 0x21e8f0)" * (cast_expression "(code **)(puVar15 + 0x21e8f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x21e8f0)" ( (binary_expression "puVar15 + 0x21e8f0" identifier + number_literal) ))))) ;) (expression_statement "puVar11 = *(undefined4 **)(puVar6 + 0x4c);" (assignment_expression "puVar11 = *(undefined4 **)(puVar6 + 0x4c)" identifier = (pointer_expression "*(undefined4 **)(puVar6 + 0x4c)" * (cast_expression "(undefined4 **)(puVar6 + 0x4c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + 0x4c)" ( (binary_expression "puVar6 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = *(int *)(puVar6 + 0x48);" (assignment_expression "iVar10 = *(int *)(puVar6 + 0x48)" identifier = (pointer_expression "*(int *)(puVar6 + 0x48)" * (cast_expression "(int *)(puVar6 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0x48)" ( (binary_expression "puVar6 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "puVar7[1] = 0;" (assignment_expression "puVar7[1] = 0" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)*puVar7 = 0;" (assignment_expression "*(undefined1 *)*puVar7 = 0" (pointer_expression "*(undefined1 *)*puVar7" * (cast_expression "(undefined1 *)*puVar7" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) = number_literal) ;) (expression_statement "puVar8 = puVar11;" (assignment_expression "puVar8 = puVar11" identifier = identifier) ;) (expression_statement "pTStack_58 = unaff_s0;" (assignment_expression "pTStack_58 = unaff_s0" identifier = identifier) ;) (expression_statement "iStack_54 = unaff_s1;" (assignment_expression "iStack_54 = unaff_s1" identifier = identifier) ;) (expression_statement "uStack_50 = unaff_s2;" (assignment_expression "uStack_50 = unaff_s2" identifier = identifier) ;) (expression_statement "uVar18 = (*pcVar16)(puVar7);" (assignment_expression "uVar18 = (*pcVar16)(puVar7)" identifier = (call_expression "(*pcVar16)(puVar7)" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "(puVar7)" ( identifier )))) ;) (if_statement "if ((0 < iVar10) ||\n     ((iVar10 == 0 && (uVar18 = CONCAT44(puVar6 + 0x20,(int)uVar18), puVar11 != (undefined4 *)0x0)))\n     ) {\n    puStack_60 = puVar6 + 0x20;\n    iVar17 = 0;\n    iStack_5c = 0x7fffffff;\n    puVar12 = (undefined4 *)0x0;\n    do {\n      do {\n        puVar13 = (undefined4 *)((int)puVar11 - (int)puVar12);\n        iVar9 = (iVar10 - iVar17) - (uint)(puVar11 < puVar13);\n        if ((0 < iVar9) ||\n           ((pcVar16 = *(code **)(puVar15 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar13)))) {\n          iVar9 = 0;\n          puVar13 = (undefined4 *)0x2000;\n          pcVar16 = *(code **)(puVar15 + 0x21e4c4);\n        }\n        (*pcVar16)(puStack_60);\n        if ((undefined4 *)(iStack_5c - puVar7[1]) < puVar13) {\n          iVar10 = *(int *)(puVar15 + 0x21d714) + 0x446c;\n          (**(code **)(puVar15 + 0x21e30c))();\n          pcVar3 = (char *)*puVar8;\n          cVar5 = *pcVar3;\n          do {\n            if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar10 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }\n            pcVar3 = pcVar3 + 1;\n          } while( true );\n        }\n        puVar14 = (undefined4 *)((int)puVar12 + (int)puVar13);\n        iVar17 = (uint)(puVar14 < puVar12) + iVar17 + iVar9;\n        puVar8 = auStack_2060;\n        (**(code **)(puVar15 + 0x21e300))(puVar7,auStack_2060,puVar13);\n        puVar12 = puVar14;\n      } while (iVar17 < iVar10);\n      bVar1 = puVar14 < puVar11;\n      uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1);\n    } while ((iVar10 == iVar17) && (uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1), bVar1));\n  }" if (parenthesized_expression "((0 < iVar10) ||\n     ((iVar10 == 0 && (uVar18 = CONCAT44(puVar6 + 0x20,(int)uVar18), puVar11 != (undefined4 *)0x0)))\n     )" ( (binary_expression "(0 < iVar10) ||\n     ((iVar10 == 0 && (uVar18 = CONCAT44(puVar6 + 0x20,(int)uVar18), puVar11 != (undefined4 *)0x0)))" (parenthesized_expression "(0 < iVar10)" ( (binary_expression "0 < iVar10" number_literal < identifier) )) || (parenthesized_expression "((iVar10 == 0 && (uVar18 = CONCAT44(puVar6 + 0x20,(int)uVar18), puVar11 != (undefined4 *)0x0)))" ( (parenthesized_expression "(iVar10 == 0 && (uVar18 = CONCAT44(puVar6 + 0x20,(int)uVar18), puVar11 != (undefined4 *)0x0))" ( (binary_expression "iVar10 == 0 && (uVar18 = CONCAT44(puVar6 + 0x20,(int)uVar18), puVar11 != (undefined4 *)0x0)" (binary_expression "iVar10 == 0" identifier == number_literal) && (parenthesized_expression "(uVar18 = CONCAT44(puVar6 + 0x20,(int)uVar18), puVar11 != (undefined4 *)0x0)" ( (comma_expression "uVar18 = CONCAT44(puVar6 + 0x20,(int)uVar18), puVar11 != (undefined4 *)0x0" (assignment_expression "uVar18 = CONCAT44(puVar6 + 0x20,(int)uVar18)" identifier = (call_expression "CONCAT44(puVar6 + 0x20,(int)uVar18)" identifier (argument_list "(puVar6 + 0x20,(int)uVar18)" ( (binary_expression "puVar6 + 0x20" identifier + number_literal) , (cast_expression "(int)uVar18" ( (type_descriptor "int" primitive_type) ) identifier) )))) , (binary_expression "puVar11 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) ))) )) (compound_statement "{\n    puStack_60 = puVar6 + 0x20;\n    iVar17 = 0;\n    iStack_5c = 0x7fffffff;\n    puVar12 = (undefined4 *)0x0;\n    do {\n      do {\n        puVar13 = (undefined4 *)((int)puVar11 - (int)puVar12);\n        iVar9 = (iVar10 - iVar17) - (uint)(puVar11 < puVar13);\n        if ((0 < iVar9) ||\n           ((pcVar16 = *(code **)(puVar15 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar13)))) {\n          iVar9 = 0;\n          puVar13 = (undefined4 *)0x2000;\n          pcVar16 = *(code **)(puVar15 + 0x21e4c4);\n        }\n        (*pcVar16)(puStack_60);\n        if ((undefined4 *)(iStack_5c - puVar7[1]) < puVar13) {\n          iVar10 = *(int *)(puVar15 + 0x21d714) + 0x446c;\n          (**(code **)(puVar15 + 0x21e30c))();\n          pcVar3 = (char *)*puVar8;\n          cVar5 = *pcVar3;\n          do {\n            if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar10 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }\n            pcVar3 = pcVar3 + 1;\n          } while( true );\n        }\n        puVar14 = (undefined4 *)((int)puVar12 + (int)puVar13);\n        iVar17 = (uint)(puVar14 < puVar12) + iVar17 + iVar9;\n        puVar8 = auStack_2060;\n        (**(code **)(puVar15 + 0x21e300))(puVar7,auStack_2060,puVar13);\n        puVar12 = puVar14;\n      } while (iVar17 < iVar10);\n      bVar1 = puVar14 < puVar11;\n      uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1);\n    } while ((iVar10 == iVar17) && (uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1), bVar1));\n  }" { (expression_statement "puStack_60 = puVar6 + 0x20;" (assignment_expression "puStack_60 = puVar6 + 0x20" identifier = (binary_expression "puVar6 + 0x20" identifier + number_literal)) ;) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (expression_statement "iStack_5c = 0x7fffffff;" (assignment_expression "iStack_5c = 0x7fffffff" identifier = number_literal) ;) (expression_statement "puVar12 = (undefined4 *)0x0;" (assignment_expression "puVar12 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      do {\n        puVar13 = (undefined4 *)((int)puVar11 - (int)puVar12);\n        iVar9 = (iVar10 - iVar17) - (uint)(puVar11 < puVar13);\n        if ((0 < iVar9) ||\n           ((pcVar16 = *(code **)(puVar15 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar13)))) {\n          iVar9 = 0;\n          puVar13 = (undefined4 *)0x2000;\n          pcVar16 = *(code **)(puVar15 + 0x21e4c4);\n        }\n        (*pcVar16)(puStack_60);\n        if ((undefined4 *)(iStack_5c - puVar7[1]) < puVar13) {\n          iVar10 = *(int *)(puVar15 + 0x21d714) + 0x446c;\n          (**(code **)(puVar15 + 0x21e30c))();\n          pcVar3 = (char *)*puVar8;\n          cVar5 = *pcVar3;\n          do {\n            if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar10 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }\n            pcVar3 = pcVar3 + 1;\n          } while( true );\n        }\n        puVar14 = (undefined4 *)((int)puVar12 + (int)puVar13);\n        iVar17 = (uint)(puVar14 < puVar12) + iVar17 + iVar9;\n        puVar8 = auStack_2060;\n        (**(code **)(puVar15 + 0x21e300))(puVar7,auStack_2060,puVar13);\n        puVar12 = puVar14;\n      } while (iVar17 < iVar10);\n      bVar1 = puVar14 < puVar11;\n      uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1);\n    } while ((iVar10 == iVar17) && (uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1), bVar1));" do (compound_statement "{\n      do {\n        puVar13 = (undefined4 *)((int)puVar11 - (int)puVar12);\n        iVar9 = (iVar10 - iVar17) - (uint)(puVar11 < puVar13);\n        if ((0 < iVar9) ||\n           ((pcVar16 = *(code **)(puVar15 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar13)))) {\n          iVar9 = 0;\n          puVar13 = (undefined4 *)0x2000;\n          pcVar16 = *(code **)(puVar15 + 0x21e4c4);\n        }\n        (*pcVar16)(puStack_60);\n        if ((undefined4 *)(iStack_5c - puVar7[1]) < puVar13) {\n          iVar10 = *(int *)(puVar15 + 0x21d714) + 0x446c;\n          (**(code **)(puVar15 + 0x21e30c))();\n          pcVar3 = (char *)*puVar8;\n          cVar5 = *pcVar3;\n          do {\n            if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar10 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }\n            pcVar3 = pcVar3 + 1;\n          } while( true );\n        }\n        puVar14 = (undefined4 *)((int)puVar12 + (int)puVar13);\n        iVar17 = (uint)(puVar14 < puVar12) + iVar17 + iVar9;\n        puVar8 = auStack_2060;\n        (**(code **)(puVar15 + 0x21e300))(puVar7,auStack_2060,puVar13);\n        puVar12 = puVar14;\n      } while (iVar17 < iVar10);\n      bVar1 = puVar14 < puVar11;\n      uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1);\n    }" { (do_statement "do {\n        puVar13 = (undefined4 *)((int)puVar11 - (int)puVar12);\n        iVar9 = (iVar10 - iVar17) - (uint)(puVar11 < puVar13);\n        if ((0 < iVar9) ||\n           ((pcVar16 = *(code **)(puVar15 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar13)))) {\n          iVar9 = 0;\n          puVar13 = (undefined4 *)0x2000;\n          pcVar16 = *(code **)(puVar15 + 0x21e4c4);\n        }\n        (*pcVar16)(puStack_60);\n        if ((undefined4 *)(iStack_5c - puVar7[1]) < puVar13) {\n          iVar10 = *(int *)(puVar15 + 0x21d714) + 0x446c;\n          (**(code **)(puVar15 + 0x21e30c))();\n          pcVar3 = (char *)*puVar8;\n          cVar5 = *pcVar3;\n          do {\n            if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar10 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }\n            pcVar3 = pcVar3 + 1;\n          } while( true );\n        }\n        puVar14 = (undefined4 *)((int)puVar12 + (int)puVar13);\n        iVar17 = (uint)(puVar14 < puVar12) + iVar17 + iVar9;\n        puVar8 = auStack_2060;\n        (**(code **)(puVar15 + 0x21e300))(puVar7,auStack_2060,puVar13);\n        puVar12 = puVar14;\n      } while (iVar17 < iVar10);" do (compound_statement "{\n        puVar13 = (undefined4 *)((int)puVar11 - (int)puVar12);\n        iVar9 = (iVar10 - iVar17) - (uint)(puVar11 < puVar13);\n        if ((0 < iVar9) ||\n           ((pcVar16 = *(code **)(puVar15 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar13)))) {\n          iVar9 = 0;\n          puVar13 = (undefined4 *)0x2000;\n          pcVar16 = *(code **)(puVar15 + 0x21e4c4);\n        }\n        (*pcVar16)(puStack_60);\n        if ((undefined4 *)(iStack_5c - puVar7[1]) < puVar13) {\n          iVar10 = *(int *)(puVar15 + 0x21d714) + 0x446c;\n          (**(code **)(puVar15 + 0x21e30c))();\n          pcVar3 = (char *)*puVar8;\n          cVar5 = *pcVar3;\n          do {\n            if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar10 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }\n            pcVar3 = pcVar3 + 1;\n          } while( true );\n        }\n        puVar14 = (undefined4 *)((int)puVar12 + (int)puVar13);\n        iVar17 = (uint)(puVar14 < puVar12) + iVar17 + iVar9;\n        puVar8 = auStack_2060;\n        (**(code **)(puVar15 + 0x21e300))(puVar7,auStack_2060,puVar13);\n        puVar12 = puVar14;\n      }" { (expression_statement "puVar13 = (undefined4 *)((int)puVar11 - (int)puVar12);" (assignment_expression "puVar13 = (undefined4 *)((int)puVar11 - (int)puVar12)" identifier = (cast_expression "(undefined4 *)((int)puVar11 - (int)puVar12)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 - (int)puVar12)" ( (binary_expression "(int)puVar11 - (int)puVar12" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar9 = (iVar10 - iVar17) - (uint)(puVar11 < puVar13);" (assignment_expression "iVar9 = (iVar10 - iVar17) - (uint)(puVar11 < puVar13)" identifier = (binary_expression "(iVar10 - iVar17) - (uint)(puVar11 < puVar13)" (parenthesized_expression "(iVar10 - iVar17)" ( (binary_expression "iVar10 - iVar17" identifier - identifier) )) - (call_expression "(uint)(puVar11 < puVar13)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar11 < puVar13)" ( (binary_expression "puVar11 < puVar13" identifier < identifier) ))))) ;) (if_statement "if ((0 < iVar9) ||\n           ((pcVar16 = *(code **)(puVar15 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar13)))) {\n          iVar9 = 0;\n          puVar13 = (undefined4 *)0x2000;\n          pcVar16 = *(code **)(puVar15 + 0x21e4c4);\n        }" if (parenthesized_expression "((0 < iVar9) ||\n           ((pcVar16 = *(code **)(puVar15 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar13))))" ( (binary_expression "(0 < iVar9) ||\n           ((pcVar16 = *(code **)(puVar15 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar13)))" (parenthesized_expression "(0 < iVar9)" ( (binary_expression "0 < iVar9" number_literal < identifier) )) || (parenthesized_expression "((pcVar16 = *(code **)(puVar15 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar13)))" ( (parenthesized_expression "(pcVar16 = *(code **)(puVar15 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar13))" ( (comma_expression "pcVar16 = *(code **)(puVar15 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar13)" (assignment_expression "pcVar16 = *(code **)(puVar15 + 0x21e4c4)" identifier = (pointer_expression "*(code **)(puVar15 + 0x21e4c4)" * (cast_expression "(code **)(puVar15 + 0x21e4c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x21e4c4)" ( (binary_expression "puVar15 + 0x21e4c4" identifier + number_literal) ))))) , (binary_expression "iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar13)" (binary_expression "iVar9 == 0" identifier == number_literal) && (parenthesized_expression "((undefined4 *)0x1fff < puVar13)" ( (binary_expression "(undefined4 *)0x1fff < puVar13" (cast_expression "(undefined4 *)0x1fff" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )))) )) ))) )) (compound_statement "{\n          iVar9 = 0;\n          puVar13 = (undefined4 *)0x2000;\n          pcVar16 = *(code **)(puVar15 + 0x21e4c4);\n        }" { (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "puVar13 = (undefined4 *)0x2000;" (assignment_expression "puVar13 = (undefined4 *)0x2000" identifier = (cast_expression "(undefined4 *)0x2000" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar16 = *(code **)(puVar15 + 0x21e4c4);" (assignment_expression "pcVar16 = *(code **)(puVar15 + 0x21e4c4)" identifier = (pointer_expression "*(code **)(puVar15 + 0x21e4c4)" * (cast_expression "(code **)(puVar15 + 0x21e4c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x21e4c4)" ( (binary_expression "puVar15 + 0x21e4c4" identifier + number_literal) ))))) ;) })) (expression_statement "(*pcVar16)(puStack_60);" (call_expression "(*pcVar16)(puStack_60)" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "(puStack_60)" ( identifier ))) ;) (if_statement "if ((undefined4 *)(iStack_5c - puVar7[1]) < puVar13) {\n          iVar10 = *(int *)(puVar15 + 0x21d714) + 0x446c;\n          (**(code **)(puVar15 + 0x21e30c))();\n          pcVar3 = (char *)*puVar8;\n          cVar5 = *pcVar3;\n          do {\n            if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar10 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }\n            pcVar3 = pcVar3 + 1;\n          } while( true );\n        }" if (parenthesized_expression "((undefined4 *)(iStack_5c - puVar7[1]) < puVar13)" ( (binary_expression "(undefined4 *)(iStack_5c - puVar7[1]) < puVar13" (cast_expression "(undefined4 *)(iStack_5c - puVar7[1])" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_5c - puVar7[1])" ( (binary_expression "iStack_5c - puVar7[1]" identifier - (subscript_expression "puVar7[1]" identifier [ number_literal ])) ))) < identifier) )) (compound_statement "{\n          iVar10 = *(int *)(puVar15 + 0x21d714) + 0x446c;\n          (**(code **)(puVar15 + 0x21e30c))();\n          pcVar3 = (char *)*puVar8;\n          cVar5 = *pcVar3;\n          do {\n            if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar10 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }\n            pcVar3 = pcVar3 + 1;\n          } while( true );\n        }" { (expression_statement "iVar10 = *(int *)(puVar15 + 0x21d714) + 0x446c;" (assignment_expression "iVar10 = *(int *)(puVar15 + 0x21d714) + 0x446c" identifier = (binary_expression "*(int *)(puVar15 + 0x21d714) + 0x446c" (pointer_expression "*(int *)(puVar15 + 0x21d714)" * (cast_expression "(int *)(puVar15 + 0x21d714)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x21d714)" ( (binary_expression "puVar15 + 0x21d714" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(puVar15 + 0x21e30c))();" (call_expression "(**(code **)(puVar15 + 0x21e30c))()" (parenthesized_expression "(**(code **)(puVar15 + 0x21e30c))" ( (pointer_expression "**(code **)(puVar15 + 0x21e30c)" * (pointer_expression "*(code **)(puVar15 + 0x21e30c)" * (cast_expression "(code **)(puVar15 + 0x21e30c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x21e30c)" ( (binary_expression "puVar15 + 0x21e30c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar3 = (char *)*puVar8;" (assignment_expression "pcVar3 = (char *)*puVar8" identifier = (cast_expression "(char *)*puVar8" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar8" * identifier))) ;) (expression_statement "cVar5 = *pcVar3;" (assignment_expression "cVar5 = *pcVar3" identifier = (pointer_expression "*pcVar3" * identifier)) ;) (do_statement "do {\n            if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar10 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }\n            pcVar3 = pcVar3 + 1;\n          } while( true );" do (compound_statement "{\n            if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar10 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }\n            pcVar3 = pcVar3 + 1;\n          }" { (if_statement "if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar10 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }" if (parenthesized_expression "(cVar5 == '*')" ( (binary_expression "cVar5 == '*'" identifier == (char_literal "'*'" ' character ')) )) (compound_statement "{\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }" { (expression_statement "cVar5 = pcVar3[1];" (assignment_expression "cVar5 = pcVar3[1]" identifier = (subscript_expression "pcVar3[1]" identifier [ number_literal ])) ;) (if_statement "if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }" if (parenthesized_expression "(cVar5 == '/')" ( (binary_expression "cVar5 == '/'" identifier == (char_literal "'/'" ' character ')) )) (compound_statement "{\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }" { (expression_statement "*puVar8 = pcVar3 + 2;" (assignment_expression "*puVar8 = pcVar3 + 2" (pointer_expression "*puVar8" * identifier) = (binary_expression "pcVar3 + 2" identifier + number_literal)) ;) (return_statement "return CONCAT44(1,pcVar3 + 2);" return (call_expression "CONCAT44(1,pcVar3 + 2)" identifier (argument_list "(1,pcVar3 + 2)" ( number_literal , (binary_expression "pcVar3 + 2" identifier + number_literal) ))) ;) })) }) (else_clause "else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar10 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }" else (compound_statement "{\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar10 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }" { (if_statement "if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }" if (parenthesized_expression "(cVar5 == '\0')" ( (binary_expression "cVar5 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }" { (expression_statement "*puVar8 = pcVar3;" (assignment_expression "*puVar8 = pcVar3" (pointer_expression "*puVar8" * identifier) = identifier) ;) (return_statement "return ZEXT48(pcVar3);" return (call_expression "ZEXT48(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier ))) ;) })) (if_statement "if (cVar5 == '\n') {\n                *(char **)(iVar10 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;\n              }" if (parenthesized_expression "(cVar5 == '\n')" ( (binary_expression "cVar5 == '\n'" identifier == (char_literal "'\n'" ' escape_sequence ')) )) (compound_statement "{\n                *(char **)(iVar10 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;\n              }" { (expression_statement "*(char **)(iVar10 + 0x30) = pcVar3 + 1;" (assignment_expression "*(char **)(iVar10 + 0x30) = pcVar3 + 1" (pointer_expression "*(char **)(iVar10 + 0x30)" * (cast_expression "(char **)(iVar10 + 0x30)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x30)" ( (binary_expression "iVar10 + 0x30" identifier + number_literal) )))) = (binary_expression "pcVar3 + 1" identifier + number_literal)) ;) (expression_statement "*(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;" (assignment_expression "*(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1" (pointer_expression "*(int *)(iVar10 + 0x2c)" * (cast_expression "(int *)(iVar10 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x2c)" ( (binary_expression "iVar10 + 0x2c" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar10 + 0x2c) + 1" (pointer_expression "*(int *)(iVar10 + 0x2c)" * (cast_expression "(int *)(iVar10 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x2c)" ( (binary_expression "iVar10 + 0x2c" identifier + number_literal) )))) + number_literal)) ;) })) (expression_statement "cVar5 = pcVar3[1];" (assignment_expression "cVar5 = pcVar3[1]" identifier = (subscript_expression "pcVar3[1]" identifier [ number_literal ])) ;) }))) (expression_statement "pcVar3 = pcVar3 + 1;" (assignment_expression "pcVar3 = pcVar3 + 1" identifier = (binary_expression "pcVar3 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "puVar14 = (undefined4 *)((int)puVar12 + (int)puVar13);" (assignment_expression "puVar14 = (undefined4 *)((int)puVar12 + (int)puVar13)" identifier = (cast_expression "(undefined4 *)((int)puVar12 + (int)puVar13)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 + (int)puVar13)" ( (binary_expression "(int)puVar12 + (int)puVar13" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar17 = (uint)(puVar14 < puVar12) + iVar17 + iVar9;" (assignment_expression "iVar17 = (uint)(puVar14 < puVar12) + iVar17 + iVar9" identifier = (binary_expression "(uint)(puVar14 < puVar12) + iVar17 + iVar9" (binary_expression "(uint)(puVar14 < puVar12) + iVar17" (call_expression "(uint)(puVar14 < puVar12)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar14 < puVar12)" ( (binary_expression "puVar14 < puVar12" identifier < identifier) ))) + identifier) + identifier)) ;) (expression_statement "puVar8 = auStack_2060;" (assignment_expression "puVar8 = auStack_2060" identifier = identifier) ;) (expression_statement "(**(code **)(puVar15 + 0x21e300))(puVar7,auStack_2060,puVar13);" (call_expression "(**(code **)(puVar15 + 0x21e300))(puVar7,auStack_2060,puVar13)" (parenthesized_expression "(**(code **)(puVar15 + 0x21e300))" ( (pointer_expression "**(code **)(puVar15 + 0x21e300)" * (pointer_expression "*(code **)(puVar15 + 0x21e300)" * (cast_expression "(code **)(puVar15 + 0x21e300)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x21e300)" ( (binary_expression "puVar15 + 0x21e300" identifier + number_literal) ))))) )) (argument_list "(puVar7,auStack_2060,puVar13)" ( identifier , identifier , identifier ))) ;) (expression_statement "puVar12 = puVar14;" (assignment_expression "puVar12 = puVar14" identifier = identifier) ;) }) while (parenthesized_expression "(iVar17 < iVar10)" ( (binary_expression "iVar17 < iVar10" identifier < identifier) )) ;) (expression_statement "bVar1 = puVar14 < puVar11;" (assignment_expression "bVar1 = puVar14 < puVar11" identifier = (binary_expression "puVar14 < puVar11" identifier < identifier)) ;) (expression_statement "uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1);" (assignment_expression "uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1)" identifier = (cast_expression "(ulonglong)CONCAT14(bVar1,extraout_v1)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "CONCAT14(bVar1,extraout_v1)" identifier (argument_list "(bVar1,extraout_v1)" ( identifier , identifier ))))) ;) }) while (parenthesized_expression "((iVar10 == iVar17) && (uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1), bVar1))" ( (binary_expression "(iVar10 == iVar17) && (uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1), bVar1)" (parenthesized_expression "(iVar10 == iVar17)" ( (binary_expression "iVar10 == iVar17" identifier == identifier) )) && (parenthesized_expression "(uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1), bVar1)" ( (comma_expression "uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1), bVar1" (assignment_expression "uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1)" identifier = (cast_expression "(ulonglong)CONCAT14(bVar1,extraout_v1)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "CONCAT14(bVar1,extraout_v1)" identifier (argument_list "(bVar1,extraout_v1)" ( identifier , identifier ))))) , identifier) ))) )) ;) })) (return_statement "return uVar18;" return identifier ;) })))
(translation_unit "/* DWARF original prototype: uint64_t integer_value(Token * this) */\n\nuint64_t __thiscall gold::Token::integer_value(Token *this)\n\n{\n  bool bVar1;\n  longlong lVar2;\n  byte bVar4;\n  char *pcVar3;\n  char cVar5;\n  undefined4 extraout_v1;\n  undefined *puVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  Token *unaff_s0;\n  int iVar9;\n  size_t unaff_s1;\n  size_t sVar10;\n  uint unaff_s2;\n  int iVar11;\n  undefined4 *puVar12;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  undefined4 *puVar15;\n  undefined *puVar16;\n  code *pcVar17;\n  int iVar18;\n  ulonglong uVar19;\n  undefined4 auStack_2060 [2048];\n  undefined *puStack_60;\n  int iStack_5c;\n  Token *pTStack_58;\n  size_t sStack_54;\n  uint uStack_50;\n  char *end;\n  \n  puVar7 = (undefined4 *)&DAT_000000ad;\n  if (this->classification_ == TOKEN_INTEGER) {\n    unaff_s1 = this->value_length_;\n    sVar10 = unaff_s1 - 1;\n    bVar4 = this->value_[sVar10] & 0xdf;\n    if (bVar4 == 0x4d) {\n      unaff_s2 = 0x100000;\n      unaff_s1 = sVar10;\n    }\n    else {\n      unaff_s2 = 1;\n      if (bVar4 == 0x4b) {\n        unaff_s2 = 0x400;\n        unaff_s1 = sVar10;\n      }\n    }\n    uVar19 = (*(code *)PTR_strtoull_004c5c14)(this->value_,&end,0);\n    if ((int)end - (int)this->value_ == unaff_s1) {\n      lVar2 = (ulonglong)unaff_s2 * (uVar19 & 0xffffffff);\n      return CONCAT44((int)(uVar19 >> 0x20) * unaff_s2 + (int)((ulonglong)lVar2 >> 0x20),(int)lVar2)\n      ;\n    }\n    puVar7 = (undefined4 *)&DAT_000000c0;\n    unaff_s0 = this;\n  }\n  puVar6 = PTR_s_in_a_linker_script_004c191c + 0xdec;\n  puVar16 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar6,puVar7,PTR_s_in_a_linker_script_004c191c + 0x2280);\n  pcVar17 = *(code **)(puVar16 + 0x21e8f0);\n  puVar12 = *(undefined4 **)(puVar6 + 0x4c);\n  iVar11 = *(int *)(puVar6 + 0x48);\n  puVar7[1] = 0;\n  *(undefined1 *)*puVar7 = 0;\n  puVar8 = puVar12;\n  pTStack_58 = unaff_s0;\n  sStack_54 = unaff_s1;\n  uStack_50 = unaff_s2;\n  uVar19 = (*pcVar17)(puVar7);\n  if ((0 < iVar11) ||\n     ((iVar11 == 0 && (uVar19 = CONCAT44(puVar6 + 0x20,(int)uVar19), puVar12 != (undefined4 *)0x0)))\n     ) {\n    puStack_60 = puVar6 + 0x20;\n    iVar18 = 0;\n    iStack_5c = 0x7fffffff;\n    puVar13 = (undefined4 *)0x0;\n    do {\n      do {\n        puVar14 = (undefined4 *)((int)puVar12 - (int)puVar13);\n        iVar9 = (iVar11 - iVar18) - (uint)(puVar12 < puVar14);\n        if ((0 < iVar9) ||\n           ((pcVar17 = *(code **)(puVar16 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar14)))) {\n          iVar9 = 0;\n          puVar14 = (undefined4 *)0x2000;\n          pcVar17 = *(code **)(puVar16 + 0x21e4c4);\n        }\n        (*pcVar17)(puStack_60);\n        if ((undefined4 *)(iStack_5c - puVar7[1]) < puVar14) {\n          iVar11 = *(int *)(puVar16 + 0x21d714) + 0x446c;\n          (**(code **)(puVar16 + 0x21e30c))();\n          pcVar3 = (char *)*puVar8;\n          cVar5 = *pcVar3;\n          do {\n            if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar11 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar11 + 0x2c) = *(int *)(iVar11 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }\n            pcVar3 = pcVar3 + 1;\n          } while( true );\n        }\n        puVar15 = (undefined4 *)((int)puVar13 + (int)puVar14);\n        iVar18 = (uint)(puVar15 < puVar13) + iVar18 + iVar9;\n        puVar8 = auStack_2060;\n        (**(code **)(puVar16 + 0x21e300))(puVar7,auStack_2060,puVar14);\n        puVar13 = puVar15;\n      } while (iVar18 < iVar11);\n      bVar1 = puVar15 < puVar12;\n      uVar19 = (ulonglong)CONCAT14(bVar1,extraout_v1);\n    } while ((iVar11 == iVar18) && (uVar19 = (ulonglong)CONCAT14(bVar1,extraout_v1), bVar1));\n  }\n  return uVar19;\n}\n\n" comment (function_definition "uint64_t __thiscall gold::Token::integer_value(Token *this)\n\n{\n  bool bVar1;\n  longlong lVar2;\n  byte bVar4;\n  char *pcVar3;\n  char cVar5;\n  undefined4 extraout_v1;\n  undefined *puVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  Token *unaff_s0;\n  int iVar9;\n  size_t unaff_s1;\n  size_t sVar10;\n  uint unaff_s2;\n  int iVar11;\n  undefined4 *puVar12;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  undefined4 *puVar15;\n  undefined *puVar16;\n  code *pcVar17;\n  int iVar18;\n  ulonglong uVar19;\n  undefined4 auStack_2060 [2048];\n  undefined *puStack_60;\n  int iStack_5c;\n  Token *pTStack_58;\n  size_t sStack_54;\n  uint uStack_50;\n  char *end;\n  \n  puVar7 = (undefined4 *)&DAT_000000ad;\n  if (this->classification_ == TOKEN_INTEGER) {\n    unaff_s1 = this->value_length_;\n    sVar10 = unaff_s1 - 1;\n    bVar4 = this->value_[sVar10] & 0xdf;\n    if (bVar4 == 0x4d) {\n      unaff_s2 = 0x100000;\n      unaff_s1 = sVar10;\n    }\n    else {\n      unaff_s2 = 1;\n      if (bVar4 == 0x4b) {\n        unaff_s2 = 0x400;\n        unaff_s1 = sVar10;\n      }\n    }\n    uVar19 = (*(code *)PTR_strtoull_004c5c14)(this->value_,&end,0);\n    if ((int)end - (int)this->value_ == unaff_s1) {\n      lVar2 = (ulonglong)unaff_s2 * (uVar19 & 0xffffffff);\n      return CONCAT44((int)(uVar19 >> 0x20) * unaff_s2 + (int)((ulonglong)lVar2 >> 0x20),(int)lVar2)\n      ;\n    }\n    puVar7 = (undefined4 *)&DAT_000000c0;\n    unaff_s0 = this;\n  }\n  puVar6 = PTR_s_in_a_linker_script_004c191c + 0xdec;\n  puVar16 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar6,puVar7,PTR_s_in_a_linker_script_004c191c + 0x2280);\n  pcVar17 = *(code **)(puVar16 + 0x21e8f0);\n  puVar12 = *(undefined4 **)(puVar6 + 0x4c);\n  iVar11 = *(int *)(puVar6 + 0x48);\n  puVar7[1] = 0;\n  *(undefined1 *)*puVar7 = 0;\n  puVar8 = puVar12;\n  pTStack_58 = unaff_s0;\n  sStack_54 = unaff_s1;\n  uStack_50 = unaff_s2;\n  uVar19 = (*pcVar17)(puVar7);\n  if ((0 < iVar11) ||\n     ((iVar11 == 0 && (uVar19 = CONCAT44(puVar6 + 0x20,(int)uVar19), puVar12 != (undefined4 *)0x0)))\n     ) {\n    puStack_60 = puVar6 + 0x20;\n    iVar18 = 0;\n    iStack_5c = 0x7fffffff;\n    puVar13 = (undefined4 *)0x0;\n    do {\n      do {\n        puVar14 = (undefined4 *)((int)puVar12 - (int)puVar13);\n        iVar9 = (iVar11 - iVar18) - (uint)(puVar12 < puVar14);\n        if ((0 < iVar9) ||\n           ((pcVar17 = *(code **)(puVar16 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar14)))) {\n          iVar9 = 0;\n          puVar14 = (undefined4 *)0x2000;\n          pcVar17 = *(code **)(puVar16 + 0x21e4c4);\n        }\n        (*pcVar17)(puStack_60);\n        if ((undefined4 *)(iStack_5c - puVar7[1]) < puVar14) {\n          iVar11 = *(int *)(puVar16 + 0x21d714) + 0x446c;\n          (**(code **)(puVar16 + 0x21e30c))();\n          pcVar3 = (char *)*puVar8;\n          cVar5 = *pcVar3;\n          do {\n            if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar11 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar11 + 0x2c) = *(int *)(iVar11 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }\n            pcVar3 = pcVar3 + 1;\n          } while( true );\n        }\n        puVar15 = (undefined4 *)((int)puVar13 + (int)puVar14);\n        iVar18 = (uint)(puVar15 < puVar13) + iVar18 + iVar9;\n        puVar8 = auStack_2060;\n        (**(code **)(puVar16 + 0x21e300))(puVar7,auStack_2060,puVar14);\n        puVar13 = puVar15;\n      } while (iVar18 < iVar11);\n      bVar1 = puVar15 < puVar12;\n      uVar19 = (ulonglong)CONCAT14(bVar1,extraout_v1);\n    } while ((iVar11 == iVar18) && (uVar19 = (ulonglong)CONCAT14(bVar1,extraout_v1), bVar1));\n  }\n  return uVar19;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Token::" identifier : : identifier : :) (function_declarator "integer_value(Token *this)" identifier (parameter_list "(Token *this)" ( (parameter_declaration "Token *this" type_identifier (pointer_declarator "*this" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  longlong lVar2;\n  byte bVar4;\n  char *pcVar3;\n  char cVar5;\n  undefined4 extraout_v1;\n  undefined *puVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  Token *unaff_s0;\n  int iVar9;\n  size_t unaff_s1;\n  size_t sVar10;\n  uint unaff_s2;\n  int iVar11;\n  undefined4 *puVar12;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  undefined4 *puVar15;\n  undefined *puVar16;\n  code *pcVar17;\n  int iVar18;\n  ulonglong uVar19;\n  undefined4 auStack_2060 [2048];\n  undefined *puStack_60;\n  int iStack_5c;\n  Token *pTStack_58;\n  size_t sStack_54;\n  uint uStack_50;\n  char *end;\n  \n  puVar7 = (undefined4 *)&DAT_000000ad;\n  if (this->classification_ == TOKEN_INTEGER) {\n    unaff_s1 = this->value_length_;\n    sVar10 = unaff_s1 - 1;\n    bVar4 = this->value_[sVar10] & 0xdf;\n    if (bVar4 == 0x4d) {\n      unaff_s2 = 0x100000;\n      unaff_s1 = sVar10;\n    }\n    else {\n      unaff_s2 = 1;\n      if (bVar4 == 0x4b) {\n        unaff_s2 = 0x400;\n        unaff_s1 = sVar10;\n      }\n    }\n    uVar19 = (*(code *)PTR_strtoull_004c5c14)(this->value_,&end,0);\n    if ((int)end - (int)this->value_ == unaff_s1) {\n      lVar2 = (ulonglong)unaff_s2 * (uVar19 & 0xffffffff);\n      return CONCAT44((int)(uVar19 >> 0x20) * unaff_s2 + (int)((ulonglong)lVar2 >> 0x20),(int)lVar2)\n      ;\n    }\n    puVar7 = (undefined4 *)&DAT_000000c0;\n    unaff_s0 = this;\n  }\n  puVar6 = PTR_s_in_a_linker_script_004c191c + 0xdec;\n  puVar16 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar6,puVar7,PTR_s_in_a_linker_script_004c191c + 0x2280);\n  pcVar17 = *(code **)(puVar16 + 0x21e8f0);\n  puVar12 = *(undefined4 **)(puVar6 + 0x4c);\n  iVar11 = *(int *)(puVar6 + 0x48);\n  puVar7[1] = 0;\n  *(undefined1 *)*puVar7 = 0;\n  puVar8 = puVar12;\n  pTStack_58 = unaff_s0;\n  sStack_54 = unaff_s1;\n  uStack_50 = unaff_s2;\n  uVar19 = (*pcVar17)(puVar7);\n  if ((0 < iVar11) ||\n     ((iVar11 == 0 && (uVar19 = CONCAT44(puVar6 + 0x20,(int)uVar19), puVar12 != (undefined4 *)0x0)))\n     ) {\n    puStack_60 = puVar6 + 0x20;\n    iVar18 = 0;\n    iStack_5c = 0x7fffffff;\n    puVar13 = (undefined4 *)0x0;\n    do {\n      do {\n        puVar14 = (undefined4 *)((int)puVar12 - (int)puVar13);\n        iVar9 = (iVar11 - iVar18) - (uint)(puVar12 < puVar14);\n        if ((0 < iVar9) ||\n           ((pcVar17 = *(code **)(puVar16 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar14)))) {\n          iVar9 = 0;\n          puVar14 = (undefined4 *)0x2000;\n          pcVar17 = *(code **)(puVar16 + 0x21e4c4);\n        }\n        (*pcVar17)(puStack_60);\n        if ((undefined4 *)(iStack_5c - puVar7[1]) < puVar14) {\n          iVar11 = *(int *)(puVar16 + 0x21d714) + 0x446c;\n          (**(code **)(puVar16 + 0x21e30c))();\n          pcVar3 = (char *)*puVar8;\n          cVar5 = *pcVar3;\n          do {\n            if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar11 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar11 + 0x2c) = *(int *)(iVar11 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }\n            pcVar3 = pcVar3 + 1;\n          } while( true );\n        }\n        puVar15 = (undefined4 *)((int)puVar13 + (int)puVar14);\n        iVar18 = (uint)(puVar15 < puVar13) + iVar18 + iVar9;\n        puVar8 = auStack_2060;\n        (**(code **)(puVar16 + 0x21e300))(puVar7,auStack_2060,puVar14);\n        puVar13 = puVar15;\n      } while (iVar18 < iVar11);\n      bVar1 = puVar15 < puVar12;\n      uVar19 = (ulonglong)CONCAT14(bVar1,extraout_v1);\n    } while ((iVar11 == iVar18) && (uVar19 = (ulonglong)CONCAT14(bVar1,extraout_v1), bVar1));\n  }\n  return uVar19;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "longlong lVar2;" type_identifier identifier ;) (declaration "byte bVar4;" type_identifier identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "char cVar5;" primitive_type identifier ;) (declaration "undefined4 extraout_v1;" type_identifier identifier ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "Token *unaff_s0;" type_identifier (pointer_declarator "*unaff_s0" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "size_t unaff_s1;" primitive_type identifier ;) (declaration "size_t sVar10;" primitive_type identifier ;) (declaration "uint unaff_s2;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "undefined4 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined4 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "undefined *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "code *pcVar17;" type_identifier (pointer_declarator "*pcVar17" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "ulonglong uVar19;" type_identifier identifier ;) (declaration "undefined4 auStack_2060 [2048];" type_identifier (array_declarator "auStack_2060 [2048]" identifier [ number_literal ]) ;) (declaration "undefined *puStack_60;" type_identifier (pointer_declarator "*puStack_60" * identifier) ;) (declaration "int iStack_5c;" primitive_type identifier ;) (declaration "Token *pTStack_58;" type_identifier (pointer_declarator "*pTStack_58" * identifier) ;) (declaration "size_t sStack_54;" primitive_type identifier ;) (declaration "uint uStack_50;" type_identifier identifier ;) (declaration "char *end;" primitive_type (pointer_declarator "*end" * identifier) ;) (expression_statement "puVar7 = (undefined4 *)&DAT_000000ad;" (assignment_expression "puVar7 = (undefined4 *)&DAT_000000ad" identifier = (cast_expression "(undefined4 *)&DAT_000000ad" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_000000ad" & identifier))) ;) (if_statement "if (this->classification_ == TOKEN_INTEGER) {\n    unaff_s1 = this->value_length_;\n    sVar10 = unaff_s1 - 1;\n    bVar4 = this->value_[sVar10] & 0xdf;\n    if (bVar4 == 0x4d) {\n      unaff_s2 = 0x100000;\n      unaff_s1 = sVar10;\n    }\n    else {\n      unaff_s2 = 1;\n      if (bVar4 == 0x4b) {\n        unaff_s2 = 0x400;\n        unaff_s1 = sVar10;\n      }\n    }\n    uVar19 = (*(code *)PTR_strtoull_004c5c14)(this->value_,&end,0);\n    if ((int)end - (int)this->value_ == unaff_s1) {\n      lVar2 = (ulonglong)unaff_s2 * (uVar19 & 0xffffffff);\n      return CONCAT44((int)(uVar19 >> 0x20) * unaff_s2 + (int)((ulonglong)lVar2 >> 0x20),(int)lVar2)\n      ;\n    }\n    puVar7 = (undefined4 *)&DAT_000000c0;\n    unaff_s0 = this;\n  }" if (parenthesized_expression "(this->classification_ == TOKEN_INTEGER)" ( (binary_expression "this->classification_ == TOKEN_INTEGER" (field_expression "this->classification_" identifier -> field_identifier) == identifier) )) (compound_statement "{\n    unaff_s1 = this->value_length_;\n    sVar10 = unaff_s1 - 1;\n    bVar4 = this->value_[sVar10] & 0xdf;\n    if (bVar4 == 0x4d) {\n      unaff_s2 = 0x100000;\n      unaff_s1 = sVar10;\n    }\n    else {\n      unaff_s2 = 1;\n      if (bVar4 == 0x4b) {\n        unaff_s2 = 0x400;\n        unaff_s1 = sVar10;\n      }\n    }\n    uVar19 = (*(code *)PTR_strtoull_004c5c14)(this->value_,&end,0);\n    if ((int)end - (int)this->value_ == unaff_s1) {\n      lVar2 = (ulonglong)unaff_s2 * (uVar19 & 0xffffffff);\n      return CONCAT44((int)(uVar19 >> 0x20) * unaff_s2 + (int)((ulonglong)lVar2 >> 0x20),(int)lVar2)\n      ;\n    }\n    puVar7 = (undefined4 *)&DAT_000000c0;\n    unaff_s0 = this;\n  }" { (expression_statement "unaff_s1 = this->value_length_;" (assignment_expression "unaff_s1 = this->value_length_" identifier = (field_expression "this->value_length_" identifier -> field_identifier)) ;) (expression_statement "sVar10 = unaff_s1 - 1;" (assignment_expression "sVar10 = unaff_s1 - 1" identifier = (binary_expression "unaff_s1 - 1" identifier - number_literal)) ;) (expression_statement "bVar4 = this->value_[sVar10] & 0xdf;" (assignment_expression "bVar4 = this->value_[sVar10] & 0xdf" identifier = (binary_expression "this->value_[sVar10] & 0xdf" (subscript_expression "this->value_[sVar10]" (field_expression "this->value_" identifier -> field_identifier) [ identifier ]) & number_literal)) ;) (if_statement "if (bVar4 == 0x4d) {\n      unaff_s2 = 0x100000;\n      unaff_s1 = sVar10;\n    }\n    else {\n      unaff_s2 = 1;\n      if (bVar4 == 0x4b) {\n        unaff_s2 = 0x400;\n        unaff_s1 = sVar10;\n      }\n    }" if (parenthesized_expression "(bVar4 == 0x4d)" ( (binary_expression "bVar4 == 0x4d" identifier == number_literal) )) (compound_statement "{\n      unaff_s2 = 0x100000;\n      unaff_s1 = sVar10;\n    }" { (expression_statement "unaff_s2 = 0x100000;" (assignment_expression "unaff_s2 = 0x100000" identifier = number_literal) ;) (expression_statement "unaff_s1 = sVar10;" (assignment_expression "unaff_s1 = sVar10" identifier = identifier) ;) }) (else_clause "else {\n      unaff_s2 = 1;\n      if (bVar4 == 0x4b) {\n        unaff_s2 = 0x400;\n        unaff_s1 = sVar10;\n      }\n    }" else (compound_statement "{\n      unaff_s2 = 1;\n      if (bVar4 == 0x4b) {\n        unaff_s2 = 0x400;\n        unaff_s1 = sVar10;\n      }\n    }" { (expression_statement "unaff_s2 = 1;" (assignment_expression "unaff_s2 = 1" identifier = number_literal) ;) (if_statement "if (bVar4 == 0x4b) {\n        unaff_s2 = 0x400;\n        unaff_s1 = sVar10;\n      }" if (parenthesized_expression "(bVar4 == 0x4b)" ( (binary_expression "bVar4 == 0x4b" identifier == number_literal) )) (compound_statement "{\n        unaff_s2 = 0x400;\n        unaff_s1 = sVar10;\n      }" { (expression_statement "unaff_s2 = 0x400;" (assignment_expression "unaff_s2 = 0x400" identifier = number_literal) ;) (expression_statement "unaff_s1 = sVar10;" (assignment_expression "unaff_s1 = sVar10" identifier = identifier) ;) })) }))) (expression_statement "uVar19 = (*(code *)PTR_strtoull_004c5c14)(this->value_,&end,0);" (assignment_expression "uVar19 = (*(code *)PTR_strtoull_004c5c14)(this->value_,&end,0)" identifier = (call_expression "(*(code *)PTR_strtoull_004c5c14)(this->value_,&end,0)" (parenthesized_expression "(*(code *)PTR_strtoull_004c5c14)" ( (pointer_expression "*(code *)PTR_strtoull_004c5c14" * (cast_expression "(code *)PTR_strtoull_004c5c14" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(this->value_,&end,0)" ( (field_expression "this->value_" identifier -> field_identifier) , (pointer_expression "&end" & identifier) , number_literal )))) ;) (if_statement "if ((int)end - (int)this->value_ == unaff_s1) {\n      lVar2 = (ulonglong)unaff_s2 * (uVar19 & 0xffffffff);\n      return CONCAT44((int)(uVar19 >> 0x20) * unaff_s2 + (int)((ulonglong)lVar2 >> 0x20),(int)lVar2)\n      ;\n    }" if (parenthesized_expression "((int)end - (int)this->value_ == unaff_s1)" ( (binary_expression "(int)end - (int)this->value_ == unaff_s1" (binary_expression "(int)end - (int)this->value_" (cast_expression "(int)end" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)this->value_" ( (type_descriptor "int" primitive_type) ) (field_expression "this->value_" identifier -> field_identifier))) == identifier) )) (compound_statement "{\n      lVar2 = (ulonglong)unaff_s2 * (uVar19 & 0xffffffff);\n      return CONCAT44((int)(uVar19 >> 0x20) * unaff_s2 + (int)((ulonglong)lVar2 >> 0x20),(int)lVar2)\n      ;\n    }" { (expression_statement "lVar2 = (ulonglong)unaff_s2 * (uVar19 & 0xffffffff);" (assignment_expression "lVar2 = (ulonglong)unaff_s2 * (uVar19 & 0xffffffff)" identifier = (binary_expression "(ulonglong)unaff_s2 * (uVar19 & 0xffffffff)" (cast_expression "(ulonglong)unaff_s2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (parenthesized_expression "(uVar19 & 0xffffffff)" ( (binary_expression "uVar19 & 0xffffffff" identifier & number_literal) )))) ;) (return_statement "return CONCAT44((int)(uVar19 >> 0x20) * unaff_s2 + (int)((ulonglong)lVar2 >> 0x20),(int)lVar2)\n      ;" return (call_expression "CONCAT44((int)(uVar19 >> 0x20) * unaff_s2 + (int)((ulonglong)lVar2 >> 0x20),(int)lVar2)" identifier (argument_list "((int)(uVar19 >> 0x20) * unaff_s2 + (int)((ulonglong)lVar2 >> 0x20),(int)lVar2)" ( (binary_expression "(int)(uVar19 >> 0x20) * unaff_s2 + (int)((ulonglong)lVar2 >> 0x20)" (binary_expression "(int)(uVar19 >> 0x20) * unaff_s2" (cast_expression "(int)(uVar19 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar19 >> 0x20)" ( (binary_expression "uVar19 >> 0x20" identifier >> number_literal) ))) * identifier) + (cast_expression "(int)((ulonglong)lVar2 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar2 >> 0x20)" ( (binary_expression "(ulonglong)lVar2 >> 0x20" (cast_expression "(ulonglong)lVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) , (cast_expression "(int)lVar2" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) })) (expression_statement "puVar7 = (undefined4 *)&DAT_000000c0;" (assignment_expression "puVar7 = (undefined4 *)&DAT_000000c0" identifier = (cast_expression "(undefined4 *)&DAT_000000c0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_000000c0" & identifier))) ;) (expression_statement "unaff_s0 = this;" (assignment_expression "unaff_s0 = this" identifier = identifier) ;) })) (expression_statement "puVar6 = PTR_s_in_a_linker_script_004c191c + 0xdec;" (assignment_expression "puVar6 = PTR_s_in_a_linker_script_004c191c + 0xdec" identifier = (binary_expression "PTR_s_in_a_linker_script_004c191c + 0xdec" identifier + number_literal)) ;) (expression_statement "puVar16 = PTR_do_gold_unreachable_004c1a30;" (assignment_expression "puVar16 = PTR_do_gold_unreachable_004c1a30" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar6,puVar7,PTR_s_in_a_linker_script_004c191c + 0x2280);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar6,puVar7,PTR_s_in_a_linker_script_004c191c + 0x2280)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar6,puVar7,PTR_s_in_a_linker_script_004c191c + 0x2280)" ( identifier , identifier , (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x2280" identifier + number_literal) ))) ;) (expression_statement "pcVar17 = *(code **)(puVar16 + 0x21e8f0);" (assignment_expression "pcVar17 = *(code **)(puVar16 + 0x21e8f0)" identifier = (pointer_expression "*(code **)(puVar16 + 0x21e8f0)" * (cast_expression "(code **)(puVar16 + 0x21e8f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 0x21e8f0)" ( (binary_expression "puVar16 + 0x21e8f0" identifier + number_literal) ))))) ;) (expression_statement "puVar12 = *(undefined4 **)(puVar6 + 0x4c);" (assignment_expression "puVar12 = *(undefined4 **)(puVar6 + 0x4c)" identifier = (pointer_expression "*(undefined4 **)(puVar6 + 0x4c)" * (cast_expression "(undefined4 **)(puVar6 + 0x4c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + 0x4c)" ( (binary_expression "puVar6 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = *(int *)(puVar6 + 0x48);" (assignment_expression "iVar11 = *(int *)(puVar6 + 0x48)" identifier = (pointer_expression "*(int *)(puVar6 + 0x48)" * (cast_expression "(int *)(puVar6 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0x48)" ( (binary_expression "puVar6 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "puVar7[1] = 0;" (assignment_expression "puVar7[1] = 0" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)*puVar7 = 0;" (assignment_expression "*(undefined1 *)*puVar7 = 0" (pointer_expression "*(undefined1 *)*puVar7" * (cast_expression "(undefined1 *)*puVar7" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) = number_literal) ;) (expression_statement "puVar8 = puVar12;" (assignment_expression "puVar8 = puVar12" identifier = identifier) ;) (expression_statement "pTStack_58 = unaff_s0;" (assignment_expression "pTStack_58 = unaff_s0" identifier = identifier) ;) (expression_statement "sStack_54 = unaff_s1;" (assignment_expression "sStack_54 = unaff_s1" identifier = identifier) ;) (expression_statement "uStack_50 = unaff_s2;" (assignment_expression "uStack_50 = unaff_s2" identifier = identifier) ;) (expression_statement "uVar19 = (*pcVar17)(puVar7);" (assignment_expression "uVar19 = (*pcVar17)(puVar7)" identifier = (call_expression "(*pcVar17)(puVar7)" (parenthesized_expression "(*pcVar17)" ( (pointer_expression "*pcVar17" * identifier) )) (argument_list "(puVar7)" ( identifier )))) ;) (if_statement "if ((0 < iVar11) ||\n     ((iVar11 == 0 && (uVar19 = CONCAT44(puVar6 + 0x20,(int)uVar19), puVar12 != (undefined4 *)0x0)))\n     ) {\n    puStack_60 = puVar6 + 0x20;\n    iVar18 = 0;\n    iStack_5c = 0x7fffffff;\n    puVar13 = (undefined4 *)0x0;\n    do {\n      do {\n        puVar14 = (undefined4 *)((int)puVar12 - (int)puVar13);\n        iVar9 = (iVar11 - iVar18) - (uint)(puVar12 < puVar14);\n        if ((0 < iVar9) ||\n           ((pcVar17 = *(code **)(puVar16 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar14)))) {\n          iVar9 = 0;\n          puVar14 = (undefined4 *)0x2000;\n          pcVar17 = *(code **)(puVar16 + 0x21e4c4);\n        }\n        (*pcVar17)(puStack_60);\n        if ((undefined4 *)(iStack_5c - puVar7[1]) < puVar14) {\n          iVar11 = *(int *)(puVar16 + 0x21d714) + 0x446c;\n          (**(code **)(puVar16 + 0x21e30c))();\n          pcVar3 = (char *)*puVar8;\n          cVar5 = *pcVar3;\n          do {\n            if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar11 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar11 + 0x2c) = *(int *)(iVar11 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }\n            pcVar3 = pcVar3 + 1;\n          } while( true );\n        }\n        puVar15 = (undefined4 *)((int)puVar13 + (int)puVar14);\n        iVar18 = (uint)(puVar15 < puVar13) + iVar18 + iVar9;\n        puVar8 = auStack_2060;\n        (**(code **)(puVar16 + 0x21e300))(puVar7,auStack_2060,puVar14);\n        puVar13 = puVar15;\n      } while (iVar18 < iVar11);\n      bVar1 = puVar15 < puVar12;\n      uVar19 = (ulonglong)CONCAT14(bVar1,extraout_v1);\n    } while ((iVar11 == iVar18) && (uVar19 = (ulonglong)CONCAT14(bVar1,extraout_v1), bVar1));\n  }" if (parenthesized_expression "((0 < iVar11) ||\n     ((iVar11 == 0 && (uVar19 = CONCAT44(puVar6 + 0x20,(int)uVar19), puVar12 != (undefined4 *)0x0)))\n     )" ( (binary_expression "(0 < iVar11) ||\n     ((iVar11 == 0 && (uVar19 = CONCAT44(puVar6 + 0x20,(int)uVar19), puVar12 != (undefined4 *)0x0)))" (parenthesized_expression "(0 < iVar11)" ( (binary_expression "0 < iVar11" number_literal < identifier) )) || (parenthesized_expression "((iVar11 == 0 && (uVar19 = CONCAT44(puVar6 + 0x20,(int)uVar19), puVar12 != (undefined4 *)0x0)))" ( (parenthesized_expression "(iVar11 == 0 && (uVar19 = CONCAT44(puVar6 + 0x20,(int)uVar19), puVar12 != (undefined4 *)0x0))" ( (binary_expression "iVar11 == 0 && (uVar19 = CONCAT44(puVar6 + 0x20,(int)uVar19), puVar12 != (undefined4 *)0x0)" (binary_expression "iVar11 == 0" identifier == number_literal) && (parenthesized_expression "(uVar19 = CONCAT44(puVar6 + 0x20,(int)uVar19), puVar12 != (undefined4 *)0x0)" ( (comma_expression "uVar19 = CONCAT44(puVar6 + 0x20,(int)uVar19), puVar12 != (undefined4 *)0x0" (assignment_expression "uVar19 = CONCAT44(puVar6 + 0x20,(int)uVar19)" identifier = (call_expression "CONCAT44(puVar6 + 0x20,(int)uVar19)" identifier (argument_list "(puVar6 + 0x20,(int)uVar19)" ( (binary_expression "puVar6 + 0x20" identifier + number_literal) , (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier) )))) , (binary_expression "puVar12 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) ))) )) (compound_statement "{\n    puStack_60 = puVar6 + 0x20;\n    iVar18 = 0;\n    iStack_5c = 0x7fffffff;\n    puVar13 = (undefined4 *)0x0;\n    do {\n      do {\n        puVar14 = (undefined4 *)((int)puVar12 - (int)puVar13);\n        iVar9 = (iVar11 - iVar18) - (uint)(puVar12 < puVar14);\n        if ((0 < iVar9) ||\n           ((pcVar17 = *(code **)(puVar16 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar14)))) {\n          iVar9 = 0;\n          puVar14 = (undefined4 *)0x2000;\n          pcVar17 = *(code **)(puVar16 + 0x21e4c4);\n        }\n        (*pcVar17)(puStack_60);\n        if ((undefined4 *)(iStack_5c - puVar7[1]) < puVar14) {\n          iVar11 = *(int *)(puVar16 + 0x21d714) + 0x446c;\n          (**(code **)(puVar16 + 0x21e30c))();\n          pcVar3 = (char *)*puVar8;\n          cVar5 = *pcVar3;\n          do {\n            if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar11 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar11 + 0x2c) = *(int *)(iVar11 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }\n            pcVar3 = pcVar3 + 1;\n          } while( true );\n        }\n        puVar15 = (undefined4 *)((int)puVar13 + (int)puVar14);\n        iVar18 = (uint)(puVar15 < puVar13) + iVar18 + iVar9;\n        puVar8 = auStack_2060;\n        (**(code **)(puVar16 + 0x21e300))(puVar7,auStack_2060,puVar14);\n        puVar13 = puVar15;\n      } while (iVar18 < iVar11);\n      bVar1 = puVar15 < puVar12;\n      uVar19 = (ulonglong)CONCAT14(bVar1,extraout_v1);\n    } while ((iVar11 == iVar18) && (uVar19 = (ulonglong)CONCAT14(bVar1,extraout_v1), bVar1));\n  }" { (expression_statement "puStack_60 = puVar6 + 0x20;" (assignment_expression "puStack_60 = puVar6 + 0x20" identifier = (binary_expression "puVar6 + 0x20" identifier + number_literal)) ;) (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (expression_statement "iStack_5c = 0x7fffffff;" (assignment_expression "iStack_5c = 0x7fffffff" identifier = number_literal) ;) (expression_statement "puVar13 = (undefined4 *)0x0;" (assignment_expression "puVar13 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      do {\n        puVar14 = (undefined4 *)((int)puVar12 - (int)puVar13);\n        iVar9 = (iVar11 - iVar18) - (uint)(puVar12 < puVar14);\n        if ((0 < iVar9) ||\n           ((pcVar17 = *(code **)(puVar16 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar14)))) {\n          iVar9 = 0;\n          puVar14 = (undefined4 *)0x2000;\n          pcVar17 = *(code **)(puVar16 + 0x21e4c4);\n        }\n        (*pcVar17)(puStack_60);\n        if ((undefined4 *)(iStack_5c - puVar7[1]) < puVar14) {\n          iVar11 = *(int *)(puVar16 + 0x21d714) + 0x446c;\n          (**(code **)(puVar16 + 0x21e30c))();\n          pcVar3 = (char *)*puVar8;\n          cVar5 = *pcVar3;\n          do {\n            if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar11 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar11 + 0x2c) = *(int *)(iVar11 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }\n            pcVar3 = pcVar3 + 1;\n          } while( true );\n        }\n        puVar15 = (undefined4 *)((int)puVar13 + (int)puVar14);\n        iVar18 = (uint)(puVar15 < puVar13) + iVar18 + iVar9;\n        puVar8 = auStack_2060;\n        (**(code **)(puVar16 + 0x21e300))(puVar7,auStack_2060,puVar14);\n        puVar13 = puVar15;\n      } while (iVar18 < iVar11);\n      bVar1 = puVar15 < puVar12;\n      uVar19 = (ulonglong)CONCAT14(bVar1,extraout_v1);\n    } while ((iVar11 == iVar18) && (uVar19 = (ulonglong)CONCAT14(bVar1,extraout_v1), bVar1));" do (compound_statement "{\n      do {\n        puVar14 = (undefined4 *)((int)puVar12 - (int)puVar13);\n        iVar9 = (iVar11 - iVar18) - (uint)(puVar12 < puVar14);\n        if ((0 < iVar9) ||\n           ((pcVar17 = *(code **)(puVar16 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar14)))) {\n          iVar9 = 0;\n          puVar14 = (undefined4 *)0x2000;\n          pcVar17 = *(code **)(puVar16 + 0x21e4c4);\n        }\n        (*pcVar17)(puStack_60);\n        if ((undefined4 *)(iStack_5c - puVar7[1]) < puVar14) {\n          iVar11 = *(int *)(puVar16 + 0x21d714) + 0x446c;\n          (**(code **)(puVar16 + 0x21e30c))();\n          pcVar3 = (char *)*puVar8;\n          cVar5 = *pcVar3;\n          do {\n            if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar11 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar11 + 0x2c) = *(int *)(iVar11 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }\n            pcVar3 = pcVar3 + 1;\n          } while( true );\n        }\n        puVar15 = (undefined4 *)((int)puVar13 + (int)puVar14);\n        iVar18 = (uint)(puVar15 < puVar13) + iVar18 + iVar9;\n        puVar8 = auStack_2060;\n        (**(code **)(puVar16 + 0x21e300))(puVar7,auStack_2060,puVar14);\n        puVar13 = puVar15;\n      } while (iVar18 < iVar11);\n      bVar1 = puVar15 < puVar12;\n      uVar19 = (ulonglong)CONCAT14(bVar1,extraout_v1);\n    }" { (do_statement "do {\n        puVar14 = (undefined4 *)((int)puVar12 - (int)puVar13);\n        iVar9 = (iVar11 - iVar18) - (uint)(puVar12 < puVar14);\n        if ((0 < iVar9) ||\n           ((pcVar17 = *(code **)(puVar16 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar14)))) {\n          iVar9 = 0;\n          puVar14 = (undefined4 *)0x2000;\n          pcVar17 = *(code **)(puVar16 + 0x21e4c4);\n        }\n        (*pcVar17)(puStack_60);\n        if ((undefined4 *)(iStack_5c - puVar7[1]) < puVar14) {\n          iVar11 = *(int *)(puVar16 + 0x21d714) + 0x446c;\n          (**(code **)(puVar16 + 0x21e30c))();\n          pcVar3 = (char *)*puVar8;\n          cVar5 = *pcVar3;\n          do {\n            if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar11 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar11 + 0x2c) = *(int *)(iVar11 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }\n            pcVar3 = pcVar3 + 1;\n          } while( true );\n        }\n        puVar15 = (undefined4 *)((int)puVar13 + (int)puVar14);\n        iVar18 = (uint)(puVar15 < puVar13) + iVar18 + iVar9;\n        puVar8 = auStack_2060;\n        (**(code **)(puVar16 + 0x21e300))(puVar7,auStack_2060,puVar14);\n        puVar13 = puVar15;\n      } while (iVar18 < iVar11);" do (compound_statement "{\n        puVar14 = (undefined4 *)((int)puVar12 - (int)puVar13);\n        iVar9 = (iVar11 - iVar18) - (uint)(puVar12 < puVar14);\n        if ((0 < iVar9) ||\n           ((pcVar17 = *(code **)(puVar16 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar14)))) {\n          iVar9 = 0;\n          puVar14 = (undefined4 *)0x2000;\n          pcVar17 = *(code **)(puVar16 + 0x21e4c4);\n        }\n        (*pcVar17)(puStack_60);\n        if ((undefined4 *)(iStack_5c - puVar7[1]) < puVar14) {\n          iVar11 = *(int *)(puVar16 + 0x21d714) + 0x446c;\n          (**(code **)(puVar16 + 0x21e30c))();\n          pcVar3 = (char *)*puVar8;\n          cVar5 = *pcVar3;\n          do {\n            if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar11 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar11 + 0x2c) = *(int *)(iVar11 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }\n            pcVar3 = pcVar3 + 1;\n          } while( true );\n        }\n        puVar15 = (undefined4 *)((int)puVar13 + (int)puVar14);\n        iVar18 = (uint)(puVar15 < puVar13) + iVar18 + iVar9;\n        puVar8 = auStack_2060;\n        (**(code **)(puVar16 + 0x21e300))(puVar7,auStack_2060,puVar14);\n        puVar13 = puVar15;\n      }" { (expression_statement "puVar14 = (undefined4 *)((int)puVar12 - (int)puVar13);" (assignment_expression "puVar14 = (undefined4 *)((int)puVar12 - (int)puVar13)" identifier = (cast_expression "(undefined4 *)((int)puVar12 - (int)puVar13)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 - (int)puVar13)" ( (binary_expression "(int)puVar12 - (int)puVar13" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar9 = (iVar11 - iVar18) - (uint)(puVar12 < puVar14);" (assignment_expression "iVar9 = (iVar11 - iVar18) - (uint)(puVar12 < puVar14)" identifier = (binary_expression "(iVar11 - iVar18) - (uint)(puVar12 < puVar14)" (parenthesized_expression "(iVar11 - iVar18)" ( (binary_expression "iVar11 - iVar18" identifier - identifier) )) - (call_expression "(uint)(puVar12 < puVar14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar12 < puVar14)" ( (binary_expression "puVar12 < puVar14" identifier < identifier) ))))) ;) (if_statement "if ((0 < iVar9) ||\n           ((pcVar17 = *(code **)(puVar16 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar14)))) {\n          iVar9 = 0;\n          puVar14 = (undefined4 *)0x2000;\n          pcVar17 = *(code **)(puVar16 + 0x21e4c4);\n        }" if (parenthesized_expression "((0 < iVar9) ||\n           ((pcVar17 = *(code **)(puVar16 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar14))))" ( (binary_expression "(0 < iVar9) ||\n           ((pcVar17 = *(code **)(puVar16 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar14)))" (parenthesized_expression "(0 < iVar9)" ( (binary_expression "0 < iVar9" number_literal < identifier) )) || (parenthesized_expression "((pcVar17 = *(code **)(puVar16 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar14)))" ( (parenthesized_expression "(pcVar17 = *(code **)(puVar16 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar14))" ( (comma_expression "pcVar17 = *(code **)(puVar16 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar14)" (assignment_expression "pcVar17 = *(code **)(puVar16 + 0x21e4c4)" identifier = (pointer_expression "*(code **)(puVar16 + 0x21e4c4)" * (cast_expression "(code **)(puVar16 + 0x21e4c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 0x21e4c4)" ( (binary_expression "puVar16 + 0x21e4c4" identifier + number_literal) ))))) , (binary_expression "iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar14)" (binary_expression "iVar9 == 0" identifier == number_literal) && (parenthesized_expression "((undefined4 *)0x1fff < puVar14)" ( (binary_expression "(undefined4 *)0x1fff < puVar14" (cast_expression "(undefined4 *)0x1fff" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )))) )) ))) )) (compound_statement "{\n          iVar9 = 0;\n          puVar14 = (undefined4 *)0x2000;\n          pcVar17 = *(code **)(puVar16 + 0x21e4c4);\n        }" { (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "puVar14 = (undefined4 *)0x2000;" (assignment_expression "puVar14 = (undefined4 *)0x2000" identifier = (cast_expression "(undefined4 *)0x2000" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar17 = *(code **)(puVar16 + 0x21e4c4);" (assignment_expression "pcVar17 = *(code **)(puVar16 + 0x21e4c4)" identifier = (pointer_expression "*(code **)(puVar16 + 0x21e4c4)" * (cast_expression "(code **)(puVar16 + 0x21e4c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 0x21e4c4)" ( (binary_expression "puVar16 + 0x21e4c4" identifier + number_literal) ))))) ;) })) (expression_statement "(*pcVar17)(puStack_60);" (call_expression "(*pcVar17)(puStack_60)" (parenthesized_expression "(*pcVar17)" ( (pointer_expression "*pcVar17" * identifier) )) (argument_list "(puStack_60)" ( identifier ))) ;) (if_statement "if ((undefined4 *)(iStack_5c - puVar7[1]) < puVar14) {\n          iVar11 = *(int *)(puVar16 + 0x21d714) + 0x446c;\n          (**(code **)(puVar16 + 0x21e30c))();\n          pcVar3 = (char *)*puVar8;\n          cVar5 = *pcVar3;\n          do {\n            if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar11 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar11 + 0x2c) = *(int *)(iVar11 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }\n            pcVar3 = pcVar3 + 1;\n          } while( true );\n        }" if (parenthesized_expression "((undefined4 *)(iStack_5c - puVar7[1]) < puVar14)" ( (binary_expression "(undefined4 *)(iStack_5c - puVar7[1]) < puVar14" (cast_expression "(undefined4 *)(iStack_5c - puVar7[1])" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_5c - puVar7[1])" ( (binary_expression "iStack_5c - puVar7[1]" identifier - (subscript_expression "puVar7[1]" identifier [ number_literal ])) ))) < identifier) )) (compound_statement "{\n          iVar11 = *(int *)(puVar16 + 0x21d714) + 0x446c;\n          (**(code **)(puVar16 + 0x21e30c))();\n          pcVar3 = (char *)*puVar8;\n          cVar5 = *pcVar3;\n          do {\n            if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar11 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar11 + 0x2c) = *(int *)(iVar11 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }\n            pcVar3 = pcVar3 + 1;\n          } while( true );\n        }" { (expression_statement "iVar11 = *(int *)(puVar16 + 0x21d714) + 0x446c;" (assignment_expression "iVar11 = *(int *)(puVar16 + 0x21d714) + 0x446c" identifier = (binary_expression "*(int *)(puVar16 + 0x21d714) + 0x446c" (pointer_expression "*(int *)(puVar16 + 0x21d714)" * (cast_expression "(int *)(puVar16 + 0x21d714)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x21d714)" ( (binary_expression "puVar16 + 0x21d714" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(puVar16 + 0x21e30c))();" (call_expression "(**(code **)(puVar16 + 0x21e30c))()" (parenthesized_expression "(**(code **)(puVar16 + 0x21e30c))" ( (pointer_expression "**(code **)(puVar16 + 0x21e30c)" * (pointer_expression "*(code **)(puVar16 + 0x21e30c)" * (cast_expression "(code **)(puVar16 + 0x21e30c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 0x21e30c)" ( (binary_expression "puVar16 + 0x21e30c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar3 = (char *)*puVar8;" (assignment_expression "pcVar3 = (char *)*puVar8" identifier = (cast_expression "(char *)*puVar8" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar8" * identifier))) ;) (expression_statement "cVar5 = *pcVar3;" (assignment_expression "cVar5 = *pcVar3" identifier = (pointer_expression "*pcVar3" * identifier)) ;) (do_statement "do {\n            if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar11 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar11 + 0x2c) = *(int *)(iVar11 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }\n            pcVar3 = pcVar3 + 1;\n          } while( true );" do (compound_statement "{\n            if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar11 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar11 + 0x2c) = *(int *)(iVar11 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }\n            pcVar3 = pcVar3 + 1;\n          }" { (if_statement "if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar11 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar11 + 0x2c) = *(int *)(iVar11 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }" if (parenthesized_expression "(cVar5 == '*')" ( (binary_expression "cVar5 == '*'" identifier == (char_literal "'*'" ' character ')) )) (compound_statement "{\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }" { (expression_statement "cVar5 = pcVar3[1];" (assignment_expression "cVar5 = pcVar3[1]" identifier = (subscript_expression "pcVar3[1]" identifier [ number_literal ])) ;) (if_statement "if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }" if (parenthesized_expression "(cVar5 == '/')" ( (binary_expression "cVar5 == '/'" identifier == (char_literal "'/'" ' character ')) )) (compound_statement "{\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }" { (expression_statement "*puVar8 = pcVar3 + 2;" (assignment_expression "*puVar8 = pcVar3 + 2" (pointer_expression "*puVar8" * identifier) = (binary_expression "pcVar3 + 2" identifier + number_literal)) ;) (return_statement "return CONCAT44(1,pcVar3 + 2);" return (call_expression "CONCAT44(1,pcVar3 + 2)" identifier (argument_list "(1,pcVar3 + 2)" ( number_literal , (binary_expression "pcVar3 + 2" identifier + number_literal) ))) ;) })) }) (else_clause "else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar11 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar11 + 0x2c) = *(int *)(iVar11 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }" else (compound_statement "{\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar11 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar11 + 0x2c) = *(int *)(iVar11 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }" { (if_statement "if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }" if (parenthesized_expression "(cVar5 == '\0')" ( (binary_expression "cVar5 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }" { (expression_statement "*puVar8 = pcVar3;" (assignment_expression "*puVar8 = pcVar3" (pointer_expression "*puVar8" * identifier) = identifier) ;) (return_statement "return ZEXT48(pcVar3);" return (call_expression "ZEXT48(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier ))) ;) })) (if_statement "if (cVar5 == '\n') {\n                *(char **)(iVar11 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar11 + 0x2c) = *(int *)(iVar11 + 0x2c) + 1;\n              }" if (parenthesized_expression "(cVar5 == '\n')" ( (binary_expression "cVar5 == '\n'" identifier == (char_literal "'\n'" ' escape_sequence ')) )) (compound_statement "{\n                *(char **)(iVar11 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar11 + 0x2c) = *(int *)(iVar11 + 0x2c) + 1;\n              }" { (expression_statement "*(char **)(iVar11 + 0x30) = pcVar3 + 1;" (assignment_expression "*(char **)(iVar11 + 0x30) = pcVar3 + 1" (pointer_expression "*(char **)(iVar11 + 0x30)" * (cast_expression "(char **)(iVar11 + 0x30)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x30)" ( (binary_expression "iVar11 + 0x30" identifier + number_literal) )))) = (binary_expression "pcVar3 + 1" identifier + number_literal)) ;) (expression_statement "*(int *)(iVar11 + 0x2c) = *(int *)(iVar11 + 0x2c) + 1;" (assignment_expression "*(int *)(iVar11 + 0x2c) = *(int *)(iVar11 + 0x2c) + 1" (pointer_expression "*(int *)(iVar11 + 0x2c)" * (cast_expression "(int *)(iVar11 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x2c)" ( (binary_expression "iVar11 + 0x2c" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar11 + 0x2c) + 1" (pointer_expression "*(int *)(iVar11 + 0x2c)" * (cast_expression "(int *)(iVar11 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x2c)" ( (binary_expression "iVar11 + 0x2c" identifier + number_literal) )))) + number_literal)) ;) })) (expression_statement "cVar5 = pcVar3[1];" (assignment_expression "cVar5 = pcVar3[1]" identifier = (subscript_expression "pcVar3[1]" identifier [ number_literal ])) ;) }))) (expression_statement "pcVar3 = pcVar3 + 1;" (assignment_expression "pcVar3 = pcVar3 + 1" identifier = (binary_expression "pcVar3 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "puVar15 = (undefined4 *)((int)puVar13 + (int)puVar14);" (assignment_expression "puVar15 = (undefined4 *)((int)puVar13 + (int)puVar14)" identifier = (cast_expression "(undefined4 *)((int)puVar13 + (int)puVar14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar13 + (int)puVar14)" ( (binary_expression "(int)puVar13 + (int)puVar14" (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar18 = (uint)(puVar15 < puVar13) + iVar18 + iVar9;" (assignment_expression "iVar18 = (uint)(puVar15 < puVar13) + iVar18 + iVar9" identifier = (binary_expression "(uint)(puVar15 < puVar13) + iVar18 + iVar9" (binary_expression "(uint)(puVar15 < puVar13) + iVar18" (call_expression "(uint)(puVar15 < puVar13)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar15 < puVar13)" ( (binary_expression "puVar15 < puVar13" identifier < identifier) ))) + identifier) + identifier)) ;) (expression_statement "puVar8 = auStack_2060;" (assignment_expression "puVar8 = auStack_2060" identifier = identifier) ;) (expression_statement "(**(code **)(puVar16 + 0x21e300))(puVar7,auStack_2060,puVar14);" (call_expression "(**(code **)(puVar16 + 0x21e300))(puVar7,auStack_2060,puVar14)" (parenthesized_expression "(**(code **)(puVar16 + 0x21e300))" ( (pointer_expression "**(code **)(puVar16 + 0x21e300)" * (pointer_expression "*(code **)(puVar16 + 0x21e300)" * (cast_expression "(code **)(puVar16 + 0x21e300)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 0x21e300)" ( (binary_expression "puVar16 + 0x21e300" identifier + number_literal) ))))) )) (argument_list "(puVar7,auStack_2060,puVar14)" ( identifier , identifier , identifier ))) ;) (expression_statement "puVar13 = puVar15;" (assignment_expression "puVar13 = puVar15" identifier = identifier) ;) }) while (parenthesized_expression "(iVar18 < iVar11)" ( (binary_expression "iVar18 < iVar11" identifier < identifier) )) ;) (expression_statement "bVar1 = puVar15 < puVar12;" (assignment_expression "bVar1 = puVar15 < puVar12" identifier = (binary_expression "puVar15 < puVar12" identifier < identifier)) ;) (expression_statement "uVar19 = (ulonglong)CONCAT14(bVar1,extraout_v1);" (assignment_expression "uVar19 = (ulonglong)CONCAT14(bVar1,extraout_v1)" identifier = (cast_expression "(ulonglong)CONCAT14(bVar1,extraout_v1)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "CONCAT14(bVar1,extraout_v1)" identifier (argument_list "(bVar1,extraout_v1)" ( identifier , identifier ))))) ;) }) while (parenthesized_expression "((iVar11 == iVar18) && (uVar19 = (ulonglong)CONCAT14(bVar1,extraout_v1), bVar1))" ( (binary_expression "(iVar11 == iVar18) && (uVar19 = (ulonglong)CONCAT14(bVar1,extraout_v1), bVar1)" (parenthesized_expression "(iVar11 == iVar18)" ( (binary_expression "iVar11 == iVar18" identifier == identifier) )) && (parenthesized_expression "(uVar19 = (ulonglong)CONCAT14(bVar1,extraout_v1), bVar1)" ( (comma_expression "uVar19 = (ulonglong)CONCAT14(bVar1,extraout_v1), bVar1" (assignment_expression "uVar19 = (ulonglong)CONCAT14(bVar1,extraout_v1)" identifier = (cast_expression "(ulonglong)CONCAT14(bVar1,extraout_v1)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "CONCAT14(bVar1,extraout_v1)" identifier (argument_list "(bVar1,extraout_v1)" ( identifier , identifier ))))) , identifier) ))) )) ;) })) (return_statement "return uVar19;" return identifier ;) })))
(translation_unit "ulonglong __thiscall gold::Token::integer_value(Token *this)\n\n{\n  bool bVar1;\n  longlong lVar2;\n  byte bVar4;\n  char *pcVar3;\n  char cVar5;\n  undefined4 extraout_v1;\n  undefined *puVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  Token *unaff_s0;\n  int iVar9;\n  int unaff_s1;\n  int iVar10;\n  uint unaff_s2;\n  undefined4 *puVar11;\n  undefined4 *puVar12;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  undefined *puVar15;\n  code *pcVar16;\n  int iVar17;\n  ulonglong uVar18;\n  undefined4 auStack_2060 [2048];\n  undefined *puStack_60;\n  int iStack_5c;\n  Token *pTStack_58;\n  int iStack_54;\n  uint uStack_50;\n  int local_18 [2];\n  \n  puVar7 = (undefined4 *)&DAT_000000ad;\n  if (*(int *)this == 5) {\n    unaff_s1 = *(int *)(this + 8);\n    iVar10 = unaff_s1 + -1;\n    bVar4 = *(byte *)(*(int *)(this + 4) + iVar10) & 0xdf;\n    if (bVar4 == 0x4d) {\n      unaff_s2 = 0x100000;\n      unaff_s1 = iVar10;\n    }\n    else {\n      unaff_s2 = 1;\n      if (bVar4 == 0x4b) {\n        unaff_s2 = 0x400;\n        unaff_s1 = iVar10;\n      }\n    }\n    uVar18 = (*(code *)PTR_strtoull_004c5c14)(*(int *)(this + 4),local_18,0);\n    if (local_18[0] - *(int *)(this + 4) == unaff_s1) {\n      lVar2 = (ulonglong)unaff_s2 * (uVar18 & 0xffffffff);\n      return CONCAT44((int)(uVar18 >> 0x20) * unaff_s2 + (int)((ulonglong)lVar2 >> 0x20),(int)lVar2)\n      ;\n    }\n    puVar7 = (undefined4 *)&DAT_000000c0;\n    unaff_s0 = this;\n  }\n  puVar6 = PTR_s_in_a_linker_script_004c191c + 0xdec;\n  puVar15 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar6,puVar7,PTR_s_in_a_linker_script_004c191c + 0x2280);\n  pcVar16 = *(code **)(puVar15 + 0x21e8f0);\n  puVar11 = *(undefined4 **)(puVar6 + 0x4c);\n  iVar10 = *(int *)(puVar6 + 0x48);\n  puVar7[1] = 0;\n  *(undefined1 *)*puVar7 = 0;\n  puVar8 = puVar11;\n  pTStack_58 = unaff_s0;\n  iStack_54 = unaff_s1;\n  uStack_50 = unaff_s2;\n  uVar18 = (*pcVar16)(puVar7);\n  if ((0 < iVar10) ||\n     ((iVar10 == 0 && (uVar18 = CONCAT44(puVar6 + 0x20,(int)uVar18), puVar11 != (undefined4 *)0x0)))\n     ) {\n    puStack_60 = puVar6 + 0x20;\n    iVar17 = 0;\n    iStack_5c = 0x7fffffff;\n    puVar12 = (undefined4 *)0x0;\n    do {\n      do {\n        puVar13 = (undefined4 *)((int)puVar11 - (int)puVar12);\n        iVar9 = (iVar10 - iVar17) - (uint)(puVar11 < puVar13);\n        if ((0 < iVar9) ||\n           ((pcVar16 = *(code **)(puVar15 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar13)))) {\n          iVar9 = 0;\n          puVar13 = (undefined4 *)0x2000;\n          pcVar16 = *(code **)(puVar15 + 0x21e4c4);\n        }\n        (*pcVar16)(puStack_60);\n        if ((undefined4 *)(iStack_5c - puVar7[1]) < puVar13) {\n          iVar10 = *(int *)(puVar15 + 0x21d714) + 0x446c;\n          (**(code **)(puVar15 + 0x21e30c))();\n          pcVar3 = (char *)*puVar8;\n          cVar5 = *pcVar3;\n          do {\n            if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar10 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }\n            pcVar3 = pcVar3 + 1;\n          } while( true );\n        }\n        puVar14 = (undefined4 *)((int)puVar12 + (int)puVar13);\n        iVar17 = (uint)(puVar14 < puVar12) + iVar17 + iVar9;\n        puVar8 = auStack_2060;\n        (**(code **)(puVar15 + 0x21e300))(puVar7,auStack_2060,puVar13);\n        puVar12 = puVar14;\n      } while (iVar17 < iVar10);\n      bVar1 = puVar14 < puVar11;\n      uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1);\n    } while ((iVar10 == iVar17) && (uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1), bVar1));\n  }\n  return uVar18;\n}\n\n" (function_definition "ulonglong __thiscall gold::Token::integer_value(Token *this)\n\n{\n  bool bVar1;\n  longlong lVar2;\n  byte bVar4;\n  char *pcVar3;\n  char cVar5;\n  undefined4 extraout_v1;\n  undefined *puVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  Token *unaff_s0;\n  int iVar9;\n  int unaff_s1;\n  int iVar10;\n  uint unaff_s2;\n  undefined4 *puVar11;\n  undefined4 *puVar12;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  undefined *puVar15;\n  code *pcVar16;\n  int iVar17;\n  ulonglong uVar18;\n  undefined4 auStack_2060 [2048];\n  undefined *puStack_60;\n  int iStack_5c;\n  Token *pTStack_58;\n  int iStack_54;\n  uint uStack_50;\n  int local_18 [2];\n  \n  puVar7 = (undefined4 *)&DAT_000000ad;\n  if (*(int *)this == 5) {\n    unaff_s1 = *(int *)(this + 8);\n    iVar10 = unaff_s1 + -1;\n    bVar4 = *(byte *)(*(int *)(this + 4) + iVar10) & 0xdf;\n    if (bVar4 == 0x4d) {\n      unaff_s2 = 0x100000;\n      unaff_s1 = iVar10;\n    }\n    else {\n      unaff_s2 = 1;\n      if (bVar4 == 0x4b) {\n        unaff_s2 = 0x400;\n        unaff_s1 = iVar10;\n      }\n    }\n    uVar18 = (*(code *)PTR_strtoull_004c5c14)(*(int *)(this + 4),local_18,0);\n    if (local_18[0] - *(int *)(this + 4) == unaff_s1) {\n      lVar2 = (ulonglong)unaff_s2 * (uVar18 & 0xffffffff);\n      return CONCAT44((int)(uVar18 >> 0x20) * unaff_s2 + (int)((ulonglong)lVar2 >> 0x20),(int)lVar2)\n      ;\n    }\n    puVar7 = (undefined4 *)&DAT_000000c0;\n    unaff_s0 = this;\n  }\n  puVar6 = PTR_s_in_a_linker_script_004c191c + 0xdec;\n  puVar15 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar6,puVar7,PTR_s_in_a_linker_script_004c191c + 0x2280);\n  pcVar16 = *(code **)(puVar15 + 0x21e8f0);\n  puVar11 = *(undefined4 **)(puVar6 + 0x4c);\n  iVar10 = *(int *)(puVar6 + 0x48);\n  puVar7[1] = 0;\n  *(undefined1 *)*puVar7 = 0;\n  puVar8 = puVar11;\n  pTStack_58 = unaff_s0;\n  iStack_54 = unaff_s1;\n  uStack_50 = unaff_s2;\n  uVar18 = (*pcVar16)(puVar7);\n  if ((0 < iVar10) ||\n     ((iVar10 == 0 && (uVar18 = CONCAT44(puVar6 + 0x20,(int)uVar18), puVar11 != (undefined4 *)0x0)))\n     ) {\n    puStack_60 = puVar6 + 0x20;\n    iVar17 = 0;\n    iStack_5c = 0x7fffffff;\n    puVar12 = (undefined4 *)0x0;\n    do {\n      do {\n        puVar13 = (undefined4 *)((int)puVar11 - (int)puVar12);\n        iVar9 = (iVar10 - iVar17) - (uint)(puVar11 < puVar13);\n        if ((0 < iVar9) ||\n           ((pcVar16 = *(code **)(puVar15 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar13)))) {\n          iVar9 = 0;\n          puVar13 = (undefined4 *)0x2000;\n          pcVar16 = *(code **)(puVar15 + 0x21e4c4);\n        }\n        (*pcVar16)(puStack_60);\n        if ((undefined4 *)(iStack_5c - puVar7[1]) < puVar13) {\n          iVar10 = *(int *)(puVar15 + 0x21d714) + 0x446c;\n          (**(code **)(puVar15 + 0x21e30c))();\n          pcVar3 = (char *)*puVar8;\n          cVar5 = *pcVar3;\n          do {\n            if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar10 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }\n            pcVar3 = pcVar3 + 1;\n          } while( true );\n        }\n        puVar14 = (undefined4 *)((int)puVar12 + (int)puVar13);\n        iVar17 = (uint)(puVar14 < puVar12) + iVar17 + iVar9;\n        puVar8 = auStack_2060;\n        (**(code **)(puVar15 + 0x21e300))(puVar7,auStack_2060,puVar13);\n        puVar12 = puVar14;\n      } while (iVar17 < iVar10);\n      bVar1 = puVar14 < puVar11;\n      uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1);\n    } while ((iVar10 == iVar17) && (uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1), bVar1));\n  }\n  return uVar18;\n}" type_identifier (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Token::" identifier : : identifier : :) (function_declarator "integer_value(Token *this)" identifier (parameter_list "(Token *this)" ( (parameter_declaration "Token *this" type_identifier (pointer_declarator "*this" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  longlong lVar2;\n  byte bVar4;\n  char *pcVar3;\n  char cVar5;\n  undefined4 extraout_v1;\n  undefined *puVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  Token *unaff_s0;\n  int iVar9;\n  int unaff_s1;\n  int iVar10;\n  uint unaff_s2;\n  undefined4 *puVar11;\n  undefined4 *puVar12;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  undefined *puVar15;\n  code *pcVar16;\n  int iVar17;\n  ulonglong uVar18;\n  undefined4 auStack_2060 [2048];\n  undefined *puStack_60;\n  int iStack_5c;\n  Token *pTStack_58;\n  int iStack_54;\n  uint uStack_50;\n  int local_18 [2];\n  \n  puVar7 = (undefined4 *)&DAT_000000ad;\n  if (*(int *)this == 5) {\n    unaff_s1 = *(int *)(this + 8);\n    iVar10 = unaff_s1 + -1;\n    bVar4 = *(byte *)(*(int *)(this + 4) + iVar10) & 0xdf;\n    if (bVar4 == 0x4d) {\n      unaff_s2 = 0x100000;\n      unaff_s1 = iVar10;\n    }\n    else {\n      unaff_s2 = 1;\n      if (bVar4 == 0x4b) {\n        unaff_s2 = 0x400;\n        unaff_s1 = iVar10;\n      }\n    }\n    uVar18 = (*(code *)PTR_strtoull_004c5c14)(*(int *)(this + 4),local_18,0);\n    if (local_18[0] - *(int *)(this + 4) == unaff_s1) {\n      lVar2 = (ulonglong)unaff_s2 * (uVar18 & 0xffffffff);\n      return CONCAT44((int)(uVar18 >> 0x20) * unaff_s2 + (int)((ulonglong)lVar2 >> 0x20),(int)lVar2)\n      ;\n    }\n    puVar7 = (undefined4 *)&DAT_000000c0;\n    unaff_s0 = this;\n  }\n  puVar6 = PTR_s_in_a_linker_script_004c191c + 0xdec;\n  puVar15 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar6,puVar7,PTR_s_in_a_linker_script_004c191c + 0x2280);\n  pcVar16 = *(code **)(puVar15 + 0x21e8f0);\n  puVar11 = *(undefined4 **)(puVar6 + 0x4c);\n  iVar10 = *(int *)(puVar6 + 0x48);\n  puVar7[1] = 0;\n  *(undefined1 *)*puVar7 = 0;\n  puVar8 = puVar11;\n  pTStack_58 = unaff_s0;\n  iStack_54 = unaff_s1;\n  uStack_50 = unaff_s2;\n  uVar18 = (*pcVar16)(puVar7);\n  if ((0 < iVar10) ||\n     ((iVar10 == 0 && (uVar18 = CONCAT44(puVar6 + 0x20,(int)uVar18), puVar11 != (undefined4 *)0x0)))\n     ) {\n    puStack_60 = puVar6 + 0x20;\n    iVar17 = 0;\n    iStack_5c = 0x7fffffff;\n    puVar12 = (undefined4 *)0x0;\n    do {\n      do {\n        puVar13 = (undefined4 *)((int)puVar11 - (int)puVar12);\n        iVar9 = (iVar10 - iVar17) - (uint)(puVar11 < puVar13);\n        if ((0 < iVar9) ||\n           ((pcVar16 = *(code **)(puVar15 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar13)))) {\n          iVar9 = 0;\n          puVar13 = (undefined4 *)0x2000;\n          pcVar16 = *(code **)(puVar15 + 0x21e4c4);\n        }\n        (*pcVar16)(puStack_60);\n        if ((undefined4 *)(iStack_5c - puVar7[1]) < puVar13) {\n          iVar10 = *(int *)(puVar15 + 0x21d714) + 0x446c;\n          (**(code **)(puVar15 + 0x21e30c))();\n          pcVar3 = (char *)*puVar8;\n          cVar5 = *pcVar3;\n          do {\n            if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar10 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }\n            pcVar3 = pcVar3 + 1;\n          } while( true );\n        }\n        puVar14 = (undefined4 *)((int)puVar12 + (int)puVar13);\n        iVar17 = (uint)(puVar14 < puVar12) + iVar17 + iVar9;\n        puVar8 = auStack_2060;\n        (**(code **)(puVar15 + 0x21e300))(puVar7,auStack_2060,puVar13);\n        puVar12 = puVar14;\n      } while (iVar17 < iVar10);\n      bVar1 = puVar14 < puVar11;\n      uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1);\n    } while ((iVar10 == iVar17) && (uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1), bVar1));\n  }\n  return uVar18;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "longlong lVar2;" type_identifier identifier ;) (declaration "byte bVar4;" type_identifier identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "char cVar5;" primitive_type identifier ;) (declaration "undefined4 extraout_v1;" type_identifier identifier ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "Token *unaff_s0;" type_identifier (pointer_declarator "*unaff_s0" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int unaff_s1;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "uint unaff_s2;" type_identifier identifier ;) (declaration "undefined4 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined4 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "code *pcVar16;" type_identifier (pointer_declarator "*pcVar16" * identifier) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "ulonglong uVar18;" type_identifier identifier ;) (declaration "undefined4 auStack_2060 [2048];" type_identifier (array_declarator "auStack_2060 [2048]" identifier [ number_literal ]) ;) (declaration "undefined *puStack_60;" type_identifier (pointer_declarator "*puStack_60" * identifier) ;) (declaration "int iStack_5c;" primitive_type identifier ;) (declaration "Token *pTStack_58;" type_identifier (pointer_declarator "*pTStack_58" * identifier) ;) (declaration "int iStack_54;" primitive_type identifier ;) (declaration "uint uStack_50;" type_identifier identifier ;) (declaration "int local_18 [2];" primitive_type (array_declarator "local_18 [2]" identifier [ number_literal ]) ;) (expression_statement "puVar7 = (undefined4 *)&DAT_000000ad;" (assignment_expression "puVar7 = (undefined4 *)&DAT_000000ad" identifier = (cast_expression "(undefined4 *)&DAT_000000ad" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_000000ad" & identifier))) ;) (if_statement "if (*(int *)this == 5) {\n    unaff_s1 = *(int *)(this + 8);\n    iVar10 = unaff_s1 + -1;\n    bVar4 = *(byte *)(*(int *)(this + 4) + iVar10) & 0xdf;\n    if (bVar4 == 0x4d) {\n      unaff_s2 = 0x100000;\n      unaff_s1 = iVar10;\n    }\n    else {\n      unaff_s2 = 1;\n      if (bVar4 == 0x4b) {\n        unaff_s2 = 0x400;\n        unaff_s1 = iVar10;\n      }\n    }\n    uVar18 = (*(code *)PTR_strtoull_004c5c14)(*(int *)(this + 4),local_18,0);\n    if (local_18[0] - *(int *)(this + 4) == unaff_s1) {\n      lVar2 = (ulonglong)unaff_s2 * (uVar18 & 0xffffffff);\n      return CONCAT44((int)(uVar18 >> 0x20) * unaff_s2 + (int)((ulonglong)lVar2 >> 0x20),(int)lVar2)\n      ;\n    }\n    puVar7 = (undefined4 *)&DAT_000000c0;\n    unaff_s0 = this;\n  }" if (parenthesized_expression "(*(int *)this == 5)" ( (binary_expression "*(int *)this == 5" (pointer_expression "*(int *)this" * (cast_expression "(int *)this" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n    unaff_s1 = *(int *)(this + 8);\n    iVar10 = unaff_s1 + -1;\n    bVar4 = *(byte *)(*(int *)(this + 4) + iVar10) & 0xdf;\n    if (bVar4 == 0x4d) {\n      unaff_s2 = 0x100000;\n      unaff_s1 = iVar10;\n    }\n    else {\n      unaff_s2 = 1;\n      if (bVar4 == 0x4b) {\n        unaff_s2 = 0x400;\n        unaff_s1 = iVar10;\n      }\n    }\n    uVar18 = (*(code *)PTR_strtoull_004c5c14)(*(int *)(this + 4),local_18,0);\n    if (local_18[0] - *(int *)(this + 4) == unaff_s1) {\n      lVar2 = (ulonglong)unaff_s2 * (uVar18 & 0xffffffff);\n      return CONCAT44((int)(uVar18 >> 0x20) * unaff_s2 + (int)((ulonglong)lVar2 >> 0x20),(int)lVar2)\n      ;\n    }\n    puVar7 = (undefined4 *)&DAT_000000c0;\n    unaff_s0 = this;\n  }" { (expression_statement "unaff_s1 = *(int *)(this + 8);" (assignment_expression "unaff_s1 = *(int *)(this + 8)" identifier = (pointer_expression "*(int *)(this + 8)" * (cast_expression "(int *)(this + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = unaff_s1 + -1;" (assignment_expression "iVar10 = unaff_s1 + -1" identifier = (binary_expression "unaff_s1 + -1" identifier + number_literal)) ;) (expression_statement "bVar4 = *(byte *)(*(int *)(this + 4) + iVar10) & 0xdf;" (assignment_expression "bVar4 = *(byte *)(*(int *)(this + 4) + iVar10) & 0xdf" identifier = (binary_expression "*(byte *)(*(int *)(this + 4) + iVar10) & 0xdf" (pointer_expression "*(byte *)(*(int *)(this + 4) + iVar10)" * (cast_expression "(byte *)(*(int *)(this + 4) + iVar10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(this + 4) + iVar10)" ( (binary_expression "*(int *)(this + 4) + iVar10" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) + identifier) )))) & number_literal)) ;) (if_statement "if (bVar4 == 0x4d) {\n      unaff_s2 = 0x100000;\n      unaff_s1 = iVar10;\n    }\n    else {\n      unaff_s2 = 1;\n      if (bVar4 == 0x4b) {\n        unaff_s2 = 0x400;\n        unaff_s1 = iVar10;\n      }\n    }" if (parenthesized_expression "(bVar4 == 0x4d)" ( (binary_expression "bVar4 == 0x4d" identifier == number_literal) )) (compound_statement "{\n      unaff_s2 = 0x100000;\n      unaff_s1 = iVar10;\n    }" { (expression_statement "unaff_s2 = 0x100000;" (assignment_expression "unaff_s2 = 0x100000" identifier = number_literal) ;) (expression_statement "unaff_s1 = iVar10;" (assignment_expression "unaff_s1 = iVar10" identifier = identifier) ;) }) (else_clause "else {\n      unaff_s2 = 1;\n      if (bVar4 == 0x4b) {\n        unaff_s2 = 0x400;\n        unaff_s1 = iVar10;\n      }\n    }" else (compound_statement "{\n      unaff_s2 = 1;\n      if (bVar4 == 0x4b) {\n        unaff_s2 = 0x400;\n        unaff_s1 = iVar10;\n      }\n    }" { (expression_statement "unaff_s2 = 1;" (assignment_expression "unaff_s2 = 1" identifier = number_literal) ;) (if_statement "if (bVar4 == 0x4b) {\n        unaff_s2 = 0x400;\n        unaff_s1 = iVar10;\n      }" if (parenthesized_expression "(bVar4 == 0x4b)" ( (binary_expression "bVar4 == 0x4b" identifier == number_literal) )) (compound_statement "{\n        unaff_s2 = 0x400;\n        unaff_s1 = iVar10;\n      }" { (expression_statement "unaff_s2 = 0x400;" (assignment_expression "unaff_s2 = 0x400" identifier = number_literal) ;) (expression_statement "unaff_s1 = iVar10;" (assignment_expression "unaff_s1 = iVar10" identifier = identifier) ;) })) }))) (expression_statement "uVar18 = (*(code *)PTR_strtoull_004c5c14)(*(int *)(this + 4),local_18,0);" (assignment_expression "uVar18 = (*(code *)PTR_strtoull_004c5c14)(*(int *)(this + 4),local_18,0)" identifier = (call_expression "(*(code *)PTR_strtoull_004c5c14)(*(int *)(this + 4),local_18,0)" (parenthesized_expression "(*(code *)PTR_strtoull_004c5c14)" ( (pointer_expression "*(code *)PTR_strtoull_004c5c14" * (cast_expression "(code *)PTR_strtoull_004c5c14" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(int *)(this + 4),local_18,0)" ( (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) , identifier , number_literal )))) ;) (if_statement "if (local_18[0] - *(int *)(this + 4) == unaff_s1) {\n      lVar2 = (ulonglong)unaff_s2 * (uVar18 & 0xffffffff);\n      return CONCAT44((int)(uVar18 >> 0x20) * unaff_s2 + (int)((ulonglong)lVar2 >> 0x20),(int)lVar2)\n      ;\n    }" if (parenthesized_expression "(local_18[0] - *(int *)(this + 4) == unaff_s1)" ( (binary_expression "local_18[0] - *(int *)(this + 4) == unaff_s1" (binary_expression "local_18[0] - *(int *)(this + 4)" (subscript_expression "local_18[0]" identifier [ number_literal ]) - (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) ))))) == identifier) )) (compound_statement "{\n      lVar2 = (ulonglong)unaff_s2 * (uVar18 & 0xffffffff);\n      return CONCAT44((int)(uVar18 >> 0x20) * unaff_s2 + (int)((ulonglong)lVar2 >> 0x20),(int)lVar2)\n      ;\n    }" { (expression_statement "lVar2 = (ulonglong)unaff_s2 * (uVar18 & 0xffffffff);" (assignment_expression "lVar2 = (ulonglong)unaff_s2 * (uVar18 & 0xffffffff)" identifier = (binary_expression "(ulonglong)unaff_s2 * (uVar18 & 0xffffffff)" (cast_expression "(ulonglong)unaff_s2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (parenthesized_expression "(uVar18 & 0xffffffff)" ( (binary_expression "uVar18 & 0xffffffff" identifier & number_literal) )))) ;) (return_statement "return CONCAT44((int)(uVar18 >> 0x20) * unaff_s2 + (int)((ulonglong)lVar2 >> 0x20),(int)lVar2)\n      ;" return (call_expression "CONCAT44((int)(uVar18 >> 0x20) * unaff_s2 + (int)((ulonglong)lVar2 >> 0x20),(int)lVar2)" identifier (argument_list "((int)(uVar18 >> 0x20) * unaff_s2 + (int)((ulonglong)lVar2 >> 0x20),(int)lVar2)" ( (binary_expression "(int)(uVar18 >> 0x20) * unaff_s2 + (int)((ulonglong)lVar2 >> 0x20)" (binary_expression "(int)(uVar18 >> 0x20) * unaff_s2" (cast_expression "(int)(uVar18 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar18 >> 0x20)" ( (binary_expression "uVar18 >> 0x20" identifier >> number_literal) ))) * identifier) + (cast_expression "(int)((ulonglong)lVar2 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar2 >> 0x20)" ( (binary_expression "(ulonglong)lVar2 >> 0x20" (cast_expression "(ulonglong)lVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) , (cast_expression "(int)lVar2" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) })) (expression_statement "puVar7 = (undefined4 *)&DAT_000000c0;" (assignment_expression "puVar7 = (undefined4 *)&DAT_000000c0" identifier = (cast_expression "(undefined4 *)&DAT_000000c0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_000000c0" & identifier))) ;) (expression_statement "unaff_s0 = this;" (assignment_expression "unaff_s0 = this" identifier = identifier) ;) })) (expression_statement "puVar6 = PTR_s_in_a_linker_script_004c191c + 0xdec;" (assignment_expression "puVar6 = PTR_s_in_a_linker_script_004c191c + 0xdec" identifier = (binary_expression "PTR_s_in_a_linker_script_004c191c + 0xdec" identifier + number_literal)) ;) (expression_statement "puVar15 = PTR_do_gold_unreachable_004c1a30;" (assignment_expression "puVar15 = PTR_do_gold_unreachable_004c1a30" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar6,puVar7,PTR_s_in_a_linker_script_004c191c + 0x2280);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar6,puVar7,PTR_s_in_a_linker_script_004c191c + 0x2280)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar6,puVar7,PTR_s_in_a_linker_script_004c191c + 0x2280)" ( identifier , identifier , (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x2280" identifier + number_literal) ))) ;) (expression_statement "pcVar16 = *(code **)(puVar15 + 0x21e8f0);" (assignment_expression "pcVar16 = *(code **)(puVar15 + 0x21e8f0)" identifier = (pointer_expression "*(code **)(puVar15 + 0x21e8f0)" * (cast_expression "(code **)(puVar15 + 0x21e8f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x21e8f0)" ( (binary_expression "puVar15 + 0x21e8f0" identifier + number_literal) ))))) ;) (expression_statement "puVar11 = *(undefined4 **)(puVar6 + 0x4c);" (assignment_expression "puVar11 = *(undefined4 **)(puVar6 + 0x4c)" identifier = (pointer_expression "*(undefined4 **)(puVar6 + 0x4c)" * (cast_expression "(undefined4 **)(puVar6 + 0x4c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + 0x4c)" ( (binary_expression "puVar6 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = *(int *)(puVar6 + 0x48);" (assignment_expression "iVar10 = *(int *)(puVar6 + 0x48)" identifier = (pointer_expression "*(int *)(puVar6 + 0x48)" * (cast_expression "(int *)(puVar6 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0x48)" ( (binary_expression "puVar6 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "puVar7[1] = 0;" (assignment_expression "puVar7[1] = 0" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)*puVar7 = 0;" (assignment_expression "*(undefined1 *)*puVar7 = 0" (pointer_expression "*(undefined1 *)*puVar7" * (cast_expression "(undefined1 *)*puVar7" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) = number_literal) ;) (expression_statement "puVar8 = puVar11;" (assignment_expression "puVar8 = puVar11" identifier = identifier) ;) (expression_statement "pTStack_58 = unaff_s0;" (assignment_expression "pTStack_58 = unaff_s0" identifier = identifier) ;) (expression_statement "iStack_54 = unaff_s1;" (assignment_expression "iStack_54 = unaff_s1" identifier = identifier) ;) (expression_statement "uStack_50 = unaff_s2;" (assignment_expression "uStack_50 = unaff_s2" identifier = identifier) ;) (expression_statement "uVar18 = (*pcVar16)(puVar7);" (assignment_expression "uVar18 = (*pcVar16)(puVar7)" identifier = (call_expression "(*pcVar16)(puVar7)" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "(puVar7)" ( identifier )))) ;) (if_statement "if ((0 < iVar10) ||\n     ((iVar10 == 0 && (uVar18 = CONCAT44(puVar6 + 0x20,(int)uVar18), puVar11 != (undefined4 *)0x0)))\n     ) {\n    puStack_60 = puVar6 + 0x20;\n    iVar17 = 0;\n    iStack_5c = 0x7fffffff;\n    puVar12 = (undefined4 *)0x0;\n    do {\n      do {\n        puVar13 = (undefined4 *)((int)puVar11 - (int)puVar12);\n        iVar9 = (iVar10 - iVar17) - (uint)(puVar11 < puVar13);\n        if ((0 < iVar9) ||\n           ((pcVar16 = *(code **)(puVar15 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar13)))) {\n          iVar9 = 0;\n          puVar13 = (undefined4 *)0x2000;\n          pcVar16 = *(code **)(puVar15 + 0x21e4c4);\n        }\n        (*pcVar16)(puStack_60);\n        if ((undefined4 *)(iStack_5c - puVar7[1]) < puVar13) {\n          iVar10 = *(int *)(puVar15 + 0x21d714) + 0x446c;\n          (**(code **)(puVar15 + 0x21e30c))();\n          pcVar3 = (char *)*puVar8;\n          cVar5 = *pcVar3;\n          do {\n            if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar10 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }\n            pcVar3 = pcVar3 + 1;\n          } while( true );\n        }\n        puVar14 = (undefined4 *)((int)puVar12 + (int)puVar13);\n        iVar17 = (uint)(puVar14 < puVar12) + iVar17 + iVar9;\n        puVar8 = auStack_2060;\n        (**(code **)(puVar15 + 0x21e300))(puVar7,auStack_2060,puVar13);\n        puVar12 = puVar14;\n      } while (iVar17 < iVar10);\n      bVar1 = puVar14 < puVar11;\n      uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1);\n    } while ((iVar10 == iVar17) && (uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1), bVar1));\n  }" if (parenthesized_expression "((0 < iVar10) ||\n     ((iVar10 == 0 && (uVar18 = CONCAT44(puVar6 + 0x20,(int)uVar18), puVar11 != (undefined4 *)0x0)))\n     )" ( (binary_expression "(0 < iVar10) ||\n     ((iVar10 == 0 && (uVar18 = CONCAT44(puVar6 + 0x20,(int)uVar18), puVar11 != (undefined4 *)0x0)))" (parenthesized_expression "(0 < iVar10)" ( (binary_expression "0 < iVar10" number_literal < identifier) )) || (parenthesized_expression "((iVar10 == 0 && (uVar18 = CONCAT44(puVar6 + 0x20,(int)uVar18), puVar11 != (undefined4 *)0x0)))" ( (parenthesized_expression "(iVar10 == 0 && (uVar18 = CONCAT44(puVar6 + 0x20,(int)uVar18), puVar11 != (undefined4 *)0x0))" ( (binary_expression "iVar10 == 0 && (uVar18 = CONCAT44(puVar6 + 0x20,(int)uVar18), puVar11 != (undefined4 *)0x0)" (binary_expression "iVar10 == 0" identifier == number_literal) && (parenthesized_expression "(uVar18 = CONCAT44(puVar6 + 0x20,(int)uVar18), puVar11 != (undefined4 *)0x0)" ( (comma_expression "uVar18 = CONCAT44(puVar6 + 0x20,(int)uVar18), puVar11 != (undefined4 *)0x0" (assignment_expression "uVar18 = CONCAT44(puVar6 + 0x20,(int)uVar18)" identifier = (call_expression "CONCAT44(puVar6 + 0x20,(int)uVar18)" identifier (argument_list "(puVar6 + 0x20,(int)uVar18)" ( (binary_expression "puVar6 + 0x20" identifier + number_literal) , (cast_expression "(int)uVar18" ( (type_descriptor "int" primitive_type) ) identifier) )))) , (binary_expression "puVar11 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) ))) )) (compound_statement "{\n    puStack_60 = puVar6 + 0x20;\n    iVar17 = 0;\n    iStack_5c = 0x7fffffff;\n    puVar12 = (undefined4 *)0x0;\n    do {\n      do {\n        puVar13 = (undefined4 *)((int)puVar11 - (int)puVar12);\n        iVar9 = (iVar10 - iVar17) - (uint)(puVar11 < puVar13);\n        if ((0 < iVar9) ||\n           ((pcVar16 = *(code **)(puVar15 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar13)))) {\n          iVar9 = 0;\n          puVar13 = (undefined4 *)0x2000;\n          pcVar16 = *(code **)(puVar15 + 0x21e4c4);\n        }\n        (*pcVar16)(puStack_60);\n        if ((undefined4 *)(iStack_5c - puVar7[1]) < puVar13) {\n          iVar10 = *(int *)(puVar15 + 0x21d714) + 0x446c;\n          (**(code **)(puVar15 + 0x21e30c))();\n          pcVar3 = (char *)*puVar8;\n          cVar5 = *pcVar3;\n          do {\n            if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar10 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }\n            pcVar3 = pcVar3 + 1;\n          } while( true );\n        }\n        puVar14 = (undefined4 *)((int)puVar12 + (int)puVar13);\n        iVar17 = (uint)(puVar14 < puVar12) + iVar17 + iVar9;\n        puVar8 = auStack_2060;\n        (**(code **)(puVar15 + 0x21e300))(puVar7,auStack_2060,puVar13);\n        puVar12 = puVar14;\n      } while (iVar17 < iVar10);\n      bVar1 = puVar14 < puVar11;\n      uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1);\n    } while ((iVar10 == iVar17) && (uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1), bVar1));\n  }" { (expression_statement "puStack_60 = puVar6 + 0x20;" (assignment_expression "puStack_60 = puVar6 + 0x20" identifier = (binary_expression "puVar6 + 0x20" identifier + number_literal)) ;) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (expression_statement "iStack_5c = 0x7fffffff;" (assignment_expression "iStack_5c = 0x7fffffff" identifier = number_literal) ;) (expression_statement "puVar12 = (undefined4 *)0x0;" (assignment_expression "puVar12 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      do {\n        puVar13 = (undefined4 *)((int)puVar11 - (int)puVar12);\n        iVar9 = (iVar10 - iVar17) - (uint)(puVar11 < puVar13);\n        if ((0 < iVar9) ||\n           ((pcVar16 = *(code **)(puVar15 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar13)))) {\n          iVar9 = 0;\n          puVar13 = (undefined4 *)0x2000;\n          pcVar16 = *(code **)(puVar15 + 0x21e4c4);\n        }\n        (*pcVar16)(puStack_60);\n        if ((undefined4 *)(iStack_5c - puVar7[1]) < puVar13) {\n          iVar10 = *(int *)(puVar15 + 0x21d714) + 0x446c;\n          (**(code **)(puVar15 + 0x21e30c))();\n          pcVar3 = (char *)*puVar8;\n          cVar5 = *pcVar3;\n          do {\n            if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar10 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }\n            pcVar3 = pcVar3 + 1;\n          } while( true );\n        }\n        puVar14 = (undefined4 *)((int)puVar12 + (int)puVar13);\n        iVar17 = (uint)(puVar14 < puVar12) + iVar17 + iVar9;\n        puVar8 = auStack_2060;\n        (**(code **)(puVar15 + 0x21e300))(puVar7,auStack_2060,puVar13);\n        puVar12 = puVar14;\n      } while (iVar17 < iVar10);\n      bVar1 = puVar14 < puVar11;\n      uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1);\n    } while ((iVar10 == iVar17) && (uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1), bVar1));" do (compound_statement "{\n      do {\n        puVar13 = (undefined4 *)((int)puVar11 - (int)puVar12);\n        iVar9 = (iVar10 - iVar17) - (uint)(puVar11 < puVar13);\n        if ((0 < iVar9) ||\n           ((pcVar16 = *(code **)(puVar15 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar13)))) {\n          iVar9 = 0;\n          puVar13 = (undefined4 *)0x2000;\n          pcVar16 = *(code **)(puVar15 + 0x21e4c4);\n        }\n        (*pcVar16)(puStack_60);\n        if ((undefined4 *)(iStack_5c - puVar7[1]) < puVar13) {\n          iVar10 = *(int *)(puVar15 + 0x21d714) + 0x446c;\n          (**(code **)(puVar15 + 0x21e30c))();\n          pcVar3 = (char *)*puVar8;\n          cVar5 = *pcVar3;\n          do {\n            if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar10 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }\n            pcVar3 = pcVar3 + 1;\n          } while( true );\n        }\n        puVar14 = (undefined4 *)((int)puVar12 + (int)puVar13);\n        iVar17 = (uint)(puVar14 < puVar12) + iVar17 + iVar9;\n        puVar8 = auStack_2060;\n        (**(code **)(puVar15 + 0x21e300))(puVar7,auStack_2060,puVar13);\n        puVar12 = puVar14;\n      } while (iVar17 < iVar10);\n      bVar1 = puVar14 < puVar11;\n      uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1);\n    }" { (do_statement "do {\n        puVar13 = (undefined4 *)((int)puVar11 - (int)puVar12);\n        iVar9 = (iVar10 - iVar17) - (uint)(puVar11 < puVar13);\n        if ((0 < iVar9) ||\n           ((pcVar16 = *(code **)(puVar15 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar13)))) {\n          iVar9 = 0;\n          puVar13 = (undefined4 *)0x2000;\n          pcVar16 = *(code **)(puVar15 + 0x21e4c4);\n        }\n        (*pcVar16)(puStack_60);\n        if ((undefined4 *)(iStack_5c - puVar7[1]) < puVar13) {\n          iVar10 = *(int *)(puVar15 + 0x21d714) + 0x446c;\n          (**(code **)(puVar15 + 0x21e30c))();\n          pcVar3 = (char *)*puVar8;\n          cVar5 = *pcVar3;\n          do {\n            if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar10 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }\n            pcVar3 = pcVar3 + 1;\n          } while( true );\n        }\n        puVar14 = (undefined4 *)((int)puVar12 + (int)puVar13);\n        iVar17 = (uint)(puVar14 < puVar12) + iVar17 + iVar9;\n        puVar8 = auStack_2060;\n        (**(code **)(puVar15 + 0x21e300))(puVar7,auStack_2060,puVar13);\n        puVar12 = puVar14;\n      } while (iVar17 < iVar10);" do (compound_statement "{\n        puVar13 = (undefined4 *)((int)puVar11 - (int)puVar12);\n        iVar9 = (iVar10 - iVar17) - (uint)(puVar11 < puVar13);\n        if ((0 < iVar9) ||\n           ((pcVar16 = *(code **)(puVar15 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar13)))) {\n          iVar9 = 0;\n          puVar13 = (undefined4 *)0x2000;\n          pcVar16 = *(code **)(puVar15 + 0x21e4c4);\n        }\n        (*pcVar16)(puStack_60);\n        if ((undefined4 *)(iStack_5c - puVar7[1]) < puVar13) {\n          iVar10 = *(int *)(puVar15 + 0x21d714) + 0x446c;\n          (**(code **)(puVar15 + 0x21e30c))();\n          pcVar3 = (char *)*puVar8;\n          cVar5 = *pcVar3;\n          do {\n            if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar10 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }\n            pcVar3 = pcVar3 + 1;\n          } while( true );\n        }\n        puVar14 = (undefined4 *)((int)puVar12 + (int)puVar13);\n        iVar17 = (uint)(puVar14 < puVar12) + iVar17 + iVar9;\n        puVar8 = auStack_2060;\n        (**(code **)(puVar15 + 0x21e300))(puVar7,auStack_2060,puVar13);\n        puVar12 = puVar14;\n      }" { (expression_statement "puVar13 = (undefined4 *)((int)puVar11 - (int)puVar12);" (assignment_expression "puVar13 = (undefined4 *)((int)puVar11 - (int)puVar12)" identifier = (cast_expression "(undefined4 *)((int)puVar11 - (int)puVar12)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 - (int)puVar12)" ( (binary_expression "(int)puVar11 - (int)puVar12" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar9 = (iVar10 - iVar17) - (uint)(puVar11 < puVar13);" (assignment_expression "iVar9 = (iVar10 - iVar17) - (uint)(puVar11 < puVar13)" identifier = (binary_expression "(iVar10 - iVar17) - (uint)(puVar11 < puVar13)" (parenthesized_expression "(iVar10 - iVar17)" ( (binary_expression "iVar10 - iVar17" identifier - identifier) )) - (call_expression "(uint)(puVar11 < puVar13)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar11 < puVar13)" ( (binary_expression "puVar11 < puVar13" identifier < identifier) ))))) ;) (if_statement "if ((0 < iVar9) ||\n           ((pcVar16 = *(code **)(puVar15 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar13)))) {\n          iVar9 = 0;\n          puVar13 = (undefined4 *)0x2000;\n          pcVar16 = *(code **)(puVar15 + 0x21e4c4);\n        }" if (parenthesized_expression "((0 < iVar9) ||\n           ((pcVar16 = *(code **)(puVar15 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar13))))" ( (binary_expression "(0 < iVar9) ||\n           ((pcVar16 = *(code **)(puVar15 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar13)))" (parenthesized_expression "(0 < iVar9)" ( (binary_expression "0 < iVar9" number_literal < identifier) )) || (parenthesized_expression "((pcVar16 = *(code **)(puVar15 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar13)))" ( (parenthesized_expression "(pcVar16 = *(code **)(puVar15 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar13))" ( (comma_expression "pcVar16 = *(code **)(puVar15 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar13)" (assignment_expression "pcVar16 = *(code **)(puVar15 + 0x21e4c4)" identifier = (pointer_expression "*(code **)(puVar15 + 0x21e4c4)" * (cast_expression "(code **)(puVar15 + 0x21e4c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x21e4c4)" ( (binary_expression "puVar15 + 0x21e4c4" identifier + number_literal) ))))) , (binary_expression "iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar13)" (binary_expression "iVar9 == 0" identifier == number_literal) && (parenthesized_expression "((undefined4 *)0x1fff < puVar13)" ( (binary_expression "(undefined4 *)0x1fff < puVar13" (cast_expression "(undefined4 *)0x1fff" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )))) )) ))) )) (compound_statement "{\n          iVar9 = 0;\n          puVar13 = (undefined4 *)0x2000;\n          pcVar16 = *(code **)(puVar15 + 0x21e4c4);\n        }" { (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "puVar13 = (undefined4 *)0x2000;" (assignment_expression "puVar13 = (undefined4 *)0x2000" identifier = (cast_expression "(undefined4 *)0x2000" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar16 = *(code **)(puVar15 + 0x21e4c4);" (assignment_expression "pcVar16 = *(code **)(puVar15 + 0x21e4c4)" identifier = (pointer_expression "*(code **)(puVar15 + 0x21e4c4)" * (cast_expression "(code **)(puVar15 + 0x21e4c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x21e4c4)" ( (binary_expression "puVar15 + 0x21e4c4" identifier + number_literal) ))))) ;) })) (expression_statement "(*pcVar16)(puStack_60);" (call_expression "(*pcVar16)(puStack_60)" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "(puStack_60)" ( identifier ))) ;) (if_statement "if ((undefined4 *)(iStack_5c - puVar7[1]) < puVar13) {\n          iVar10 = *(int *)(puVar15 + 0x21d714) + 0x446c;\n          (**(code **)(puVar15 + 0x21e30c))();\n          pcVar3 = (char *)*puVar8;\n          cVar5 = *pcVar3;\n          do {\n            if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar10 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }\n            pcVar3 = pcVar3 + 1;\n          } while( true );\n        }" if (parenthesized_expression "((undefined4 *)(iStack_5c - puVar7[1]) < puVar13)" ( (binary_expression "(undefined4 *)(iStack_5c - puVar7[1]) < puVar13" (cast_expression "(undefined4 *)(iStack_5c - puVar7[1])" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_5c - puVar7[1])" ( (binary_expression "iStack_5c - puVar7[1]" identifier - (subscript_expression "puVar7[1]" identifier [ number_literal ])) ))) < identifier) )) (compound_statement "{\n          iVar10 = *(int *)(puVar15 + 0x21d714) + 0x446c;\n          (**(code **)(puVar15 + 0x21e30c))();\n          pcVar3 = (char *)*puVar8;\n          cVar5 = *pcVar3;\n          do {\n            if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar10 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }\n            pcVar3 = pcVar3 + 1;\n          } while( true );\n        }" { (expression_statement "iVar10 = *(int *)(puVar15 + 0x21d714) + 0x446c;" (assignment_expression "iVar10 = *(int *)(puVar15 + 0x21d714) + 0x446c" identifier = (binary_expression "*(int *)(puVar15 + 0x21d714) + 0x446c" (pointer_expression "*(int *)(puVar15 + 0x21d714)" * (cast_expression "(int *)(puVar15 + 0x21d714)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x21d714)" ( (binary_expression "puVar15 + 0x21d714" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(puVar15 + 0x21e30c))();" (call_expression "(**(code **)(puVar15 + 0x21e30c))()" (parenthesized_expression "(**(code **)(puVar15 + 0x21e30c))" ( (pointer_expression "**(code **)(puVar15 + 0x21e30c)" * (pointer_expression "*(code **)(puVar15 + 0x21e30c)" * (cast_expression "(code **)(puVar15 + 0x21e30c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x21e30c)" ( (binary_expression "puVar15 + 0x21e30c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar3 = (char *)*puVar8;" (assignment_expression "pcVar3 = (char *)*puVar8" identifier = (cast_expression "(char *)*puVar8" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar8" * identifier))) ;) (expression_statement "cVar5 = *pcVar3;" (assignment_expression "cVar5 = *pcVar3" identifier = (pointer_expression "*pcVar3" * identifier)) ;) (do_statement "do {\n            if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar10 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }\n            pcVar3 = pcVar3 + 1;\n          } while( true );" do (compound_statement "{\n            if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar10 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }\n            pcVar3 = pcVar3 + 1;\n          }" { (if_statement "if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar10 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }" if (parenthesized_expression "(cVar5 == '*')" ( (binary_expression "cVar5 == '*'" identifier == (char_literal "'*'" ' character ')) )) (compound_statement "{\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }" { (expression_statement "cVar5 = pcVar3[1];" (assignment_expression "cVar5 = pcVar3[1]" identifier = (subscript_expression "pcVar3[1]" identifier [ number_literal ])) ;) (if_statement "if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }" if (parenthesized_expression "(cVar5 == '/')" ( (binary_expression "cVar5 == '/'" identifier == (char_literal "'/'" ' character ')) )) (compound_statement "{\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }" { (expression_statement "*puVar8 = pcVar3 + 2;" (assignment_expression "*puVar8 = pcVar3 + 2" (pointer_expression "*puVar8" * identifier) = (binary_expression "pcVar3 + 2" identifier + number_literal)) ;) (return_statement "return CONCAT44(1,pcVar3 + 2);" return (call_expression "CONCAT44(1,pcVar3 + 2)" identifier (argument_list "(1,pcVar3 + 2)" ( number_literal , (binary_expression "pcVar3 + 2" identifier + number_literal) ))) ;) })) }) (else_clause "else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar10 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }" else (compound_statement "{\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar10 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }" { (if_statement "if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }" if (parenthesized_expression "(cVar5 == '\0')" ( (binary_expression "cVar5 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }" { (expression_statement "*puVar8 = pcVar3;" (assignment_expression "*puVar8 = pcVar3" (pointer_expression "*puVar8" * identifier) = identifier) ;) (return_statement "return ZEXT48(pcVar3);" return (call_expression "ZEXT48(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier ))) ;) })) (if_statement "if (cVar5 == '\n') {\n                *(char **)(iVar10 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;\n              }" if (parenthesized_expression "(cVar5 == '\n')" ( (binary_expression "cVar5 == '\n'" identifier == (char_literal "'\n'" ' escape_sequence ')) )) (compound_statement "{\n                *(char **)(iVar10 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;\n              }" { (expression_statement "*(char **)(iVar10 + 0x30) = pcVar3 + 1;" (assignment_expression "*(char **)(iVar10 + 0x30) = pcVar3 + 1" (pointer_expression "*(char **)(iVar10 + 0x30)" * (cast_expression "(char **)(iVar10 + 0x30)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x30)" ( (binary_expression "iVar10 + 0x30" identifier + number_literal) )))) = (binary_expression "pcVar3 + 1" identifier + number_literal)) ;) (expression_statement "*(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;" (assignment_expression "*(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1" (pointer_expression "*(int *)(iVar10 + 0x2c)" * (cast_expression "(int *)(iVar10 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x2c)" ( (binary_expression "iVar10 + 0x2c" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar10 + 0x2c) + 1" (pointer_expression "*(int *)(iVar10 + 0x2c)" * (cast_expression "(int *)(iVar10 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x2c)" ( (binary_expression "iVar10 + 0x2c" identifier + number_literal) )))) + number_literal)) ;) })) (expression_statement "cVar5 = pcVar3[1];" (assignment_expression "cVar5 = pcVar3[1]" identifier = (subscript_expression "pcVar3[1]" identifier [ number_literal ])) ;) }))) (expression_statement "pcVar3 = pcVar3 + 1;" (assignment_expression "pcVar3 = pcVar3 + 1" identifier = (binary_expression "pcVar3 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "puVar14 = (undefined4 *)((int)puVar12 + (int)puVar13);" (assignment_expression "puVar14 = (undefined4 *)((int)puVar12 + (int)puVar13)" identifier = (cast_expression "(undefined4 *)((int)puVar12 + (int)puVar13)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 + (int)puVar13)" ( (binary_expression "(int)puVar12 + (int)puVar13" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar17 = (uint)(puVar14 < puVar12) + iVar17 + iVar9;" (assignment_expression "iVar17 = (uint)(puVar14 < puVar12) + iVar17 + iVar9" identifier = (binary_expression "(uint)(puVar14 < puVar12) + iVar17 + iVar9" (binary_expression "(uint)(puVar14 < puVar12) + iVar17" (call_expression "(uint)(puVar14 < puVar12)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar14 < puVar12)" ( (binary_expression "puVar14 < puVar12" identifier < identifier) ))) + identifier) + identifier)) ;) (expression_statement "puVar8 = auStack_2060;" (assignment_expression "puVar8 = auStack_2060" identifier = identifier) ;) (expression_statement "(**(code **)(puVar15 + 0x21e300))(puVar7,auStack_2060,puVar13);" (call_expression "(**(code **)(puVar15 + 0x21e300))(puVar7,auStack_2060,puVar13)" (parenthesized_expression "(**(code **)(puVar15 + 0x21e300))" ( (pointer_expression "**(code **)(puVar15 + 0x21e300)" * (pointer_expression "*(code **)(puVar15 + 0x21e300)" * (cast_expression "(code **)(puVar15 + 0x21e300)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x21e300)" ( (binary_expression "puVar15 + 0x21e300" identifier + number_literal) ))))) )) (argument_list "(puVar7,auStack_2060,puVar13)" ( identifier , identifier , identifier ))) ;) (expression_statement "puVar12 = puVar14;" (assignment_expression "puVar12 = puVar14" identifier = identifier) ;) }) while (parenthesized_expression "(iVar17 < iVar10)" ( (binary_expression "iVar17 < iVar10" identifier < identifier) )) ;) (expression_statement "bVar1 = puVar14 < puVar11;" (assignment_expression "bVar1 = puVar14 < puVar11" identifier = (binary_expression "puVar14 < puVar11" identifier < identifier)) ;) (expression_statement "uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1);" (assignment_expression "uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1)" identifier = (cast_expression "(ulonglong)CONCAT14(bVar1,extraout_v1)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "CONCAT14(bVar1,extraout_v1)" identifier (argument_list "(bVar1,extraout_v1)" ( identifier , identifier ))))) ;) }) while (parenthesized_expression "((iVar10 == iVar17) && (uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1), bVar1))" ( (binary_expression "(iVar10 == iVar17) && (uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1), bVar1)" (parenthesized_expression "(iVar10 == iVar17)" ( (binary_expression "iVar10 == iVar17" identifier == identifier) )) && (parenthesized_expression "(uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1), bVar1)" ( (comma_expression "uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1), bVar1" (assignment_expression "uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1)" identifier = (cast_expression "(ulonglong)CONCAT14(bVar1,extraout_v1)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "CONCAT14(bVar1,extraout_v1)" identifier (argument_list "(bVar1,extraout_v1)" ( identifier , identifier ))))) , identifier) ))) )) ;) })) (return_statement "return uVar18;" return identifier ;) })))
(translation_unit (function_definition TYPE (ms_call_modifier __thiscall) (ERROR IDENT : : IDENT : :) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) )))) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (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 = IDENT) ;) })) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (parenthesized_expression ( (binary_expression IDENT & LIT) )))) ;) (return_statement return (call_expression IDENT (argument_list ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT >> LIT) ))) * IDENT) + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (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)) ;) (do_statement do (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) || (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression (binary_expression IDENT == LIT) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) < IDENT) )))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT - (subscript_expression IDENT [ LIT ])) ))) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (return_statement return (call_expression IDENT (argument_list ( LIT , (binary_expression IDENT + LIT) ))) ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (return_statement return (call_expression IDENT (argument_list ( IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( BOOL )) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) + IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) , IDENT) ))) )) ;) })) (return_statement return IDENT ;) })))
(function_definition "ulonglong __thiscall gold::Token::integer_value(Token *this)\n\n{\n  bool bVar1;\n  longlong lVar2;\n  byte bVar4;\n  char *pcVar3;\n  char cVar5;\n  undefined4 extraout_v1;\n  undefined *puVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  Token *unaff_s0;\n  int iVar9;\n  int unaff_s1;\n  int iVar10;\n  uint unaff_s2;\n  undefined4 *puVar11;\n  undefined4 *puVar12;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  undefined *puVar15;\n  code *pcVar16;\n  int iVar17;\n  ulonglong uVar18;\n  undefined4 auStack_2060 [2048];\n  undefined *puStack_60;\n  int iStack_5c;\n  Token *pTStack_58;\n  int iStack_54;\n  uint uStack_50;\n  int local_18 [2];\n  \n  puVar7 = (undefined4 *)&DAT_000000ad;\n  if (*(int *)this == 5) {\n    unaff_s1 = *(int *)(this + 8);\n    iVar10 = unaff_s1 + -1;\n    bVar4 = *(byte *)(*(int *)(this + 4) + iVar10) & 0xdf;\n    if (bVar4 == 0x4d) {\n      unaff_s2 = 0x100000;\n      unaff_s1 = iVar10;\n    }\n    else {\n      unaff_s2 = 1;\n      if (bVar4 == 0x4b) {\n        unaff_s2 = 0x400;\n        unaff_s1 = iVar10;\n      }\n    }\n    uVar18 = (*(code *)PTR_strtoull_004c5c14)(*(int *)(this + 4),local_18,0);\n    if (local_18[0] - *(int *)(this + 4) == unaff_s1) {\n      lVar2 = (ulonglong)unaff_s2 * (uVar18 & 0xffffffff);\n      return CONCAT44((int)(uVar18 >> 0x20) * unaff_s2 + (int)((ulonglong)lVar2 >> 0x20),(int)lVar2)\n      ;\n    }\n    puVar7 = (undefined4 *)&DAT_000000c0;\n    unaff_s0 = this;\n  }\n  puVar6 = PTR_s_in_a_linker_script_004c191c + 0xdec;\n  puVar15 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar6,puVar7,PTR_s_in_a_linker_script_004c191c + 0x2280);\n  pcVar16 = *(code **)(puVar15 + 0x21e8f0);\n  puVar11 = *(undefined4 **)(puVar6 + 0x4c);\n  iVar10 = *(int *)(puVar6 + 0x48);\n  puVar7[1] = 0;\n  *(undefined1 *)*puVar7 = 0;\n  puVar8 = puVar11;\n  pTStack_58 = unaff_s0;\n  iStack_54 = unaff_s1;\n  uStack_50 = unaff_s2;\n  uVar18 = (*pcVar16)(puVar7);\n  if ((0 < iVar10) ||\n     ((iVar10 == 0 && (uVar18 = CONCAT44(puVar6 + 0x20,(int)uVar18), puVar11 != (undefined4 *)0x0)))\n     ) {\n    puStack_60 = puVar6 + 0x20;\n    iVar17 = 0;\n    iStack_5c = 0x7fffffff;\n    puVar12 = (undefined4 *)0x0;\n    do {\n      do {\n        puVar13 = (undefined4 *)((int)puVar11 - (int)puVar12);\n        iVar9 = (iVar10 - iVar17) - (uint)(puVar11 < puVar13);\n        if ((0 < iVar9) ||\n           ((pcVar16 = *(code **)(puVar15 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar13)))) {\n          iVar9 = 0;\n          puVar13 = (undefined4 *)0x2000;\n          pcVar16 = *(code **)(puVar15 + 0x21e4c4);\n        }\n        (*pcVar16)(puStack_60);\n        if ((undefined4 *)(iStack_5c - puVar7[1]) < puVar13) {\n          iVar10 = *(int *)(puVar15 + 0x21d714) + 0x446c;\n          (**(code **)(puVar15 + 0x21e30c))();\n          pcVar3 = (char *)*puVar8;\n          cVar5 = *pcVar3;\n          do {\n            if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar10 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }\n            pcVar3 = pcVar3 + 1;\n          } while( true );\n        }\n        puVar14 = (undefined4 *)((int)puVar12 + (int)puVar13);\n        iVar17 = (uint)(puVar14 < puVar12) + iVar17 + iVar9;\n        puVar8 = auStack_2060;\n        (**(code **)(puVar15 + 0x21e300))(puVar7,auStack_2060,puVar13);\n        puVar12 = puVar14;\n      } while (iVar17 < iVar10);\n      bVar1 = puVar14 < puVar11;\n      uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1);\n    } while ((iVar10 == iVar17) && (uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1), bVar1));\n  }\n  return uVar18;\n}" (type_identifier "ulonglong") (ms_call_modifier "__thiscall" (__thiscall "__thiscall")) (ERROR "gold::Token::" (identifier "gold") (: ":") (: ":") (identifier "Token") (: ":") (: ":")) (function_declarator "integer_value(Token *this)" (identifier "integer_value") (parameter_list "(Token *this)" (( "(") (parameter_declaration "Token *this" (type_identifier "Token") (pointer_declarator "*this" (* "*") (identifier "this"))) () ")"))) (compound_statement "{\n  bool bVar1;\n  longlong lVar2;\n  byte bVar4;\n  char *pcVar3;\n  char cVar5;\n  undefined4 extraout_v1;\n  undefined *puVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  Token *unaff_s0;\n  int iVar9;\n  int unaff_s1;\n  int iVar10;\n  uint unaff_s2;\n  undefined4 *puVar11;\n  undefined4 *puVar12;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  undefined *puVar15;\n  code *pcVar16;\n  int iVar17;\n  ulonglong uVar18;\n  undefined4 auStack_2060 [2048];\n  undefined *puStack_60;\n  int iStack_5c;\n  Token *pTStack_58;\n  int iStack_54;\n  uint uStack_50;\n  int local_18 [2];\n  \n  puVar7 = (undefined4 *)&DAT_000000ad;\n  if (*(int *)this == 5) {\n    unaff_s1 = *(int *)(this + 8);\n    iVar10 = unaff_s1 + -1;\n    bVar4 = *(byte *)(*(int *)(this + 4) + iVar10) & 0xdf;\n    if (bVar4 == 0x4d) {\n      unaff_s2 = 0x100000;\n      unaff_s1 = iVar10;\n    }\n    else {\n      unaff_s2 = 1;\n      if (bVar4 == 0x4b) {\n        unaff_s2 = 0x400;\n        unaff_s1 = iVar10;\n      }\n    }\n    uVar18 = (*(code *)PTR_strtoull_004c5c14)(*(int *)(this + 4),local_18,0);\n    if (local_18[0] - *(int *)(this + 4) == unaff_s1) {\n      lVar2 = (ulonglong)unaff_s2 * (uVar18 & 0xffffffff);\n      return CONCAT44((int)(uVar18 >> 0x20) * unaff_s2 + (int)((ulonglong)lVar2 >> 0x20),(int)lVar2)\n      ;\n    }\n    puVar7 = (undefined4 *)&DAT_000000c0;\n    unaff_s0 = this;\n  }\n  puVar6 = PTR_s_in_a_linker_script_004c191c + 0xdec;\n  puVar15 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar6,puVar7,PTR_s_in_a_linker_script_004c191c + 0x2280);\n  pcVar16 = *(code **)(puVar15 + 0x21e8f0);\n  puVar11 = *(undefined4 **)(puVar6 + 0x4c);\n  iVar10 = *(int *)(puVar6 + 0x48);\n  puVar7[1] = 0;\n  *(undefined1 *)*puVar7 = 0;\n  puVar8 = puVar11;\n  pTStack_58 = unaff_s0;\n  iStack_54 = unaff_s1;\n  uStack_50 = unaff_s2;\n  uVar18 = (*pcVar16)(puVar7);\n  if ((0 < iVar10) ||\n     ((iVar10 == 0 && (uVar18 = CONCAT44(puVar6 + 0x20,(int)uVar18), puVar11 != (undefined4 *)0x0)))\n     ) {\n    puStack_60 = puVar6 + 0x20;\n    iVar17 = 0;\n    iStack_5c = 0x7fffffff;\n    puVar12 = (undefined4 *)0x0;\n    do {\n      do {\n        puVar13 = (undefined4 *)((int)puVar11 - (int)puVar12);\n        iVar9 = (iVar10 - iVar17) - (uint)(puVar11 < puVar13);\n        if ((0 < iVar9) ||\n           ((pcVar16 = *(code **)(puVar15 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar13)))) {\n          iVar9 = 0;\n          puVar13 = (undefined4 *)0x2000;\n          pcVar16 = *(code **)(puVar15 + 0x21e4c4);\n        }\n        (*pcVar16)(puStack_60);\n        if ((undefined4 *)(iStack_5c - puVar7[1]) < puVar13) {\n          iVar10 = *(int *)(puVar15 + 0x21d714) + 0x446c;\n          (**(code **)(puVar15 + 0x21e30c))();\n          pcVar3 = (char *)*puVar8;\n          cVar5 = *pcVar3;\n          do {\n            if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar10 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }\n            pcVar3 = pcVar3 + 1;\n          } while( true );\n        }\n        puVar14 = (undefined4 *)((int)puVar12 + (int)puVar13);\n        iVar17 = (uint)(puVar14 < puVar12) + iVar17 + iVar9;\n        puVar8 = auStack_2060;\n        (**(code **)(puVar15 + 0x21e300))(puVar7,auStack_2060,puVar13);\n        puVar12 = puVar14;\n      } while (iVar17 < iVar10);\n      bVar1 = puVar14 < puVar11;\n      uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1);\n    } while ((iVar10 == iVar17) && (uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1), bVar1));\n  }\n  return uVar18;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "longlong lVar2;" (type_identifier "longlong") (identifier "lVar2") (; ";")) (declaration "byte bVar4;" (type_identifier "byte") (identifier "bVar4") (; ";")) (declaration "char *pcVar3;" (primitive_type "char") (pointer_declarator "*pcVar3" (* "*") (identifier "pcVar3")) (; ";")) (declaration "char cVar5;" (primitive_type "char") (identifier "cVar5") (; ";")) (declaration "undefined4 extraout_v1;" (type_identifier "undefined4") (identifier "extraout_v1") (; ";")) (declaration "undefined *puVar6;" (type_identifier "undefined") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "undefined4 *puVar7;" (type_identifier "undefined4") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "undefined4 *puVar8;" (type_identifier "undefined4") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "Token *unaff_s0;" (type_identifier "Token") (pointer_declarator "*unaff_s0" (* "*") (identifier "unaff_s0")) (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int unaff_s1;" (primitive_type "int") (identifier "unaff_s1") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "uint unaff_s2;" (type_identifier "uint") (identifier "unaff_s2") (; ";")) (declaration "undefined4 *puVar11;" (type_identifier "undefined4") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "undefined4 *puVar12;" (type_identifier "undefined4") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "undefined4 *puVar13;" (type_identifier "undefined4") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "undefined4 *puVar14;" (type_identifier "undefined4") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "undefined *puVar15;" (type_identifier "undefined") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "code *pcVar16;" (type_identifier "code") (pointer_declarator "*pcVar16" (* "*") (identifier "pcVar16")) (; ";")) (declaration "int iVar17;" (primitive_type "int") (identifier "iVar17") (; ";")) (declaration "ulonglong uVar18;" (type_identifier "ulonglong") (identifier "uVar18") (; ";")) (declaration "undefined4 auStack_2060 [2048];" (type_identifier "undefined4") (array_declarator "auStack_2060 [2048]" (identifier "auStack_2060") ([ "[") (number_literal "2048") (] "]")) (; ";")) (declaration "undefined *puStack_60;" (type_identifier "undefined") (pointer_declarator "*puStack_60" (* "*") (identifier "puStack_60")) (; ";")) (declaration "int iStack_5c;" (primitive_type "int") (identifier "iStack_5c") (; ";")) (declaration "Token *pTStack_58;" (type_identifier "Token") (pointer_declarator "*pTStack_58" (* "*") (identifier "pTStack_58")) (; ";")) (declaration "int iStack_54;" (primitive_type "int") (identifier "iStack_54") (; ";")) (declaration "uint uStack_50;" (type_identifier "uint") (identifier "uStack_50") (; ";")) (declaration "int local_18 [2];" (primitive_type "int") (array_declarator "local_18 [2]" (identifier "local_18") ([ "[") (number_literal "2") (] "]")) (; ";")) (expression_statement "puVar7 = (undefined4 *)&DAT_000000ad;" (assignment_expression "puVar7 = (undefined4 *)&DAT_000000ad" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)&DAT_000000ad" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_000000ad" (& "&") (identifier "DAT_000000ad")))) (; ";")) (if_statement "if (*(int *)this == 5) {\n    unaff_s1 = *(int *)(this + 8);\n    iVar10 = unaff_s1 + -1;\n    bVar4 = *(byte *)(*(int *)(this + 4) + iVar10) & 0xdf;\n    if (bVar4 == 0x4d) {\n      unaff_s2 = 0x100000;\n      unaff_s1 = iVar10;\n    }\n    else {\n      unaff_s2 = 1;\n      if (bVar4 == 0x4b) {\n        unaff_s2 = 0x400;\n        unaff_s1 = iVar10;\n      }\n    }\n    uVar18 = (*(code *)PTR_strtoull_004c5c14)(*(int *)(this + 4),local_18,0);\n    if (local_18[0] - *(int *)(this + 4) == unaff_s1) {\n      lVar2 = (ulonglong)unaff_s2 * (uVar18 & 0xffffffff);\n      return CONCAT44((int)(uVar18 >> 0x20) * unaff_s2 + (int)((ulonglong)lVar2 >> 0x20),(int)lVar2)\n      ;\n    }\n    puVar7 = (undefined4 *)&DAT_000000c0;\n    unaff_s0 = this;\n  }" (if "if") (parenthesized_expression "(*(int *)this == 5)" (( "(") (binary_expression "*(int *)this == 5" (pointer_expression "*(int *)this" (* "*") (cast_expression "(int *)this" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "this"))) (== "==") (number_literal "5")) () ")")) (compound_statement "{\n    unaff_s1 = *(int *)(this + 8);\n    iVar10 = unaff_s1 + -1;\n    bVar4 = *(byte *)(*(int *)(this + 4) + iVar10) & 0xdf;\n    if (bVar4 == 0x4d) {\n      unaff_s2 = 0x100000;\n      unaff_s1 = iVar10;\n    }\n    else {\n      unaff_s2 = 1;\n      if (bVar4 == 0x4b) {\n        unaff_s2 = 0x400;\n        unaff_s1 = iVar10;\n      }\n    }\n    uVar18 = (*(code *)PTR_strtoull_004c5c14)(*(int *)(this + 4),local_18,0);\n    if (local_18[0] - *(int *)(this + 4) == unaff_s1) {\n      lVar2 = (ulonglong)unaff_s2 * (uVar18 & 0xffffffff);\n      return CONCAT44((int)(uVar18 >> 0x20) * unaff_s2 + (int)((ulonglong)lVar2 >> 0x20),(int)lVar2)\n      ;\n    }\n    puVar7 = (undefined4 *)&DAT_000000c0;\n    unaff_s0 = this;\n  }" ({ "{") (expression_statement "unaff_s1 = *(int *)(this + 8);" (assignment_expression "unaff_s1 = *(int *)(this + 8)" (identifier "unaff_s1") (= "=") (pointer_expression "*(int *)(this + 8)" (* "*") (cast_expression "(int *)(this + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 8)" (( "(") (binary_expression "this + 8" (identifier "this") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "iVar10 = unaff_s1 + -1;" (assignment_expression "iVar10 = unaff_s1 + -1" (identifier "iVar10") (= "=") (binary_expression "unaff_s1 + -1" (identifier "unaff_s1") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar4 = *(byte *)(*(int *)(this + 4) + iVar10) & 0xdf;" (assignment_expression "bVar4 = *(byte *)(*(int *)(this + 4) + iVar10) & 0xdf" (identifier "bVar4") (= "=") (binary_expression "*(byte *)(*(int *)(this + 4) + iVar10) & 0xdf" (pointer_expression "*(byte *)(*(int *)(this + 4) + iVar10)" (* "*") (cast_expression "(byte *)(*(int *)(this + 4) + iVar10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(this + 4) + iVar10)" (( "(") (binary_expression "*(int *)(this + 4) + iVar10" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (+ "+") (identifier "iVar10")) () ")")))) (& "&") (number_literal "0xdf"))) (; ";")) (if_statement "if (bVar4 == 0x4d) {\n      unaff_s2 = 0x100000;\n      unaff_s1 = iVar10;\n    }\n    else {\n      unaff_s2 = 1;\n      if (bVar4 == 0x4b) {\n        unaff_s2 = 0x400;\n        unaff_s1 = iVar10;\n      }\n    }" (if "if") (parenthesized_expression "(bVar4 == 0x4d)" (( "(") (binary_expression "bVar4 == 0x4d" (identifier "bVar4") (== "==") (number_literal "0x4d")) () ")")) (compound_statement "{\n      unaff_s2 = 0x100000;\n      unaff_s1 = iVar10;\n    }" ({ "{") (expression_statement "unaff_s2 = 0x100000;" (assignment_expression "unaff_s2 = 0x100000" (identifier "unaff_s2") (= "=") (number_literal "0x100000")) (; ";")) (expression_statement "unaff_s1 = iVar10;" (assignment_expression "unaff_s1 = iVar10" (identifier "unaff_s1") (= "=") (identifier "iVar10")) (; ";")) (} "}")) (else_clause "else {\n      unaff_s2 = 1;\n      if (bVar4 == 0x4b) {\n        unaff_s2 = 0x400;\n        unaff_s1 = iVar10;\n      }\n    }" (else "else") (compound_statement "{\n      unaff_s2 = 1;\n      if (bVar4 == 0x4b) {\n        unaff_s2 = 0x400;\n        unaff_s1 = iVar10;\n      }\n    }" ({ "{") (expression_statement "unaff_s2 = 1;" (assignment_expression "unaff_s2 = 1" (identifier "unaff_s2") (= "=") (number_literal "1")) (; ";")) (if_statement "if (bVar4 == 0x4b) {\n        unaff_s2 = 0x400;\n        unaff_s1 = iVar10;\n      }" (if "if") (parenthesized_expression "(bVar4 == 0x4b)" (( "(") (binary_expression "bVar4 == 0x4b" (identifier "bVar4") (== "==") (number_literal "0x4b")) () ")")) (compound_statement "{\n        unaff_s2 = 0x400;\n        unaff_s1 = iVar10;\n      }" ({ "{") (expression_statement "unaff_s2 = 0x400;" (assignment_expression "unaff_s2 = 0x400" (identifier "unaff_s2") (= "=") (number_literal "0x400")) (; ";")) (expression_statement "unaff_s1 = iVar10;" (assignment_expression "unaff_s1 = iVar10" (identifier "unaff_s1") (= "=") (identifier "iVar10")) (; ";")) (} "}"))) (} "}")))) (expression_statement "uVar18 = (*(code *)PTR_strtoull_004c5c14)(*(int *)(this + 4),local_18,0);" (assignment_expression "uVar18 = (*(code *)PTR_strtoull_004c5c14)(*(int *)(this + 4),local_18,0)" (identifier "uVar18") (= "=") (call_expression "(*(code *)PTR_strtoull_004c5c14)(*(int *)(this + 4),local_18,0)" (parenthesized_expression "(*(code *)PTR_strtoull_004c5c14)" (( "(") (pointer_expression "*(code *)PTR_strtoull_004c5c14" (* "*") (cast_expression "(code *)PTR_strtoull_004c5c14" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strtoull_004c5c14"))) () ")")) (argument_list "(*(int *)(this + 4),local_18,0)" (( "(") (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (, ",") (identifier "local_18") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (local_18[0] - *(int *)(this + 4) == unaff_s1) {\n      lVar2 = (ulonglong)unaff_s2 * (uVar18 & 0xffffffff);\n      return CONCAT44((int)(uVar18 >> 0x20) * unaff_s2 + (int)((ulonglong)lVar2 >> 0x20),(int)lVar2)\n      ;\n    }" (if "if") (parenthesized_expression "(local_18[0] - *(int *)(this + 4) == unaff_s1)" (( "(") (binary_expression "local_18[0] - *(int *)(this + 4) == unaff_s1" (binary_expression "local_18[0] - *(int *)(this + 4)" (subscript_expression "local_18[0]" (identifier "local_18") ([ "[") (number_literal "0") (] "]")) (- "-") (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")"))))) (== "==") (identifier "unaff_s1")) () ")")) (compound_statement "{\n      lVar2 = (ulonglong)unaff_s2 * (uVar18 & 0xffffffff);\n      return CONCAT44((int)(uVar18 >> 0x20) * unaff_s2 + (int)((ulonglong)lVar2 >> 0x20),(int)lVar2)\n      ;\n    }" ({ "{") (expression_statement "lVar2 = (ulonglong)unaff_s2 * (uVar18 & 0xffffffff);" (assignment_expression "lVar2 = (ulonglong)unaff_s2 * (uVar18 & 0xffffffff)" (identifier "lVar2") (= "=") (binary_expression "(ulonglong)unaff_s2 * (uVar18 & 0xffffffff)" (cast_expression "(ulonglong)unaff_s2" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "unaff_s2")) (* "*") (parenthesized_expression "(uVar18 & 0xffffffff)" (( "(") (binary_expression "uVar18 & 0xffffffff" (identifier "uVar18") (& "&") (number_literal "0xffffffff")) () ")")))) (; ";")) (return_statement "return CONCAT44((int)(uVar18 >> 0x20) * unaff_s2 + (int)((ulonglong)lVar2 >> 0x20),(int)lVar2)\n      ;" (return "return") (call_expression "CONCAT44((int)(uVar18 >> 0x20) * unaff_s2 + (int)((ulonglong)lVar2 >> 0x20),(int)lVar2)" (identifier "CONCAT44") (argument_list "((int)(uVar18 >> 0x20) * unaff_s2 + (int)((ulonglong)lVar2 >> 0x20),(int)lVar2)" (( "(") (binary_expression "(int)(uVar18 >> 0x20) * unaff_s2 + (int)((ulonglong)lVar2 >> 0x20)" (binary_expression "(int)(uVar18 >> 0x20) * unaff_s2" (cast_expression "(int)(uVar18 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar18 >> 0x20)" (( "(") (binary_expression "uVar18 >> 0x20" (identifier "uVar18") (>> ">>") (number_literal "0x20")) () ")"))) (* "*") (identifier "unaff_s2")) (+ "+") (cast_expression "(int)((ulonglong)lVar2 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar2 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar2 >> 0x20" (cast_expression "(ulonglong)lVar2" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar2")) (>> ">>") (number_literal "0x20")) () ")")))) (, ",") (cast_expression "(int)lVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar2")) () ")"))) (; ";")) (} "}"))) (expression_statement "puVar7 = (undefined4 *)&DAT_000000c0;" (assignment_expression "puVar7 = (undefined4 *)&DAT_000000c0" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)&DAT_000000c0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_000000c0" (& "&") (identifier "DAT_000000c0")))) (; ";")) (expression_statement "unaff_s0 = this;" (assignment_expression "unaff_s0 = this" (identifier "unaff_s0") (= "=") (identifier "this")) (; ";")) (} "}"))) (expression_statement "puVar6 = PTR_s_in_a_linker_script_004c191c + 0xdec;" (assignment_expression "puVar6 = PTR_s_in_a_linker_script_004c191c + 0xdec" (identifier "puVar6") (= "=") (binary_expression "PTR_s_in_a_linker_script_004c191c + 0xdec" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "0xdec"))) (; ";")) (expression_statement "puVar15 = PTR_do_gold_unreachable_004c1a30;" (assignment_expression "puVar15 = PTR_do_gold_unreachable_004c1a30" (identifier "puVar15") (= "=") (identifier "PTR_do_gold_unreachable_004c1a30")) (; ";")) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar6,puVar7,PTR_s_in_a_linker_script_004c191c + 0x2280);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar6,puVar7,PTR_s_in_a_linker_script_004c191c + 0x2280)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004c1a30"))) () ")")) (argument_list "(puVar6,puVar7,PTR_s_in_a_linker_script_004c191c + 0x2280)" (( "(") (identifier "puVar6") (, ",") (identifier "puVar7") (, ",") (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x2280" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "0x2280")) () ")"))) (; ";")) (expression_statement "pcVar16 = *(code **)(puVar15 + 0x21e8f0);" (assignment_expression "pcVar16 = *(code **)(puVar15 + 0x21e8f0)" (identifier "pcVar16") (= "=") (pointer_expression "*(code **)(puVar15 + 0x21e8f0)" (* "*") (cast_expression "(code **)(puVar15 + 0x21e8f0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + 0x21e8f0)" (( "(") (binary_expression "puVar15 + 0x21e8f0" (identifier "puVar15") (+ "+") (number_literal "0x21e8f0")) () ")"))))) (; ";")) (expression_statement "puVar11 = *(undefined4 **)(puVar6 + 0x4c);" (assignment_expression "puVar11 = *(undefined4 **)(puVar6 + 0x4c)" (identifier "puVar11") (= "=") (pointer_expression "*(undefined4 **)(puVar6 + 0x4c)" (* "*") (cast_expression "(undefined4 **)(puVar6 + 0x4c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar6 + 0x4c)" (( "(") (binary_expression "puVar6 + 0x4c" (identifier "puVar6") (+ "+") (number_literal "0x4c")) () ")"))))) (; ";")) (expression_statement "iVar10 = *(int *)(puVar6 + 0x48);" (assignment_expression "iVar10 = *(int *)(puVar6 + 0x48)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(puVar6 + 0x48)" (* "*") (cast_expression "(int *)(puVar6 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 0x48)" (( "(") (binary_expression "puVar6 + 0x48" (identifier "puVar6") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (expression_statement "puVar7[1] = 0;" (assignment_expression "puVar7[1] = 0" (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)*puVar7 = 0;" (assignment_expression "*(undefined1 *)*puVar7 = 0" (pointer_expression "*(undefined1 *)*puVar7" (* "*") (cast_expression "(undefined1 *)*puVar7" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar7" (* "*") (identifier "puVar7")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar8 = puVar11;" (assignment_expression "puVar8 = puVar11" (identifier "puVar8") (= "=") (identifier "puVar11")) (; ";")) (expression_statement "pTStack_58 = unaff_s0;" (assignment_expression "pTStack_58 = unaff_s0" (identifier "pTStack_58") (= "=") (identifier "unaff_s0")) (; ";")) (expression_statement "iStack_54 = unaff_s1;" (assignment_expression "iStack_54 = unaff_s1" (identifier "iStack_54") (= "=") (identifier "unaff_s1")) (; ";")) (expression_statement "uStack_50 = unaff_s2;" (assignment_expression "uStack_50 = unaff_s2" (identifier "uStack_50") (= "=") (identifier "unaff_s2")) (; ";")) (expression_statement "uVar18 = (*pcVar16)(puVar7);" (assignment_expression "uVar18 = (*pcVar16)(puVar7)" (identifier "uVar18") (= "=") (call_expression "(*pcVar16)(puVar7)" (parenthesized_expression "(*pcVar16)" (( "(") (pointer_expression "*pcVar16" (* "*") (identifier "pcVar16")) () ")")) (argument_list "(puVar7)" (( "(") (identifier "puVar7") () ")")))) (; ";")) (if_statement "if ((0 < iVar10) ||\n     ((iVar10 == 0 && (uVar18 = CONCAT44(puVar6 + 0x20,(int)uVar18), puVar11 != (undefined4 *)0x0)))\n     ) {\n    puStack_60 = puVar6 + 0x20;\n    iVar17 = 0;\n    iStack_5c = 0x7fffffff;\n    puVar12 = (undefined4 *)0x0;\n    do {\n      do {\n        puVar13 = (undefined4 *)((int)puVar11 - (int)puVar12);\n        iVar9 = (iVar10 - iVar17) - (uint)(puVar11 < puVar13);\n        if ((0 < iVar9) ||\n           ((pcVar16 = *(code **)(puVar15 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar13)))) {\n          iVar9 = 0;\n          puVar13 = (undefined4 *)0x2000;\n          pcVar16 = *(code **)(puVar15 + 0x21e4c4);\n        }\n        (*pcVar16)(puStack_60);\n        if ((undefined4 *)(iStack_5c - puVar7[1]) < puVar13) {\n          iVar10 = *(int *)(puVar15 + 0x21d714) + 0x446c;\n          (**(code **)(puVar15 + 0x21e30c))();\n          pcVar3 = (char *)*puVar8;\n          cVar5 = *pcVar3;\n          do {\n            if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar10 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }\n            pcVar3 = pcVar3 + 1;\n          } while( true );\n        }\n        puVar14 = (undefined4 *)((int)puVar12 + (int)puVar13);\n        iVar17 = (uint)(puVar14 < puVar12) + iVar17 + iVar9;\n        puVar8 = auStack_2060;\n        (**(code **)(puVar15 + 0x21e300))(puVar7,auStack_2060,puVar13);\n        puVar12 = puVar14;\n      } while (iVar17 < iVar10);\n      bVar1 = puVar14 < puVar11;\n      uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1);\n    } while ((iVar10 == iVar17) && (uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1), bVar1));\n  }" (if "if") (parenthesized_expression "((0 < iVar10) ||\n     ((iVar10 == 0 && (uVar18 = CONCAT44(puVar6 + 0x20,(int)uVar18), puVar11 != (undefined4 *)0x0)))\n     )" (( "(") (binary_expression "(0 < iVar10) ||\n     ((iVar10 == 0 && (uVar18 = CONCAT44(puVar6 + 0x20,(int)uVar18), puVar11 != (undefined4 *)0x0)))" (parenthesized_expression "(0 < iVar10)" (( "(") (binary_expression "0 < iVar10" (number_literal "0") (< "<") (identifier "iVar10")) () ")")) (|| "||") (parenthesized_expression "((iVar10 == 0 && (uVar18 = CONCAT44(puVar6 + 0x20,(int)uVar18), puVar11 != (undefined4 *)0x0)))" (( "(") (parenthesized_expression "(iVar10 == 0 && (uVar18 = CONCAT44(puVar6 + 0x20,(int)uVar18), puVar11 != (undefined4 *)0x0))" (( "(") (binary_expression "iVar10 == 0 && (uVar18 = CONCAT44(puVar6 + 0x20,(int)uVar18), puVar11 != (undefined4 *)0x0)" (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) (&& "&&") (parenthesized_expression "(uVar18 = CONCAT44(puVar6 + 0x20,(int)uVar18), puVar11 != (undefined4 *)0x0)" (( "(") (comma_expression "uVar18 = CONCAT44(puVar6 + 0x20,(int)uVar18), puVar11 != (undefined4 *)0x0" (assignment_expression "uVar18 = CONCAT44(puVar6 + 0x20,(int)uVar18)" (identifier "uVar18") (= "=") (call_expression "CONCAT44(puVar6 + 0x20,(int)uVar18)" (identifier "CONCAT44") (argument_list "(puVar6 + 0x20,(int)uVar18)" (( "(") (binary_expression "puVar6 + 0x20" (identifier "puVar6") (+ "+") (number_literal "0x20")) (, ",") (cast_expression "(int)uVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar18")) () ")")))) (, ",") (binary_expression "puVar11 != (undefined4 *)0x0" (identifier "puVar11") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n    puStack_60 = puVar6 + 0x20;\n    iVar17 = 0;\n    iStack_5c = 0x7fffffff;\n    puVar12 = (undefined4 *)0x0;\n    do {\n      do {\n        puVar13 = (undefined4 *)((int)puVar11 - (int)puVar12);\n        iVar9 = (iVar10 - iVar17) - (uint)(puVar11 < puVar13);\n        if ((0 < iVar9) ||\n           ((pcVar16 = *(code **)(puVar15 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar13)))) {\n          iVar9 = 0;\n          puVar13 = (undefined4 *)0x2000;\n          pcVar16 = *(code **)(puVar15 + 0x21e4c4);\n        }\n        (*pcVar16)(puStack_60);\n        if ((undefined4 *)(iStack_5c - puVar7[1]) < puVar13) {\n          iVar10 = *(int *)(puVar15 + 0x21d714) + 0x446c;\n          (**(code **)(puVar15 + 0x21e30c))();\n          pcVar3 = (char *)*puVar8;\n          cVar5 = *pcVar3;\n          do {\n            if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar10 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }\n            pcVar3 = pcVar3 + 1;\n          } while( true );\n        }\n        puVar14 = (undefined4 *)((int)puVar12 + (int)puVar13);\n        iVar17 = (uint)(puVar14 < puVar12) + iVar17 + iVar9;\n        puVar8 = auStack_2060;\n        (**(code **)(puVar15 + 0x21e300))(puVar7,auStack_2060,puVar13);\n        puVar12 = puVar14;\n      } while (iVar17 < iVar10);\n      bVar1 = puVar14 < puVar11;\n      uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1);\n    } while ((iVar10 == iVar17) && (uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1), bVar1));\n  }" ({ "{") (expression_statement "puStack_60 = puVar6 + 0x20;" (assignment_expression "puStack_60 = puVar6 + 0x20" (identifier "puStack_60") (= "=") (binary_expression "puVar6 + 0x20" (identifier "puVar6") (+ "+") (number_literal "0x20"))) (; ";")) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" (identifier "iVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "iStack_5c = 0x7fffffff;" (assignment_expression "iStack_5c = 0x7fffffff" (identifier "iStack_5c") (= "=") (number_literal "0x7fffffff")) (; ";")) (expression_statement "puVar12 = (undefined4 *)0x0;" (assignment_expression "puVar12 = (undefined4 *)0x0" (identifier "puVar12") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (do_statement "do {\n      do {\n        puVar13 = (undefined4 *)((int)puVar11 - (int)puVar12);\n        iVar9 = (iVar10 - iVar17) - (uint)(puVar11 < puVar13);\n        if ((0 < iVar9) ||\n           ((pcVar16 = *(code **)(puVar15 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar13)))) {\n          iVar9 = 0;\n          puVar13 = (undefined4 *)0x2000;\n          pcVar16 = *(code **)(puVar15 + 0x21e4c4);\n        }\n        (*pcVar16)(puStack_60);\n        if ((undefined4 *)(iStack_5c - puVar7[1]) < puVar13) {\n          iVar10 = *(int *)(puVar15 + 0x21d714) + 0x446c;\n          (**(code **)(puVar15 + 0x21e30c))();\n          pcVar3 = (char *)*puVar8;\n          cVar5 = *pcVar3;\n          do {\n            if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar10 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }\n            pcVar3 = pcVar3 + 1;\n          } while( true );\n        }\n        puVar14 = (undefined4 *)((int)puVar12 + (int)puVar13);\n        iVar17 = (uint)(puVar14 < puVar12) + iVar17 + iVar9;\n        puVar8 = auStack_2060;\n        (**(code **)(puVar15 + 0x21e300))(puVar7,auStack_2060,puVar13);\n        puVar12 = puVar14;\n      } while (iVar17 < iVar10);\n      bVar1 = puVar14 < puVar11;\n      uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1);\n    } while ((iVar10 == iVar17) && (uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1), bVar1));" (do "do") (compound_statement "{\n      do {\n        puVar13 = (undefined4 *)((int)puVar11 - (int)puVar12);\n        iVar9 = (iVar10 - iVar17) - (uint)(puVar11 < puVar13);\n        if ((0 < iVar9) ||\n           ((pcVar16 = *(code **)(puVar15 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar13)))) {\n          iVar9 = 0;\n          puVar13 = (undefined4 *)0x2000;\n          pcVar16 = *(code **)(puVar15 + 0x21e4c4);\n        }\n        (*pcVar16)(puStack_60);\n        if ((undefined4 *)(iStack_5c - puVar7[1]) < puVar13) {\n          iVar10 = *(int *)(puVar15 + 0x21d714) + 0x446c;\n          (**(code **)(puVar15 + 0x21e30c))();\n          pcVar3 = (char *)*puVar8;\n          cVar5 = *pcVar3;\n          do {\n            if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar10 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }\n            pcVar3 = pcVar3 + 1;\n          } while( true );\n        }\n        puVar14 = (undefined4 *)((int)puVar12 + (int)puVar13);\n        iVar17 = (uint)(puVar14 < puVar12) + iVar17 + iVar9;\n        puVar8 = auStack_2060;\n        (**(code **)(puVar15 + 0x21e300))(puVar7,auStack_2060,puVar13);\n        puVar12 = puVar14;\n      } while (iVar17 < iVar10);\n      bVar1 = puVar14 < puVar11;\n      uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1);\n    }" ({ "{") (do_statement "do {\n        puVar13 = (undefined4 *)((int)puVar11 - (int)puVar12);\n        iVar9 = (iVar10 - iVar17) - (uint)(puVar11 < puVar13);\n        if ((0 < iVar9) ||\n           ((pcVar16 = *(code **)(puVar15 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar13)))) {\n          iVar9 = 0;\n          puVar13 = (undefined4 *)0x2000;\n          pcVar16 = *(code **)(puVar15 + 0x21e4c4);\n        }\n        (*pcVar16)(puStack_60);\n        if ((undefined4 *)(iStack_5c - puVar7[1]) < puVar13) {\n          iVar10 = *(int *)(puVar15 + 0x21d714) + 0x446c;\n          (**(code **)(puVar15 + 0x21e30c))();\n          pcVar3 = (char *)*puVar8;\n          cVar5 = *pcVar3;\n          do {\n            if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar10 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }\n            pcVar3 = pcVar3 + 1;\n          } while( true );\n        }\n        puVar14 = (undefined4 *)((int)puVar12 + (int)puVar13);\n        iVar17 = (uint)(puVar14 < puVar12) + iVar17 + iVar9;\n        puVar8 = auStack_2060;\n        (**(code **)(puVar15 + 0x21e300))(puVar7,auStack_2060,puVar13);\n        puVar12 = puVar14;\n      } while (iVar17 < iVar10);" (do "do") (compound_statement "{\n        puVar13 = (undefined4 *)((int)puVar11 - (int)puVar12);\n        iVar9 = (iVar10 - iVar17) - (uint)(puVar11 < puVar13);\n        if ((0 < iVar9) ||\n           ((pcVar16 = *(code **)(puVar15 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar13)))) {\n          iVar9 = 0;\n          puVar13 = (undefined4 *)0x2000;\n          pcVar16 = *(code **)(puVar15 + 0x21e4c4);\n        }\n        (*pcVar16)(puStack_60);\n        if ((undefined4 *)(iStack_5c - puVar7[1]) < puVar13) {\n          iVar10 = *(int *)(puVar15 + 0x21d714) + 0x446c;\n          (**(code **)(puVar15 + 0x21e30c))();\n          pcVar3 = (char *)*puVar8;\n          cVar5 = *pcVar3;\n          do {\n            if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar10 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }\n            pcVar3 = pcVar3 + 1;\n          } while( true );\n        }\n        puVar14 = (undefined4 *)((int)puVar12 + (int)puVar13);\n        iVar17 = (uint)(puVar14 < puVar12) + iVar17 + iVar9;\n        puVar8 = auStack_2060;\n        (**(code **)(puVar15 + 0x21e300))(puVar7,auStack_2060,puVar13);\n        puVar12 = puVar14;\n      }" ({ "{") (expression_statement "puVar13 = (undefined4 *)((int)puVar11 - (int)puVar12);" (assignment_expression "puVar13 = (undefined4 *)((int)puVar11 - (int)puVar12)" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)((int)puVar11 - (int)puVar12)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar11 - (int)puVar12)" (( "(") (binary_expression "(int)puVar11 - (int)puVar12" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (- "-") (cast_expression "(int)puVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar12"))) () ")")))) (; ";")) (expression_statement "iVar9 = (iVar10 - iVar17) - (uint)(puVar11 < puVar13);" (assignment_expression "iVar9 = (iVar10 - iVar17) - (uint)(puVar11 < puVar13)" (identifier "iVar9") (= "=") (binary_expression "(iVar10 - iVar17) - (uint)(puVar11 < puVar13)" (parenthesized_expression "(iVar10 - iVar17)" (( "(") (binary_expression "iVar10 - iVar17" (identifier "iVar10") (- "-") (identifier "iVar17")) () ")")) (- "-") (call_expression "(uint)(puVar11 < puVar13)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(puVar11 < puVar13)" (( "(") (binary_expression "puVar11 < puVar13" (identifier "puVar11") (< "<") (identifier "puVar13")) () ")"))))) (; ";")) (if_statement "if ((0 < iVar9) ||\n           ((pcVar16 = *(code **)(puVar15 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar13)))) {\n          iVar9 = 0;\n          puVar13 = (undefined4 *)0x2000;\n          pcVar16 = *(code **)(puVar15 + 0x21e4c4);\n        }" (if "if") (parenthesized_expression "((0 < iVar9) ||\n           ((pcVar16 = *(code **)(puVar15 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar13))))" (( "(") (binary_expression "(0 < iVar9) ||\n           ((pcVar16 = *(code **)(puVar15 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar13)))" (parenthesized_expression "(0 < iVar9)" (( "(") (binary_expression "0 < iVar9" (number_literal "0") (< "<") (identifier "iVar9")) () ")")) (|| "||") (parenthesized_expression "((pcVar16 = *(code **)(puVar15 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar13)))" (( "(") (parenthesized_expression "(pcVar16 = *(code **)(puVar15 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar13))" (( "(") (comma_expression "pcVar16 = *(code **)(puVar15 + 0x21e4c4), iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar13)" (assignment_expression "pcVar16 = *(code **)(puVar15 + 0x21e4c4)" (identifier "pcVar16") (= "=") (pointer_expression "*(code **)(puVar15 + 0x21e4c4)" (* "*") (cast_expression "(code **)(puVar15 + 0x21e4c4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + 0x21e4c4)" (( "(") (binary_expression "puVar15 + 0x21e4c4" (identifier "puVar15") (+ "+") (number_literal "0x21e4c4")) () ")"))))) (, ",") (binary_expression "iVar9 == 0 &&\n            ((undefined4 *)0x1fff < puVar13)" (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) (&& "&&") (parenthesized_expression "((undefined4 *)0x1fff < puVar13)" (( "(") (binary_expression "(undefined4 *)0x1fff < puVar13" (cast_expression "(undefined4 *)0x1fff" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1fff")) (< "<") (identifier "puVar13")) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n          iVar9 = 0;\n          puVar13 = (undefined4 *)0x2000;\n          pcVar16 = *(code **)(puVar15 + 0x21e4c4);\n        }" ({ "{") (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" (identifier "iVar9") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar13 = (undefined4 *)0x2000;" (assignment_expression "puVar13 = (undefined4 *)0x2000" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)0x2000" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2000"))) (; ";")) (expression_statement "pcVar16 = *(code **)(puVar15 + 0x21e4c4);" (assignment_expression "pcVar16 = *(code **)(puVar15 + 0x21e4c4)" (identifier "pcVar16") (= "=") (pointer_expression "*(code **)(puVar15 + 0x21e4c4)" (* "*") (cast_expression "(code **)(puVar15 + 0x21e4c4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + 0x21e4c4)" (( "(") (binary_expression "puVar15 + 0x21e4c4" (identifier "puVar15") (+ "+") (number_literal "0x21e4c4")) () ")"))))) (; ";")) (} "}"))) (expression_statement "(*pcVar16)(puStack_60);" (call_expression "(*pcVar16)(puStack_60)" (parenthesized_expression "(*pcVar16)" (( "(") (pointer_expression "*pcVar16" (* "*") (identifier "pcVar16")) () ")")) (argument_list "(puStack_60)" (( "(") (identifier "puStack_60") () ")"))) (; ";")) (if_statement "if ((undefined4 *)(iStack_5c - puVar7[1]) < puVar13) {\n          iVar10 = *(int *)(puVar15 + 0x21d714) + 0x446c;\n          (**(code **)(puVar15 + 0x21e30c))();\n          pcVar3 = (char *)*puVar8;\n          cVar5 = *pcVar3;\n          do {\n            if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar10 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }\n            pcVar3 = pcVar3 + 1;\n          } while( true );\n        }" (if "if") (parenthesized_expression "((undefined4 *)(iStack_5c - puVar7[1]) < puVar13)" (( "(") (binary_expression "(undefined4 *)(iStack_5c - puVar7[1]) < puVar13" (cast_expression "(undefined4 *)(iStack_5c - puVar7[1])" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_5c - puVar7[1])" (( "(") (binary_expression "iStack_5c - puVar7[1]" (identifier "iStack_5c") (- "-") (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]"))) () ")"))) (< "<") (identifier "puVar13")) () ")")) (compound_statement "{\n          iVar10 = *(int *)(puVar15 + 0x21d714) + 0x446c;\n          (**(code **)(puVar15 + 0x21e30c))();\n          pcVar3 = (char *)*puVar8;\n          cVar5 = *pcVar3;\n          do {\n            if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar10 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }\n            pcVar3 = pcVar3 + 1;\n          } while( true );\n        }" ({ "{") (expression_statement "iVar10 = *(int *)(puVar15 + 0x21d714) + 0x446c;" (assignment_expression "iVar10 = *(int *)(puVar15 + 0x21d714) + 0x446c" (identifier "iVar10") (= "=") (binary_expression "*(int *)(puVar15 + 0x21d714) + 0x446c" (pointer_expression "*(int *)(puVar15 + 0x21d714)" (* "*") (cast_expression "(int *)(puVar15 + 0x21d714)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x21d714)" (( "(") (binary_expression "puVar15 + 0x21d714" (identifier "puVar15") (+ "+") (number_literal "0x21d714")) () ")")))) (+ "+") (number_literal "0x446c"))) (; ";")) (expression_statement "(**(code **)(puVar15 + 0x21e30c))();" (call_expression "(**(code **)(puVar15 + 0x21e30c))()" (parenthesized_expression "(**(code **)(puVar15 + 0x21e30c))" (( "(") (pointer_expression "**(code **)(puVar15 + 0x21e30c)" (* "*") (pointer_expression "*(code **)(puVar15 + 0x21e30c)" (* "*") (cast_expression "(code **)(puVar15 + 0x21e30c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + 0x21e30c)" (( "(") (binary_expression "puVar15 + 0x21e30c" (identifier "puVar15") (+ "+") (number_literal "0x21e30c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar3 = (char *)*puVar8;" (assignment_expression "pcVar3 = (char *)*puVar8" (identifier "pcVar3") (= "=") (cast_expression "(char *)*puVar8" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar8" (* "*") (identifier "puVar8")))) (; ";")) (expression_statement "cVar5 = *pcVar3;" (assignment_expression "cVar5 = *pcVar3" (identifier "cVar5") (= "=") (pointer_expression "*pcVar3" (* "*") (identifier "pcVar3"))) (; ";")) (do_statement "do {\n            if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar10 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }\n            pcVar3 = pcVar3 + 1;\n          } while( true );" (do "do") (compound_statement "{\n            if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar10 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }\n            pcVar3 = pcVar3 + 1;\n          }" ({ "{") (if_statement "if (cVar5 == '*') {\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }\n            else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar10 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }" (if "if") (parenthesized_expression "(cVar5 == '*')" (( "(") (binary_expression "cVar5 == '*'" (identifier "cVar5") (== "==") (char_literal "'*'" (' "'") (character "*") (' "'"))) () ")")) (compound_statement "{\n              cVar5 = pcVar3[1];\n              if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }\n            }" ({ "{") (expression_statement "cVar5 = pcVar3[1];" (assignment_expression "cVar5 = pcVar3[1]" (identifier "cVar5") (= "=") (subscript_expression "pcVar3[1]" (identifier "pcVar3") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (cVar5 == '/') {\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }" (if "if") (parenthesized_expression "(cVar5 == '/')" (( "(") (binary_expression "cVar5 == '/'" (identifier "cVar5") (== "==") (char_literal "'/'" (' "'") (character "/") (' "'"))) () ")")) (compound_statement "{\n                *puVar8 = pcVar3 + 2;\n                return CONCAT44(1,pcVar3 + 2);\n              }" ({ "{") (expression_statement "*puVar8 = pcVar3 + 2;" (assignment_expression "*puVar8 = pcVar3 + 2" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (= "=") (binary_expression "pcVar3 + 2" (identifier "pcVar3") (+ "+") (number_literal "2"))) (; ";")) (return_statement "return CONCAT44(1,pcVar3 + 2);" (return "return") (call_expression "CONCAT44(1,pcVar3 + 2)" (identifier "CONCAT44") (argument_list "(1,pcVar3 + 2)" (( "(") (number_literal "1") (, ",") (binary_expression "pcVar3 + 2" (identifier "pcVar3") (+ "+") (number_literal "2")) () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar10 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }" (else "else") (compound_statement "{\n              if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }\n              if (cVar5 == '\n') {\n                *(char **)(iVar10 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;\n              }\n              cVar5 = pcVar3[1];\n            }" ({ "{") (if_statement "if (cVar5 == '\0') {\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }" (if "if") (parenthesized_expression "(cVar5 == '\0')" (( "(") (binary_expression "cVar5 == '\0'" (identifier "cVar5") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                *puVar8 = pcVar3;\n                return ZEXT48(pcVar3);\n              }" ({ "{") (expression_statement "*puVar8 = pcVar3;" (assignment_expression "*puVar8 = pcVar3" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (= "=") (identifier "pcVar3")) (; ";")) (return_statement "return ZEXT48(pcVar3);" (return "return") (call_expression "ZEXT48(pcVar3)" (identifier "ZEXT48") (argument_list "(pcVar3)" (( "(") (identifier "pcVar3") () ")"))) (; ";")) (} "}"))) (if_statement "if (cVar5 == '\n') {\n                *(char **)(iVar10 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;\n              }" (if "if") (parenthesized_expression "(cVar5 == '\n')" (( "(") (binary_expression "cVar5 == '\n'" (identifier "cVar5") (== "==") (char_literal "'\n'" (' "'") (escape_sequence "\n") (' "'"))) () ")")) (compound_statement "{\n                *(char **)(iVar10 + 0x30) = pcVar3 + 1;\n                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;\n              }" ({ "{") (expression_statement "*(char **)(iVar10 + 0x30) = pcVar3 + 1;" (assignment_expression "*(char **)(iVar10 + 0x30) = pcVar3 + 1" (pointer_expression "*(char **)(iVar10 + 0x30)" (* "*") (cast_expression "(char **)(iVar10 + 0x30)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 0x30)" (( "(") (binary_expression "iVar10 + 0x30" (identifier "iVar10") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (binary_expression "pcVar3 + 1" (identifier "pcVar3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;" (assignment_expression "*(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1" (pointer_expression "*(int *)(iVar10 + 0x2c)" (* "*") (cast_expression "(int *)(iVar10 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x2c)" (( "(") (binary_expression "iVar10 + 0x2c" (identifier "iVar10") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (binary_expression "*(int *)(iVar10 + 0x2c) + 1" (pointer_expression "*(int *)(iVar10 + 0x2c)" (* "*") (cast_expression "(int *)(iVar10 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x2c)" (( "(") (binary_expression "iVar10 + 0x2c" (identifier "iVar10") (+ "+") (number_literal "0x2c")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "cVar5 = pcVar3[1];" (assignment_expression "cVar5 = pcVar3[1]" (identifier "cVar5") (= "=") (subscript_expression "pcVar3[1]" (identifier "pcVar3") ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}")))) (expression_statement "pcVar3 = pcVar3 + 1;" (assignment_expression "pcVar3 = pcVar3 + 1" (identifier "pcVar3") (= "=") (binary_expression "pcVar3 + 1" (identifier "pcVar3") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (expression_statement "puVar14 = (undefined4 *)((int)puVar12 + (int)puVar13);" (assignment_expression "puVar14 = (undefined4 *)((int)puVar12 + (int)puVar13)" (identifier "puVar14") (= "=") (cast_expression "(undefined4 *)((int)puVar12 + (int)puVar13)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar12 + (int)puVar13)" (( "(") (binary_expression "(int)puVar12 + (int)puVar13" (cast_expression "(int)puVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar12")) (+ "+") (cast_expression "(int)puVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar13"))) () ")")))) (; ";")) (expression_statement "iVar17 = (uint)(puVar14 < puVar12) + iVar17 + iVar9;" (assignment_expression "iVar17 = (uint)(puVar14 < puVar12) + iVar17 + iVar9" (identifier "iVar17") (= "=") (binary_expression "(uint)(puVar14 < puVar12) + iVar17 + iVar9" (binary_expression "(uint)(puVar14 < puVar12) + iVar17" (call_expression "(uint)(puVar14 < puVar12)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(puVar14 < puVar12)" (( "(") (binary_expression "puVar14 < puVar12" (identifier "puVar14") (< "<") (identifier "puVar12")) () ")"))) (+ "+") (identifier "iVar17")) (+ "+") (identifier "iVar9"))) (; ";")) (expression_statement "puVar8 = auStack_2060;" (assignment_expression "puVar8 = auStack_2060" (identifier "puVar8") (= "=") (identifier "auStack_2060")) (; ";")) (expression_statement "(**(code **)(puVar15 + 0x21e300))(puVar7,auStack_2060,puVar13);" (call_expression "(**(code **)(puVar15 + 0x21e300))(puVar7,auStack_2060,puVar13)" (parenthesized_expression "(**(code **)(puVar15 + 0x21e300))" (( "(") (pointer_expression "**(code **)(puVar15 + 0x21e300)" (* "*") (pointer_expression "*(code **)(puVar15 + 0x21e300)" (* "*") (cast_expression "(code **)(puVar15 + 0x21e300)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + 0x21e300)" (( "(") (binary_expression "puVar15 + 0x21e300" (identifier "puVar15") (+ "+") (number_literal "0x21e300")) () ")"))))) () ")")) (argument_list "(puVar7,auStack_2060,puVar13)" (( "(") (identifier "puVar7") (, ",") (identifier "auStack_2060") (, ",") (identifier "puVar13") () ")"))) (; ";")) (expression_statement "puVar12 = puVar14;" (assignment_expression "puVar12 = puVar14" (identifier "puVar12") (= "=") (identifier "puVar14")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar17 < iVar10)" (( "(") (binary_expression "iVar17 < iVar10" (identifier "iVar17") (< "<") (identifier "iVar10")) () ")")) (; ";")) (expression_statement "bVar1 = puVar14 < puVar11;" (assignment_expression "bVar1 = puVar14 < puVar11" (identifier "bVar1") (= "=") (binary_expression "puVar14 < puVar11" (identifier "puVar14") (< "<") (identifier "puVar11"))) (; ";")) (expression_statement "uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1);" (assignment_expression "uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1)" (identifier "uVar18") (= "=") (cast_expression "(ulonglong)CONCAT14(bVar1,extraout_v1)" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (call_expression "CONCAT14(bVar1,extraout_v1)" (identifier "CONCAT14") (argument_list "(bVar1,extraout_v1)" (( "(") (identifier "bVar1") (, ",") (identifier "extraout_v1") () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((iVar10 == iVar17) && (uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1), bVar1))" (( "(") (binary_expression "(iVar10 == iVar17) && (uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1), bVar1)" (parenthesized_expression "(iVar10 == iVar17)" (( "(") (binary_expression "iVar10 == iVar17" (identifier "iVar10") (== "==") (identifier "iVar17")) () ")")) (&& "&&") (parenthesized_expression "(uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1), bVar1)" (( "(") (comma_expression "uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1), bVar1" (assignment_expression "uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1)" (identifier "uVar18") (= "=") (cast_expression "(ulonglong)CONCAT14(bVar1,extraout_v1)" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (call_expression "CONCAT14(bVar1,extraout_v1)" (identifier "CONCAT14") (argument_list "(bVar1,extraout_v1)" (( "(") (identifier "bVar1") (, ",") (identifier "extraout_v1") () ")"))))) (, ",") (identifier "bVar1")) () ")"))) () ")")) (; ";")) (} "}"))) (return_statement "return uVar18;" (return "return") (identifier "uVar18") (; ";")) (} "}")))
(translation_unit (function_definition type: (type_identifier) (ms_call_modifier) (ERROR (identifier) (identifier)) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator 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: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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: (identifier)))) 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: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (identifier) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (return_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))))) (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) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (do_statement body: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) right: (parenthesized_expression (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)) right: (identifier))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))) (return_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (return_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (true))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))) right: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))))) condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) right: (identifier)))))))) (return_statement (identifier)))))

/* gold::Token::MASKED() const */

ulonglong __thiscall gold::Token::MASKED(Token *this)

{
  bool bVar1;
  longlong lVar2;
  byte bVar4;
  char *pcVar3;
  char cVar5;
  undefined4 extraout_v1;
  undefined *puVar6;
  undefined4 *puVar7;
  undefined4 *puVar8;
  Token *unaff_s0;
  int iVar9;
  int unaff_s1;
  int iVar10;
  uint unaff_s2;
  undefined4 *puVar11;
  undefined4 *puVar12;
  undefined4 *puVar13;
  undefined4 *puVar14;
  undefined *puVar15;
  code *pcVar16;
  int iVar17;
  ulonglong uVar18;
  undefined4 auStack_2060 [2048];
  undefined *puStack_60;
  int iStack_5c;
  Token *pTStack_58;
  int iStack_54;
  uint uStack_50;
  int local_18 [2];
  
  puVar7 = (undefined4 *)&DAT_000000ad;
  if (*(int *)this == 5) {
    unaff_s1 = *(int *)(this + 8);
    iVar10 = unaff_s1 + -1;
    bVar4 = *(byte *)(*(int *)(this + 4) + iVar10) & 0xdf;
    if (bVar4 == 0x4d) {
      unaff_s2 = 0x100000;
      unaff_s1 = iVar10;
    }
    else {
      unaff_s2 = 1;
      if (bVar4 == 0x4b) {
        unaff_s2 = 0x400;
        unaff_s1 = iVar10;
      }
    }
    uVar18 = (*(code *)PTR_strtoull_004c5c14)(*(int *)(this + 4),local_18,0);
    if (local_18[0] - *(int *)(this + 4) == unaff_s1) {
      lVar2 = (ulonglong)unaff_s2 * (uVar18 & 0xffffffff);
      return CONCAT44((int)(uVar18 >> 0x20) * unaff_s2 + (int)((ulonglong)lVar2 >> 0x20),(int)lVar2)
      ;
    }
    puVar7 = (undefined4 *)&DAT_000000c0;
    unaff_s0 = this;
  }
  puVar6 = PTR_s_in_a_linker_script_004c191c + 0xdec;
  puVar15 = PTR_do_gold_unreachable_004c1a30;
  (*(code *)PTR_do_gold_unreachable_004c1a30)
            (puVar6,puVar7,PTR_s_in_a_linker_script_004c191c + 0x2280);
  pcVar16 = *(code **)(puVar15 + 0x21e8f0);
  puVar11 = *(undefined4 **)(puVar6 + 0x4c);
  iVar10 = *(int *)(puVar6 + 0x48);
  puVar7[1] = 0;
  *(undefined1 *)*puVar7 = 0;
  puVar8 = puVar11;
  pTStack_58 = unaff_s0;
  iStack_54 = unaff_s1;
  uStack_50 = unaff_s2;
  uVar18 = (*pcVar16)(puVar7);
  if ((0 < iVar10) ||
     ((iVar10 == 0 && (uVar18 = CONCAT44(puVar6 + 0x20,(int)uVar18), puVar11 != (undefined4 *)0x0)))
     ) {
    puStack_60 = puVar6 + 0x20;
    iVar17 = 0;
    iStack_5c = 0x7fffffff;
    puVar12 = (undefined4 *)0x0;
    do {
      do {
        puVar13 = (undefined4 *)((int)puVar11 - (int)puVar12);
        iVar9 = (iVar10 - iVar17) - (uint)(puVar11 < puVar13);
        if ((0 < iVar9) ||
           ((pcVar16 = *(code **)(puVar15 + 0x21e4c4), iVar9 == 0 &&
            ((undefined4 *)0x1fff < puVar13)))) {
          iVar9 = 0;
          puVar13 = (undefined4 *)0x2000;
          pcVar16 = *(code **)(puVar15 + 0x21e4c4);
        }
        (*pcVar16)(puStack_60);
        if ((undefined4 *)(iStack_5c - puVar7[1]) < puVar13) {
          iVar10 = *(int *)(puVar15 + 0x21d714) + 0x446c;
          (**(code **)(puVar15 + 0x21e30c))();
          pcVar3 = (char *)*puVar8;
          cVar5 = *pcVar3;
          do {
            if (cVar5 == '*') {
              cVar5 = pcVar3[1];
              if (cVar5 == '/') {
                *puVar8 = pcVar3 + 2;
                return CONCAT44(1,pcVar3 + 2);
              }
            }
            else {
              if (cVar5 == '\0') {
                *puVar8 = pcVar3;
                return ZEXT48(pcVar3);
              }
              if (cVar5 == '\n') {
                *(char **)(iVar10 + 0x30) = pcVar3 + 1;
                *(int *)(iVar10 + 0x2c) = *(int *)(iVar10 + 0x2c) + 1;
              }
              cVar5 = pcVar3[1];
            }
            pcVar3 = pcVar3 + 1;
          } while( true );
        }
        puVar14 = (undefined4 *)((int)puVar12 + (int)puVar13);
        iVar17 = (uint)(puVar14 < puVar12) + iVar17 + iVar9;
        puVar8 = auStack_2060;
        (**(code **)(puVar15 + 0x21e300))(puVar7,auStack_2060,puVar13);
        puVar12 = puVar14;
      } while (iVar17 < iVar10);
      bVar1 = puVar14 < puVar11;
      uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1);
    } while ((iVar10 == iVar17) && (uVar18 = (ulonglong)CONCAT14(bVar1,extraout_v1), bVar1));
  }
  return uVar18;
}

